gnu: file-roller: Update to 3.42.0.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016, 2020 Eric Bavier <bavier@posteo.net>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015-2022 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017, 2020, 2021 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
54 ;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
58 ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
59 ;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org>
60 ;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org>
61 ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu>
62 ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
63 ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
64 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
65 ;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
66 ;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
67 ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
68 ;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
69 ;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
70 ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
71 ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
72 ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
73 ;;; Copyright © 2022 Rene Saavedra <nanuui@protonmail.com>
74 ;;; Copyright © 2022 Alexandros Theodotou <alex@zrythm.org>
75 ;;;
76 ;;; This file is part of GNU Guix.
77 ;;;
78 ;;; GNU Guix is free software; you can redistribute it and/or modify it
79 ;;; under the terms of the GNU General Public License as published by
80 ;;; the Free Software Foundation; either version 3 of the License, or (at
81 ;;; your option) any later version.
82 ;;;
83 ;;; GNU Guix is distributed in the hope that it will be useful, but
84 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
85 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
86 ;;; GNU General Public License for more details.
87 ;;;
88 ;;; You should have received a copy of the GNU General Public License
89 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
90
91 (define-module (gnu packages gnome)
92 #:use-module (gnu packages)
93 #:use-module (gnu packages admin)
94 #:use-module (gnu packages aidc)
95 #:use-module (gnu packages aspell)
96 #:use-module (gnu packages autotools)
97 #:use-module (gnu packages avahi)
98 #:use-module (gnu packages backup)
99 #:use-module (gnu packages base)
100 #:use-module (gnu packages bash)
101 #:use-module (gnu packages bison)
102 #:use-module (gnu packages boost)
103 #:use-module (gnu packages build-tools)
104 #:use-module (gnu packages calendar)
105 #:use-module (gnu packages cdrom)
106 #:use-module (gnu packages check)
107 #:use-module (gnu packages cmake)
108 #:use-module (gnu packages compression)
109 #:use-module (gnu packages crates-io)
110 #:use-module (gnu packages crates-graphics)
111 #:use-module (gnu packages crates-gtk)
112 #:use-module (gnu packages cups)
113 #:use-module (gnu packages curl)
114 #:use-module (gnu packages cyrus-sasl)
115 #:use-module (gnu packages databases)
116 #:use-module (gnu packages dbm)
117 #:use-module (gnu packages djvu)
118 #:use-module (gnu packages dns)
119 #:use-module (gnu packages docbook)
120 #:use-module (gnu packages docker)
121 #:use-module (gnu packages documentation)
122 #:use-module (gnu packages enchant)
123 #:use-module (gnu packages flex)
124 #:use-module (gnu packages fonts)
125 #:use-module (gnu packages file-systems)
126 #:use-module (gnu packages fontutils)
127 #:use-module (gnu packages freedesktop)
128 #:use-module (gnu packages game-development)
129 #:use-module (gnu packages gcc)
130 #:use-module (gnu packages gettext)
131 #:use-module (gnu packages ghostscript)
132 #:use-module (gnu packages gimp)
133 #:use-module (gnu packages gl)
134 #:use-module (gnu packages glib)
135 #:use-module (gnu packages gnupg)
136 #:use-module (gnu packages gnuzilla)
137 #:use-module (gnu packages geo)
138 #:use-module (gnu packages gperf)
139 #:use-module (gnu packages graphviz)
140 #:use-module (gnu packages gstreamer)
141 #:use-module (gnu packages gtk)
142 #:use-module (gnu packages guile)
143 #:use-module (gnu packages haskell-xyz)
144 #:use-module (gnu packages ibus)
145 #:use-module (gnu packages icu4c)
146 #:use-module (gnu packages image)
147 #:use-module (gnu packages imagemagick)
148 #:use-module (gnu packages inkscape)
149 #:use-module (gnu packages iso-codes)
150 #:use-module (gnu packages kerberos)
151 #:use-module (gnu packages language)
152 #:use-module (gnu packages libcanberra)
153 #:use-module (gnu packages libffi)
154 #:use-module (gnu packages libunistring)
155 #:use-module (gnu packages libunwind)
156 #:use-module (gnu packages libusb)
157 #:use-module (gnu packages linux)
158 #:use-module (gnu packages lirc)
159 #:use-module (gnu packages llvm)
160 #:use-module (gnu packages lua)
161 #:use-module (gnu packages mail)
162 #:use-module (gnu packages man)
163 #:use-module (gnu packages markup)
164 #:use-module (gnu packages messaging)
165 #:use-module (gnu packages mp3)
166 #:use-module (gnu packages multiprecision)
167 #:use-module (gnu packages music)
168 #:use-module (gnu packages ncurses)
169 #:use-module (gnu packages nettle)
170 #:use-module (gnu packages networking)
171 #:use-module (gnu packages ninja)
172 #:use-module (gnu packages node)
173 #:use-module (gnu packages nss)
174 #:use-module (gnu packages ocr)
175 #:use-module (gnu packages openldap)
176 #:use-module (gnu packages package-management)
177 #:use-module (gnu packages password-utils)
178 #:use-module (gnu packages pcre)
179 #:use-module (gnu packages pdf)
180 #:use-module (gnu packages perl)
181 #:use-module (gnu packages photo)
182 #:use-module (gnu packages pkg-config)
183 #:use-module (gnu packages polkit)
184 #:use-module (gnu packages popt)
185 #:use-module (gnu packages pretty-print)
186 #:use-module (gnu packages protobuf)
187 #:use-module (gnu packages pulseaudio)
188 #:use-module (gnu packages python)
189 #:use-module (gnu packages python-build)
190 #:use-module (gnu packages python-crypto)
191 #:use-module (gnu packages python-web)
192 #:use-module (gnu packages python-xyz)
193 #:use-module (gnu packages rdesktop)
194 #:use-module (gnu packages rdf)
195 #:use-module (gnu packages readline)
196 #:use-module (gnu packages ruby)
197 #:use-module (gnu packages rust)
198 #:use-module (gnu packages samba)
199 #:use-module (gnu packages scanner)
200 #:use-module (gnu packages sdl)
201 #:use-module (gnu packages search)
202 #:use-module (gnu packages selinux)
203 #:use-module (gnu packages slang)
204 #:use-module (gnu packages speech)
205 #:use-module (gnu packages spice)
206 #:use-module (gnu packages sqlite)
207 #:use-module (gnu packages ssh)
208 #:use-module (gnu packages swig)
209 #:use-module (gnu packages tex)
210 #:use-module (gnu packages time)
211 #:use-module (gnu packages tls)
212 #:use-module (gnu packages valgrind)
213 #:use-module (gnu packages version-control)
214 #:use-module (gnu packages video)
215 #:use-module (gnu packages virtualization)
216 #:use-module (gnu packages vpn)
217 #:use-module (gnu packages web)
218 #:use-module (gnu packages webkit)
219 #:use-module (gnu packages xdisorg)
220 #:use-module (gnu packages xiph)
221 #:use-module (gnu packages xml)
222 #:use-module (gnu packages xorg)
223 #:use-module (gnu artwork)
224 #:use-module (guix build-system cargo)
225 #:use-module (guix build-system cmake)
226 #:use-module (guix build-system glib-or-gtk)
227 #:use-module (guix build-system gnu)
228 #:use-module (guix build-system meson)
229 #:use-module (guix build-system python)
230 #:use-module (guix build-system trivial)
231 #:use-module (guix download)
232 #:use-module (guix git-download)
233 #:use-module ((guix licenses) #:prefix license:)
234 #:use-module (guix packages)
235 #:use-module (guix utils)
236 #:use-module (guix gexp)
237 #:use-module (ice-9 match)
238 #:use-module (srfi srfi-1))
239
240 (define-public gupnp-igd
241 (package
242 (name "gupnp-igd")
243 (version "1.2.0")
244 (source
245 (origin
246 (method url-fetch)
247 (uri
248 (string-append "mirror://gnome/sources/" name "/"
249 (version-major+minor version) "/"
250 name "-" version ".tar.xz"))
251 (sha256
252 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
253 (build-system meson-build-system)
254 (outputs '("out" "doc"))
255 (arguments
256 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
257 #:configure-flags (list "-Dgtk_doc=true")
258 #:phases
259 (modify-phases %standard-phases
260 (add-after 'unpack 'patch-docbook-xml
261 (lambda* (#:key inputs #:allow-other-keys)
262 (with-directory-excursion "doc"
263 (substitute* "gupnp-igd-docs.xml"
264 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
265 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
266 "/xml/dtd/docbook/"))))
267 #t))
268 (add-before 'check 'set-home
269 (lambda _
270 ;; A test using GIO expects ~/.config/glib-2.0/settings to be
271 ;; writable.
272 (setenv "HOME" (getcwd))))
273 (add-after 'install 'move-doc
274 (lambda* (#:key outputs #:allow-other-keys)
275 (let* ((out (assoc-ref outputs "out"))
276 (doc (assoc-ref outputs "doc")))
277 (mkdir-p (string-append doc "/share"))
278 (rename-file
279 (string-append out "/share/gtk-doc")
280 (string-append doc "/share/gtk-doc"))
281 #t))))))
282 (native-inputs
283 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
284 ("docbook-xsl" ,docbook-xsl)
285 ("glib:bin" ,glib "bin")
286 ("gobject-introspection" ,gobject-introspection)
287 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
288 ("gtk-doc" ,gtk-doc/stable)
289 ("pkg-config" ,pkg-config)))
290 (propagated-inputs
291 (list glib glib-networking gssdp gupnp libsoup))
292 (synopsis "UPnP IGD for GNOME")
293 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
294 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
295 (license license:lgpl2.1+)))
296
297 (define-public brasero
298 (package
299 (name "brasero")
300 (version "3.12.3")
301 (source (origin
302 (method url-fetch)
303 (uri (string-append "mirror://gnome/sources/brasero/"
304 (version-major+minor version) "/"
305 "brasero-" version ".tar.xz"))
306 (sha256
307 (base32
308 "05gabybkl7xfinwx97i4scp9hic0dlxj7gh03dyj0hd16fp9wx47"))))
309 (build-system glib-or-gtk-build-system)
310 (arguments
311 `(#:configure-flags (list
312 (string-append "--with-girdir="
313 (assoc-ref %outputs "out")
314 "/share/gir-1.0")
315 (string-append "--with-typelibdir="
316 (assoc-ref %outputs "out")
317 "/lib/girepository-1.0"))
318 #:phases
319 (modify-phases %standard-phases
320 (add-before 'configure 'embed-growisofs-reference
321 (lambda* (#:key inputs #:allow-other-keys)
322 (let ((dvd+rw-tools (assoc-ref inputs "dvd+rw-tools")))
323 (substitute* "plugins/growisofs/burn-growisofs.c"
324 (("(\")(growisofs)" _ prefix command)
325 (string-append prefix dvd+rw-tools "/bin/" command)))))))))
326 (propagated-inputs
327 (list hicolor-icon-theme))
328 (native-inputs
329 (list intltool
330 itstool
331 `(,glib "bin") ; glib-compile-schemas, etc.
332 gobject-introspection
333 pkg-config))
334 (inputs
335 (list dvd+rw-tools
336 glib
337 gstreamer
338 gst-plugins-base
339 gtk+
340 libcanberra
341 libice
342 libnotify
343 libsm
344 libxml2
345 totem-pl-parser))
346 (home-page "https://wiki.gnome.org/Apps/Brasero")
347 (synopsis "CD/DVD burning tool for Gnome")
348 (description "Brasero is an application to burn CD/DVD for the Gnome
349 Desktop. It is designed to be as simple as possible and has some unique
350 features to enable users to create their discs easily and quickly.")
351 (license license:gpl2+)))
352
353 ;;; Minimal variant, used to break a cycle with Inkscape.
354 (define-public libcloudproviders-minimal
355 (package
356 (name "libcloudproviders-minimal")
357 (version "0.3.1")
358 (source
359 (origin
360 (method url-fetch)
361 (uri
362 (string-append "mirror://gnome/sources/libcloudproviders/"
363 (version-major+minor version)
364 "/libcloudproviders-" version ".tar.xz"))
365 (sha256
366 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
367 (build-system meson-build-system)
368 (arguments
369 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
370 #:configure-flags (list "-Dintrospection=false"
371 "-Denable-gtk-doc=false"
372 "-Dvapigen=false")))
373 (native-inputs
374 `(("glib:bin" ,glib "bin")
375 ("pkg-config" ,pkg-config)
376 ("vala" ,vala)))
377 (inputs
378 (list glib glib-networking))
379 (synopsis "Cloudproviders Integration API")
380 (description "Libcloudproviders is a DBus API that allows cloud storage sync
381 clients to expose their services. Clients such as file managers and desktop
382 environments can then provide integrated access to the cloud providers
383 services.")
384 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
385 (license license:lgpl3+)))
386
387 (define-public libcloudproviders
388 (package/inherit libcloudproviders-minimal
389 (name "libcloudproviders")
390 (version "0.3.1")
391 (outputs (cons "doc" (package-outputs libcloudproviders-minimal)))
392 (arguments
393 (substitute-keyword-arguments (package-arguments libcloudproviders-minimal)
394 ((#:configure-flags _)
395 '(list "-Denable-gtk-doc=true")) ;false by default
396 ((#:phases phases '%standard-phases)
397 `(modify-phases %standard-phases
398 (add-after 'install 'move-doc
399 (lambda* (#:key outputs #:allow-other-keys)
400 (let* ((out (assoc-ref outputs "out"))
401 (doc (assoc-ref outputs "doc")))
402 (mkdir-p (string-append doc "/share"))
403 (rename-file
404 (string-append out "/share/gtk-doc")
405 (string-append doc "/share/gtk-doc")))))))))
406 (native-inputs
407 (append
408 `(("gobject-introspection" ,gobject-introspection)
409 ("gtk-doc" ,gtk-doc/stable))
410 (package-native-inputs libcloudproviders-minimal)))))
411
412 (define-public libgrss
413 (package
414 (name "libgrss")
415 (version "0.7.0")
416 (source
417 (origin
418 (method url-fetch)
419 (uri
420 (string-append "mirror://gnome/sources/" name "/"
421 (version-major+minor version) "/"
422 name "-" version ".tar.xz"))
423 (sha256
424 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))
425 (patches
426 (search-patches "libgrss-CVE-2016-2001.patch"))))
427 (build-system glib-or-gtk-build-system)
428 (outputs '("out" "doc"))
429 (arguments
430 `(#:configure-flags
431 (list
432 "--enable-gtk-doc"
433 (string-append "--with-html-dir="
434 (assoc-ref %outputs "doc")
435 "/share/gtk-doc/html"))
436 #:phases
437 (modify-phases %standard-phases
438 (add-after 'unpack 'patch-docbook-xml
439 (lambda* (#:key inputs #:allow-other-keys)
440 (with-directory-excursion "doc/reference"
441 (substitute* "libgrss-docs.sgml"
442 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
443 (string-append (assoc-ref inputs "docbook-xml")
444 "/xml/dtd/docbook/"))))
445 #t)))))
446 (native-inputs
447 (list docbook-xml-4.1.2 gobject-introspection gtk-doc/stable
448 pkg-config))
449 (propagated-inputs
450 (list glib libsoup-minimal-2 libxml2))
451 (synopsis "Glib library for feeds")
452 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
453 and other formats.")
454 (home-page "https://wiki.gnome.org/Projects/Libgrss")
455 (license license:lgpl3+)))
456
457 (define-public gnome-js-common
458 (package
459 (name "gnome-js-common")
460 (version "0.1.2")
461 (source
462 (origin
463 (method url-fetch)
464 (uri
465 (string-append "mirror://gnome/sources/" name "/"
466 (version-major+minor version) "/"
467 name "-" version ".tar.gz"))
468 (sha256
469 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
470 (build-system glib-or-gtk-build-system)
471 (arguments
472 `(#:configure-flags
473 (list
474 "--disable-static")))
475 (native-inputs
476 `(("gettext" ,gettext-minimal)
477 ("intltool" ,intltool)
478 ("pkg-config" ,pkg-config)))
479 (synopsis "Common JS Modules")
480 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
481 bindings.")
482 (home-page "https://wiki.gnome.org/Projects/Seed")
483 (license license:gpl3+)))
484
485 (define-public seed
486 (package
487 (name "seed")
488 (version "3.8.1")
489 (source
490 (origin
491 (method url-fetch)
492 (uri
493 (string-append "mirror://gnome/sources/" name "/"
494 (version-major+minor version) "/"
495 name "-" version ".tar.xz"))
496 (sha256
497 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
498 (patches
499 (search-patches "seed-webkit.patch"))))
500 (build-system glib-or-gtk-build-system)
501 (outputs '("out" "doc"))
502 (arguments
503 `(#:configure-flags
504 (list
505 "--disable-static"
506 "--enable-xorg-module"
507 (string-append "--with-html-dir="
508 (assoc-ref %outputs "doc")
509 "/share/gtk-doc/html")
510 "--with-webkit=4.0")
511 #:phases
512 (modify-phases %standard-phases
513 ;; The seed-webkit.patch patches configure.ac.
514 ;; So the source files need to be re-bootstrapped.
515 (add-after 'unpack 'trigger-bootstrap
516 (lambda _
517 (for-each delete-file
518 (list
519 "configure"
520 "Makefile.in"))
521 #t))
522 (add-after 'unpack 'patch-tests
523 (lambda* (#:key outputs #:allow-other-keys)
524 (substitute* (find-files "." "\\.js$")
525 (("#!/usr/bin/env seed")
526 (string-append "#!" (getcwd) "/src/seed")))
527 #t))
528 (add-before 'build 'patch-docbook-xml
529 (lambda* (#:key inputs #:allow-other-keys)
530 (with-directory-excursion "doc"
531 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
532 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
533 (string-append (assoc-ref inputs "docbook-xml")
534 "/xml/dtd/docbook/"))))
535 #t)))))
536 (native-inputs
537 `(("autoconf" ,autoconf)
538 ("automake" ,automake)
539 ("docbook-xml" ,docbook-xml-4.1.2)
540 ("gettext" ,gettext-minimal)
541 ("gobject-introspection" ,gobject-introspection)
542 ("gtk-doc" ,gtk-doc/stable)
543 ("intltool" ,intltool)
544 ("libtool" ,libtool)
545 ("pkg-config" ,pkg-config)))
546 (inputs
547 `(("cairo" ,cairo)
548 ("dbus" ,dbus)
549 ("dbus-glib" ,dbus-glib)
550 ("gnome-js-common" ,gnome-js-common)
551 ("gtk+" ,gtk+)
552 ("gtk+-2" ,gtk+-2)
553 ("libffi" ,libffi)
554 ("libxml2" ,libxml2)
555 ("mpfr" ,mpfr)
556 ("readline" ,readline)
557 ("sqlite" ,sqlite)
558 ("xscrnsaver" ,libxscrnsaver)))
559 (propagated-inputs
560 `(("glib" ,glib)
561 ("webkit" ,webkitgtk-with-libsoup2)))
562 (synopsis "GObject JavaScriptCore bridge")
563 (description "Seed is a library and interpreter, dynamically bridging
564 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
565 GNOME platform. It serves as something which enables you to write standalone
566 applications in JavaScript, or easily enable your application to be extensible
567 in JavaScript.")
568 (home-page "https://wiki.gnome.org/Projects/Seed")
569 (license license:lgpl2.0+)))
570
571 (define-public libdmapsharing
572 (package
573 (name "libdmapsharing")
574 (version "3.9.10")
575 (source
576 (origin
577 (method url-fetch)
578 (uri
579 (string-append "https://www.flyn.org/projects/"
580 name "/" name "-" version ".tar.gz"))
581 (sha256
582 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
583 (build-system glib-or-gtk-build-system)
584 (outputs '("out" "doc"))
585 (arguments
586 `(#:tests? #f ; Tests require networking.
587 #:configure-flags
588 (list
589 "--disable-static"
590 (string-append "--with-html-dir="
591 (assoc-ref %outputs "doc")
592 "/share/gtk-doc/html"))
593 #:phases
594 (modify-phases %standard-phases
595 (add-after 'unpack 'patch-docbook-xml
596 (lambda* (#:key inputs #:allow-other-keys)
597 (with-directory-excursion "doc"
598 (substitute* "libdmapsharing-4.0-docs.xml"
599 (("http://www.oasis-open.org/docbook/xml/4.3/")
600 (string-append (assoc-ref inputs "docbook-xml")
601 "/xml/dtd/docbook/"))))
602 #t)))))
603 (native-inputs
604 (list check
605 docbook-xml-4.3
606 gobject-introspection
607 pedansee
608 pkg-config
609 vala))
610 (inputs
611 `(("avahi" ,avahi)
612 ("librsvg" ,librsvg)
613 ("gee" ,libgee)
614 ("gst-plugins-base" ,gst-plugins-base)
615 ("gtk+" ,gtk+)))
616 (propagated-inputs
617 (list glib glib-networking gstreamer libsoup-minimal-2))
618 (synopsis "Media management library")
619 (description "Libdmapsharing is a library which allows programs to access,
620 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
621 It is written in C using GObject and libsoup.")
622 (home-page "https://launchpad.net/gtx")
623 (license license:lgpl2.1+)))
624
625 (define-public gtx
626 (package
627 (name "gtx")
628 (version "0.2.2")
629 (source
630 (origin
631 (method url-fetch)
632 (uri
633 (string-append "https://launchpad.net/gtx/trunk/"
634 version "/+download/gtx-" version ".tar.gz"))
635 (sha256
636 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
637 (build-system glib-or-gtk-build-system)
638 (outputs '("out" "doc"))
639 (arguments
640 `(#:configure-flags
641 (list
642 "--disable-static"
643 "--enable-gtk-doc"
644 (string-append "--with-html-dir="
645 (assoc-ref %outputs "doc")
646 "/share/gtk-doc/html"))))
647 (native-inputs
648 (list gobject-introspection gtk-doc/stable pkg-config))
649 (propagated-inputs
650 (list glib))
651 (synopsis "GLib Testing Framework")
652 (description "GTX is a small collection of convenience functions intended to
653 enhance the GLib testing framework. With specific emphasis on easing the pain
654 of writing test cases for asynchronous interactions.")
655 (home-page "https://launchpad.net/gtx")
656 (license license:lgpl2.1+)))
657
658 (define-public dee
659 (package
660 (name "dee")
661 (version "1.2.7")
662 (source
663 (origin
664 (method url-fetch)
665 (uri
666 (string-append "https://launchpad.net/dee/1.0/"
667 version "/+download/dee-" version ".tar.gz"))
668 (sha256
669 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
670 (patches
671 (search-patches "dee-vapi.patch"))))
672 (build-system glib-or-gtk-build-system)
673 (outputs '("out" "doc"))
674 (arguments
675 `(#:configure-flags
676 (list
677 "--disable-maintainer-flags"
678 (string-append "--with-pygi-overrides-dir="
679 (assoc-ref %outputs "out")
680 "/lib/python"
681 ,(version-major+minor
682 (package-version python))
683 "/site-packages/gi/overrides")
684 (string-append "--with-html-dir="
685 (assoc-ref %outputs "doc")
686 "/share/gtk-doc/html"))
687 #:phases
688 (modify-phases %standard-phases
689 (add-after 'unpack 'patch-docbook-xml
690 (lambda* (#:key inputs #:allow-other-keys)
691 (with-directory-excursion "doc/reference/dee-1.0"
692 (substitute* "dee-1.0-docs.sgml"
693 (("http://www.oasis-open.org/docbook/xml/4.3/")
694 (string-append (assoc-ref inputs "docbook-xml")
695 "/xml/dtd/docbook/"))))))
696 (add-after 'patch-docbook-xml 'disable-failing-tests
697 (lambda _
698 (substitute* "tests/test-icu.c"
699 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
700 "")
701 (("setup, test_ascii_folder, teardown\\);")
702 ""))))
703 (add-before 'check 'pre-check
704 (lambda _
705 ;; Tests require a running dbus-daemon.
706 (system "dbus-daemon &")
707 ;; For missing '/etc/machine-id'.
708 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
709 (native-inputs
710 `(("dbus" ,dbus)
711 ("dbus-test-runner" ,dbus-test-runner)
712 ("docbook-xml" ,docbook-xml-4.3)
713 ("gobject-introspection" ,gobject-introspection)
714 ("gtk-doc" ,gtk-doc/stable)
715 ;; Would only be required by configure flag "--enable-extended-tests".
716 ;("gtx" ,gtx)
717 ("pkg-config" ,pkg-config)
718 ("pygobject" ,python-pygobject)
719 ("python" ,python-wrapper)
720 ("vala" ,vala-0.52)))
721 (inputs
722 `(("icu" ,icu4c)))
723 (propagated-inputs
724 (list glib))
725 (synopsis "Model to synchronize multiple instances over DBus")
726 (description "Dee is a library that uses DBus to provide objects allowing
727 you to create Model-View-Controller type programs across DBus. It also consists
728 of utility objects which extend DBus allowing for peer-to-peer discoverability
729 of known objects without needing a central registrar.")
730 (home-page "https://launchpad.net/dee")
731 (license
732 ;; Dual-licensed
733 (list
734 license:lgpl3+
735 license:gpl3+))))
736
737 (define-public zeitgeist
738 (package
739 (name "zeitgeist")
740 (version "1.0.4")
741 (source
742 (origin
743 (method git-fetch)
744 (uri
745 (git-reference
746 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
747 (commit
748 (string-append "v" version))))
749 (file-name
750 (git-file-name name version))
751 (sha256
752 (base32 "07b1ahj3vd3m8srwkrh7dl3ymr7d55xiiszny44q13g06pq4svch"))))
753 (build-system glib-or-gtk-build-system)
754 (arguments
755 `(#:configure-flags
756 (list
757 "--enable-explain-queries"
758 "--enable-fts"
759 "--enable-docs")
760 #:phases
761 (modify-phases %standard-phases
762 (add-after 'unpack 'patch-docbook-xml
763 (lambda* (#:key inputs #:allow-other-keys)
764 (with-directory-excursion "doc/libzeitgeist"
765 (substitute* "zeitgeist-gtkdoc-index.sgml"
766 (("http://www.oasis-open.org/docbook/xml/4.3/")
767 (string-append (assoc-ref inputs "docbook-xml")
768 "/xml/dtd/docbook/"))))))
769 (add-after 'patch-docbook-xml 'disable-failing-tests
770 (lambda _
771 (substitute* "test/direct/Makefile.am"
772 ((" log-test ")
773 ""))
774 (substitute* "test/c/Makefile.am"
775 ((" test-log ")
776 ""))))
777 (add-before 'bootstrap 'remove-autogen-script
778 (lambda _
779 ;; To honor `autoreconf -vif` by build-system.
780 (delete-file "autogen.sh"))))))
781 (native-inputs
782 `(("autoconf" ,autoconf)
783 ("automake" ,automake)
784 ("docbook-xml" ,docbook-xml-4.3)
785 ("gettext" ,gettext-minimal)
786 ("gobject-introspection" ,gobject-introspection)
787 ("gtk-doc" ,gtk-doc/stable)
788 ("libtool" ,libtool)
789 ("pkg-config" ,pkg-config)
790 ("vala" ,vala)
791 ("xorg-server-for-tests" ,xorg-server-for-tests)))
792 (inputs
793 `(("dee-icu" ,dee)
794 ("gtk+" ,gtk+)
795 ("json-glib" ,json-glib)
796 ("sqlite" ,sqlite)
797 ("telepathy-glib" ,telepathy-glib)
798 ("python" ,python-wrapper)
799 ("python-rdflib" ,python-rdflib)
800 ("xapian-config" ,xapian)))
801 (propagated-inputs
802 (list glib))
803 (synopsis "Desktop Activity Logging")
804 (description "Zeitgeist is a service which logs the users’s activities and
805 events, anywhere from files opened to websites visited and conversations. It
806 makes this information readily available for other applications to use. It is
807 able to establish relationships between items based on similarity and usage
808 patterns.")
809 (home-page "https://zeitgeist.freedesktop.org/")
810 (license
811 ;; Dual-licensed
812 (list
813 license:lgpl2.1+
814 license:gpl2+))))
815
816 (define-public gnome-recipes
817 (package
818 (name "gnome-recipes")
819 (version "2.0.4")
820 (source (origin
821 (method git-fetch)
822 (uri (git-reference
823 (url "https://gitlab.gnome.org/GNOME/recipes")
824 (commit version)))
825 (file-name (git-file-name name version))
826 (sha256
827 (base32
828 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
829 (build-system meson-build-system)
830 (arguments
831 (list
832 #:glib-or-gtk? #t
833 #:phases
834 #~(modify-phases %standard-phases
835 (add-after 'unpack 'skip-gtk-update-icon-cache
836 (lambda _
837 (substitute* "meson_post_install.py"
838 (("gtk-update-icon-cache") (which "true")))))
839 (add-after 'unpack 'unpack-libgd
840 (lambda _
841 (copy-recursively
842 #$(origin
843 (method git-fetch)
844 (uri (git-reference
845 (url "https://gitlab.gnome.org/GNOME/libgd")
846 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
847 (file-name (git-file-name "libgd" version))
848 (sha256
849 (base32
850 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs")))
851 "subprojects/libgd"))))))
852 (inputs (list glib
853 gnome-autoar
854 gnome-online-accounts
855 gspell
856 gtk+
857 json-glib
858 libcanberra
859 libsoup
860 rest))
861 (native-inputs (list desktop-file-utils ;for update-desktop-database
862 gettext-minimal
863 `(,glib "bin")
864 itstool
865 pkg-config
866 python))
867 (home-page "https://wiki.gnome.org/Apps/Recipes")
868 (synopsis "Discover recipes for preparing food")
869 (description "GNOME Recipes helps you discover what to cook today,
870 tomorrow, the rest of the week and for special occasions.")
871 (license license:gpl3+)))
872
873 (define-public gnome-photos
874 (package
875 (name "gnome-photos")
876 (version "43.beta") ;for geocode-glib 2 support
877 (source
878 (origin
879 (method url-fetch)
880 (uri
881 (string-append "mirror://gnome/sources/" name "/"
882 (version-major version) "/"
883 name "-" version ".tar.xz"))
884 (sha256
885 (base32
886 "1pry45dy4sjw8y63vxw2b499brcxzpkd4hmg2vbqy538r79ah2g9"))))
887 (build-system meson-build-system)
888 (arguments
889 (list
890 #:glib-or-gtk? #t
891 #:configure-flags
892 #~(list "-Ddogtail=false" ; Not available
893 ;; Required for RUNPATH validation.
894 (string-append "-Dc_link_args=-Wl,-rpath="
895 #$output "/lib/gnome-photos"))
896 #:phases
897 #~(modify-phases %standard-phases
898 (add-after 'unpack 'disable-gtk-update-icon-cache
899 (lambda _
900 (setenv "DESTDIR" "/")))
901 (add-after 'install 'wrap-gnome-photos
902 (lambda* (#:key outputs #:allow-other-keys)
903 (wrap-program (search-input-file outputs "bin/gnome-photos")
904 `("GRL_PLUGIN_PATH" =
905 (,(getenv "GRL_PLUGIN_PATH")))))))))
906 (native-inputs
907 (list dbus
908 desktop-file-utils
909 gettext-minimal
910 git-minimal
911 `(,glib "bin")
912 gobject-introspection
913 gsettings-desktop-schemas
914 itstool
915 pkg-config))
916 (inputs
917 (list babl
918 cairo
919 gegl
920 geocode-glib
921 gexiv2
922 gfbgraph
923 gnome-online-accounts
924 gnome-online-miners
925 grilo
926 grilo-plugins
927 gtk+
928 libdazzle
929 libgdata
930 libhandy
931 libjpeg-turbo
932 libportal
933 libpng
934 librsvg
935 python-pygobject
936 rest
937 tracker
938 tracker-miners))
939 (synopsis "Access, organize and share your photos on GNOME desktop")
940 (description "GNOME Photos is a simple and elegant replacement for using a
941 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
942 cloud integration is offered through GNOME Online Accounts.")
943 (home-page "https://wiki.gnome.org/Apps/Photos")
944 (license license:gpl3+)))
945
946 (define-public gnome-music
947 (package
948 (name "gnome-music")
949 (version "42.1")
950 (source
951 (origin
952 (method url-fetch)
953 (uri
954 (string-append "mirror://gnome/sources/" name "/"
955 (version-major version) "/"
956 name "-" version ".tar.xz"))
957 (sha256
958 (base32
959 "0w42xnp6xy3sfakb4s0wq7xfg7p507whz5gzss5b2mkbm2k7yx67"))))
960 (build-system meson-build-system)
961 (arguments
962 `(#:glib-or-gtk? #t
963 #:phases
964 (modify-phases %standard-phases
965 (add-after 'unpack 'skip-gtk-update-icon-cache
966 ;; Don't create 'icon-theme.cache'.
967 (lambda _
968 (substitute* "meson.build"
969 (("gtk_update_icon_cache: true")
970 "gtk_update_icon_cache: false"))))
971 (add-after 'install 'wrap-gnome-music
972 (lambda* (#:key inputs outputs #:allow-other-keys)
973 (let*
974 ((out (assoc-ref outputs "out"))
975 (pylib (string-append out "/lib/python"
976 ,(version-major+minor
977 (package-version python))
978 "/site-packages")))
979 (wrap-program (string-append out "/bin/gnome-music")
980 `("GI_TYPELIB_PATH" =
981 (,(getenv "GI_TYPELIB_PATH")))
982 `("GST_PLUGIN_SYSTEM_PATH" =
983 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
984 `("GRL_PLUGIN_PATH" =
985 (,(getenv "GRL_PLUGIN_PATH")))
986 `("GUIX_PYTHONPATH" =
987 (,(getenv "GUIX_PYTHONPATH") ,pylib)))))))))
988 (native-inputs
989 (list desktop-file-utils
990 gettext-minimal
991 `(,glib "bin")
992 gobject-introspection
993 itstool
994 pkg-config))
995 (inputs
996 (list gnome-online-accounts
997 grilo
998 grilo-plugins
999 gst-plugins-base
1000 gst-plugins-good
1001 gstreamer
1002 gtk
1003 gvfs
1004 json-glib
1005 libadwaita
1006 libdazzle
1007 libmediaart
1008 libsoup-minimal-2
1009 python-pycairo
1010 python-pygobject
1011 python
1012 tracker
1013 tracker-miners))
1014 (synopsis "Simple music player for GNOME desktop")
1015 (description "GNOME Music is the new GNOME music playing application that
1016 aims to combine an elegant and immersive browsing experience with simple
1017 and straightforward controls.")
1018 (home-page "https://wiki.gnome.org/Apps/Music")
1019 (license license:gpl2+)))
1020
1021 (define-public portablexdr
1022 (package
1023 (name "portablexdr")
1024 (version "4.9.1")
1025 (source
1026 (origin
1027 (method url-fetch)
1028 (uri
1029 (string-append "https://people.redhat.com/~rjones/" name "/files/"
1030 name "-" version ".tar.gz"))
1031 (sha256
1032 (base32
1033 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1034 (build-system gnu-build-system)
1035 (synopsis "External Data Representation Library")
1036 (description "PortableXDR is an implementation of External Data
1037 Representation (XDR) Library. It is a standard data serialization format, for
1038 uses such as computer network protocols. It allows data to be transferred
1039 between different kinds of computer systems.")
1040 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1041 (license
1042 (list
1043 license:gpl2+
1044 license:lgpl2.1+))))
1045
1046 (define-public tepl
1047 (package
1048 (name "tepl")
1049 (version "6.1.2")
1050 (source
1051 (origin
1052 (method url-fetch)
1053 (uri
1054 (string-append "mirror://gnome/sources/" name "/"
1055 (version-major+minor version) "/"
1056 name "-" version ".tar.xz"))
1057 (sha256
1058 (base32
1059 "16x14j3nvsjj7jb2qmxpzygnlcy7sd7p6skv0sqshkwdlp4jxzha"))))
1060 (build-system meson-build-system)
1061 (arguments
1062 `(#:glib-or-gtk? #t
1063 #:phases (modify-phases %standard-phases
1064 (add-after 'unpack 'disable-problematic-tests
1065 (lambda _
1066 ;; Only keep unit tests, as the interactive tests have
1067 ;; other dependencies.
1068 (substitute* "tests/meson.build"
1069 ((".*'interactive-tests'.*") ""))))
1070 (add-before 'check 'start-xserver
1071 (lambda _
1072 (system "Xvfb :1 &")
1073 (setenv "DISPLAY" ":1"))))))
1074 (native-inputs
1075 (list `(,glib "bin")
1076 gobject-introspection
1077 gtk-doc
1078 libxml2
1079 pkg-config
1080 xorg-server-for-tests))
1081 (inputs
1082 (list uchardet))
1083 (propagated-inputs
1084 ;; These are all required by tepl6.pc.
1085 (list amtk
1086 glib
1087 gsettings-desktop-schemas
1088 gtk+
1089 gtksourceview-4))
1090 (synopsis "Text editor product line")
1091 (description "Tepl is a library that eases the development of
1092 GtkSourceView-based text editors and IDEs.")
1093 (home-page "https://wiki.gnome.org/Projects/Tepl")
1094 (license license:lgpl2.1+)))
1095
1096 (define-public krb5-auth-dialog
1097 (package
1098 (name "krb5-auth-dialog")
1099 (version "3.26.1")
1100 (source
1101 (origin
1102 (method url-fetch)
1103 (uri
1104 (string-append "mirror://gnome/sources/" name "/"
1105 (version-major+minor version) "/"
1106 name "-" version ".tar.xz"))
1107 (sha256
1108 (base32
1109 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1110 (build-system glib-or-gtk-build-system)
1111 (native-inputs
1112 (list intltool itstool libxml2 pkg-config python-wrapper))
1113 (inputs
1114 (list glib gtk+ libnotify mit-krb5 network-manager))
1115 (synopsis "Popup dialogs for Kerberos 5")
1116 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1117 tickets, and pops up a dialog when they are about to expire.")
1118 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1119 (license license:gpl2+)))
1120
1121 (define-public notification-daemon
1122 (package
1123 (name "notification-daemon")
1124 (version "3.20.0")
1125 (source
1126 (origin
1127 (method url-fetch)
1128 (uri
1129 (string-append "mirror://gnome/sources/" name "/"
1130 (version-major+minor version) "/"
1131 name "-" version ".tar.xz"))
1132 (sha256
1133 (base32
1134 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1135 (build-system glib-or-gtk-build-system)
1136 (native-inputs
1137 (list intltool pkg-config))
1138 (inputs
1139 (list glib gtk+ libx11))
1140 (synopsis "Notification Daemon for GNOME Desktop")
1141 (description "Notification-Daemon is the server implementation of the
1142 freedesktop.org desktop notification specification.")
1143 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1144 (license license:gpl2+)))
1145
1146 (define-public mm-common
1147 (package
1148 (name "mm-common")
1149 (version "1.0.3")
1150 (source (origin
1151 (method url-fetch)
1152 (uri (string-append "mirror://gnome/sources/mm-common/"
1153 (version-major+minor version) "/"
1154 "mm-common-" version ".tar.xz"))
1155 (sha256
1156 (base32
1157 "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
1158 (build-system meson-build-system)
1159 (arguments
1160 `(#:phases
1161 (modify-phases %standard-phases
1162 (add-after 'unpack 'patch
1163 (lambda* (#:key inputs #:allow-other-keys)
1164 (substitute* "util/mm-common-prepare.in"
1165 (("ln") (search-input-file inputs "/bin/ln"))
1166 (("cp") (search-input-file inputs "/bin/cp"))
1167 (("sed") (search-input-file inputs "/bin/sed"))
1168 (("cat") (search-input-file inputs "/bin/cat"))))))))
1169 (native-inputs
1170 `(("coreutils" ,coreutils)
1171 ("gettext" ,gettext-minimal)
1172 ("pkg-config" ,pkg-config)
1173 ("sed" ,sed)))
1174 (inputs
1175 (list python))
1176 (synopsis "Module of GNOME C++ bindings")
1177 (description "The mm-common module provides the build infrastructure
1178 and utilities shared among the GNOME C++ binding libraries. Release
1179 archives of mm-common include the Doxygen tag file for the GNU C++
1180 Library reference documentation.")
1181 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1182 (license license:gpl2+)))
1183
1184 (define-public phodav
1185 (package
1186 (name "phodav")
1187 (version "3.0")
1188 (source (origin
1189 (method url-fetch)
1190 (uri (string-append "mirror://gnome/sources/" name "/"
1191 (version-major+minor version) "/"
1192 name "-" version ".tar.xz"))
1193 (sha256
1194 (base32
1195 "1l9qs70yvwi9r8ph081mrsdy412kk0m9l9pgy77hsc2hdp8c4bir"))))
1196 (build-system meson-build-system)
1197 (arguments
1198 `(#:phases
1199 (modify-phases %standard-phases
1200 (add-after 'unpack 'fix-udev-rules-directory
1201 (lambda* (#:key outputs #:allow-other-keys)
1202 (let* ((out (assoc-ref outputs "out"))
1203 (rules (string-append out "/lib/udev/rules.d")))
1204 (substitute* "data/meson.build"
1205 (("udev\\.get_pkgconfig_variable\\('udevdir'\\)")
1206 (format #f "'~a'" rules))))))
1207 (add-before 'check 'set-temporary-home
1208 ;; Tests want to write into HOME.
1209 (lambda _
1210 (setenv "HOME" "/tmp"))))))
1211 (native-inputs
1212 (list docbook-xml-4.3
1213 gettext-minimal
1214 `(,glib "bin")
1215 gsettings-desktop-schemas
1216 gtk-doc/stable
1217 pkg-config))
1218 (inputs
1219 (list avahi
1220 libgudev
1221 libsoup))
1222 (synopsis "WebDav server implementation using libsoup")
1223 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1224 but it is generic enough to be reused in other projects,
1225 in particular in the GNOME desktop.")
1226 (home-page "https://wiki.gnome.org/phodav")
1227 (license license:lgpl2.1+)))
1228
1229 (define-public gnome-color-manager
1230 (package
1231 (name "gnome-color-manager")
1232 (version "3.36.0")
1233 (source (origin
1234 (method url-fetch)
1235 (uri (string-append "mirror://gnome/sources/" name "/"
1236 (version-major+minor version) "/"
1237 name "-" version ".tar.xz"))
1238 (sha256
1239 (base32
1240 "0fxdng74d8hwhfx1nwl1i4jx9h9f6c2hkyc12f01kqbjcimrxnwx"))))
1241 (build-system meson-build-system)
1242 (arguments
1243 `(#:glib-or-gtk? #t
1244 #:phases
1245 (modify-phases %standard-phases
1246 (add-before
1247 'check 'pre-check
1248 (lambda _
1249 ;; Tests require a running X server.
1250 (system "Xvfb :1 &")
1251 (setenv "DISPLAY" ":1")
1252 #t)))))
1253 (native-inputs
1254 `(("desktop-file-utils" ,desktop-file-utils)
1255 ("gettext" ,gettext-minimal)
1256 ("glib:bin" ,glib "bin")
1257 ("gtk+:bin" ,gtk+ "bin")
1258 ("itstool" ,itstool)
1259 ("pkg-config" ,pkg-config)
1260 ("xorg-server" ,xorg-server-for-tests)))
1261 (inputs
1262 (list adwaita-icon-theme
1263 appstream-glib
1264 colord-gtk
1265 exiv2
1266 gnome-desktop
1267 libcanberra
1268 libexif
1269 libtiff
1270 libxrandr
1271 libxtst
1272 libxxf86vm
1273 vte
1274 xorgproto))
1275 (synopsis "Color profile manager for the GNOME desktop")
1276 (description "GNOME Color Manager is a session framework that makes
1277 it easy to manage, install and generate color profiles
1278 in the GNOME desktop.")
1279 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1280 (license license:gpl2+)))
1281
1282 (define-public gnome-online-miners
1283 (package
1284 (name "gnome-online-miners")
1285 (version "3.34.0")
1286 (source (origin
1287 (method url-fetch)
1288 (uri (string-append "mirror://gnome/sources/" name "/"
1289 (version-major+minor version) "/"
1290 name "-" version ".tar.xz"))
1291 (sha256
1292 (base32
1293 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))
1294 (patches
1295 (search-patches
1296 "gnome-online-miners-tracker-3.patch"))))
1297 (build-system glib-or-gtk-build-system)
1298 (arguments
1299 `(#:phases
1300 (modify-phases %standard-phases
1301 (add-after 'unpack 'fix-configure
1302 (lambda _
1303 (substitute* "configure.ac"
1304 (("AX_CHECK_ENABLE_DEBUG.*")
1305 ""))))
1306 (add-after 'fix-configure 'autoreconf
1307 (lambda _
1308 (invoke "autoreconf" "-vif"))))))
1309 (native-inputs
1310 `(("autoconf" ,autoconf)
1311 ("automake" ,automake)
1312 ("gettext" ,gettext-minimal)
1313 ("glib:bin" ,glib "bin")
1314 ("gobject-introspection" ,gobject-introspection)
1315 ("gtk+:bin" ,gtk+ "bin")
1316 ("libtool" ,libtool)
1317 ("pkg-config" ,pkg-config)))
1318 (inputs
1319 `(("gnome-online-accounts" ,gnome-online-accounts)
1320 ("grilo" ,grilo)
1321 ("libgdata" ,libgdata)
1322 ("libgfbgraph" ,gfbgraph)
1323 ("libzapojit" ,libzapojit)
1324 ("rest" ,rest)
1325 ("tracker" ,tracker)))
1326 (synopsis "Web Crawlers for GNOME")
1327 (description "GNOME Online Miners provides a set of crawlers that
1328 go through your online content and index them locally in Tracker.
1329 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1330 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1331 (license license:gpl2+)))
1332
1333 (define-public gssdp
1334 (package
1335 (name "gssdp")
1336 (version "1.5.2")
1337 (source (origin
1338 (method url-fetch)
1339 (uri (string-append "mirror://gnome/sources/" name "/"
1340 (version-major+minor version) "/"
1341 name "-" version ".tar.xz"))
1342 (sha256
1343 (base32
1344 "07hn2xma2yh17v7rlvcaibkn16bx4l9qig3mlb8hdp6qfiraqh7b"))))
1345 (build-system meson-build-system)
1346 (native-inputs
1347 (list gettext-minimal
1348 `(,glib "bin")
1349 gi-docgen
1350 gobject-introspection
1351 pkg-config
1352 vala))
1353 (inputs
1354 (list gtk))
1355 (propagated-inputs
1356 ;; The .pc file "Requires" libsoup.
1357 (list libsoup))
1358 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1359 Protocol} for GNOME")
1360 (description "This package provides a library to handle resource discovery
1361 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1362 a debugging tool, @command{gssdp-device-sniffer}.")
1363 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1364 (license license:lgpl2.0+)))
1365
1366 (define-public gssdp-1.4
1367 (package
1368 (inherit gssdp)
1369 (name "gssdp")
1370 (version "1.4.0.1")
1371 (source (origin
1372 (method url-fetch)
1373 (uri (string-append "mirror://gnome/sources/" name "/"
1374 (version-major+minor version) "/"
1375 name "-" version ".tar.xz"))
1376 (sha256
1377 (base32
1378 "10hm8cgh2p8441xc83kswjgghrrqpzgblvc5523jp0pvayfq8xl6"))))
1379 (propagated-inputs (modify-inputs (package-propagated-inputs gssdp)
1380 (replace "libsoup" libsoup-minimal-2)))))
1381
1382 (define-public gupnp
1383 (package
1384 (name "gupnp")
1385 (version "1.5.4")
1386 (source (origin
1387 (method url-fetch)
1388 (uri (string-append "mirror://gnome/sources/" name "/"
1389 (version-major+minor version) "/"
1390 name "-" version ".tar.xz"))
1391 (sha256
1392 (base32
1393 "0y0v0m6afnx879hjvhj2lrawp9qhpyp8mbds0yp544imghajk0wq"))))
1394 (build-system meson-build-system)
1395 (arguments
1396 `(#:phases
1397 (modify-phases %standard-phases
1398 (add-before 'check 'pre-check
1399 (lambda _
1400 ;; Tests require a writable HOME.
1401 (setenv "HOME" (getcwd)))))))
1402 (native-inputs
1403 (list gettext-minimal
1404 `(,glib "bin")
1405 gobject-introspection
1406 gtk-doc/stable
1407 pkg-config
1408 vala))
1409 (propagated-inputs
1410 ;; These libraries are required by the .pc file.
1411 (list glib
1412 gsettings-desktop-schemas ;for ‘org.gnome.system.proxy’.
1413 gssdp
1414 libsoup
1415 libxml2))
1416 (synopsis "PnP API for GNOME")
1417 (description "This package provides GUPnP, an object-oriented framework
1418 for creating UPnP devices and control points, written in C using
1419 @code{GObject} and @code{libsoup}.")
1420 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1421 (license license:lgpl2.0+)))
1422
1423 (define-public gupnp-1.4
1424 (package
1425 (inherit gupnp)
1426 (name "gupnp")
1427 (version "1.4.0")
1428 (source (origin
1429 (method url-fetch)
1430 (uri (string-append "mirror://gnome/sources/" name "/"
1431 (version-major+minor version) "/"
1432 name "-" version ".tar.xz"))
1433 (sha256
1434 (base32
1435 "0vz3ifs8mi3zaz8zj8v27zfkf6xg82y39mcgqspa38jdp01gn3sr"))))
1436 (propagated-inputs (modify-inputs (package-propagated-inputs gupnp)
1437 (replace "libsoup" libsoup-minimal-2)
1438 (replace "gssdp" gssdp-1.4)))))
1439
1440 (define-public gupnp-dlna
1441 (package
1442 (name "gupnp-dlna")
1443 (version "0.12.0")
1444 (source (origin
1445 (method url-fetch)
1446 (uri (string-append "mirror://gnome/sources/" name "/"
1447 (version-major+minor version) "/"
1448 name "-" version ".tar.xz"))
1449 (sha256
1450 (base32
1451 "1rj8j2nz835slqs09bfp6hmyyf6v5azwjzin7v9jhmmwhmpvjlrx"))))
1452 (build-system meson-build-system)
1453 (native-inputs
1454 (list gettext-minimal
1455 `(,glib "bin")
1456 gobject-introspection
1457 gtk-doc/stable
1458 libxml2
1459 pkg-config
1460 vala))
1461 (inputs
1462 (list gstreamer gupnp))
1463 (propagated-inputs
1464 (list gst-plugins-base gst-plugins-good))
1465 (synopsis "GUPnP DLNA for GNOME")
1466 (description "This package provides a small utility library to
1467 support DLNA-related tasks such as media profile guessing, transcoding to a
1468 given profile, etc. DLNA is a subset of UPnP A/V.")
1469 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1470 (license license:lgpl2.0+)))
1471
1472 (define-public gupnp-av
1473 (package
1474 (name "gupnp-av")
1475 (version "0.14.1")
1476 (source (origin
1477 (method url-fetch)
1478 (uri (string-append "mirror://gnome/sources/" name "/"
1479 (version-major+minor version) "/"
1480 name "-" version ".tar.xz"))
1481 (sha256
1482 (base32
1483 "0kry7arwmvs8b4175wia3l0s02ap1shq68f29g2xjrhc9g6f175p"))))
1484 (build-system meson-build-system)
1485 (native-inputs
1486 (list gettext-minimal
1487 `(,glib "bin")
1488 gobject-introspection
1489 gtk-doc/stable
1490 libxml2
1491 pkg-config
1492 vala))
1493 (inputs
1494 (list gtk+ gupnp))
1495 (synopsis "GUPnP A/V for GNOME")
1496 (description "This package provides a small library for handling
1497 and implementation of UPnP A/V profiles.")
1498 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1499 (license license:lgpl2.0+)))
1500
1501 (define-public libmediaart
1502 (package
1503 (name "libmediaart")
1504 (version "1.9.6")
1505 (source (origin
1506 (method url-fetch)
1507 (uri (string-append "mirror://gnome/sources/" name "/"
1508 (version-major+minor version) "/"
1509 name "-" version ".tar.xz"))
1510 (sha256
1511 (base32
1512 "05vzcxm8fqizz77qzdxlsqb5lsqzc4681sy8z63haf6vswjm1g63"))))
1513 (build-system meson-build-system)
1514 (native-inputs
1515 (list `(,glib "bin")
1516 gettext-minimal
1517 gobject-introspection
1518 pkg-config
1519 vala))
1520 (inputs
1521 (list gdk-pixbuf))
1522 (synopsis "Media art library for the GNOME desktop")
1523 (description
1524 "The libmediaart library is the foundation for media art caching,
1525 extraction, and lookup for applications on the desktop.")
1526 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1527 (license license:lgpl2.1+)))
1528
1529 (define-public gnome-initial-setup
1530 (package
1531 (name "gnome-initial-setup")
1532 (version "42.2")
1533 (source (origin
1534 (method url-fetch)
1535 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1536 (version-major version)
1537 "/gnome-initial-setup-" version ".tar.xz"))
1538 (sha256
1539 (base32
1540 "0yxy39a7d2whphd0jskvra5q8zy4v7m7lziy5fxibgls4j5xk0sd"))))
1541 (build-system meson-build-system)
1542 (arguments
1543 (list
1544 #:configure-flags #~(list "-Dsystemd=false")
1545 #:glib-or-gtk? #t
1546 #:phases
1547 #~(modify-phases %standard-phases
1548 (add-after 'unpack 'set-gkbd-file-name
1549 (lambda* (#:key inputs #:allow-other-keys)
1550 ;; Allow the "Preview" button in the keyboard layout
1551 ;; selection dialog to display the layout.
1552 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1553 (("\"gkbd-keyboard-display")
1554 (string-append "\"" (search-input-file
1555 inputs
1556 "bin/gkbd-keyboard-display")))))))))
1557 (native-inputs
1558 (list gettext-minimal
1559 `(,glib "bin")
1560 gobject-introspection
1561 pkg-config))
1562 (inputs
1563 (list accountsservice
1564 cheese
1565 elogind
1566 gdm
1567 geoclue
1568 gnome-desktop
1569 gnome-online-accounts-3.44
1570 gstreamer
1571 ibus
1572 json-glib
1573 mit-krb5
1574 libgnomekbd
1575 libgweather4-with-libsoup2
1576 libhandy
1577 libnma
1578 libpwquality
1579 libsecret
1580 network-manager
1581 packagekit
1582 polkit
1583 rest
1584 upower
1585 webkitgtk-with-libsoup2))
1586 (synopsis "Initial setup wizard for GNOME desktop")
1587 (description "This package provides a set-up wizard when a
1588 user logs into GNOME for the first time. It typically provides a
1589 tour of all gnome components and allows the user to set them up.")
1590 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1591 (license license:gpl2)))
1592
1593 (define-public gnome-user-share
1594 (package
1595 (name "gnome-user-share")
1596 (version "3.34.0")
1597 (source (origin
1598 (method url-fetch)
1599 (uri (string-append "mirror://gnome/sources/" name "/"
1600 (version-major+minor version) "/"
1601 name "-" version ".tar.xz"))
1602 (sha256
1603 (base32
1604 "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x"))))
1605 (build-system meson-build-system)
1606 (arguments
1607 `(#:glib-or-gtk? #t
1608 #:meson ,meson-0.60
1609 #:configure-flags
1610 `("-Dsystemduserunitdir=/tmp/empty"
1611 ;; Enable nautilus extension for file sharing.
1612 "-Dnautilus_extension=true")))
1613 (native-inputs
1614 `(("gettext" ,gettext-minimal)
1615 ("glib:bin" ,glib "bin")
1616 ("gobject-introspection" ,gobject-introspection)
1617 ("gtk+:bin" ,gtk+ "bin")
1618 ("pkg-config" ,pkg-config)
1619 ("yelp-tools" ,yelp-tools)))
1620 (inputs
1621 (list glib
1622 gnome-bluetooth
1623 gtk+
1624 libcanberra
1625 libnotify
1626 nautilus)) ; For nautilus extension.
1627 (synopsis "File sharing for GNOME desktop")
1628 (description "GNOME User Share is a small package that binds together
1629 various free software projects to bring easy to use user-level file
1630 sharing to the masses.")
1631 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1632 (license license:gpl2+)))
1633
1634 (define-public sushi
1635 (package
1636 (name "sushi")
1637 (version "42.0")
1638 (source (origin
1639 (method url-fetch)
1640 (uri (string-append "mirror://gnome/sources/" name "/"
1641 (version-major version) "/"
1642 name "-" version ".tar.xz"))
1643 (sha256
1644 (base32
1645 "0848gidl0ab8i5pa70mv8jzchmd9kqa8sn1lg977hyasyixdpn25"))))
1646 (build-system meson-build-system)
1647 (arguments
1648 `(#:glib-or-gtk? #t
1649 #:phases
1650 (modify-phases %standard-phases
1651 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1652 (lambda* (#:key outputs #:allow-other-keys)
1653 (let ((prog (string-append (assoc-ref outputs "out")
1654 "/bin/sushi")))
1655 ;; Put existing typelibs before sushi's deps, so as to
1656 ;; correctly infer gdk-pixbuf.
1657 (wrap-program prog
1658 `("GI_TYPELIB_PATH" suffix
1659 (,(getenv "GI_TYPELIB_PATH"))))))))))
1660 (native-inputs
1661 (list `(,glib "bin")
1662 gettext-minimal
1663 gobject-introspection
1664 pkg-config))
1665 (inputs
1666 (list bash-minimal
1667 clutter
1668 clutter-gst
1669 clutter-gtk
1670 evince ; For file previewing.
1671 freetype
1672 gdk-pixbuf
1673 gjs
1674 gst-plugins-base
1675 gstreamer
1676 gtksourceview-4
1677 harfbuzz
1678 libepoxy
1679 libmusicbrainz
1680 libxml2
1681 neon
1682 webkitgtk))
1683 (synopsis "File previewer for the GNOME desktop")
1684 (description "Sushi is a DBus-activated service that allows applications
1685 to preview files on the GNOME desktop.")
1686 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1687 (license license:gpl2+)))
1688
1689 (define-public rygel
1690 (package
1691 (name "rygel")
1692 (version "0.41.2")
1693 (source (origin
1694 (method url-fetch)
1695 (uri (string-append "mirror://gnome/sources/" name "/"
1696 (version-major+minor version) "/"
1697 name "-" version ".tar.xz"))
1698 (sha256
1699 (base32
1700 "0wivd60hn115ar3hsrsa595kpxzp8gwq30ksh32qlq8j9dhlq65i"))))
1701 (build-system meson-build-system)
1702 (arguments
1703 ;; Disable the tracker plugin.
1704 '(#:configure-flags
1705 (list "-Dplugins=external,gst-launch,lms,media-export,
1706 mpris,playbin,ruih,tracker3")))
1707 (native-inputs
1708 (list gettext-minimal
1709 `(,glib "bin") ; for glib-compile-schemas, etc.
1710 gobject-introspection
1711 gtk-doc/stable
1712 pkg-config
1713 python
1714 vala
1715 docbook-xml
1716 docbook-xsl
1717 libxslt))
1718 (inputs
1719 (list gdk-pixbuf
1720 gssdp
1721 gstreamer
1722 gst-plugins-base
1723 gst-editing-services
1724 gtk+
1725 gupnp
1726 gupnp-av
1727 gupnp-dlna
1728 json-glib
1729 libgee
1730 libmediaart
1731 libsoup
1732 libxslt
1733 libunistring
1734 tracker))
1735 (synopsis "Share audio, video, and pictures with other devices")
1736 (description
1737 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1738 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1739 pictures, and to control a media player on your home network.
1740
1741 Rygel achieves interoperability with other devices by trying to conform to the
1742 strict requirements of DLNA and by converting media on-the-fly to formats that
1743 client devices can handle.")
1744 (home-page "https://wiki.gnome.org/Projects/Rygel")
1745 (license (list
1746 ;; For logo (data/icons/*).
1747 license:cc-by-sa3.0
1748 ;; For all others.
1749 license:lgpl2.1+))))
1750
1751 (define-public libnma
1752 (package
1753 (name "libnma")
1754 (version "1.10.2")
1755 (source (origin
1756 (method url-fetch)
1757 (uri (string-append "mirror://gnome/sources/" name "/"
1758 (version-major+minor version) "/"
1759 name "-" version ".tar.xz"))
1760 (sha256
1761 (base32
1762 "0h095a26w3sgbspsf7wzz8ddg62j3jb9ckrrv41k7cdp0k2dkhsg"))))
1763 (build-system meson-build-system)
1764 (arguments
1765 `(#:configure-flags (list "-Dlibnma_gtk4=true")
1766 #:phases
1767 (modify-phases %standard-phases
1768 (add-after 'unpack 'patch-docbook-xml
1769 (lambda* (#:key inputs #:allow-other-keys)
1770 (substitute* "libnma-docs.xml"
1771 (("http://.*/docbookx\\.dtd")
1772 (search-input-file
1773 inputs "xml/dtd/docbook/docbookx.dtd"))))))))
1774 (native-inputs
1775 (list docbook-xml-4.3
1776 gettext-minimal
1777 `(,glib "bin")
1778 gtk-doc/stable
1779 gobject-introspection
1780 pkg-config
1781 vala))
1782 (inputs
1783 (list gcr
1784 gtk
1785 iso-codes
1786 mobile-broadband-provider-info
1787 network-manager))
1788 (synopsis "Network Manager's applet library")
1789 (description "Libnma is an applet library for Network Manager. It was
1790 initially part of network-manager-applet and has now become a separate
1791 project.")
1792 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1793 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1794 ;; "LGPL-2.1+".
1795 (license license:gpl2+)))
1796
1797 (define-public gnome-menus
1798 (package
1799 (name "gnome-menus")
1800 (version "3.36.0")
1801 (source (origin
1802 (method url-fetch)
1803 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1804 (version-major+minor version) "/"
1805 name "-" version ".tar.xz"))
1806 (sha256
1807 (base32
1808 "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r"))))
1809 (build-system gnu-build-system)
1810 (native-inputs
1811 (list gettext-minimal glib pkg-config))
1812 (synopsis "Menu support for GNOME desktop")
1813 (description "GNOME Menus contains the libgnome-menu library, the layout
1814 configuration files for the GNOME menu, as well as a simple menu editor.")
1815 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1816 (license license:lgpl2.0+)))
1817
1818 (define-public deja-dup
1819 (package
1820 (name "deja-dup")
1821 (version "43.4")
1822 (source (origin
1823 (method url-fetch)
1824 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1825 version "/deja-dup-" version ".tar.bz2"))
1826 (sha256
1827 (base32
1828 "1mr2g009w0zm5rj8dg1k77c7zdwylih2yszm8vh8wkw6al6bzfh3"))))
1829 (build-system meson-build-system)
1830 (arguments
1831 `(#:glib-or-gtk? #t
1832 #:configure-flags
1833 (list
1834 ;; Otherwise, the RUNPATH will lack the final path component.
1835 (string-append "-Dc_link_args=-Wl,-rpath="
1836 (assoc-ref %outputs "out") "/lib/deja-dup"))
1837 #:phases
1838 (modify-phases %standard-phases
1839 (add-after 'unpack 'patch-paths
1840 (lambda* (#:key inputs #:allow-other-keys)
1841 (let ((python (assoc-ref inputs "python")))
1842 (substitute* '("libdeja/duplicity/DuplicityInstance.vala"
1843 "libdeja/tests/scripts/instance-error.test")
1844 (("/bin/rm")
1845 (which "rm")))
1846 (substitute* "libdeja/tests/runner.vala"
1847 (("/bin/sh")
1848 (which "sh")))
1849 (substitute* "libdeja/tests/scripts/instance-error.test"
1850 (("`which python3`")
1851 (string-append python "/bin/python3"))))))
1852 (add-after 'unpack 'patch-libgpg-error
1853 (lambda* (#:key inputs #:allow-other-keys)
1854 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1855 (substitute* "meson.build"
1856 (("(gpgerror_libs = ).*" _ var)
1857 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))))
1858 (add-after 'install 'wrap-program
1859 (lambda* (#:key inputs outputs #:allow-other-keys)
1860 ;; Add duplicity to the search path
1861 (wrap-program (string-append (assoc-ref outputs "out")
1862 "/bin/deja-dup")
1863 `("PATH" ":" prefix
1864 (,(string-append (assoc-ref inputs "duplicity") "/bin")))))))))
1865 (inputs
1866 (list bash-minimal
1867 duplicity
1868 gsettings-desktop-schemas
1869 gtk
1870 json-glib
1871 libadwaita
1872 libgpg-error
1873 libnotify
1874 libsecret
1875 libsoup
1876 libhandy
1877 packagekit
1878 python
1879 python-pygobject))
1880 (native-inputs
1881 (list appstream-glib
1882 desktop-file-utils
1883 gettext-minimal
1884 `(,glib "bin") ;for glib-compile-schemas
1885 gobject-introspection
1886 `(,gtk "bin") ;for gtk-update-icon-cache
1887 itstool
1888 pkg-config
1889 vala))
1890 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1891 (synopsis "Simple backup tool, for regular encrypted backups")
1892 (description
1893 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1894 uses duplicity as the backend, which supports incremental backups and storage
1895 either on a local, or remote machine via a number of methods.")
1896 (license license:gpl3+)))
1897
1898 (define-public gnome-commander
1899 (package
1900 (name "gnome-commander")
1901 (version "1.14.3")
1902 (source
1903 (origin
1904 (method url-fetch)
1905 (uri (string-append "mirror://gnome/sources/" name "/"
1906 (version-major+minor version) "/"
1907 "gnome-commander-" version ".tar.xz"))
1908 (sha256
1909 (base32 "0yzx9slg632iflw9p96nlh9i50dhacq7hrzpkj8b48mr1zkxrn3q"))))
1910 (build-system glib-or-gtk-build-system)
1911 (native-inputs
1912 (list desktop-file-utils
1913 flex
1914 gettext-minimal
1915 `(,glib "bin")
1916 gobject-introspection
1917 googletest
1918 intltool
1919 itstool
1920 libtool
1921 pkg-config))
1922 (inputs
1923 (list gconf glib gtk+-2 libxml2))
1924 (home-page "https://gcmd.github.io/")
1925 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1926 (description
1927 "GNOME Commander is a two-pane graphical file manager using GNOME
1928 libraries. It aims to fulfill the demands of more advanced users who
1929 like to focus on file management, their work through special applications
1930 and running smart commands.")
1931 (license license:gpl2+)))
1932
1933 (define-public gnome-user-docs
1934 (package
1935 (name "gnome-user-docs")
1936 (version "42.0")
1937 (source
1938 (origin
1939 (method url-fetch)
1940 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1941 (version-major version)
1942 "/gnome-user-docs-" version ".tar.xz"))
1943 (sha256
1944 (base32 "01g9smkk2sj3yrih2wjn6vx9av855n7w6nqf9wpxvfq086h7vcmj"))))
1945 (build-system gnu-build-system)
1946 (native-inputs
1947 (list gettext-minimal itstool pkg-config libxml2))
1948 (synopsis "User documentation for the GNOME desktop")
1949 (description
1950 "The GNOME User Documentation explains how to use the GNOME desktop and its
1951 components. It covers usage and setup of the core GNOME programs by end-users
1952 and system administrators.")
1953 (home-page "https://live.gnome.org/DocumentationProject")
1954 (license license:cc-by3.0)))
1955
1956 (define-public dia
1957 ;; This version from GNOME's repository includes fixes for compiling with
1958 ;; recent versions of the build tools. The latest activity on the
1959 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1960 ;; fixes since.
1961 (let ((commit "0997887d97f01be28bf3886dfd3e2002de437930")
1962 (revision "3"))
1963 (package
1964 (name "dia")
1965 (version (git-version "0.97.3" revision commit))
1966 (source (origin
1967 (method git-fetch)
1968 (uri (git-reference
1969 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1970 (commit commit)))
1971 (file-name (git-file-name name version))
1972 (sha256
1973 (base32
1974 "199b4n1jydg1g9lnz0r8xx67h7s2ac2lfj89zp015lbs0qqfkmsh"))))
1975 (build-system meson-build-system)
1976 ;; XXX: Parallel builds may cause: [74/566] [...]
1977 ;; fatal error: dia-lib-enums.h: No such file or directory
1978 (arguments '(#:parallel-build? #f))
1979 (inputs
1980 (list graphene
1981 gtk+-2
1982 libxml2
1983 libxslt
1984
1985 ;; XXX: PDF plugin fails to build with poppler 21.07.0.
1986 ;; poppler
1987
1988 python))
1989 (native-inputs
1990 (list appstream-glib docbook-xsl
1991 `(,glib "bin") gettext-minimal pkg-config))
1992 (home-page "https://wiki.gnome.org/Apps/Dia")
1993 (synopsis "Diagram creation for GNOME")
1994 (description "Dia can be used to draw different types of diagrams, and
1995 includes support for UML static structure diagrams (class diagrams), entity
1996 relationship modeling, and network diagrams. The program supports various file
1997 formats like PNG, SVG, PDF and EPS.")
1998 (license license:gpl2+))))
1999
2000 (define-public libgdata
2001 (package
2002 (name "libgdata")
2003 (version "0.18.1")
2004 (source (origin
2005 (method url-fetch)
2006 (uri (string-append "mirror://gnome/sources/" name "/"
2007 (version-major+minor version) "/"
2008 name "-" version ".tar.xz"))
2009 (sha256
2010 (base32
2011 "1iq4d1qy0vkmy29xvr13dgz4pxvn5v3yi2swryld0ajinvp951fx"))))
2012 (build-system meson-build-system)
2013 (arguments
2014 '(#:phases
2015 (modify-phases %standard-phases
2016 (add-before 'check 'set-home-for-tests
2017 (lambda _
2018 (setenv "HOME" "/tmp"))))))
2019 (native-inputs
2020 `(("glib:bin" ,glib "bin")
2021 ("gobject-introspection" ,gobject-introspection)
2022 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2023 ("intltool" ,intltool)
2024 ("pkg-config" ,pkg-config)
2025 ("uhttpmock" ,uhttpmock)))
2026 (inputs
2027 (list cyrus-sasl glib-networking vala))
2028 (propagated-inputs
2029 `(("gcr" ,gcr)
2030 ("glib" ,glib)
2031 ("gnome-online-accounts" ,gnome-online-accounts)
2032 ("json-glib" ,json-glib)
2033 ("liboauth" ,liboauth)
2034 ("libsoup" ,libsoup-minimal-2)
2035 ("libxml2" ,libxml2)))
2036 (home-page "https://wiki.gnome.org/Projects/libgdata")
2037 (synopsis "Library for accessing online service APIs")
2038 (description
2039 "libgdata is a GLib-based library for accessing online service APIs using
2040 the GData protocol — most notably, Google's services. It provides APIs to
2041 access the common Google services, and has full asynchronous support.")
2042 (license license:lgpl2.1+)))
2043
2044 (define-public libgxps
2045 (package
2046 (name "libgxps")
2047 (version "0.3.2")
2048 (source (origin
2049 (method url-fetch)
2050 (uri (string-append "mirror://gnome/sources/" name "/"
2051 (version-major+minor version) "/"
2052 name "-" version ".tar.xz"))
2053 (sha256
2054 (base32
2055 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
2056 (build-system meson-build-system)
2057 (native-inputs
2058 (list gobject-introspection pkg-config))
2059 (inputs
2060 (list gtk+ libjpeg-turbo lcms libtiff))
2061 (propagated-inputs
2062 ;; In Requires of libgxps.pc.
2063 (list cairo glib libarchive))
2064 (home-page "https://wiki.gnome.org/Projects/libgxps")
2065 (synopsis "GObject-based library for handling and rendering XPS documents")
2066 (description
2067 "libgxps is a GObject-based library for handling and rendering XPS
2068 documents. This package also contains binaries that can convert XPS documents
2069 to other formats.")
2070 (license license:lgpl2.1+)))
2071
2072 (define-public gnome-characters
2073 (package
2074 (name "gnome-characters")
2075 (version "42.0")
2076 (source
2077 (origin
2078 (method url-fetch)
2079 (uri (string-append "mirror://gnome/sources/"
2080 "gnome-characters/" (version-major version)
2081 "/gnome-characters-" version ".tar.xz"))
2082 (sha256
2083 (base32
2084 "1y40g7k7yyzikbbxhf69q4c0221lga1cli1p617v99pq2swgz82x"))))
2085 (build-system meson-build-system)
2086 (arguments
2087 (list
2088 #:glib-or-gtk? #t
2089 #:phases #~(modify-phases %standard-phases
2090 (add-after 'unpack 'disable-gtk-update-icon-cache
2091 (lambda _
2092 (setenv "DESTDIR" "/")))
2093 (add-after 'install 'wrap
2094 (lambda* (#:key outputs #:allow-other-keys)
2095 ;; GNOME Characters needs Typelib files from GTK and
2096 ;; gnome-desktop.
2097 (wrap-program (search-input-file outputs
2098 "bin/gnome-characters")
2099 `("GI_TYPELIB_PATH" ":" prefix
2100 (,(getenv "GI_TYPELIB_PATH")))))))))
2101 (native-inputs
2102 (list gettext-minimal
2103 `(,glib "bin")
2104 pkg-config
2105 python-minimal))
2106 (inputs
2107 (list gjs
2108 gnome-desktop
2109 gtk
2110 libadwaita
2111 libhandy
2112 libunistring))
2113 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2114 (synopsis "Find and insert unusual characters")
2115 (description "Characters is a simple utility application to find
2116 and insert unusual characters. It allows you to quickly find the
2117 character you are looking for by searching for keywords.")
2118 (license license:bsd-3)))
2119
2120 (define-public gnome-common
2121 (package
2122 (name "gnome-common")
2123 (version "3.18.0")
2124 (source
2125 (origin
2126 (method url-fetch)
2127 (uri (string-append "mirror://gnome/sources/" name "/"
2128 (version-major+minor version) "/"
2129 name "-" version ".tar.xz"))
2130 (sha256
2131 (base32
2132 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2133 (build-system gnu-build-system)
2134 (home-page "https://www.gnome.org/")
2135 (synopsis "Bootstrap GNOME modules built from Git")
2136 (description "gnome-common contains various files needed to bootstrap
2137 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2138 can be used to configure a source directory checked out from Git and some
2139 commonly used macros.")
2140 (license license:gpl2+)))
2141
2142 (define-public gnome-contacts
2143 (package
2144 (name "gnome-contacts")
2145 (version "42.0")
2146 (source (origin
2147 (method url-fetch)
2148 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2149 (version-major version) "/"
2150 name "-" version ".tar.xz"))
2151 (sha256
2152 (base32
2153 "05jj5kiab13crm18r166w7h31jpny7f3px98q7d2ix93vj7w60l8"))))
2154 (build-system meson-build-system)
2155 (arguments
2156 `(#:glib-or-gtk? #t
2157 #:phases
2158 (modify-phases %standard-phases
2159 (add-after 'unpack 'skip-gtk-update-icon-cache
2160 (lambda _
2161 (substitute* "meson.build"
2162 (("gtk_update_icon_cache: true")
2163 "gtk_update_icon_cache: false")))))))
2164 (native-inputs
2165 (list desktop-file-utils
2166 docbook-xml
2167 docbook-xml-4.2
2168 docbook-xsl
2169 gettext-minimal
2170 `(,glib "bin")
2171 gobject-introspection
2172 libxslt
2173 pkg-config))
2174 (inputs
2175 (list evolution-data-server-3.44
2176 gnome-desktop
2177 gnome-online-accounts-3.44
2178 gst-plugins-base
2179 gtk
2180 libadwaita
2181 libgee
2182 libhandy
2183 libportal
2184 telepathy-glib
2185 vala))
2186 (propagated-inputs
2187 (list folks-with-libsoup2
2188 telepathy-mission-control))
2189 (synopsis "GNOME's integrated address book")
2190 (description
2191 "GNOME Contacts organizes your contact information from online and
2192 offline sources, providing a centralized place for managing your contacts.")
2193 (home-page "https://wiki.gnome.org/Apps/Contacts")
2194 (license license:gpl2+)))
2195
2196 (define-public gnome-desktop
2197 (package
2198 (name "gnome-desktop")
2199 (version "42.4")
2200 (source
2201 (origin
2202 (method url-fetch)
2203 (uri (string-append "mirror://gnome/sources/" name "/"
2204 (version-major version) "/"
2205 name "-" version ".tar.xz"))
2206 (sha256
2207 (base32
2208 "09ddr5fzhh02fcn7xl1wy18qfsdqryd5msl2nbhdnsbr0vawkqhw"))))
2209 (build-system meson-build-system)
2210 (arguments
2211 '(#:phases
2212 (modify-phases %standard-phases
2213 (add-before 'configure 'patch-path
2214 (lambda* (#:key inputs #:allow-other-keys)
2215 (substitute* "libgnome-desktop/gnome-languages.c"
2216 (("\"locale\"")
2217 (format #f "~s" (search-input-file inputs "bin/locale"))))))
2218 (add-before 'configure 'patch-bubblewrap
2219 (lambda* (#:key inputs #:allow-other-keys)
2220 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2221 (("\"bwrap\",")
2222 (string-append "\"" (which "bwrap") "\","))
2223 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2224 (string-append "\"--ro-bind\", \""
2225 (%store-directory)
2226 "\", \""
2227 (%store-directory)
2228 "\","))
2229 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",")
2230 ""))))
2231 (add-before 'check 'pre-check
2232 (lambda* (#:key inputs #:allow-other-keys)
2233 ;; Tests require a running X server and locales.
2234 (system "Xvfb :1 &")
2235 (setenv "DISPLAY" ":1")
2236 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
2237 (setenv "XDG_CONFIG_HOME" "/tmp")
2238 (setenv "GUIX_LOCPATH"
2239 (search-input-directory inputs
2240 "lib/locale")))))))
2241 (native-inputs
2242 (list `(,glib "bin") ;for gdbus-codegen
2243 glibc-locales ;for tests
2244 gobject-introspection
2245 itstool
2246 intltool
2247 pkg-config
2248 libxml2
2249 xorg-server-for-tests))
2250 (propagated-inputs
2251 ;; Required by gnome-desktop-3.0.pc.
2252 (list gsettings-desktop-schemas-next
2253 gtk
2254 gtk+
2255 iso-codes
2256 libseccomp
2257 libx11
2258 xkeyboard-config))
2259 (inputs
2260 (list bubblewrap
2261 gdk-pixbuf
2262 glib
2263 libxext
2264 libxkbfile
2265 libxrandr))
2266 (home-page "https://www.gnome.org/")
2267 (synopsis
2268 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2269 (description
2270 "The libgnome-desktop library provides API shared by several applications
2271 on the desktop, but that cannot live in the platform for various reasons.
2272 There is no API or ABI guarantee, although we are doing our best to provide
2273 stability. Documentation for the API is available with gtk-doc.
2274
2275 The gnome-about program helps find which version of GNOME is installed.")
2276 ; Some bits under the LGPL.
2277 (license license:gpl2+)))
2278
2279 (define-public gnome-disk-utility
2280 (package
2281 (name "gnome-disk-utility")
2282 (version "42.0")
2283 (source (origin
2284 (method url-fetch)
2285 (uri (string-append "mirror://gnome/sources/" name "/"
2286 (version-major version) "/"
2287 name "-" version ".tar.xz"))
2288 (sha256
2289 (base32
2290 "02q906gn420xbf1f0apazryzqfv5b1ammz1vrci66hk79m2n8r8v"))))
2291 (build-system meson-build-system)
2292 (arguments
2293 `(#:configure-flags '("-Dlogind=libelogind")
2294 #:phases
2295 (modify-phases %standard-phases
2296 (add-after 'unpack 'skip-gtk-update-icon-cache
2297 ;; Don't create 'icon-theme.cache'.
2298 (lambda _
2299 (substitute* "meson_post_install.py"
2300 (("gtk-update-icon-cache") "true")))))))
2301 (native-inputs
2302 (list docbook-xml
2303 docbook-xsl
2304 `(,glib "bin")
2305 gettext-minimal
2306 pkg-config
2307 libxml2
2308 libxslt))
2309 (inputs
2310 (list elogind
2311 glib
2312 appstream-glib
2313 gnome-settings-daemon
2314 gtk+
2315 libcanberra
2316 libdvdread
2317 libhandy
2318 libnotify
2319 libpwquality
2320 libsecret
2321 udisks))
2322 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2323 (synopsis "Disk management utility for GNOME")
2324 (description "Disk management utility for GNOME.")
2325 (license license:gpl2+)))
2326
2327 (define-public gnome-font-viewer
2328 (package
2329 (name "gnome-font-viewer")
2330 (version "42.0")
2331 (source (origin
2332 (method url-fetch)
2333 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2334 (version-major version)
2335 "/gnome-font-viewer-" version ".tar.xz"))
2336 (sha256
2337 (base32
2338 "1k4dhk5dmkpxb5xpr9vrl7k2fdpi2fidzni1l2hhb891zzgvi8ng"))))
2339 (build-system meson-build-system)
2340 (arguments
2341 (list
2342 #:phases
2343 #~(modify-phases %standard-phases
2344 (add-after 'unpack 'patch-post-install-script
2345 (lambda _
2346 (substitute* "meson-postinstall.sh"
2347 (("update-desktop-database") (which "true")))))
2348 (add-after 'install 'patch-thumbnailer
2349 (lambda* (#:key outputs #:allow-other-keys)
2350 (substitute*
2351 (search-input-file
2352 outputs "share/thumbnailers/gnome-font-viewer.thumbnailer")
2353 (("gnome-thumbnail-font")
2354 (search-input-file outputs "bin/gnome-thumbnail-font"))))))))
2355 (native-inputs
2356 (list gettext-minimal
2357 `(,glib "bin")
2358 pkg-config))
2359 (inputs
2360 (list glib
2361 gnome-desktop
2362 gtk
2363 libadwaita
2364 libhandy
2365 libxml2))
2366 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2367 (synopsis "GNOME Fonts")
2368 (description "Application to show you the fonts installed on your computer
2369 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2370 the font would look under various sizes.")
2371 (license license:gpl2+)))
2372
2373 (define-public gcr
2374 (package
2375 (name "gcr")
2376 (version "3.41.1")
2377 (source (origin
2378 (method url-fetch)
2379 (uri (string-append "mirror://gnome/sources/" name "/"
2380 (version-major+minor version) "/"
2381 name "-" version ".tar.xz"))
2382 (sha256
2383 (base32
2384 "0kx2pv272p0qc0nq1287gciyn34d95yxg41vq3lzxfzyqaijhwdv"))))
2385 (build-system meson-build-system)
2386 (arguments
2387 (list
2388 #:phases
2389 #~(modify-phases %standard-phases
2390 (add-after 'unpack 'remove-fatal-warnings-option
2391 ;; Otherwise, the gi-docgen tool would fail because of the
2392 ;; "Fontconfig error: No writable cache directories" warnings.
2393 (lambda _
2394 (substitute* (find-files "." "^meson\\.build$")
2395 ((".*'--fatal-warnings',.*") ""))))
2396 (add-after 'unpack 'skip-gtk-update-icon-cache
2397 ;; Don't create 'icon-theme.cache'.
2398 (lambda _
2399 (substitute* "meson_post_install.py"
2400 (("gtk-update-icon-cache") "true"))))
2401 (add-before 'check 'pre-check
2402 (lambda _
2403 ;; Some tests expect to write to $HOME.
2404 (setenv "HOME" "/tmp")))
2405 (replace 'check
2406 (lambda* (#:key parallel-tests? tests? #:allow-other-keys)
2407 (when tests?
2408 (setenv "MESON_TESTTHREADS"
2409 (if parallel-tests?
2410 (number->string (parallel-job-count))
2411 "1"))
2412 ;; Work around the "mock prompter couldn't get session bus
2413 ;; address: Cannot spawn a message bus without a machine-id"
2414 ;; error by manually creating the session bus via
2415 ;; 'dbus-run-session'.
2416 (invoke "dbus-run-session" "--"
2417 "meson" "test" "-t" "0")))))))
2418 (inputs
2419 (list dbus
2420 gnupg
2421 libgcrypt
2422 libsecret))
2423 (native-inputs
2424 (list gettext-minimal
2425 gi-docgen
2426 `(,glib "bin")
2427 gobject-introspection
2428 gtk-doc
2429 libxml2
2430 libxslt
2431 openssh
2432 pkg-config
2433 python-wrapper
2434 vala))
2435 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2436 (propagated-inputs
2437 (list glib
2438 gtk+
2439 p11-kit))
2440 (home-page "https://www.gnome.org")
2441 (synopsis "Libraries for displaying certificates and accessing key stores")
2442 (description
2443 "The GCR package contains libraries used for displaying certificates and
2444 accessing key stores. It also provides the viewer for crypto files on the
2445 GNOME Desktop.")
2446 (license license:lgpl2.1+)))
2447
2448 (define-public gdl
2449 (package
2450 (name "gdl")
2451 (version "3.34.0")
2452 (source (origin
2453 (method git-fetch)
2454 (uri (git-reference
2455 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2456 (commit (string-append "GDL_" (string-map (match-lambda
2457 (#\. #\_)
2458 (c c))
2459 version)))))
2460 (file-name (git-file-name name version))
2461 (sha256
2462 (base32
2463 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2464 (build-system gnu-build-system)
2465 (native-inputs
2466 (list autoconf
2467 automake
2468 `(,glib "bin") ; for glib-genmarshal, etc.
2469 gnome-common
2470 gtk-doc/stable
2471 intltool
2472 pkg-config
2473 libtool
2474 which))
2475 (inputs
2476 (list libxml2))
2477 (propagated-inputs
2478 ;; The gdl-3.0.pc file 'Requires' GTK+.
2479 (list gtk+))
2480 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2481 (synopsis "GNOME docking library")
2482 (description "This library provides docking features for gtk+.")
2483 (license license:lgpl2.1+)))
2484
2485 ;;; A minimal variant used to break a cycle with Inkscape.
2486 (define-public gdl-minimal
2487 (package/inherit gdl
2488 (name "gdl-minimal")
2489 (arguments
2490 '(#:phases
2491 (modify-phases %standard-phases
2492 (add-after 'unpack 'disable-doc-generation
2493 ;; XXX: There is no easy way to disable generating the
2494 ;; documentation.
2495 (lambda _
2496 (substitute* "configure.in"
2497 (("GTK_DOC_CHECK.*") "")
2498 (("docs/.*") ""))
2499 (substitute* "Makefile.am"
2500 (("gdl docs po") "gdl po"))
2501 #t)))))
2502 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2503
2504 (define-public libgnome-keyring
2505 (package
2506 (name "libgnome-keyring")
2507 (version "3.12.0")
2508 (source (origin
2509 (method url-fetch)
2510 (uri (string-append "mirror://gnome/sources/" name "/"
2511 (version-major+minor version) "/"
2512 name "-" version ".tar.xz"))
2513 (sha256
2514 (base32
2515 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2516 (build-system gnu-build-system)
2517 (inputs
2518 (list libgcrypt dbus))
2519 (native-inputs
2520 (list pkg-config
2521 `(,glib "bin") intltool))
2522 (propagated-inputs
2523 ;; Referred to in .h files and .pc.
2524 (list glib))
2525 (home-page "https://www.gnome.org")
2526 (synopsis "Accessing passwords from the GNOME keyring")
2527 (description
2528 "Client library to access passwords from the GNOME keyring.")
2529
2530 ;; Though a couple of files are LGPLv2.1+.
2531 (license license:lgpl2.0+)))
2532
2533 (define-public gnome-keyring
2534 (package
2535 (name "gnome-keyring")
2536 (version "42.1")
2537 (source (origin
2538 (method url-fetch)
2539 (uri (string-append "mirror://gnome/sources/" name "/"
2540 (version-major version) "/"
2541 name "-" version ".tar.xz"))
2542 (sha256
2543 (base32
2544 "1rp38v4s9116ivycp27w806wihqid48gk3p0czzbg9knri0d1x67"))))
2545 (build-system gnu-build-system)
2546 (arguments
2547 (list
2548 #:configure-flags
2549 #~(list
2550 (string-append "--with-pkcs11-config="
2551 #$output "/share/p11-kit/modules/")
2552 (string-append "--with-pkcs11-modules="
2553 #$output "/share/p11-kit/modules/"))
2554 #:phases
2555 #~(modify-phases %standard-phases
2556 (add-after 'unpack 'fix-/bin/sh-reference
2557 (lambda _
2558 (substitute* "po/Makefile.in.in"
2559 (("/bin/sh") (which "sh")))))
2560 (delete 'check)
2561 (add-after 'install 'check
2562 (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
2563 (when tests?
2564 (setenv "HOME" "/tmp") ;some tests require a writable HOME
2565 (setenv "XDG_DATA_DIRS" (string-append (getenv "XDG_DATA_DIRS")
2566 ":" #$output "/share"))
2567 (invoke "dbus-run-session" "make" "check" "-j"
2568 (if parallel-tests?
2569 (number->string (parallel-job-count))
2570 "1"))))))))
2571 (inputs
2572 (list dbus
2573 gcr
2574 libgcrypt
2575 linux-pam
2576 openssh))
2577 (native-inputs
2578 (list dbus ;for tests
2579 docbook-xml-4.3
2580 docbook-xml
2581 docbook-xsl
2582 gettext-minimal
2583 `(,glib "bin")
2584 glib ;for m4 macros
2585 libxml2 ;for XML_CATALOG_FILES
2586 libxslt ;for documentation
2587 pkg-config
2588 python-wrapper)) ;for tests
2589 (propagated-inputs
2590 (list gcr))
2591 (home-page "https://www.gnome.org")
2592 (synopsis "Daemon to store passwords and encryption keys")
2593 (description
2594 "@command{gnome-keyring} is a program that keeps passwords and other
2595 secrets for users. It is run as a daemon in the session, similar to
2596 @command{ssh-agent}, and other applications locate it via an environment
2597 variable or D-Bus.
2598
2599 The program can manage several keyrings, each with its own master password,
2600 and there is also a session keyring which is never stored to disk, but
2601 forgotten when the session ends.")
2602 (license license:lgpl2.1+)))
2603
2604 (define-public evince
2605 (package
2606 (name "evince")
2607 (version "42.3")
2608 (source (origin
2609 (method url-fetch)
2610 (uri "mirror://gnome/sources/evince/42/evince-42.3.tar.xz")
2611 (sha256
2612 (base32
2613 "0pk42icnf4kdcaqaj17mcf4sxi82h1fdg2ds2zdrcv4lbj2czbj9"))))
2614 (build-system meson-build-system)
2615 (arguments
2616 `(#:glib-or-gtk? #t
2617 #:build-type "release"
2618 #:configure-flags '("-Dnautilus=false")
2619 #:phases
2620 (modify-phases %standard-phases
2621 (add-after 'unpack 'skip-gtk-update-icon-cache
2622 ;; Don't create 'icon-theme.cache'.
2623 (lambda _
2624 (substitute* "meson_post_install.py"
2625 (("gtk-update-icon-cache") "true")))))))
2626 (inputs
2627 (list libarchive
2628 libgxps
2629 libspectre
2630 djvulibre
2631 ghostscript
2632 poppler
2633 libtiff
2634 texlive-libkpathsea ; for DVI support
2635 gnome-desktop
2636 gsettings-desktop-schemas
2637 gspell
2638 libgnome-keyring
2639 adwaita-icon-theme
2640 gdk-pixbuf
2641 atk
2642 pango
2643 gtk+
2644 glib
2645 libxml2
2646 libsm
2647 libice
2648 shared-mime-info
2649 dconf
2650 libcanberra
2651 libsecret
2652 libhandy))
2653 (native-inputs
2654 (list itstool
2655 gettext-minimal
2656 gi-docgen
2657 `(,glib "bin")
2658 gobject-introspection
2659 pkg-config
2660 libxml2))
2661 (home-page " https://wiki.gnome.org/Apps")
2662 (synopsis "GNOME's document viewer")
2663 (description
2664 "Evince is a document viewer for multiple document formats. It
2665 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2666 of Evince is to replace the multiple document viewers that exist
2667 on the GNOME Desktop with a single simple application.")
2668 (license license:gpl2+)))
2669
2670 (define-public gsettings-desktop-schemas
2671 (package
2672 (name "gsettings-desktop-schemas")
2673 (version "41.0")
2674 (source
2675 (origin
2676 (method url-fetch)
2677 (uri (string-append "mirror://gnome/sources/" name "/"
2678 (version-major version) "/"
2679 name "-" version ".tar.xz"))
2680 (sha256
2681 (base32
2682 "1v9jagk679m01nji0acirynxinziv036618c7xc49l4nwmr9ja3p"))))
2683 (build-system meson-build-system)
2684 (arguments
2685 `(#:phases (modify-phases %standard-phases
2686 (add-after 'unpack 'patch-schemas
2687 (lambda* (#:key inputs #:allow-other-keys)
2688 (substitute* (find-files "schemas"
2689 "\\.gschema\\.xml\\.in$")
2690 ;; Provide the correct file name of the default
2691 ;; GNOME background, 'adwaita-timed.xml'.
2692 (("@datadir@/backgrounds/gnome")
2693 (search-input-directory inputs
2694 "/share/backgrounds/gnome"))
2695 ;; Do not reference fonts, that may not exist.
2696 (("'Source Code Pro 10'") "'Monospace 11'")))))))
2697 (inputs (list glib gnome-backgrounds))
2698 (native-inputs (list gettext-minimal
2699 `(,glib "bin") ;glib-compile-schemas, etc.
2700 gobject-introspection
2701 pkg-config
2702 python)) ;for build-aux/meson/post-install.py
2703 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2704 (synopsis "GNOME settings for various desktop components")
2705 (description "Gsettings-desktop-schemas contains a collection of GSettings
2706 schemas for settings shared by various components of the GNOME desktop.")
2707 (license license:lgpl2.1+)))
2708
2709 (define-public gsettings-desktop-schemas-next
2710 (package
2711 (inherit gsettings-desktop-schemas)
2712 (name "gsettings-desktop-schemas-next") ;to avoid propagation conflicts
2713 (version "42.0")
2714 (source
2715 (origin
2716 (method url-fetch)
2717 (uri (string-append "mirror://gnome/sources/" name "/"
2718 (version-major version) "/"
2719 name "-" version ".tar.xz"))
2720 (sha256
2721 (base32
2722 "1li3fcqwnw20f4j0i21i88fygm0hli8gmzkn4apgf8ynkrd371k6"))))))
2723
2724 (define-public python-liblarch
2725 (package
2726 (name "python-liblarch")
2727 (version "3.2.0")
2728 (source (origin
2729 (method git-fetch)
2730 (uri (git-reference
2731 (url "https://github.com/getting-things-gnome/liblarch")
2732 (commit (string-append "v" version))))
2733 (file-name (git-file-name name version))
2734 (sha256
2735 (base32
2736 "125rmrdbc84lapfh8c77zxnmwas20xdfamqmilhv1smkxn2q4sh3"))))
2737 (build-system python-build-system)
2738 (arguments
2739 `(#:phases (modify-phases %standard-phases
2740 (add-before 'check 'start-xserver
2741 (lambda* (#:key inputs #:allow-other-keys)
2742 (system (format #f "~a/bin/Xvfb :1 &"
2743 (assoc-ref inputs "xorg-server")))
2744 (setenv "DISPLAY" ":1"))))))
2745 (native-inputs (list xorg-server-for-tests))
2746 (inputs (list gtk+))
2747 (propagated-inputs (list python-pygobject))
2748 (home-page "https://wiki.gnome.org/Projects/liblarch")
2749 (synopsis "Library to easily handle complex data structures")
2750 (description
2751 "Liblarch is a Python library built to easily handle data structures such
2752 as lists, trees and acyclic graphs. There's also a GTK binding that will
2753 allow you to use your data structure in a @code{Gtk.Treeview}.
2754
2755 Liblarch support multiple views of one data structure and complex filtering.
2756 That way, you have a clear separation between your data themselves (Model)
2757 and how they are displayed (View).")
2758 (license license:lgpl3+)))
2759
2760 (define-public gtg
2761 (package
2762 (name "gtg")
2763 (version "0.6")
2764 (source
2765 (origin
2766 (method git-fetch)
2767 (uri (git-reference
2768 (url "https://github.com/getting-things-gnome/gtg")
2769 (commit (string-append "v" version))))
2770 (file-name (git-file-name name version))
2771 (sha256
2772 (base32 "1wcivqp4z3a2jdr2wdrldzwy9v6hlfp5sk0pmh80znlgvl7q3jiv"))))
2773 (build-system meson-build-system)
2774 (arguments
2775 (list
2776 #:glib-or-gtk? #t
2777 #:imported-modules `(,@%meson-build-system-modules
2778 (guix build python-build-system))
2779 #:modules '((guix build meson-build-system)
2780 ((guix build python-build-system) #:prefix python:)
2781 (guix build utils))
2782 #:phases
2783 #~(modify-phases %standard-phases
2784 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2785 (lambda* (#:key inputs outputs #:allow-other-keys)
2786 (wrap-program (search-input-file outputs "bin/gtg")
2787 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
2788 ,(python:site-packages inputs outputs)))
2789 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
2790 (native-inputs
2791 (list desktop-file-utils
2792 gettext-minimal
2793 `(,glib "bin")
2794 gobject-introspection
2795 pkg-config
2796 python))
2797 (inputs
2798 (list bash-minimal
2799 librsvg
2800 gsettings-desktop-schemas
2801 gtk+
2802 pango
2803 python
2804 python-dbus
2805 python-liblarch
2806 python-lxml
2807 python-pycairo
2808 python-pygobject
2809 python-pyxdg))
2810 (home-page "https://wiki.gnome.org/Apps/GTG")
2811 (synopsis "Personal organizer for the GNOME desktop")
2812 (description
2813 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2814 organizer for the GNOME desktop environment inspired by the Getting Things
2815 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2816 and ease of use in mind so it can be used as more than just GTD software.
2817 GTG is intended to help you track everything you need to do and need to
2818 know, from small tasks to large projects.")
2819 (license license:gpl3+)))
2820
2821 (define-public icon-naming-utils
2822 (package
2823 (name "icon-naming-utils")
2824 (version "0.8.90")
2825 (source
2826 (origin
2827 (method url-fetch)
2828 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2829 version ".tar.bz2"))
2830 (sha256
2831 (base32
2832 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2833 (build-system gnu-build-system)
2834 (inputs
2835 (list perl perl-xml-simple))
2836 (arguments
2837 '(#:phases
2838 (modify-phases %standard-phases
2839 (add-after 'install 'set-load-paths
2840 ;; Tell 'icon-name-mapping' where XML::Simple is.
2841 (lambda* (#:key outputs #:allow-other-keys)
2842 (let* ((out (assoc-ref outputs "out"))
2843 (prog (string-append out "/libexec/icon-name-mapping")))
2844 (wrap-program
2845 prog
2846 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2847 #t)))))
2848 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2849 (synopsis
2850 "Utility to implement the Freedesktop Icon Naming Specification")
2851 (description
2852 "To help with the transition to the Freedesktop Icon Naming
2853 Specification, the icon naming utility maps the icon names used by the
2854 GNOME and KDE desktops to the icon names proposed in the specification.")
2855 (license license:lgpl2.1+)))
2856
2857 (define-public adwaita-icon-theme
2858 (package
2859 (name "adwaita-icon-theme")
2860 (version "42.0")
2861 (source (origin
2862 (method url-fetch)
2863 (uri (string-append "mirror://gnome/sources/" name "/"
2864 (version-major version) "/"
2865 name "-" version ".tar.xz"))
2866 (sha256
2867 (base32
2868 "1q5i31zd5jzr12p6vn831afwnzbzf6x73wna1y86drnyr2nvb1ay"))))
2869 (build-system gnu-build-system)
2870 (arguments
2871 (list #:make-flags
2872 ;; Don't create 'icon-theme.cache'.
2873 #~(list "GTK_UPDATE_ICON_CACHE=")))
2874 (native-inputs
2875 ;; The following requires the SVG pixbuf loader, provided by librsvg,
2876 ;; available on x86_64 only.
2877 `(,@(if (target-64bit?)
2878 `((,gtk+ "bin")) ;for gtk-encode-symbolic-svg
2879 '())))
2880 (home-page "https://gitlab.gnome.org/GNOME/adwaita-icon-theme")
2881 (synopsis "GNOME icon theme")
2882 (description "Icons for the GNOME desktop.")
2883 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2884
2885 (define-public gnome-icon-theme
2886 (deprecated-package "gnome-icon-theme" adwaita-icon-theme))
2887
2888 (define-public tango-icon-theme
2889 (package
2890 (name "tango-icon-theme")
2891 (version "0.8.90")
2892 (source (origin
2893 (method url-fetch)
2894 (uri (string-append "http://tango.freedesktop.org/releases/"
2895 "tango-icon-theme-" version ".tar.bz2"))
2896 (sha256
2897 (base32
2898 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2899 (build-system gnu-build-system)
2900 (native-inputs
2901 (list icon-naming-utils intltool imagemagick pkg-config))
2902 (home-page "http://tango-project.org/")
2903 (synopsis "Tango icon theme")
2904 (description "This is an icon theme that follows the Tango visual
2905 guidelines.")
2906 (license license:public-domain)))
2907
2908 (define-public shared-mime-info
2909 (package
2910 (name "shared-mime-info")
2911 (version "1.15")
2912 (source (origin
2913 (method url-fetch)
2914 (uri (string-append
2915 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2916 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2917 ".tar.xz"))
2918 (sha256
2919 (base32
2920 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2921 (build-system gnu-build-system)
2922 (arguments
2923 ;; The build system appears not to be parallel-safe.
2924 '(#:parallel-build? #f))
2925 (inputs
2926 (list glib libxml2))
2927 (native-inputs
2928 `(("gettext" ,gettext-minimal)
2929 ("itstool" ,itstool)
2930 ("pkg-config" ,pkg-config)))
2931 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2932 (synopsis "Database of common MIME types")
2933 (description
2934 "The shared-mime-info package contains the core database of common types
2935 and the update-mime-database command used to extend it. It requires glib2 to
2936 be installed for building the update command. Additionally, it uses intltool
2937 for translations, though this is only a dependency for the maintainers. This
2938 database is translated at Transifex.")
2939 (license license:gpl2+)))
2940
2941 (define-public system-config-printer
2942 (package
2943 (name "system-config-printer")
2944 (version "1.5.16")
2945 (source
2946 (origin
2947 (method url-fetch)
2948 (uri (string-append
2949 "https://github.com/OpenPrinting/system-config-printer/releases/"
2950 "download/v" version
2951 "/system-config-printer-" version ".tar.xz"))
2952 (sha256
2953 (base32 "1z9pvgifj5c87csnqz10qybbcayh3ak9m606f63ifkvyjh4q9jnb"))))
2954 (build-system glib-or-gtk-build-system)
2955 (arguments
2956 (list
2957 #:imported-modules `((guix build python-build-system)
2958 ,@%glib-or-gtk-build-system-modules)
2959 #:phases
2960 #~(modify-phases %standard-phases
2961 (add-after 'unpack 'patch-build-files
2962 (lambda _
2963 (substitute* "configure.ac"
2964 (("AC_INIT.*" all)
2965 (string-append all "\nAC_CONFIG_MACRO_DIR([m4])\n"))
2966 ;; XXX: AX macros appear unavailable
2967 (("AX_REQUIRE_DEFINED.*") ""))
2968 ;; The Makefile generates some scripts, so set a valid shebang
2969 (substitute* "Makefile.am"
2970 (("/bin/bash") (which "bash")))
2971 (delete-file "configure")))
2972 (add-after 'unpack 'patch-docbook-xml
2973 (lambda* (#:key inputs #:allow-other-keys)
2974 ;; Modify the man XML otherwise xmlto tries to access the network
2975 (substitute* "man/system-config-printer.xml"
2976 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2977 (string-append (assoc-ref inputs "docbook-xml")
2978 "/xml/dtd/docbook/")))))
2979 (add-after 'install 'add-install-to-pythonpath
2980 (@@ (guix build python-build-system) add-install-to-pythonpath))
2981 (add-after 'add-install-to-pythonpath 'wrap-for-python
2982 (@@ (guix build python-build-system) wrap))
2983 (add-after 'install 'wrap
2984 (lambda* (#:key outputs #:allow-other-keys)
2985 (let ((out (assoc-ref outputs "out"))
2986 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2987 (for-each
2988 (lambda (program)
2989 (wrap-program program
2990 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2991 (map (lambda (name)
2992 (string-append out "/bin/" name))
2993 '("system-config-printer"
2994 "system-config-printer-applet"
2995 "install-printerdriver"
2996 "scp-dbus-service")))))))))
2997 (inputs
2998 (list gsettings-desktop-schemas
2999 gobject-introspection
3000 python
3001 cups
3002 gtk+
3003 python-dbus
3004 python-pygobject
3005 python-pycups
3006 python-requests
3007 python-pycairo
3008 libnotify
3009 packagekit))
3010 (native-inputs
3011 (list pkg-config
3012 desktop-file-utils
3013 glib
3014 autoconf
3015 automake
3016 gettext-minimal
3017 xmlto
3018 docbook-xml-4.1.2
3019 docbook-xsl
3020 libxml2))
3021 (home-page "https://github.com/zdohnal/system-config-printer")
3022 (synopsis "CUPS administration tool")
3023 (description
3024 "system-config-printer is a CUPS administration tool. It's written in
3025 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
3026 configuring CUPS.")
3027 (license license:gpl2+)))
3028
3029 (define-public hicolor-icon-theme
3030 (package
3031 (name "hicolor-icon-theme")
3032 (version "0.17")
3033 (source
3034 (origin
3035 (method url-fetch)
3036 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3037 "hicolor-icon-theme-" version ".tar.xz"))
3038 (sha256
3039 (base32
3040 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3041 (build-system gnu-build-system)
3042 (arguments
3043 `(#:tests? #f)) ; no check target
3044 (home-page "https://icon-theme.freedesktop.org/releases/")
3045 (synopsis
3046 "Freedesktop icon theme")
3047 (description
3048 "Freedesktop icon theme.")
3049 (license license:gpl2)))
3050
3051 (define-public libnotify
3052 (package
3053 (name "libnotify")
3054 (version "0.7.9")
3055 (source
3056 (origin
3057 (method url-fetch)
3058 (uri (string-append "mirror://gnome/sources/" name "/"
3059 (version-major+minor version) "/"
3060 name "-" version ".tar.xz"))
3061 (sha256
3062 (base32
3063 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3064 (build-system meson-build-system)
3065 (arguments
3066 `(#:phases
3067 (modify-phases %standard-phases
3068 (add-after 'unpack 'fix-docbook
3069 (lambda* (#:key inputs #:allow-other-keys)
3070 ;; Don't attempt to download XSL schema.
3071 (substitute* "meson.build"
3072 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3073 /manpages/docbook.xsl")
3074 (string-append (assoc-ref inputs "docbook-xsl")
3075 "/xml/xsl/docbook-xsl-"
3076 ,(package-version docbook-xsl)
3077 "/manpages/docbook.xsl")))
3078 #t)))))
3079 (propagated-inputs
3080 (list ;; In Requires of libnotify.pc.
3081 gdk-pixbuf glib))
3082 (inputs
3083 (list gtk+ libpng))
3084 (native-inputs
3085 `(("pkg-config" ,pkg-config)
3086 ("glib" ,glib "bin")
3087 ("gobject-introspection" ,gobject-introspection)
3088
3089 ;; For the documentation.
3090 ("gtk-doc" ,gtk-doc/stable)
3091 ("xsltproc" ,libxslt)
3092 ("docbook-xsl" ,docbook-xsl)))
3093 (home-page "https://developer-next.gnome.org/libnotify/")
3094 (synopsis
3095 "GNOME desktop notification library")
3096 (description
3097 "Libnotify is a library that sends desktop notifications to a
3098 notification daemon, as defined in the Desktop Notifications spec. These
3099 notifications can be used to inform the user about an event or display
3100 some form of information without getting in the user's way.")
3101 (license license:lgpl2.1+)))
3102
3103 (define-public libpeas
3104 (package
3105 (name "libpeas")
3106 (version "1.32.0")
3107 (source
3108 (origin
3109 (method url-fetch)
3110 (uri (string-append "mirror://gnome/sources/" name "/"
3111 (version-major+minor version) "/"
3112 name "-" version ".tar.xz"))
3113 (sha256
3114 (base32
3115 "03ixrhfkywcb409dd0hybyb6i291phwy8si4kc17g29fl07m49fn"))))
3116 (build-system meson-build-system)
3117 (arguments
3118 '(#:phases
3119 (modify-phases %standard-phases
3120 (add-before 'check 'start-xserver
3121 (lambda* (#:key inputs #:allow-other-keys)
3122 (let ((disp ":1"))
3123 (setenv "DISPLAY" disp)
3124 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
3125 (setenv "XDG_CONFIG_HOME" "/tmp")
3126 ;; Tests require a running X server.
3127 (system (format #f "~a ~a &"
3128 (search-input-file inputs "bin/Xvfb")
3129 disp))))))))
3130 (inputs
3131 (list gtk+
3132 glade3
3133 python
3134 python-pygobject))
3135 (native-inputs
3136 (list pkg-config
3137 gettext-minimal
3138 `(,glib "bin")
3139 gobject-introspection
3140 xorg-server-for-tests))
3141 (propagated-inputs
3142 ;; The .pc file "Requires" gobject-introspection.
3143 (list gobject-introspection))
3144 (home-page "https://wiki.gnome.org/Projects/Libpeas")
3145 (synopsis "GObject plugin system")
3146 (description
3147 "Libpeas is a gobject-based plugin engine, targeted at giving every
3148 application the chance to assume its own extensibility. It also has a set of
3149 features including, but not limited to: multiple extension points; on-demand
3150 (lazy) programming language support for C, Python and JS; simplicity of the
3151 API.")
3152 (license license:lgpl2.0+)))
3153
3154 (define-public gtkglext
3155 (package
3156 (name "gtkglext")
3157 (version "1.2.0")
3158 (source (origin
3159 (method url-fetch)
3160 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3161 version "/gtkglext-" version ".tar.gz"))
3162 (sha256
3163 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3164 (patches (search-patches
3165 "gtkglext-disable-disable-deprecated.patch"))))
3166 (build-system gnu-build-system)
3167 (arguments
3168 `(#:phases
3169 (modify-phases %standard-phases
3170 ;; Fix a collision between a local variable and a definition from
3171 ;; glibc's string.h.
3172 (add-after 'unpack 'fix-collision
3173 (lambda _
3174 (substitute* "gdk/gdkglshapes.c"
3175 ((" index") " triangle_index"))
3176 #t)))))
3177 (inputs (list gtk+-2 mesa glu libx11 libxt))
3178 (native-inputs (list pkg-config
3179 `(,glib "bin")))
3180 (propagated-inputs (list pangox-compat))
3181 (home-page "https://projects.gnome.org/gtkglext")
3182 (synopsis "OpenGL extension to GTK+")
3183 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3184 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3185 API add-ons to make GTK+ widgets OpenGL-capable.")
3186 (license license:lgpl2.1+)))
3187
3188 (define-public glade3
3189 (package
3190 (name "glade")
3191 (version "3.40.0")
3192 (source (origin
3193 (method url-fetch)
3194 (uri (string-append "mirror://gnome/sources/" name "/"
3195 (version-major+minor version) "/"
3196 name "-" version ".tar.xz"))
3197 (sha256
3198 (base32
3199 "171x7vshhw0nqgnhkcaqfylpr5qrmhclwmkva6wjm5s9m2pavj9i"))))
3200 (build-system meson-build-system)
3201 (arguments
3202 (list
3203 #:meson meson-0.60
3204 #:phases
3205 #~(modify-phases %standard-phases
3206 (add-after 'unpack 'skip-gtk-update-icon-cache
3207 ;; Don't create 'icon-theme.cache'.
3208 (lambda _
3209 (substitute* "meson_post_install.py"
3210 (("gtk-update-icon-cache") "true"))))
3211
3212 #$@(if (this-package-input "gjs")
3213 '()
3214 '((add-after 'unpack 'skip-gjs-test
3215 (lambda _
3216 ;; When the optional dependency on GJS is missing, skip
3217 ;; the GJS plugin tests.
3218 (substitute* "tests/modules.c"
3219 (("g_test_add.*JavaScript.*" all)
3220 (string-append "// " all "\n")))
3221 (delete-file "tests/catalogs/gjsplugin.xml")))))
3222 (add-before 'check 'pre-check
3223 (lambda _
3224 (setenv "HOME" "/tmp")
3225 ;; Tests require a running X server.
3226 (system "Xvfb :1 &")
3227 (setenv "DISPLAY" ":1"))))))
3228 (inputs
3229 (append
3230 ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
3231 ;; dependency on other platforms (FIXME).
3232 (if (target-x86-64?)
3233 (list gjs)
3234 '())
3235 (list gtk+ libxml2)))
3236 (native-inputs
3237 (list docbook-xml-4.2
3238 docbook-xsl
3239 gettext-minimal
3240 `(,glib "bin")
3241 gobject-introspection
3242 hicolor-icon-theme
3243 itstool
3244 libxml2 ;for XML_CATALOG_FILES
3245 libxslt ;for xsltproc
3246 python
3247 python-pygobject
3248 pkg-config
3249 xorg-server-for-tests))
3250 (home-page "https://glade.gnome.org")
3251 (synopsis "GTK+ rapid application development tool")
3252 (description "Glade is a rapid application development (RAD) tool to
3253 enable quick & easy development of user interfaces for the GTK+ toolkit and
3254 the GNOME desktop environment.")
3255 (license license:lgpl2.0+)
3256 (native-search-paths (list (search-path-specification
3257 (variable "GLADE_CATALOG_SEARCH_PATH")
3258 (files '("share/glade/catalogs")))
3259 (search-path-specification
3260 (variable "GLADE_MODULE_SEARCH_PATH")
3261 (files '("lib/glade/modules")))))))
3262
3263 (define-public blueprint-compiler
3264 (package
3265 (name "blueprint-compiler")
3266 (version "0.4.0")
3267 (source (origin
3268 (method git-fetch)
3269 (uri (git-reference
3270 (url
3271 "https://gitlab.gnome.org/jwestman/blueprint-compiler")
3272 (commit (string-append "v" version))))
3273 (file-name (string-append name "-" version "-checkout"))
3274 (sha256
3275 (base32
3276 "0hj7f4xhwjc4x32r3lswwclbw37fw3spy806g4plkmym25hz4ydy"))))
3277 (build-system meson-build-system)
3278 (native-inputs (list gtk python-pygobject python))
3279 (inputs (list python))
3280 (synopsis "Template markup language")
3281 (description
3282 "Blueprint is a markup language for GTK user interfaces. Internally, it
3283 compiles to GTKBuilder XML.")
3284 (home-page "https://gitlab.gnome.org/jwestman/blueprint-compiler")
3285 (license license:lgpl3+)))
3286
3287 (define-public cambalache
3288 (package
3289 (name "cambalache")
3290 (version "0.10.3")
3291 (source (origin
3292 (method git-fetch)
3293 (uri (git-reference
3294 (url "https://gitlab.gnome.org/jpu/cambalache")
3295 (commit version)))
3296 (file-name (git-file-name name version))
3297 (sha256
3298 (base32 "1nq9bvly4dm1xnh90z3b4c5455qpdgm3jgz2155vg2ai23f22vsy"))))
3299 (build-system meson-build-system)
3300 (arguments
3301 (list
3302 #:glib-or-gtk? #t
3303 #:imported-modules `((guix build python-build-system)
3304 ,@%meson-build-system-modules)
3305 #:modules '((guix build meson-build-system)
3306 ((guix build python-build-system) #:prefix python:)
3307 (guix build utils))
3308 #:phases
3309 #~(modify-phases %standard-phases
3310 (add-after 'unpack 'patch-source
3311 (lambda* (#:key inputs #:allow-other-keys)
3312 (substitute* "cambalache/cmb_view.py"
3313 (("GLib\\.find_program_in_path\\('(.*)'\\)" all cmd)
3314 (format #f "~s" (search-input-file
3315 inputs (string-append "bin/" cmd)))))))
3316 (add-after 'unpack 'patch-build
3317 (lambda _
3318 (substitute* "postinstall.py"
3319 (("update-desktop-database") "true"))))
3320 (add-after 'wrap 'python-wrap (assoc-ref python:%standard-phases 'wrap))
3321 (delete 'check)
3322 (add-after 'install 'add-install-to-pythonpath
3323 (assoc-ref python:%standard-phases 'add-install-to-pythonpath))
3324 (add-after 'add-install-to-pythonpath 'pre-check
3325 (lambda _
3326 (system "Xvfb :1 &")
3327 (setenv "DISPLAY" ":1")))
3328 (add-after 'pre-check 'check
3329 (lambda* (#:key tests? #:allow-other-keys)
3330 (when tests?
3331 (with-directory-excursion ".."
3332 (invoke "python3" "-m" "pytest")))))
3333 (add-after 'glib-or-gtk-wrap 'wrap-typelib
3334 (lambda _
3335 (for-each
3336 (lambda (prog)
3337 (unless (wrapped-program? prog)
3338 (wrap-program prog
3339 `("GI_TYPELIB_PATH" suffix
3340 (,(string-append #$output "/lib/girepository-1.0")
3341 ,(getenv "GI_TYPELIB_PATH")))
3342 ;; icons and schemas
3343 `("XDG_DATA_DIRS" suffix
3344 #$(map
3345 (lambda (input)
3346 (file-append (this-package-input input) "/share"))
3347 '("adwaita-icon-theme" "hicolor-icon-theme"
3348 "gsettings-desktop-schemas")))
3349 ;; Wrapping GDK_PIXBUF_MODULE_FILE allows Cambalache to
3350 ;; load its own icons in pure environments.
3351 `("GDK_PIXBUF_MODULE_FILE" =
3352 (,(getenv "GDK_PIXBUF_MODULE_FILE"))))))
3353 (find-files (string-append #$output "/bin"))))))))
3354 (inputs
3355 (list bash-minimal
3356 adwaita-icon-theme hicolor-icon-theme
3357 gsettings-desktop-schemas
3358 gtk
3359 `(,gtk+ "bin") ; broadwayd
3360 `(,gtk "bin")
3361 libadwaita
3362 libhandy
3363 (librsvg-for-system)
3364 python
3365 python-pygobject
3366 python-lxml
3367 webkitgtk-with-libsoup2))
3368 (native-inputs (list `(,glib "bin") gobject-introspection
3369 gettext-minimal pkg-config
3370 python-pytest xorg-server-for-tests))
3371 (home-page "https://gitlab.gnome.org/jpu/cambalache")
3372 (synopsis "Rapid application development tool")
3373 (description "Cambalache is a rapid application development (RAD) tool for
3374 Gtk 4 and 3 with a clear model-view-controller (MVC) design and
3375 data model first philosophy.")
3376 (license (list license:lgpl2.1
3377 license:gpl2)))) ; tools
3378
3379 (define-public libcroco
3380 (package
3381 (name "libcroco")
3382 (version "0.6.13")
3383 (source (origin
3384 (method url-fetch)
3385 (uri (string-append "mirror://gnome/sources/" name "/"
3386 (version-major+minor version) "/"
3387 name "-" version ".tar.xz"))
3388 (patches (search-patches "libcroco-CVE-2020-12825.patch"))
3389 (sha256
3390 (base32
3391 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3392 (build-system gnu-build-system)
3393 (native-inputs
3394 (list pkg-config))
3395 (inputs
3396 (list glib libxml2 zlib))
3397 (home-page "https://github.com/GNOME/libcroco")
3398 (synopsis "CSS2 parsing and manipulation library")
3399 (description
3400 "Libcroco is a standalone CSS2 parsing and manipulation library.
3401 The parser provides a low level event driven SAC-like API and a CSS object
3402 model like API. Libcroco provides a CSS2 selection engine and an experimental
3403 XML/CSS rendering engine.")
3404
3405 ;; LGPLv2.1-only.
3406 (license license:lgpl2.1)))
3407
3408 (define-public libgsf
3409 (package
3410 (name "libgsf")
3411 (version "1.14.50")
3412 (source (origin
3413 (method url-fetch)
3414 (uri (string-append "mirror://gnome/sources/" name "/"
3415 (version-major+minor version) "/"
3416 name "-" version ".tar.xz"))
3417 (sha256
3418 (base32
3419 "0llf5rpg2rg9pdz8j38dl5z82zi9kmsn639wb2fhcfc3fz820v3f"))))
3420 (build-system glib-or-gtk-build-system)
3421 (outputs '("out" "bin" "doc"))
3422 (arguments
3423 (list
3424 #:configure-flags
3425 #~(list
3426 "--disable-static"
3427 "--enable-introspection"
3428 (string-append "--with-gir-dir=" #$output
3429 "/share/gir-"
3430 #$(version-major
3431 (package-version gobject-introspection))
3432 ".0")
3433 (string-append "--with-typelib-dir=" #$output
3434 "/lib/girepository-"
3435 #$(version-major
3436 (package-version gobject-introspection))
3437 ".0")
3438 (string-append "--with-html-dir=" #$output
3439 "/share/gtk-doc/html")
3440 "--with-zlib"
3441 "--with-bz2")
3442 #:phases
3443 #~(modify-phases %standard-phases
3444 (add-after 'unpack 'patch-docbook-xml
3445 (lambda* (#:key native-inputs inputs #:allow-other-keys)
3446 (with-directory-excursion "doc"
3447 (substitute* "gsf-docs.xml"
3448 (("http://www.oasis-open.org/docbook/xml/4.5/")
3449 (search-input-directory (or native-inputs inputs)
3450 "xml/dtd/docbook")))))))))
3451 (native-inputs
3452 (list docbook-xml
3453 gettext-minimal
3454 gobject-introspection
3455 perl
3456 perl-xml-parser
3457 pkg-config
3458 python-wrapper))
3459 (inputs
3460 (list bzip2
3461 gdk-pixbuf
3462 zlib))
3463 (propagated-inputs
3464 (list glib
3465 libxml2))
3466 (synopsis "G Structured File Library")
3467 (description "Libgsf aims to provide an efficient extensible I/O abstraction
3468 for dealing with different structured file formats.")
3469 (home-page "https://gitlab.gnome.org/GNOME/libgsf")
3470 (license
3471 (list license:lgpl2.1+ ;library
3472 license:lgpl2.0+)))) ;others
3473
3474 (define-public librsvg
3475 (package
3476 (name "librsvg")
3477 (version "2.50.7")
3478 (source (origin
3479 (method url-fetch)
3480 (uri (string-append "mirror://gnome/sources/librsvg/"
3481 (version-major+minor version) "/"
3482 "librsvg-" version ".tar.xz"))
3483 (sha256
3484 (base32
3485 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3486 (modules '((guix build utils)))
3487 (snippet
3488 '(begin (delete-file-recursively "vendor")))))
3489 (build-system cargo-build-system)
3490 (outputs '("out" "doc" "debug"))
3491 (arguments
3492 `(#:install-source? #f
3493 #:modules
3494 ((guix build cargo-build-system)
3495 (guix build utils)
3496 ((guix build gnu-build-system) #:prefix gnu:))
3497 #:cargo-inputs
3498 (("rust-bitflags" ,rust-bitflags-1)
3499 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3500 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3501 ("rust-cast" ,rust-cast-0.2)
3502 ("rust-cssparser" ,rust-cssparser-0.27)
3503 ("rust-data-url" ,rust-data-url-0.1)
3504 ("rust-encoding" ,rust-encoding-0.2)
3505 ("rust-float-cmp" ,rust-float-cmp-0.8)
3506 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3507 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3508 ("rust-gio" ,rust-gio-0.8)
3509 ("rust-gio-sys" ,rust-gio-sys-0.9)
3510 ("rust-glib" ,rust-glib-0.9)
3511 ("rust-glib-sys" ,rust-glib-sys-0.9)
3512 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3513 ("rust-itertools" ,rust-itertools-0.9)
3514 ("rust-language-tags" ,rust-language-tags-0.2)
3515 ("rust-libc" ,rust-libc-0.2)
3516 ("rust-locale-config" ,rust-locale-config-0.3)
3517 ("rust-markup5ever" ,rust-markup5ever-0.10)
3518 ("rust-nalgebra" ,rust-nalgebra-0.21)
3519 ("rust-num-traits" ,rust-num-traits-0.2)
3520 ("rust-once-cell" ,rust-once-cell-1)
3521 ("rust-pkg-config" ,rust-pkg-config-0.3)
3522 ("rust-pango" ,rust-pango-0.8)
3523 ("rust-pango-sys" ,rust-pango-sys-0.9)
3524 ("rust-pangocairo" ,rust-pangocairo-0.9)
3525 ("rust-rayon" ,rust-rayon-1)
3526 ("rust-rctree" ,rust-rctree-0.3)
3527 ("rust-rgb" ,rust-rgb-0.8)
3528 ("rust-regex" ,rust-regex-1)
3529 ("rust-selectors" ,rust-selectors-0.22)
3530 ("rust-string-cache" ,rust-string-cache-0.8)
3531 ("rust-tinyvec" ,rust-tinyvec-0.3)
3532 ("rust-url" ,rust-url-2)
3533 ("rust-xml5ever" ,rust-xml5ever-0.16))
3534 #:cargo-development-inputs
3535 (("rust-assert-cmd" ,rust-assert-cmd-1)
3536 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3537 ("rust-chrono" ,rust-chrono-0.4)
3538 ("rust-criterion" ,rust-criterion-0.3)
3539 ("rust-float-cmp" ,rust-float-cmp-0.8)
3540 ("rust-lopdf" ,rust-lopdf-0.26)
3541 ("rust-png" ,rust-png-0.16)
3542 ("rust-predicates" ,rust-predicates-1)
3543 ("rust-tempfile" ,rust-tempfile-3))
3544 #:phases
3545 (modify-phases %standard-phases
3546 (add-after 'unpack 'patch-docbook-xml
3547 (lambda* (#:key inputs #:allow-other-keys)
3548 (with-directory-excursion "doc"
3549 (substitute* "rsvg-docs.xml"
3550 (("http://www.oasis-open.org/docbook/xml/4.3/")
3551 (string-append (assoc-ref inputs "docbook-xml")
3552 "/xml/dtd/docbook/"))))))
3553 (add-after 'unpack 'prepare-for-build
3554 (lambda _
3555 ;; In lieu of #:make-flags
3556 (setenv "CC" ,(cc-for-target))
3557 ;; Something about the build environment resists building
3558 ;; successfully with the '--locked' flag.
3559 (substitute* '("Makefile.am" "Makefile.in")
3560 (("--locked") ""))))
3561 (add-before 'configure 'pre-configure
3562 (lambda* (#:key outputs #:allow-other-keys)
3563 (substitute* "gdk-pixbuf-loader/Makefile.in"
3564 ;; By default the gdk-pixbuf loader is installed under
3565 ;; gdk-pixbuf's prefix. Work around that.
3566 (("gdk_pixbuf_moduledir = .*$")
3567 (string-append "gdk_pixbuf_moduledir = "
3568 "$(prefix)/"
3569 ,(dirname %gdk-pixbuf-loaders-cache-file) "/"
3570 "loaders\n")))
3571 (substitute* "configure"
3572 (("gdk_pixbuf_cache_file=.*")
3573 (string-append "gdk_pixbuf_cache_file="
3574 (assoc-ref outputs "out") "/"
3575 ,%gdk-pixbuf-loaders-cache-file "\n")))))
3576 (add-after 'configure 'gnu-configure
3577 (lambda* (#:key outputs #:allow-other-keys #:rest args)
3578 (apply (assoc-ref gnu:%standard-phases 'configure)
3579 #:configure-flags
3580 (list "--disable-static"
3581 "--enable-vala"
3582 (string-append "--with-html-dir="
3583 (assoc-ref outputs "doc")
3584 "/share/gtk-doc/html"))
3585 args)))
3586 (add-after 'configure 'dont-vendor-self
3587 (lambda* (#:key vendor-dir #:allow-other-keys)
3588 ;; Don't keep the whole tarball in the vendor directory
3589 (delete-file-recursively
3590 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))))
3591 (replace 'build
3592 (assoc-ref gnu:%standard-phases 'build))
3593 (add-before 'check 'ignore-failing-tests
3594 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3595 (lambda _
3596 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3597 (("fn background_color_option_invalid_color_yields_error" all)
3598 (string-append "#[ignore] " all))
3599 (("fn empty_input_yields_error" all)
3600 (string-append "#[ignore] " all))
3601 (("fn empty_svg_yields_error" all)
3602 (string-append "#[ignore] " all))
3603 (("fn env_source_data_epoch_empty" all)
3604 (string-append "#[ignore] " all))
3605 (("fn env_source_data_epoch_no_digits" all)
3606 (string-append "#[ignore] " all))
3607 (("fn env_source_data_epoch_trailing_garbage" all)
3608 (string-append "#[ignore] " all))
3609 (("fn export_id_option_error" all)
3610 (string-append "#[ignore] " all))
3611 (("fn huge_zoom_factor_yields_error" all)
3612 (string-append "#[ignore] " all))
3613 (("fn multiple_input_files_not_allowed_for_png_output" all)
3614 (string-append "#[ignore] " all))
3615 (("fn stylesheet_option_error" all)
3616 (string-append "#[ignore] " all)))))
3617 (replace 'check
3618 (lambda* args
3619 ((assoc-ref gnu:%standard-phases 'check)
3620 #:test-target "check")))
3621 (replace 'install
3622 (assoc-ref gnu:%standard-phases 'install)))))
3623 (native-inputs
3624 (list docbook-xml-4.3
3625 `(,glib "bin")
3626 gobject-introspection
3627 pkg-config
3628 vala))
3629 (inputs
3630 (list freetype harfbuzz libxml2 pango))
3631 (propagated-inputs
3632 (list cairo gdk-pixbuf glib))
3633 (synopsis "SVG rendering library")
3634 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3635 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3636 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3637 diagrams.")
3638 (home-page "https://wiki.gnome.org/LibRsvg")
3639 (license license:lgpl2.1+)))
3640
3641 ;; This copy of librsvg uses the bundled rust libraries. It is useful for
3642 ;; packages which have too many dependencies to be rebuilt as frequently
3643 ;; as the rust inputs are updated.
3644 ;; TODO: Remove this package and use packaged rust libraries!
3645 (define-public librsvg-bootstrap
3646 (package
3647 (inherit librsvg)
3648 (name "librsvg")
3649 (version "2.50.7")
3650 (source (origin
3651 (method url-fetch)
3652 (uri (string-append "mirror://gnome/sources/librsvg/"
3653 (version-major+minor version) "/"
3654 "librsvg-" version ".tar.xz"))
3655 (sha256
3656 (base32
3657 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3658 (modules '((guix build utils)))
3659 (snippet
3660 '(begin
3661 (for-each delete-file (find-files "vendor" "\\.a$"))))))
3662 (arguments
3663 (substitute-keyword-arguments (package-arguments librsvg)
3664 ((#:vendor-dir _ "vendor") "vendor")
3665 ((#:cargo-inputs _) '())
3666 ((#:cargo-development-inputs _) '())))
3667 (properties '((hidden? . #t)))))
3668
3669 (define-public librsvg-2.40
3670 ;; This is the last version implemented in C.
3671 (package
3672 (inherit librsvg)
3673 (version "2.40.21")
3674 (source (origin
3675 (method url-fetch)
3676 (uri (string-append "mirror://gnome/sources/librsvg/"
3677 (version-major+minor version)
3678 "/librsvg-" version ".tar.xz"))
3679 (sha256
3680 (base32
3681 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3682 (build-system gnu-build-system)
3683 (arguments
3684 `(#:configure-flags (list "--disable-static")
3685 #:phases
3686 (modify-phases %standard-phases
3687 (add-before 'configure 'pre-configure
3688 (lambda* (#:key inputs #:allow-other-keys)
3689 (substitute* "gdk-pixbuf-loader/Makefile.in"
3690 ;; By default the gdk-pixbuf loader is installed under
3691 ;; gdk-pixbuf's prefix. Work around that.
3692 (("gdk_pixbuf_moduledir = .*$")
3693 (string-append "gdk_pixbuf_moduledir = "
3694 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3695 "loaders\n"))
3696 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3697 (("gdk_pixbuf_cache_file = .*$")
3698 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3699 #t))
3700 (add-before 'check 'remove-failing-tests
3701 (lambda _
3702 (with-directory-excursion "tests/fixtures/reftests"
3703 (for-each delete-file
3704 '(;; This test fails on i686:
3705 "svg1.1/masking-path-04-b.svg"
3706 ;; This test fails on armhf:
3707 "svg1.1/masking-mask-01-b.svg"
3708 ;; This test fails on aarch64:
3709 "bugs/777834-empty-text-children.svg"
3710
3711 ;; These two tests fail due to slightly different
3712 ;; text rendering (different kerning or similar),
3713 ;; nothing alarming.
3714 "bugs/340047.svg"
3715 "bugs/749415.svg"))))))))
3716 (native-inputs
3717 (list pkg-config
3718 `(,glib "bin") ; glib-mkenums, etc.
3719 gobject-introspection)) ; g-ir-compiler, etc.
3720 (inputs
3721 (list pango libcroco libxml2))
3722 (propagated-inputs
3723 ;; librsvg-2.0.pc refers to all of that.
3724 (list cairo gdk-pixbuf glib))
3725 (synopsis "Render SVG files using Cairo (ancient C version)")
3726 (properties '((hidden? . #t)))))
3727
3728 (define* (librsvg-for-system #:optional
3729 (system (or (%current-target-system)
3730 (%current-system))))
3731 ;; Since librsvg 2.50 depends on Rust, and Rust is only correctly supported
3732 ;; on x86_64 so far, use the ancient C version on other platforms (FIXME).
3733 (if (string-prefix? "x86_64-" system)
3734 librsvg
3735 librsvg-2.40))
3736
3737 (export librsvg-for-system)
3738
3739 (define-public libidl
3740 (package
3741 (name "libidl")
3742 (version "0.8.14")
3743 (source (origin
3744 (method url-fetch)
3745 (uri (string-append "mirror://gnome/sources/libIDL/"
3746 (version-major+minor version) "/"
3747 "libIDL-" version ".tar.bz2"))
3748 (sha256
3749 (base32
3750 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3751 (build-system gnu-build-system)
3752 (inputs (list glib))
3753 (native-inputs
3754 (list pkg-config flex bison))
3755 (home-page "http://freecode.com/projects/libidl")
3756 (synopsis "Create trees of CORBA Interface Definition Language files")
3757 (description "Libidl is a library for creating trees of CORBA Interface
3758 Definition Language (idl) files, which is a specification for defining
3759 portable interfaces. libidl was initially written for orbit (the orb from the
3760 GNOME project, and the primary means of libidl distribution). However, the
3761 functionality was designed to be as reusable and portable as possible.")
3762 (properties `((upstream-name . "libIDL")))
3763 (license license:lgpl2.0+)))
3764
3765
3766 (define-public orbit2
3767 (package
3768 (name "orbit2")
3769 (version "2.14.19")
3770 (source (origin
3771 (method url-fetch)
3772 (uri (let ((upstream-name "ORBit2"))
3773 (string-append "mirror://gnome/sources/" upstream-name "/"
3774 (version-major+minor version) "/"
3775 upstream-name "-" version ".tar.bz2")))
3776 (sha256
3777 (base32
3778 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3779 (build-system gnu-build-system)
3780 (arguments
3781 `(;; The "timeout-server" test hangs when run in parallel.
3782 #:parallel-tests? #f
3783 #:configure-flags
3784 '(;; We don't need static libraries, plus they don't build reproducibly
3785 ;; (non-deterministic ordering of .o files in the archive.)
3786 "--disable-static"
3787
3788 ;; The programmer kindly gives us a hook to turn off deprecation
3789 ;; warnings ...
3790 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3791 ;; ... which they then completly ignore !!
3792 #:phases
3793 (modify-phases %standard-phases
3794 (add-after 'unpack 'fix-parallel-build
3795 ;; Parallel build fails because of a failed dependency,
3796 ;; https://bugzilla.gnome.org/show_bug.cgi?id=732274
3797 (lambda _
3798 (substitute* "src/services/name/Makefile.am"
3799 (("orbit_name_server_2_DEPENDENCIES = \\$(DEPS) CosNaming.h")
3800 "orbit_name_server_2_DEPENDENCIES = \
3801 $(DEPS) CosNaming.h libname-server-2.a"))))
3802 (add-before 'configure 'ignore-deprecations
3803 (lambda _
3804 (substitute* "linc2/src/Makefile.in"
3805 (("-DG_DISABLE_DEPRECATED")
3806 "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))))))
3807 (inputs (list glib libidl))
3808 (native-inputs
3809 (list pkg-config))
3810 (home-page "https://projects.gnome.org/orbit2/")
3811 (synopsis "CORBA 2.4-compliant Object Request Broker")
3812 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3813 featuring mature C, C++ and Python bindings.")
3814 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3815 ;; a version. SOME of the code files have licence notices for GPLv2+.
3816 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3817 (license license:gpl2+)
3818 (properties `((upstream-name . "ORBit2")))))
3819
3820
3821 (define-public libbonobo
3822 (package
3823 (name "libbonobo")
3824 (version "2.32.1")
3825 (source (origin
3826 (method url-fetch)
3827 (uri (string-append "mirror://gnome/sources/" name "/"
3828 (version-major+minor version)
3829 "/" name "-" version ".tar.bz2"))
3830 (sha256
3831 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3832 (patches (search-patches
3833 "libbonobo-activation-test-race.patch"))))
3834 (build-system gnu-build-system)
3835 (arguments
3836 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3837 `(#:configure-flags
3838 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3839 ;; ... which they then completly ignore !!
3840 #:phases
3841 (modify-phases %standard-phases
3842 (add-before 'configure 'ignore-deprecations
3843 (lambda _
3844 (substitute* "activation-server/Makefile.in"
3845 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3846 #t)))
3847
3848 ;; There's apparently a race condition between the server stub
3849 ;; generation and linking of the example under 'samples/echo' that can
3850 ;; lead do undefined references when building in parallel, as reported
3851 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3852 ;; Thus, disable parallel builds.
3853 #:parallel-build? #f))
3854 (inputs (list popt libxml2))
3855 ;; The following are Required by the .pc file
3856 (propagated-inputs
3857 (list glib orbit2))
3858 (native-inputs
3859 (list intltool
3860 pkg-config
3861 `(,glib "bin") ; for glib-genmarshal, etc.
3862 flex
3863 bison))
3864 (home-page "https://developer.gnome.org/libbonobo/")
3865 (synopsis "Framework for creating reusable components for use in GNOME applications")
3866 (description "Bonobo is a framework for creating reusable components for
3867 use in GNOME applications, built on top of CORBA.")
3868 ;; Licence not explicitly stated. Source files contain no licence notices.
3869 ;; Tarball contains text of both GPLv2 and LGPLv2
3870 ;; GPLv2 covers both conditions
3871 (license license:gpl2+)))
3872
3873
3874 (define-public gconf
3875 (package
3876 (name "gconf")
3877 (version "3.2.6")
3878 (source (origin
3879 (method url-fetch)
3880 (uri
3881 (let ((upstream-name "GConf"))
3882 (string-append "mirror://gnome/sources/" upstream-name "/"
3883 (version-major+minor version) "/"
3884 upstream-name "-" version ".tar.xz")))
3885 (sha256
3886 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3887 (build-system gnu-build-system)
3888 (inputs (list dbus-glib libxml2))
3889 (propagated-inputs (list glib ; referred to in the .pc file
3890 orbit2))
3891 (native-inputs
3892 (list intltool
3893 `(,glib "bin") ; for glib-genmarshal, etc.
3894 pkg-config))
3895 (home-page "https://projects.gnome.org/gconf/")
3896 (synopsis "Store application preferences")
3897 (description "Gconf is a system for storing application preferences. It
3898 is intended for user preferences; not arbitrary data storage.")
3899 (license license:lgpl2.0+)
3900 (properties '((upstream-name . "GConf")))))
3901
3902
3903 (define-public gnome-mime-data
3904 (package
3905 (name "gnome-mime-data")
3906 (version "2.18.0")
3907 (source (origin
3908 (method url-fetch)
3909 (uri (string-append "mirror://gnome/sources/" name "/"
3910 (version-major+minor version) "/"
3911 name "-" version ".tar.bz2"))
3912 (sha256
3913 (base32
3914 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3915 (build-system gnu-build-system)
3916 (native-inputs
3917 (list perl intltool))
3918 (arguments
3919 '(#:phases (modify-phases %standard-phases
3920 (add-after 'configure 'use-our-intltool
3921 (lambda _
3922 ;; Do not use the bundled intltool commands, which lack
3923 ;; the "dotless @INC" fixes of our 'intltool' package.
3924 (substitute* (find-files "." "^Makefile$")
3925 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3926 (string-append "INTLTOOL_" tool " = intltool-"
3927 (string-downcase tool) "\n")))
3928 #t)))))
3929 (home-page "https://www.gnome.org")
3930 (synopsis "Base MIME and Application database for GNOME")
3931 (description "GNOME Mime Data is a module which contains the base MIME
3932 and Application database for GNOME. The data stored by this module is
3933 designed to be accessed through the MIME functions in GnomeVFS.")
3934 (license license:gpl2+)))
3935
3936
3937 (define-public gnome-vfs
3938 (package
3939 (name "gnome-vfs")
3940 (version "2.24.4")
3941 (source (origin
3942 (method url-fetch)
3943 (uri (string-append "mirror://gnome/sources/" name "/"
3944 (version-major+minor version) "/"
3945 name "-" version ".tar.bz2"))
3946 (sha256
3947 (base32
3948 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3949 (build-system gnu-build-system)
3950 (arguments
3951 `(#:phases
3952 (modify-phases %standard-phases
3953 (add-before 'configure 'ignore-deprecations
3954 (lambda _
3955 (substitute* '("libgnomevfs/Makefile.in"
3956 "daemon/Makefile.in")
3957 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3958 #t))
3959 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3960 (lambda _
3961 (substitute* "test/test-async-cancel.c"
3962 (("EXIT_FAILURE") "77"))
3963 #t)))))
3964 (inputs (list libxml2 dbus-glib gconf gnome-mime-data zlib))
3965 (native-inputs
3966 (list `(,glib "bin") ; for glib-mkenums, etc.
3967 intltool pkg-config))
3968 (home-page "https://developer.gnome.org/gnome-vfs/")
3969 (synopsis "Access files and folders in GNOME applications")
3970 (description
3971 "GnomeVFS is the core library used to access files and folders in GNOME
3972 applications. It provides a file system abstraction which allows applications
3973 to access local and remote files with a single consistent API.")
3974 (license license:lgpl2.0+)))
3975
3976
3977
3978 (define-public libgnome
3979 (package
3980 (name "libgnome")
3981 (version "2.32.1")
3982 (source (origin
3983 (method url-fetch)
3984 (uri (string-append "mirror://gnome/sources/" name "/"
3985 (version-major+minor version) "/"
3986 name "-" version ".tar.bz2"))
3987 (sha256
3988 (base32
3989 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3990 (patches (search-patches "libgnome-encoding.patch"))))
3991 (build-system gnu-build-system)
3992 (arguments
3993 `(#:phases
3994 (modify-phases %standard-phases
3995 (add-before 'configure 'enable-deprecated
3996 (lambda _
3997 (substitute* "libgnome/Makefile.in"
3998 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3999 #t)))))
4000 (inputs (list libxml2))
4001 (native-inputs
4002 (list `(,glib "bin") ; for glib-mkenums, etc.
4003 intltool pkg-config))
4004 ;; The following are listed as Required in the .pc file
4005 ;; (except for libcanberra -- which seems to be oversight on the part
4006 ;; of the upstream developers -- anything that links against libgnome,
4007 ;; must also link against libcanberra
4008 (propagated-inputs
4009 (list libcanberra libbonobo gconf gnome-vfs popt)) ;gnome-program.h includes popt.h
4010 (home-page "https://developer.gnome.org/libgnome/")
4011 (synopsis "Useful routines for building applications")
4012 (description "The libgnome library provides a number of useful routines
4013 for building modern applications, including session management, activation of
4014 files and URIs, and displaying help.")
4015 (license license:lgpl2.0+)))
4016
4017
4018 (define-public libart-lgpl
4019 (package
4020 (name "libart-lgpl")
4021 (version "2.3.21")
4022 (source (origin
4023 (method url-fetch)
4024 (uri (let ((upstream-name "libart_lgpl"))
4025 (string-append "mirror://gnome/sources/" upstream-name "/"
4026 (version-major+minor version) "/"
4027 upstream-name "-" version ".tar.bz2")))
4028 (sha256
4029 (base32
4030 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
4031 (build-system gnu-build-system)
4032 (native-inputs
4033 (list pkg-config))
4034 (home-page "https://people.gnome.org/~mathieu/libart")
4035 (synopsis "2D drawing library")
4036 (description "Libart is a 2D drawing library intended as a
4037 high-quality vector-based 2D library with antialiasing and alpha composition.")
4038 (license license:lgpl2.0+)))
4039
4040
4041
4042 (define-public libgnomecanvas
4043 (package
4044 (name "libgnomecanvas")
4045 (version "2.30.3")
4046 (source (origin
4047 (method url-fetch)
4048 (uri (string-append "mirror://gnome/sources/" name "/"
4049 (version-major+minor version) "/"
4050 name "-" version ".tar.gz"))
4051 (sha256
4052 (base32
4053 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
4054 (build-system gnu-build-system)
4055 ;; Mentioned as Required in the .pc file
4056 (propagated-inputs (list libart-lgpl gtk+-2))
4057 (native-inputs
4058 (list intltool
4059 `(,glib "bin") ; for glib-genmarshal, etc.
4060 pkg-config))
4061 (home-page "https://developer.gnome.org/libgnomecanvas/")
4062 (synopsis "Flexible widget for creating interactive structured graphics")
4063 (description "The GnomeCanvas widget provides a flexible widget for
4064 creating interactive structured graphics.")
4065 (license license:lgpl2.0+)))
4066
4067 (define-public libgnomecanvasmm
4068 (package
4069 (name "libgnomecanvasmm")
4070 (version "2.26.0")
4071 (source (origin
4072 (method url-fetch)
4073 (uri (string-append "mirror://gnome/sources/" name "/"
4074 (version-major+minor version) "/"
4075 name "-" version ".tar.bz2"))
4076 (sha256
4077 (base32
4078 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
4079 (build-system gnu-build-system)
4080 (propagated-inputs (list libgnomecanvas))
4081 (native-inputs
4082 (list gtkmm-2 pkg-config))
4083 (home-page "https://gtkmm.org")
4084 (synopsis "C++ bindings to the GNOME Canvas library")
4085 (description "C++ bindings to the GNOME Canvas library.")
4086 (license license:lgpl2.0+)))
4087
4088 (define-public libgnomeui
4089 (package
4090 (name "libgnomeui")
4091 (version "2.24.5")
4092 (source (origin
4093 (method url-fetch)
4094 (uri (string-append "mirror://gnome/sources/" name "/"
4095 (version-major+minor version) "/"
4096 name "-" version ".tar.bz2"))
4097 (patches (search-patches "libgnomeui-utf8.patch"))
4098 (sha256
4099 (base32
4100 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
4101 (build-system gnu-build-system)
4102 ;; Mentioned as Required in the .pc file
4103 (propagated-inputs (list libbonoboui libgnome libgnomecanvas
4104 libgnome-keyring))
4105 (inputs (list libjpeg-turbo popt libbonobo libxml2 libglade))
4106 (native-inputs
4107 (list `(,glib "bin") ; for glib-mkenums, etc.
4108 intltool pkg-config))
4109 (home-page "https://developer.gnome.org/libgnomeui/")
4110 (synopsis "Additional widgets for applications")
4111 (description "The libgnomeui library provides additional widgets for
4112 applications. Many of the widgets from libgnomeui have already been
4113 ported to GTK+.")
4114 (license license:lgpl2.0+)))
4115
4116 (define-public libglade
4117 (package
4118 (name "libglade")
4119 (version "2.6.4")
4120 (source (origin
4121 (method url-fetch)
4122 (uri (string-append "mirror://gnome/sources/" name "/"
4123 (version-major+minor version) "/"
4124 name "-" version ".tar.bz2"))
4125 (sha256
4126 (base32
4127 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
4128 (build-system gnu-build-system)
4129 (inputs
4130 (list python)) ;; needed for the optional libglade-convert program
4131 (propagated-inputs
4132 (list gtk+-2 libxml2)) ; required by libglade-2.0.pc
4133 (native-inputs
4134 (list pkg-config))
4135 (home-page "https://developer.gnome.org/libglade")
4136 (synopsis "Load glade interfaces and access the glade built widgets")
4137 (description "Libglade is a library that provides interfaces for loading
4138 graphical interfaces described in glade files and for accessing the
4139 widgets built in the loading process.")
4140 (license license:gpl2+))) ; This is correct. GPL not LGPL
4141
4142 (define-public libbonoboui
4143 (package
4144 (name "libbonoboui")
4145 (version "2.24.5")
4146 (source (origin
4147 (method url-fetch)
4148 (uri (string-append "mirror://gnome/sources/" name "/"
4149 (version-major+minor version) "/"
4150 name "-" version ".tar.bz2"))
4151 (sha256
4152 (base32
4153 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4154 (build-system gnu-build-system)
4155 (arguments
4156 `(#:phases
4157 (modify-phases %standard-phases
4158 (add-before 'check 'start-xserver
4159 (lambda* (#:key inputs #:allow-other-keys)
4160 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4161 (disp ":1"))
4162
4163 (setenv "HOME" (getcwd))
4164 (setenv "DISPLAY" disp)
4165 ;; There must be a running X server and make check doesn't start one.
4166 ;; Therefore we must do it.
4167 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4168 ;; Mentioned as Required by the .pc file
4169 (propagated-inputs (list libxml2))
4170 (inputs
4171 (list popt pangox-compat libgnome libgnomecanvas libglade))
4172 (native-inputs
4173 (list `(,glib "bin") ; for glib-genmarshal, etc.
4174 intltool
4175 xorg-server-for-tests ; For running the tests
4176 pkg-config))
4177 (home-page "https://developer.gnome.org/libbonoboui/")
4178 (synopsis "Some user interface controls using Bonobo")
4179 (description "The Bonobo UI library provides a number of user interface
4180 controls using the Bonobo component framework.")
4181 (license license:lgpl2.0+)))
4182
4183 (define-public libwnck
4184 (package
4185 (name "libwnck")
4186 (version "40.1")
4187 (source (origin
4188 (method url-fetch)
4189 (uri (string-append "mirror://gnome/sources/" name "/"
4190 (version-major version) "/"
4191 name "-" version ".tar.xz"))
4192 (sha256
4193 (base32
4194 "04b63mh2i7kpq0iymx6fkyzdx8laymw3da2s0wsbwgzg2jhly4q3"))))
4195 (build-system meson-build-system)
4196 (native-inputs
4197 (list gettext-minimal
4198 `(,glib "bin") ;for glib-mkenums
4199 gobject-introspection ;for g-ir-scanner
4200 pkg-config))
4201 (propagated-inputs
4202 (list gtk+
4203 libxres
4204 startup-notification))
4205 (home-page "https://gitlab.gnome.org/GNOME/libwnck/")
4206 (synopsis "Window Navigator Construction Kit")
4207 (description
4208 "Libwnck is the Window Navigator Construction Kit, a library for use in
4209 writing pagers, tasklists, and more generally applications that are dealing
4210 with window management. It tries hard to respect the Extended Window Manager
4211 Hints specification (EWMH).")
4212 (license license:lgpl2.0+)))
4213
4214 ;; stable version for gtk2, required by xfwm4.
4215 (define-public libwnck-2
4216 (package (inherit libwnck)
4217 (name "libwnck")
4218 (version "2.30.7")
4219 (source (origin
4220 (method url-fetch)
4221 (uri (string-append "mirror://gnome/sources/" name "/"
4222 (version-major+minor version) "/"
4223 name "-" version ".tar.xz"))
4224 (sha256
4225 (base32
4226 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4227 (build-system gnu-build-system)
4228 (native-inputs
4229 (list pkg-config intltool))
4230 (propagated-inputs
4231 (list gtk+-2 libxres startup-notification))))
4232
4233 (define-public goffice
4234 (package
4235 (name "goffice")
4236 (version "0.10.52")
4237 (source
4238 (origin
4239 (method url-fetch)
4240 (uri (string-append "mirror://gnome/sources/goffice/"
4241 (version-major+minor version) "/"
4242 "goffice-" version ".tar.xz"))
4243 (sha256
4244 (base32 "0344k0ffndd79as3c4nfq3mia7mrds6aq2jg76drdw3h8gcyzfb0"))))
4245 (build-system gnu-build-system)
4246 (outputs '("out"
4247 "doc")) ; 4.0 MiB of gtk-doc
4248 (arguments
4249 '(#:configure-flags (list (string-append "--with-html-dir="
4250 (assoc-ref %outputs "doc")
4251 "/share/gtk-doc/html"))))
4252 (inputs
4253 (list gtk+ libgsf librsvg libxslt libxml2))
4254 (native-inputs
4255 (list intltool `(,glib "bin") pkg-config))
4256 (home-page "https://developer.gnome.org/goffice/")
4257 (synopsis "Document-centric objects and utilities")
4258 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4259 (license
4260 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4261 ;; Note: NOT LGPL
4262 (list license:gpl2 license:gpl3))))
4263
4264 (define-public goffice-0.8
4265 (package (inherit goffice)
4266 (version "0.8.17")
4267 (source (origin
4268 (method url-fetch)
4269 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4270 (version-major+minor version) "/"
4271 (package-name goffice) "-" version ".tar.xz"))
4272 (sha256
4273 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4274 (arguments
4275 `(#:phases
4276 (modify-phases %standard-phases
4277 (add-after 'unpack 'fix-pcre-check
4278 (lambda _
4279 ;; Only glib.h can be included directly. See
4280 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4281 (substitute* "configure"
4282 (("glib/gregex\\.h") "glib.h")) #t)))
4283
4284 ,@(package-arguments goffice)))
4285 (propagated-inputs
4286 ;; libgoffice-0.8.pc mentions libgsf-1
4287 (list libgsf))
4288 (inputs
4289 `(("gtk" ,gtk+-2)
4290 ,@(alist-delete "gtk" (package-inputs goffice))))))
4291
4292 (define-public gnumeric
4293 (package
4294 (name "gnumeric")
4295 (version "1.12.52")
4296 (source (origin
4297 (method url-fetch)
4298 (uri (string-append "mirror://gnome/sources/gnumeric/"
4299 (version-major+minor version) "/"
4300 "gnumeric-" version ".tar.xz"))
4301 (sha256
4302 (base32
4303 "0fw201j0sks95wgvns3vydgprhwf6z4v4xb2a0ldi892k8277kvk"))))
4304 (build-system glib-or-gtk-build-system)
4305 (arguments
4306 `(;; The gnumeric developers don't worry much about failing tests.
4307 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4308 #:tests? #f
4309 #:phases
4310 (modify-phases %standard-phases
4311 (add-before
4312 'configure 'pre-conf
4313 (lambda* (#:key outputs #:allow-other-keys)
4314 ;; Make install tries to write into the directory of goffice
4315 ;; I am informed that this only affects the possibility to embed a
4316 ;; spreadsheet inside an Abiword document. So presumably when we
4317 ;; package Abiword we'll have to refer it to this directory.
4318 (substitute* "configure"
4319 (("^GOFFICE_PLUGINS_DIR=.*")
4320 (string-append "GOFFICE_PLUGINS_DIR="
4321 (assoc-ref outputs "out")
4322 "/goffice/plugins"))))))))
4323 (inputs
4324 (list glib
4325 gtk+
4326 goffice
4327 libgsf
4328 librsvg
4329 libxml2
4330 libxslt
4331 python
4332 python-pygobject
4333 zlib))
4334 (native-inputs
4335 (list bison
4336 docbook-xml
4337 `(,glib "bin")
4338 intltool
4339 itstool
4340 pkg-config))
4341 (home-page "http://www.gnumeric.org")
4342 (synopsis "Spreadsheet application")
4343 (description
4344 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4345 interoperable with other spreadsheet applications. It has a vast array of
4346 features beyond typical spreadsheet functionality, such as support for linear
4347 and non-linear solvers, statistical analysis, and telecommunication
4348 engineering.")
4349 (license
4350 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4351 (list license:gpl2 license:gpl3))))
4352
4353 (define-public drawing
4354 (package
4355 (name "drawing")
4356 (version "1.0.1")
4357 (source
4358 (origin
4359 (method git-fetch)
4360 (uri (git-reference
4361 (url "https://github.com/maoschanz/drawing")
4362 (commit version)))
4363 (file-name (git-file-name name version))
4364 (sha256
4365 (base32 "12xb522i7dxshw2ig12ald750fynlxan1lwz6gsxfa9p4ap2qypn"))))
4366 (build-system meson-build-system)
4367 (arguments
4368 (list
4369 #:glib-or-gtk? #t
4370 #:imported-modules `(,@%meson-build-system-modules
4371 (guix build python-build-system))
4372 #:modules '((guix build meson-build-system)
4373 ((guix build python-build-system) #:prefix python:)
4374 (guix build utils))
4375 #:phases
4376 #~(modify-phases %standard-phases
4377 (add-after 'unpack 'disable-postinstall-script
4378 (lambda _
4379 (setenv "DESTDIR" "/")))
4380 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
4381 (lambda* (#:key inputs outputs #:allow-other-keys)
4382 (wrap-program (search-input-file outputs "bin/drawing")
4383 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
4384 ,(python:site-packages inputs outputs)))
4385 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
4386 (native-inputs
4387 (list desktop-file-utils
4388 gettext-minimal
4389 `(,glib "bin")
4390 gobject-introspection
4391 itstool
4392 pkg-config
4393 python))
4394 (inputs
4395 (list bash-minimal
4396 librsvg
4397 gsettings-desktop-schemas
4398 gtk+
4399 pango
4400 python
4401 python-pycairo
4402 python-pygobject))
4403 (home-page "https://maoschanz.github.io/drawing/")
4404 (synopsis "Basic image editor for GNOME")
4405 (description
4406 "Drawing is a basic image editor aiming at the GNOME desktop.")
4407 (license license:gpl3+)))
4408
4409 (define-public seahorse
4410 (package
4411 (name "seahorse")
4412 (version "42.0")
4413 (source
4414 (origin
4415 (method url-fetch)
4416 (uri (string-append "mirror://gnome/sources/" name "/"
4417 (version-major version) "/" name "-"
4418 version ".tar.xz"))
4419 (sha256
4420 (base32 "0c6nafhn4gcjwd1xbs5bjq9785114fc0pbhxbwp7wynyz3msq365"))))
4421 (build-system meson-build-system)
4422 (arguments
4423 '(#:glib-or-gtk? #t
4424 #:phases
4425 (modify-phases %standard-phases
4426 (add-after 'unpack 'skip-gtk-update-icon-cache
4427 ;; Don't create 'icon-theme.cache'.
4428 (lambda _
4429 (substitute* "build-aux/meson_post_install.py"
4430 (("gtk-update-icon-cache") "true"))))
4431 (add-before 'check 'pre-check
4432 (lambda _
4433 ;; Tests require a writable HOME.
4434 (setenv "HOME" (getcwd)))))))
4435 (inputs
4436 (list gtk+
4437 gcr
4438 gnupg
4439 gpgme
4440 openldap
4441 openssh
4442 avahi
4443 libhandy
4444 libpwquality
4445 libsecret
4446 libsoup-minimal-2))
4447 (native-inputs
4448 (list gettext-minimal
4449 `(,glib "bin")
4450 itstool
4451 pkg-config
4452 python
4453 vala
4454 libxml2))
4455 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4456 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4457 (description
4458 "Seahorse is a GNOME application for managing encryption keys and
4459 passwords in the GNOME keyring.")
4460 (license license:gpl2+)))
4461
4462 (define-public vala
4463 (package
4464 (name "vala")
4465 (version "0.54.2")
4466 (source (origin
4467 (method url-fetch)
4468 (uri (string-append "mirror://gnome/sources/vala/"
4469 (version-major+minor version) "/"
4470 "vala-" version ".tar.xz"))
4471 (sha256
4472 (base32
4473 "048k5c6c6y7jyb961krnrb7m0kghr0yrkpnfx3j5ckbx652yfkc8"))))
4474 (build-system glib-or-gtk-build-system)
4475 (arguments
4476 '(#:configure-flags '("--enable-coverage")
4477 #:phases
4478 (modify-phases %standard-phases
4479 (add-after 'unpack 'patch-docbook-xml
4480 (lambda* (#:key inputs #:allow-other-keys)
4481 (with-directory-excursion "doc/manual"
4482 (substitute* '("manual.xml" "version.xml.in")
4483 (("http://www.oasis-open.org/docbook/xml/4.4/")
4484 (string-append (assoc-ref inputs "docbook-xml")
4485 "/xml/dtd/docbook/"))))))
4486 (add-before 'check 'pre-check
4487 (lambda _
4488 (setenv "CC" "gcc")
4489 (substitute* "valadoc/tests/libvaladoc\
4490 /tests-extra-environment.sh"
4491 (("export PKG_CONFIG_PATH=" m)
4492 (string-append m "$PKG_CONFIG_PATH:"))))))))
4493 (native-inputs
4494 `(("bison" ,bison)
4495 ("dbus" ,dbus) ; for dbus tests
4496 ("docbook-xml" ,docbook-xml-4.4)
4497 ("docbook-xsl" ,docbook-xsl)
4498 ("flex" ,flex)
4499 ("gobject-introspection" ,gobject-introspection) ; for gir tests
4500 ("help2man" ,help2man)
4501 ("perl" ,perl)
4502 ("pkg-config" ,pkg-config)
4503 ("xsltproc" ,libxslt)))
4504 (propagated-inputs
4505 `(("glib" ,glib) ; required by libvala-0.40.pc
4506 ("libgvc" ,graphviz)))
4507 (home-page "https://wiki.gnome.org/Projects/Vala/")
4508 (synopsis "Compiler using the GObject type system")
4509 (description "Vala is a programming language using modern high level
4510 abstractions without imposing additional runtime requirements and without using
4511 a different ABI compared to applications and libraries written in C. Vala uses
4512 the GObject type system and has additional code generation routines that make
4513 targeting the GNOME stack simple.")
4514 (license license:lgpl2.1+)))
4515
4516 (define-public vala-next
4517 (package
4518 (inherit vala)
4519 (version "0.56.3")
4520 (source (origin
4521 (method url-fetch)
4522 (uri (string-append "mirror://gnome/sources/vala/"
4523 (version-major+minor version) "/"
4524 "vala-" version ".tar.xz"))
4525 (sha256
4526 (base32
4527 "1gwrnr0d0bqkh6m4bgz39mh3pcswcj43hyijlwgwp2bvpwhn41p1"))))
4528 (arguments
4529 (list
4530 #:configure-flags #~(list "CC=gcc" "--enable-coverage")
4531 #:phases
4532 #~(modify-phases %standard-phases
4533 (add-after 'unpack 'use-gcc-by-default
4534 (lambda _
4535 (substitute* "codegen/valaccodecompiler.c"
4536 (("cc_command = \"cc\"")
4537 "cc_command = \"gcc\""))))
4538 (add-after 'unpack 'patch-docbook-xml
4539 (lambda* (#:key inputs #:allow-other-keys)
4540 (with-directory-excursion "doc/manual"
4541 (substitute* '("manual.xml" "version.xml.in")
4542 (("http://www.oasis-open.org/docbook/xml/4.4/")
4543 (search-input-directory inputs "xml/dtd/docbook"))))))
4544 (add-before 'check 'pre-check
4545 (lambda _
4546 (substitute* "valadoc/tests/libvaladoc/tests-extra-environment.sh"
4547 (("export PKG_CONFIG_PATH=" m)
4548 (string-append m "$PKG_CONFIG_PATH:")))))
4549 ;; Wrapping the binaries breaks vala's behavior adaptations based on
4550 ;; the file name of the program executed (vala: compile and execute,
4551 ;; valac: compile into a binary).
4552 (delete 'glib-or-gtk-wrap))))))
4553
4554 ;;; An older variant kept to build libsoup-minimal-2.
4555 (define-public vala-0.52
4556 (package/inherit vala
4557 (version "0.52.0")
4558 (source (origin
4559 (method url-fetch)
4560 (uri (string-append "mirror://gnome/sources/vala/"
4561 (version-major+minor version) "/"
4562 "vala-" version ".tar.xz"))
4563 (sha256
4564 (base32
4565 "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))))
4566
4567 (define-public vte
4568 (package
4569 (name "vte")
4570 (version "0.69.99")
4571 (source (origin
4572 (method url-fetch)
4573 (uri (string-append "mirror://gnome/sources/vte/"
4574 (version-major+minor version) "/"
4575 "vte-" version ".tar.xz"))
4576 (sha256
4577 (base32
4578 "1v3i38yrjhc48nvs1g333s3q709mq824qq0k2fnsmrrwv15c3cg9"))))
4579 (build-system meson-build-system)
4580 (arguments
4581 (list #:configure-flags #~(list "-Dvapi=true"
4582 "-D_systemd=false")))
4583 (native-inputs
4584 (list pkg-config
4585 gettext-minimal
4586 vala
4587 gobject-introspection
4588 `(,glib "bin") ; for glib-genmarshal, etc.
4589 gperf
4590 python
4591 libxml2))
4592 (propagated-inputs
4593 (list gtk+ ; required by vte-2.91.pc
4594 gnutls ; ditto
4595 pcre2)) ; ditto
4596 (home-page "https://www.gnome.org/")
4597 (synopsis "Virtual Terminal Emulator")
4598 (description
4599 "VTE is a library (libvte) implementing a terminal emulator widget for
4600 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4601 gnome-terminal, but can also be used to embed a console/terminal in games,
4602 editors, IDEs, etc.")
4603 (license license:lgpl2.1+)))
4604
4605 (define-public vte-ng
4606 (package
4607 (inherit vte)
4608 (name "vte-ng")
4609 (version "0.59.0")
4610 (home-page "https://github.com/thestinger/vte-ng")
4611 (source (origin
4612 (method git-fetch)
4613 (uri (git-reference (url home-page) (commit version)))
4614 (file-name (git-file-name name version))
4615 (sha256
4616 (base32
4617 "03ffhjc0fq9p25y1b2c0a51jn7y2bc0acxsgymhcb3pyijc8ykjm"))))
4618 (build-system meson-build-system)
4619 (arguments
4620 (list #:configure-flags #~(list "-Ddocs=false")))
4621 (synopsis "Enhanced VTE terminal widget")
4622 (description
4623 "VTE is a library (libvte) implementing a terminal emulator widget for
4624 GTK+, this fork provides additional functions exposed for keyboard text
4625 selection and URL hints.")))
4626
4627 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4628 (define-public vte/gtk+-2
4629 (package (inherit vte)
4630 (name "vte")
4631 (version "0.28.2")
4632 (source (origin
4633 (method url-fetch)
4634 (uri (string-append "mirror://gnome/sources/" name "/"
4635 (version-major+minor version) "/"
4636 name "-" version ".tar.xz"))
4637 (sha256
4638 (base32
4639 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4640 (patches (search-patches
4641 "vte-CVE-2012-2738-pt1.patch"
4642 "vte-CVE-2012-2738-pt2.patch"))))
4643 (build-system gnu-build-system)
4644 (arguments
4645 '(#:configure-flags '("--disable-python")))
4646 (native-inputs
4647 (list pkg-config intltool
4648 `(,glib "bin"))) ; for glib-genmarshal, etc.
4649 (propagated-inputs
4650 (list gtk+-2 ; required by libvte.pc
4651 ncurses)))) ; required by libvte.la
4652
4653 (define-public vinagre
4654 (package
4655 (name "vinagre")
4656 (version "3.22.0")
4657 (source (origin
4658 (method url-fetch)
4659 (uri (string-append "mirror://gnome/sources/" name "/"
4660 (version-major+minor version) "/"
4661 name "-" version ".tar.xz"))
4662 (patches (search-patches "vinagre-newer-freerdp.patch"
4663 "vinagre-newer-rdp-parameters.patch"))
4664 (sha256
4665 (base32
4666 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4667 (build-system glib-or-gtk-build-system)
4668 (arguments
4669 ;; Disable -Werror and such, to avoid build failures on compilation
4670 ;; warnings.
4671 '(#:configure-flags '("--enable-compile-warnings=minimum"
4672 "CFLAGS=-O2 -g -fcommon")
4673 #:phases
4674 (modify-phases %standard-phases
4675 (add-before 'install 'skip-gtk-update-icon-cache
4676 (lambda _
4677 ;; Don't create 'icon-theme.cache'
4678 (substitute* (find-files "." "^Makefile$")
4679 (("gtk-update-icon-cache") (which "true")))
4680 #t))
4681 (add-after 'unpack 'patch-configure
4682 (lambda _
4683 (substitute* "configure"
4684 (("freerdp") "freerdp2"))
4685 #t)))))
4686 (native-inputs
4687 `(("pkg-config" ,pkg-config)
4688 ("intltool" ,intltool)
4689 ("itstool" ,itstool)
4690 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4691 (inputs
4692 (list libxml2
4693 gtk-vnc
4694 gnome-keyring
4695 libsecret
4696 freerdp
4697 spice
4698 spice-gtk
4699 telepathy-glib
4700 vte))
4701 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4702 (synopsis "Remote desktop viewer for GNOME")
4703 (description "Vinagre is a remote display client supporting the VNC, SPICE
4704 and RDP protocols.")
4705 (license license:gpl3+)))
4706
4707 (define-public dconf
4708 (package
4709 (name "dconf")
4710 (version "0.40.0")
4711 (source (origin
4712 (method url-fetch)
4713 (uri (string-append
4714 "mirror://gnome/sources/" name "/"
4715 (version-major+minor version) "/"
4716 name "-" version ".tar.xz"))
4717 (sha256
4718 (base32
4719 "0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg"))))
4720 (build-system meson-build-system)
4721 (propagated-inputs
4722 ;; In Requires of dconf.pc.
4723 (list glib))
4724 (inputs
4725 (list gtk+ dbus))
4726 (native-inputs
4727 `(("bash-completion" ,bash-completion)
4728 ("libxslt" ,libxslt) ;for xsltproc
4729 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4730 ("docbook-xml" ,docbook-xml-4.2)
4731 ("docbook-xsl" ,docbook-xsl)
4732 ("glib:bin" ,glib "bin")
4733 ("gtk-doc" ,gtk-doc/stable)
4734 ("pkg-config" ,pkg-config)
4735 ("python" ,python)
4736 ("vala" ,vala)))
4737 (arguments
4738 `(#:glib-or-gtk? #t
4739 #:configure-flags '("-Dgtk_doc=true")
4740 #:phases (modify-phases %standard-phases
4741 (add-after 'unpack 'increase-test-timeout
4742 (lambda _
4743 ;; On big-memory systems, the engine test may take
4744 ;; much longer than the default of 30 seconds.
4745 (substitute* "tests/meson.build"
4746 (("test\\(unit_test\\[0\\], exe" all)
4747 (string-append all ", timeout: 300"))))))))
4748 (home-page "https://developer.gnome.org/dconf/")
4749 (synopsis "Low-level GNOME configuration system")
4750 (description "Dconf is a low-level configuration system. Its main purpose
4751 is to provide a backend to GSettings on platforms that don't already have
4752 configuration storage systems.")
4753 (license license:lgpl2.1+)))
4754
4755 (define-public json-glib-minimal
4756 (package
4757 (name "json-glib-minimal")
4758 (version "1.6.2")
4759 (source (origin
4760 (method url-fetch)
4761 (uri (string-append "mirror://gnome/sources/json-glib/"
4762 (version-major+minor version)
4763 "/json-glib-" version ".tar.xz"))
4764 (sha256
4765 (base32
4766 "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3"))))
4767 (build-system meson-build-system)
4768 (arguments
4769 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
4770 (native-inputs
4771 `(("gettext" ,gettext-minimal)
4772 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4773 ("pkg-config" ,pkg-config)))
4774 (inputs
4775 (list bash-minimal))
4776 (propagated-inputs
4777 (list glib)) ;according to json-glib-1.0.pc
4778 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4779 (synopsis "Glib and GObject implementation of JSON")
4780 (description "JSON-GLib is a library providing serialization and
4781 described by RFC 4627. It implements a full JSON parser and generator using
4782 GLib and GObject, and integrates JSON with GLib data types.")
4783 (license license:lgpl2.1+)))
4784
4785 (define-public json-glib
4786 (package/inherit json-glib-minimal
4787 (name "json-glib")
4788 (outputs (cons "doc" (package-outputs json-glib-minimal)))
4789 (arguments
4790 (substitute-keyword-arguments (package-arguments json-glib-minimal)
4791 ((#:configure-flags _)
4792 `(list "-Ddocs=true"
4793 "-Dman=true"
4794 ,@(if (%current-target-system)
4795 ;; If enabled, gtkdoc-scangobj will try to execute a
4796 ;; cross-compiled binary.
4797 '("-Dgtk_doc=disabled"
4798 ;; Trying to build introspection data when cross-compiling
4799 ;; causes errors during linking.
4800 "-Dintrospection=disabled")
4801 '())))
4802 ((#:phases phases '%standard-phases)
4803 `(modify-phases ,phases
4804 (add-after 'unpack 'patch-docbook
4805 (lambda* (#:key native-inputs inputs #:allow-other-keys)
4806 (with-directory-excursion "doc"
4807 (substitute* (find-files "." "\\.xml$")
4808 (("http://www.oasis-open.org/docbook/xml/4\\.3/")
4809 (string-append (assoc-ref (or native-inputs inputs)
4810 "docbook-xml")
4811 "/xml/dtd/docbook/")))
4812 (substitute* "meson.build"
4813 (("http://docbook.sourceforge.net/release/xsl/current/")
4814 (string-append (assoc-ref (or native-inputs inputs)
4815 "docbook-xsl")
4816 "/xml/xsl/docbook-xsl-1.79.2/"))))))
4817 ;; When cross-compiling, there are no docs to move.
4818 ,(if (%current-target-system)
4819 '(add-after 'install 'stub-docs
4820 (lambda* (#:key outputs #:allow-other-keys)
4821 ;; The daemon doesn't like empty output paths.
4822 (mkdir (assoc-ref outputs "doc"))))
4823 '(add-after 'install 'move-docs
4824 (lambda* (#:key outputs #:allow-other-keys)
4825 (let* ((out (assoc-ref outputs "out"))
4826 (doc (assoc-ref outputs "doc")))
4827 (mkdir-p (string-append doc "/share"))
4828 (rename-file
4829 (string-append out "/share/gtk-doc")
4830 (string-append doc "/share/gtk-doc"))))))))))
4831 (native-inputs
4832 (append
4833 `(("docbook-xml" ,docbook-xml-4.3)
4834 ("docbook-xsl" ,docbook-xsl)
4835 ("gobject-introspection" ,gobject-introspection)
4836 ("gtk-doc" ,gtk-doc)
4837 ("xsltproc" ,libxslt))
4838 (package-native-inputs json-glib-minimal)))))
4839
4840 (define-public libxklavier
4841 (package
4842 (name "libxklavier")
4843 (version "5.4")
4844 (source (origin
4845 ;; Note: There's no tarball at ftp.gnome.org for this version.
4846 (method git-fetch)
4847 (uri (git-reference
4848 (url "https://anongit.freedesktop.org/git/libxklavier")
4849 (commit (string-append "libxklavier-" version))))
4850 (sha256
4851 (base32
4852 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4853 (file-name (git-file-name name version))))
4854 (build-system gnu-build-system)
4855 (arguments
4856 '(#:configure-flags
4857 (list (string-append "--with-xkb-base="
4858 (assoc-ref %build-inputs "xkeyboard-config")
4859 "/share/X11/xkb")
4860 "--disable-xmodmap-support")))
4861 (native-inputs
4862 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4863 ("gobject-introspection" ,gobject-introspection)
4864 ("pkg-config" ,pkg-config)
4865 ("gtk-doc" ,gtk-doc/stable)
4866 ("intltool" ,intltool)
4867 ("which" ,which)
4868 ("autoconf" ,autoconf)
4869 ("automake" ,automake)
4870 ("libtool" ,libtool)))
4871 (propagated-inputs
4872 ;; Required by libxklavier.pc.
4873 (list glib libxml2))
4874 (inputs
4875 (list iso-codes libxi libxkbfile xkbcomp xkeyboard-config))
4876 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4877 (synopsis "High-level API for X Keyboard Extension")
4878 (description
4879 "LibXklavier is a library providing high-level API for X Keyboard
4880 Extension known as XKB. This library is intended to support XFree86 and other
4881 commercial X servers. It is useful for creating XKB-related software (layout
4882 indicators etc).")
4883 (license license:lgpl2.0+)))
4884
4885 (define-public glib-networking
4886 (package
4887 (name "glib-networking")
4888 (version "2.70.0")
4889 (source (origin
4890 (method url-fetch)
4891 (uri (string-append "mirror://gnome/sources/glib-networking/"
4892 (version-major+minor version) "/"
4893 "glib-networking-" version ".tar.xz"))
4894 (sha256
4895 (base32
4896 "0dbg1na239mbavn4hknkax5sns9q2dbdnqw9wcpmhv58mzkhid36"))
4897 (patches
4898 (search-patches "glib-networking-gnutls-binding.patch"))))
4899 (build-system meson-build-system)
4900 (arguments
4901 (if (target-64bit?)
4902 '()
4903 (list #:phases
4904 #~(modify-phases %standard-phases
4905 (add-after 'unpack 'work-around-32-bit-time-t
4906 (lambda _
4907 (invoke "patch" "--force" "-p1" "-i"
4908 #$(local-file
4909 (search-patch
4910 "glib-networking-32-bit-time.patch")))))))))
4911 (native-inputs
4912 `(("pkg-config" ,pkg-config)
4913 ("gettext" ,gettext-minimal)))
4914 (inputs
4915 (list glib gnutls gsettings-desktop-schemas libproxy))
4916 (home-page "https://wiki.gnome.org/Projects/GLib")
4917 (synopsis "Network extensions for GLib")
4918 (description
4919 "Glib-networking contains the implementations of certain GLib networking
4920 features that cannot be implemented directly in GLib itself because of their
4921 dependencies. Currently it contains GnuTLS and OpenSSL-based implementations of
4922 GTlsBackend, a libproxy-based implementation of GProxyResolver,
4923 GLibproxyResolver, and a GNOME GProxyResolver that uses the proxy information
4924 from the GSettings schemas in gsettings-desktop-schemas.")
4925 (license license:lgpl2.1+)))
4926
4927 (define-public rest
4928 (package
4929 (name "rest")
4930 (version "0.8.1")
4931 (source (origin
4932 (method url-fetch)
4933 (uri (string-append "mirror://gnome/sources/rest/"
4934 (version-major+minor version) "/"
4935 name "-" version ".tar.xz"))
4936 (sha256
4937 (base32
4938 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4939 (build-system gnu-build-system)
4940 (arguments
4941 '(#:tests? #f ; tests require internet connection
4942 #:configure-flags
4943 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4944 (native-inputs
4945 `(("glib-mkenums" ,glib "bin")
4946 ("gobject-introspection" ,gobject-introspection)
4947 ("pkg-config" ,pkg-config)))
4948 (propagated-inputs
4949 ;; rest-0.7.pc refers to all these.
4950 `(("glib" ,glib)
4951 ("libsoup" ,libsoup-minimal-2)
4952 ("libxml2" ,libxml2)))
4953 (home-page "https://www.gtk.org/")
4954 (synopsis "RESTful web api query library")
4955 (description
4956 "This library was designed to make it easier to access web services that
4957 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4958 libxml to ease remote use of the RESTful API.")
4959 (license license:lgpl2.1+)))
4960
4961 (define-public rest-next
4962 (package
4963 (inherit rest)
4964 (name "rest")
4965 (version "0.9.1")
4966 (source (origin
4967 (method url-fetch)
4968 (uri (string-append "mirror://gnome/sources/rest/"
4969 (version-major+minor version) "/"
4970 name "-" version ".tar.xz"))
4971 (sha256
4972 (base32
4973 "1qy2291d2vprdbbxmf0sa98izk09nl3znzzv7lckwf6f1v0sarlj"))))
4974 (build-system meson-build-system)
4975 (arguments (substitute-keyword-arguments (package-arguments rest)
4976 ((#:tests? _ #f) #t)
4977 ((#:configure-flags _)
4978 #~(list))
4979 ((#:phases phases '%standard-phases)
4980 #~(modify-phases #$phases
4981 (add-after 'unpack 'disable-problematic-tests
4982 ;; These tests require networking.
4983 (lambda _
4984 (substitute* "tests/meson.build"
4985 ((".*'flickr',.*") "")
4986 ((".*'lastfm',.*") ""))))
4987 (add-before 'check 'prepare-for-tests
4988 (lambda _
4989 (setenv "HOME" "/tmp")))))))
4990 (native-inputs
4991 (modify-inputs (package-native-inputs rest)
4992 (append gettext-minimal
4993 gi-docgen
4994 gsettings-desktop-schemas)))
4995 (inputs (list gtksourceview json-glib libadwaita))
4996 (propagated-inputs
4997 (modify-inputs (package-propagated-inputs rest)
4998 (replace "libsoup" libsoup)
4999 (append json-glib)))))
5000
5001 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
5002 (define-public libsoup-minimal
5003 (package
5004 (name "libsoup-minimal")
5005 (version "3.0.4")
5006 (source (origin
5007 (method url-fetch)
5008 (uri (string-append "mirror://gnome/sources/libsoup/"
5009 (version-major+minor version) "/"
5010 "libsoup-" version ".tar.xz"))
5011 (sha256
5012 (base32
5013 "0ysnvvfd2f6w2z6g31spqqb8wgyamixc7mryzbbpyw0z15g8plsv"))))
5014 (build-system meson-build-system)
5015 (arguments
5016 `(#:configure-flags '("-Dgtk_doc=false")
5017 #:phases
5018 (modify-phases %standard-phases
5019 (add-after 'unpack 'adjust-tests
5020 (lambda _
5021 ;; This test fails due to missing /etc/nsswitch.conf
5022 ;; in the build environment.
5023 (substitute* "tests/socket-test.c"
5024 ((".*/sockets/unconnected.*") ""))
5025
5026 ;; These fail because "subdomain.localhost" does not resolve in
5027 ;; the build environment. Moreover, the hsts-test suite fails on
5028 ;; i686-linux because of errors from `session_get_uri' like
5029 ;; "Unexpected status 200 OK (expected 301 Moved Permanently)"
5030 ;; (see: https://gitlab.gnome.org/GNOME/libsoup/-/issues/239).
5031 (substitute* "tests/meson.build"
5032 ((".*'name': 'hsts'.*") ""))
5033 (substitute* "tests/hsts-db-test.c"
5034 ((".*/hsts-db/subdomains.*") "")))))))
5035 (native-inputs
5036 (list `(,glib "bin") ;for glib-mkenums
5037 gobject-introspection
5038 intltool
5039 pkg-config
5040 python-wrapper
5041 vala
5042 curl
5043 gnutls ;for 'certtool'
5044 httpd))
5045 (propagated-inputs
5046 ;; libsoup-3.0.pc refers to all of these (except where otherwise noted)
5047 (list brotli
5048 glib
5049 glib-networking ; for GIO runtime modules
5050 libpsl
5051 nghttp2 ;for pkg-config
5052 `(,nghttp2 "lib")
5053 libxml2
5054 sqlite
5055 zlib))
5056 (inputs
5057 (list mit-krb5 samba/fixed)) ; For ntlm_auth support
5058 (home-page "https://wiki.gnome.org/Projects/libsoup")
5059 (synopsis "GLib-based HTTP Library")
5060 (description
5061 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
5062 and the GLib main loop, to integrate well with GNOME applications.")
5063 (license license:lgpl2.0+)))
5064
5065 ;;; An older variant kept to build the 'rest' package.
5066 (define-public libsoup-minimal-2
5067 (package/inherit libsoup-minimal
5068 (version "2.72.0")
5069 (source (origin
5070 (method url-fetch)
5071 (uri (string-append "mirror://gnome/sources/libsoup/"
5072 (version-major+minor version) "/"
5073 "libsoup-" version ".tar.xz"))
5074 (sha256
5075 (base32
5076 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
5077 (arguments
5078 (substitute-keyword-arguments (package-arguments libsoup-minimal)
5079 ((#:phases phases)
5080 `(modify-phases ,phases
5081 (add-after 'unpack 'disable-failing-tests
5082 (lambda _
5083 ;; Disable the SSL test, failing since 2.68 and resolved in
5084 ;; libsoup 3.
5085 (substitute* "tests/meson.build"
5086 (("[ \t]*\\['ssl', true, \\[\\]\\],") ""))))))))
5087 (native-inputs
5088 (modify-inputs (package-native-inputs libsoup-minimal)
5089 (replace "vala" vala-0.52)))))
5090
5091 (define-public libsoup
5092 (package/inherit libsoup-minimal
5093 (name "libsoup")
5094 (outputs (cons "doc" (package-outputs libsoup-minimal)))
5095 (arguments
5096 (substitute-keyword-arguments (package-arguments libsoup-minimal)
5097 ((#:configure-flags configure-flags)
5098 `(cons "-Dgtk_doc=true"
5099 (delete "-Dgtk_doc=false" ,configure-flags)))
5100 ((#:phases phases)
5101 `(modify-phases ,phases
5102 (add-after 'unpack 'patch-docbook-xml
5103 (lambda* (#:key inputs #:allow-other-keys)
5104 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
5105 "/xml/dtd/docbook")))
5106 (substitute* (find-files "docs/reference")
5107 (("http://.*/docbookx\\.dtd")
5108 (string-append xmldoc "/docbookx.dtd"))))))
5109 (add-after 'install 'move-doc
5110 (lambda* (#:key outputs #:allow-other-keys)
5111 (let ((out (assoc-ref outputs "out"))
5112 (doc (assoc-ref outputs "doc")))
5113 (mkdir-p (string-append doc "/share"))
5114 (copy-recursively (string-append out "/share/gtk-doc")
5115 (string-append doc "/share/gtk-doc"))
5116 (delete-file-recursively
5117 (string-append out "/share/gtk-doc")))))))))
5118 (native-inputs (modify-inputs (package-native-inputs libsoup-minimal)
5119 (prepend docbook-xml-4.1.2 gtk-doc)))))
5120
5121 (define-public libsecret
5122 (package
5123 (name "libsecret")
5124 (version "0.20.4")
5125 (source (origin
5126 (method url-fetch)
5127 (uri (string-append
5128 "mirror://gnome/sources/libsecret/"
5129 (version-major+minor version) "/"
5130 "libsecret-" version ".tar.xz"))
5131 (sha256
5132 (base32
5133 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
5134 (build-system gnu-build-system)
5135 (outputs '("out" "doc"))
5136 (arguments
5137 `(#:tests? #f ; FIXME: Testing hangs.
5138 #:configure-flags
5139 (list (string-append "--with-html-dir="
5140 (assoc-ref %outputs "doc")
5141 "/share/gtk-doc/html"))))
5142 (native-inputs
5143 `(("gettext" ,gettext-minimal)
5144 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
5145 ("gobject-introspection" ,gobject-introspection)
5146 ("pkg-config" ,pkg-config)
5147 ("vala" ,vala)
5148 ("xsltproc" ,libxslt)))
5149 (propagated-inputs
5150 (list glib)) ; required by libsecret-1.pc
5151 (inputs
5152 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
5153 ;; doesn't seem to affect the build result.
5154 (list docbook-xsl libgcrypt libxml2)) ; for XML_CATALOG_FILES
5155 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
5156 (synopsis "GObject bindings for \"Secret Service\" API")
5157 (description
5158 "Libsecret is a GObject based library for storing and retrieving passwords
5159 and other secrets. It communicates with the \"Secret Service\" using DBus.")
5160 (license license:lgpl2.1+)))
5161
5162 (define-public five-or-more
5163 (package
5164 (name "five-or-more")
5165 (version "3.32.3")
5166 (source
5167 (origin
5168 (method url-fetch)
5169 (uri (string-append "mirror://gnome/sources/five-or-more/"
5170 (version-major+minor version) "/"
5171 "five-or-more-" version ".tar.xz"))
5172 (sha256
5173 (base32 "1x4ys18rn37hsavivh532py2avj9686aycnn8ys29cyyxwpdf41d"))))
5174 (build-system meson-build-system)
5175 (arguments
5176 '(#:glib-or-gtk? #t
5177 #:phases
5178 (modify-phases %standard-phases
5179 (add-after 'unpack 'skip-gtk-update-icon-cache
5180 (lambda _
5181 (substitute* "meson_post_install.py"
5182 (("gtk-update-icon-cache") (which "true"))))))))
5183 (native-inputs
5184 (list appstream-glib
5185 desktop-file-utils
5186 `(,glib "bin") ; for glib-compile-resources
5187 intltool
5188 itstool
5189 pkg-config
5190 vala))
5191 (inputs
5192 (list gtk+ libgnome-games-support librsvg libxml2))
5193 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
5194 (synopsis "Logic puzzle game")
5195 (description "Five or More is a game where you try to align
5196 five or more objects of the same color and shape causing them to disappear.
5197 On every turn more objects will appear, until the board is full.
5198 Try to last as long as possible.")
5199 (license license:gpl2+)))
5200
5201 (define-public gi-docgen
5202 (package
5203 (name "gi-docgen")
5204 (version "2022.1")
5205 (source (origin
5206 (method url-fetch)
5207 (uri (pypi-uri "gi-docgen" version))
5208 (sha256
5209 (base32
5210 "1v2wspm2ld27lq1n5v5pzrmkhchfa7p7ahp8rmjm4zcdyagqf7gr"))))
5211 (build-system python-build-system)
5212 (propagated-inputs (list python-jinja2
5213 python-markdown
5214 python-markupsafe
5215 python-pygments
5216 python-toml
5217 python-typogrify))
5218 (home-page "https://gitlab.gnome.org/GNOME/gi-docgen")
5219 (synopsis "Documentation tool for GObject-based libraries")
5220 (description "GI-DocGen is a document generator for GObject-based
5221 libraries. GObject is the base type system of the GNOME project. GI-Docgen
5222 reuses the introspection data generated by GObject-based libraries to generate
5223 the API reference of these libraries, as well as other ancillary
5224 documentation.")
5225 (license license:gpl3+)))
5226
5227 (define-public gnome-mines
5228 (package
5229 (name "gnome-mines")
5230 (version "40.1")
5231 (source
5232 (origin
5233 (method url-fetch)
5234 (uri (string-append "mirror://gnome/sources/" name "/"
5235 (version-major version) "/"
5236 name "-" version ".tar.xz"))
5237 (sha256
5238 (base32 "0whjwdxhyw5bvibd9qvpm2yc5g7yhy8h3rn027kv5cqwyyryj0im"))))
5239 (build-system meson-build-system)
5240 (arguments
5241 `(#:glib-or-gtk? #t
5242 #:phases
5243 (modify-phases %standard-phases
5244 (add-after 'unpack 'skip-gtk-update-icon-cache
5245 (lambda _
5246 (substitute* "build-aux/meson_post_install.py"
5247 (("gtk-update-icon-cache") (which "true"))))))))
5248 (native-inputs
5249 (list appstream-glib
5250 desktop-file-utils
5251 gettext-minimal
5252 `(,glib "bin") ; for glib-compile-resources
5253 itstool
5254 pkg-config
5255 python-wrapper ; for meson_post_install.py
5256 vala))
5257 (inputs
5258 (list gtk+
5259 libgnome-games-support
5260 librsvg
5261 yelp))
5262 (home-page "https://wiki.gnome.org/Apps/Mines")
5263 (synopsis "Minesweeper game")
5264 (description
5265 "Mines (previously gnomine) is a puzzle game where you locate mines
5266 floating in an ocean using only your brain and a little bit of luck.")
5267 (license license:gpl2+)))
5268
5269 (define-public gnome-multi-writer
5270 (package
5271 (name "gnome-multi-writer")
5272 (version "3.35.90")
5273 (source
5274 (origin
5275 (method url-fetch)
5276 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5277 (version-major+minor version) "/"
5278 "gnome-multi-writer-" version ".tar.xz"))
5279 (sha256
5280 (base32
5281 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5282 (build-system meson-build-system)
5283 (arguments
5284 '(#:glib-or-gtk? #t
5285 #:phases
5286 (modify-phases %standard-phases
5287 (add-after 'unpack 'skip-post-install
5288 (lambda _
5289 (substitute* "meson.build"
5290 (("meson.add_install_script" &) (string-append "# " &)))
5291 #t)))))
5292 (native-inputs
5293 `(("glib:bin" ,glib "bin")
5294 ("pkg-config" ,pkg-config)))
5295 (inputs
5296 (list gtk+
5297 glib ; for gio
5298 gusb
5299 udisks
5300 libgudev
5301 libcanberra
5302 polkit))
5303 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5304 (synopsis "Write to multiple USB devices at once")
5305 (description
5306 "MultiWriter can be used to write an ISO file to multiple USB devices at
5307 once.")
5308 (license license:gpl2+)))
5309
5310 (define-public gnome-sudoku
5311 (package
5312 (name "gnome-sudoku")
5313 (version "42.0")
5314 (source
5315 (origin
5316 (method url-fetch)
5317 (uri (string-append "mirror://gnome/sources/" name "/"
5318 (version-major version) "/"
5319 name "-" version ".tar.xz"))
5320 (sha256
5321 (base32
5322 "13y2qphrj99b0lc7bh71is1f6i0jvyw8adfg8lv48sq2p3fv8bhx"))))
5323 (build-system meson-build-system)
5324 (arguments
5325 `(#:glib-or-gtk? #t
5326 #:phases
5327 (modify-phases %standard-phases
5328 (add-after 'unpack 'skip-gtk-update-icon-cache
5329 (lambda _
5330 (substitute* "build-aux/post_install.py"
5331 (("gtk-update-icon-cache") (which "true"))))))))
5332 (native-inputs
5333 (list desktop-file-utils
5334 gettext-minimal
5335 `(,glib "bin") ;for glib-compile-resources
5336 itstool
5337 libxml2
5338 pkg-config
5339 python ;for 'build-aux/post_install.py'
5340 vala))
5341 (inputs
5342 (list gtk+
5343 json-glib
5344 libgee
5345 librsvg
5346 qqwing))
5347 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5348 (synopsis "Japanese logic game")
5349 (description
5350 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5351 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5352 possible while still providing features that make playing difficult Sudoku
5353 more fun.")
5354 (license license:gpl2+)))
5355
5356 (define-public gnome-terminal
5357 (package
5358 (name "gnome-terminal")
5359 (version "3.44.1")
5360 (source
5361 (origin
5362 (method url-fetch)
5363 (uri (string-append "mirror://gnome/sources/" name "/"
5364 (version-major+minor version) "/"
5365 name "-" version ".tar.xz"))
5366 (sha256
5367 (base32
5368 "0yykb64yi1h0g65q890jf5awjr2sdvfda4xbxnmajcgj3zp20vzv"))))
5369 (build-system meson-build-system)
5370 (arguments
5371 (list
5372 #:glib-or-gtk? #t
5373 #:phases
5374 #~(modify-phases %standard-phases
5375 (add-after 'unpack 'patch-build-system
5376 ;; The build system looks for a dbus file from gnome-shell in the
5377 ;; installation tree of teh package it is configuring...
5378 (lambda* (#:key inputs #:allow-other-keys)
5379 (substitute* "src/meson.build"
5380 (("gt_prefix.*'org.gnome.ShellSearchProvider2.xml'")
5381 (format #f "'~a'" (search-input-file
5382 inputs "share/dbus-1/interfaces/\
5383 org.gnome.ShellSearchProvider2.xml"))))))
5384 (add-before 'install 'disable-gtk-update-icon-cache
5385 (lambda _
5386 (setenv "DESTDIR" "/"))))))
5387 (native-inputs
5388 (list desktop-file-utils
5389 docbook-xsl
5390 gettext-minimal
5391 `(,glib "bin")
5392 itstool
5393 libxml2
5394 libxslt
5395 pkg-config
5396 python))
5397 (propagated-inputs
5398 (list dconf))
5399 (inputs
5400 (list gnome-shell
5401 gnutls
5402 gsettings-desktop-schemas
5403 gtk+
5404 nautilus ;for extension
5405 `(,util-linux "lib")
5406 vala
5407 vte))
5408 (home-page "https://wiki.gnome.org/Apps/Terminal")
5409 (synopsis "Terminal emulator")
5410 (description
5411 "GNOME Terminal is a terminal emulator application for accessing a
5412 UNIX shell environment which can be used to run programs available on
5413 your system.
5414
5415 It supports several profiles, multiple tabs and implements several
5416 keyboard shortcuts.")
5417 (license license:gpl3+)))
5418
5419 (define-public colord-minimal
5420 (package
5421 (name "colord-minimal")
5422 (version "1.4.5")
5423 (source
5424 (origin
5425 (method url-fetch)
5426 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5427 "colord-" version ".tar.xz"))
5428 (sha256
5429 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5430 (build-system meson-build-system)
5431 (arguments
5432 '( ;; FIXME: One test fails:
5433 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5434 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5435 ;; application/x-zerosize
5436 #:tests? #f
5437 #:glib-or-gtk? #t
5438 #:configure-flags (list "-Dargyllcms_sensor=false" ;requires spotread
5439 "-Dbash_completion=false"
5440 "-Ddaemon_user=colord"
5441 "-Ddocs=false"
5442 "-Dlocalstatedir=/var"
5443 "-Dman=false"
5444 "-Dsane=true"
5445 "-Dsystemd=false") ;no systemd
5446 #:phases
5447 (modify-phases %standard-phases
5448 (add-before 'configure 'patch-build-system
5449 (lambda* (#:key outputs #:allow-other-keys)
5450 (substitute* "rules/meson.build"
5451 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5452 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))))
5453 (add-before 'configure 'set-sqlite3-file-name
5454 (lambda* (#:key inputs #:allow-other-keys)
5455 ;; "colormgr dump" works by invoking the "sqlite3" command.
5456 ;; Record its absolute file name.
5457 (let ((sqlite (assoc-ref inputs "sqlite")))
5458 (substitute* "client/cd-util.c"
5459 (("\"sqlite3\"")
5460 (string-append "\"" sqlite "/bin/sqlite3\"")))))))))
5461 (native-inputs
5462 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5463 ("gettext" ,gettext-minimal)
5464 ("pkg-config" ,pkg-config)
5465 ("vala" ,vala)))
5466 (propagated-inputs
5467 ;; colord.pc refers to all these.
5468 `(("glib" ,glib)
5469 ("lcms" ,lcms)
5470 ("udev" ,eudev)))
5471 (inputs
5472 `(("dbus-glib" ,dbus-glib)
5473 ("gobject-introspection" ,gobject-introspection)
5474 ("gusb" ,gusb-minimal)
5475 ("libgudev" ,libgudev)
5476 ("libusb" ,libusb)
5477 ("polkit" ,polkit)
5478 ("python" ,python-wrapper)
5479 ("sqlite" ,sqlite)
5480 ("sane-backends" ,sane-backends)))
5481 (home-page "https://www.freedesktop.org/software/colord/")
5482 (synopsis "Color management service")
5483 (description "Colord is a system service that makes it easy to manage,
5484 install and generate color profiles to accurately color manage input and
5485 output devices.")
5486 (license license:gpl2+)))
5487
5488 (define-public colord
5489 (package/inherit colord-minimal
5490 (name "colord")
5491 (arguments
5492 (substitute-keyword-arguments
5493 (package-arguments colord-minimal)
5494 ((#:configure-flags flags)
5495 `(begin
5496 (use-modules (srfi srfi-1))
5497 (append '("-Dbash_completion=true"
5498 "-Ddocs=true"
5499 "-Dman=true"
5500 "-Dvapi=true")
5501 (fold delete ,flags '("-Dbash_completion=false"
5502 "-Ddocs=false"
5503 "-Dman=false")))))
5504 ((#:phases phases)
5505 `(modify-phases ,phases
5506 (add-after 'unpack 'fix-bash-completion-dir
5507 (lambda* (#:key outputs #:allow-other-keys)
5508 (substitute* "data/meson.build"
5509 (("bash_completion.get_pkgconfig_variable\
5510 \\('completionsdir'\\)")
5511 (string-append "'" (assoc-ref outputs "out")
5512 "/etc/bash_completion.d'")))))))))
5513 (native-inputs
5514 (append
5515 `(("bash-completion" ,bash-completion)
5516 ("docbook-xsl-ns" ,docbook-xsl-ns)
5517 ("gtk-doc" ,gtk-doc/stable)
5518 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5519 ("libxslt" ,libxslt)
5520 ("vala" ,vala)) ;for VAPI, needed by simple-scan
5521 (package-native-inputs colord-minimal)))))
5522
5523 (define-public geoclue
5524 (package
5525 (name "geoclue")
5526 (version "2.6.0")
5527 (source
5528 (origin
5529 (method url-fetch)
5530 (uri
5531 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5532 version "/geoclue-" version ".tar.bz2"))
5533 (sha256
5534 (base32 "1854i8lih1jkks5w38xv8k5gs7s8629qjg3cg96ji0ffk35yzjfd"))
5535 (patches (search-patches "geoclue-config.patch"))))
5536 (build-system meson-build-system)
5537 (arguments
5538 '(#:configure-flags (list "-Ddbus-srv-user=geoclue")))
5539 (native-inputs
5540 (list pkg-config
5541 gobject-introspection
5542 modem-manager
5543 libnotify
5544 gtk-doc/stable
5545 gettext-minimal
5546 vala))
5547 (inputs
5548 (list avahi
5549 `(,glib "bin")
5550 glib-networking
5551 json-glib
5552 libsoup-minimal-2))
5553 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5554 (synopsis "Geolocation service")
5555 (description "Geoclue is a D-Bus service that provides location
5556 information. The primary goal of the Geoclue project is to make creating
5557 location-aware applications as simple as possible, while the secondary goal is
5558 to ensure that no application can access location information without explicit
5559 permission from user.")
5560 (license license:gpl2+)))
5561
5562 (define-public geocode-glib
5563 (package
5564 (name "geocode-glib")
5565 (version "3.26.4")
5566 (source (origin
5567 (method url-fetch)
5568 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5569 (version-major+minor version) "/"
5570 "geocode-glib-" version ".tar.xz"))
5571 (sha256
5572 (base32
5573 "1aipd82qk404qy88pyfgplzgi83db4hi51vkl54h8isqs4k6i6id"))))
5574 (build-system meson-build-system)
5575 (arguments
5576 (list
5577 #:configure-flags #~(list "-Dsoup2=false")
5578 #:phases
5579 #~(modify-phases %standard-phases
5580 ;; The tests require a bunch of locales.
5581 (add-before 'check 'set-locales
5582 (lambda* (#:key inputs #:allow-other-keys)
5583 (setenv "GUIX_LOCPATH"
5584 (search-input-directory inputs "lib/locale")))))))
5585 (native-inputs
5586 (list `(,glib "bin") ;for glib-mkenums
5587 glibc-locales ;for tests
5588 gettext-minimal
5589 gobject-introspection
5590 gtk-doc/stable
5591 pkg-config
5592 json-glib))
5593 (propagated-inputs
5594 ;; geocode-glib-2.0.pc refers to GIO.
5595 (list glib))
5596 (inputs
5597 (list libsoup))
5598 (home-page "https://github.com/GNOME/geocode-glib/")
5599 (synopsis "Geocoding and reverse-geocoding library")
5600 (description
5601 "geocode-glib is a convenience library for geocoding (finding longitude,
5602 and latitude from an address) and reverse geocoding (finding an address from
5603 coordinates) using the Nominatim service. geocode-glib caches requests for
5604 faster results and to avoid unnecessary server load.")
5605 (license license:lgpl2.0+)))
5606
5607 (define-public geocode-glib-with-libsoup2
5608 (package
5609 (inherit geocode-glib)
5610 (name "geocode-glib-with-libsoup2")
5611 (arguments (substitute-keyword-arguments (package-arguments geocode-glib)
5612 ((#:configure-flags flags ''())
5613 #~(delete "-Dsoup2=false" #$flags))))
5614 (inputs (modify-inputs (package-inputs geocode-glib)
5615 (replace "libsoup" libsoup-minimal-2)))))
5616
5617 (define-public upower
5618 (package
5619 (name "upower")
5620 (version "1.90.0")
5621 (source
5622 (origin
5623 (method git-fetch)
5624 (uri (git-reference
5625 (url "https://gitlab.freedesktop.org/upower/upower")
5626 (commit (string-append "v" version))))
5627 (file-name (git-file-name name version))
5628 (sha256
5629 (base32 "1g17rm91p8vfpjyb0k2shylrs55nccn3fa890vlk4n9s71sghbzq"))
5630 (modules '((guix build utils)))
5631 (snippet
5632 ;; Upstream commit <https://cgit.freedesktop.org/upower/commit/
5633 ;; ?id=18457c99b68786cd729b315723d680e6860d9cfa> moved
5634 ;; 'dbus-1/system.d' from etc/ to share/. However,
5635 ;; 'dbus-configuration-directory' in (gnu services dbus) expects it in
5636 ;; etc/. Thus, move it back to its previous location.
5637 #~(substitute* "src/meson.build"
5638 (("dbusdir / 'system.d'")
5639 "get_option('sysconfdir') / 'dbus-1/system.d'")
5640 ;; Avoid writing to /var during the build, this is
5641 ;; not possible in Guix!
5642 (("^install_subdir\\('does-not-exist'.*$") "")))))
5643 (build-system meson-build-system)
5644 (arguments
5645 (list
5646 #:glib-or-gtk? #t
5647 #:configure-flags
5648 #~(list "-Dsystemdsystemunitdir=no"
5649 ;; If not specified, udev will try putting history information
5650 ;; in /gnu/store.
5651 "-Dhistorydir=/var/lib/upower"
5652 (string-append "-Dudevrulesdir=" #$output "/bin/udev/rules.d"))))
5653 (native-inputs
5654 (list `(,glib "bin") ; for gdbus-codegen
5655 gobject-introspection
5656 gtk-doc
5657 intltool
5658 pkg-config
5659 python
5660 ;; For tests.
5661 python-dbus
5662 python-dbusmock
5663 python-packaging
5664 python-pygobject
5665 umockdev
5666 ;; For man pages.
5667 docbook-xsl
5668 libxslt ; for 'xsltproc'
5669 libxml2)) ; for 'XML_CATALOG_FILES'
5670 (inputs
5671 (list dbus-glib libgudev libusb))
5672 (propagated-inputs
5673 ;; In Requires of upower-glib.pc.
5674 (list glib))
5675 (home-page "https://upower.freedesktop.org/")
5676 (synopsis "System daemon for managing power devices")
5677 (description
5678 "UPower is an abstraction for enumerating power devices,
5679 listening to device events and querying history and statistics. Any
5680 application or service on the system can access the org.freedesktop.UPower
5681 service via the system message bus.")
5682 (license license:gpl2+)
5683 ;; Old versions of upower are tagged as UPOWER_0_99_13, which confuses
5684 ;; the 'generic-git' updater. Give it a little help.
5685 (properties '((release-tag-prefix . "v")
5686 (release-tag-version-delimiter . ".")))))
5687
5688 (define-public libgweather
5689 (package
5690 (name "libgweather")
5691 (version "40.0")
5692 (source (origin
5693 (method url-fetch)
5694 (uri (string-append "mirror://gnome/sources/" name "/"
5695 (version-major version) "/"
5696 name "-" version ".tar.xz"))
5697 (sha256
5698 (base32
5699 "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna"))))
5700 (build-system meson-build-system)
5701 (arguments
5702 (list
5703 #:tests? #f ;one of two tests requires network access
5704 #:configure-flags
5705 #~(list (string-append "-Dzoneinfo_dir="
5706 (search-input-directory %build-inputs
5707 "share/zoneinfo")))))
5708 (native-inputs
5709 (list gettext-minimal
5710 `(,glib "bin") ;for glib-mkenums
5711 gobject-introspection
5712 pkg-config
5713 python
5714 vala
5715 python-pygobject))
5716 (propagated-inputs
5717 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5718 ;; libsoup.
5719 (list gtk+ gdk-pixbuf libxml2 libsoup-minimal-2 geocode-glib))
5720 (inputs
5721 (list tzdata))
5722 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5723 (synopsis "Location, time zone, and weather library for GNOME")
5724 (description
5725 "libgweather is a library to access weather information from online
5726 services for numerous locations.")
5727 (license license:gpl2+)))
5728
5729 ;; libgweather no longer follows the GNOME version, and recommends changing
5730 ;; the package name in distributions to avoid accidental downgrades. See
5731 ;; <https://discourse.gnome.org/t/changes-in-libgweather-for-gnome-42/7770/2>.
5732 ;; TODO: how to prevent the updater from picking version 40?
5733 (define-public libgweather4
5734 (package
5735 (inherit libgweather)
5736 (name "libgweather4")
5737 (version "4.1.1")
5738 (source (origin
5739 (method url-fetch)
5740 (uri (string-append "mirror://gnome/sources/libgweather/"
5741 (version-major+minor version) "/"
5742 "libgweather-" version ".tar.xz"))
5743 (sha256
5744 (base32
5745 "1wh3asniv5yiqp0dsk96as2bkx72hamh3ij2md8k0is9yd7ppbjm"))))
5746 (arguments
5747 (list
5748 #:configure-flags
5749 #~(list (string-append "-Dzoneinfo_dir="
5750 (search-input-directory %build-inputs
5751 "share/zoneinfo")))
5752 #:phases
5753 #~(modify-phases %standard-phases
5754 (add-after 'unpack 'set-HOME
5755 (lambda _
5756 (setenv "HOME" "/tmp")))
5757 (add-after 'unpack 'disable-problematic-tests
5758 (lambda _
5759 (substitute* "libgweather/tests/meson.build"
5760 ;; The timezones test fails for unknown reasons (see:
5761 ;; https://gitlab.gnome.org/GNOME/libgweather/-/issues/188).
5762 ((".*'name': 'timezones'.*") "")
5763 ;; The 'metar' test is known to fail, fixed but not yet released
5764 ;; upstream (see:
5765 ;; https://gitlab.gnome.org/GNOME/libgweather/-/issues/168).
5766 ((".*'name': 'metar'.*") ""))))
5767 (delete 'check) ;move after the install phase
5768 (add-after 'install 'check
5769 (assoc-ref %standard-phases 'check)))))
5770 (native-inputs
5771 (list gettext-minimal
5772 gi-docgen
5773 `(,glib "bin") ;for glib-mkenums
5774 gobject-introspection
5775 glibc-utf8-locales
5776 gsettings-desktop-schemas
5777 pkg-config
5778 python
5779 python-pygobject
5780 vala))
5781 ;; TODO: It would be good to make the package respect TZDIR instead
5782 ;; of using a "hard coded" version of tzdata.
5783 (inputs (list tzdata))
5784 (propagated-inputs
5785 ;; gweather4.pc refers to all of these.
5786 (list geocode-glib
5787 glib
5788 json-glib
5789 libsoup
5790 libxml2))))
5791
5792 (define-public libgweather4-with-libsoup2
5793 (package
5794 (inherit libgweather4)
5795 (name "libgweather4-with-libsoup2")
5796 (arguments (substitute-keyword-arguments (package-arguments libgweather4)
5797 ((#:configure-flags flags)
5798 #~(cons "-Dsoup2=true" #$flags))))
5799 (propagated-inputs
5800 (modify-inputs (package-propagated-inputs libgweather4)
5801 (replace "geocode-glib" geocode-glib-with-libsoup2)
5802 (replace "libsoup" libsoup-minimal-2)))))
5803
5804 (define-public gnome-settings-daemon
5805 (package
5806 (name "gnome-settings-daemon")
5807 (version "42.2")
5808 (source
5809 (origin
5810 (method url-fetch)
5811 (uri (string-append "mirror://gnome/sources/" name "/"
5812 (version-major version) "/"
5813 name "-" version ".tar.xz"))
5814 (sha256
5815 (base32
5816 "005b1dvrfcyr6n4srl6c0lzr95c18prps4xm1lf2ghcfm8a9fi4w"))
5817 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5818 (build-system meson-build-system)
5819 (arguments
5820 (list
5821 #:glib-or-gtk? #t
5822 #:configure-flags
5823 #~(list (string-append "-Dudev_dir=" #$output "/lib/udev")
5824 "-Dsystemd=false"
5825 ;; Otherwise, the RUNPATH will lack the final path component.
5826 (string-append "-Dc_link_args=-Wl,-rpath=" #$output
5827 "/lib/gnome-settings-daemon-3.0"))
5828 #:phases
5829 #~(modify-phases %standard-phases
5830 (add-before 'configure 'set-baobab-file-name
5831 (lambda* (#:key inputs #:allow-other-keys)
5832 ;; Hard-code the file name of Baobab instead of looking
5833 ;; it up in $PATH. This ensures users get the "Examine"
5834 ;; button in the low disk space notification of GDM even
5835 ;; if they don't have GNOME in their main profile.
5836 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5837 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5838 (format #f "g_strdup (~s)"
5839 (search-input-file inputs "bin/baobab")))))))
5840 ;; Color management test can't reach the colord system service.
5841 #:tests? #f))
5842 (native-inputs
5843 (list docbook-xml-4.2
5844 docbook-xsl
5845 gettext-minimal
5846 `(,glib "bin") ;for glib-mkenums
5847 libxml2 ;for XML_CATALOG_FILES
5848 libxslt
5849 perl
5850 pkg-config))
5851 (inputs
5852 (list alsa-lib
5853 baobab
5854 colord
5855 cups
5856 gcr
5857 geoclue
5858 geocode-glib-with-libsoup2
5859 gnome-desktop
5860 gsettings-desktop-schemas-next
5861 lcms
5862 libcanberra
5863 libgudev
5864 libgweather4-with-libsoup2
5865 libnotify
5866 (librsvg-for-system)
5867 libwacom
5868 libx11
5869 libxtst
5870 modem-manager
5871 network-manager
5872 nss
5873 polkit
5874 pulseaudio
5875 upower
5876 wayland
5877 xf86-input-wacom))
5878 (home-page "https://www.gnome.org")
5879 (synopsis "GNOME settings daemon")
5880 (description
5881 "This package contains the daemon responsible for setting the various
5882 parameters of a GNOME session and the applications that run under it. It
5883 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5884 settings, themes, mouse settings, and startup of other daemons.")
5885 (license license:gpl2+)))
5886
5887 (define-public totem-pl-parser
5888 (package
5889 (name "totem-pl-parser")
5890 (version "3.26.6")
5891 (source (origin
5892 (method url-fetch)
5893 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5894 (version-major+minor version) "/"
5895 "totem-pl-parser-" version ".tar.xz"))
5896 (sha256
5897 (base32
5898 "075csd5x0frgf93jvhlqiwv5i0qm24zz3iw17jj7v7fgsml0zpy0"))))
5899 (build-system meson-build-system)
5900 (arguments
5901 ;; FIXME: Tests require gvfs.
5902 `(#:tests? #f))
5903 (native-inputs
5904 (list intltool
5905 `(,glib "bin") gobject-introspection pkg-config))
5906 (propagated-inputs
5907 (list glib gmime libarchive libgcrypt libxml2))
5908 (inputs
5909 (list libsoup))
5910 (home-page "https://projects.gnome.org/totem")
5911 (synopsis "Library to parse and save media playlists for GNOME")
5912 (description "Totem-pl-parser is a GObjects-based library to parse and save
5913 playlists in a variety of formats.")
5914 (license license:lgpl2.0+)))
5915
5916 (define-public aisleriot
5917 (package
5918 (name "aisleriot")
5919 (version "3.22.9")
5920 (source (origin
5921 (method url-fetch)
5922 (uri (string-append "mirror://gnome/sources/aisleriot/"
5923 (version-major+minor version) "/"
5924 "aisleriot-" version ".tar.xz"))
5925 (sha256
5926 (base32
5927 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5928 (build-system glib-or-gtk-build-system)
5929 (arguments
5930 '(#:configure-flags
5931 '("--with-platform=gtk-only"
5932 "--with-card-theme-formats=svg")))
5933 (native-inputs
5934 `(("desktop-file-utils" ,desktop-file-utils)
5935 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5936 ("intltool" ,intltool)
5937 ("itstool" ,itstool)
5938 ("pkg-config" ,pkg-config)
5939 ("xmllint" ,libxml2)))
5940 (inputs
5941 (list gtk+ guile-2.2 libcanberra librsvg))
5942 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5943 (synopsis "Solitaire card games")
5944 (description
5945 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5946 which are easy to play with the aid of a mouse.")
5947 (license license:gpl3+)))
5948
5949 (define-public amtk
5950 (package
5951 (name "amtk")
5952 (version "5.5.1")
5953 (source (origin
5954 (method url-fetch)
5955 (uri (string-append "mirror://gnome/sources/amtk/"
5956 (version-major+minor version) "/"
5957 "amtk-" version ".tar.xz"))
5958 (sha256
5959 (base32
5960 "176vplk3inf0pp0prma8478hp0yhziq0krp5a9l47hg22z86v2gc"))))
5961 (build-system meson-build-system)
5962 (native-inputs
5963 (list gobject-introspection
5964 `(,glib "bin") ; for glib-mkenums
5965 gtk-doc/stable pkg-config))
5966 (inputs
5967 (list glib gtk+))
5968 (home-page "https://wiki.gnome.org/Projects/Amtk")
5969 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5970 (description
5971 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5972 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5973 both a traditional UI or a modern UI with a GtkHeaderBar.")
5974 (license license:lgpl2.1+)))
5975
5976 (define-public devhelp
5977 (package
5978 (name "devhelp")
5979 (version "41.3")
5980 (source (origin
5981 (method url-fetch)
5982 (uri (string-append "mirror://gnome/sources/" name "/"
5983 (version-major version) "/"
5984 name "-" version ".tar.xz"))
5985 (sha256
5986 (base32
5987 "1rxn6kciyfdhnjrcjyf02cn3rki2xgwb4wrg5plbzjvpqasq66ml"))))
5988 (build-system meson-build-system)
5989 (arguments
5990 `(#:glib-or-gtk? #t
5991 #:phases
5992 (modify-phases %standard-phases
5993 (add-after 'unpack 'skip-gtk-update-icon-cache
5994 ;; Don't create 'icon-theme.cache'.
5995 (lambda _
5996 (substitute* "build-aux/meson/meson_post_install.py"
5997 (("gtk-update-icon-cache") "true")))))))
5998 (propagated-inputs
5999 (list gsettings-desktop-schemas))
6000 (native-inputs
6001 (list gettext-minimal
6002 gobject-introspection
6003 `(,glib "bin") ; for glib-mkmenus
6004 itstool
6005 pkg-config))
6006 (inputs
6007 (list amtk
6008 webkitgtk))
6009 (home-page "https://wiki.gnome.org/Apps/Devhelp")
6010 (synopsis "API documentation browser for GNOME")
6011 (description
6012 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
6013 natively with GTK-Doc (the API reference system developed for GTK+ and used
6014 throughout GNOME for API documentation).")
6015 (license license:gpl2+)))
6016
6017 (define-public devhelp-with-libsoup2
6018 (package/inherit devhelp
6019 (inputs (modify-inputs (package-inputs devhelp)
6020 (replace "webkitgtk" webkitgtk-with-libsoup2)))))
6021
6022 (define-public cogl
6023 (package
6024 (name "cogl")
6025 (version "1.22.8")
6026 (source
6027 (origin
6028 (method url-fetch)
6029 (uri (string-append "mirror://gnome/sources/cogl/"
6030 (version-major+minor version) "/"
6031 "cogl-" version ".tar.xz"))
6032 (sha256
6033 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
6034 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
6035 ;; cogl, corresponding changes may be appropriate in mutter as well.
6036 (build-system gnu-build-system)
6037 (native-inputs
6038 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6039 ("gobject-introspection" ,gobject-introspection)
6040 ("xorg-server" ,xorg-server-for-tests)
6041 ("pkg-config" ,pkg-config)))
6042 (propagated-inputs
6043 (list glib
6044 gdk-pixbuf
6045 libx11
6046 libxext
6047 libxfixes
6048 libxdamage
6049 libxcomposite
6050 libxrandr))
6051 (inputs
6052 (list mesa
6053 cairo
6054 pango
6055 gstreamer
6056 gst-plugins-base
6057 wayland))
6058 (arguments
6059 `(#:disallowed-references (,xorg-server-for-tests)
6060 #:configure-flags (list "--enable-cogl-gst"
6061 "--enable-wayland-egl-platform"
6062 "--enable-wayland-egl-server"
6063
6064 ;; Arrange to pass an absolute file name to
6065 ;; dlopen for libGL.so.
6066 (string-append "--with-gl-libname="
6067 (assoc-ref %build-inputs "mesa")
6068 "/lib/libGL.so"))
6069 #:phases
6070 (modify-phases %standard-phases
6071 (add-after 'unpack 'fix-build-with-mesa-20
6072 (lambda _
6073 ;; Work around a problem with Mesa 20 where some macros used by
6074 ;; Cogl went missing from eglext.h. This can likely be removed
6075 ;; for newer versions of Cogl or Mesa.
6076 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
6077 (substitute* '("configure"
6078 "cogl/winsys/cogl-winsys-egl-kms.c")
6079 (("#include <EGL/eglext.h>" all)
6080 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
6081 #t))
6082 (add-before 'check 'start-xorg-server
6083 (lambda* (#:key tests? inputs #:allow-other-keys)
6084 (if tests?
6085 (begin
6086 ;; The test suite requires a running X server.
6087 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
6088 (assoc-ref inputs "xorg-server")))
6089 (setenv "DISPLAY" ":1")
6090 #t)
6091 (format #t "test suite not run~%"))
6092 #t)))))
6093 (home-page "http://www.clutter-project.org")
6094 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
6095 (description
6096 "Cogl is a small library for using 3D graphics hardware to draw pretty
6097 pictures. The API departs from the flat state machine style of OpenGL and is
6098 designed to make it easy to write orthogonal components that can render
6099 without stepping on each others toes.")
6100 (license (list license:expat ; most of the code
6101 license:bsd-3 ; cogl/cogl-point-in-poly.c
6102 license:sgifreeb2.0 ; cogl-path/tesselator/
6103 license:asl2.0)))) ; examples/android/
6104
6105 (define-public clutter
6106 (package
6107 (name "clutter")
6108 (version "1.26.4")
6109 (source
6110 (origin
6111 (method url-fetch)
6112 (uri (string-append "mirror://gnome/sources/" name "/"
6113 (version-major+minor version) "/"
6114 name "-" version ".tar.xz"))
6115 (sha256
6116 (base32
6117 "1rn4cd1an6a9dfda884aqpcwcgq8dgydpqvb19nmagw4b70zlj4b"))))
6118 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
6119 ;; to clutter, corresponding changes may be appropriate in mutter as well.
6120 (build-system gnu-build-system)
6121 (outputs '("out"
6122 "doc")) ;9 MiB of gtk-doc HTML pages
6123 (native-inputs
6124 (list `(,glib "bin") ; for glib-genmarshal
6125 gobject-introspection
6126 libxslt
6127 pkg-config))
6128 (propagated-inputs
6129 (list atk
6130 cairo
6131 cogl
6132 glib
6133 gtk+
6134 json-glib
6135 libxcomposite
6136 libxdamage
6137 libxext
6138 xinput))
6139 (inputs
6140 (list eudev
6141 libxkbcommon))
6142 (arguments
6143 `(#:configure-flags (list "--enable-x11-backend=yes"
6144
6145 ;; This produces share/doc/{clutter,cally}.
6146 (string-append "--with-html-dir="
6147 (assoc-ref %outputs "doc")
6148 "/share/doc"))
6149 ;; XXX FIXME: Get test suite working. It would probably fail in the
6150 ;; same way the cogl tests fail, since clutter is based on cogl.
6151 #:tests? #f))
6152 (home-page "https://blogs.gnome.org/clutter/")
6153 (synopsis "OpenGL-based interactive canvas library")
6154 (description
6155 "Clutter is an OpenGL-based interactive canvas library, designed for
6156 creating fast, mainly 2D single window applications such as media box UIs,
6157 presentations, kiosk style applications and so on.")
6158 (license license:lgpl2.0+)))
6159
6160 (define-public clutter-gtk
6161 (package
6162 (name "clutter-gtk")
6163 (version "1.8.4")
6164 (source
6165 (origin
6166 (method url-fetch)
6167 (uri (string-append "mirror://gnome/sources/" name "/"
6168 (version-major+minor version) "/"
6169 name "-" version ".tar.xz"))
6170 (sha256
6171 (base32
6172 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
6173 (build-system gnu-build-system)
6174 (native-inputs
6175 (list pkg-config gobject-introspection))
6176 (propagated-inputs
6177 ;; clutter-gtk.pc refers to all these.
6178 (list clutter gtk+))
6179 (home-page "http://www.clutter-project.org")
6180 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
6181 (description
6182 "Clutter is an OpenGL-based interactive canvas library, designed for
6183 creating fast, mainly 2D single window applications such as media box UIs,
6184 presentations, kiosk style applications and so on.")
6185 (license license:lgpl2.0+)))
6186
6187 (define-public clutter-gst
6188 (package
6189 (name "clutter-gst")
6190 (version "3.0.27")
6191 (source
6192 (origin
6193 (method url-fetch)
6194 (uri (string-append "mirror://gnome/sources/clutter-gst/"
6195 (version-major+minor version) "/"
6196 "clutter-gst-" version ".tar.xz"))
6197 (sha256
6198 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
6199 (build-system gnu-build-system)
6200 (native-inputs
6201 (list `(,glib "bin") ; for glib-mkenums
6202 pkg-config gobject-introspection))
6203 (inputs
6204 (list clutter gstreamer gst-plugins-base))
6205 (home-page "http://www.clutter-project.org")
6206 (synopsis "Integration library for using GStreamer with Clutter")
6207 (description
6208 "Clutter-Gst is an integration library for using GStreamer with Clutter.
6209 It provides a GStreamer sink to upload frames to GL and an actor that
6210 implements the ClutterGstPlayer interface using playbin. Clutter is an
6211 OpenGL-based interactive canvas library.")
6212 (license license:lgpl2.0+)))
6213
6214 (define-public libchamplain
6215 (package
6216 (name "libchamplain")
6217 (version "0.12.20")
6218 (source (origin
6219 (method url-fetch)
6220 (uri (string-append
6221 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
6222 version ".tar.xz"))
6223 (sha256
6224 (base32
6225 "0rihpb0npqpihqcdz4w03rq6xl7jdckfqskvv9diq2hkrnzv8ch2"))))
6226 (build-system meson-build-system)
6227 (native-inputs
6228 (list gobject-introspection pkg-config vala))
6229 (propagated-inputs
6230 (list libsoup-minimal-2
6231 sqlite
6232 clutter
6233 clutter-gtk
6234 `(,glib "bin") ;glib-mkenums, etc.
6235 cairo
6236 gtk+
6237 glib))
6238 (home-page "https://projects.gnome.org/libchamplain/")
6239 (synopsis "C library providing a ClutterActor to display maps")
6240 (description
6241 "libchamplain is a C library providing a ClutterActor to display maps.
6242 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
6243 and Perl bindings are also available. It supports numerous free map sources
6244 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
6245 (license license:lgpl2.1+)))
6246
6247 (define-public gom
6248 (package
6249 (name "gom")
6250 (version "0.4")
6251 (source
6252 (origin
6253 (method url-fetch)
6254 (uri (string-append "mirror://gnome/sources/gom/"
6255 (version-major+minor version) "/"
6256 "gom-" version ".tar.xz"))
6257 (sha256
6258 (base32
6259 "17ca07hpg7dqxjn0jpqim3xqcmplk2a87wbwrrlq3dd3m8381l38"))))
6260 (build-system meson-build-system)
6261 (arguments
6262 (list
6263 #:imported-modules `(,@%meson-build-system-modules
6264 (guix build python-build-system))
6265 #:modules '((guix build meson-build-system)
6266 ((guix build python-build-system) #:prefix python:)
6267 (guix build utils))
6268 #:configure-flags
6269 #~(list (string-append "-Dpygobject-override-dir="
6270 (python:site-packages %build-inputs %outputs)
6271 "/gi/overrides"))))
6272 (native-inputs
6273 (list gettext-minimal
6274 gobject-introspection
6275 pkg-config
6276 python
6277 python-pygobject))
6278 (inputs
6279 (list glib
6280 gdk-pixbuf
6281 sqlite))
6282 (home-page "https://wiki.gnome.org/Projects/Gom")
6283 (synopsis "Object mapper from GObjects to SQLite")
6284 (description
6285 "Gom provides an object mapper from GObjects to SQLite. It helps you
6286 write applications that need to store structured data as well as make complex
6287 queries upon that data.")
6288 (license license:lgpl2.1+)))
6289
6290 (define-public libgnome-games-support
6291 (package
6292 (name "libgnome-games-support")
6293 (version "2.0.0")
6294 (source
6295 (origin
6296 (method url-fetch)
6297 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
6298 (version-major+minor version) "/"
6299 "libgnome-games-support-" version ".tar.xz"))
6300 (sha256
6301 (base32
6302 "196jaga70r16bzypv4z07mnwr0xcm93gc91kxygcpp9fwdpiz0jk"))))
6303 (build-system meson-build-system)
6304 (arguments
6305 '(#:glib-or-gtk? #t
6306 #:phases
6307 (modify-phases %standard-phases
6308 (add-before 'check 'pre-check
6309 (lambda _
6310 ;; Tests require a writable HOME.
6311 (setenv "HOME" (getcwd)))))))
6312 (native-inputs
6313 (list intltool pkg-config vala))
6314 (propagated-inputs
6315 ;; Required by libgnome-games-support-1.0.pc
6316 (list gtk libgee))
6317 (home-page "https://www.gnome.org/")
6318 (synopsis "Useful functionality shared among GNOME games")
6319 (description
6320 "libgnome-games-support is a small library intended for internal use by
6321 GNOME Games, but it may be used by others.")
6322 (license license:lgpl3+)))
6323
6324 (define-public libgnome-games-support-1
6325 (package
6326 (inherit libgnome-games-support)
6327 (version "1.8.2")
6328 (source
6329 (origin
6330 (method url-fetch)
6331 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
6332 (version-major+minor version) "/"
6333 "libgnome-games-support-" version ".tar.xz"))
6334 (sha256
6335 (base32
6336 "0zggsg7h9nlcwwjcqc13pdjza17iiww325r3q0d76f5hlw24chr8"))))
6337 (propagated-inputs (modify-inputs (package-propagated-inputs
6338 libgnome-games-support)
6339 (replace "gtk" gtk+)))))
6340
6341 (define-public gnome-klotski
6342 (package
6343 (name "gnome-klotski")
6344 (version "3.38.2")
6345 (source (origin
6346 (method url-fetch)
6347 (uri (string-append "mirror://gnome/sources/" name "/"
6348 (version-major+minor version) "/"
6349 name "-" version ".tar.xz"))
6350 (sha256
6351 (base32
6352 "1qm01hdd5yp8chig62bj10912vclbdvywwczs84sfg4zci2phqwi"))))
6353 (build-system meson-build-system)
6354 (arguments
6355 '(#:glib-or-gtk? #t
6356 #:phases
6357 (modify-phases %standard-phases
6358 (add-after 'unpack 'skip-gtk-update-icon-cache
6359 ;; Don't create 'icon-theme.cache'.
6360 (lambda _
6361 (substitute* "build-aux/meson_post_install.py"
6362 (("gtk-update-icon-cache") (which "true"))))))))
6363 (native-inputs
6364 (list desktop-file-utils
6365 `(,glib "bin") ; for glib-compile-resources
6366 intltool
6367 itstool
6368 pkg-config
6369 vala
6370 libxml2))
6371 (inputs
6372 (list gtk+
6373 libgnome-games-support-1
6374 librsvg))
6375 (home-page "https://wiki.gnome.org/Apps/Klotski")
6376 (synopsis "Sliding block puzzles")
6377 (description
6378 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6379 the patterned block to the area bordered by green markers. To do so, you will
6380 need to slide other blocks out of the way. Complete each puzzle in as few moves
6381 as possible!")
6382 (license license:gpl2+)))
6383
6384 (define-public grilo
6385 (package
6386 (name "grilo")
6387 (version "0.3.15")
6388 (source
6389 (origin
6390 (method url-fetch)
6391 (uri (string-append "mirror://gnome/sources/grilo/"
6392 (version-major+minor version) "/"
6393 "grilo-" version ".tar.xz"))
6394 (sha256
6395 (base32 "0bbvaxw2das8826663z23y0acbdmcvggwdh64ws9jrk56vvsqlpk"))))
6396 (build-system meson-build-system)
6397 (arguments
6398 (list #:phases #~(modify-phases %standard-phases
6399 (add-before 'unpack 'set-HOME
6400 (lambda _
6401 ;; Tests require write access to HOME.
6402 (setenv "HOME" "/tmp"))))))
6403 (native-inputs
6404 (list `(,glib "bin") ; for glib-mkenums and glib-genmarshal
6405 gettext-minimal
6406 gsettings-desktop-schemas
6407 pkg-config
6408 gobject-introspection
6409 gtk-doc/stable
6410 vala))
6411 (inputs
6412 (list cyrus-sasl
6413 glib
6414 gtk+
6415 liboauth
6416 libsoup
6417 libxml2
6418 totem-pl-parser))
6419 (native-search-paths
6420 (list (search-path-specification
6421 (variable "GRL_PLUGIN_PATH")
6422 (files (list (string-append "lib/grilo-"
6423 (version-major+minor version)))))))
6424 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6425 (synopsis "Framework for discovering and browsing media")
6426 (description
6427 "Grilo is a framework focused on making media discovery and browsing easy
6428 for application developers.")
6429 (license license:lgpl2.1+)))
6430
6431 (define-public grilo-plugins
6432 (package
6433 (name "grilo-plugins")
6434 (version "0.3.15")
6435 (source
6436 (origin
6437 (method url-fetch)
6438 (uri (string-append "mirror://gnome/sources/" name "/"
6439 (version-major+minor version) "/"
6440 name "-" version ".tar.xz"))
6441 (sha256
6442 (base32 "0cxbxg7i9qd1pyfjj7c15x9lawvaw5608jk2apcrac7rakcw6645"))))
6443 (build-system meson-build-system)
6444 (native-inputs
6445 (list gettext-minimal
6446 ;; Gstreamer plugins are required for tests.
6447 gst-plugins-good
6448 gst-plugins-bad
6449 `(,glib "bin")
6450 itstool
6451 pkg-config))
6452 (inputs
6453 (list avahi
6454 grilo
6455 gnome-online-accounts
6456 gom
6457 gstreamer
6458 json-glib
6459 avahi
6460 libgdata
6461 libmediaart
6462 libsoup
6463 python-pygobject
6464 totem-pl-parser
6465 tracker
6466 tracker-miners))
6467 (arguments
6468 `(#:glib-or-gtk? #t
6469 ;;Disable lua-factory as it needs missing dependencies
6470 #:configure-flags '("-Denable-lua-factory=no")
6471 #:phases
6472 (modify-phases %standard-phases
6473 (add-before 'configure 'set-shell
6474 (lambda _
6475 (setenv "SHELL" (which "bash"))))
6476 ;; Disable the tracker test that requires the UPower daemon.
6477 (add-before 'configure 'fix-tests
6478 (lambda* (#:key inputs #:allow-other-keys)
6479 (substitute* "tests/tracker3/meson.build"
6480 (("'test_tracker3'.*") "")))))))
6481 (home-page "https://live.gnome.org/Grilo")
6482 (synopsis "Plugins for the Grilo media discovery library")
6483 (description
6484 "Grilo is a framework focused on making media discovery and browsing easy
6485 for application developers. This package provides plugins for common media
6486 discovery protocols.")
6487 (license license:lgpl2.1+)))
6488
6489 (define-public totem
6490 (package
6491 (name "totem")
6492 (version "42.0")
6493 (source
6494 (origin
6495 (method url-fetch)
6496 (uri (string-append "mirror://gnome/sources/totem/"
6497 (version-major version) "/"
6498 "totem-" version ".tar.xz"))
6499 (sha256
6500 (base32 "1az6ay7zhz2naqrzcfldx1yv2ylw1yjx76g3mqrqppwmvcflkw2a"))))
6501 (build-system meson-build-system)
6502 (native-inputs
6503 (list pkg-config
6504 desktop-file-utils
6505 gettext-minimal
6506 gobject-introspection
6507 `(,glib "bin") ;for 'glib-mkenums'
6508 itstool
6509 libxml2
6510 xorg-server-for-tests))
6511 (propagated-inputs
6512 (list dconf))
6513 (inputs
6514 (list gtk+
6515 gdk-pixbuf
6516 atk
6517 cairo
6518 dbus-glib
6519 xorgproto
6520 libxxf86vm
6521 libxtst
6522 libxrandr
6523 libxml2
6524 libsoup
6525 libpeas
6526 librsvg
6527 libhandy
6528 gnome-desktop
6529 gstreamer
6530 gst-plugins-base
6531 gst-plugins-good
6532 gsettings-desktop-schemas
6533 adwaita-icon-theme
6534 python
6535 python-pygobject
6536 totem-pl-parser
6537 grilo
6538 grilo-plugins
6539 vala))
6540 (arguments
6541 (list
6542 #:glib-or-gtk? #t
6543 ;; Disable automatic GStreamer plugin installation via PackageKit and
6544 ;; all that.
6545 #:configure-flags #~(list "-Denable-easy-codec-installation=no"
6546 ;; Do not build .a files for the plugins, it's
6547 ;; completely useless. This saves 2 MiB.
6548 "--default-library" "shared")
6549 #:phases
6550 #~(modify-phases %standard-phases
6551 (add-after 'unpack 'skip-gtk-update-icon-cache
6552 ;; Don't create 'icon-theme.cache'.
6553 (lambda _
6554 (substitute* "meson_post_install.py"
6555 (("gtk-update-icon-cache") "true"))))
6556 (add-before 'install 'disable-cache-generation
6557 (lambda _
6558 (setenv "DESTDIR" "/")))
6559 (add-before 'check 'pre-check
6560 (lambda _
6561 ;; Tests require a running X server.
6562 (system "Xvfb :1 &")
6563 (setenv "DISPLAY" ":1")))
6564 (add-after 'install 'wrap-totem
6565 (lambda* (#:key inputs outputs #:allow-other-keys)
6566 (let ((out (assoc-ref outputs "out"))
6567 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6568 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6569 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6570 (wrap-program (string-append out "/bin/totem")
6571 `("GI_TYPELIB_PATH" ":" suffix (,gi-typelib-path))
6572 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6573 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6574 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6575 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))))))))
6576 (home-page "https://wiki.gnome.org/Apps/Videos")
6577 (synopsis "Simple media player for GNOME based on GStreamer")
6578 (description "Totem is a simple yet featureful media player for GNOME
6579 which can read a large number of file formats.")
6580 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6581 ;; to be used and distributed together with GStreamer and Totem. See
6582 ;; file://COPYING in the source distribution for details.
6583 (license license:gpl2+)))
6584
6585 (define-public rhythmbox
6586 (package
6587 (name "rhythmbox")
6588 (version "3.4.6")
6589 (source (origin
6590 (method url-fetch)
6591 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6592 (version-major+minor version) "/"
6593 "rhythmbox-" version ".tar.xz"))
6594 (sha256
6595 (base32
6596 "0d5hbsdk2p8w567mfzy4kk8xn4d227hrbyy857li3r2mrq884mpr"))))
6597 (build-system meson-build-system)
6598 (arguments
6599 (list
6600 #:glib-or-gtk? #t
6601 #:phases
6602 #~(modify-phases %standard-phases
6603 (add-after 'unpack 'skip-gtk-update-icon-cache
6604 (lambda _
6605 (substitute* "meson.build"
6606 (("gtk_update_icon_cache: true")
6607 "gtk_update_icon_cache: false"))))
6608 (add-after 'install 'wrap-rhythmbox
6609 (lambda* (#:key outputs #:allow-other-keys)
6610 (wrap-program (search-input-file outputs "bin/rhythmbox")
6611 `("GI_TYPELIB_PATH" ":" prefix
6612 (,(getenv "GI_TYPELIB_PATH")))
6613 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
6614 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
6615 `("GRL_PLUGIN_PATH" ":" prefix
6616 (,(getenv "GRL_PLUGIN_PATH")))
6617 `("GUIX_PYTHONPATH" ":" prefix
6618 (,(getenv "GUIX_PYTHONPATH")))))))))
6619 (propagated-inputs
6620 (list dconf))
6621 (native-inputs
6622 (list desktop-file-utils
6623 gettext-minimal
6624 gobject-introspection
6625 `(,glib "bin")
6626 itstool
6627 pkg-config
6628 vala))
6629 (inputs
6630 ;; TODO:
6631 ;; * libgpod
6632 ;; * mx
6633 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6634 ;;clutter
6635 ;;clutter-gtk
6636 ;;clutter-gst
6637 (list adwaita-icon-theme
6638 atk
6639 bash-minimal
6640 brasero
6641 json-glib
6642 gmime
6643 gnome-desktop
6644 grilo
6645 grilo-plugins
6646 gsettings-desktop-schemas
6647 gst-plugins-base
6648 gst-plugins-good
6649 gstreamer
6650 gtk+
6651 libgudev
6652 libnotify
6653 libpeas
6654 libsecret
6655 libmtp
6656 libsoup-minimal-2
6657 libxml2
6658 lirc
6659 pango
6660 python
6661 python-pygobject
6662 tdb
6663 totem-pl-parser))
6664 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6665 (synopsis "Music player for GNOME")
6666 (description "Rhythmbox is a music playing application for GNOME. It
6667 supports playlists, song ratings, and any codecs installed through gstreamer.")
6668 (license license:gpl2+)))
6669
6670 (define-public eog
6671 (package
6672 (name "eog")
6673 (version "42.3")
6674 (source (origin
6675 (method url-fetch)
6676 (uri (string-append "mirror://gnome/sources/" name "/"
6677 (version-major version) "/"
6678 name "-" version ".tar.xz"))
6679 (sha256
6680 (base32
6681 "0fpl8wz1j10r59m20d61b7wmp8ga48dd7svqv1a2ip66ig1b7h9h"))))
6682 (build-system meson-build-system)
6683 (arguments
6684 (list
6685 #:glib-or-gtk? #t
6686 #:configure-flags
6687 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6688 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
6689 #$output "/lib/eog"))
6690 #:phases
6691 #~(modify-phases %standard-phases
6692 (add-after 'unpack 'skip-gtk-update-icon-cache
6693 ;; Don't create 'icon-theme.cache'.
6694 (lambda _
6695 (substitute* "meson.build"
6696 (("gtk_update_icon_cache: true")
6697 "gtk_update_icon_cache: false"))))
6698 (add-after 'install 'wrap-eog
6699 (lambda* (#:key outputs #:allow-other-keys)
6700 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6701 (wrap-program (search-input-file outputs "bin/eog")
6702 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
6703 (propagated-inputs
6704 (list dconf
6705 libhandy)) ;libhandy is required by eog.pc
6706 (native-inputs
6707 (list gettext-minimal
6708 `(,glib "bin")
6709 gobject-introspection
6710 itstool
6711 libxml2
6712 pkg-config))
6713 (inputs
6714 (list adwaita-icon-theme
6715 bash-minimal
6716 exempi
6717 gnome-desktop
6718 gtk
6719 lcms
6720 libexif
6721 libjpeg-turbo
6722 libpeas
6723 libportal
6724 librsvg
6725 shared-mime-info))
6726 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6727 (synopsis "GNOME image viewer")
6728 (description "Eye of GNOME is the GNOME image viewer. It
6729 supports image conversion, rotation, and slideshows.")
6730 (license license:gpl2+)))
6731
6732 (define-public eog-plugins
6733 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6734 ;; $DATA/eog/plugins, where DATA is one of the entries in
6735 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6736 ;; 'XDG_DATA_DIRS' appropriately set.
6737 (package
6738 (name "eog-plugins")
6739 (version "42.1")
6740 (source (origin
6741 (method url-fetch)
6742 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6743 (version-major+minor version) "/"
6744 "eog-plugins-" version ".tar.xz"))
6745 (sha256
6746 (base32
6747 "0prymlrfh66p03va5aj30wazshp7bn80gzcsj9dgsmss2k512wlb"))))
6748 (build-system meson-build-system)
6749 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6750 (synopsis "Extensions for the Eye of GNOME image viewer")
6751 (native-inputs
6752 (list gettext-minimal
6753 pkg-config
6754 python))
6755 (inputs
6756 (list eog
6757 glib
6758 gtk+
6759 libchamplain
6760 libexif
6761 libgdata
6762 libpeas))
6763 (description
6764 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6765 notably:
6766
6767 @itemize
6768 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6769 @item @dfn{Map}, which displays a map of where the picture was taken on the
6770 side panel;
6771 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6772 @end itemize\n")
6773
6774 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6775 ;; long suspicious byte stream that goes to a
6776 ;; ".gresource.eog_postasa_plugin" ELF section.
6777 (license license:gpl2+)))
6778
6779 (define-public libgudev
6780 (package
6781 (name "libgudev")
6782 (version "236")
6783 (source (origin
6784 (method url-fetch)
6785 (uri (string-append "mirror://gnome/sources/" name "/"
6786 version "/" name "-" version ".tar.xz"))
6787 (sha256
6788 (base32
6789 "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
6790 (build-system meson-build-system)
6791 (native-inputs
6792 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6793 ("gobject-introspection" ,gobject-introspection)
6794 ("pkg-config" ,pkg-config)))
6795 (propagated-inputs
6796 (list glib ; in Requires of gudev-1.0.pc
6797 eudev)) ; in Requires.private of gudev-1.0.pc
6798 (inputs
6799 `(("udev" ,eudev)))
6800 (home-page "https://wiki.gnome.org/Projects/libgudev")
6801 (synopsis "GObject bindings for libudev")
6802 (description
6803 "This library provides GObject bindings for libudev. It was originally
6804 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6805 (license license:lgpl2.1+)))
6806
6807 (define-public gvfs
6808 (package
6809 (name "gvfs")
6810 (version "1.50.2")
6811 (source (origin
6812 (method url-fetch)
6813 (uri (string-append "mirror://gnome/sources/gvfs/"
6814 (version-major+minor version) "/"
6815 "gvfs-" version ".tar.xz"))
6816 (sha256
6817 (base32
6818 "0pmc0vda1ksm9l7v64h4bm8qnv16amb7nifgy0882hzg2n62pmq3"))))
6819 (build-system meson-build-system)
6820 (arguments
6821 (list #:glib-or-gtk? #t
6822 #:configure-flags
6823 #~(list "-Dsystemduserunitdir=no"
6824 "-Dtmpfilesdir=no"
6825 ;; Otherwise, the RUNPATH will lack the final path component.
6826 (string-append "-Dc_link_args=-Wl,-rpath="
6827 #$output "/lib/gvfs"))))
6828 (native-inputs
6829 (list `(,glib "bin") ;for glib-genmarshal, etc.
6830 gettext-minimal
6831 gtk-doc/stable
6832 pkg-config
6833 libxslt))
6834 (inputs
6835 (list avahi
6836 docbook-xml-4.2
6837 docbook-xsl
6838 dbus
6839 elogind
6840 fuse-3
6841 gcr
6842 glib
6843 gnome-online-accounts
6844 gsettings-desktop-schemas
6845 libarchive
6846 libbluray
6847 libcap
6848 libcdio-paranoia
6849 libgcrypt
6850 libgdata
6851 libgphoto2
6852 libgudev
6853 libimobiledevice
6854 libmtp
6855 libnfs
6856 libsecret
6857 samba
6858 libsoup
6859 libxml2
6860 openssh
6861 polkit
6862 udisks))
6863 (home-page "https://wiki.gnome.org/gvfs/")
6864 (synopsis "Userspace virtual file system for GIO")
6865 (description
6866 "GVFS is a userspace virtual file system designed to work with the I/O
6867 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS
6868 support to all applications using the GIO API. It also supports exposing the
6869 GVFS mounts to non-GIO applications using FUSE.
6870
6871 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6872 DAV, and others.")
6873 (license license:lgpl2.0+)))
6874
6875 (define-public gusb-minimal
6876 (package
6877 (name "gusb-minimal")
6878 (version "0.3.5")
6879 (source (origin
6880 (method git-fetch)
6881 (uri (git-reference
6882 (url "https://github.com/hughsie/libgusb")
6883 (commit version)))
6884 (file-name (git-file-name name version))
6885 (sha256
6886 (base32
6887 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6888 (build-system meson-build-system)
6889 (arguments
6890 `(#:tests? #f ;libusb fails to initialize. Wonder what that is.
6891 #:configure-flags
6892 (cons "-Ddocs=false"
6893 (if ,(%current-target-system)
6894 ;; Introspection data cannot currently be cross-compiled.
6895 '("-Dintrospection=false"
6896 ;; Requires introspection data.
6897 "-Dvapi=false")
6898 '()))))
6899 (native-inputs
6900 (list gobject-introspection pkg-config python vala))
6901 (propagated-inputs
6902 ;; Both of these are required by gusb.pc.
6903 (list glib libusb))
6904 (home-page "https://github.com/hughsie/libgusb")
6905 (synopsis "GLib binding for libusb1")
6906 (description
6907 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6908 asynchronous control, bulk and interrupt transfers with proper cancellation
6909 and integration into a mainloop. This makes it easy to integrate low level
6910 USB transfers with your high-level application or system daemon.")
6911 (license license:lgpl2.1+)))
6912
6913 (define-public gusb
6914 (package/inherit gusb-minimal
6915 (name "gusb")
6916 (arguments
6917 (substitute-keyword-arguments (package-arguments gusb-minimal)
6918 ((#:configure-flags flags)
6919 `(cons "-Ddocs=true"
6920 (delete "-Ddocs=false" ,flags)))))
6921 (native-inputs
6922 (cons `("gtk-doc" ,gtk-doc/stable)
6923 (package-native-inputs gusb-minimal)))))
6924
6925 (define-public simple-scan
6926 (package
6927 (name "simple-scan")
6928 (version "42.1")
6929 (source
6930 (origin
6931 (method url-fetch)
6932 (uri (string-append "mirror://gnome/sources/simple-scan/"
6933 (version-major version) "/"
6934 "simple-scan-" version ".tar.xz"))
6935 (sha256
6936 (base32 "09i23f8j3knppyxmikzfq9s09xarsgp9sqx9mfyvas8p3ihw16w5"))))
6937 (build-system meson-build-system)
6938 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6939 (arguments
6940 '(#:glib-or-gtk? #t))
6941 (native-inputs
6942 (list gettext-minimal
6943 itstool
6944 `(,glib "bin") ; glib-compile-schemas, etc.
6945 pkg-config
6946 python
6947 vala
6948 libxml2))
6949 (inputs
6950 (list gtk+
6951 zlib
6952 cairo
6953 colord
6954 gdk-pixbuf
6955 gusb
6956 libhandy
6957 sane-backends))
6958 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6959 (synopsis "Document and image scanner")
6960 (description
6961 "Document Scanner is an easy-to-use application that lets you connect your
6962 scanner and quickly capture images and documents in an appropriate format. It
6963 supports any scanner for which a suitable SANE driver is available, which is
6964 almost all of them.")
6965 (license license:gpl3+)))
6966
6967 (define-public eolie
6968 (package
6969 (name "eolie")
6970 (version "0.9.101")
6971 (source (origin
6972 (method url-fetch)
6973 (uri (string-append "https://adishatz.org/eolie/eolie-"
6974 version ".tar.xz"))
6975 (sha256
6976 (base32
6977 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6978 (build-system meson-build-system)
6979 (arguments
6980 `(#:glib-or-gtk? #t
6981 #:phases
6982 (modify-phases %standard-phases
6983 (add-after 'unpack 'skip-gtk-update-icon-cache
6984 ;; Don't create 'icon-theme.cache'.
6985 (lambda _
6986 (substitute* "meson_post_install.py"
6987 (("gtk-update-icon-cache") "true"))
6988 #t))
6989 (add-after 'wrap 'wrap-more
6990 (lambda* (#:key inputs outputs #:allow-other-keys)
6991 (let* ((out (assoc-ref outputs "out"))
6992 ;; These libraries must be on LD_LIBRARY_PATH.
6993 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6994 "atk" "gtk+" "gsettings-desktop-schemas"
6995 "gobject-introspection"))
6996 (path (string-join
6997 (map (lambda (lib)
6998 (string-append (assoc-ref inputs lib) "/lib"))
6999 libs)
7000 ":")))
7001 (wrap-program (string-append out "/bin/eolie")
7002 `("LD_LIBRARY_PATH" ":" prefix (,path))
7003 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
7004 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
7005 #t)))))
7006 (native-inputs
7007 `(("intltool" ,intltool)
7008 ("itstool" ,itstool)
7009 ("pkg-config" ,pkg-config)
7010 ("python" ,python)
7011 ("glib:bin" ,glib "bin")))
7012 (inputs
7013 `(("gobject-introspection" ,gobject-introspection)
7014 ("glib-networking" ,glib-networking)
7015 ("cairo" ,cairo)
7016 ("gtk+" ,gtk+)
7017 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
7018 ("python" ,python-wrapper)
7019 ("python-dateutil" ,python-dateutil)
7020 ("python-pyfxa" ,python-pyfxa)
7021 ("python-pygobject" ,python-pygobject)
7022 ("python-pycairo" ,python-pycairo)
7023 ("python-pycrypto" ,python-pycrypto)
7024 ("libhandy" ,libhandy)
7025 ("libsecret" ,libsecret)
7026 ("gtkspell3" ,gtkspell3)
7027 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7028 ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
7029 ("webkitgtk" ,webkitgtk)))
7030 (home-page "https://wiki.gnome.org/Apps/Eolie")
7031 (synopsis "Web browser for GNOME")
7032 (description
7033 "Eolie is a new web browser for GNOME. It features Firefox sync support,
7034 a secret password store, an adblocker, and a modern UI.")
7035 (license license:gpl3+)))
7036
7037 (define-public epiphany
7038 (package
7039 (name "epiphany")
7040 (version "42.4")
7041 (source (origin
7042 (method url-fetch)
7043 (uri (string-append "mirror://gnome/sources/epiphany/"
7044 (version-major version) "/"
7045 "epiphany-" version ".tar.xz"))
7046 (sha256
7047 (base32
7048 "0q08ixzgp341g5pq6rfy5q75m9bvddvl8na3qa5v5vi056nkh29p"))))
7049 (build-system meson-build-system)
7050 (arguments
7051 (list
7052 #:glib-or-gtk? #t
7053 #:phases
7054 #~(modify-phases %standard-phases
7055 (add-after 'unpack 'skip-gtk-update-icon-cache
7056 ;; Don't create 'icon-theme.cache'.
7057 (lambda _
7058 (substitute* "post_install.py"
7059 (("gtk-update-icon-cache") "true"))))
7060 (add-after 'unpack 'disable-failing-tests
7061 (lambda _
7062 (substitute* "tests/meson.build"
7063 ;; embed_shell fails, because webkitgtk apparently no longer
7064 ;; supports overriding the ftp schema web_app_utils fails due
7065 ;; to missing network access.
7066 (("(embed_shell|web_app_utils)_test,")
7067 "find_program('sh'), args: ['-c', 'exit 77'],"))))
7068 (add-before 'check 'pre-check
7069 (lambda _
7070 ;; Tests require a running X server.
7071 (system "Xvfb :1 &")
7072 (setenv "DISPLAY" ":1"))))
7073 #:configure-flags
7074 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
7075 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7076 #$output "/lib/epiphany")
7077 "-Dsoup2=disabled"))) ;use libsoup 3
7078 (propagated-inputs (list dconf))
7079 (native-inputs
7080 (list desktop-file-utils ; for update-desktop-database
7081 gettext-minimal
7082 `(,glib "bin") ; for glib-mkenums
7083 itstool
7084 pkg-config
7085 libxml2
7086 xorg-server-for-tests))
7087 (inputs
7088 (list avahi
7089 gcr
7090 glib-networking
7091 gnome-desktop
7092 gsettings-desktop-schemas
7093 iso-codes
7094 json-glib
7095 libarchive
7096 libdazzle
7097 libhandy
7098 libnotify
7099 libportal
7100 librsvg ; for loading SVG files
7101 libsecret
7102 libsoup
7103 libxslt
7104 nettle ; for hogweed
7105 sqlite
7106 webkitgtk))
7107 (home-page "https://wiki.gnome.org/Apps/Web")
7108 (synopsis "GNOME web browser")
7109 (description
7110 "Epiphany is a GNOME web browser targeted at non-technical users. Its
7111 principles are simplicity and standards compliance.")
7112 (license license:gpl2+)))
7113
7114 (define-public d-feet
7115 (package
7116 (name "d-feet")
7117 (version "0.3.16")
7118 (source (origin
7119 (method url-fetch)
7120 (uri (string-append "mirror://gnome/sources/" name "/"
7121 (version-major+minor version) "/"
7122 name "-" version ".tar.xz"))
7123 (sha256
7124 (base32
7125 "1jqw5ndpgyb0zxh0g21ai1911lfrm56vz18xbccfqm4sk95wwcw7"))))
7126 (build-system meson-build-system)
7127 (arguments
7128 (list
7129 #:glib-or-gtk? #t
7130 #:phases
7131 #~(modify-phases %standard-phases
7132 (add-before 'check 'pre-check
7133 (lambda _
7134 ;; The test suite requires a running X server.
7135 (system "Xvfb :1 &")
7136 (setenv "DISPLAY" ":1")))
7137 (add-before 'install 'disable-gtk-update-icon-cache
7138 (lambda _
7139 (setenv "DESTDIR" "/")))
7140 (add-after 'install 'wrap-program
7141 (lambda* (#:key outputs #:allow-other-keys)
7142 (wrap-program (search-input-file outputs "bin/d-feet")
7143 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
7144 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
7145 (native-inputs
7146 (list `(,glib "bin")
7147 intltool
7148 itstool
7149 libxml2
7150 pkg-config
7151 python-pep8
7152 xorg-server-for-tests))
7153 (inputs
7154 (list gobject-introspection
7155 gtk+
7156 python-wrapper
7157 python-pygobject))
7158 (home-page "https://wiki.gnome.org/Apps/DFeet")
7159 (synopsis "D-Bus debugger")
7160 (description
7161 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
7162 of running programs and invoke methods on those interfaces.")
7163 (license license:gpl2+)))
7164
7165 (define-public yelp-xsl
7166 (package
7167 (name "yelp-xsl")
7168 (version "41.0")
7169 (source
7170 (origin
7171 (method url-fetch)
7172 (uri
7173 (string-append "mirror://gnome/sources/" name "/"
7174 (version-major version) "/"
7175 name "-" version ".tar.xz"))
7176 (sha256
7177 (base32 "19d46rkajvr0f04560vlrzwvac88x5j8ilvzwkawbn5vjg069kf8"))))
7178 (build-system gnu-build-system)
7179 (arguments
7180 `(#:configure-flags
7181 (list
7182 "--enable-doc")))
7183 (native-inputs
7184 `(("ducktype" ,mallard-ducktype)
7185 ("gettext" ,gettext-minimal)
7186 ("intltool" ,intltool)
7187 ("itstool" ,itstool)
7188 ("xmllint" ,libxml2)
7189 ("xsltproc" ,libxslt)))
7190 (synopsis "XSL stylesheets for Yelp")
7191 (description "Yelp-XSL is a collection of programs and data files to help
7192 you build, maintain, and distribute documentation. It provides XSLT stylesheets
7193 that can be built upon for help viewers and publishing systems. These
7194 stylesheets output JavaScript and CSS content, and reference images
7195 provided by yelp-xsl. It also redistributes copies of the jQuery and
7196 jQuery.Syntax JavaScript libraries.")
7197 (home-page "https://wiki.gnome.org/Apps/Yelp")
7198 (license
7199 (list
7200 ;; XSLT
7201 license:gpl2+
7202 ;; Images
7203 license:lgpl2.1+
7204 ;; JavaScript
7205 license:expat))))
7206
7207 (define-public yelp
7208 (package
7209 (name "yelp")
7210 (version "42.1")
7211 (source (origin
7212 (method url-fetch)
7213 (uri (string-append "mirror://gnome/sources/" name "/"
7214 (version-major version) "/"
7215 name "-" version ".tar.xz"))
7216 (sha256
7217 (base32
7218 "0h9vf4fx056imjf8ibmn03wg1c3hniipy1nsm2jqi62lp1m19c95"))))
7219 (build-system glib-or-gtk-build-system)
7220 (native-inputs
7221 (list `(,glib "bin") ; for glib-genmarshal, etc.
7222 intltool
7223 itstool
7224 pkg-config))
7225 (propagated-inputs
7226 (list dconf))
7227 (inputs
7228 (list gsettings-desktop-schemas
7229 libhandy
7230 libxslt
7231 sqlite
7232 webkitgtk
7233 yelp-xsl))
7234 (home-page "https://wiki.gnome.org/Apps/Yelp")
7235 (synopsis "GNOME help browser")
7236 (description
7237 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
7238 man, info, and HTML documents. It can locate documents according to the
7239 freedesktop.org help system specification.")
7240 (license license:gpl2+)))
7241
7242 (define-public yelp-tools
7243 (package
7244 (name "yelp-tools")
7245 (version "3.32.2")
7246 (source
7247 (origin
7248 (method url-fetch)
7249 (uri
7250 (string-append "mirror://gnome/sources/" name "/"
7251 (version-major+minor version) "/"
7252 name "-" version ".tar.xz"))
7253 (sha256
7254 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
7255 (build-system gnu-build-system)
7256 (native-inputs
7257 (list pkg-config))
7258 (inputs
7259 (list yelp-xsl))
7260 (propagated-inputs
7261 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
7262 `(("itstool" ,itstool)
7263 ("xmllint" ,libxml2)
7264 ("xsltproc" ,libxslt)))
7265 (synopsis "Yelp documentation tools")
7266 (description
7267 "Yelp-tools is a collection of scripts and build utilities to help create,
7268 manage, and publish documentation for Yelp and the web. Most of the heavy
7269 lifting is done by packages like yelp-xsl and itstool. This package just
7270 wraps things up in a developer-friendly way.")
7271 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
7272 (license license:gpl2+)))
7273
7274 (define-public libgee
7275 (package
7276 (name "libgee")
7277 (version "0.20.5")
7278 (source (origin
7279 (method url-fetch)
7280 (uri (string-append "mirror://gnome/sources/libgee/"
7281 (version-major+minor version) "/"
7282 "libgee-" version ".tar.xz"))
7283 (sha256
7284 (base32
7285 "060mbj6ihca315a6wqj47mfzm2881azwm5bl0vwjg9ymay4km1ii"))))
7286 (build-system gnu-build-system)
7287 (arguments
7288 (list
7289 #:phases
7290 #~(modify-phases %standard-phases
7291 (add-after 'unpack 'fix-introspection-install-dir
7292 (lambda _
7293 (substitute* "gee/Makefile.in"
7294 (("@INTROSPECTION_GIRDIR@")
7295 (string-append #$output "/share/gir-1.0/"))
7296 (("@INTROSPECTION_TYPELIBDIR@")
7297 (string-append #$output "/lib/girepository-1.0/"))))))))
7298 (native-inputs
7299 (list `(,glib "bin") pkg-config))
7300 (inputs
7301 (list glib gobject-introspection))
7302 (home-page "https://wiki.gnome.org/Projects/Libgee")
7303 (synopsis "GObject collection library")
7304 (description
7305 "Libgee is a utility library providing GObject-based interfaces and
7306 classes for commonly used data structures.")
7307 (license license:lgpl2.1+)))
7308
7309 (define-public gexiv2
7310 (package
7311 (name "gexiv2")
7312 (version "0.14.0")
7313 (source (origin
7314 (method url-fetch)
7315 (uri (string-append "mirror://gnome/sources/" name "/"
7316 (version-major+minor version) "/"
7317 name "-" version ".tar.xz"))
7318 (sha256
7319 (base32
7320 "17nnsslj2wpizpx742w5lxdzcz5mx6jmsqcrli7zddi0zyk7k0p5"))))
7321 (build-system meson-build-system)
7322 (arguments
7323 (list
7324 #:imported-modules `(,@%meson-build-system-modules
7325 (guix build python-build-system))
7326 #:modules '((guix build meson-build-system)
7327 ((guix build python-build-system) #:prefix python:)
7328 (guix build utils))
7329 #:configure-flags
7330 #~(list (string-append "-Dpython3_girdir="
7331 (python:site-packages %build-inputs %outputs)
7332 "/gi/overrides"))))
7333 (native-inputs
7334 (list gcr
7335 `(,glib "bin")
7336 pkg-config
7337 python
7338 python-pygobject
7339 vala))
7340 (propagated-inputs
7341 ;; Listed in "Requires" section of gexiv2.pc
7342 (list exiv2))
7343 (inputs
7344 (list glib
7345 gobject-introspection))
7346 (home-page "https://wiki.gnome.org/Projects/gexiv2")
7347 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
7348 (description
7349 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
7350 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
7351 metadata in photo and video files of various formats.")
7352 (license license:gpl2+)))
7353
7354 (define-public shotwell
7355 (package
7356 (name "shotwell")
7357 (version "0.31.5")
7358 (source (origin
7359 (method url-fetch)
7360 (uri (string-append "mirror://gnome/sources/shotwell/"
7361 (version-major+minor version) "/"
7362 "shotwell-" version ".tar.xz"))
7363 (sha256
7364 (base32
7365 "06awlix23y1cd89n6v9vip48cg08fjq8v6zaw38k5clrrv38y11v"))))
7366 (build-system meson-build-system)
7367 (arguments
7368 '(#:glib-or-gtk? #t
7369 #:phases
7370 (modify-phases %standard-phases
7371 (add-after 'unpack 'skip-gtk-update-icon-cache
7372 (lambda _
7373 (substitute* "build-aux/meson/postinstall.py"
7374 (("gtk-update-icon-cache") (which "true"))
7375 (("update-desktop-database") (which "true"))))))))
7376 (propagated-inputs
7377 (list dconf))
7378 (native-inputs
7379 (list gettext-minimal
7380 `(,glib "bin")
7381 itstool
7382 pkg-config
7383 python
7384 vala-next))
7385 (inputs
7386 (list gcr
7387 gexiv2
7388 gst-plugins-base
7389 gstreamer
7390 json-glib
7391 libgdata
7392 libgee
7393 libgphoto2
7394 libgudev
7395 libraw
7396 libsecret
7397 libwebp
7398 libxml2
7399 sqlite
7400 webkitgtk))
7401 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7402 (synopsis "Photo manager for GNOME 3")
7403 (description
7404 "Shotwell is a digital photo manager designed for the GNOME desktop
7405 environment. It allows you to import photos from disk or camera, organize
7406 them by keywords and events, view them in full-window or fullscreen mode, and
7407 share them with others via social networking and more.")
7408 (license license:lgpl2.1+)))
7409
7410 (define-public file-roller
7411 (package
7412 (name "file-roller")
7413 (version "3.42.0")
7414 (source (origin
7415 (method url-fetch)
7416 (uri (string-append "mirror://gnome/sources/file-roller/"
7417 (version-major+minor version) "/"
7418 "file-roller-" version ".tar.xz"))
7419 (sha256
7420 (base32
7421 "1iq24g2z7kf1a6kn9asp96lc59r8pxxjvcmm5r7zy47cadnqwhqw"))))
7422 (build-system meson-build-system)
7423 (arguments
7424 (list #:glib-or-gtk? #t
7425 #:phases #~(modify-phases %standard-phases
7426 (add-before 'install 'disable-gtk-update-icon-cache
7427 (lambda _
7428 (setenv "DESTDIR" "/"))))))
7429 (native-inputs
7430 (list desktop-file-utils
7431 gettext-minimal
7432 `(,glib "bin")
7433 itstool
7434 pkg-config
7435 python))
7436 ;; TODO: Add libnautilus.
7437 (inputs
7438 (list gtk+
7439 json-glib
7440 libarchive
7441 libhandy
7442 libnotify
7443 nettle
7444 libxml2))
7445 (synopsis "Graphical archive manager for GNOME")
7446 (description "File Roller is an archive manager for the GNOME desktop
7447 environment that allows users to view, unpack, and create compressed archives
7448 such as gzip tarballs.")
7449 (home-page "http://fileroller.sourceforge.net/")
7450 (license license:gpl2+)))
7451
7452 (define-public gnome-session
7453 (package
7454 (name "gnome-session")
7455 (version "42.0")
7456 (source (origin
7457 (method url-fetch)
7458 (uri (string-append "mirror://gnome/sources/" name "/"
7459 (version-major version) "/"
7460 name "-" version ".tar.xz"))
7461 (patches (search-patches "gnome-session-support-elogind.patch"))
7462 (sha256
7463 (base32
7464 "1alwjqr36rd0s132qs2clwnxgilcbylps6lm41lr50mn782hdjiw"))))
7465 (arguments
7466 `(#:glib-or-gtk? #t
7467 #:phases
7468 (modify-phases %standard-phases
7469 (add-after 'install 'wrap-gnome-session
7470 (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
7471 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7472 (wrap-program (search-input-file outputs "bin/gnome-session")
7473 `("PATH" ":" prefix
7474 (,(dirname (search-input-file (or native-inputs inputs)
7475 "bin/gdbus"))))))))
7476 #:configure-flags
7477 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7478 "-Dman=false" ; FIXME: disabled because of docbook validation error
7479 "-Delogind=true"
7480 "-Dsystemd=false"
7481 "-Dsystemd_session=disable"
7482 "-Dsystemd_journal=false")))
7483 (build-system meson-build-system)
7484 (native-inputs
7485 (list docbook-xml
7486 docbook-xsl
7487 `(,glib "bin") ; for glib-compile-schemas, etc.
7488 intltool
7489 libxml2 ;for 'XML_CATALOG_FILES'
7490 libxslt
7491 pkg-config
7492 xmlto))
7493 (inputs
7494 (list elogind
7495 gnome-desktop
7496 gsettings-desktop-schemas
7497 gtk+
7498 json-glib
7499 libsm
7500 libxcomposite
7501 libxtst
7502 mesa
7503 upower
7504 xtrans))
7505 (synopsis "Session manager for GNOME")
7506 (description
7507 "This package contains the GNOME session manager, as well as a
7508 configuration program to choose applications starting on login.")
7509 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7510 (license license:gpl2+)))
7511
7512 (define-public gjs
7513 (package
7514 (name "gjs")
7515 (version "1.72.2")
7516 (source (origin
7517 (method url-fetch)
7518 (uri (string-append "mirror://gnome/sources/" name "/"
7519 (version-major+minor version) "/"
7520 name "-" version ".tar.xz"))
7521 (sha256
7522 (base32
7523 "0xrrv9lsi087yb9yf146a1aarf5yh6rf4jw9blx30zasvjdkgvnx"))
7524 (modules '((guix build utils)))
7525 (snippet
7526 '(begin
7527 (substitute* "installed-tests/scripts/testCommandLine.sh"
7528 (("Valentín") "")
7529 (("☭") ""))))))
7530 (build-system meson-build-system)
7531 (arguments
7532 '(#:configure-flags '("-Dinstalled_tests=false")
7533 #:phases
7534 (modify-phases %standard-phases
7535 (add-before 'check 'pre-check
7536 (lambda _
7537 ;; The test suite requires a running X server.
7538 (system "Xvfb :1 &")
7539 (setenv "DISPLAY" ":1")
7540
7541 ;; For the missing /etc/machine-id.
7542 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
7543 (native-inputs
7544 (list `(,glib "bin") ;for glib-compile-resources
7545 pkg-config
7546 libxml2
7547 ;; For testing
7548 dbus
7549 dconf ;required to properly store settings
7550 util-linux
7551 xorg-server-for-tests))
7552 (propagated-inputs
7553 ;; These are all in the Requires.private field of gjs-1.0.pc.
7554 (list cairo gobject-introspection mozjs-91))
7555 (inputs
7556 (list gtk+ readline))
7557 (synopsis "Javascript bindings for GNOME")
7558 (home-page "https://wiki.gnome.org/Gjs")
7559 (description
7560 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7561 javascript engine and the GObject introspection framework.")
7562 (license license:gpl2+)))
7563
7564 (define-public gedit
7565 (package
7566 (name "gedit")
7567 (version "42.2")
7568 (source (origin
7569 (method url-fetch)
7570 (uri (string-append "mirror://gnome/sources/" name "/"
7571 (version-major version) "/"
7572 name "-" version ".tar.xz"))
7573 (sha256
7574 (base32
7575 "1jlgzihi4ywvlr4xj2vbnnxzar8j3mwj0jcn8jp6dh0a3w8jjqiw"))))
7576 (build-system meson-build-system)
7577 (arguments
7578 (list
7579 #:glib-or-gtk? #t
7580 #:configure-flags
7581 ;; Otherwise, the RUNPATH will lack the final path component.
7582 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7583 #$output "/lib/gedit"))
7584 #:phases
7585 #~(modify-phases %standard-phases
7586 (add-after 'unpack 'skip-gtk-update-icon-cache
7587 ;; Don't create 'icon-theme.cache'.
7588 (lambda _
7589 (substitute* "build-aux/meson/post_install.py"
7590 (("gtk-update-icon-cache") (which "true")))))
7591 (add-after 'unpack 'do-not-invoke-git
7592 (lambda* (#:key inputs #:allow-other-keys)
7593 (substitute* "meson.build"
7594 ((".*git.*") ""))))
7595 (add-after 'install 'wrap-gedit
7596 (lambda* (#:key outputs #:allow-other-keys)
7597 (wrap-program (search-input-file outputs "bin/gedit")
7598 ;; For plugins.
7599 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
7600 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
7601 ;; For language-specs.
7602 `("XDG_DATA_DIRS" ":" prefix
7603 (,(string-append #$(this-package-input "gtksourceview")
7604 "/share")))))))))
7605 (propagated-inputs
7606 (list dconf))
7607 (native-inputs
7608 (list desktop-file-utils ;for update-desktop-database
7609 `(,glib "bin") ;for glib-mkenums, etc.
7610 gobject-introspection
7611 intltool
7612 itstool
7613 libxml2
7614 pkg-config
7615 python
7616 vala))
7617 (inputs
7618 (list adwaita-icon-theme
7619 bash-minimal
7620 glib
7621 gsettings-desktop-schemas
7622 gspell
7623 gtk+
7624 gtksourceview-4
7625 libpeas
7626 libsoup
7627 python
7628 python-pygobject))
7629 (home-page "https://wiki.gnome.org/Apps/Gedit")
7630 (synopsis "GNOME text editor")
7631 (description "While aiming at simplicity and ease of use, gedit is a
7632 powerful general purpose text editor.")
7633 (license license:gpl2+)))
7634
7635 (define-public zenity
7636 (package
7637 (name "zenity")
7638 (version "3.43.0")
7639 (source (origin
7640 (method url-fetch)
7641 (uri (string-append "mirror://gnome/sources/zenity/"
7642 (version-major+minor version) "/"
7643 "zenity-" version ".tar.xz"))
7644 (sha256
7645 (base32
7646 "0czq2vx636xbvg7zbdqkxq41zgm7v1h048awy0cgls0q1hgcmmxh"))))
7647 (build-system meson-build-system)
7648 (arguments
7649 (list #:phases #~(modify-phases %standard-phases
7650 (add-after 'unpack 'disable-gtk-update-icon-cache
7651 ;; The gtk-update-icon-cache tool is only run when
7652 ;; DESTDIR is unset.
7653 (lambda _
7654 (setenv "DESTDIR" "/"))))))
7655 (native-inputs (list gettext-minimal itstool pkg-config))
7656 (inputs (list gtk+))
7657 (synopsis "Display graphical dialog boxes from shell scripts")
7658 (home-page "https://www.gnome.org")
7659 (description
7660 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7661 to display dialog boxes from the commandline and shell scripts.")
7662 (license license:lgpl2.0+)))
7663
7664 (define-public mutter
7665 (package
7666 (name "mutter")
7667 (version "42.4")
7668 (source (origin
7669 (method url-fetch)
7670 (uri (string-append "mirror://gnome/sources/" name "/"
7671 (version-major version) "/"
7672 name "-" version ".tar.xz"))
7673 (sha256
7674 (base32
7675 "0h1ak3201mdc2qbf67fhcn801ddp33hm0f0c52zis1l7s6ipyb62"))))
7676 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7677 ;; versions of cogl and clutter. As a result, many of the inputs,
7678 ;; propagated-inputs, and configure flags used in cogl and clutter are
7679 ;; needed here as well.
7680 (build-system meson-build-system)
7681 (arguments
7682 (list
7683 #:imported-modules `(,@%meson-build-system-modules
7684 (guix build syscalls))
7685 #:modules '((guix build meson-build-system)
7686 (guix build syscalls)
7687 (guix build utils)
7688 (ice-9 match))
7689 #:glib-or-gtk? #t
7690 #:configure-flags
7691 #~(list
7692 ;; Otherwise, the RUNPATH will lack the final path component.
7693 (string-append "-Dc_link_args=-Wl,-rpath="
7694 #$output "/lib:"
7695 #$output "/lib/mutter-9")
7696 ;; Disable systemd support.
7697 "-Dsystemd=false"
7698 ;; The following flags are needed for the bundled clutter
7699 (string-append "-Dxwayland_path="
7700 (search-input-file %build-inputs "bin/Xwayland"))
7701 ;; the remaining flags are needed for the bundled cogl
7702 (string-append "-Dopengl_libname="
7703 (search-input-file %build-inputs "lib/libGL.so"))
7704 (string-append "-Dgles2_libname="
7705 (search-input-file %build-inputs "lib/libGLESv2.so"))
7706 "-Degl_device=true" ;false by default
7707 "-Dwayland_eglstream=true") ;false by default
7708 #:test-options '(list "--verbose")
7709 #:phases
7710 #~(modify-phases %standard-phases
7711 (add-after 'unpack 'adjust-runpath-linker-directives
7712 (lambda _
7713 ;; By default Mutter uses RPATH instead of RUNPATH, which our
7714 ;; customized linker script makes use of. Some libraries are
7715 ;; also installed under lib/mutter-10 and need to be added to
7716 ;; the RUNPATH.
7717 (substitute* "meson.build"
7718 (("'-Wl,--disable-new-dtags'")
7719 (string-append "'-Wl,-rpath=" #$output "/lib/mutter-10'")))))
7720 (add-after 'unpack 'patch-dlopen-calls
7721 (lambda* (#:key inputs #:allow-other-keys)
7722 (substitute* "src/wayland/meta-wayland-egl-stream.c"
7723 (("libnvidia-egl-wayland.so.1")
7724 (search-input-file inputs "lib/libnvidia-egl-wayland.so.1")))))
7725 (add-before 'configure 'set-udev-dir
7726 (lambda _
7727 (setenv "PKG_CONFIG_UDEV_UDEVDIR"
7728 (string-append #$output "/lib/udev"))))
7729 (add-after 'unpack 'disable-problematic-tests
7730 (lambda _
7731 ;; The native-headless test hangs due to attempting to use audio,
7732 ;; unavailable in the container.
7733 ;; Note: the following sed expression deletes the whole test(...)
7734 ;; expression paragraph. For an explanation, see: info '(sed)
7735 ;; Multiline techniques'.
7736 (invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//"
7737 "-i" "src/tests/meson.build")
7738 ;; Timeline tests may unexpectedly fail on missed frames, so
7739 ;; let's disable them as well.
7740 ;; See <https://gitlab.gnome.org/GNOME/mutter/-/issues/2125>
7741 (substitute* "src/tests/clutter/conform/meson.build"
7742 (("'timeline.*',") ""))))
7743 (replace 'check
7744 (lambda* (#:key tests? test-options parallel-tests?
7745 #:allow-other-keys)
7746 (when tests?
7747 ;; Setup (see the 'test-mutter' CI target at
7748 ;; https://gitlab.gnome.org/GNOME/mutter/-/raw/main/.gitlab-ci.yml).
7749 (setenv "HOME" "/tmp")
7750 (setenv "XDG_RUNTIME_DIR" (string-append (getcwd)
7751 "/runtime-dir"))
7752 (mkdir (getenv "XDG_RUNTIME_DIR"))
7753 (chmod (getenv "XDG_RUNTIME_DIR") #o700)
7754
7755 (setenv "GSETTINGS_SCHEMA_DIR" "data")
7756 (setenv "MUTTER_DEBUG_DUMMY_MODE_SPECS" "800x600@10.0")
7757 (setenv "PIPEWIRE_DEBUG" "2")
7758 (setenv "PIPEWIRE_LOG" "meson-logs/pipewire.log")
7759 (setenv "XVFB_SERVER_ARGS" "+iglx -noreset")
7760 (setenv "G_SLICE" "always-malloc")
7761 (setenv "MALLOC_CHECK" "3")
7762 (setenv "NO_AT_BRIDGE" "1")
7763 ;; This is needed, otherwise the "mutter:core+mutter/unit /
7764 ;; anonymous-file" test would fail (see:
7765 ;; https://gitlab.gnome.org/GNOME/mutter/-/issues/2017).
7766 (setenv "CI_JOB_ID" "1")
7767
7768 (invoke "glib-compile-schemas" (getenv "GSETTINGS_SCHEMA_DIR"))
7769 (mkdir-p (getenv "XDG_RUNTIME_DIR"))
7770 (chmod (getenv "XDG_RUNTIME_DIR") #o755)
7771 (invoke "pipewire" "--version") ;check for pipewire
7772 (system "pipewire &") ;always returns 0 due to forking
7773
7774 (setenv "MESON_TESTTHREADS"
7775 (if parallel-tests?
7776 (number->string (parallel-job-count))
7777 "1"))
7778 (match (primitive-fork)
7779 (0 ;child process
7780 (set-child-subreaper!)
7781 ;; Use tini so that signals are properly handled and
7782 ;; doubly-forked processes get reaped; otherwise,
7783 ;; python-dbusmock would waste time polling for the dbus
7784 ;; processes it spawns to be reaped, in vain.
7785 (apply execlp "tini" "--"
7786 "dbus-run-session" "--"
7787 "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
7788 "meson" "test" "-t" "0" "--print-errorlogs"
7789 test-options))
7790 (pid
7791 (match (waitpid pid)
7792 ((_ . status)
7793 (unless (zero? status)
7794 (error "`meson test' exited with status"
7795 status))))))))))))
7796 (native-inputs
7797 (list desktop-file-utils ;for update-desktop-database
7798 `(,glib "bin") ;for glib-compile-schemas, etc.
7799 gobject-introspection
7800 intltool
7801 pkg-config
7802 xvfb-run
7803 ;; For git build
7804 autoconf
7805 automake
7806 libtool
7807 wayland-protocols-next
7808 ;; For tests.
7809 ;; Warnings are configured to be fatal during the tests; add an icon
7810 ;; theme to please libxcursor.
7811 adwaita-icon-theme
7812 libxcursor ;for XCURSOR_PATH
7813 pipewire-0.3
7814 python
7815 python-dbus
7816 python-dbusmock
7817 tini)) ;acting as init (zombie reaper)
7818 (propagated-inputs
7819 (list gsettings-desktop-schemas-next ;required by libmutter.pc
7820 gtk+ ;required by libmutter.pc
7821 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7822 atk
7823 cairo
7824 eudev
7825 gdk-pixbuf
7826 glib
7827 json-glib
7828 libinput
7829 libx11
7830 libxcomposite
7831 libxcvt
7832 libxdamage
7833 libxext
7834 libxfixes
7835 libxkbcommon
7836 libxml2
7837 libxrandr
7838 mesa
7839 pango
7840 xinput))
7841 (inputs
7842 (list egl-wayland ;for wayland-eglstream-protocols
7843 elogind
7844 gnome-desktop
7845 gnome-settings-daemon
7846 graphene
7847 libcanberra
7848 libgudev
7849 libice
7850 libsm
7851 libwacom
7852 libxkbfile
7853 libxrandr
7854 libxtst
7855 pipewire-0.3
7856 startup-notification
7857 sysprof
7858 upower
7859 xkeyboard-config
7860 xorg-server-xwayland
7861 zenity))
7862 (synopsis "Window and compositing manager")
7863 (home-page "https://www.gnome.org")
7864 (description
7865 "Mutter is a window and compositing manager that displays and manages your
7866 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7867 Clutter toolkit with solid window-management logic inherited from the Metacity
7868 window manager.")
7869 (license license:gpl2+)))
7870
7871 (define-public gnome-online-accounts
7872 (package
7873 (name "gnome-online-accounts")
7874 (version "3.45.2")
7875 (source (origin
7876 (method url-fetch)
7877 (uri (string-append "mirror://gnome/sources/" name "/"
7878 (version-major+minor version) "/"
7879 name "-" version ".tar.xz"))
7880 (sha256
7881 (base32
7882 "15zzzndbfba8a497vxb6cmy1y22l3lfn4sx9s9r59kwzd83i6fxn"))))
7883 (build-system meson-build-system)
7884 (arguments
7885 (list
7886 #:glib-or-gtk? #t
7887 #:phases
7888 #~(modify-phases %standard-phases
7889 (add-before 'install 'disable-gtk-update-icon-cache
7890 (lambda _
7891 (setenv "DESTDIR" "/"))))))
7892 (native-inputs
7893 (list gettext-minimal
7894 `(,glib "bin") ; for glib-compile-schemas, etc.
7895 gobject-introspection
7896 libxslt
7897 pkg-config
7898 vala))
7899 (propagated-inputs
7900 (list glib ; required by goa-1.0.pc
7901 gtk+)) ; required by goa-backend-1.0.pc
7902 (inputs
7903 (list docbook-xsl
7904 gcr
7905 json-glib
7906 libsecret
7907 mit-krb5
7908 rest-next
7909 webkitgtk))
7910 (synopsis "Single sign-on framework for GNOME")
7911 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7912 (description
7913 "GNOME Online Accounts provides interfaces so that applications and
7914 libraries in GNOME can access the user's online accounts. It has providers
7915 for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare,
7916 Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7917 (license license:lgpl2.0+)))
7918
7919 (define-public gnome-online-accounts-3.44
7920 (package
7921 (inherit gnome-online-accounts)
7922 (name "gnome-online-accounts")
7923 (version "3.44.0")
7924 (source (origin
7925 (method url-fetch)
7926 (uri (string-append "mirror://gnome/sources/" name "/"
7927 (version-major+minor version) "/"
7928 name "-" version ".tar.xz"))
7929 (sha256
7930 (base32
7931 "0hkkxa3zqyl0i4kw1p3ak4alwxw4wydh9al6fzwbcdgl0r0ms79q"))))
7932 (build-system glib-or-gtk-build-system)
7933 (arguments (substitute-keyword-arguments
7934 (strip-keyword-arguments
7935 '(#:glib-or-gtk?)
7936 (package-arguments gnome-online-accounts))
7937 ((#:phases phases)
7938 #~(modify-phases #$phases
7939 (delete 'disable-gtk-update-icon-cache)))))
7940 (inputs (modify-inputs (package-inputs gnome-online-accounts)
7941 (replace "rest" rest)
7942 (replace "webkitgtk" webkitgtk-with-libsoup2)))))
7943
7944 (define-public evolution-data-server
7945 (package
7946 (name "evolution-data-server")
7947 (version "3.44.4")
7948 (source
7949 (origin
7950 (method url-fetch)
7951 (uri (string-append "mirror://gnome/sources/" name "/"
7952 (version-major+minor version) "/"
7953 name "-" version ".tar.xz"))
7954 (sha256
7955 (base32 "1sxjrjr31wqbp9g4pf6dwj8rc4mi7c5fbfd489ha92ym7246bin0"))))
7956 (build-system cmake-build-system)
7957 (arguments
7958 (list
7959 #:configure-flags
7960 #~(let* ((lib (string-append #$output "/lib"))
7961 (runpaths (map (lambda (s)
7962 (string-append lib "/evolution-data-server/" s))
7963 '("addressbook-backends" "calendar-backends"
7964 "camel-providers" "credential-modules"
7965 "registry-modules"))))
7966 (list "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7967 "-DENABLE_VALA_BINDINGS=ON"
7968 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7969 (string-append lib "/evolution-data-server;")
7970 (string-join runpaths ";"))
7971 "-DENABLE_INTROSPECTION=ON" ;required for Vala bindings
7972 "-DWITH_PHONENUMBER=ON"))
7973 #:phases
7974 #~(modify-phases %standard-phases
7975 (add-after 'unpack 'disable-failing-tests
7976 (lambda _
7977 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7978 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7979 (delete-file-recursively "tests/book-migration")
7980 (substitute* "tests/CMakeLists.txt"
7981 (("add_subdirectory\\(book-migration\\)") ""))))
7982 (add-after 'unpack 'patch-paths
7983 (lambda _
7984 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7985 "tests/libedata-book/data-test-utils.c"
7986 "tests/libedata-book/test-book-cache-utils.c"
7987 "tests/libedata-cal/test-cal-cache-utils.c")
7988 (("/bin/rm") (which "rm")))))
7989 (add-before 'configure 'dont-override-rpath
7990 (lambda _
7991 (substitute* "CMakeLists.txt"
7992 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7993 ;; Remove it so the configure flag is respected.
7994 (("SET\\(CMAKE_INSTALL_RPATH .*") "")))))))
7995 (native-inputs
7996 (list `(,glib "bin") ; for glib-mkenums, etc.
7997 gobject-introspection
7998 gperf
7999 gsettings-desktop-schemas
8000 intltool
8001 pkg-config
8002 protobuf
8003 vala
8004 python-wrapper))
8005 (propagated-inputs
8006 ;; These are all in the Requires field of .pc files.
8007 (list gtk+
8008 libical
8009 libsecret
8010 libsoup-minimal-2
8011 nss
8012 sqlite))
8013 (inputs
8014 (list bdb
8015 boost
8016 gcr
8017 gnome-online-accounts
8018 json-glib
8019 libcanberra
8020 libgweather
8021 libphonenumber
8022 mit-krb5
8023 openldap
8024 webkitgtk-with-libsoup2))
8025 (synopsis "Store address books and calendars")
8026 (home-page "https://wiki.gnome.org/Apps/Evolution")
8027 (description
8028 "This package provides a unified backend for programs that work with
8029 contacts, tasks, and calendar information. It was originally developed for
8030 Evolution (hence the name), but is now used by other packages as well.")
8031 (license license:lgpl2.0)))
8032
8033 (define-public caribou
8034 (package
8035 (name "caribou")
8036 (version "0.4.21")
8037 (source (origin
8038 (method url-fetch)
8039 (uri (string-append "mirror://gnome/sources/" name "/"
8040 (version-major+minor version) "/"
8041 name "-" version ".tar.xz"))
8042 (sha256
8043 (base32
8044 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
8045 (build-system glib-or-gtk-build-system)
8046 (arguments
8047 '(#:phases
8048 (modify-phases %standard-phases
8049 (add-before
8050 'build 'pre-build
8051 (lambda* (#:key outputs #:allow-other-keys)
8052 (let ((out (assoc-ref outputs "out")))
8053 ;; Use absolute shared library path in Caribou-1.0.typelib.
8054 (substitute* "libcaribou/Makefile"
8055 (("--shared-library=libcaribou.so")
8056 (string-append "--shared-library="
8057 out "/lib/libcaribou.so")))
8058 #t)))
8059 (add-after 'install 'wrap-programs
8060 (lambda* (#:key outputs #:allow-other-keys)
8061 (let* ((out (assoc-ref outputs "out"))
8062 (python-path (getenv "GUIX_PYTHONPATH"))
8063 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8064 (for-each
8065 (lambda (prog)
8066 (wrap-program prog
8067 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
8068 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8069 (list (string-append out "/bin/caribou-preferences")
8070 (string-append out "/libexec/antler-keyboard"))))
8071 #t)))))
8072 (native-inputs
8073 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8074 ("gobject-introspection" ,gobject-introspection)
8075 ("intltool" ,intltool)
8076 ("pkg-config" ,pkg-config)
8077 ("python" ,python)
8078 ("vala" ,vala)
8079 ("xsltproc" ,libxslt)))
8080 (propagated-inputs
8081 ;; caribou-1.0.pc refers to all these.
8082 (list libgee libxklavier libxtst gtk+))
8083 (inputs
8084 `(("clutter" ,clutter)
8085 ("dconf" ,dconf)
8086 ("gtk+-2" ,gtk+-2)
8087 ("python-pygobject" ,python-pygobject)))
8088 (synopsis "Text entry and UI navigation application")
8089 (home-page "https://wiki.gnome.org/Projects/Caribou")
8090 (description
8091 "Caribou is an input assistive technology intended for switch and pointer
8092 users.")
8093 (license license:lgpl2.1)))
8094
8095 (define-public network-manager
8096 (package
8097 (name "network-manager")
8098 (version "1.40.0")
8099 (source (origin
8100 (method url-fetch)
8101 (uri (string-append "mirror://gnome/sources/NetworkManager/"
8102 (version-major+minor version) "/"
8103 "NetworkManager-" version ".tar.xz"))
8104 (patches (search-patches "network-manager-plugin-path.patch"
8105 "network-manager-meson.patch"))
8106 (sha256
8107 (base32
8108 "00zwx7cvl8p8xv5h8yvlj2r5wycbvbqia7z4hjmmvjicpiby1rxf"))))
8109 (build-system meson-build-system)
8110 (outputs '("out"
8111 "doc")) ; 8 MiB of gtk-doc HTML
8112 (arguments
8113 (list
8114 #:configure-flags
8115 #~(list
8116 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
8117 ;; component.
8118 (string-append "-Dc_link_args=-Wl,-rpath="
8119 #$output "/lib:"
8120 #$output "/lib/NetworkManager/" #$version)
8121 "-Dsystemd_journal=false"
8122 "-Dsession_tracking=elogind"
8123 "-Dsuspend_resume=elogind"
8124 "-Dsystemdsystemunitdir=no"
8125 "-Dsession_tracking_consolekit=false"
8126 "-Ddhcpcd=no"
8127 "-Ddhcpcanon=no"
8128 "-Dcrypto=gnutls"
8129 "-Diwd=true"
8130 "-Dlibaudit=yes"
8131 "-Dqt=false"
8132 "-Ddocs=true"
8133 "--sysconfdir=/etc"
8134 "--localstatedir=/var"
8135 (string-append "-Dudev_dir="
8136 #$output "/lib/udev")
8137 (string-append "-Ddbus_conf_dir="
8138 #$output "/etc/dbus-1/system.d")
8139
8140 (string-append "-Ddhclient=" (search-input-file %build-inputs
8141 "/sbin/dhclient")))
8142 #:phases
8143 #~(modify-phases %standard-phases
8144 (add-after 'unpack 'patch-dlopen-call-to-libjansson.so
8145 (lambda* (#:key inputs #:allow-other-keys)
8146 (substitute* "src/libnm-glib-aux/nm-json-aux.c"
8147 (("(handle = dlopen\\()soname" _ head)
8148 (string-append
8149 head "\"" (search-input-file inputs
8150 "lib/libjansson.so") "\"")))))
8151 (add-before 'configure 'pre-configure
8152 (lambda _
8153 ;; These tests try to test aspects of network-manager's
8154 ;; functionality within restricted containers, but they don't
8155 ;; cope with being already in the Guix build jail as that jail
8156 ;; lacks some features that they would like to proxy over (like
8157 ;; a /sys mount).
8158 (substitute* "src/core/tests/meson.build"
8159 ((".*test-l3cfg.*") ""))
8160 (substitute* "src/core/devices/tests/meson.build"
8161 ((".*test-acd.*") "")
8162 ((".*test-lldp.*") ""))
8163 (substitute* "src/core/platform/tests/meson.build"
8164 ((".*test-address-linux.*") "")
8165 ((".*test-cleanup-linux.*") "")
8166 ((".*test-link-linux.*") "")
8167 ((".*test-lldp.*") "")
8168 ((".*test-route-linux.*") "")
8169 ((".*test-tc-linux.*") ""))))
8170 (add-after 'unpack 'patch-docbook-xml
8171 (lambda* (#:key inputs #:allow-other-keys)
8172 (substitute* (find-files "." ".*\\.(xsl|xml)")
8173 (("http://.*/docbookx\\.dtd")
8174 (search-input-file inputs "xml/dtd/docbook/docbookx.dtd")))))
8175 (add-before 'check 'pre-check
8176 (lambda _
8177 ;; For the missing /etc/machine-id.
8178 (setenv "DBUS_FATAL_WARNINGS" "0")))
8179 (add-before 'install 'no-polkit-magic
8180 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
8181 (lambda _
8182 (setenv "PKEXEC_UID" "something")))
8183 (add-after 'install 'move-doc
8184 (lambda _
8185 (mkdir-p (string-append #$output:doc "/share"))
8186 (for-each (lambda (directory)
8187 (copy-recursively (string-append #$output directory)
8188 (string-append #$output:doc
8189 directory))
8190 (delete-file-recursively
8191 (string-append #$output directory)))
8192 '("/share/doc" "/share/gtk-doc")))))))
8193 (propagated-inputs
8194 (list glib))
8195 (native-inputs
8196 (list `(,glib "bin") ; for gdbus-codegen
8197 gtk-doc/stable
8198 gobject-introspection
8199 docbook-xml
8200 docbook-xsl
8201 intltool
8202 libxslt
8203 libxml2
8204 pkg-config
8205 vala
8206 ;; For testing.
8207 python-wrapper
8208 python-dbus
8209 python-pygobject))
8210 (inputs
8211 (list curl
8212 cyrus-sasl
8213 dbus-glib
8214 dnsmasq
8215 eudev
8216 gnutls
8217 iptables
8218 isc-dhcp
8219 iwd ; wpa_supplicant alternative
8220 jansson
8221 audit
8222 libgcrypt
8223 libgudev
8224 libndp
8225 libnl
8226 libselinux
8227 libsoup
8228 mobile-broadband-provider-info
8229 modem-manager
8230 newt ;for the 'nmtui' console interface
8231 openresolv ; alternative resolv.conf manager
8232 polkit
8233 ppp
8234 readline
8235 util-linux
8236 elogind))
8237 (synopsis "Network connection manager")
8238 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8239 (description
8240 "NetworkManager is a system network service that manages your network
8241 devices and connections, attempting to keep active network connectivity when
8242 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
8243 devices, and provides VPN integration with a variety of different VPN
8244 services.")
8245 ;; “This NetworkManager project consists of the daemon, client tools, and
8246 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
8247 ;; GPL-2.0+.”
8248 (license (list license:gpl2+
8249 license:lgpl2.1+))
8250 (properties '((upstream-name . "NetworkManager")))))
8251
8252 (define-public network-manager-openvpn
8253 (package
8254 (name "network-manager-openvpn")
8255 (version "1.8.12")
8256 (source (origin
8257 (method url-fetch)
8258 (uri (string-append
8259 "mirror://gnome/sources/NetworkManager-openvpn/"
8260 (version-major+minor version)
8261 "/NetworkManager-openvpn-" version ".tar.xz"))
8262 (sha256
8263 (base32
8264 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
8265 (build-system gnu-build-system)
8266 (arguments
8267 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
8268 #:phases
8269 (modify-phases %standard-phases
8270 (add-after 'configure 'patch-path
8271 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8272 (let* ((ovpn (search-input-file inputs "/sbin/openvpn"))
8273 (modprobe (search-input-file inputs "/bin/modprobe"))
8274 (pretty-ovpn (string-append "\"" ovpn "\"")))
8275 (for-each
8276 (lambda (file)
8277 (substitute* file
8278 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
8279 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
8280 (("\"/sbin/openvpn\"") pretty-ovpn)
8281 (("/sbin/modprobe") modprobe)))
8282 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
8283 #t)))))
8284 (native-inputs
8285 (list pkg-config intltool))
8286 (inputs
8287 (list gtk+
8288 kmod
8289 openvpn
8290 network-manager
8291 libnma
8292 libsecret))
8293 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8294 (synopsis "OpenVPN plug-in for NetworkManager")
8295 (description
8296 "This extension of NetworkManager allows it to take care of connections
8297 to virtual private networks (VPNs) via OpenVPN.")
8298 (license license:gpl2+)
8299 (properties `((upstream-name . "NetworkManager-openvpn")))))
8300
8301 (define-public network-manager-vpnc
8302 (package
8303 (name "network-manager-vpnc")
8304 (version "1.2.6")
8305 (source (origin
8306 (method url-fetch)
8307 (uri (string-append
8308 "mirror://gnome/sources/NetworkManager-vpnc/"
8309 (version-major+minor version)
8310 "/NetworkManager-vpnc-" version ".tar.xz"))
8311 (sha256
8312 (base32
8313 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
8314 (build-system gnu-build-system)
8315 (arguments
8316 `(#:configure-flags '("--enable-absolute-paths"
8317 "--localstatedir=/var"
8318 ;; libnm-glib has been removed from network-manager
8319 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
8320 "--with-libnm-glib=no")
8321 #:phases
8322 (modify-phases %standard-phases
8323 (add-after 'configure 'patch-path
8324 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8325 (let* ((vpnc (search-input-file inputs "/sbin/vpnc"))
8326 (modprobe (search-input-file inputs "/bin/modprobe"))
8327 (pretty-ovpn (string-append "\"" vpnc "\"")))
8328 (substitute* "src/nm-vpnc-service.c"
8329 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
8330 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
8331 (("\"/sbin/vpnc\"") pretty-ovpn)
8332 (("/sbin/modprobe") modprobe)))
8333 #t)))))
8334 (native-inputs
8335 (list pkg-config intltool))
8336 (inputs
8337 (list gtk+
8338 kmod
8339 vpnc
8340 network-manager
8341 libnma
8342 libsecret))
8343 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8344 (synopsis "VPNC plug-in for NetworkManager")
8345 (description
8346 "Support for configuring virtual private networks based on VPNC.
8347 Compatible with Cisco VPN concentrators configured to use IPsec.")
8348 (license license:gpl2+)
8349 (properties `((upstream-name . "NetworkManager-vpnc")))))
8350
8351 (define-public network-manager-openconnect
8352 (package
8353 (name "network-manager-openconnect")
8354 (version "1.2.6")
8355 (source (origin
8356 (method url-fetch)
8357 (uri (string-append
8358 "mirror://gnome/sources/NetworkManager-openconnect/"
8359 (version-major+minor version)
8360 "/NetworkManager-openconnect-" version ".tar.xz"))
8361 (sha256
8362 (base32
8363 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
8364 (build-system gnu-build-system)
8365 (arguments
8366 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
8367 #:phases
8368 (modify-phases %standard-phases
8369 (add-after 'configure 'patch-path
8370 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8371 (let* ((openconnect (search-input-file inputs
8372 "/sbin/openconnect"))
8373 (modprobe (search-input-file inputs "/bin/modprobe"))
8374 (pretty-ovpn (string-append "\"" openconnect "\"")))
8375 (substitute* "src/nm-openconnect-service.c"
8376 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
8377 (("/sbin/modprobe") modprobe)))
8378 #t)))))
8379 (native-inputs
8380 (list intltool libnma pkg-config))
8381 (inputs
8382 (list gcr
8383 gtk+
8384 kmod
8385 libsecret
8386 libxml2
8387 lz4
8388 network-manager
8389 openconnect))
8390 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8391 (synopsis "OpenConnect plug-in for NetworkManager")
8392 (description
8393 "This extension of NetworkManager allows it to take care of connections
8394 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
8395 Cisco's AnyConnect SSL VPN.")
8396 (license license:gpl2+)
8397 (properties `((upstream-name . "NetworkManager-openconnect")
8398
8399 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
8400 ;; file refers to account "nm-openconnect". Specify it here
8401 ;; so that 'network-manager-service-type' creates it.
8402 (user-accounts . ("nm-openconnect"))))))
8403
8404 (define-public mobile-broadband-provider-info
8405 (package
8406 (name "mobile-broadband-provider-info")
8407 (version "20190116")
8408 (source (origin
8409 (method url-fetch)
8410 (uri (string-append
8411 "mirror://gnome/sources/"
8412 "mobile-broadband-provider-info/" version "/"
8413 "mobile-broadband-provider-info-" version ".tar.xz"))
8414 (sha256
8415 (base32
8416 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
8417 (build-system gnu-build-system)
8418 (arguments
8419 `(#:tests? #f)) ; no tests
8420 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8421 (synopsis "Database of broadband connection configuration")
8422 (description "Database of broadband connection configuration.")
8423 (license license:public-domain)))
8424
8425 (define-public network-manager-applet
8426 (package
8427 (name "network-manager-applet")
8428 (version "1.28.0")
8429 (source (origin
8430 (method url-fetch)
8431 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
8432 (version-major+minor version) "/"
8433 "network-manager-applet-" version ".tar.xz"))
8434 (sha256
8435 (base32
8436 "17742kgmbj9w545zwnirgr0i40zl0xzp8jx7b8c1krp93mc4h0sw"))))
8437 (build-system meson-build-system)
8438 (arguments
8439 `(#:glib-or-gtk? #t
8440 #:configure-flags
8441 '("-Dappindicator=yes")))
8442 (native-inputs
8443 (list gettext-minimal
8444 `(,glib "bin") ; for glib-compile-resources, etc.
8445 gobject-introspection
8446 gtk-doc/stable
8447 pkg-config))
8448 (propagated-inputs
8449 ;; libnm-gtk.pc refers to all these.
8450 (list dbus-glib gtk+ network-manager
8451 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8452 libnma))
8453 (inputs
8454 (list gcr
8455 libappindicator
8456 libgudev
8457 libnotify
8458 libsecret
8459 libselinux
8460 jansson ; for team support
8461 modem-manager))
8462 (synopsis "Applet for managing network connections")
8463 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8464 (description
8465 "This package contains a systray applet for NetworkManager. It displays
8466 the available networks and allows users to easily switch between them.")
8467 (license license:gpl2+)))
8468
8469 (define-public libxml++
8470 (package
8471 (name "libxml++")
8472 (version "3.2.0")
8473 (source
8474 (origin
8475 (method git-fetch)
8476 (uri (git-reference
8477 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8478 (commit version)))
8479 (file-name (git-file-name name version))
8480 (sha256
8481 (base32 "0wjz591rjlgbah7dcq8i0yn0zw9d62b7g6r0pppx81ic0cx8n8ga"))))
8482 (build-system gnu-build-system)
8483 (arguments
8484 `(#:phases
8485 (modify-phases %standard-phases
8486 (add-after 'unpack 'fix-documentation
8487 (lambda* (#:key inputs #:allow-other-keys)
8488 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
8489 "/xml/dtd/docbook"))
8490 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
8491 "/xml/xsl/docbook-xsl-"
8492 ,(package-version docbook-xsl))))
8493 (substitute* '("examples/dom_xpath/example.xml"
8494 "docs/manual/libxml++_without_code.xml")
8495 (("http://.*/docbookx\\.dtd")
8496 (string-append xmldoc "/docbookx.dtd")))
8497 (setenv "SGML_CATALOG_FILES"
8498 (string-append xmldoc "/catalog.xml"))
8499 (substitute* "docs/manual/docbook-customisation.xsl"
8500 (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
8501 (string-append xsldoc "/html/chunk.xsl")))))))))
8502 (propagated-inputs
8503 ;; libxml++-3.0.pc refers to all these.
8504 (list glibmm-2.64 libxml2))
8505 (native-inputs
8506 (list autoconf
8507 automake
8508 doxygen
8509 docbook-xml
8510 docbook-xsl
8511 graphviz ; for dot
8512 libtool
8513 libxslt
8514 mm-common
8515 perl
8516 pkg-config))
8517 (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
8518 (synopsis "C++ bindings to the libxml2 XML parser library")
8519 (description
8520 "This package provides a C++ interface to the libxml2 XML parser
8521 library.")
8522 (license license:lgpl2.1+)))
8523
8524 ;; This is the last release providing the 2.6 API, hence the name.
8525 ;; This is needed by tascam-gtk
8526 (define-public libxml++-2
8527 (package
8528 (inherit libxml++)
8529 (name "libxml++")
8530 (version "2.40.1")
8531 (source
8532 (origin
8533 (method git-fetch)
8534 (uri (git-reference
8535 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8536 (commit version)))
8537 (file-name (git-file-name name version))
8538 (sha256
8539 (base32 "0gbfi4l88w828gmyc9br11l003ylyi4vigp5d1kfgsn0k4cig3y9"))))))
8540
8541 (define-public gdm
8542 (package
8543 (name "gdm")
8544 (version "42.0")
8545 (source (origin
8546 (method url-fetch)
8547 (uri (string-append "mirror://gnome/sources/" name "/"
8548 (version-major version) "/"
8549 name "-" version ".tar.xz"))
8550 (sha256
8551 (base32
8552 "0m9qmm3vm81jmqlc30a1fb79hsr4l4lpiw0zjxww3gipd6bsqa53"))
8553 (patches
8554 (search-patches
8555 "gdm-default-session.patch"
8556 "gdm-elogind-support.patch"
8557 "gdm-remove-hardcoded-xwayland-path.patch"
8558 "gdm-wayland-session-wrapper-from-env.patch"
8559 "gdm-pass-gdk-pixbuf-loader-env.patch"))))
8560 (build-system meson-build-system)
8561 (arguments
8562 (list
8563 #:glib-or-gtk? #t
8564 #:configure-flags
8565 #~(list
8566 "-Dplymouth=disabled"
8567 "-Dsystemd-journal=false"
8568
8569 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8570 ;; instead of having to replace it (i.e., stopping the mingetty
8571 ;; service for TTY 1 before starting GDM).
8572 "-Dinitial-vt=7"
8573
8574 ;; Use elogind instead of systemd.
8575 "-Dlogind-provider=elogind"
8576 "-Dsystemdsystemunitdir=no"
8577 "-Dsystemduserunitdir=no"
8578
8579 ;; Use '/etc/environment' for locale settings instead of the
8580 ;; systemd-specific '/etc/locale.conf'.
8581 "-Dlang-file=/etc/environment"
8582
8583 (string-append "-Dudev-dir=" #$output "/lib/udev")
8584
8585 "--localstatedir=/var"
8586 (string-append "-Ddefault-path="
8587 (string-join '("/run/setuid-programs"
8588 "/run/current-system/profile/bin"
8589 "/run/current-system/profile/sbin")
8590 ":"))
8591 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8592 ;; XDG_DATA_DIRS so that it finds its schemas.
8593 "--sbindir" (string-append #$output "/bin"))
8594 #:phases
8595 #~(modify-phases %standard-phases
8596 (add-after 'unpack 'patch-paths
8597 (lambda* (#:key inputs #:allow-other-keys)
8598 (substitute* "daemon/gdm-session.c"
8599 (("dbus-run-session")
8600 (search-input-file inputs "bin/dbus-run-session")))))
8601 (add-before 'configure 'pre-configure
8602 (lambda* (#:key inputs #:allow-other-keys)
8603 ;; We don't have <systemd/sd-daemon.h>.
8604 (substitute* '("common/gdm-log.c"
8605 "daemon/gdm-server.c"
8606 "daemon/gdm-session-worker.c"
8607 "daemon/gdm-session-worker-job.c")
8608 (("#include <systemd/sd-daemon\\.h>") ""))
8609 ;; Use elogind for sd-login.
8610 (substitute* '("common/gdm-common.c"
8611 "daemon/gdm-local-display-factory.c"
8612 "daemon/gdm-manager.c"
8613 "libgdm/gdm-user-switching.c")
8614 (("#include <systemd/sd-login\\.h>")
8615 "#include <elogind/sd-login.h>"))
8616 ;; Look for system-installed sessions in
8617 ;; /run/current-system/profile/share.
8618 (substitute* '("libgdm/gdm-sessions.c"
8619 "daemon/gdm-session.c"
8620 "daemon/gdm-display.c"
8621 "daemon/gdm-launch-environment.c")
8622 (("DATADIR \"/x")
8623 "\"/run/current-system/profile/share/x")
8624 (("DATADIR \"/wayland")
8625 "\"/run/current-system/profile/share/wayland")
8626 (("DATADIR \"/gnome")
8627 "\"/run/current-system/profile/share/gnome"))
8628 (let ((propagate '("GDM_CUSTOM_CONF"
8629 "GDM_DBUS_DAEMON"
8630 "GDM_X_SERVER"
8631 "GDM_X_SESSION"
8632 ;; XXX: Remove this once GNOME Shell is
8633 ;; a dependency of GDM.
8634 "XDG_DATA_DIRS")))
8635 (substitute* "daemon/gdm-session.c"
8636 (("set_up_session_environment \\(self\\);")
8637 (apply string-append
8638 "set_up_session_environment (self);\n"
8639 (map (lambda (name)
8640 (string-append
8641 "gdm_session_set_environment_variable "
8642 "(self, \"" name "\","
8643 "g_getenv (\"" name "\"));\n"))
8644 propagate)))))
8645 ;; Find the configuration file using an environment variable.
8646 (substitute* '("common/gdm-settings.c")
8647 (("GDM_CUSTOM_CONF")
8648 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8649 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8650 " : GDM_CUSTOM_CONF)")))
8651 ;; Use service-supplied path to X.
8652 (substitute* '("daemon/gdm-server.c")
8653 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8654 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8655 (substitute* '("daemon/gdm-wayland-session.c"
8656 "daemon/gdm-x-session.c")
8657 (("\"dbus-daemon\"")
8658 "g_getenv (\"GDM_DBUS_DAEMON\")")
8659 (("X_SERVER")
8660 "g_getenv (\"GDM_X_SERVER\")")
8661 (("GDMCONFDIR \"/Xsession\"")
8662 "g_getenv (\"GDM_X_SESSION\")"))
8663 ;; Use an absolute path for GNOME Session.
8664 (substitute* "daemon/gdm-launch-environment.c"
8665 (("\"gnome-session\"")
8666 (format #f "~s"
8667 (search-input-file inputs "bin/gnome-session"))))
8668 ;; Do not automatically select the placeholder session.
8669 (substitute* "daemon/gdm-session.c"
8670 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8671 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8672 "(g_strcmp0(search_dirs[i], \""
8673 #$output "/share/gdm/BuiltInSessions/"
8674 "\") == 0 && "
8675 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8676 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8677 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))))
8678 (add-before 'install 'install-logo
8679 (lambda* (#:key inputs #:allow-other-keys)
8680 (let ((icon (search-input-file inputs "share/icons/hicolor/\
8681 scalable/apps/guix-white-icon.svg"))
8682 (schema (string-append #$output "/share/glib-2.0/schemas/\
8683 org.gnome.login-screen.gschema.override")))
8684 (mkdir-p (dirname schema))
8685 (with-output-to-file schema
8686 (lambda ()
8687 (format #t "\
8688 [org.gnome.login-screen]
8689 logo='~a'~%" icon))))))
8690 ;; GDM requires that there be at least one desktop entry
8691 ;; file. This phase installs a hidden one that simply
8692 ;; fails. This enables users to use GDM with a
8693 ;; '~/.xsession' script with no other desktop entry files.
8694 ;; See <https://bugs.gnu.org/35068>.
8695 (add-after 'install 'install-placeholder-desktop-entry
8696 (lambda _
8697 (let* ((sessions (string-append #$output
8698 "/share/gdm/BuiltInSessions"))
8699 (fail (string-append sessions "/fail.desktop")))
8700 (mkdir-p sessions)
8701 (with-output-to-file fail
8702 (lambda ()
8703 (for-each
8704 display
8705 '("[Desktop Entry]\n"
8706 "Encoding=UTF-8\n"
8707 "Type=Application\n"
8708 "Name=Fail\n"
8709 "Comment=This session fails immediately.\n"
8710 "NoDisplay=true\n"
8711 "Exec=false\n")))))))
8712 ;; GDM needs GNOME Session to run these applications. We link
8713 ;; their autostart files in `share/gdm/greeter/autostart'
8714 ;; because GDM explicitly tells GNOME Session to look there.
8715 ;;
8716 ;; XXX: GNOME Shell should be linked here too, but currently
8717 ;; GNOME Shell depends on GDM.
8718 (add-after 'install 'link-autostart-files
8719 (lambda* (#:key inputs #:allow-other-keys)
8720 (let ((autostart (string-append #$output "/share/gdm/"
8721 "greeter/autostart"))
8722 (settings #$(this-package-input "gnome-settings-daemon")))
8723 (mkdir-p autostart)
8724 (with-directory-excursion autostart
8725 (for-each (lambda (desktop)
8726 (symlink desktop (basename desktop)))
8727 (find-files
8728 (string-append settings "/etc/xdg"))))))))))
8729 (native-inputs
8730 (list `(,glib "bin") ;for glib-compile-schemas, etc.
8731 dconf
8732 gobject-introspection
8733 guix-icons
8734 intltool
8735 itstool
8736 libxml2
8737 pkg-config))
8738 (inputs
8739 (list accountsservice
8740 check ;for testing
8741 dbus
8742 elogind
8743 eudev
8744 gnome-session
8745 gnome-settings-daemon
8746 gtk+
8747 iso-codes
8748 libcanberra
8749 libgudev
8750 linux-pam))
8751 (synopsis "Display manager for GNOME")
8752 (home-page "https://wiki.gnome.org/Projects/GDM/")
8753 (description
8754 "GNOME Display Manager is a system service that is responsible for
8755 providing graphical log-ins and managing local and remote displays.")
8756 (license license:gpl2+)))
8757
8758 (define-public libgtop
8759 (package
8760 (name "libgtop")
8761 (version "2.40.0")
8762 (source (origin
8763 (method url-fetch)
8764 (uri (string-append "mirror://gnome/sources/libgtop/"
8765 (version-major+minor version) "/"
8766 "libgtop-" version ".tar.xz"))
8767 (sha256
8768 (base32
8769 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8770 (build-system gnu-build-system)
8771 (native-inputs
8772 (list gobject-introspection intltool perl pkg-config))
8773 (propagated-inputs
8774 (list glib)) ; required by libgtop-2.0.pc
8775 (synopsis "Portable system access library")
8776 (home-page "https://www.gnome.org/")
8777 (description
8778 "LibGTop is a library to get system specific data such as CPU and memory
8779 usage and information about running processes.")
8780 (license license:gpl2+)))
8781
8782 (define-public gnome-bluetooth
8783 (package
8784 (name "gnome-bluetooth")
8785 (version "42.4")
8786 (source (origin
8787 (method url-fetch)
8788 (uri (string-append "mirror://gnome/sources/gnome-bluetooth/"
8789 (version-major+minor version) "/"
8790 "gnome-bluetooth-" version ".tar.xz"))
8791 (sha256
8792 (base32
8793 "1p5wq3rh9p7fhka57qcds6lvphd26yyc18ilncx95jbcvcfcyvqx"))))
8794 (build-system meson-build-system)
8795 (native-inputs
8796 (list gettext-minimal
8797 gobject-introspection
8798 `(,glib "bin") ;for gdbus-codegen, etc.
8799 libxml2
8800 pkg-config
8801 python
8802 python-dbus))
8803 (propagated-inputs
8804 ;; These are all required by the gnome-bluetooth .pc file.
8805 (list glib
8806 gtk
8807 libadwaita))
8808 (inputs
8809 (list eudev
8810 gsound
8811 libnotify
8812 ;; TODO: Delete pango-next after it's the default.
8813 pango-next
8814 python-dbus
8815 upower))
8816 (synopsis "GNOME Bluetooth subsystem")
8817 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8818 (description
8819 "This package contains tools for managing and manipulating Bluetooth
8820 devices using the GNOME desktop.")
8821 (license license:lgpl2.1+)))
8822
8823 (define-public gnome-control-center
8824 (package
8825 (name "gnome-control-center")
8826 (version "42.3")
8827 (source (origin
8828 (method url-fetch)
8829 (uri (string-append "mirror://gnome/sources/" name "/"
8830 (version-major version) "/"
8831 name "-" version ".tar.xz"))
8832 (sha256
8833 (base32
8834 "0zhw6hcrrcpq1zjkyzr5ipznxnzd2aczrqd7n2y7xbz21mjy62nf"))))
8835 (build-system meson-build-system)
8836 (arguments
8837 (list
8838 #:glib-or-gtk? #t
8839 #:phases
8840 #~(modify-phases %standard-phases
8841 (add-before 'configure 'patch-paths
8842 (lambda* (#:key inputs #:allow-other-keys)
8843 (substitute* "panels/datetime/tz.h"
8844 (("/usr/share/zoneinfo/zone.tab")
8845 (search-input-file inputs "share/zoneinfo/zone.tab")))
8846 (substitute* "tests/datetime/test-endianess.c"
8847 (("/usr/share/locale")
8848 (search-input-directory inputs "share/locale")))
8849 (substitute* "panels/region/cc-region-panel.c"
8850 (("\"gkbd-keyboard-display")
8851 (string-append "\"" (search-input-file
8852 inputs "bin/gkbd-keyboard-display"))))
8853 (substitute* '("panels/network/net-device-bluetooth.c"
8854 "panels/network/net-device-mobile.c"
8855 "panels/network/connection-editor/net-connection-editor.c")
8856 (("\"nm-connection-editor")
8857 (string-append "\"" (search-input-file
8858 inputs "bin/nm-connection-editor"))))
8859 (substitute* "panels/user-accounts/run-passwd.c"
8860 (("/usr/bin/passwd")
8861 "/run/setuid-programs/passwd"))
8862 (substitute* "panels/info-overview/cc-info-overview-panel.c"
8863 (("DATADIR \"/gnome/gnome-version.xml\"")
8864 (format #f "~s" (search-input-file
8865 inputs "share/gnome/gnome-version.xml"))))))
8866 (add-after 'unpack 'skip-gtk-update-icon-cache
8867 ;; Don't create 'icon-theme.cache'.
8868 (lambda _
8869 (substitute* "build-aux/meson/meson_post_install.py"
8870 (("gtk-update-icon-cache") (which "true"))))))))
8871 (native-inputs
8872 (list docbook-xsl
8873 gettext-minimal
8874 `(,glib "bin") ;for glib-mkenums, etc.
8875 libxslt
8876 pkg-config
8877 python
8878 python-dbusmock
8879 xorg-server-for-tests))
8880 (inputs
8881 (list accountsservice
8882 colord-gtk
8883 cups
8884 dconf
8885 gcr
8886 gnome-bluetooth
8887 gnome-desktop
8888 gnome-online-accounts
8889 gnome-session
8890 gnome-settings-daemon
8891 gnutls
8892 grilo
8893 gsound
8894 ibus
8895 libadwaita
8896 libgnomekbd
8897 libgudev
8898 libgtop
8899 libnma
8900 libpwquality
8901 librsvg ;for loading SVG files
8902 libsecret
8903 libxml2
8904 libwacom
8905 mesa
8906 mit-krb5
8907 modem-manager
8908 network-manager-applet
8909 polkit
8910 pulseaudio
8911 samba
8912 tzdata
8913 udisks
8914 upower))
8915 (synopsis "Utilities to configure the GNOME desktop")
8916 (home-page "https://www.gnome.org/")
8917 (description
8918 "This package contains configuration applets for the GNOME desktop,
8919 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8920 properties, sound setup, desktop theme and background, user interface
8921 properties, screen resolution, and other GNOME parameters.")
8922 (license license:gpl2+)))
8923
8924 (define-public gnome-shell
8925 (package
8926 (name "gnome-shell")
8927 (version "42.4")
8928 (source (origin
8929 (method url-fetch)
8930 (uri (string-append "mirror://gnome/sources/" name "/"
8931 (version-major version) "/"
8932 name "-" version ".tar.xz"))
8933 (sha256
8934 (base32
8935 "0kn5fclciybp2fs38wd39hdz85y91pas0ckfa02pmyx91sbz4pw7"))))
8936 (build-system meson-build-system)
8937 (arguments
8938 (let ((disallowed-references
8939 (list (gexp-input glib "bin")
8940 (gexp-input libxslt)
8941 (gexp-input meson)
8942 (gexp-input ruby-sass))))
8943 (list
8944 #:glib-or-gtk? #t
8945 #:disallowed-references disallowed-references
8946 #:configure-flags
8947 #~(list "-Dsystemd=false"
8948 ;; Otherwise, the RUNPATH will lack the final path component.
8949 (string-append "-Dc_link_args=-Wl,-rpath="
8950 #$output "/lib/gnome-shell"))
8951 #:modules '((guix build meson-build-system)
8952 (guix build utils)
8953 (ice-9 match)
8954 (srfi srfi-1)
8955 (srfi srfi-26))
8956 #:phases
8957 #~(modify-phases %standard-phases
8958 (add-after 'unpack 'fix-keysdir
8959 (lambda _
8960 (let ((keysdir
8961 (string-append #$output
8962 "/share/gnome-control-center/keybindings")))
8963 (substitute* "meson.build"
8964 (("keysdir =.*")
8965 (string-append "keysdir = '" keysdir "'\n"))))))
8966 (add-after 'unpack 'skip-gtk-update-icon-cache
8967 ;; Don't create 'icon-theme.cache'.
8968 (lambda _
8969 (substitute* "meson.build"
8970 (("gtk_update_icon_cache: true")
8971 "gtk_update_icon_cache: false"))))
8972 (add-before 'configure 'record-absolute-file-names
8973 (lambda* (#:key inputs #:allow-other-keys)
8974 (let ((ibus-daemon (search-input-file inputs "bin/ibus-daemon"))
8975 (gkbd-keyboard-display
8976 (search-input-file inputs "bin/gkbd-keyboard-display")))
8977 (substitute* "js/misc/ibusManager.js"
8978 (("'ibus-daemon'")
8979 (string-append "'" ibus-daemon "'")))
8980 (substitute* "js/ui/status/keyboard.js"
8981 (("'gkbd-keyboard-display'")
8982 (string-append "'" gkbd-keyboard-display "'"))))))
8983 (add-before 'check 'pre-check
8984 (lambda* (#:key inputs #:allow-other-keys)
8985 ;; Tests require a running X server.
8986 (system "Xvfb :1 &")
8987 (setenv "DISPLAY" ":1")
8988 (setenv "HOME" "/tmp"))) ;to avoid "fatal" warnings
8989 (add-after 'install 'wrap-programs
8990 (lambda* (#:key inputs #:allow-other-keys)
8991 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8992 (python-path
8993 (string-join
8994 (filter (lambda (item)
8995 (not (any (cut string-prefix? <> item)
8996 '#$disallowed-references)))
8997 (string-split (getenv "GUIX_PYTHONPATH") #\:))
8998 ":")))
8999 (for-each
9000 (lambda (prog)
9001 (wrap-program (string-append #$output "/bin/" prog)
9002 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9003 '("gnome-shell" "gnome-extensions-app"))
9004 (substitute* (string-append #$output "/share/gnome-shell/"
9005 "org.gnome.Shell.Extensions")
9006 (("imports\\.package\\.start" all)
9007 (string-append "'" gi-typelib-path "'.split(':').forEach("
9008 "path => imports.gi.GIRepository.Repository."
9009 "prepend_search_path(path));\n"
9010 all)))
9011 (for-each
9012 (lambda (prog)
9013 (wrap-program (string-append #$output "/bin/" prog)
9014 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
9015 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9016 '("gnome-shell-perf-tool")))))
9017 (add-after 'install 'rewire
9018 (lambda* (#:key inputs #:allow-other-keys)
9019 (for-each
9020 (lambda (tool)
9021 (call-with-output-file (string-append #$output
9022 "/bin/" tool)
9023 (lambda (port)
9024 (format port "#!~a
9025 printf '~a is deprecated. Use the \"gnome-extensions\" CLI or \
9026 \"gnome-extensions-app\" instead.\\n'"
9027 (search-input-file inputs "bin/bash")
9028 tool))))
9029 '("gnome-shell-extension-tool" "gnome-shell-extension-prefs"))))
9030 (replace 'glib-or-gtk-wrap
9031 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
9032 (lambda* (#:key inputs outputs #:allow-other-keys)
9033 ;; By default glib:bin et al. would end up in the XDG_DATA_DIRS
9034 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
9035 ;; phase. Fix that since we don't need these.
9036 (wrap #:inputs
9037 (filter (match-lambda
9038 ((label . output)
9039 (not (member output
9040 '#$disallowed-references))))
9041 inputs)
9042 #:outputs outputs))))))))
9043 (native-inputs
9044 (list asciidoc
9045 gettext-minimal
9046 `(,glib "bin") ;for glib-compile-schemas, etc.
9047 desktop-file-utils ;for update-desktop-database
9048 gobject-introspection
9049 hicolor-icon-theme
9050 libxslt
9051 perl
9052 pkg-config
9053 python
9054 ruby-sass
9055 sassc
9056 ;; For tests
9057 xorg-server-for-tests))
9058 (inputs
9059 (list accountsservice
9060 caribou
9061 docbook-xsl
9062 evolution-data-server
9063 gcr
9064 gdm
9065 librsvg
9066 gjs
9067 gtk
9068 gnome-autoar
9069 gnome-bluetooth
9070 gnome-desktop
9071 gnome-settings-daemon
9072 graphene
9073 gst-plugins-base
9074 ibus
9075 libcanberra
9076 libcroco
9077 libgnomekbd ;for gkbd-keyboard-display
9078 libgweather4
9079 libnma
9080 libsoup
9081 mesa-headers
9082 mutter
9083 network-manager-applet
9084 polkit
9085 pulseaudio
9086 python-pygobject
9087 startup-notification
9088 telepathy-logger
9089 upower
9090 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
9091 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
9092 librsvg
9093 geoclue))
9094 (synopsis "Desktop shell for GNOME")
9095 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
9096 (description
9097 "GNOME Shell provides core user interface functions for the GNOME desktop,
9098 like switching to windows and launching applications.")
9099 (license license:gpl2+)))
9100
9101 (define-public gtk-vnc
9102 (package
9103 (name "gtk-vnc")
9104 (version "1.2.0")
9105 (source
9106 (origin
9107 (method url-fetch)
9108 (uri
9109 (string-append "mirror://gnome/sources/" name "/"
9110 (version-major+minor version) "/"
9111 name "-" version ".tar.xz"))
9112 (sha256
9113 (base32 "0jmr6igyzcj2wmx5v5ywaazvdz3hx6a6rys26yb4l4s71l281bvs"))))
9114 (build-system meson-build-system)
9115 (arguments
9116 `(#:meson ,meson-0.60
9117 #:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
9118 (native-inputs
9119 (append
9120 ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
9121 ;; dependency on other platforms (FIXME).
9122 (if (target-x86-64?)
9123 (list gjs)
9124 '())
9125 (list gettext-minimal
9126 `(,glib "bin")
9127 gobject-introspection
9128 node
9129 perl
9130 pkg-config
9131 python-wrapper
9132 vala)))
9133 (inputs
9134 (list cairo (librsvg-for-system)))
9135 (propagated-inputs
9136 ;; These are all in Requires or Requires.private of the .pc files.
9137 (list cyrus-sasl
9138 gdk-pixbuf
9139 glib
9140 gnutls
9141 gtk+
9142 libgcrypt
9143 libx11
9144 pulseaudio
9145 zlib))
9146 (synopsis "VNC client viewer widget for GTK+")
9147 (description "GTK-VNC is a project providing client side APIs for the RFB
9148 protocol / VNC remote desktop technology. It is built using coroutines allowing
9149 it to be completely asynchronous while remaining single threaded. It provides a
9150 core C library, and bindings for Python (PyGTK).")
9151 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
9152 (license license:lgpl2.1+)))
9153
9154 (define-public gnome-autoar
9155 (package
9156 (name "gnome-autoar")
9157 (version "0.4.3")
9158 (source (origin
9159 (method url-fetch)
9160 (uri (string-append "mirror://gnome/sources/" name "/"
9161 (version-major+minor version) "/"
9162 name "-" version ".tar.xz"))
9163 (sha256
9164 (base32
9165 "124y4j3wgb6axgfzw9f00865r033fg7b0qy9qgfsp5ilan4hgpvv"))))
9166 (build-system meson-build-system)
9167 (native-inputs
9168 (list gobject-introspection `(,glib "bin") pkg-config))
9169 (propagated-inputs
9170 (list libarchive)) ; Required by gnome-autoar-0.pc
9171 (inputs
9172 (list gtk+))
9173 (synopsis "Archives integration support for GNOME")
9174 (home-page "https://git.gnome.org/browse/gnome-autoar/")
9175 (description
9176 "GNOME Autoar is a library which makes creating and extracting archives
9177 easy, safe, and automatic.")
9178 (license license:lgpl2.1+)))
9179
9180 (define-public tracker
9181 (package
9182 (name "tracker")
9183 (version "3.3.3")
9184 (source (origin
9185 (method url-fetch)
9186 (uri (string-append "mirror://gnome/sources/tracker/"
9187 (version-major+minor version) "/"
9188 "tracker-" version ".tar.xz"))
9189 (sha256
9190 (base32
9191 "0r144kdqxdzs51qn495vablzf1zxkhkk6imrlrzj9wiqwc2gg520"))))
9192 (build-system meson-build-system)
9193 (arguments
9194 `(#:glib-or-gtk? #t
9195 #:configure-flags
9196 ;; Otherwise, the RUNPATH will lack the final path component.
9197 (list (string-append "-Dc_link_args=-Wl,-rpath="
9198 (assoc-ref %outputs "out") "/lib:"
9199 (assoc-ref %outputs "out") "/lib/tracker-3.0")
9200 "-Ddocs=false"
9201 "-Dsystemd_user_services=false")
9202 #:phases
9203 (modify-phases %standard-phases
9204 (add-before 'configure 'set-shell
9205 (lambda _
9206 (setenv "SHELL" (which "bash"))))
9207 (add-before 'configure 'fix-paths
9208 (lambda* (#:key inputs #:allow-other-keys)
9209 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9210 (file (search-input-file inputs manpage)))
9211 (substitute* "docs/manpages/meson.build"
9212 (("/etc/asciidoc[^']+")
9213 file)))))
9214 (replace 'check
9215 (lambda* (#:key tests? #:allow-other-keys)
9216 (when tests?
9217 ;; Some tests expect to write to $HOME.
9218 (setenv "HOME" "/tmp")
9219 (invoke "dbus-run-session" "--" "meson" "test"
9220 "--print-errorlogs")))))))
9221 (native-inputs
9222 (list gettext-minimal
9223 `(,glib "bin")
9224 gobject-introspection
9225 docbook-xsl
9226 docbook-xml
9227 gsettings-desktop-schemas
9228 asciidoc
9229 libxslt
9230 cmake-minimal
9231 python-pygobject
9232 gtk-doc/stable
9233 dbus
9234 pkg-config
9235 python
9236 vala))
9237 (inputs
9238 (list dbus
9239 libsoup))
9240 (propagated-inputs
9241 ;; These are in Requires or Requires.private of tracker-sparql-3.0.pc.
9242 (list glib
9243 icu4c ;libunistring gets miner-miner-fs test to fail
9244 json-glib
9245 libxml2
9246 sqlite))
9247 (synopsis "Metadata database, indexer and search tool")
9248 (home-page "https://wiki.gnome.org/Projects/Tracker")
9249 (description
9250 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
9251
9252 It is a middleware component aimed at desktop application developers who want
9253 their apps to browse and search user content. It's not designed to be used
9254 directly by desktop users, but it provides a commandline tool named
9255 @command{tracker} for the adventurous.
9256
9257 Tracker allows your application to instantly perform full-text searches across
9258 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
9259 example. This is achieved by indexing the user's home directory in the
9260 background.
9261
9262 Tracker also allows your application to query and list content that the user
9263 has stored. For example, GNOME Music displays all the music files that are
9264 found by Tracker. This means that GNOME Music doesn't need to maintain a
9265 database of its own.
9266
9267 If you need to go beyond simple searches, Tracker is also a linked data
9268 endpoint and it understands SPARQL.")
9269 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
9270 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9271 ;; libstemmer is bsd-3 and the rest is gpl2+.
9272 (license (list license:gpl2+
9273 license:bsd-3
9274 license:lgpl2.1+))))
9275
9276 (define-public tracker-miners
9277 (package
9278 (name "tracker-miners")
9279 (version "3.3.1")
9280 (source (origin
9281 (method url-fetch)
9282 (uri (string-append "mirror://gnome/sources/tracker-miners/"
9283 (version-major+minor version)
9284 "/tracker-miners-" version ".tar.xz"))
9285 (sha256
9286 (base32
9287 "151w6ljq1gk9idqfq9qs3w16vms91jnxy59c9kx6jaf0fb9cdp9y"))))
9288 (build-system meson-build-system)
9289 (arguments
9290 `(#:glib-or-gtk? #t
9291 #:configure-flags
9292 (list "-Dminer_rss=false" ; libgrss is required.
9293 ;; Ensure the RUNPATH contains all installed library locations.
9294 (string-append "-Dc_link_args=-Wl,-rpath="
9295 (assoc-ref %outputs "out")
9296 "/lib/tracker-miners-3.0")
9297 ;; TODO: Enable functional tests. Currently, the following error
9298 ;; appears:
9299 ;; Exception: The functional tests require DConf to be the default
9300 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
9301 "-Dfunctional_tests=false"
9302 "-Dsystemd_user_services=false")
9303 #:phases
9304 (modify-phases %standard-phases
9305 (add-before 'configure 'set-shell
9306 (lambda _
9307 (setenv "SHELL" (which "bash"))))
9308 (add-before 'configure 'fix-paths
9309 (lambda* (#:key inputs #:allow-other-keys)
9310 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9311 (file (search-input-file inputs manpage)))
9312 (substitute* "docs/manpages/meson.build"
9313 (("/etc/asciidoc[^']+")
9314 file)))))
9315 (add-before 'configure 'fix-tests
9316 (lambda* (#:key inputs #:allow-other-keys)
9317 ;; Disable those tests that require the functional_tests option
9318 ;; to be true and the UPower daemon to be started.
9319 (substitute* "examples/python/meson.build"
9320 (("foreach example_name:.*")
9321 "foreach example_name: []"))
9322 ;; Disable this test that is failing randomly:
9323 ;; https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/170.
9324 (substitute* "tests/libtracker-miner/meson.build"
9325 (("'miner-fs'.*")
9326 ""))))
9327 (replace 'check
9328 (lambda* (#:key tests? #:allow-other-keys)
9329 (when tests?
9330 ;; Some tests expect to write to $HOME.
9331 (setenv "HOME" "/tmp")
9332 (setenv "LANG" "en_US.UTF-8")
9333 (invoke "dbus-run-session" "--" "meson" "test"
9334 "--print-errorlogs"
9335 ;; Do not run the slow test, which fail (see:
9336 ;; https://gitlab.gnome.org/GNOME/tracker-miners
9337 ;; /-/issues/226).
9338 "--no-suite" "slow")))))))
9339 (native-inputs
9340 (list dbus
9341 intltool
9342 `(,glib "bin")
9343 docbook-xsl
9344 docbook-xml
9345 gsettings-desktop-schemas
9346 asciidoc
9347 libxslt
9348 gobject-introspection
9349 pkg-config
9350 python-pygobject))
9351 (inputs
9352 (list exempi
9353 ffmpeg
9354 flac
9355 giflib
9356 glib
9357 gstreamer
9358 icu4c
9359 json-glib
9360 libcue
9361 libexif
9362 libgsf
9363 libgxps
9364 libiptcdata
9365 libjpeg-turbo
9366 libosinfo
9367 libpng
9368 libseccomp
9369 libsoup
9370 libtiff
9371 libvorbis
9372 libxml2
9373 poppler
9374 shared-mime-info
9375 taglib
9376 totem-pl-parser
9377 tracker
9378 upower
9379 zlib))
9380 (synopsis "Metadata database, indexer and search tool")
9381 (home-page "https://wiki.gnome.org/Projects/Tracker")
9382 (description
9383 "Tracker is an advanced framework for first class objects with associated
9384 metadata and tags. It provides a one stop solution for all metadata, tags,
9385 shared object databases, search tools and indexing.")
9386 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9387 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
9388 (license (list license:gpl2+
9389 license:lgpl2.1+
9390 license:lgpl2.0+))))
9391
9392 (define-public nautilus
9393 (package
9394 (name "nautilus")
9395 (version "41.1")
9396 (source (origin
9397 (method url-fetch)
9398 (uri (string-append "mirror://gnome/sources/" name "/"
9399 (version-major version) "/"
9400 name "-" version ".tar.xz"))
9401 (sha256
9402 (base32
9403 "0bsqh241m43x3qb3z0mjakjic610ncl95zhjdgls649phnc30qry"))
9404 (patches
9405 ;; This patch is already upstream and can be removed next
9406 ;; release.
9407 (search-patches "nautilus-add-libportal-gtk3.patch"))))
9408 (build-system meson-build-system)
9409 (arguments
9410 `(#:glib-or-gtk? #t
9411 #:phases
9412 (modify-phases %standard-phases
9413 (add-after 'unpack 'make-extensible
9414 (lambda _
9415 (substitute* "src/nautilus-module.c"
9416 (("static gboolean initialized = FALSE;" all)
9417 (string-append all "
9418 const char *extension_path;
9419 char **extension_dirs, **d;
9420 ")
9421 )
9422 (("load_module_dir \\(NAUTILUS_EXTENSIONDIR\\);" all)
9423 (string-append all
9424 "
9425 extension_path = g_getenv (\"NAUTILUS_EXTENSION_PATH\");
9426 if (extension_path)
9427 {
9428 extension_dirs = g_strsplit (extension_path, \":\", -1);
9429 for (d = extension_dirs; d != NULL && *d != NULL; d++)
9430 load_module_dir(*d);
9431 g_strfreev(extension_dirs);
9432 }
9433 ")))))
9434 (add-after 'unpack 'skip-gtk-update-icon-cache
9435 ;; Don't create 'icon-theme.cache'.
9436 (lambda _
9437 (substitute* "build-aux/meson/postinstall.py"
9438 (("gtk-update-icon-cache") "true")))))
9439 ;; XXX: FAIL: check-nautilus
9440 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
9441 #:tests? #f))
9442 (native-inputs
9443 (list desktop-file-utils ; for update-desktop-database
9444 `(,glib "bin") ; for glib-mkenums, etc.
9445 gobject-introspection
9446 intltool
9447 pkg-config
9448 python))
9449 (inputs
9450 (list dconf
9451 gexiv2
9452 gvfs
9453 exempi
9454 gnome-desktop
9455 gnome-autoar
9456 gst-plugins-base
9457 json-glib
9458 libhandy
9459 libportal
9460 libseccomp
9461 libselinux
9462 libsoup-minimal-2 ; to satisfy tracker dependencies
9463 tracker
9464 tracker-miners
9465 ;; XXX: gtk+ is required by libnautilus-extension.pc
9466 ;;
9467 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
9468 ;; package. See:
9469 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
9470 gtk+
9471 libexif
9472 libxml2))
9473 (native-search-paths
9474 (list (search-path-specification
9475 (variable "NAUTILUS_EXTENSION_PATH")
9476 (files '("lib/nautilus/site-extensions")))))
9477 (synopsis "File manager for GNOME")
9478 (home-page "https://wiki.gnome.org/Apps/Nautilus")
9479 (description
9480 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
9481 design and behaviour, giving the user a simple way to navigate and manage its
9482 files.")
9483 (license license:gpl2+)))
9484
9485 (define-public baobab
9486 (package
9487 (name "baobab")
9488 (version "42.0")
9489 (source (origin
9490 (method url-fetch)
9491 (uri (string-append
9492 "mirror://gnome/sources/" name "/"
9493 (version-major version) "/"
9494 name "-" version ".tar.xz"))
9495 (sha256
9496 (base32
9497 "1p2hg8qxbvdfax9z4qjhdsxia93zrsdq58krx8zjnn5ipbkan6jb"))))
9498 (build-system meson-build-system)
9499 (arguments
9500 '(#:glib-or-gtk? #t))
9501 (native-inputs
9502 (list desktop-file-utils ;for update-desktop-database
9503 gettext-minimal
9504 `(,glib "bin")
9505 `(,gtk+ "bin") ;for gtk-update-icon-cache
9506 itstool
9507 libxml2
9508 pkg-config
9509 python
9510 vala))
9511 (inputs
9512 (list gtk libadwaita libhandy
9513 ;; XXX: Ensure pango-next is used instead of the equally propagated
9514 ;; 'pango'.
9515 pango-next))
9516 (synopsis "Disk usage analyzer for GNOME")
9517 (description
9518 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
9519 usage in the GNOME desktop environment. It can easily scan device volumes or
9520 a specific user-requested directory branch (local or remote). Once the scan
9521 is complete it provides a graphical representation of each selected folder.")
9522 (home-page "https://wiki.gnome.org/Apps/Baobab")
9523 (license license:gpl2+)))
9524
9525 (define-public gnome-backgrounds
9526 (package
9527 (name "gnome-backgrounds")
9528 (version "41.0")
9529 (source
9530 (origin
9531 (method url-fetch)
9532 (uri (string-append "mirror://gnome/sources/" name "/"
9533 (version-major version) "/"
9534 name "-" version ".tar.xz"))
9535 (sha256
9536 (base32
9537 "0i9id5z72dqddh94648zylyf41amqq5lhny8sbyg1v8v4q6sr88x"))))
9538 (build-system meson-build-system)
9539 (native-inputs (list gettext-minimal))
9540 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
9541 (synopsis "Background images for the GNOME desktop")
9542 (description
9543 "GNOME backgrounds package contains a collection of graphics files which
9544 can be used as backgrounds in the GNOME Desktop environment. Additionally,
9545 the package creates the proper framework and directory structure so that you
9546 can add your own files to the collection.")
9547 (license (list license:gpl2+
9548 license:cc-by2.0
9549 license:cc-by-sa2.0
9550 license:cc-by-sa3.0))))
9551
9552 (define-public gnome-screenshot
9553 (package
9554 (name "gnome-screenshot")
9555 (version "41.0")
9556 (source
9557 (origin
9558 (method url-fetch)
9559 (uri (string-append "mirror://gnome/sources/" name "/"
9560 (version-major version) "/"
9561 name "-" version ".tar.xz"))
9562 (sha256
9563 (base32
9564 "15wmikwk62cdi93gas77nqh4fbhlrxrncyfmcd1gfa34jbn7vnsa"))
9565 (patches
9566 (search-patches "gnome-screenshot-meson-0.60.patch"))))
9567 (build-system meson-build-system)
9568 (arguments
9569 '(#:glib-or-gtk? #t
9570 #:phases
9571 (modify-phases %standard-phases
9572 (add-after 'unpack 'skip-gtk-update-icon-cache
9573 ;; Don't create 'icon-theme.cache'.
9574 (lambda _
9575 (substitute* "build-aux/postinstall.py"
9576 (("gtk-update-icon-cache") "true")))))))
9577 (native-inputs
9578 (list appstream-glib
9579 desktop-file-utils ; for update-desktop-database
9580 gettext-minimal
9581 `(,glib "bin") ; for glib-compile-schemas, etc.
9582 pkg-config
9583 python))
9584 (inputs
9585 (list gtk+
9586 libhandy
9587 libx11
9588 libxext))
9589 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
9590 (synopsis "Take pictures of your screen")
9591 (description
9592 "GNOME Screenshot is a utility used for taking screenshots of the entire
9593 screen, a window or a user defined area of the screen, with optional
9594 beautifying border effects.")
9595 (license license:gpl2+)))
9596
9597 (define-public dconf-editor
9598 (package
9599 (name "dconf-editor")
9600 (version "3.38.3")
9601 (source
9602 (origin
9603 (method url-fetch)
9604 (uri (string-append "mirror://gnome/sources/" name "/"
9605 (version-major+minor version) "/"
9606 name "-" version ".tar.xz"))
9607 (sha256
9608 (base32
9609 "1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp"))))
9610 (build-system meson-build-system)
9611 (native-inputs
9612 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9613 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9614 ("intltool" ,intltool)
9615 ("pkg-config" ,pkg-config)
9616 ("vala" ,vala)))
9617 (inputs
9618 (list dconf gtk+ libxml2))
9619 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9620 (synopsis "Graphical editor for GNOME's dconf configuration system")
9621 (description
9622 "Dconf-editor is a graphical tool for browsing and editing the dconf
9623 configuration system for GNOME. It allows users to configure desktop
9624 software that do not provide their own configuration interface.")
9625 (license license:lgpl2.1+)))
9626
9627 (define-public gnome-default-applications
9628 (package
9629 (name "gnome-default-applications")
9630 (version "0")
9631 (build-system trivial-build-system)
9632 (source #f)
9633 (propagated-inputs
9634 (list nautilus evince))
9635 (arguments
9636 `(#:modules ((guix build utils))
9637 #:builder
9638 (begin
9639 (use-modules (guix build utils))
9640 (let* ((out (assoc-ref %outputs "out"))
9641 (apps (string-append out "/share/applications")))
9642 (mkdir-p apps)
9643 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9644 (lambda (port)
9645 (format port "[Default Applications]\n")
9646 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9647 (format port "application/pdf=evince.desktop\n")
9648 (format port "application/postscript=evince.desktop\n")))
9649 #t))))
9650 (synopsis "Default MIME type associations for the GNOME desktop")
9651 (description
9652 "Given many installed packages which might handle a given MIME type, a
9653 user running the GNOME desktop probably has some preferences: for example,
9654 that folders be opened by default by the Nautilus file manager, not the Baobab
9655 disk usage analyzer. This package establishes that set of default MIME type
9656 associations for GNOME.")
9657 (license license:gpl3+)
9658 (home-page #f)))
9659
9660 (define-public libgovirt
9661 (package
9662 (name "libgovirt")
9663 (version "0.3.8")
9664 (source (origin
9665 (method url-fetch)
9666 (uri (string-append "mirror://gnome/sources/" name "/"
9667 (version-major+minor version) "/"
9668 name "-" version ".tar.xz"))
9669 (sha256
9670 (base32
9671 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9672 (build-system glib-or-gtk-build-system)
9673 (native-inputs
9674 (list gettext-minimal
9675 `(,glib "bin")
9676 gobject-introspection
9677 gsettings-desktop-schemas
9678 `(,gtk+ "bin")
9679 pkg-config))
9680 (inputs
9681 (list glib-networking ; GIO plugin--for the tests
9682 rest))
9683 (synopsis "GoVirt Library")
9684 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9685 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9686 (license license:gpl2+)))
9687
9688 (define-public gnome-weather
9689 (package
9690 (name "gnome-weather")
9691 (version "42.0")
9692 (source (origin
9693 (method url-fetch)
9694 (uri (string-append "mirror://gnome/sources/" name "/"
9695 (version-major version) "/"
9696 name "-" version ".tar.xz"))
9697 (sha256
9698 (base32
9699 "0rdl0ywdk8jlq819wr1sbdzdvsasz11pp30fylzvprakv28yd7jp"))))
9700 (build-system meson-build-system)
9701 (arguments
9702 (list
9703 #:glib-or-gtk? #t
9704 #:phases
9705 #~(modify-phases %standard-phases
9706 (add-after 'unpack 'fix-service-file
9707 (lambda _
9708 (substitute* "data/org.gnome.Weather.service.in"
9709 (("Exec=[[:graph:]]+")
9710 (string-append "Exec=" #$output
9711 "/bin/gnome-weather")))))
9712 (add-after 'unpack 'disable-gtk-update-icon-cache
9713 (lambda _
9714 (setenv "DESTDIR" "/")))
9715 (add-after 'install 'fix-desktop-file
9716 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some
9717 ;; reason. See https://issues.guix.gnu.org/issue/39324.
9718 (lambda* (#:key outputs #:allow-other-keys)
9719 (substitute* (search-input-file
9720 outputs
9721 "share/applications/org.gnome.Weather.desktop")
9722 (("Exec=.*") "Exec=gnome-weather\n"))))
9723 (add-after 'install 'wrap
9724 (lambda* (#:key outputs #:allow-other-keys)
9725 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at
9726 ;; runtime.
9727 (wrap-program (search-input-file outputs "bin/gnome-weather")
9728 `("GI_TYPELIB_PATH" ":" prefix
9729 (,(getenv "GI_TYPELIB_PATH")))))))))
9730 (native-inputs
9731 (list gettext-minimal
9732 `(,glib "bin")
9733 gobject-introspection
9734 pkg-config))
9735 (inputs
9736 (list appstream-glib
9737 bash-minimal
9738 geoclue
9739 gjs
9740 gsettings-desktop-schemas-next
9741 gtk
9742 libadwaita
9743 libgweather4))
9744 (synopsis "Weather monitoring for GNOME desktop")
9745 (description "GNOME Weather is a small application that allows you to
9746 monitor the current weather conditions for your city, or anywhere in the
9747 world.")
9748 (home-page "https://wiki.gnome.org/Apps/Weather")
9749 (license license:gpl2+)))
9750
9751 (define-public gnome
9752 (package
9753 (name "gnome")
9754 (version (package-version gnome-shell))
9755 (source #f)
9756 (build-system trivial-build-system)
9757 (arguments '(#:builder (begin (mkdir %output) #t)))
9758 (propagated-inputs
9759 `(;; GNOME-Core-OS-Services
9760 ("accountsservice" ,accountsservice)
9761 ("network-manager" ,network-manager)
9762 ("packagekit" ,packagekit)
9763 ("upower" ,upower)
9764 ;; GNOME-Core-Shell
9765 ("adwaita-icon-theme" ,adwaita-icon-theme)
9766 ("gdm" ,gdm)
9767 ("glib-networking" ,glib-networking)
9768 ("gnome-backgrounds" ,gnome-backgrounds)
9769 ("gnome-bluetooth" ,gnome-bluetooth)
9770 ("gnome-color-manager" ,gnome-color-manager)
9771 ("gnome-control-center" ,gnome-control-center)
9772 ("gnome-desktop" ,gnome-desktop)
9773 ("gnome-initial-setup" ,gnome-initial-setup)
9774 ("gnome-keyring" ,gnome-keyring)
9775 ("gnome-menus" ,gnome-menus)
9776 ("gnome-session" ,gnome-session)
9777 ("gnome-settings-daemon" ,gnome-settings-daemon)
9778 ("gnome-shell-extensions" ,gnome-shell-extensions)
9779 ("gnome-shell" ,gnome-shell)
9780 ("gnome-themes-extra" ,gnome-themes-extra)
9781 ("gnome-user-docs" ,gnome-user-docs)
9782 ("gnome-user-share" ,gnome-user-share)
9783 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9784 ("gvfs" ,gvfs)
9785 ("mutter" ,mutter)
9786 ("orca" ,orca)
9787 ("rygel" ,rygel)
9788 ("sushi" ,sushi)
9789 ;; GNOME-Core-Utilities
9790 ("baobab" ,baobab)
9791 ("cheese" ,cheese)
9792 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9793 ;; only works on x86_64, so exclude it on other architectures.
9794 ,@(if (string-prefix? "x86_64" (%current-system))
9795 `(("eog" ,eog))
9796 '())
9797 ("epiphany" ,epiphany)
9798 ("evince" ,evince)
9799 ("file-roller" ,file-roller)
9800 ("gedit" ,gedit)
9801 ("gnome-boxes" ,gnome-boxes)
9802 ("gnome-calculator" ,gnome-calculator)
9803 ("gnome-calendar" ,gnome-calendar)
9804 ("gnome-characters" ,gnome-characters)
9805 ("gnome-clocks" ,gnome-clocks)
9806 ("gnome-contacts" ,gnome-contacts)
9807 ("gnome-disk-utility" ,gnome-disk-utility)
9808 ("gnome-font-viewer" ,gnome-font-viewer)
9809 ("gnome-maps" ,gnome-maps)
9810 ("gnome-music" ,gnome-music)
9811 ("gnome-photos" ,gnome-photos)
9812 ("gnome-screenshot" ,gnome-screenshot)
9813 ("gnome-system-monitor" ,gnome-system-monitor)
9814 ("gnome-terminal" ,gnome-terminal)
9815 ("gnome-weather" ,gnome-weather)
9816 ("nautilus" ,nautilus)
9817 ("simple-scan" ,simple-scan)
9818 ("totem" ,totem)
9819 ("tracker-miners" ,tracker-miners)
9820 ("yelp" ,yelp)
9821 ;; Others
9822 ("hicolor-icon-theme" ,hicolor-icon-theme)
9823 ("gnome-online-accounts" ,gnome-online-accounts)
9824
9825 ;; Packages not part of GNOME proper but that are needed for a good
9826 ;; experience. See <https://bugs.gnu.org/39646>.
9827 ;; XXX: Find out exactly which ones are needed and why.
9828 ("font-abattis-cantarell" ,font-abattis-cantarell)
9829 ("font-dejavu" ,font-dejavu)
9830 ("at-spi2-core" ,at-spi2-core-minimal)
9831 ("dbus" ,dbus)
9832 ("dconf" ,dconf)
9833 ("desktop-file-utils" ,desktop-file-utils)
9834 ("gnome-default-applications" ,gnome-default-applications)
9835 ("gst-plugins-base" ,gst-plugins-base)
9836 ("gst-plugins-good" ,gst-plugins-good)
9837 ("gucharmap" ,gucharmap)
9838 ("pinentry-gnome3" ,pinentry-gnome3)
9839 ("pulseaudio" ,pulseaudio)
9840 ("shared-mime-info" ,shared-mime-info)
9841 ("system-config-printer" ,system-config-printer)
9842 ("xdg-user-dirs" ,xdg-user-dirs)
9843 ("yelp" ,yelp)
9844 ("zenity" ,zenity)))
9845 (synopsis "The GNU desktop environment")
9846 (home-page "https://www.gnome.org/")
9847 (description
9848 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9849 applications for browsing the web, editing text and images, creating
9850 documents and diagrams, playing media, scanning, and much more.")
9851 (license license:gpl2+)))
9852
9853 (define-public byzanz
9854 ;; The last stable release of Byzanz was in 2011, but there have been many
9855 ;; useful commits made to the Byzanz repository since then that it would be
9856 ;; silly to use such an old release.
9857 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9858 (package
9859 (name "byzanz")
9860 (version (string-append "0.2-1." (string-take commit 7)))
9861 (source (origin
9862 (method git-fetch)
9863 (uri (git-reference
9864 (url "https://git.gnome.org/browse/byzanz")
9865 (commit commit)))
9866 (file-name (string-append name "-" version "-checkout"))
9867 (sha256
9868 (base32
9869 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9870 (build-system glib-or-gtk-build-system)
9871 (arguments
9872 '(#:phases
9873 (modify-phases %standard-phases
9874 (add-before 'bootstrap 'build-without-Werror
9875 (lambda _
9876 ;; The build system cleverly detects that we're not building from
9877 ;; a release tarball and turns on -Werror for GCC.
9878 ;; Unsurprisingly, there is a warning during compilation that
9879 ;; causes the build to fail unnecessarily, so we remove the flag.
9880 (substitute* '("configure.ac")
9881 (("-Werror") ""))
9882 #t)))))
9883 (native-inputs
9884 (list autoconf
9885 automake
9886 gnome-common
9887 intltool
9888 libtool
9889 pkg-config
9890 which))
9891 (inputs
9892 (list glib gstreamer gst-plugins-base gtk+))
9893 (synopsis "Desktop recording program")
9894 (description "Byzanz is a simple desktop recording program with a
9895 command-line interface. It can record part or all of an X display for a
9896 specified duration and save it as a GIF encoded animated image file.")
9897 (home-page "https://git.gnome.org/browse/byzanz")
9898 (license license:gpl2+))))
9899
9900 (define-public authenticator
9901 (package
9902 (name "authenticator")
9903 (version "3.32.2")
9904 (source
9905 (origin
9906 (method git-fetch)
9907 (uri (git-reference
9908 (url "https://gitlab.gnome.org/World/Authenticator")
9909 (commit version)))
9910 (file-name (git-file-name name version))
9911 (sha256
9912 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9913 (build-system meson-build-system)
9914 (arguments
9915 `(#:meson ,meson-0.59
9916 #:glib-or-gtk? #t
9917 #:phases
9918 (modify-phases %standard-phases
9919 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9920 (lambda* (#:key inputs outputs #:allow-other-keys)
9921 (let ((prog (string-append (assoc-ref outputs "out")
9922 "/bin/authenticator"))
9923 (pylib (string-append (assoc-ref outputs "out")
9924 "/lib/python"
9925 ,(version-major+minor
9926 (package-version
9927 (this-package-input "python")))
9928 "/site-packages")))
9929 (wrap-program prog
9930 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
9931 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
9932 (native-inputs
9933 (list desktop-file-utils
9934 gettext-minimal
9935 `(,glib "bin")
9936 gobject-introspection
9937 `(,gtk+ "bin")
9938 pkg-config))
9939 (inputs
9940 (list gsettings-desktop-schemas
9941 gtk+
9942 libhandy-0.0
9943 libsecret
9944 python
9945 python-beautifulsoup4
9946 python-pillow
9947 python-pyfavicon
9948 python-pygobject
9949 python-pyotp
9950 python-pyzbar
9951 yoyo-migrations
9952 zbar))
9953 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9954 (synopsis "Two-factor authentication application built for GNOME")
9955 (description
9956 "Authenticator is a two-factor authentication (2FA) application built for
9957 the GNOME desktop environment.
9958
9959 Features:
9960
9961 @itemize
9962 @item QR code scanner
9963 @item Beautiful UI
9964 @item Huge database of more than 560 supported services
9965 @item Keep your PIN tokens secure by locking the application with a password
9966 @item Automatically fetch an image for services using their favicon
9967 @item The possibility to add new services
9968 @end itemize")
9969 (license license:gpl3+)))
9970
9971 (define-public gsound
9972 (package
9973 (name "gsound")
9974 (version "1.0.3")
9975 (source (origin
9976 (method url-fetch)
9977 (uri (string-append "mirror://gnome/sources/gsound/"
9978 (version-major+minor version) "/"
9979 "gsound-" version ".tar.xz"))
9980 (sha256
9981 (base32
9982 "06l80xgykj7x1kqkjvcq06pwj2rmca458zvs053qc55x3sg06bfa"))))
9983 (build-system meson-build-system)
9984 (native-inputs
9985 (list pkg-config gobject-introspection vala))
9986 (propagated-inputs
9987 (list libcanberra)) ; in Requires.private of gsound.pc
9988 (home-page "https://wiki.gnome.org/Projects/GSound")
9989 (synopsis "GObject wrapper for libcanberra")
9990 (description
9991 "GSound is a small library for playing system sounds. It's designed to be
9992 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9993 library.")
9994 (license license:lgpl2.1+)))
9995
9996 (define-public libzapojit
9997 (package
9998 (name "libzapojit")
9999 (version "0.0.3")
10000 (source (origin
10001 (method url-fetch)
10002 (uri (string-append "mirror://gnome/sources/" name "/"
10003 (version-major+minor version) "/"
10004 name "-" version ".tar.xz"))
10005 (sha256
10006 (base32
10007 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
10008 (build-system gnu-build-system)
10009 (native-inputs
10010 (list gobject-introspection intltool pkg-config))
10011 (inputs
10012 (list gnome-online-accounts json-glib rest))
10013 (home-page "https://wiki.gnome.org/Projects/Zapojit")
10014 (synopsis "Library for accessing SkyDrive and Hotmail")
10015 (description
10016 "Libzapojit is a GLib-based library for accessing online service APIs of
10017 Microsoft SkyDrive and Hotmail, using their REST protocols.")
10018 (license license:lgpl2.1+)))
10019
10020 (define-public gnome-clocks
10021 (package
10022 (name "gnome-clocks")
10023 (version "42.0")
10024 (source (origin
10025 (method url-fetch)
10026 (uri (string-append "mirror://gnome/sources/" name "/"
10027 (version-major version) "/"
10028 name "-" version ".tar.xz"))
10029 (sha256
10030 (base32
10031 "1q3gvniwd4dkr1ghqpp05zr7qswdhaxqrn8j6bm3qbh39bdihw8f"))))
10032 (build-system meson-build-system)
10033 (arguments
10034 '(#:glib-or-gtk? #t
10035 #:phases
10036 (modify-phases %standard-phases
10037 (add-after 'unpack 'skip-gtk-update-icon-cache
10038 ;; Don't create 'icon-theme.cache'.
10039 (lambda _
10040 (substitute* "meson.build"
10041 (("gtk_update_icon_cache: true")
10042 "gtk_update_icon_cache: false")))))))
10043 (native-inputs
10044 (list desktop-file-utils
10045 gettext-minimal
10046 `(,glib "bin") ; for glib-compile-resources
10047 itstool
10048 pkg-config
10049 vala-next))
10050 (inputs
10051 (list geoclue
10052 geocode-glib-with-libsoup2
10053 glib
10054 gnome-desktop
10055 gsound
10056 gtk
10057 libadwaita
10058 libgweather4-with-libsoup2))
10059 (home-page "https://wiki.gnome.org/Apps/Clocks")
10060 (synopsis "GNOME's clock application")
10061 (description
10062 "GNOME Clocks is a simple clocks application designed to fit the GNOME
10063 desktop. It supports world clock, stop watch, alarms, and count down timer.")
10064 (license license:gpl3+)))
10065
10066 (define-public gnome-calendar
10067 (package
10068 (name "gnome-calendar")
10069 (version "42.2")
10070 (source (origin
10071 (method url-fetch)
10072 (uri (string-append "mirror://gnome/sources/" name "/"
10073 (version-major version) "/"
10074 name "-" version ".tar.xz"))
10075 (sha256
10076 (base32
10077 "1ggvnl2jnc24nzpkjvsk57vpckjzb14a7mmnk6jjm84nmqxccz5f"))))
10078 (build-system meson-build-system)
10079 (arguments
10080 `(#:glib-or-gtk? #t
10081 #:phases
10082 (modify-phases %standard-phases
10083 (add-after 'unpack 'skip-gtk-update-icon-cache
10084 ;; Don't create 'icon-theme.cache'.
10085 (lambda _
10086 (substitute* "meson.build"
10087 (("gtk_update_icon_cache: true")
10088 "gtk_update_icon_cache: false")))))))
10089 (native-inputs
10090 (list gettext-minimal
10091 `(,glib "bin") ; For glib-compile-schemas
10092 pkg-config))
10093 (inputs
10094 ;; Note: not propagating evolution-data-server-3.44 to keep profiles
10095 ;; clean from libsoup2.
10096 (list evolution-data-server-3.44
10097 geoclue
10098 geocode-glib-with-libsoup2
10099 gnome-online-accounts-3.44
10100 gsettings-desktop-schemas
10101 libadwaita
10102 libdazzle
10103 libgweather4-with-libsoup2
10104 ;; Remove pango-next when it's the default.
10105 pango-next))
10106 (home-page "https://wiki.gnome.org/Apps/Calendar")
10107 (synopsis "GNOME's calendar application")
10108 (description
10109 "GNOME Calendar is a simple calendar application designed to fit the GNOME
10110 desktop. It supports multiple calendars, month, week and year view.")
10111 (license license:gpl3+)))
10112
10113 (define-public gnome-todo
10114 (package
10115 (name "gnome-todo")
10116 (version "41.0")
10117 (source (origin
10118 (method url-fetch)
10119 (uri (string-append "mirror://gnome/sources/" name "/"
10120 (version-major version) "/"
10121 name "-" version ".tar.xz"))
10122 (sha256
10123 (base32
10124 "1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras"))
10125 (patches (search-patches "gnome-todo-libportal.patch"))))
10126 (build-system meson-build-system)
10127 (arguments
10128 (list
10129 #:glib-or-gtk? #t
10130 #:phases
10131 #~(modify-phases %standard-phases
10132 (add-after 'unpack 'skip-gtk-update-icon-cache
10133 (lambda _
10134 (substitute* "build-aux/meson/meson_post_install.py"
10135 (("gtk-update-icon-cache") "true"))))
10136 (delete 'check)
10137 (add-after 'install 'check
10138 (assoc-ref %standard-phases
10139 'check))
10140 (add-before 'check 'pre-check
10141 (lambda _
10142 (setenv "GSETTINGS_SCHEMA_DIR"
10143 (string-append #$output "/share/glib-2.0/schemas")))))))
10144 (native-inputs
10145 (list gettext-minimal
10146 gobject-introspection
10147 `(,glib "bin") ;for glib-compile-resources
10148 `(,gtk "bin") ;for gtk-update-icon-cache
10149 itstool
10150 pkg-config))
10151 (inputs
10152 (list rest ;for Todoist plugin
10153 gtk
10154 json-glib ;for Todoist plugin
10155 libadwaita
10156 evolution-data-server
10157 libical
10158 libpeas
10159 libportal
10160 python-pygobject
10161 evolution-data-server
10162 gnome-online-accounts
10163 gsettings-desktop-schemas))
10164 (home-page "https://wiki.gnome.org/Apps/Todo")
10165 (synopsis "GNOME's ToDo Application")
10166 (description "GNOME To Do is a simplistic personal task manager designed
10167 to perfectly fit the GNOME desktop.")
10168 (license license:gpl3+)))
10169
10170 (define-public gnome-dictionary
10171 (package
10172 (name "gnome-dictionary")
10173 (version "40.0")
10174 (source (origin
10175 (method url-fetch)
10176 (uri (string-append "mirror://gnome/sources/" name "/"
10177 (version-major version) "/"
10178 name "-" version ".tar.xz"))
10179 (sha256
10180 (base32
10181 "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f"))))
10182 (build-system meson-build-system)
10183 (arguments
10184 `(#:glib-or-gtk? #t
10185 #:phases
10186 (modify-phases %standard-phases
10187 (add-after 'unpack 'skip-gtk-update-icon-cache
10188 ;; Don't create 'icon-theme.cache'.
10189 (lambda _
10190 (substitute* "build-aux/meson/post-install.py"
10191 (("gtk-update-icon-cache") "true")))))))
10192 (native-inputs
10193 (list `(,glib "bin")
10194 gobject-introspection
10195 intltool
10196 itstool
10197 pkg-config
10198 libxml2))
10199 (inputs
10200 (list gsettings-desktop-schemas
10201 gtk+))
10202 (home-page "https://wiki.gnome.org/Apps/Dictionary")
10203 (synopsis "Look up words in dictionary sources")
10204 (description
10205 "GNOME Dictionary can look for the definition or translation of a word in
10206 existing databases over the internet.")
10207 (license license:gpl3+)))
10208
10209 (define-public gnome-tweaks
10210 (package
10211 (name "gnome-tweaks")
10212 (version "40.10")
10213 (source (origin
10214 (method url-fetch)
10215 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
10216 (version-major version) "/"
10217 "gnome-tweaks-" version ".tar.xz"))
10218 (patches
10219 (list (search-patch "gnome-tweaks-search-paths.patch")))
10220 (sha256
10221 (base32
10222 "1z13xy804hld9q8k0vq5y4j5jk7m0ayqzkli8jxpymwrlcrkpzfg"))))
10223 (build-system meson-build-system)
10224 (arguments
10225 (list
10226 #:glib-or-gtk? #t
10227 #:configure-flags #~(list "-Dlocalstatedir=/tmp"
10228 "-Dsysconfdir=/tmp")
10229 #:imported-modules `((guix build python-build-system)
10230 ,@%meson-build-system-modules)
10231 #:modules '((guix build meson-build-system)
10232 ((guix build python-build-system) #:prefix python:)
10233 (guix build utils))
10234 #:phases
10235 #~(modify-phases %standard-phases
10236 (add-after 'unpack 'skip-gtk-update-icon-cache
10237 ;; Don't create 'icon-theme.cache'.
10238 (lambda _
10239 (substitute* "meson-postinstall.py"
10240 (("gtk-update-icon-cache") "true"))))
10241 (add-after 'install 'wrap
10242 (assoc-ref python:%standard-phases 'wrap))
10243 (add-after 'wrap 'wrap-gi-typelib-and-python
10244 (lambda* (#:key inputs outputs #:allow-other-keys)
10245 (wrap-program (search-input-file outputs "bin/gnome-tweaks")
10246 `("GI_TYPELIB_PATH" ":" prefix
10247 (,(getenv "GI_TYPELIB_PATH")))
10248 `("GUIX_PYTHONPATH" ":" prefix
10249 (,(python:site-packages inputs outputs)))))))))
10250 (native-inputs
10251 (list `(,glib "bin") ; for glib-compile-resources, etc.
10252 gettext-minimal
10253 pkg-config))
10254 (inputs
10255 (list bash-minimal ; to execute the wrapper program
10256 gnome-desktop
10257 gtk+
10258 gobject-introspection
10259 gsettings-desktop-schemas
10260 libhandy
10261 libnotify
10262 libsoup
10263 nautilus
10264 python
10265 python-pygobject))
10266 (synopsis "Customize advanced GNOME 3 options")
10267 (home-page "https://wiki.gnome.org/Apps/Tweaks")
10268 (description
10269 "GNOME Tweaks allows adjusting advanced configuration settings in
10270 GNOME 3. This includes things like the fonts used in user interface elements,
10271 alternative user interface themes, changes in window management behavior,
10272 GNOME Shell appearance and extension, etc.")
10273 (license license:gpl3+)))
10274
10275 (define-public gnome-shell-extensions
10276 (package
10277 (name "gnome-shell-extensions")
10278 (version "42.3")
10279 (source (origin
10280 (method url-fetch)
10281 (uri (string-append "mirror://gnome/sources/" name "/"
10282 (version-major version) "/"
10283 name "-" version ".tar.xz"))
10284 (sha256
10285 (base32
10286 "1z3k4bvq8f2s0q9q7i093w4hrz289lci7xlib20aqa4z5sivxhhf"))))
10287 (build-system meson-build-system)
10288 (arguments
10289 '(#:configure-flags '("-Dextension_set=all")))
10290 (native-inputs
10291 (list `(,glib "bin")
10292 gettext-minimal
10293 pkg-config))
10294 (propagated-inputs
10295 (list glib))
10296 (synopsis "Extensions for GNOME Shell")
10297 (description "GNOME Shell extensions modify and extend GNOME Shell
10298 functionality and behavior.")
10299 (home-page "https://extensions.gnome.org/")
10300 (license license:gpl3+)))
10301
10302 (define-public folks
10303 (package
10304 (name "folks")
10305 (version "0.15.5")
10306 (source (origin
10307 (method url-fetch)
10308 (uri (string-append
10309 "mirror://gnome/sources/folks/"
10310 (version-major+minor version) "/"
10311 "folks-" version ".tar.xz"))
10312 (sha256
10313 (base32
10314 "11lhfn6b7gml4ckj2dkm6g889j21wpvj90srwjp85k9hcf4qmzqg"))))
10315 (build-system meson-build-system)
10316 (arguments
10317 '(#:phases
10318 (modify-phases %standard-phases
10319 (add-after 'unpack 'skip-gtk-update-icon-cache
10320 ;; Don't create 'icon-theme.cache'.
10321 (lambda _
10322 (substitute* "meson_post_install.py"
10323 (("gtk-update-icon-cache") "true")))))))
10324 (inputs
10325 (list bdb
10326 dbus-glib
10327 evolution-data-server
10328 glib
10329 libgee
10330 readline
10331 telepathy-glib))
10332 (native-inputs
10333 (list gettext-minimal
10334 `(,glib "bin")
10335 gobject-introspection
10336 python-dbusmock
10337 pkg-config
10338 python
10339 vala))
10340 (synopsis "Library to aggregate data about people")
10341 (description "Libfolks is a library that aggregates information about people
10342 from multiple sources (e.g., Telepathy connection managers for IM contacts,
10343 Evolution Data Server for local contacts, libsocialweb for web service contacts,
10344 etc.) to create metacontacts. It's written in Vala, which generates C code when
10345 compiled.")
10346 (home-page "https://wiki.gnome.org/Projects/Folks")
10347 (license license:lgpl2.1+)))
10348
10349 (define-public gfbgraph
10350 (package
10351 (name "gfbgraph")
10352 (version "0.2.4")
10353 (source (origin
10354 (method url-fetch)
10355 (uri (string-append
10356 "mirror://gnome/sources/gfbgraph/"
10357 (version-major+minor version) "/"
10358 "gfbgraph-" version ".tar.xz"))
10359 (sha256
10360 (base32
10361 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
10362 (build-system glib-or-gtk-build-system)
10363 (arguments
10364 `(#:tests? #f ; tests appear to require the network
10365 #:configure-flags '("--disable-static"
10366 "--enable-gtk-doc"
10367 "--enable-introspection")))
10368 (native-inputs
10369 (list gobject-introspection
10370 gtk-doc/stable
10371 pkg-config
10372 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
10373 autoconf
10374 automake
10375 libtool
10376 which))
10377 (inputs
10378 `(("json-glib" ,json-glib)
10379 ("gnome-online-accounts" ,gnome-online-accounts)
10380 ("rest" ,rest)))
10381 (synopsis "GLib/GObject wrapper for the Facebook API")
10382 (description "This library allows you to use the Facebook API from
10383 GLib/GObject code.")
10384 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
10385 (license license:lgpl2.1+)))
10386
10387 (define-public libgnomekbd
10388 (package
10389 (name "libgnomekbd")
10390 (version "3.28.0")
10391 (source (origin
10392 (method url-fetch)
10393 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
10394 (version-major+minor version) "/"
10395 "libgnomekbd-" version ".tar.xz"))
10396 (sha256
10397 (base32
10398 "1jarhq9crhq0wfnbcz7x3hgxbkan98ax3p2jwcgzj9jc7r27l1dk"))))
10399 (build-system gnu-build-system)
10400 (native-inputs
10401 (list autoconf
10402 automake
10403 `(,glib "bin")
10404 libtool
10405 pkg-config
10406 gettext-minimal
10407 gobject-introspection))
10408 (propagated-inputs
10409 ;; Referred to in .h files and .pc.
10410 (list glib
10411 gtk+
10412 libxklavier))
10413 (home-page "https://www.gnome.org")
10414 (synopsis "GNOME keyboard configuration library")
10415 (description
10416 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
10417 environment, which can notably display keyboard layouts.")
10418 (license license:lgpl2.0+)))
10419
10420 ;;; This package is no longer maintained:
10421 ;;; https://wiki.gnome.org/Attic/LibUnique
10422 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
10423 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
10424 (define-public libunique
10425 (package
10426 (name "libunique")
10427 (version "3.0.2")
10428 (source (origin
10429 (method url-fetch)
10430 (uri (string-append "mirror://gnome/sources/" name "/"
10431 (version-major+minor version) "/"
10432 name "-" version ".tar.xz"))
10433 (sha256
10434 (base32
10435 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
10436 (build-system glib-or-gtk-build-system)
10437 (arguments
10438 `(#:configure-flags '("--disable-static"
10439 "--disable-dbus" ; use gdbus
10440 "--enable-introspection")))
10441 (native-inputs
10442 `(("pkg-config" ,pkg-config)
10443 ("gobject-introspection" ,gobject-introspection)
10444 ("glib:bin" ,glib "bin")
10445 ("gtk-doc" ,gtk-doc/stable)))
10446 (propagated-inputs
10447 ;; Referred to in .h files and .pc.
10448 (list gtk+))
10449 (home-page "https://wiki.gnome.org/Attic/LibUnique")
10450 (synopsis "Library for writing single instance applications")
10451 (description
10452 "Libunique is a library for writing single instance applications. If you
10453 launch a single instance application twice, the second instance will either just
10454 quit or will send a message to the running instance. Libunique makes it easy to
10455 write this kind of application, by providing a base class, taking care of all
10456 the IPC machinery needed to send messages to a running instance, and also
10457 handling the startup notification side.")
10458 (license license:lgpl2.1+)))
10459
10460 (define-public gnome-calculator
10461 (package
10462 (name "gnome-calculator")
10463 (version "42.2")
10464 (source
10465 (origin
10466 (method url-fetch)
10467 (uri (string-append "mirror://gnome/sources/" name "/"
10468 (version-major version) "/"
10469 name "-" version ".tar.xz"))
10470 (sha256
10471 (base32
10472 "1866qn0r9xp7b7j1436kry2k3bdh9ikhz2wm41jxcn1nljyb3nik"))))
10473 (build-system meson-build-system)
10474 (arguments
10475 '(#:glib-or-gtk? #t
10476 #:phases
10477 (modify-phases %standard-phases
10478 (add-after 'unpack 'skip-gtk-update-icon-cache
10479 (lambda _
10480 (substitute* "meson.build"
10481 (("gtk_update_icon_cache: true")
10482 "gtk_update_icon_cache: false"))))
10483 (add-before 'check 'pre-check
10484 (lambda _
10485 ;; Tests require a writable HOME.
10486 (setenv "HOME" (getcwd)))))))
10487 (native-inputs
10488 (list gettext-minimal
10489 `(,glib "bin") ;for glib-compile-schemas, gio-2.0.
10490 itstool
10491 pkg-config
10492 python
10493 vala))
10494 (inputs
10495 (list gsettings-desktop-schemas-next
10496 gtksourceview
10497 libadwaita
10498 libgee
10499 libhandy
10500 libsoup-minimal-2
10501 libxml2
10502 mpc
10503 mpfr))
10504 (home-page "https://wiki.gnome.org/Apps/Calculator")
10505 (synopsis "Desktop calculator")
10506 (description
10507 "Calculator is an application that solves mathematical equations and
10508 is suitable as a default application in a Desktop environment.")
10509 (license license:gpl3)))
10510
10511 (define-public xpad
10512 (package
10513 (name "xpad")
10514 (version "5.8.0")
10515 (source
10516 (origin
10517 (method url-fetch)
10518 (uri (string-append "https://launchpad.net/xpad/trunk/"
10519 version "/+download/"
10520 name "-" version ".tar.bz2"))
10521 (sha256
10522 (base32
10523 "1sc2dz4yxx6glnqpnhiby85g2blnsfn8d3fvbaqhdi2hi0q54q7j"))))
10524 (build-system gnu-build-system)
10525 (native-inputs
10526 (list autoconf automake
10527 `(,gtk+ "bin") intltool pkg-config))
10528 (inputs
10529 (list gtksourceview libsm))
10530 (home-page "https://wiki.gnome.org/Apps/Xpad")
10531 (synopsis "Virtual sticky note")
10532 (description
10533 "Xpad is a sticky note that strives to be simple, fault tolerant,
10534 and customizable. Xpad consists of independent pad windows, each is
10535 basically a text box in which notes can be written.")
10536 (license license:gpl3+)))
10537
10538 (define-public gucharmap
10539 (let ((unicode-files
10540 '(("Blocks.txt"
10541 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
10542 ("DerivedAge.txt"
10543 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
10544 ("NamesList.txt"
10545 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
10546 ("Scripts.txt"
10547 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
10548 ("UnicodeData.txt"
10549 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
10550 ("Unihan.zip"
10551 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
10552 (package
10553 (name "gucharmap")
10554 (version "12.0.1")
10555 (source
10556 (origin
10557 (method url-fetch)
10558 (uri (string-append "mirror://gnome/sources/" name "/"
10559 (version-major+minor version) "/"
10560 name "-" version ".tar.xz"))
10561 (sha256
10562 (base32
10563 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
10564 (build-system glib-or-gtk-build-system)
10565 (arguments
10566 `(#:modules ((ice-9 match)
10567 (guix build glib-or-gtk-build-system)
10568 (guix build utils))
10569 #:configure-flags
10570 (list "--with-unicode-data=../unicode-data")
10571 #:phases
10572 (modify-phases %standard-phases
10573 (add-after 'unpack 'prepare-unicode-data
10574 (lambda* (#:key inputs #:allow-other-keys)
10575 (mkdir-p "../unicode-data")
10576 (with-directory-excursion "../unicode-data"
10577 (for-each (match-lambda
10578 ((file _)
10579 (install-file (assoc-ref inputs file) ".")))
10580 ',unicode-files))
10581 #t)))))
10582 (native-inputs
10583 `(("desktop-file-utils" ,desktop-file-utils)
10584 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
10585 ("gobject-introspection" ,gobject-introspection)
10586 ("intltool" ,intltool)
10587 ("itstool" ,itstool)
10588 ("pkg-config" ,pkg-config)
10589 ,@(map (match-lambda
10590 ((file hash)
10591 `(,file
10592 ,(origin
10593 (method url-fetch)
10594 (uri (string-append
10595 "http://www.unicode.org/Public/12.0.0/ucd/"
10596 file))
10597 (sha256 (base32 hash))))))
10598 unicode-files)
10599 ("unzip" ,unzip)))
10600 (inputs
10601 `(("gtk+" ,gtk+)
10602 ("xmllint" ,libxml2)))
10603 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
10604 (synopsis "Unicode character picker and font browser")
10605 (description
10606 "This program allows you to browse through all the available Unicode
10607 characters and categories for the installed fonts, and to examine their
10608 detailed properties. It is an easy way to find the character you might
10609 only know by its Unicode name or code point.")
10610 (license license:gpl3+))))
10611
10612 (define-public gcolor3
10613 (package
10614 (name "gcolor3")
10615 (version "2.4.0")
10616 (source
10617 (origin
10618 (method git-fetch)
10619 (uri (git-reference
10620 (url "https://gitlab.gnome.org/World/gcolor3")
10621 (commit (string-append "v" version))))
10622 (file-name (git-file-name name version))
10623 (sha256
10624 (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc"))
10625 ;; XXX: Remove when upgrading
10626 (patches (search-patches "gcolor3-update-libportal-usage.patch"))))
10627 (build-system meson-build-system)
10628 (arguments
10629 `(#:glib-or-gtk? #t))
10630 (native-inputs
10631 (list desktop-file-utils gettext-minimal
10632 `(,glib "bin")
10633 `(,gtk+ "bin") pkg-config))
10634 (inputs
10635 (list gsettings-desktop-schemas gtk+ libportal))
10636 (home-page "https://www.hjdskes.nl/projects/gcolor3/")
10637 (synopsis "Simple color chooser written in GTK3")
10638 (description "Color Picker is a simple color chooser written in GTK3. It
10639 supports both X and Wayland display servers.")
10640 (license license:gpl2+)))
10641
10642 (define-public bluefish
10643 (package
10644 (name "bluefish")
10645 (version "2.2.12")
10646 (source
10647 (origin
10648 (method url-fetch)
10649 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
10650 "bluefish-" version ".tar.gz"))
10651 (sha256
10652 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
10653 (build-system gnu-build-system)
10654 (native-inputs
10655 (list desktop-file-utils intltool pkg-config))
10656 (inputs
10657 (list enchant gtk+ python-wrapper libxml2 gucharmap))
10658 (home-page "http://bluefish.openoffice.nl")
10659 (synopsis "Web development studio")
10660 (description
10661 "Bluefish is an editor aimed at programmers and web developers,
10662 with many options to write web sites, scripts and other code.
10663 Bluefish supports many programming and markup languages.")
10664 (license license:gpl3+)))
10665
10666 (define-public gnome-system-monitor
10667 (package
10668 (name "gnome-system-monitor")
10669 (version "42.0")
10670 (source
10671 (origin
10672 (method url-fetch)
10673 (uri (string-append "mirror://gnome/sources/" name "/"
10674 (version-major version) "/"
10675 name "-" version ".tar.xz"))
10676 (sha256
10677 (base32
10678 "1p3mq32pfd9260aql5nys806g0c4nrswacwqs8ms40920ci9s8qk"))))
10679 (build-system meson-build-system)
10680 (arguments
10681 '(#:glib-or-gtk? #t
10682 #:configure-flags '("-Dsystemd=false")))
10683 (native-inputs
10684 (list `(,glib "bin") ;for glib-mkenums.
10685 `(,gtk+ "bin") ;gtk-update-icon-cache
10686 intltool
10687 itstool
10688 libgtop
10689 polkit
10690 pkg-config))
10691 (inputs
10692 (list gdk-pixbuf ;for loading SVG files.
10693 gtk+
10694 gtkmm-3
10695 libhandy
10696 librsvg
10697 libxml2
10698 libwnck))
10699 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10700 (synopsis "Process viewer and system resource monitor for GNOME")
10701 (description
10702 "GNOME System Monitor is a GNOME process viewer and system monitor with
10703 an attractive, easy-to-use interface. It has features, such as a tree view
10704 for process dependencies, icons for processes, the ability to hide processes,
10705 graphical time histories of CPU/memory/swap usage and the ability to
10706 kill/reinice processes.")
10707 (license license:gpl2+)))
10708
10709 (define-public python-pyatspi
10710 (package
10711 (name "python-pyatspi")
10712 (version "2.34.0")
10713 (source (origin
10714 (method url-fetch)
10715 (uri (string-append
10716 "mirror://gnome/sources/pyatspi/"
10717 (version-major+minor version)
10718 "/pyatspi-" version ".tar.xz"))
10719 (sha256
10720 (base32
10721 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10722 (build-system gnu-build-system)
10723 (arguments
10724 `(#:phases
10725 (modify-phases %standard-phases
10726 (add-before 'build 'fix-atk-load
10727 (lambda _
10728 (substitute* "pyatspi/__init__.py"
10729 (("from gi.repository import Atspi")
10730 "gi.require_version('Gtk', '3.0')
10731 from gi.repository import Gtk
10732 from gi.repository import Atspi"))
10733 #t)))))
10734 (native-inputs
10735 (list pkg-config))
10736 (inputs
10737 (list python))
10738 (propagated-inputs
10739 (list python-pygobject))
10740 (synopsis "Python client bindings for D-Bus AT-SPI")
10741 (home-page "https://wiki.linuxfoundation.org/accessibility\
10742 /atk/at-spi/at-spi_on_d-bus")
10743 (description
10744 "This package includes a python client library for the AT-SPI D-Bus
10745 accessibility infrastructure.")
10746 (license license:lgpl2.0)
10747 (properties '((upstream-name . "pyatspi")))))
10748
10749 (define-public orca
10750 (package
10751 (name "orca")
10752 (version "41.0")
10753 (source (origin
10754 (method url-fetch)
10755 (uri (string-append
10756 "mirror://gnome/sources/" name "/"
10757 (version-major version) "/"
10758 name "-" version ".tar.xz"))
10759 (sha256
10760 (base32
10761 "1gflnsv6d5qn5rh1f16yfa0q0yv8yvd0l5lbwrsdg7z18lafb5vn"))))
10762 (build-system glib-or-gtk-build-system)
10763 (arguments
10764 '(#:phases
10765 (modify-phases %standard-phases
10766 (add-before 'configure 'qualify-xkbcomp
10767 (lambda* (#:key inputs #:allow-other-keys)
10768 (let ((xkbcomp (string-append
10769 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10770 (substitute* "src/orca/orca.py"
10771 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))))
10772 (add-after 'install 'wrap-orca
10773 (lambda* (#:key outputs #:allow-other-keys)
10774 (let* ((out (assoc-ref outputs "out"))
10775 (prog (string-append out "/bin/orca")))
10776 (wrap-program prog
10777 `("GI_TYPELIB_PATH" ":" prefix
10778 (,(getenv "GI_TYPELIB_PATH")))
10779 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10780 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10781 `("GUIX_PYTHONPATH" ":" prefix
10782 (,(getenv "GUIX_PYTHONPATH"))))))))))
10783 (native-inputs
10784 (list intltool
10785 itstool
10786 pkg-config
10787 libxml2))
10788 (inputs
10789 (list at-spi2-atk
10790 gsettings-desktop-schemas
10791 gstreamer
10792 gst-plugins-base
10793 gst-plugins-good
10794 gtk+
10795 python
10796 python-pygobject
10797 python-pyatspi
10798 speech-dispatcher
10799 xkbcomp))
10800 (synopsis
10801 "Screen reader for individuals who are blind or visually impaired")
10802 (home-page "https://wiki.gnome.org/Projects/Orca")
10803 (description
10804 "Orca is a screen reader that provides access to the graphical desktop
10805 via speech and refreshable braille. Orca works with applications and toolkits
10806 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10807 (license license:lgpl2.1+)))
10808
10809 (define-public gspell
10810 (package
10811 (name "gspell")
10812 (version "1.8.2")
10813 (source (origin
10814 (method url-fetch)
10815 (uri (string-append "mirror://gnome/sources/" name "/"
10816 (version-major+minor version) "/"
10817 name "-" version ".tar.xz"))
10818 (sha256
10819 (base32
10820 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10821 (patches (search-patches "gspell-dash-test.patch"))))
10822 (build-system glib-or-gtk-build-system)
10823 (arguments
10824 '(#:configure-flags (list "--enable-vala")
10825 #:phases
10826 (modify-phases %standard-phases
10827 (add-before 'check 'pre-check
10828 (lambda* (#:key inputs #:allow-other-keys)
10829 ;; Tests require a running X server.
10830 (system "Xvfb :1 &")
10831 (setenv "DISPLAY" ":1")
10832
10833 ;; For the missing /etc/machine-id.
10834 (setenv "DBUS_FATAL_WARNINGS" "0")
10835
10836 ;; Allow Enchant and its Aspell backend to find the en_US
10837 ;; dictionary.
10838 (setenv "ASPELL_DICT_DIR"
10839 (search-input-directory inputs "/lib/aspell")))))))
10840 (inputs
10841 (list iso-codes))
10842 (native-inputs
10843 `(("glib" ,glib "bin")
10844 ("gobject-introspection" ,gobject-introspection)
10845 ("pkg-config" ,pkg-config)
10846 ("vala" ,vala) ;for VAPI, needed by Geary
10847 ("xmllint" ,libxml2)
10848
10849 ;; For tests.
10850 ("aspell-dict-en" ,aspell-dict-en)
10851 ("xorg-server" ,xorg-server-for-tests)))
10852 (propagated-inputs
10853 ;; Referred by .pc file.
10854 (list enchant glib gtk+))
10855 (home-page "https://wiki.gnome.org/Projects/gspell")
10856 (synopsis "GNOME's alternative spell checker")
10857 (description
10858 "gspell provides a flexible API to add spell-checking to a GTK+
10859 application. It provides a GObject API, spell-checking to text entries and
10860 text views, and buttons to choose the language.")
10861 (license license:gpl2+)))
10862
10863 (define-public gnome-planner
10864 (package
10865 (name "gnome-planner")
10866 (version "0.14.6")
10867 (source (origin
10868 (method url-fetch)
10869 (uri (string-append "mirror://gnome/sources/planner/"
10870 (version-major+minor version) "/planner-"
10871 version ".tar.xz"))
10872 (sha256
10873 (base32
10874 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10875 (build-system glib-or-gtk-build-system)
10876 (arguments
10877 ;; Disable the Python bindings because the Planner program functions
10878 ;; without them, and (as of 2017-06-13) we have not packaged all of
10879 ;; packages that are necessary for building the Python bindings.
10880 `(#:configure-flags
10881 (list "--disable-python"
10882 ,@(if (string=? "aarch64-linux" (%current-system))
10883 '("--build=aarch64-unknown-linux-gnu")
10884 '()))))
10885 (inputs
10886 (list libgnomecanvas
10887 libgnomeui
10888 libglade
10889 gnome-vfs
10890 gconf
10891 libxml2
10892 libxslt
10893 gtk+
10894 glib))
10895 (native-inputs
10896 (list intltool scrollkeeper pkg-config))
10897 (home-page "https://wiki.gnome.org/Apps/Planner")
10898 (synopsis "Project management software for the GNOME desktop")
10899 (description
10900 "GNOME Planner is a project management tool based on the Work Breakdown
10901 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10902 the resources, tasks, and constraints that you define, Planner generates
10903 various views into a project. For example, Planner can show a Gantt chart of
10904 the project. It can show a detailed summary of tasks including their
10905 duration, cost, and current progress. It can also show a report of resource
10906 utilization that highlights under-utilized and over-utilized resources. These
10907 views can be printed as PDF or PostScript files, or exported to HTML.")
10908 (license license:gpl2+)))
10909
10910 (define-public lollypop
10911 (package
10912 (name "lollypop")
10913 (version "1.4.24")
10914 (source
10915 (origin
10916 (method url-fetch)
10917 (uri (string-append "https://adishatz.org/lollypop/"
10918 "lollypop-" version ".tar.xz"))
10919 (sha256
10920 (base32 "10cw3x75siibmnbh4zhfmf2vd08fqjs3lj3l4wpk6zj9h22ncfxw"))))
10921 (build-system meson-build-system)
10922 (arguments
10923 `(#:imported-modules
10924 (,@%meson-build-system-modules
10925 (guix build python-build-system))
10926 #:modules
10927 ((guix build meson-build-system)
10928 ((guix build python-build-system) #:prefix python:)
10929 (guix build utils))
10930 #:glib-or-gtk? #t
10931 #:tests? #f ; no test suite
10932 #:phases
10933 (modify-phases %standard-phases
10934 (add-after 'install 'wrap-program
10935 (lambda* (#:key outputs #:allow-other-keys)
10936 (let ((out (assoc-ref outputs "out"))
10937 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10938 (wrap-program (string-append out "/bin/lollypop")
10939 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10940 #t))
10941 (add-after 'install 'wrap-python
10942 (assoc-ref python:%standard-phases 'wrap)))))
10943 (native-inputs
10944 `(("gettext" ,gettext-minimal)
10945 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10946 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10947 ("pkg-config" ,pkg-config)))
10948 (inputs
10949 `(("glib-networking" ,glib-networking)
10950 ("gobject-introspection" ,gobject-introspection)
10951 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10952 ("gst-plugins-base" ,gst-plugins-base)
10953 ("libnotify" ,libnotify)
10954 ("libsecret" ,libsecret)
10955 ("libhandy" ,libhandy)
10956 ("libsoup" ,libsoup-minimal-2)
10957 ("python" ,python)
10958 ("python-beautifulsoup4" ,python-beautifulsoup4)
10959 ("python-gst" ,python-gst)
10960 ("python-pil" ,python-pillow)
10961 ("python-pycairo" ,python-pycairo)
10962 ("python-pygobject" ,python-pygobject)
10963 ("python-pylast" ,python-pylast)
10964 ("totem-pl-parser" ,totem-pl-parser)
10965 ("webkitgtk" ,webkitgtk)))
10966 (propagated-inputs
10967 (list ;; gst-plugins-base is required to start Lollypop,
10968 ;; the others are required to play streaming.
10969 gst-plugins-good gst-plugins-ugly))
10970 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10971 (synopsis "GNOME music playing application")
10972 (description
10973 "Lollypop is a music player designed to play well with GNOME desktop.
10974 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10975 from artists and tracks from the web. It also fetches cover artworks
10976 automatically and it can stream songs from online music services and charts.")
10977 (license license:gpl3+)))
10978
10979 (define-public gnome-video-effects
10980 (package
10981 (name "gnome-video-effects")
10982 (version "0.5.0")
10983 (source (origin
10984 (method url-fetch)
10985 (uri (string-append "mirror://gnome/sources/" name "/"
10986 (version-major+minor version) "/" name "-"
10987 version ".tar.xz"))
10988 (sha256
10989 (base32
10990 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10991 (build-system meson-build-system)
10992 (native-inputs
10993 (list gettext-minimal pkg-config))
10994 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10995 (synopsis "Video effects for Cheese and other GNOME applications")
10996 (description
10997 "A collection of GStreamer video filters and effects to be used in
10998 photo-booth-like software, such as Cheese.")
10999 (license license:gpl2+)))
11000
11001 (define-public cheese
11002 (package
11003 (name "cheese")
11004 (version "41.0")
11005 (source (origin
11006 (method url-fetch)
11007 (uri (string-append "mirror://gnome/sources/" name "/"
11008 (version-major version) "/" name "-"
11009 version ".tar.xz"))
11010 (sha256
11011 (base32
11012 "1y92glc0d6w323x2bdbc0gdh1jdffvkbv6cwlwm1rx0wgvv1svqh"))))
11013 (arguments
11014 `(#:glib-or-gtk? #t
11015 #:meson ,meson-0.60
11016 ;; Tests require GDK.
11017 #:tests? #f
11018 #:phases
11019 (modify-phases %standard-phases
11020 (add-after 'unpack 'skip-gtk-update-icon-cache
11021 (lambda _
11022 ;; Don't create 'icon-theme.cache'
11023 (substitute* "meson_post_install.py"
11024 (("gtk-update-icon-cache") (which "true")))
11025 #t))
11026 (add-after 'install 'wrap-cheese
11027 (lambda* (#:key inputs outputs #:allow-other-keys)
11028 (let ((out (assoc-ref outputs "out"))
11029 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
11030 (wrap-program (string-append out "/bin/cheese")
11031 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
11032 #t)))))
11033 (build-system meson-build-system)
11034 (native-inputs
11035 (list docbook-xsl
11036 docbook-xml-4.3
11037 gettext-minimal
11038 `(,glib "bin")
11039 gtk-doc/stable
11040 itstool
11041 libxml2
11042 libxslt
11043 pkg-config
11044 vala))
11045 (propagated-inputs
11046 (list gnome-video-effects
11047 clutter
11048 clutter-gst
11049 clutter-gtk
11050 libcanberra
11051 gdk-pixbuf
11052 glib
11053 gstreamer))
11054 (inputs
11055 (list gnome-desktop
11056 gobject-introspection
11057 gst-plugins-base
11058 gst-plugins-good
11059 gst-plugins-bad
11060 gtk+
11061 libx11
11062 libxtst))
11063 (home-page "https://wiki.gnome.org/Apps/Cheese")
11064 (synopsis "Webcam photo booth software for GNOME")
11065 (description
11066 "Cheese uses your webcam to take photos and videos. Cheese can also
11067 apply fancy special effects and lets you share the fun with others.")
11068 (license license:gpl2+)))
11069
11070 (define-public passwordsafe
11071 (package
11072 (name "passwordsafe")
11073 (version "5.1")
11074 (source
11075 (origin
11076 (method git-fetch)
11077 (uri (git-reference
11078 (url "https://gitlab.gnome.org/World/secrets")
11079 (commit version)))
11080 (file-name (git-file-name name version))
11081 (sha256
11082 (base32 "0kd43j6i017wdsqj6d5gnxhfv4ijnh3xahlw7md2gh51i8p682j6"))))
11083 (build-system meson-build-system)
11084 (arguments
11085 (list #:glib-or-gtk? #t
11086 #:meson meson-0.59
11087 #:phases
11088 #~(modify-phases %standard-phases
11089 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11090 (lambda* (#:key outputs #:allow-other-keys)
11091 (let ((prog (string-append #$output
11092 "/bin/gnome-passwordsafe"))
11093 (pylib (string-append
11094 #$output "/lib/python"
11095 #$(version-major+minor
11096 (package-version (this-package-input "python")))
11097 "/site-packages")))
11098 (wrap-program prog
11099 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11100 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11101 (native-inputs
11102 (list desktop-file-utils
11103 gettext-minimal
11104 `(,glib "bin")
11105 gobject-introspection
11106 `(,gtk+ "bin")
11107 pkg-config))
11108 (inputs
11109 (list glib
11110 gsettings-desktop-schemas
11111 gtk+
11112 libhandy
11113 libpwquality
11114 python
11115 python-pygobject
11116 python-pykeepass))
11117 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
11118 (synopsis "Password manager for the GNOME desktop")
11119 (description
11120 "Password Safe is a password manager which makes use of the KeePass v4
11121 format. It integrates perfectly with the GNOME desktop and provides an easy
11122 and uncluttered interface for the management of password databases.")
11123 (license license:gpl3+)))
11124
11125 (define-public sound-juicer
11126 (package
11127 (name "sound-juicer")
11128 (version "3.24.0")
11129 (source
11130 (origin
11131 (method url-fetch)
11132 (uri (string-append "mirror://gnome/sources/" name "/"
11133 (version-major+minor version) "/"
11134 name "-" version ".tar.xz"))
11135 (sha256
11136 (base32
11137 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
11138 (build-system glib-or-gtk-build-system)
11139 (native-inputs
11140 (list desktop-file-utils intltool itstool pkg-config libxml2))
11141 (inputs
11142 (list gtk+
11143 gsettings-desktop-schemas
11144 gstreamer
11145 gst-plugins-base
11146 gst-plugins-good
11147 iso-codes
11148 brasero
11149 libcanberra
11150 libdiscid
11151 libmusicbrainz
11152 neon))
11153 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
11154 (synopsis "Audio music cd ripper")
11155 (description "Sound Juicer extracts audio from compact discs and convert it
11156 into audio files that a personal computer or digital audio player can play.
11157 It supports ripping to any audio codec supported by a GStreamer plugin, such as
11158 mp3, Ogg Vorbis and FLAC")
11159 (license license:gpl2+)))
11160
11161 (define-public soundconverter
11162 (package
11163 (name "soundconverter")
11164 (version "3.0.2")
11165 (source
11166 (origin
11167 (method url-fetch)
11168 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
11169 version "/+download/"
11170 "soundconverter-" version ".tar.xz"))
11171
11172 (sha256
11173 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
11174 (build-system glib-or-gtk-build-system)
11175 (arguments
11176 `(#:imported-modules ((guix build python-build-system)
11177 (guix build glib-or-gtk-build-system)
11178 ,@%gnu-build-system-modules)
11179
11180 #:modules ((guix build glib-or-gtk-build-system)
11181 (guix build utils)
11182 ((guix build gnu-build-system) #:prefix gnu:)
11183 ((guix build python-build-system) #:prefix python:))
11184
11185 #:phases
11186 (modify-phases %standard-phases
11187 (add-after 'install 'wrap-soundconverter-for-python
11188 (assoc-ref python:%standard-phases 'wrap))
11189 (add-after 'install 'wrap-soundconverter
11190 (lambda* (#:key inputs outputs #:allow-other-keys)
11191 (let ((out (assoc-ref outputs "out"))
11192 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
11193 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
11194 (wrap-program (string-append out "/bin/soundconverter")
11195 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
11196 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
11197 #t)))))
11198 (native-inputs
11199 `(("intltool" ,intltool)
11200 ("pkg-config" ,pkg-config)
11201 ("glib:bin" ,glib "bin")))
11202 (inputs
11203 (list gtk+ python python-pygobject gstreamer gst-plugins-base))
11204 (home-page "https://soundconverter.org/")
11205 (synopsis "Convert between audio formats with a graphical interface")
11206 (description
11207 "SoundConverter supports converting between many audio formats including
11208 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
11209 configurable file renaming.")
11210 (license license:gpl3)))
11211
11212 (define-public workrave
11213 (package
11214 (name "workrave")
11215 (version "1.10.50")
11216 (source
11217 (origin
11218 (method git-fetch)
11219 (uri (git-reference
11220 (url "https://github.com/rcaelers/workrave")
11221 (commit (string-append "v" (string-map
11222 (match-lambda (#\. #\_) (chr chr))
11223 version)))))
11224 (file-name (git-file-name name version))
11225 (sha256
11226 (base32 "0fj3fqmdn4nsjgvbbvzpxw2mgiihcr1zpb08amg2p6hg9n11y9bx"))))
11227 (build-system glib-or-gtk-build-system)
11228 (arguments
11229 ;; The only tests are maintainer tests (in po/), which fail.
11230 `(#:tests? #f))
11231 (inputs (list glib
11232 gtk+
11233 gdk-pixbuf
11234 gtkmm-3
11235 glibmm
11236 libx11
11237 libxtst
11238 dconf
11239 libice
11240 libsm
11241 libxscrnsaver))
11242 (native-inputs `(("boost" ,boost)
11243 ("pkg-config" ,pkg-config)
11244 ("gettext" ,gettext-minimal)
11245 ("autoconf" ,autoconf)
11246 ("autoconf-archive" , autoconf-archive)
11247 ("automake" ,automake)
11248 ("libtool" ,libtool)
11249 ("intltool" ,intltool)
11250 ("gobject-introspection" ,gobject-introspection)
11251 ("python3" ,python-3)
11252 ("python-jinja2" ,python-jinja2)))
11253 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
11254 (description
11255 "Workrave is a program that assists in the recovery and prevention of
11256 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
11257 micro-pauses and rest breaks, and restricts you to your daily limit.")
11258 (home-page "http://www.workrave.org")
11259 (license license:gpl3+)))
11260
11261 (define-public ghex
11262 (package
11263 (name "ghex")
11264 (version "3.18.4")
11265 (source (origin
11266 (method url-fetch)
11267 (uri (string-append "mirror://gnome/sources/ghex/"
11268 (version-major+minor version) "/"
11269 "ghex-" version ".tar.xz"))
11270 (sha256
11271 (base32
11272 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
11273 (build-system meson-build-system)
11274 (arguments
11275 '(#:glib-or-gtk? #t
11276 #:phases
11277 (modify-phases %standard-phases
11278 (add-after 'unpack 'skip-gtk-update-icon-cache
11279 ;; Don't create 'icon-theme.cache'.
11280 (lambda _
11281 (substitute* "meson_post_install.py"
11282 (("gtk-update-icon-cache") (which "true")))
11283 #t)))))
11284 (native-inputs
11285 `(("pkg-config" ,pkg-config)
11286 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
11287 ("gnome-common" ,gnome-common)
11288 ("which" ,which)
11289 ("intltool" ,intltool)
11290 ("yelp-tools" ,yelp-tools)
11291 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
11292 (inputs
11293 `(("atk" ,atk)
11294 ("gtk" ,gtk+)))
11295 (synopsis "GNOME hexadecimal editor")
11296 (description "The GHex program can view and edit files in two ways:
11297 hexadecimal or ASCII. It is useful for editing binary files in general.")
11298 (home-page "https://wiki.gnome.org/Apps/Ghex")
11299 (license license:gpl2)))
11300
11301 (define-public libdazzle
11302 (package
11303 (name "libdazzle")
11304 (version "3.44.0")
11305 (source (origin
11306 (method url-fetch)
11307 (uri (string-append "mirror://gnome/sources/libdazzle/"
11308 (version-major+minor version) "/"
11309 "libdazzle-" version ".tar.xz"))
11310 (sha256
11311 (base32
11312 "1blfs61ifv4fywl0wbr1cm3rvmgrv06yiqajbnq0qs72nrgf9lrw"))))
11313 (build-system meson-build-system)
11314 (arguments
11315 `(#:phases
11316 (modify-phases %standard-phases
11317 (add-before 'check 'pre-check
11318 (lambda _
11319 ;; Tests require a running X server.
11320 (system "Xvfb :1 &")
11321 (setenv "DISPLAY" ":1"))))))
11322 (native-inputs
11323 (list `(,glib "bin") ; glib-compile-resources
11324 gobject-introspection
11325 pkg-config
11326 ;; For tests.
11327 xorg-server-for-tests
11328 vala))
11329 (inputs
11330 (list glib
11331 gtk+))
11332 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
11333 (synopsis "Companion library to GObject and Gtk+")
11334 (description "The libdazzle library is a companion library to GObject and
11335 Gtk+. It provides various features that the authors wish were in the
11336 underlying library but cannot for various reasons. In most cases, they are
11337 wildly out of scope for those libraries. In other cases, they are not quite
11338 generic enough to work for everyone.")
11339 (license license:gpl3+)))
11340
11341 (define-public evolution
11342 (package
11343 (name "evolution")
11344 (version "3.42.1")
11345 (source (origin
11346 (method url-fetch)
11347 (uri (string-append "mirror://gnome/sources/evolution/"
11348 (version-major+minor version) "/"
11349 "evolution-" version ".tar.xz"))
11350 (sha256
11351 (base32
11352 "0igfzapdvgfx2gnpwfkjfkn7l5j186wk88ni39vqas1sl7ijlls6"))))
11353 (build-system cmake-build-system)
11354 (arguments
11355 `(#:imported-modules (,@%cmake-build-system-modules
11356 (guix build glib-or-gtk-build-system))
11357 #:modules ((guix build cmake-build-system)
11358 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11359 (guix build utils))
11360 #:configure-flags
11361 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
11362 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
11363 ; in four years and cannot be built.
11364 #:phases
11365 (modify-phases %standard-phases
11366 ;; The build system attempts to install user interface modules to the
11367 ;; output directory of the "evolution-data-server" package. This
11368 ;; change redirects that change.
11369 (add-after 'unpack 'patch-ui-module-dir
11370 (lambda* (#:key outputs #:allow-other-keys)
11371 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
11372 (("\\$\\{edsuimoduledir\\}")
11373 (string-append (assoc-ref outputs "out")
11374 "/lib/evolution-data-server/ui-modules")))))
11375 (add-after 'install 'glib-or-gtk-compile-schemas
11376 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
11377 (add-after 'install 'glib-or-gtk-wrap
11378 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11379 (native-inputs
11380 (list `(,glib "bin") ; glib-mkenums
11381 pkg-config intltool itstool))
11382 (inputs
11383 `(("enchant" ,enchant)
11384 ("evolution-data-server" ,evolution-data-server) ; must be the same version
11385 ("gcr" ,gcr)
11386 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11387 ("gnome-autoar" ,gnome-autoar)
11388 ("gnome-desktop" ,gnome-desktop)
11389 ("gspell" ,gspell)
11390 ("highlight" ,highlight)
11391 ("libcanberra" ,libcanberra)
11392 ("libgweather" ,libgweather)
11393 ("libnotify" ,libnotify)
11394 ("libsoup" ,libsoup)
11395 ("nss" ,nss)
11396 ("openldap" ,openldap)
11397 ("webkitgtk" ,webkitgtk-with-libsoup2) ; because of evolution-data-server
11398 ("ytnef" ,ytnef)))
11399 (home-page "https://gitlab.gnome.org/GNOME/evolution")
11400 (synopsis "Manage your email, contacts and schedule")
11401 (description "Evolution is a personal information management application
11402 that provides integrated mail, calendaring and address book
11403 functionality.")
11404 ;; See COPYING for details.
11405 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
11406 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
11407 license:lgpl2.1+)))) ; smime/lib/*
11408
11409 (define-public gthumb
11410 (package
11411 (name "gthumb")
11412 (version "3.12.2")
11413 (source (origin
11414 (method url-fetch)
11415 (uri (string-append "mirror://gnome/sources/gthumb/"
11416 (version-major+minor version) "/"
11417 "gthumb-" version ".tar.xz"))
11418 (sha256
11419 (base32
11420 "09flm8s6jrvfya2ypw5873mnnani8ssy7wdv3ra1cljk4bjszy4p"))))
11421 (build-system meson-build-system)
11422 (arguments
11423 `(#:glib-or-gtk? #t
11424 #:configure-flags
11425 ;; Ensure the RUNPATH contains all installed library locations.
11426 (list (string-append "-Dc_link_args=-Wl,-rpath="
11427 (assoc-ref %outputs "out")
11428 "/lib/gthumb/extensions")
11429 (string-append "-Dcpp_link_args=-Wl,-rpath="
11430 (assoc-ref %outputs "out")
11431 "/lib/gthumb/extensions"))))
11432 (native-inputs
11433 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11434 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11435 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11436 ("intltool" ,intltool)
11437 ("itstool" ,itstool)
11438 ("pkg-config" ,pkg-config)
11439 ("python" ,python)))
11440 (inputs
11441 `(("clutter" ,clutter)
11442 ("clutter-gst" ,clutter-gst)
11443 ("clutter-gtk" ,clutter-gtk)
11444 ("colord" ,colord)
11445 ("exiv2" ,exiv2)
11446 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11447 ("gstreamer" ,gstreamer)
11448 ("gtk" ,gtk+)
11449 ("libheif" ,libheif)
11450 ("libjpeg" ,libjpeg-turbo)
11451 ("libraw" ,libraw)
11452 ("librsvg" ,librsvg)
11453 ("libtiff" ,libtiff)
11454 ("libwebp" ,libwebp)))
11455 (home-page "https://wiki.gnome.org/Apps/Gthumb")
11456 (synopsis "GNOME image viewer and browser")
11457 (description "GThumb is an image viewer, browser, organizer, editor and
11458 advanced image management tool")
11459 (license license:gpl2+)))
11460
11461 (define-public terminator
11462 (package
11463 (name "terminator")
11464 (version "2.1.1")
11465 (source
11466 (origin
11467 (method url-fetch)
11468 (uri (string-append "https://github.com/gnome-terminator/terminator/"
11469 "releases/download/v" version "/"
11470 name "-" version ".tar.gz"))
11471 (sha256
11472 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
11473 (build-system python-build-system)
11474 (native-inputs
11475 `(("gettext" ,gettext-minimal)
11476 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11477 ("gobject-introspection" ,gobject-introspection)
11478 ("intltool" ,intltool)
11479 ("pkg-config" ,pkg-config)
11480 ("python-psutil" ,python-psutil)
11481 ("python-pytest-runner" ,python-pytest-runner)
11482 ("python-pytest" ,python-pytest)))
11483 (inputs
11484 `(("cairo" ,cairo)
11485 ("dbus-glib" ,dbus-glib)
11486 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11487 ("gtk+" ,gtk+)
11488 ("python" ,python-wrapper)
11489 ("python-dbus" ,python-dbus)
11490 ("python-notify2" ,python-notify2)
11491 ("python-pycairo" ,python-pycairo)
11492 ("python-pygobject" ,python-pygobject)
11493 ("vte" ,vte)))
11494 (propagated-inputs
11495 (list python-configobj))
11496 (arguments
11497 ;; One test out of 28 fails due to dbus-python and python-notify; skip
11498 ;; tests.
11499 `(#:tests? #f
11500 #:imported-modules ((guix build glib-or-gtk-build-system)
11501 ,@%python-build-system-modules)
11502 #:modules ((guix build python-build-system)
11503 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11504 (guix build utils))
11505 #:phases
11506 (modify-phases %standard-phases
11507 (add-after 'unpack 'handle-dbus-python
11508 (lambda _
11509 ;; python-dbus cannot be found but it's really there. See
11510 ;; https://github.com/SpotlightKid/jack-select/issues/2
11511 (substitute* "setup.py"
11512 (("'dbus-python',") ""))))
11513 (add-after 'install 'wrap-program
11514 (lambda* (#:key outputs #:allow-other-keys)
11515 (let ((prog (string-append (assoc-ref outputs "out")
11516 "/bin/terminator"))
11517 (pylib (string-append (assoc-ref outputs "out")
11518 "/lib/python"
11519 ,(version-major+minor
11520 (package-version python))
11521 "/site-packages")))
11522 (wrap-program prog
11523 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11524 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
11525 (add-after 'wrap-program 'glib-or-gtk-wrap
11526 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11527 (home-page "https://gnome-terminator.org/")
11528 (synopsis "Store and run multiple GNOME terminals in one window")
11529 (description
11530 "Terminator allows you to run multiple GNOME terminals in a grid and
11531 tabs, and it supports drag and drop re-ordering of terminals.")
11532 (license license:gpl2)))
11533
11534 (define-public libhandy
11535 (package
11536 (name "libhandy")
11537 (version "1.7.90")
11538 (source
11539 (origin
11540 (method git-fetch)
11541 (uri (git-reference
11542 (url "https://gitlab.gnome.org/GNOME/libhandy")
11543 (commit version)))
11544 (file-name (git-file-name name version))
11545 (sha256
11546 (base32 "1z8sbx7g19c1p8dy0sn0l25qfvrd2j28h269lsqm1y98r818h2k1"))))
11547 (build-system meson-build-system)
11548 (arguments
11549 `(#:configure-flags
11550 '("-Dglade_catalog=enabled"
11551 ;; XXX: Generating the documentation fails because the
11552 ;; libhandy.devhelp2 document cannot be created. This seems to be
11553 ;; caused by a problem during the XSL transformation.
11554 "-Dgtk_doc=false")
11555 #:phases
11556 (modify-phases %standard-phases
11557 (add-after 'unpack 'patch-docbook-xml
11558 (lambda* (#:key inputs #:allow-other-keys)
11559 (for-each
11560 (lambda (file)
11561 (substitute* file
11562 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
11563 (search-input-file inputs
11564 "/xml/dtd/docbook/docbookx.dtd"))))
11565 (find-files "doc" "\\.xml"))))
11566 (add-before 'check 'pre-check
11567 (lambda _
11568 ;; Tests require a running X server.
11569 (system "Xvfb :1 &")
11570 (setenv "DISPLAY" ":1"))))))
11571 (inputs
11572 (list gtk+ glade3))
11573 (native-inputs
11574 (list gobject-introspection ; for g-ir-scanner
11575 `(,glib "bin")
11576 vala
11577 libxml2
11578 libxslt
11579 docbook-xsl
11580 docbook-xml-4.3
11581 gtk-doc/stable
11582 pkg-config
11583 gettext-minimal
11584
11585 ;; Test suite dependencies.
11586 hicolor-icon-theme
11587 xorg-server-for-tests))
11588 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11589 (synopsis "Library full of GTK+ widgets for mobile phones")
11590 (description "The aim of the handy library is to help with developing user
11591 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11592 for usage on small and big screens.")
11593 (license license:lgpl2.1+)))
11594
11595 (define-public libhandy-0.0
11596 (package
11597 (inherit libhandy)
11598 (version "0.0.13")
11599 (source
11600 (origin
11601 (method git-fetch)
11602 (uri (git-reference
11603 (url "https://gitlab.gnome.org/GNOME/libhandy")
11604 (commit (string-append "v" version))))
11605 (file-name (git-file-name "libhandy" version))
11606 (sha256
11607 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11608 (arguments
11609 (substitute-keyword-arguments (package-arguments libhandy)
11610 ((#:configure-flags flags)
11611 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11612
11613 (define-public libgit2-glib
11614 (package
11615 (name "libgit2-glib")
11616 (version "1.0.0.1")
11617 (source (origin
11618 (method url-fetch)
11619 (uri (string-append "mirror://gnome/sources/" name "/"
11620 (version-major+minor version) "/"
11621 name "-" version ".tar.xz"))
11622 (sha256
11623 (base32
11624 "0mrb21cgqmbhbxqxwx76yry1ifqj1k4vy6455n6s034m6rlms2j6"))))
11625 (build-system meson-build-system)
11626 (native-inputs
11627 (list `(,glib "bin") ;; For glib-mkenums
11628 gobject-introspection
11629 pkg-config
11630 python-pygobject
11631 python-wrapper
11632 vala))
11633 (inputs
11634 (list glib libssh2))
11635 (propagated-inputs
11636 (list ;; In Requires of libgit2-glib.pc.
11637 libgit2))
11638 (synopsis "GLib wrapper around the libgit2 Git access library")
11639 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11640 access library. It only implements the core plumbing functions, not really the
11641 higher level porcelain stuff.")
11642 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11643 (license license:gpl2+)))
11644
11645 (define-public gitg
11646 (package
11647 (name "gitg")
11648 (version "41")
11649 (source (origin
11650 (method url-fetch)
11651 (uri (string-append "mirror://gnome/sources/" name "/"
11652 (version-major version) "/"
11653 name "-" version ".tar.xz"))
11654 (sha256
11655 (base32
11656 "0aa6djcf7rjw0q688mfy47k67bbjpnx6aw1xs94abfhgn6gipdkz"))))
11657 (build-system meson-build-system)
11658 (arguments
11659 (list
11660 #:glib-or-gtk? #t
11661 #:phases
11662 #~(modify-phases %standard-phases
11663 (add-after 'unpack 'disable-post-install-partially
11664 (lambda _
11665 (substitute* "meson_post_install.py"
11666 (("'python'") ; there are no python sources to compile
11667 (string-append "'" (which "true") "'"))
11668 (("gtk-update-icon-cache") (which "true")))))
11669 (add-after 'unpack 'fix-test-sources
11670 (lambda _
11671 (substitute* "tests/libgitg/test-commit.vala"
11672 (("/bin/bash") (which "bash")))))
11673 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11674 (lambda* (#:key outputs #:allow-other-keys)
11675 (let ((prog (string-append #$output "/bin/gitg")))
11676 (wrap-program prog
11677 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11678 (inputs
11679 (list glib
11680 gsettings-desktop-schemas
11681 gspell
11682 gtk+
11683 gtksourceview
11684 json-glib
11685 libdazzle
11686 libgee
11687 libgit2-glib
11688 libpeas
11689 libsecret
11690 libsoup-minimal-2
11691 libxml2))
11692 (native-inputs
11693 (list `(,glib "bin")
11694 `(,gtk+ "bin")
11695 gobject-introspection
11696 intltool
11697 pkg-config
11698 python
11699 vala))
11700 (synopsis "Graphical user interface for git")
11701 (description
11702 "gitg is a graphical user interface for git. It aims at being a small,
11703 fast and convenient tool to visualize the history of git repositories.
11704 Besides visualization, gitg also provides several utilities to manage your
11705 repository and commit your work.")
11706 (home-page "https://wiki.gnome.org/Apps/Gitg")
11707 (license license:gpl2+)))
11708
11709 (define-public gamin
11710 (package
11711 (name "gamin")
11712 (version "0.1.10")
11713 (source (origin
11714 (method url-fetch)
11715 (uri (string-append "mirror://gnome/sources/" name "/"
11716 (version-major+minor version) "/"
11717 name "-" version ".tar.bz2"))
11718 (sha256
11719 (base32
11720 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11721 (build-system gnu-build-system)
11722 (arguments
11723 `(#:phases
11724 (modify-phases %standard-phases
11725 ;; The 'config.sub' is too old to recognise aarch64.
11726 ,@(if (and=> (%current-target-system) target-aarch64?)
11727 `((add-after 'unpack 'replace-config.sub
11728 (lambda _
11729 (delete-file "config.sub")
11730 (symlink (which "config.sub") "config.sub"))))
11731 '())
11732 (add-after 'unpack 'remove-deprecated-macro
11733 (lambda _
11734 (substitute* '("server/gam_node.c"
11735 "server/gam_subscription.h"
11736 "server/gam_node.h"
11737 "server/gam_subscription.c")
11738 (("G_CONST_RETURN") "const"))
11739 #t))
11740 ;; The configure script runs a test program unconditionally,
11741 ;; without an option to manually set the test result.
11742 ;; Override this test anyway.
11743 ,@(if (%current-target-system)
11744 `((add-after 'bootstrap 'set-have-abstract-sockets
11745 (lambda _
11746 (define in-abstract-sockets-test? #f)
11747 (substitute* "configure"
11748 (("^#### Abstract sockets\n$")
11749 (set! in-abstract-sockets-test? #t)
11750 "#### Abstract sockets\n")
11751 (("^have_abstract_sockets=no\n$")
11752 (set! in-abstract-sockets-test? #f)
11753 ;; ‘Abstract sockets’ appear to be Linux-only.
11754 (string-append "have_abstract_sockets="
11755 ,(if (target-linux?)
11756 "yes"
11757 "no")
11758 "\nif false; then\nif false; then :\n"))
11759 (("^(.*\n)$" line)
11760 (if in-abstract-sockets-test?
11761 "" ; delete
11762 line))))))
11763 '()))))
11764 (inputs
11765 (list glib))
11766 (native-inputs
11767 `(("pkg-config" ,pkg-config)
11768 ,@(if (and=> (%current-target-system) target-aarch64?)
11769 `(("config" ,config))
11770 '())))
11771 (home-page "https://people.gnome.org/~veillard/gamin/")
11772 (synopsis "File alteration monitor")
11773 (description
11774 "Gamin is a file and directory monitoring system defined to be a subset
11775 of the FAM (File Alteration Monitor) system. This is a service provided by a
11776 library which detects when a file or a directory has been modified.")
11777 (license license:gpl2+)))
11778
11779 (define-public gnome-mahjongg
11780 (package
11781 (name "gnome-mahjongg")
11782 (version "3.38.3")
11783 (source (origin
11784 (method url-fetch)
11785 (uri (string-append "mirror://gnome/sources/" name "/"
11786 (version-major+minor version) "/" name "-"
11787 version ".tar.xz"))
11788 (sha256
11789 (base32
11790 "144ia3zn9rhwa1xbdkvsz6m0dsysl6mxvqw9bnrlh845hmyy9cfj"))))
11791 (build-system meson-build-system)
11792 (arguments
11793 `(#:meson ,meson-0.59
11794 #:glib-or-gtk? #t))
11795 (native-inputs
11796 `(("appstream-glib" ,appstream-glib)
11797 ("gettext" ,gettext-minimal)
11798 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11799 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11800 ("itstool" ,itstool)
11801 ("pkg-config" ,pkg-config)
11802 ("vala" ,vala)))
11803 (propagated-inputs
11804 (list dconf))
11805 (inputs
11806 (list glib gtk+))
11807 (synopsis "Mahjongg tile-matching game")
11808 (description "GNOME Mahjongg is a game based on the classic Chinese
11809 tile-matching game Mahjongg. It features multiple board layouts, tile themes,
11810 and a high score table.")
11811 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11812 (license license:gpl2+)))
11813
11814 (define-public gnome-themes-extra
11815 (package
11816 (name "gnome-themes-extra")
11817 (version "3.28")
11818 (source
11819 (origin
11820 (method url-fetch)
11821 (uri (string-append "mirror://gnome/sources/" name "/"
11822 (version-major+minor version) "/" name "-"
11823 version ".tar.xz"))
11824 (sha256
11825 (base32
11826 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11827 (build-system gnu-build-system)
11828 (arguments
11829 '(#:configure-flags
11830 ;; Don't create 'icon-theme.cache'.
11831 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11832 (true (string-append coreutils "/bin/true")))
11833 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11834 (native-inputs
11835 `(("glib:bin" ,glib "bin")
11836 ("intltool" ,intltool)
11837 ("pkg-config" ,pkg-config)))
11838 (inputs
11839 `(("glib" ,glib)
11840 ("gtk+" ,gtk+)
11841 ("gtk+-2" ,gtk+-2)
11842 ("librsvg" ,librsvg)
11843 ("libxml2" ,libxml2)))
11844 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11845 (synopsis "GNOME Extra Themes")
11846 (description "This package provides themes and related elements that don't
11847 really fit in other upstream packages. It offers legacy support for GTK+ 2
11848 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11849 index files needed for Adwaita to be used outside of GNOME.")
11850 (license license:lgpl2.1+)))
11851
11852 (define-public gnome-themes-standard
11853 (deprecated-package "gnome-themes-standard" gnome-themes-extra))
11854
11855 (define-public gnote
11856 (package
11857 (name "gnote")
11858 (version "41.2")
11859 (source
11860 (origin
11861 (method url-fetch)
11862 (uri (string-append "mirror://gnome/sources/" name "/"
11863 (version-major version) "/"
11864 "gnote-" version ".tar.xz"))
11865 (sha256
11866 (base32 "0gs2j988rwfrxckb8qxlkyxnvqsv30q32myqish6hssfa51yzc11"))))
11867 (build-system meson-build-system)
11868 (arguments
11869 `(#:glib-or-gtk? #t
11870 #:phases (modify-phases %standard-phases
11871 (add-after 'unpack 'skip-gtk-update-icon-cache
11872 ;; Don't create 'icon-theme.cache'.
11873 (lambda _
11874 (substitute* "post-install.py"
11875 (("gtk-update-icon-cache") "true")))))))
11876 (native-inputs
11877 (list desktop-file-utils
11878 `(,glib "bin")
11879 gobject-introspection
11880 intltool
11881 itstool
11882 pkg-config
11883 python))
11884 (inputs
11885 (list glibmm
11886 gsettings-desktop-schemas
11887 gspell
11888 gtk+
11889 gtkmm-3
11890 libsecret
11891 `(,util-linux "lib")
11892 libxml2
11893 libxslt))
11894 (synopsis "Note-taking application for the GNOME desktop")
11895 (description "Gnote is a note-taking application written for the GNOME
11896 desktop environment.")
11897 (home-page "https://wiki.gnome.org/Apps/Gnote")
11898 (license license:gpl3+)))
11899
11900 (define-public polari
11901 (package
11902 (name "polari")
11903 (version "41.0")
11904 (source (origin
11905 (method url-fetch)
11906 (uri (string-append "mirror://gnome/sources/polari/"
11907 (version-major version)
11908 "/polari-" version ".tar.xz"))
11909 (sha256
11910 (base32
11911 "1ss0x8idwar1q9p9535kzqb8idy7k2r48vrbjiyccw03cs0mzc53"))))
11912 (build-system meson-build-system)
11913 (arguments
11914 `(#:glib-or-gtk? #t
11915 #:phases
11916 (modify-phases %standard-phases
11917 (add-after 'unpack 'skip-gtk-update-icon-cache
11918 (lambda _
11919 (substitute* "meson/meson-postinstall.sh"
11920 (("gtk-update-icon-cache") (which "true")))))
11921 (add-after 'install 'fix-desktop-file
11922 ;; Hardcode launcher to be on the safe side
11923 (lambda* (#:key outputs #:allow-other-keys)
11924 (let ((out (assoc-ref outputs "out")))
11925 (substitute* (string-append out "/share/applications/"
11926 "org.gnome.Polari.desktop")
11927 (("Exec=.*") (string-append "Exec=" out "/bin/polari\n"))))))
11928 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11929 (lambda* (#:key outputs #:allow-other-keys)
11930 (let ((prog (string-append (assoc-ref outputs "out")
11931 "/bin/polari")))
11932 (wrap-program prog
11933 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11934 (inputs
11935 (list glib
11936 gsettings-desktop-schemas
11937 gspell
11938 gtk
11939 gjs
11940 libsecret
11941 libsoup-minimal-2
11942 telepathy-glib
11943 telepathy-logger))
11944 (native-inputs
11945 (list `(,glib "bin")
11946 gobject-introspection
11947 intltool
11948 pkg-config
11949 yelp-tools))
11950 (propagated-inputs
11951 (list telepathy-idle telepathy-mission-control))
11952 (synopsis "Simple IRC Client")
11953 (description
11954 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11955 integrate seamlessly with the GNOME desktop.")
11956 (home-page "https://wiki.gnome.org/Apps/Polari")
11957 (license license:gpl2+)))
11958
11959 (define-public gnome-boxes
11960 (package
11961 (name "gnome-boxes")
11962 (version "42.3")
11963 (source
11964 (origin
11965 (method url-fetch)
11966 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11967 (version-major version) "/"
11968 "gnome-boxes-" version ".tar.xz"))
11969 (sha256
11970 (base32 "1lv0bdh935qj6wkv3ixg2pcv8yrapj79z02gw4fal3rhz3xggvsn"))))
11971 (build-system meson-build-system)
11972 (arguments
11973 (list #:glib-or-gtk? #t
11974 #:configure-flags #~(list "-Drdp=false"
11975 (string-append "-Dc_link_args=-Wl,-rpath="
11976 #$output
11977 "/lib/gnome-boxes"))
11978 #:phases #~(modify-phases %standard-phases
11979 (add-after 'unpack 'disable-gtk-update-icon-cache
11980 (lambda _
11981 (setenv "DESTDIR" "/"))))))
11982 (native-inputs
11983 (list desktop-file-utils ;for update-desktop-database
11984 gettext-minimal
11985 `(,glib "bin") ;for glib-compile-resources
11986 itstool
11987 pkg-config
11988 python
11989 vala))
11990 (inputs
11991 (list glib-networking ;for TLS support
11992 gsettings-desktop-schemas
11993 gtk+
11994 gtk-vnc
11995 gtksourceview
11996 json-glib
11997 libarchive
11998 libgudev
11999 libhandy
12000 libosinfo
12001 libsecret
12002 libsoup-minimal-2
12003 libusb
12004 libvirt
12005 libvirt-glib
12006 libxml2
12007 sparql-query
12008 spice-gtk
12009 tracker
12010 vte
12011 webkitgtk-with-libsoup2)) ;for webkit2gtk-4.0
12012 (home-page "https://wiki.gnome.org/Apps/Boxes")
12013 (synopsis "View, access, and manage remote and virtual systems")
12014 (description "GNOME Boxes is a simple application to view, access, and
12015 manage remote and virtual systems. Note that this application requires the
12016 @code{libvirt} and @code{virtlog} daemons to run. Use the command
12017 @command{info '(guix) Virtualization Services'} to learn how to configure
12018 these services on the Guix System.")
12019 (license (list
12020 ;; For data/icons/empty-boxes.png.
12021 license:cc-by2.0
12022 ;; For all others.
12023 license:lgpl2.0+))))
12024
12025 (define-public geary
12026 (package
12027 (name "geary")
12028 (version "40.0")
12029 (source (origin
12030 (method git-fetch)
12031 (uri (git-reference
12032 (url "https://gitlab.gnome.org/GNOME/geary.git")
12033 (commit (string-append "gnome-" version))))
12034 (file-name (git-file-name name version))
12035 (sha256
12036 (base32
12037 "04hvw86r8sczvjm1z3ls5y5y5h6nyfb648rjkfx05ib00mqq5v1x"))))
12038 (build-system meson-build-system)
12039 (arguments
12040 `(#:glib-or-gtk? #t
12041 #:configure-flags
12042 '("-Dprofile=release")
12043 #:phases (modify-phases %standard-phases
12044 (add-after 'unpack 'disable-failing-tests
12045 (lambda _
12046 (substitute* "test/test-client.vala"
12047 (("client.add_suite\\(new Application.CertificateManagerTest\\(\\).suite\\);")
12048 ""))))
12049 (add-after 'unpack 'generate-vapis
12050 (lambda* (#:key inputs #:allow-other-keys)
12051 ;; It’s not possible to generate the GMime vapi, because
12052 ;; there’s custom metadata that gmime didn’t
12053 ;; install. Thus, the vapi should be built and installed
12054 ;; with gmime.
12055 (define gmime
12056 (assoc-ref inputs "gmime"))
12057 (copy-file (string-append gmime "/share/vala/vapi/gmime-3.0.vapi")
12058 "bindings/vapi/gmime-3.0.vapi")))
12059 (add-after 'unpack 'disable-postinstall-script
12060 (lambda _
12061 (substitute* "build-aux/post_install.py"
12062 (("gtk-update-icon-cache")
12063 "true"))))
12064 (add-before 'check 'setup-home
12065 (lambda _
12066 ;; Tests require a writable HOME.
12067 (setenv "HOME" (getcwd))))
12068 (add-before 'check 'setup-xvfb
12069 (lambda _
12070 (system "Xvfb :1 &")
12071 (setenv "DISPLAY" ":1"))))))
12072 (inputs
12073 (list enchant
12074 folks
12075 gcr
12076 glib
12077 gmime
12078 gnome-online-accounts
12079 gsettings-desktop-schemas
12080 gspell
12081 gsound
12082 gtk+
12083 iso-codes
12084 json-glib
12085 libcanberra
12086 libgee
12087 libhandy
12088 libpeas
12089 libsecret
12090 libstemmer
12091 libunwind
12092 sqlite
12093 webkitgtk-with-libsoup2
12094 ytnef))
12095 (native-inputs
12096 (list appstream-glib
12097 cmake-minimal
12098 desktop-file-utils
12099 gettext-minimal
12100 glib
12101 `(,glib "bin")
12102 gmime
12103 gobject-introspection
12104 gsettings-desktop-schemas
12105 itstool
12106 libarchive
12107 libxml2
12108 pkg-config
12109 python-minimal
12110 vala
12111 xorg-server-for-tests))
12112 (synopsis "GNOME email application built around conversations")
12113 (description
12114 "Geary collects related messages together into conversations,
12115 making it easy to find and follow your discussions. Full-text and keyword
12116 search makes it easy to find the email you are looking for. Geary's
12117 full-featured composer lets you send rich, styled text with images, links, and
12118 lists, but also send lightweight, easy to read text messages. Geary
12119 automatically picks up your existing GNOME Online Accounts, and adding more is
12120 easy. Geary has a clean, fast, modern interface that works like you want it
12121 to.")
12122 (home-page "https://wiki.gnome.org/Apps/Geary")
12123 (license (list
12124 ;; geary
12125 license:lgpl2.1+
12126 ;; icons
12127 license:cc-by3.0
12128 license:cc-by-sa3.0
12129 license:public-domain
12130 ;; snowball
12131 license:bsd-2))))
12132
12133 (define-public glabels
12134 (package
12135 (name "glabels")
12136 (version "3.4.1")
12137 (source
12138 (origin
12139 (method url-fetch)
12140 (uri (string-append "mirror://gnome/sources/" name "/"
12141 (version-major+minor version) "/"
12142 "glabels-" version ".tar.xz"))
12143 (sha256
12144 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
12145 (build-system glib-or-gtk-build-system)
12146 (native-inputs
12147 `(("gettext" ,gettext-minimal)
12148 ("glib:bin" ,glib "bin")
12149 ("intltool" ,intltool)
12150 ("itstool" ,itstool)
12151 ("pkg-config" ,pkg-config)))
12152 (inputs
12153 (list gtk+ librsvg libxml2))
12154 (arguments
12155 `(#:configure-flags '("CFLAGS=-fcommon")))
12156 (home-page "https://glabels.org/")
12157 (synopsis "Program for creating labels and business cards")
12158 (description
12159 "gLabels is a program for creating labels and business cards. It is
12160 designed to work with various laser/ink-jet peel-off label and business
12161 card sheets that you’ll find at most office supply stores.")
12162 (license license:gpl3+)))
12163
12164 (define-public gnome-latex
12165 (package
12166 (name "gnome-latex")
12167 (version "3.41.2")
12168 (source
12169 (origin
12170 (method url-fetch)
12171 (uri (string-append "mirror://gnome/sources/" name "/"
12172 (version-major+minor version) "/"
12173 "gnome-latex-" version ".tar.xz"))
12174 (sha256
12175 (base32 "0cynhmrn99f4f3kddczsc58ak4b9sv2zkfbcyz7z16848nhz047k"))))
12176 (build-system glib-or-gtk-build-system)
12177 (native-inputs
12178 (list gettext-minimal
12179 `(,glib "bin")
12180 gobject-introspection
12181 gtk-doc/stable
12182 itstool
12183 pkg-config
12184 vala))
12185 (inputs
12186 (list dconf
12187 glib
12188 gspell
12189 libgee
12190 tepl
12191 uchardet))
12192 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
12193 (synopsis "LaTeX editor for the GNOME desktop")
12194 (description
12195 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
12196 such as build tools, completion of LaTeX commands, structure navigation,
12197 symbol tables, document templates, project management, spell-checking, menus
12198 and toolbars.")
12199 (license license:gpl3+)))
12200
12201 (define-public setzer
12202 (package
12203 (name "setzer")
12204 (version "0.4.1")
12205 (source
12206 (origin
12207 (method git-fetch)
12208 (uri (git-reference
12209 (url "https://github.com/cvfosammmm/Setzer")
12210 (commit (string-append "v" version))))
12211 (file-name (git-file-name name version))
12212 (sha256
12213 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
12214 (build-system meson-build-system)
12215 (arguments
12216 `(#:glib-or-gtk? #t
12217 #:phases
12218 (modify-phases %standard-phases
12219 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12220 (lambda* (#:key outputs #:allow-other-keys)
12221 (let ((prog (string-append (assoc-ref outputs "out")
12222 "/bin/setzer"))
12223 (pylib (string-append (assoc-ref outputs "out")
12224 "/lib/python"
12225 ,(version-major+minor
12226 (package-version python))
12227 "/site-packages")))
12228 (wrap-program prog
12229 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12230 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12231 #t))))))
12232 (native-inputs
12233 `(("desktop-file-utils" ,desktop-file-utils)
12234 ("gettext" ,gettext-minimal)
12235 ("glib:bin" ,glib "bin")
12236 ("gobject-introspection" ,gobject-introspection)
12237 ("gtk+:bin" ,gtk+ "bin")
12238 ("python-wrapper" ,python-wrapper)))
12239 (inputs
12240 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12241 ("gspell" ,gspell)
12242 ("gtk+" ,gtk+)
12243 ("gtksourceview" ,gtksourceview)
12244 ("pango" ,pango)
12245 ("poppler" ,poppler)
12246 ("python-pdfminer" ,python-pdfminer-six)
12247 ("python-pycairo" ,python-pycairo)
12248 ("python-pygobject" ,python-pygobject)
12249 ("python-pyxdg" ,python-pyxdg)
12250 ("webkitgtk" ,webkitgtk)
12251 ("xdg-utils" ,xdg-utils)))
12252 (home-page "https://www.cvfosammmm.org/setzer/")
12253 (synopsis "LaTeX editor written in Python with GTK+")
12254 (description
12255 "Setzer is a simple yet full-featured LaTeX editor written in Python with
12256 GTK+. It integrates well with the GNOME desktop environment.")
12257 (license license:gpl3+)))
12258
12259 (define-public apostrophe
12260 (package
12261 (name "apostrophe")
12262 (version "2.5")
12263 (source (origin
12264 (method git-fetch)
12265 (uri (git-reference
12266 (url "https://gitlab.gnome.org/somas/apostrophe")
12267 (commit (string-append "v" version))))
12268 (file-name (git-file-name name version))
12269 (sha256
12270 (base32
12271 "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp"))))
12272 (build-system meson-build-system)
12273 (arguments
12274 `(#:glib-or-gtk? #t
12275 #:meson ,meson-0.59 ;fails with 0.60
12276 #:phases
12277 (modify-phases %standard-phases
12278 (add-after 'unpack 'patch-meson
12279 (lambda _
12280 (substitute* "build-aux/meson_post_install.py"
12281 (("gtk-update-icon-cache") "true"))))
12282 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12283 (lambda* (#:key inputs outputs #:allow-other-keys)
12284 (let ((prog (string-append (assoc-ref outputs "out")
12285 "/bin/apostrophe"))
12286 (pylib (string-append (assoc-ref outputs "out")
12287 "/lib/python"
12288 ,(version-major+minor
12289 (package-version
12290 (this-package-input "python")))
12291 "/site-packages")))
12292 (wrap-program prog
12293 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12294 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
12295 `("PATH" prefix (,(dirname
12296 (search-input-file inputs
12297 "/bin/pandoc")))))))))))
12298 (inputs
12299 (list glib
12300 gobject-introspection
12301 gspell
12302 gtk+
12303 libhandy
12304 pandoc
12305 python
12306 python-chardet
12307 python-levenshtein
12308 python-regex
12309 python-pycairo
12310 python-pygobject
12311 python-pyenchant
12312 python-pypandoc
12313 webkitgtk-with-libsoup2))
12314 (native-inputs
12315 (list gettext-minimal
12316 `(,glib "bin")
12317 pkg-config
12318 sassc))
12319 (home-page "https://gitlab.gnome.org/somas/apostrophe")
12320 (synopsis "Markdown editor written in Python with GTK+")
12321 (description "Apostrophe is a GTK+ based distraction-free Markdown editor.
12322 It uses pandoc as back-end for parsing Markdown.")
12323 (license license:gpl3)))
12324
12325 (define-public libratbag
12326 (package
12327 (name "libratbag")
12328 (version "0.16")
12329 (source
12330 (origin
12331 (method git-fetch)
12332 (uri (git-reference
12333 (url "https://github.com/libratbag/libratbag")
12334 (commit (string-append "v" version))))
12335 (file-name (git-file-name name version))
12336 (sha256
12337 (base32 "0jjf6xc3a37icp5dvbxla3ai9is2ns31m0llbfq1bmb6dk8cd4n0"))))
12338 (build-system meson-build-system)
12339 (arguments
12340 `(#:configure-flags
12341 (list "-Dsystemd=false"
12342 "-Dlogind-provider=elogind"
12343 ,@(if (not (package? (this-package-native-input "valgrind")))
12344 `("-Dtests=false") ; Some tests still run.
12345 `()))
12346 #:phases
12347 (modify-phases %standard-phases
12348 (add-after 'install 'wrap
12349 (lambda* (#:key inputs outputs #:allow-other-keys)
12350 (let* ((out (assoc-ref outputs "out"))
12351 (site (string-append
12352 "/lib/python"
12353 ,(version-major+minor (package-version python))
12354 "/site-packages"))
12355 (evdev (string-append
12356 (assoc-ref inputs "python-evdev") site))
12357 (pygo (string-append
12358 (assoc-ref inputs "python-pygobject") site))
12359 (python-wrap
12360 `("GUIX_PYTHONPATH" = (,evdev ,pygo))))
12361 (wrap-program (string-append out "/bin/" "ratbagctl")
12362 python-wrap)
12363 #t))))))
12364 (native-inputs
12365 (append
12366 (list check pkg-config swig)
12367 (if (member (%current-system) (package-supported-systems valgrind))
12368 (list valgrind)
12369 '())))
12370 (inputs
12371 `(("glib" ,glib)
12372 ("json-glib" ,json-glib)
12373 ("libevdev" ,libevdev)
12374 ("libsystemd" ,elogind)
12375 ("libunistring" ,libunistring)
12376 ("python" ,python)
12377 ("python-evdev" ,python-evdev)
12378 ("python-pygobject" ,python-pygobject)
12379 ("udev" ,eudev)))
12380 (home-page "https://github.com/libratbag/libratbag")
12381 (synopsis "DBus daemon and utility for configuring gaming mice")
12382 (description "libratbag provides @command{ratbagd}, a DBus daemon to
12383 configure input devices, mainly gaming mice. The daemon provides a generic
12384 way to access the various features exposed by these mice and abstracts away
12385 hardware-specific and kernel-specific quirks. There is also the
12386 @command{ratbagctl} command line interface for configuring devices.
12387
12388 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
12389 Steelseries.
12390
12391 The ratbagd DBus service can be enabled by adding the following service to
12392 your operating-system definition:
12393
12394 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12395 (license license:expat)))
12396
12397 (define-public piper
12398 (package
12399 (name "piper")
12400 (version "0.7")
12401 (source
12402 (origin
12403 (method git-fetch)
12404 (uri (git-reference
12405 (url "https://github.com/libratbag/piper")
12406 (commit version)))
12407 (sha256
12408 (base32 "0jsvfy0ihdcgnqljfgs41lys1nlz18qvsa0a8ndx3pyr41f8w8wf"))
12409 (file-name (git-file-name name version))))
12410 (build-system meson-build-system)
12411 (native-inputs
12412 (list appstream
12413 gettext-minimal
12414 `(,glib "bin")
12415 gobject-introspection
12416 pkg-config
12417 python-flake8))
12418 (inputs
12419 (list adwaita-icon-theme
12420 gtk+
12421 `(,gtk+ "bin")
12422 libratbag
12423 python
12424 python-evdev
12425 python-lxml
12426 python-pycairo
12427 python-pygobject))
12428 (arguments
12429 (list #:glib-or-gtk? #t
12430 #:phases
12431 #~(modify-phases %standard-phases
12432 (add-after 'unpack 'dont-update-gtk-icon-cache
12433 (lambda _
12434 (substitute* "meson.build"
12435 (("meson.add_install_script('meson_install.sh')") ""))))
12436 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12437 (lambda _
12438 (let ((pylib (string-append #$output
12439 "/lib/python"
12440 #$(version-major+minor
12441 (package-version python))
12442 "/site-packages")))
12443 (wrap-program
12444 (string-append #$output "/bin/piper")
12445 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12446 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
12447 (add-before 'check 'flake8-config
12448 (lambda _
12449 ;; Make sure the tests use the local flake8 config
12450 (symlink (string-append #$source "/.flake8") ".flake8"))))))
12451 (home-page "https://github.com/libratbag/piper/")
12452 (synopsis "Configure bindings and LEDs on gaming mice")
12453 (description "Piper is a GTK+ application for configuring gaming mice with
12454 onboard configuration for key bindings via libratbag. Piper requires
12455 a @command{ratbagd} daemon running with root privileges. It can be run
12456 manually as root, but is preferably configured as a DBus service that can
12457 launch on demand. This can be configured by enabling the following service,
12458 provided there is a DBus service present:
12459
12460 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12461 (license license:gpl2)))
12462
12463 (define-public parlatype
12464 (package
12465 (name "parlatype")
12466 (version "3.1")
12467 (source
12468 (origin
12469 (method git-fetch)
12470 (uri (git-reference
12471 (url "https://github.com/gkarsay/parlatype")
12472 (commit (string-append "v" version))))
12473 (file-name (git-file-name name version))
12474 (sha256
12475 (base32 "0cqrzbkyksfsm57riirmjkwf2nf2dgl1xpps1wvqxpij475qcb9b"))))
12476 (build-system meson-build-system)
12477 (arguments
12478 `(#:glib-or-gtk? #t
12479 #:tests? #f ;require internet access
12480 #:phases
12481 (modify-phases %standard-phases
12482 (add-after 'unpack 'skip-gtk-update-icon-cache
12483 (lambda _
12484 (substitute* "data/meson_post_install.py"
12485 (("gtk-update-icon-cache") "true"))))
12486 (add-after 'install 'wrap-parlatype
12487 ;; Add gstreamer plugin provided in this package to system's
12488 ;; plugins.
12489 (lambda* (#:key outputs #:allow-other-keys)
12490 (let* ((out (assoc-ref outputs "out"))
12491 (gst-plugin-path (string-append
12492 out "/lib/gstreamer-1.0/"
12493 ":"
12494 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
12495 (wrap-program (string-append out "/bin/parlatype")
12496 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path)))))))))
12497 (native-inputs
12498 (list appstream-glib
12499 desktop-file-utils ;for desktop-file-validate
12500 gettext-minimal
12501 `(,glib "bin") ;for glib-compile-resources
12502 pkg-config
12503 yelp-tools))
12504 (inputs
12505 (list gst-plugins-base
12506 gst-plugins-good
12507 gstreamer
12508 gtk+
12509 iso-codes
12510 pocketsphinx
12511 pulseaudio
12512 sphinxbase))
12513 (home-page "https://www.parlatype.org")
12514 (synopsis "GNOME audio player for transcription")
12515 (description "Parlatype is an audio player for the GNOME desktop
12516 environment. Its main purpose is the manual transcription of spoken
12517 audio files.")
12518 (license license:gpl3+)))
12519
12520 (define-public jsonrpc-glib
12521 (package
12522 (name "jsonrpc-glib")
12523 (version "3.34.0")
12524 (source (origin
12525 (method url-fetch)
12526 (uri (string-append "mirror://gnome/sources/" name "/"
12527 (version-major+minor version) "/"
12528 name "-" version ".tar.xz"))
12529 (sha256
12530 (base32
12531 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
12532 (build-system meson-build-system)
12533 (inputs
12534 (list json-glib glib))
12535 (native-inputs
12536 (list pkg-config
12537 `(,glib "bin") ; for glib-genmarshal, etc.
12538 gobject-introspection vala))
12539 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
12540 (synopsis "JSON-RPC library for GLib")
12541 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
12542 peers in either a synchronous or asynchronous fashion. It also allows
12543 communicating using the GVariant serialization format instead of JSON when
12544 both peers support it. You might want that when communicating on a single
12545 host to avoid parser overhead and memory-allocator fragmentation.")
12546 (license license:lgpl2.1+)))
12547
12548 (define-public feedbackd
12549 (package
12550 (name "feedbackd")
12551 (version "0.0.0+git20200527")
12552 (source (origin
12553 (method git-fetch)
12554 (uri (git-reference
12555 (url "https://source.puri.sm/Librem5/feedbackd.git")
12556 (commit (string-append "v" version))))
12557 (file-name (git-file-name name version))
12558 (sha256
12559 (base32
12560 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
12561 (build-system meson-build-system)
12562 (native-inputs
12563 (list `(,glib "bin") gobject-introspection pkg-config vala))
12564 (inputs
12565 (list dbus gsound json-glib libgudev))
12566 (propagated-inputs
12567 (list glib)) ; in Requires of libfeedback-0.0.pc
12568 (synopsis "Haptic/visual/audio feedback via DBus")
12569 (description "Feedbackd provides a DBus daemon to act on events to provide
12570 haptic, visual and audio feedback. It offers the libfeedbackd library and
12571 GObject introspection bindings.")
12572 (home-page "https://source.puri.sm/Librem5/feedbackd")
12573 (license (list license:lgpl2.1+ ; libfeedbackd
12574 license:lgpl3+)))) ; the rest
12575
12576 (define-public sysprof
12577 (package
12578 (name "sysprof")
12579 (version "3.44.0")
12580 (source
12581 (origin
12582 (method url-fetch)
12583 (uri (string-append "mirror://gnome/sources/sysprof/"
12584 (version-major+minor version) "/"
12585 "sysprof-" version ".tar.xz"))
12586 (sha256
12587 (base32 "0nq0icbln0ryqzlybr7wyl19mhr3vkqzs6wasn430fwpf5drypdb"))))
12588 (build-system meson-build-system)
12589 (arguments
12590 (list
12591 #:configure-flags
12592 #~(list (string-append "-Dsystemdunitdir=" #$output "/share/systemd"))
12593 #:phases
12594 #~(modify-phases %standard-phases
12595 (add-after 'unpack 'patch-install-script
12596 (lambda _
12597 (substitute* "build-aux/meson/post_install.sh"
12598 (("gtk-update-icon-cache") "true")
12599 (("update-desktop-database") "true")))))))
12600 (propagated-inputs
12601 (list polkit))
12602 (inputs
12603 (list glib
12604 gtk+
12605 json-glib
12606 libdazzle
12607 libunwind
12608 polkit))
12609 (native-inputs
12610 (list gettext-minimal
12611 `(,glib "bin") ;for gdbus-codegen, etc.
12612 itstool
12613 pkg-config
12614 libxml2))
12615 ;; This home page is so woefully out of date as to be essentially useless.
12616 ;; (home-page "http://www.sysprof.com")
12617 (home-page "https://wiki.gnome.org/Apps/Sysprof")
12618 (synopsis "System-wide performance profiler for GNU/Linux")
12619 (description
12620 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
12621 GNU/Linux system including the kernel and all user-space applications. This
12622 helps find the function(s) in which a program spends most of its time.
12623
12624 It uses the kernel's built-in @code{ptrace} feature and handles shared
12625 libraries. Applications do not need to be recompiled--or even restarted.")
12626 (license license:gpl3+)))
12627
12628 (define-public gnome-builder
12629 (package
12630 (name "gnome-builder")
12631 (version "41.2")
12632 (source (origin
12633 (method url-fetch)
12634 (uri (string-append "mirror://gnome/sources/" name "/"
12635 (version-major version) "/"
12636 name "-" version ".tar.xz"))
12637 (sha256
12638 (base32
12639 "04p031i999dccbnlbysmr6f93x7dji7b559j6yhdsqbqgxb7ncan"))
12640 (patches
12641 (search-patches "gnome-builder-update-libportal.patch"))))
12642 (build-system meson-build-system)
12643 (arguments
12644 (list
12645 #:glib-or-gtk? #t ;To wrap binaries and compile schemas
12646 #:configure-flags
12647 #~(list "-Dnetwork_tests=false"
12648 ;; TODO: Enable all plugins...
12649 ;; Flatpak plugin wants libsoup 2
12650 "-Dplugin_flatpak=false"
12651 ;; ... except this one.
12652 "-Dplugin_update_manager=false")
12653 #:phases
12654 #~(modify-phases %standard-phases
12655 (add-after 'unpack 'patch-meson
12656 (lambda* (#:key inputs #:allow-other-keys)
12657 (substitute* "build-aux/meson/post_install.py"
12658 (("gtk-update-icon-cache") "true")
12659 (("update-desktop-database") "true"))
12660 (substitute* "src/libide/meson.build"
12661 (("/usr/lib") (string-append (assoc-ref inputs
12662 "python-pygobject")
12663 "/lib")))))
12664 (add-after 'configure 'fix-ninja
12665 (lambda _
12666 ;; #43296: meson(?) incorrectly assumes we want to link
12667 ;; this PIE against a static libselinux.
12668 (substitute* "build.ninja"
12669 (("libselinux\\.a") "libselinux.so"))))
12670 (add-before 'check 'pre-check
12671 (lambda _
12672 (system "Xvfb :1 &")
12673 (setenv "DISPLAY" ":1"))))))
12674 (inputs (list cmark
12675 clang
12676 devhelp-with-libsoup2
12677 glade3
12678 gspell
12679 gtk+
12680 json-glib
12681 jsonrpc-glib
12682 libdazzle
12683 libgit2-glib
12684 libpeas
12685 libportal
12686 libsoup-minimal-2
12687 llvm
12688 python
12689 python-pygobject
12690 sysprof
12691 template-glib
12692 vte
12693 webkitgtk-with-libsoup2))
12694 (propagated-inputs (list gtksourceview)) ; needed for settings
12695 (native-inputs (list desktop-file-utils ; for desktop-file-validate
12696 `(,glib "bin")
12697 gettext-minimal
12698 pkg-config
12699 python ; for meson scripts
12700 vala
12701 xorg-server-for-tests))
12702 (home-page "https://wiki.gnome.org/Apps/Builder")
12703 (synopsis "Toolsmith for GNOME-based applications")
12704 (description
12705 "Builder aims to be an integrated development environment (IDE) for
12706 writing GNOME-based software. It features fuzzy search, auto-completion,
12707 a mini code map, documentation browsing, Git integration, an integrated
12708 profiler via Sysprof, debugging support, and more.")
12709 (license license:gpl3+)))
12710
12711 (define-public komikku
12712 (package
12713 (name "komikku")
12714 (version "0.41.0")
12715 (source
12716 (origin
12717 (method git-fetch)
12718 (uri (git-reference
12719 (url "https://gitlab.com/valos/Komikku/")
12720 (commit (string-append "v" version))))
12721 (file-name (git-file-name name version))
12722 (sha256
12723 (base32
12724 "17r059srxrx26w40swy47pdpyigyjdczp8550g4rfh86qs3ld4il"))))
12725 (build-system meson-build-system)
12726 (arguments
12727 `(#:glib-or-gtk? #t
12728 #:phases
12729 (modify-phases %standard-phases
12730 (add-after 'unpack 'patch-sources
12731 (lambda _
12732 (substitute* "komikku/utils.py"
12733 (("from komikku\\.servers import get_servers_list")
12734 ;; code following that line should migrate old databases
12735 ;; but the line itself results in an import error
12736 "return data_dir_path"))))
12737 (add-after 'unpack 'skip-gtk-update-icon-cache
12738 (lambda _
12739 (substitute* "meson_post_install.py"
12740 (("gtk-update-icon-cache") (which "true")))
12741 #t))
12742 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12743 (lambda* (#:key outputs #:allow-other-keys)
12744 (let ((prog (string-append (assoc-ref outputs "out")
12745 "/bin/komikku")))
12746 (wrap-program prog
12747 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
12748 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12749 #t))))))
12750 (inputs
12751 (list gtk+
12752 libhandy
12753 libnotify
12754 libsecret
12755 python
12756 python-beautifulsoup4
12757 python-brotli
12758 python-cloudscraper
12759 python-dateparser
12760 python-keyring
12761 python-lxml
12762 python-magic
12763 python-natsort
12764 python-pillow
12765 python-pure-protobuf
12766 python-pycairo
12767 python-pygobject
12768 python-requests
12769 python-unidecode
12770 webkitgtk-with-libsoup2))
12771 (native-inputs
12772 (list desktop-file-utils
12773 gettext-minimal
12774 `(,glib "bin")
12775 gobject-introspection
12776 pkg-config))
12777 (home-page "https://gitlab.com/valos/Komikku")
12778 (synopsis "Manga reader for GNOME")
12779 (description "Komikku is an online/offline manga reader for GNOME,
12780 developed with the aim of being used with the Librem 5 phone.")
12781 (license license:gpl3+)))
12782
12783 (define-public libgda
12784 (package
12785 (name "libgda")
12786 (version "6.0.0")
12787 (source
12788 (origin
12789 (method url-fetch)
12790 (uri (string-append "mirror://gnome/sources/" name "/"
12791 (version-major+minor version) "/"
12792 name "-" version ".tar.xz"))
12793 (sha256
12794 (base32 "0w564z7krgjk19r39mi5qn4kggpdg9ggbyn9pb4aavb61r14npwr"))
12795 (patches (search-patches "libgda-cve-2021-39359.patch"
12796 "libgda-fix-build.patch"
12797 "libgda-fix-missing-initialization.patch"
12798 "libgda-skip-postgresql-tests.patch"))))
12799 (build-system meson-build-system)
12800 (native-inputs
12801 (list intltool
12802 iso-codes
12803 `(,glib "bin")
12804 gnome-common
12805 gettext-minimal
12806 gobject-introspection
12807 gtk-doc/stable
12808 pkg-config
12809 python
12810 vala
12811 yelp-tools))
12812 (inputs
12813 (list json-glib
12814 glib
12815 glade3
12816 gtk+
12817 libsecret
12818 libxslt
12819 openssl
12820 sqlite
12821 vala))
12822 (propagated-inputs
12823 (list libxml2)) ; required by libgda-5.0.pc
12824 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12825 (synopsis "Uniform data access")
12826 (description
12827 "GNU Data Access (GDA) is an attempt to provide uniform access to
12828 different kinds of data sources (databases, information servers, mail spools,
12829 etc). It is a complete architecture that provides all you need to access
12830 your data.")
12831 (license license:lgpl2.1+)))
12832
12833 (define-public gtranslator
12834 (package
12835 (name "gtranslator")
12836 (version "42.0")
12837 (source (origin
12838 (method url-fetch)
12839 (uri (string-append "mirror://gnome/sources/" name "/"
12840 (version-major version) "/"
12841 name "-" version ".tar.xz"))
12842 (sha256
12843 (base32
12844 "0fzi48s3wz9mf6c1ndpkby83bgshgn2116nqjq31n1j3wszvqrra"))))
12845 (build-system meson-build-system)
12846 (arguments
12847 (list #:build-type "release" ;otherwise it tries to fetch stuff via git
12848 #:glib-or-gtk? #t
12849 #:phases
12850 #~(modify-phases %standard-phases
12851 (add-after 'unpack 'skip-gtk-update-icon-cache
12852 (lambda _
12853 (substitute* "build-aux/meson/meson_post_install.py"
12854 (("gtk-update-icon-cache") (which "true"))))))))
12855 (native-inputs
12856 (list `(,glib-next "bin")
12857 gettext-minimal
12858 itstool
12859 pkg-config))
12860 (inputs
12861 (list json-glib
12862 jsonrpc-glib
12863 gettext-minimal
12864 glib-next
12865 gsettings-desktop-schemas
12866 gspell
12867 libgda
12868 libhandy
12869 libsoup
12870 pango-next))
12871 (propagated-inputs
12872 (list gtksourceview-4)) ; required for source view
12873 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12874 (synopsis "Translation making program")
12875 (description
12876 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12877 for the GNOME 3.x platform with many features. It aims to be a very complete
12878 editing environment for translation issues within the GNU gettext/GNOME desktop
12879 world.")
12880 (license license:gpl3+)))
12881
12882
12883 (define-public ocrfeeder
12884 (package
12885 (name "ocrfeeder")
12886 (version "0.8.5")
12887 (source (origin
12888 (method url-fetch)
12889 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12890 (version-major+minor version) "/"
12891 "ocrfeeder-" version ".tar.xz"))
12892 (sha256
12893 (base32
12894 "1vaaphzk6zn7pp2x9scphdzlbsma910wnbhd9xry50nx95cjlgdh"))))
12895 (build-system gnu-build-system)
12896 (arguments
12897 `(#:phases
12898 (modify-phases %standard-phases
12899 (add-after
12900 'install 'wrap-program
12901 (lambda* (#:key outputs #:allow-other-keys)
12902 (let ((prog (string-append (assoc-ref outputs "out")
12903 "/bin/" "ocrfeeder"))
12904 (pylib (string-append (assoc-ref outputs "out")
12905 "/lib/python"
12906 ,(version-major+minor
12907 (package-version python))
12908 "/site-packages")))
12909 (wrap-program prog
12910 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12911 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
12912 (native-inputs
12913 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12914 ("gobject-introspection" ,gobject-introspection)
12915 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12916 ("intltool" ,intltool)
12917 ("itstool" ,itstool)
12918 ("pkg-config" ,pkg-config)
12919 ("xmllint" ,libxml2)))
12920 (inputs
12921 `(("enchant" ,enchant)
12922 ("glib" ,glib)
12923 ("goocanvas" ,goocanvas)
12924 ("gtk" ,gtk+)
12925 ("gtkspell3" ,gtkspell3)
12926 ("libjpeg" ,libjpeg-turbo)
12927 ("libtiff" ,libtiff)
12928 ("libraw" ,libraw)
12929 ("ocrad" ,ocrad)
12930 ("python" ,python-wrapper)
12931 ("python-pygobject" ,python-pygobject)
12932 ("python-odfpy" ,python-odfpy)
12933 ("python-pillow" ,python-pillow)
12934 ("python-pyenchant" ,python-pyenchant)
12935 ("python-reportlab" ,python-reportlab)
12936 ("python-sane" ,python-sane)
12937 ("sane-backends" ,sane-backends)
12938 ("tesseract-ocr" ,tesseract-ocr)))
12939 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12940 (synopsis "Complete OCR Suite")
12941 (description "OCRFeeder is a complete Optical Character Recognition and
12942 Document Analysis and Recognition program.")
12943 (license license:gpl3+)))
12944
12945 (define-public libadwaita
12946 (package
12947 (name "libadwaita")
12948 (version "1.2.rc")
12949 (source (origin
12950 (method url-fetch)
12951 (uri (string-append "mirror://gnome/sources/libadwaita/"
12952 (version-major+minor version) "/"
12953 "libadwaita-" version ".tar.xz"))
12954 (sha256
12955 (base32
12956 "1syg7fkpcsw0q6fy3g79myb9m9bvrnh3rjrm6g4bfg1pnlqf1w22"))))
12957 (build-system meson-build-system)
12958 (arguments
12959 `(#:phases
12960 (modify-phases %standard-phases
12961 (add-before 'check 'pre-check
12962 (lambda* (#:key inputs #:allow-other-keys)
12963 ;; Tests require a running X server.
12964 (system "Xvfb :1 &")
12965 (setenv "DISPLAY" ":1"))))))
12966 (native-inputs
12967 (list gettext-minimal
12968 `(,glib "bin")
12969 gobject-introspection
12970 gtk-doc/stable
12971 pkg-config
12972 sassc
12973 vala
12974 xorg-server-for-tests))
12975 (propagated-inputs
12976 (list gtk)) ;libadwaita-1.pc 'Requires' it
12977 (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
12978 (synopsis "Building blocks for GNOME applications")
12979 (description
12980 "@code{libadwaita} offers widgets and objects to build GNOME
12981 applications scaling from desktop workstations to mobile phones. It is the
12982 successor of @code{libhandy} for GTK4.")
12983 (license license:lgpl2.1+)))
12984
12985 (define-public gnome-power-manager
12986 (package
12987 (name "gnome-power-manager")
12988 (version "3.32.0")
12989 (source (origin
12990 (method url-fetch)
12991 (uri (string-append "mirror://gnome/sources/" name "/"
12992 (version-major+minor version) "/"
12993 name "-" version ".tar.xz"))
12994 (sha256
12995 (base32
12996 "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g"))))
12997 (build-system meson-build-system)
12998 (inputs
12999 (list upower gtk+ gsettings-desktop-schemas adwaita-icon-theme))
13000 (native-inputs
13001 (list desktop-file-utils
13002 `(,glib "bin") gettext-minimal pkg-config))
13003 (home-page "https://gitlab.gnome.org/GNOME/gnome-power-manager")
13004 (synopsis "Power management daemon for the GNOME desktop")
13005 (description "@code{gnome-power-manager} is a tool for viewing present and
13006 historical battery usage and related statistics.")
13007 (license license:gpl2)))
13008
13009 (define-public xffm+
13010 (package
13011 (name "xffm+")
13012 (version "0.94")
13013 (source (origin
13014 (method url-fetch)
13015 (uri (string-append "mirror://sourceforge/xffm/xffm+/xffm+-"
13016 version ".tar.bz2"))
13017 (sha256
13018 (base32
13019 "0gwbgmjzlgv9ba95cgaigjnc9njzi7qznhvzp0qrnnlq3nbcm1k1"))))
13020 (build-system cmake-build-system)
13021 (arguments
13022 `(#:tests? #f ; No tests exist
13023 #:configure-flags
13024 (let ((shared-mime-info (assoc-ref %build-inputs "shared-mime-info"))
13025 (out (assoc-ref %outputs "out")))
13026 (list (string-append "-DFREEDESKTOP_GLOBS=" shared-mime-info
13027 "/share/mime/globs")
13028 (string-append "-DFREEDESKTOP_ALIAS=" shared-mime-info
13029 "/share/mime/aliases")
13030 (string-append "-DFREEDESKTOP_ICONS=" shared-mime-info
13031 "/share/mime/generic-icons")
13032 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
13033 (string-append "-DPREFIX_BIN=" out "/bin")))
13034 #:phases
13035 (modify-phases %standard-phases
13036 (add-after 'unpack 'patch-installation-destination
13037 (lambda* (#:key outputs #:allow-other-keys)
13038 (substitute* "CMakeLists.txt"
13039 ;; This is done so we can override.
13040 (("^set.CMAKE_INSTALL_PREFIX") "set(QCMAKE_INSTALL_PREFIX")
13041 ;; This is done so we can override.
13042 (("`set.PREFIX_BIN") "set(QPREFIX_BIN")))))))
13043 (native-inputs
13044 (list cmake pkg-config intltool gnu-gettext))
13045 (inputs
13046 (list glib gtk+ libx11 libsm libxv libxaw libxcb libxkbfile
13047 shared-mime-info))
13048 (synopsis "File manager")
13049 (description "This package provides a graphical file manager.")
13050 (home-page "http://xffm.org/")
13051 (license license:gpl3+)
13052 (properties '((upstream-name . "xffm")))))