gnu: evolution: Add missing input.
[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 (list
257 #:glib-or-gtk? #t ; To wrap binaries and compile schemas
258 #:configure-flags #~(list "-Dgtk_doc=true")
259 #:phases
260 #~(modify-phases %standard-phases
261 (add-after 'unpack 'patch-docbook-xml
262 (lambda* (#:key inputs #:allow-other-keys)
263 (with-directory-excursion "doc"
264 (substitute* "gupnp-igd-docs.xml"
265 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
266 (string-append #$(this-package-native-input
267 "docbook-xml")
268 "/xml/dtd/docbook/"))))))
269 (add-before 'check 'set-home
270 (lambda _
271 ;; A test using GIO expects ~/.config/glib-2.0/settings to be
272 ;; writable.
273 (setenv "HOME" (getcwd))))
274 (add-after 'install 'move-doc
275 (lambda* (#:key outputs #:allow-other-keys)
276 (mkdir-p (string-append #$output:doc "/share"))
277 (rename-file
278 (string-append #$output "/share/gtk-doc")
279 (string-append #$output:doc "/share/gtk-doc")))))))
280 (native-inputs
281 (list docbook-xml-4.1.2
282 docbook-xsl
283 `(,glib "bin")
284 gobject-introspection
285 gsettings-desktop-schemas
286 gtk-doc/stable
287 pkg-config))
288 (propagated-inputs
289 ;; These libraries are required by the .pc file.
290 (list glib
291 glib-networking
292 gupnp-1.4))
293 (synopsis "UPnP IGD for GNOME")
294 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
295 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
296 (license license:lgpl2.1+)))
297
298 (define-public brasero
299 (package
300 (name "brasero")
301 (version "3.12.3")
302 (source (origin
303 (method url-fetch)
304 (uri (string-append "mirror://gnome/sources/brasero/"
305 (version-major+minor version) "/"
306 "brasero-" version ".tar.xz"))
307 (sha256
308 (base32
309 "05gabybkl7xfinwx97i4scp9hic0dlxj7gh03dyj0hd16fp9wx47"))))
310 (build-system glib-or-gtk-build-system)
311 (arguments
312 `(#:configure-flags (list
313 (string-append "--with-girdir="
314 (assoc-ref %outputs "out")
315 "/share/gir-1.0")
316 (string-append "--with-typelibdir="
317 (assoc-ref %outputs "out")
318 "/lib/girepository-1.0"))
319 #:phases
320 (modify-phases %standard-phases
321 (add-before 'configure 'embed-growisofs-reference
322 (lambda* (#:key inputs #:allow-other-keys)
323 (let ((dvd+rw-tools (assoc-ref inputs "dvd+rw-tools")))
324 (substitute* "plugins/growisofs/burn-growisofs.c"
325 (("(\")(growisofs)" _ prefix command)
326 (string-append prefix dvd+rw-tools "/bin/" command)))))))))
327 (propagated-inputs
328 (list hicolor-icon-theme))
329 (native-inputs
330 (list intltool
331 itstool
332 `(,glib "bin") ; glib-compile-schemas, etc.
333 gobject-introspection
334 pkg-config))
335 (inputs
336 (list dvd+rw-tools
337 glib
338 gstreamer
339 gst-plugins-base
340 gtk+
341 libcanberra
342 libice
343 libnotify
344 libsm
345 libxml2
346 totem-pl-parser))
347 (home-page "https://wiki.gnome.org/Apps/Brasero")
348 (synopsis "CD/DVD burning tool for Gnome")
349 (description "Brasero is an application to burn CD/DVD for the Gnome
350 Desktop. It is designed to be as simple as possible and has some unique
351 features to enable users to create their discs easily and quickly.")
352 (license license:gpl2+)))
353
354 ;;; Minimal variant, used to break a cycle with Inkscape.
355 (define-public libcloudproviders-minimal
356 (package
357 (name "libcloudproviders-minimal")
358 (version "0.3.1")
359 (source
360 (origin
361 (method url-fetch)
362 (uri
363 (string-append "mirror://gnome/sources/libcloudproviders/"
364 (version-major+minor version)
365 "/libcloudproviders-" version ".tar.xz"))
366 (sha256
367 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
368 (build-system meson-build-system)
369 (arguments
370 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
371 #:configure-flags (list "-Dintrospection=false"
372 "-Denable-gtk-doc=false"
373 "-Dvapigen=false")))
374 (native-inputs
375 `(("glib:bin" ,glib "bin")
376 ("pkg-config" ,pkg-config)
377 ("vala" ,vala)))
378 (inputs
379 (list glib glib-networking))
380 (synopsis "Cloudproviders Integration API")
381 (description "Libcloudproviders is a DBus API that allows cloud storage sync
382 clients to expose their services. Clients such as file managers and desktop
383 environments can then provide integrated access to the cloud providers
384 services.")
385 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
386 (license license:lgpl3+)))
387
388 (define-public libcloudproviders
389 (package/inherit libcloudproviders-minimal
390 (name "libcloudproviders")
391 (version "0.3.1")
392 (outputs (cons "doc" (package-outputs libcloudproviders-minimal)))
393 (arguments
394 (substitute-keyword-arguments (package-arguments libcloudproviders-minimal)
395 ((#:configure-flags _)
396 '(list "-Denable-gtk-doc=true")) ;false by default
397 ((#:phases phases '%standard-phases)
398 `(modify-phases %standard-phases
399 (add-after 'install 'move-doc
400 (lambda* (#:key outputs #:allow-other-keys)
401 (let* ((out (assoc-ref outputs "out"))
402 (doc (assoc-ref outputs "doc")))
403 (mkdir-p (string-append doc "/share"))
404 (rename-file
405 (string-append out "/share/gtk-doc")
406 (string-append doc "/share/gtk-doc")))))))))
407 (native-inputs
408 (append
409 `(("gobject-introspection" ,gobject-introspection)
410 ("gtk-doc" ,gtk-doc/stable))
411 (package-native-inputs libcloudproviders-minimal)))))
412
413 (define-public libgrss
414 (package
415 (name "libgrss")
416 (version "0.7.0")
417 (source
418 (origin
419 (method url-fetch)
420 (uri
421 (string-append "mirror://gnome/sources/" name "/"
422 (version-major+minor version) "/"
423 name "-" version ".tar.xz"))
424 (sha256
425 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))
426 (patches
427 (search-patches "libgrss-CVE-2016-2001.patch"))))
428 (build-system glib-or-gtk-build-system)
429 (outputs '("out" "doc"))
430 (arguments
431 `(#:configure-flags
432 (list
433 "--enable-gtk-doc"
434 (string-append "--with-html-dir="
435 (assoc-ref %outputs "doc")
436 "/share/gtk-doc/html"))
437 #:phases
438 (modify-phases %standard-phases
439 (add-after 'unpack 'patch-docbook-xml
440 (lambda* (#:key inputs #:allow-other-keys)
441 (with-directory-excursion "doc/reference"
442 (substitute* "libgrss-docs.sgml"
443 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
444 (string-append (assoc-ref inputs "docbook-xml")
445 "/xml/dtd/docbook/"))))
446 #t)))))
447 (native-inputs
448 (list docbook-xml-4.1.2 gobject-introspection gtk-doc/stable
449 pkg-config))
450 (propagated-inputs
451 (list glib libsoup-minimal-2 libxml2))
452 (synopsis "Glib library for feeds")
453 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
454 and other formats.")
455 (home-page "https://wiki.gnome.org/Projects/Libgrss")
456 (license license:lgpl3+)))
457
458 (define-public gnome-js-common
459 (package
460 (name "gnome-js-common")
461 (version "0.1.2")
462 (source
463 (origin
464 (method url-fetch)
465 (uri
466 (string-append "mirror://gnome/sources/" name "/"
467 (version-major+minor version) "/"
468 name "-" version ".tar.gz"))
469 (sha256
470 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
471 (build-system glib-or-gtk-build-system)
472 (arguments
473 `(#:configure-flags
474 (list
475 "--disable-static")))
476 (native-inputs
477 `(("gettext" ,gettext-minimal)
478 ("intltool" ,intltool)
479 ("pkg-config" ,pkg-config)))
480 (synopsis "Common JS Modules")
481 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
482 bindings.")
483 (home-page "https://wiki.gnome.org/Projects/Seed")
484 (license license:gpl3+)))
485
486 (define-public seed
487 (package
488 (name "seed")
489 (version "3.8.1")
490 (source
491 (origin
492 (method url-fetch)
493 (uri
494 (string-append "mirror://gnome/sources/" name "/"
495 (version-major+minor version) "/"
496 name "-" version ".tar.xz"))
497 (sha256
498 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
499 (patches
500 (search-patches "seed-webkit.patch"))))
501 (build-system glib-or-gtk-build-system)
502 (outputs '("out" "doc"))
503 (arguments
504 `(#:configure-flags
505 (list
506 "--disable-static"
507 "--enable-xorg-module"
508 (string-append "--with-html-dir="
509 (assoc-ref %outputs "doc")
510 "/share/gtk-doc/html")
511 "--with-webkit=4.0")
512 #:phases
513 (modify-phases %standard-phases
514 ;; The seed-webkit.patch patches configure.ac.
515 ;; So the source files need to be re-bootstrapped.
516 (add-after 'unpack 'trigger-bootstrap
517 (lambda _
518 (for-each delete-file
519 (list
520 "configure"
521 "Makefile.in"))
522 #t))
523 (add-after 'unpack 'patch-tests
524 (lambda* (#:key outputs #:allow-other-keys)
525 (substitute* (find-files "." "\\.js$")
526 (("#!/usr/bin/env seed")
527 (string-append "#!" (getcwd) "/src/seed")))
528 #t))
529 (add-before 'build 'patch-docbook-xml
530 (lambda* (#:key inputs #:allow-other-keys)
531 (with-directory-excursion "doc"
532 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
533 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
534 (string-append (assoc-ref inputs "docbook-xml")
535 "/xml/dtd/docbook/"))))
536 #t)))))
537 (native-inputs
538 `(("autoconf" ,autoconf)
539 ("automake" ,automake)
540 ("docbook-xml" ,docbook-xml-4.1.2)
541 ("gettext" ,gettext-minimal)
542 ("gobject-introspection" ,gobject-introspection)
543 ("gtk-doc" ,gtk-doc/stable)
544 ("intltool" ,intltool)
545 ("libtool" ,libtool)
546 ("pkg-config" ,pkg-config)))
547 (inputs
548 `(("cairo" ,cairo)
549 ("dbus" ,dbus)
550 ("dbus-glib" ,dbus-glib)
551 ("gnome-js-common" ,gnome-js-common)
552 ("gtk+" ,gtk+)
553 ("gtk+-2" ,gtk+-2)
554 ("libffi" ,libffi)
555 ("libxml2" ,libxml2)
556 ("mpfr" ,mpfr)
557 ("readline" ,readline)
558 ("sqlite" ,sqlite)
559 ("xscrnsaver" ,libxscrnsaver)))
560 (propagated-inputs
561 `(("glib" ,glib)
562 ("webkit" ,webkitgtk-with-libsoup2)))
563 (synopsis "GObject JavaScriptCore bridge")
564 (description "Seed is a library and interpreter, dynamically bridging
565 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
566 GNOME platform. It serves as something which enables you to write standalone
567 applications in JavaScript, or easily enable your application to be extensible
568 in JavaScript.")
569 (home-page "https://wiki.gnome.org/Projects/Seed")
570 (license license:lgpl2.0+)))
571
572 (define-public libdmapsharing
573 (package
574 (name "libdmapsharing")
575 (version "3.9.10")
576 (source
577 (origin
578 (method url-fetch)
579 (uri
580 (string-append "https://www.flyn.org/projects/"
581 name "/" name "-" version ".tar.gz"))
582 (sha256
583 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
584 (build-system glib-or-gtk-build-system)
585 (outputs '("out" "doc"))
586 (arguments
587 `(#:tests? #f ; Tests require networking.
588 #:configure-flags
589 (list
590 "--disable-static"
591 (string-append "--with-html-dir="
592 (assoc-ref %outputs "doc")
593 "/share/gtk-doc/html"))
594 #:phases
595 (modify-phases %standard-phases
596 (add-after 'unpack 'patch-docbook-xml
597 (lambda* (#:key inputs #:allow-other-keys)
598 (with-directory-excursion "doc"
599 (substitute* "libdmapsharing-4.0-docs.xml"
600 (("http://www.oasis-open.org/docbook/xml/4.3/")
601 (string-append (assoc-ref inputs "docbook-xml")
602 "/xml/dtd/docbook/"))))
603 #t)))))
604 (native-inputs
605 (list check
606 docbook-xml-4.3
607 gobject-introspection
608 pedansee
609 pkg-config
610 vala))
611 (inputs
612 `(("avahi" ,avahi)
613 ("librsvg" ,librsvg)
614 ("gee" ,libgee)
615 ("gst-plugins-base" ,gst-plugins-base)
616 ("gtk+" ,gtk+)))
617 (propagated-inputs
618 (list glib glib-networking gstreamer libsoup-minimal-2))
619 (synopsis "Media management library")
620 (description "Libdmapsharing is a library which allows programs to access,
621 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
622 It is written in C using GObject and libsoup.")
623 (home-page "https://launchpad.net/gtx")
624 (license license:lgpl2.1+)))
625
626 (define-public gtx
627 (package
628 (name "gtx")
629 (version "0.2.2")
630 (source
631 (origin
632 (method url-fetch)
633 (uri
634 (string-append "https://launchpad.net/gtx/trunk/"
635 version "/+download/gtx-" version ".tar.gz"))
636 (sha256
637 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
638 (build-system glib-or-gtk-build-system)
639 (outputs '("out" "doc"))
640 (arguments
641 `(#:configure-flags
642 (list
643 "--disable-static"
644 "--enable-gtk-doc"
645 (string-append "--with-html-dir="
646 (assoc-ref %outputs "doc")
647 "/share/gtk-doc/html"))))
648 (native-inputs
649 (list gobject-introspection gtk-doc/stable pkg-config))
650 (propagated-inputs
651 (list glib))
652 (synopsis "GLib Testing Framework")
653 (description "GTX is a small collection of convenience functions intended to
654 enhance the GLib testing framework. With specific emphasis on easing the pain
655 of writing test cases for asynchronous interactions.")
656 (home-page "https://launchpad.net/gtx")
657 (license license:lgpl2.1+)))
658
659 (define-public dee
660 (package
661 (name "dee")
662 (version "1.2.7")
663 (source
664 (origin
665 (method url-fetch)
666 (uri
667 (string-append "https://launchpad.net/dee/1.0/"
668 version "/+download/dee-" version ".tar.gz"))
669 (sha256
670 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
671 (patches
672 (search-patches "dee-vapi.patch"))))
673 (build-system glib-or-gtk-build-system)
674 (outputs '("out" "doc"))
675 (arguments
676 `(#:configure-flags
677 (list
678 "--disable-maintainer-flags"
679 (string-append "--with-pygi-overrides-dir="
680 (assoc-ref %outputs "out")
681 "/lib/python"
682 ,(version-major+minor
683 (package-version python))
684 "/site-packages/gi/overrides")
685 (string-append "--with-html-dir="
686 (assoc-ref %outputs "doc")
687 "/share/gtk-doc/html"))
688 #:phases
689 (modify-phases %standard-phases
690 (add-after 'unpack 'patch-docbook-xml
691 (lambda* (#:key inputs #:allow-other-keys)
692 (with-directory-excursion "doc/reference/dee-1.0"
693 (substitute* "dee-1.0-docs.sgml"
694 (("http://www.oasis-open.org/docbook/xml/4.3/")
695 (string-append (assoc-ref inputs "docbook-xml")
696 "/xml/dtd/docbook/"))))))
697 (add-after 'patch-docbook-xml 'disable-failing-tests
698 (lambda _
699 (substitute* "tests/test-icu.c"
700 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
701 "")
702 (("setup, test_ascii_folder, teardown\\);")
703 ""))))
704 (add-before 'check 'pre-check
705 (lambda _
706 ;; Tests require a running dbus-daemon.
707 (system "dbus-daemon &")
708 ;; For missing '/etc/machine-id'.
709 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
710 (native-inputs
711 `(("dbus" ,dbus)
712 ("dbus-test-runner" ,dbus-test-runner)
713 ("docbook-xml" ,docbook-xml-4.3)
714 ("gobject-introspection" ,gobject-introspection)
715 ("gtk-doc" ,gtk-doc/stable)
716 ;; Would only be required by configure flag "--enable-extended-tests".
717 ;("gtx" ,gtx)
718 ("pkg-config" ,pkg-config)
719 ("pygobject" ,python-pygobject)
720 ("python" ,python-wrapper)
721 ("vala" ,vala-0.52)))
722 (inputs
723 `(("icu" ,icu4c)))
724 (propagated-inputs
725 (list glib))
726 (synopsis "Model to synchronize multiple instances over DBus")
727 (description "Dee is a library that uses DBus to provide objects allowing
728 you to create Model-View-Controller type programs across DBus. It also consists
729 of utility objects which extend DBus allowing for peer-to-peer discoverability
730 of known objects without needing a central registrar.")
731 (home-page "https://launchpad.net/dee")
732 (license
733 ;; Dual-licensed
734 (list
735 license:lgpl3+
736 license:gpl3+))))
737
738 (define-public zeitgeist
739 (package
740 (name "zeitgeist")
741 (version "1.0.4")
742 (source
743 (origin
744 (method git-fetch)
745 (uri
746 (git-reference
747 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
748 (commit
749 (string-append "v" version))))
750 (file-name
751 (git-file-name name version))
752 (sha256
753 (base32 "07b1ahj3vd3m8srwkrh7dl3ymr7d55xiiszny44q13g06pq4svch"))))
754 (build-system glib-or-gtk-build-system)
755 (arguments
756 `(#:configure-flags
757 (list
758 "--enable-explain-queries"
759 "--enable-fts"
760 "--enable-docs")
761 #:phases
762 (modify-phases %standard-phases
763 (add-after 'unpack 'patch-docbook-xml
764 (lambda* (#:key inputs #:allow-other-keys)
765 (with-directory-excursion "doc/libzeitgeist"
766 (substitute* "zeitgeist-gtkdoc-index.sgml"
767 (("http://www.oasis-open.org/docbook/xml/4.3/")
768 (string-append (assoc-ref inputs "docbook-xml")
769 "/xml/dtd/docbook/"))))))
770 (add-after 'patch-docbook-xml 'disable-failing-tests
771 (lambda _
772 (substitute* "test/direct/Makefile.am"
773 ((" log-test ")
774 ""))
775 (substitute* "test/c/Makefile.am"
776 ((" test-log ")
777 ""))))
778 (add-before 'bootstrap 'remove-autogen-script
779 (lambda _
780 ;; To honor `autoreconf -vif` by build-system.
781 (delete-file "autogen.sh"))))))
782 (native-inputs
783 `(("autoconf" ,autoconf)
784 ("automake" ,automake)
785 ("docbook-xml" ,docbook-xml-4.3)
786 ("gettext" ,gettext-minimal)
787 ("gobject-introspection" ,gobject-introspection)
788 ("gtk-doc" ,gtk-doc/stable)
789 ("libtool" ,libtool)
790 ("pkg-config" ,pkg-config)
791 ("vala" ,vala)
792 ("xorg-server-for-tests" ,xorg-server-for-tests)))
793 (inputs
794 `(("dee-icu" ,dee)
795 ("gtk+" ,gtk+)
796 ("json-glib" ,json-glib)
797 ("sqlite" ,sqlite)
798 ("telepathy-glib" ,telepathy-glib)
799 ("python" ,python-wrapper)
800 ("python-rdflib" ,python-rdflib)
801 ("xapian-config" ,xapian)))
802 (propagated-inputs
803 (list glib))
804 (synopsis "Desktop Activity Logging")
805 (description "Zeitgeist is a service which logs the users’s activities and
806 events, anywhere from files opened to websites visited and conversations. It
807 makes this information readily available for other applications to use. It is
808 able to establish relationships between items based on similarity and usage
809 patterns.")
810 (home-page "https://zeitgeist.freedesktop.org/")
811 (license
812 ;; Dual-licensed
813 (list
814 license:lgpl2.1+
815 license:gpl2+))))
816
817 (define-public gnome-recipes
818 (package
819 (name "gnome-recipes")
820 (version "2.0.4")
821 (source (origin
822 (method git-fetch)
823 (uri (git-reference
824 (url "https://gitlab.gnome.org/GNOME/recipes")
825 (commit version)))
826 (file-name (git-file-name name version))
827 (sha256
828 (base32
829 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
830 (build-system meson-build-system)
831 (arguments
832 (list
833 #:glib-or-gtk? #t
834 #:phases
835 #~(modify-phases %standard-phases
836 (add-after 'unpack 'skip-gtk-update-icon-cache
837 (lambda _
838 (substitute* "meson_post_install.py"
839 (("gtk-update-icon-cache") (which "true")))))
840 (add-after 'unpack 'unpack-libgd
841 (lambda _
842 (copy-recursively
843 #$(origin
844 (method git-fetch)
845 (uri (git-reference
846 (url "https://gitlab.gnome.org/GNOME/libgd")
847 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
848 (file-name (git-file-name "libgd" version))
849 (sha256
850 (base32
851 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs")))
852 "subprojects/libgd"))))))
853 (inputs (list glib
854 gnome-autoar
855 gnome-online-accounts
856 gspell
857 gtk+
858 json-glib
859 libcanberra
860 libsoup
861 rest))
862 (native-inputs (list desktop-file-utils ;for update-desktop-database
863 gettext-minimal
864 `(,glib "bin")
865 itstool
866 pkg-config
867 python))
868 (home-page "https://wiki.gnome.org/Apps/Recipes")
869 (synopsis "Discover recipes for preparing food")
870 (description "GNOME Recipes helps you discover what to cook today,
871 tomorrow, the rest of the week and for special occasions.")
872 (license license:gpl3+)))
873
874 (define-public gnome-photos
875 (package
876 (name "gnome-photos")
877 (version "43.beta") ;for geocode-glib 2 support
878 (source
879 (origin
880 (method url-fetch)
881 (uri
882 (string-append "mirror://gnome/sources/" name "/"
883 (version-major version) "/"
884 name "-" version ".tar.xz"))
885 (sha256
886 (base32
887 "1pry45dy4sjw8y63vxw2b499brcxzpkd4hmg2vbqy538r79ah2g9"))))
888 (build-system meson-build-system)
889 (arguments
890 (list
891 #:glib-or-gtk? #t
892 #:configure-flags
893 #~(list "-Ddogtail=false" ; Not available
894 ;; Required for RUNPATH validation.
895 (string-append "-Dc_link_args=-Wl,-rpath="
896 #$output "/lib/gnome-photos"))
897 #:phases
898 #~(modify-phases %standard-phases
899 (add-after 'unpack 'disable-gtk-update-icon-cache
900 (lambda _
901 (setenv "DESTDIR" "/")))
902 (add-after 'install 'wrap-gnome-photos
903 (lambda* (#:key outputs #:allow-other-keys)
904 (wrap-program (search-input-file outputs "bin/gnome-photos")
905 `("GRL_PLUGIN_PATH" =
906 (,(getenv "GRL_PLUGIN_PATH")))))))))
907 (native-inputs
908 (list dbus
909 desktop-file-utils
910 gettext-minimal
911 git-minimal
912 `(,glib "bin")
913 gobject-introspection
914 gsettings-desktop-schemas
915 itstool
916 pkg-config))
917 (inputs
918 (list babl
919 cairo
920 gegl
921 geocode-glib
922 gexiv2
923 gfbgraph
924 gnome-online-accounts
925 gnome-online-miners
926 grilo
927 grilo-plugins
928 gtk+
929 libdazzle
930 libgdata
931 libhandy
932 libjpeg-turbo
933 libportal
934 libpng
935 librsvg
936 python-pygobject
937 rest
938 tracker
939 tracker-miners))
940 (synopsis "Access, organize and share your photos on GNOME desktop")
941 (description "GNOME Photos is a simple and elegant replacement for using a
942 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
943 cloud integration is offered through GNOME Online Accounts.")
944 (home-page "https://wiki.gnome.org/Apps/Photos")
945 (license license:gpl3+)))
946
947 (define-public gnome-music
948 (package
949 (name "gnome-music")
950 (version "42.1")
951 (source
952 (origin
953 (method url-fetch)
954 (uri
955 (string-append "mirror://gnome/sources/" name "/"
956 (version-major version) "/"
957 name "-" version ".tar.xz"))
958 (sha256
959 (base32
960 "0w42xnp6xy3sfakb4s0wq7xfg7p507whz5gzss5b2mkbm2k7yx67"))))
961 (build-system meson-build-system)
962 (arguments
963 `(#:glib-or-gtk? #t
964 #:phases
965 (modify-phases %standard-phases
966 (add-after 'unpack 'skip-gtk-update-icon-cache
967 ;; Don't create 'icon-theme.cache'.
968 (lambda _
969 (substitute* "meson.build"
970 (("gtk_update_icon_cache: true")
971 "gtk_update_icon_cache: false"))))
972 (add-after 'install 'wrap-gnome-music
973 (lambda* (#:key inputs outputs #:allow-other-keys)
974 (let*
975 ((out (assoc-ref outputs "out"))
976 (pylib (string-append out "/lib/python"
977 ,(version-major+minor
978 (package-version python))
979 "/site-packages")))
980 (wrap-program (string-append out "/bin/gnome-music")
981 `("GI_TYPELIB_PATH" =
982 (,(getenv "GI_TYPELIB_PATH")))
983 `("GST_PLUGIN_SYSTEM_PATH" =
984 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
985 `("GRL_PLUGIN_PATH" =
986 (,(getenv "GRL_PLUGIN_PATH")))
987 `("GUIX_PYTHONPATH" =
988 (,(getenv "GUIX_PYTHONPATH") ,pylib)))))))))
989 (native-inputs
990 (list desktop-file-utils
991 gettext-minimal
992 `(,glib "bin")
993 gobject-introspection
994 itstool
995 pkg-config))
996 (inputs
997 (list gnome-online-accounts
998 grilo
999 grilo-plugins
1000 gst-plugins-base
1001 gst-plugins-good
1002 gstreamer
1003 gtk
1004 gvfs
1005 json-glib
1006 libadwaita
1007 libdazzle
1008 libmediaart
1009 libsoup-minimal-2
1010 python-pycairo
1011 python-pygobject
1012 python
1013 tracker
1014 tracker-miners))
1015 (synopsis "Simple music player for GNOME desktop")
1016 (description "GNOME Music is the new GNOME music playing application that
1017 aims to combine an elegant and immersive browsing experience with simple
1018 and straightforward controls.")
1019 (home-page "https://wiki.gnome.org/Apps/Music")
1020 (license license:gpl2+)))
1021
1022 (define-public portablexdr
1023 (package
1024 (name "portablexdr")
1025 (version "4.9.1")
1026 (source
1027 (origin
1028 (method url-fetch)
1029 (uri
1030 (string-append "https://people.redhat.com/~rjones/" name "/files/"
1031 name "-" version ".tar.gz"))
1032 (sha256
1033 (base32
1034 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1035 (build-system gnu-build-system)
1036 (synopsis "External Data Representation Library")
1037 (description "PortableXDR is an implementation of External Data
1038 Representation (XDR) Library. It is a standard data serialization format, for
1039 uses such as computer network protocols. It allows data to be transferred
1040 between different kinds of computer systems.")
1041 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1042 (license
1043 (list
1044 license:gpl2+
1045 license:lgpl2.1+))))
1046
1047 (define-public tepl
1048 (package
1049 (name "tepl")
1050 (version "6.1.2")
1051 (source
1052 (origin
1053 (method url-fetch)
1054 (uri
1055 (string-append "mirror://gnome/sources/" name "/"
1056 (version-major+minor version) "/"
1057 name "-" version ".tar.xz"))
1058 (sha256
1059 (base32
1060 "16x14j3nvsjj7jb2qmxpzygnlcy7sd7p6skv0sqshkwdlp4jxzha"))))
1061 (build-system meson-build-system)
1062 (arguments
1063 `(#:glib-or-gtk? #t
1064 #:phases (modify-phases %standard-phases
1065 (add-after 'unpack 'disable-problematic-tests
1066 (lambda _
1067 ;; Only keep unit tests, as the interactive tests have
1068 ;; other dependencies.
1069 (substitute* "tests/meson.build"
1070 ((".*'interactive-tests'.*") ""))))
1071 (add-before 'check 'start-xserver
1072 (lambda _
1073 (system "Xvfb :1 &")
1074 (setenv "DISPLAY" ":1"))))))
1075 (native-inputs
1076 (list `(,glib "bin")
1077 gobject-introspection
1078 gtk-doc
1079 libxml2
1080 pkg-config
1081 xorg-server-for-tests))
1082 (inputs
1083 (list uchardet))
1084 (propagated-inputs
1085 ;; These are all required by tepl6.pc.
1086 (list amtk
1087 glib
1088 gsettings-desktop-schemas
1089 gtk+
1090 gtksourceview-4))
1091 (synopsis "Text editor product line")
1092 (description "Tepl is a library that eases the development of
1093 GtkSourceView-based text editors and IDEs.")
1094 (home-page "https://wiki.gnome.org/Projects/Tepl")
1095 (license license:lgpl2.1+)))
1096
1097 (define-public krb5-auth-dialog
1098 (package
1099 (name "krb5-auth-dialog")
1100 (version "3.26.1")
1101 (source
1102 (origin
1103 (method url-fetch)
1104 (uri
1105 (string-append "mirror://gnome/sources/" name "/"
1106 (version-major+minor version) "/"
1107 name "-" version ".tar.xz"))
1108 (sha256
1109 (base32
1110 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1111 (build-system glib-or-gtk-build-system)
1112 (native-inputs
1113 (list intltool itstool libxml2 pkg-config python-wrapper))
1114 (inputs
1115 (list glib gtk+ libnotify mit-krb5 network-manager))
1116 (synopsis "Popup dialogs for Kerberos 5")
1117 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1118 tickets, and pops up a dialog when they are about to expire.")
1119 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1120 (license license:gpl2+)))
1121
1122 (define-public notification-daemon
1123 (package
1124 (name "notification-daemon")
1125 (version "3.20.0")
1126 (source
1127 (origin
1128 (method url-fetch)
1129 (uri
1130 (string-append "mirror://gnome/sources/" name "/"
1131 (version-major+minor version) "/"
1132 name "-" version ".tar.xz"))
1133 (sha256
1134 (base32
1135 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1136 (build-system glib-or-gtk-build-system)
1137 (native-inputs
1138 (list intltool pkg-config))
1139 (inputs
1140 (list glib gtk+ libx11))
1141 (synopsis "Notification Daemon for GNOME Desktop")
1142 (description "Notification-Daemon is the server implementation of the
1143 freedesktop.org desktop notification specification.")
1144 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1145 (license license:gpl2+)))
1146
1147 (define-public mm-common
1148 (package
1149 (name "mm-common")
1150 (version "1.0.3")
1151 (source (origin
1152 (method url-fetch)
1153 (uri (string-append "mirror://gnome/sources/mm-common/"
1154 (version-major+minor version) "/"
1155 "mm-common-" version ".tar.xz"))
1156 (sha256
1157 (base32
1158 "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
1159 (build-system meson-build-system)
1160 (arguments
1161 `(#:phases
1162 (modify-phases %standard-phases
1163 (add-after 'unpack 'patch
1164 (lambda* (#:key inputs #:allow-other-keys)
1165 (substitute* "util/mm-common-prepare.in"
1166 (("ln") (search-input-file inputs "/bin/ln"))
1167 (("cp") (search-input-file inputs "/bin/cp"))
1168 (("sed") (search-input-file inputs "/bin/sed"))
1169 (("cat") (search-input-file inputs "/bin/cat"))))))))
1170 (native-inputs
1171 `(("coreutils" ,coreutils)
1172 ("gettext" ,gettext-minimal)
1173 ("pkg-config" ,pkg-config)
1174 ("sed" ,sed)))
1175 (inputs
1176 (list python))
1177 (synopsis "Module of GNOME C++ bindings")
1178 (description "The mm-common module provides the build infrastructure
1179 and utilities shared among the GNOME C++ binding libraries. Release
1180 archives of mm-common include the Doxygen tag file for the GNU C++
1181 Library reference documentation.")
1182 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1183 (license license:gpl2+)))
1184
1185 (define-public phodav
1186 (package
1187 (name "phodav")
1188 (version "3.0")
1189 (source (origin
1190 (method url-fetch)
1191 (uri (string-append "mirror://gnome/sources/" name "/"
1192 (version-major+minor version) "/"
1193 name "-" version ".tar.xz"))
1194 (sha256
1195 (base32
1196 "1l9qs70yvwi9r8ph081mrsdy412kk0m9l9pgy77hsc2hdp8c4bir"))))
1197 (build-system meson-build-system)
1198 (arguments
1199 `(#:phases
1200 (modify-phases %standard-phases
1201 (add-after 'unpack 'fix-udev-rules-directory
1202 (lambda* (#:key outputs #:allow-other-keys)
1203 (let* ((out (assoc-ref outputs "out"))
1204 (rules (string-append out "/lib/udev/rules.d")))
1205 (substitute* "data/meson.build"
1206 (("udev\\.get_pkgconfig_variable\\('udevdir'\\)")
1207 (format #f "'~a'" rules))))))
1208 (add-before 'check 'set-temporary-home
1209 ;; Tests want to write into HOME.
1210 (lambda _
1211 (setenv "HOME" "/tmp"))))))
1212 (native-inputs
1213 (list docbook-xml-4.3
1214 gettext-minimal
1215 `(,glib "bin")
1216 gsettings-desktop-schemas
1217 gtk-doc/stable
1218 pkg-config))
1219 (inputs
1220 (list avahi
1221 libgudev
1222 libsoup))
1223 (synopsis "WebDav server implementation using libsoup")
1224 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1225 but it is generic enough to be reused in other projects,
1226 in particular in the GNOME desktop.")
1227 (home-page "https://wiki.gnome.org/phodav")
1228 (license license:lgpl2.1+)))
1229
1230 (define-public gnome-color-manager
1231 (package
1232 (name "gnome-color-manager")
1233 (version "3.36.0")
1234 (source (origin
1235 (method url-fetch)
1236 (uri (string-append "mirror://gnome/sources/" name "/"
1237 (version-major+minor version) "/"
1238 name "-" version ".tar.xz"))
1239 (sha256
1240 (base32
1241 "0fxdng74d8hwhfx1nwl1i4jx9h9f6c2hkyc12f01kqbjcimrxnwx"))))
1242 (build-system meson-build-system)
1243 (arguments
1244 `(#:glib-or-gtk? #t
1245 #:phases
1246 (modify-phases %standard-phases
1247 (add-before
1248 'check 'pre-check
1249 (lambda _
1250 ;; Tests require a running X server.
1251 (system "Xvfb :1 &")
1252 (setenv "DISPLAY" ":1")
1253 #t)))))
1254 (native-inputs
1255 `(("desktop-file-utils" ,desktop-file-utils)
1256 ("gettext" ,gettext-minimal)
1257 ("glib:bin" ,glib "bin")
1258 ("gtk+:bin" ,gtk+ "bin")
1259 ("itstool" ,itstool)
1260 ("pkg-config" ,pkg-config)
1261 ("xorg-server" ,xorg-server-for-tests)))
1262 (inputs
1263 (list adwaita-icon-theme
1264 appstream-glib
1265 colord-gtk
1266 exiv2
1267 gnome-desktop
1268 libcanberra
1269 libexif
1270 libtiff
1271 libxrandr
1272 libxtst
1273 libxxf86vm
1274 vte
1275 xorgproto))
1276 (synopsis "Color profile manager for the GNOME desktop")
1277 (description "GNOME Color Manager is a session framework that makes
1278 it easy to manage, install and generate color profiles
1279 in the GNOME desktop.")
1280 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1281 (license license:gpl2+)))
1282
1283 (define-public gnome-online-miners
1284 (package
1285 (name "gnome-online-miners")
1286 (version "3.34.0")
1287 (source (origin
1288 (method url-fetch)
1289 (uri (string-append "mirror://gnome/sources/" name "/"
1290 (version-major+minor version) "/"
1291 name "-" version ".tar.xz"))
1292 (sha256
1293 (base32
1294 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))
1295 (patches
1296 (search-patches
1297 "gnome-online-miners-tracker-3.patch"))))
1298 (build-system glib-or-gtk-build-system)
1299 (arguments
1300 `(#:phases
1301 (modify-phases %standard-phases
1302 (add-after 'unpack 'fix-configure
1303 (lambda _
1304 (substitute* "configure.ac"
1305 (("AX_CHECK_ENABLE_DEBUG.*")
1306 ""))))
1307 (add-after 'fix-configure 'autoreconf
1308 (lambda _
1309 (invoke "autoreconf" "-vif"))))))
1310 (native-inputs
1311 `(("autoconf" ,autoconf)
1312 ("automake" ,automake)
1313 ("gettext" ,gettext-minimal)
1314 ("glib:bin" ,glib "bin")
1315 ("gobject-introspection" ,gobject-introspection)
1316 ("gtk+:bin" ,gtk+ "bin")
1317 ("libtool" ,libtool)
1318 ("pkg-config" ,pkg-config)))
1319 (inputs
1320 `(("gnome-online-accounts" ,gnome-online-accounts)
1321 ("grilo" ,grilo)
1322 ("libgdata" ,libgdata)
1323 ("libgfbgraph" ,gfbgraph)
1324 ("libzapojit" ,libzapojit)
1325 ("rest" ,rest)
1326 ("tracker" ,tracker)))
1327 (synopsis "Web Crawlers for GNOME")
1328 (description "GNOME Online Miners provides a set of crawlers that
1329 go through your online content and index them locally in Tracker.
1330 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1331 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1332 (license license:gpl2+)))
1333
1334 (define-public gssdp
1335 (package
1336 (name "gssdp")
1337 (version "1.5.2")
1338 (source (origin
1339 (method url-fetch)
1340 (uri (string-append "mirror://gnome/sources/" name "/"
1341 (version-major+minor version) "/"
1342 name "-" version ".tar.xz"))
1343 (sha256
1344 (base32
1345 "07hn2xma2yh17v7rlvcaibkn16bx4l9qig3mlb8hdp6qfiraqh7b"))))
1346 (build-system meson-build-system)
1347 (native-inputs
1348 (list gettext-minimal
1349 `(,glib "bin")
1350 gi-docgen
1351 gobject-introspection
1352 pkg-config
1353 vala))
1354 (inputs
1355 (list gtk))
1356 (propagated-inputs
1357 ;; The .pc file "Requires" libsoup.
1358 (list libsoup))
1359 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1360 Protocol} for GNOME")
1361 (description "This package provides a library to handle resource discovery
1362 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1363 a debugging tool, @command{gssdp-device-sniffer}.")
1364 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1365 (license license:lgpl2.0+)))
1366
1367 (define-public gssdp-1.4
1368 (package
1369 (inherit gssdp)
1370 (name "gssdp")
1371 (version "1.4.0.1")
1372 (source (origin
1373 (method url-fetch)
1374 (uri (string-append "mirror://gnome/sources/" name "/"
1375 (version-major+minor version) "/"
1376 name "-" version ".tar.xz"))
1377 (sha256
1378 (base32
1379 "10hm8cgh2p8441xc83kswjgghrrqpzgblvc5523jp0pvayfq8xl6"))))
1380 (propagated-inputs (modify-inputs (package-propagated-inputs gssdp)
1381 (replace "libsoup" libsoup-minimal-2)))))
1382
1383 (define-public gupnp
1384 (package
1385 (name "gupnp")
1386 (version "1.5.4")
1387 (source (origin
1388 (method url-fetch)
1389 (uri (string-append "mirror://gnome/sources/" name "/"
1390 (version-major+minor version) "/"
1391 name "-" version ".tar.xz"))
1392 (sha256
1393 (base32
1394 "0y0v0m6afnx879hjvhj2lrawp9qhpyp8mbds0yp544imghajk0wq"))))
1395 (build-system meson-build-system)
1396 (arguments
1397 `(#:phases
1398 (modify-phases %standard-phases
1399 (add-before 'check 'pre-check
1400 (lambda _
1401 ;; Tests require a writable HOME.
1402 (setenv "HOME" (getcwd)))))))
1403 (native-inputs
1404 (list gettext-minimal
1405 `(,glib "bin")
1406 gobject-introspection
1407 gtk-doc/stable
1408 pkg-config
1409 vala))
1410 (propagated-inputs
1411 ;; These libraries are required by the .pc file.
1412 (list glib
1413 gsettings-desktop-schemas ;for ‘org.gnome.system.proxy’.
1414 gssdp
1415 libsoup
1416 libxml2))
1417 (synopsis "PnP API for GNOME")
1418 (description "This package provides GUPnP, an object-oriented framework
1419 for creating UPnP devices and control points, written in C using
1420 @code{GObject} and @code{libsoup}.")
1421 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1422 (license license:lgpl2.0+)))
1423
1424 (define-public gupnp-1.4
1425 (package
1426 (inherit gupnp)
1427 (name "gupnp")
1428 (version "1.4.0")
1429 (source (origin
1430 (method url-fetch)
1431 (uri (string-append "mirror://gnome/sources/" name "/"
1432 (version-major+minor version) "/"
1433 name "-" version ".tar.xz"))
1434 (sha256
1435 (base32
1436 "0vz3ifs8mi3zaz8zj8v27zfkf6xg82y39mcgqspa38jdp01gn3sr"))))
1437 (propagated-inputs (modify-inputs (package-propagated-inputs gupnp)
1438 (replace "libsoup" libsoup-minimal-2)
1439 (replace "gssdp" gssdp-1.4)))))
1440
1441 (define-public gupnp-dlna
1442 (package
1443 (name "gupnp-dlna")
1444 (version "0.12.0")
1445 (source (origin
1446 (method url-fetch)
1447 (uri (string-append "mirror://gnome/sources/" name "/"
1448 (version-major+minor version) "/"
1449 name "-" version ".tar.xz"))
1450 (sha256
1451 (base32
1452 "1rj8j2nz835slqs09bfp6hmyyf6v5azwjzin7v9jhmmwhmpvjlrx"))))
1453 (build-system meson-build-system)
1454 (native-inputs
1455 (list gettext-minimal
1456 `(,glib "bin")
1457 gobject-introspection
1458 gtk-doc/stable
1459 libxml2
1460 pkg-config
1461 vala))
1462 (inputs
1463 (list gstreamer gupnp))
1464 (propagated-inputs
1465 (list gst-plugins-base gst-plugins-good))
1466 (synopsis "GUPnP DLNA for GNOME")
1467 (description "This package provides a small utility library to
1468 support DLNA-related tasks such as media profile guessing, transcoding to a
1469 given profile, etc. DLNA is a subset of UPnP A/V.")
1470 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1471 (license license:lgpl2.0+)))
1472
1473 (define-public gupnp-av
1474 (package
1475 (name "gupnp-av")
1476 (version "0.14.1")
1477 (source (origin
1478 (method url-fetch)
1479 (uri (string-append "mirror://gnome/sources/" name "/"
1480 (version-major+minor version) "/"
1481 name "-" version ".tar.xz"))
1482 (sha256
1483 (base32
1484 "0kry7arwmvs8b4175wia3l0s02ap1shq68f29g2xjrhc9g6f175p"))))
1485 (build-system meson-build-system)
1486 (native-inputs
1487 (list gettext-minimal
1488 `(,glib "bin")
1489 gobject-introspection
1490 gtk-doc/stable
1491 libxml2
1492 pkg-config
1493 vala))
1494 (inputs
1495 (list gtk+ gupnp))
1496 (synopsis "GUPnP A/V for GNOME")
1497 (description "This package provides a small library for handling
1498 and implementation of UPnP A/V profiles.")
1499 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1500 (license license:lgpl2.0+)))
1501
1502 (define-public libmediaart
1503 (package
1504 (name "libmediaart")
1505 (version "1.9.6")
1506 (source (origin
1507 (method url-fetch)
1508 (uri (string-append "mirror://gnome/sources/" name "/"
1509 (version-major+minor version) "/"
1510 name "-" version ".tar.xz"))
1511 (sha256
1512 (base32
1513 "05vzcxm8fqizz77qzdxlsqb5lsqzc4681sy8z63haf6vswjm1g63"))))
1514 (build-system meson-build-system)
1515 (native-inputs
1516 (list `(,glib "bin")
1517 gettext-minimal
1518 gobject-introspection
1519 pkg-config
1520 vala))
1521 (inputs
1522 (list gdk-pixbuf))
1523 (synopsis "Media art library for the GNOME desktop")
1524 (description
1525 "The libmediaart library is the foundation for media art caching,
1526 extraction, and lookup for applications on the desktop.")
1527 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1528 (license license:lgpl2.1+)))
1529
1530 (define-public gnome-initial-setup
1531 (package
1532 (name "gnome-initial-setup")
1533 (version "42.2")
1534 (source (origin
1535 (method url-fetch)
1536 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1537 (version-major version)
1538 "/gnome-initial-setup-" version ".tar.xz"))
1539 (sha256
1540 (base32
1541 "0yxy39a7d2whphd0jskvra5q8zy4v7m7lziy5fxibgls4j5xk0sd"))))
1542 (build-system meson-build-system)
1543 (arguments
1544 (list
1545 #:configure-flags #~(list "-Dsystemd=false")
1546 #:glib-or-gtk? #t
1547 #:phases
1548 #~(modify-phases %standard-phases
1549 (add-after 'unpack 'set-gkbd-file-name
1550 (lambda* (#:key inputs #:allow-other-keys)
1551 ;; Allow the "Preview" button in the keyboard layout
1552 ;; selection dialog to display the layout.
1553 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1554 (("\"gkbd-keyboard-display")
1555 (string-append "\"" (search-input-file
1556 inputs
1557 "bin/gkbd-keyboard-display")))))))))
1558 (native-inputs
1559 (list gettext-minimal
1560 `(,glib "bin")
1561 gobject-introspection
1562 pkg-config))
1563 (inputs
1564 (list accountsservice
1565 cheese
1566 elogind
1567 gdm
1568 geoclue
1569 gnome-desktop
1570 gnome-online-accounts-3.44
1571 gstreamer
1572 ibus
1573 json-glib
1574 mit-krb5
1575 libgnomekbd
1576 libgweather4-with-libsoup2
1577 libhandy
1578 libnma
1579 libpwquality
1580 libsecret
1581 network-manager
1582 packagekit
1583 polkit
1584 rest
1585 upower
1586 webkitgtk-with-libsoup2))
1587 (synopsis "Initial setup wizard for GNOME desktop")
1588 (description "This package provides a set-up wizard when a
1589 user logs into GNOME for the first time. It typically provides a
1590 tour of all gnome components and allows the user to set them up.")
1591 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1592 (license license:gpl2)))
1593
1594 (define-public gnome-user-share
1595 (package
1596 (name "gnome-user-share")
1597 (version "3.34.0")
1598 (source (origin
1599 (method url-fetch)
1600 (uri (string-append "mirror://gnome/sources/" name "/"
1601 (version-major+minor version) "/"
1602 name "-" version ".tar.xz"))
1603 (sha256
1604 (base32
1605 "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x"))))
1606 (build-system meson-build-system)
1607 (arguments
1608 `(#:glib-or-gtk? #t
1609 #:meson ,meson-0.60
1610 #:configure-flags
1611 `("-Dsystemduserunitdir=/tmp/empty"
1612 ;; Enable nautilus extension for file sharing.
1613 "-Dnautilus_extension=true")))
1614 (native-inputs
1615 `(("gettext" ,gettext-minimal)
1616 ("glib:bin" ,glib "bin")
1617 ("gobject-introspection" ,gobject-introspection)
1618 ("gtk+:bin" ,gtk+ "bin")
1619 ("pkg-config" ,pkg-config)
1620 ("yelp-tools" ,yelp-tools)))
1621 (inputs
1622 (list glib
1623 gnome-bluetooth
1624 gtk+
1625 libcanberra
1626 libnotify
1627 nautilus)) ; For nautilus extension.
1628 (synopsis "File sharing for GNOME desktop")
1629 (description "GNOME User Share is a small package that binds together
1630 various free software projects to bring easy to use user-level file
1631 sharing to the masses.")
1632 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1633 (license license:gpl2+)))
1634
1635 (define-public sushi
1636 (package
1637 (name "sushi")
1638 (version "42.0")
1639 (source (origin
1640 (method url-fetch)
1641 (uri (string-append "mirror://gnome/sources/" name "/"
1642 (version-major version) "/"
1643 name "-" version ".tar.xz"))
1644 (sha256
1645 (base32
1646 "0848gidl0ab8i5pa70mv8jzchmd9kqa8sn1lg977hyasyixdpn25"))))
1647 (build-system meson-build-system)
1648 (arguments
1649 `(#:glib-or-gtk? #t
1650 #:phases
1651 (modify-phases %standard-phases
1652 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1653 (lambda* (#:key outputs #:allow-other-keys)
1654 (let ((prog (string-append (assoc-ref outputs "out")
1655 "/bin/sushi")))
1656 ;; Put existing typelibs before sushi's deps, so as to
1657 ;; correctly infer gdk-pixbuf.
1658 (wrap-program prog
1659 `("GI_TYPELIB_PATH" suffix
1660 (,(getenv "GI_TYPELIB_PATH"))))))))))
1661 (native-inputs
1662 (list `(,glib "bin")
1663 gettext-minimal
1664 gobject-introspection
1665 pkg-config))
1666 (inputs
1667 (list bash-minimal
1668 clutter
1669 clutter-gst
1670 clutter-gtk
1671 evince ; For file previewing.
1672 freetype
1673 gdk-pixbuf
1674 gjs
1675 gst-plugins-base
1676 gstreamer
1677 gtksourceview-4
1678 harfbuzz
1679 libepoxy
1680 libmusicbrainz
1681 libxml2
1682 neon
1683 webkitgtk))
1684 (synopsis "File previewer for the GNOME desktop")
1685 (description "Sushi is a DBus-activated service that allows applications
1686 to preview files on the GNOME desktop.")
1687 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1688 (license license:gpl2+)))
1689
1690 (define-public rygel
1691 (package
1692 (name "rygel")
1693 (version "0.41.2")
1694 (source (origin
1695 (method url-fetch)
1696 (uri (string-append "mirror://gnome/sources/" name "/"
1697 (version-major+minor version) "/"
1698 name "-" version ".tar.xz"))
1699 (sha256
1700 (base32
1701 "0wivd60hn115ar3hsrsa595kpxzp8gwq30ksh32qlq8j9dhlq65i"))))
1702 (build-system meson-build-system)
1703 (arguments
1704 ;; Disable the tracker plugin.
1705 '(#:configure-flags
1706 (list "-Dplugins=external,gst-launch,lms,media-export,
1707 mpris,playbin,ruih,tracker3")))
1708 (native-inputs
1709 (list gettext-minimal
1710 `(,glib "bin") ; for glib-compile-schemas, etc.
1711 gobject-introspection
1712 gtk-doc/stable
1713 pkg-config
1714 python
1715 vala
1716 docbook-xml
1717 docbook-xsl
1718 libxslt))
1719 (inputs
1720 (list gdk-pixbuf
1721 gssdp
1722 gstreamer
1723 gst-plugins-base
1724 gst-editing-services
1725 gtk+
1726 gupnp
1727 gupnp-av
1728 gupnp-dlna
1729 json-glib
1730 libgee
1731 libmediaart
1732 libsoup
1733 libxslt
1734 libunistring
1735 tracker))
1736 (synopsis "Share audio, video, and pictures with other devices")
1737 (description
1738 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1739 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1740 pictures, and to control a media player on your home network.
1741
1742 Rygel achieves interoperability with other devices by trying to conform to the
1743 strict requirements of DLNA and by converting media on-the-fly to formats that
1744 client devices can handle.")
1745 (home-page "https://wiki.gnome.org/Projects/Rygel")
1746 (license (list
1747 ;; For logo (data/icons/*).
1748 license:cc-by-sa3.0
1749 ;; For all others.
1750 license:lgpl2.1+))))
1751
1752 (define-public libnma
1753 (package
1754 (name "libnma")
1755 (version "1.10.2")
1756 (source (origin
1757 (method url-fetch)
1758 (uri (string-append "mirror://gnome/sources/" name "/"
1759 (version-major+minor version) "/"
1760 name "-" version ".tar.xz"))
1761 (sha256
1762 (base32
1763 "0h095a26w3sgbspsf7wzz8ddg62j3jb9ckrrv41k7cdp0k2dkhsg"))))
1764 (build-system meson-build-system)
1765 (arguments
1766 `(#:configure-flags (list "-Dlibnma_gtk4=true")
1767 #:phases
1768 (modify-phases %standard-phases
1769 (add-after 'unpack 'patch-docbook-xml
1770 (lambda* (#:key inputs #:allow-other-keys)
1771 (substitute* "libnma-docs.xml"
1772 (("http://.*/docbookx\\.dtd")
1773 (search-input-file
1774 inputs "xml/dtd/docbook/docbookx.dtd"))))))))
1775 (native-inputs
1776 (list docbook-xml-4.3
1777 gettext-minimal
1778 `(,glib "bin")
1779 gtk-doc/stable
1780 gobject-introspection
1781 pkg-config
1782 vala))
1783 (inputs
1784 (list gcr
1785 gtk
1786 iso-codes
1787 mobile-broadband-provider-info
1788 network-manager))
1789 (synopsis "Network Manager's applet library")
1790 (description "Libnma is an applet library for Network Manager. It was
1791 initially part of network-manager-applet and has now become a separate
1792 project.")
1793 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1794 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1795 ;; "LGPL-2.1+".
1796 (license license:gpl2+)))
1797
1798 (define-public gnome-menus
1799 (package
1800 (name "gnome-menus")
1801 (version "3.36.0")
1802 (source (origin
1803 (method url-fetch)
1804 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1805 (version-major+minor version) "/"
1806 name "-" version ".tar.xz"))
1807 (sha256
1808 (base32
1809 "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r"))))
1810 (build-system gnu-build-system)
1811 (native-inputs
1812 (list gettext-minimal glib pkg-config))
1813 (synopsis "Menu support for GNOME desktop")
1814 (description "GNOME Menus contains the libgnome-menu library, the layout
1815 configuration files for the GNOME menu, as well as a simple menu editor.")
1816 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1817 (license license:lgpl2.0+)))
1818
1819 (define-public deja-dup
1820 (package
1821 (name "deja-dup")
1822 (version "43.4")
1823 (source (origin
1824 (method url-fetch)
1825 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1826 version "/deja-dup-" version ".tar.bz2"))
1827 (sha256
1828 (base32
1829 "1mr2g009w0zm5rj8dg1k77c7zdwylih2yszm8vh8wkw6al6bzfh3"))))
1830 (build-system meson-build-system)
1831 (arguments
1832 `(#:glib-or-gtk? #t
1833 #:configure-flags
1834 (list
1835 ;; Otherwise, the RUNPATH will lack the final path component.
1836 (string-append "-Dc_link_args=-Wl,-rpath="
1837 (assoc-ref %outputs "out") "/lib/deja-dup"))
1838 #:phases
1839 (modify-phases %standard-phases
1840 (add-after 'unpack 'patch-paths
1841 (lambda* (#:key inputs #:allow-other-keys)
1842 (let ((python (assoc-ref inputs "python")))
1843 (substitute* '("libdeja/duplicity/DuplicityInstance.vala"
1844 "libdeja/tests/scripts/instance-error.test")
1845 (("/bin/rm")
1846 (which "rm")))
1847 (substitute* "libdeja/tests/runner.vala"
1848 (("/bin/sh")
1849 (which "sh")))
1850 (substitute* "libdeja/tests/scripts/instance-error.test"
1851 (("`which python3`")
1852 (string-append python "/bin/python3"))))))
1853 (add-after 'unpack 'patch-libgpg-error
1854 (lambda* (#:key inputs #:allow-other-keys)
1855 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1856 (substitute* "meson.build"
1857 (("(gpgerror_libs = ).*" _ var)
1858 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))))
1859 (add-after 'install 'wrap-program
1860 (lambda* (#:key inputs outputs #:allow-other-keys)
1861 ;; Add duplicity to the search path
1862 (wrap-program (string-append (assoc-ref outputs "out")
1863 "/bin/deja-dup")
1864 `("PATH" ":" prefix
1865 (,(string-append (assoc-ref inputs "duplicity") "/bin")))))))))
1866 (inputs
1867 (list bash-minimal
1868 duplicity
1869 gsettings-desktop-schemas
1870 gtk
1871 json-glib
1872 libadwaita
1873 libgpg-error
1874 libnotify
1875 libsecret
1876 libsoup
1877 libhandy
1878 packagekit
1879 python
1880 python-pygobject))
1881 (native-inputs
1882 (list appstream-glib
1883 desktop-file-utils
1884 gettext-minimal
1885 `(,glib "bin") ;for glib-compile-schemas
1886 gobject-introspection
1887 `(,gtk "bin") ;for gtk-update-icon-cache
1888 itstool
1889 pkg-config
1890 vala))
1891 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1892 (synopsis "Simple backup tool, for regular encrypted backups")
1893 (description
1894 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1895 uses duplicity as the backend, which supports incremental backups and storage
1896 either on a local, or remote machine via a number of methods.")
1897 (license license:gpl3+)))
1898
1899 (define-public gnome-commander
1900 (package
1901 (name "gnome-commander")
1902 (version "1.14.3")
1903 (source
1904 (origin
1905 (method url-fetch)
1906 (uri (string-append "mirror://gnome/sources/" name "/"
1907 (version-major+minor version) "/"
1908 "gnome-commander-" version ".tar.xz"))
1909 (sha256
1910 (base32 "0yzx9slg632iflw9p96nlh9i50dhacq7hrzpkj8b48mr1zkxrn3q"))))
1911 (build-system glib-or-gtk-build-system)
1912 (native-inputs
1913 (list desktop-file-utils
1914 flex
1915 gettext-minimal
1916 `(,glib "bin")
1917 gobject-introspection
1918 googletest
1919 intltool
1920 itstool
1921 libtool
1922 pkg-config))
1923 (inputs
1924 (list gconf glib gtk+-2 libxml2))
1925 (home-page "https://gcmd.github.io/")
1926 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1927 (description
1928 "GNOME Commander is a two-pane graphical file manager using GNOME
1929 libraries. It aims to fulfill the demands of more advanced users who
1930 like to focus on file management, their work through special applications
1931 and running smart commands.")
1932 (license license:gpl2+)))
1933
1934 (define-public gnome-user-docs
1935 (package
1936 (name "gnome-user-docs")
1937 (version "42.0")
1938 (source
1939 (origin
1940 (method url-fetch)
1941 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1942 (version-major version)
1943 "/gnome-user-docs-" version ".tar.xz"))
1944 (sha256
1945 (base32 "01g9smkk2sj3yrih2wjn6vx9av855n7w6nqf9wpxvfq086h7vcmj"))))
1946 (build-system gnu-build-system)
1947 (native-inputs
1948 (list gettext-minimal itstool pkg-config libxml2))
1949 (synopsis "User documentation for the GNOME desktop")
1950 (description
1951 "The GNOME User Documentation explains how to use the GNOME desktop and its
1952 components. It covers usage and setup of the core GNOME programs by end-users
1953 and system administrators.")
1954 (home-page "https://live.gnome.org/DocumentationProject")
1955 (license license:cc-by3.0)))
1956
1957 (define-public dia
1958 ;; This version from GNOME's repository includes fixes for compiling with
1959 ;; recent versions of the build tools. The latest activity on the
1960 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1961 ;; fixes since.
1962 (let ((commit "0997887d97f01be28bf3886dfd3e2002de437930")
1963 (revision "3"))
1964 (package
1965 (name "dia")
1966 (version (git-version "0.97.3" revision commit))
1967 (source (origin
1968 (method git-fetch)
1969 (uri (git-reference
1970 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1971 (commit commit)))
1972 (file-name (git-file-name name version))
1973 (sha256
1974 (base32
1975 "199b4n1jydg1g9lnz0r8xx67h7s2ac2lfj89zp015lbs0qqfkmsh"))))
1976 (build-system meson-build-system)
1977 ;; XXX: Parallel builds may cause: [74/566] [...]
1978 ;; fatal error: dia-lib-enums.h: No such file or directory
1979 (arguments '(#:parallel-build? #f))
1980 (inputs
1981 (list graphene
1982 gtk+-2
1983 libxml2
1984 libxslt
1985
1986 ;; XXX: PDF plugin fails to build with poppler 21.07.0.
1987 ;; poppler
1988
1989 python))
1990 (native-inputs
1991 (list appstream-glib docbook-xsl
1992 `(,glib "bin") gettext-minimal pkg-config))
1993 (home-page "https://wiki.gnome.org/Apps/Dia")
1994 (synopsis "Diagram creation for GNOME")
1995 (description "Dia can be used to draw different types of diagrams, and
1996 includes support for UML static structure diagrams (class diagrams), entity
1997 relationship modeling, and network diagrams. The program supports various file
1998 formats like PNG, SVG, PDF and EPS.")
1999 (license license:gpl2+))))
2000
2001 (define-public libgdata
2002 (package
2003 (name "libgdata")
2004 (version "0.18.1")
2005 (source (origin
2006 (method url-fetch)
2007 (uri (string-append "mirror://gnome/sources/" name "/"
2008 (version-major+minor version) "/"
2009 name "-" version ".tar.xz"))
2010 (sha256
2011 (base32
2012 "1iq4d1qy0vkmy29xvr13dgz4pxvn5v3yi2swryld0ajinvp951fx"))))
2013 (build-system meson-build-system)
2014 (arguments
2015 '(#:phases
2016 (modify-phases %standard-phases
2017 (add-before 'check 'set-home-for-tests
2018 (lambda _
2019 (setenv "HOME" "/tmp"))))))
2020 (native-inputs
2021 `(("glib:bin" ,glib "bin")
2022 ("gobject-introspection" ,gobject-introspection)
2023 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2024 ("intltool" ,intltool)
2025 ("pkg-config" ,pkg-config)
2026 ("uhttpmock" ,uhttpmock)))
2027 (inputs
2028 (list cyrus-sasl glib-networking vala))
2029 (propagated-inputs
2030 `(("gcr" ,gcr)
2031 ("glib" ,glib)
2032 ("gnome-online-accounts" ,gnome-online-accounts)
2033 ("json-glib" ,json-glib)
2034 ("liboauth" ,liboauth)
2035 ("libsoup" ,libsoup-minimal-2)
2036 ("libxml2" ,libxml2)))
2037 (home-page "https://wiki.gnome.org/Projects/libgdata")
2038 (synopsis "Library for accessing online service APIs")
2039 (description
2040 "libgdata is a GLib-based library for accessing online service APIs using
2041 the GData protocol — most notably, Google's services. It provides APIs to
2042 access the common Google services, and has full asynchronous support.")
2043 (license license:lgpl2.1+)))
2044
2045 (define-public libgxps
2046 (package
2047 (name "libgxps")
2048 (version "0.3.2")
2049 (source (origin
2050 (method url-fetch)
2051 (uri (string-append "mirror://gnome/sources/" name "/"
2052 (version-major+minor version) "/"
2053 name "-" version ".tar.xz"))
2054 (sha256
2055 (base32
2056 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
2057 (build-system meson-build-system)
2058 (native-inputs
2059 (list gobject-introspection pkg-config))
2060 (inputs
2061 (list gtk+ libjpeg-turbo lcms libtiff))
2062 (propagated-inputs
2063 ;; In Requires of libgxps.pc.
2064 (list cairo glib libarchive))
2065 (home-page "https://wiki.gnome.org/Projects/libgxps")
2066 (synopsis "GObject-based library for handling and rendering XPS documents")
2067 (description
2068 "libgxps is a GObject-based library for handling and rendering XPS
2069 documents. This package also contains binaries that can convert XPS documents
2070 to other formats.")
2071 (license license:lgpl2.1+)))
2072
2073 (define-public gnome-characters
2074 (package
2075 (name "gnome-characters")
2076 (version "42.0")
2077 (source
2078 (origin
2079 (method url-fetch)
2080 (uri (string-append "mirror://gnome/sources/"
2081 "gnome-characters/" (version-major version)
2082 "/gnome-characters-" version ".tar.xz"))
2083 (sha256
2084 (base32
2085 "1y40g7k7yyzikbbxhf69q4c0221lga1cli1p617v99pq2swgz82x"))))
2086 (build-system meson-build-system)
2087 (arguments
2088 (list
2089 #:glib-or-gtk? #t
2090 #:phases #~(modify-phases %standard-phases
2091 (add-after 'unpack 'disable-gtk-update-icon-cache
2092 (lambda _
2093 (setenv "DESTDIR" "/")))
2094 (add-after 'install 'wrap
2095 (lambda* (#:key outputs #:allow-other-keys)
2096 ;; GNOME Characters needs Typelib files from GTK and
2097 ;; gnome-desktop.
2098 (wrap-program (search-input-file outputs
2099 "bin/gnome-characters")
2100 `("GI_TYPELIB_PATH" ":" prefix
2101 (,(getenv "GI_TYPELIB_PATH")))))))))
2102 (native-inputs
2103 (list gettext-minimal
2104 `(,glib "bin")
2105 pkg-config
2106 python-minimal))
2107 (inputs
2108 (list gjs
2109 gnome-desktop
2110 gtk
2111 libadwaita
2112 libhandy
2113 libunistring))
2114 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2115 (synopsis "Find and insert unusual characters")
2116 (description "Characters is a simple utility application to find
2117 and insert unusual characters. It allows you to quickly find the
2118 character you are looking for by searching for keywords.")
2119 (license license:bsd-3)))
2120
2121 (define-public gnome-common
2122 (package
2123 (name "gnome-common")
2124 (version "3.18.0")
2125 (source
2126 (origin
2127 (method url-fetch)
2128 (uri (string-append "mirror://gnome/sources/" name "/"
2129 (version-major+minor version) "/"
2130 name "-" version ".tar.xz"))
2131 (sha256
2132 (base32
2133 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2134 (build-system gnu-build-system)
2135 (home-page "https://www.gnome.org/")
2136 (synopsis "Bootstrap GNOME modules built from Git")
2137 (description "gnome-common contains various files needed to bootstrap
2138 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2139 can be used to configure a source directory checked out from Git and some
2140 commonly used macros.")
2141 (license license:gpl2+)))
2142
2143 (define-public gnome-contacts
2144 (package
2145 (name "gnome-contacts")
2146 (version "42.0")
2147 (source (origin
2148 (method url-fetch)
2149 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2150 (version-major version) "/"
2151 name "-" version ".tar.xz"))
2152 (sha256
2153 (base32
2154 "05jj5kiab13crm18r166w7h31jpny7f3px98q7d2ix93vj7w60l8"))))
2155 (build-system meson-build-system)
2156 (arguments
2157 `(#:glib-or-gtk? #t
2158 #:phases
2159 (modify-phases %standard-phases
2160 (add-after 'unpack 'skip-gtk-update-icon-cache
2161 (lambda _
2162 (substitute* "meson.build"
2163 (("gtk_update_icon_cache: true")
2164 "gtk_update_icon_cache: false")))))))
2165 (native-inputs
2166 (list desktop-file-utils
2167 docbook-xml
2168 docbook-xml-4.2
2169 docbook-xsl
2170 gettext-minimal
2171 `(,glib "bin")
2172 gobject-introspection
2173 libxslt
2174 pkg-config))
2175 (inputs
2176 (list evolution-data-server-3.44
2177 gnome-desktop
2178 gnome-online-accounts-3.44
2179 gst-plugins-base
2180 gtk
2181 libadwaita
2182 libgee
2183 libhandy
2184 libportal
2185 telepathy-glib
2186 vala))
2187 (propagated-inputs
2188 (list folks-with-libsoup2
2189 telepathy-mission-control))
2190 (synopsis "GNOME's integrated address book")
2191 (description
2192 "GNOME Contacts organizes your contact information from online and
2193 offline sources, providing a centralized place for managing your contacts.")
2194 (home-page "https://wiki.gnome.org/Apps/Contacts")
2195 (license license:gpl2+)))
2196
2197 (define-public gnome-desktop
2198 (package
2199 (name "gnome-desktop")
2200 (version "42.4")
2201 (source
2202 (origin
2203 (method url-fetch)
2204 (uri (string-append "mirror://gnome/sources/" name "/"
2205 (version-major version) "/"
2206 name "-" version ".tar.xz"))
2207 (sha256
2208 (base32
2209 "09ddr5fzhh02fcn7xl1wy18qfsdqryd5msl2nbhdnsbr0vawkqhw"))))
2210 (build-system meson-build-system)
2211 (arguments
2212 '(#:phases
2213 (modify-phases %standard-phases
2214 (add-before 'configure 'patch-path
2215 (lambda* (#:key inputs #:allow-other-keys)
2216 (substitute* "libgnome-desktop/gnome-languages.c"
2217 (("\"locale\"")
2218 (format #f "~s" (search-input-file inputs "bin/locale"))))))
2219 (add-before 'configure 'patch-bubblewrap
2220 (lambda* (#:key inputs #:allow-other-keys)
2221 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2222 (("\"bwrap\",")
2223 (string-append "\"" (which "bwrap") "\","))
2224 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2225 (string-append "\"--ro-bind\", \""
2226 (%store-directory)
2227 "\", \""
2228 (%store-directory)
2229 "\","))
2230 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",")
2231 ""))))
2232 (add-before 'check 'pre-check
2233 (lambda* (#:key inputs #:allow-other-keys)
2234 ;; Tests require a running X server and locales.
2235 (system "Xvfb :1 &")
2236 (setenv "DISPLAY" ":1")
2237 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
2238 (setenv "XDG_CONFIG_HOME" "/tmp")
2239 (setenv "GUIX_LOCPATH"
2240 (search-input-directory inputs
2241 "lib/locale")))))))
2242 (native-inputs
2243 (list `(,glib "bin") ;for gdbus-codegen
2244 glibc-locales ;for tests
2245 gobject-introspection
2246 itstool
2247 intltool
2248 pkg-config
2249 libxml2
2250 xorg-server-for-tests))
2251 (propagated-inputs
2252 ;; Required by gnome-desktop-3.0.pc.
2253 (list gsettings-desktop-schemas-next
2254 gtk
2255 gtk+
2256 iso-codes
2257 libseccomp
2258 libx11
2259 xkeyboard-config))
2260 (inputs
2261 (list bubblewrap
2262 gdk-pixbuf
2263 glib
2264 libxext
2265 libxkbfile
2266 libxrandr))
2267 (home-page "https://www.gnome.org/")
2268 (synopsis
2269 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2270 (description
2271 "The libgnome-desktop library provides API shared by several applications
2272 on the desktop, but that cannot live in the platform for various reasons.
2273 There is no API or ABI guarantee, although we are doing our best to provide
2274 stability. Documentation for the API is available with gtk-doc.
2275
2276 The gnome-about program helps find which version of GNOME is installed.")
2277 ; Some bits under the LGPL.
2278 (license license:gpl2+)))
2279
2280 (define-public gnome-disk-utility
2281 (package
2282 (name "gnome-disk-utility")
2283 (version "42.0")
2284 (source (origin
2285 (method url-fetch)
2286 (uri (string-append "mirror://gnome/sources/" name "/"
2287 (version-major version) "/"
2288 name "-" version ".tar.xz"))
2289 (sha256
2290 (base32
2291 "02q906gn420xbf1f0apazryzqfv5b1ammz1vrci66hk79m2n8r8v"))))
2292 (build-system meson-build-system)
2293 (arguments
2294 `(#:configure-flags '("-Dlogind=libelogind")
2295 #:meson ,meson-0.60
2296 #:phases
2297 (modify-phases %standard-phases
2298 (add-after 'unpack 'skip-gtk-update-icon-cache
2299 ;; Don't create 'icon-theme.cache'.
2300 (lambda _
2301 (substitute* "meson_post_install.py"
2302 (("gtk-update-icon-cache") "true")))))))
2303 (native-inputs
2304 (list docbook-xml
2305 docbook-xsl
2306 `(,glib "bin")
2307 gettext-minimal
2308 pkg-config
2309 libxml2
2310 libxslt))
2311 (inputs
2312 (list elogind
2313 glib
2314 appstream-glib
2315 gnome-settings-daemon
2316 gtk+
2317 libcanberra
2318 libdvdread
2319 libhandy
2320 libnotify
2321 libpwquality
2322 libsecret
2323 udisks))
2324 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2325 (synopsis "Disk management utility for GNOME")
2326 (description "Disk management utility for GNOME.")
2327 (license license:gpl2+)))
2328
2329 (define-public gnome-font-viewer
2330 (package
2331 (name "gnome-font-viewer")
2332 (version "42.0")
2333 (source (origin
2334 (method url-fetch)
2335 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2336 (version-major version)
2337 "/gnome-font-viewer-" version ".tar.xz"))
2338 (sha256
2339 (base32
2340 "1k4dhk5dmkpxb5xpr9vrl7k2fdpi2fidzni1l2hhb891zzgvi8ng"))))
2341 (build-system meson-build-system)
2342 (arguments
2343 (list
2344 #:phases
2345 #~(modify-phases %standard-phases
2346 (add-after 'unpack 'patch-post-install-script
2347 (lambda _
2348 (substitute* "meson-postinstall.sh"
2349 (("update-desktop-database") (which "true")))))
2350 (add-after 'install 'patch-thumbnailer
2351 (lambda* (#:key outputs #:allow-other-keys)
2352 (substitute*
2353 (search-input-file
2354 outputs "share/thumbnailers/gnome-font-viewer.thumbnailer")
2355 (("gnome-thumbnail-font")
2356 (search-input-file outputs "bin/gnome-thumbnail-font"))))))))
2357 (native-inputs
2358 (list gettext-minimal
2359 `(,glib "bin")
2360 pkg-config))
2361 (inputs
2362 (list glib
2363 gnome-desktop
2364 gtk
2365 libadwaita
2366 libhandy
2367 libxml2))
2368 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2369 (synopsis "GNOME Fonts")
2370 (description "Application to show you the fonts installed on your computer
2371 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2372 the font would look under various sizes.")
2373 (license license:gpl2+)))
2374
2375 (define-public gcr
2376 (package
2377 (name "gcr")
2378 (version "3.41.1")
2379 (source (origin
2380 (method url-fetch)
2381 (uri (string-append "mirror://gnome/sources/" name "/"
2382 (version-major+minor version) "/"
2383 name "-" version ".tar.xz"))
2384 (sha256
2385 (base32
2386 "0kx2pv272p0qc0nq1287gciyn34d95yxg41vq3lzxfzyqaijhwdv"))))
2387 (build-system meson-build-system)
2388 (arguments
2389 (list
2390 #:phases
2391 #~(modify-phases %standard-phases
2392 (add-after 'unpack 'remove-fatal-warnings-option
2393 ;; Otherwise, the gi-docgen tool would fail because of the
2394 ;; "Fontconfig error: No writable cache directories" warnings.
2395 (lambda _
2396 (substitute* (find-files "." "^meson\\.build$")
2397 ((".*'--fatal-warnings',.*") ""))))
2398 (add-after 'unpack 'skip-gtk-update-icon-cache
2399 ;; Don't create 'icon-theme.cache'.
2400 (lambda _
2401 (substitute* "meson_post_install.py"
2402 (("gtk-update-icon-cache") "true"))))
2403 (add-before 'check 'pre-check
2404 (lambda _
2405 ;; Some tests expect to write to $HOME.
2406 (setenv "HOME" "/tmp")))
2407 (replace 'check
2408 (lambda* (#:key parallel-tests? tests? #:allow-other-keys)
2409 (when tests?
2410 (setenv "MESON_TESTTHREADS"
2411 (if parallel-tests?
2412 (number->string (parallel-job-count))
2413 "1"))
2414 ;; Work around the "mock prompter couldn't get session bus
2415 ;; address: Cannot spawn a message bus without a machine-id"
2416 ;; error by manually creating the session bus via
2417 ;; 'dbus-run-session'.
2418 (invoke "dbus-run-session" "--"
2419 "meson" "test" "-t" "0")))))))
2420 (inputs
2421 (list dbus
2422 gnupg
2423 libgcrypt
2424 libsecret))
2425 (native-inputs
2426 (list gettext-minimal
2427 gi-docgen
2428 `(,glib "bin")
2429 gobject-introspection
2430 gtk-doc
2431 libxml2
2432 libxslt
2433 openssh
2434 pkg-config
2435 python-wrapper
2436 vala))
2437 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2438 (propagated-inputs
2439 (list glib
2440 gtk+
2441 p11-kit))
2442 (home-page "https://www.gnome.org")
2443 (synopsis "Libraries for displaying certificates and accessing key stores")
2444 (description
2445 "The GCR package contains libraries used for displaying certificates and
2446 accessing key stores. It also provides the viewer for crypto files on the
2447 GNOME Desktop.")
2448 (license license:lgpl2.1+)))
2449
2450 (define-public gdl
2451 (package
2452 (name "gdl")
2453 (version "3.34.0")
2454 (source (origin
2455 (method git-fetch)
2456 (uri (git-reference
2457 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2458 (commit (string-append "GDL_" (string-map (match-lambda
2459 (#\. #\_)
2460 (c c))
2461 version)))))
2462 (file-name (git-file-name name version))
2463 (sha256
2464 (base32
2465 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2466 (build-system gnu-build-system)
2467 (native-inputs
2468 (list autoconf
2469 automake
2470 `(,glib "bin") ; for glib-genmarshal, etc.
2471 gnome-common
2472 gtk-doc/stable
2473 intltool
2474 pkg-config
2475 libtool
2476 which))
2477 (inputs
2478 (list libxml2))
2479 (propagated-inputs
2480 ;; The gdl-3.0.pc file 'Requires' GTK+.
2481 (list gtk+))
2482 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2483 (synopsis "GNOME docking library")
2484 (description "This library provides docking features for gtk+.")
2485 (license license:lgpl2.1+)))
2486
2487 ;;; A minimal variant used to break a cycle with Inkscape.
2488 (define-public gdl-minimal
2489 (package/inherit gdl
2490 (name "gdl-minimal")
2491 (arguments
2492 '(#:phases
2493 (modify-phases %standard-phases
2494 (add-after 'unpack 'disable-doc-generation
2495 ;; XXX: There is no easy way to disable generating the
2496 ;; documentation.
2497 (lambda _
2498 (substitute* "configure.in"
2499 (("GTK_DOC_CHECK.*") "")
2500 (("docs/.*") ""))
2501 (substitute* "Makefile.am"
2502 (("gdl docs po") "gdl po"))
2503 #t)))))
2504 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2505
2506 (define-public libgnome-keyring
2507 (package
2508 (name "libgnome-keyring")
2509 (version "3.12.0")
2510 (source (origin
2511 (method url-fetch)
2512 (uri (string-append "mirror://gnome/sources/" name "/"
2513 (version-major+minor version) "/"
2514 name "-" version ".tar.xz"))
2515 (sha256
2516 (base32
2517 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2518 (build-system gnu-build-system)
2519 (inputs
2520 (list libgcrypt dbus))
2521 (native-inputs
2522 (list pkg-config
2523 `(,glib "bin") intltool))
2524 (propagated-inputs
2525 ;; Referred to in .h files and .pc.
2526 (list glib))
2527 (home-page "https://www.gnome.org")
2528 (synopsis "Accessing passwords from the GNOME keyring")
2529 (description
2530 "Client library to access passwords from the GNOME keyring.")
2531
2532 ;; Though a couple of files are LGPLv2.1+.
2533 (license license:lgpl2.0+)))
2534
2535 (define-public gnome-keyring
2536 (package
2537 (name "gnome-keyring")
2538 (version "42.1")
2539 (source (origin
2540 (method url-fetch)
2541 (uri (string-append "mirror://gnome/sources/" name "/"
2542 (version-major version) "/"
2543 name "-" version ".tar.xz"))
2544 (sha256
2545 (base32
2546 "1rp38v4s9116ivycp27w806wihqid48gk3p0czzbg9knri0d1x67"))))
2547 (build-system gnu-build-system)
2548 (arguments
2549 (list
2550 #:configure-flags
2551 #~(list
2552 (string-append "--with-pkcs11-config="
2553 #$output "/share/p11-kit/modules/")
2554 (string-append "--with-pkcs11-modules="
2555 #$output "/share/p11-kit/modules/"))
2556 #:phases
2557 #~(modify-phases %standard-phases
2558 (add-after 'unpack 'fix-/bin/sh-reference
2559 (lambda _
2560 (substitute* "po/Makefile.in.in"
2561 (("/bin/sh") (which "sh")))))
2562 (delete 'check)
2563 (add-after 'install 'check
2564 (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
2565 (when tests?
2566 (setenv "HOME" "/tmp") ;some tests require a writable HOME
2567 (setenv "XDG_DATA_DIRS" (string-append (getenv "XDG_DATA_DIRS")
2568 ":" #$output "/share"))
2569 (invoke "dbus-run-session" "make" "check" "-j"
2570 (if parallel-tests?
2571 (number->string (parallel-job-count))
2572 "1"))))))))
2573 (inputs
2574 (list dbus
2575 gcr
2576 libgcrypt
2577 linux-pam
2578 openssh))
2579 (native-inputs
2580 (list dbus ;for tests
2581 docbook-xml-4.3
2582 docbook-xml
2583 docbook-xsl
2584 gettext-minimal
2585 `(,glib "bin")
2586 glib ;for m4 macros
2587 libxml2 ;for XML_CATALOG_FILES
2588 libxslt ;for documentation
2589 pkg-config
2590 python-wrapper)) ;for tests
2591 (propagated-inputs
2592 (list gcr))
2593 (home-page "https://www.gnome.org")
2594 (synopsis "Daemon to store passwords and encryption keys")
2595 (description
2596 "@command{gnome-keyring} is a program that keeps passwords and other
2597 secrets for users. It is run as a daemon in the session, similar to
2598 @command{ssh-agent}, and other applications locate it via an environment
2599 variable or D-Bus.
2600
2601 The program can manage several keyrings, each with its own master password,
2602 and there is also a session keyring which is never stored to disk, but
2603 forgotten when the session ends.")
2604 (license license:lgpl2.1+)))
2605
2606 (define-public evince
2607 (package
2608 (name "evince")
2609 (version "42.3")
2610 (source (origin
2611 (method url-fetch)
2612 (uri "mirror://gnome/sources/evince/42/evince-42.3.tar.xz")
2613 (sha256
2614 (base32
2615 "0pk42icnf4kdcaqaj17mcf4sxi82h1fdg2ds2zdrcv4lbj2czbj9"))))
2616 (build-system meson-build-system)
2617 (arguments
2618 `(#:glib-or-gtk? #t
2619 #:build-type "release"
2620 #:configure-flags '("-Dnautilus=false")
2621 #:phases
2622 (modify-phases %standard-phases
2623 (add-after 'unpack 'skip-gtk-update-icon-cache
2624 ;; Don't create 'icon-theme.cache'.
2625 (lambda _
2626 (substitute* "meson_post_install.py"
2627 (("gtk-update-icon-cache") "true")))))))
2628 (inputs
2629 (list libarchive
2630 libgxps
2631 libspectre
2632 djvulibre
2633 ghostscript
2634 poppler-next
2635 libtiff
2636 texlive-libkpathsea ; for DVI support
2637 gnome-desktop
2638 gsettings-desktop-schemas
2639 gspell
2640 libgnome-keyring
2641 adwaita-icon-theme
2642 gdk-pixbuf
2643 atk
2644 pango
2645 gtk+
2646 glib
2647 libxml2
2648 libsm
2649 libice
2650 shared-mime-info
2651 dconf
2652 libcanberra
2653 libsecret
2654 libhandy))
2655 (native-inputs
2656 (list itstool
2657 gettext-minimal
2658 gi-docgen
2659 `(,glib "bin")
2660 gobject-introspection
2661 pkg-config
2662 libxml2))
2663 (home-page " https://wiki.gnome.org/Apps")
2664 (synopsis "GNOME's document viewer")
2665 (description
2666 "Evince is a document viewer for multiple document formats. It
2667 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2668 of Evince is to replace the multiple document viewers that exist
2669 on the GNOME Desktop with a single simple application.")
2670 (license license:gpl2+)))
2671
2672 (define-public gsettings-desktop-schemas
2673 (package
2674 (name "gsettings-desktop-schemas")
2675 (version "41.0")
2676 (source
2677 (origin
2678 (method url-fetch)
2679 (uri (string-append "mirror://gnome/sources/" name "/"
2680 (version-major version) "/"
2681 name "-" version ".tar.xz"))
2682 (sha256
2683 (base32
2684 "1v9jagk679m01nji0acirynxinziv036618c7xc49l4nwmr9ja3p"))))
2685 (build-system meson-build-system)
2686 (arguments
2687 `(#:phases (modify-phases %standard-phases
2688 (add-after 'unpack 'patch-schemas
2689 (lambda* (#:key inputs #:allow-other-keys)
2690 (substitute* (find-files "schemas"
2691 "\\.gschema\\.xml\\.in$")
2692 ;; Provide the correct file name of the default
2693 ;; GNOME background, 'adwaita-timed.xml'.
2694 (("@datadir@/backgrounds/gnome")
2695 (search-input-directory inputs
2696 "/share/backgrounds/gnome"))
2697 ;; Do not reference fonts, that may not exist.
2698 (("'Source Code Pro 10'") "'Monospace 11'")))))))
2699 (inputs (list glib gnome-backgrounds))
2700 (native-inputs (list gettext-minimal
2701 `(,glib "bin") ;glib-compile-schemas, etc.
2702 gobject-introspection
2703 pkg-config
2704 python)) ;for build-aux/meson/post-install.py
2705 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2706 (synopsis "GNOME settings for various desktop components")
2707 (description "Gsettings-desktop-schemas contains a collection of GSettings
2708 schemas for settings shared by various components of the GNOME desktop.")
2709 (license license:lgpl2.1+)))
2710
2711 (define-public gsettings-desktop-schemas-next
2712 (package
2713 (inherit gsettings-desktop-schemas)
2714 (name "gsettings-desktop-schemas-next") ;to avoid propagation conflicts
2715 (version "42.0")
2716 (source
2717 (origin
2718 (method url-fetch)
2719 (uri (string-append "mirror://gnome/sources/" name "/"
2720 (version-major version) "/"
2721 name "-" version ".tar.xz"))
2722 (sha256
2723 (base32
2724 "1li3fcqwnw20f4j0i21i88fygm0hli8gmzkn4apgf8ynkrd371k6"))))))
2725
2726 (define-public python-liblarch
2727 (package
2728 (name "python-liblarch")
2729 (version "3.2.0")
2730 (source (origin
2731 (method git-fetch)
2732 (uri (git-reference
2733 (url "https://github.com/getting-things-gnome/liblarch")
2734 (commit (string-append "v" version))))
2735 (file-name (git-file-name name version))
2736 (sha256
2737 (base32
2738 "125rmrdbc84lapfh8c77zxnmwas20xdfamqmilhv1smkxn2q4sh3"))))
2739 (build-system python-build-system)
2740 (arguments
2741 `(#:phases (modify-phases %standard-phases
2742 (add-before 'check 'start-xserver
2743 (lambda* (#:key inputs #:allow-other-keys)
2744 (system (format #f "~a/bin/Xvfb :1 &"
2745 (assoc-ref inputs "xorg-server")))
2746 (setenv "DISPLAY" ":1"))))))
2747 (native-inputs (list xorg-server-for-tests))
2748 (inputs (list gtk+))
2749 (propagated-inputs (list python-pygobject))
2750 (home-page "https://wiki.gnome.org/Projects/liblarch")
2751 (synopsis "Library to easily handle complex data structures")
2752 (description
2753 "Liblarch is a Python library built to easily handle data structures such
2754 as lists, trees and acyclic graphs. There's also a GTK binding that will
2755 allow you to use your data structure in a @code{Gtk.Treeview}.
2756
2757 Liblarch support multiple views of one data structure and complex filtering.
2758 That way, you have a clear separation between your data themselves (Model)
2759 and how they are displayed (View).")
2760 (license license:lgpl3+)))
2761
2762 (define-public gtg
2763 (package
2764 (name "gtg")
2765 (version "0.6")
2766 (source
2767 (origin
2768 (method git-fetch)
2769 (uri (git-reference
2770 (url "https://github.com/getting-things-gnome/gtg")
2771 (commit (string-append "v" version))))
2772 (file-name (git-file-name name version))
2773 (sha256
2774 (base32 "1wcivqp4z3a2jdr2wdrldzwy9v6hlfp5sk0pmh80znlgvl7q3jiv"))))
2775 (build-system meson-build-system)
2776 (arguments
2777 (list
2778 #:glib-or-gtk? #t
2779 #:imported-modules `(,@%meson-build-system-modules
2780 (guix build python-build-system))
2781 #:modules '((guix build meson-build-system)
2782 ((guix build python-build-system) #:prefix python:)
2783 (guix build utils))
2784 #:phases
2785 #~(modify-phases %standard-phases
2786 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2787 (lambda* (#:key inputs outputs #:allow-other-keys)
2788 (wrap-program (search-input-file outputs "bin/gtg")
2789 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
2790 ,(python:site-packages inputs outputs)))
2791 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
2792 (native-inputs
2793 (list desktop-file-utils
2794 gettext-minimal
2795 `(,glib "bin")
2796 gobject-introspection
2797 pkg-config
2798 python))
2799 (inputs
2800 (list bash-minimal
2801 librsvg
2802 gsettings-desktop-schemas
2803 gtk+
2804 pango
2805 python
2806 python-dbus
2807 python-liblarch
2808 python-lxml
2809 python-pycairo
2810 python-pygobject
2811 python-pyxdg))
2812 (home-page "https://wiki.gnome.org/Apps/GTG")
2813 (synopsis "Personal organizer for the GNOME desktop")
2814 (description
2815 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2816 organizer for the GNOME desktop environment inspired by the Getting Things
2817 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2818 and ease of use in mind so it can be used as more than just GTD software.
2819 GTG is intended to help you track everything you need to do and need to
2820 know, from small tasks to large projects.")
2821 (license license:gpl3+)))
2822
2823 (define-public icon-naming-utils
2824 (package
2825 (name "icon-naming-utils")
2826 (version "0.8.90")
2827 (source
2828 (origin
2829 (method url-fetch)
2830 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2831 version ".tar.bz2"))
2832 (sha256
2833 (base32
2834 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2835 (build-system gnu-build-system)
2836 (inputs
2837 (list perl perl-xml-simple))
2838 (arguments
2839 '(#:phases
2840 (modify-phases %standard-phases
2841 (add-after 'install 'set-load-paths
2842 ;; Tell 'icon-name-mapping' where XML::Simple is.
2843 (lambda* (#:key outputs #:allow-other-keys)
2844 (let* ((out (assoc-ref outputs "out"))
2845 (prog (string-append out "/libexec/icon-name-mapping")))
2846 (wrap-program
2847 prog
2848 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2849 #t)))))
2850 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2851 (synopsis
2852 "Utility to implement the Freedesktop Icon Naming Specification")
2853 (description
2854 "To help with the transition to the Freedesktop Icon Naming
2855 Specification, the icon naming utility maps the icon names used by the
2856 GNOME and KDE desktops to the icon names proposed in the specification.")
2857 (license license:lgpl2.1+)))
2858
2859 (define-public adwaita-icon-theme
2860 (package
2861 (name "adwaita-icon-theme")
2862 (version "42.0")
2863 (source (origin
2864 (method url-fetch)
2865 (uri (string-append "mirror://gnome/sources/" name "/"
2866 (version-major version) "/"
2867 name "-" version ".tar.xz"))
2868 (sha256
2869 (base32
2870 "1q5i31zd5jzr12p6vn831afwnzbzf6x73wna1y86drnyr2nvb1ay"))))
2871 (build-system gnu-build-system)
2872 (arguments
2873 (list #:make-flags
2874 ;; Don't create 'icon-theme.cache'.
2875 #~(list "GTK_UPDATE_ICON_CACHE=")))
2876 (native-inputs
2877 ;; The following requires the SVG pixbuf loader, provided by librsvg,
2878 ;; available on x86_64 only.
2879 `(,@(if (target-64bit?)
2880 `((,gtk+ "bin")) ;for gtk-encode-symbolic-svg
2881 '())))
2882 (home-page "https://gitlab.gnome.org/GNOME/adwaita-icon-theme")
2883 (synopsis "GNOME icon theme")
2884 (description "Icons for the GNOME desktop.")
2885 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2886
2887 (define-public gnome-icon-theme
2888 (deprecated-package "gnome-icon-theme" adwaita-icon-theme))
2889
2890 (define-public tango-icon-theme
2891 (package
2892 (name "tango-icon-theme")
2893 (version "0.8.90")
2894 (source (origin
2895 (method url-fetch)
2896 (uri (string-append "http://tango.freedesktop.org/releases/"
2897 "tango-icon-theme-" version ".tar.bz2"))
2898 (sha256
2899 (base32
2900 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2901 (build-system gnu-build-system)
2902 (native-inputs
2903 (list icon-naming-utils intltool imagemagick pkg-config))
2904 (home-page "http://tango-project.org/")
2905 (synopsis "Tango icon theme")
2906 (description "This is an icon theme that follows the Tango visual
2907 guidelines.")
2908 (license license:public-domain)))
2909
2910 (define-public shared-mime-info
2911 (package
2912 (name "shared-mime-info")
2913 (version "1.15")
2914 (source (origin
2915 (method url-fetch)
2916 (uri (string-append
2917 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2918 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2919 ".tar.xz"))
2920 (sha256
2921 (base32
2922 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2923 (build-system gnu-build-system)
2924 (arguments
2925 ;; The build system appears not to be parallel-safe.
2926 '(#:parallel-build? #f))
2927 (inputs
2928 (list glib libxml2))
2929 (native-inputs
2930 `(("gettext" ,gettext-minimal)
2931 ("itstool" ,itstool)
2932 ("pkg-config" ,pkg-config)))
2933 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2934 (synopsis "Database of common MIME types")
2935 (description
2936 "The shared-mime-info package contains the core database of common types
2937 and the update-mime-database command used to extend it. It requires glib2 to
2938 be installed for building the update command. Additionally, it uses intltool
2939 for translations, though this is only a dependency for the maintainers. This
2940 database is translated at Transifex.")
2941 (license license:gpl2+)))
2942
2943 (define-public system-config-printer
2944 (package
2945 (name "system-config-printer")
2946 (version "1.5.16")
2947 (source
2948 (origin
2949 (method url-fetch)
2950 (uri (string-append
2951 "https://github.com/OpenPrinting/system-config-printer/releases/"
2952 "download/v" version
2953 "/system-config-printer-" version ".tar.xz"))
2954 (sha256
2955 (base32 "1z9pvgifj5c87csnqz10qybbcayh3ak9m606f63ifkvyjh4q9jnb"))))
2956 (build-system glib-or-gtk-build-system)
2957 (arguments
2958 (list
2959 #:imported-modules `((guix build python-build-system)
2960 ,@%glib-or-gtk-build-system-modules)
2961 #:phases
2962 #~(modify-phases %standard-phases
2963 (add-after 'unpack 'patch-build-files
2964 (lambda _
2965 (substitute* "configure.ac"
2966 (("AC_INIT.*" all)
2967 (string-append all "\nAC_CONFIG_MACRO_DIR([m4])\n"))
2968 ;; XXX: AX macros appear unavailable
2969 (("AX_REQUIRE_DEFINED.*") ""))
2970 ;; The Makefile generates some scripts, so set a valid shebang
2971 (substitute* "Makefile.am"
2972 (("/bin/bash") (which "bash")))
2973 (delete-file "configure")))
2974 (add-after 'unpack 'patch-docbook-xml
2975 (lambda* (#:key inputs #:allow-other-keys)
2976 ;; Modify the man XML otherwise xmlto tries to access the network
2977 (substitute* "man/system-config-printer.xml"
2978 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2979 (string-append (assoc-ref inputs "docbook-xml")
2980 "/xml/dtd/docbook/")))))
2981 (add-after 'install 'add-install-to-pythonpath
2982 (@@ (guix build python-build-system) add-install-to-pythonpath))
2983 (add-after 'add-install-to-pythonpath 'wrap-for-python
2984 (@@ (guix build python-build-system) wrap))
2985 (add-after 'install 'wrap
2986 (lambda* (#:key outputs #:allow-other-keys)
2987 (let ((out (assoc-ref outputs "out"))
2988 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2989 (for-each
2990 (lambda (program)
2991 (wrap-program program
2992 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2993 (map (lambda (name)
2994 (string-append out "/bin/" name))
2995 '("system-config-printer"
2996 "system-config-printer-applet"
2997 "install-printerdriver"
2998 "scp-dbus-service")))))))))
2999 (inputs
3000 (list gsettings-desktop-schemas
3001 gobject-introspection
3002 python
3003 cups
3004 gtk+
3005 python-dbus
3006 python-pygobject
3007 python-pycups
3008 python-requests
3009 python-pycairo
3010 libnotify
3011 packagekit))
3012 (native-inputs
3013 (list pkg-config
3014 desktop-file-utils
3015 glib
3016 autoconf
3017 automake
3018 gettext-minimal
3019 xmlto
3020 docbook-xml-4.1.2
3021 docbook-xsl
3022 libxml2))
3023 (home-page "https://github.com/zdohnal/system-config-printer")
3024 (synopsis "CUPS administration tool")
3025 (description
3026 "system-config-printer is a CUPS administration tool. It's written in
3027 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
3028 configuring CUPS.")
3029 (license license:gpl2+)))
3030
3031 (define-public hicolor-icon-theme
3032 (package
3033 (name "hicolor-icon-theme")
3034 (version "0.17")
3035 (source
3036 (origin
3037 (method url-fetch)
3038 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3039 "hicolor-icon-theme-" version ".tar.xz"))
3040 (sha256
3041 (base32
3042 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3043 (build-system gnu-build-system)
3044 (arguments
3045 `(#:tests? #f)) ; no check target
3046 (home-page "https://icon-theme.freedesktop.org/releases/")
3047 (synopsis
3048 "Freedesktop icon theme")
3049 (description
3050 "Freedesktop icon theme.")
3051 (license license:gpl2)))
3052
3053 (define-public libnotify
3054 (package
3055 (name "libnotify")
3056 (version "0.7.9")
3057 (source
3058 (origin
3059 (method url-fetch)
3060 (uri (string-append "mirror://gnome/sources/" name "/"
3061 (version-major+minor version) "/"
3062 name "-" version ".tar.xz"))
3063 (sha256
3064 (base32
3065 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3066 (build-system meson-build-system)
3067 (arguments
3068 `(#:phases
3069 (modify-phases %standard-phases
3070 (add-after 'unpack 'fix-docbook
3071 (lambda* (#:key inputs #:allow-other-keys)
3072 ;; Don't attempt to download XSL schema.
3073 (substitute* "meson.build"
3074 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3075 /manpages/docbook.xsl")
3076 (string-append (assoc-ref inputs "docbook-xsl")
3077 "/xml/xsl/docbook-xsl-"
3078 ,(package-version docbook-xsl)
3079 "/manpages/docbook.xsl")))
3080 #t)))))
3081 (propagated-inputs
3082 (list ;; In Requires of libnotify.pc.
3083 gdk-pixbuf glib))
3084 (inputs
3085 (list gtk+ libpng))
3086 (native-inputs
3087 `(("pkg-config" ,pkg-config)
3088 ("glib" ,glib "bin")
3089 ("gobject-introspection" ,gobject-introspection)
3090
3091 ;; For the documentation.
3092 ("gtk-doc" ,gtk-doc/stable)
3093 ("xsltproc" ,libxslt)
3094 ("docbook-xsl" ,docbook-xsl)))
3095 (home-page "https://developer-next.gnome.org/libnotify/")
3096 (synopsis
3097 "GNOME desktop notification library")
3098 (description
3099 "Libnotify is a library that sends desktop notifications to a
3100 notification daemon, as defined in the Desktop Notifications spec. These
3101 notifications can be used to inform the user about an event or display
3102 some form of information without getting in the user's way.")
3103 (license license:lgpl2.1+)))
3104
3105 (define-public libpeas
3106 (package
3107 (name "libpeas")
3108 (version "1.32.0")
3109 (source
3110 (origin
3111 (method url-fetch)
3112 (uri (string-append "mirror://gnome/sources/" name "/"
3113 (version-major+minor version) "/"
3114 name "-" version ".tar.xz"))
3115 (sha256
3116 (base32
3117 "03ixrhfkywcb409dd0hybyb6i291phwy8si4kc17g29fl07m49fn"))))
3118 (build-system meson-build-system)
3119 (arguments
3120 '(#:phases
3121 (modify-phases %standard-phases
3122 (add-before 'check 'start-xserver
3123 (lambda* (#:key inputs #:allow-other-keys)
3124 (let ((disp ":1"))
3125 (setenv "DISPLAY" disp)
3126 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
3127 (setenv "XDG_CONFIG_HOME" "/tmp")
3128 ;; Tests require a running X server.
3129 (system (format #f "~a ~a &"
3130 (search-input-file inputs "bin/Xvfb")
3131 disp))))))))
3132 (inputs
3133 (list gtk+
3134 glade3
3135 python
3136 python-pygobject))
3137 (native-inputs
3138 (list pkg-config
3139 gettext-minimal
3140 `(,glib "bin")
3141 gobject-introspection
3142 xorg-server-for-tests))
3143 (propagated-inputs
3144 ;; The .pc file "Requires" gobject-introspection.
3145 (list gobject-introspection))
3146 (home-page "https://wiki.gnome.org/Projects/Libpeas")
3147 (synopsis "GObject plugin system")
3148 (description
3149 "Libpeas is a gobject-based plugin engine, targeted at giving every
3150 application the chance to assume its own extensibility. It also has a set of
3151 features including, but not limited to: multiple extension points; on-demand
3152 (lazy) programming language support for C, Python and JS; simplicity of the
3153 API.")
3154 (license license:lgpl2.0+)))
3155
3156 (define-public gtkglext
3157 (package
3158 (name "gtkglext")
3159 (version "1.2.0")
3160 (source (origin
3161 (method url-fetch)
3162 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3163 version "/gtkglext-" version ".tar.gz"))
3164 (sha256
3165 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3166 (patches (search-patches
3167 "gtkglext-disable-disable-deprecated.patch"))))
3168 (build-system gnu-build-system)
3169 (arguments
3170 `(#:phases
3171 (modify-phases %standard-phases
3172 ;; Fix a collision between a local variable and a definition from
3173 ;; glibc's string.h.
3174 (add-after 'unpack 'fix-collision
3175 (lambda _
3176 (substitute* "gdk/gdkglshapes.c"
3177 ((" index") " triangle_index"))
3178 #t)))))
3179 (inputs (list gtk+-2 mesa glu libx11 libxt))
3180 (native-inputs (list pkg-config
3181 `(,glib "bin")))
3182 (propagated-inputs (list pangox-compat))
3183 (home-page "https://projects.gnome.org/gtkglext")
3184 (synopsis "OpenGL extension to GTK+")
3185 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3186 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3187 API add-ons to make GTK+ widgets OpenGL-capable.")
3188 (license license:lgpl2.1+)))
3189
3190 (define-public glade3
3191 (package
3192 (name "glade")
3193 (version "3.40.0")
3194 (source (origin
3195 (method url-fetch)
3196 (uri (string-append "mirror://gnome/sources/" name "/"
3197 (version-major+minor version) "/"
3198 name "-" version ".tar.xz"))
3199 (sha256
3200 (base32
3201 "171x7vshhw0nqgnhkcaqfylpr5qrmhclwmkva6wjm5s9m2pavj9i"))))
3202 (build-system meson-build-system)
3203 (arguments
3204 (list
3205 #:phases
3206 #~(modify-phases %standard-phases
3207 (add-after 'unpack 'skip-gtk-update-icon-cache
3208 ;; Don't create 'icon-theme.cache'.
3209 (lambda _
3210 (substitute* "meson_post_install.py"
3211 (("gtk-update-icon-cache") "true"))))
3212
3213 #$@(if (this-package-input "gjs")
3214 '()
3215 '((add-after 'unpack 'skip-gjs-test
3216 (lambda _
3217 ;; When the optional dependency on GJS is missing, skip
3218 ;; the GJS plugin tests.
3219 (substitute* "tests/modules.c"
3220 (("g_test_add.*JavaScript.*" all)
3221 (string-append "// " all "\n")))
3222 (delete-file "tests/catalogs/gjsplugin.xml")))))
3223 (add-before 'check 'pre-check
3224 (lambda _
3225 (setenv "HOME" "/tmp")
3226 ;; Tests require a running X server.
3227 (system "Xvfb :1 &")
3228 (setenv "DISPLAY" ":1"))))))
3229 (inputs
3230 (append
3231 ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
3232 ;; dependency on other platforms (FIXME).
3233 (if (target-x86-64?)
3234 (list gjs)
3235 '())
3236 (list gtk+ libxml2)))
3237 (native-inputs
3238 (list docbook-xml-4.2
3239 docbook-xsl
3240 gettext-minimal
3241 `(,glib "bin")
3242 gobject-introspection
3243 hicolor-icon-theme
3244 itstool
3245 libxml2 ;for XML_CATALOG_FILES
3246 libxslt ;for xsltproc
3247 python
3248 python-pygobject
3249 pkg-config
3250 xorg-server-for-tests))
3251 (home-page "https://glade.gnome.org")
3252 (synopsis "GTK+ rapid application development tool")
3253 (description "Glade is a rapid application development (RAD) tool to
3254 enable quick & easy development of user interfaces for the GTK+ toolkit and
3255 the GNOME desktop environment.")
3256 (license license:lgpl2.0+)
3257 (native-search-paths (list (search-path-specification
3258 (variable "GLADE_CATALOG_SEARCH_PATH")
3259 (files '("share/glade/catalogs")))
3260 (search-path-specification
3261 (variable "GLADE_MODULE_SEARCH_PATH")
3262 (files '("lib/glade/modules")))))))
3263
3264 (define-public blueprint-compiler
3265 (package
3266 (name "blueprint-compiler")
3267 (version "0.4.0")
3268 (source (origin
3269 (method git-fetch)
3270 (uri (git-reference
3271 (url
3272 "https://gitlab.gnome.org/jwestman/blueprint-compiler")
3273 (commit (string-append "v" version))))
3274 (file-name (string-append name "-" version "-checkout"))
3275 (sha256
3276 (base32
3277 "0hj7f4xhwjc4x32r3lswwclbw37fw3spy806g4plkmym25hz4ydy"))))
3278 (build-system meson-build-system)
3279 (native-inputs (list gtk python-pygobject python))
3280 (inputs (list python))
3281 (synopsis "Template markup language")
3282 (description
3283 "Blueprint is a markup language for GTK user interfaces. Internally, it
3284 compiles to GTKBuilder XML.")
3285 (home-page "https://gitlab.gnome.org/jwestman/blueprint-compiler")
3286 (license license:lgpl3+)))
3287
3288 (define-public cambalache
3289 (package
3290 (name "cambalache")
3291 (version "0.10.3")
3292 (source (origin
3293 (method git-fetch)
3294 (uri (git-reference
3295 (url "https://gitlab.gnome.org/jpu/cambalache")
3296 (commit version)))
3297 (file-name (git-file-name name version))
3298 (sha256
3299 (base32 "1nq9bvly4dm1xnh90z3b4c5455qpdgm3jgz2155vg2ai23f22vsy"))))
3300 (build-system meson-build-system)
3301 (arguments
3302 (list
3303 #:glib-or-gtk? #t
3304 #:imported-modules `((guix build python-build-system)
3305 ,@%meson-build-system-modules)
3306 #:modules '((guix build meson-build-system)
3307 ((guix build python-build-system) #:prefix python:)
3308 (guix build utils))
3309 #:phases
3310 #~(modify-phases %standard-phases
3311 (add-after 'unpack 'patch-source
3312 (lambda* (#:key inputs #:allow-other-keys)
3313 (substitute* "cambalache/cmb_view.py"
3314 (("GLib\\.find_program_in_path\\('(.*)'\\)" all cmd)
3315 (format #f "~s" (search-input-file
3316 inputs (string-append "bin/" cmd)))))))
3317 (add-after 'unpack 'patch-build
3318 (lambda _
3319 (substitute* "postinstall.py"
3320 (("update-desktop-database") "true"))))
3321 (add-after 'wrap 'python-wrap (assoc-ref python:%standard-phases 'wrap))
3322 (delete 'check)
3323 (add-after 'install 'add-install-to-pythonpath
3324 (assoc-ref python:%standard-phases 'add-install-to-pythonpath))
3325 (add-after 'add-install-to-pythonpath 'pre-check
3326 (lambda _
3327 (system "Xvfb :1 &")
3328 (setenv "DISPLAY" ":1")))
3329 (add-after 'pre-check 'check
3330 (lambda* (#:key tests? #:allow-other-keys)
3331 (when tests?
3332 (with-directory-excursion ".."
3333 (invoke "python3" "-m" "pytest")))))
3334 (add-after 'glib-or-gtk-wrap 'wrap-typelib
3335 (lambda _
3336 (for-each
3337 (lambda (prog)
3338 (unless (wrapped-program? prog)
3339 (wrap-program prog
3340 `("GI_TYPELIB_PATH" suffix
3341 (,(string-append #$output "/lib/girepository-1.0")
3342 ,(getenv "GI_TYPELIB_PATH")))
3343 ;; icons and schemas
3344 `("XDG_DATA_DIRS" suffix
3345 #$(map
3346 (lambda (input)
3347 (file-append (this-package-input input) "/share"))
3348 '("adwaita-icon-theme" "hicolor-icon-theme"
3349 "gsettings-desktop-schemas")))
3350 ;; Wrapping GDK_PIXBUF_MODULE_FILE allows Cambalache to
3351 ;; load its own icons in pure environments.
3352 `("GDK_PIXBUF_MODULE_FILE" =
3353 (,(getenv "GDK_PIXBUF_MODULE_FILE"))))))
3354 (find-files (string-append #$output "/bin"))))))))
3355 (inputs
3356 (list bash-minimal
3357 adwaita-icon-theme hicolor-icon-theme
3358 gsettings-desktop-schemas
3359 gtk
3360 `(,gtk+ "bin") ; broadwayd
3361 `(,gtk "bin")
3362 libadwaita
3363 libhandy
3364 (librsvg-for-system)
3365 python
3366 python-pygobject
3367 python-lxml
3368 webkitgtk-with-libsoup2))
3369 (native-inputs (list `(,glib "bin") gobject-introspection
3370 gettext-minimal pkg-config
3371 python-pytest xorg-server-for-tests))
3372 (home-page "https://gitlab.gnome.org/jpu/cambalache")
3373 (synopsis "Rapid application development tool")
3374 (description "Cambalache is a rapid application development (RAD) tool for
3375 Gtk 4 and 3 with a clear model-view-controller (MVC) design and
3376 data model first philosophy.")
3377 (license (list license:lgpl2.1
3378 license:gpl2)))) ; tools
3379
3380 (define-public libcroco
3381 (package
3382 (name "libcroco")
3383 (version "0.6.13")
3384 (source (origin
3385 (method url-fetch)
3386 (uri (string-append "mirror://gnome/sources/" name "/"
3387 (version-major+minor version) "/"
3388 name "-" version ".tar.xz"))
3389 (patches (search-patches "libcroco-CVE-2020-12825.patch"))
3390 (sha256
3391 (base32
3392 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3393 (build-system gnu-build-system)
3394 (native-inputs
3395 (list pkg-config))
3396 (inputs
3397 (list glib libxml2 zlib))
3398 (home-page "https://github.com/GNOME/libcroco")
3399 (synopsis "CSS2 parsing and manipulation library")
3400 (description
3401 "Libcroco is a standalone CSS2 parsing and manipulation library.
3402 The parser provides a low level event driven SAC-like API and a CSS object
3403 model like API. Libcroco provides a CSS2 selection engine and an experimental
3404 XML/CSS rendering engine.")
3405
3406 ;; LGPLv2.1-only.
3407 (license license:lgpl2.1)))
3408
3409 (define-public libgsf
3410 (package
3411 (name "libgsf")
3412 (version "1.14.50")
3413 (source (origin
3414 (method url-fetch)
3415 (uri (string-append "mirror://gnome/sources/" name "/"
3416 (version-major+minor version) "/"
3417 name "-" version ".tar.xz"))
3418 (sha256
3419 (base32
3420 "0llf5rpg2rg9pdz8j38dl5z82zi9kmsn639wb2fhcfc3fz820v3f"))))
3421 (build-system glib-or-gtk-build-system)
3422 (outputs '("out" "bin" "doc"))
3423 (arguments
3424 (list
3425 #:configure-flags
3426 #~(list
3427 "--disable-static"
3428 "--enable-introspection"
3429 (string-append "--with-gir-dir=" #$output
3430 "/share/gir-"
3431 #$(version-major
3432 (package-version gobject-introspection))
3433 ".0")
3434 (string-append "--with-typelib-dir=" #$output
3435 "/lib/girepository-"
3436 #$(version-major
3437 (package-version gobject-introspection))
3438 ".0")
3439 (string-append "--with-html-dir=" #$output
3440 "/share/gtk-doc/html")
3441 "--with-zlib"
3442 "--with-bz2")
3443 #:phases
3444 #~(modify-phases %standard-phases
3445 (add-after 'unpack 'patch-docbook-xml
3446 (lambda* (#:key native-inputs inputs #:allow-other-keys)
3447 (with-directory-excursion "doc"
3448 (substitute* "gsf-docs.xml"
3449 (("http://www.oasis-open.org/docbook/xml/4.5/")
3450 (search-input-directory (or native-inputs inputs)
3451 "xml/dtd/docbook")))))))))
3452 (native-inputs
3453 (list docbook-xml
3454 gettext-minimal
3455 gobject-introspection
3456 perl
3457 perl-xml-parser
3458 pkg-config
3459 python-wrapper))
3460 (inputs
3461 (list bzip2
3462 gdk-pixbuf
3463 zlib))
3464 (propagated-inputs
3465 (list glib
3466 libxml2))
3467 (synopsis "G Structured File Library")
3468 (description "Libgsf aims to provide an efficient extensible I/O abstraction
3469 for dealing with different structured file formats.")
3470 (home-page "https://gitlab.gnome.org/GNOME/libgsf")
3471 (license
3472 (list license:lgpl2.1+ ;library
3473 license:lgpl2.0+)))) ;others
3474
3475 (define-public librsvg
3476 (package
3477 (name "librsvg")
3478 (version "2.50.7")
3479 (source (origin
3480 (method url-fetch)
3481 (uri (string-append "mirror://gnome/sources/librsvg/"
3482 (version-major+minor version) "/"
3483 "librsvg-" version ".tar.xz"))
3484 (sha256
3485 (base32
3486 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3487 (modules '((guix build utils)))
3488 (snippet
3489 '(begin (delete-file-recursively "vendor")))))
3490 (build-system cargo-build-system)
3491 (outputs '("out" "doc" "debug"))
3492 (arguments
3493 `(#:install-source? #f
3494 #:modules
3495 ((guix build cargo-build-system)
3496 (guix build utils)
3497 ((guix build gnu-build-system) #:prefix gnu:))
3498 #:cargo-inputs
3499 (("rust-bitflags" ,rust-bitflags-1)
3500 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3501 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3502 ("rust-cast" ,rust-cast-0.2)
3503 ("rust-cssparser" ,rust-cssparser-0.27)
3504 ("rust-data-url" ,rust-data-url-0.1)
3505 ("rust-encoding" ,rust-encoding-0.2)
3506 ("rust-float-cmp" ,rust-float-cmp-0.8)
3507 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3508 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3509 ("rust-gio" ,rust-gio-0.8)
3510 ("rust-gio-sys" ,rust-gio-sys-0.9)
3511 ("rust-glib" ,rust-glib-0.9)
3512 ("rust-glib-sys" ,rust-glib-sys-0.9)
3513 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3514 ("rust-itertools" ,rust-itertools-0.9)
3515 ("rust-language-tags" ,rust-language-tags-0.2)
3516 ("rust-libc" ,rust-libc-0.2)
3517 ("rust-locale-config" ,rust-locale-config-0.3)
3518 ("rust-markup5ever" ,rust-markup5ever-0.10)
3519 ("rust-nalgebra" ,rust-nalgebra-0.21)
3520 ("rust-num-traits" ,rust-num-traits-0.2)
3521 ("rust-once-cell" ,rust-once-cell-1)
3522 ("rust-pkg-config" ,rust-pkg-config-0.3)
3523 ("rust-pango" ,rust-pango-0.8)
3524 ("rust-pango-sys" ,rust-pango-sys-0.9)
3525 ("rust-pangocairo" ,rust-pangocairo-0.9)
3526 ("rust-rayon" ,rust-rayon-1)
3527 ("rust-rctree" ,rust-rctree-0.3)
3528 ("rust-rgb" ,rust-rgb-0.8)
3529 ("rust-regex" ,rust-regex-1)
3530 ("rust-selectors" ,rust-selectors-0.22)
3531 ("rust-string-cache" ,rust-string-cache-0.8)
3532 ("rust-tinyvec" ,rust-tinyvec-0.3)
3533 ("rust-url" ,rust-url-2)
3534 ("rust-xml5ever" ,rust-xml5ever-0.16))
3535 #:cargo-development-inputs
3536 (("rust-assert-cmd" ,rust-assert-cmd-1)
3537 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3538 ("rust-chrono" ,rust-chrono-0.4)
3539 ("rust-criterion" ,rust-criterion-0.3)
3540 ("rust-float-cmp" ,rust-float-cmp-0.8)
3541 ("rust-lopdf" ,rust-lopdf-0.26)
3542 ("rust-png" ,rust-png-0.16)
3543 ("rust-predicates" ,rust-predicates-1)
3544 ("rust-tempfile" ,rust-tempfile-3))
3545 #:phases
3546 (modify-phases %standard-phases
3547 (add-after 'unpack 'patch-docbook-xml
3548 (lambda* (#:key inputs #:allow-other-keys)
3549 (with-directory-excursion "doc"
3550 (substitute* "rsvg-docs.xml"
3551 (("http://www.oasis-open.org/docbook/xml/4.3/")
3552 (string-append (assoc-ref inputs "docbook-xml")
3553 "/xml/dtd/docbook/"))))))
3554 (add-after 'unpack 'prepare-for-build
3555 (lambda _
3556 ;; In lieu of #:make-flags
3557 (setenv "CC" ,(cc-for-target))
3558 ;; Something about the build environment resists building
3559 ;; successfully with the '--locked' flag.
3560 (substitute* '("Makefile.am" "Makefile.in")
3561 (("--locked") ""))))
3562 (add-before 'configure 'pre-configure
3563 (lambda* (#:key outputs #:allow-other-keys)
3564 (substitute* "gdk-pixbuf-loader/Makefile.in"
3565 ;; By default the gdk-pixbuf loader is installed under
3566 ;; gdk-pixbuf's prefix. Work around that.
3567 (("gdk_pixbuf_moduledir = .*$")
3568 (string-append "gdk_pixbuf_moduledir = "
3569 "$(prefix)/"
3570 ,(dirname %gdk-pixbuf-loaders-cache-file) "/"
3571 "loaders\n")))
3572 (substitute* "configure"
3573 (("gdk_pixbuf_cache_file=.*")
3574 (string-append "gdk_pixbuf_cache_file="
3575 (assoc-ref outputs "out") "/"
3576 ,%gdk-pixbuf-loaders-cache-file "\n")))))
3577 (add-after 'configure 'gnu-configure
3578 (lambda* (#:key outputs #:allow-other-keys #:rest args)
3579 (apply (assoc-ref gnu:%standard-phases 'configure)
3580 #:configure-flags
3581 (list "--disable-static"
3582 "--enable-vala"
3583 (string-append "--with-html-dir="
3584 (assoc-ref outputs "doc")
3585 "/share/gtk-doc/html"))
3586 args)))
3587 (add-after 'configure 'dont-vendor-self
3588 (lambda* (#:key vendor-dir #:allow-other-keys)
3589 ;; Don't keep the whole tarball in the vendor directory
3590 (delete-file-recursively
3591 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))))
3592 (replace 'build
3593 (assoc-ref gnu:%standard-phases 'build))
3594 (add-before 'check 'ignore-failing-tests
3595 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3596 (lambda _
3597 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3598 (("fn background_color_option_invalid_color_yields_error" all)
3599 (string-append "#[ignore] " all))
3600 (("fn empty_input_yields_error" all)
3601 (string-append "#[ignore] " all))
3602 (("fn empty_svg_yields_error" all)
3603 (string-append "#[ignore] " all))
3604 (("fn env_source_data_epoch_empty" all)
3605 (string-append "#[ignore] " all))
3606 (("fn env_source_data_epoch_no_digits" all)
3607 (string-append "#[ignore] " all))
3608 (("fn env_source_data_epoch_trailing_garbage" all)
3609 (string-append "#[ignore] " all))
3610 (("fn export_id_option_error" all)
3611 (string-append "#[ignore] " all))
3612 (("fn huge_zoom_factor_yields_error" all)
3613 (string-append "#[ignore] " all))
3614 (("fn multiple_input_files_not_allowed_for_png_output" all)
3615 (string-append "#[ignore] " all))
3616 (("fn stylesheet_option_error" all)
3617 (string-append "#[ignore] " all)))))
3618 (replace 'check
3619 (lambda* args
3620 ((assoc-ref gnu:%standard-phases 'check)
3621 #:test-target "check")))
3622 (replace 'install
3623 (assoc-ref gnu:%standard-phases 'install)))))
3624 (native-inputs
3625 (list docbook-xml-4.3
3626 `(,glib "bin")
3627 gobject-introspection
3628 pkg-config
3629 vala))
3630 (inputs
3631 (list freetype harfbuzz libxml2 pango))
3632 (propagated-inputs
3633 (list cairo gdk-pixbuf glib))
3634 (synopsis "SVG rendering library")
3635 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3636 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3637 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3638 diagrams.")
3639 (home-page "https://wiki.gnome.org/LibRsvg")
3640 (license license:lgpl2.1+)))
3641
3642 ;; This copy of librsvg uses the bundled rust libraries. It is useful for
3643 ;; packages which have too many dependencies to be rebuilt as frequently
3644 ;; as the rust inputs are updated.
3645 ;; TODO: Remove this package and use packaged rust libraries!
3646 (define-public librsvg-bootstrap
3647 (package
3648 (inherit librsvg)
3649 (name "librsvg")
3650 (version "2.50.7")
3651 (source (origin
3652 (method url-fetch)
3653 (uri (string-append "mirror://gnome/sources/librsvg/"
3654 (version-major+minor version) "/"
3655 "librsvg-" version ".tar.xz"))
3656 (sha256
3657 (base32
3658 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3659 (modules '((guix build utils)))
3660 (snippet
3661 '(begin
3662 (for-each delete-file (find-files "vendor" "\\.a$"))))))
3663 (arguments
3664 (substitute-keyword-arguments (package-arguments librsvg)
3665 ((#:vendor-dir _ "vendor") "vendor")
3666 ((#:cargo-inputs _) '())
3667 ((#:cargo-development-inputs _) '())))
3668 (properties '((hidden? . #t)))))
3669
3670 (define-public librsvg-2.40
3671 ;; This is the last version implemented in C.
3672 (package
3673 (inherit librsvg)
3674 (version "2.40.21")
3675 (source (origin
3676 (method url-fetch)
3677 (uri (string-append "mirror://gnome/sources/librsvg/"
3678 (version-major+minor version)
3679 "/librsvg-" version ".tar.xz"))
3680 (sha256
3681 (base32
3682 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3683 (build-system gnu-build-system)
3684 (arguments
3685 `(#:configure-flags (list "--disable-static")
3686 #:phases
3687 (modify-phases %standard-phases
3688 (add-before 'configure 'pre-configure
3689 (lambda* (#:key inputs #:allow-other-keys)
3690 (substitute* "gdk-pixbuf-loader/Makefile.in"
3691 ;; By default the gdk-pixbuf loader is installed under
3692 ;; gdk-pixbuf's prefix. Work around that.
3693 (("gdk_pixbuf_moduledir = .*$")
3694 (string-append "gdk_pixbuf_moduledir = "
3695 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3696 "loaders\n"))
3697 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3698 (("gdk_pixbuf_cache_file = .*$")
3699 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3700 #t))
3701 (add-before 'check 'remove-failing-tests
3702 (lambda _
3703 (with-directory-excursion "tests/fixtures/reftests"
3704 (for-each delete-file
3705 '(;; This test fails on i686:
3706 "svg1.1/masking-path-04-b.svg"
3707 ;; This test fails on armhf:
3708 "svg1.1/masking-mask-01-b.svg"
3709 ;; This test fails on aarch64:
3710 "bugs/777834-empty-text-children.svg"
3711
3712 ;; These two tests fail due to slightly different
3713 ;; text rendering (different kerning or similar),
3714 ;; nothing alarming.
3715 "bugs/340047.svg"
3716 "bugs/749415.svg"))))))))
3717 (native-inputs
3718 (list pkg-config
3719 `(,glib "bin") ; glib-mkenums, etc.
3720 gobject-introspection)) ; g-ir-compiler, etc.
3721 (inputs
3722 (list pango libcroco libxml2))
3723 (propagated-inputs
3724 ;; librsvg-2.0.pc refers to all of that.
3725 (list cairo gdk-pixbuf glib))
3726 (synopsis "Render SVG files using Cairo (ancient C version)")
3727 (properties '((hidden? . #t)))))
3728
3729 (define* (librsvg-for-system #:optional
3730 (system (or (%current-target-system)
3731 (%current-system))))
3732 ;; Since librsvg 2.50 depends on Rust, and Rust is only correctly supported
3733 ;; on x86_64 so far, use the ancient C version on other platforms (FIXME).
3734 (if (string-prefix? "x86_64-" system)
3735 librsvg
3736 librsvg-2.40))
3737
3738 (export librsvg-for-system)
3739
3740 (define-public libidl
3741 (package
3742 (name "libidl")
3743 (version "0.8.14")
3744 (source (origin
3745 (method url-fetch)
3746 (uri (string-append "mirror://gnome/sources/libIDL/"
3747 (version-major+minor version) "/"
3748 "libIDL-" version ".tar.bz2"))
3749 (sha256
3750 (base32
3751 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3752 (build-system gnu-build-system)
3753 (inputs (list glib))
3754 (native-inputs
3755 (list pkg-config flex bison))
3756 (home-page "http://freecode.com/projects/libidl")
3757 (synopsis "Create trees of CORBA Interface Definition Language files")
3758 (description "Libidl is a library for creating trees of CORBA Interface
3759 Definition Language (idl) files, which is a specification for defining
3760 portable interfaces. libidl was initially written for orbit (the orb from the
3761 GNOME project, and the primary means of libidl distribution). However, the
3762 functionality was designed to be as reusable and portable as possible.")
3763 (properties `((upstream-name . "libIDL")))
3764 (license license:lgpl2.0+)))
3765
3766
3767 (define-public orbit2
3768 (package
3769 (name "orbit2")
3770 (version "2.14.19")
3771 (source (origin
3772 (method url-fetch)
3773 (uri (let ((upstream-name "ORBit2"))
3774 (string-append "mirror://gnome/sources/" upstream-name "/"
3775 (version-major+minor version) "/"
3776 upstream-name "-" version ".tar.bz2")))
3777 (sha256
3778 (base32
3779 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3780 (build-system gnu-build-system)
3781 (arguments
3782 `(;; The "timeout-server" test hangs when run in parallel.
3783 #:parallel-tests? #f
3784 #:configure-flags
3785 '(;; We don't need static libraries, plus they don't build reproducibly
3786 ;; (non-deterministic ordering of .o files in the archive.)
3787 "--disable-static"
3788
3789 ;; The programmer kindly gives us a hook to turn off deprecation
3790 ;; warnings ...
3791 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3792 ;; ... which they then completly ignore !!
3793 #:phases
3794 (modify-phases %standard-phases
3795 (add-after 'unpack 'fix-parallel-build
3796 ;; Parallel build fails because of a failed dependency,
3797 ;; https://bugzilla.gnome.org/show_bug.cgi?id=732274
3798 (lambda _
3799 (substitute* "src/services/name/Makefile.am"
3800 (("orbit_name_server_2_DEPENDENCIES = \\$(DEPS) CosNaming.h")
3801 "orbit_name_server_2_DEPENDENCIES = \
3802 $(DEPS) CosNaming.h libname-server-2.a"))))
3803 (add-before 'configure 'ignore-deprecations
3804 (lambda _
3805 (substitute* "linc2/src/Makefile.in"
3806 (("-DG_DISABLE_DEPRECATED")
3807 "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))))))
3808 (inputs (list glib libidl))
3809 (native-inputs
3810 (list pkg-config))
3811 (home-page "https://projects.gnome.org/orbit2/")
3812 (synopsis "CORBA 2.4-compliant Object Request Broker")
3813 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3814 featuring mature C, C++ and Python bindings.")
3815 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3816 ;; a version. SOME of the code files have licence notices for GPLv2+.
3817 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3818 (license license:gpl2+)
3819 (properties `((upstream-name . "ORBit2")))))
3820
3821
3822 (define-public libbonobo
3823 (package
3824 (name "libbonobo")
3825 (version "2.32.1")
3826 (source (origin
3827 (method url-fetch)
3828 (uri (string-append "mirror://gnome/sources/" name "/"
3829 (version-major+minor version)
3830 "/" name "-" version ".tar.bz2"))
3831 (sha256
3832 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3833 (patches (search-patches
3834 "libbonobo-activation-test-race.patch"))))
3835 (build-system gnu-build-system)
3836 (arguments
3837 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3838 `(#:configure-flags
3839 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3840 ;; ... which they then completly ignore !!
3841 #:phases
3842 (modify-phases %standard-phases
3843 (add-before 'configure 'ignore-deprecations
3844 (lambda _
3845 (substitute* "activation-server/Makefile.in"
3846 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3847 #t)))
3848
3849 ;; There's apparently a race condition between the server stub
3850 ;; generation and linking of the example under 'samples/echo' that can
3851 ;; lead do undefined references when building in parallel, as reported
3852 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3853 ;; Thus, disable parallel builds.
3854 #:parallel-build? #f))
3855 (inputs (list popt libxml2))
3856 ;; The following are Required by the .pc file
3857 (propagated-inputs
3858 (list glib orbit2))
3859 (native-inputs
3860 (list intltool
3861 pkg-config
3862 `(,glib "bin") ; for glib-genmarshal, etc.
3863 flex
3864 bison))
3865 (home-page "https://developer.gnome.org/libbonobo/")
3866 (synopsis "Framework for creating reusable components for use in GNOME applications")
3867 (description "Bonobo is a framework for creating reusable components for
3868 use in GNOME applications, built on top of CORBA.")
3869 ;; Licence not explicitly stated. Source files contain no licence notices.
3870 ;; Tarball contains text of both GPLv2 and LGPLv2
3871 ;; GPLv2 covers both conditions
3872 (license license:gpl2+)))
3873
3874
3875 (define-public gconf
3876 (package
3877 (name "gconf")
3878 (version "3.2.6")
3879 (source (origin
3880 (method url-fetch)
3881 (uri
3882 (let ((upstream-name "GConf"))
3883 (string-append "mirror://gnome/sources/" upstream-name "/"
3884 (version-major+minor version) "/"
3885 upstream-name "-" version ".tar.xz")))
3886 (sha256
3887 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3888 (build-system gnu-build-system)
3889 (inputs (list dbus-glib libxml2))
3890 (propagated-inputs (list glib ; referred to in the .pc file
3891 orbit2))
3892 (native-inputs
3893 (list intltool
3894 `(,glib "bin") ; for glib-genmarshal, etc.
3895 pkg-config))
3896 (home-page "https://projects.gnome.org/gconf/")
3897 (synopsis "Store application preferences")
3898 (description "Gconf is a system for storing application preferences. It
3899 is intended for user preferences; not arbitrary data storage.")
3900 (license license:lgpl2.0+)
3901 (properties '((upstream-name . "GConf")))))
3902
3903
3904 (define-public gnome-mime-data
3905 (package
3906 (name "gnome-mime-data")
3907 (version "2.18.0")
3908 (source (origin
3909 (method url-fetch)
3910 (uri (string-append "mirror://gnome/sources/" name "/"
3911 (version-major+minor version) "/"
3912 name "-" version ".tar.bz2"))
3913 (sha256
3914 (base32
3915 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3916 (build-system gnu-build-system)
3917 (native-inputs
3918 (list perl intltool))
3919 (arguments
3920 '(#:phases (modify-phases %standard-phases
3921 (add-after 'configure 'use-our-intltool
3922 (lambda _
3923 ;; Do not use the bundled intltool commands, which lack
3924 ;; the "dotless @INC" fixes of our 'intltool' package.
3925 (substitute* (find-files "." "^Makefile$")
3926 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3927 (string-append "INTLTOOL_" tool " = intltool-"
3928 (string-downcase tool) "\n")))
3929 #t)))))
3930 (home-page "https://www.gnome.org")
3931 (synopsis "Base MIME and Application database for GNOME")
3932 (description "GNOME Mime Data is a module which contains the base MIME
3933 and Application database for GNOME. The data stored by this module is
3934 designed to be accessed through the MIME functions in GnomeVFS.")
3935 (license license:gpl2+)))
3936
3937
3938 (define-public gnome-vfs
3939 (package
3940 (name "gnome-vfs")
3941 (version "2.24.4")
3942 (source (origin
3943 (method url-fetch)
3944 (uri (string-append "mirror://gnome/sources/" name "/"
3945 (version-major+minor version) "/"
3946 name "-" version ".tar.bz2"))
3947 (sha256
3948 (base32
3949 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3950 (build-system gnu-build-system)
3951 (arguments
3952 `(#:phases
3953 (modify-phases %standard-phases
3954 (add-before 'configure 'ignore-deprecations
3955 (lambda _
3956 (substitute* '("libgnomevfs/Makefile.in"
3957 "daemon/Makefile.in")
3958 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3959 #t))
3960 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3961 (lambda _
3962 (substitute* "test/test-async-cancel.c"
3963 (("EXIT_FAILURE") "77"))
3964 #t)))))
3965 (inputs (list libxml2 dbus-glib gconf gnome-mime-data zlib))
3966 (native-inputs
3967 (list `(,glib "bin") ; for glib-mkenums, etc.
3968 intltool pkg-config))
3969 (home-page "https://developer.gnome.org/gnome-vfs/")
3970 (synopsis "Access files and folders in GNOME applications")
3971 (description
3972 "GnomeVFS is the core library used to access files and folders in GNOME
3973 applications. It provides a file system abstraction which allows applications
3974 to access local and remote files with a single consistent API.")
3975 (license license:lgpl2.0+)))
3976
3977
3978
3979 (define-public libgnome
3980 (package
3981 (name "libgnome")
3982 (version "2.32.1")
3983 (source (origin
3984 (method url-fetch)
3985 (uri (string-append "mirror://gnome/sources/" name "/"
3986 (version-major+minor version) "/"
3987 name "-" version ".tar.bz2"))
3988 (sha256
3989 (base32
3990 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3991 (patches (search-patches "libgnome-encoding.patch"))))
3992 (build-system gnu-build-system)
3993 (arguments
3994 `(#:phases
3995 (modify-phases %standard-phases
3996 (add-before 'configure 'enable-deprecated
3997 (lambda _
3998 (substitute* "libgnome/Makefile.in"
3999 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
4000 #t)))))
4001 (inputs (list libxml2))
4002 (native-inputs
4003 (list `(,glib "bin") ; for glib-mkenums, etc.
4004 intltool pkg-config))
4005 ;; The following are listed as Required in the .pc file
4006 ;; (except for libcanberra -- which seems to be oversight on the part
4007 ;; of the upstream developers -- anything that links against libgnome,
4008 ;; must also link against libcanberra
4009 (propagated-inputs
4010 (list libcanberra libbonobo gconf gnome-vfs popt)) ;gnome-program.h includes popt.h
4011 (home-page "https://developer.gnome.org/libgnome/")
4012 (synopsis "Useful routines for building applications")
4013 (description "The libgnome library provides a number of useful routines
4014 for building modern applications, including session management, activation of
4015 files and URIs, and displaying help.")
4016 (license license:lgpl2.0+)))
4017
4018
4019 (define-public libart-lgpl
4020 (package
4021 (name "libart-lgpl")
4022 (version "2.3.21")
4023 (source (origin
4024 (method url-fetch)
4025 (uri (let ((upstream-name "libart_lgpl"))
4026 (string-append "mirror://gnome/sources/" upstream-name "/"
4027 (version-major+minor version) "/"
4028 upstream-name "-" version ".tar.bz2")))
4029 (sha256
4030 (base32
4031 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
4032 (build-system gnu-build-system)
4033 (native-inputs
4034 (list pkg-config))
4035 (home-page "https://people.gnome.org/~mathieu/libart")
4036 (synopsis "2D drawing library")
4037 (description "Libart is a 2D drawing library intended as a
4038 high-quality vector-based 2D library with antialiasing and alpha composition.")
4039 (license license:lgpl2.0+)))
4040
4041
4042
4043 (define-public libgnomecanvas
4044 (package
4045 (name "libgnomecanvas")
4046 (version "2.30.3")
4047 (source (origin
4048 (method url-fetch)
4049 (uri (string-append "mirror://gnome/sources/" name "/"
4050 (version-major+minor version) "/"
4051 name "-" version ".tar.gz"))
4052 (sha256
4053 (base32
4054 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
4055 (build-system gnu-build-system)
4056 ;; Mentioned as Required in the .pc file
4057 (propagated-inputs (list libart-lgpl gtk+-2))
4058 (native-inputs
4059 (list intltool
4060 `(,glib "bin") ; for glib-genmarshal, etc.
4061 pkg-config))
4062 (home-page "https://developer.gnome.org/libgnomecanvas/")
4063 (synopsis "Flexible widget for creating interactive structured graphics")
4064 (description "The GnomeCanvas widget provides a flexible widget for
4065 creating interactive structured graphics.")
4066 (license license:lgpl2.0+)))
4067
4068 (define-public libgnomecanvasmm
4069 (package
4070 (name "libgnomecanvasmm")
4071 (version "2.26.0")
4072 (source (origin
4073 (method url-fetch)
4074 (uri (string-append "mirror://gnome/sources/" name "/"
4075 (version-major+minor version) "/"
4076 name "-" version ".tar.bz2"))
4077 (sha256
4078 (base32
4079 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
4080 (build-system gnu-build-system)
4081 (propagated-inputs (list libgnomecanvas))
4082 (native-inputs
4083 (list gtkmm-2 pkg-config))
4084 (home-page "https://gtkmm.org")
4085 (synopsis "C++ bindings to the GNOME Canvas library")
4086 (description "C++ bindings to the GNOME Canvas library.")
4087 (license license:lgpl2.0+)))
4088
4089 (define-public libgnomeui
4090 (package
4091 (name "libgnomeui")
4092 (version "2.24.5")
4093 (source (origin
4094 (method url-fetch)
4095 (uri (string-append "mirror://gnome/sources/" name "/"
4096 (version-major+minor version) "/"
4097 name "-" version ".tar.bz2"))
4098 (patches (search-patches "libgnomeui-utf8.patch"))
4099 (sha256
4100 (base32
4101 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
4102 (build-system gnu-build-system)
4103 ;; Mentioned as Required in the .pc file
4104 (propagated-inputs (list libbonoboui libgnome libgnomecanvas
4105 libgnome-keyring))
4106 (inputs (list libjpeg-turbo popt libbonobo libxml2 libglade))
4107 (native-inputs
4108 (list `(,glib "bin") ; for glib-mkenums, etc.
4109 intltool pkg-config))
4110 (home-page "https://developer.gnome.org/libgnomeui/")
4111 (synopsis "Additional widgets for applications")
4112 (description "The libgnomeui library provides additional widgets for
4113 applications. Many of the widgets from libgnomeui have already been
4114 ported to GTK+.")
4115 (license license:lgpl2.0+)))
4116
4117 (define-public libglade
4118 (package
4119 (name "libglade")
4120 (version "2.6.4")
4121 (source (origin
4122 (method url-fetch)
4123 (uri (string-append "mirror://gnome/sources/" name "/"
4124 (version-major+minor version) "/"
4125 name "-" version ".tar.bz2"))
4126 (sha256
4127 (base32
4128 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
4129 (build-system gnu-build-system)
4130 (inputs
4131 (list python)) ;; needed for the optional libglade-convert program
4132 (propagated-inputs
4133 (list gtk+-2 libxml2)) ; required by libglade-2.0.pc
4134 (native-inputs
4135 (list pkg-config))
4136 (home-page "https://developer.gnome.org/libglade")
4137 (synopsis "Load glade interfaces and access the glade built widgets")
4138 (description "Libglade is a library that provides interfaces for loading
4139 graphical interfaces described in glade files and for accessing the
4140 widgets built in the loading process.")
4141 (license license:gpl2+))) ; This is correct. GPL not LGPL
4142
4143 (define-public libbonoboui
4144 (package
4145 (name "libbonoboui")
4146 (version "2.24.5")
4147 (source (origin
4148 (method url-fetch)
4149 (uri (string-append "mirror://gnome/sources/" name "/"
4150 (version-major+minor version) "/"
4151 name "-" version ".tar.bz2"))
4152 (sha256
4153 (base32
4154 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4155 (build-system gnu-build-system)
4156 (arguments
4157 `(#:phases
4158 (modify-phases %standard-phases
4159 (add-before 'check 'start-xserver
4160 (lambda* (#:key inputs #:allow-other-keys)
4161 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4162 (disp ":1"))
4163
4164 (setenv "HOME" (getcwd))
4165 (setenv "DISPLAY" disp)
4166 ;; There must be a running X server and make check doesn't start one.
4167 ;; Therefore we must do it.
4168 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4169 ;; Mentioned as Required by the .pc file
4170 (propagated-inputs (list libxml2))
4171 (inputs
4172 (list popt pangox-compat libgnome libgnomecanvas libglade))
4173 (native-inputs
4174 (list `(,glib "bin") ; for glib-genmarshal, etc.
4175 intltool
4176 xorg-server-for-tests ; For running the tests
4177 pkg-config))
4178 (home-page "https://developer.gnome.org/libbonoboui/")
4179 (synopsis "Some user interface controls using Bonobo")
4180 (description "The Bonobo UI library provides a number of user interface
4181 controls using the Bonobo component framework.")
4182 (license license:lgpl2.0+)))
4183
4184 (define-public libwnck
4185 (package
4186 (name "libwnck")
4187 (version "40.1")
4188 (source (origin
4189 (method url-fetch)
4190 (uri (string-append "mirror://gnome/sources/" name "/"
4191 (version-major version) "/"
4192 name "-" version ".tar.xz"))
4193 (sha256
4194 (base32
4195 "04b63mh2i7kpq0iymx6fkyzdx8laymw3da2s0wsbwgzg2jhly4q3"))))
4196 (build-system meson-build-system)
4197 (native-inputs
4198 (list gettext-minimal
4199 `(,glib "bin") ;for glib-mkenums
4200 gobject-introspection ;for g-ir-scanner
4201 pkg-config))
4202 (propagated-inputs
4203 (list gtk+
4204 libxres
4205 startup-notification))
4206 (home-page "https://gitlab.gnome.org/GNOME/libwnck/")
4207 (synopsis "Window Navigator Construction Kit")
4208 (description
4209 "Libwnck is the Window Navigator Construction Kit, a library for use in
4210 writing pagers, tasklists, and more generally applications that are dealing
4211 with window management. It tries hard to respect the Extended Window Manager
4212 Hints specification (EWMH).")
4213 (license license:lgpl2.0+)))
4214
4215 ;; stable version for gtk2, required by xfwm4.
4216 (define-public libwnck-2
4217 (package (inherit libwnck)
4218 (name "libwnck")
4219 (version "2.30.7")
4220 (source (origin
4221 (method url-fetch)
4222 (uri (string-append "mirror://gnome/sources/" name "/"
4223 (version-major+minor version) "/"
4224 name "-" version ".tar.xz"))
4225 (sha256
4226 (base32
4227 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4228 (build-system gnu-build-system)
4229 (native-inputs
4230 (list pkg-config intltool))
4231 (propagated-inputs
4232 (list gtk+-2 libxres startup-notification))))
4233
4234 (define-public goffice
4235 (package
4236 (name "goffice")
4237 (version "0.10.52")
4238 (source
4239 (origin
4240 (method url-fetch)
4241 (uri (string-append "mirror://gnome/sources/goffice/"
4242 (version-major+minor version) "/"
4243 "goffice-" version ".tar.xz"))
4244 (sha256
4245 (base32 "0344k0ffndd79as3c4nfq3mia7mrds6aq2jg76drdw3h8gcyzfb0"))))
4246 (build-system gnu-build-system)
4247 (outputs '("out"
4248 "doc")) ; 4.0 MiB of gtk-doc
4249 (arguments
4250 '(#:configure-flags (list (string-append "--with-html-dir="
4251 (assoc-ref %outputs "doc")
4252 "/share/gtk-doc/html"))))
4253 (inputs
4254 (list gtk+ libgsf librsvg libxslt libxml2))
4255 (native-inputs
4256 (list intltool `(,glib "bin") pkg-config))
4257 (home-page "https://developer.gnome.org/goffice/")
4258 (synopsis "Document-centric objects and utilities")
4259 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4260 (license
4261 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4262 ;; Note: NOT LGPL
4263 (list license:gpl2 license:gpl3))))
4264
4265 (define-public goffice-0.8
4266 (package (inherit goffice)
4267 (version "0.8.17")
4268 (source (origin
4269 (method url-fetch)
4270 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4271 (version-major+minor version) "/"
4272 (package-name goffice) "-" version ".tar.xz"))
4273 (sha256
4274 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4275 (arguments
4276 `(#:phases
4277 (modify-phases %standard-phases
4278 (add-after 'unpack 'fix-pcre-check
4279 (lambda _
4280 ;; Only glib.h can be included directly. See
4281 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4282 (substitute* "configure"
4283 (("glib/gregex\\.h") "glib.h")) #t)))
4284
4285 ,@(package-arguments goffice)))
4286 (propagated-inputs
4287 ;; libgoffice-0.8.pc mentions libgsf-1
4288 (list libgsf))
4289 (inputs
4290 `(("gtk" ,gtk+-2)
4291 ,@(alist-delete "gtk" (package-inputs goffice))))))
4292
4293 (define-public gnumeric
4294 (package
4295 (name "gnumeric")
4296 (version "1.12.52")
4297 (source (origin
4298 (method url-fetch)
4299 (uri (string-append "mirror://gnome/sources/gnumeric/"
4300 (version-major+minor version) "/"
4301 "gnumeric-" version ".tar.xz"))
4302 (sha256
4303 (base32
4304 "0fw201j0sks95wgvns3vydgprhwf6z4v4xb2a0ldi892k8277kvk"))))
4305 (build-system glib-or-gtk-build-system)
4306 (arguments
4307 `(;; The gnumeric developers don't worry much about failing tests.
4308 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4309 #:tests? #f
4310 #:phases
4311 (modify-phases %standard-phases
4312 (add-before
4313 'configure 'pre-conf
4314 (lambda* (#:key outputs #:allow-other-keys)
4315 ;; Make install tries to write into the directory of goffice
4316 ;; I am informed that this only affects the possibility to embed a
4317 ;; spreadsheet inside an Abiword document. So presumably when we
4318 ;; package Abiword we'll have to refer it to this directory.
4319 (substitute* "configure"
4320 (("^GOFFICE_PLUGINS_DIR=.*")
4321 (string-append "GOFFICE_PLUGINS_DIR="
4322 (assoc-ref outputs "out")
4323 "/goffice/plugins"))))))))
4324 (inputs
4325 (list glib
4326 gtk+
4327 goffice
4328 libgsf
4329 librsvg
4330 libxml2
4331 libxslt
4332 python
4333 python-pygobject
4334 zlib))
4335 (native-inputs
4336 (list bison
4337 docbook-xml
4338 `(,glib "bin")
4339 intltool
4340 itstool
4341 pkg-config))
4342 (home-page "http://www.gnumeric.org")
4343 (synopsis "Spreadsheet application")
4344 (description
4345 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4346 interoperable with other spreadsheet applications. It has a vast array of
4347 features beyond typical spreadsheet functionality, such as support for linear
4348 and non-linear solvers, statistical analysis, and telecommunication
4349 engineering.")
4350 (license
4351 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4352 (list license:gpl2 license:gpl3))))
4353
4354 (define-public drawing
4355 (package
4356 (name "drawing")
4357 (version "1.0.1")
4358 (source
4359 (origin
4360 (method git-fetch)
4361 (uri (git-reference
4362 (url "https://github.com/maoschanz/drawing")
4363 (commit version)))
4364 (file-name (git-file-name name version))
4365 (sha256
4366 (base32 "12xb522i7dxshw2ig12ald750fynlxan1lwz6gsxfa9p4ap2qypn"))))
4367 (build-system meson-build-system)
4368 (arguments
4369 (list
4370 #:glib-or-gtk? #t
4371 #:imported-modules `(,@%meson-build-system-modules
4372 (guix build python-build-system))
4373 #:modules '((guix build meson-build-system)
4374 ((guix build python-build-system) #:prefix python:)
4375 (guix build utils))
4376 #:phases
4377 #~(modify-phases %standard-phases
4378 (add-after 'unpack 'disable-postinstall-script
4379 (lambda _
4380 (setenv "DESTDIR" "/")))
4381 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
4382 (lambda* (#:key inputs outputs #:allow-other-keys)
4383 (wrap-program (search-input-file outputs "bin/drawing")
4384 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
4385 ,(python:site-packages inputs outputs)))
4386 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
4387 (native-inputs
4388 (list desktop-file-utils
4389 gettext-minimal
4390 `(,glib "bin")
4391 gobject-introspection
4392 itstool
4393 pkg-config
4394 python))
4395 (inputs
4396 (list bash-minimal
4397 librsvg
4398 gsettings-desktop-schemas
4399 gtk+
4400 pango
4401 python
4402 python-pycairo
4403 python-pygobject))
4404 (home-page "https://maoschanz.github.io/drawing/")
4405 (synopsis "Basic image editor for GNOME")
4406 (description
4407 "Drawing is a basic image editor aiming at the GNOME desktop.")
4408 (license license:gpl3+)))
4409
4410 (define-public seahorse
4411 (package
4412 (name "seahorse")
4413 (version "42.0")
4414 (source
4415 (origin
4416 (method url-fetch)
4417 (uri (string-append "mirror://gnome/sources/" name "/"
4418 (version-major version) "/" name "-"
4419 version ".tar.xz"))
4420 (sha256
4421 (base32 "0c6nafhn4gcjwd1xbs5bjq9785114fc0pbhxbwp7wynyz3msq365"))))
4422 (build-system meson-build-system)
4423 (arguments
4424 '(#:glib-or-gtk? #t
4425 #:phases
4426 (modify-phases %standard-phases
4427 (add-after 'unpack 'skip-gtk-update-icon-cache
4428 ;; Don't create 'icon-theme.cache'.
4429 (lambda _
4430 (substitute* "build-aux/meson_post_install.py"
4431 (("gtk-update-icon-cache") "true"))))
4432 (add-before 'check 'pre-check
4433 (lambda _
4434 ;; Tests require a writable HOME.
4435 (setenv "HOME" (getcwd)))))))
4436 (inputs
4437 (list gtk+
4438 gcr
4439 gnupg
4440 gpgme
4441 openldap
4442 openssh
4443 avahi
4444 libhandy
4445 libpwquality
4446 libsecret
4447 libsoup-minimal-2))
4448 (native-inputs
4449 (list gettext-minimal
4450 `(,glib "bin")
4451 itstool
4452 pkg-config
4453 python
4454 vala
4455 libxml2))
4456 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4457 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4458 (description
4459 "Seahorse is a GNOME application for managing encryption keys and
4460 passwords in the GNOME keyring.")
4461 (license license:gpl2+)))
4462
4463 (define-public vala
4464 (package
4465 (name "vala")
4466 (version "0.54.2")
4467 (source (origin
4468 (method url-fetch)
4469 (uri (string-append "mirror://gnome/sources/vala/"
4470 (version-major+minor version) "/"
4471 "vala-" version ".tar.xz"))
4472 (sha256
4473 (base32
4474 "048k5c6c6y7jyb961krnrb7m0kghr0yrkpnfx3j5ckbx652yfkc8"))))
4475 (build-system glib-or-gtk-build-system)
4476 (arguments
4477 '(#:configure-flags '("--enable-coverage")
4478 #:phases
4479 (modify-phases %standard-phases
4480 (add-after 'unpack 'patch-docbook-xml
4481 (lambda* (#:key inputs #:allow-other-keys)
4482 (with-directory-excursion "doc/manual"
4483 (substitute* '("manual.xml" "version.xml.in")
4484 (("http://www.oasis-open.org/docbook/xml/4.4/")
4485 (string-append (assoc-ref inputs "docbook-xml")
4486 "/xml/dtd/docbook/"))))))
4487 (add-before 'check 'pre-check
4488 (lambda _
4489 (setenv "CC" "gcc")
4490 (substitute* "valadoc/tests/libvaladoc\
4491 /tests-extra-environment.sh"
4492 (("export PKG_CONFIG_PATH=" m)
4493 (string-append m "$PKG_CONFIG_PATH:"))))))))
4494 (native-inputs
4495 `(("bison" ,bison)
4496 ("dbus" ,dbus) ; for dbus tests
4497 ("docbook-xml" ,docbook-xml-4.4)
4498 ("docbook-xsl" ,docbook-xsl)
4499 ("flex" ,flex)
4500 ("gobject-introspection" ,gobject-introspection) ; for gir tests
4501 ("help2man" ,help2man)
4502 ("perl" ,perl)
4503 ("pkg-config" ,pkg-config)
4504 ("xsltproc" ,libxslt)))
4505 (propagated-inputs
4506 `(("glib" ,glib) ; required by libvala-0.40.pc
4507 ("libgvc" ,graphviz)))
4508 (home-page "https://wiki.gnome.org/Projects/Vala/")
4509 (synopsis "Compiler using the GObject type system")
4510 (description "Vala is a programming language using modern high level
4511 abstractions without imposing additional runtime requirements and without using
4512 a different ABI compared to applications and libraries written in C. Vala uses
4513 the GObject type system and has additional code generation routines that make
4514 targeting the GNOME stack simple.")
4515 (license license:lgpl2.1+)))
4516
4517 (define-public vala-next
4518 (package
4519 (inherit vala)
4520 (version "0.56.3")
4521 (source (origin
4522 (method url-fetch)
4523 (uri (string-append "mirror://gnome/sources/vala/"
4524 (version-major+minor version) "/"
4525 "vala-" version ".tar.xz"))
4526 (sha256
4527 (base32
4528 "1gwrnr0d0bqkh6m4bgz39mh3pcswcj43hyijlwgwp2bvpwhn41p1"))))
4529 (arguments
4530 (list
4531 #:configure-flags #~(list "CC=gcc" "--enable-coverage")
4532 #:phases
4533 #~(modify-phases %standard-phases
4534 (add-after 'unpack 'use-gcc-by-default
4535 (lambda _
4536 (substitute* "codegen/valaccodecompiler.c"
4537 (("cc_command = \"cc\"")
4538 "cc_command = \"gcc\""))))
4539 (add-after 'unpack 'patch-docbook-xml
4540 (lambda* (#:key inputs #:allow-other-keys)
4541 (with-directory-excursion "doc/manual"
4542 (substitute* '("manual.xml" "version.xml.in")
4543 (("http://www.oasis-open.org/docbook/xml/4.4/")
4544 (search-input-directory inputs "xml/dtd/docbook"))))))
4545 (add-before 'check 'pre-check
4546 (lambda _
4547 (substitute* "valadoc/tests/libvaladoc/tests-extra-environment.sh"
4548 (("export PKG_CONFIG_PATH=" m)
4549 (string-append m "$PKG_CONFIG_PATH:")))))
4550 ;; Wrapping the binaries breaks vala's behavior adaptations based on
4551 ;; the file name of the program executed (vala: compile and execute,
4552 ;; valac: compile into a binary).
4553 (delete 'glib-or-gtk-wrap))))))
4554
4555 ;;; An older variant kept to build libsoup-minimal-2.
4556 (define-public vala-0.52
4557 (package/inherit vala
4558 (version "0.52.0")
4559 (source (origin
4560 (method url-fetch)
4561 (uri (string-append "mirror://gnome/sources/vala/"
4562 (version-major+minor version) "/"
4563 "vala-" version ".tar.xz"))
4564 (sha256
4565 (base32
4566 "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))))
4567
4568 (define-public vte
4569 (package
4570 (name "vte")
4571 (version "0.69.99")
4572 (source (origin
4573 (method url-fetch)
4574 (uri (string-append "mirror://gnome/sources/vte/"
4575 (version-major+minor version) "/"
4576 "vte-" version ".tar.xz"))
4577 (sha256
4578 (base32
4579 "1v3i38yrjhc48nvs1g333s3q709mq824qq0k2fnsmrrwv15c3cg9"))))
4580 (build-system meson-build-system)
4581 (arguments
4582 (list #:configure-flags #~(list "-Dvapi=true"
4583 "-D_systemd=false")))
4584 (native-inputs
4585 (list pkg-config
4586 gettext-minimal
4587 vala
4588 gobject-introspection
4589 `(,glib "bin") ; for glib-genmarshal, etc.
4590 gperf
4591 python
4592 libxml2))
4593 (propagated-inputs
4594 (list gtk+ ; required by vte-2.91.pc
4595 gnutls ; ditto
4596 pcre2)) ; ditto
4597 (home-page "https://www.gnome.org/")
4598 (synopsis "Virtual Terminal Emulator")
4599 (description
4600 "VTE is a library (libvte) implementing a terminal emulator widget for
4601 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4602 gnome-terminal, but can also be used to embed a console/terminal in games,
4603 editors, IDEs, etc.")
4604 (license license:lgpl2.1+)))
4605
4606 (define-public vte-ng
4607 (package
4608 (inherit vte)
4609 (name "vte-ng")
4610 (version "0.59.0")
4611 (home-page "https://github.com/thestinger/vte-ng")
4612 (source (origin
4613 (method git-fetch)
4614 (uri (git-reference (url home-page) (commit version)))
4615 (file-name (git-file-name name version))
4616 (sha256
4617 (base32
4618 "03ffhjc0fq9p25y1b2c0a51jn7y2bc0acxsgymhcb3pyijc8ykjm"))))
4619 (build-system meson-build-system)
4620 (arguments
4621 (list #:configure-flags #~(list "-Ddocs=false")))
4622 (synopsis "Enhanced VTE terminal widget")
4623 (description
4624 "VTE is a library (libvte) implementing a terminal emulator widget for
4625 GTK+, this fork provides additional functions exposed for keyboard text
4626 selection and URL hints.")))
4627
4628 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4629 (define-public vte/gtk+-2
4630 (package (inherit vte)
4631 (name "vte")
4632 (version "0.28.2")
4633 (source (origin
4634 (method url-fetch)
4635 (uri (string-append "mirror://gnome/sources/" name "/"
4636 (version-major+minor version) "/"
4637 name "-" version ".tar.xz"))
4638 (sha256
4639 (base32
4640 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4641 (patches (search-patches
4642 "vte-CVE-2012-2738-pt1.patch"
4643 "vte-CVE-2012-2738-pt2.patch"))))
4644 (build-system gnu-build-system)
4645 (arguments
4646 '(#:configure-flags '("--disable-python")))
4647 (native-inputs
4648 (list pkg-config intltool
4649 `(,glib "bin"))) ; for glib-genmarshal, etc.
4650 (propagated-inputs
4651 (list gtk+-2 ; required by libvte.pc
4652 ncurses)))) ; required by libvte.la
4653
4654 (define-public vinagre
4655 (package
4656 (name "vinagre")
4657 (version "3.22.0")
4658 (source (origin
4659 (method url-fetch)
4660 (uri (string-append "mirror://gnome/sources/" name "/"
4661 (version-major+minor version) "/"
4662 name "-" version ".tar.xz"))
4663 (patches (search-patches "vinagre-newer-freerdp.patch"
4664 "vinagre-newer-rdp-parameters.patch"))
4665 (sha256
4666 (base32
4667 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4668 (build-system glib-or-gtk-build-system)
4669 (arguments
4670 ;; Disable -Werror and such, to avoid build failures on compilation
4671 ;; warnings.
4672 '(#:configure-flags '("--enable-compile-warnings=minimum"
4673 "CFLAGS=-O2 -g -fcommon")
4674 #:phases
4675 (modify-phases %standard-phases
4676 (add-before 'install 'skip-gtk-update-icon-cache
4677 (lambda _
4678 ;; Don't create 'icon-theme.cache'
4679 (substitute* (find-files "." "^Makefile$")
4680 (("gtk-update-icon-cache") (which "true")))
4681 #t))
4682 (add-after 'unpack 'patch-configure
4683 (lambda _
4684 (substitute* "configure"
4685 (("freerdp") "freerdp2"))
4686 #t)))))
4687 (native-inputs
4688 `(("pkg-config" ,pkg-config)
4689 ("intltool" ,intltool)
4690 ("itstool" ,itstool)
4691 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4692 (inputs
4693 (list libxml2
4694 gtk-vnc
4695 gnome-keyring
4696 libsecret
4697 freerdp
4698 spice
4699 spice-gtk
4700 telepathy-glib
4701 vte))
4702 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4703 (synopsis "Remote desktop viewer for GNOME")
4704 (description "Vinagre is a remote display client supporting the VNC, SPICE
4705 and RDP protocols.")
4706 (license license:gpl3+)))
4707
4708 (define-public dconf
4709 (package
4710 (name "dconf")
4711 (version "0.40.0")
4712 (source (origin
4713 (method url-fetch)
4714 (uri (string-append
4715 "mirror://gnome/sources/" name "/"
4716 (version-major+minor version) "/"
4717 name "-" version ".tar.xz"))
4718 (sha256
4719 (base32
4720 "0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg"))))
4721 (build-system meson-build-system)
4722 (propagated-inputs
4723 ;; In Requires of dconf.pc.
4724 (list glib))
4725 (inputs
4726 (list gtk+ dbus))
4727 (native-inputs
4728 `(("bash-completion" ,bash-completion)
4729 ("libxslt" ,libxslt) ;for xsltproc
4730 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4731 ("docbook-xml" ,docbook-xml-4.2)
4732 ("docbook-xsl" ,docbook-xsl)
4733 ("glib:bin" ,glib "bin")
4734 ("gtk-doc" ,gtk-doc/stable)
4735 ("pkg-config" ,pkg-config)
4736 ("python" ,python)
4737 ("vala" ,vala)))
4738 (arguments
4739 `(#:glib-or-gtk? #t
4740 #:configure-flags '("-Dgtk_doc=true")
4741 #:phases (modify-phases %standard-phases
4742 (add-after 'unpack 'increase-test-timeout
4743 (lambda _
4744 ;; On big-memory systems, the engine test may take
4745 ;; much longer than the default of 30 seconds.
4746 (substitute* "tests/meson.build"
4747 (("test\\(unit_test\\[0\\], exe" all)
4748 (string-append all ", timeout: 300"))))))))
4749 (home-page "https://developer.gnome.org/dconf/")
4750 (synopsis "Low-level GNOME configuration system")
4751 (description "Dconf is a low-level configuration system. Its main purpose
4752 is to provide a backend to GSettings on platforms that don't already have
4753 configuration storage systems.")
4754 (license license:lgpl2.1+)))
4755
4756 (define-public json-glib-minimal
4757 (package
4758 (name "json-glib-minimal")
4759 (version "1.6.2")
4760 (source (origin
4761 (method url-fetch)
4762 (uri (string-append "mirror://gnome/sources/json-glib/"
4763 (version-major+minor version)
4764 "/json-glib-" version ".tar.xz"))
4765 (sha256
4766 (base32
4767 "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3"))))
4768 (build-system meson-build-system)
4769 (arguments
4770 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
4771 (native-inputs
4772 `(("gettext" ,gettext-minimal)
4773 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4774 ("pkg-config" ,pkg-config)))
4775 (inputs
4776 (list bash-minimal))
4777 (propagated-inputs
4778 (list glib)) ;according to json-glib-1.0.pc
4779 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4780 (synopsis "Glib and GObject implementation of JSON")
4781 (description "JSON-GLib is a library providing serialization and
4782 described by RFC 4627. It implements a full JSON parser and generator using
4783 GLib and GObject, and integrates JSON with GLib data types.")
4784 (license license:lgpl2.1+)))
4785
4786 (define-public json-glib
4787 (package/inherit json-glib-minimal
4788 (name "json-glib")
4789 (outputs (cons "doc" (package-outputs json-glib-minimal)))
4790 (arguments
4791 (substitute-keyword-arguments (package-arguments json-glib-minimal)
4792 ((#:configure-flags _)
4793 `(list "-Ddocs=true"
4794 "-Dman=true"
4795 ,@(if (%current-target-system)
4796 ;; If enabled, gtkdoc-scangobj will try to execute a
4797 ;; cross-compiled binary.
4798 '("-Dgtk_doc=disabled"
4799 ;; Trying to build introspection data when cross-compiling
4800 ;; causes errors during linking.
4801 "-Dintrospection=disabled")
4802 '())))
4803 ((#:phases phases '%standard-phases)
4804 `(modify-phases ,phases
4805 (add-after 'unpack 'patch-docbook
4806 (lambda* (#:key native-inputs inputs #:allow-other-keys)
4807 (with-directory-excursion "doc"
4808 (substitute* (find-files "." "\\.xml$")
4809 (("http://www.oasis-open.org/docbook/xml/4\\.3/")
4810 (string-append (assoc-ref (or native-inputs inputs)
4811 "docbook-xml")
4812 "/xml/dtd/docbook/")))
4813 (substitute* "meson.build"
4814 (("http://docbook.sourceforge.net/release/xsl/current/")
4815 (string-append (assoc-ref (or native-inputs inputs)
4816 "docbook-xsl")
4817 "/xml/xsl/docbook-xsl-1.79.2/"))))))
4818 ;; When cross-compiling, there are no docs to move.
4819 ,(if (%current-target-system)
4820 '(add-after 'install 'stub-docs
4821 (lambda* (#:key outputs #:allow-other-keys)
4822 ;; The daemon doesn't like empty output paths.
4823 (mkdir (assoc-ref outputs "doc"))))
4824 '(add-after 'install 'move-docs
4825 (lambda* (#:key outputs #:allow-other-keys)
4826 (let* ((out (assoc-ref outputs "out"))
4827 (doc (assoc-ref outputs "doc")))
4828 (mkdir-p (string-append doc "/share"))
4829 (rename-file
4830 (string-append out "/share/gtk-doc")
4831 (string-append doc "/share/gtk-doc"))))))))))
4832 (native-inputs
4833 (append
4834 `(("docbook-xml" ,docbook-xml-4.3)
4835 ("docbook-xsl" ,docbook-xsl)
4836 ("gobject-introspection" ,gobject-introspection)
4837 ("gtk-doc" ,gtk-doc)
4838 ("xsltproc" ,libxslt))
4839 (package-native-inputs json-glib-minimal)))))
4840
4841 (define-public libxklavier
4842 (package
4843 (name "libxklavier")
4844 (version "5.4")
4845 (source (origin
4846 ;; Note: There's no tarball at ftp.gnome.org for this version.
4847 (method git-fetch)
4848 (uri (git-reference
4849 (url "https://anongit.freedesktop.org/git/libxklavier")
4850 (commit (string-append "libxklavier-" version))))
4851 (sha256
4852 (base32
4853 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4854 (file-name (git-file-name name version))))
4855 (build-system gnu-build-system)
4856 (arguments
4857 '(#:configure-flags
4858 (list (string-append "--with-xkb-base="
4859 (assoc-ref %build-inputs "xkeyboard-config")
4860 "/share/X11/xkb")
4861 "--disable-xmodmap-support")))
4862 (native-inputs
4863 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4864 ("gobject-introspection" ,gobject-introspection)
4865 ("pkg-config" ,pkg-config)
4866 ("gtk-doc" ,gtk-doc/stable)
4867 ("intltool" ,intltool)
4868 ("which" ,which)
4869 ("autoconf" ,autoconf)
4870 ("automake" ,automake)
4871 ("libtool" ,libtool)))
4872 (propagated-inputs
4873 ;; Required by libxklavier.pc.
4874 (list glib libxml2))
4875 (inputs
4876 (list iso-codes libxi libxkbfile xkbcomp xkeyboard-config))
4877 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4878 (synopsis "High-level API for X Keyboard Extension")
4879 (description
4880 "LibXklavier is a library providing high-level API for X Keyboard
4881 Extension known as XKB. This library is intended to support XFree86 and other
4882 commercial X servers. It is useful for creating XKB-related software (layout
4883 indicators etc).")
4884 (license license:lgpl2.0+)))
4885
4886 (define-public glib-networking
4887 (package
4888 (name "glib-networking")
4889 (version "2.70.0")
4890 (source (origin
4891 (method url-fetch)
4892 (uri (string-append "mirror://gnome/sources/glib-networking/"
4893 (version-major+minor version) "/"
4894 "glib-networking-" version ".tar.xz"))
4895 (sha256
4896 (base32
4897 "0dbg1na239mbavn4hknkax5sns9q2dbdnqw9wcpmhv58mzkhid36"))
4898 (patches
4899 (search-patches "glib-networking-gnutls-binding.patch"))))
4900 (build-system meson-build-system)
4901 (arguments
4902 (if (target-64bit?)
4903 '()
4904 (list #:phases
4905 #~(modify-phases %standard-phases
4906 (add-after 'unpack 'work-around-32-bit-time-t
4907 (lambda _
4908 (invoke "patch" "--force" "-p1" "-i"
4909 #$(local-file
4910 (search-patch
4911 "glib-networking-32-bit-time.patch")))))))))
4912 (native-inputs
4913 `(("pkg-config" ,pkg-config)
4914 ("gettext" ,gettext-minimal)))
4915 (inputs
4916 (list glib gnutls gsettings-desktop-schemas libproxy))
4917 (home-page "https://wiki.gnome.org/Projects/GLib")
4918 (synopsis "Network extensions for GLib")
4919 (description
4920 "Glib-networking contains the implementations of certain GLib networking
4921 features that cannot be implemented directly in GLib itself because of their
4922 dependencies. Currently it contains GnuTLS and OpenSSL-based implementations of
4923 GTlsBackend, a libproxy-based implementation of GProxyResolver,
4924 GLibproxyResolver, and a GNOME GProxyResolver that uses the proxy information
4925 from the GSettings schemas in gsettings-desktop-schemas.")
4926 (license license:lgpl2.1+)))
4927
4928 (define-public rest
4929 (package
4930 (name "rest")
4931 (version "0.8.1")
4932 (source (origin
4933 (method url-fetch)
4934 (uri (string-append "mirror://gnome/sources/rest/"
4935 (version-major+minor version) "/"
4936 name "-" version ".tar.xz"))
4937 (sha256
4938 (base32
4939 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4940 (build-system gnu-build-system)
4941 (arguments
4942 '(#:tests? #f ; tests require internet connection
4943 #:configure-flags
4944 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4945 (native-inputs
4946 `(("glib-mkenums" ,glib "bin")
4947 ("gobject-introspection" ,gobject-introspection)
4948 ("pkg-config" ,pkg-config)))
4949 (propagated-inputs
4950 ;; rest-0.7.pc refers to all these.
4951 `(("glib" ,glib)
4952 ("libsoup" ,libsoup-minimal-2)
4953 ("libxml2" ,libxml2)))
4954 (home-page "https://www.gtk.org/")
4955 (synopsis "RESTful web api query library")
4956 (description
4957 "This library was designed to make it easier to access web services that
4958 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4959 libxml to ease remote use of the RESTful API.")
4960 (license license:lgpl2.1+)))
4961
4962 (define-public rest-next
4963 (package
4964 (inherit rest)
4965 (name "rest")
4966 (version "0.9.1")
4967 (source (origin
4968 (method url-fetch)
4969 (uri (string-append "mirror://gnome/sources/rest/"
4970 (version-major+minor version) "/"
4971 name "-" version ".tar.xz"))
4972 (sha256
4973 (base32
4974 "1qy2291d2vprdbbxmf0sa98izk09nl3znzzv7lckwf6f1v0sarlj"))))
4975 (build-system meson-build-system)
4976 (arguments (substitute-keyword-arguments (package-arguments rest)
4977 ((#:tests? _ #f) #t)
4978 ((#:configure-flags _)
4979 #~(list))
4980 ((#:phases phases '%standard-phases)
4981 #~(modify-phases #$phases
4982 (add-after 'unpack 'disable-problematic-tests
4983 ;; These tests require networking.
4984 (lambda _
4985 (substitute* "tests/meson.build"
4986 ((".*'flickr',.*") "")
4987 ((".*'lastfm',.*") ""))))
4988 (add-before 'check 'prepare-for-tests
4989 (lambda _
4990 (setenv "HOME" "/tmp")))))))
4991 (native-inputs
4992 (modify-inputs (package-native-inputs rest)
4993 (append gettext-minimal
4994 gi-docgen
4995 gsettings-desktop-schemas)))
4996 (inputs (list gtksourceview json-glib libadwaita))
4997 (propagated-inputs
4998 (modify-inputs (package-propagated-inputs rest)
4999 (replace "libsoup" libsoup)
5000 (append json-glib)))))
5001
5002 (define-public libshumate
5003 (package
5004 (name "libshumate")
5005 (version "1.0.0.beta") ;no stable release yet
5006 (source (origin
5007 (method url-fetch)
5008 (uri (string-append "mirror://gnome/sources/" name "/"
5009 (version-major+minor version) "/"
5010 name "-" version ".tar.xz"))
5011 (sha256
5012 (base32
5013 "13xrc07fm0967gzbqab8k0l3dnknh00p0a6f2dm7k0aa56q41sda"))))
5014 (build-system meson-build-system)
5015 (arguments (list #:configure-flags #~(list "-Dlibsoup3=true")
5016 #:phases #~(modify-phases %standard-phases
5017 (add-before 'check 'pre-check
5018 (lambda _
5019 ;; The 'coordinate' test requires a
5020 ;; writable HOME.
5021 (setenv "HOME" "/tmp")
5022
5023 ;; Tests require a running X server.
5024 (system "Xvfb :1 &")
5025 (setenv "DISPLAY" ":1"))))))
5026 (native-inputs
5027 (list gi-docgen
5028 `(,glib "bin")
5029 gobject-introspection
5030 pkg-config
5031 xorg-server-for-tests))
5032 (propagated-inputs
5033 ;; All the libraries are listed as "Requires' in the .pc file.
5034 (list cairo
5035 glib
5036 gtk
5037 libsoup
5038 sqlite))
5039 (home-page "https://wiki.gnome.org/Projects/libshumate")
5040 (synopsis "GtkWidget C library for displaying maps")
5041 (description "@code{libshumate} is a C library providing a
5042 @code{GtkWidget} to display maps. It supports numerous free map sources such
5043 as OpenStreetMap, OpenCycleMap, OpenAerialMap and Maps.")
5044 (license license:lgpl2.1+)))
5045
5046 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
5047 (define-public libsoup-minimal
5048 (package
5049 (name "libsoup-minimal")
5050 (version "3.0.4")
5051 (source (origin
5052 (method url-fetch)
5053 (uri (string-append "mirror://gnome/sources/libsoup/"
5054 (version-major+minor version) "/"
5055 "libsoup-" version ".tar.xz"))
5056 (sha256
5057 (base32
5058 "0ysnvvfd2f6w2z6g31spqqb8wgyamixc7mryzbbpyw0z15g8plsv"))))
5059 (build-system meson-build-system)
5060 (arguments
5061 `(#:configure-flags '("-Dgtk_doc=false")
5062 #:phases
5063 (modify-phases %standard-phases
5064 (add-after 'unpack 'adjust-tests
5065 (lambda _
5066 ;; This test fails due to missing /etc/nsswitch.conf
5067 ;; in the build environment.
5068 (substitute* "tests/socket-test.c"
5069 ((".*/sockets/unconnected.*") ""))
5070
5071 ;; These fail because "subdomain.localhost" does not resolve in
5072 ;; the build environment. Moreover, the hsts-test suite fails on
5073 ;; i686-linux because of errors from `session_get_uri' like
5074 ;; "Unexpected status 200 OK (expected 301 Moved Permanently)"
5075 ;; (see: https://gitlab.gnome.org/GNOME/libsoup/-/issues/239).
5076 (substitute* "tests/meson.build"
5077 ((".*'name': 'hsts'.*") ""))
5078 (substitute* "tests/hsts-db-test.c"
5079 ((".*/hsts-db/subdomains.*") "")))))))
5080 (native-inputs
5081 (list `(,glib "bin") ;for glib-mkenums
5082 gobject-introspection
5083 intltool
5084 pkg-config
5085 python-wrapper
5086 vala
5087 curl
5088 gnutls ;for 'certtool'
5089 httpd))
5090 (propagated-inputs
5091 ;; libsoup-3.0.pc refers to all of these (except where otherwise noted)
5092 (list brotli
5093 glib
5094 glib-networking ; for GIO runtime modules
5095 libpsl
5096 nghttp2 ;for pkg-config
5097 `(,nghttp2 "lib")
5098 libxml2
5099 sqlite
5100 zlib))
5101 (inputs
5102 (list mit-krb5 samba/fixed)) ; For ntlm_auth support
5103 (home-page "https://wiki.gnome.org/Projects/libsoup")
5104 (synopsis "GLib-based HTTP Library")
5105 (description
5106 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
5107 and the GLib main loop, to integrate well with GNOME applications.")
5108 (license license:lgpl2.0+)))
5109
5110 ;;; An older variant kept to build the 'rest' package.
5111 (define-public libsoup-minimal-2
5112 (package/inherit libsoup-minimal
5113 (version "2.72.0")
5114 (source (origin
5115 (method url-fetch)
5116 (uri (string-append "mirror://gnome/sources/libsoup/"
5117 (version-major+minor version) "/"
5118 "libsoup-" version ".tar.xz"))
5119 (sha256
5120 (base32
5121 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
5122 (arguments
5123 (substitute-keyword-arguments (package-arguments libsoup-minimal)
5124 ((#:phases phases)
5125 `(modify-phases ,phases
5126 (add-after 'unpack 'disable-failing-tests
5127 (lambda _
5128 ;; Disable the SSL test, failing since 2.68 and resolved in
5129 ;; libsoup 3.
5130 (substitute* "tests/meson.build"
5131 (("[ \t]*\\['ssl', true, \\[\\]\\],") ""))))))))
5132 (native-inputs
5133 (modify-inputs (package-native-inputs libsoup-minimal)
5134 (replace "vala" vala-0.52)))))
5135
5136 (define-public libsoup
5137 (package/inherit libsoup-minimal
5138 (name "libsoup")
5139 (version "3.1.4")
5140 (source (origin
5141 (method url-fetch)
5142 (uri (string-append "mirror://gnome/sources/libsoup/"
5143 (version-major+minor version) "/"
5144 "libsoup-" version ".tar.xz"))
5145 (sha256
5146 (base32
5147 "0m5mf2ahb462jzr40d916swv3040h9500jcmr87vnilpr4zrj584"))))
5148 (outputs (cons "doc" (package-outputs libsoup-minimal)))
5149 (arguments
5150 (substitute-keyword-arguments (package-arguments libsoup-minimal)
5151 ((#:configure-flags configure-flags)
5152 #~(delete "-Dgtk_doc=false" #$configure-flags))
5153 ((#:phases phases)
5154 #~(modify-phases #$phases
5155 (replace 'adjust-tests
5156 (lambda _
5157 ;; This test fails due to missing /etc/nsswitch.conf
5158 ;; in the build environment.
5159 (substitute* "tests/unix-socket-test.c"
5160 ((".*/sockets/unconnected.*") ""))
5161
5162 ;; These fail because "subdomain.localhost" does not resolve in
5163 ;; the build environment. Moreover, the hsts-test suite fails on
5164 ;; i686-linux because of errors from `session_get_uri' like
5165 ;; "Unexpected status 200 OK (expected 301 Moved Permanently)"
5166 ;; (see: https://gitlab.gnome.org/GNOME/libsoup/-/issues/239).
5167 (substitute* "tests/meson.build"
5168 ((".*'name': 'hsts'.*") ""))
5169 (substitute* "tests/hsts-db-test.c"
5170 ((".*/hsts-db/subdomains.*") ""))))
5171 (add-after 'install 'move-doc
5172 (lambda _
5173 (mkdir-p (string-append #$output:doc "/share"))
5174 (rename-file (string-append #$output "/share/doc")
5175 (string-append #$output:doc "/share/doc"))))))))
5176 (native-inputs (modify-inputs (package-native-inputs libsoup-minimal)
5177 (prepend gi-docgen)))))
5178
5179 (define-public libsecret
5180 (package
5181 (name "libsecret")
5182 (version "0.20.4")
5183 (source (origin
5184 (method url-fetch)
5185 (uri (string-append
5186 "mirror://gnome/sources/libsecret/"
5187 (version-major+minor version) "/"
5188 "libsecret-" version ".tar.xz"))
5189 (sha256
5190 (base32
5191 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
5192 (build-system gnu-build-system)
5193 (outputs '("out" "doc"))
5194 (arguments
5195 `(#:tests? #f ; FIXME: Testing hangs.
5196 #:configure-flags
5197 (list (string-append "--with-html-dir="
5198 (assoc-ref %outputs "doc")
5199 "/share/gtk-doc/html"))))
5200 (native-inputs
5201 `(("gettext" ,gettext-minimal)
5202 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
5203 ("gobject-introspection" ,gobject-introspection)
5204 ("pkg-config" ,pkg-config)
5205 ("vala" ,vala)
5206 ("xsltproc" ,libxslt)))
5207 (propagated-inputs
5208 (list glib)) ; required by libsecret-1.pc
5209 (inputs
5210 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
5211 ;; doesn't seem to affect the build result.
5212 (list docbook-xsl libgcrypt libxml2)) ; for XML_CATALOG_FILES
5213 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
5214 (synopsis "GObject bindings for \"Secret Service\" API")
5215 (description
5216 "Libsecret is a GObject based library for storing and retrieving passwords
5217 and other secrets. It communicates with the \"Secret Service\" using DBus.")
5218 (license license:lgpl2.1+)))
5219
5220 (define-public five-or-more
5221 (package
5222 (name "five-or-more")
5223 (version "3.32.3")
5224 (source
5225 (origin
5226 (method url-fetch)
5227 (uri (string-append "mirror://gnome/sources/five-or-more/"
5228 (version-major+minor version) "/"
5229 "five-or-more-" version ".tar.xz"))
5230 (sha256
5231 (base32 "1x4ys18rn37hsavivh532py2avj9686aycnn8ys29cyyxwpdf41d"))))
5232 (build-system meson-build-system)
5233 (arguments
5234 '(#:glib-or-gtk? #t
5235 #:phases
5236 (modify-phases %standard-phases
5237 (add-after 'unpack 'skip-gtk-update-icon-cache
5238 (lambda _
5239 (substitute* "meson_post_install.py"
5240 (("gtk-update-icon-cache") (which "true"))))))))
5241 (native-inputs
5242 (list appstream-glib
5243 desktop-file-utils
5244 `(,glib "bin") ; for glib-compile-resources
5245 intltool
5246 itstool
5247 pkg-config
5248 vala))
5249 (inputs
5250 (list gtk+ libgnome-games-support librsvg libxml2))
5251 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
5252 (synopsis "Logic puzzle game")
5253 (description "Five or More is a game where you try to align
5254 five or more objects of the same color and shape causing them to disappear.
5255 On every turn more objects will appear, until the board is full.
5256 Try to last as long as possible.")
5257 (license license:gpl2+)))
5258
5259 (define-public gi-docgen
5260 (package
5261 (name "gi-docgen")
5262 (version "2022.1")
5263 (source (origin
5264 (method url-fetch)
5265 (uri (pypi-uri "gi-docgen" version))
5266 (sha256
5267 (base32
5268 "1v2wspm2ld27lq1n5v5pzrmkhchfa7p7ahp8rmjm4zcdyagqf7gr"))))
5269 (build-system python-build-system)
5270 (propagated-inputs (list python-jinja2
5271 python-markdown
5272 python-markupsafe
5273 python-pygments
5274 python-toml
5275 python-typogrify))
5276 (home-page "https://gitlab.gnome.org/GNOME/gi-docgen")
5277 (synopsis "Documentation tool for GObject-based libraries")
5278 (description "GI-DocGen is a document generator for GObject-based
5279 libraries. GObject is the base type system of the GNOME project. GI-Docgen
5280 reuses the introspection data generated by GObject-based libraries to generate
5281 the API reference of these libraries, as well as other ancillary
5282 documentation.")
5283 (license license:gpl3+)))
5284
5285 (define-public gnome-mines
5286 (package
5287 (name "gnome-mines")
5288 (version "40.1")
5289 (source
5290 (origin
5291 (method url-fetch)
5292 (uri (string-append "mirror://gnome/sources/" name "/"
5293 (version-major version) "/"
5294 name "-" version ".tar.xz"))
5295 (sha256
5296 (base32 "0whjwdxhyw5bvibd9qvpm2yc5g7yhy8h3rn027kv5cqwyyryj0im"))))
5297 (build-system meson-build-system)
5298 (arguments
5299 `(#:glib-or-gtk? #t
5300 #:phases
5301 (modify-phases %standard-phases
5302 (add-after 'unpack 'skip-gtk-update-icon-cache
5303 (lambda _
5304 (substitute* "build-aux/meson_post_install.py"
5305 (("gtk-update-icon-cache") (which "true"))))))))
5306 (native-inputs
5307 (list appstream-glib
5308 desktop-file-utils
5309 gettext-minimal
5310 `(,glib "bin") ; for glib-compile-resources
5311 itstool
5312 pkg-config
5313 python-wrapper ; for meson_post_install.py
5314 vala))
5315 (inputs
5316 (list gtk+
5317 libgnome-games-support-1
5318 librsvg
5319 yelp))
5320 (home-page "https://wiki.gnome.org/Apps/Mines")
5321 (synopsis "Minesweeper game")
5322 (description
5323 "Mines (previously gnomine) is a puzzle game where you locate mines
5324 floating in an ocean using only your brain and a little bit of luck.")
5325 (license license:gpl2+)))
5326
5327 (define-public gnome-multi-writer
5328 (package
5329 (name "gnome-multi-writer")
5330 (version "3.35.90")
5331 (source
5332 (origin
5333 (method url-fetch)
5334 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5335 (version-major+minor version) "/"
5336 "gnome-multi-writer-" version ".tar.xz"))
5337 (sha256
5338 (base32
5339 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5340 (build-system meson-build-system)
5341 (arguments
5342 '(#:glib-or-gtk? #t
5343 #:phases
5344 (modify-phases %standard-phases
5345 (add-after 'unpack 'skip-post-install
5346 (lambda _
5347 (substitute* "meson.build"
5348 (("meson.add_install_script" &) (string-append "# " &)))
5349 #t)))))
5350 (native-inputs
5351 `(("glib:bin" ,glib "bin")
5352 ("pkg-config" ,pkg-config)))
5353 (inputs
5354 (list gtk+
5355 glib ; for gio
5356 gusb
5357 udisks
5358 libgudev
5359 libcanberra
5360 polkit))
5361 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5362 (synopsis "Write to multiple USB devices at once")
5363 (description
5364 "MultiWriter can be used to write an ISO file to multiple USB devices at
5365 once.")
5366 (license license:gpl2+)))
5367
5368 (define-public gnome-sudoku
5369 (package
5370 (name "gnome-sudoku")
5371 (version "42.0")
5372 (source
5373 (origin
5374 (method url-fetch)
5375 (uri (string-append "mirror://gnome/sources/" name "/"
5376 (version-major version) "/"
5377 name "-" version ".tar.xz"))
5378 (sha256
5379 (base32
5380 "13y2qphrj99b0lc7bh71is1f6i0jvyw8adfg8lv48sq2p3fv8bhx"))))
5381 (build-system meson-build-system)
5382 (arguments
5383 `(#:glib-or-gtk? #t
5384 #:phases
5385 (modify-phases %standard-phases
5386 (add-after 'unpack 'skip-gtk-update-icon-cache
5387 (lambda _
5388 (substitute* "build-aux/post_install.py"
5389 (("gtk-update-icon-cache") (which "true"))))))))
5390 (native-inputs
5391 (list desktop-file-utils
5392 gettext-minimal
5393 `(,glib "bin") ;for glib-compile-resources
5394 itstool
5395 libxml2
5396 pkg-config
5397 python ;for 'build-aux/post_install.py'
5398 vala))
5399 (inputs
5400 (list gtk+
5401 json-glib
5402 libgee
5403 librsvg
5404 qqwing))
5405 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5406 (synopsis "Japanese logic game")
5407 (description
5408 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5409 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5410 possible while still providing features that make playing difficult Sudoku
5411 more fun.")
5412 (license license:gpl2+)))
5413
5414 (define-public gnome-console
5415 (package
5416 (name "gnome-console")
5417 (version "42.2")
5418 (source (origin
5419 (method url-fetch)
5420 (uri (string-append "mirror://gnome/sources/gnome-console/"
5421 (version-major version) "/"
5422 "gnome-console-" version ".tar.xz"))
5423 (sha256
5424 (base32
5425 "0jbh8g3hmc35fy5fbscqf0831xpg1kv66ci9hykpbia4hz0yc9kx"))))
5426 (build-system meson-build-system)
5427 (arguments
5428 (list #:glib-or-gtk? #t
5429 #:configure-flags #~(list "-Dtests=true"
5430 "-Dnautilus=enabled")
5431 #:phases #~(modify-phases %standard-phases
5432 (add-after 'unpack 'patch-nautilus-extension-path
5433 (lambda _
5434 (substitute* "nautilus/meson.build"
5435 (("'extensions-[0-9.]*'")
5436 "'site-extensions'")))))))
5437 (native-inputs (list `(,glib "bin")
5438 gettext-minimal
5439 sassc
5440 pkg-config
5441 `(,gtk+ "bin")
5442 desktop-file-utils))
5443 (inputs (list gtk+
5444 libhandy
5445 nautilus
5446 vte
5447 libgtop
5448 gsettings-desktop-schemas))
5449 (home-page "https://gitlab.gnome.org/GNOME/console")
5450 (synopsis "GNOME terminal emulator")
5451 (description
5452 "Console is a simple terminal emulator for GNOME desktop")
5453 (license license:gpl3+)))
5454
5455 (define-public gnome-terminal
5456 (package
5457 (name "gnome-terminal")
5458 (version "3.44.1")
5459 (source
5460 (origin
5461 (method url-fetch)
5462 (uri (string-append "mirror://gnome/sources/" name "/"
5463 (version-major+minor version) "/"
5464 name "-" version ".tar.xz"))
5465 (sha256
5466 (base32
5467 "0yykb64yi1h0g65q890jf5awjr2sdvfda4xbxnmajcgj3zp20vzv"))))
5468 (build-system meson-build-system)
5469 (arguments
5470 (list
5471 #:glib-or-gtk? #t
5472 #:phases
5473 #~(modify-phases %standard-phases
5474 (add-after 'unpack 'patch-build-system
5475 ;; The build system looks for a dbus file from gnome-shell in the
5476 ;; installation tree of teh package it is configuring...
5477 (lambda* (#:key inputs #:allow-other-keys)
5478 (substitute* "src/meson.build"
5479 (("gt_prefix.*'org.gnome.ShellSearchProvider2.xml'")
5480 (format #f "'~a'" (search-input-file
5481 inputs "share/dbus-1/interfaces/\
5482 org.gnome.ShellSearchProvider2.xml"))))))
5483 (add-before 'install 'disable-gtk-update-icon-cache
5484 (lambda _
5485 (setenv "DESTDIR" "/"))))))
5486 (native-inputs
5487 (list desktop-file-utils
5488 docbook-xsl
5489 gettext-minimal
5490 `(,glib "bin")
5491 itstool
5492 libxml2
5493 libxslt
5494 pkg-config
5495 python))
5496 (propagated-inputs
5497 (list dconf))
5498 (inputs
5499 (list gnome-shell
5500 gnutls
5501 gsettings-desktop-schemas
5502 gtk+
5503 nautilus ;for extension
5504 `(,util-linux "lib")
5505 vala
5506 vte))
5507 (home-page "https://wiki.gnome.org/Apps/Terminal")
5508 (synopsis "Terminal emulator")
5509 (description
5510 "GNOME Terminal is a terminal emulator application for accessing a
5511 UNIX shell environment which can be used to run programs available on
5512 your system.
5513
5514 It supports several profiles, multiple tabs and implements several
5515 keyboard shortcuts.")
5516 (license license:gpl3+)))
5517
5518 (define-public gnome-text-editor
5519 (package
5520 (name "gnome-text-editor")
5521 (version "42.2")
5522 (source (origin
5523 (method url-fetch)
5524 (uri (string-append "mirror://gnome/sources/gnome-text-editor/"
5525 (version-major version) "/"
5526 "gnome-text-editor-" version ".tar.xz"))
5527 (sha256
5528 (base32
5529 "1nn53iv2a82kkqkg5jy0bqh2b2wzg7g4a6w8q3qsis5wvj64lvg5"))))
5530 (build-system meson-build-system)
5531 (arguments
5532 (list #:glib-or-gtk? #t))
5533 (native-inputs (list pkg-config
5534 cmake
5535 gettext-minimal
5536 desktop-file-utils
5537 appstream-glib
5538 `(,glib "bin")
5539 `(,gtk "bin")
5540 itstool))
5541 (inputs (list gtk gtksourceview libadwaita enchant))
5542 (home-page "https://gitlab.gnome.org/GNOME/gnome-text-editor")
5543 (synopsis "GNOME text editor")
5544 (description
5545 "GNOME Text Editor is a simple text editor that focuses on session
5546 management. It keeps track of changes and state even if you quit the
5547 application. You can come back to your work even if you've never saved it to a
5548 file.")
5549 (license license:gpl3+)))
5550
5551 (define-public colord-minimal
5552 (package
5553 (name "colord-minimal")
5554 (version "1.4.5")
5555 (source
5556 (origin
5557 (method url-fetch)
5558 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5559 "colord-" version ".tar.xz"))
5560 (sha256
5561 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5562 (build-system meson-build-system)
5563 (arguments
5564 '( ;; FIXME: One test fails:
5565 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5566 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5567 ;; application/x-zerosize
5568 #:tests? #f
5569 #:glib-or-gtk? #t
5570 #:configure-flags (list "-Dargyllcms_sensor=false" ;requires spotread
5571 "-Dbash_completion=false"
5572 "-Ddaemon_user=colord"
5573 "-Ddocs=false"
5574 "-Dlocalstatedir=/var"
5575 "-Dman=false"
5576 "-Dsane=true"
5577 "-Dsystemd=false") ;no systemd
5578 #:phases
5579 (modify-phases %standard-phases
5580 (add-before 'configure 'patch-build-system
5581 (lambda* (#:key outputs #:allow-other-keys)
5582 (substitute* "rules/meson.build"
5583 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5584 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))))
5585 (add-before 'configure 'set-sqlite3-file-name
5586 (lambda* (#:key inputs #:allow-other-keys)
5587 ;; "colormgr dump" works by invoking the "sqlite3" command.
5588 ;; Record its absolute file name.
5589 (let ((sqlite (assoc-ref inputs "sqlite")))
5590 (substitute* "client/cd-util.c"
5591 (("\"sqlite3\"")
5592 (string-append "\"" sqlite "/bin/sqlite3\"")))))))))
5593 (native-inputs
5594 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5595 ("gettext" ,gettext-minimal)
5596 ("pkg-config" ,pkg-config)
5597 ("vala" ,vala)))
5598 (propagated-inputs
5599 ;; colord.pc refers to all these.
5600 `(("glib" ,glib)
5601 ("lcms" ,lcms)
5602 ("udev" ,eudev)))
5603 (inputs
5604 `(("dbus-glib" ,dbus-glib)
5605 ("gobject-introspection" ,gobject-introspection)
5606 ("gusb" ,gusb-minimal)
5607 ("libgudev" ,libgudev)
5608 ("libusb" ,libusb)
5609 ("polkit" ,polkit)
5610 ("python" ,python-wrapper)
5611 ("sqlite" ,sqlite)
5612 ("sane-backends" ,sane-backends)))
5613 (home-page "https://www.freedesktop.org/software/colord/")
5614 (synopsis "Color management service")
5615 (description "Colord is a system service that makes it easy to manage,
5616 install and generate color profiles to accurately color manage input and
5617 output devices.")
5618 (license license:gpl2+)))
5619
5620 (define-public colord
5621 (package/inherit colord-minimal
5622 (name "colord")
5623 (version "1.4.6")
5624 (source
5625 (origin
5626 (method url-fetch)
5627 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5628 "colord-" version ".tar.xz"))
5629 (sha256
5630 (base32 "0vwfx06k1in8hci3kdxpc3c0bh81f1vl5bp7favd3rdz4wd661vl"))))
5631 (arguments
5632 (substitute-keyword-arguments (package-arguments colord-minimal)
5633 ((#:configure-flags flags)
5634 #~(begin
5635 (use-modules (srfi srfi-1))
5636 (append '("-Dbash_completion=true"
5637 "-Ddocs=true"
5638 "-Dman=true"
5639 "-Dvapi=true")
5640 (fold delete #$flags '("-Dbash_completion=false"
5641 "-Ddocs=false"
5642 "-Dman=false")))))
5643 ((#:phases phases)
5644 #~(modify-phases #$phases
5645 (add-after 'unpack 'fix-bash-completion-dir
5646 (lambda _
5647 (substitute* "data/meson.build"
5648 (("bash_completion.get_pkgconfig_variable\
5649 \\('completionsdir'\\)")
5650 (string-append "'" #$output
5651 "/etc/bash_completion.d'")))))))))
5652 (native-inputs
5653 (modify-inputs (package-native-inputs colord-minimal)
5654 (append bash-completion
5655 docbook-xsl-1.79.1
5656 gtk-doc/stable
5657 libxml2 ;for XML_CATALOG_FILES
5658 libxslt
5659 vala))))) ;for VAPI, needed by simple-scan
5660
5661 (define-public geoclue
5662 (package
5663 (name "geoclue")
5664 (version "2.6.0")
5665 (source
5666 (origin
5667 (method url-fetch)
5668 (uri
5669 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5670 version "/geoclue-" version ".tar.bz2"))
5671 (sha256
5672 (base32 "1854i8lih1jkks5w38xv8k5gs7s8629qjg3cg96ji0ffk35yzjfd"))
5673 (patches (search-patches "geoclue-config.patch"))))
5674 (build-system meson-build-system)
5675 (arguments
5676 '(#:configure-flags (list "-Ddbus-srv-user=geoclue")))
5677 (native-inputs
5678 (list pkg-config
5679 gobject-introspection
5680 modem-manager
5681 libnotify
5682 gtk-doc/stable
5683 gettext-minimal
5684 vala))
5685 (inputs
5686 (list avahi
5687 `(,glib "bin")
5688 glib-networking
5689 json-glib
5690 libsoup-minimal-2))
5691 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5692 (synopsis "Geolocation service")
5693 (description "Geoclue is a D-Bus service that provides location
5694 information. The primary goal of the Geoclue project is to make creating
5695 location-aware applications as simple as possible, while the secondary goal is
5696 to ensure that no application can access location information without explicit
5697 permission from user.")
5698 (license license:gpl2+)))
5699
5700 (define-public geocode-glib
5701 (package
5702 (name "geocode-glib")
5703 (version "3.26.4")
5704 (source (origin
5705 (method url-fetch)
5706 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5707 (version-major+minor version) "/"
5708 "geocode-glib-" version ".tar.xz"))
5709 (sha256
5710 (base32
5711 "1aipd82qk404qy88pyfgplzgi83db4hi51vkl54h8isqs4k6i6id"))))
5712 (build-system meson-build-system)
5713 (arguments
5714 (list
5715 #:configure-flags #~(list "-Dsoup2=false")
5716 #:phases
5717 #~(modify-phases %standard-phases
5718 ;; The tests require a bunch of locales.
5719 (add-before 'check 'set-locales
5720 (lambda* (#:key inputs #:allow-other-keys)
5721 (setenv "GUIX_LOCPATH"
5722 (search-input-directory inputs "lib/locale")))))))
5723 (native-inputs
5724 (list `(,glib "bin") ;for glib-mkenums
5725 glibc-locales ;for tests
5726 gettext-minimal
5727 gobject-introspection
5728 gtk-doc/stable
5729 pkg-config
5730 json-glib))
5731 (propagated-inputs
5732 ;; geocode-glib-2.0.pc refers to GIO.
5733 (list glib))
5734 (inputs
5735 (list libsoup))
5736 (home-page "https://github.com/GNOME/geocode-glib/")
5737 (synopsis "Geocoding and reverse-geocoding library")
5738 (description
5739 "geocode-glib is a convenience library for geocoding (finding longitude,
5740 and latitude from an address) and reverse geocoding (finding an address from
5741 coordinates) using the Nominatim service. geocode-glib caches requests for
5742 faster results and to avoid unnecessary server load.")
5743 (license license:lgpl2.0+)))
5744
5745 (define-public geocode-glib-with-libsoup2
5746 (package
5747 (inherit geocode-glib)
5748 (name "geocode-glib-with-libsoup2")
5749 (arguments (substitute-keyword-arguments (package-arguments geocode-glib)
5750 ((#:configure-flags flags ''())
5751 #~(delete "-Dsoup2=false" #$flags))))
5752 (inputs (modify-inputs (package-inputs geocode-glib)
5753 (replace "libsoup" libsoup-minimal-2)))))
5754
5755 (define-public upower
5756 (package
5757 (name "upower")
5758 (version "1.90.0")
5759 (source
5760 (origin
5761 (method git-fetch)
5762 (uri (git-reference
5763 (url "https://gitlab.freedesktop.org/upower/upower")
5764 (commit (string-append "v" version))))
5765 (file-name (git-file-name name version))
5766 (sha256
5767 (base32 "1g17rm91p8vfpjyb0k2shylrs55nccn3fa890vlk4n9s71sghbzq"))
5768 (modules '((guix build utils)))
5769 (snippet
5770 ;; Upstream commit <https://cgit.freedesktop.org/upower/commit/
5771 ;; ?id=18457c99b68786cd729b315723d680e6860d9cfa> moved
5772 ;; 'dbus-1/system.d' from etc/ to share/. However,
5773 ;; 'dbus-configuration-directory' in (gnu services dbus) expects it in
5774 ;; etc/. Thus, move it back to its previous location.
5775 #~(substitute* "src/meson.build"
5776 (("dbusdir / 'system.d'")
5777 "get_option('sysconfdir') / 'dbus-1/system.d'")
5778 ;; Avoid writing to /var during the build, this is
5779 ;; not possible in Guix!
5780 (("^install_subdir\\('does-not-exist'.*$") "")))))
5781 (build-system meson-build-system)
5782 (arguments
5783 (list
5784 #:glib-or-gtk? #t
5785 #:configure-flags
5786 #~(list "-Dsystemdsystemunitdir=no"
5787 ;; If not specified, udev will try putting history information
5788 ;; in /gnu/store.
5789 "-Dhistorydir=/var/lib/upower"
5790 (string-append "-Dudevrulesdir=" #$output "/bin/udev/rules.d"))))
5791 (native-inputs
5792 (list `(,glib "bin") ; for gdbus-codegen
5793 gobject-introspection
5794 gtk-doc
5795 intltool
5796 pkg-config
5797 python
5798 ;; For tests.
5799 python-dbus
5800 python-dbusmock
5801 python-packaging
5802 python-pygobject
5803 umockdev
5804 ;; For man pages.
5805 docbook-xsl
5806 libxslt ; for 'xsltproc'
5807 libxml2)) ; for 'XML_CATALOG_FILES'
5808 (inputs
5809 (list dbus-glib libgudev libusb))
5810 (propagated-inputs
5811 ;; In Requires of upower-glib.pc.
5812 (list glib))
5813 (home-page "https://upower.freedesktop.org/")
5814 (synopsis "System daemon for managing power devices")
5815 (description
5816 "UPower is an abstraction for enumerating power devices,
5817 listening to device events and querying history and statistics. Any
5818 application or service on the system can access the org.freedesktop.UPower
5819 service via the system message bus.")
5820 (license license:gpl2+)
5821 ;; Old versions of upower are tagged as UPOWER_0_99_13, which confuses
5822 ;; the 'generic-git' updater. Give it a little help.
5823 (properties '((release-tag-prefix . "v")
5824 (release-tag-version-delimiter . ".")))))
5825
5826 (define-public libgweather
5827 (package
5828 (name "libgweather")
5829 (version "40.0")
5830 (source (origin
5831 (method url-fetch)
5832 (uri (string-append "mirror://gnome/sources/" name "/"
5833 (version-major version) "/"
5834 name "-" version ".tar.xz"))
5835 (sha256
5836 (base32
5837 "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna"))))
5838 (build-system meson-build-system)
5839 (arguments
5840 (list
5841 #:tests? #f ;one of two tests requires network access
5842 #:configure-flags
5843 #~(list (string-append "-Dzoneinfo_dir="
5844 (search-input-directory %build-inputs
5845 "share/zoneinfo")))))
5846 (native-inputs
5847 (list gettext-minimal
5848 `(,glib "bin") ;for glib-mkenums
5849 gobject-introspection
5850 pkg-config
5851 python
5852 vala
5853 python-pygobject))
5854 (propagated-inputs
5855 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5856 ;; libsoup.
5857 (list gtk+
5858 gdk-pixbuf
5859 libxml2
5860 libsoup-minimal-2
5861 geocode-glib-with-libsoup2))
5862 (inputs
5863 (list tzdata))
5864 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5865 (synopsis "Location, time zone, and weather library for GNOME")
5866 (description
5867 "libgweather is a library to access weather information from online
5868 services for numerous locations.")
5869 (license license:gpl2+)))
5870
5871 ;; libgweather no longer follows the GNOME version, and recommends changing
5872 ;; the package name in distributions to avoid accidental downgrades. See
5873 ;; <https://discourse.gnome.org/t/changes-in-libgweather-for-gnome-42/7770/2>.
5874 ;; TODO: how to prevent the updater from picking version 40?
5875 (define-public libgweather4
5876 (package
5877 (inherit libgweather)
5878 (name "libgweather4")
5879 (version "4.1.1")
5880 (source (origin
5881 (method url-fetch)
5882 (uri (string-append "mirror://gnome/sources/libgweather/"
5883 (version-major+minor version) "/"
5884 "libgweather-" version ".tar.xz"))
5885 (sha256
5886 (base32
5887 "1wh3asniv5yiqp0dsk96as2bkx72hamh3ij2md8k0is9yd7ppbjm"))))
5888 (arguments
5889 (list
5890 #:configure-flags
5891 #~(list (string-append "-Dzoneinfo_dir="
5892 (search-input-directory %build-inputs
5893 "share/zoneinfo")))
5894 #:phases
5895 #~(modify-phases %standard-phases
5896 (add-after 'unpack 'set-HOME
5897 (lambda _
5898 (setenv "HOME" "/tmp")))
5899 (add-after 'unpack 'disable-problematic-tests
5900 (lambda _
5901 (substitute* "libgweather/tests/meson.build"
5902 ;; The timezones test fails for unknown reasons (see:
5903 ;; https://gitlab.gnome.org/GNOME/libgweather/-/issues/188).
5904 ((".*'name': 'timezones'.*") "")
5905 ;; The 'metar' test is known to fail, fixed but not yet released
5906 ;; upstream (see:
5907 ;; https://gitlab.gnome.org/GNOME/libgweather/-/issues/168).
5908 ((".*'name': 'metar'.*") ""))))
5909 (delete 'check) ;move after the install phase
5910 (add-after 'install 'check
5911 (assoc-ref %standard-phases 'check)))))
5912 (native-inputs
5913 (list gettext-minimal
5914 gi-docgen
5915 `(,glib "bin") ;for glib-mkenums
5916 gobject-introspection
5917 glibc-utf8-locales
5918 gsettings-desktop-schemas
5919 pkg-config
5920 python
5921 python-pygobject
5922 vala))
5923 ;; TODO: It would be good to make the package respect TZDIR instead
5924 ;; of using a "hard coded" version of tzdata.
5925 (inputs (list tzdata))
5926 (propagated-inputs
5927 ;; gweather4.pc refers to all of these.
5928 (list geocode-glib
5929 glib
5930 json-glib
5931 libsoup
5932 libxml2))))
5933
5934 (define-public libgweather4-with-libsoup2
5935 (package
5936 (inherit libgweather4)
5937 (name "libgweather4-with-libsoup2")
5938 (arguments (substitute-keyword-arguments (package-arguments libgweather4)
5939 ((#:configure-flags flags)
5940 #~(cons "-Dsoup2=true" #$flags))))
5941 (propagated-inputs
5942 (modify-inputs (package-propagated-inputs libgweather4)
5943 (replace "geocode-glib" geocode-glib-with-libsoup2)
5944 (replace "libsoup" libsoup-minimal-2)))))
5945
5946 (define-public gnome-settings-daemon
5947 (package
5948 (name "gnome-settings-daemon")
5949 (version "42.2")
5950 (source
5951 (origin
5952 (method url-fetch)
5953 (uri (string-append "mirror://gnome/sources/" name "/"
5954 (version-major version) "/"
5955 name "-" version ".tar.xz"))
5956 (sha256
5957 (base32
5958 "005b1dvrfcyr6n4srl6c0lzr95c18prps4xm1lf2ghcfm8a9fi4w"))
5959 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5960 (build-system meson-build-system)
5961 (arguments
5962 (list
5963 #:glib-or-gtk? #t
5964 #:configure-flags
5965 #~(list (string-append "-Dudev_dir=" #$output "/lib/udev")
5966 "-Dsystemd=false"
5967 ;; Otherwise, the RUNPATH will lack the final path component.
5968 (string-append "-Dc_link_args=-Wl,-rpath=" #$output
5969 "/lib/gnome-settings-daemon-3.0:"
5970 ;; Also add NSS because for some reason Meson
5971 ;; > 0.60 does not add it automatically (XXX).
5972 (search-input-directory %build-inputs "lib/nss")))
5973 #:phases
5974 #~(modify-phases %standard-phases
5975 (add-before 'configure 'set-baobab-file-name
5976 (lambda* (#:key inputs #:allow-other-keys)
5977 ;; Hard-code the file name of Baobab instead of looking
5978 ;; it up in $PATH. This ensures users get the "Examine"
5979 ;; button in the low disk space notification of GDM even
5980 ;; if they don't have GNOME in their main profile.
5981 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5982 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5983 (format #f "g_strdup (~s)"
5984 (search-input-file inputs "bin/baobab")))))))
5985 ;; Color management test can't reach the colord system service.
5986 #:tests? #f))
5987 (native-inputs
5988 (list docbook-xml-4.2
5989 docbook-xsl
5990 gettext-minimal
5991 `(,glib "bin") ;for glib-mkenums
5992 libxml2 ;for XML_CATALOG_FILES
5993 libxslt
5994 perl
5995 pkg-config))
5996 (inputs
5997 (list alsa-lib
5998 baobab
5999 colord
6000 cups
6001 gcr
6002 geoclue
6003 geocode-glib-with-libsoup2
6004 gnome-desktop
6005 gsettings-desktop-schemas-next
6006 lcms
6007 libcanberra
6008 libgudev
6009 libgweather4-with-libsoup2
6010 libnotify
6011 (librsvg-for-system)
6012 libwacom
6013 libx11
6014 libxtst
6015 modem-manager
6016 network-manager
6017 nss
6018 polkit
6019 pulseaudio
6020 upower
6021 wayland
6022 xf86-input-wacom))
6023 (home-page "https://www.gnome.org")
6024 (synopsis "GNOME settings daemon")
6025 (description
6026 "This package contains the daemon responsible for setting the various
6027 parameters of a GNOME session and the applications that run under it. It
6028 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
6029 settings, themes, mouse settings, and startup of other daemons.")
6030 (license license:gpl2+)))
6031
6032 (define-public totem-pl-parser
6033 (package
6034 (name "totem-pl-parser")
6035 (version "3.26.6")
6036 (source (origin
6037 (method url-fetch)
6038 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
6039 (version-major+minor version) "/"
6040 "totem-pl-parser-" version ".tar.xz"))
6041 (sha256
6042 (base32
6043 "075csd5x0frgf93jvhlqiwv5i0qm24zz3iw17jj7v7fgsml0zpy0"))))
6044 (build-system meson-build-system)
6045 (arguments
6046 ;; FIXME: Tests require gvfs.
6047 `(#:tests? #f))
6048 (native-inputs
6049 (list intltool
6050 `(,glib "bin") gobject-introspection pkg-config))
6051 (propagated-inputs
6052 (list glib gmime libarchive libgcrypt libxml2))
6053 (inputs
6054 (list libsoup))
6055 (home-page "https://projects.gnome.org/totem")
6056 (synopsis "Library to parse and save media playlists for GNOME")
6057 (description "Totem-pl-parser is a GObjects-based library to parse and save
6058 playlists in a variety of formats.")
6059 (license license:lgpl2.0+)))
6060
6061 (define-public aisleriot
6062 (package
6063 (name "aisleriot")
6064 (version "3.22.9")
6065 (source (origin
6066 (method url-fetch)
6067 (uri (string-append "mirror://gnome/sources/aisleriot/"
6068 (version-major+minor version) "/"
6069 "aisleriot-" version ".tar.xz"))
6070 (sha256
6071 (base32
6072 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6073 (build-system glib-or-gtk-build-system)
6074 (arguments
6075 '(#:configure-flags
6076 '("--with-platform=gtk-only"
6077 "--with-card-theme-formats=svg")))
6078 (native-inputs
6079 `(("desktop-file-utils" ,desktop-file-utils)
6080 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6081 ("intltool" ,intltool)
6082 ("itstool" ,itstool)
6083 ("pkg-config" ,pkg-config)
6084 ("xmllint" ,libxml2)))
6085 (inputs
6086 (list gtk+ guile-2.2 libcanberra librsvg))
6087 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
6088 (synopsis "Solitaire card games")
6089 (description
6090 "Aisleriot (also known as Solitaire or sol) is a collection of card games
6091 which are easy to play with the aid of a mouse.")
6092 (license license:gpl3+)))
6093
6094 (define-public amtk
6095 (package
6096 (name "amtk")
6097 (version "5.5.1")
6098 (source (origin
6099 (method url-fetch)
6100 (uri (string-append "mirror://gnome/sources/amtk/"
6101 (version-major+minor version) "/"
6102 "amtk-" version ".tar.xz"))
6103 (sha256
6104 (base32
6105 "176vplk3inf0pp0prma8478hp0yhziq0krp5a9l47hg22z86v2gc"))))
6106 (build-system meson-build-system)
6107 (native-inputs
6108 (list gobject-introspection
6109 `(,glib "bin") ; for glib-mkenums
6110 gtk-doc/stable pkg-config))
6111 (inputs
6112 (list glib gtk+))
6113 (home-page "https://wiki.gnome.org/Projects/Amtk")
6114 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
6115 (description
6116 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
6117 It is a basic GtkUIManager replacement based on GAction. It is suitable for
6118 both a traditional UI or a modern UI with a GtkHeaderBar.")
6119 (license license:lgpl2.1+)))
6120
6121 (define-public devhelp
6122 (package
6123 (name "devhelp")
6124 (version "41.3")
6125 (source (origin
6126 (method url-fetch)
6127 (uri (string-append "mirror://gnome/sources/" name "/"
6128 (version-major version) "/"
6129 name "-" version ".tar.xz"))
6130 (sha256
6131 (base32
6132 "1rxn6kciyfdhnjrcjyf02cn3rki2xgwb4wrg5plbzjvpqasq66ml"))))
6133 (build-system meson-build-system)
6134 (arguments
6135 `(#:glib-or-gtk? #t
6136 #:phases
6137 (modify-phases %standard-phases
6138 (add-after 'unpack 'skip-gtk-update-icon-cache
6139 ;; Don't create 'icon-theme.cache'.
6140 (lambda _
6141 (substitute* "build-aux/meson/meson_post_install.py"
6142 (("gtk-update-icon-cache") "true")))))))
6143 (propagated-inputs
6144 (list gsettings-desktop-schemas))
6145 (native-inputs
6146 (list gettext-minimal
6147 gobject-introspection
6148 `(,glib "bin") ; for glib-mkmenus
6149 itstool
6150 pkg-config))
6151 (inputs
6152 (list amtk
6153 webkitgtk))
6154 (home-page "https://wiki.gnome.org/Apps/Devhelp")
6155 (synopsis "API documentation browser for GNOME")
6156 (description
6157 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
6158 natively with GTK-Doc (the API reference system developed for GTK+ and used
6159 throughout GNOME for API documentation).")
6160 (license license:gpl2+)))
6161
6162 (define-public devhelp-with-libsoup2
6163 (package/inherit devhelp
6164 (inputs (modify-inputs (package-inputs devhelp)
6165 (replace "webkitgtk" webkitgtk-with-libsoup2)))))
6166
6167 (define-public cogl
6168 (package
6169 (name "cogl")
6170 (version "1.22.8")
6171 (source
6172 (origin
6173 (method url-fetch)
6174 (uri (string-append "mirror://gnome/sources/cogl/"
6175 (version-major+minor version) "/"
6176 "cogl-" version ".tar.xz"))
6177 (sha256
6178 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
6179 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
6180 ;; cogl, corresponding changes may be appropriate in mutter as well.
6181 (build-system gnu-build-system)
6182 (native-inputs
6183 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6184 ("gobject-introspection" ,gobject-introspection)
6185 ("xorg-server" ,xorg-server-for-tests)
6186 ("pkg-config" ,pkg-config)))
6187 (propagated-inputs
6188 (list glib
6189 gdk-pixbuf
6190 libx11
6191 libxext
6192 libxfixes
6193 libxdamage
6194 libxcomposite
6195 libxrandr))
6196 (inputs
6197 (list mesa
6198 cairo
6199 pango
6200 gstreamer
6201 gst-plugins-base
6202 wayland))
6203 (arguments
6204 `(#:disallowed-references (,xorg-server-for-tests)
6205 #:configure-flags (list "--enable-cogl-gst"
6206 "--enable-wayland-egl-platform"
6207 "--enable-wayland-egl-server"
6208
6209 ;; Arrange to pass an absolute file name to
6210 ;; dlopen for libGL.so.
6211 (string-append "--with-gl-libname="
6212 (assoc-ref %build-inputs "mesa")
6213 "/lib/libGL.so"))
6214 #:phases
6215 (modify-phases %standard-phases
6216 (add-after 'unpack 'fix-build-with-mesa-20
6217 (lambda _
6218 ;; Work around a problem with Mesa 20 where some macros used by
6219 ;; Cogl went missing from eglext.h. This can likely be removed
6220 ;; for newer versions of Cogl or Mesa.
6221 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
6222 (substitute* '("configure"
6223 "cogl/winsys/cogl-winsys-egl-kms.c")
6224 (("#include <EGL/eglext.h>" all)
6225 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
6226 #t))
6227 (add-before 'check 'start-xorg-server
6228 (lambda* (#:key tests? inputs #:allow-other-keys)
6229 (if tests?
6230 (begin
6231 ;; The test suite requires a running X server.
6232 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
6233 (assoc-ref inputs "xorg-server")))
6234 (setenv "DISPLAY" ":1")
6235 #t)
6236 (format #t "test suite not run~%"))
6237 #t)))))
6238 (home-page "http://www.clutter-project.org")
6239 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
6240 (description
6241 "Cogl is a small library for using 3D graphics hardware to draw pretty
6242 pictures. The API departs from the flat state machine style of OpenGL and is
6243 designed to make it easy to write orthogonal components that can render
6244 without stepping on each others toes.")
6245 (license (list license:expat ; most of the code
6246 license:bsd-3 ; cogl/cogl-point-in-poly.c
6247 license:sgifreeb2.0 ; cogl-path/tesselator/
6248 license:asl2.0)))) ; examples/android/
6249
6250 (define-public clutter
6251 (package
6252 (name "clutter")
6253 (version "1.26.4")
6254 (source
6255 (origin
6256 (method url-fetch)
6257 (uri (string-append "mirror://gnome/sources/" name "/"
6258 (version-major+minor version) "/"
6259 name "-" version ".tar.xz"))
6260 (sha256
6261 (base32
6262 "1rn4cd1an6a9dfda884aqpcwcgq8dgydpqvb19nmagw4b70zlj4b"))))
6263 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
6264 ;; to clutter, corresponding changes may be appropriate in mutter as well.
6265 (build-system gnu-build-system)
6266 (outputs '("out"
6267 "doc")) ;9 MiB of gtk-doc HTML pages
6268 (native-inputs
6269 (list `(,glib "bin") ; for glib-genmarshal
6270 gobject-introspection
6271 libxslt
6272 pkg-config))
6273 (propagated-inputs
6274 (list atk
6275 cairo
6276 cogl
6277 glib
6278 gtk+
6279 json-glib
6280 libxcomposite
6281 libxdamage
6282 libxext
6283 xinput))
6284 (inputs
6285 (list eudev
6286 libxkbcommon))
6287 (arguments
6288 `(#:configure-flags (list "--enable-x11-backend=yes"
6289
6290 ;; This produces share/doc/{clutter,cally}.
6291 (string-append "--with-html-dir="
6292 (assoc-ref %outputs "doc")
6293 "/share/doc"))
6294 ;; XXX FIXME: Get test suite working. It would probably fail in the
6295 ;; same way the cogl tests fail, since clutter is based on cogl.
6296 #:tests? #f))
6297 (home-page "https://blogs.gnome.org/clutter/")
6298 (synopsis "OpenGL-based interactive canvas library")
6299 (description
6300 "Clutter is an OpenGL-based interactive canvas library, designed for
6301 creating fast, mainly 2D single window applications such as media box UIs,
6302 presentations, kiosk style applications and so on.")
6303 (license license:lgpl2.0+)))
6304
6305 (define-public clutter-gtk
6306 (package
6307 (name "clutter-gtk")
6308 (version "1.8.4")
6309 (source
6310 (origin
6311 (method url-fetch)
6312 (uri (string-append "mirror://gnome/sources/" name "/"
6313 (version-major+minor version) "/"
6314 name "-" version ".tar.xz"))
6315 (sha256
6316 (base32
6317 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
6318 (build-system gnu-build-system)
6319 (native-inputs
6320 (list pkg-config gobject-introspection))
6321 (propagated-inputs
6322 ;; clutter-gtk.pc refers to all these.
6323 (list clutter gtk+))
6324 (home-page "http://www.clutter-project.org")
6325 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
6326 (description
6327 "Clutter is an OpenGL-based interactive canvas library, designed for
6328 creating fast, mainly 2D single window applications such as media box UIs,
6329 presentations, kiosk style applications and so on.")
6330 (license license:lgpl2.0+)))
6331
6332 (define-public clutter-gst
6333 (package
6334 (name "clutter-gst")
6335 (version "3.0.27")
6336 (source
6337 (origin
6338 (method url-fetch)
6339 (uri (string-append "mirror://gnome/sources/clutter-gst/"
6340 (version-major+minor version) "/"
6341 "clutter-gst-" version ".tar.xz"))
6342 (sha256
6343 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
6344 (build-system gnu-build-system)
6345 (native-inputs
6346 (list `(,glib "bin") ; for glib-mkenums
6347 pkg-config gobject-introspection))
6348 (inputs
6349 (list clutter gstreamer gst-plugins-base))
6350 (home-page "http://www.clutter-project.org")
6351 (synopsis "Integration library for using GStreamer with Clutter")
6352 (description
6353 "Clutter-Gst is an integration library for using GStreamer with Clutter.
6354 It provides a GStreamer sink to upload frames to GL and an actor that
6355 implements the ClutterGstPlayer interface using playbin. Clutter is an
6356 OpenGL-based interactive canvas library.")
6357 (license license:lgpl2.0+)))
6358
6359 (define-public libchamplain
6360 (package
6361 (name "libchamplain")
6362 (version "0.12.20")
6363 (source (origin
6364 (method url-fetch)
6365 (uri (string-append
6366 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
6367 version ".tar.xz"))
6368 (sha256
6369 (base32
6370 "0rihpb0npqpihqcdz4w03rq6xl7jdckfqskvv9diq2hkrnzv8ch2"))))
6371 (build-system meson-build-system)
6372 (native-inputs
6373 (list gobject-introspection pkg-config vala))
6374 (propagated-inputs
6375 (list libsoup-minimal-2
6376 sqlite
6377 clutter
6378 clutter-gtk
6379 `(,glib "bin") ;glib-mkenums, etc.
6380 cairo
6381 gtk+
6382 glib))
6383 (home-page "https://projects.gnome.org/libchamplain/")
6384 (synopsis "C library providing a ClutterActor to display maps")
6385 (description
6386 "libchamplain is a C library providing a ClutterActor to display maps.
6387 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
6388 and Perl bindings are also available. It supports numerous free map sources
6389 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
6390 (license license:lgpl2.1+)))
6391
6392 (define-public gom
6393 (package
6394 (name "gom")
6395 (version "0.4")
6396 (source
6397 (origin
6398 (method url-fetch)
6399 (uri (string-append "mirror://gnome/sources/gom/"
6400 (version-major+minor version) "/"
6401 "gom-" version ".tar.xz"))
6402 (sha256
6403 (base32
6404 "17ca07hpg7dqxjn0jpqim3xqcmplk2a87wbwrrlq3dd3m8381l38"))))
6405 (build-system meson-build-system)
6406 (arguments
6407 (list
6408 #:imported-modules `(,@%meson-build-system-modules
6409 (guix build python-build-system))
6410 #:modules '((guix build meson-build-system)
6411 ((guix build python-build-system) #:prefix python:)
6412 (guix build utils))
6413 #:configure-flags
6414 #~(list (string-append "-Dpygobject-override-dir="
6415 (python:site-packages %build-inputs %outputs)
6416 "/gi/overrides"))))
6417 (native-inputs
6418 (list gettext-minimal
6419 gobject-introspection
6420 pkg-config
6421 python
6422 python-pygobject))
6423 (inputs
6424 (list glib
6425 gdk-pixbuf
6426 sqlite))
6427 (home-page "https://wiki.gnome.org/Projects/Gom")
6428 (synopsis "Object mapper from GObjects to SQLite")
6429 (description
6430 "Gom provides an object mapper from GObjects to SQLite. It helps you
6431 write applications that need to store structured data as well as make complex
6432 queries upon that data.")
6433 (license license:lgpl2.1+)))
6434
6435 (define-public libgnome-games-support
6436 (package
6437 (name "libgnome-games-support")
6438 (version "2.0.0")
6439 (source
6440 (origin
6441 (method url-fetch)
6442 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
6443 (version-major+minor version) "/"
6444 "libgnome-games-support-" version ".tar.xz"))
6445 (sha256
6446 (base32
6447 "196jaga70r16bzypv4z07mnwr0xcm93gc91kxygcpp9fwdpiz0jk"))))
6448 (build-system meson-build-system)
6449 (arguments
6450 '(#:glib-or-gtk? #t
6451 #:phases
6452 (modify-phases %standard-phases
6453 (add-before 'check 'pre-check
6454 (lambda _
6455 ;; Tests require a writable HOME.
6456 (setenv "HOME" (getcwd)))))))
6457 (native-inputs
6458 (list intltool pkg-config vala))
6459 (propagated-inputs
6460 ;; Required by libgnome-games-support-1.0.pc
6461 (list gtk libgee))
6462 (home-page "https://www.gnome.org/")
6463 (synopsis "Useful functionality shared among GNOME games")
6464 (description
6465 "libgnome-games-support is a small library intended for internal use by
6466 GNOME Games, but it may be used by others.")
6467 (license license:lgpl3+)))
6468
6469 (define-public libgnome-games-support-1
6470 (package
6471 (inherit libgnome-games-support)
6472 (version "1.8.2")
6473 (source
6474 (origin
6475 (method url-fetch)
6476 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
6477 (version-major+minor version) "/"
6478 "libgnome-games-support-" version ".tar.xz"))
6479 (sha256
6480 (base32
6481 "0zggsg7h9nlcwwjcqc13pdjza17iiww325r3q0d76f5hlw24chr8"))))
6482 (propagated-inputs (modify-inputs (package-propagated-inputs
6483 libgnome-games-support)
6484 (replace "gtk" gtk+)))))
6485
6486 (define-public gnome-klotski
6487 (package
6488 (name "gnome-klotski")
6489 (version "3.38.2")
6490 (source (origin
6491 (method url-fetch)
6492 (uri (string-append "mirror://gnome/sources/" name "/"
6493 (version-major+minor version) "/"
6494 name "-" version ".tar.xz"))
6495 (sha256
6496 (base32
6497 "1qm01hdd5yp8chig62bj10912vclbdvywwczs84sfg4zci2phqwi"))))
6498 (build-system meson-build-system)
6499 (arguments
6500 '(#:glib-or-gtk? #t
6501 #:phases
6502 (modify-phases %standard-phases
6503 (add-after 'unpack 'skip-gtk-update-icon-cache
6504 ;; Don't create 'icon-theme.cache'.
6505 (lambda _
6506 (substitute* "build-aux/meson_post_install.py"
6507 (("gtk-update-icon-cache") (which "true"))))))))
6508 (native-inputs
6509 (list desktop-file-utils
6510 `(,glib "bin") ; for glib-compile-resources
6511 intltool
6512 itstool
6513 pkg-config
6514 vala
6515 libxml2))
6516 (inputs
6517 (list gtk+
6518 libgnome-games-support-1
6519 librsvg))
6520 (home-page "https://wiki.gnome.org/Apps/Klotski")
6521 (synopsis "Sliding block puzzles")
6522 (description
6523 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6524 the patterned block to the area bordered by green markers. To do so, you will
6525 need to slide other blocks out of the way. Complete each puzzle in as few moves
6526 as possible!")
6527 (license license:gpl2+)))
6528
6529 (define-public grilo
6530 (package
6531 (name "grilo")
6532 (version "0.3.15")
6533 (source
6534 (origin
6535 (method url-fetch)
6536 (uri (string-append "mirror://gnome/sources/grilo/"
6537 (version-major+minor version) "/"
6538 "grilo-" version ".tar.xz"))
6539 (sha256
6540 (base32 "0bbvaxw2das8826663z23y0acbdmcvggwdh64ws9jrk56vvsqlpk"))))
6541 (build-system meson-build-system)
6542 (arguments
6543 (list #:phases #~(modify-phases %standard-phases
6544 (add-before 'unpack 'set-HOME
6545 (lambda _
6546 ;; Tests require write access to HOME.
6547 (setenv "HOME" "/tmp"))))))
6548 (native-inputs
6549 (list `(,glib "bin") ; for glib-mkenums and glib-genmarshal
6550 gettext-minimal
6551 gsettings-desktop-schemas
6552 pkg-config
6553 gobject-introspection
6554 gtk-doc/stable
6555 vala))
6556 (inputs
6557 (list cyrus-sasl
6558 glib
6559 gtk+
6560 liboauth
6561 libsoup
6562 libxml2
6563 totem-pl-parser))
6564 (native-search-paths
6565 (list (search-path-specification
6566 (variable "GRL_PLUGIN_PATH")
6567 (files (list (string-append "lib/grilo-"
6568 (version-major+minor version)))))))
6569 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6570 (synopsis "Framework for discovering and browsing media")
6571 (description
6572 "Grilo is a framework focused on making media discovery and browsing easy
6573 for application developers.")
6574 (license license:lgpl2.1+)))
6575
6576 (define-public grilo-plugins
6577 (package
6578 (name "grilo-plugins")
6579 (version "0.3.15")
6580 (source
6581 (origin
6582 (method url-fetch)
6583 (uri (string-append "mirror://gnome/sources/" name "/"
6584 (version-major+minor version) "/"
6585 name "-" version ".tar.xz"))
6586 (sha256
6587 (base32 "0cxbxg7i9qd1pyfjj7c15x9lawvaw5608jk2apcrac7rakcw6645"))))
6588 (build-system meson-build-system)
6589 (native-inputs
6590 (list gettext-minimal
6591 ;; Gstreamer plugins are required for tests.
6592 gst-plugins-good
6593 gst-plugins-bad
6594 `(,glib "bin")
6595 itstool
6596 pkg-config))
6597 (inputs
6598 (list avahi
6599 grilo
6600 gnome-online-accounts
6601 gom
6602 gstreamer
6603 json-glib
6604 avahi
6605 libgdata
6606 libmediaart
6607 libsoup
6608 python-pygobject
6609 totem-pl-parser
6610 tracker
6611 tracker-miners))
6612 (arguments
6613 `(#:glib-or-gtk? #t
6614 ;;Disable lua-factory as it needs missing dependencies
6615 #:configure-flags '("-Denable-lua-factory=no")
6616 #:phases
6617 (modify-phases %standard-phases
6618 (add-before 'configure 'set-shell
6619 (lambda _
6620 (setenv "SHELL" (which "bash"))))
6621 ;; Disable the tracker test that requires the UPower daemon.
6622 (add-before 'configure 'fix-tests
6623 (lambda* (#:key inputs #:allow-other-keys)
6624 (substitute* "tests/tracker3/meson.build"
6625 (("'test_tracker3'.*") "")))))))
6626 (home-page "https://live.gnome.org/Grilo")
6627 (synopsis "Plugins for the Grilo media discovery library")
6628 (description
6629 "Grilo is a framework focused on making media discovery and browsing easy
6630 for application developers. This package provides plugins for common media
6631 discovery protocols.")
6632 (license license:lgpl2.1+)))
6633
6634 (define-public totem
6635 (package
6636 (name "totem")
6637 (version "42.0")
6638 (source
6639 (origin
6640 (method url-fetch)
6641 (uri (string-append "mirror://gnome/sources/totem/"
6642 (version-major version) "/"
6643 "totem-" version ".tar.xz"))
6644 (sha256
6645 (base32 "1az6ay7zhz2naqrzcfldx1yv2ylw1yjx76g3mqrqppwmvcflkw2a"))))
6646 (build-system meson-build-system)
6647 (native-inputs
6648 (list pkg-config
6649 desktop-file-utils
6650 gettext-minimal
6651 gobject-introspection
6652 `(,glib "bin") ;for 'glib-mkenums'
6653 itstool
6654 libxml2
6655 xorg-server-for-tests))
6656 (propagated-inputs
6657 (list dconf))
6658 (inputs
6659 (list gtk+
6660 gdk-pixbuf
6661 atk
6662 cairo
6663 dbus-glib
6664 xorgproto
6665 libxxf86vm
6666 libxtst
6667 libxrandr
6668 libxml2
6669 libsoup
6670 libpeas
6671 librsvg
6672 libhandy
6673 gnome-desktop
6674 gstreamer
6675 gst-plugins-base
6676 gst-plugins-good
6677 gsettings-desktop-schemas
6678 adwaita-icon-theme
6679 python
6680 python-pygobject
6681 totem-pl-parser
6682 grilo
6683 grilo-plugins
6684 vala))
6685 (arguments
6686 (list
6687 #:glib-or-gtk? #t
6688 ;; Disable automatic GStreamer plugin installation via PackageKit and
6689 ;; all that.
6690 #:configure-flags #~(list "-Denable-easy-codec-installation=no"
6691 ;; Do not build .a files for the plugins, it's
6692 ;; completely useless. This saves 2 MiB.
6693 "--default-library" "shared")
6694 #:phases
6695 #~(modify-phases %standard-phases
6696 (add-after 'unpack 'skip-gtk-update-icon-cache
6697 ;; Don't create 'icon-theme.cache'.
6698 (lambda _
6699 (substitute* "meson_post_install.py"
6700 (("gtk-update-icon-cache") "true"))))
6701 (add-before 'install 'disable-cache-generation
6702 (lambda _
6703 (setenv "DESTDIR" "/")))
6704 (add-before 'check 'pre-check
6705 (lambda _
6706 ;; Tests require a running X server.
6707 (system "Xvfb :1 &")
6708 (setenv "DISPLAY" ":1")))
6709 (add-after 'install 'wrap-totem
6710 (lambda* (#:key inputs outputs #:allow-other-keys)
6711 (let ((out (assoc-ref outputs "out"))
6712 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6713 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6714 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6715 (wrap-program (string-append out "/bin/totem")
6716 `("GI_TYPELIB_PATH" ":" suffix (,gi-typelib-path))
6717 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6718 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6719 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6720 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))))))))
6721 (home-page "https://wiki.gnome.org/Apps/Videos")
6722 (synopsis "Simple media player for GNOME based on GStreamer")
6723 (description "Totem is a simple yet featureful media player for GNOME
6724 which can read a large number of file formats.")
6725 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6726 ;; to be used and distributed together with GStreamer and Totem. See
6727 ;; file://COPYING in the source distribution for details.
6728 (license license:gpl2+)))
6729
6730 (define-public rhythmbox
6731 (package
6732 (name "rhythmbox")
6733 (version "3.4.6")
6734 (source (origin
6735 (method url-fetch)
6736 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6737 (version-major+minor version) "/"
6738 "rhythmbox-" version ".tar.xz"))
6739 (sha256
6740 (base32
6741 "0d5hbsdk2p8w567mfzy4kk8xn4d227hrbyy857li3r2mrq884mpr"))))
6742 (build-system meson-build-system)
6743 (arguments
6744 (list
6745 #:glib-or-gtk? #t
6746 #:phases
6747 #~(modify-phases %standard-phases
6748 (add-after 'unpack 'skip-gtk-update-icon-cache
6749 (lambda _
6750 (substitute* "meson.build"
6751 (("gtk_update_icon_cache: true")
6752 "gtk_update_icon_cache: false"))))
6753 (add-after 'install 'wrap-rhythmbox
6754 (lambda* (#:key outputs #:allow-other-keys)
6755 (wrap-program (search-input-file outputs "bin/rhythmbox")
6756 `("GI_TYPELIB_PATH" ":" prefix
6757 (,(getenv "GI_TYPELIB_PATH")))
6758 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
6759 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
6760 `("GRL_PLUGIN_PATH" ":" prefix
6761 (,(getenv "GRL_PLUGIN_PATH")))
6762 `("GUIX_PYTHONPATH" ":" prefix
6763 (,(getenv "GUIX_PYTHONPATH")))))))))
6764 (propagated-inputs
6765 (list dconf))
6766 (native-inputs
6767 (list desktop-file-utils
6768 gettext-minimal
6769 gobject-introspection
6770 `(,glib "bin")
6771 itstool
6772 pkg-config
6773 vala))
6774 (inputs
6775 ;; TODO:
6776 ;; * libgpod
6777 ;; * mx
6778 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6779 ;;clutter
6780 ;;clutter-gtk
6781 ;;clutter-gst
6782 (list adwaita-icon-theme
6783 atk
6784 bash-minimal
6785 brasero
6786 json-glib
6787 gmime
6788 gnome-desktop
6789 grilo
6790 grilo-plugins
6791 gsettings-desktop-schemas
6792 gst-plugins-base
6793 gst-plugins-good
6794 gstreamer
6795 gtk+
6796 libgudev
6797 libnotify
6798 libpeas
6799 libsecret
6800 libmtp
6801 libsoup-minimal-2
6802 libxml2
6803 lirc
6804 pango
6805 python
6806 python-pygobject
6807 tdb
6808 totem-pl-parser))
6809 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6810 (synopsis "Music player for GNOME")
6811 (description "Rhythmbox is a music playing application for GNOME. It
6812 supports playlists, song ratings, and any codecs installed through gstreamer.")
6813 (license license:gpl2+)))
6814
6815 (define-public eog
6816 (package
6817 (name "eog")
6818 (version "42.3")
6819 (source (origin
6820 (method url-fetch)
6821 (uri (string-append "mirror://gnome/sources/" name "/"
6822 (version-major version) "/"
6823 name "-" version ".tar.xz"))
6824 (sha256
6825 (base32
6826 "0fpl8wz1j10r59m20d61b7wmp8ga48dd7svqv1a2ip66ig1b7h9h"))))
6827 (build-system meson-build-system)
6828 (arguments
6829 (list
6830 #:glib-or-gtk? #t
6831 #:configure-flags
6832 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6833 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
6834 #$output "/lib/eog"))
6835 #:phases
6836 #~(modify-phases %standard-phases
6837 (add-after 'unpack 'skip-gtk-update-icon-cache
6838 ;; Don't create 'icon-theme.cache'.
6839 (lambda _
6840 (substitute* "meson.build"
6841 (("gtk_update_icon_cache: true")
6842 "gtk_update_icon_cache: false"))))
6843 (add-after 'install 'wrap-eog
6844 (lambda* (#:key outputs #:allow-other-keys)
6845 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6846 (wrap-program (search-input-file outputs "bin/eog")
6847 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
6848 (propagated-inputs
6849 (list dconf
6850 libhandy)) ;libhandy is required by eog.pc
6851 (native-inputs
6852 (list gettext-minimal
6853 `(,glib "bin")
6854 gobject-introspection
6855 itstool
6856 libxml2
6857 pkg-config))
6858 (inputs
6859 (list adwaita-icon-theme
6860 bash-minimal
6861 exempi
6862 gnome-desktop
6863 gtk
6864 lcms
6865 libexif
6866 libjpeg-turbo
6867 libpeas
6868 libportal
6869 librsvg
6870 shared-mime-info))
6871 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6872 (synopsis "GNOME image viewer")
6873 (description "Eye of GNOME is the GNOME image viewer. It
6874 supports image conversion, rotation, and slideshows.")
6875 (license license:gpl2+)))
6876
6877 (define-public eog-plugins
6878 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6879 ;; $DATA/eog/plugins, where DATA is one of the entries in
6880 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6881 ;; 'XDG_DATA_DIRS' appropriately set.
6882 (package
6883 (name "eog-plugins")
6884 (version "42.1")
6885 (source (origin
6886 (method url-fetch)
6887 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6888 (version-major+minor version) "/"
6889 "eog-plugins-" version ".tar.xz"))
6890 (sha256
6891 (base32
6892 "0prymlrfh66p03va5aj30wazshp7bn80gzcsj9dgsmss2k512wlb"))))
6893 (build-system meson-build-system)
6894 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6895 (synopsis "Extensions for the Eye of GNOME image viewer")
6896 (native-inputs
6897 (list gettext-minimal
6898 pkg-config
6899 python))
6900 (inputs
6901 (list eog
6902 glib
6903 gtk+
6904 libchamplain
6905 libexif
6906 libgdata
6907 libpeas))
6908 (description
6909 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6910 notably:
6911
6912 @itemize
6913 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6914 @item @dfn{Map}, which displays a map of where the picture was taken on the
6915 side panel;
6916 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6917 @end itemize\n")
6918
6919 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6920 ;; long suspicious byte stream that goes to a
6921 ;; ".gresource.eog_postasa_plugin" ELF section.
6922 (license license:gpl2+)))
6923
6924 (define-public libgudev
6925 (package
6926 (name "libgudev")
6927 (version "236")
6928 (source (origin
6929 (method url-fetch)
6930 (uri (string-append "mirror://gnome/sources/" name "/"
6931 version "/" name "-" version ".tar.xz"))
6932 (sha256
6933 (base32
6934 "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
6935 (build-system meson-build-system)
6936 (native-inputs
6937 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6938 ("gobject-introspection" ,gobject-introspection)
6939 ("pkg-config" ,pkg-config)))
6940 (propagated-inputs
6941 (list glib ; in Requires of gudev-1.0.pc
6942 eudev)) ; in Requires.private of gudev-1.0.pc
6943 (inputs
6944 `(("udev" ,eudev)))
6945 (home-page "https://wiki.gnome.org/Projects/libgudev")
6946 (synopsis "GObject bindings for libudev")
6947 (description
6948 "This library provides GObject bindings for libudev. It was originally
6949 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6950 (license license:lgpl2.1+)))
6951
6952 (define-public gvfs
6953 (package
6954 (name "gvfs")
6955 (version "1.50.2")
6956 (source (origin
6957 (method url-fetch)
6958 (uri (string-append "mirror://gnome/sources/gvfs/"
6959 (version-major+minor version) "/"
6960 "gvfs-" version ".tar.xz"))
6961 (sha256
6962 (base32
6963 "0pmc0vda1ksm9l7v64h4bm8qnv16amb7nifgy0882hzg2n62pmq3"))))
6964 (build-system meson-build-system)
6965 (arguments
6966 (list #:glib-or-gtk? #t
6967 #:configure-flags
6968 #~(list "-Dsystemduserunitdir=no"
6969 "-Dtmpfilesdir=no"
6970 ;; Otherwise, the RUNPATH will lack the final path component.
6971 (string-append "-Dc_link_args=-Wl,-rpath="
6972 #$output "/lib/gvfs"))))
6973 (native-inputs
6974 (list `(,glib "bin") ;for glib-genmarshal, etc.
6975 gettext-minimal
6976 gtk-doc/stable
6977 pkg-config
6978 libxslt))
6979 (inputs
6980 (list avahi
6981 docbook-xml-4.2
6982 docbook-xsl
6983 dbus
6984 elogind
6985 fuse-3
6986 gcr
6987 glib
6988 gnome-online-accounts
6989 gsettings-desktop-schemas
6990 libarchive
6991 libbluray
6992 libcap
6993 libcdio-paranoia
6994 libgcrypt
6995 libgdata
6996 libgphoto2
6997 libgudev
6998 libimobiledevice
6999 libmtp
7000 libnfs
7001 libsecret
7002 samba
7003 libsoup
7004 libxml2
7005 openssh
7006 polkit
7007 udisks))
7008 (home-page "https://wiki.gnome.org/gvfs/")
7009 (synopsis "Userspace virtual file system for GIO")
7010 (description
7011 "GVFS is a userspace virtual file system designed to work with the I/O
7012 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS
7013 support to all applications using the GIO API. It also supports exposing the
7014 GVFS mounts to non-GIO applications using FUSE.
7015
7016 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
7017 DAV, and others.")
7018 (license license:lgpl2.0+)))
7019
7020 (define-public gusb-minimal
7021 (package
7022 (name "gusb-minimal")
7023 (version "0.3.5")
7024 (source (origin
7025 (method git-fetch)
7026 (uri (git-reference
7027 (url "https://github.com/hughsie/libgusb")
7028 (commit version)))
7029 (file-name (git-file-name name version))
7030 (sha256
7031 (base32
7032 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
7033 (build-system meson-build-system)
7034 (arguments
7035 `(#:tests? #f ;libusb fails to initialize. Wonder what that is.
7036 #:configure-flags
7037 (cons "-Ddocs=false"
7038 (if ,(%current-target-system)
7039 ;; Introspection data cannot currently be cross-compiled.
7040 '("-Dintrospection=false"
7041 ;; Requires introspection data.
7042 "-Dvapi=false")
7043 '()))))
7044 (native-inputs
7045 (list gobject-introspection pkg-config python vala))
7046 (propagated-inputs
7047 ;; Both of these are required by gusb.pc.
7048 (list glib libusb))
7049 (home-page "https://github.com/hughsie/libgusb")
7050 (synopsis "GLib binding for libusb1")
7051 (description
7052 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
7053 asynchronous control, bulk and interrupt transfers with proper cancellation
7054 and integration into a mainloop. This makes it easy to integrate low level
7055 USB transfers with your high-level application or system daemon.")
7056 (license license:lgpl2.1+)))
7057
7058 (define-public gusb
7059 (package/inherit gusb-minimal
7060 (name "gusb")
7061 (arguments
7062 (substitute-keyword-arguments (package-arguments gusb-minimal)
7063 ((#:configure-flags flags)
7064 `(cons "-Ddocs=true"
7065 (delete "-Ddocs=false" ,flags)))))
7066 (native-inputs
7067 (cons `("gtk-doc" ,gtk-doc/stable)
7068 (package-native-inputs gusb-minimal)))))
7069
7070 (define-public simple-scan
7071 (package
7072 (name "simple-scan")
7073 (version "42.1")
7074 (source
7075 (origin
7076 (method url-fetch)
7077 (uri (string-append "mirror://gnome/sources/simple-scan/"
7078 (version-major version) "/"
7079 "simple-scan-" version ".tar.xz"))
7080 (sha256
7081 (base32 "09i23f8j3knppyxmikzfq9s09xarsgp9sqx9mfyvas8p3ihw16w5"))))
7082 (build-system meson-build-system)
7083 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
7084 (arguments
7085 '(#:glib-or-gtk? #t))
7086 (native-inputs
7087 (list gettext-minimal
7088 itstool
7089 `(,glib "bin") ; glib-compile-schemas, etc.
7090 pkg-config
7091 python
7092 vala
7093 libxml2))
7094 (inputs
7095 (list gtk+
7096 zlib
7097 cairo
7098 colord
7099 gdk-pixbuf
7100 gusb
7101 libhandy
7102 sane-backends))
7103 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
7104 (synopsis "Document and image scanner")
7105 (description
7106 "Document Scanner is an easy-to-use application that lets you connect your
7107 scanner and quickly capture images and documents in an appropriate format. It
7108 supports any scanner for which a suitable SANE driver is available, which is
7109 almost all of them.")
7110 (license license:gpl3+)))
7111
7112 (define-public eolie
7113 (package
7114 (name "eolie")
7115 (version "0.9.101")
7116 (source (origin
7117 (method url-fetch)
7118 (uri (string-append "https://adishatz.org/eolie/eolie-"
7119 version ".tar.xz"))
7120 (sha256
7121 (base32
7122 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
7123 (build-system meson-build-system)
7124 (arguments
7125 `(#:glib-or-gtk? #t
7126 #:phases
7127 (modify-phases %standard-phases
7128 (add-after 'unpack 'skip-gtk-update-icon-cache
7129 ;; Don't create 'icon-theme.cache'.
7130 (lambda _
7131 (substitute* "meson_post_install.py"
7132 (("gtk-update-icon-cache") "true"))
7133 #t))
7134 (add-after 'wrap 'wrap-more
7135 (lambda* (#:key inputs outputs #:allow-other-keys)
7136 (let* ((out (assoc-ref outputs "out"))
7137 ;; These libraries must be on LD_LIBRARY_PATH.
7138 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
7139 "atk" "gtk+" "gsettings-desktop-schemas"
7140 "gobject-introspection"))
7141 (path (string-join
7142 (map (lambda (lib)
7143 (string-append (assoc-ref inputs lib) "/lib"))
7144 libs)
7145 ":")))
7146 (wrap-program (string-append out "/bin/eolie")
7147 `("LD_LIBRARY_PATH" ":" prefix (,path))
7148 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
7149 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
7150 #t)))))
7151 (native-inputs
7152 `(("intltool" ,intltool)
7153 ("itstool" ,itstool)
7154 ("pkg-config" ,pkg-config)
7155 ("python" ,python)
7156 ("glib:bin" ,glib "bin")))
7157 (inputs
7158 `(("gobject-introspection" ,gobject-introspection)
7159 ("glib-networking" ,glib-networking)
7160 ("cairo" ,cairo)
7161 ("gtk+" ,gtk+)
7162 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
7163 ("python" ,python-wrapper)
7164 ("python-dateutil" ,python-dateutil)
7165 ("python-pyfxa" ,python-pyfxa)
7166 ("python-pygobject" ,python-pygobject)
7167 ("python-pycairo" ,python-pycairo)
7168 ("python-pycrypto" ,python-pycrypto)
7169 ("libhandy" ,libhandy)
7170 ("libsecret" ,libsecret)
7171 ("gtkspell3" ,gtkspell3)
7172 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7173 ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
7174 ("webkitgtk" ,webkitgtk)))
7175 (home-page "https://wiki.gnome.org/Apps/Eolie")
7176 (synopsis "Web browser for GNOME")
7177 (description
7178 "Eolie is a new web browser for GNOME. It features Firefox sync support,
7179 a secret password store, an adblocker, and a modern UI.")
7180 (license license:gpl3+)))
7181
7182 (define-public epiphany
7183 (package
7184 (name "epiphany")
7185 (version "42.4")
7186 (source (origin
7187 (method url-fetch)
7188 (uri (string-append "mirror://gnome/sources/epiphany/"
7189 (version-major version) "/"
7190 "epiphany-" version ".tar.xz"))
7191 (sha256
7192 (base32
7193 "0q08ixzgp341g5pq6rfy5q75m9bvddvl8na3qa5v5vi056nkh29p"))))
7194 (build-system meson-build-system)
7195 (arguments
7196 (list
7197 #:glib-or-gtk? #t
7198 #:phases
7199 #~(modify-phases %standard-phases
7200 (add-after 'unpack 'skip-gtk-update-icon-cache
7201 ;; Don't create 'icon-theme.cache'.
7202 (lambda _
7203 (substitute* "post_install.py"
7204 (("gtk-update-icon-cache") "true"))))
7205 (add-after 'unpack 'disable-failing-tests
7206 (lambda _
7207 (substitute* "tests/meson.build"
7208 ;; embed_shell fails, because webkitgtk apparently no longer
7209 ;; supports overriding the ftp schema web_app_utils fails due
7210 ;; to missing network access.
7211 (("(embed_shell|web_app_utils)_test,")
7212 "find_program('sh'), args: ['-c', 'exit 77'],"))))
7213 (add-before 'check 'pre-check
7214 (lambda _
7215 ;; Tests require a running X server.
7216 (system "Xvfb :1 &")
7217 (setenv "DISPLAY" ":1"))))
7218 #:configure-flags
7219 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
7220 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7221 #$output "/lib/epiphany")
7222 "-Dsoup2=disabled"))) ;use libsoup 3
7223 (propagated-inputs (list dconf))
7224 (native-inputs
7225 (list desktop-file-utils ; for update-desktop-database
7226 gettext-minimal
7227 `(,glib "bin") ; for glib-mkenums
7228 itstool
7229 pkg-config
7230 libxml2
7231 xorg-server-for-tests))
7232 (inputs
7233 (list avahi
7234 gcr
7235 glib-networking
7236 gnome-desktop
7237 gsettings-desktop-schemas
7238 iso-codes
7239 json-glib
7240 libarchive
7241 libdazzle
7242 libhandy
7243 libnotify
7244 libportal
7245 librsvg ; for loading SVG files
7246 libsecret
7247 libsoup
7248 libxslt
7249 nettle ; for hogweed
7250 sqlite
7251 webkitgtk))
7252 (home-page "https://wiki.gnome.org/Apps/Web")
7253 (synopsis "GNOME web browser")
7254 (description
7255 "Epiphany is a GNOME web browser targeted at non-technical users. Its
7256 principles are simplicity and standards compliance.")
7257 (license license:gpl2+)))
7258
7259 (define-public d-feet
7260 (package
7261 (name "d-feet")
7262 (version "0.3.16")
7263 (source (origin
7264 (method url-fetch)
7265 (uri (string-append "mirror://gnome/sources/" name "/"
7266 (version-major+minor version) "/"
7267 name "-" version ".tar.xz"))
7268 (sha256
7269 (base32
7270 "1jqw5ndpgyb0zxh0g21ai1911lfrm56vz18xbccfqm4sk95wwcw7"))))
7271 (build-system meson-build-system)
7272 (arguments
7273 (list
7274 #:glib-or-gtk? #t
7275 #:phases
7276 #~(modify-phases %standard-phases
7277 (add-before 'check 'pre-check
7278 (lambda _
7279 ;; The test suite requires a running X server.
7280 (system "Xvfb :1 &")
7281 (setenv "DISPLAY" ":1")))
7282 (add-before 'install 'disable-gtk-update-icon-cache
7283 (lambda _
7284 (setenv "DESTDIR" "/")))
7285 (add-after 'install 'wrap-program
7286 (lambda* (#:key outputs #:allow-other-keys)
7287 (wrap-program (search-input-file outputs "bin/d-feet")
7288 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
7289 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
7290 (native-inputs
7291 (list `(,glib "bin")
7292 intltool
7293 itstool
7294 libxml2
7295 pkg-config
7296 python-pep8
7297 xorg-server-for-tests))
7298 (inputs
7299 (list gobject-introspection
7300 gtk+
7301 python-wrapper
7302 python-pygobject))
7303 (home-page "https://wiki.gnome.org/Apps/DFeet")
7304 (synopsis "D-Bus debugger")
7305 (description
7306 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
7307 of running programs and invoke methods on those interfaces.")
7308 (license license:gpl2+)))
7309
7310 (define-public yelp-xsl
7311 (package
7312 (name "yelp-xsl")
7313 (version "41.0")
7314 (source
7315 (origin
7316 (method url-fetch)
7317 (uri
7318 (string-append "mirror://gnome/sources/" name "/"
7319 (version-major version) "/"
7320 name "-" version ".tar.xz"))
7321 (sha256
7322 (base32 "19d46rkajvr0f04560vlrzwvac88x5j8ilvzwkawbn5vjg069kf8"))))
7323 (build-system gnu-build-system)
7324 (arguments
7325 `(#:configure-flags
7326 (list
7327 "--enable-doc")))
7328 (native-inputs
7329 `(("ducktype" ,mallard-ducktype)
7330 ("gettext" ,gettext-minimal)
7331 ("intltool" ,intltool)
7332 ("itstool" ,itstool)
7333 ("xmllint" ,libxml2)
7334 ("xsltproc" ,libxslt)))
7335 (synopsis "XSL stylesheets for Yelp")
7336 (description "Yelp-XSL is a collection of programs and data files to help
7337 you build, maintain, and distribute documentation. It provides XSLT stylesheets
7338 that can be built upon for help viewers and publishing systems. These
7339 stylesheets output JavaScript and CSS content, and reference images
7340 provided by yelp-xsl. It also redistributes copies of the jQuery and
7341 jQuery.Syntax JavaScript libraries.")
7342 (home-page "https://wiki.gnome.org/Apps/Yelp")
7343 (license
7344 (list
7345 ;; XSLT
7346 license:gpl2+
7347 ;; Images
7348 license:lgpl2.1+
7349 ;; JavaScript
7350 license:expat))))
7351
7352 (define-public yelp
7353 (package
7354 (name "yelp")
7355 (version "42.1")
7356 (source (origin
7357 (method url-fetch)
7358 (uri (string-append "mirror://gnome/sources/" name "/"
7359 (version-major version) "/"
7360 name "-" version ".tar.xz"))
7361 (sha256
7362 (base32
7363 "0h9vf4fx056imjf8ibmn03wg1c3hniipy1nsm2jqi62lp1m19c95"))))
7364 (build-system glib-or-gtk-build-system)
7365 (native-inputs
7366 (list `(,glib "bin") ; for glib-genmarshal, etc.
7367 intltool
7368 itstool
7369 pkg-config))
7370 (propagated-inputs
7371 (list dconf))
7372 (inputs
7373 (list gsettings-desktop-schemas
7374 libhandy
7375 libxslt
7376 sqlite
7377 webkitgtk
7378 yelp-xsl))
7379 (home-page "https://wiki.gnome.org/Apps/Yelp")
7380 (synopsis "GNOME help browser")
7381 (description
7382 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
7383 man, info, and HTML documents. It can locate documents according to the
7384 freedesktop.org help system specification.")
7385 (license license:gpl2+)))
7386
7387 (define-public yelp-tools
7388 (package
7389 (name "yelp-tools")
7390 (version "3.32.2")
7391 (source
7392 (origin
7393 (method url-fetch)
7394 (uri
7395 (string-append "mirror://gnome/sources/" name "/"
7396 (version-major+minor version) "/"
7397 name "-" version ".tar.xz"))
7398 (sha256
7399 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
7400 (build-system gnu-build-system)
7401 (native-inputs
7402 (list pkg-config))
7403 (inputs
7404 (list yelp-xsl))
7405 (propagated-inputs
7406 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
7407 `(("itstool" ,itstool)
7408 ("xmllint" ,libxml2)
7409 ("xsltproc" ,libxslt)))
7410 (synopsis "Yelp documentation tools")
7411 (description
7412 "Yelp-tools is a collection of scripts and build utilities to help create,
7413 manage, and publish documentation for Yelp and the web. Most of the heavy
7414 lifting is done by packages like yelp-xsl and itstool. This package just
7415 wraps things up in a developer-friendly way.")
7416 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
7417 (license license:gpl2+)))
7418
7419 (define-public libgee
7420 (package
7421 (name "libgee")
7422 (version "0.20.5")
7423 (source (origin
7424 (method url-fetch)
7425 (uri (string-append "mirror://gnome/sources/libgee/"
7426 (version-major+minor version) "/"
7427 "libgee-" version ".tar.xz"))
7428 (sha256
7429 (base32
7430 "060mbj6ihca315a6wqj47mfzm2881azwm5bl0vwjg9ymay4km1ii"))))
7431 (build-system gnu-build-system)
7432 (arguments
7433 (list
7434 #:phases
7435 #~(modify-phases %standard-phases
7436 (add-after 'unpack 'fix-introspection-install-dir
7437 (lambda _
7438 (substitute* "gee/Makefile.in"
7439 (("@INTROSPECTION_GIRDIR@")
7440 (string-append #$output "/share/gir-1.0/"))
7441 (("@INTROSPECTION_TYPELIBDIR@")
7442 (string-append #$output "/lib/girepository-1.0/"))))))))
7443 (native-inputs
7444 (list `(,glib "bin") pkg-config))
7445 (inputs
7446 (list glib gobject-introspection))
7447 (home-page "https://wiki.gnome.org/Projects/Libgee")
7448 (synopsis "GObject collection library")
7449 (description
7450 "Libgee is a utility library providing GObject-based interfaces and
7451 classes for commonly used data structures.")
7452 (license license:lgpl2.1+)))
7453
7454 (define-public gexiv2
7455 (package
7456 (name "gexiv2")
7457 (version "0.14.0")
7458 (source (origin
7459 (method url-fetch)
7460 (uri (string-append "mirror://gnome/sources/" name "/"
7461 (version-major+minor version) "/"
7462 name "-" version ".tar.xz"))
7463 (sha256
7464 (base32
7465 "17nnsslj2wpizpx742w5lxdzcz5mx6jmsqcrli7zddi0zyk7k0p5"))))
7466 (build-system meson-build-system)
7467 (arguments
7468 (list
7469 #:imported-modules `(,@%meson-build-system-modules
7470 (guix build python-build-system))
7471 #:modules '((guix build meson-build-system)
7472 ((guix build python-build-system) #:prefix python:)
7473 (guix build utils))
7474 #:configure-flags
7475 #~(list (string-append "-Dpython3_girdir="
7476 (python:site-packages %build-inputs %outputs)
7477 "/gi/overrides"))))
7478 (native-inputs
7479 (list gcr
7480 `(,glib "bin")
7481 pkg-config
7482 python
7483 python-pygobject
7484 vala))
7485 (propagated-inputs
7486 ;; Listed in "Requires" section of gexiv2.pc
7487 (list exiv2))
7488 (inputs
7489 (list glib
7490 gobject-introspection))
7491 (home-page "https://wiki.gnome.org/Projects/gexiv2")
7492 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
7493 (description
7494 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
7495 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
7496 metadata in photo and video files of various formats.")
7497 (license license:gpl2+)))
7498
7499 (define-public shotwell
7500 (package
7501 (name "shotwell")
7502 (version "0.31.5")
7503 (source (origin
7504 (method url-fetch)
7505 (uri (string-append "mirror://gnome/sources/shotwell/"
7506 (version-major+minor version) "/"
7507 "shotwell-" version ".tar.xz"))
7508 (sha256
7509 (base32
7510 "06awlix23y1cd89n6v9vip48cg08fjq8v6zaw38k5clrrv38y11v"))))
7511 (build-system meson-build-system)
7512 (arguments
7513 '(#:glib-or-gtk? #t
7514 #:phases
7515 (modify-phases %standard-phases
7516 (add-after 'unpack 'skip-gtk-update-icon-cache
7517 (lambda _
7518 (substitute* "build-aux/meson/postinstall.py"
7519 (("gtk-update-icon-cache") (which "true"))
7520 (("update-desktop-database") (which "true"))))))))
7521 (propagated-inputs
7522 (list dconf))
7523 (native-inputs
7524 (list gettext-minimal
7525 `(,glib "bin")
7526 itstool
7527 pkg-config
7528 python
7529 vala-next))
7530 (inputs
7531 (list gcr
7532 gexiv2
7533 gst-plugins-base
7534 gstreamer
7535 json-glib
7536 libgdata
7537 libgee
7538 libgphoto2
7539 libgudev
7540 libraw
7541 libsecret
7542 libwebp
7543 libxml2
7544 sqlite
7545 webkitgtk))
7546 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7547 (synopsis "Photo manager for GNOME 3")
7548 (description
7549 "Shotwell is a digital photo manager designed for the GNOME desktop
7550 environment. It allows you to import photos from disk or camera, organize
7551 them by keywords and events, view them in full-window or fullscreen mode, and
7552 share them with others via social networking and more.")
7553 (license license:lgpl2.1+)))
7554
7555 (define-public file-roller
7556 (package
7557 (name "file-roller")
7558 (version "3.42.0")
7559 (source (origin
7560 (method url-fetch)
7561 (uri (string-append "mirror://gnome/sources/file-roller/"
7562 (version-major+minor version) "/"
7563 "file-roller-" version ".tar.xz"))
7564 (sha256
7565 (base32
7566 "1iq24g2z7kf1a6kn9asp96lc59r8pxxjvcmm5r7zy47cadnqwhqw"))))
7567 (build-system meson-build-system)
7568 (arguments
7569 (list #:glib-or-gtk? #t
7570 #:phases #~(modify-phases %standard-phases
7571 (add-before 'install 'disable-gtk-update-icon-cache
7572 (lambda _
7573 (setenv "DESTDIR" "/"))))))
7574 (native-inputs
7575 (list desktop-file-utils
7576 gettext-minimal
7577 `(,glib "bin")
7578 itstool
7579 pkg-config
7580 python))
7581 ;; TODO: Add libnautilus.
7582 (inputs
7583 (list gtk+
7584 json-glib
7585 libarchive
7586 libhandy
7587 libnotify
7588 nettle
7589 libxml2))
7590 (synopsis "Graphical archive manager for GNOME")
7591 (description "File Roller is an archive manager for the GNOME desktop
7592 environment that allows users to view, unpack, and create compressed archives
7593 such as gzip tarballs.")
7594 (home-page "http://fileroller.sourceforge.net/")
7595 (license license:gpl2+)))
7596
7597 (define-public gnome-session
7598 (package
7599 (name "gnome-session")
7600 (version "42.0")
7601 (source (origin
7602 (method url-fetch)
7603 (uri (string-append "mirror://gnome/sources/" name "/"
7604 (version-major version) "/"
7605 name "-" version ".tar.xz"))
7606 (patches (search-patches "gnome-session-support-elogind.patch"))
7607 (sha256
7608 (base32
7609 "1alwjqr36rd0s132qs2clwnxgilcbylps6lm41lr50mn782hdjiw"))))
7610 (arguments
7611 `(#:glib-or-gtk? #t
7612 #:phases
7613 (modify-phases %standard-phases
7614 (add-after 'install 'wrap-gnome-session
7615 (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
7616 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7617 (wrap-program (search-input-file outputs "bin/gnome-session")
7618 `("PATH" ":" prefix
7619 (,(dirname (search-input-file (or native-inputs inputs)
7620 "bin/gdbus"))))))))
7621 #:configure-flags
7622 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7623 "-Dman=false" ; FIXME: disabled because of docbook validation error
7624 "-Delogind=true"
7625 "-Dsystemd=false"
7626 "-Dsystemd_session=disable"
7627 "-Dsystemd_journal=false")))
7628 (build-system meson-build-system)
7629 (native-inputs
7630 (list docbook-xml
7631 docbook-xsl
7632 `(,glib "bin") ; for glib-compile-schemas, etc.
7633 intltool
7634 libxml2 ;for 'XML_CATALOG_FILES'
7635 libxslt
7636 pkg-config
7637 xmlto))
7638 (inputs
7639 (list elogind
7640 gnome-desktop
7641 gsettings-desktop-schemas
7642 gtk+
7643 json-glib
7644 libsm
7645 libxcomposite
7646 libxtst
7647 mesa
7648 upower
7649 xtrans))
7650 (synopsis "Session manager for GNOME")
7651 (description
7652 "This package contains the GNOME session manager, as well as a
7653 configuration program to choose applications starting on login.")
7654 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7655 (license license:gpl2+)))
7656
7657 (define-public gjs
7658 (package
7659 (name "gjs")
7660 (version "1.72.2")
7661 (source (origin
7662 (method url-fetch)
7663 (uri (string-append "mirror://gnome/sources/" name "/"
7664 (version-major+minor version) "/"
7665 name "-" version ".tar.xz"))
7666 (sha256
7667 (base32
7668 "0xrrv9lsi087yb9yf146a1aarf5yh6rf4jw9blx30zasvjdkgvnx"))
7669 (modules '((guix build utils)))
7670 (snippet
7671 '(begin
7672 (substitute* "installed-tests/scripts/testCommandLine.sh"
7673 (("Valentín") "")
7674 (("☭") ""))))))
7675 (build-system meson-build-system)
7676 (arguments
7677 '(#:configure-flags '("-Dinstalled_tests=false")
7678 #:phases
7679 (modify-phases %standard-phases
7680 (add-before 'check 'pre-check
7681 (lambda _
7682 ;; The test suite requires a running X server.
7683 (system "Xvfb :1 &")
7684 (setenv "DISPLAY" ":1")
7685
7686 ;; For the missing /etc/machine-id.
7687 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
7688 (native-inputs
7689 (list `(,glib "bin") ;for glib-compile-resources
7690 pkg-config
7691 libxml2
7692 ;; For testing
7693 dbus
7694 dconf ;required to properly store settings
7695 util-linux
7696 xorg-server-for-tests))
7697 (propagated-inputs
7698 ;; These are all in the Requires.private field of gjs-1.0.pc.
7699 (list cairo gobject-introspection mozjs-91))
7700 (inputs
7701 (list gtk+ readline))
7702 (synopsis "Javascript bindings for GNOME")
7703 (home-page "https://wiki.gnome.org/Gjs")
7704 (description
7705 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7706 javascript engine and the GObject introspection framework.")
7707 (license license:gpl2+)))
7708
7709 (define-public gedit
7710 (package
7711 (name "gedit")
7712 (version "42.2")
7713 (source (origin
7714 (method url-fetch)
7715 (uri (string-append "mirror://gnome/sources/" name "/"
7716 (version-major version) "/"
7717 name "-" version ".tar.xz"))
7718 (sha256
7719 (base32
7720 "1jlgzihi4ywvlr4xj2vbnnxzar8j3mwj0jcn8jp6dh0a3w8jjqiw"))))
7721 (build-system meson-build-system)
7722 (arguments
7723 (list
7724 #:glib-or-gtk? #t
7725 #:configure-flags
7726 ;; Otherwise, the RUNPATH will lack the final path component.
7727 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7728 #$output "/lib/gedit"))
7729 #:phases
7730 #~(modify-phases %standard-phases
7731 (add-after 'unpack 'skip-gtk-update-icon-cache
7732 ;; Don't create 'icon-theme.cache'.
7733 (lambda _
7734 (substitute* "build-aux/meson/post_install.py"
7735 (("gtk-update-icon-cache") (which "true")))))
7736 (add-after 'unpack 'do-not-invoke-git
7737 (lambda* (#:key inputs #:allow-other-keys)
7738 (substitute* "meson.build"
7739 ((".*git.*") ""))))
7740 (add-after 'install 'wrap-gedit
7741 (lambda* (#:key outputs #:allow-other-keys)
7742 (wrap-program (search-input-file outputs "bin/gedit")
7743 ;; For plugins.
7744 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
7745 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
7746 ;; For language-specs.
7747 `("XDG_DATA_DIRS" ":" prefix
7748 (,(string-append #$(this-package-input "gtksourceview")
7749 "/share")))))))))
7750 (propagated-inputs
7751 (list dconf))
7752 (native-inputs
7753 (list desktop-file-utils ;for update-desktop-database
7754 `(,glib "bin") ;for glib-mkenums, etc.
7755 gobject-introspection
7756 intltool
7757 itstool
7758 libxml2
7759 pkg-config
7760 python
7761 vala))
7762 (inputs
7763 (list adwaita-icon-theme
7764 bash-minimal
7765 glib
7766 gsettings-desktop-schemas
7767 gspell
7768 gtk+
7769 gtksourceview-4
7770 libpeas
7771 libsoup
7772 python
7773 python-pygobject))
7774 (home-page "https://wiki.gnome.org/Apps/Gedit")
7775 (synopsis "GNOME text editor")
7776 (description "While aiming at simplicity and ease of use, gedit is a
7777 powerful general purpose text editor.")
7778 (license license:gpl2+)))
7779
7780 (define-public zenity
7781 (package
7782 (name "zenity")
7783 (version "3.43.0")
7784 (source (origin
7785 (method url-fetch)
7786 (uri (string-append "mirror://gnome/sources/zenity/"
7787 (version-major+minor version) "/"
7788 "zenity-" version ".tar.xz"))
7789 (sha256
7790 (base32
7791 "0czq2vx636xbvg7zbdqkxq41zgm7v1h048awy0cgls0q1hgcmmxh"))))
7792 (build-system meson-build-system)
7793 (arguments
7794 (list #:phases #~(modify-phases %standard-phases
7795 (add-after 'unpack 'disable-gtk-update-icon-cache
7796 ;; The gtk-update-icon-cache tool is only run when
7797 ;; DESTDIR is unset.
7798 (lambda _
7799 (setenv "DESTDIR" "/"))))))
7800 (native-inputs (list gettext-minimal itstool pkg-config))
7801 (inputs (list gtk+))
7802 (synopsis "Display graphical dialog boxes from shell scripts")
7803 (home-page "https://www.gnome.org")
7804 (description
7805 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7806 to display dialog boxes from the commandline and shell scripts.")
7807 (license license:lgpl2.0+)))
7808
7809 (define-public mutter
7810 (package
7811 (name "mutter")
7812 (version "42.4")
7813 (source (origin
7814 (method url-fetch)
7815 (uri (string-append "mirror://gnome/sources/" name "/"
7816 (version-major version) "/"
7817 name "-" version ".tar.xz"))
7818 (sha256
7819 (base32
7820 "0h1ak3201mdc2qbf67fhcn801ddp33hm0f0c52zis1l7s6ipyb62"))))
7821 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7822 ;; versions of cogl and clutter. As a result, many of the inputs,
7823 ;; propagated-inputs, and configure flags used in cogl and clutter are
7824 ;; needed here as well.
7825 (build-system meson-build-system)
7826 (arguments
7827 (list
7828 #:imported-modules `(,@%meson-build-system-modules
7829 (guix build syscalls))
7830 #:modules '((guix build meson-build-system)
7831 (guix build syscalls)
7832 (guix build utils)
7833 (ice-9 match))
7834 #:glib-or-gtk? #t
7835 #:configure-flags
7836 #~(list
7837 ;; Otherwise, the RUNPATH will lack the final path component.
7838 (string-append "-Dc_link_args=-Wl,-rpath="
7839 #$output "/lib:"
7840 #$output "/lib/mutter-9")
7841 ;; Disable systemd support.
7842 "-Dsystemd=false"
7843 ;; The following flags are needed for the bundled clutter
7844 (string-append "-Dxwayland_path="
7845 (search-input-file %build-inputs "bin/Xwayland"))
7846 ;; the remaining flags are needed for the bundled cogl
7847 (string-append "-Dopengl_libname="
7848 (search-input-file %build-inputs "lib/libGL.so"))
7849 (string-append "-Dgles2_libname="
7850 (search-input-file %build-inputs "lib/libGLESv2.so"))
7851 "-Degl_device=true" ;false by default
7852 "-Dwayland_eglstream=true") ;false by default
7853 #:test-options '(list "--verbose")
7854 #:phases
7855 #~(modify-phases %standard-phases
7856 (add-after 'unpack 'adjust-runpath-linker-directives
7857 (lambda _
7858 ;; By default Mutter uses RPATH instead of RUNPATH, which our
7859 ;; customized linker script makes use of. Some libraries are
7860 ;; also installed under lib/mutter-10 and need to be added to
7861 ;; the RUNPATH.
7862 (substitute* "meson.build"
7863 (("'-Wl,--disable-new-dtags'")
7864 (string-append "'-Wl,-rpath=" #$output "/lib/mutter-10'")))))
7865 (add-after 'unpack 'patch-dlopen-calls
7866 (lambda* (#:key inputs #:allow-other-keys)
7867 (substitute* "src/wayland/meta-wayland-egl-stream.c"
7868 (("libnvidia-egl-wayland.so.1")
7869 (search-input-file inputs "lib/libnvidia-egl-wayland.so.1")))))
7870 (add-before 'configure 'set-udev-dir
7871 (lambda _
7872 (setenv "PKG_CONFIG_UDEV_UDEVDIR"
7873 (string-append #$output "/lib/udev"))))
7874 (add-after 'unpack 'disable-problematic-tests
7875 (lambda _
7876 ;; The native-headless test hangs due to attempting to use audio,
7877 ;; unavailable in the container.
7878 ;; Note: the following sed expression deletes the whole test(...)
7879 ;; expression paragraph. For an explanation, see: info '(sed)
7880 ;; Multiline techniques'.
7881 (invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//"
7882 "-i" "src/tests/meson.build")
7883 ;; Timeline tests may unexpectedly fail on missed frames, so
7884 ;; let's disable them as well.
7885 ;; See <https://gitlab.gnome.org/GNOME/mutter/-/issues/2125>
7886 (substitute* "src/tests/clutter/conform/meson.build"
7887 (("'timeline.*',") ""))))
7888 (replace 'check
7889 (lambda* (#:key tests? test-options parallel-tests?
7890 #:allow-other-keys)
7891 (when tests?
7892 ;; Setup (see the 'test-mutter' CI target at
7893 ;; https://gitlab.gnome.org/GNOME/mutter/-/raw/main/.gitlab-ci.yml).
7894 (setenv "HOME" "/tmp")
7895 (setenv "XDG_RUNTIME_DIR" (string-append (getcwd)
7896 "/runtime-dir"))
7897 (mkdir (getenv "XDG_RUNTIME_DIR"))
7898 (chmod (getenv "XDG_RUNTIME_DIR") #o700)
7899
7900 (setenv "GSETTINGS_SCHEMA_DIR" "data")
7901 (setenv "MUTTER_DEBUG_DUMMY_MODE_SPECS" "800x600@10.0")
7902 (setenv "PIPEWIRE_DEBUG" "2")
7903 (setenv "PIPEWIRE_LOG" "meson-logs/pipewire.log")
7904 (setenv "XVFB_SERVER_ARGS" "+iglx -noreset")
7905 (setenv "G_SLICE" "always-malloc")
7906 (setenv "MALLOC_CHECK" "3")
7907 (setenv "NO_AT_BRIDGE" "1")
7908 ;; This is needed, otherwise the "mutter:core+mutter/unit /
7909 ;; anonymous-file" test would fail (see:
7910 ;; https://gitlab.gnome.org/GNOME/mutter/-/issues/2017).
7911 (setenv "CI_JOB_ID" "1")
7912
7913 (invoke "glib-compile-schemas" (getenv "GSETTINGS_SCHEMA_DIR"))
7914 (mkdir-p (getenv "XDG_RUNTIME_DIR"))
7915 (chmod (getenv "XDG_RUNTIME_DIR") #o755)
7916 (invoke "pipewire" "--version") ;check for pipewire
7917 (system "pipewire &") ;always returns 0 due to forking
7918
7919 (setenv "MESON_TESTTHREADS"
7920 (if parallel-tests?
7921 (number->string (parallel-job-count))
7922 "1"))
7923 (match (primitive-fork)
7924 (0 ;child process
7925 (set-child-subreaper!)
7926 ;; Use tini so that signals are properly handled and
7927 ;; doubly-forked processes get reaped; otherwise,
7928 ;; python-dbusmock would waste time polling for the dbus
7929 ;; processes it spawns to be reaped, in vain.
7930 (apply execlp "tini" "--"
7931 "dbus-run-session" "--"
7932 "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
7933 "meson" "test" "-t" "0" "--print-errorlogs"
7934 test-options))
7935 (pid
7936 (match (waitpid pid)
7937 ((_ . status)
7938 (unless (zero? status)
7939 (error "`meson test' exited with status"
7940 status))))))))))))
7941 (native-inputs
7942 (list desktop-file-utils ;for update-desktop-database
7943 `(,glib "bin") ;for glib-compile-schemas, etc.
7944 gobject-introspection
7945 intltool
7946 pkg-config
7947 xvfb-run
7948 ;; For git build
7949 autoconf
7950 automake
7951 libtool
7952 wayland-protocols-next
7953 ;; For tests.
7954 ;; Warnings are configured to be fatal during the tests; add an icon
7955 ;; theme to please libxcursor.
7956 adwaita-icon-theme
7957 libxcursor ;for XCURSOR_PATH
7958 pipewire-0.3
7959 python
7960 python-dbus
7961 python-dbusmock
7962 tini)) ;acting as init (zombie reaper)
7963 (propagated-inputs
7964 (list gsettings-desktop-schemas-next ;required by libmutter.pc
7965 gtk+ ;required by libmutter.pc
7966 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7967 atk
7968 cairo
7969 eudev
7970 gdk-pixbuf
7971 glib
7972 json-glib
7973 libinput
7974 libx11
7975 libxcomposite
7976 libxcvt
7977 libxdamage
7978 libxext
7979 libxfixes
7980 libxkbcommon
7981 libxml2
7982 libxrandr
7983 mesa
7984 pango
7985 xinput))
7986 (inputs
7987 (list egl-wayland ;for wayland-eglstream-protocols
7988 elogind
7989 gnome-desktop
7990 gnome-settings-daemon
7991 graphene
7992 libcanberra
7993 libgudev
7994 libice
7995 libsm
7996 libwacom
7997 libxkbfile
7998 libxrandr
7999 libxtst
8000 pipewire-0.3
8001 startup-notification
8002 sysprof
8003 upower
8004 xkeyboard-config
8005 xorg-server-xwayland
8006 zenity))
8007 (synopsis "Window and compositing manager")
8008 (home-page "https://www.gnome.org")
8009 (description
8010 "Mutter is a window and compositing manager that displays and manages your
8011 desktop via OpenGL. Mutter combines a sophisticated display engine using the
8012 Clutter toolkit with solid window-management logic inherited from the Metacity
8013 window manager.")
8014 (license license:gpl2+)))
8015
8016 (define-public gnome-online-accounts
8017 (package
8018 (name "gnome-online-accounts")
8019 (version "3.45.2")
8020 (source (origin
8021 (method url-fetch)
8022 (uri (string-append "mirror://gnome/sources/" name "/"
8023 (version-major+minor version) "/"
8024 name "-" version ".tar.xz"))
8025 (sha256
8026 (base32
8027 "15zzzndbfba8a497vxb6cmy1y22l3lfn4sx9s9r59kwzd83i6fxn"))))
8028 (build-system meson-build-system)
8029 (arguments
8030 (list
8031 #:glib-or-gtk? #t
8032 #:phases
8033 #~(modify-phases %standard-phases
8034 (add-before 'install 'disable-gtk-update-icon-cache
8035 (lambda _
8036 (setenv "DESTDIR" "/"))))))
8037 (native-inputs
8038 (list gettext-minimal
8039 `(,glib "bin") ; for glib-compile-schemas, etc.
8040 gobject-introspection
8041 libxslt
8042 pkg-config
8043 vala))
8044 (propagated-inputs
8045 (list glib ; required by goa-1.0.pc
8046 gtk+)) ; required by goa-backend-1.0.pc
8047 (inputs
8048 (list docbook-xsl
8049 gcr
8050 json-glib
8051 libsecret
8052 mit-krb5
8053 rest-next
8054 webkitgtk))
8055 (synopsis "Single sign-on framework for GNOME")
8056 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
8057 (description
8058 "GNOME Online Accounts provides interfaces so that applications and
8059 libraries in GNOME can access the user's online accounts. It has providers
8060 for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare,
8061 Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
8062 (license license:lgpl2.0+)))
8063
8064 (define-public gnome-online-accounts-3.44
8065 (package
8066 (inherit gnome-online-accounts)
8067 (name "gnome-online-accounts")
8068 (version "3.44.0")
8069 (source (origin
8070 (method url-fetch)
8071 (uri (string-append "mirror://gnome/sources/" name "/"
8072 (version-major+minor version) "/"
8073 name "-" version ".tar.xz"))
8074 (sha256
8075 (base32
8076 "0hkkxa3zqyl0i4kw1p3ak4alwxw4wydh9al6fzwbcdgl0r0ms79q"))))
8077 (build-system glib-or-gtk-build-system)
8078 (arguments (substitute-keyword-arguments
8079 (strip-keyword-arguments
8080 '(#:glib-or-gtk?)
8081 (package-arguments gnome-online-accounts))
8082 ((#:phases phases)
8083 #~(modify-phases #$phases
8084 (delete 'disable-gtk-update-icon-cache)))))
8085 (inputs (modify-inputs (package-inputs gnome-online-accounts)
8086 (replace "rest" rest)
8087 (replace "webkitgtk" webkitgtk-with-libsoup2)))))
8088
8089 (define-public evolution-data-server
8090 (package
8091 (name "evolution-data-server")
8092 (version "3.46.0")
8093 (source
8094 (origin
8095 (method url-fetch)
8096 (uri (string-append "mirror://gnome/sources/" name "/"
8097 (version-major+minor version) "/"
8098 name "-" version ".tar.xz"))
8099 (sha256
8100 (base32 "1aydynpc9qx2a5xlrvc3xzfq3d3rhf15mqr8m6splgqqb84jiyp5"))))
8101 (build-system cmake-build-system)
8102 (arguments
8103 (list
8104 #:configure-flags
8105 #~(let* ((lib (string-append #$output "/lib"))
8106 (runpaths (map (lambda (s)
8107 (string-append lib "/evolution-data-server/" s))
8108 '("addressbook-backends" "calendar-backends"
8109 "camel-providers" "credential-modules"
8110 "registry-modules"))))
8111 (list "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
8112 "-DENABLE_VALA_BINDINGS=ON"
8113 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
8114 (string-append lib "/evolution-data-server;")
8115 (string-join runpaths ";"))
8116 "-DENABLE_INTROSPECTION=ON" ;required for Vala bindings
8117 "-DENABLE_OAUTH2_WEBKITGTK4=OFF" ;requires webkitgtk-next
8118 "-DWITH_PHONENUMBER=ON"))
8119 #:phases
8120 #~(modify-phases %standard-phases
8121 (add-after 'unpack 'disable-failing-tests
8122 (lambda _
8123 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
8124 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
8125 (delete-file-recursively "tests/book-migration")
8126 (substitute* "tests/CMakeLists.txt"
8127 (("add_subdirectory\\(book-migration\\)") ""))))
8128 (add-after 'unpack 'patch-paths
8129 (lambda _
8130 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
8131 "tests/libedata-book/data-test-utils.c"
8132 "tests/libedata-book/test-book-cache-utils.c"
8133 "tests/libedata-cal/test-cal-cache-utils.c")
8134 (("/bin/rm") (which "rm")))))
8135 (add-before 'configure 'dont-override-rpath
8136 (lambda _
8137 (substitute* "CMakeLists.txt"
8138 ;; CMakeLists.txt hard-codes runpath to just the libdir.
8139 ;; Remove it so the configure flag is respected.
8140 (("SET\\(CMAKE_INSTALL_RPATH .*") "")))))))
8141 (native-inputs
8142 (list `(,glib "bin") ; for glib-mkenums, etc.
8143 gobject-introspection
8144 gperf
8145 gsettings-desktop-schemas
8146 intltool
8147 pkg-config
8148 protobuf
8149 python-wrapper
8150 vala))
8151 (propagated-inputs
8152 ;; These are all in the Requires field of .pc files.
8153 (list glib
8154 gtk
8155 gtk+
8156 json-glib
8157 libical
8158 libsecret
8159 libsoup
8160 nss
8161 sqlite))
8162 (inputs
8163 (list bdb
8164 boost
8165 gcr
8166 gnome-online-accounts
8167 json-glib
8168 libcanberra
8169 libgweather4
8170 libphonenumber
8171 mit-krb5
8172 openldap
8173 pango-next ;remove after it's the default
8174 webkitgtk))
8175 (synopsis "Store address books and calendars")
8176 (home-page "https://wiki.gnome.org/Apps/Evolution")
8177 (description
8178 "This package provides a unified backend for programs that work with
8179 contacts, tasks, and calendar information. It was originally developed for
8180 Evolution (hence the name), but is now used by other packages as well.")
8181 (license license:lgpl2.0)))
8182
8183 ;;; This version can be used for projects with dependencies stuck on libsoup2.
8184 (define-public evolution-data-server-3.44
8185 (package
8186 (inherit evolution-data-server)
8187 (name "evolution-data-server")
8188 (version "3.44.4")
8189 (source
8190 (origin
8191 (method url-fetch)
8192 (uri (string-append "mirror://gnome/sources/" name "/"
8193 (version-major+minor version) "/"
8194 name "-" version ".tar.xz"))
8195 (sha256
8196 (base32 "1sxjrjr31wqbp9g4pf6dwj8rc4mi7c5fbfd489ha92ym7246bin0"))))
8197 (inputs
8198 (modify-inputs (package-inputs evolution-data-server)
8199 (replace "gnome-online-accounts" gnome-online-accounts-3.44)
8200 (replace "libgweather4" libgweather)
8201 (replace "webkitgtk" webkitgtk-with-libsoup2)))
8202 (propagated-inputs
8203 (modify-inputs (package-propagated-inputs evolution-data-server)
8204 (delete "gtk")
8205 (replace "libsoup" libsoup-minimal-2)))))
8206
8207 (define-public caribou
8208 (package
8209 (name "caribou")
8210 (version "0.4.21")
8211 (source (origin
8212 (method url-fetch)
8213 (uri (string-append "mirror://gnome/sources/" name "/"
8214 (version-major+minor version) "/"
8215 name "-" version ".tar.xz"))
8216 (sha256
8217 (base32
8218 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
8219 (build-system glib-or-gtk-build-system)
8220 (arguments
8221 '(#:phases
8222 (modify-phases %standard-phases
8223 (add-before
8224 'build 'pre-build
8225 (lambda* (#:key outputs #:allow-other-keys)
8226 (let ((out (assoc-ref outputs "out")))
8227 ;; Use absolute shared library path in Caribou-1.0.typelib.
8228 (substitute* "libcaribou/Makefile"
8229 (("--shared-library=libcaribou.so")
8230 (string-append "--shared-library="
8231 out "/lib/libcaribou.so")))
8232 #t)))
8233 (add-after 'install 'wrap-programs
8234 (lambda* (#:key outputs #:allow-other-keys)
8235 (let* ((out (assoc-ref outputs "out"))
8236 (python-path (getenv "GUIX_PYTHONPATH"))
8237 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8238 (for-each
8239 (lambda (prog)
8240 (wrap-program prog
8241 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
8242 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8243 (list (string-append out "/bin/caribou-preferences")
8244 (string-append out "/libexec/antler-keyboard"))))
8245 #t)))))
8246 (native-inputs
8247 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8248 ("gobject-introspection" ,gobject-introspection)
8249 ("intltool" ,intltool)
8250 ("pkg-config" ,pkg-config)
8251 ("python" ,python)
8252 ("vala" ,vala)
8253 ("xsltproc" ,libxslt)))
8254 (propagated-inputs
8255 ;; caribou-1.0.pc refers to all these.
8256 (list libgee libxklavier libxtst gtk+))
8257 (inputs
8258 `(("clutter" ,clutter)
8259 ("dconf" ,dconf)
8260 ("gtk+-2" ,gtk+-2)
8261 ("python-pygobject" ,python-pygobject)))
8262 (synopsis "Text entry and UI navigation application")
8263 (home-page "https://wiki.gnome.org/Projects/Caribou")
8264 (description
8265 "Caribou is an input assistive technology intended for switch and pointer
8266 users.")
8267 (license license:lgpl2.1)))
8268
8269 (define-public network-manager
8270 (package
8271 (name "network-manager")
8272 (version "1.41.2")
8273 (source (origin
8274 (method url-fetch)
8275 (uri (string-append "mirror://gnome/sources/NetworkManager/"
8276 (version-major+minor version) "/"
8277 "NetworkManager-" version ".tar.xz"))
8278 (patches (search-patches "network-manager-plugin-path.patch"
8279 "network-manager-meson.patch"))
8280 (sha256
8281 (base32
8282 "0v5a5fw1zwa94ksz6d7hyj14wwdxzmswgm81ryhxmyn3nrcf1akg"))))
8283 (build-system meson-build-system)
8284 (outputs '("out"
8285 "doc")) ; 8 MiB of gtk-doc HTML
8286 (arguments
8287 (list
8288 #:configure-flags
8289 #~(list
8290 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
8291 ;; component.
8292 (string-append "-Dc_link_args=-Wl,-rpath="
8293 #$output "/lib:"
8294 #$output "/lib/NetworkManager/" #$version)
8295 "-Dsystemd_journal=false"
8296 "-Dsession_tracking=elogind"
8297 "-Dsuspend_resume=elogind"
8298 "-Dsystemdsystemunitdir=no"
8299 "-Dsession_tracking_consolekit=false"
8300 "-Ddhcpcd=no"
8301 "-Ddhcpcanon=no"
8302 "-Dcrypto=gnutls"
8303 "-Diwd=true"
8304 "-Dlibaudit=yes"
8305 "-Dqt=false"
8306 "-Ddocs=true"
8307 "--sysconfdir=/etc"
8308 "--localstatedir=/var"
8309 (string-append "-Dudev_dir="
8310 #$output "/lib/udev")
8311 (string-append "-Ddbus_conf_dir="
8312 #$output "/etc/dbus-1/system.d")
8313
8314 (string-append "-Ddhclient=" (search-input-file %build-inputs
8315 "/sbin/dhclient")))
8316 #:phases
8317 #~(modify-phases %standard-phases
8318 (add-after 'unpack 'patch-dlopen-call-to-libjansson.so
8319 (lambda* (#:key inputs #:allow-other-keys)
8320 (substitute* "src/libnm-glib-aux/nm-json-aux.c"
8321 (("(handle = dlopen\\()soname" _ head)
8322 (string-append
8323 head "\"" (search-input-file inputs
8324 "lib/libjansson.so") "\"")))))
8325 (add-before 'configure 'pre-configure
8326 (lambda _
8327 ;; These tests try to test aspects of network-manager's
8328 ;; functionality within restricted containers, but they don't
8329 ;; cope with being already in the Guix build jail as that jail
8330 ;; lacks some features that they would like to proxy over (like
8331 ;; a /sys mount).
8332 (substitute* "src/core/tests/meson.build"
8333 ((".*test-l3cfg.*") ""))
8334 (substitute* "src/core/devices/tests/meson.build"
8335 ((".*test-acd.*") "")
8336 ((".*test-lldp.*") ""))
8337 (substitute* "src/core/platform/tests/meson.build"
8338 ((".*test-address-linux.*") "")
8339 ((".*test-cleanup-linux.*") "")
8340 ((".*test-link-linux.*") "")
8341 ((".*test-lldp.*") "")
8342 ((".*test-route-linux.*") "")
8343 ((".*test-tc-linux.*") ""))))
8344 (add-after 'unpack 'patch-docbook-xml
8345 (lambda* (#:key inputs #:allow-other-keys)
8346 (substitute* (find-files "." ".*\\.(xsl|xml)")
8347 (("http://.*/docbookx\\.dtd")
8348 (search-input-file inputs "xml/dtd/docbook/docbookx.dtd")))))
8349 (add-before 'check 'pre-check
8350 (lambda _
8351 ;; For the missing /etc/machine-id.
8352 (setenv "DBUS_FATAL_WARNINGS" "0")))
8353 (add-before 'install 'no-polkit-magic
8354 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
8355 (lambda _
8356 (setenv "PKEXEC_UID" "something")))
8357 (add-after 'install 'move-doc
8358 (lambda _
8359 (mkdir-p (string-append #$output:doc "/share"))
8360 (for-each (lambda (directory)
8361 (copy-recursively (string-append #$output directory)
8362 (string-append #$output:doc
8363 directory))
8364 (delete-file-recursively
8365 (string-append #$output directory)))
8366 '("/share/doc" "/share/gtk-doc")))))))
8367 (propagated-inputs
8368 (list glib))
8369 (native-inputs
8370 (list docbook-xml
8371 docbook-xsl
8372 gettext-minimal
8373 `(,glib "bin") ;for gdbus-codegen
8374 gobject-introspection
8375 gtk-doc/stable
8376 libxml2
8377 libxslt
8378 perl
8379 pkg-config
8380 python-dbus
8381 python-pygobject
8382 python-wrapper
8383 vala))
8384 (inputs
8385 (list audit
8386 curl
8387 cyrus-sasl
8388 dbus-glib
8389 dnsmasq
8390 elogind
8391 eudev
8392 gnutls
8393 iptables
8394 isc-dhcp
8395 iwd ;wpa_supplicant alternative
8396 jansson
8397 libgcrypt
8398 libgudev
8399 libndp
8400 libnl
8401 libpsl
8402 libselinux
8403 mobile-broadband-provider-info
8404 modem-manager
8405 newt ;for the 'nmtui' console interface
8406 openresolv ;alternative resolv.conf manager
8407 polkit
8408 ppp
8409 readline
8410 util-linux))
8411 (synopsis "Network connection manager")
8412 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8413 (description
8414 "NetworkManager is a system network service that manages your network
8415 devices and connections, attempting to keep active network connectivity when
8416 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
8417 devices, and provides VPN integration with a variety of different VPN
8418 services.")
8419 ;; “This NetworkManager project consists of the daemon, client tools, and
8420 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
8421 ;; GPL-2.0+.”
8422 (license (list license:gpl2+
8423 license:lgpl2.1+))
8424 (properties '((upstream-name . "NetworkManager")))))
8425
8426 (define-public network-manager-openvpn
8427 (package
8428 (name "network-manager-openvpn")
8429 (version "1.10.0")
8430 (source (origin
8431 (method url-fetch)
8432 (uri (string-append
8433 "mirror://gnome/sources/NetworkManager-openvpn/"
8434 (version-major+minor version)
8435 "/NetworkManager-openvpn-" version ".tar.xz"))
8436 (sha256
8437 (base32
8438 "00fiyjbp42pdv5h2vdkzxd2rw32ikcinjgxrzdxak61kgw8d8iap"))))
8439 (build-system gnu-build-system)
8440 (arguments
8441 (list
8442 #:configure-flags #~(list "--enable-absolute-paths"
8443 "--localstatedir=/var"
8444 "--with-gtk4=yes")
8445 #:phases
8446 #~(modify-phases %standard-phases
8447 (add-after 'configure 'patch-path
8448 (lambda* (#:key inputs #:allow-other-keys #:rest args)
8449 (let* ((ovpn (search-input-file inputs "/sbin/openvpn"))
8450 (modprobe (search-input-file inputs "/bin/modprobe"))
8451 (pretty-ovpn (string-append "\"" ovpn "\"")))
8452 (for-each
8453 (lambda (file)
8454 (substitute* file
8455 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
8456 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
8457 (("\"/sbin/openvpn\"") pretty-ovpn)
8458 (("/sbin/modprobe") modprobe)))
8459 '("src/nm-openvpn-service.c"
8460 "properties/nm-openvpn-editor.c"))))))))
8461 (native-inputs
8462 (list intltool
8463 `(,glib "bin")
8464 pkg-config))
8465 (inputs
8466 (list gtk+
8467 gtk
8468 kmod
8469 libnma
8470 libsecret
8471 network-manager
8472 openvpn
8473 pango-next)) ;remove after it's the default
8474 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8475 (synopsis "OpenVPN plug-in for NetworkManager")
8476 (description
8477 "This extension of NetworkManager allows it to take care of connections
8478 to virtual private networks (VPNs) via OpenVPN.")
8479 (license license:gpl2+)
8480 (properties `((upstream-name . "NetworkManager-openvpn")))))
8481
8482 (define-public network-manager-vpnc
8483 (package
8484 (name "network-manager-vpnc")
8485 (version "1.2.8")
8486 (source (origin
8487 (method url-fetch)
8488 (uri (string-append
8489 "mirror://gnome/sources/NetworkManager-vpnc/"
8490 (version-major+minor version)
8491 "/NetworkManager-vpnc-" version ".tar.xz"))
8492 (sha256
8493 (base32
8494 "1k7vkalslzmz8zvfy76k7z10b9krm7da917gwzyw7zf8afm32pnn"))))
8495 (build-system gnu-build-system)
8496 (arguments
8497 `(#:configure-flags '("--enable-absolute-paths"
8498 "--localstatedir=/var"
8499 "--with-gtk4=yes")
8500 #:phases
8501 (modify-phases %standard-phases
8502 (add-after 'configure 'patch-path
8503 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8504 (let* ((vpnc (search-input-file inputs "/sbin/vpnc"))
8505 (modprobe (search-input-file inputs "/bin/modprobe"))
8506 (pretty-ovpn (string-append "\"" vpnc "\"")))
8507 (substitute* "src/nm-vpnc-service.c"
8508 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
8509 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
8510 (("\"/sbin/vpnc\"") pretty-ovpn)
8511 (("/sbin/modprobe") modprobe))))))))
8512 (native-inputs
8513 (list `(,glib "bin")
8514 intltool
8515 pkg-config))
8516 (inputs
8517 (list gtk+
8518 gtk
8519 kmod
8520 vpnc
8521 network-manager
8522 libnma
8523 libsecret
8524 pango-next)) ;TODO: remove after it's the default
8525 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8526 (synopsis "VPNC plug-in for NetworkManager")
8527 (description
8528 "Support for configuring virtual private networks based on VPNC.
8529 Compatible with Cisco VPN concentrators configured to use IPsec.")
8530 (license license:gpl2+)
8531 (properties `((upstream-name . "NetworkManager-vpnc")))))
8532
8533 (define-public network-manager-openconnect
8534 (package
8535 (name "network-manager-openconnect")
8536 (version "1.2.8")
8537 (source (origin
8538 (method url-fetch)
8539 (uri (string-append
8540 "mirror://gnome/sources/NetworkManager-openconnect/"
8541 (version-major+minor version)
8542 "/NetworkManager-openconnect-" version ".tar.xz"))
8543 (sha256
8544 (base32
8545 "1k6d6cv2c9v8gf0f2js6cklr3ijhaanbz0nhvlwy5n42bmwamvax"))))
8546 (build-system gnu-build-system)
8547 (arguments
8548 `(#:configure-flags '("--enable-absolute-paths"
8549 "--localstatedir=/var"
8550 "--with-gtk4=yes")
8551 #:phases
8552 (modify-phases %standard-phases
8553 (add-after 'configure 'patch-path
8554 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8555 (let* ((openconnect (search-input-file inputs
8556 "/sbin/openconnect"))
8557 (modprobe (search-input-file inputs "/bin/modprobe"))
8558 (pretty-ovpn (string-append "\"" openconnect "\"")))
8559 (substitute* "src/nm-openconnect-service.c"
8560 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
8561 (("/sbin/modprobe") modprobe))))))))
8562 (native-inputs
8563 (list `(,glib "bin")
8564 intltool
8565 libnma
8566 pkg-config))
8567 (inputs
8568 (list gcr
8569 gtk
8570 gtk+
8571 kmod
8572 libsecret
8573 libxml2
8574 lz4
8575 network-manager
8576 openconnect
8577 pango-next)) ;TODO: remove after it's the default
8578 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8579 (synopsis "OpenConnect plug-in for NetworkManager")
8580 (description
8581 "This extension of NetworkManager allows it to take care of connections
8582 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
8583 Cisco's AnyConnect SSL VPN.")
8584 (license license:gpl2+)
8585 (properties `((upstream-name . "NetworkManager-openconnect")
8586
8587 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
8588 ;; file refers to account "nm-openconnect". Specify it here
8589 ;; so that 'network-manager-service-type' creates it.
8590 (user-accounts . ("nm-openconnect"))))))
8591
8592 (define-public mobile-broadband-provider-info
8593 (package
8594 (name "mobile-broadband-provider-info")
8595 (version "20220725")
8596 (source (origin
8597 (method url-fetch)
8598 (uri (string-append
8599 "mirror://gnome/sources/"
8600 "mobile-broadband-provider-info/" version "/"
8601 "mobile-broadband-provider-info-" version ".tar.xz"))
8602 (sha256
8603 (base32
8604 "1k9acdnl4mr6aqh11xbklv2gyww82jddaqmw4aqdzwl7q80swia8"))))
8605 (build-system gnu-build-system)
8606 (arguments
8607 `(#:tests? #f)) ; no tests
8608 (native-inputs (list libxslt))
8609 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8610 (synopsis "Database of broadband connection configuration")
8611 (description "Database of broadband connection configuration.")
8612 (license license:public-domain)))
8613
8614 (define-public network-manager-applet
8615 (package
8616 (name "network-manager-applet")
8617 (version "1.28.0")
8618 (source (origin
8619 (method url-fetch)
8620 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
8621 (version-major+minor version) "/"
8622 "network-manager-applet-" version ".tar.xz"))
8623 (sha256
8624 (base32
8625 "17742kgmbj9w545zwnirgr0i40zl0xzp8jx7b8c1krp93mc4h0sw"))))
8626 (build-system meson-build-system)
8627 (arguments
8628 `(#:glib-or-gtk? #t
8629 #:configure-flags
8630 '("-Dappindicator=yes")))
8631 (native-inputs
8632 (list gettext-minimal
8633 `(,glib "bin") ; for glib-compile-resources, etc.
8634 gobject-introspection
8635 gtk-doc/stable
8636 pkg-config))
8637 (propagated-inputs
8638 ;; libnm-gtk.pc refers to all these.
8639 (list dbus-glib gtk+ network-manager
8640 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8641 libnma))
8642 (inputs
8643 (list gcr
8644 libappindicator
8645 libgudev
8646 libnotify
8647 libsecret
8648 libselinux
8649 jansson ; for team support
8650 modem-manager))
8651 (synopsis "Applet for managing network connections")
8652 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8653 (description
8654 "This package contains a systray applet for NetworkManager. It displays
8655 the available networks and allows users to easily switch between them.")
8656 (license license:gpl2+)))
8657
8658 (define-public libxml++
8659 (package
8660 (name "libxml++")
8661 (version "5.0.2")
8662 (source
8663 (origin
8664 (method git-fetch)
8665 (uri (git-reference
8666 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8667 (commit version)))
8668 (file-name (git-file-name name version))
8669 (sha256
8670 (base32 "13jlhz57yjxapplflm8aarczxv6ll3d336y1446mr5n4ylkcc1xz"))))
8671 (build-system gnu-build-system)
8672 (arguments
8673 (list
8674 #:phases
8675 #~(modify-phases %standard-phases
8676 (add-after 'unpack 'fix-documentation
8677 (lambda* (#:key native-inputs inputs #:allow-other-keys)
8678 (let* ((xsl-version #$(package-version docbook-xsl))
8679 (xsldoc (string-append "xml/xsl/docbook-xsl-"
8680 xsl-version)))
8681 (substitute* '("examples/dom_xpath/example.xml"
8682 "docs/manual/libxml++_without_code.xml")
8683 (("http://.*/docbookx\\.dtd")
8684 (search-input-file (or native-inputs inputs)
8685 "xml/dtd/docbook/docbookx.dtd")))
8686 (setenv "SGML_CATALOG_FILES"
8687 (search-input-file (or native-inputs inputs)
8688 (string-append
8689 xsldoc "/catalog.xml")))
8690 (substitute* "docs/manual/docbook-customisation.xsl"
8691 (("http://docbook.sourceforge.net/release/xsl\
8692 /current/html/chunk.xsl")
8693 (search-input-file (or native-inputs inputs)
8694 (string-append xsldoc
8695 "/html/chunk.xsl"))))))))))
8696 (propagated-inputs
8697 (list libxml2)) ;required by .pc file
8698 (native-inputs
8699 (list autoconf
8700 automake
8701 doxygen
8702 docbook-xml
8703 docbook-xsl
8704 graphviz ;for dot
8705 libtool
8706 libxslt
8707 mm-common
8708 perl
8709 pkg-config))
8710 (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
8711 (synopsis "C++ bindings to the libxml2 XML parser library")
8712 (description
8713 "This package provides a C++ interface to the libxml2 XML parser
8714 library.")
8715 (license license:lgpl2.1+)))
8716
8717 ;; This is the last release providing the 2.6 API, hence the name.
8718 ;; This is needed by tascam-gtk
8719 (define-public libxml++-2
8720 (package
8721 (inherit libxml++)
8722 (name "libxml++")
8723 (version "2.42.2")
8724 (source
8725 (origin
8726 (method git-fetch)
8727 (uri (git-reference
8728 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8729 (commit version)))
8730 (file-name (git-file-name name version))
8731 (sha256
8732 (base32 "05slsbhc25z7kwlc28ydl3dfyp7rgbmz1fxj9z6gcvpg3hkghj2m"))))
8733 (propagated-inputs (modify-inputs (package-propagated-inputs libxml++)
8734 (append glibmm-2.64)))))
8735
8736 (define-public gdm
8737 (package
8738 (name "gdm")
8739 (version "42.0")
8740 (source (origin
8741 (method url-fetch)
8742 (uri (string-append "mirror://gnome/sources/" name "/"
8743 (version-major version) "/"
8744 name "-" version ".tar.xz"))
8745 (sha256
8746 (base32
8747 "0m9qmm3vm81jmqlc30a1fb79hsr4l4lpiw0zjxww3gipd6bsqa53"))
8748 (patches
8749 (search-patches
8750 "gdm-default-session.patch"
8751 "gdm-elogind-support.patch"
8752 "gdm-remove-hardcoded-xwayland-path.patch"
8753 "gdm-wayland-session-wrapper-from-env.patch"
8754 "gdm-pass-gdk-pixbuf-loader-env.patch"))))
8755 (build-system meson-build-system)
8756 (arguments
8757 (list
8758 #:glib-or-gtk? #t
8759 #:configure-flags
8760 #~(list
8761 "-Dplymouth=disabled"
8762 "-Dsystemd-journal=false"
8763
8764 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8765 ;; instead of having to replace it (i.e., stopping the mingetty
8766 ;; service for TTY 1 before starting GDM).
8767 "-Dinitial-vt=7"
8768
8769 ;; Use elogind instead of systemd.
8770 "-Dlogind-provider=elogind"
8771 "-Dsystemdsystemunitdir=no"
8772 "-Dsystemduserunitdir=no"
8773
8774 ;; Use '/etc/environment' for locale settings instead of the
8775 ;; systemd-specific '/etc/locale.conf'.
8776 "-Dlang-file=/etc/environment"
8777
8778 (string-append "-Dudev-dir=" #$output "/lib/udev")
8779
8780 "--localstatedir=/var"
8781 (string-append "-Ddefault-path="
8782 (string-join '("/run/setuid-programs"
8783 "/run/current-system/profile/bin"
8784 "/run/current-system/profile/sbin")
8785 ":"))
8786 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8787 ;; XDG_DATA_DIRS so that it finds its schemas.
8788 "--sbindir" (string-append #$output "/bin"))
8789 #:phases
8790 #~(modify-phases %standard-phases
8791 (add-after 'unpack 'patch-paths
8792 (lambda* (#:key inputs #:allow-other-keys)
8793 (substitute* "daemon/gdm-session.c"
8794 (("dbus-run-session")
8795 (search-input-file inputs "bin/dbus-run-session")))))
8796 (add-before 'configure 'pre-configure
8797 (lambda* (#:key inputs #:allow-other-keys)
8798 ;; We don't have <systemd/sd-daemon.h>.
8799 (substitute* '("common/gdm-log.c"
8800 "daemon/gdm-server.c"
8801 "daemon/gdm-session-worker.c"
8802 "daemon/gdm-session-worker-job.c")
8803 (("#include <systemd/sd-daemon\\.h>") ""))
8804 ;; Use elogind for sd-login.
8805 (substitute* '("common/gdm-common.c"
8806 "daemon/gdm-local-display-factory.c"
8807 "daemon/gdm-manager.c"
8808 "libgdm/gdm-user-switching.c")
8809 (("#include <systemd/sd-login\\.h>")
8810 "#include <elogind/sd-login.h>"))
8811 ;; Look for system-installed sessions in
8812 ;; /run/current-system/profile/share.
8813 (substitute* '("libgdm/gdm-sessions.c"
8814 "daemon/gdm-session.c"
8815 "daemon/gdm-display.c"
8816 "daemon/gdm-launch-environment.c")
8817 (("DATADIR \"/x")
8818 "\"/run/current-system/profile/share/x")
8819 (("DATADIR \"/wayland")
8820 "\"/run/current-system/profile/share/wayland")
8821 (("DATADIR \"/gnome")
8822 "\"/run/current-system/profile/share/gnome"))
8823 (let ((propagate '("GDM_CUSTOM_CONF"
8824 "GDM_DBUS_DAEMON"
8825 "GDM_X_SERVER"
8826 "GDM_X_SESSION"
8827 ;; XXX: Remove this once GNOME Shell is
8828 ;; a dependency of GDM.
8829 "XDG_DATA_DIRS")))
8830 (substitute* "daemon/gdm-session.c"
8831 (("set_up_session_environment \\(self\\);")
8832 (apply string-append
8833 "set_up_session_environment (self);\n"
8834 (map (lambda (name)
8835 (string-append
8836 "gdm_session_set_environment_variable "
8837 "(self, \"" name "\","
8838 "g_getenv (\"" name "\"));\n"))
8839 propagate)))))
8840 ;; Find the configuration file using an environment variable.
8841 (substitute* '("common/gdm-settings.c")
8842 (("GDM_CUSTOM_CONF")
8843 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8844 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8845 " : GDM_CUSTOM_CONF)")))
8846 ;; Use service-supplied path to X.
8847 (substitute* '("daemon/gdm-server.c")
8848 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8849 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8850 (substitute* '("daemon/gdm-wayland-session.c"
8851 "daemon/gdm-x-session.c")
8852 (("\"dbus-daemon\"")
8853 "g_getenv (\"GDM_DBUS_DAEMON\")")
8854 (("X_SERVER")
8855 "g_getenv (\"GDM_X_SERVER\")")
8856 (("GDMCONFDIR \"/Xsession\"")
8857 "g_getenv (\"GDM_X_SESSION\")"))
8858 ;; Use an absolute path for GNOME Session.
8859 (substitute* "daemon/gdm-launch-environment.c"
8860 (("\"gnome-session\"")
8861 (format #f "~s"
8862 (search-input-file inputs "bin/gnome-session"))))
8863 ;; Do not automatically select the placeholder session.
8864 (substitute* "daemon/gdm-session.c"
8865 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8866 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8867 "(g_strcmp0(search_dirs[i], \""
8868 #$output "/share/gdm/BuiltInSessions/"
8869 "\") == 0 && "
8870 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8871 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8872 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))))
8873 (add-before 'install 'install-logo
8874 (lambda* (#:key inputs #:allow-other-keys)
8875 (let ((icon (search-input-file inputs "share/icons/hicolor/\
8876 scalable/apps/guix-white-icon.svg"))
8877 (schema (string-append #$output "/share/glib-2.0/schemas/\
8878 org.gnome.login-screen.gschema.override")))
8879 (mkdir-p (dirname schema))
8880 (with-output-to-file schema
8881 (lambda ()
8882 (format #t "\
8883 [org.gnome.login-screen]
8884 logo='~a'~%" icon))))))
8885 ;; GDM requires that there be at least one desktop entry
8886 ;; file. This phase installs a hidden one that simply
8887 ;; fails. This enables users to use GDM with a
8888 ;; '~/.xsession' script with no other desktop entry files.
8889 ;; See <https://bugs.gnu.org/35068>.
8890 (add-after 'install 'install-placeholder-desktop-entry
8891 (lambda _
8892 (let* ((sessions (string-append #$output
8893 "/share/gdm/BuiltInSessions"))
8894 (fail (string-append sessions "/fail.desktop")))
8895 (mkdir-p sessions)
8896 (with-output-to-file fail
8897 (lambda ()
8898 (for-each
8899 display
8900 '("[Desktop Entry]\n"
8901 "Encoding=UTF-8\n"
8902 "Type=Application\n"
8903 "Name=Fail\n"
8904 "Comment=This session fails immediately.\n"
8905 "NoDisplay=true\n"
8906 "Exec=false\n")))))))
8907 ;; GDM needs GNOME Session to run these applications. We link
8908 ;; their autostart files in `share/gdm/greeter/autostart'
8909 ;; because GDM explicitly tells GNOME Session to look there.
8910 ;;
8911 ;; XXX: GNOME Shell should be linked here too, but currently
8912 ;; GNOME Shell depends on GDM.
8913 (add-after 'install 'link-autostart-files
8914 (lambda* (#:key inputs #:allow-other-keys)
8915 (let ((autostart (string-append #$output "/share/gdm/"
8916 "greeter/autostart"))
8917 (settings #$(this-package-input "gnome-settings-daemon")))
8918 (mkdir-p autostart)
8919 (with-directory-excursion autostart
8920 (for-each (lambda (desktop)
8921 (symlink desktop (basename desktop)))
8922 (find-files
8923 (string-append settings "/etc/xdg"))))))))))
8924 (native-inputs
8925 (list `(,glib "bin") ;for glib-compile-schemas, etc.
8926 dconf
8927 gobject-introspection
8928 guix-icons
8929 intltool
8930 itstool
8931 libxml2
8932 pkg-config))
8933 (inputs
8934 (list accountsservice
8935 check ;for testing
8936 dbus
8937 elogind
8938 eudev
8939 gnome-session
8940 gnome-settings-daemon
8941 gtk+
8942 iso-codes
8943 libcanberra
8944 libgudev
8945 linux-pam))
8946 (synopsis "Display manager for GNOME")
8947 (home-page "https://wiki.gnome.org/Projects/GDM/")
8948 (description
8949 "GNOME Display Manager is a system service that is responsible for
8950 providing graphical log-ins and managing local and remote displays.")
8951 (license license:gpl2+)))
8952
8953 (define-public libgtop
8954 (package
8955 (name "libgtop")
8956 (version "2.40.0")
8957 (source (origin
8958 (method url-fetch)
8959 (uri (string-append "mirror://gnome/sources/libgtop/"
8960 (version-major+minor version) "/"
8961 "libgtop-" version ".tar.xz"))
8962 (sha256
8963 (base32
8964 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8965 (build-system gnu-build-system)
8966 (native-inputs
8967 (list gobject-introspection intltool perl pkg-config))
8968 (propagated-inputs
8969 (list glib)) ; required by libgtop-2.0.pc
8970 (synopsis "Portable system access library")
8971 (home-page "https://www.gnome.org/")
8972 (description
8973 "LibGTop is a library to get system specific data such as CPU and memory
8974 usage and information about running processes.")
8975 (license license:gpl2+)))
8976
8977 (define-public gnome-bluetooth
8978 (package
8979 (name "gnome-bluetooth")
8980 (version "42.4")
8981 (source (origin
8982 (method url-fetch)
8983 (uri (string-append "mirror://gnome/sources/gnome-bluetooth/"
8984 (version-major version) "/"
8985 "gnome-bluetooth-" version ".tar.xz"))
8986 (sha256
8987 (base32
8988 "1p5wq3rh9p7fhka57qcds6lvphd26yyc18ilncx95jbcvcfcyvqx"))))
8989 (build-system meson-build-system)
8990 (native-inputs
8991 (list gettext-minimal
8992 gobject-introspection
8993 `(,glib "bin") ;for gdbus-codegen, etc.
8994 libxml2
8995 pkg-config
8996 python
8997 python-dbus))
8998 (propagated-inputs
8999 ;; These are all required by the gnome-bluetooth .pc file.
9000 (list glib
9001 gtk
9002 libadwaita))
9003 (inputs
9004 (list eudev
9005 gsound
9006 libnotify
9007 ;; TODO: Delete pango-next after it's the default.
9008 pango-next
9009 python-dbus
9010 upower))
9011 (synopsis "GNOME Bluetooth subsystem")
9012 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
9013 (description
9014 "This package contains tools for managing and manipulating Bluetooth
9015 devices using the GNOME desktop.")
9016 (license license:lgpl2.1+)))
9017
9018 (define-public gnome-control-center
9019 (package
9020 (name "gnome-control-center")
9021 (version "42.3")
9022 (source (origin
9023 (method url-fetch)
9024 (uri (string-append "mirror://gnome/sources/" name "/"
9025 (version-major version) "/"
9026 name "-" version ".tar.xz"))
9027 (sha256
9028 (base32
9029 "0zhw6hcrrcpq1zjkyzr5ipznxnzd2aczrqd7n2y7xbz21mjy62nf"))))
9030 (build-system meson-build-system)
9031 (arguments
9032 (list
9033 #:glib-or-gtk? #t
9034 #:phases
9035 #~(modify-phases %standard-phases
9036 (add-before 'configure 'patch-paths
9037 (lambda* (#:key inputs #:allow-other-keys)
9038 (substitute* "panels/datetime/tz.h"
9039 (("/usr/share/zoneinfo/zone.tab")
9040 (search-input-file inputs "share/zoneinfo/zone.tab")))
9041 (substitute* "tests/datetime/test-endianess.c"
9042 (("/usr/share/locale")
9043 (search-input-directory inputs "share/locale")))
9044 (substitute* "panels/region/cc-region-panel.c"
9045 (("\"gkbd-keyboard-display")
9046 (string-append "\"" (search-input-file
9047 inputs "bin/gkbd-keyboard-display"))))
9048 (substitute* '("panels/network/net-device-bluetooth.c"
9049 "panels/network/net-device-mobile.c"
9050 "panels/network/connection-editor/net-connection-editor.c")
9051 (("\"nm-connection-editor")
9052 (string-append "\"" (search-input-file
9053 inputs "bin/nm-connection-editor"))))
9054 (substitute* "panels/user-accounts/run-passwd.c"
9055 (("/usr/bin/passwd")
9056 "/run/setuid-programs/passwd"))
9057 (substitute* "panels/info-overview/cc-info-overview-panel.c"
9058 (("DATADIR \"/gnome/gnome-version.xml\"")
9059 (format #f "~s" (search-input-file
9060 inputs "share/gnome/gnome-version.xml"))))))
9061 (add-after 'unpack 'skip-gtk-update-icon-cache
9062 ;; Don't create 'icon-theme.cache'.
9063 (lambda _
9064 (substitute* "build-aux/meson/meson_post_install.py"
9065 (("gtk-update-icon-cache") (which "true"))))))))
9066 (native-inputs
9067 (list docbook-xsl
9068 gettext-minimal
9069 `(,glib "bin") ;for glib-mkenums, etc.
9070 libxslt
9071 pkg-config
9072 python
9073 python-dbusmock
9074 xorg-server-for-tests))
9075 (inputs
9076 (list accountsservice
9077 colord-gtk
9078 cups
9079 dconf
9080 gcr
9081 gnome-bluetooth
9082 gnome-desktop
9083 gnome-online-accounts
9084 gnome-session
9085 gnome-settings-daemon
9086 gnutls
9087 grilo
9088 gsound
9089 ibus
9090 libadwaita
9091 libgnomekbd
9092 libgudev
9093 libgtop
9094 libnma
9095 libpwquality
9096 librsvg ;for loading SVG files
9097 libsecret
9098 libxml2
9099 libwacom
9100 mesa
9101 mit-krb5
9102 modem-manager
9103 network-manager-applet
9104 polkit
9105 pulseaudio
9106 samba
9107 tzdata
9108 udisks
9109 upower))
9110 (synopsis "Utilities to configure the GNOME desktop")
9111 (home-page "https://www.gnome.org/")
9112 (description
9113 "This package contains configuration applets for the GNOME desktop,
9114 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
9115 properties, sound setup, desktop theme and background, user interface
9116 properties, screen resolution, and other GNOME parameters.")
9117 (license license:gpl2+)))
9118
9119 (define-public gnome-shell
9120 (package
9121 (name "gnome-shell")
9122 (version "42.4")
9123 (source (origin
9124 (method url-fetch)
9125 (uri (string-append "mirror://gnome/sources/" name "/"
9126 (version-major version) "/"
9127 name "-" version ".tar.xz"))
9128 (sha256
9129 (base32
9130 "0kn5fclciybp2fs38wd39hdz85y91pas0ckfa02pmyx91sbz4pw7"))))
9131 (build-system meson-build-system)
9132 (arguments
9133 (let ((disallowed-references
9134 (list (gexp-input glib "bin")
9135 (gexp-input libxslt)
9136 (gexp-input meson)
9137 (gexp-input ruby-sass))))
9138 (list
9139 #:glib-or-gtk? #t
9140 #:disallowed-references disallowed-references
9141 #:configure-flags
9142 #~(list "-Dsystemd=false"
9143 ;; Otherwise, the RUNPATH will lack the final path component.
9144 (string-append "-Dc_link_args=-Wl,-rpath="
9145 #$output "/lib/gnome-shell")
9146 "-Dsoup2=false")
9147 #:modules '((guix build meson-build-system)
9148 (guix build utils)
9149 (ice-9 match)
9150 (srfi srfi-1)
9151 (srfi srfi-26))
9152 #:phases
9153 #~(modify-phases %standard-phases
9154 (add-after 'unpack 'fix-keysdir
9155 (lambda _
9156 (let ((keysdir
9157 (string-append #$output
9158 "/share/gnome-control-center/keybindings")))
9159 (substitute* "meson.build"
9160 (("keysdir =.*")
9161 (string-append "keysdir = '" keysdir "'\n"))))))
9162 (add-after 'unpack 'skip-gtk-update-icon-cache
9163 ;; Don't create 'icon-theme.cache'.
9164 (lambda _
9165 (substitute* "meson.build"
9166 (("gtk_update_icon_cache: true")
9167 "gtk_update_icon_cache: false"))))
9168 (add-before 'configure 'record-absolute-file-names
9169 (lambda* (#:key inputs #:allow-other-keys)
9170 (let ((ibus-daemon (search-input-file inputs "bin/ibus-daemon"))
9171 (gkbd-keyboard-display
9172 (search-input-file inputs "bin/gkbd-keyboard-display")))
9173 (substitute* "js/misc/ibusManager.js"
9174 (("'ibus-daemon'")
9175 (string-append "'" ibus-daemon "'")))
9176 (substitute* "js/ui/status/keyboard.js"
9177 (("'gkbd-keyboard-display'")
9178 (string-append "'" gkbd-keyboard-display "'"))))))
9179 (add-before 'check 'pre-check
9180 (lambda* (#:key inputs #:allow-other-keys)
9181 ;; Tests require a running X server.
9182 (system "Xvfb :1 &")
9183 (setenv "DISPLAY" ":1")
9184 (setenv "HOME" "/tmp"))) ;to avoid "fatal" warnings
9185 (add-after 'install 'wrap-programs
9186 (lambda* (#:key inputs #:allow-other-keys)
9187 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9188 (python-path
9189 (string-join
9190 (filter (lambda (item)
9191 (not (any (cut string-prefix? <> item)
9192 '#$disallowed-references)))
9193 (string-split (getenv "GUIX_PYTHONPATH") #\:))
9194 ":")))
9195 (for-each
9196 (lambda (prog)
9197 (wrap-program (string-append #$output "/bin/" prog)
9198 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9199 '("gnome-shell" "gnome-extensions-app"))
9200 (substitute* (string-append #$output "/share/gnome-shell/"
9201 "org.gnome.Shell.Extensions")
9202 (("imports\\.package\\.start" all)
9203 (string-append "'" gi-typelib-path "'.split(':').forEach("
9204 "path => imports.gi.GIRepository.Repository."
9205 "prepend_search_path(path));\n"
9206 all)))
9207 (for-each
9208 (lambda (prog)
9209 (wrap-program (string-append #$output "/bin/" prog)
9210 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
9211 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9212 '("gnome-shell-perf-tool")))))
9213 (add-after 'install 'rewire
9214 (lambda* (#:key inputs #:allow-other-keys)
9215 (for-each
9216 (lambda (tool)
9217 (call-with-output-file (string-append #$output
9218 "/bin/" tool)
9219 (lambda (port)
9220 (format port "#!~a
9221 printf '~a is deprecated. Use the \"gnome-extensions\" CLI or \
9222 \"gnome-extensions-app\" instead.\\n'"
9223 (search-input-file inputs "bin/bash")
9224 tool))))
9225 '("gnome-shell-extension-tool" "gnome-shell-extension-prefs"))))
9226 (replace 'glib-or-gtk-wrap
9227 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
9228 (lambda* (#:key inputs outputs #:allow-other-keys)
9229 ;; By default glib:bin et al. would end up in the XDG_DATA_DIRS
9230 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
9231 ;; phase. Fix that since we don't need these.
9232 (wrap #:inputs
9233 (filter (match-lambda
9234 ((label . output)
9235 (not (member output
9236 '#$disallowed-references))))
9237 inputs)
9238 #:outputs outputs))))))))
9239 (native-inputs
9240 (list asciidoc
9241 gettext-minimal
9242 `(,glib "bin") ;for glib-compile-schemas, etc.
9243 desktop-file-utils ;for update-desktop-database
9244 gobject-introspection
9245 hicolor-icon-theme
9246 libxslt
9247 perl
9248 pkg-config
9249 python
9250 ruby-sass
9251 sassc
9252 ;; For tests
9253 xorg-server-for-tests))
9254 (inputs
9255 (list accountsservice
9256 caribou
9257 docbook-xsl
9258 evolution-data-server
9259 gcr
9260 gdm
9261 librsvg
9262 gjs
9263 gtk
9264 gnome-autoar
9265 gnome-bluetooth
9266 gnome-desktop
9267 gnome-settings-daemon
9268 graphene
9269 gst-plugins-base
9270 ibus
9271 libcanberra
9272 libcroco
9273 libgnomekbd ;for gkbd-keyboard-display
9274 libgweather4
9275 libnma
9276 libsoup
9277 mesa-headers
9278 mutter
9279 network-manager-applet
9280 polkit
9281 pulseaudio
9282 python-pygobject
9283 startup-notification
9284 telepathy-logger
9285 upower
9286 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
9287 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
9288 librsvg
9289 geoclue))
9290 (synopsis "Desktop shell for GNOME")
9291 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
9292 (description
9293 "GNOME Shell provides core user interface functions for the GNOME desktop,
9294 like switching to windows and launching applications.")
9295 (license license:gpl2+)))
9296
9297 (define-public gtk-vnc
9298 (package
9299 (name "gtk-vnc")
9300 (version "1.3.1")
9301 (source
9302 (origin
9303 (method url-fetch)
9304 (uri
9305 (string-append "mirror://gnome/sources/" name "/"
9306 (version-major+minor version) "/"
9307 name "-" version ".tar.xz"))
9308 (sha256
9309 (base32 "1kpih1gnp3hmsx4l6pig10zn7gd3s5fwm0k6icax0n859sn669si"))))
9310 (build-system meson-build-system)
9311 (arguments
9312 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
9313 (native-inputs
9314 (append
9315 ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
9316 ;; dependency on other platforms (FIXME).
9317 (if (target-x86-64?)
9318 (list gjs)
9319 '())
9320 (list gettext-minimal
9321 `(,glib "bin")
9322 gobject-introspection
9323 node
9324 perl
9325 pkg-config
9326 python-wrapper
9327 vala)))
9328 (inputs
9329 (list cairo
9330 (librsvg-for-system)))
9331 (propagated-inputs
9332 ;; These are all in Requires or Requires.private of the .pc files.
9333 (list cyrus-sasl
9334 gdk-pixbuf
9335 glib
9336 gnutls
9337 gtk+
9338 libgcrypt
9339 libx11
9340 pulseaudio
9341 zlib))
9342 (synopsis "VNC client viewer widget for GTK+")
9343 (description "GTK-VNC is a project providing client side APIs for the RFB
9344 protocol / VNC remote desktop technology. It is built using coroutines allowing
9345 it to be completely asynchronous while remaining single threaded. It provides a
9346 core C library, and bindings for Python (PyGTK).")
9347 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
9348 (license license:lgpl2.1+)))
9349
9350 (define-public gnome-autoar
9351 (package
9352 (name "gnome-autoar")
9353 (version "0.4.3")
9354 (source (origin
9355 (method url-fetch)
9356 (uri (string-append "mirror://gnome/sources/" name "/"
9357 (version-major+minor version) "/"
9358 name "-" version ".tar.xz"))
9359 (sha256
9360 (base32
9361 "124y4j3wgb6axgfzw9f00865r033fg7b0qy9qgfsp5ilan4hgpvv"))))
9362 (build-system meson-build-system)
9363 (native-inputs
9364 (list gobject-introspection `(,glib "bin") pkg-config))
9365 (propagated-inputs
9366 (list libarchive)) ; Required by gnome-autoar-0.pc
9367 (inputs
9368 (list gtk+))
9369 (synopsis "Archives integration support for GNOME")
9370 (home-page "https://git.gnome.org/browse/gnome-autoar/")
9371 (description
9372 "GNOME Autoar is a library which makes creating and extracting archives
9373 easy, safe, and automatic.")
9374 (license license:lgpl2.1+)))
9375
9376 (define-public tracker
9377 (package
9378 (name "tracker")
9379 (version "3.3.3")
9380 (source (origin
9381 (method url-fetch)
9382 (uri (string-append "mirror://gnome/sources/tracker/"
9383 (version-major+minor version) "/"
9384 "tracker-" version ".tar.xz"))
9385 (sha256
9386 (base32
9387 "0r144kdqxdzs51qn495vablzf1zxkhkk6imrlrzj9wiqwc2gg520"))))
9388 (build-system meson-build-system)
9389 (arguments
9390 `(#:glib-or-gtk? #t
9391 #:configure-flags
9392 ;; Otherwise, the RUNPATH will lack the final path component.
9393 (list (string-append "-Dc_link_args=-Wl,-rpath="
9394 (assoc-ref %outputs "out") "/lib:"
9395 (assoc-ref %outputs "out") "/lib/tracker-3.0")
9396 "-Ddocs=false"
9397 "-Dsystemd_user_services=false")
9398 #:phases
9399 (modify-phases %standard-phases
9400 (add-after 'unpack 'patch-paths
9401 (lambda* (#:key inputs #:allow-other-keys)
9402 (substitute* "utils/trackertestutils/__main__.py"
9403 (("/bin/bash")
9404 (search-input-file inputs "bin/bash")))))
9405 (add-before 'configure 'set-shell
9406 (lambda _
9407 (setenv "SHELL" (which "bash"))))
9408 (add-before 'configure 'fix-paths
9409 (lambda* (#:key inputs #:allow-other-keys)
9410 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9411 (file (search-input-file inputs manpage)))
9412 (substitute* "docs/manpages/meson.build"
9413 (("/etc/asciidoc[^']+")
9414 file)))))
9415 (replace 'check
9416 (lambda* (#:key tests? #:allow-other-keys)
9417 (when tests?
9418 ;; Some tests expect to write to $HOME.
9419 (setenv "HOME" "/tmp")
9420 (invoke "dbus-run-session" "--" "meson" "test"
9421 "--print-errorlogs")))))))
9422 (native-inputs
9423 (list gettext-minimal
9424 `(,glib "bin")
9425 glibc-utf8-locales
9426 gobject-introspection
9427 docbook-xsl
9428 docbook-xml
9429 gsettings-desktop-schemas
9430 asciidoc
9431 libxslt
9432 cmake-minimal
9433 python-pygobject
9434 gtk-doc/stable
9435 dbus
9436 pkg-config
9437 python
9438 vala))
9439 (inputs
9440 (list bash-minimal
9441 dbus
9442 libsoup))
9443 (propagated-inputs
9444 ;; These are in Requires or Requires.private of tracker-sparql-3.0.pc.
9445 (list glib
9446 icu4c ;libunistring gets miner-miner-fs test to fail
9447 json-glib
9448 libxml2
9449 sqlite))
9450 (synopsis "Metadata database, indexer and search tool")
9451 (home-page "https://wiki.gnome.org/Projects/Tracker")
9452 (description
9453 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
9454
9455 It is a middleware component aimed at desktop application developers who want
9456 their apps to browse and search user content. It's not designed to be used
9457 directly by desktop users, but it provides a commandline tool named
9458 @command{tracker} for the adventurous.
9459
9460 Tracker allows your application to instantly perform full-text searches across
9461 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
9462 example. This is achieved by indexing the user's home directory in the
9463 background.
9464
9465 Tracker also allows your application to query and list content that the user
9466 has stored. For example, GNOME Music displays all the music files that are
9467 found by Tracker. This means that GNOME Music doesn't need to maintain a
9468 database of its own.
9469
9470 If you need to go beyond simple searches, Tracker is also a linked data
9471 endpoint and it understands SPARQL.")
9472 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
9473 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9474 ;; libstemmer is bsd-3 and the rest is gpl2+.
9475 (license (list license:gpl2+
9476 license:bsd-3
9477 license:lgpl2.1+))))
9478
9479 (define-public tracker-miners
9480 (package
9481 (name "tracker-miners")
9482 (version "3.3.1")
9483 (source (origin
9484 (method url-fetch)
9485 (uri (string-append "mirror://gnome/sources/tracker-miners/"
9486 (version-major+minor version)
9487 "/tracker-miners-" version ".tar.xz"))
9488 (sha256
9489 (base32
9490 "151w6ljq1gk9idqfq9qs3w16vms91jnxy59c9kx6jaf0fb9cdp9y"))))
9491 (build-system meson-build-system)
9492 (arguments
9493 `(#:glib-or-gtk? #t
9494 #:configure-flags
9495 (list "-Dminer_rss=false" ; libgrss is required.
9496 ;; Ensure the RUNPATH contains all installed library locations.
9497 (string-append "-Dc_link_args=-Wl,-rpath="
9498 (assoc-ref %outputs "out")
9499 "/lib/tracker-miners-3.0")
9500 ;; TODO: Enable functional tests. Currently, the following error
9501 ;; appears:
9502 ;; Exception: The functional tests require DConf to be the default
9503 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
9504 "-Dfunctional_tests=false"
9505 "-Dsystemd_user_services=false")
9506 #:phases
9507 (modify-phases %standard-phases
9508 (add-before 'configure 'set-shell
9509 (lambda _
9510 (setenv "SHELL" (which "bash"))))
9511 (add-before 'configure 'fix-paths
9512 (lambda* (#:key inputs #:allow-other-keys)
9513 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9514 (file (search-input-file inputs manpage)))
9515 (substitute* "docs/manpages/meson.build"
9516 (("/etc/asciidoc[^']+")
9517 file)))))
9518 (add-before 'configure 'fix-tests
9519 (lambda* (#:key inputs #:allow-other-keys)
9520 ;; Disable those tests that require the functional_tests option
9521 ;; to be true and the UPower daemon to be started.
9522 (substitute* "examples/python/meson.build"
9523 (("foreach example_name:.*")
9524 "foreach example_name: []"))
9525 ;; Disable this test that is failing randomly:
9526 ;; https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/170.
9527 (substitute* "tests/libtracker-miner/meson.build"
9528 (("'miner-fs'.*")
9529 ""))))
9530 (replace 'check
9531 (lambda* (#:key tests? #:allow-other-keys)
9532 (when tests?
9533 ;; Some tests expect to write to $HOME.
9534 (setenv "HOME" "/tmp")
9535 (setenv "LANG" "en_US.UTF-8")
9536 (invoke "dbus-run-session" "--" "meson" "test"
9537 "--print-errorlogs"
9538 ;; Do not run the slow test, which fail (see:
9539 ;; https://gitlab.gnome.org/GNOME/tracker-miners
9540 ;; /-/issues/226).
9541 "--no-suite" "slow")))))))
9542 (native-inputs
9543 (list dbus
9544 intltool
9545 `(,glib "bin")
9546 docbook-xsl
9547 docbook-xml
9548 gsettings-desktop-schemas
9549 asciidoc
9550 libxslt
9551 gobject-introspection
9552 pkg-config
9553 python-pygobject))
9554 (inputs
9555 (list exempi
9556 ffmpeg
9557 flac
9558 giflib
9559 glib
9560 gstreamer
9561 icu4c
9562 json-glib
9563 libcue
9564 libexif
9565 libgsf
9566 libgxps
9567 libiptcdata
9568 libjpeg-turbo
9569 libosinfo
9570 libpng
9571 libseccomp
9572 libsoup
9573 libtiff
9574 libvorbis
9575 libxml2
9576 poppler
9577 shared-mime-info
9578 taglib
9579 totem-pl-parser
9580 tracker
9581 upower
9582 zlib))
9583 (synopsis "Metadata database, indexer and search tool")
9584 (home-page "https://wiki.gnome.org/Projects/Tracker")
9585 (description
9586 "Tracker is an advanced framework for first class objects with associated
9587 metadata and tags. It provides a one stop solution for all metadata, tags,
9588 shared object databases, search tools and indexing.")
9589 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9590 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
9591 (license (list license:gpl2+
9592 license:lgpl2.1+
9593 license:lgpl2.0+))))
9594
9595 (define-public nautilus
9596 (package
9597 (name "nautilus")
9598 (version "42.2")
9599 (source (origin
9600 (method url-fetch)
9601 (uri (string-append "mirror://gnome/sources/" name "/"
9602 (version-major version) "/"
9603 name "-" version ".tar.xz"))
9604 (sha256
9605 (base32
9606 "1cncyiyh79w1id6a6s2f0rxmgwl65lp4ml4afa0z35jrnwp2s8cr"))))
9607 (build-system meson-build-system)
9608 (arguments
9609 (list
9610 #:glib-or-gtk? #t
9611 #:phases
9612 #~(modify-phases %standard-phases
9613 (add-after 'unpack 'disable-tracker-tests
9614 ;; The tracker test hangs in the build container (see:
9615 ;; https://gitlab.gnome.org/GNOME/nautilus/-/issues/2486).
9616 (lambda _
9617 (substitute* "test/automated/displayless/meson.build"
9618 (("^foreach t: tracker_tests" all)
9619 (string-append "tracker_tests = []\n" all)))))
9620 (add-after 'unpack 'make-extensible
9621 (lambda _
9622 (substitute* "src/nautilus-module.c"
9623 (("static gboolean initialized = FALSE;" all)
9624 (string-append all "
9625 const char *extension_path;
9626 char **extension_dirs, **d;
9627 ")
9628 )
9629 (("load_module_dir \\(NAUTILUS_EXTENSIONDIR\\);" all)
9630 (string-append all
9631 "
9632 extension_path = g_getenv (\"NAUTILUS_EXTENSION_PATH\");
9633 if (extension_path)
9634 {
9635 extension_dirs = g_strsplit (extension_path, \":\", -1);
9636 for (d = extension_dirs; d != NULL && *d != NULL; d++)
9637 load_module_dir(*d);
9638 g_strfreev(extension_dirs);
9639 }
9640 ")))))
9641 (add-after 'unpack 'skip-gtk-update-icon-cache
9642 ;; Don't create 'icon-theme.cache'.
9643 (lambda _
9644 (substitute* "build-aux/meson/postinstall.py"
9645 (("gtk-update-icon-cache") "true"))))
9646 (delete 'check)
9647 (add-after 'install 'check
9648 (assoc-ref %standard-phases 'check))
9649 (add-before 'check 'pre-check
9650 (lambda _
9651 (setenv "HOME" "/tmp") ;some tests require a writable HOME
9652 (setenv "XDG_DATA_DIRS"
9653 (string-append (getenv "XDG_DATA_DIRS")
9654 ":" #$output "/share")))))))
9655 (native-inputs
9656 (list desktop-file-utils ;for update-desktop-database
9657 `(,glib "bin") ;for glib-mkenums, etc.
9658 gettext-minimal
9659 gobject-introspection
9660 pkg-config
9661 python
9662 python-pygobject))
9663 (inputs
9664 (list dconf
9665 gexiv2
9666 gvfs
9667 exempi
9668 gnome-desktop
9669 gnome-autoar
9670 gst-plugins-base
9671 json-glib
9672 libhandy
9673 libportal
9674 libseccomp
9675 libselinux
9676 tracker
9677 tracker-miners
9678 ;; XXX: gtk+ is required by libnautilus-extension.pc
9679 ;;
9680 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
9681 ;; package. See:
9682 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
9683 gtk+
9684 libexif
9685 libxml2))
9686 (native-search-paths
9687 (list (search-path-specification
9688 (variable "NAUTILUS_EXTENSION_PATH")
9689 (files '("lib/nautilus/site-extensions")))))
9690 (synopsis "File manager for GNOME")
9691 (home-page "https://wiki.gnome.org/Apps/Nautilus")
9692 (description
9693 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
9694 design and behaviour, giving the user a simple way to navigate and manage its
9695 files.")
9696 (license license:gpl2+)))
9697
9698 (define-public baobab
9699 (package
9700 (name "baobab")
9701 (version "42.0")
9702 (source (origin
9703 (method url-fetch)
9704 (uri (string-append
9705 "mirror://gnome/sources/" name "/"
9706 (version-major version) "/"
9707 name "-" version ".tar.xz"))
9708 (sha256
9709 (base32
9710 "1p2hg8qxbvdfax9z4qjhdsxia93zrsdq58krx8zjnn5ipbkan6jb"))))
9711 (build-system meson-build-system)
9712 (arguments
9713 '(#:glib-or-gtk? #t))
9714 (native-inputs
9715 (list desktop-file-utils ;for update-desktop-database
9716 gettext-minimal
9717 `(,glib "bin")
9718 `(,gtk+ "bin") ;for gtk-update-icon-cache
9719 itstool
9720 libxml2
9721 pkg-config
9722 python
9723 vala))
9724 (inputs
9725 (list gtk libadwaita libhandy
9726 ;; XXX: Ensure pango-next is used instead of the equally propagated
9727 ;; 'pango'.
9728 pango-next))
9729 (synopsis "Disk usage analyzer for GNOME")
9730 (description
9731 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
9732 usage in the GNOME desktop environment. It can easily scan device volumes or
9733 a specific user-requested directory branch (local or remote). Once the scan
9734 is complete it provides a graphical representation of each selected folder.")
9735 (home-page "https://wiki.gnome.org/Apps/Baobab")
9736 (license license:gpl2+)))
9737
9738 (define-public gnome-backgrounds
9739 (package
9740 (name "gnome-backgrounds")
9741 (version "41.0")
9742 (source
9743 (origin
9744 (method url-fetch)
9745 (uri (string-append "mirror://gnome/sources/" name "/"
9746 (version-major version) "/"
9747 name "-" version ".tar.xz"))
9748 (sha256
9749 (base32
9750 "0i9id5z72dqddh94648zylyf41amqq5lhny8sbyg1v8v4q6sr88x"))))
9751 (build-system meson-build-system)
9752 (native-inputs (list gettext-minimal))
9753 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
9754 (synopsis "Background images for the GNOME desktop")
9755 (description
9756 "GNOME backgrounds package contains a collection of graphics files which
9757 can be used as backgrounds in the GNOME Desktop environment. Additionally,
9758 the package creates the proper framework and directory structure so that you
9759 can add your own files to the collection.")
9760 (license (list license:gpl2+
9761 license:cc-by2.0
9762 license:cc-by-sa2.0
9763 license:cc-by-sa3.0))))
9764
9765 (define-public gnome-screenshot
9766 (package
9767 (name "gnome-screenshot")
9768 (version "41.0")
9769 (source
9770 (origin
9771 (method url-fetch)
9772 (uri (string-append "mirror://gnome/sources/" name "/"
9773 (version-major version) "/"
9774 name "-" version ".tar.xz"))
9775 (sha256
9776 (base32
9777 "15wmikwk62cdi93gas77nqh4fbhlrxrncyfmcd1gfa34jbn7vnsa"))))
9778 (build-system meson-build-system)
9779 (arguments
9780 `(#:meson ,meson-0.60
9781 #:glib-or-gtk? #t
9782 #:phases
9783 (modify-phases %standard-phases
9784 (add-after 'unpack 'skip-gtk-update-icon-cache
9785 ;; Don't create 'icon-theme.cache'.
9786 (lambda _
9787 (substitute* "build-aux/postinstall.py"
9788 (("gtk-update-icon-cache") "true")))))))
9789 (native-inputs
9790 (list appstream-glib
9791 desktop-file-utils ; for update-desktop-database
9792 gettext-minimal
9793 `(,glib "bin") ; for glib-compile-schemas, etc.
9794 pkg-config
9795 python))
9796 (inputs
9797 (list gtk+
9798 libhandy
9799 libx11
9800 libxext))
9801 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
9802 (synopsis "Take pictures of your screen")
9803 (description
9804 "GNOME Screenshot is a utility used for taking screenshots of the entire
9805 screen, a window or a user defined area of the screen, with optional
9806 beautifying border effects.")
9807 (license license:gpl2+)))
9808
9809 (define-public dconf-editor
9810 (package
9811 (name "dconf-editor")
9812 (version "3.38.3")
9813 (source
9814 (origin
9815 (method url-fetch)
9816 (uri (string-append "mirror://gnome/sources/" name "/"
9817 (version-major+minor version) "/"
9818 name "-" version ".tar.xz"))
9819 (sha256
9820 (base32
9821 "1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp"))))
9822 (build-system meson-build-system)
9823 (arguments
9824 (list #:meson meson-0.60))
9825 (native-inputs
9826 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9827 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9828 ("intltool" ,intltool)
9829 ("pkg-config" ,pkg-config)
9830 ("vala" ,vala)))
9831 (inputs
9832 (list dconf gtk+ libxml2))
9833 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9834 (synopsis "Graphical editor for GNOME's dconf configuration system")
9835 (description
9836 "Dconf-editor is a graphical tool for browsing and editing the dconf
9837 configuration system for GNOME. It allows users to configure desktop
9838 software that do not provide their own configuration interface.")
9839 (license license:lgpl2.1+)))
9840
9841 (define-public gnome-default-applications
9842 (package
9843 (name "gnome-default-applications")
9844 (version "0")
9845 (build-system trivial-build-system)
9846 (source #f)
9847 (propagated-inputs
9848 (list nautilus evince))
9849 (arguments
9850 `(#:modules ((guix build utils))
9851 #:builder
9852 (begin
9853 (use-modules (guix build utils))
9854 (let* ((out (assoc-ref %outputs "out"))
9855 (apps (string-append out "/share/applications")))
9856 (mkdir-p apps)
9857 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9858 (lambda (port)
9859 (format port "[Default Applications]\n")
9860 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9861 (format port "application/pdf=evince.desktop\n")
9862 (format port "application/postscript=evince.desktop\n")))
9863 #t))))
9864 (synopsis "Default MIME type associations for the GNOME desktop")
9865 (description
9866 "Given many installed packages which might handle a given MIME type, a
9867 user running the GNOME desktop probably has some preferences: for example,
9868 that folders be opened by default by the Nautilus file manager, not the Baobab
9869 disk usage analyzer. This package establishes that set of default MIME type
9870 associations for GNOME.")
9871 (license license:gpl3+)
9872 (home-page #f)))
9873
9874 (define-public libgovirt
9875 (package
9876 (name "libgovirt")
9877 (version "0.3.9")
9878 (source (origin
9879 (method url-fetch)
9880 (uri (string-append "mirror://gnome/sources/" name "/"
9881 (version-major+minor version) "/"
9882 name "-" version ".tar.xz"))
9883 (sha256
9884 (base32
9885 "0z118di7cg654f5zb8xn5w60ghgqngsc1p7izr1pw01dkxbw6bxi"))))
9886 (build-system meson-build-system)
9887 (arguments
9888 (list #:glib-or-gtk? #t
9889 #:phases #~(modify-phases %standard-phases
9890 (add-after 'unpack 'set-home
9891 (lambda _
9892 ;; The tests require a writable HOME.
9893 (setenv "HOME" "/tmp"))))))
9894 (native-inputs
9895 (list gettext-minimal
9896 `(,glib "bin")
9897 glib-networking ; GIO plugin--for the tests
9898 gobject-introspection
9899 gsettings-desktop-schemas
9900 pkg-config))
9901 (propagated-inputs
9902 ;; These dependencies are required by govirt-1.0.pc.
9903 (list glib
9904 rest-next))
9905 (synopsis "GoVirt Library")
9906 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9907 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9908 (license license:gpl2+)))
9909
9910 (define-public gnome-weather
9911 (package
9912 (name "gnome-weather")
9913 (version "42.0")
9914 (source (origin
9915 (method url-fetch)
9916 (uri (string-append "mirror://gnome/sources/" name "/"
9917 (version-major version) "/"
9918 name "-" version ".tar.xz"))
9919 (sha256
9920 (base32
9921 "0rdl0ywdk8jlq819wr1sbdzdvsasz11pp30fylzvprakv28yd7jp"))))
9922 (build-system meson-build-system)
9923 (arguments
9924 (list
9925 #:glib-or-gtk? #t
9926 #:phases
9927 #~(modify-phases %standard-phases
9928 (add-after 'unpack 'fix-service-file
9929 (lambda _
9930 (substitute* "data/org.gnome.Weather.service.in"
9931 (("Exec=[[:graph:]]+")
9932 (string-append "Exec=" #$output
9933 "/bin/gnome-weather")))))
9934 (add-after 'unpack 'disable-gtk-update-icon-cache
9935 (lambda _
9936 (setenv "DESTDIR" "/")))
9937 (add-after 'install 'fix-desktop-file
9938 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some
9939 ;; reason. See https://issues.guix.gnu.org/issue/39324.
9940 (lambda* (#:key outputs #:allow-other-keys)
9941 (substitute* (search-input-file
9942 outputs
9943 "share/applications/org.gnome.Weather.desktop")
9944 (("Exec=.*") "Exec=gnome-weather\n"))))
9945 (add-after 'install 'wrap
9946 (lambda* (#:key outputs #:allow-other-keys)
9947 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at
9948 ;; runtime.
9949 (wrap-program (search-input-file outputs "bin/gnome-weather")
9950 `("GI_TYPELIB_PATH" ":" prefix
9951 (,(getenv "GI_TYPELIB_PATH")))))))))
9952 (native-inputs
9953 (list gettext-minimal
9954 `(,glib "bin")
9955 gobject-introspection
9956 pkg-config))
9957 (inputs
9958 (list appstream-glib
9959 bash-minimal
9960 geoclue
9961 gjs
9962 gsettings-desktop-schemas-next
9963 gtk
9964 libadwaita
9965 libgweather4))
9966 (synopsis "Weather monitoring for GNOME desktop")
9967 (description "GNOME Weather is a small application that allows you to
9968 monitor the current weather conditions for your city, or anywhere in the
9969 world.")
9970 (home-page "https://wiki.gnome.org/Apps/Weather")
9971 (license license:gpl2+)))
9972
9973 (define-public gnome
9974 (package
9975 (name "gnome")
9976 (version (package-version gnome-shell))
9977 (source #f)
9978 (build-system trivial-build-system)
9979 (arguments '(#:builder (begin (mkdir %output) #t)))
9980 (propagated-inputs
9981 `(,@(if (string-prefix? "x86_64" (%current-system))
9982 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9983 ;; only works on x86_64, so exclude it on other architectures.
9984 (list eog)
9985 '())
9986 ,@(list
9987 ;; GNOME-Core-OS-Services.
9988 accountsservice
9989 network-manager
9990 packagekit
9991 upower
9992 ;; GNOME-Core-Shell.
9993 adwaita-icon-theme
9994 gdm
9995 glib-networking
9996 gnome-backgrounds
9997 gnome-bluetooth
9998 gnome-color-manager
9999 gnome-control-center
10000 gnome-desktop
10001 gnome-initial-setup
10002 gnome-keyring
10003 gnome-menus
10004 gnome-session
10005 gnome-settings-daemon
10006 gnome-shell
10007 gnome-shell-extensions
10008 gnome-themes-extra
10009 gnome-user-docs
10010 gnome-user-share
10011 gsettings-desktop-schemas
10012 gvfs
10013 mutter
10014 orca
10015 rygel
10016 sushi
10017 ;; GNOME-Core-Utilities.
10018 baobab
10019 cheese
10020 epiphany
10021 evince
10022 file-roller
10023 gnome-boxes
10024 gnome-calculator
10025 gnome-calendar
10026 gnome-characters
10027 gnome-clocks
10028 gnome-console
10029 gnome-contacts
10030 gnome-disk-utility
10031 gnome-font-viewer
10032 gnome-maps
10033 gnome-music
10034 gnome-photos
10035 gnome-screenshot
10036 gnome-system-monitor
10037 gnome-text-editor
10038 gnome-weather
10039 nautilus
10040 simple-scan
10041 totem
10042 tracker-miners
10043 yelp
10044 ;; Others.
10045 gnome-online-accounts
10046 hicolor-icon-theme
10047
10048 ;; Packages not part of GNOME proper but that are needed for a good
10049 ;; experience. See <https://bugs.gnu.org/39646>.
10050 ;; XXX: Find out exactly which ones are needed and why.
10051 at-spi2-core-minimal
10052 dbus
10053 dconf
10054 desktop-file-utils
10055 font-abattis-cantarell
10056 font-dejavu
10057 gnome-default-applications
10058 gst-plugins-base
10059 gst-plugins-good
10060 gucharmap
10061 pinentry-gnome3
10062 pulseaudio
10063 shared-mime-info
10064 system-config-printer
10065 xdg-user-dirs
10066 yelp
10067 zenity)))
10068 (synopsis "The GNU desktop environment")
10069 (home-page "https://www.gnome.org/")
10070 (description
10071 "GNOME is the graphical desktop for GNU. It includes a wide variety of
10072 applications for browsing the web, editing text and images, creating
10073 documents and diagrams, playing media, scanning, and much more.")
10074 (license license:gpl2+)))
10075
10076 (define-public byzanz
10077 ;; The last stable release of Byzanz was in 2011, but there have been many
10078 ;; useful commits made to the Byzanz repository since then that it would be
10079 ;; silly to use such an old release.
10080 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
10081 (package
10082 (name "byzanz")
10083 (version (string-append "0.2-1." (string-take commit 7)))
10084 (source (origin
10085 (method git-fetch)
10086 (uri (git-reference
10087 (url "https://git.gnome.org/browse/byzanz")
10088 (commit commit)))
10089 (file-name (string-append name "-" version "-checkout"))
10090 (sha256
10091 (base32
10092 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
10093 (build-system glib-or-gtk-build-system)
10094 (arguments
10095 '(#:phases
10096 (modify-phases %standard-phases
10097 (add-before 'bootstrap 'build-without-Werror
10098 (lambda _
10099 ;; The build system cleverly detects that we're not building from
10100 ;; a release tarball and turns on -Werror for GCC.
10101 ;; Unsurprisingly, there is a warning during compilation that
10102 ;; causes the build to fail unnecessarily, so we remove the flag.
10103 (substitute* '("configure.ac")
10104 (("-Werror") ""))
10105 #t)))))
10106 (native-inputs
10107 (list autoconf
10108 automake
10109 gnome-common
10110 intltool
10111 libtool
10112 pkg-config
10113 which))
10114 (inputs
10115 (list glib gstreamer gst-plugins-base gtk+))
10116 (synopsis "Desktop recording program")
10117 (description "Byzanz is a simple desktop recording program with a
10118 command-line interface. It can record part or all of an X display for a
10119 specified duration and save it as a GIF encoded animated image file.")
10120 (home-page "https://git.gnome.org/browse/byzanz")
10121 (license license:gpl2+))))
10122
10123 (define-public authenticator
10124 (package
10125 (name "authenticator")
10126 (version "3.32.2")
10127 (source
10128 (origin
10129 (method git-fetch)
10130 (uri (git-reference
10131 (url "https://gitlab.gnome.org/World/Authenticator")
10132 (commit version)))
10133 (file-name (git-file-name name version))
10134 (sha256
10135 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
10136 (build-system meson-build-system)
10137 (arguments
10138 `(#:meson ,meson-0.59
10139 #:glib-or-gtk? #t
10140 #:phases
10141 (modify-phases %standard-phases
10142 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10143 (lambda* (#:key inputs outputs #:allow-other-keys)
10144 (let ((prog (string-append (assoc-ref outputs "out")
10145 "/bin/authenticator"))
10146 (pylib (string-append (assoc-ref outputs "out")
10147 "/lib/python"
10148 ,(version-major+minor
10149 (package-version
10150 (this-package-input "python")))
10151 "/site-packages")))
10152 (wrap-program prog
10153 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
10154 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
10155 (native-inputs
10156 (list desktop-file-utils
10157 gettext-minimal
10158 `(,glib "bin")
10159 gobject-introspection
10160 `(,gtk+ "bin")
10161 pkg-config))
10162 (inputs
10163 (list gsettings-desktop-schemas
10164 gtk+
10165 libhandy-0.0
10166 libsecret
10167 python
10168 python-beautifulsoup4
10169 python-pillow
10170 python-pyfavicon
10171 python-pygobject
10172 python-pyotp
10173 python-pyzbar
10174 yoyo-migrations
10175 zbar))
10176 (home-page "https://gitlab.gnome.org/World/Authenticator/")
10177 (synopsis "Two-factor authentication application built for GNOME")
10178 (description
10179 "Authenticator is a two-factor authentication (2FA) application built for
10180 the GNOME desktop environment.
10181
10182 Features:
10183
10184 @itemize
10185 @item QR code scanner
10186 @item Beautiful UI
10187 @item Huge database of more than 560 supported services
10188 @item Keep your PIN tokens secure by locking the application with a password
10189 @item Automatically fetch an image for services using their favicon
10190 @item The possibility to add new services
10191 @end itemize")
10192 (license license:gpl3+)))
10193
10194 (define-public gsound
10195 (package
10196 (name "gsound")
10197 (version "1.0.3")
10198 (source (origin
10199 (method url-fetch)
10200 (uri (string-append "mirror://gnome/sources/gsound/"
10201 (version-major+minor version) "/"
10202 "gsound-" version ".tar.xz"))
10203 (sha256
10204 (base32
10205 "06l80xgykj7x1kqkjvcq06pwj2rmca458zvs053qc55x3sg06bfa"))))
10206 (build-system meson-build-system)
10207 (native-inputs
10208 (list pkg-config gobject-introspection vala))
10209 (propagated-inputs
10210 (list libcanberra)) ; in Requires.private of gsound.pc
10211 (home-page "https://wiki.gnome.org/Projects/GSound")
10212 (synopsis "GObject wrapper for libcanberra")
10213 (description
10214 "GSound is a small library for playing system sounds. It's designed to be
10215 used via GObject Introspection, and is a thin wrapper around the libcanberra C
10216 library.")
10217 (license license:lgpl2.1+)))
10218
10219 (define-public libzapojit
10220 (package
10221 (name "libzapojit")
10222 (version "0.0.3")
10223 (source (origin
10224 (method url-fetch)
10225 (uri (string-append "mirror://gnome/sources/" name "/"
10226 (version-major+minor version) "/"
10227 name "-" version ".tar.xz"))
10228 (sha256
10229 (base32
10230 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
10231 (build-system gnu-build-system)
10232 (native-inputs
10233 (list gobject-introspection intltool pkg-config))
10234 (inputs
10235 (list gnome-online-accounts json-glib rest))
10236 (home-page "https://wiki.gnome.org/Projects/Zapojit")
10237 (synopsis "Library for accessing SkyDrive and Hotmail")
10238 (description
10239 "Libzapojit is a GLib-based library for accessing online service APIs of
10240 Microsoft SkyDrive and Hotmail, using their REST protocols.")
10241 (license license:lgpl2.1+)))
10242
10243 (define-public gnome-clocks
10244 (package
10245 (name "gnome-clocks")
10246 (version "42.0")
10247 (source (origin
10248 (method url-fetch)
10249 (uri (string-append "mirror://gnome/sources/" name "/"
10250 (version-major version) "/"
10251 name "-" version ".tar.xz"))
10252 (sha256
10253 (base32
10254 "1q3gvniwd4dkr1ghqpp05zr7qswdhaxqrn8j6bm3qbh39bdihw8f"))))
10255 (build-system meson-build-system)
10256 (arguments
10257 '(#:glib-or-gtk? #t
10258 #:phases
10259 (modify-phases %standard-phases
10260 (add-after 'unpack 'skip-gtk-update-icon-cache
10261 ;; Don't create 'icon-theme.cache'.
10262 (lambda _
10263 (substitute* "meson.build"
10264 (("gtk_update_icon_cache: true")
10265 "gtk_update_icon_cache: false")))))))
10266 (native-inputs
10267 (list desktop-file-utils
10268 gettext-minimal
10269 `(,glib "bin") ; for glib-compile-resources
10270 itstool
10271 pkg-config
10272 vala-next))
10273 (inputs
10274 (list geoclue
10275 geocode-glib-with-libsoup2
10276 glib
10277 gnome-desktop
10278 gsound
10279 gtk
10280 libadwaita
10281 libgweather4-with-libsoup2))
10282 (home-page "https://wiki.gnome.org/Apps/Clocks")
10283 (synopsis "GNOME's clock application")
10284 (description
10285 "GNOME Clocks is a simple clocks application designed to fit the GNOME
10286 desktop. It supports world clock, stop watch, alarms, and count down timer.")
10287 (license license:gpl3+)))
10288
10289 (define-public gnome-calendar
10290 (package
10291 (name "gnome-calendar")
10292 (version "42.2")
10293 (source (origin
10294 (method url-fetch)
10295 (uri (string-append "mirror://gnome/sources/" name "/"
10296 (version-major version) "/"
10297 name "-" version ".tar.xz"))
10298 (sha256
10299 (base32
10300 "1ggvnl2jnc24nzpkjvsk57vpckjzb14a7mmnk6jjm84nmqxccz5f"))))
10301 (build-system meson-build-system)
10302 (arguments
10303 `(#:glib-or-gtk? #t
10304 #:phases
10305 (modify-phases %standard-phases
10306 (add-after 'unpack 'skip-gtk-update-icon-cache
10307 ;; Don't create 'icon-theme.cache'.
10308 (lambda _
10309 (substitute* "meson.build"
10310 (("gtk_update_icon_cache: true")
10311 "gtk_update_icon_cache: false")))))))
10312 (native-inputs
10313 (list gettext-minimal
10314 `(,glib "bin") ; For glib-compile-schemas
10315 pkg-config))
10316 (inputs
10317 ;; Note: not propagating evolution-data-server-3.44 to keep profiles
10318 ;; clean from libsoup2.
10319 (list evolution-data-server-3.44
10320 geoclue
10321 geocode-glib-with-libsoup2
10322 gnome-online-accounts-3.44
10323 gsettings-desktop-schemas
10324 libadwaita
10325 libdazzle
10326 libgweather4-with-libsoup2
10327 ;; Remove pango-next when it's the default.
10328 pango-next))
10329 (home-page "https://wiki.gnome.org/Apps/Calendar")
10330 (synopsis "GNOME's calendar application")
10331 (description
10332 "GNOME Calendar is a simple calendar application designed to fit the GNOME
10333 desktop. It supports multiple calendars, month, week and year view.")
10334 (license license:gpl3+)))
10335
10336 (define-public endeavour
10337 (package
10338 (name "endeavour")
10339 (version "42.0")
10340 (source (origin
10341 (method git-fetch)
10342 (uri (git-reference
10343 (url "https://gitlab.gnome.org/World/Endeavour")
10344 (commit (string-append "v" version))))
10345 (sha256
10346 (base32
10347 "0d6by7aq8db35zavzvckcxxxcdi6qnv0mkjndhb0syc8ih15dpak"))))
10348 (build-system meson-build-system)
10349 (arguments
10350 (list
10351 #:glib-or-gtk? #t
10352 #:phases
10353 #~(modify-phases %standard-phases
10354 (add-after 'unpack 'skip-gtk-update-icon-cache
10355 (lambda _
10356 (substitute* "build-aux/meson/meson_post_install.py"
10357 (("gtk-update-icon-cache") "true"))))
10358 (delete 'check)
10359 (add-after 'install 'check
10360 (assoc-ref %standard-phases
10361 'check))
10362 (add-before 'check 'pre-check
10363 (lambda _
10364 (setenv "GSETTINGS_SCHEMA_DIR"
10365 (string-append #$output "/share/glib-2.0/schemas")))))))
10366 (native-inputs
10367 (list gettext-minimal
10368 gobject-introspection
10369 `(,glib "bin") ;for glib-compile-resources
10370 `(,gtk "bin") ;for gtk-update-icon-cache
10371 itstool
10372 pkg-config))
10373 (inputs
10374 (list rest ;for Todoist plugin
10375 gtk
10376 json-glib ;for Todoist plugin
10377 libadwaita
10378 evolution-data-server
10379 libical
10380 libpeas
10381 libportal
10382 python-pygobject
10383 evolution-data-server
10384 gnome-online-accounts
10385 gsettings-desktop-schemas))
10386 (home-page "https://wiki.gnome.org/Apps/Todo")
10387 (synopsis "GNOME's ToDo Application")
10388 (description "GNOME To Do is a simplistic personal task manager designed
10389 to perfectly fit the GNOME desktop.")
10390 (license license:gpl3+)))
10391
10392 (define-public gnome-todo
10393 (deprecated-package "gnome-todo" endeavour))
10394
10395 (define-public gnome-dictionary
10396 (package
10397 (name "gnome-dictionary")
10398 (version "40.0")
10399 (source (origin
10400 (method url-fetch)
10401 (uri (string-append "mirror://gnome/sources/" name "/"
10402 (version-major version) "/"
10403 name "-" version ".tar.xz"))
10404 (sha256
10405 (base32
10406 "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f"))))
10407 (build-system meson-build-system)
10408 (arguments
10409 `(#:glib-or-gtk? #t
10410 #:phases
10411 (modify-phases %standard-phases
10412 (add-after 'unpack 'skip-gtk-update-icon-cache
10413 ;; Don't create 'icon-theme.cache'.
10414 (lambda _
10415 (substitute* "build-aux/meson/post-install.py"
10416 (("gtk-update-icon-cache") "true")))))))
10417 (native-inputs
10418 (list `(,glib "bin")
10419 gobject-introspection
10420 intltool
10421 itstool
10422 pkg-config
10423 libxml2))
10424 (inputs
10425 (list gsettings-desktop-schemas
10426 gtk+))
10427 (home-page "https://wiki.gnome.org/Apps/Dictionary")
10428 (synopsis "Look up words in dictionary sources")
10429 (description
10430 "GNOME Dictionary can look for the definition or translation of a word in
10431 existing databases over the internet.")
10432 (license license:gpl3+)))
10433
10434 (define-public gnome-tweaks
10435 (package
10436 (name "gnome-tweaks")
10437 (version "40.10")
10438 (source (origin
10439 (method url-fetch)
10440 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
10441 (version-major version) "/"
10442 "gnome-tweaks-" version ".tar.xz"))
10443 (patches
10444 (list (search-patch "gnome-tweaks-search-paths.patch")))
10445 (sha256
10446 (base32
10447 "1z13xy804hld9q8k0vq5y4j5jk7m0ayqzkli8jxpymwrlcrkpzfg"))))
10448 (build-system meson-build-system)
10449 (arguments
10450 (list
10451 #:glib-or-gtk? #t
10452 #:configure-flags #~(list "-Dlocalstatedir=/tmp"
10453 "-Dsysconfdir=/tmp")
10454 #:imported-modules `((guix build python-build-system)
10455 ,@%meson-build-system-modules)
10456 #:modules '((guix build meson-build-system)
10457 ((guix build python-build-system) #:prefix python:)
10458 (guix build utils))
10459 #:phases
10460 #~(modify-phases %standard-phases
10461 (add-after 'unpack 'skip-gtk-update-icon-cache
10462 ;; Don't create 'icon-theme.cache'.
10463 (lambda _
10464 (substitute* "meson-postinstall.py"
10465 (("gtk-update-icon-cache") "true"))))
10466 (add-after 'install 'wrap
10467 (assoc-ref python:%standard-phases 'wrap))
10468 (add-after 'wrap 'wrap-gi-typelib-and-python
10469 (lambda* (#:key inputs outputs #:allow-other-keys)
10470 (wrap-program (search-input-file outputs "bin/gnome-tweaks")
10471 `("GI_TYPELIB_PATH" ":" prefix
10472 (,(getenv "GI_TYPELIB_PATH")))
10473 `("GUIX_PYTHONPATH" ":" prefix
10474 (,(python:site-packages inputs outputs)))))))))
10475 (native-inputs
10476 (list `(,glib "bin") ; for glib-compile-resources, etc.
10477 gettext-minimal
10478 pkg-config))
10479 (inputs
10480 (list bash-minimal ; to execute the wrapper program
10481 gnome-desktop
10482 gtk+
10483 gobject-introspection
10484 gsettings-desktop-schemas
10485 libhandy
10486 libnotify
10487 libsoup
10488 nautilus
10489 python
10490 python-pygobject))
10491 (synopsis "Customize advanced GNOME 3 options")
10492 (home-page "https://wiki.gnome.org/Apps/Tweaks")
10493 (description
10494 "GNOME Tweaks allows adjusting advanced configuration settings in
10495 GNOME 3. This includes things like the fonts used in user interface elements,
10496 alternative user interface themes, changes in window management behavior,
10497 GNOME Shell appearance and extension, etc.")
10498 (license license:gpl3+)))
10499
10500 (define-public gnome-shell-extensions
10501 (package
10502 (name "gnome-shell-extensions")
10503 (version "42.3")
10504 (source (origin
10505 (method url-fetch)
10506 (uri (string-append "mirror://gnome/sources/" name "/"
10507 (version-major version) "/"
10508 name "-" version ".tar.xz"))
10509 (sha256
10510 (base32
10511 "1z3k4bvq8f2s0q9q7i093w4hrz289lci7xlib20aqa4z5sivxhhf"))))
10512 (build-system meson-build-system)
10513 (arguments
10514 '(#:configure-flags '("-Dextension_set=all")))
10515 (native-inputs
10516 (list `(,glib "bin")
10517 gettext-minimal
10518 pkg-config))
10519 (propagated-inputs
10520 (list glib))
10521 (synopsis "Extensions for GNOME Shell")
10522 (description "GNOME Shell extensions modify and extend GNOME Shell
10523 functionality and behavior.")
10524 (home-page "https://extensions.gnome.org/")
10525 (license license:gpl3+)))
10526
10527 (define-public folks
10528 (package
10529 (name "folks")
10530 (version "0.15.5")
10531 (source (origin
10532 (method url-fetch)
10533 (uri (string-append
10534 "mirror://gnome/sources/folks/"
10535 (version-major+minor version) "/"
10536 "folks-" version ".tar.xz"))
10537 (sha256
10538 (base32
10539 "11lhfn6b7gml4ckj2dkm6g889j21wpvj90srwjp85k9hcf4qmzqg"))))
10540 (build-system meson-build-system)
10541 (arguments
10542 '(#:phases
10543 (modify-phases %standard-phases
10544 (add-after 'unpack 'skip-gtk-update-icon-cache
10545 ;; Don't create 'icon-theme.cache'.
10546 (lambda _
10547 (substitute* "meson_post_install.py"
10548 (("gtk-update-icon-cache") "true")))))))
10549 (inputs
10550 (list bdb
10551 dbus-glib
10552 evolution-data-server
10553 glib
10554 libgee
10555 readline
10556 telepathy-glib))
10557 (native-inputs
10558 (list gettext-minimal
10559 `(,glib "bin")
10560 gobject-introspection
10561 python-dbusmock
10562 pkg-config
10563 python
10564 vala))
10565 (synopsis "Library to aggregate data about people")
10566 (description "Libfolks is a library that aggregates information about people
10567 from multiple sources (e.g., Telepathy connection managers for IM contacts,
10568 Evolution Data Server for local contacts, libsocialweb for web service contacts,
10569 etc.) to create metacontacts. It's written in Vala, which generates C code when
10570 compiled.")
10571 (home-page "https://wiki.gnome.org/Projects/Folks")
10572 (license license:lgpl2.1+)))
10573
10574 (define-public folks-with-libsoup2
10575 (package
10576 (inherit folks)
10577 (name "folks-with-libsoup2")
10578 (inputs
10579 (modify-inputs (package-inputs folks)
10580 (replace "evolution-data-server" evolution-data-server-3.44)))))
10581
10582 (define-public gfbgraph
10583 (package
10584 (name "gfbgraph")
10585 (version "0.2.5")
10586 (source (origin
10587 (method url-fetch)
10588 (uri (string-append
10589 "mirror://gnome/sources/gfbgraph/"
10590 (version-major+minor version) "/"
10591 "gfbgraph-" version ".tar.xz"))
10592 (sha256
10593 (base32
10594 "1qq3cryhby50xms8zh4s6fmw5p0i7dpg1wvsz5ni78cbyyrq3cww"))))
10595 (build-system glib-or-gtk-build-system)
10596 (arguments
10597 `(#:configure-flags '("--disable-static")))
10598 (native-inputs
10599 (list gobject-introspection
10600 gtk-doc/stable
10601 pkg-config))
10602 (inputs
10603 (list gnome-online-accounts
10604 json-glib
10605 rest))
10606 (synopsis "GLib/GObject wrapper for the Facebook API")
10607 (description "This library allows you to use the Facebook API from
10608 GLib/GObject code.")
10609 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
10610 (license license:lgpl2.1+)))
10611
10612 (define-public libgnomekbd
10613 (package
10614 (name "libgnomekbd")
10615 (version "3.28.1")
10616 (source (origin
10617 (method url-fetch)
10618 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
10619 (version-major+minor version) "/"
10620 "libgnomekbd-" version ".tar.xz"))
10621 (sha256
10622 (base32
10623 "0w78ix6f52xv0hw1h6fzqh47pk1fwr077agma19hdh3kdmb5kp12"))))
10624 (build-system gnu-build-system)
10625 (native-inputs
10626 (list autoconf
10627 automake
10628 `(,glib "bin")
10629 libtool
10630 pkg-config
10631 gettext-minimal
10632 gobject-introspection))
10633 (propagated-inputs
10634 ;; Referred to in .h files and .pc.
10635 (list glib
10636 gtk+
10637 libxklavier))
10638 (home-page "https://www.gnome.org")
10639 (synopsis "GNOME keyboard configuration library")
10640 (description
10641 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
10642 environment, which can notably display keyboard layouts.")
10643 (license license:lgpl2.0+)))
10644
10645 ;;; This package is no longer maintained:
10646 ;;; https://wiki.gnome.org/Attic/LibUnique
10647 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
10648 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
10649 (define-public libunique
10650 (package
10651 (name "libunique")
10652 (version "3.0.2")
10653 (source (origin
10654 (method url-fetch)
10655 (uri (string-append "mirror://gnome/sources/" name "/"
10656 (version-major+minor version) "/"
10657 name "-" version ".tar.xz"))
10658 (sha256
10659 (base32
10660 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
10661 (build-system glib-or-gtk-build-system)
10662 (arguments
10663 `(#:configure-flags '("--disable-static"
10664 "--disable-dbus" ; use gdbus
10665 "--enable-introspection")))
10666 (native-inputs
10667 `(("pkg-config" ,pkg-config)
10668 ("gobject-introspection" ,gobject-introspection)
10669 ("glib:bin" ,glib "bin")
10670 ("gtk-doc" ,gtk-doc/stable)))
10671 (propagated-inputs
10672 ;; Referred to in .h files and .pc.
10673 (list gtk+))
10674 (home-page "https://wiki.gnome.org/Attic/LibUnique")
10675 (synopsis "Library for writing single instance applications")
10676 (description
10677 "Libunique is a library for writing single instance applications. If you
10678 launch a single instance application twice, the second instance will either just
10679 quit or will send a message to the running instance. Libunique makes it easy to
10680 write this kind of application, by providing a base class, taking care of all
10681 the IPC machinery needed to send messages to a running instance, and also
10682 handling the startup notification side.")
10683 (license license:lgpl2.1+)))
10684
10685 (define-public gnome-calculator
10686 (package
10687 (name "gnome-calculator")
10688 (version "42.2")
10689 (source
10690 (origin
10691 (method url-fetch)
10692 (uri (string-append "mirror://gnome/sources/" name "/"
10693 (version-major version) "/"
10694 name "-" version ".tar.xz"))
10695 (sha256
10696 (base32
10697 "1866qn0r9xp7b7j1436kry2k3bdh9ikhz2wm41jxcn1nljyb3nik"))))
10698 (build-system meson-build-system)
10699 (arguments
10700 '(#:glib-or-gtk? #t
10701 #:phases
10702 (modify-phases %standard-phases
10703 (add-after 'unpack 'skip-gtk-update-icon-cache
10704 (lambda _
10705 (substitute* "meson.build"
10706 (("gtk_update_icon_cache: true")
10707 "gtk_update_icon_cache: false"))))
10708 (add-before 'check 'pre-check
10709 (lambda _
10710 ;; Tests require a writable HOME.
10711 (setenv "HOME" (getcwd)))))))
10712 (native-inputs
10713 (list gettext-minimal
10714 `(,glib "bin") ;for glib-compile-schemas, gio-2.0.
10715 itstool
10716 pkg-config
10717 python
10718 vala))
10719 (inputs
10720 (list gsettings-desktop-schemas-next
10721 gtksourceview
10722 libadwaita
10723 libgee
10724 libhandy
10725 libsoup-minimal-2
10726 libxml2
10727 mpc
10728 mpfr))
10729 (home-page "https://wiki.gnome.org/Apps/Calculator")
10730 (synopsis "Desktop calculator")
10731 (description
10732 "Calculator is an application that solves mathematical equations and
10733 is suitable as a default application in a Desktop environment.")
10734 (license license:gpl3)))
10735
10736 (define-public xpad
10737 (package
10738 (name "xpad")
10739 (version "5.8.0")
10740 (source
10741 (origin
10742 (method url-fetch)
10743 (uri (string-append "https://launchpad.net/xpad/trunk/"
10744 version "/+download/"
10745 name "-" version ".tar.bz2"))
10746 (sha256
10747 (base32
10748 "1sc2dz4yxx6glnqpnhiby85g2blnsfn8d3fvbaqhdi2hi0q54q7j"))))
10749 (build-system gnu-build-system)
10750 (native-inputs
10751 (list autoconf automake
10752 `(,gtk+ "bin") intltool pkg-config))
10753 (inputs
10754 (list gtksourceview libsm))
10755 (home-page "https://wiki.gnome.org/Apps/Xpad")
10756 (synopsis "Virtual sticky note")
10757 (description
10758 "Xpad is a sticky note that strives to be simple, fault tolerant,
10759 and customizable. Xpad consists of independent pad windows, each is
10760 basically a text box in which notes can be written.")
10761 (license license:gpl3+)))
10762
10763 (define-public gucharmap
10764 (let ((unicode-files
10765 '(("Blocks.txt"
10766 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
10767 ("DerivedAge.txt"
10768 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
10769 ("NamesList.txt"
10770 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
10771 ("Scripts.txt"
10772 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
10773 ("UnicodeData.txt"
10774 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
10775 ("Unihan.zip"
10776 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
10777 (package
10778 (name "gucharmap")
10779 (version "12.0.1")
10780 (source
10781 (origin
10782 (method url-fetch)
10783 (uri (string-append "mirror://gnome/sources/" name "/"
10784 (version-major+minor version) "/"
10785 name "-" version ".tar.xz"))
10786 (sha256
10787 (base32
10788 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
10789 (build-system glib-or-gtk-build-system)
10790 (arguments
10791 `(#:modules ((ice-9 match)
10792 (guix build glib-or-gtk-build-system)
10793 (guix build utils))
10794 #:configure-flags
10795 (list "--with-unicode-data=../unicode-data")
10796 #:phases
10797 (modify-phases %standard-phases
10798 (add-after 'unpack 'prepare-unicode-data
10799 (lambda* (#:key inputs #:allow-other-keys)
10800 (mkdir-p "../unicode-data")
10801 (with-directory-excursion "../unicode-data"
10802 (for-each (match-lambda
10803 ((file _)
10804 (install-file (assoc-ref inputs file) ".")))
10805 ',unicode-files))
10806 #t)))))
10807 (native-inputs
10808 `(("desktop-file-utils" ,desktop-file-utils)
10809 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
10810 ("gobject-introspection" ,gobject-introspection)
10811 ("intltool" ,intltool)
10812 ("itstool" ,itstool)
10813 ("pkg-config" ,pkg-config)
10814 ,@(map (match-lambda
10815 ((file hash)
10816 `(,file
10817 ,(origin
10818 (method url-fetch)
10819 (uri (string-append
10820 "http://www.unicode.org/Public/12.0.0/ucd/"
10821 file))
10822 (sha256 (base32 hash))))))
10823 unicode-files)
10824 ("unzip" ,unzip)))
10825 (inputs
10826 `(("gtk+" ,gtk+)
10827 ("xmllint" ,libxml2)))
10828 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
10829 (synopsis "Unicode character picker and font browser")
10830 (description
10831 "This program allows you to browse through all the available Unicode
10832 characters and categories for the installed fonts, and to examine their
10833 detailed properties. It is an easy way to find the character you might
10834 only know by its Unicode name or code point.")
10835 (license license:gpl3+))))
10836
10837 (define-public gcolor3
10838 (package
10839 (name "gcolor3")
10840 (version "2.4.0")
10841 (source
10842 (origin
10843 (method git-fetch)
10844 (uri (git-reference
10845 (url "https://gitlab.gnome.org/World/gcolor3")
10846 (commit (string-append "v" version))))
10847 (file-name (git-file-name name version))
10848 (sha256
10849 (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc"))
10850 ;; XXX: Remove when upgrading
10851 (patches (search-patches "gcolor3-update-libportal-usage.patch"))))
10852 (build-system meson-build-system)
10853 (arguments
10854 `(#:glib-or-gtk? #t))
10855 (native-inputs
10856 (list desktop-file-utils gettext-minimal
10857 `(,glib "bin")
10858 `(,gtk+ "bin") pkg-config))
10859 (inputs
10860 (list gsettings-desktop-schemas gtk+ libportal))
10861 (home-page "https://www.hjdskes.nl/projects/gcolor3/")
10862 (synopsis "Simple color chooser written in GTK3")
10863 (description "Color Picker is a simple color chooser written in GTK3. It
10864 supports both X and Wayland display servers.")
10865 (license license:gpl2+)))
10866
10867 (define-public bluefish
10868 (package
10869 (name "bluefish")
10870 (version "2.2.12")
10871 (source
10872 (origin
10873 (method url-fetch)
10874 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
10875 "bluefish-" version ".tar.gz"))
10876 (sha256
10877 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
10878 (build-system gnu-build-system)
10879 (native-inputs
10880 (list desktop-file-utils intltool pkg-config))
10881 (inputs
10882 (list enchant gtk+ python-wrapper libxml2 gucharmap))
10883 (home-page "http://bluefish.openoffice.nl")
10884 (synopsis "Web development studio")
10885 (description
10886 "Bluefish is an editor aimed at programmers and web developers,
10887 with many options to write web sites, scripts and other code.
10888 Bluefish supports many programming and markup languages.")
10889 (license license:gpl3+)))
10890
10891 (define-public gnome-system-monitor
10892 (package
10893 (name "gnome-system-monitor")
10894 (version "42.0")
10895 (source
10896 (origin
10897 (method url-fetch)
10898 (uri (string-append "mirror://gnome/sources/" name "/"
10899 (version-major version) "/"
10900 name "-" version ".tar.xz"))
10901 (sha256
10902 (base32
10903 "1p3mq32pfd9260aql5nys806g0c4nrswacwqs8ms40920ci9s8qk"))))
10904 (build-system meson-build-system)
10905 (arguments
10906 '(#:glib-or-gtk? #t
10907 #:configure-flags '("-Dsystemd=false")))
10908 (native-inputs
10909 (list `(,glib "bin") ;for glib-mkenums.
10910 `(,gtk+ "bin") ;gtk-update-icon-cache
10911 intltool
10912 itstool
10913 libgtop
10914 polkit
10915 pkg-config))
10916 (inputs
10917 (list gdk-pixbuf ;for loading SVG files.
10918 gtk+
10919 gtkmm-3
10920 libhandy
10921 librsvg
10922 libxml2
10923 libwnck))
10924 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10925 (synopsis "Process viewer and system resource monitor for GNOME")
10926 (description
10927 "GNOME System Monitor is a GNOME process viewer and system monitor with
10928 an attractive, easy-to-use interface. It has features, such as a tree view
10929 for process dependencies, icons for processes, the ability to hide processes,
10930 graphical time histories of CPU/memory/swap usage and the ability to
10931 kill/reinice processes.")
10932 (license license:gpl2+)))
10933
10934 (define-public python-pyatspi
10935 (package
10936 (name "python-pyatspi")
10937 (version "2.45.90")
10938 (source (origin
10939 (method url-fetch)
10940 (uri (string-append
10941 "mirror://gnome/sources/pyatspi/"
10942 (version-major+minor version)
10943 "/pyatspi-" version ".tar.xz"))
10944 (sha256
10945 (base32
10946 "1fggihg4xmwia0xgjkcraiqk76jvyrj1pcsw99rjh4yn3kygisrh"))))
10947 (build-system gnu-build-system)
10948 (arguments
10949 `(#:phases
10950 (modify-phases %standard-phases
10951 (add-before 'build 'fix-atk-load
10952 (lambda _
10953 (substitute* "pyatspi/__init__.py"
10954 (("from gi.repository import Atspi")
10955 "gi.require_version('Gtk', '3.0')
10956 from gi.repository import Gtk
10957 from gi.repository import Atspi")))))))
10958 (native-inputs
10959 (list pkg-config))
10960 (inputs
10961 (list python))
10962 (propagated-inputs
10963 (list python-pygobject))
10964 (synopsis "Python client bindings for D-Bus AT-SPI")
10965 (home-page "https://wiki.linuxfoundation.org/accessibility\
10966 /atk/at-spi/at-spi_on_d-bus")
10967 (description
10968 "This package includes a python client library for the AT-SPI D-Bus
10969 accessibility infrastructure.")
10970 (license license:lgpl2.0)
10971 (properties '((upstream-name . "pyatspi")))))
10972
10973 (define-public orca
10974 (package
10975 (name "orca")
10976 (version "42.3")
10977 (source (origin
10978 (method url-fetch)
10979 (uri (string-append
10980 "mirror://gnome/sources/" name "/"
10981 (version-major version) "/"
10982 name "-" version ".tar.xz"))
10983 (sha256
10984 (base32
10985 "097pyav3z5ssic8vwd7v1s7vynpycdpyfr324rr6c7mfzq5vmp7s"))))
10986 (build-system glib-or-gtk-build-system)
10987 (arguments
10988 '(#:phases
10989 (modify-phases %standard-phases
10990 (add-before 'configure 'qualify-xkbcomp
10991 (lambda* (#:key inputs #:allow-other-keys)
10992 (let ((xkbcomp (string-append
10993 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10994 (substitute* "src/orca/orca.py"
10995 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))))
10996 (add-after 'install 'wrap-orca
10997 (lambda* (#:key outputs #:allow-other-keys)
10998 (wrap-program (search-input-file outputs "bin/orca")
10999 `("GI_TYPELIB_PATH" ":" prefix
11000 (,(getenv "GI_TYPELIB_PATH")))
11001 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
11002 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
11003 `("GUIX_PYTHONPATH" ":" prefix
11004 (,(getenv "GUIX_PYTHONPATH")))))))))
11005 (native-inputs
11006 (list gettext-minimal
11007 itstool
11008 pkg-config
11009 libxml2))
11010 (inputs
11011 (list at-spi2-atk
11012 bash-minimal
11013 gsettings-desktop-schemas
11014 gstreamer
11015 gst-plugins-base
11016 gst-plugins-good
11017 gtk+
11018 python
11019 python-pygobject
11020 python-pyatspi
11021 speech-dispatcher
11022 xkbcomp))
11023 (synopsis
11024 "Screen reader for individuals who are blind or visually impaired")
11025 (home-page "https://wiki.gnome.org/Projects/Orca")
11026 (description
11027 "Orca is a screen reader that provides access to the graphical desktop
11028 via speech and refreshable braille. Orca works with applications and toolkits
11029 that support the Assistive Technology Service Provider Interface (AT-SPI).")
11030 (license license:lgpl2.1+)))
11031
11032 (define-public gspell
11033 (package
11034 (name "gspell")
11035 (version "1.11.1")
11036 (source (origin
11037 (method url-fetch)
11038 (uri (string-append "mirror://gnome/sources/" name "/"
11039 (version-major+minor version) "/"
11040 name "-" version ".tar.xz"))
11041 (sha256
11042 (base32
11043 "14h2w0yzqwaw5dykmhh21sy2c96g17waahg2lxc52xqiyzis8spg"))))
11044 (build-system glib-or-gtk-build-system)
11045 (arguments
11046 '(#:configure-flags (list "--enable-vala")
11047 #:phases
11048 (modify-phases %standard-phases
11049 (add-after 'unpack 'disable-problematic-tests
11050 (lambda _
11051 (substitute* "testsuite/test-checker.c"
11052 ;; This test is known to fail with Aspell, as a comment
11053 ;; mentions it. Disable it.
11054 ((".*g_test_add_func.*test_dashes.*") ""))))
11055 (add-before 'check 'pre-check
11056 (lambda* (#:key inputs #:allow-other-keys)
11057 ;; Tests require a running X server.
11058 (system "Xvfb :1 &")
11059 (setenv "DISPLAY" ":1")
11060
11061 ;; For the missing /etc/machine-id.
11062 (setenv "DBUS_FATAL_WARNINGS" "0")
11063
11064 ;; Allow Enchant and its Aspell backend to find the en_US
11065 ;; dictionary.
11066 (setenv "ASPELL_DICT_DIR"
11067 (search-input-directory inputs "/lib/aspell")))))))
11068 (inputs
11069 (list iso-codes))
11070 (native-inputs
11071 (list `(,glib "bin")
11072 gobject-introspection
11073 pkg-config
11074 vala ;for VAPI, needed by Geary
11075 libxml2
11076
11077 ;; For tests.
11078 aspell-dict-en
11079 xorg-server-for-tests))
11080 (propagated-inputs
11081 ;; Referred by .pc file.
11082 (list enchant
11083 glib
11084 gtk+))
11085 (home-page "https://wiki.gnome.org/Projects/gspell")
11086 (synopsis "GNOME's alternative spell checker")
11087 (description
11088 "gspell provides a flexible API to add spell-checking to a GTK+
11089 application. It provides a GObject API, spell-checking to text entries and
11090 text views, and buttons to choose the language.")
11091 (license license:gpl2+)))
11092
11093 (define-public gnome-planner
11094 (package
11095 (name "gnome-planner")
11096 (version "0.14.6")
11097 (source (origin
11098 (method url-fetch)
11099 (uri (string-append "mirror://gnome/sources/planner/"
11100 (version-major+minor version) "/planner-"
11101 version ".tar.xz"))
11102 (sha256
11103 (base32
11104 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
11105 (build-system glib-or-gtk-build-system)
11106 (arguments
11107 ;; Disable the Python bindings because the Planner program functions
11108 ;; without them, and (as of 2017-06-13) we have not packaged all of
11109 ;; packages that are necessary for building the Python bindings.
11110 `(#:configure-flags
11111 (list "--disable-python"
11112 ,@(if (string=? "aarch64-linux" (%current-system))
11113 '("--build=aarch64-unknown-linux-gnu")
11114 '()))))
11115 (inputs
11116 (list libgnomecanvas
11117 libgnomeui
11118 libglade
11119 gnome-vfs
11120 gconf
11121 libxml2
11122 libxslt
11123 gtk+
11124 glib))
11125 (native-inputs
11126 (list intltool scrollkeeper pkg-config))
11127 (home-page "https://wiki.gnome.org/Apps/Planner")
11128 (synopsis "Project management software for the GNOME desktop")
11129 (description
11130 "GNOME Planner is a project management tool based on the Work Breakdown
11131 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
11132 the resources, tasks, and constraints that you define, Planner generates
11133 various views into a project. For example, Planner can show a Gantt chart of
11134 the project. It can show a detailed summary of tasks including their
11135 duration, cost, and current progress. It can also show a report of resource
11136 utilization that highlights under-utilized and over-utilized resources. These
11137 views can be printed as PDF or PostScript files, or exported to HTML.")
11138 (license license:gpl2+)))
11139
11140 (define-public lollypop
11141 (package
11142 (name "lollypop")
11143 (version "1.4.35")
11144 (source
11145 (origin
11146 (method url-fetch)
11147 (uri (string-append "https://adishatz.org/lollypop/"
11148 "lollypop-" version ".tar.xz"))
11149 (sha256
11150 (base32 "0rvwj18x1gs7fgvniijzvlmgmzcgr7il22zclzsn5nkl8xbwgzk0"))))
11151 (build-system meson-build-system)
11152 (arguments
11153 `(#:imported-modules (,@%meson-build-system-modules
11154 (guix build python-build-system))
11155 #:modules ((guix build meson-build-system)
11156 ((guix build python-build-system) #:prefix python:)
11157 (guix build utils))
11158 #:glib-or-gtk? #t
11159 #:phases
11160 (modify-phases %standard-phases
11161 (add-after 'unpack 'disable-gtk-update-icon-cache
11162 (lambda _
11163 (setenv "DESTDIR" "/")))
11164 (add-after 'install 'wrap-program
11165 (lambda* (#:key outputs #:allow-other-keys)
11166 (wrap-program (search-input-file outputs "bin/lollypop")
11167 `("GI_TYPELIB_PATH" ":" prefix
11168 (,(getenv "GI_TYPELIB_PATH"))))))
11169 (add-after 'install 'wrap-python
11170 (assoc-ref python:%standard-phases 'wrap)))))
11171 (native-inputs
11172 (list gettext-minimal
11173 `(,glib "bin") ; For glib-compile-resources
11174 pkg-config))
11175 (inputs
11176 (list bash-minimal
11177 glib-networking
11178 gobject-introspection
11179 gsettings-desktop-schemas
11180 gst-plugins-base
11181 libnotify
11182 libsecret
11183 libhandy
11184 libsoup-minimal-2
11185 python
11186 python-beautifulsoup4
11187 python-gst
11188 python-pillow
11189 python-pycairo
11190 python-pygobject
11191 python-pylast
11192 totem-pl-parser
11193 webkitgtk))
11194 (propagated-inputs
11195 (list gst-plugins-good ;required to start lollypop
11196 gst-plugins-ugly)) ;required for streaming
11197 (home-page "https://wiki.gnome.org/Apps/Lollypop")
11198 (synopsis "GNOME music playing application")
11199 (description
11200 "Lollypop is a music player designed to play well with GNOME desktop.
11201 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
11202 from artists and tracks from the web. It also fetches cover artworks
11203 automatically and it can stream songs from online music services and charts.")
11204 (license license:gpl3+)))
11205
11206 (define-public gnome-video-effects
11207 (package
11208 (name "gnome-video-effects")
11209 (version "0.5.0")
11210 (source (origin
11211 (method url-fetch)
11212 (uri (string-append "mirror://gnome/sources/" name "/"
11213 (version-major+minor version) "/" name "-"
11214 version ".tar.xz"))
11215 (sha256
11216 (base32
11217 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
11218 (build-system meson-build-system)
11219 (native-inputs
11220 (list gettext-minimal pkg-config))
11221 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
11222 (synopsis "Video effects for Cheese and other GNOME applications")
11223 (description
11224 "A collection of GStreamer video filters and effects to be used in
11225 photo-booth-like software, such as Cheese.")
11226 (license license:gpl2+)))
11227
11228 (define-public cheese
11229 (package
11230 (name "cheese")
11231 (version "41.1")
11232 (source (origin
11233 (method url-fetch)
11234 (uri (string-append "mirror://gnome/sources/" name "/"
11235 (version-major version) "/" name "-"
11236 version ".tar.xz"))
11237 (sha256
11238 (base32
11239 "0iz5cwndl65j13z5pmv0ansln2lyii0h82q775jgc3vk53560aaj"))))
11240 (arguments
11241 `(#:glib-or-gtk? #t
11242 #:phases
11243 (modify-phases %standard-phases
11244 (add-after 'unpack 'skip-gtk-update-icon-cache
11245 (lambda _
11246 ;; Don't create 'icon-theme.cache'
11247 (substitute* "meson_post_install.py"
11248 (("gtk-update-icon-cache") (which "true")))))
11249 (add-after 'install 'wrap-cheese
11250 (lambda* (#:key inputs outputs #:allow-other-keys)
11251 (wrap-program (search-input-file outputs "bin/cheese")
11252 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
11253 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))))))))
11254 (build-system meson-build-system)
11255 (native-inputs
11256 (list docbook-xsl
11257 docbook-xml-4.3
11258 gettext-minimal
11259 `(,glib "bin")
11260 gobject-introspection
11261 gtk-doc/stable
11262 itstool
11263 libxml2
11264 libxslt
11265 pkg-config
11266 vala))
11267 (propagated-inputs
11268 (list bash-minimal
11269 gnome-video-effects
11270 clutter
11271 clutter-gst
11272 clutter-gtk
11273 libcanberra
11274 gdk-pixbuf
11275 glib
11276 gstreamer))
11277 (inputs
11278 (list gnome-desktop
11279 gst-plugins-base
11280 gst-plugins-good
11281 gst-plugins-bad
11282 gtk+
11283 libx11
11284 libxtst))
11285 (home-page "https://wiki.gnome.org/Apps/Cheese")
11286 (synopsis "Webcam photo booth software for GNOME")
11287 (description
11288 "Cheese uses your webcam to take photos and videos. Cheese can also
11289 apply fancy special effects and lets you share the fun with others.")
11290 (license license:gpl2+)))
11291
11292 (define-public secrets
11293 (package
11294 (name "secrets")
11295 (version "6.5")
11296 (source
11297 (origin
11298 (method git-fetch)
11299 (uri (git-reference
11300 (url "https://gitlab.gnome.org/World/secrets")
11301 (commit version)))
11302 (file-name (git-file-name name version))
11303 (sha256
11304 (base32 "11jd9f0d3fyrs29p8cyzb6i2ib6mzhwwvjnznl55gkggrgnrcb8z"))))
11305 (build-system meson-build-system)
11306 (arguments
11307 (list
11308 #:glib-or-gtk? #t
11309 #:imported-modules `(,@%meson-build-system-modules
11310 (guix build python-build-system))
11311 #:modules '((guix build meson-build-system)
11312 ((guix build python-build-system) #:prefix python:)
11313 (guix build utils))
11314 #:phases
11315 #~(modify-phases %standard-phases
11316 (add-after 'unpack 'disable-postinstall-script
11317 (lambda _
11318 (substitute* "meson.build"
11319 (("gtk_update_icon_cache: true")
11320 "gtk_update_icon_cache: false"))
11321 (setenv "DESTDIR" "/")))
11322 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11323 (lambda* (#:key inputs outputs #:allow-other-keys)
11324 (wrap-program (search-input-file outputs "bin/secrets")
11325 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
11326 ,(python:site-packages inputs outputs)))
11327 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
11328 (native-inputs
11329 (list desktop-file-utils
11330 gettext-minimal
11331 `(,glib "bin")
11332 gobject-introspection
11333 pkg-config))
11334 (inputs
11335 (list bash-minimal
11336 glib
11337 gsettings-desktop-schemas
11338 gtk
11339 libadwaita
11340 libhandy
11341 libpwquality
11342 python
11343 python-pygobject
11344 python-pykeepass
11345 python-pyotp))
11346 (home-page "https://gitlab.gnome.org/World/secrets")
11347 (synopsis "Password manager for the GNOME desktop")
11348 (description
11349 "Secrets is a password manager which makes use of the KeePass v4
11350 format. It integrates perfectly with the GNOME desktop and provides an easy
11351 and uncluttered interface for the management of password databases.")
11352 (license license:gpl3+)))
11353
11354 (define-public passwordsafe
11355 (deprecated-package "passwordsafe" secrets))
11356
11357 (define-public sound-juicer
11358 (package
11359 (name "sound-juicer")
11360 (version "3.38.0")
11361 (source
11362 (origin
11363 (method url-fetch)
11364 (uri (string-append "mirror://gnome/sources/" name "/"
11365 (version-major+minor version) "/"
11366 name "-" version ".tar.xz"))
11367 (sha256
11368 (base32
11369 "08d5d81rz9sj3m5paw8fwbgxmhlbr7bcjdzpmzj832qvg8smydxf"))))
11370 (build-system meson-build-system)
11371 (arguments
11372 (list
11373 #:glib-or-gtk? #t
11374 #:phases #~(modify-phases %standard-phases
11375 (add-after 'unpack 'disable-gtk-update-icon-cache
11376 (lambda _
11377 (setenv "DESTDIR" "/"))))))
11378 (native-inputs
11379 (list desktop-file-utils
11380 gettext-minimal
11381 `(,glib "bin")
11382 itstool
11383 libxml2
11384 pkg-config
11385 python))
11386 (inputs
11387 (list brasero
11388 gsettings-desktop-schemas
11389 gst-plugins-base
11390 gst-plugins-good
11391 gstreamer
11392 gtk+
11393 iso-codes
11394 libcanberra
11395 libdiscid
11396 libmusicbrainz
11397 neon))
11398 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
11399 (synopsis "Audio music cd ripper")
11400 (description "Sound Juicer extracts audio from compact discs and convert it
11401 into audio files that a personal computer or digital audio player can play.
11402 It supports ripping to any audio codec supported by a GStreamer plugin, such as
11403 mp3, Ogg Vorbis and FLAC")
11404 (license license:gpl2+)))
11405
11406 (define-public soundconverter
11407 (package
11408 (name "soundconverter")
11409 (version "3.0.2")
11410 (source
11411 (origin
11412 (method url-fetch)
11413 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
11414 version "/+download/"
11415 "soundconverter-" version ".tar.xz"))
11416
11417 (sha256
11418 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
11419 (build-system glib-or-gtk-build-system)
11420 (arguments
11421 `(#:imported-modules ((guix build python-build-system)
11422 (guix build glib-or-gtk-build-system)
11423 ,@%gnu-build-system-modules)
11424
11425 #:modules ((guix build glib-or-gtk-build-system)
11426 (guix build utils)
11427 ((guix build gnu-build-system) #:prefix gnu:)
11428 ((guix build python-build-system) #:prefix python:))
11429
11430 #:phases
11431 (modify-phases %standard-phases
11432 (add-after 'install 'wrap-soundconverter-for-python
11433 (assoc-ref python:%standard-phases 'wrap))
11434 (add-after 'install 'wrap-soundconverter
11435 (lambda* (#:key inputs outputs #:allow-other-keys)
11436 (let ((out (assoc-ref outputs "out"))
11437 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
11438 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
11439 (wrap-program (string-append out "/bin/soundconverter")
11440 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
11441 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
11442 #t)))))
11443 (native-inputs
11444 `(("intltool" ,intltool)
11445 ("pkg-config" ,pkg-config)
11446 ("glib:bin" ,glib "bin")))
11447 (inputs
11448 (list gtk+ python python-pygobject gstreamer gst-plugins-base))
11449 (home-page "https://soundconverter.org/")
11450 (synopsis "Convert between audio formats with a graphical interface")
11451 (description
11452 "SoundConverter supports converting between many audio formats including
11453 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
11454 configurable file renaming.")
11455 (license license:gpl3)))
11456
11457 (define-public workrave
11458 (package
11459 (name "workrave")
11460 (version "1.10.50")
11461 (source
11462 (origin
11463 (method git-fetch)
11464 (uri (git-reference
11465 (url "https://github.com/rcaelers/workrave")
11466 (commit (string-append "v" (string-map
11467 (match-lambda (#\. #\_) (chr chr))
11468 version)))))
11469 (file-name (git-file-name name version))
11470 (sha256
11471 (base32 "0fj3fqmdn4nsjgvbbvzpxw2mgiihcr1zpb08amg2p6hg9n11y9bx"))))
11472 (build-system glib-or-gtk-build-system)
11473 (arguments
11474 ;; The only tests are maintainer tests (in po/), which fail.
11475 `(#:tests? #f))
11476 (inputs (list glib
11477 gtk+
11478 gdk-pixbuf
11479 gtkmm-3
11480 glibmm
11481 libx11
11482 libxtst
11483 dconf
11484 libice
11485 libsm
11486 libxscrnsaver))
11487 (native-inputs `(("boost" ,boost)
11488 ("pkg-config" ,pkg-config)
11489 ("gettext" ,gettext-minimal)
11490 ("autoconf" ,autoconf)
11491 ("autoconf-archive" , autoconf-archive)
11492 ("automake" ,automake)
11493 ("libtool" ,libtool)
11494 ("intltool" ,intltool)
11495 ("gobject-introspection" ,gobject-introspection)
11496 ("python3" ,python-3)
11497 ("python-jinja2" ,python-jinja2)))
11498 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
11499 (description
11500 "Workrave is a program that assists in the recovery and prevention of
11501 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
11502 micro-pauses and rest breaks, and restricts you to your daily limit.")
11503 (home-page "http://www.workrave.org")
11504 (license license:gpl3+)))
11505
11506 (define-public ghex
11507 (package
11508 (name "ghex")
11509 (version "42.3")
11510 (source (origin
11511 (method url-fetch)
11512 (uri (string-append "mirror://gnome/sources/ghex/"
11513 (version-major version) "/"
11514 "ghex-" version ".tar.xz"))
11515 (sha256
11516 (base32
11517 "1vsd6l78pymdrsgdgj7xhxyrf09j4w08zrbvs8qdn8a9na50zm5d"))))
11518 (build-system meson-build-system)
11519 (arguments
11520 '(#:glib-or-gtk? #t
11521 #:phases
11522 (modify-phases %standard-phases
11523 (add-after 'unpack 'skip-gtk-update-icon-cache
11524 ;; Don't create 'icon-theme.cache'.
11525 (lambda _
11526 (substitute* "meson.build"
11527 (("gtk_update_icon_cache: true")
11528 "gtk_update_icon_cache: false")))))))
11529 (native-inputs
11530 (list desktop-file-utils ;for 'desktop-file-validate'
11531 gettext-minimal
11532 `(,glib "bin") ;for glib-compile-schemas
11533 gnome-common
11534 pkg-config
11535 yelp-tools))
11536 (inputs
11537 (list atk
11538 gtk))
11539 (synopsis "GNOME hexadecimal editor")
11540 (description "The GHex program can view and edit files in two ways:
11541 hexadecimal or ASCII. It is useful for editing binary files in general.")
11542 (home-page "https://wiki.gnome.org/Apps/Ghex")
11543 (license license:gpl2)))
11544
11545 (define-public libdazzle
11546 (package
11547 (name "libdazzle")
11548 (version "3.44.0")
11549 (source (origin
11550 (method url-fetch)
11551 (uri (string-append "mirror://gnome/sources/libdazzle/"
11552 (version-major+minor version) "/"
11553 "libdazzle-" version ".tar.xz"))
11554 (sha256
11555 (base32
11556 "1blfs61ifv4fywl0wbr1cm3rvmgrv06yiqajbnq0qs72nrgf9lrw"))))
11557 (build-system meson-build-system)
11558 (arguments
11559 `(#:phases
11560 (modify-phases %standard-phases
11561 (add-before 'check 'pre-check
11562 (lambda _
11563 ;; Tests require a running X server.
11564 (system "Xvfb :1 &")
11565 (setenv "DISPLAY" ":1"))))))
11566 (native-inputs
11567 (list `(,glib "bin") ; glib-compile-resources
11568 gobject-introspection
11569 pkg-config
11570 ;; For tests.
11571 xorg-server-for-tests
11572 vala))
11573 (inputs
11574 (list glib
11575 gtk+))
11576 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
11577 (synopsis "Companion library to GObject and Gtk+")
11578 (description "The libdazzle library is a companion library to GObject and
11579 Gtk+. It provides various features that the authors wish were in the
11580 underlying library but cannot for various reasons. In most cases, they are
11581 wildly out of scope for those libraries. In other cases, they are not quite
11582 generic enough to work for everyone.")
11583 (license license:gpl3+)))
11584
11585 (define-public evolution
11586 (package
11587 (name "evolution")
11588 (version "3.46.0")
11589 (source (origin
11590 (method url-fetch)
11591 (uri (string-append "mirror://gnome/sources/evolution/"
11592 (version-major+minor version) "/"
11593 "evolution-" version ".tar.xz"))
11594 (sha256
11595 (base32
11596 "0gwi89bqk20ggcxsq7xgd97my0hxx8z82kisml6vz6kbpiv957p0"))))
11597 (build-system cmake-build-system)
11598 (arguments
11599 (list
11600 #:imported-modules `(,@%cmake-build-system-modules
11601 (guix build glib-or-gtk-build-system))
11602 #:modules '((guix build cmake-build-system)
11603 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11604 (guix build utils))
11605 #:configure-flags
11606 #~(list "-DENABLE_PST_IMPORT=OFF") ;libpst is not packaged
11607 #:phases
11608 #~(modify-phases %standard-phases
11609 ;; The build system attempts to install user interface modules to
11610 ;; the output directory of the "evolution-data-server" package;
11611 ;; patch it to install to the same location under #$output prefix.
11612 (add-after 'unpack 'patch-ui-module-dir
11613 (lambda* (#:key outputs #:allow-other-keys)
11614 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
11615 (("\\$\\{edsuimoduledir\\}")
11616 (string-append
11617 #$output "/lib/evolution-data-server/ui-modules")))
11618 (substitute* "src/modules/rss/camel/CMakeLists.txt"
11619 (("\\$\\{camel_providerdir}")
11620 (string-append
11621 #$output "/lib/evolution-data-server/camel-providers")))))
11622 (add-after 'install 'glib-or-gtk-compile-schemas
11623 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
11624 (add-after 'install 'glib-or-gtk-wrap
11625 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11626 (native-inputs
11627 (list `(,glib "bin") ;glib-mkenums
11628 intltool
11629 itstool
11630 pkg-config))
11631 (inputs
11632 (list cmark
11633 enchant
11634 evolution-data-server ;must be the same version
11635 gcr
11636 gsettings-desktop-schemas
11637 gnome-autoar
11638 gnome-desktop
11639 gspell
11640 highlight
11641 libcanberra
11642 libgweather4
11643 libnotify
11644 libsoup
11645 nss
11646 openldap
11647 webkitgtk
11648 ytnef))
11649 (home-page "https://gitlab.gnome.org/GNOME/evolution")
11650 (synopsis "Manage your email, contacts and schedule")
11651 (description "Evolution is a personal information management application
11652 that provides integrated mail, calendaring and address book
11653 functionality.")
11654 ;; See COPYING for details.
11655 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
11656 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
11657 license:lgpl2.1+)))) ; smime/lib/*
11658
11659 (define-public gthumb
11660 (package
11661 (name "gthumb")
11662 (version "3.12.2")
11663 (source (origin
11664 (method url-fetch)
11665 (uri (string-append "mirror://gnome/sources/gthumb/"
11666 (version-major+minor version) "/"
11667 "gthumb-" version ".tar.xz"))
11668 (sha256
11669 (base32
11670 "09flm8s6jrvfya2ypw5873mnnani8ssy7wdv3ra1cljk4bjszy4p"))))
11671 (build-system meson-build-system)
11672 (arguments
11673 `(#:glib-or-gtk? #t
11674 #:configure-flags
11675 ;; Ensure the RUNPATH contains all installed library locations.
11676 (list (string-append "-Dc_link_args=-Wl,-rpath="
11677 (assoc-ref %outputs "out")
11678 "/lib/gthumb/extensions")
11679 (string-append "-Dcpp_link_args=-Wl,-rpath="
11680 (assoc-ref %outputs "out")
11681 "/lib/gthumb/extensions"))))
11682 (native-inputs
11683 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11684 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11685 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11686 ("intltool" ,intltool)
11687 ("itstool" ,itstool)
11688 ("pkg-config" ,pkg-config)
11689 ("python" ,python)))
11690 (inputs
11691 `(("clutter" ,clutter)
11692 ("clutter-gst" ,clutter-gst)
11693 ("clutter-gtk" ,clutter-gtk)
11694 ("colord" ,colord)
11695 ("exiv2" ,exiv2)
11696 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11697 ("gstreamer" ,gstreamer)
11698 ("gtk" ,gtk+)
11699 ("libheif" ,libheif)
11700 ("libjpeg" ,libjpeg-turbo)
11701 ("libraw" ,libraw)
11702 ("librsvg" ,librsvg)
11703 ("libtiff" ,libtiff)
11704 ("libwebp" ,libwebp)))
11705 (home-page "https://wiki.gnome.org/Apps/Gthumb")
11706 (synopsis "GNOME image viewer and browser")
11707 (description "GThumb is an image viewer, browser, organizer, editor and
11708 advanced image management tool")
11709 (license license:gpl2+)))
11710
11711 (define-public terminator
11712 (package
11713 (name "terminator")
11714 (version "2.1.1")
11715 (source
11716 (origin
11717 (method url-fetch)
11718 (uri (string-append "https://github.com/gnome-terminator/terminator/"
11719 "releases/download/v" version "/"
11720 name "-" version ".tar.gz"))
11721 (sha256
11722 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
11723 (build-system python-build-system)
11724 (native-inputs
11725 `(("gettext" ,gettext-minimal)
11726 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11727 ("gobject-introspection" ,gobject-introspection)
11728 ("intltool" ,intltool)
11729 ("pkg-config" ,pkg-config)
11730 ("python-psutil" ,python-psutil)
11731 ("python-pytest-runner" ,python-pytest-runner)
11732 ("python-pytest" ,python-pytest)))
11733 (inputs
11734 `(("cairo" ,cairo)
11735 ("dbus-glib" ,dbus-glib)
11736 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11737 ("gtk+" ,gtk+)
11738 ("python" ,python-wrapper)
11739 ("python-dbus" ,python-dbus)
11740 ("python-notify2" ,python-notify2)
11741 ("python-pycairo" ,python-pycairo)
11742 ("python-pygobject" ,python-pygobject)
11743 ("vte" ,vte)))
11744 (propagated-inputs
11745 (list python-configobj))
11746 (arguments
11747 ;; One test out of 28 fails due to dbus-python and python-notify; skip
11748 ;; tests.
11749 `(#:tests? #f
11750 #:imported-modules ((guix build glib-or-gtk-build-system)
11751 ,@%python-build-system-modules)
11752 #:modules ((guix build python-build-system)
11753 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11754 (guix build utils))
11755 #:phases
11756 (modify-phases %standard-phases
11757 (add-after 'unpack 'handle-dbus-python
11758 (lambda _
11759 ;; python-dbus cannot be found but it's really there. See
11760 ;; https://github.com/SpotlightKid/jack-select/issues/2
11761 (substitute* "setup.py"
11762 (("'dbus-python',") ""))))
11763 (add-after 'install 'wrap-program
11764 (lambda* (#:key outputs #:allow-other-keys)
11765 (let ((prog (string-append (assoc-ref outputs "out")
11766 "/bin/terminator"))
11767 (pylib (string-append (assoc-ref outputs "out")
11768 "/lib/python"
11769 ,(version-major+minor
11770 (package-version python))
11771 "/site-packages")))
11772 (wrap-program prog
11773 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11774 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
11775 (add-after 'wrap-program 'glib-or-gtk-wrap
11776 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11777 (home-page "https://gnome-terminator.org/")
11778 (synopsis "Store and run multiple GNOME terminals in one window")
11779 (description
11780 "Terminator allows you to run multiple GNOME terminals in a grid and
11781 tabs, and it supports drag and drop re-ordering of terminals.")
11782 (license license:gpl2)))
11783
11784 (define-public libhandy
11785 (package
11786 (name "libhandy")
11787 (version "1.7.90")
11788 (source
11789 (origin
11790 (method git-fetch)
11791 (uri (git-reference
11792 (url "https://gitlab.gnome.org/GNOME/libhandy")
11793 (commit version)))
11794 (file-name (git-file-name name version))
11795 (sha256
11796 (base32 "1z8sbx7g19c1p8dy0sn0l25qfvrd2j28h269lsqm1y98r818h2k1"))))
11797 (build-system meson-build-system)
11798 (arguments
11799 `(#:configure-flags
11800 '("-Dglade_catalog=enabled"
11801 ;; XXX: Generating the documentation fails because the
11802 ;; libhandy.devhelp2 document cannot be created. This seems to be
11803 ;; caused by a problem during the XSL transformation.
11804 "-Dgtk_doc=false")
11805 #:phases
11806 (modify-phases %standard-phases
11807 (add-after 'unpack 'patch-docbook-xml
11808 (lambda* (#:key inputs #:allow-other-keys)
11809 (for-each
11810 (lambda (file)
11811 (substitute* file
11812 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
11813 (search-input-file inputs
11814 "/xml/dtd/docbook/docbookx.dtd"))))
11815 (find-files "doc" "\\.xml"))))
11816 (add-before 'check 'pre-check
11817 (lambda _
11818 ;; Tests require a running X server.
11819 (system "Xvfb :1 &")
11820 (setenv "DISPLAY" ":1"))))))
11821 (inputs
11822 (list gtk+ glade3))
11823 (native-inputs
11824 (list gobject-introspection ; for g-ir-scanner
11825 `(,glib "bin")
11826 vala
11827 libxml2
11828 libxslt
11829 docbook-xsl
11830 docbook-xml-4.3
11831 gtk-doc/stable
11832 pkg-config
11833 gettext-minimal
11834
11835 ;; Test suite dependencies.
11836 hicolor-icon-theme
11837 xorg-server-for-tests))
11838 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11839 (synopsis "Library full of GTK+ widgets for mobile phones")
11840 (description "The aim of the handy library is to help with developing user
11841 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11842 for usage on small and big screens.")
11843 (license license:lgpl2.1+)))
11844
11845 (define-public libhandy-0.0
11846 (package
11847 (inherit libhandy)
11848 (version "0.0.13")
11849 (source
11850 (origin
11851 (method git-fetch)
11852 (uri (git-reference
11853 (url "https://gitlab.gnome.org/GNOME/libhandy")
11854 (commit (string-append "v" version))))
11855 (file-name (git-file-name "libhandy" version))
11856 (sha256
11857 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11858 (arguments
11859 (substitute-keyword-arguments (package-arguments libhandy)
11860 ((#:configure-flags flags)
11861 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11862
11863 (define-public libgit2-glib
11864 (package
11865 (name "libgit2-glib")
11866 (version "1.1.0")
11867 (source (origin
11868 (method url-fetch)
11869 (uri (string-append "mirror://gnome/sources/" name "/"
11870 (version-major+minor version) "/"
11871 name "-" version ".tar.xz"))
11872 (sha256
11873 (base32
11874 "1wqypx0xv20vk0zfh20c474z6rdgbxbklcr2wkhl30dgbmbxg3f3"))))
11875 (build-system meson-build-system)
11876 (native-inputs
11877 (list `(,glib "bin") ;; For glib-mkenums
11878 gobject-introspection
11879 pkg-config
11880 python-pygobject
11881 python-wrapper
11882 vala))
11883 (inputs
11884 (list libssh2))
11885 (propagated-inputs
11886 (list glib libgit2)) ;; In Requires of libgit2-glib.pc.
11887 (synopsis "GLib wrapper around the libgit2 Git access library")
11888 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11889 access library. It only implements the core plumbing functions, not really the
11890 higher level porcelain stuff.")
11891 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11892 (license license:gpl2+)))
11893
11894 (define-public gitg
11895 (package
11896 (name "gitg")
11897 (version "41")
11898 (source (origin
11899 (method url-fetch)
11900 (uri (string-append "mirror://gnome/sources/" name "/"
11901 (version-major version) "/"
11902 name "-" version ".tar.xz"))
11903 (sha256
11904 (base32
11905 "0aa6djcf7rjw0q688mfy47k67bbjpnx6aw1xs94abfhgn6gipdkz"))))
11906 (build-system meson-build-system)
11907 (arguments
11908 (list
11909 #:glib-or-gtk? #t
11910 #:phases
11911 #~(modify-phases %standard-phases
11912 (add-after 'unpack 'disable-post-install-partially
11913 (lambda _
11914 (substitute* "meson_post_install.py"
11915 (("'python'") ; there are no python sources to compile
11916 (string-append "'" (which "true") "'"))
11917 (("gtk-update-icon-cache") (which "true")))))
11918 (add-after 'unpack 'fix-test-sources
11919 (lambda _
11920 (substitute* "tests/libgitg/test-commit.vala"
11921 (("/bin/bash") (which "bash")))))
11922 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11923 (lambda* (#:key outputs #:allow-other-keys)
11924 (let ((prog (string-append #$output "/bin/gitg")))
11925 (wrap-program prog
11926 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11927 (inputs
11928 (list glib
11929 gsettings-desktop-schemas
11930 gspell
11931 gtk+
11932 gtksourceview-4
11933 json-glib
11934 libdazzle
11935 libgee
11936 libgit2-glib
11937 libpeas
11938 libsecret
11939 libsoup-minimal-2
11940 libxml2))
11941 (native-inputs
11942 (list `(,glib "bin")
11943 `(,gtk+ "bin")
11944 gobject-introspection
11945 intltool
11946 pkg-config
11947 python
11948 vala))
11949 (synopsis "Graphical user interface for git")
11950 (description
11951 "gitg is a graphical user interface for git. It aims at being a small,
11952 fast and convenient tool to visualize the history of git repositories.
11953 Besides visualization, gitg also provides several utilities to manage your
11954 repository and commit your work.")
11955 (home-page "https://wiki.gnome.org/Apps/Gitg")
11956 (license license:gpl2+)))
11957
11958 (define-public gamin
11959 (package
11960 (name "gamin")
11961 (version "0.1.10")
11962 (source (origin
11963 (method url-fetch)
11964 (uri (string-append "mirror://gnome/sources/" name "/"
11965 (version-major+minor version) "/"
11966 name "-" version ".tar.bz2"))
11967 (sha256
11968 (base32
11969 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11970 (build-system gnu-build-system)
11971 (arguments
11972 `(#:phases
11973 (modify-phases %standard-phases
11974 ;; The 'config.sub' is too old to recognise aarch64.
11975 ,@(if (and=> (%current-target-system) target-aarch64?)
11976 `((add-after 'unpack 'replace-config.sub
11977 (lambda _
11978 (delete-file "config.sub")
11979 (symlink (which "config.sub") "config.sub"))))
11980 '())
11981 (add-after 'unpack 'remove-deprecated-macro
11982 (lambda _
11983 (substitute* '("server/gam_node.c"
11984 "server/gam_subscription.h"
11985 "server/gam_node.h"
11986 "server/gam_subscription.c")
11987 (("G_CONST_RETURN") "const"))
11988 #t))
11989 ;; The configure script runs a test program unconditionally,
11990 ;; without an option to manually set the test result.
11991 ;; Override this test anyway.
11992 ,@(if (%current-target-system)
11993 `((add-after 'bootstrap 'set-have-abstract-sockets
11994 (lambda _
11995 (define in-abstract-sockets-test? #f)
11996 (substitute* "configure"
11997 (("^#### Abstract sockets\n$")
11998 (set! in-abstract-sockets-test? #t)
11999 "#### Abstract sockets\n")
12000 (("^have_abstract_sockets=no\n$")
12001 (set! in-abstract-sockets-test? #f)
12002 ;; ‘Abstract sockets’ appear to be Linux-only.
12003 (string-append "have_abstract_sockets="
12004 ,(if (target-linux?)
12005 "yes"
12006 "no")
12007 "\nif false; then\nif false; then :\n"))
12008 (("^(.*\n)$" line)
12009 (if in-abstract-sockets-test?
12010 "" ; delete
12011 line))))))
12012 '()))))
12013 (inputs
12014 (list glib))
12015 (native-inputs
12016 `(("pkg-config" ,pkg-config)
12017 ,@(if (and=> (%current-target-system) target-aarch64?)
12018 `(("config" ,config))
12019 '())))
12020 (home-page "https://people.gnome.org/~veillard/gamin/")
12021 (synopsis "File alteration monitor")
12022 (description
12023 "Gamin is a file and directory monitoring system defined to be a subset
12024 of the FAM (File Alteration Monitor) system. This is a service provided by a
12025 library which detects when a file or a directory has been modified.")
12026 (license license:gpl2+)))
12027
12028 (define-public gnome-mahjongg
12029 (package
12030 (name "gnome-mahjongg")
12031 (version "3.38.3")
12032 (source (origin
12033 (method url-fetch)
12034 (uri (string-append "mirror://gnome/sources/" name "/"
12035 (version-major+minor version) "/" name "-"
12036 version ".tar.xz"))
12037 (sha256
12038 (base32
12039 "144ia3zn9rhwa1xbdkvsz6m0dsysl6mxvqw9bnrlh845hmyy9cfj"))))
12040 (build-system meson-build-system)
12041 (arguments
12042 `(#:meson ,meson-0.59
12043 #:glib-or-gtk? #t))
12044 (native-inputs
12045 `(("appstream-glib" ,appstream-glib)
12046 ("gettext" ,gettext-minimal)
12047 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
12048 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
12049 ("itstool" ,itstool)
12050 ("pkg-config" ,pkg-config)
12051 ("vala" ,vala)))
12052 (propagated-inputs
12053 (list dconf))
12054 (inputs
12055 (list glib gtk+))
12056 (synopsis "Mahjongg tile-matching game")
12057 (description "GNOME Mahjongg is a game based on the classic Chinese
12058 tile-matching game Mahjongg. It features multiple board layouts, tile themes,
12059 and a high score table.")
12060 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
12061 (license license:gpl2+)))
12062
12063 (define-public gnome-themes-extra
12064 (package
12065 (name "gnome-themes-extra")
12066 (version "3.28")
12067 (source
12068 (origin
12069 (method url-fetch)
12070 (uri (string-append "mirror://gnome/sources/" name "/"
12071 (version-major+minor version) "/" name "-"
12072 version ".tar.xz"))
12073 (sha256
12074 (base32
12075 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
12076 (build-system gnu-build-system)
12077 (arguments
12078 '(#:configure-flags
12079 ;; Don't create 'icon-theme.cache'.
12080 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
12081 (true (string-append coreutils "/bin/true")))
12082 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
12083 (native-inputs
12084 `(("glib:bin" ,glib "bin")
12085 ("intltool" ,intltool)
12086 ("pkg-config" ,pkg-config)))
12087 (inputs
12088 `(("glib" ,glib)
12089 ("gtk+" ,gtk+)
12090 ("gtk+-2" ,gtk+-2)
12091 ("librsvg" ,librsvg)
12092 ("libxml2" ,libxml2)))
12093 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
12094 (synopsis "GNOME Extra Themes")
12095 (description "This package provides themes and related elements that don't
12096 really fit in other upstream packages. It offers legacy support for GTK+ 2
12097 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
12098 index files needed for Adwaita to be used outside of GNOME.")
12099 (license license:lgpl2.1+)))
12100
12101 (define-public gnome-themes-standard
12102 (deprecated-package "gnome-themes-standard" gnome-themes-extra))
12103
12104 (define-public gnote
12105 (package
12106 (name "gnote")
12107 (version "42.1")
12108 (source
12109 (origin
12110 (method url-fetch)
12111 (uri (string-append "mirror://gnome/sources/" name "/"
12112 (version-major version) "/"
12113 "gnote-" version ".tar.xz"))
12114 (sha256
12115 (base32 "0fam3v9na4ndqdc63866bvhcxrzj478jsx34vsh0777d4ixw883c"))))
12116 (build-system meson-build-system)
12117 (arguments
12118 `(#:glib-or-gtk? #t
12119 #:phases (modify-phases %standard-phases
12120 (add-after 'unpack 'skip-gtk-update-icon-cache
12121 ;; Don't create 'icon-theme.cache'.
12122 (lambda _
12123 (substitute* "post-install.py"
12124 (("gtk-update-icon-cache") "true")))))))
12125 (native-inputs
12126 (list desktop-file-utils
12127 gettext-minimal
12128 `(,glib "bin")
12129 gobject-introspection
12130 itstool
12131 pkg-config
12132 python))
12133 (inputs
12134 (list glibmm
12135 gsettings-desktop-schemas
12136 gspell
12137 gtk+
12138 gtkmm-3
12139 libsecret
12140 `(,util-linux "lib")
12141 libxml2
12142 libxslt))
12143 (synopsis "Note-taking application for the GNOME desktop")
12144 (description "Gnote is a note-taking application written for the GNOME
12145 desktop environment.")
12146 (home-page "https://wiki.gnome.org/Apps/Gnote")
12147 (license license:gpl3+)))
12148
12149 (define-public polari
12150 (package
12151 (name "polari")
12152 (version "42.1")
12153 (source (origin
12154 (method url-fetch)
12155 (uri (string-append "mirror://gnome/sources/polari/"
12156 (version-major version)
12157 "/polari-" version ".tar.xz"))
12158 (sha256
12159 (base32
12160 "0gbbjs522a8vdps79m1h3krkizbld61h8r1hn9z41gpc904cz45g"))))
12161 (build-system meson-build-system)
12162 (arguments
12163 `(#:glib-or-gtk? #t
12164 #:phases
12165 (modify-phases %standard-phases
12166 (add-after 'unpack 'skip-gtk-update-icon-cache
12167 (lambda _
12168 (substitute* "meson.build"
12169 (("gtk_update_icon_cache: true")
12170 "gtk_update_icon_cache: false"))))
12171 (add-after 'install 'fix-desktop-file
12172 ;; Hard-code launcher to be on the safe side.
12173 (lambda* (#:key outputs #:allow-other-keys)
12174 (substitute* (search-input-file
12175 outputs
12176 "share/applications/org.gnome.Polari.desktop")
12177 (("Exec=.*")
12178 (string-append "Exec=" (search-input-file outputs "bin/polari")
12179 "\n")))))
12180 (add-after 'glib-or-gtk-wrap 'wrap-typelib
12181 (lambda* (#:key outputs #:allow-other-keys)
12182 (wrap-program (search-input-file outputs "bin/polari")
12183 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
12184 (native-inputs
12185 (list desktop-file-utils
12186 gettext-minimal
12187 `(,glib "bin")
12188 gobject-introspection
12189 pkg-config
12190 yelp-tools))
12191 (inputs
12192 (list bash-minimal
12193 glib
12194 gsettings-desktop-schemas
12195 gspell
12196 gtk
12197 gjs
12198 libadwaita
12199 libsecret
12200 libsoup
12201 telepathy-glib
12202 telepathy-logger))
12203 (propagated-inputs
12204 (list telepathy-idle
12205 telepathy-mission-control))
12206 (synopsis "Simple IRC Client")
12207 (description
12208 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
12209 integrate seamlessly with the GNOME desktop.")
12210 (home-page "https://wiki.gnome.org/Apps/Polari")
12211 (license license:gpl2+)))
12212
12213 (define-public gnome-boxes
12214 (package
12215 (name "gnome-boxes")
12216 (version "42.3")
12217 (source
12218 (origin
12219 (method url-fetch)
12220 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
12221 (version-major version) "/"
12222 "gnome-boxes-" version ".tar.xz"))
12223 (sha256
12224 (base32 "1lv0bdh935qj6wkv3ixg2pcv8yrapj79z02gw4fal3rhz3xggvsn"))))
12225 (build-system meson-build-system)
12226 (arguments
12227 (list #:glib-or-gtk? #t
12228 #:configure-flags #~(list "-Drdp=false"
12229 (string-append "-Dc_link_args=-Wl,-rpath="
12230 #$output
12231 "/lib/gnome-boxes"))
12232 #:phases #~(modify-phases %standard-phases
12233 (add-after 'unpack 'disable-gtk-update-icon-cache
12234 (lambda _
12235 (setenv "DESTDIR" "/")))
12236 (add-before 'configure 'set-qemu-file-name
12237 (lambda* (#:key inputs #:allow-other-keys)
12238 (substitute* "src/installed-media.vala"
12239 (("qemu-img")
12240 (search-input-file inputs
12241 "/bin/qemu-img"))))))))
12242 (native-inputs
12243 (list desktop-file-utils ;for update-desktop-database
12244 gettext-minimal
12245 `(,glib "bin") ;for glib-compile-resources
12246 itstool
12247 pkg-config
12248 python
12249 vala))
12250 (inputs
12251 (list glib-networking ;for TLS support
12252 gsettings-desktop-schemas
12253 gtk+
12254 gtk-vnc
12255 gtksourceview
12256 json-glib
12257 libarchive
12258 libgudev
12259 libhandy
12260 libosinfo
12261 libsecret
12262 libsoup-minimal-2
12263 libusb
12264 libvirt
12265 libvirt-glib
12266 libxml2
12267 qemu-minimal ;for qemu-img
12268 sparql-query
12269 spice-gtk
12270 tracker
12271 vte
12272 webkitgtk-with-libsoup2)) ;for webkit2gtk-4.0
12273 (home-page "https://wiki.gnome.org/Apps/Boxes")
12274 (synopsis "View, access, and manage remote and virtual systems")
12275 (description "GNOME Boxes is a simple application to view, access, and
12276 manage remote and virtual systems. Note that this application requires the
12277 @code{libvirt} and @code{virtlog} daemons to run. Use the command
12278 @command{info '(guix) Virtualization Services'} to learn how to configure
12279 these services on the Guix System.")
12280 (license (list
12281 ;; For data/icons/empty-boxes.png.
12282 license:cc-by2.0
12283 ;; For all others.
12284 license:lgpl2.0+))))
12285
12286 (define-public geary
12287 (package
12288 (name "geary")
12289 (version "40.0")
12290 (source (origin
12291 (method git-fetch)
12292 (uri (git-reference
12293 (url "https://gitlab.gnome.org/GNOME/geary.git")
12294 (commit (string-append "gnome-" version))))
12295 (file-name (git-file-name name version))
12296 (sha256
12297 (base32
12298 "04hvw86r8sczvjm1z3ls5y5y5h6nyfb648rjkfx05ib00mqq5v1x"))))
12299 (build-system meson-build-system)
12300 (arguments
12301 `(#:glib-or-gtk? #t
12302 #:configure-flags
12303 '("-Dprofile=release")
12304 #:phases (modify-phases %standard-phases
12305 (add-after 'unpack 'disable-failing-tests
12306 (lambda _
12307 (substitute* "test/test-client.vala"
12308 (("client.add_suite\\(new Application.CertificateManagerTest\\(\\).suite\\);")
12309 ""))))
12310 (add-after 'unpack 'generate-vapis
12311 (lambda* (#:key inputs #:allow-other-keys)
12312 ;; It’s not possible to generate the GMime vapi, because
12313 ;; there’s custom metadata that gmime didn’t
12314 ;; install. Thus, the vapi should be built and installed
12315 ;; with gmime.
12316 (define gmime
12317 (assoc-ref inputs "gmime"))
12318 (copy-file (string-append gmime "/share/vala/vapi/gmime-3.0.vapi")
12319 "bindings/vapi/gmime-3.0.vapi")))
12320 (add-after 'unpack 'disable-postinstall-script
12321 (lambda _
12322 (substitute* "build-aux/post_install.py"
12323 (("gtk-update-icon-cache")
12324 "true"))))
12325 (add-before 'check 'setup-home
12326 (lambda _
12327 ;; Tests require a writable HOME.
12328 (setenv "HOME" (getcwd))))
12329 (add-before 'check 'setup-xvfb
12330 (lambda _
12331 (system "Xvfb :1 &")
12332 (setenv "DISPLAY" ":1"))))))
12333 (inputs
12334 (list enchant
12335 folks
12336 gcr
12337 glib
12338 gmime
12339 gnome-online-accounts
12340 gsettings-desktop-schemas
12341 gspell
12342 gsound
12343 gtk+
12344 iso-codes
12345 json-glib
12346 libcanberra
12347 libgee
12348 libhandy
12349 libpeas
12350 libsecret
12351 libstemmer
12352 libunwind
12353 sqlite
12354 webkitgtk-with-libsoup2
12355 ytnef))
12356 (native-inputs
12357 (list appstream-glib
12358 cmake-minimal
12359 desktop-file-utils
12360 gettext-minimal
12361 glib
12362 `(,glib "bin")
12363 gmime
12364 gobject-introspection
12365 gsettings-desktop-schemas
12366 itstool
12367 libarchive
12368 libxml2
12369 pkg-config
12370 python-minimal
12371 vala
12372 xorg-server-for-tests))
12373 (synopsis "GNOME email application built around conversations")
12374 (description
12375 "Geary collects related messages together into conversations,
12376 making it easy to find and follow your discussions. Full-text and keyword
12377 search makes it easy to find the email you are looking for. Geary's
12378 full-featured composer lets you send rich, styled text with images, links, and
12379 lists, but also send lightweight, easy to read text messages. Geary
12380 automatically picks up your existing GNOME Online Accounts, and adding more is
12381 easy. Geary has a clean, fast, modern interface that works like you want it
12382 to.")
12383 (home-page "https://wiki.gnome.org/Apps/Geary")
12384 (license (list
12385 ;; geary
12386 license:lgpl2.1+
12387 ;; icons
12388 license:cc-by3.0
12389 license:cc-by-sa3.0
12390 license:public-domain
12391 ;; snowball
12392 license:bsd-2))))
12393
12394 (define-public glabels
12395 (package
12396 (name "glabels")
12397 (version "3.4.1")
12398 (source
12399 (origin
12400 (method url-fetch)
12401 (uri (string-append "mirror://gnome/sources/" name "/"
12402 (version-major+minor version) "/"
12403 "glabels-" version ".tar.xz"))
12404 (sha256
12405 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
12406 (build-system glib-or-gtk-build-system)
12407 (native-inputs
12408 `(("gettext" ,gettext-minimal)
12409 ("glib:bin" ,glib "bin")
12410 ("intltool" ,intltool)
12411 ("itstool" ,itstool)
12412 ("pkg-config" ,pkg-config)))
12413 (inputs
12414 (list gtk+ librsvg libxml2))
12415 (arguments
12416 `(#:configure-flags '("CFLAGS=-fcommon")))
12417 (home-page "https://glabels.org/")
12418 (synopsis "Program for creating labels and business cards")
12419 (description
12420 "gLabels is a program for creating labels and business cards. It is
12421 designed to work with various laser/ink-jet peel-off label and business
12422 card sheets that you’ll find at most office supply stores.")
12423 (license license:gpl3+)))
12424
12425 (define-public gnome-latex
12426 (package
12427 (name "gnome-latex")
12428 (version "3.41.2")
12429 (source
12430 (origin
12431 (method url-fetch)
12432 (uri (string-append "mirror://gnome/sources/" name "/"
12433 (version-major+minor version) "/"
12434 "gnome-latex-" version ".tar.xz"))
12435 (sha256
12436 (base32 "0cynhmrn99f4f3kddczsc58ak4b9sv2zkfbcyz7z16848nhz047k"))))
12437 (build-system glib-or-gtk-build-system)
12438 (native-inputs
12439 (list gettext-minimal
12440 `(,glib "bin")
12441 gobject-introspection
12442 gtk-doc/stable
12443 itstool
12444 pkg-config
12445 vala))
12446 (inputs
12447 (list dconf
12448 glib
12449 gspell
12450 libgee
12451 tepl
12452 uchardet))
12453 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
12454 (synopsis "LaTeX editor for the GNOME desktop")
12455 (description
12456 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
12457 such as build tools, completion of LaTeX commands, structure navigation,
12458 symbol tables, document templates, project management, spell-checking, menus
12459 and toolbars.")
12460 (license license:gpl3+)))
12461
12462 (define-public setzer
12463 (package
12464 (name "setzer")
12465 (version "0.4.8")
12466 (source
12467 (origin
12468 (method git-fetch)
12469 (uri (git-reference
12470 (url "https://github.com/cvfosammmm/Setzer")
12471 (commit (string-append "v" version))))
12472 (file-name (git-file-name name version))
12473 (sha256
12474 (base32 "12w58v7qsd3xfmrxhij8dby9xnvd82hxqb4wc6di7lqz1ayg5lzc"))))
12475 (build-system meson-build-system)
12476 (arguments
12477 (list
12478 #:glib-or-gtk? #t
12479 #:imported-modules `(,@%meson-build-system-modules
12480 (guix build python-build-system))
12481 #:modules '((guix build meson-build-system)
12482 ((guix build python-build-system) #:prefix python:)
12483 (guix build utils))
12484 #:phases
12485 #~(modify-phases %standard-phases
12486 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12487 (lambda* (#:key inputs outputs #:allow-other-keys)
12488 (wrap-program (search-input-file outputs "bin/setzer")
12489 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
12490 ,(python:site-packages inputs outputs)))
12491 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
12492 (native-inputs
12493 (list gettext-minimal
12494 python))
12495 (inputs
12496 (list bash-minimal
12497 gsettings-desktop-schemas
12498 gspell
12499 gtk+
12500 gtksourceview-4
12501 pango
12502 poppler
12503 python-pdfminer-six
12504 python-pexpect
12505 python-pycairo
12506 python-pygobject
12507 python-pyxdg
12508 webkitgtk-with-libsoup2
12509 xdg-utils))
12510 (home-page "https://www.cvfosammmm.org/setzer/")
12511 (synopsis "LaTeX editor written in Python with GTK+")
12512 (description
12513 "Setzer is a simple yet full-featured LaTeX editor written in Python with
12514 GTK+. It integrates well with the GNOME desktop environment.")
12515 (license license:gpl3+)))
12516
12517 (define-public apostrophe
12518 (package
12519 (name "apostrophe")
12520 (version "2.6.3")
12521 (source (origin
12522 (method git-fetch)
12523 (uri (git-reference
12524 (url "https://gitlab.gnome.org/World/apostrophe")
12525 (commit (string-append "v" version))))
12526 (file-name (git-file-name name version))
12527 (sha256
12528 (base32
12529 "0wsvq2434p650cf3vq5w7a6czbk8in0ra7nji45mvwyfahdyn6j4"))))
12530 (build-system meson-build-system)
12531 (arguments
12532 (list
12533 #:glib-or-gtk? #t
12534 #:imported-modules `(,@%meson-build-system-modules
12535 (guix build python-build-system))
12536 #:modules '((guix build meson-build-system)
12537 ((guix build python-build-system) #:prefix python:)
12538 (guix build utils))
12539 #:phases
12540 #~(modify-phases %standard-phases
12541 (add-after 'unpack 'patch-meson
12542 (lambda _
12543 (substitute* "build-aux/meson_post_install.py"
12544 (("gtk-update-icon-cache") "true"))))
12545 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12546 (lambda* (#:key inputs outputs #:allow-other-keys)
12547 (wrap-program (search-input-file outputs "bin/apostrophe")
12548 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
12549 ,(python:site-packages inputs outputs)))
12550 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
12551 `("PATH" prefix (,(dirname
12552 (search-input-file inputs
12553 "/bin/pandoc"))))))))))
12554 (inputs
12555 (list bash-minimal
12556 glib
12557 gobject-introspection
12558 gspell
12559 gtk+
12560 libhandy
12561 pandoc
12562 python
12563 python-chardet
12564 python-levenshtein
12565 python-regex
12566 python-pycairo
12567 python-pygobject
12568 python-pyenchant
12569 python-pypandoc
12570 webkitgtk-with-libsoup2))
12571 (native-inputs
12572 (list gettext-minimal
12573 `(,glib "bin")
12574 pkg-config
12575 sassc))
12576 (home-page "https://gitlab.gnome.org/World/apostrophe")
12577 (synopsis "Markdown editor written in Python with GTK+")
12578 (description "Apostrophe is a GTK+ based distraction-free Markdown editor.
12579 It uses pandoc as back-end for parsing Markdown.")
12580 (license license:gpl3)))
12581
12582 (define-public libratbag
12583 (package
12584 (name "libratbag")
12585 (version "0.16")
12586 (source
12587 (origin
12588 (method git-fetch)
12589 (uri (git-reference
12590 (url "https://github.com/libratbag/libratbag")
12591 (commit (string-append "v" version))))
12592 (file-name (git-file-name name version))
12593 (sha256
12594 (base32 "0jjf6xc3a37icp5dvbxla3ai9is2ns31m0llbfq1bmb6dk8cd4n0"))))
12595 (build-system meson-build-system)
12596 (arguments
12597 `(#:configure-flags
12598 (list "-Dsystemd=false"
12599 "-Dlogind-provider=elogind"
12600 ,@(if (not (package? (this-package-native-input "valgrind")))
12601 `("-Dtests=false") ; Some tests still run.
12602 `()))
12603 #:phases
12604 (modify-phases %standard-phases
12605 (add-after 'install 'wrap
12606 (lambda* (#:key inputs outputs #:allow-other-keys)
12607 (let* ((out (assoc-ref outputs "out"))
12608 (site (string-append
12609 "/lib/python"
12610 ,(version-major+minor (package-version python))
12611 "/site-packages"))
12612 (evdev (string-append
12613 (assoc-ref inputs "python-evdev") site))
12614 (pygo (string-append
12615 (assoc-ref inputs "python-pygobject") site))
12616 (python-wrap
12617 `("GUIX_PYTHONPATH" = (,evdev ,pygo))))
12618 (wrap-program (string-append out "/bin/" "ratbagctl")
12619 python-wrap)
12620 #t))))))
12621 (native-inputs
12622 (append
12623 (list check pkg-config swig)
12624 (if (member (%current-system) (package-supported-systems valgrind))
12625 (list valgrind)
12626 '())))
12627 (inputs
12628 `(("glib" ,glib)
12629 ("json-glib" ,json-glib)
12630 ("libevdev" ,libevdev)
12631 ("libsystemd" ,elogind)
12632 ("libunistring" ,libunistring)
12633 ("python" ,python)
12634 ("python-evdev" ,python-evdev)
12635 ("python-pygobject" ,python-pygobject)
12636 ("udev" ,eudev)))
12637 (home-page "https://github.com/libratbag/libratbag")
12638 (synopsis "DBus daemon and utility for configuring gaming mice")
12639 (description "libratbag provides @command{ratbagd}, a DBus daemon to
12640 configure input devices, mainly gaming mice. The daemon provides a generic
12641 way to access the various features exposed by these mice and abstracts away
12642 hardware-specific and kernel-specific quirks. There is also the
12643 @command{ratbagctl} command line interface for configuring devices.
12644
12645 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
12646 Steelseries.
12647
12648 The ratbagd DBus service can be enabled by adding the following service to
12649 your operating-system definition:
12650
12651 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12652 (license license:expat)))
12653
12654 (define-public piper
12655 (package
12656 (name "piper")
12657 (version "0.7")
12658 (source
12659 (origin (method git-fetch)
12660 (uri (git-reference
12661 (url "https://github.com/libratbag/piper")
12662 (commit version)))
12663 (sha256
12664 (base32 "0jsvfy0ihdcgnqljfgs41lys1nlz18qvsa0a8ndx3pyr41f8w8wf"))
12665 (file-name (git-file-name name version))))
12666 (build-system meson-build-system)
12667 (arguments
12668 `(#:imported-modules ((guix build python-build-system)
12669 ,@%meson-build-system-modules)
12670 #:modules (((guix build python-build-system) #:prefix python:)
12671 (guix build meson-build-system)
12672 (guix build utils))
12673 #:phases
12674 (modify-phases %standard-phases
12675 (add-after 'unpack 'dont-update-gtk-icon-cache
12676 (lambda _
12677 (substitute* "meson.build"
12678 (("meson.add_install_script\\('meson_install.sh')") ""))))
12679 (add-after 'unpack 'do-not-require-flake8
12680 (lambda _
12681 (substitute* "meson.build"
12682 (("find_program\\('flake8'" all)
12683 (string-append all ", required : false")))))
12684 (add-after 'install 'wrap-python
12685 (assoc-ref python:%standard-phases 'wrap))
12686 (add-after 'wrap-python 'wrap
12687 (lambda* (#:key inputs outputs #:allow-other-keys)
12688 (wrap-script (search-input-file outputs "bin/piper")
12689 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
12690 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
12691 ,(python:site-packages inputs outputs)))))))))
12692 (native-inputs
12693 (list appstream
12694 gettext-minimal
12695 `(,glib "bin")
12696 gobject-introspection
12697 pkg-config))
12698 (inputs
12699 (list adwaita-icon-theme
12700 gtk+
12701 guile-3.0 ;for wrap-script
12702 libratbag
12703 python
12704 python-evdev
12705 python-lxml
12706 python-pycairo
12707 python-pygobject))
12708 (home-page "https://github.com/libratbag/piper/")
12709 (synopsis "Configure bindings and LEDs on gaming mice")
12710 (description "Piper is a GTK+ application for configuring gaming mice with
12711 onboard configuration for key bindings via libratbag. Piper requires
12712 a @command{ratbagd} daemon running with root privileges. It can be run
12713 manually as root, but is preferably configured as a DBus service that can
12714 launch on demand. This can be configured by enabling the following service,
12715 provided there is a DBus service present:
12716
12717 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12718 (license license:gpl2)))
12719
12720 (define-public parlatype
12721 (package
12722 (name "parlatype")
12723 (version "3.1")
12724 (source
12725 (origin
12726 (method git-fetch)
12727 (uri (git-reference
12728 (url "https://github.com/gkarsay/parlatype")
12729 (commit (string-append "v" version))))
12730 (file-name (git-file-name name version))
12731 (sha256
12732 (base32 "0cqrzbkyksfsm57riirmjkwf2nf2dgl1xpps1wvqxpij475qcb9b"))))
12733 (build-system meson-build-system)
12734 (arguments
12735 `(#:glib-or-gtk? #t
12736 #:tests? #f ;require internet access
12737 #:phases
12738 (modify-phases %standard-phases
12739 (add-after 'unpack 'skip-gtk-update-icon-cache
12740 (lambda _
12741 (substitute* "data/meson_post_install.py"
12742 (("gtk-update-icon-cache") "true"))))
12743 (add-after 'install 'wrap-parlatype
12744 ;; Add gstreamer plugin provided in this package to system's
12745 ;; plugins.
12746 (lambda* (#:key outputs #:allow-other-keys)
12747 (let* ((out (assoc-ref outputs "out"))
12748 (gst-plugin-path (string-append
12749 out "/lib/gstreamer-1.0/"
12750 ":"
12751 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
12752 (wrap-program (string-append out "/bin/parlatype")
12753 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path)))))))))
12754 (native-inputs
12755 (list appstream-glib
12756 desktop-file-utils ;for desktop-file-validate
12757 gettext-minimal
12758 `(,glib "bin") ;for glib-compile-resources
12759 pkg-config
12760 yelp-tools))
12761 (inputs
12762 (list gst-plugins-base
12763 gst-plugins-good
12764 gstreamer
12765 gtk+
12766 iso-codes
12767 pocketsphinx
12768 pulseaudio
12769 sphinxbase))
12770 (home-page "https://www.parlatype.org")
12771 (synopsis "GNOME audio player for transcription")
12772 (description "Parlatype is an audio player for the GNOME desktop
12773 environment. Its main purpose is the manual transcription of spoken
12774 audio files.")
12775 (license license:gpl3+)))
12776
12777 (define-public jsonrpc-glib
12778 (package
12779 (name "jsonrpc-glib")
12780 (version "3.42.0")
12781 (source (origin
12782 (method url-fetch)
12783 (uri (string-append "mirror://gnome/sources/" name "/"
12784 (version-major+minor version) "/"
12785 name "-" version ".tar.xz"))
12786 (sha256
12787 (base32
12788 "0sr71110gwbv08qwjh410fnhq6v5swn849y4gm314am8gjjqj692"))))
12789 (build-system meson-build-system)
12790 (inputs
12791 (list glib
12792 json-glib))
12793 (native-inputs
12794 (list `(,glib "bin") ; for glib-genmarshal, etc.
12795 gobject-introspection
12796 pkg-config
12797 vala))
12798 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
12799 (synopsis "JSON-RPC library for GLib")
12800 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
12801 peers in either a synchronous or asynchronous fashion. It also allows
12802 communicating using the GVariant serialization format instead of JSON when
12803 both peers support it. You might want that when communicating on a single
12804 host to avoid parser overhead and memory-allocator fragmentation.")
12805 (license license:lgpl2.1+)))
12806
12807 (define-public feedbackd
12808 (package
12809 (name "feedbackd")
12810 (version "0.0.0+git20200527")
12811 (source (origin
12812 (method git-fetch)
12813 (uri (git-reference
12814 (url "https://source.puri.sm/Librem5/feedbackd.git")
12815 (commit (string-append "v" version))))
12816 (file-name (git-file-name name version))
12817 (sha256
12818 (base32
12819 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
12820 (build-system meson-build-system)
12821 (native-inputs
12822 (list `(,glib "bin") gobject-introspection pkg-config vala))
12823 (inputs
12824 (list dbus gsound json-glib libgudev))
12825 (propagated-inputs
12826 (list glib)) ; in Requires of libfeedback-0.0.pc
12827 (synopsis "Haptic/visual/audio feedback via DBus")
12828 (description "Feedbackd provides a DBus daemon to act on events to provide
12829 haptic, visual and audio feedback. It offers the libfeedbackd library and
12830 GObject introspection bindings.")
12831 (home-page "https://source.puri.sm/Librem5/feedbackd")
12832 (license (list license:lgpl2.1+ ; libfeedbackd
12833 license:lgpl3+)))) ; the rest
12834
12835 (define-public sysprof
12836 (package
12837 (name "sysprof")
12838 (version "3.45.1")
12839 (source
12840 (origin
12841 (method url-fetch)
12842 (uri (string-append "mirror://gnome/sources/sysprof/"
12843 (version-major+minor version) "/"
12844 "sysprof-" version ".tar.xz"))
12845 (sha256
12846 (base32 "16nmr1qs7s2ylhwj58zj6b7in72nw7z72glaz746f2g7dbqs00k4"))))
12847 (build-system meson-build-system)
12848 (arguments
12849 (list
12850 #:configure-flags
12851 #~(list (string-append "-Dsystemdunitdir=" #$output "/share/systemd"))
12852 #:phases
12853 #~(modify-phases %standard-phases
12854 (add-after 'unpack 'disable-post-install
12855 (lambda _
12856 (substitute* "meson.build"
12857 (("gtk_update_icon_cache: true")
12858 "gtk_update_icon_cache: false")
12859 (("update_desktop_database: true")
12860 "update_desktop_database: false")))))))
12861 (propagated-inputs
12862 (list polkit))
12863 (inputs
12864 (list glib-next
12865 gtk
12866 json-glib
12867 libadwaita
12868 libdazzle
12869 libunwind
12870 polkit))
12871 (native-inputs
12872 (list gettext-minimal
12873 `(,glib-next "bin") ;for gdbus-codegen, etc.
12874 itstool
12875 libxml2
12876 pkg-config))
12877 ;; This home page is so woefully out of date as to be essentially useless.
12878 ;; (home-page "http://www.sysprof.com")
12879 (home-page "https://wiki.gnome.org/Apps/Sysprof")
12880 (synopsis "System-wide performance profiler for GNU/Linux")
12881 (description
12882 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
12883 GNU/Linux system including the kernel and all user-space applications. This
12884 helps find the function(s) in which a program spends most of its time.
12885
12886 It uses the kernel's built-in @code{ptrace} feature and handles shared
12887 libraries. Applications do not need to be recompiled--or even restarted.")
12888 (license license:gpl3+)))
12889
12890 (define-public sysprof-3.44
12891 (package
12892 (inherit sysprof)
12893 (name "sysprof")
12894 (version "3.44.0")
12895 (source (origin
12896 (method url-fetch)
12897 (uri (string-append "mirror://gnome/sources/sysprof/"
12898 (version-major+minor version) "/"
12899 "sysprof-" version ".tar.xz"))
12900 (sha256
12901 (base32 "0nq0icbln0ryqzlybr7wyl19mhr3vkqzs6wasn430fwpf5drypdb"))))
12902 (inputs (modify-inputs (package-inputs sysprof)
12903 (replace "glib" glib)
12904 (replace "gtk" gtk+)))
12905 (native-inputs (modify-inputs (package-native-inputs sysprof)
12906 (replace "glib" `(,glib "bin"))))
12907 (arguments (substitute-keyword-arguments (package-arguments sysprof)
12908 ((#:phases phases '%standard-phases)
12909 #~(modify-phases #$phases
12910 (replace 'disable-post-install
12911 (lambda _
12912 (substitute* "build-aux/meson/post_install.sh"
12913 (("gtk-update-icon-cache") "true")
12914 (("update-desktop-database") "true"))))))))))
12915
12916 (define-public gnome-builder
12917 (package
12918 (name "gnome-builder")
12919 (version "42.1")
12920 (source (origin
12921 (method url-fetch)
12922 (uri (string-append "mirror://gnome/sources/" name "/"
12923 (version-major version) "/"
12924 name "-" version ".tar.xz"))
12925 (sha256
12926 (base32
12927 "02k78mamp1yf9y6wixd864hdf9saw83wdw01f80lhnw60avm2kax"))))
12928 (build-system meson-build-system)
12929 (arguments
12930 (list
12931 #:glib-or-gtk? #t ;To wrap binaries and compile schemas
12932 #:configure-flags #~(list "-Dnetwork_tests=false")
12933 #:phases
12934 #~(modify-phases %standard-phases
12935 (add-after 'unpack 'patch-meson
12936 (lambda* (#:key inputs #:allow-other-keys)
12937 (substitute* "build-aux/meson/post_install.py"
12938 (("gtk-update-icon-cache") "true")
12939 (("update-desktop-database") "true"))
12940 (substitute* "src/libide/meson.build"
12941 (("/usr/lib")
12942 (string-append #$(this-package-input "python-pygobject")
12943 "/lib")))))
12944 (add-before 'check 'pre-check
12945 (lambda _
12946 (system "Xvfb :1 &")
12947 (setenv "DISPLAY" ":1"))))))
12948 (inputs
12949 (list cmark
12950 clang
12951 devhelp-with-libsoup2
12952 flatpak
12953 glade3
12954 gspell
12955 gtk+
12956 json-glib
12957 jsonrpc-glib
12958 libdazzle
12959 libgit2-glib
12960 libhandy
12961 libpeas
12962 libportal
12963 libsoup-minimal-2
12964 llvm
12965 libostree
12966 python
12967 python-pygobject
12968 sysprof-3.44
12969 template-glib
12970 vte
12971 webkitgtk-with-libsoup2))
12972 (propagated-inputs
12973 (list gtksourceview-4)) ;needed for settings
12974 (native-inputs
12975 (list desktop-file-utils ;for desktop-file-validate
12976 `(,glib "bin")
12977 gettext-minimal
12978 pkg-config
12979 python ;for meson scripts
12980 vala
12981 xorg-server-for-tests))
12982 (home-page "https://wiki.gnome.org/Apps/Builder")
12983 (synopsis "Toolsmith for GNOME-based applications")
12984 (description
12985 "Builder aims to be an integrated development environment (IDE) for
12986 writing GNOME-based software. It features fuzzy search, auto-completion,
12987 a mini code map, documentation browsing, Git integration, an integrated
12988 profiler via Sysprof, debugging support, and more.")
12989 (license license:gpl3+)))
12990
12991 (define-public komikku
12992 (package
12993 (name "komikku")
12994 (version "0.41.0")
12995 (source
12996 (origin
12997 (method git-fetch)
12998 (uri (git-reference
12999 (url "https://gitlab.com/valos/Komikku/")
13000 (commit (string-append "v" version))))
13001 (file-name (git-file-name name version))
13002 (sha256
13003 (base32
13004 "17r059srxrx26w40swy47pdpyigyjdczp8550g4rfh86qs3ld4il"))))
13005 (build-system meson-build-system)
13006 (arguments
13007 `(#:glib-or-gtk? #t
13008 #:phases
13009 (modify-phases %standard-phases
13010 (add-after 'unpack 'patch-sources
13011 (lambda _
13012 (substitute* "komikku/utils.py"
13013 (("from komikku\\.servers import get_servers_list")
13014 ;; code following that line should migrate old databases
13015 ;; but the line itself results in an import error
13016 "return data_dir_path"))))
13017 (add-after 'unpack 'skip-gtk-update-icon-cache
13018 (lambda _
13019 (substitute* "meson_post_install.py"
13020 (("gtk-update-icon-cache") (which "true")))))
13021 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
13022 (lambda* (#:key outputs #:allow-other-keys)
13023 (wrap-program (search-input-file outputs "bin/komikku")
13024 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
13025 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
13026 (inputs
13027 (list bash-minimal
13028 gtk+
13029 libhandy
13030 libnotify
13031 libsecret
13032 python
13033 python-beautifulsoup4
13034 python-brotli
13035 python-cloudscraper
13036 python-dateparser
13037 python-keyring
13038 python-lxml
13039 python-magic
13040 python-natsort
13041 python-pillow
13042 python-pure-protobuf
13043 python-pycairo
13044 python-pygobject
13045 python-requests
13046 python-unidecode
13047 webkitgtk-with-libsoup2))
13048 (native-inputs
13049 (list desktop-file-utils
13050 gettext-minimal
13051 `(,glib "bin")
13052 gobject-introspection
13053 pkg-config))
13054 (home-page "https://gitlab.com/valos/Komikku")
13055 (synopsis "Manga reader for GNOME")
13056 (description "Komikku is an online/offline manga reader for GNOME,
13057 developed with the aim of being used with the Librem 5 phone.")
13058 (license license:gpl3+)))
13059
13060 (define-public libgda
13061 (package
13062 (name "libgda")
13063 (version "6.0.0")
13064 (source
13065 (origin
13066 (method url-fetch)
13067 (uri (string-append "mirror://gnome/sources/" name "/"
13068 (version-major+minor version) "/"
13069 name "-" version ".tar.xz"))
13070 (sha256
13071 (base32 "0w564z7krgjk19r39mi5qn4kggpdg9ggbyn9pb4aavb61r14npwr"))
13072 (patches (search-patches "libgda-cve-2021-39359.patch"
13073 "libgda-fix-build.patch"
13074 "libgda-fix-missing-initialization.patch"
13075 "libgda-skip-postgresql-tests.patch"))))
13076 (build-system meson-build-system)
13077 (native-inputs
13078 (list intltool
13079 iso-codes
13080 `(,glib "bin")
13081 gnome-common
13082 gettext-minimal
13083 gobject-introspection
13084 gtk-doc/stable
13085 pkg-config
13086 python
13087 vala
13088 yelp-tools))
13089 (inputs
13090 (list json-glib
13091 glib
13092 glade3
13093 gtk+
13094 libsecret
13095 libxslt
13096 openssl
13097 sqlite
13098 vala))
13099 (propagated-inputs
13100 (list libxml2)) ; required by libgda-5.0.pc
13101 (home-page "https://gitlab.gnome.org/GNOME/libgda")
13102 (synopsis "Uniform data access")
13103 (description
13104 "GNU Data Access (GDA) is an attempt to provide uniform access to
13105 different kinds of data sources (databases, information servers, mail spools,
13106 etc). It is a complete architecture that provides all you need to access
13107 your data.")
13108 (license license:lgpl2.1+)))
13109
13110 (define-public gtranslator
13111 (package
13112 (name "gtranslator")
13113 (version "42.0")
13114 (source (origin
13115 (method url-fetch)
13116 (uri (string-append "mirror://gnome/sources/" name "/"
13117 (version-major version) "/"
13118 name "-" version ".tar.xz"))
13119 (sha256
13120 (base32
13121 "0fzi48s3wz9mf6c1ndpkby83bgshgn2116nqjq31n1j3wszvqrra"))))
13122 (build-system meson-build-system)
13123 (arguments
13124 (list #:build-type "release" ;otherwise it tries to fetch stuff via git
13125 #:glib-or-gtk? #t
13126 #:phases
13127 #~(modify-phases %standard-phases
13128 (add-after 'unpack 'skip-gtk-update-icon-cache
13129 (lambda _
13130 (substitute* "build-aux/meson/meson_post_install.py"
13131 (("gtk-update-icon-cache") (which "true"))))))))
13132 (native-inputs
13133 (list `(,glib-next "bin")
13134 gettext-minimal
13135 itstool
13136 pkg-config))
13137 (inputs
13138 (list json-glib
13139 jsonrpc-glib
13140 gettext-minimal
13141 glib-next
13142 gsettings-desktop-schemas
13143 gspell
13144 libgda
13145 libhandy
13146 libsoup
13147 pango-next))
13148 (propagated-inputs
13149 (list gtksourceview-4)) ; required for source view
13150 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
13151 (synopsis "Translation making program")
13152 (description
13153 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
13154 for the GNOME 3.x platform with many features. It aims to be a very complete
13155 editing environment for translation issues within the GNU gettext/GNOME desktop
13156 world.")
13157 (license license:gpl3+)))
13158
13159
13160 (define-public ocrfeeder
13161 (package
13162 (name "ocrfeeder")
13163 (version "0.8.5")
13164 (source (origin
13165 (method url-fetch)
13166 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
13167 (version-major+minor version) "/"
13168 "ocrfeeder-" version ".tar.xz"))
13169 (sha256
13170 (base32
13171 "1vaaphzk6zn7pp2x9scphdzlbsma910wnbhd9xry50nx95cjlgdh"))))
13172 (build-system gnu-build-system)
13173 (arguments
13174 `(#:phases
13175 (modify-phases %standard-phases
13176 (add-after
13177 'install 'wrap-program
13178 (lambda* (#:key outputs #:allow-other-keys)
13179 (let ((prog (string-append (assoc-ref outputs "out")
13180 "/bin/" "ocrfeeder"))
13181 (pylib (string-append (assoc-ref outputs "out")
13182 "/lib/python"
13183 ,(version-major+minor
13184 (package-version python))
13185 "/site-packages")))
13186 (wrap-program prog
13187 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
13188 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
13189 (native-inputs
13190 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
13191 ("gobject-introspection" ,gobject-introspection)
13192 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
13193 ("intltool" ,intltool)
13194 ("itstool" ,itstool)
13195 ("pkg-config" ,pkg-config)
13196 ("xmllint" ,libxml2)))
13197 (inputs
13198 `(("enchant" ,enchant)
13199 ("glib" ,glib)
13200 ("goocanvas" ,goocanvas)
13201 ("gtk" ,gtk+)
13202 ("gtkspell3" ,gtkspell3)
13203 ("libjpeg" ,libjpeg-turbo)
13204 ("libtiff" ,libtiff)
13205 ("libraw" ,libraw)
13206 ("ocrad" ,ocrad)
13207 ("python" ,python-wrapper)
13208 ("python-pygobject" ,python-pygobject)
13209 ("python-odfpy" ,python-odfpy)
13210 ("python-pillow" ,python-pillow)
13211 ("python-pyenchant" ,python-pyenchant)
13212 ("python-reportlab" ,python-reportlab)
13213 ("python-sane" ,python-sane)
13214 ("sane-backends" ,sane-backends)
13215 ("tesseract-ocr" ,tesseract-ocr)))
13216 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
13217 (synopsis "Complete OCR Suite")
13218 (description "OCRFeeder is a complete Optical Character Recognition and
13219 Document Analysis and Recognition program.")
13220 (license license:gpl3+)))
13221
13222 (define-public libadwaita
13223 (package
13224 (name "libadwaita")
13225 (version "1.2.rc")
13226 (source (origin
13227 (method url-fetch)
13228 (uri (string-append "mirror://gnome/sources/libadwaita/"
13229 (version-major+minor version) "/"
13230 "libadwaita-" version ".tar.xz"))
13231 (sha256
13232 (base32
13233 "1syg7fkpcsw0q6fy3g79myb9m9bvrnh3rjrm6g4bfg1pnlqf1w22"))))
13234 (build-system meson-build-system)
13235 (arguments
13236 `(#:phases
13237 (modify-phases %standard-phases
13238 (add-before 'check 'pre-check
13239 (lambda* (#:key inputs #:allow-other-keys)
13240 ;; Tests require a running X server.
13241 (system "Xvfb :1 &")
13242 (setenv "DISPLAY" ":1"))))))
13243 (native-inputs
13244 (list gettext-minimal
13245 `(,glib "bin")
13246 gobject-introspection
13247 gtk-doc/stable
13248 pkg-config
13249 sassc
13250 vala
13251 xorg-server-for-tests))
13252 (propagated-inputs
13253 (list gtk)) ;libadwaita-1.pc 'Requires' it
13254 (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
13255 (synopsis "Building blocks for GNOME applications")
13256 (description
13257 "@code{libadwaita} offers widgets and objects to build GNOME
13258 applications scaling from desktop workstations to mobile phones. It is the
13259 successor of @code{libhandy} for GTK4.")
13260 (license license:lgpl2.1+)))
13261
13262 (define-public gnome-power-manager
13263 (package
13264 (name "gnome-power-manager")
13265 (version "3.32.0")
13266 (source (origin
13267 (method url-fetch)
13268 (uri (string-append "mirror://gnome/sources/" name "/"
13269 (version-major+minor version) "/"
13270 name "-" version ".tar.xz"))
13271 (sha256
13272 (base32
13273 "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g"))))
13274 (build-system meson-build-system)
13275 (inputs
13276 (list upower gtk+ gsettings-desktop-schemas adwaita-icon-theme))
13277 (native-inputs
13278 (list desktop-file-utils
13279 `(,glib "bin") gettext-minimal pkg-config))
13280 (home-page "https://gitlab.gnome.org/GNOME/gnome-power-manager")
13281 (synopsis "Power management daemon for the GNOME desktop")
13282 (description "@code{gnome-power-manager} is a tool for viewing present and
13283 historical battery usage and related statistics.")
13284 (license license:gpl2)))
13285
13286 (define-public xffm+
13287 (package
13288 (name "xffm+")
13289 (version "0.94")
13290 (source (origin
13291 (method url-fetch)
13292 (uri (string-append "mirror://sourceforge/xffm/xffm+/xffm+-"
13293 version ".tar.bz2"))
13294 (sha256
13295 (base32
13296 "0gwbgmjzlgv9ba95cgaigjnc9njzi7qznhvzp0qrnnlq3nbcm1k1"))))
13297 (build-system cmake-build-system)
13298 (arguments
13299 `(#:tests? #f ; No tests exist
13300 #:configure-flags
13301 (let ((shared-mime-info (assoc-ref %build-inputs "shared-mime-info"))
13302 (out (assoc-ref %outputs "out")))
13303 (list (string-append "-DFREEDESKTOP_GLOBS=" shared-mime-info
13304 "/share/mime/globs")
13305 (string-append "-DFREEDESKTOP_ALIAS=" shared-mime-info
13306 "/share/mime/aliases")
13307 (string-append "-DFREEDESKTOP_ICONS=" shared-mime-info
13308 "/share/mime/generic-icons")
13309 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
13310 (string-append "-DPREFIX_BIN=" out "/bin")))
13311 #:phases
13312 (modify-phases %standard-phases
13313 (add-after 'unpack 'patch-installation-destination
13314 (lambda* (#:key outputs #:allow-other-keys)
13315 (substitute* "CMakeLists.txt"
13316 ;; This is done so we can override.
13317 (("^set.CMAKE_INSTALL_PREFIX") "set(QCMAKE_INSTALL_PREFIX")
13318 ;; This is done so we can override.
13319 (("`set.PREFIX_BIN") "set(QPREFIX_BIN")))))))
13320 (native-inputs
13321 (list cmake pkg-config intltool gnu-gettext))
13322 (inputs
13323 (list glib gtk+ libx11 libsm libxv libxaw libxcb libxkbfile
13324 shared-mime-info))
13325 (synopsis "File manager")
13326 (description "This package provides a graphical file manager.")
13327 (home-page "http://xffm.org/")
13328 (license license:gpl3+)
13329 (properties '((upstream-name . "xffm")))))