gnu: phodav: Update to 3.0.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016, 2020 Eric Bavier <bavier@posteo.net>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015-2022 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017, 2020, 2021 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
54 ;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
58 ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
59 ;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org>
60 ;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org>
61 ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu>
62 ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
63 ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
64 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
65 ;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
66 ;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
67 ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
68 ;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
69 ;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
70 ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
71 ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
72 ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
73 ;;; Copyright © 2022 Rene Saavedra <nanuui@protonmail.com>
74 ;;; Copyright © 2022 Alexandros Theodotou <alex@zrythm.org>
75 ;;;
76 ;;; This file is part of GNU Guix.
77 ;;;
78 ;;; GNU Guix is free software; you can redistribute it and/or modify it
79 ;;; under the terms of the GNU General Public License as published by
80 ;;; the Free Software Foundation; either version 3 of the License, or (at
81 ;;; your option) any later version.
82 ;;;
83 ;;; GNU Guix is distributed in the hope that it will be useful, but
84 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
85 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
86 ;;; GNU General Public License for more details.
87 ;;;
88 ;;; You should have received a copy of the GNU General Public License
89 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
90
91 (define-module (gnu packages gnome)
92 #:use-module (gnu packages)
93 #:use-module (gnu packages admin)
94 #:use-module (gnu packages aidc)
95 #:use-module (gnu packages aspell)
96 #:use-module (gnu packages autotools)
97 #:use-module (gnu packages avahi)
98 #:use-module (gnu packages backup)
99 #:use-module (gnu packages base)
100 #:use-module (gnu packages bash)
101 #:use-module (gnu packages bison)
102 #:use-module (gnu packages boost)
103 #:use-module (gnu packages build-tools)
104 #:use-module (gnu packages calendar)
105 #:use-module (gnu packages cdrom)
106 #:use-module (gnu packages check)
107 #:use-module (gnu packages cmake)
108 #:use-module (gnu packages compression)
109 #:use-module (gnu packages crates-io)
110 #:use-module (gnu packages crates-graphics)
111 #:use-module (gnu packages crates-gtk)
112 #:use-module (gnu packages cups)
113 #:use-module (gnu packages curl)
114 #:use-module (gnu packages cyrus-sasl)
115 #:use-module (gnu packages databases)
116 #:use-module (gnu packages dbm)
117 #:use-module (gnu packages djvu)
118 #:use-module (gnu packages dns)
119 #:use-module (gnu packages docbook)
120 #:use-module (gnu packages docker)
121 #:use-module (gnu packages documentation)
122 #:use-module (gnu packages enchant)
123 #:use-module (gnu packages flex)
124 #:use-module (gnu packages fonts)
125 #:use-module (gnu packages file-systems)
126 #:use-module (gnu packages fontutils)
127 #:use-module (gnu packages freedesktop)
128 #:use-module (gnu packages game-development)
129 #:use-module (gnu packages gcc)
130 #:use-module (gnu packages gettext)
131 #:use-module (gnu packages ghostscript)
132 #:use-module (gnu packages gimp)
133 #:use-module (gnu packages gl)
134 #:use-module (gnu packages glib)
135 #:use-module (gnu packages gnupg)
136 #:use-module (gnu packages gnuzilla)
137 #:use-module (gnu packages geo)
138 #:use-module (gnu packages gperf)
139 #:use-module (gnu packages graphviz)
140 #:use-module (gnu packages gstreamer)
141 #:use-module (gnu packages gtk)
142 #:use-module (gnu packages guile)
143 #:use-module (gnu packages haskell-xyz)
144 #:use-module (gnu packages ibus)
145 #:use-module (gnu packages icu4c)
146 #:use-module (gnu packages image)
147 #:use-module (gnu packages imagemagick)
148 #:use-module (gnu packages inkscape)
149 #:use-module (gnu packages iso-codes)
150 #:use-module (gnu packages kerberos)
151 #:use-module (gnu packages language)
152 #:use-module (gnu packages libcanberra)
153 #:use-module (gnu packages libffi)
154 #:use-module (gnu packages libunistring)
155 #:use-module (gnu packages libunwind)
156 #:use-module (gnu packages libusb)
157 #:use-module (gnu packages linux)
158 #:use-module (gnu packages lirc)
159 #:use-module (gnu packages llvm)
160 #:use-module (gnu packages lua)
161 #:use-module (gnu packages mail)
162 #:use-module (gnu packages man)
163 #:use-module (gnu packages markup)
164 #:use-module (gnu packages messaging)
165 #:use-module (gnu packages mp3)
166 #:use-module (gnu packages multiprecision)
167 #:use-module (gnu packages music)
168 #:use-module (gnu packages ncurses)
169 #:use-module (gnu packages nettle)
170 #:use-module (gnu packages networking)
171 #:use-module (gnu packages ninja)
172 #:use-module (gnu packages node)
173 #:use-module (gnu packages nss)
174 #:use-module (gnu packages ocr)
175 #:use-module (gnu packages openldap)
176 #:use-module (gnu packages package-management)
177 #:use-module (gnu packages password-utils)
178 #:use-module (gnu packages pcre)
179 #:use-module (gnu packages pdf)
180 #:use-module (gnu packages perl)
181 #:use-module (gnu packages photo)
182 #:use-module (gnu packages pkg-config)
183 #:use-module (gnu packages polkit)
184 #:use-module (gnu packages popt)
185 #:use-module (gnu packages pretty-print)
186 #:use-module (gnu packages protobuf)
187 #:use-module (gnu packages pulseaudio)
188 #:use-module (gnu packages python)
189 #:use-module (gnu packages python-build)
190 #:use-module (gnu packages python-crypto)
191 #:use-module (gnu packages python-web)
192 #:use-module (gnu packages python-xyz)
193 #:use-module (gnu packages rdesktop)
194 #:use-module (gnu packages rdf)
195 #:use-module (gnu packages readline)
196 #:use-module (gnu packages ruby)
197 #:use-module (gnu packages rust)
198 #:use-module (gnu packages samba)
199 #:use-module (gnu packages scanner)
200 #:use-module (gnu packages sdl)
201 #:use-module (gnu packages search)
202 #:use-module (gnu packages selinux)
203 #:use-module (gnu packages slang)
204 #:use-module (gnu packages speech)
205 #:use-module (gnu packages spice)
206 #:use-module (gnu packages sqlite)
207 #:use-module (gnu packages ssh)
208 #:use-module (gnu packages swig)
209 #:use-module (gnu packages tex)
210 #:use-module (gnu packages time)
211 #:use-module (gnu packages tls)
212 #:use-module (gnu packages valgrind)
213 #:use-module (gnu packages version-control)
214 #:use-module (gnu packages video)
215 #:use-module (gnu packages virtualization)
216 #:use-module (gnu packages vpn)
217 #:use-module (gnu packages web)
218 #:use-module (gnu packages webkit)
219 #:use-module (gnu packages xdisorg)
220 #:use-module (gnu packages xiph)
221 #:use-module (gnu packages xml)
222 #:use-module (gnu packages xorg)
223 #:use-module (gnu artwork)
224 #:use-module (guix build-system cargo)
225 #:use-module (guix build-system cmake)
226 #:use-module (guix build-system glib-or-gtk)
227 #:use-module (guix build-system gnu)
228 #:use-module (guix build-system meson)
229 #:use-module (guix build-system python)
230 #:use-module (guix build-system trivial)
231 #:use-module (guix download)
232 #:use-module (guix git-download)
233 #:use-module ((guix licenses) #:prefix license:)
234 #:use-module (guix packages)
235 #:use-module (guix utils)
236 #:use-module (guix gexp)
237 #:use-module (ice-9 match)
238 #:use-module (srfi srfi-1))
239
240 (define-public gupnp-igd
241 (package
242 (name "gupnp-igd")
243 (version "1.2.0")
244 (source
245 (origin
246 (method url-fetch)
247 (uri
248 (string-append "mirror://gnome/sources/" name "/"
249 (version-major+minor version) "/"
250 name "-" version ".tar.xz"))
251 (sha256
252 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
253 (build-system meson-build-system)
254 (outputs '("out" "doc"))
255 (arguments
256 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
257 #:configure-flags (list "-Dgtk_doc=true")
258 #:phases
259 (modify-phases %standard-phases
260 (add-after 'unpack 'patch-docbook-xml
261 (lambda* (#:key inputs #:allow-other-keys)
262 (with-directory-excursion "doc"
263 (substitute* "gupnp-igd-docs.xml"
264 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
265 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
266 "/xml/dtd/docbook/"))))
267 #t))
268 (add-before 'check 'set-home
269 (lambda _
270 ;; A test using GIO expects ~/.config/glib-2.0/settings to be
271 ;; writable.
272 (setenv "HOME" (getcwd))))
273 (add-after 'install 'move-doc
274 (lambda* (#:key outputs #:allow-other-keys)
275 (let* ((out (assoc-ref outputs "out"))
276 (doc (assoc-ref outputs "doc")))
277 (mkdir-p (string-append doc "/share"))
278 (rename-file
279 (string-append out "/share/gtk-doc")
280 (string-append doc "/share/gtk-doc"))
281 #t))))))
282 (native-inputs
283 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
284 ("docbook-xsl" ,docbook-xsl)
285 ("glib:bin" ,glib "bin")
286 ("gobject-introspection" ,gobject-introspection)
287 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
288 ("gtk-doc" ,gtk-doc/stable)
289 ("pkg-config" ,pkg-config)))
290 (propagated-inputs
291 (list glib glib-networking gssdp gupnp libsoup))
292 (synopsis "UPnP IGD for GNOME")
293 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
294 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
295 (license license:lgpl2.1+)))
296
297 (define-public brasero
298 (package
299 (name "brasero")
300 (version "3.12.3")
301 (source (origin
302 (method url-fetch)
303 (uri (string-append "mirror://gnome/sources/brasero/"
304 (version-major+minor version) "/"
305 "brasero-" version ".tar.xz"))
306 (sha256
307 (base32
308 "05gabybkl7xfinwx97i4scp9hic0dlxj7gh03dyj0hd16fp9wx47"))))
309 (build-system glib-or-gtk-build-system)
310 (arguments
311 `(#:configure-flags (list
312 (string-append "--with-girdir="
313 (assoc-ref %outputs "out")
314 "/share/gir-1.0")
315 (string-append "--with-typelibdir="
316 (assoc-ref %outputs "out")
317 "/lib/girepository-1.0"))
318 #:phases
319 (modify-phases %standard-phases
320 (add-before 'configure 'embed-growisofs-reference
321 (lambda* (#:key inputs #:allow-other-keys)
322 (let ((dvd+rw-tools (assoc-ref inputs "dvd+rw-tools")))
323 (substitute* "plugins/growisofs/burn-growisofs.c"
324 (("(\")(growisofs)" _ prefix command)
325 (string-append prefix dvd+rw-tools "/bin/" command)))))))))
326 (propagated-inputs
327 (list hicolor-icon-theme))
328 (native-inputs
329 (list intltool
330 itstool
331 `(,glib "bin") ; glib-compile-schemas, etc.
332 gobject-introspection
333 pkg-config))
334 (inputs
335 (list dvd+rw-tools
336 glib
337 gstreamer
338 gst-plugins-base
339 gtk+
340 libcanberra
341 libice
342 libnotify
343 libsm
344 libxml2
345 totem-pl-parser))
346 (home-page "https://wiki.gnome.org/Apps/Brasero")
347 (synopsis "CD/DVD burning tool for Gnome")
348 (description "Brasero is an application to burn CD/DVD for the Gnome
349 Desktop. It is designed to be as simple as possible and has some unique
350 features to enable users to create their discs easily and quickly.")
351 (license license:gpl2+)))
352
353 ;;; Minimal variant, used to break a cycle with Inkscape.
354 (define-public libcloudproviders-minimal
355 (package
356 (name "libcloudproviders-minimal")
357 (version "0.3.1")
358 (source
359 (origin
360 (method url-fetch)
361 (uri
362 (string-append "mirror://gnome/sources/libcloudproviders/"
363 (version-major+minor version)
364 "/libcloudproviders-" version ".tar.xz"))
365 (sha256
366 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
367 (build-system meson-build-system)
368 (arguments
369 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
370 #:configure-flags (list "-Dintrospection=false"
371 "-Denable-gtk-doc=false"
372 "-Dvapigen=false")))
373 (native-inputs
374 `(("glib:bin" ,glib "bin")
375 ("pkg-config" ,pkg-config)
376 ("vala" ,vala)))
377 (inputs
378 (list glib glib-networking))
379 (synopsis "Cloudproviders Integration API")
380 (description "Libcloudproviders is a DBus API that allows cloud storage sync
381 clients to expose their services. Clients such as file managers and desktop
382 environments can then provide integrated access to the cloud providers
383 services.")
384 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
385 (license license:lgpl3+)))
386
387 (define-public libcloudproviders
388 (package/inherit libcloudproviders-minimal
389 (name "libcloudproviders")
390 (version "0.3.1")
391 (outputs (cons "doc" (package-outputs libcloudproviders-minimal)))
392 (arguments
393 (substitute-keyword-arguments (package-arguments libcloudproviders-minimal)
394 ((#:configure-flags _)
395 '(list "-Denable-gtk-doc=true")) ;false by default
396 ((#:phases phases '%standard-phases)
397 `(modify-phases %standard-phases
398 (add-after 'install 'move-doc
399 (lambda* (#:key outputs #:allow-other-keys)
400 (let* ((out (assoc-ref outputs "out"))
401 (doc (assoc-ref outputs "doc")))
402 (mkdir-p (string-append doc "/share"))
403 (rename-file
404 (string-append out "/share/gtk-doc")
405 (string-append doc "/share/gtk-doc")))))))))
406 (native-inputs
407 (append
408 `(("gobject-introspection" ,gobject-introspection)
409 ("gtk-doc" ,gtk-doc/stable))
410 (package-native-inputs libcloudproviders-minimal)))))
411
412 (define-public libgrss
413 (package
414 (name "libgrss")
415 (version "0.7.0")
416 (source
417 (origin
418 (method url-fetch)
419 (uri
420 (string-append "mirror://gnome/sources/" name "/"
421 (version-major+minor version) "/"
422 name "-" version ".tar.xz"))
423 (sha256
424 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))
425 (patches
426 (search-patches "libgrss-CVE-2016-2001.patch"))))
427 (build-system glib-or-gtk-build-system)
428 (outputs '("out" "doc"))
429 (arguments
430 `(#:configure-flags
431 (list
432 "--enable-gtk-doc"
433 (string-append "--with-html-dir="
434 (assoc-ref %outputs "doc")
435 "/share/gtk-doc/html"))
436 #:phases
437 (modify-phases %standard-phases
438 (add-after 'unpack 'patch-docbook-xml
439 (lambda* (#:key inputs #:allow-other-keys)
440 (with-directory-excursion "doc/reference"
441 (substitute* "libgrss-docs.sgml"
442 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
443 (string-append (assoc-ref inputs "docbook-xml")
444 "/xml/dtd/docbook/"))))
445 #t)))))
446 (native-inputs
447 (list docbook-xml-4.1.2 gobject-introspection gtk-doc/stable
448 pkg-config))
449 (propagated-inputs
450 (list glib libsoup-minimal-2 libxml2))
451 (synopsis "Glib library for feeds")
452 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
453 and other formats.")
454 (home-page "https://wiki.gnome.org/Projects/Libgrss")
455 (license license:lgpl3+)))
456
457 (define-public gnome-js-common
458 (package
459 (name "gnome-js-common")
460 (version "0.1.2")
461 (source
462 (origin
463 (method url-fetch)
464 (uri
465 (string-append "mirror://gnome/sources/" name "/"
466 (version-major+minor version) "/"
467 name "-" version ".tar.gz"))
468 (sha256
469 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
470 (build-system glib-or-gtk-build-system)
471 (arguments
472 `(#:configure-flags
473 (list
474 "--disable-static")))
475 (native-inputs
476 `(("gettext" ,gettext-minimal)
477 ("intltool" ,intltool)
478 ("pkg-config" ,pkg-config)))
479 (synopsis "Common JS Modules")
480 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
481 bindings.")
482 (home-page "https://wiki.gnome.org/Projects/Seed")
483 (license license:gpl3+)))
484
485 (define-public seed
486 (package
487 (name "seed")
488 (version "3.8.1")
489 (source
490 (origin
491 (method url-fetch)
492 (uri
493 (string-append "mirror://gnome/sources/" name "/"
494 (version-major+minor version) "/"
495 name "-" version ".tar.xz"))
496 (sha256
497 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
498 (patches
499 (search-patches "seed-webkit.patch"))))
500 (build-system glib-or-gtk-build-system)
501 (outputs '("out" "doc"))
502 (arguments
503 `(#:configure-flags
504 (list
505 "--disable-static"
506 "--enable-xorg-module"
507 (string-append "--with-html-dir="
508 (assoc-ref %outputs "doc")
509 "/share/gtk-doc/html")
510 "--with-webkit=4.0")
511 #:phases
512 (modify-phases %standard-phases
513 ;; The seed-webkit.patch patches configure.ac.
514 ;; So the source files need to be re-bootstrapped.
515 (add-after 'unpack 'trigger-bootstrap
516 (lambda _
517 (for-each delete-file
518 (list
519 "configure"
520 "Makefile.in"))
521 #t))
522 (add-after 'unpack 'patch-tests
523 (lambda* (#:key outputs #:allow-other-keys)
524 (substitute* (find-files "." "\\.js$")
525 (("#!/usr/bin/env seed")
526 (string-append "#!" (getcwd) "/src/seed")))
527 #t))
528 (add-before 'build 'patch-docbook-xml
529 (lambda* (#:key inputs #:allow-other-keys)
530 (with-directory-excursion "doc"
531 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
532 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
533 (string-append (assoc-ref inputs "docbook-xml")
534 "/xml/dtd/docbook/"))))
535 #t)))))
536 (native-inputs
537 `(("autoconf" ,autoconf)
538 ("automake" ,automake)
539 ("docbook-xml" ,docbook-xml-4.1.2)
540 ("gettext" ,gettext-minimal)
541 ("gobject-introspection" ,gobject-introspection)
542 ("gtk-doc" ,gtk-doc/stable)
543 ("intltool" ,intltool)
544 ("libtool" ,libtool)
545 ("pkg-config" ,pkg-config)))
546 (inputs
547 `(("cairo" ,cairo)
548 ("dbus" ,dbus)
549 ("dbus-glib" ,dbus-glib)
550 ("gnome-js-common" ,gnome-js-common)
551 ("gtk+" ,gtk+)
552 ("gtk+-2" ,gtk+-2)
553 ("libffi" ,libffi)
554 ("libxml2" ,libxml2)
555 ("mpfr" ,mpfr)
556 ("readline" ,readline)
557 ("sqlite" ,sqlite)
558 ("xscrnsaver" ,libxscrnsaver)))
559 (propagated-inputs
560 `(("glib" ,glib)
561 ("webkit" ,webkitgtk-with-libsoup2)))
562 (synopsis "GObject JavaScriptCore bridge")
563 (description "Seed is a library and interpreter, dynamically bridging
564 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
565 GNOME platform. It serves as something which enables you to write standalone
566 applications in JavaScript, or easily enable your application to be extensible
567 in JavaScript.")
568 (home-page "https://wiki.gnome.org/Projects/Seed")
569 (license license:lgpl2.0+)))
570
571 (define-public libdmapsharing
572 (package
573 (name "libdmapsharing")
574 (version "3.9.10")
575 (source
576 (origin
577 (method url-fetch)
578 (uri
579 (string-append "https://www.flyn.org/projects/"
580 name "/" name "-" version ".tar.gz"))
581 (sha256
582 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
583 (build-system glib-or-gtk-build-system)
584 (outputs '("out" "doc"))
585 (arguments
586 `(#:tests? #f ; Tests require networking.
587 #:configure-flags
588 (list
589 "--disable-static"
590 (string-append "--with-html-dir="
591 (assoc-ref %outputs "doc")
592 "/share/gtk-doc/html"))
593 #:phases
594 (modify-phases %standard-phases
595 (add-after 'unpack 'patch-docbook-xml
596 (lambda* (#:key inputs #:allow-other-keys)
597 (with-directory-excursion "doc"
598 (substitute* "libdmapsharing-4.0-docs.xml"
599 (("http://www.oasis-open.org/docbook/xml/4.3/")
600 (string-append (assoc-ref inputs "docbook-xml")
601 "/xml/dtd/docbook/"))))
602 #t)))))
603 (native-inputs
604 (list check
605 docbook-xml-4.3
606 gobject-introspection
607 pedansee
608 pkg-config
609 vala))
610 (inputs
611 `(("avahi" ,avahi)
612 ("librsvg" ,librsvg)
613 ("gee" ,libgee)
614 ("gst-plugins-base" ,gst-plugins-base)
615 ("gtk+" ,gtk+)))
616 (propagated-inputs
617 (list glib glib-networking gstreamer libsoup-minimal-2))
618 (synopsis "Media management library")
619 (description "Libdmapsharing is a library which allows programs to access,
620 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
621 It is written in C using GObject and libsoup.")
622 (home-page "https://launchpad.net/gtx")
623 (license license:lgpl2.1+)))
624
625 (define-public gtx
626 (package
627 (name "gtx")
628 (version "0.2.2")
629 (source
630 (origin
631 (method url-fetch)
632 (uri
633 (string-append "https://launchpad.net/gtx/trunk/"
634 version "/+download/gtx-" version ".tar.gz"))
635 (sha256
636 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
637 (build-system glib-or-gtk-build-system)
638 (outputs '("out" "doc"))
639 (arguments
640 `(#:configure-flags
641 (list
642 "--disable-static"
643 "--enable-gtk-doc"
644 (string-append "--with-html-dir="
645 (assoc-ref %outputs "doc")
646 "/share/gtk-doc/html"))))
647 (native-inputs
648 (list gobject-introspection gtk-doc/stable pkg-config))
649 (propagated-inputs
650 (list glib))
651 (synopsis "GLib Testing Framework")
652 (description "GTX is a small collection of convenience functions intended to
653 enhance the GLib testing framework. With specific emphasis on easing the pain
654 of writing test cases for asynchronous interactions.")
655 (home-page "https://launchpad.net/gtx")
656 (license license:lgpl2.1+)))
657
658 (define-public dee
659 (package
660 (name "dee")
661 (version "1.2.7")
662 (source
663 (origin
664 (method url-fetch)
665 (uri
666 (string-append "https://launchpad.net/dee/1.0/"
667 version "/+download/dee-" version ".tar.gz"))
668 (sha256
669 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
670 (patches
671 (search-patches "dee-vapi.patch"))))
672 (build-system glib-or-gtk-build-system)
673 (outputs '("out" "doc"))
674 (arguments
675 `(#:configure-flags
676 (list
677 "--disable-maintainer-flags"
678 (string-append "--with-pygi-overrides-dir="
679 (assoc-ref %outputs "out")
680 "/lib/python"
681 ,(version-major+minor
682 (package-version python))
683 "/site-packages/gi/overrides")
684 (string-append "--with-html-dir="
685 (assoc-ref %outputs "doc")
686 "/share/gtk-doc/html"))
687 #:phases
688 (modify-phases %standard-phases
689 (add-after 'unpack 'patch-docbook-xml
690 (lambda* (#:key inputs #:allow-other-keys)
691 (with-directory-excursion "doc/reference/dee-1.0"
692 (substitute* "dee-1.0-docs.sgml"
693 (("http://www.oasis-open.org/docbook/xml/4.3/")
694 (string-append (assoc-ref inputs "docbook-xml")
695 "/xml/dtd/docbook/"))))))
696 (add-after 'patch-docbook-xml 'disable-failing-tests
697 (lambda _
698 (substitute* "tests/test-icu.c"
699 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
700 "")
701 (("setup, test_ascii_folder, teardown\\);")
702 ""))))
703 (add-before 'check 'pre-check
704 (lambda _
705 ;; Tests require a running dbus-daemon.
706 (system "dbus-daemon &")
707 ;; For missing '/etc/machine-id'.
708 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
709 (native-inputs
710 `(("dbus" ,dbus)
711 ("dbus-test-runner" ,dbus-test-runner)
712 ("docbook-xml" ,docbook-xml-4.3)
713 ("gobject-introspection" ,gobject-introspection)
714 ("gtk-doc" ,gtk-doc/stable)
715 ;; Would only be required by configure flag "--enable-extended-tests".
716 ;("gtx" ,gtx)
717 ("pkg-config" ,pkg-config)
718 ("pygobject" ,python-pygobject)
719 ("python" ,python-wrapper)
720 ("vala" ,vala-0.52)))
721 (inputs
722 `(("icu" ,icu4c)))
723 (propagated-inputs
724 (list glib))
725 (synopsis "Model to synchronize multiple instances over DBus")
726 (description "Dee is a library that uses DBus to provide objects allowing
727 you to create Model-View-Controller type programs across DBus. It also consists
728 of utility objects which extend DBus allowing for peer-to-peer discoverability
729 of known objects without needing a central registrar.")
730 (home-page "https://launchpad.net/dee")
731 (license
732 ;; Dual-licensed
733 (list
734 license:lgpl3+
735 license:gpl3+))))
736
737 (define-public zeitgeist
738 (package
739 (name "zeitgeist")
740 (version "1.0.4")
741 (source
742 (origin
743 (method git-fetch)
744 (uri
745 (git-reference
746 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
747 (commit
748 (string-append "v" version))))
749 (file-name
750 (git-file-name name version))
751 (sha256
752 (base32 "07b1ahj3vd3m8srwkrh7dl3ymr7d55xiiszny44q13g06pq4svch"))))
753 (build-system glib-or-gtk-build-system)
754 (arguments
755 `(#:configure-flags
756 (list
757 "--enable-explain-queries"
758 "--enable-fts"
759 "--enable-docs")
760 #:phases
761 (modify-phases %standard-phases
762 (add-after 'unpack 'patch-docbook-xml
763 (lambda* (#:key inputs #:allow-other-keys)
764 (with-directory-excursion "doc/libzeitgeist"
765 (substitute* "zeitgeist-gtkdoc-index.sgml"
766 (("http://www.oasis-open.org/docbook/xml/4.3/")
767 (string-append (assoc-ref inputs "docbook-xml")
768 "/xml/dtd/docbook/"))))))
769 (add-after 'patch-docbook-xml 'disable-failing-tests
770 (lambda _
771 (substitute* "test/direct/Makefile.am"
772 ((" log-test ")
773 ""))
774 (substitute* "test/c/Makefile.am"
775 ((" test-log ")
776 ""))))
777 (add-before 'bootstrap 'remove-autogen-script
778 (lambda _
779 ;; To honor `autoreconf -vif` by build-system.
780 (delete-file "autogen.sh"))))))
781 (native-inputs
782 `(("autoconf" ,autoconf)
783 ("automake" ,automake)
784 ("docbook-xml" ,docbook-xml-4.3)
785 ("gettext" ,gettext-minimal)
786 ("gobject-introspection" ,gobject-introspection)
787 ("gtk-doc" ,gtk-doc/stable)
788 ("libtool" ,libtool)
789 ("pkg-config" ,pkg-config)
790 ("vala" ,vala)
791 ("xorg-server-for-tests" ,xorg-server-for-tests)))
792 (inputs
793 `(("dee-icu" ,dee)
794 ("gtk+" ,gtk+)
795 ("json-glib" ,json-glib)
796 ("sqlite" ,sqlite)
797 ("telepathy-glib" ,telepathy-glib)
798 ("python" ,python-wrapper)
799 ("python-rdflib" ,python-rdflib)
800 ("xapian-config" ,xapian)))
801 (propagated-inputs
802 (list glib))
803 (synopsis "Desktop Activity Logging")
804 (description "Zeitgeist is a service which logs the users’s activities and
805 events, anywhere from files opened to websites visited and conversations. It
806 makes this information readily available for other applications to use. It is
807 able to establish relationships between items based on similarity and usage
808 patterns.")
809 (home-page "https://zeitgeist.freedesktop.org/")
810 (license
811 ;; Dual-licensed
812 (list
813 license:lgpl2.1+
814 license:gpl2+))))
815
816 (define-public gnome-recipes
817 (package
818 (name "gnome-recipes")
819 (version "2.0.4")
820 (source (origin
821 (method git-fetch)
822 (uri (git-reference
823 (url "https://gitlab.gnome.org/GNOME/recipes")
824 (commit version)))
825 (file-name (git-file-name name version))
826 (sha256
827 (base32
828 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
829 (build-system meson-build-system)
830 (arguments
831 (list
832 #:glib-or-gtk? #t
833 #:phases
834 #~(modify-phases %standard-phases
835 (add-after 'unpack 'skip-gtk-update-icon-cache
836 (lambda _
837 (substitute* "meson_post_install.py"
838 (("gtk-update-icon-cache") (which "true")))))
839 (add-after 'unpack 'unpack-libgd
840 (lambda _
841 (copy-recursively
842 #$(origin
843 (method git-fetch)
844 (uri (git-reference
845 (url "https://gitlab.gnome.org/GNOME/libgd")
846 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
847 (file-name (git-file-name "libgd" version))
848 (sha256
849 (base32
850 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs")))
851 "subprojects/libgd"))))))
852 (inputs (list glib
853 gnome-autoar
854 gnome-online-accounts
855 gspell
856 gtk+
857 json-glib
858 libcanberra
859 libsoup
860 rest))
861 (native-inputs (list desktop-file-utils ;for update-desktop-database
862 gettext-minimal
863 `(,glib "bin")
864 itstool
865 pkg-config
866 python))
867 (home-page "https://wiki.gnome.org/Apps/Recipes")
868 (synopsis "Discover recipes for preparing food")
869 (description "GNOME Recipes helps you discover what to cook today,
870 tomorrow, the rest of the week and for special occasions.")
871 (license license:gpl3+)))
872
873 (define-public gnome-photos
874 (package
875 (name "gnome-photos")
876 (version "43.beta") ;for geocode-glib 2 support
877 (source
878 (origin
879 (method url-fetch)
880 (uri
881 (string-append "mirror://gnome/sources/" name "/"
882 (version-major version) "/"
883 name "-" version ".tar.xz"))
884 (sha256
885 (base32
886 "1pry45dy4sjw8y63vxw2b499brcxzpkd4hmg2vbqy538r79ah2g9"))))
887 (build-system meson-build-system)
888 (arguments
889 (list
890 #:glib-or-gtk? #t
891 #:configure-flags
892 #~(list "-Ddogtail=false" ; Not available
893 ;; Required for RUNPATH validation.
894 (string-append "-Dc_link_args=-Wl,-rpath="
895 #$output "/lib/gnome-photos"))
896 #:phases
897 #~(modify-phases %standard-phases
898 (add-after 'unpack 'disable-gtk-update-icon-cache
899 (lambda _
900 (setenv "DESTDIR" "/")))
901 (add-after 'install 'wrap-gnome-photos
902 (lambda* (#:key outputs #:allow-other-keys)
903 (wrap-program (search-input-file outputs "bin/gnome-photos")
904 `("GRL_PLUGIN_PATH" =
905 (,(getenv "GRL_PLUGIN_PATH")))))))))
906 (native-inputs
907 (list dbus
908 desktop-file-utils
909 gettext-minimal
910 git-minimal
911 `(,glib "bin")
912 gobject-introspection
913 gsettings-desktop-schemas
914 itstool
915 pkg-config))
916 (inputs
917 (list babl
918 cairo
919 gegl
920 geocode-glib
921 gexiv2
922 gfbgraph
923 gnome-online-accounts
924 gnome-online-miners
925 grilo
926 grilo-plugins
927 gtk+
928 libdazzle
929 libgdata
930 libhandy
931 libjpeg-turbo
932 libportal
933 libpng
934 librsvg
935 python-pygobject
936 rest
937 tracker
938 tracker-miners))
939 (synopsis "Access, organize and share your photos on GNOME desktop")
940 (description "GNOME Photos is a simple and elegant replacement for using a
941 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
942 cloud integration is offered through GNOME Online Accounts.")
943 (home-page "https://wiki.gnome.org/Apps/Photos")
944 (license license:gpl3+)))
945
946 (define-public gnome-music
947 (package
948 (name "gnome-music")
949 (version "42.1")
950 (source
951 (origin
952 (method url-fetch)
953 (uri
954 (string-append "mirror://gnome/sources/" name "/"
955 (version-major version) "/"
956 name "-" version ".tar.xz"))
957 (sha256
958 (base32
959 "0w42xnp6xy3sfakb4s0wq7xfg7p507whz5gzss5b2mkbm2k7yx67"))))
960 (build-system meson-build-system)
961 (arguments
962 `(#:glib-or-gtk? #t
963 #:phases
964 (modify-phases %standard-phases
965 (add-after 'unpack 'skip-gtk-update-icon-cache
966 ;; Don't create 'icon-theme.cache'.
967 (lambda _
968 (substitute* "meson.build"
969 (("gtk_update_icon_cache: true")
970 "gtk_update_icon_cache: false"))))
971 (add-after 'install 'wrap-gnome-music
972 (lambda* (#:key inputs outputs #:allow-other-keys)
973 (let*
974 ((out (assoc-ref outputs "out"))
975 (pylib (string-append out "/lib/python"
976 ,(version-major+minor
977 (package-version python))
978 "/site-packages")))
979 (wrap-program (string-append out "/bin/gnome-music")
980 `("GI_TYPELIB_PATH" =
981 (,(getenv "GI_TYPELIB_PATH")))
982 `("GST_PLUGIN_SYSTEM_PATH" =
983 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
984 `("GRL_PLUGIN_PATH" =
985 (,(getenv "GRL_PLUGIN_PATH")))
986 `("GUIX_PYTHONPATH" =
987 (,(getenv "GUIX_PYTHONPATH") ,pylib)))))))))
988 (native-inputs
989 (list desktop-file-utils
990 gettext-minimal
991 `(,glib "bin")
992 gobject-introspection
993 itstool
994 pkg-config))
995 (inputs
996 (list gnome-online-accounts
997 grilo
998 grilo-plugins
999 gst-plugins-base
1000 gst-plugins-good
1001 gstreamer
1002 gtk
1003 gvfs
1004 json-glib
1005 libadwaita
1006 libdazzle
1007 libmediaart
1008 libsoup-minimal-2
1009 python-pycairo
1010 python-pygobject
1011 python
1012 tracker
1013 tracker-miners))
1014 (synopsis "Simple music player for GNOME desktop")
1015 (description "GNOME Music is the new GNOME music playing application that
1016 aims to combine an elegant and immersive browsing experience with simple
1017 and straightforward controls.")
1018 (home-page "https://wiki.gnome.org/Apps/Music")
1019 (license license:gpl2+)))
1020
1021 (define-public portablexdr
1022 (package
1023 (name "portablexdr")
1024 (version "4.9.1")
1025 (source
1026 (origin
1027 (method url-fetch)
1028 (uri
1029 (string-append "https://people.redhat.com/~rjones/" name "/files/"
1030 name "-" version ".tar.gz"))
1031 (sha256
1032 (base32
1033 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1034 (build-system gnu-build-system)
1035 (synopsis "External Data Representation Library")
1036 (description "PortableXDR is an implementation of External Data
1037 Representation (XDR) Library. It is a standard data serialization format, for
1038 uses such as computer network protocols. It allows data to be transferred
1039 between different kinds of computer systems.")
1040 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1041 (license
1042 (list
1043 license:gpl2+
1044 license:lgpl2.1+))))
1045
1046 (define-public tepl
1047 (package
1048 (name "tepl")
1049 (version "6.1.2")
1050 (source
1051 (origin
1052 (method url-fetch)
1053 (uri
1054 (string-append "mirror://gnome/sources/" name "/"
1055 (version-major+minor version) "/"
1056 name "-" version ".tar.xz"))
1057 (sha256
1058 (base32
1059 "16x14j3nvsjj7jb2qmxpzygnlcy7sd7p6skv0sqshkwdlp4jxzha"))))
1060 (build-system meson-build-system)
1061 (arguments
1062 `(#:glib-or-gtk? #t
1063 #:phases (modify-phases %standard-phases
1064 (add-after 'unpack 'disable-problematic-tests
1065 (lambda _
1066 ;; Only keep unit tests, as the interactive tests have
1067 ;; other dependencies.
1068 (substitute* "tests/meson.build"
1069 ((".*'interactive-tests'.*") ""))))
1070 (add-before 'check 'start-xserver
1071 (lambda _
1072 (system "Xvfb :1 &")
1073 (setenv "DISPLAY" ":1"))))))
1074 (native-inputs
1075 (list `(,glib "bin")
1076 gobject-introspection
1077 gtk-doc
1078 libxml2
1079 pkg-config
1080 xorg-server-for-tests))
1081 (inputs
1082 (list uchardet))
1083 (propagated-inputs
1084 ;; These are all required by tepl6.pc.
1085 (list amtk
1086 glib
1087 gsettings-desktop-schemas
1088 gtk+
1089 gtksourceview-4))
1090 (synopsis "Text editor product line")
1091 (description "Tepl is a library that eases the development of
1092 GtkSourceView-based text editors and IDEs.")
1093 (home-page "https://wiki.gnome.org/Projects/Tepl")
1094 (license license:lgpl2.1+)))
1095
1096 (define-public krb5-auth-dialog
1097 (package
1098 (name "krb5-auth-dialog")
1099 (version "3.26.1")
1100 (source
1101 (origin
1102 (method url-fetch)
1103 (uri
1104 (string-append "mirror://gnome/sources/" name "/"
1105 (version-major+minor version) "/"
1106 name "-" version ".tar.xz"))
1107 (sha256
1108 (base32
1109 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1110 (build-system glib-or-gtk-build-system)
1111 (native-inputs
1112 (list intltool itstool libxml2 pkg-config python-wrapper))
1113 (inputs
1114 (list glib gtk+ libnotify mit-krb5 network-manager))
1115 (synopsis "Popup dialogs for Kerberos 5")
1116 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1117 tickets, and pops up a dialog when they are about to expire.")
1118 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1119 (license license:gpl2+)))
1120
1121 (define-public notification-daemon
1122 (package
1123 (name "notification-daemon")
1124 (version "3.20.0")
1125 (source
1126 (origin
1127 (method url-fetch)
1128 (uri
1129 (string-append "mirror://gnome/sources/" name "/"
1130 (version-major+minor version) "/"
1131 name "-" version ".tar.xz"))
1132 (sha256
1133 (base32
1134 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1135 (build-system glib-or-gtk-build-system)
1136 (native-inputs
1137 (list intltool pkg-config))
1138 (inputs
1139 (list glib gtk+ libx11))
1140 (synopsis "Notification Daemon for GNOME Desktop")
1141 (description "Notification-Daemon is the server implementation of the
1142 freedesktop.org desktop notification specification.")
1143 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1144 (license license:gpl2+)))
1145
1146 (define-public mm-common
1147 (package
1148 (name "mm-common")
1149 (version "1.0.3")
1150 (source (origin
1151 (method url-fetch)
1152 (uri (string-append "mirror://gnome/sources/mm-common/"
1153 (version-major+minor version) "/"
1154 "mm-common-" version ".tar.xz"))
1155 (sha256
1156 (base32
1157 "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
1158 (build-system meson-build-system)
1159 (arguments
1160 `(#:phases
1161 (modify-phases %standard-phases
1162 (add-after 'unpack 'patch
1163 (lambda* (#:key inputs #:allow-other-keys)
1164 (substitute* "util/mm-common-prepare.in"
1165 (("ln") (search-input-file inputs "/bin/ln"))
1166 (("cp") (search-input-file inputs "/bin/cp"))
1167 (("sed") (search-input-file inputs "/bin/sed"))
1168 (("cat") (search-input-file inputs "/bin/cat"))))))))
1169 (native-inputs
1170 `(("coreutils" ,coreutils)
1171 ("gettext" ,gettext-minimal)
1172 ("pkg-config" ,pkg-config)
1173 ("sed" ,sed)))
1174 (inputs
1175 (list python))
1176 (synopsis "Module of GNOME C++ bindings")
1177 (description "The mm-common module provides the build infrastructure
1178 and utilities shared among the GNOME C++ binding libraries. Release
1179 archives of mm-common include the Doxygen tag file for the GNU C++
1180 Library reference documentation.")
1181 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1182 (license license:gpl2+)))
1183
1184 (define-public phodav
1185 (package
1186 (name "phodav")
1187 (version "3.0")
1188 (source (origin
1189 (method url-fetch)
1190 (uri (string-append "mirror://gnome/sources/" name "/"
1191 (version-major+minor version) "/"
1192 name "-" version ".tar.xz"))
1193 (sha256
1194 (base32
1195 "1l9qs70yvwi9r8ph081mrsdy412kk0m9l9pgy77hsc2hdp8c4bir"))))
1196 (build-system meson-build-system)
1197 (arguments
1198 `(#:phases
1199 (modify-phases %standard-phases
1200 (add-after 'unpack 'fix-udev-rules-directory
1201 (lambda* (#:key outputs #:allow-other-keys)
1202 (let* ((out (assoc-ref outputs "out"))
1203 (rules (string-append out "/lib/udev/rules.d")))
1204 (substitute* "data/meson.build"
1205 (("udev\\.get_pkgconfig_variable\\('udevdir'\\)")
1206 (format #f "'~a'" rules))))))
1207 (add-before 'check 'set-temporary-home
1208 ;; Tests want to write into HOME.
1209 (lambda _
1210 (setenv "HOME" "/tmp"))))))
1211 (native-inputs
1212 (list docbook-xml-4.3
1213 gettext-minimal
1214 `(,glib "bin")
1215 gsettings-desktop-schemas
1216 gtk-doc/stable
1217 pkg-config))
1218 (inputs
1219 (list avahi
1220 libgudev
1221 libsoup))
1222 (synopsis "WebDav server implementation using libsoup")
1223 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1224 but it is generic enough to be reused in other projects,
1225 in particular in the GNOME desktop.")
1226 (home-page "https://wiki.gnome.org/phodav")
1227 (license license:lgpl2.1+)))
1228
1229 (define-public gnome-color-manager
1230 (package
1231 (name "gnome-color-manager")
1232 (version "3.36.0")
1233 (source (origin
1234 (method url-fetch)
1235 (uri (string-append "mirror://gnome/sources/" name "/"
1236 (version-major+minor version) "/"
1237 name "-" version ".tar.xz"))
1238 (sha256
1239 (base32
1240 "0fxdng74d8hwhfx1nwl1i4jx9h9f6c2hkyc12f01kqbjcimrxnwx"))))
1241 (build-system meson-build-system)
1242 (arguments
1243 `(#:glib-or-gtk? #t
1244 #:phases
1245 (modify-phases %standard-phases
1246 (add-before
1247 'check 'pre-check
1248 (lambda _
1249 ;; Tests require a running X server.
1250 (system "Xvfb :1 &")
1251 (setenv "DISPLAY" ":1")
1252 #t)))))
1253 (native-inputs
1254 `(("desktop-file-utils" ,desktop-file-utils)
1255 ("gettext" ,gettext-minimal)
1256 ("glib:bin" ,glib "bin")
1257 ("gtk+:bin" ,gtk+ "bin")
1258 ("itstool" ,itstool)
1259 ("pkg-config" ,pkg-config)
1260 ("xorg-server" ,xorg-server-for-tests)))
1261 (inputs
1262 (list adwaita-icon-theme
1263 appstream-glib
1264 colord-gtk
1265 exiv2
1266 gnome-desktop
1267 libcanberra
1268 libexif
1269 libtiff
1270 libxrandr
1271 libxtst
1272 libxxf86vm
1273 vte
1274 xorgproto))
1275 (synopsis "Color profile manager for the GNOME desktop")
1276 (description "GNOME Color Manager is a session framework that makes
1277 it easy to manage, install and generate color profiles
1278 in the GNOME desktop.")
1279 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1280 (license license:gpl2+)))
1281
1282 (define-public gnome-online-miners
1283 (package
1284 (name "gnome-online-miners")
1285 (version "3.34.0")
1286 (source (origin
1287 (method url-fetch)
1288 (uri (string-append "mirror://gnome/sources/" name "/"
1289 (version-major+minor version) "/"
1290 name "-" version ".tar.xz"))
1291 (sha256
1292 (base32
1293 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))
1294 (patches
1295 (search-patches
1296 "gnome-online-miners-tracker-3.patch"))))
1297 (build-system glib-or-gtk-build-system)
1298 (arguments
1299 `(#:phases
1300 (modify-phases %standard-phases
1301 (add-after 'unpack 'fix-configure
1302 (lambda _
1303 (substitute* "configure.ac"
1304 (("AX_CHECK_ENABLE_DEBUG.*")
1305 ""))))
1306 (add-after 'fix-configure 'autoreconf
1307 (lambda _
1308 (invoke "autoreconf" "-vif"))))))
1309 (native-inputs
1310 `(("autoconf" ,autoconf)
1311 ("automake" ,automake)
1312 ("gettext" ,gettext-minimal)
1313 ("glib:bin" ,glib "bin")
1314 ("gobject-introspection" ,gobject-introspection)
1315 ("gtk+:bin" ,gtk+ "bin")
1316 ("libtool" ,libtool)
1317 ("pkg-config" ,pkg-config)))
1318 (inputs
1319 `(("gnome-online-accounts" ,gnome-online-accounts)
1320 ("grilo" ,grilo)
1321 ("libgdata" ,libgdata)
1322 ("libgfbgraph" ,gfbgraph)
1323 ("libzapojit" ,libzapojit)
1324 ("rest" ,rest)
1325 ("tracker" ,tracker)))
1326 (synopsis "Web Crawlers for GNOME")
1327 (description "GNOME Online Miners provides a set of crawlers that
1328 go through your online content and index them locally in Tracker.
1329 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1330 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1331 (license license:gpl2+)))
1332
1333 (define-public gssdp
1334 (package
1335 (name "gssdp")
1336 (version "1.2.3")
1337 (source (origin
1338 (method url-fetch)
1339 (uri (string-append "mirror://gnome/sources/" name "/"
1340 (version-major+minor version) "/"
1341 name "-" version ".tar.xz"))
1342 (sha256
1343 (base32
1344 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1345 (build-system meson-build-system)
1346 (native-inputs
1347 `(("gettext" ,gettext-minimal)
1348 ("glib:bin" ,glib "bin")
1349 ("gobject-introspection" ,gobject-introspection)
1350 ("gtk-doc" ,gtk-doc/stable)
1351 ("pkg-config" ,pkg-config)
1352 ("vala" ,vala)))
1353 (inputs
1354 (list gtk+))
1355 (propagated-inputs
1356 ;; The .pc file "Requires" libsoup-2.4.
1357 `(("libsoup" ,libsoup-minimal-2)))
1358 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1359 Protocol} for GNOME")
1360 (description "This package provides a library to handle resource discovery
1361 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1362 a debugging tool, @command{gssdp-device-sniffer}.")
1363 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1364 (license license:lgpl2.0+)))
1365
1366 (define-public gupnp
1367 (package
1368 (name "gupnp")
1369 (version "1.2.4")
1370 (source (origin
1371 (method url-fetch)
1372 (uri (string-append "mirror://gnome/sources/" name "/"
1373 (version-major+minor version) "/"
1374 name "-" version ".tar.xz"))
1375 (sha256
1376 (base32
1377 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1378 (build-system meson-build-system)
1379 (arguments
1380 `(#:phases
1381 (modify-phases %standard-phases
1382 (add-before 'check 'pre-check
1383 (lambda _
1384 ;; Tests require a writable HOME.
1385 (setenv "HOME" (getcwd)))))))
1386 (native-inputs
1387 `(("gettext" ,gettext-minimal)
1388 ("glib:bin" ,glib "bin")
1389 ("gobject-introspection" ,gobject-introspection)
1390 ("gtk-doc" ,gtk-doc/stable)
1391 ("pkg-config" ,pkg-config)
1392 ("vala" ,vala)))
1393 (inputs
1394 (list gssdp gtk+ libsoup))
1395 (propagated-inputs
1396 (list ;; For ‘org.gnome.system.proxy’.
1397 gsettings-desktop-schemas))
1398 (synopsis "PnP API for GNOME")
1399 (description "This package provides GUPnP, an object-oriented framework
1400 for creating UPnP devices and control points, written in C using
1401 @code{GObject} and @code{libsoup}.")
1402 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1403 (license license:lgpl2.0+)))
1404
1405 (define-public gupnp-dlna
1406 (package
1407 (name "gupnp-dlna")
1408 (version "0.10.5")
1409 (source (origin
1410 (method url-fetch)
1411 (uri (string-append "mirror://gnome/sources/" name "/"
1412 (version-major+minor version) "/"
1413 name "-" version ".tar.xz"))
1414 (sha256
1415 (base32
1416 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1417 (build-system gnu-build-system)
1418 (native-inputs
1419 (list gettext-minimal
1420 `(,glib "bin")
1421 gobject-introspection
1422 gtk-doc/stable
1423 libxml2
1424 pkg-config
1425 vala))
1426 (inputs
1427 (list gstreamer gupnp))
1428 (propagated-inputs
1429 (list gst-plugins-base gst-plugins-good))
1430 (synopsis "GUPnP DLNA for GNOME")
1431 (description "This package provides a small utility library to
1432 support DLNA-related tasks such as media profile guessing, transcoding to a
1433 given profile, etc. DLNA is a subset of UPnP A/V.")
1434 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1435 (license license:lgpl2.0+)))
1436
1437 (define-public gupnp-av
1438 (package
1439 (name "gupnp-av")
1440 (version "0.12.11")
1441 (source (origin
1442 (method url-fetch)
1443 (uri (string-append "mirror://gnome/sources/" name "/"
1444 (version-major+minor version) "/"
1445 name "-" version ".tar.xz"))
1446 (sha256
1447 (base32
1448 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1449 (build-system gnu-build-system)
1450 (native-inputs
1451 (list gettext-minimal
1452 `(,glib "bin")
1453 gobject-introspection
1454 gtk-doc/stable
1455 libxml2
1456 pkg-config
1457 vala))
1458 (inputs
1459 (list gtk+ gupnp))
1460 (synopsis "GUPnP A/V for GNOME")
1461 (description "This package provides a small library for handling
1462 and implementation of UPnP A/V profiles.")
1463 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1464 (license license:lgpl2.0+)))
1465
1466 (define-public libmediaart
1467 (package
1468 (name "libmediaart")
1469 (version "1.9.5")
1470 (source (origin
1471 (method url-fetch)
1472 (uri (string-append "mirror://gnome/sources/" name "/"
1473 (version-major+minor version) "/"
1474 name "-" version ".tar.xz"))
1475 (sha256
1476 (base32
1477 "1mlw1qgj8nkd9ll6b6h54r1gfdy3zp8a8xqz7qfyfaj85jjgbph7"))))
1478 (build-system meson-build-system)
1479 (native-inputs
1480 (list `(,glib "bin") pkg-config))
1481 (inputs
1482 (list gdk-pixbuf gettext-minimal gobject-introspection
1483 `(,gtk+ "doc") vala))
1484 (synopsis "Media art library for the GNOME desktop")
1485 (description
1486 "The libmediaart library is the foundation for media art caching,
1487 extraction, and lookup for applications on the desktop.")
1488 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1489 (license license:lgpl2.1+)))
1490
1491 (define-public gnome-initial-setup
1492 (package
1493 (name "gnome-initial-setup")
1494 (version "42.2")
1495 (source (origin
1496 (method url-fetch)
1497 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1498 (version-major version)
1499 "/gnome-initial-setup-" version ".tar.xz"))
1500 (sha256
1501 (base32
1502 "0yxy39a7d2whphd0jskvra5q8zy4v7m7lziy5fxibgls4j5xk0sd"))))
1503 (build-system meson-build-system)
1504 (arguments
1505 (list
1506 #:configure-flags #~(list "-Dsystemd=false")
1507 #:glib-or-gtk? #t
1508 #:phases
1509 #~(modify-phases %standard-phases
1510 (add-after 'unpack 'set-gkbd-file-name
1511 (lambda* (#:key inputs #:allow-other-keys)
1512 ;; Allow the "Preview" button in the keyboard layout
1513 ;; selection dialog to display the layout.
1514 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1515 (("\"gkbd-keyboard-display")
1516 (string-append "\"" (search-input-file
1517 inputs
1518 "bin/gkbd-keyboard-display")))))))))
1519 (native-inputs
1520 (list gettext-minimal
1521 `(,glib "bin")
1522 gobject-introspection
1523 pkg-config))
1524 (inputs
1525 (list accountsservice
1526 cheese
1527 elogind
1528 gdm
1529 geoclue
1530 gnome-desktop
1531 gnome-online-accounts-3.44
1532 gstreamer
1533 ibus
1534 json-glib
1535 mit-krb5
1536 libgnomekbd
1537 libgweather4-with-libsoup2
1538 libhandy
1539 libnma
1540 libpwquality
1541 libsecret
1542 network-manager
1543 packagekit
1544 polkit
1545 rest
1546 upower
1547 webkitgtk-with-libsoup2))
1548 (synopsis "Initial setup wizard for GNOME desktop")
1549 (description "This package provides a set-up wizard when a
1550 user logs into GNOME for the first time. It typically provides a
1551 tour of all gnome components and allows the user to set them up.")
1552 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1553 (license license:gpl2)))
1554
1555 (define-public gnome-user-share
1556 (package
1557 (name "gnome-user-share")
1558 (version "3.34.0")
1559 (source (origin
1560 (method url-fetch)
1561 (uri (string-append "mirror://gnome/sources/" name "/"
1562 (version-major+minor version) "/"
1563 name "-" version ".tar.xz"))
1564 (sha256
1565 (base32
1566 "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x"))))
1567 (build-system meson-build-system)
1568 (arguments
1569 `(#:glib-or-gtk? #t
1570 #:meson ,meson-0.60
1571 #:configure-flags
1572 `("-Dsystemduserunitdir=/tmp/empty"
1573 ;; Enable nautilus extension for file sharing.
1574 "-Dnautilus_extension=true")))
1575 (native-inputs
1576 `(("gettext" ,gettext-minimal)
1577 ("glib:bin" ,glib "bin")
1578 ("gobject-introspection" ,gobject-introspection)
1579 ("gtk+:bin" ,gtk+ "bin")
1580 ("pkg-config" ,pkg-config)
1581 ("yelp-tools" ,yelp-tools)))
1582 (inputs
1583 (list glib
1584 gnome-bluetooth
1585 gtk+
1586 libcanberra
1587 libnotify
1588 nautilus)) ; For nautilus extension.
1589 (synopsis "File sharing for GNOME desktop")
1590 (description "GNOME User Share is a small package that binds together
1591 various free software projects to bring easy to use user-level file
1592 sharing to the masses.")
1593 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1594 (license license:gpl2+)))
1595
1596 (define-public sushi
1597 (package
1598 (name "sushi")
1599 (version "42.0")
1600 (source (origin
1601 (method url-fetch)
1602 (uri (string-append "mirror://gnome/sources/" name "/"
1603 (version-major version) "/"
1604 name "-" version ".tar.xz"))
1605 (sha256
1606 (base32
1607 "0848gidl0ab8i5pa70mv8jzchmd9kqa8sn1lg977hyasyixdpn25"))))
1608 (build-system meson-build-system)
1609 (arguments
1610 `(#:glib-or-gtk? #t
1611 #:phases
1612 (modify-phases %standard-phases
1613 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1614 (lambda* (#:key outputs #:allow-other-keys)
1615 (let ((prog (string-append (assoc-ref outputs "out")
1616 "/bin/sushi")))
1617 ;; Put existing typelibs before sushi's deps, so as to
1618 ;; correctly infer gdk-pixbuf.
1619 (wrap-program prog
1620 `("GI_TYPELIB_PATH" suffix
1621 (,(getenv "GI_TYPELIB_PATH"))))))))))
1622 (native-inputs
1623 (list `(,glib "bin")
1624 gettext-minimal
1625 gobject-introspection
1626 pkg-config))
1627 (inputs
1628 (list bash-minimal
1629 clutter
1630 clutter-gst
1631 clutter-gtk
1632 evince ; For file previewing.
1633 freetype
1634 gdk-pixbuf
1635 gjs
1636 gst-plugins-base
1637 gstreamer
1638 gtksourceview-4
1639 harfbuzz
1640 libepoxy
1641 libmusicbrainz
1642 libxml2
1643 neon
1644 webkitgtk))
1645 (synopsis "File previewer for the GNOME desktop")
1646 (description "Sushi is a DBus-activated service that allows applications
1647 to preview files on the GNOME desktop.")
1648 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1649 (license license:gpl2+)))
1650
1651 (define-public rygel
1652 (package
1653 (name "rygel")
1654 (version "0.40.4")
1655 (source (origin
1656 (method url-fetch)
1657 (uri (string-append "mirror://gnome/sources/" name "/"
1658 (version-major+minor version) "/"
1659 name "-" version ".tar.xz"))
1660 (sha256
1661 (base32
1662 "12rl1bgvwbdmnhva57b22q7d2pwqvi2rizygiyy6qpv1x3dqlvbk"))))
1663 (build-system meson-build-system)
1664 (arguments
1665 ;; Disable the tracker plugin.
1666 '(#:configure-flags
1667 (list "-Dplugins=external,gst-launch,lms,media-export,
1668 mpris,playbin,ruih,tracker3")))
1669 (native-inputs
1670 (list gettext-minimal
1671 `(,glib "bin") ; for glib-compile-schemas, etc.
1672 gobject-introspection
1673 gtk-doc/stable
1674 pkg-config
1675 python
1676 vala
1677 docbook-xml
1678 docbook-xsl
1679 libxslt))
1680 (inputs
1681 (list gdk-pixbuf
1682 gssdp
1683 gstreamer
1684 gst-plugins-base
1685 gst-editing-services
1686 gtk+
1687 gupnp
1688 gupnp-av
1689 gupnp-dlna
1690 json-glib
1691 libgee
1692 libmediaart
1693 libsoup
1694 libxslt
1695 libunistring
1696 tracker))
1697 (synopsis "Share audio, video, and pictures with other devices")
1698 (description
1699 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1700 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1701 pictures, and to control a media player on your home network.
1702
1703 Rygel achieves interoperability with other devices by trying to conform to the
1704 strict requirements of DLNA and by converting media on-the-fly to formats that
1705 client devices can handle.")
1706 (home-page "https://wiki.gnome.org/Projects/Rygel")
1707 (license (list
1708 ;; For logo (data/icons/*).
1709 license:cc-by-sa3.0
1710 ;; For all others.
1711 license:lgpl2.1+))))
1712
1713 (define-public libnma
1714 (package
1715 (name "libnma")
1716 (version "1.10.2")
1717 (source (origin
1718 (method url-fetch)
1719 (uri (string-append "mirror://gnome/sources/" name "/"
1720 (version-major+minor version) "/"
1721 name "-" version ".tar.xz"))
1722 (sha256
1723 (base32
1724 "0h095a26w3sgbspsf7wzz8ddg62j3jb9ckrrv41k7cdp0k2dkhsg"))))
1725 (build-system meson-build-system)
1726 (arguments
1727 `(#:configure-flags (list "-Dlibnma_gtk4=true")
1728 #:phases
1729 (modify-phases %standard-phases
1730 (add-after 'unpack 'patch-docbook-xml
1731 (lambda* (#:key inputs #:allow-other-keys)
1732 (substitute* "libnma-docs.xml"
1733 (("http://.*/docbookx\\.dtd")
1734 (search-input-file
1735 inputs "xml/dtd/docbook/docbookx.dtd"))))))))
1736 (native-inputs
1737 (list docbook-xml-4.3
1738 gettext-minimal
1739 `(,glib "bin")
1740 gtk-doc/stable
1741 gobject-introspection
1742 pkg-config
1743 vala))
1744 (inputs
1745 (list gcr
1746 gtk
1747 iso-codes
1748 mobile-broadband-provider-info
1749 network-manager))
1750 (synopsis "Network Manager's applet library")
1751 (description "Libnma is an applet library for Network Manager. It was
1752 initially part of network-manager-applet and has now become a separate
1753 project.")
1754 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1755 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1756 ;; "LGPL-2.1+".
1757 (license license:gpl2+)))
1758
1759 (define-public gnome-menus
1760 (package
1761 (name "gnome-menus")
1762 (version "3.36.0")
1763 (source (origin
1764 (method url-fetch)
1765 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1766 (version-major+minor version) "/"
1767 name "-" version ".tar.xz"))
1768 (sha256
1769 (base32
1770 "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r"))))
1771 (build-system gnu-build-system)
1772 (native-inputs
1773 (list gettext-minimal glib pkg-config))
1774 (synopsis "Menu support for GNOME desktop")
1775 (description "GNOME Menus contains the libgnome-menu library, the layout
1776 configuration files for the GNOME menu, as well as a simple menu editor.")
1777 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1778 (license license:lgpl2.0+)))
1779
1780 (define-public deja-dup
1781 (package
1782 (name "deja-dup")
1783 (version "43.4")
1784 (source (origin
1785 (method url-fetch)
1786 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1787 version "/deja-dup-" version ".tar.bz2"))
1788 (sha256
1789 (base32
1790 "1mr2g009w0zm5rj8dg1k77c7zdwylih2yszm8vh8wkw6al6bzfh3"))))
1791 (build-system meson-build-system)
1792 (arguments
1793 `(#:glib-or-gtk? #t
1794 #:configure-flags
1795 (list
1796 ;; Otherwise, the RUNPATH will lack the final path component.
1797 (string-append "-Dc_link_args=-Wl,-rpath="
1798 (assoc-ref %outputs "out") "/lib/deja-dup"))
1799 #:phases
1800 (modify-phases %standard-phases
1801 (add-after 'unpack 'patch-paths
1802 (lambda* (#:key inputs #:allow-other-keys)
1803 (let ((python (assoc-ref inputs "python")))
1804 (substitute* '("libdeja/duplicity/DuplicityInstance.vala"
1805 "libdeja/tests/scripts/instance-error.test")
1806 (("/bin/rm")
1807 (which "rm")))
1808 (substitute* "libdeja/tests/runner.vala"
1809 (("/bin/sh")
1810 (which "sh")))
1811 (substitute* "libdeja/tests/scripts/instance-error.test"
1812 (("`which python3`")
1813 (string-append python "/bin/python3"))))))
1814 (add-after 'unpack 'patch-libgpg-error
1815 (lambda* (#:key inputs #:allow-other-keys)
1816 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1817 (substitute* "meson.build"
1818 (("(gpgerror_libs = ).*" _ var)
1819 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))))
1820 (add-after 'install 'wrap-program
1821 (lambda* (#:key inputs outputs #:allow-other-keys)
1822 ;; Add duplicity to the search path
1823 (wrap-program (string-append (assoc-ref outputs "out")
1824 "/bin/deja-dup")
1825 `("PATH" ":" prefix
1826 (,(string-append (assoc-ref inputs "duplicity") "/bin")))))))))
1827 (inputs
1828 (list bash-minimal
1829 duplicity
1830 gsettings-desktop-schemas
1831 gtk
1832 json-glib
1833 libadwaita
1834 libgpg-error
1835 libnotify
1836 libsecret
1837 libsoup
1838 libhandy
1839 packagekit
1840 python
1841 python-pygobject))
1842 (native-inputs
1843 (list appstream-glib
1844 desktop-file-utils
1845 gettext-minimal
1846 `(,glib "bin") ;for glib-compile-schemas
1847 gobject-introspection
1848 `(,gtk "bin") ;for gtk-update-icon-cache
1849 itstool
1850 pkg-config
1851 vala))
1852 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1853 (synopsis "Simple backup tool, for regular encrypted backups")
1854 (description
1855 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1856 uses duplicity as the backend, which supports incremental backups and storage
1857 either on a local, or remote machine via a number of methods.")
1858 (license license:gpl3+)))
1859
1860 (define-public gnome-commander
1861 (package
1862 (name "gnome-commander")
1863 (version "1.14.3")
1864 (source
1865 (origin
1866 (method url-fetch)
1867 (uri (string-append "mirror://gnome/sources/" name "/"
1868 (version-major+minor version) "/"
1869 "gnome-commander-" version ".tar.xz"))
1870 (sha256
1871 (base32 "0yzx9slg632iflw9p96nlh9i50dhacq7hrzpkj8b48mr1zkxrn3q"))))
1872 (build-system glib-or-gtk-build-system)
1873 (native-inputs
1874 (list desktop-file-utils
1875 flex
1876 gettext-minimal
1877 `(,glib "bin")
1878 gobject-introspection
1879 googletest
1880 intltool
1881 itstool
1882 libtool
1883 pkg-config))
1884 (inputs
1885 (list gconf glib gtk+-2 libxml2))
1886 (home-page "https://gcmd.github.io/")
1887 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1888 (description
1889 "GNOME Commander is a two-pane graphical file manager using GNOME
1890 libraries. It aims to fulfill the demands of more advanced users who
1891 like to focus on file management, their work through special applications
1892 and running smart commands.")
1893 (license license:gpl2+)))
1894
1895 (define-public gnome-user-docs
1896 (package
1897 (name "gnome-user-docs")
1898 (version "42.0")
1899 (source
1900 (origin
1901 (method url-fetch)
1902 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1903 (version-major version)
1904 "/gnome-user-docs-" version ".tar.xz"))
1905 (sha256
1906 (base32 "01g9smkk2sj3yrih2wjn6vx9av855n7w6nqf9wpxvfq086h7vcmj"))))
1907 (build-system gnu-build-system)
1908 (native-inputs
1909 (list gettext-minimal itstool pkg-config libxml2))
1910 (synopsis "User documentation for the GNOME desktop")
1911 (description
1912 "The GNOME User Documentation explains how to use the GNOME desktop and its
1913 components. It covers usage and setup of the core GNOME programs by end-users
1914 and system administrators.")
1915 (home-page "https://live.gnome.org/DocumentationProject")
1916 (license license:cc-by3.0)))
1917
1918 (define-public dia
1919 ;; This version from GNOME's repository includes fixes for compiling with
1920 ;; recent versions of the build tools. The latest activity on the
1921 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1922 ;; fixes since.
1923 (let ((commit "0997887d97f01be28bf3886dfd3e2002de437930")
1924 (revision "3"))
1925 (package
1926 (name "dia")
1927 (version (git-version "0.97.3" revision commit))
1928 (source (origin
1929 (method git-fetch)
1930 (uri (git-reference
1931 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1932 (commit commit)))
1933 (file-name (git-file-name name version))
1934 (sha256
1935 (base32
1936 "199b4n1jydg1g9lnz0r8xx67h7s2ac2lfj89zp015lbs0qqfkmsh"))))
1937 (build-system meson-build-system)
1938 ;; XXX: Parallel builds may cause: [74/566] [...]
1939 ;; fatal error: dia-lib-enums.h: No such file or directory
1940 (arguments '(#:parallel-build? #f))
1941 (inputs
1942 (list graphene
1943 gtk+-2
1944 libxml2
1945 libxslt
1946
1947 ;; XXX: PDF plugin fails to build with poppler 21.07.0.
1948 ;; poppler
1949
1950 python))
1951 (native-inputs
1952 (list appstream-glib docbook-xsl
1953 `(,glib "bin") gettext-minimal pkg-config))
1954 (home-page "https://wiki.gnome.org/Apps/Dia")
1955 (synopsis "Diagram creation for GNOME")
1956 (description "Dia can be used to draw different types of diagrams, and
1957 includes support for UML static structure diagrams (class diagrams), entity
1958 relationship modeling, and network diagrams. The program supports various file
1959 formats like PNG, SVG, PDF and EPS.")
1960 (license license:gpl2+))))
1961
1962 (define-public libgdata
1963 (package
1964 (name "libgdata")
1965 (version "0.18.1")
1966 (source (origin
1967 (method url-fetch)
1968 (uri (string-append "mirror://gnome/sources/" name "/"
1969 (version-major+minor version) "/"
1970 name "-" version ".tar.xz"))
1971 (sha256
1972 (base32
1973 "1iq4d1qy0vkmy29xvr13dgz4pxvn5v3yi2swryld0ajinvp951fx"))))
1974 (build-system meson-build-system)
1975 (arguments
1976 '(#:phases
1977 (modify-phases %standard-phases
1978 (add-before 'check 'set-home-for-tests
1979 (lambda _
1980 (setenv "HOME" "/tmp"))))))
1981 (native-inputs
1982 `(("glib:bin" ,glib "bin")
1983 ("gobject-introspection" ,gobject-introspection)
1984 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1985 ("intltool" ,intltool)
1986 ("pkg-config" ,pkg-config)
1987 ("uhttpmock" ,uhttpmock)))
1988 (inputs
1989 (list cyrus-sasl glib-networking vala))
1990 (propagated-inputs
1991 `(("gcr" ,gcr)
1992 ("glib" ,glib)
1993 ("gnome-online-accounts" ,gnome-online-accounts)
1994 ("json-glib" ,json-glib)
1995 ("liboauth" ,liboauth)
1996 ("libsoup" ,libsoup-minimal-2)
1997 ("libxml2" ,libxml2)))
1998 (home-page "https://wiki.gnome.org/Projects/libgdata")
1999 (synopsis "Library for accessing online service APIs")
2000 (description
2001 "libgdata is a GLib-based library for accessing online service APIs using
2002 the GData protocol — most notably, Google's services. It provides APIs to
2003 access the common Google services, and has full asynchronous support.")
2004 (license license:lgpl2.1+)))
2005
2006 (define-public libgxps
2007 (package
2008 (name "libgxps")
2009 (version "0.3.2")
2010 (source (origin
2011 (method url-fetch)
2012 (uri (string-append "mirror://gnome/sources/" name "/"
2013 (version-major+minor version) "/"
2014 name "-" version ".tar.xz"))
2015 (sha256
2016 (base32
2017 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
2018 (build-system meson-build-system)
2019 (native-inputs
2020 (list gobject-introspection pkg-config))
2021 (inputs
2022 (list gtk+ libjpeg-turbo lcms libtiff))
2023 (propagated-inputs
2024 ;; In Requires of libgxps.pc.
2025 (list cairo glib libarchive))
2026 (home-page "https://wiki.gnome.org/Projects/libgxps")
2027 (synopsis "GObject-based library for handling and rendering XPS documents")
2028 (description
2029 "libgxps is a GObject-based library for handling and rendering XPS
2030 documents. This package also contains binaries that can convert XPS documents
2031 to other formats.")
2032 (license license:lgpl2.1+)))
2033
2034 (define-public gnome-characters
2035 (package
2036 (name "gnome-characters")
2037 (version "42.0")
2038 (source
2039 (origin
2040 (method url-fetch)
2041 (uri (string-append "mirror://gnome/sources/"
2042 "gnome-characters/" (version-major version)
2043 "/gnome-characters-" version ".tar.xz"))
2044 (sha256
2045 (base32
2046 "1y40g7k7yyzikbbxhf69q4c0221lga1cli1p617v99pq2swgz82x"))))
2047 (build-system meson-build-system)
2048 (arguments
2049 (list
2050 #:glib-or-gtk? #t
2051 #:phases #~(modify-phases %standard-phases
2052 (add-after 'unpack 'disable-gtk-update-icon-cache
2053 (lambda _
2054 (setenv "DESTDIR" "/")))
2055 (add-after 'install 'wrap
2056 (lambda* (#:key outputs #:allow-other-keys)
2057 ;; GNOME Characters needs Typelib files from GTK and
2058 ;; gnome-desktop.
2059 (wrap-program (search-input-file outputs
2060 "bin/gnome-characters")
2061 `("GI_TYPELIB_PATH" ":" prefix
2062 (,(getenv "GI_TYPELIB_PATH")))))))))
2063 (native-inputs
2064 (list gettext-minimal
2065 `(,glib "bin")
2066 pkg-config
2067 python-minimal))
2068 (inputs
2069 (list gjs
2070 gnome-desktop
2071 gtk
2072 libadwaita
2073 libhandy
2074 libunistring))
2075 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2076 (synopsis "Find and insert unusual characters")
2077 (description "Characters is a simple utility application to find
2078 and insert unusual characters. It allows you to quickly find the
2079 character you are looking for by searching for keywords.")
2080 (license license:bsd-3)))
2081
2082 (define-public gnome-common
2083 (package
2084 (name "gnome-common")
2085 (version "3.18.0")
2086 (source
2087 (origin
2088 (method url-fetch)
2089 (uri (string-append "mirror://gnome/sources/" name "/"
2090 (version-major+minor version) "/"
2091 name "-" version ".tar.xz"))
2092 (sha256
2093 (base32
2094 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2095 (build-system gnu-build-system)
2096 (home-page "https://www.gnome.org/")
2097 (synopsis "Bootstrap GNOME modules built from Git")
2098 (description "gnome-common contains various files needed to bootstrap
2099 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2100 can be used to configure a source directory checked out from Git and some
2101 commonly used macros.")
2102 (license license:gpl2+)))
2103
2104 (define-public gnome-contacts
2105 (package
2106 (name "gnome-contacts")
2107 (version "42.0")
2108 (source (origin
2109 (method url-fetch)
2110 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2111 (version-major version) "/"
2112 name "-" version ".tar.xz"))
2113 (sha256
2114 (base32
2115 "05jj5kiab13crm18r166w7h31jpny7f3px98q7d2ix93vj7w60l8"))))
2116 (build-system meson-build-system)
2117 (arguments
2118 `(#:glib-or-gtk? #t
2119 #:phases
2120 (modify-phases %standard-phases
2121 (add-after 'unpack 'skip-gtk-update-icon-cache
2122 (lambda _
2123 (substitute* "meson.build"
2124 (("gtk_update_icon_cache: true")
2125 "gtk_update_icon_cache: false")))))))
2126 (native-inputs
2127 (list desktop-file-utils
2128 docbook-xml
2129 docbook-xml-4.2
2130 docbook-xsl
2131 gettext-minimal
2132 `(,glib "bin")
2133 gobject-introspection
2134 libxslt
2135 pkg-config))
2136 (inputs
2137 (list evolution-data-server-3.44
2138 gnome-desktop
2139 gnome-online-accounts-3.44
2140 gst-plugins-base
2141 gtk
2142 libadwaita
2143 libgee
2144 libhandy
2145 libportal
2146 telepathy-glib
2147 vala))
2148 (propagated-inputs
2149 (list folks-with-libsoup2
2150 telepathy-mission-control))
2151 (synopsis "GNOME's integrated address book")
2152 (description
2153 "GNOME Contacts organizes your contact information from online and
2154 offline sources, providing a centralized place for managing your contacts.")
2155 (home-page "https://wiki.gnome.org/Apps/Contacts")
2156 (license license:gpl2+)))
2157
2158 (define-public gnome-desktop
2159 (package
2160 (name "gnome-desktop")
2161 (version "42.4")
2162 (source
2163 (origin
2164 (method url-fetch)
2165 (uri (string-append "mirror://gnome/sources/" name "/"
2166 (version-major version) "/"
2167 name "-" version ".tar.xz"))
2168 (sha256
2169 (base32
2170 "09ddr5fzhh02fcn7xl1wy18qfsdqryd5msl2nbhdnsbr0vawkqhw"))))
2171 (build-system meson-build-system)
2172 (arguments
2173 '(#:phases
2174 (modify-phases %standard-phases
2175 (add-before 'configure 'patch-path
2176 (lambda* (#:key inputs #:allow-other-keys)
2177 (substitute* "libgnome-desktop/gnome-languages.c"
2178 (("\"locale\"")
2179 (format #f "~s" (search-input-file inputs "bin/locale"))))))
2180 (add-before 'configure 'patch-bubblewrap
2181 (lambda* (#:key inputs #:allow-other-keys)
2182 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2183 (("\"bwrap\",")
2184 (string-append "\"" (which "bwrap") "\","))
2185 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2186 (string-append "\"--ro-bind\", \""
2187 (%store-directory)
2188 "\", \""
2189 (%store-directory)
2190 "\","))
2191 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",")
2192 ""))))
2193 (add-before 'check 'pre-check
2194 (lambda* (#:key inputs #:allow-other-keys)
2195 ;; Tests require a running X server and locales.
2196 (system "Xvfb :1 &")
2197 (setenv "DISPLAY" ":1")
2198 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
2199 (setenv "XDG_CONFIG_HOME" "/tmp")
2200 (setenv "GUIX_LOCPATH"
2201 (search-input-directory inputs
2202 "lib/locale")))))))
2203 (native-inputs
2204 (list `(,glib "bin") ;for gdbus-codegen
2205 glibc-locales ;for tests
2206 gobject-introspection
2207 itstool
2208 intltool
2209 pkg-config
2210 libxml2
2211 xorg-server-for-tests))
2212 (propagated-inputs
2213 ;; Required by gnome-desktop-3.0.pc.
2214 (list gsettings-desktop-schemas-next
2215 gtk
2216 gtk+
2217 iso-codes
2218 libseccomp
2219 libx11
2220 xkeyboard-config))
2221 (inputs
2222 (list bubblewrap
2223 gdk-pixbuf
2224 glib
2225 libxext
2226 libxkbfile
2227 libxrandr))
2228 (home-page "https://www.gnome.org/")
2229 (synopsis
2230 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2231 (description
2232 "The libgnome-desktop library provides API shared by several applications
2233 on the desktop, but that cannot live in the platform for various reasons.
2234 There is no API or ABI guarantee, although we are doing our best to provide
2235 stability. Documentation for the API is available with gtk-doc.
2236
2237 The gnome-about program helps find which version of GNOME is installed.")
2238 ; Some bits under the LGPL.
2239 (license license:gpl2+)))
2240
2241 (define-public gnome-disk-utility
2242 (package
2243 (name "gnome-disk-utility")
2244 (version "42.0")
2245 (source (origin
2246 (method url-fetch)
2247 (uri (string-append "mirror://gnome/sources/" name "/"
2248 (version-major version) "/"
2249 name "-" version ".tar.xz"))
2250 (sha256
2251 (base32
2252 "02q906gn420xbf1f0apazryzqfv5b1ammz1vrci66hk79m2n8r8v"))))
2253 (build-system meson-build-system)
2254 (arguments
2255 `(#:configure-flags '("-Dlogind=libelogind")
2256 #:phases
2257 (modify-phases %standard-phases
2258 (add-after 'unpack 'skip-gtk-update-icon-cache
2259 ;; Don't create 'icon-theme.cache'.
2260 (lambda _
2261 (substitute* "meson_post_install.py"
2262 (("gtk-update-icon-cache") "true")))))))
2263 (native-inputs
2264 (list docbook-xml
2265 docbook-xsl
2266 `(,glib "bin")
2267 gettext-minimal
2268 pkg-config
2269 libxml2
2270 libxslt))
2271 (inputs
2272 (list elogind
2273 glib
2274 appstream-glib
2275 gnome-settings-daemon
2276 gtk+
2277 libcanberra
2278 libdvdread
2279 libhandy
2280 libnotify
2281 libpwquality
2282 libsecret
2283 udisks))
2284 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2285 (synopsis "Disk management utility for GNOME")
2286 (description "Disk management utility for GNOME.")
2287 (license license:gpl2+)))
2288
2289 (define-public gnome-font-viewer
2290 (package
2291 (name "gnome-font-viewer")
2292 (version "42.0")
2293 (source (origin
2294 (method url-fetch)
2295 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2296 (version-major version)
2297 "/gnome-font-viewer-" version ".tar.xz"))
2298 (sha256
2299 (base32
2300 "1k4dhk5dmkpxb5xpr9vrl7k2fdpi2fidzni1l2hhb891zzgvi8ng"))))
2301 (build-system meson-build-system)
2302 (arguments
2303 (list
2304 #:phases
2305 #~(modify-phases %standard-phases
2306 (add-after 'unpack 'patch-post-install-script
2307 (lambda _
2308 (substitute* "meson-postinstall.sh"
2309 (("update-desktop-database") (which "true")))))
2310 (add-after 'install 'patch-thumbnailer
2311 (lambda* (#:key outputs #:allow-other-keys)
2312 (substitute*
2313 (search-input-file
2314 outputs "share/thumbnailers/gnome-font-viewer.thumbnailer")
2315 (("gnome-thumbnail-font")
2316 (search-input-file outputs "bin/gnome-thumbnail-font"))))))))
2317 (native-inputs
2318 (list gettext-minimal
2319 `(,glib "bin")
2320 pkg-config))
2321 (inputs
2322 (list glib
2323 gnome-desktop
2324 gtk
2325 libadwaita
2326 libhandy
2327 libxml2))
2328 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2329 (synopsis "GNOME Fonts")
2330 (description "Application to show you the fonts installed on your computer
2331 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2332 the font would look under various sizes.")
2333 (license license:gpl2+)))
2334
2335 (define-public gcr
2336 (package
2337 (name "gcr")
2338 (version "3.41.1")
2339 (source (origin
2340 (method url-fetch)
2341 (uri (string-append "mirror://gnome/sources/" name "/"
2342 (version-major+minor version) "/"
2343 name "-" version ".tar.xz"))
2344 (sha256
2345 (base32
2346 "0kx2pv272p0qc0nq1287gciyn34d95yxg41vq3lzxfzyqaijhwdv"))))
2347 (build-system meson-build-system)
2348 (arguments
2349 (list
2350 #:phases
2351 #~(modify-phases %standard-phases
2352 (add-after 'unpack 'remove-fatal-warnings-option
2353 ;; Otherwise, the gi-docgen tool would fail because of the
2354 ;; "Fontconfig error: No writable cache directories" warnings.
2355 (lambda _
2356 (substitute* (find-files "." "^meson\\.build$")
2357 ((".*'--fatal-warnings',.*") ""))))
2358 (add-after 'unpack 'skip-gtk-update-icon-cache
2359 ;; Don't create 'icon-theme.cache'.
2360 (lambda _
2361 (substitute* "meson_post_install.py"
2362 (("gtk-update-icon-cache") "true"))))
2363 (add-before 'check 'pre-check
2364 (lambda _
2365 ;; Some tests expect to write to $HOME.
2366 (setenv "HOME" "/tmp")))
2367 (replace 'check
2368 (lambda* (#:key parallel-tests? tests? #:allow-other-keys)
2369 (when tests?
2370 (setenv "MESON_TESTTHREADS"
2371 (if parallel-tests?
2372 (number->string (parallel-job-count))
2373 "1"))
2374 ;; Work around the "mock prompter couldn't get session bus
2375 ;; address: Cannot spawn a message bus without a machine-id"
2376 ;; error by manually creating the session bus via
2377 ;; 'dbus-run-session'.
2378 (invoke "dbus-run-session" "--"
2379 "meson" "test" "-t" "0")))))))
2380 (inputs
2381 (list dbus
2382 gnupg
2383 libgcrypt
2384 libsecret))
2385 (native-inputs
2386 (list gettext-minimal
2387 gi-docgen
2388 `(,glib "bin")
2389 gobject-introspection
2390 gtk-doc
2391 libxml2
2392 libxslt
2393 openssh
2394 pkg-config
2395 python-wrapper
2396 vala))
2397 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2398 (propagated-inputs
2399 (list glib
2400 gtk+
2401 p11-kit))
2402 (home-page "https://www.gnome.org")
2403 (synopsis "Libraries for displaying certificates and accessing key stores")
2404 (description
2405 "The GCR package contains libraries used for displaying certificates and
2406 accessing key stores. It also provides the viewer for crypto files on the
2407 GNOME Desktop.")
2408 (license license:lgpl2.1+)))
2409
2410 (define-public gdl
2411 (package
2412 (name "gdl")
2413 (version "3.34.0")
2414 (source (origin
2415 (method git-fetch)
2416 (uri (git-reference
2417 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2418 (commit (string-append "GDL_" (string-map (match-lambda
2419 (#\. #\_)
2420 (c c))
2421 version)))))
2422 (file-name (git-file-name name version))
2423 (sha256
2424 (base32
2425 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2426 (build-system gnu-build-system)
2427 (native-inputs
2428 (list autoconf
2429 automake
2430 `(,glib "bin") ; for glib-genmarshal, etc.
2431 gnome-common
2432 gtk-doc/stable
2433 intltool
2434 pkg-config
2435 libtool
2436 which))
2437 (inputs
2438 (list libxml2))
2439 (propagated-inputs
2440 ;; The gdl-3.0.pc file 'Requires' GTK+.
2441 (list gtk+))
2442 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2443 (synopsis "GNOME docking library")
2444 (description "This library provides docking features for gtk+.")
2445 (license license:lgpl2.1+)))
2446
2447 ;;; A minimal variant used to break a cycle with Inkscape.
2448 (define-public gdl-minimal
2449 (package/inherit gdl
2450 (name "gdl-minimal")
2451 (arguments
2452 '(#:phases
2453 (modify-phases %standard-phases
2454 (add-after 'unpack 'disable-doc-generation
2455 ;; XXX: There is no easy way to disable generating the
2456 ;; documentation.
2457 (lambda _
2458 (substitute* "configure.in"
2459 (("GTK_DOC_CHECK.*") "")
2460 (("docs/.*") ""))
2461 (substitute* "Makefile.am"
2462 (("gdl docs po") "gdl po"))
2463 #t)))))
2464 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2465
2466 (define-public libgnome-keyring
2467 (package
2468 (name "libgnome-keyring")
2469 (version "3.12.0")
2470 (source (origin
2471 (method url-fetch)
2472 (uri (string-append "mirror://gnome/sources/" name "/"
2473 (version-major+minor version) "/"
2474 name "-" version ".tar.xz"))
2475 (sha256
2476 (base32
2477 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2478 (build-system gnu-build-system)
2479 (inputs
2480 (list libgcrypt dbus))
2481 (native-inputs
2482 (list pkg-config
2483 `(,glib "bin") intltool))
2484 (propagated-inputs
2485 ;; Referred to in .h files and .pc.
2486 (list glib))
2487 (home-page "https://www.gnome.org")
2488 (synopsis "Accessing passwords from the GNOME keyring")
2489 (description
2490 "Client library to access passwords from the GNOME keyring.")
2491
2492 ;; Though a couple of files are LGPLv2.1+.
2493 (license license:lgpl2.0+)))
2494
2495 (define-public gnome-keyring
2496 (package
2497 (name "gnome-keyring")
2498 (version "42.1")
2499 (source (origin
2500 (method url-fetch)
2501 (uri (string-append "mirror://gnome/sources/" name "/"
2502 (version-major version) "/"
2503 name "-" version ".tar.xz"))
2504 (sha256
2505 (base32
2506 "1rp38v4s9116ivycp27w806wihqid48gk3p0czzbg9knri0d1x67"))))
2507 (build-system gnu-build-system)
2508 (arguments
2509 (list
2510 #:configure-flags
2511 #~(list
2512 (string-append "--with-pkcs11-config="
2513 #$output "/share/p11-kit/modules/")
2514 (string-append "--with-pkcs11-modules="
2515 #$output "/share/p11-kit/modules/"))
2516 #:phases
2517 #~(modify-phases %standard-phases
2518 (add-after 'unpack 'fix-/bin/sh-reference
2519 (lambda _
2520 (substitute* "po/Makefile.in.in"
2521 (("/bin/sh") (which "sh")))))
2522 (delete 'check)
2523 (add-after 'install 'check
2524 (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
2525 (when tests?
2526 (setenv "HOME" "/tmp") ;some tests require a writable HOME
2527 (setenv "XDG_DATA_DIRS" (string-append (getenv "XDG_DATA_DIRS")
2528 ":" #$output "/share"))
2529 (invoke "dbus-run-session" "make" "check" "-j"
2530 (if parallel-tests?
2531 (number->string (parallel-job-count))
2532 "1"))))))))
2533 (inputs
2534 (list dbus
2535 gcr
2536 libgcrypt
2537 linux-pam
2538 openssh))
2539 (native-inputs
2540 (list dbus ;for tests
2541 docbook-xml-4.3
2542 docbook-xml
2543 docbook-xsl
2544 gettext-minimal
2545 `(,glib "bin")
2546 glib ;for m4 macros
2547 libxml2 ;for XML_CATALOG_FILES
2548 libxslt ;for documentation
2549 pkg-config
2550 python-wrapper)) ;for tests
2551 (propagated-inputs
2552 (list gcr))
2553 (home-page "https://www.gnome.org")
2554 (synopsis "Daemon to store passwords and encryption keys")
2555 (description
2556 "@command{gnome-keyring} is a program that keeps passwords and other
2557 secrets for users. It is run as a daemon in the session, similar to
2558 @command{ssh-agent}, and other applications locate it via an environment
2559 variable or D-Bus.
2560
2561 The program can manage several keyrings, each with its own master password,
2562 and there is also a session keyring which is never stored to disk, but
2563 forgotten when the session ends.")
2564 (license license:lgpl2.1+)))
2565
2566 (define-public evince
2567 (package
2568 (name "evince")
2569 (version "42.3")
2570 (source (origin
2571 (method url-fetch)
2572 (uri "mirror://gnome/sources/evince/42/evince-42.3.tar.xz")
2573 (sha256
2574 (base32
2575 "0pk42icnf4kdcaqaj17mcf4sxi82h1fdg2ds2zdrcv4lbj2czbj9"))))
2576 (build-system meson-build-system)
2577 (arguments
2578 `(#:glib-or-gtk? #t
2579 #:build-type "release"
2580 #:configure-flags '("-Dnautilus=false")
2581 #:phases
2582 (modify-phases %standard-phases
2583 (add-after 'unpack 'skip-gtk-update-icon-cache
2584 ;; Don't create 'icon-theme.cache'.
2585 (lambda _
2586 (substitute* "meson_post_install.py"
2587 (("gtk-update-icon-cache") "true")))))))
2588 (inputs
2589 (list libarchive
2590 libgxps
2591 libspectre
2592 djvulibre
2593 ghostscript
2594 poppler
2595 libtiff
2596 texlive-libkpathsea ; for DVI support
2597 gnome-desktop
2598 gsettings-desktop-schemas
2599 gspell
2600 libgnome-keyring
2601 adwaita-icon-theme
2602 gdk-pixbuf
2603 atk
2604 pango
2605 gtk+
2606 glib
2607 libxml2
2608 libsm
2609 libice
2610 shared-mime-info
2611 dconf
2612 libcanberra
2613 libsecret
2614 libhandy))
2615 (native-inputs
2616 (list itstool
2617 gettext-minimal
2618 gi-docgen
2619 `(,glib "bin")
2620 gobject-introspection
2621 pkg-config
2622 libxml2))
2623 (home-page " https://wiki.gnome.org/Apps")
2624 (synopsis "GNOME's document viewer")
2625 (description
2626 "Evince is a document viewer for multiple document formats. It
2627 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2628 of Evince is to replace the multiple document viewers that exist
2629 on the GNOME Desktop with a single simple application.")
2630 (license license:gpl2+)))
2631
2632 (define-public gsettings-desktop-schemas
2633 (package
2634 (name "gsettings-desktop-schemas")
2635 (version "41.0")
2636 (source
2637 (origin
2638 (method url-fetch)
2639 (uri (string-append "mirror://gnome/sources/" name "/"
2640 (version-major version) "/"
2641 name "-" version ".tar.xz"))
2642 (sha256
2643 (base32
2644 "1v9jagk679m01nji0acirynxinziv036618c7xc49l4nwmr9ja3p"))))
2645 (build-system meson-build-system)
2646 (arguments
2647 `(#:phases (modify-phases %standard-phases
2648 (add-after 'unpack 'patch-schemas
2649 (lambda* (#:key inputs #:allow-other-keys)
2650 (substitute* (find-files "schemas"
2651 "\\.gschema\\.xml\\.in$")
2652 ;; Provide the correct file name of the default
2653 ;; GNOME background, 'adwaita-timed.xml'.
2654 (("@datadir@/backgrounds/gnome")
2655 (search-input-directory inputs
2656 "/share/backgrounds/gnome"))
2657 ;; Do not reference fonts, that may not exist.
2658 (("'Source Code Pro 10'") "'Monospace 11'")))))))
2659 (inputs (list glib gnome-backgrounds))
2660 (native-inputs (list gettext-minimal
2661 `(,glib "bin") ;glib-compile-schemas, etc.
2662 gobject-introspection
2663 pkg-config
2664 python)) ;for build-aux/meson/post-install.py
2665 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2666 (synopsis "GNOME settings for various desktop components")
2667 (description "Gsettings-desktop-schemas contains a collection of GSettings
2668 schemas for settings shared by various components of the GNOME desktop.")
2669 (license license:lgpl2.1+)))
2670
2671 (define-public gsettings-desktop-schemas-next
2672 (package
2673 (inherit gsettings-desktop-schemas)
2674 (name "gsettings-desktop-schemas-next") ;to avoid propagation conflicts
2675 (version "42.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 "1li3fcqwnw20f4j0i21i88fygm0hli8gmzkn4apgf8ynkrd371k6"))))))
2685
2686 (define-public python-liblarch
2687 (package
2688 (name "python-liblarch")
2689 (version "3.0.1")
2690 (source
2691 (origin
2692 (method git-fetch)
2693 (uri (git-reference
2694 (url "https://github.com/getting-things-gnome/liblarch")
2695 (commit (string-append "v" version))))
2696 (file-name (git-file-name name version))
2697 (sha256
2698 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2699 (build-system python-build-system)
2700 (arguments
2701 `(#:phases
2702 (modify-phases %standard-phases
2703 (add-before 'check 'start-xserver
2704 (lambda* (#:key inputs #:allow-other-keys)
2705 (system (format #f "~a/bin/Xvfb :1 &"
2706 (assoc-ref inputs "xorg-server")))
2707 (setenv "DISPLAY" ":1")
2708 #t)))))
2709 (native-inputs
2710 (list xorg-server-for-tests))
2711 (inputs
2712 (list gtk+))
2713 (propagated-inputs
2714 (list python-pygobject))
2715 (home-page "https://wiki.gnome.org/Projects/liblarch")
2716 (synopsis "Library to easily handle complex data structures")
2717 (description
2718 "Liblarch is a Python library built to easily handle data structures such
2719 as lists, trees and acyclic graphs. There's also a GTK binding that will
2720 allow you to use your data structure in a @code{Gtk.Treeview}.
2721
2722 Liblarch support multiple views of one data structure and complex filtering.
2723 That way, you have a clear separation between your data themselves (Model)
2724 and how they are displayed (View).")
2725 (license license:lgpl3+)))
2726
2727 (define-public gtg
2728 (package
2729 (name "gtg")
2730 (version "0.5")
2731 (source
2732 (origin
2733 (method git-fetch)
2734 (uri (git-reference
2735 (url "https://github.com/getting-things-gnome/gtg")
2736 (commit (string-append "v" version))))
2737 (file-name (git-file-name name version))
2738 (sha256
2739 (base32 "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403"))))
2740 (build-system meson-build-system)
2741 (arguments
2742 `(#:glib-or-gtk? #t
2743 #:phases
2744 (modify-phases %standard-phases
2745 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2746 (lambda* (#:key outputs #:allow-other-keys)
2747 (let ((prog (string-append (assoc-ref outputs "out")
2748 "/bin/gtg"))
2749 (pylib (string-append (assoc-ref outputs "out")
2750 "/lib/python"
2751 ,(version-major+minor
2752 (package-version python))
2753 "/site-packages")))
2754 (wrap-program prog
2755 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
2756 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2757 #t))))))
2758 (native-inputs
2759 `(("desktop-file-utils" ,desktop-file-utils)
2760 ("gettext" ,gettext-minimal)
2761 ("glib:bin" ,glib "bin")
2762 ("gobject-introspection" ,gobject-introspection)
2763 ("gtk+:bin" ,gtk+ "bin")
2764 ("pkg-config" ,pkg-config)))
2765 (inputs
2766 (list librsvg
2767 gsettings-desktop-schemas
2768 gtk+
2769 pango
2770 python-dbus
2771 python-liblarch
2772 python-lxml
2773 python-pycairo
2774 python-pygobject
2775 python-pyxdg))
2776 (home-page "https://wiki.gnome.org/Apps/GTG")
2777 (synopsis "Personal organizer for the GNOME desktop")
2778 (description
2779 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2780 organizer for the GNOME desktop environment inspired by the Getting Things
2781 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2782 and ease of use in mind so it can be used as more than just GTD software.
2783 GTG is intended to help you track everything you need to do and need to
2784 know, from small tasks to large projects.")
2785 (license license:gpl3+)))
2786
2787 (define-public icon-naming-utils
2788 (package
2789 (name "icon-naming-utils")
2790 (version "0.8.90")
2791 (source
2792 (origin
2793 (method url-fetch)
2794 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2795 version ".tar.bz2"))
2796 (sha256
2797 (base32
2798 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2799 (build-system gnu-build-system)
2800 (inputs
2801 (list perl perl-xml-simple))
2802 (arguments
2803 '(#:phases
2804 (modify-phases %standard-phases
2805 (add-after 'install 'set-load-paths
2806 ;; Tell 'icon-name-mapping' where XML::Simple is.
2807 (lambda* (#:key outputs #:allow-other-keys)
2808 (let* ((out (assoc-ref outputs "out"))
2809 (prog (string-append out "/libexec/icon-name-mapping")))
2810 (wrap-program
2811 prog
2812 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2813 #t)))))
2814 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2815 (synopsis
2816 "Utility to implement the Freedesktop Icon Naming Specification")
2817 (description
2818 "To help with the transition to the Freedesktop Icon Naming
2819 Specification, the icon naming utility maps the icon names used by the
2820 GNOME and KDE desktops to the icon names proposed in the specification.")
2821 (license license:lgpl2.1+)))
2822
2823 (define-public adwaita-icon-theme
2824 (package
2825 (name "adwaita-icon-theme")
2826 (version "42.0")
2827 (source (origin
2828 (method url-fetch)
2829 (uri (string-append "mirror://gnome/sources/" name "/"
2830 (version-major version) "/"
2831 name "-" version ".tar.xz"))
2832 (sha256
2833 (base32
2834 "1q5i31zd5jzr12p6vn831afwnzbzf6x73wna1y86drnyr2nvb1ay"))))
2835 (build-system gnu-build-system)
2836 (arguments
2837 (list #:make-flags
2838 ;; Don't create 'icon-theme.cache'.
2839 #~(list "GTK_UPDATE_ICON_CACHE=")))
2840 (native-inputs
2841 ;; The following requires the SVG pixbuf loader, provided by librsvg,
2842 ;; available on x86_64 only.
2843 `(,@(if (target-64bit?)
2844 `((,gtk+ "bin")) ;for gtk-encode-symbolic-svg
2845 '())))
2846 (home-page "https://gitlab.gnome.org/GNOME/adwaita-icon-theme")
2847 (synopsis "GNOME icon theme")
2848 (description "Icons for the GNOME desktop.")
2849 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2850
2851 (define-public gnome-icon-theme
2852 (deprecated-package "gnome-icon-theme" adwaita-icon-theme))
2853
2854 (define-public tango-icon-theme
2855 (package
2856 (name "tango-icon-theme")
2857 (version "0.8.90")
2858 (source (origin
2859 (method url-fetch)
2860 (uri (string-append "http://tango.freedesktop.org/releases/"
2861 "tango-icon-theme-" version ".tar.bz2"))
2862 (sha256
2863 (base32
2864 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2865 (build-system gnu-build-system)
2866 (native-inputs
2867 (list icon-naming-utils intltool imagemagick pkg-config))
2868 (home-page "http://tango-project.org/")
2869 (synopsis "Tango icon theme")
2870 (description "This is an icon theme that follows the Tango visual
2871 guidelines.")
2872 (license license:public-domain)))
2873
2874 (define-public shared-mime-info
2875 (package
2876 (name "shared-mime-info")
2877 (version "1.15")
2878 (source (origin
2879 (method url-fetch)
2880 (uri (string-append
2881 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2882 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2883 ".tar.xz"))
2884 (sha256
2885 (base32
2886 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2887 (build-system gnu-build-system)
2888 (arguments
2889 ;; The build system appears not to be parallel-safe.
2890 '(#:parallel-build? #f))
2891 (inputs
2892 (list glib libxml2))
2893 (native-inputs
2894 `(("gettext" ,gettext-minimal)
2895 ("itstool" ,itstool)
2896 ("pkg-config" ,pkg-config)))
2897 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2898 (synopsis "Database of common MIME types")
2899 (description
2900 "The shared-mime-info package contains the core database of common types
2901 and the update-mime-database command used to extend it. It requires glib2 to
2902 be installed for building the update command. Additionally, it uses intltool
2903 for translations, though this is only a dependency for the maintainers. This
2904 database is translated at Transifex.")
2905 (license license:gpl2+)))
2906
2907 (define-public system-config-printer
2908 (package
2909 (name "system-config-printer")
2910 (version "1.5.16")
2911 (source
2912 (origin
2913 (method url-fetch)
2914 (uri (string-append
2915 "https://github.com/OpenPrinting/system-config-printer/releases/"
2916 "download/v" version
2917 "/system-config-printer-" version ".tar.xz"))
2918 (sha256
2919 (base32 "1z9pvgifj5c87csnqz10qybbcayh3ak9m606f63ifkvyjh4q9jnb"))))
2920 (build-system glib-or-gtk-build-system)
2921 (arguments
2922 (list
2923 #:imported-modules `((guix build python-build-system)
2924 ,@%glib-or-gtk-build-system-modules)
2925 #:phases
2926 #~(modify-phases %standard-phases
2927 (add-after 'unpack 'patch-build-files
2928 (lambda _
2929 (substitute* "configure.ac"
2930 (("AC_INIT.*" all)
2931 (string-append all "\nAC_CONFIG_MACRO_DIR([m4])\n"))
2932 ;; XXX: AX macros appear unavailable
2933 (("AX_REQUIRE_DEFINED.*") ""))
2934 ;; The Makefile generates some scripts, so set a valid shebang
2935 (substitute* "Makefile.am"
2936 (("/bin/bash") (which "bash")))
2937 (delete-file "configure")))
2938 (add-after 'unpack 'patch-docbook-xml
2939 (lambda* (#:key inputs #:allow-other-keys)
2940 ;; Modify the man XML otherwise xmlto tries to access the network
2941 (substitute* "man/system-config-printer.xml"
2942 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2943 (string-append (assoc-ref inputs "docbook-xml")
2944 "/xml/dtd/docbook/")))))
2945 (add-after 'install 'add-install-to-pythonpath
2946 (@@ (guix build python-build-system) add-install-to-pythonpath))
2947 (add-after 'add-install-to-pythonpath 'wrap-for-python
2948 (@@ (guix build python-build-system) wrap))
2949 (add-after 'install 'wrap
2950 (lambda* (#:key outputs #:allow-other-keys)
2951 (let ((out (assoc-ref outputs "out"))
2952 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2953 (for-each
2954 (lambda (program)
2955 (wrap-program program
2956 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2957 (map (lambda (name)
2958 (string-append out "/bin/" name))
2959 '("system-config-printer"
2960 "system-config-printer-applet"
2961 "install-printerdriver"
2962 "scp-dbus-service")))))))))
2963 (inputs
2964 (list gsettings-desktop-schemas
2965 gobject-introspection
2966 python
2967 cups
2968 gtk+
2969 python-dbus
2970 python-pygobject
2971 python-pycups
2972 python-requests
2973 python-pycairo
2974 libnotify
2975 packagekit))
2976 (native-inputs
2977 (list pkg-config
2978 desktop-file-utils
2979 glib
2980 autoconf
2981 automake
2982 gettext-minimal
2983 xmlto
2984 docbook-xml-4.1.2
2985 docbook-xsl
2986 libxml2))
2987 (home-page "https://github.com/zdohnal/system-config-printer")
2988 (synopsis "CUPS administration tool")
2989 (description
2990 "system-config-printer is a CUPS administration tool. It's written in
2991 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2992 configuring CUPS.")
2993 (license license:gpl2+)))
2994
2995 (define-public hicolor-icon-theme
2996 (package
2997 (name "hicolor-icon-theme")
2998 (version "0.17")
2999 (source
3000 (origin
3001 (method url-fetch)
3002 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3003 "hicolor-icon-theme-" version ".tar.xz"))
3004 (sha256
3005 (base32
3006 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3007 (build-system gnu-build-system)
3008 (arguments
3009 `(#:tests? #f)) ; no check target
3010 (home-page "https://icon-theme.freedesktop.org/releases/")
3011 (synopsis
3012 "Freedesktop icon theme")
3013 (description
3014 "Freedesktop icon theme.")
3015 (license license:gpl2)))
3016
3017 (define-public libnotify
3018 (package
3019 (name "libnotify")
3020 (version "0.7.9")
3021 (source
3022 (origin
3023 (method url-fetch)
3024 (uri (string-append "mirror://gnome/sources/" name "/"
3025 (version-major+minor version) "/"
3026 name "-" version ".tar.xz"))
3027 (sha256
3028 (base32
3029 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3030 (build-system meson-build-system)
3031 (arguments
3032 `(#:phases
3033 (modify-phases %standard-phases
3034 (add-after 'unpack 'fix-docbook
3035 (lambda* (#:key inputs #:allow-other-keys)
3036 ;; Don't attempt to download XSL schema.
3037 (substitute* "meson.build"
3038 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3039 /manpages/docbook.xsl")
3040 (string-append (assoc-ref inputs "docbook-xsl")
3041 "/xml/xsl/docbook-xsl-"
3042 ,(package-version docbook-xsl)
3043 "/manpages/docbook.xsl")))
3044 #t)))))
3045 (propagated-inputs
3046 (list ;; In Requires of libnotify.pc.
3047 gdk-pixbuf glib))
3048 (inputs
3049 (list gtk+ libpng))
3050 (native-inputs
3051 `(("pkg-config" ,pkg-config)
3052 ("glib" ,glib "bin")
3053 ("gobject-introspection" ,gobject-introspection)
3054
3055 ;; For the documentation.
3056 ("gtk-doc" ,gtk-doc/stable)
3057 ("xsltproc" ,libxslt)
3058 ("docbook-xsl" ,docbook-xsl)))
3059 (home-page "https://developer-next.gnome.org/libnotify/")
3060 (synopsis
3061 "GNOME desktop notification library")
3062 (description
3063 "Libnotify is a library that sends desktop notifications to a
3064 notification daemon, as defined in the Desktop Notifications spec. These
3065 notifications can be used to inform the user about an event or display
3066 some form of information without getting in the user's way.")
3067 (license license:lgpl2.1+)))
3068
3069 (define-public libpeas
3070 (package
3071 (name "libpeas")
3072 (version "1.30.0")
3073 (source
3074 (origin
3075 (method url-fetch)
3076 (uri (string-append "mirror://gnome/sources/" name "/"
3077 (version-major+minor version) "/"
3078 name "-" version ".tar.xz"))
3079 (sha256
3080 (base32
3081 "18xrk1c1ixlhkmykcfiafrl2am470ws687xqvjlq40zwkcp5dx8b"))))
3082 (build-system meson-build-system)
3083 (arguments
3084 '(#:phases
3085 (modify-phases %standard-phases
3086 (add-before 'check 'start-xserver
3087 (lambda* (#:key inputs #:allow-other-keys)
3088 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3089 (disp ":1"))
3090 (setenv "DISPLAY" disp)
3091 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
3092 (setenv "XDG_CONFIG_HOME" "/tmp")
3093 ;; Tests require a running X server.
3094 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3095 #t))))))
3096 (inputs
3097 (list gtk+ glade3 python python-pygobject))
3098 (native-inputs
3099 `(("pkg-config" ,pkg-config)
3100 ("gettext" ,gettext-minimal)
3101 ("glib:bin" ,glib "bin")
3102 ("gobject-introspection" ,gobject-introspection)
3103 ("xorg-server" ,xorg-server-for-tests)))
3104 (propagated-inputs
3105 ;; The .pc file "Requires" gobject-introspection.
3106 (list gobject-introspection))
3107 (home-page "https://wiki.gnome.org/Libpeas")
3108 (synopsis "GObject plugin system")
3109 (description
3110 "Libpeas is a gobject-based plugin engine, targeted at giving every
3111 application the chance to assume its own extensibility. It also has a set of
3112 features including, but not limited to: multiple extension points; on-demand
3113 (lazy) programming language support for C, Python and JS; simplicity of the
3114 API.")
3115 (license license:lgpl2.0+)))
3116
3117 (define-public gtkglext
3118 (package
3119 (name "gtkglext")
3120 (version "1.2.0")
3121 (source (origin
3122 (method url-fetch)
3123 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3124 version "/gtkglext-" version ".tar.gz"))
3125 (sha256
3126 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3127 (patches (search-patches
3128 "gtkglext-disable-disable-deprecated.patch"))))
3129 (build-system gnu-build-system)
3130 (arguments
3131 `(#:phases
3132 (modify-phases %standard-phases
3133 ;; Fix a collision between a local variable and a definition from
3134 ;; glibc's string.h.
3135 (add-after 'unpack 'fix-collision
3136 (lambda _
3137 (substitute* "gdk/gdkglshapes.c"
3138 ((" index") " triangle_index"))
3139 #t)))))
3140 (inputs (list gtk+-2 mesa glu libx11 libxt))
3141 (native-inputs (list pkg-config
3142 `(,glib "bin")))
3143 (propagated-inputs (list pangox-compat))
3144 (home-page "https://projects.gnome.org/gtkglext")
3145 (synopsis "OpenGL extension to GTK+")
3146 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3147 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3148 API add-ons to make GTK+ widgets OpenGL-capable.")
3149 (license license:lgpl2.1+)))
3150
3151 (define-public glade3
3152 (package
3153 (name "glade")
3154 (version "3.40.0")
3155 (source (origin
3156 (method url-fetch)
3157 (uri (string-append "mirror://gnome/sources/" name "/"
3158 (version-major+minor version) "/"
3159 name "-" version ".tar.xz"))
3160 (sha256
3161 (base32
3162 "171x7vshhw0nqgnhkcaqfylpr5qrmhclwmkva6wjm5s9m2pavj9i"))))
3163 (build-system meson-build-system)
3164 (arguments
3165 (list
3166 #:meson meson-0.60
3167 #:phases
3168 #~(modify-phases %standard-phases
3169 (add-after 'unpack 'skip-gtk-update-icon-cache
3170 ;; Don't create 'icon-theme.cache'.
3171 (lambda _
3172 (substitute* "meson_post_install.py"
3173 (("gtk-update-icon-cache") "true"))))
3174
3175 #$@(if (this-package-input "gjs")
3176 '()
3177 '((add-after 'unpack 'skip-gjs-test
3178 (lambda _
3179 ;; When the optional dependency on GJS is missing, skip
3180 ;; the GJS plugin tests.
3181 (substitute* "tests/modules.c"
3182 (("g_test_add.*JavaScript.*" all)
3183 (string-append "// " all "\n")))
3184 (delete-file "tests/catalogs/gjsplugin.xml")))))
3185 (add-before 'check 'pre-check
3186 (lambda _
3187 (setenv "HOME" "/tmp")
3188 ;; Tests require a running X server.
3189 (system "Xvfb :1 &")
3190 (setenv "DISPLAY" ":1"))))))
3191 (inputs
3192 (append
3193 ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
3194 ;; dependency on other platforms (FIXME).
3195 (if (target-x86-64?)
3196 (list gjs)
3197 '())
3198 (list gtk+ libxml2)))
3199 (native-inputs
3200 (list docbook-xml-4.2
3201 docbook-xsl
3202 gettext-minimal
3203 `(,glib "bin")
3204 gobject-introspection
3205 hicolor-icon-theme
3206 itstool
3207 libxml2 ;for XML_CATALOG_FILES
3208 libxslt ;for xsltproc
3209 python
3210 python-pygobject
3211 pkg-config
3212 xorg-server-for-tests))
3213 (home-page "https://glade.gnome.org")
3214 (synopsis "GTK+ rapid application development tool")
3215 (description "Glade is a rapid application development (RAD) tool to
3216 enable quick & easy development of user interfaces for the GTK+ toolkit and
3217 the GNOME desktop environment.")
3218 (license license:lgpl2.0+)
3219 (native-search-paths (list (search-path-specification
3220 (variable "GLADE_CATALOG_SEARCH_PATH")
3221 (files '("share/glade/catalogs")))
3222 (search-path-specification
3223 (variable "GLADE_MODULE_SEARCH_PATH")
3224 (files '("lib/glade/modules")))))))
3225
3226 (define-public blueprint-compiler
3227 (let ((commit "87cedc2c7e48b01dc1b07aef937e2fe02111b18c"))
3228 (package
3229 (name "blueprint-compiler")
3230 (version "0.2.0")
3231 (source (origin
3232 (method git-fetch)
3233 (uri (git-reference
3234 (url
3235 "https://gitlab.gnome.org/jwestman/blueprint-compiler")
3236 (commit commit)))
3237 (file-name (string-append name "-" commit "-checkout"))
3238 (sha256
3239 (base32
3240 "1mrj5dyjf5d325yc28fpph588qfsz6bm2nx5nnsgcv02bagplxid"))))
3241 (build-system meson-build-system)
3242 (native-inputs (list gobject-introspection gtk))
3243 (inputs (list python))
3244 (synopsis "Template markup language")
3245 (description
3246 "Blueprint is a markup language for GTK user interfaces. Internally, it
3247 compiles to GTKBuilder XML.")
3248 (home-page "https://gitlab.gnome.org/jwestman/blueprint-compiler")
3249 (license license:lgpl3+))))
3250
3251 (define-public cambalache
3252 (package
3253 (name "cambalache")
3254 (version "0.10.2")
3255 (source (origin
3256 (method git-fetch)
3257 (uri (git-reference
3258 (url "https://gitlab.gnome.org/jpu/cambalache")
3259 (commit version)))
3260 (file-name (git-file-name name version))
3261 (sha256
3262 (base32 "1mw5gk98zx03yal3p8slaqwhwkc9p2vnh0cssnmg6ivxsjscqhgz"))))
3263 (build-system meson-build-system)
3264 (arguments
3265 (list
3266 #:glib-or-gtk? #t
3267 #:imported-modules `((guix build python-build-system)
3268 ,@%meson-build-system-modules)
3269 #:modules '((guix build meson-build-system)
3270 ((guix build python-build-system) #:prefix python:)
3271 (guix build utils))
3272 #:phases
3273 #~(modify-phases %standard-phases
3274 (add-after 'unpack 'patch-source
3275 (lambda* (#:key inputs #:allow-other-keys)
3276 (substitute* "cambalache/cmb_view.py"
3277 (("GLib\\.find_program_in_path\\('(.*)'\\)" all cmd)
3278 (string-append "'"
3279 (search-input-file inputs
3280 (string-append "/bin/" cmd))
3281 "'")))))
3282 (add-after 'unpack 'patch-build
3283 (lambda _
3284 (substitute* "postinstall.py"
3285 (("update-desktop-database") "true"))))
3286 (add-after 'wrap 'python-wrap (assoc-ref python:%standard-phases 'wrap))
3287 (delete 'check)
3288 (add-after 'install 'add-install-to-pythonpath
3289 (assoc-ref python:%standard-phases 'add-install-to-pythonpath))
3290 (add-after 'add-install-to-pythonpath 'pre-check
3291 (lambda _
3292 (system "Xvfb :1 &")
3293 (setenv "DISPLAY" ":1")))
3294 (add-after 'pre-check 'check
3295 (lambda* (#:key tests? #:allow-other-keys)
3296 (when tests?
3297 (with-directory-excursion ".."
3298 (invoke "python3" "-m" "pytest")))))
3299 (add-after 'glib-or-gtk-wrap 'wrap-typelib
3300 (lambda* (#:key outputs #:allow-other-keys)
3301 (let ((out (assoc-ref outputs "out")))
3302 (for-each
3303 (lambda (prog)
3304 (unless (wrapped-program? prog)
3305 (wrap-program prog
3306 `("GI_TYPELIB_PATH" suffix
3307 (,(string-append out "/lib/girepository-1.0")
3308 ,(getenv "GI_TYPELIB_PATH")))
3309 ;; icons and schemas
3310 `("XDG_DATA_DIRS" suffix
3311 #$(map
3312 (lambda (input)
3313 (file-append (this-package-input input) "/share"))
3314 '("adwaita-icon-theme" "hicolor-icon-theme"
3315 "gsettings-desktop-schemas")))
3316 ;; Wrapping GDK_PIXBUF_MODULE_FILE allows Cambalache to
3317 ;; load its own icons in pure environments.
3318 `("GDK_PIXBUF_MODULE_FILE" =
3319 (,(getenv "GDK_PIXBUF_MODULE_FILE"))))))
3320 (find-files (string-append out "/bin")))))))))
3321 (inputs (list bash-minimal
3322 adwaita-icon-theme hicolor-icon-theme
3323 gsettings-desktop-schemas
3324 gtk
3325 `(,gtk+ "bin") ; broadwayd
3326 `(,gtk "bin")
3327 libadwaita
3328 libhandy
3329 (librsvg-for-system)
3330 python python-pygobject python-lxml
3331 webkitgtk-with-libsoup2))
3332 (native-inputs (list `(,glib "bin") gobject-introspection
3333 gettext-minimal pkg-config
3334 python-pytest xorg-server-for-tests))
3335 (home-page "https://gitlab.gnome.org/jpu/cambalache")
3336 (synopsis "Rapid application development tool")
3337 (description "Cambalache is a rapid application development (RAD) tool for
3338 Gtk 4 and 3 with a clear model-view-controller (MVC) design and
3339 data model first philosophy.")
3340 (license (list license:lgpl2.1
3341 license:gpl2)))) ; tools
3342
3343 (define-public libcroco
3344 (package
3345 (name "libcroco")
3346 (version "0.6.13")
3347 (source (origin
3348 (method url-fetch)
3349 (uri (string-append "mirror://gnome/sources/" name "/"
3350 (version-major+minor version) "/"
3351 name "-" version ".tar.xz"))
3352 (patches (search-patches "libcroco-CVE-2020-12825.patch"))
3353 (sha256
3354 (base32
3355 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3356 (build-system gnu-build-system)
3357 (native-inputs
3358 (list pkg-config))
3359 (inputs
3360 (list glib libxml2 zlib))
3361 (home-page "https://github.com/GNOME/libcroco")
3362 (synopsis "CSS2 parsing and manipulation library")
3363 (description
3364 "Libcroco is a standalone CSS2 parsing and manipulation library.
3365 The parser provides a low level event driven SAC-like API and a CSS object
3366 model like API. Libcroco provides a CSS2 selection engine and an experimental
3367 XML/CSS rendering engine.")
3368
3369 ;; LGPLv2.1-only.
3370 (license license:lgpl2.1)))
3371
3372 (define-public libgsf
3373 (package
3374 (name "libgsf")
3375 (version "1.14.47")
3376 (source (origin
3377 (method url-fetch)
3378 (uri (string-append "mirror://gnome/sources/" name "/"
3379 (version-major+minor version) "/"
3380 name "-" version ".tar.xz"))
3381 (sha256
3382 (base32
3383 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3384 (build-system glib-or-gtk-build-system)
3385 (outputs '("out" "bin" "doc"))
3386 (arguments
3387 `(#:configure-flags
3388 (list
3389 "--disable-static"
3390 "--enable-introspection"
3391 (string-append "--with-gir-dir="
3392 (assoc-ref %outputs "out")
3393 "/share/gir-"
3394 ,(version-major
3395 (package-version gobject-introspection))
3396 ".0")
3397 (string-append "--with-typelib-dir="
3398 (assoc-ref %outputs "out")
3399 "/lib/girepository-"
3400 ,(version-major
3401 (package-version gobject-introspection))
3402 ".0")
3403 (string-append "--with-html-dir="
3404 (assoc-ref %outputs "doc")
3405 "/share/gtk-doc/html")
3406 "--with-zlib"
3407 "--with-bz2")
3408 #:phases
3409 (modify-phases %standard-phases
3410 (add-after 'unpack 'patch-docbook-xml
3411 (lambda* (#:key inputs #:allow-other-keys)
3412 (with-directory-excursion "doc"
3413 (substitute* "gsf-docs.xml"
3414 (("http://www.oasis-open.org/docbook/xml/4.5/")
3415 (string-append (assoc-ref inputs "docbook-xml")
3416 "/xml/dtd/docbook/"))))
3417 #t)))))
3418 (native-inputs
3419 `(("docbook-xml" ,docbook-xml)
3420 ("gettext" ,gettext-minimal)
3421 ("gobject-introspection" ,gobject-introspection)
3422 ("perl" ,perl)
3423 ("perl-xml-parser" ,perl-xml-parser)
3424 ("pkg-config" ,pkg-config)
3425 ("python" ,python-wrapper)))
3426 (inputs
3427 (list bzip2 gdk-pixbuf zlib))
3428 (propagated-inputs
3429 (list glib libxml2))
3430 (synopsis "G Structured File Library")
3431 (description "Libgsf aims to provide an efficient extensible I/O abstraction
3432 for dealing with different structured file formats.")
3433 (home-page "https://gitlab.gnome.org/GNOME/libgsf")
3434 (license
3435 (list
3436 ;; Library
3437 license:lgpl2.1+
3438 ;; Others
3439 license:lgpl2.0+))))
3440
3441 (define-public librsvg
3442 (package
3443 (name "librsvg")
3444 (version "2.50.7")
3445 (source (origin
3446 (method url-fetch)
3447 (uri (string-append "mirror://gnome/sources/librsvg/"
3448 (version-major+minor version) "/"
3449 "librsvg-" version ".tar.xz"))
3450 (sha256
3451 (base32
3452 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3453 (modules '((guix build utils)))
3454 (snippet
3455 '(begin (delete-file-recursively "vendor")))))
3456 (build-system cargo-build-system)
3457 (outputs '("out" "doc" "debug"))
3458 (arguments
3459 `(#:install-source? #f
3460 #:modules
3461 ((guix build cargo-build-system)
3462 (guix build utils)
3463 ((guix build gnu-build-system) #:prefix gnu:))
3464 #:cargo-inputs
3465 (("rust-bitflags" ,rust-bitflags-1)
3466 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3467 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3468 ("rust-cast" ,rust-cast-0.2)
3469 ("rust-cssparser" ,rust-cssparser-0.27)
3470 ("rust-data-url" ,rust-data-url-0.1)
3471 ("rust-encoding" ,rust-encoding-0.2)
3472 ("rust-float-cmp" ,rust-float-cmp-0.8)
3473 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3474 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3475 ("rust-gio" ,rust-gio-0.8)
3476 ("rust-gio-sys" ,rust-gio-sys-0.9)
3477 ("rust-glib" ,rust-glib-0.9)
3478 ("rust-glib-sys" ,rust-glib-sys-0.9)
3479 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3480 ("rust-itertools" ,rust-itertools-0.9)
3481 ("rust-language-tags" ,rust-language-tags-0.2)
3482 ("rust-libc" ,rust-libc-0.2)
3483 ("rust-locale-config" ,rust-locale-config-0.3)
3484 ("rust-markup5ever" ,rust-markup5ever-0.10)
3485 ("rust-nalgebra" ,rust-nalgebra-0.21)
3486 ("rust-num-traits" ,rust-num-traits-0.2)
3487 ("rust-once-cell" ,rust-once-cell-1)
3488 ("rust-pkg-config" ,rust-pkg-config-0.3)
3489 ("rust-pango" ,rust-pango-0.8)
3490 ("rust-pango-sys" ,rust-pango-sys-0.9)
3491 ("rust-pangocairo" ,rust-pangocairo-0.9)
3492 ("rust-rayon" ,rust-rayon-1)
3493 ("rust-rctree" ,rust-rctree-0.3)
3494 ("rust-rgb" ,rust-rgb-0.8)
3495 ("rust-regex" ,rust-regex-1)
3496 ("rust-selectors" ,rust-selectors-0.22)
3497 ("rust-string-cache" ,rust-string-cache-0.8)
3498 ("rust-tinyvec" ,rust-tinyvec-0.3)
3499 ("rust-url" ,rust-url-2)
3500 ("rust-xml5ever" ,rust-xml5ever-0.16))
3501 #:cargo-development-inputs
3502 (("rust-assert-cmd" ,rust-assert-cmd-1)
3503 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3504 ("rust-chrono" ,rust-chrono-0.4)
3505 ("rust-criterion" ,rust-criterion-0.3)
3506 ("rust-float-cmp" ,rust-float-cmp-0.8)
3507 ("rust-lopdf" ,rust-lopdf-0.26)
3508 ("rust-png" ,rust-png-0.16)
3509 ("rust-predicates" ,rust-predicates-1)
3510 ("rust-tempfile" ,rust-tempfile-3))
3511 #:phases
3512 (modify-phases %standard-phases
3513 (add-after 'unpack 'patch-docbook-xml
3514 (lambda* (#:key inputs #:allow-other-keys)
3515 (with-directory-excursion "doc"
3516 (substitute* "rsvg-docs.xml"
3517 (("http://www.oasis-open.org/docbook/xml/4.3/")
3518 (string-append (assoc-ref inputs "docbook-xml")
3519 "/xml/dtd/docbook/"))))))
3520 (add-after 'unpack 'prepare-for-build
3521 (lambda _
3522 ;; In lieu of #:make-flags
3523 (setenv "CC" ,(cc-for-target))
3524 ;; Something about the build environment resists building
3525 ;; successfully with the '--locked' flag.
3526 (substitute* '("Makefile.am" "Makefile.in")
3527 (("--locked") ""))))
3528 (add-before 'configure 'pre-configure
3529 (lambda* (#:key outputs #:allow-other-keys)
3530 (substitute* "gdk-pixbuf-loader/Makefile.in"
3531 ;; By default the gdk-pixbuf loader is installed under
3532 ;; gdk-pixbuf's prefix. Work around that.
3533 (("gdk_pixbuf_moduledir = .*$")
3534 (string-append "gdk_pixbuf_moduledir = "
3535 "$(prefix)/"
3536 ,(dirname %gdk-pixbuf-loaders-cache-file) "/"
3537 "loaders\n")))
3538 (substitute* "configure"
3539 (("gdk_pixbuf_cache_file=.*")
3540 (string-append "gdk_pixbuf_cache_file="
3541 (assoc-ref outputs "out") "/"
3542 ,%gdk-pixbuf-loaders-cache-file "\n")))))
3543 (add-after 'configure 'gnu-configure
3544 (lambda* (#:key outputs #:allow-other-keys #:rest args)
3545 (apply (assoc-ref gnu:%standard-phases 'configure)
3546 #:configure-flags
3547 (list "--disable-static"
3548 "--enable-vala"
3549 (string-append "--with-html-dir="
3550 (assoc-ref outputs "doc")
3551 "/share/gtk-doc/html"))
3552 args)))
3553 (add-after 'configure 'dont-vendor-self
3554 (lambda* (#:key vendor-dir #:allow-other-keys)
3555 ;; Don't keep the whole tarball in the vendor directory
3556 (delete-file-recursively
3557 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))))
3558 (replace 'build
3559 (assoc-ref gnu:%standard-phases 'build))
3560 (add-before 'check 'ignore-failing-tests
3561 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3562 (lambda _
3563 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3564 (("fn background_color_option_invalid_color_yields_error" all)
3565 (string-append "#[ignore] " all))
3566 (("fn empty_input_yields_error" all)
3567 (string-append "#[ignore] " all))
3568 (("fn empty_svg_yields_error" all)
3569 (string-append "#[ignore] " all))
3570 (("fn env_source_data_epoch_empty" all)
3571 (string-append "#[ignore] " all))
3572 (("fn env_source_data_epoch_no_digits" all)
3573 (string-append "#[ignore] " all))
3574 (("fn env_source_data_epoch_trailing_garbage" all)
3575 (string-append "#[ignore] " all))
3576 (("fn export_id_option_error" all)
3577 (string-append "#[ignore] " all))
3578 (("fn huge_zoom_factor_yields_error" all)
3579 (string-append "#[ignore] " all))
3580 (("fn multiple_input_files_not_allowed_for_png_output" all)
3581 (string-append "#[ignore] " all))
3582 (("fn stylesheet_option_error" all)
3583 (string-append "#[ignore] " all)))))
3584 (replace 'check
3585 (lambda* args
3586 ((assoc-ref gnu:%standard-phases 'check)
3587 #:test-target "check")))
3588 (replace 'install
3589 (assoc-ref gnu:%standard-phases 'install)))))
3590 (native-inputs
3591 (list docbook-xml-4.3
3592 `(,glib "bin")
3593 gobject-introspection
3594 pkg-config
3595 vala))
3596 (inputs
3597 (list freetype harfbuzz libxml2 pango))
3598 (propagated-inputs
3599 (list cairo gdk-pixbuf glib))
3600 (synopsis "SVG rendering library")
3601 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3602 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3603 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3604 diagrams.")
3605 (home-page "https://wiki.gnome.org/LibRsvg")
3606 (license license:lgpl2.1+)))
3607
3608 ;; This copy of librsvg uses the bundled rust libraries. It is useful for
3609 ;; packages which have too many dependencies to be rebuilt as frequently
3610 ;; as the rust inputs are updated.
3611 ;; TODO: Remove this package and use packaged rust libraries!
3612 (define-public librsvg-bootstrap
3613 (package
3614 (inherit librsvg)
3615 (name "librsvg")
3616 (version "2.50.7")
3617 (source (origin
3618 (method url-fetch)
3619 (uri (string-append "mirror://gnome/sources/librsvg/"
3620 (version-major+minor version) "/"
3621 "librsvg-" version ".tar.xz"))
3622 (sha256
3623 (base32
3624 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3625 (modules '((guix build utils)))
3626 (snippet
3627 '(begin
3628 (for-each delete-file (find-files "vendor" "\\.a$"))))))
3629 (arguments
3630 (substitute-keyword-arguments (package-arguments librsvg)
3631 ((#:vendor-dir _ "vendor") "vendor")
3632 ((#:cargo-inputs _) '())
3633 ((#:cargo-development-inputs _) '())))
3634 (properties '((hidden? . #t)))))
3635
3636 (define-public librsvg-2.40
3637 ;; This is the last version implemented in C.
3638 (package
3639 (inherit librsvg)
3640 (version "2.40.21")
3641 (source (origin
3642 (method url-fetch)
3643 (uri (string-append "mirror://gnome/sources/librsvg/"
3644 (version-major+minor version)
3645 "/librsvg-" version ".tar.xz"))
3646 (sha256
3647 (base32
3648 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3649 (build-system gnu-build-system)
3650 (arguments
3651 `(#:configure-flags (list "--disable-static")
3652 #:phases
3653 (modify-phases %standard-phases
3654 (add-before 'configure 'pre-configure
3655 (lambda* (#:key inputs #:allow-other-keys)
3656 (substitute* "gdk-pixbuf-loader/Makefile.in"
3657 ;; By default the gdk-pixbuf loader is installed under
3658 ;; gdk-pixbuf's prefix. Work around that.
3659 (("gdk_pixbuf_moduledir = .*$")
3660 (string-append "gdk_pixbuf_moduledir = "
3661 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3662 "loaders\n"))
3663 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3664 (("gdk_pixbuf_cache_file = .*$")
3665 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3666 #t))
3667 (add-before 'check 'remove-failing-tests
3668 (lambda _
3669 (with-directory-excursion "tests/fixtures/reftests"
3670 (for-each delete-file
3671 '(;; This test fails on i686:
3672 "svg1.1/masking-path-04-b.svg"
3673 ;; This test fails on armhf:
3674 "svg1.1/masking-mask-01-b.svg"
3675 ;; This test fails on aarch64:
3676 "bugs/777834-empty-text-children.svg"
3677
3678 ;; These two tests fail due to slightly different
3679 ;; text rendering (different kerning or similar),
3680 ;; nothing alarming.
3681 "bugs/340047.svg"
3682 "bugs/749415.svg"))))))))
3683 (native-inputs
3684 (list pkg-config
3685 `(,glib "bin") ; glib-mkenums, etc.
3686 gobject-introspection)) ; g-ir-compiler, etc.
3687 (inputs
3688 (list pango libcroco libxml2))
3689 (propagated-inputs
3690 ;; librsvg-2.0.pc refers to all of that.
3691 (list cairo gdk-pixbuf glib))
3692 (synopsis "Render SVG files using Cairo (ancient C version)")
3693 (properties '((hidden? . #t)))))
3694
3695 (define* (librsvg-for-system #:optional
3696 (system (or (%current-target-system)
3697 (%current-system))))
3698 ;; Since librsvg 2.50 depends on Rust, and Rust is only correctly supported
3699 ;; on x86_64 so far, use the ancient C version on other platforms (FIXME).
3700 (if (string-prefix? "x86_64-" system)
3701 librsvg
3702 librsvg-2.40))
3703
3704 (export librsvg-for-system)
3705
3706 (define-public libidl
3707 (package
3708 (name "libidl")
3709 (version "0.8.14")
3710 (source (origin
3711 (method url-fetch)
3712 (uri (string-append "mirror://gnome/sources/libIDL/"
3713 (version-major+minor version) "/"
3714 "libIDL-" version ".tar.bz2"))
3715 (sha256
3716 (base32
3717 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3718 (build-system gnu-build-system)
3719 (inputs (list glib))
3720 (native-inputs
3721 (list pkg-config flex bison))
3722 (home-page "http://freecode.com/projects/libidl")
3723 (synopsis "Create trees of CORBA Interface Definition Language files")
3724 (description "Libidl is a library for creating trees of CORBA Interface
3725 Definition Language (idl) files, which is a specification for defining
3726 portable interfaces. libidl was initially written for orbit (the orb from the
3727 GNOME project, and the primary means of libidl distribution). However, the
3728 functionality was designed to be as reusable and portable as possible.")
3729 (properties `((upstream-name . "libIDL")))
3730 (license license:lgpl2.0+)))
3731
3732
3733 (define-public orbit2
3734 (package
3735 (name "orbit2")
3736 (version "2.14.19")
3737 (source (origin
3738 (method url-fetch)
3739 (uri (let ((upstream-name "ORBit2"))
3740 (string-append "mirror://gnome/sources/" upstream-name "/"
3741 (version-major+minor version) "/"
3742 upstream-name "-" version ".tar.bz2")))
3743 (sha256
3744 (base32
3745 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3746 (build-system gnu-build-system)
3747 (arguments
3748 `(;; The "timeout-server" test hangs when run in parallel.
3749 #:parallel-tests? #f
3750 #:configure-flags
3751 '(;; We don't need static libraries, plus they don't build reproducibly
3752 ;; (non-deterministic ordering of .o files in the archive.)
3753 "--disable-static"
3754
3755 ;; The programmer kindly gives us a hook to turn off deprecation
3756 ;; warnings ...
3757 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3758 ;; ... which they then completly ignore !!
3759 #:phases
3760 (modify-phases %standard-phases
3761 (add-after 'unpack 'fix-parallel-build
3762 ;; Parallel build fails because of a failed dependency,
3763 ;; https://bugzilla.gnome.org/show_bug.cgi?id=732274
3764 (lambda _
3765 (substitute* "src/services/name/Makefile.am"
3766 (("orbit_name_server_2_DEPENDENCIES = \\$(DEPS) CosNaming.h")
3767 "orbit_name_server_2_DEPENDENCIES = \
3768 $(DEPS) CosNaming.h libname-server-2.a"))))
3769 (add-before 'configure 'ignore-deprecations
3770 (lambda _
3771 (substitute* "linc2/src/Makefile.in"
3772 (("-DG_DISABLE_DEPRECATED")
3773 "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))))))
3774 (inputs (list glib libidl))
3775 (native-inputs
3776 (list pkg-config))
3777 (home-page "https://projects.gnome.org/orbit2/")
3778 (synopsis "CORBA 2.4-compliant Object Request Broker")
3779 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3780 featuring mature C, C++ and Python bindings.")
3781 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3782 ;; a version. SOME of the code files have licence notices for GPLv2+.
3783 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3784 (license license:gpl2+)
3785 (properties `((upstream-name . "ORBit2")))))
3786
3787
3788 (define-public libbonobo
3789 (package
3790 (name "libbonobo")
3791 (version "2.32.1")
3792 (source (origin
3793 (method url-fetch)
3794 (uri (string-append "mirror://gnome/sources/" name "/"
3795 (version-major+minor version)
3796 "/" name "-" version ".tar.bz2"))
3797 (sha256
3798 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3799 (patches (search-patches
3800 "libbonobo-activation-test-race.patch"))))
3801 (build-system gnu-build-system)
3802 (arguments
3803 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3804 `(#:configure-flags
3805 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3806 ;; ... which they then completly ignore !!
3807 #:phases
3808 (modify-phases %standard-phases
3809 (add-before 'configure 'ignore-deprecations
3810 (lambda _
3811 (substitute* "activation-server/Makefile.in"
3812 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3813 #t)))
3814
3815 ;; There's apparently a race condition between the server stub
3816 ;; generation and linking of the example under 'samples/echo' that can
3817 ;; lead do undefined references when building in parallel, as reported
3818 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3819 ;; Thus, disable parallel builds.
3820 #:parallel-build? #f))
3821 (inputs (list popt libxml2))
3822 ;; The following are Required by the .pc file
3823 (propagated-inputs
3824 (list glib orbit2))
3825 (native-inputs
3826 (list intltool
3827 pkg-config
3828 `(,glib "bin") ; for glib-genmarshal, etc.
3829 flex
3830 bison))
3831 (home-page "https://developer.gnome.org/libbonobo/")
3832 (synopsis "Framework for creating reusable components for use in GNOME applications")
3833 (description "Bonobo is a framework for creating reusable components for
3834 use in GNOME applications, built on top of CORBA.")
3835 ;; Licence not explicitly stated. Source files contain no licence notices.
3836 ;; Tarball contains text of both GPLv2 and LGPLv2
3837 ;; GPLv2 covers both conditions
3838 (license license:gpl2+)))
3839
3840
3841 (define-public gconf
3842 (package
3843 (name "gconf")
3844 (version "3.2.6")
3845 (source (origin
3846 (method url-fetch)
3847 (uri
3848 (let ((upstream-name "GConf"))
3849 (string-append "mirror://gnome/sources/" upstream-name "/"
3850 (version-major+minor version) "/"
3851 upstream-name "-" version ".tar.xz")))
3852 (sha256
3853 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3854 (build-system gnu-build-system)
3855 (inputs (list dbus-glib libxml2))
3856 (propagated-inputs (list glib ; referred to in the .pc file
3857 orbit2))
3858 (native-inputs
3859 (list intltool
3860 `(,glib "bin") ; for glib-genmarshal, etc.
3861 pkg-config))
3862 (home-page "https://projects.gnome.org/gconf/")
3863 (synopsis "Store application preferences")
3864 (description "Gconf is a system for storing application preferences. It
3865 is intended for user preferences; not arbitrary data storage.")
3866 (license license:lgpl2.0+)
3867 (properties '((upstream-name . "GConf")))))
3868
3869
3870 (define-public gnome-mime-data
3871 (package
3872 (name "gnome-mime-data")
3873 (version "2.18.0")
3874 (source (origin
3875 (method url-fetch)
3876 (uri (string-append "mirror://gnome/sources/" name "/"
3877 (version-major+minor version) "/"
3878 name "-" version ".tar.bz2"))
3879 (sha256
3880 (base32
3881 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3882 (build-system gnu-build-system)
3883 (native-inputs
3884 (list perl intltool))
3885 (arguments
3886 '(#:phases (modify-phases %standard-phases
3887 (add-after 'configure 'use-our-intltool
3888 (lambda _
3889 ;; Do not use the bundled intltool commands, which lack
3890 ;; the "dotless @INC" fixes of our 'intltool' package.
3891 (substitute* (find-files "." "^Makefile$")
3892 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3893 (string-append "INTLTOOL_" tool " = intltool-"
3894 (string-downcase tool) "\n")))
3895 #t)))))
3896 (home-page "https://www.gnome.org")
3897 (synopsis "Base MIME and Application database for GNOME")
3898 (description "GNOME Mime Data is a module which contains the base MIME
3899 and Application database for GNOME. The data stored by this module is
3900 designed to be accessed through the MIME functions in GnomeVFS.")
3901 (license license:gpl2+)))
3902
3903
3904 (define-public gnome-vfs
3905 (package
3906 (name "gnome-vfs")
3907 (version "2.24.4")
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 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3916 (build-system gnu-build-system)
3917 (arguments
3918 `(#:phases
3919 (modify-phases %standard-phases
3920 (add-before 'configure 'ignore-deprecations
3921 (lambda _
3922 (substitute* '("libgnomevfs/Makefile.in"
3923 "daemon/Makefile.in")
3924 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3925 #t))
3926 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3927 (lambda _
3928 (substitute* "test/test-async-cancel.c"
3929 (("EXIT_FAILURE") "77"))
3930 #t)))))
3931 (inputs (list libxml2 dbus-glib gconf gnome-mime-data zlib))
3932 (native-inputs
3933 (list `(,glib "bin") ; for glib-mkenums, etc.
3934 intltool pkg-config))
3935 (home-page "https://developer.gnome.org/gnome-vfs/")
3936 (synopsis "Access files and folders in GNOME applications")
3937 (description
3938 "GnomeVFS is the core library used to access files and folders in GNOME
3939 applications. It provides a file system abstraction which allows applications
3940 to access local and remote files with a single consistent API.")
3941 (license license:lgpl2.0+)))
3942
3943
3944
3945 (define-public libgnome
3946 (package
3947 (name "libgnome")
3948 (version "2.32.1")
3949 (source (origin
3950 (method url-fetch)
3951 (uri (string-append "mirror://gnome/sources/" name "/"
3952 (version-major+minor version) "/"
3953 name "-" version ".tar.bz2"))
3954 (sha256
3955 (base32
3956 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3957 (patches (search-patches "libgnome-encoding.patch"))))
3958 (build-system gnu-build-system)
3959 (arguments
3960 `(#:phases
3961 (modify-phases %standard-phases
3962 (add-before 'configure 'enable-deprecated
3963 (lambda _
3964 (substitute* "libgnome/Makefile.in"
3965 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3966 #t)))))
3967 (inputs (list libxml2))
3968 (native-inputs
3969 (list `(,glib "bin") ; for glib-mkenums, etc.
3970 intltool pkg-config))
3971 ;; The following are listed as Required in the .pc file
3972 ;; (except for libcanberra -- which seems to be oversight on the part
3973 ;; of the upstream developers -- anything that links against libgnome,
3974 ;; must also link against libcanberra
3975 (propagated-inputs
3976 (list libcanberra libbonobo gconf gnome-vfs popt)) ;gnome-program.h includes popt.h
3977 (home-page "https://developer.gnome.org/libgnome/")
3978 (synopsis "Useful routines for building applications")
3979 (description "The libgnome library provides a number of useful routines
3980 for building modern applications, including session management, activation of
3981 files and URIs, and displaying help.")
3982 (license license:lgpl2.0+)))
3983
3984
3985 (define-public libart-lgpl
3986 (package
3987 (name "libart-lgpl")
3988 (version "2.3.21")
3989 (source (origin
3990 (method url-fetch)
3991 (uri (let ((upstream-name "libart_lgpl"))
3992 (string-append "mirror://gnome/sources/" upstream-name "/"
3993 (version-major+minor version) "/"
3994 upstream-name "-" version ".tar.bz2")))
3995 (sha256
3996 (base32
3997 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3998 (build-system gnu-build-system)
3999 (native-inputs
4000 (list pkg-config))
4001 (home-page "https://people.gnome.org/~mathieu/libart")
4002 (synopsis "2D drawing library")
4003 (description "Libart is a 2D drawing library intended as a
4004 high-quality vector-based 2D library with antialiasing and alpha composition.")
4005 (license license:lgpl2.0+)))
4006
4007
4008
4009 (define-public libgnomecanvas
4010 (package
4011 (name "libgnomecanvas")
4012 (version "2.30.3")
4013 (source (origin
4014 (method url-fetch)
4015 (uri (string-append "mirror://gnome/sources/" name "/"
4016 (version-major+minor version) "/"
4017 name "-" version ".tar.gz"))
4018 (sha256
4019 (base32
4020 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
4021 (build-system gnu-build-system)
4022 ;; Mentioned as Required in the .pc file
4023 (propagated-inputs (list libart-lgpl gtk+-2))
4024 (native-inputs
4025 (list intltool
4026 `(,glib "bin") ; for glib-genmarshal, etc.
4027 pkg-config))
4028 (home-page "https://developer.gnome.org/libgnomecanvas/")
4029 (synopsis "Flexible widget for creating interactive structured graphics")
4030 (description "The GnomeCanvas widget provides a flexible widget for
4031 creating interactive structured graphics.")
4032 (license license:lgpl2.0+)))
4033
4034 (define-public libgnomecanvasmm
4035 (package
4036 (name "libgnomecanvasmm")
4037 (version "2.26.0")
4038 (source (origin
4039 (method url-fetch)
4040 (uri (string-append "mirror://gnome/sources/" name "/"
4041 (version-major+minor version) "/"
4042 name "-" version ".tar.bz2"))
4043 (sha256
4044 (base32
4045 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
4046 (build-system gnu-build-system)
4047 (propagated-inputs (list libgnomecanvas))
4048 (native-inputs
4049 (list gtkmm-2 pkg-config))
4050 (home-page "https://gtkmm.org")
4051 (synopsis "C++ bindings to the GNOME Canvas library")
4052 (description "C++ bindings to the GNOME Canvas library.")
4053 (license license:lgpl2.0+)))
4054
4055 (define-public libgnomeui
4056 (package
4057 (name "libgnomeui")
4058 (version "2.24.5")
4059 (source (origin
4060 (method url-fetch)
4061 (uri (string-append "mirror://gnome/sources/" name "/"
4062 (version-major+minor version) "/"
4063 name "-" version ".tar.bz2"))
4064 (patches (search-patches "libgnomeui-utf8.patch"))
4065 (sha256
4066 (base32
4067 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
4068 (build-system gnu-build-system)
4069 ;; Mentioned as Required in the .pc file
4070 (propagated-inputs (list libbonoboui libgnome libgnomecanvas
4071 libgnome-keyring))
4072 (inputs (list libjpeg-turbo popt libbonobo libxml2 libglade))
4073 (native-inputs
4074 (list `(,glib "bin") ; for glib-mkenums, etc.
4075 intltool pkg-config))
4076 (home-page "https://developer.gnome.org/libgnomeui/")
4077 (synopsis "Additional widgets for applications")
4078 (description "The libgnomeui library provides additional widgets for
4079 applications. Many of the widgets from libgnomeui have already been
4080 ported to GTK+.")
4081 (license license:lgpl2.0+)))
4082
4083 (define-public libglade
4084 (package
4085 (name "libglade")
4086 (version "2.6.4")
4087 (source (origin
4088 (method url-fetch)
4089 (uri (string-append "mirror://gnome/sources/" name "/"
4090 (version-major+minor version) "/"
4091 name "-" version ".tar.bz2"))
4092 (sha256
4093 (base32
4094 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
4095 (build-system gnu-build-system)
4096 (inputs
4097 (list python)) ;; needed for the optional libglade-convert program
4098 (propagated-inputs
4099 (list gtk+-2 libxml2)) ; required by libglade-2.0.pc
4100 (native-inputs
4101 (list pkg-config))
4102 (home-page "https://developer.gnome.org/libglade")
4103 (synopsis "Load glade interfaces and access the glade built widgets")
4104 (description "Libglade is a library that provides interfaces for loading
4105 graphical interfaces described in glade files and for accessing the
4106 widgets built in the loading process.")
4107 (license license:gpl2+))) ; This is correct. GPL not LGPL
4108
4109 (define-public libbonoboui
4110 (package
4111 (name "libbonoboui")
4112 (version "2.24.5")
4113 (source (origin
4114 (method url-fetch)
4115 (uri (string-append "mirror://gnome/sources/" name "/"
4116 (version-major+minor version) "/"
4117 name "-" version ".tar.bz2"))
4118 (sha256
4119 (base32
4120 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4121 (build-system gnu-build-system)
4122 (arguments
4123 `(#:phases
4124 (modify-phases %standard-phases
4125 (add-before 'check 'start-xserver
4126 (lambda* (#:key inputs #:allow-other-keys)
4127 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4128 (disp ":1"))
4129
4130 (setenv "HOME" (getcwd))
4131 (setenv "DISPLAY" disp)
4132 ;; There must be a running X server and make check doesn't start one.
4133 ;; Therefore we must do it.
4134 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4135 ;; Mentioned as Required by the .pc file
4136 (propagated-inputs (list libxml2))
4137 (inputs
4138 (list popt pangox-compat libgnome libgnomecanvas libglade))
4139 (native-inputs
4140 (list `(,glib "bin") ; for glib-genmarshal, etc.
4141 intltool
4142 xorg-server-for-tests ; For running the tests
4143 pkg-config))
4144 (home-page "https://developer.gnome.org/libbonoboui/")
4145 (synopsis "Some user interface controls using Bonobo")
4146 (description "The Bonobo UI library provides a number of user interface
4147 controls using the Bonobo component framework.")
4148 (license license:lgpl2.0+)))
4149
4150 (define-public libwnck
4151 (package
4152 (name "libwnck")
4153 (version "3.32.0")
4154 (source (origin
4155 (method url-fetch)
4156 (uri (string-append "mirror://gnome/sources/" name "/"
4157 (version-major+minor version) "/"
4158 name "-" version ".tar.xz"))
4159 (sha256
4160 (base32
4161 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4162 (build-system meson-build-system)
4163 (native-inputs
4164 (list pkg-config
4165 `(,glib "bin") ; for glib-mkenums
4166 gobject-introspection ; for g-ir-scanner
4167 intltool))
4168 (propagated-inputs
4169 (list gtk+ libxres startup-notification))
4170 (home-page "https://developer.gnome.org/libwnck/")
4171 (synopsis "Window Navigator Construction Kit")
4172 (description
4173 "Libwnck is the Window Navigator Construction Kit, a library for use in
4174 writing pagers, tasklists, and more generally applications that are dealing
4175 with window management. It tries hard to respect the Extended Window Manager
4176 Hints specification (EWMH).")
4177 (license license:lgpl2.0+)))
4178
4179 ;; stable version for gtk2, required by xfwm4.
4180 (define-public libwnck-2
4181 (package (inherit libwnck)
4182 (name "libwnck")
4183 (version "2.30.7")
4184 (source (origin
4185 (method url-fetch)
4186 (uri (string-append "mirror://gnome/sources/" name "/"
4187 (version-major+minor version) "/"
4188 name "-" version ".tar.xz"))
4189 (sha256
4190 (base32
4191 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4192 (build-system gnu-build-system)
4193 (native-inputs
4194 (list pkg-config intltool))
4195 (propagated-inputs
4196 (list gtk+-2 libxres startup-notification))))
4197
4198 (define-public goffice
4199 (package
4200 (name "goffice")
4201 (version "0.10.52")
4202 (source
4203 (origin
4204 (method url-fetch)
4205 (uri (string-append "mirror://gnome/sources/goffice/"
4206 (version-major+minor version) "/"
4207 "goffice-" version ".tar.xz"))
4208 (sha256
4209 (base32 "0344k0ffndd79as3c4nfq3mia7mrds6aq2jg76drdw3h8gcyzfb0"))))
4210 (build-system gnu-build-system)
4211 (outputs '("out"
4212 "doc")) ; 4.0 MiB of gtk-doc
4213 (arguments
4214 '(#:configure-flags (list (string-append "--with-html-dir="
4215 (assoc-ref %outputs "doc")
4216 "/share/gtk-doc/html"))))
4217 (inputs
4218 (list gtk+ libgsf librsvg libxslt libxml2))
4219 (native-inputs
4220 (list intltool `(,glib "bin") pkg-config))
4221 (home-page "https://developer.gnome.org/goffice/")
4222 (synopsis "Document-centric objects and utilities")
4223 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4224 (license
4225 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4226 ;; Note: NOT LGPL
4227 (list license:gpl2 license:gpl3))))
4228
4229 (define-public goffice-0.8
4230 (package (inherit goffice)
4231 (version "0.8.17")
4232 (source (origin
4233 (method url-fetch)
4234 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4235 (version-major+minor version) "/"
4236 (package-name goffice) "-" version ".tar.xz"))
4237 (sha256
4238 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4239 (arguments
4240 `(#:phases
4241 (modify-phases %standard-phases
4242 (add-after 'unpack 'fix-pcre-check
4243 (lambda _
4244 ;; Only glib.h can be included directly. See
4245 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4246 (substitute* "configure"
4247 (("glib/gregex\\.h") "glib.h")) #t)))
4248
4249 ,@(package-arguments goffice)))
4250 (propagated-inputs
4251 ;; libgoffice-0.8.pc mentions libgsf-1
4252 (list libgsf))
4253 (inputs
4254 `(("gtk" ,gtk+-2)
4255 ,@(alist-delete "gtk" (package-inputs goffice))))))
4256
4257 (define-public gnumeric
4258 (package
4259 (name "gnumeric")
4260 (version "1.12.52")
4261 (source (origin
4262 (method url-fetch)
4263 (uri (string-append "mirror://gnome/sources/gnumeric/"
4264 (version-major+minor version) "/"
4265 "gnumeric-" version ".tar.xz"))
4266 (sha256
4267 (base32
4268 "0fw201j0sks95wgvns3vydgprhwf6z4v4xb2a0ldi892k8277kvk"))))
4269 (build-system glib-or-gtk-build-system)
4270 (arguments
4271 `(;; The gnumeric developers don't worry much about failing tests.
4272 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4273 #:tests? #f
4274 #:phases
4275 (modify-phases %standard-phases
4276 (add-before
4277 'configure 'pre-conf
4278 (lambda* (#:key outputs #:allow-other-keys)
4279 ;; Make install tries to write into the directory of goffice
4280 ;; I am informed that this only affects the possibility to embed a
4281 ;; spreadsheet inside an Abiword document. So presumably when we
4282 ;; package Abiword we'll have to refer it to this directory.
4283 (substitute* "configure"
4284 (("^GOFFICE_PLUGINS_DIR=.*")
4285 (string-append "GOFFICE_PLUGINS_DIR="
4286 (assoc-ref outputs "out")
4287 "/goffice/plugins"))))))))
4288 (inputs
4289 (list glib
4290 gtk+
4291 goffice
4292 libgsf
4293 librsvg
4294 libxml2
4295 libxslt
4296 python
4297 python-pygobject
4298 zlib))
4299 (native-inputs
4300 (list bison
4301 docbook-xml
4302 `(,glib "bin")
4303 intltool
4304 itstool
4305 pkg-config))
4306 (home-page "http://www.gnumeric.org")
4307 (synopsis "Spreadsheet application")
4308 (description
4309 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4310 interoperable with other spreadsheet applications. It has a vast array of
4311 features beyond typical spreadsheet functionality, such as support for linear
4312 and non-linear solvers, statistical analysis, and telecommunication
4313 engineering.")
4314 (license
4315 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4316 (list license:gpl2 license:gpl3))))
4317
4318 (define-public drawing
4319 (package
4320 (name "drawing")
4321 (version "0.8.3")
4322 (source
4323 (origin
4324 (method git-fetch)
4325 (uri (git-reference
4326 (url "https://github.com/maoschanz/drawing")
4327 (commit version)))
4328 (file-name (git-file-name name version))
4329 (sha256
4330 (base32 "0wz9p47riyy3h8b0sqsb6bx416hc6d1a1wyzlfmsxkrqrkwcjcm8"))))
4331 (build-system meson-build-system)
4332 (arguments
4333 `(#:glib-or-gtk? #t
4334 #:phases
4335 (modify-phases %standard-phases
4336 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
4337 (lambda* (#:key outputs #:allow-other-keys)
4338 (let ((prog (string-append (assoc-ref outputs "out")
4339 "/bin/drawing"))
4340 (pylib (string-append (assoc-ref outputs "out")
4341 "/lib/python"
4342 ,(version-major+minor
4343 (package-version python))
4344 "/site-packages")))
4345 (wrap-program prog
4346 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
4347 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
4348 (native-inputs
4349 `(("desktop-file-utils" ,desktop-file-utils)
4350 ("gettext" ,gettext-minimal)
4351 ("glib:bin" ,glib "bin")
4352 ("gobject-introspection" ,gobject-introspection)
4353 ("gtk+:bin" ,gtk+ "bin")
4354 ("pkg-config" ,pkg-config)))
4355 (inputs
4356 (list librsvg
4357 gsettings-desktop-schemas
4358 gtk+
4359 pango
4360 python-pycairo
4361 python-pygobject))
4362 (home-page "https://maoschanz.github.io/drawing/")
4363 (synopsis "Basic image editor for GNOME")
4364 (description
4365 "Drawing is a basic image editor aiming at the GNOME desktop.")
4366 (license license:gpl3+)))
4367
4368 (define-public seahorse
4369 (package
4370 (name "seahorse")
4371 (version "41.0")
4372 (source
4373 (origin
4374 (method url-fetch)
4375 (uri (string-append "mirror://gnome/sources/" name "/"
4376 (version-major version) "/" name "-"
4377 version ".tar.xz"))
4378 (sha256
4379 (base32 "1x99i7kdvd8hbxcs5rfrq7nw6r9bfzaw263zaigjjj04h6gc1vp6"))))
4380 (build-system meson-build-system)
4381 (arguments
4382 '(#:glib-or-gtk? #t
4383 #:phases
4384 (modify-phases %standard-phases
4385 (add-after 'unpack 'skip-gtk-update-icon-cache
4386 ;; Don't create 'icon-theme.cache'.
4387 (lambda _
4388 (substitute* "build-aux/meson_post_install.py"
4389 (("gtk-update-icon-cache") "true"))
4390 #t))
4391 (add-before 'check 'pre-check
4392 (lambda _
4393 ;; Tests require a writable HOME.
4394 (setenv "HOME" (getcwd)))))))
4395 (inputs
4396 `(("gtk+" ,gtk+)
4397 ("gcr" ,gcr)
4398 ("gnupg" ,gnupg)
4399 ("gpgme" ,gpgme)
4400 ("openldap" ,openldap)
4401 ("openssh" ,openssh)
4402 ("avahi" ,avahi)
4403 ("libhandy" ,libhandy)
4404 ("libpwquality" ,libpwquality)
4405 ("libsecret" ,libsecret)
4406 ("libsoup" ,libsoup-minimal-2)))
4407 (native-inputs
4408 `(("gettext" ,gettext-minimal)
4409 ("glib:bin" ,glib "bin")
4410 ("itstool" ,itstool)
4411 ("pkg-config" ,pkg-config)
4412 ("python" ,python)
4413 ("vala" ,vala)
4414 ("xmllint" ,libxml2)))
4415 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4416 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4417 (description
4418 "Seahorse is a GNOME application for managing encryption keys and
4419 passwords in the GNOME keyring.")
4420 (license license:gpl2+)))
4421
4422 (define-public vala
4423 (package
4424 (name "vala")
4425 (version "0.54.2")
4426 (source (origin
4427 (method url-fetch)
4428 (uri (string-append "mirror://gnome/sources/vala/"
4429 (version-major+minor version) "/"
4430 "vala-" version ".tar.xz"))
4431 (sha256
4432 (base32
4433 "048k5c6c6y7jyb961krnrb7m0kghr0yrkpnfx3j5ckbx652yfkc8"))))
4434 (build-system glib-or-gtk-build-system)
4435 (arguments
4436 '(#:configure-flags '("--enable-coverage")
4437 #:phases
4438 (modify-phases %standard-phases
4439 (add-after 'unpack 'patch-docbook-xml
4440 (lambda* (#:key inputs #:allow-other-keys)
4441 (with-directory-excursion "doc/manual"
4442 (substitute* '("manual.xml" "version.xml.in")
4443 (("http://www.oasis-open.org/docbook/xml/4.4/")
4444 (string-append (assoc-ref inputs "docbook-xml")
4445 "/xml/dtd/docbook/"))))))
4446 (add-before 'check 'pre-check
4447 (lambda _
4448 (setenv "CC" "gcc")
4449 (substitute* "valadoc/tests/libvaladoc\
4450 /tests-extra-environment.sh"
4451 (("export PKG_CONFIG_PATH=" m)
4452 (string-append m "$PKG_CONFIG_PATH:"))))))))
4453 (native-inputs
4454 `(("bison" ,bison)
4455 ("dbus" ,dbus) ; for dbus tests
4456 ("docbook-xml" ,docbook-xml-4.4)
4457 ("docbook-xsl" ,docbook-xsl)
4458 ("flex" ,flex)
4459 ("gobject-introspection" ,gobject-introspection) ; for gir tests
4460 ("help2man" ,help2man)
4461 ("perl" ,perl)
4462 ("pkg-config" ,pkg-config)
4463 ("xsltproc" ,libxslt)))
4464 (propagated-inputs
4465 `(("glib" ,glib) ; required by libvala-0.40.pc
4466 ("libgvc" ,graphviz)))
4467 (home-page "https://wiki.gnome.org/Projects/Vala/")
4468 (synopsis "Compiler using the GObject type system")
4469 (description "Vala is a programming language using modern high level
4470 abstractions without imposing additional runtime requirements and without using
4471 a different ABI compared to applications and libraries written in C. Vala uses
4472 the GObject type system and has additional code generation routines that make
4473 targeting the GNOME stack simple.")
4474 (license license:lgpl2.1+)))
4475
4476 (define-public vala-next
4477 (package
4478 (inherit vala)
4479 (version "0.56.2")
4480 (source (origin
4481 (method url-fetch)
4482 (uri (string-append "mirror://gnome/sources/vala/"
4483 (version-major+minor version) "/"
4484 "vala-" version ".tar.xz"))
4485 (sha256
4486 (base32
4487 "0k0jj3xwjq222x0hbqqy5bykhgk1f1wsb85bqcdgsnbqn6dn3jb6"))))
4488 (arguments
4489 (list
4490 #:configure-flags #~(list "CC=gcc" "--enable-coverage")
4491 #:phases
4492 #~(modify-phases %standard-phases
4493 (add-after 'unpack 'use-gcc-by-default
4494 (lambda _
4495 (substitute* "codegen/valaccodecompiler.c"
4496 (("cc_command = \"cc\"")
4497 "cc_command = \"gcc\""))))
4498 (add-after 'unpack 'patch-docbook-xml
4499 (lambda* (#:key inputs #:allow-other-keys)
4500 (with-directory-excursion "doc/manual"
4501 (substitute* '("manual.xml" "version.xml.in")
4502 (("http://www.oasis-open.org/docbook/xml/4.4/")
4503 (search-input-directory inputs "xml/dtd/docbook"))))))
4504 (add-before 'check 'pre-check
4505 (lambda _
4506 (substitute* "valadoc/tests/libvaladoc/tests-extra-environment.sh"
4507 (("export PKG_CONFIG_PATH=" m)
4508 (string-append m "$PKG_CONFIG_PATH:")))))
4509 ;; Wrapping the binaries breaks vala's behavior adaptations based on
4510 ;; the file name of the program executed (vala: compile and execute,
4511 ;; valac: compile into a binary).
4512 (delete 'glib-or-gtk-wrap))))))
4513
4514 ;;; An older variant kept to build libsoup-minimal-2.
4515 (define-public vala-0.52
4516 (package/inherit vala
4517 (version "0.52.0")
4518 (source (origin
4519 (method url-fetch)
4520 (uri (string-append "mirror://gnome/sources/vala/"
4521 (version-major+minor version) "/"
4522 "vala-" version ".tar.xz"))
4523 (sha256
4524 (base32
4525 "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))))
4526
4527 (define-public vte
4528 (package
4529 (name "vte")
4530 (version "0.68.0")
4531 (source (origin
4532 (method url-fetch)
4533 (uri (string-append "mirror://gnome/sources/vte/"
4534 (version-major+minor version) "/"
4535 "vte-" version ".tar.xz"))
4536 (sha256
4537 (base32
4538 "0j8pvn225ybzx9p33ill838bzp8kkdn28383h0vs65m2kiwd9rqk"))))
4539 (build-system meson-build-system)
4540 (arguments
4541 (list #:configure-flags #~(list "-Dvapi=true"
4542 "-D_systemd=false")))
4543 (native-inputs
4544 (list pkg-config
4545 gettext-minimal
4546 vala
4547 gobject-introspection
4548 `(,glib "bin") ; for glib-genmarshal, etc.
4549 gperf
4550 python
4551 libxml2))
4552 (propagated-inputs
4553 (list gtk+ ; required by vte-2.91.pc
4554 gnutls ; ditto
4555 pcre2)) ; ditto
4556 (home-page "https://www.gnome.org/")
4557 (synopsis "Virtual Terminal Emulator")
4558 (description
4559 "VTE is a library (libvte) implementing a terminal emulator widget for
4560 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4561 gnome-terminal, but can also be used to embed a console/terminal in games,
4562 editors, IDEs, etc.")
4563 (license license:lgpl2.1+)))
4564
4565 (define-public vte-ng
4566 (package
4567 (inherit vte)
4568 (name "vte-ng")
4569 (version "0.58.2.a")
4570 (home-page "https://github.com/thestinger/vte-ng")
4571 (source (origin
4572 (method git-fetch)
4573 (uri (git-reference (url home-page) (commit version)))
4574 (file-name (git-file-name name version))
4575 (sha256
4576 (base32
4577 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4578 (build-system meson-build-system)
4579 (arguments
4580 (list #:configure-flags #~(list "-Ddocs=false")))
4581 (synopsis "Enhanced VTE terminal widget")
4582 (description
4583 "VTE is a library (libvte) implementing a terminal emulator widget for
4584 GTK+, this fork provides additional functions exposed for keyboard text
4585 selection and URL hints.")))
4586
4587 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4588 (define-public vte/gtk+-2
4589 (package (inherit vte)
4590 (name "vte")
4591 (version "0.28.2")
4592 (source (origin
4593 (method url-fetch)
4594 (uri (string-append "mirror://gnome/sources/" name "/"
4595 (version-major+minor version) "/"
4596 name "-" version ".tar.xz"))
4597 (sha256
4598 (base32
4599 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4600 (patches (search-patches
4601 "vte-CVE-2012-2738-pt1.patch"
4602 "vte-CVE-2012-2738-pt2.patch"))))
4603 (build-system gnu-build-system)
4604 (arguments
4605 '(#:configure-flags '("--disable-python")))
4606 (native-inputs
4607 (list pkg-config intltool
4608 `(,glib "bin"))) ; for glib-genmarshal, etc.
4609 (propagated-inputs
4610 (list gtk+-2 ; required by libvte.pc
4611 ncurses)))) ; required by libvte.la
4612
4613 (define-public vinagre
4614 (package
4615 (name "vinagre")
4616 (version "3.22.0")
4617 (source (origin
4618 (method url-fetch)
4619 (uri (string-append "mirror://gnome/sources/" name "/"
4620 (version-major+minor version) "/"
4621 name "-" version ".tar.xz"))
4622 (patches (search-patches "vinagre-newer-freerdp.patch"
4623 "vinagre-newer-rdp-parameters.patch"))
4624 (sha256
4625 (base32
4626 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4627 (build-system glib-or-gtk-build-system)
4628 (arguments
4629 ;; Disable -Werror and such, to avoid build failures on compilation
4630 ;; warnings.
4631 '(#:configure-flags '("--enable-compile-warnings=minimum"
4632 "CFLAGS=-O2 -g -fcommon")
4633 #:phases
4634 (modify-phases %standard-phases
4635 (add-before 'install 'skip-gtk-update-icon-cache
4636 (lambda _
4637 ;; Don't create 'icon-theme.cache'
4638 (substitute* (find-files "." "^Makefile$")
4639 (("gtk-update-icon-cache") (which "true")))
4640 #t))
4641 (add-after 'unpack 'patch-configure
4642 (lambda _
4643 (substitute* "configure"
4644 (("freerdp") "freerdp2"))
4645 #t)))))
4646 (native-inputs
4647 `(("pkg-config" ,pkg-config)
4648 ("intltool" ,intltool)
4649 ("itstool" ,itstool)
4650 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4651 (inputs
4652 (list libxml2
4653 gtk-vnc
4654 gnome-keyring
4655 libsecret
4656 freerdp
4657 spice
4658 spice-gtk
4659 telepathy-glib
4660 vte))
4661 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4662 (synopsis "Remote desktop viewer for GNOME")
4663 (description "Vinagre is a remote display client supporting the VNC, SPICE
4664 and RDP protocols.")
4665 (license license:gpl3+)))
4666
4667 (define-public dconf
4668 (package
4669 (name "dconf")
4670 (version "0.40.0")
4671 (source (origin
4672 (method url-fetch)
4673 (uri (string-append
4674 "mirror://gnome/sources/" name "/"
4675 (version-major+minor version) "/"
4676 name "-" version ".tar.xz"))
4677 (sha256
4678 (base32
4679 "0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg"))))
4680 (build-system meson-build-system)
4681 (propagated-inputs
4682 ;; In Requires of dconf.pc.
4683 (list glib))
4684 (inputs
4685 (list gtk+ dbus))
4686 (native-inputs
4687 `(("bash-completion" ,bash-completion)
4688 ("libxslt" ,libxslt) ;for xsltproc
4689 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4690 ("docbook-xml" ,docbook-xml-4.2)
4691 ("docbook-xsl" ,docbook-xsl)
4692 ("glib:bin" ,glib "bin")
4693 ("gtk-doc" ,gtk-doc/stable)
4694 ("pkg-config" ,pkg-config)
4695 ("python" ,python)
4696 ("vala" ,vala)))
4697 (arguments
4698 `(#:glib-or-gtk? #t
4699 #:configure-flags '("-Dgtk_doc=true")
4700 #:phases (modify-phases %standard-phases
4701 (add-after 'unpack 'increase-test-timeout
4702 (lambda _
4703 ;; On big-memory systems, the engine test may take
4704 ;; much longer than the default of 30 seconds.
4705 (substitute* "tests/meson.build"
4706 (("test\\(unit_test\\[0\\], exe" all)
4707 (string-append all ", timeout: 300"))))))))
4708 (home-page "https://developer.gnome.org/dconf/")
4709 (synopsis "Low-level GNOME configuration system")
4710 (description "Dconf is a low-level configuration system. Its main purpose
4711 is to provide a backend to GSettings on platforms that don't already have
4712 configuration storage systems.")
4713 (license license:lgpl2.1+)))
4714
4715 (define-public json-glib-minimal
4716 (package
4717 (name "json-glib-minimal")
4718 (version "1.6.2")
4719 (source (origin
4720 (method url-fetch)
4721 (uri (string-append "mirror://gnome/sources/json-glib/"
4722 (version-major+minor version)
4723 "/json-glib-" version ".tar.xz"))
4724 (sha256
4725 (base32
4726 "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3"))))
4727 (build-system meson-build-system)
4728 (arguments
4729 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
4730 (native-inputs
4731 `(("gettext" ,gettext-minimal)
4732 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4733 ("pkg-config" ,pkg-config)))
4734 (inputs
4735 (list bash-minimal))
4736 (propagated-inputs
4737 (list glib)) ;according to json-glib-1.0.pc
4738 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4739 (synopsis "Glib and GObject implementation of JSON")
4740 (description "JSON-GLib is a library providing serialization and
4741 described by RFC 4627. It implements a full JSON parser and generator using
4742 GLib and GObject, and integrates JSON with GLib data types.")
4743 (license license:lgpl2.1+)))
4744
4745 (define-public json-glib
4746 (package/inherit json-glib-minimal
4747 (name "json-glib")
4748 (outputs (cons "doc" (package-outputs json-glib-minimal)))
4749 (arguments
4750 (substitute-keyword-arguments (package-arguments json-glib-minimal)
4751 ((#:configure-flags _)
4752 `(list "-Ddocs=true"
4753 "-Dman=true"
4754 ,@(if (%current-target-system)
4755 ;; If enabled, gtkdoc-scangobj will try to execute a
4756 ;; cross-compiled binary.
4757 '("-Dgtk_doc=disabled"
4758 ;; Trying to build introspection data when cross-compiling
4759 ;; causes errors during linking.
4760 "-Dintrospection=disabled")
4761 '())))
4762 ((#:phases phases '%standard-phases)
4763 `(modify-phases ,phases
4764 (add-after 'unpack 'patch-docbook
4765 (lambda* (#:key native-inputs inputs #:allow-other-keys)
4766 (with-directory-excursion "doc"
4767 (substitute* (find-files "." "\\.xml$")
4768 (("http://www.oasis-open.org/docbook/xml/4\\.3/")
4769 (string-append (assoc-ref (or native-inputs inputs)
4770 "docbook-xml")
4771 "/xml/dtd/docbook/")))
4772 (substitute* "meson.build"
4773 (("http://docbook.sourceforge.net/release/xsl/current/")
4774 (string-append (assoc-ref (or native-inputs inputs)
4775 "docbook-xsl")
4776 "/xml/xsl/docbook-xsl-1.79.2/"))))))
4777 ;; When cross-compiling, there are no docs to move.
4778 ,(if (%current-target-system)
4779 '(add-after 'install 'stub-docs
4780 (lambda* (#:key outputs #:allow-other-keys)
4781 ;; The daemon doesn't like empty output paths.
4782 (mkdir (assoc-ref outputs "doc"))))
4783 '(add-after 'install 'move-docs
4784 (lambda* (#:key outputs #:allow-other-keys)
4785 (let* ((out (assoc-ref outputs "out"))
4786 (doc (assoc-ref outputs "doc")))
4787 (mkdir-p (string-append doc "/share"))
4788 (rename-file
4789 (string-append out "/share/gtk-doc")
4790 (string-append doc "/share/gtk-doc"))))))))))
4791 (native-inputs
4792 (append
4793 `(("docbook-xml" ,docbook-xml-4.3)
4794 ("docbook-xsl" ,docbook-xsl)
4795 ("gobject-introspection" ,gobject-introspection)
4796 ("gtk-doc" ,gtk-doc)
4797 ("xsltproc" ,libxslt))
4798 (package-native-inputs json-glib-minimal)))))
4799
4800 (define-public libxklavier
4801 (package
4802 (name "libxklavier")
4803 (version "5.4")
4804 (source (origin
4805 ;; Note: There's no tarball at ftp.gnome.org for this version.
4806 (method git-fetch)
4807 (uri (git-reference
4808 (url "https://anongit.freedesktop.org/git/libxklavier")
4809 (commit (string-append "libxklavier-" version))))
4810 (sha256
4811 (base32
4812 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4813 (file-name (git-file-name name version))))
4814 (build-system gnu-build-system)
4815 (arguments
4816 '(#:configure-flags
4817 (list (string-append "--with-xkb-base="
4818 (assoc-ref %build-inputs "xkeyboard-config")
4819 "/share/X11/xkb")
4820 "--disable-xmodmap-support")))
4821 (native-inputs
4822 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4823 ("gobject-introspection" ,gobject-introspection)
4824 ("pkg-config" ,pkg-config)
4825 ("gtk-doc" ,gtk-doc/stable)
4826 ("intltool" ,intltool)
4827 ("which" ,which)
4828 ("autoconf" ,autoconf)
4829 ("automake" ,automake)
4830 ("libtool" ,libtool)))
4831 (propagated-inputs
4832 ;; Required by libxklavier.pc.
4833 (list glib libxml2))
4834 (inputs
4835 (list iso-codes libxi libxkbfile xkbcomp xkeyboard-config))
4836 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4837 (synopsis "High-level API for X Keyboard Extension")
4838 (description
4839 "LibXklavier is a library providing high-level API for X Keyboard
4840 Extension known as XKB. This library is intended to support XFree86 and other
4841 commercial X servers. It is useful for creating XKB-related software (layout
4842 indicators etc).")
4843 (license license:lgpl2.0+)))
4844
4845 (define-public glib-networking
4846 (package
4847 (name "glib-networking")
4848 (version "2.70.0")
4849 (source (origin
4850 (method url-fetch)
4851 (uri (string-append "mirror://gnome/sources/glib-networking/"
4852 (version-major+minor version) "/"
4853 "glib-networking-" version ".tar.xz"))
4854 (sha256
4855 (base32
4856 "0dbg1na239mbavn4hknkax5sns9q2dbdnqw9wcpmhv58mzkhid36"))
4857 (patches
4858 (search-patches "glib-networking-gnutls-binding.patch"))))
4859 (build-system meson-build-system)
4860 (arguments
4861 (if (target-64bit?)
4862 '()
4863 (list #:phases
4864 #~(modify-phases %standard-phases
4865 (add-after 'unpack 'work-around-32-bit-time-t
4866 (lambda _
4867 (invoke "patch" "--force" "-p1" "-i"
4868 #$(local-file
4869 (search-patch
4870 "glib-networking-32-bit-time.patch")))))))))
4871 (native-inputs
4872 `(("pkg-config" ,pkg-config)
4873 ("gettext" ,gettext-minimal)))
4874 (inputs
4875 (list glib gnutls gsettings-desktop-schemas libproxy))
4876 (home-page "https://wiki.gnome.org/Projects/GLib")
4877 (synopsis "Network extensions for GLib")
4878 (description
4879 "Glib-networking contains the implementations of certain GLib networking
4880 features that cannot be implemented directly in GLib itself because of their
4881 dependencies. Currently it contains GnuTLS and OpenSSL-based implementations of
4882 GTlsBackend, a libproxy-based implementation of GProxyResolver,
4883 GLibproxyResolver, and a GNOME GProxyResolver that uses the proxy information
4884 from the GSettings schemas in gsettings-desktop-schemas.")
4885 (license license:lgpl2.1+)))
4886
4887 (define-public rest
4888 (package
4889 (name "rest")
4890 (version "0.8.1")
4891 (source (origin
4892 (method url-fetch)
4893 (uri (string-append "mirror://gnome/sources/rest/"
4894 (version-major+minor version) "/"
4895 name "-" version ".tar.xz"))
4896 (sha256
4897 (base32
4898 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4899 (build-system gnu-build-system)
4900 (arguments
4901 '(#:tests? #f ; tests require internet connection
4902 #:configure-flags
4903 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4904 (native-inputs
4905 `(("glib-mkenums" ,glib "bin")
4906 ("gobject-introspection" ,gobject-introspection)
4907 ("pkg-config" ,pkg-config)))
4908 (propagated-inputs
4909 ;; rest-0.7.pc refers to all these.
4910 `(("glib" ,glib)
4911 ("libsoup" ,libsoup-minimal-2)
4912 ("libxml2" ,libxml2)))
4913 (home-page "https://www.gtk.org/")
4914 (synopsis "RESTful web api query library")
4915 (description
4916 "This library was designed to make it easier to access web services that
4917 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4918 libxml to ease remote use of the RESTful API.")
4919 (license license:lgpl2.1+)))
4920
4921 (define-public rest-next
4922 (package
4923 (inherit rest)
4924 (name "rest")
4925 (version "0.9.1")
4926 (source (origin
4927 (method url-fetch)
4928 (uri (string-append "mirror://gnome/sources/rest/"
4929 (version-major+minor version) "/"
4930 name "-" version ".tar.xz"))
4931 (sha256
4932 (base32
4933 "1qy2291d2vprdbbxmf0sa98izk09nl3znzzv7lckwf6f1v0sarlj"))))
4934 (build-system meson-build-system)
4935 (arguments (substitute-keyword-arguments (package-arguments rest)
4936 ((#:tests? _ #f) #t)
4937 ((#:configure-flags _)
4938 #~(list))
4939 ((#:phases phases '%standard-phases)
4940 #~(modify-phases #$phases
4941 (add-after 'unpack 'disable-problematic-tests
4942 ;; These tests require networking.
4943 (lambda _
4944 (substitute* "tests/meson.build"
4945 ((".*'flickr',.*") "")
4946 ((".*'lastfm',.*") ""))))
4947 (add-before 'check 'prepare-for-tests
4948 (lambda _
4949 (setenv "HOME" "/tmp")))))))
4950 (native-inputs
4951 (modify-inputs (package-native-inputs rest)
4952 (append gettext-minimal
4953 gi-docgen
4954 gsettings-desktop-schemas)))
4955 (inputs (list gtksourceview json-glib libadwaita))
4956 (propagated-inputs
4957 (modify-inputs (package-propagated-inputs rest)
4958 (replace "libsoup" libsoup)
4959 (append json-glib)))))
4960
4961 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4962 (define-public libsoup-minimal
4963 (package
4964 (name "libsoup-minimal")
4965 (version "3.0.4")
4966 (source (origin
4967 (method url-fetch)
4968 (uri (string-append "mirror://gnome/sources/libsoup/"
4969 (version-major+minor version) "/"
4970 "libsoup-" version ".tar.xz"))
4971 (sha256
4972 (base32
4973 "0ysnvvfd2f6w2z6g31spqqb8wgyamixc7mryzbbpyw0z15g8plsv"))))
4974 (build-system meson-build-system)
4975 (arguments
4976 `(#:configure-flags '("-Dgtk_doc=false")
4977 #:phases
4978 (modify-phases %standard-phases
4979 (add-after 'unpack 'adjust-tests
4980 (lambda _
4981 ;; This test fails due to missing /etc/nsswitch.conf
4982 ;; in the build environment.
4983 (substitute* "tests/socket-test.c"
4984 ((".*/sockets/unconnected.*") ""))
4985
4986 ;; These fail because "subdomain.localhost" does not resolve in
4987 ;; the build environment. Moreover, the hsts-test suite fails on
4988 ;; i686-linux because of errors from `session_get_uri' like
4989 ;; "Unexpected status 200 OK (expected 301 Moved Permanently)"
4990 ;; (see: https://gitlab.gnome.org/GNOME/libsoup/-/issues/239).
4991 (substitute* "tests/meson.build"
4992 ((".*'name': 'hsts'.*") ""))
4993 (substitute* "tests/hsts-db-test.c"
4994 ((".*/hsts-db/subdomains.*") "")))))))
4995 (native-inputs
4996 (list `(,glib "bin") ;for glib-mkenums
4997 gobject-introspection
4998 intltool
4999 pkg-config
5000 python-wrapper
5001 vala
5002 curl
5003 gnutls ;for 'certtool'
5004 httpd))
5005 (propagated-inputs
5006 ;; libsoup-3.0.pc refers to all of these (except where otherwise noted)
5007 (list brotli
5008 glib
5009 glib-networking ; for GIO runtime modules
5010 libpsl
5011 nghttp2 ;for pkg-config
5012 `(,nghttp2 "lib")
5013 libxml2
5014 sqlite
5015 zlib))
5016 (inputs
5017 (list mit-krb5 samba/fixed)) ; For ntlm_auth support
5018 (home-page "https://wiki.gnome.org/Projects/libsoup")
5019 (synopsis "GLib-based HTTP Library")
5020 (description
5021 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
5022 and the GLib main loop, to integrate well with GNOME applications.")
5023 (license license:lgpl2.0+)))
5024
5025 ;;; An older variant kept to build the 'rest' package.
5026 (define-public libsoup-minimal-2
5027 (package/inherit libsoup-minimal
5028 (version "2.72.0")
5029 (source (origin
5030 (method url-fetch)
5031 (uri (string-append "mirror://gnome/sources/libsoup/"
5032 (version-major+minor version) "/"
5033 "libsoup-" version ".tar.xz"))
5034 (sha256
5035 (base32
5036 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
5037 (arguments
5038 (substitute-keyword-arguments (package-arguments libsoup-minimal)
5039 ((#:phases phases)
5040 `(modify-phases ,phases
5041 (add-after 'unpack 'disable-failing-tests
5042 (lambda _
5043 ;; Disable the SSL test, failing since 2.68 and resolved in
5044 ;; libsoup 3.
5045 (substitute* "tests/meson.build"
5046 (("[ \t]*\\['ssl', true, \\[\\]\\],") ""))))))))
5047 (native-inputs
5048 (modify-inputs (package-native-inputs libsoup-minimal)
5049 (replace "vala" vala-0.52)))))
5050
5051 (define-public libsoup
5052 (package/inherit libsoup-minimal
5053 (name "libsoup")
5054 (outputs (cons "doc" (package-outputs libsoup-minimal)))
5055 (arguments
5056 (substitute-keyword-arguments (package-arguments libsoup-minimal)
5057 ((#:configure-flags configure-flags)
5058 `(cons "-Dgtk_doc=true"
5059 (delete "-Dgtk_doc=false" ,configure-flags)))
5060 ((#:phases phases)
5061 `(modify-phases ,phases
5062 (add-after 'unpack 'patch-docbook-xml
5063 (lambda* (#:key inputs #:allow-other-keys)
5064 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
5065 "/xml/dtd/docbook")))
5066 (substitute* (find-files "docs/reference")
5067 (("http://.*/docbookx\\.dtd")
5068 (string-append xmldoc "/docbookx.dtd"))))))
5069 (add-after 'install 'move-doc
5070 (lambda* (#:key outputs #:allow-other-keys)
5071 (let ((out (assoc-ref outputs "out"))
5072 (doc (assoc-ref outputs "doc")))
5073 (mkdir-p (string-append doc "/share"))
5074 (copy-recursively (string-append out "/share/gtk-doc")
5075 (string-append doc "/share/gtk-doc"))
5076 (delete-file-recursively
5077 (string-append out "/share/gtk-doc")))))))))
5078 (native-inputs (modify-inputs (package-native-inputs libsoup-minimal)
5079 (prepend docbook-xml-4.1.2 gtk-doc)))))
5080
5081 (define-public libsecret
5082 (package
5083 (name "libsecret")
5084 (version "0.20.4")
5085 (source (origin
5086 (method url-fetch)
5087 (uri (string-append
5088 "mirror://gnome/sources/libsecret/"
5089 (version-major+minor version) "/"
5090 "libsecret-" version ".tar.xz"))
5091 (sha256
5092 (base32
5093 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
5094 (build-system gnu-build-system)
5095 (outputs '("out" "doc"))
5096 (arguments
5097 `(#:tests? #f ; FIXME: Testing hangs.
5098 #:configure-flags
5099 (list (string-append "--with-html-dir="
5100 (assoc-ref %outputs "doc")
5101 "/share/gtk-doc/html"))))
5102 (native-inputs
5103 `(("gettext" ,gettext-minimal)
5104 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
5105 ("gobject-introspection" ,gobject-introspection)
5106 ("pkg-config" ,pkg-config)
5107 ("vala" ,vala)
5108 ("xsltproc" ,libxslt)))
5109 (propagated-inputs
5110 (list glib)) ; required by libsecret-1.pc
5111 (inputs
5112 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
5113 ;; doesn't seem to affect the build result.
5114 (list docbook-xsl libgcrypt libxml2)) ; for XML_CATALOG_FILES
5115 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
5116 (synopsis "GObject bindings for \"Secret Service\" API")
5117 (description
5118 "Libsecret is a GObject based library for storing and retrieving passwords
5119 and other secrets. It communicates with the \"Secret Service\" using DBus.")
5120 (license license:lgpl2.1+)))
5121
5122 (define-public five-or-more
5123 (package
5124 (name "five-or-more")
5125 (version "3.32.3")
5126 (source
5127 (origin
5128 (method url-fetch)
5129 (uri (string-append "mirror://gnome/sources/five-or-more/"
5130 (version-major+minor version) "/"
5131 "five-or-more-" version ".tar.xz"))
5132 (sha256
5133 (base32 "1x4ys18rn37hsavivh532py2avj9686aycnn8ys29cyyxwpdf41d"))))
5134 (build-system meson-build-system)
5135 (arguments
5136 '(#:glib-or-gtk? #t
5137 #:phases
5138 (modify-phases %standard-phases
5139 (add-after 'unpack 'skip-gtk-update-icon-cache
5140 (lambda _
5141 (substitute* "meson_post_install.py"
5142 (("gtk-update-icon-cache") (which "true"))))))))
5143 (native-inputs
5144 (list appstream-glib
5145 desktop-file-utils
5146 `(,glib "bin") ; for glib-compile-resources
5147 intltool
5148 itstool
5149 pkg-config
5150 vala))
5151 (inputs
5152 (list gtk+ libgnome-games-support librsvg libxml2))
5153 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
5154 (synopsis "Logic puzzle game")
5155 (description "Five or More is a game where you try to align
5156 five or more objects of the same color and shape causing them to disappear.
5157 On every turn more objects will appear, until the board is full.
5158 Try to last as long as possible.")
5159 (license license:gpl2+)))
5160
5161 (define-public gi-docgen
5162 (package
5163 (name "gi-docgen")
5164 (version "2022.1")
5165 (source (origin
5166 (method url-fetch)
5167 (uri (pypi-uri "gi-docgen" version))
5168 (sha256
5169 (base32
5170 "1v2wspm2ld27lq1n5v5pzrmkhchfa7p7ahp8rmjm4zcdyagqf7gr"))))
5171 (build-system python-build-system)
5172 (propagated-inputs (list python-jinja2
5173 python-markdown
5174 python-markupsafe
5175 python-pygments
5176 python-toml
5177 python-typogrify))
5178 (home-page "https://gitlab.gnome.org/GNOME/gi-docgen")
5179 (synopsis "Documentation tool for GObject-based libraries")
5180 (description "GI-DocGen is a document generator for GObject-based
5181 libraries. GObject is the base type system of the GNOME project. GI-Docgen
5182 reuses the introspection data generated by GObject-based libraries to generate
5183 the API reference of these libraries, as well as other ancillary
5184 documentation.")
5185 (license license:gpl3+)))
5186
5187 (define-public gnome-mines
5188 (package
5189 (name "gnome-mines")
5190 (version "40.1")
5191 (source
5192 (origin
5193 (method url-fetch)
5194 (uri (string-append "mirror://gnome/sources/" name "/"
5195 (version-major version) "/"
5196 name "-" version ".tar.xz"))
5197 (sha256
5198 (base32 "0whjwdxhyw5bvibd9qvpm2yc5g7yhy8h3rn027kv5cqwyyryj0im"))))
5199 (build-system meson-build-system)
5200 (arguments
5201 `(#:glib-or-gtk? #t
5202 #:phases
5203 (modify-phases %standard-phases
5204 (add-after 'unpack 'skip-gtk-update-icon-cache
5205 (lambda _
5206 (substitute* "build-aux/meson_post_install.py"
5207 (("gtk-update-icon-cache") (which "true"))))))))
5208 (native-inputs
5209 (list appstream-glib
5210 desktop-file-utils
5211 gettext-minimal
5212 `(,glib "bin") ; for glib-compile-resources
5213 itstool
5214 pkg-config
5215 python-wrapper ; for meson_post_install.py
5216 vala))
5217 (inputs
5218 (list gtk+
5219 libgnome-games-support
5220 librsvg
5221 yelp))
5222 (home-page "https://wiki.gnome.org/Apps/Mines")
5223 (synopsis "Minesweeper game")
5224 (description
5225 "Mines (previously gnomine) is a puzzle game where you locate mines
5226 floating in an ocean using only your brain and a little bit of luck.")
5227 (license license:gpl2+)))
5228
5229 (define-public gnome-multi-writer
5230 (package
5231 (name "gnome-multi-writer")
5232 (version "3.35.90")
5233 (source
5234 (origin
5235 (method url-fetch)
5236 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5237 (version-major+minor version) "/"
5238 "gnome-multi-writer-" version ".tar.xz"))
5239 (sha256
5240 (base32
5241 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5242 (build-system meson-build-system)
5243 (arguments
5244 '(#:glib-or-gtk? #t
5245 #:phases
5246 (modify-phases %standard-phases
5247 (add-after 'unpack 'skip-post-install
5248 (lambda _
5249 (substitute* "meson.build"
5250 (("meson.add_install_script" &) (string-append "# " &)))
5251 #t)))))
5252 (native-inputs
5253 `(("glib:bin" ,glib "bin")
5254 ("pkg-config" ,pkg-config)))
5255 (inputs
5256 (list gtk+
5257 glib ; for gio
5258 gusb
5259 udisks
5260 libgudev
5261 libcanberra
5262 polkit))
5263 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5264 (synopsis "Write to multiple USB devices at once")
5265 (description
5266 "MultiWriter can be used to write an ISO file to multiple USB devices at
5267 once.")
5268 (license license:gpl2+)))
5269
5270 (define-public gnome-sudoku
5271 (package
5272 (name "gnome-sudoku")
5273 (version "42.0")
5274 (source
5275 (origin
5276 (method url-fetch)
5277 (uri (string-append "mirror://gnome/sources/" name "/"
5278 (version-major version) "/"
5279 name "-" version ".tar.xz"))
5280 (sha256
5281 (base32
5282 "13y2qphrj99b0lc7bh71is1f6i0jvyw8adfg8lv48sq2p3fv8bhx"))))
5283 (build-system meson-build-system)
5284 (arguments
5285 `(#:glib-or-gtk? #t
5286 #:phases
5287 (modify-phases %standard-phases
5288 (add-after 'unpack 'skip-gtk-update-icon-cache
5289 (lambda _
5290 (substitute* "build-aux/post_install.py"
5291 (("gtk-update-icon-cache") (which "true"))))))))
5292 (native-inputs
5293 (list desktop-file-utils
5294 gettext-minimal
5295 `(,glib "bin") ;for glib-compile-resources
5296 itstool
5297 libxml2
5298 pkg-config
5299 python ;for 'build-aux/post_install.py'
5300 vala))
5301 (inputs
5302 (list gtk+
5303 json-glib
5304 libgee
5305 librsvg
5306 qqwing))
5307 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5308 (synopsis "Japanese logic game")
5309 (description
5310 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5311 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5312 possible while still providing features that make playing difficult Sudoku
5313 more fun.")
5314 (license license:gpl2+)))
5315
5316 (define-public gnome-terminal
5317 (package
5318 (name "gnome-terminal")
5319 (version "3.44.1")
5320 (source
5321 (origin
5322 (method url-fetch)
5323 (uri (string-append "mirror://gnome/sources/" name "/"
5324 (version-major+minor version) "/"
5325 name "-" version ".tar.xz"))
5326 (sha256
5327 (base32
5328 "0yykb64yi1h0g65q890jf5awjr2sdvfda4xbxnmajcgj3zp20vzv"))))
5329 (build-system meson-build-system)
5330 (arguments
5331 (list
5332 #:glib-or-gtk? #t
5333 #:phases
5334 #~(modify-phases %standard-phases
5335 (add-after 'unpack 'patch-build-system
5336 ;; The build system looks for a dbus file from gnome-shell in the
5337 ;; installation tree of teh package it is configuring...
5338 (lambda* (#:key inputs #:allow-other-keys)
5339 (substitute* "src/meson.build"
5340 (("gt_prefix.*'org.gnome.ShellSearchProvider2.xml'")
5341 (format #f "'~a'" (search-input-file
5342 inputs "share/dbus-1/interfaces/\
5343 org.gnome.ShellSearchProvider2.xml"))))))
5344 (add-before 'install 'disable-gtk-update-icon-cache
5345 (lambda _
5346 (setenv "DESTDIR" "/"))))))
5347 (native-inputs
5348 (list desktop-file-utils
5349 docbook-xsl
5350 gettext-minimal
5351 `(,glib "bin")
5352 itstool
5353 libxml2
5354 libxslt
5355 pkg-config
5356 python))
5357 (propagated-inputs
5358 (list dconf))
5359 (inputs
5360 (list gnome-shell
5361 gnutls
5362 gsettings-desktop-schemas
5363 gtk+
5364 nautilus ;for extension
5365 `(,util-linux "lib")
5366 vala
5367 vte))
5368 (home-page "https://wiki.gnome.org/Apps/Terminal")
5369 (synopsis "Terminal emulator")
5370 (description
5371 "GNOME Terminal is a terminal emulator application for accessing a
5372 UNIX shell environment which can be used to run programs available on
5373 your system.
5374
5375 It supports several profiles, multiple tabs and implements several
5376 keyboard shortcuts.")
5377 (license license:gpl3+)))
5378
5379 (define-public colord-minimal
5380 (package
5381 (name "colord-minimal")
5382 (version "1.4.5")
5383 (source
5384 (origin
5385 (method url-fetch)
5386 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5387 "colord-" version ".tar.xz"))
5388 (sha256
5389 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5390 (build-system meson-build-system)
5391 (arguments
5392 '( ;; FIXME: One test fails:
5393 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5394 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5395 ;; application/x-zerosize
5396 #:tests? #f
5397 #:glib-or-gtk? #t
5398 #:configure-flags (list "-Dargyllcms_sensor=false" ;requires spotread
5399 "-Dbash_completion=false"
5400 "-Ddaemon_user=colord"
5401 "-Ddocs=false"
5402 "-Dlocalstatedir=/var"
5403 "-Dman=false"
5404 "-Dsane=true"
5405 "-Dsystemd=false") ;no systemd
5406 #:phases
5407 (modify-phases %standard-phases
5408 (add-before 'configure 'patch-build-system
5409 (lambda* (#:key outputs #:allow-other-keys)
5410 (substitute* "rules/meson.build"
5411 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5412 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))))
5413 (add-before 'configure 'set-sqlite3-file-name
5414 (lambda* (#:key inputs #:allow-other-keys)
5415 ;; "colormgr dump" works by invoking the "sqlite3" command.
5416 ;; Record its absolute file name.
5417 (let ((sqlite (assoc-ref inputs "sqlite")))
5418 (substitute* "client/cd-util.c"
5419 (("\"sqlite3\"")
5420 (string-append "\"" sqlite "/bin/sqlite3\"")))))))))
5421 (native-inputs
5422 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5423 ("gettext" ,gettext-minimal)
5424 ("pkg-config" ,pkg-config)
5425 ("vala" ,vala)))
5426 (propagated-inputs
5427 ;; colord.pc refers to all these.
5428 `(("glib" ,glib)
5429 ("lcms" ,lcms)
5430 ("udev" ,eudev)))
5431 (inputs
5432 `(("dbus-glib" ,dbus-glib)
5433 ("gobject-introspection" ,gobject-introspection)
5434 ("gusb" ,gusb-minimal)
5435 ("libgudev" ,libgudev)
5436 ("libusb" ,libusb)
5437 ("polkit" ,polkit)
5438 ("python" ,python-wrapper)
5439 ("sqlite" ,sqlite)
5440 ("sane-backends" ,sane-backends)))
5441 (home-page "https://www.freedesktop.org/software/colord/")
5442 (synopsis "Color management service")
5443 (description "Colord is a system service that makes it easy to manage,
5444 install and generate color profiles to accurately color manage input and
5445 output devices.")
5446 (license license:gpl2+)))
5447
5448 (define-public colord
5449 (package/inherit colord-minimal
5450 (name "colord")
5451 (arguments
5452 (substitute-keyword-arguments
5453 (package-arguments colord-minimal)
5454 ((#:configure-flags flags)
5455 `(begin
5456 (use-modules (srfi srfi-1))
5457 (append '("-Dbash_completion=true"
5458 "-Ddocs=true"
5459 "-Dman=true"
5460 "-Dvapi=true")
5461 (fold delete ,flags '("-Dbash_completion=false"
5462 "-Ddocs=false"
5463 "-Dman=false")))))
5464 ((#:phases phases)
5465 `(modify-phases ,phases
5466 (add-after 'unpack 'fix-bash-completion-dir
5467 (lambda* (#:key outputs #:allow-other-keys)
5468 (substitute* "data/meson.build"
5469 (("bash_completion.get_pkgconfig_variable\
5470 \\('completionsdir'\\)")
5471 (string-append "'" (assoc-ref outputs "out")
5472 "/etc/bash_completion.d'")))))))))
5473 (native-inputs
5474 (append
5475 `(("bash-completion" ,bash-completion)
5476 ("docbook-xsl-ns" ,docbook-xsl-ns)
5477 ("gtk-doc" ,gtk-doc/stable)
5478 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5479 ("libxslt" ,libxslt)
5480 ("vala" ,vala)) ;for VAPI, needed by simple-scan
5481 (package-native-inputs colord-minimal)))))
5482
5483 (define-public geoclue
5484 (package
5485 (name "geoclue")
5486 (version "2.6.0")
5487 (source
5488 (origin
5489 (method url-fetch)
5490 (uri
5491 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5492 version "/geoclue-" version ".tar.bz2"))
5493 (sha256
5494 (base32 "1854i8lih1jkks5w38xv8k5gs7s8629qjg3cg96ji0ffk35yzjfd"))
5495 (patches (search-patches "geoclue-config.patch"))))
5496 (build-system meson-build-system)
5497 (arguments
5498 '(#:configure-flags (list "-Ddbus-srv-user=geoclue")))
5499 (native-inputs
5500 (list pkg-config
5501 gobject-introspection
5502 modem-manager
5503 libnotify
5504 gtk-doc/stable
5505 gettext-minimal
5506 vala))
5507 (inputs
5508 (list avahi
5509 `(,glib "bin")
5510 glib-networking
5511 json-glib
5512 libsoup-minimal-2))
5513 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5514 (synopsis "Geolocation service")
5515 (description "Geoclue is a D-Bus service that provides location
5516 information. The primary goal of the Geoclue project is to make creating
5517 location-aware applications as simple as possible, while the secondary goal is
5518 to ensure that no application can access location information without explicit
5519 permission from user.")
5520 (license license:gpl2+)))
5521
5522 (define-public geocode-glib
5523 (package
5524 (name "geocode-glib")
5525 (version "3.26.4")
5526 (source (origin
5527 (method url-fetch)
5528 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5529 (version-major+minor version) "/"
5530 "geocode-glib-" version ".tar.xz"))
5531 (sha256
5532 (base32
5533 "1aipd82qk404qy88pyfgplzgi83db4hi51vkl54h8isqs4k6i6id"))))
5534 (build-system meson-build-system)
5535 (arguments
5536 (list
5537 #:configure-flags #~(list "-Dsoup2=false")
5538 #:phases
5539 #~(modify-phases %standard-phases
5540 ;; The tests require a bunch of locales.
5541 (add-before 'check 'set-locales
5542 (lambda* (#:key inputs #:allow-other-keys)
5543 (setenv "GUIX_LOCPATH"
5544 (search-input-directory inputs "lib/locale")))))))
5545 (native-inputs
5546 (list `(,glib "bin") ;for glib-mkenums
5547 glibc-locales ;for tests
5548 gettext-minimal
5549 gobject-introspection
5550 gtk-doc/stable
5551 pkg-config
5552 json-glib))
5553 (propagated-inputs
5554 ;; geocode-glib-2.0.pc refers to GIO.
5555 (list glib))
5556 (inputs
5557 (list libsoup))
5558 (home-page "https://github.com/GNOME/geocode-glib/")
5559 (synopsis "Geocoding and reverse-geocoding library")
5560 (description
5561 "geocode-glib is a convenience library for geocoding (finding longitude,
5562 and latitude from an address) and reverse geocoding (finding an address from
5563 coordinates) using the Nominatim service. geocode-glib caches requests for
5564 faster results and to avoid unnecessary server load.")
5565 (license license:lgpl2.0+)))
5566
5567 (define-public geocode-glib-with-libsoup2
5568 (package
5569 (inherit geocode-glib)
5570 (name "geocode-glib-with-libsoup2")
5571 (arguments (substitute-keyword-arguments (package-arguments geocode-glib)
5572 ((#:configure-flags flags ''())
5573 #~(delete "-Dsoup2=false" #$flags))))
5574 (inputs (modify-inputs (package-inputs geocode-glib)
5575 (replace "libsoup" libsoup-minimal-2)))))
5576
5577 (define-public upower
5578 (package
5579 (name "upower")
5580 (version "1.90.0")
5581 (source
5582 (origin
5583 (method git-fetch)
5584 (uri (git-reference
5585 (url "https://gitlab.freedesktop.org/upower/upower")
5586 (commit (string-append "v" version))))
5587 (file-name (git-file-name name version))
5588 (sha256
5589 (base32 "1g17rm91p8vfpjyb0k2shylrs55nccn3fa890vlk4n9s71sghbzq"))
5590 (modules '((guix build utils)))
5591 (snippet
5592 ;; Upstream commit <https://cgit.freedesktop.org/upower/commit/
5593 ;; ?id=18457c99b68786cd729b315723d680e6860d9cfa> moved
5594 ;; 'dbus-1/system.d' from etc/ to share/. However,
5595 ;; 'dbus-configuration-directory' in (gnu services dbus) expects it in
5596 ;; etc/. Thus, move it back to its previous location.
5597 #~(substitute* "src/meson.build"
5598 (("dbusdir / 'system.d'")
5599 "get_option('sysconfdir') / 'dbus-1/system.d'")
5600 ;; Avoid writing to /var during the build, this is
5601 ;; not possible in Guix!
5602 (("^install_subdir\\('does-not-exist'.*$") "")))))
5603 (build-system meson-build-system)
5604 (arguments
5605 (list
5606 #:glib-or-gtk? #t
5607 #:configure-flags
5608 #~(list "-Dsystemdsystemunitdir=no"
5609 ;; If not specified, udev will try putting history information
5610 ;; in /gnu/store.
5611 "-Dhistorydir=/var/lib/upower"
5612 (string-append "-Dudevrulesdir=" #$output "/bin/udev/rules.d"))))
5613 (native-inputs
5614 (list `(,glib "bin") ; for gdbus-codegen
5615 gobject-introspection
5616 gtk-doc
5617 intltool
5618 pkg-config
5619 python
5620 ;; For tests.
5621 python-dbus
5622 python-dbusmock
5623 python-packaging
5624 python-pygobject
5625 umockdev
5626 ;; For man pages.
5627 docbook-xsl
5628 libxslt ; for 'xsltproc'
5629 libxml2)) ; for 'XML_CATALOG_FILES'
5630 (inputs
5631 (list dbus-glib libgudev libusb))
5632 (propagated-inputs
5633 ;; In Requires of upower-glib.pc.
5634 (list glib))
5635 (home-page "https://upower.freedesktop.org/")
5636 (synopsis "System daemon for managing power devices")
5637 (description
5638 "UPower is an abstraction for enumerating power devices,
5639 listening to device events and querying history and statistics. Any
5640 application or service on the system can access the org.freedesktop.UPower
5641 service via the system message bus.")
5642 (license license:gpl2+)
5643 ;; Old versions of upower are tagged as UPOWER_0_99_13, which confuses
5644 ;; the 'generic-git' updater. Give it a little help.
5645 (properties '((release-tag-prefix . "v")
5646 (release-tag-version-delimiter . ".")))))
5647
5648 (define-public libgweather
5649 (package
5650 (name "libgweather")
5651 (version "40.0")
5652 (source (origin
5653 (method url-fetch)
5654 (uri (string-append "mirror://gnome/sources/" name "/"
5655 (version-major version) "/"
5656 name "-" version ".tar.xz"))
5657 (sha256
5658 (base32
5659 "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna"))))
5660 (build-system meson-build-system)
5661 (arguments
5662 (list
5663 #:tests? #f ;one of two tests requires network access
5664 #:configure-flags
5665 #~(list (string-append "-Dzoneinfo_dir="
5666 (search-input-directory %build-inputs
5667 "share/zoneinfo")))))
5668 (native-inputs
5669 (list gettext-minimal
5670 `(,glib "bin") ;for glib-mkenums
5671 gobject-introspection
5672 pkg-config
5673 python
5674 vala
5675 python-pygobject))
5676 (propagated-inputs
5677 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5678 ;; libsoup.
5679 (list gtk+ gdk-pixbuf libxml2 libsoup-minimal-2 geocode-glib))
5680 (inputs
5681 (list tzdata))
5682 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5683 (synopsis "Location, time zone, and weather library for GNOME")
5684 (description
5685 "libgweather is a library to access weather information from online
5686 services for numerous locations.")
5687 (license license:gpl2+)))
5688
5689 ;; libgweather no longer follows the GNOME version, and recommends changing
5690 ;; the package name in distributions to avoid accidental downgrades. See
5691 ;; <https://discourse.gnome.org/t/changes-in-libgweather-for-gnome-42/7770/2>.
5692 ;; TODO: how to prevent the updater from picking version 40?
5693 (define-public libgweather4
5694 (package
5695 (inherit libgweather)
5696 (name "libgweather4")
5697 (version "4.1.1")
5698 (source (origin
5699 (method url-fetch)
5700 (uri (string-append "mirror://gnome/sources/libgweather/"
5701 (version-major+minor version) "/"
5702 "libgweather-" version ".tar.xz"))
5703 (sha256
5704 (base32
5705 "1wh3asniv5yiqp0dsk96as2bkx72hamh3ij2md8k0is9yd7ppbjm"))))
5706 (arguments
5707 (list
5708 #:configure-flags
5709 #~(list (string-append "-Dzoneinfo_dir="
5710 (search-input-directory %build-inputs
5711 "share/zoneinfo")))
5712 #:phases
5713 #~(modify-phases %standard-phases
5714 (add-after 'unpack 'set-HOME
5715 (lambda _
5716 (setenv "HOME" "/tmp")))
5717 (add-after 'unpack 'disable-problematic-tests
5718 (lambda _
5719 (substitute* "libgweather/tests/meson.build"
5720 ;; The timezones test fails for unknown reasons (see:
5721 ;; https://gitlab.gnome.org/GNOME/libgweather/-/issues/188).
5722 ((".*'name': 'timezones'.*") "")
5723 ;; The 'metar' test is known to fail, fixed but not yet released
5724 ;; upstream (see:
5725 ;; https://gitlab.gnome.org/GNOME/libgweather/-/issues/168).
5726 ((".*'name': 'metar'.*") ""))))
5727 (delete 'check) ;move after the install phase
5728 (add-after 'install 'check
5729 (assoc-ref %standard-phases 'check)))))
5730 (native-inputs
5731 (list gettext-minimal
5732 gi-docgen
5733 `(,glib "bin") ;for glib-mkenums
5734 gobject-introspection
5735 glibc-utf8-locales
5736 gsettings-desktop-schemas
5737 pkg-config
5738 python
5739 python-pygobject
5740 vala))
5741 ;; TODO: It would be good to make the package respect TZDIR instead
5742 ;; of using a "hard coded" version of tzdata.
5743 (inputs (list tzdata))
5744 (propagated-inputs
5745 ;; gweather4.pc refers to all of these.
5746 (list geocode-glib
5747 glib
5748 json-glib
5749 libsoup
5750 libxml2))))
5751
5752 (define-public libgweather4-with-libsoup2
5753 (package
5754 (inherit libgweather4)
5755 (name "libgweather4-with-libsoup2")
5756 (arguments (substitute-keyword-arguments (package-arguments libgweather4)
5757 ((#:configure-flags flags)
5758 #~(cons "-Dsoup2=true" #$flags))))
5759 (propagated-inputs
5760 (modify-inputs (package-propagated-inputs libgweather4)
5761 (replace "geocode-glib" geocode-glib-with-libsoup2)
5762 (replace "libsoup" libsoup-minimal-2)))))
5763
5764 (define-public gnome-settings-daemon
5765 (package
5766 (name "gnome-settings-daemon")
5767 (version "42.2")
5768 (source
5769 (origin
5770 (method url-fetch)
5771 (uri (string-append "mirror://gnome/sources/" name "/"
5772 (version-major version) "/"
5773 name "-" version ".tar.xz"))
5774 (sha256
5775 (base32
5776 "005b1dvrfcyr6n4srl6c0lzr95c18prps4xm1lf2ghcfm8a9fi4w"))
5777 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5778 (build-system meson-build-system)
5779 (arguments
5780 (list
5781 #:glib-or-gtk? #t
5782 #:configure-flags
5783 #~(list (string-append "-Dudev_dir=" #$output "/lib/udev")
5784 "-Dsystemd=false"
5785 ;; Otherwise, the RUNPATH will lack the final path component.
5786 (string-append "-Dc_link_args=-Wl,-rpath=" #$output
5787 "/lib/gnome-settings-daemon-3.0"))
5788 #:phases
5789 #~(modify-phases %standard-phases
5790 (add-before 'configure 'set-baobab-file-name
5791 (lambda* (#:key inputs #:allow-other-keys)
5792 ;; Hard-code the file name of Baobab instead of looking
5793 ;; it up in $PATH. This ensures users get the "Examine"
5794 ;; button in the low disk space notification of GDM even
5795 ;; if they don't have GNOME in their main profile.
5796 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5797 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5798 (format #f "g_strdup (~s)"
5799 (search-input-file inputs "bin/baobab")))))))
5800 ;; Color management test can't reach the colord system service.
5801 #:tests? #f))
5802 (native-inputs
5803 (list docbook-xml-4.2
5804 docbook-xsl
5805 gettext-minimal
5806 `(,glib "bin") ;for glib-mkenums
5807 libxml2 ;for XML_CATALOG_FILES
5808 libxslt
5809 perl
5810 pkg-config))
5811 (inputs
5812 (list alsa-lib
5813 baobab
5814 colord
5815 cups
5816 gcr
5817 geoclue
5818 geocode-glib-with-libsoup2
5819 gnome-desktop
5820 gsettings-desktop-schemas-next
5821 lcms
5822 libcanberra
5823 libgudev
5824 libgweather4-with-libsoup2
5825 libnotify
5826 (librsvg-for-system)
5827 libwacom
5828 libx11
5829 libxtst
5830 modem-manager
5831 network-manager
5832 nss
5833 polkit
5834 pulseaudio
5835 upower
5836 wayland
5837 xf86-input-wacom))
5838 (home-page "https://www.gnome.org")
5839 (synopsis "GNOME settings daemon")
5840 (description
5841 "This package contains the daemon responsible for setting the various
5842 parameters of a GNOME session and the applications that run under it. It
5843 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5844 settings, themes, mouse settings, and startup of other daemons.")
5845 (license license:gpl2+)))
5846
5847 (define-public totem-pl-parser
5848 (package
5849 (name "totem-pl-parser")
5850 (version "3.26.6")
5851 (source (origin
5852 (method url-fetch)
5853 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5854 (version-major+minor version) "/"
5855 "totem-pl-parser-" version ".tar.xz"))
5856 (sha256
5857 (base32
5858 "075csd5x0frgf93jvhlqiwv5i0qm24zz3iw17jj7v7fgsml0zpy0"))))
5859 (build-system meson-build-system)
5860 (arguments
5861 ;; FIXME: Tests require gvfs.
5862 `(#:tests? #f))
5863 (native-inputs
5864 (list intltool
5865 `(,glib "bin") gobject-introspection pkg-config))
5866 (propagated-inputs
5867 (list glib gmime libarchive libgcrypt libxml2))
5868 (inputs
5869 (list libsoup))
5870 (home-page "https://projects.gnome.org/totem")
5871 (synopsis "Library to parse and save media playlists for GNOME")
5872 (description "Totem-pl-parser is a GObjects-based library to parse and save
5873 playlists in a variety of formats.")
5874 (license license:lgpl2.0+)))
5875
5876 (define-public aisleriot
5877 (package
5878 (name "aisleriot")
5879 (version "3.22.9")
5880 (source (origin
5881 (method url-fetch)
5882 (uri (string-append "mirror://gnome/sources/aisleriot/"
5883 (version-major+minor version) "/"
5884 "aisleriot-" version ".tar.xz"))
5885 (sha256
5886 (base32
5887 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5888 (build-system glib-or-gtk-build-system)
5889 (arguments
5890 '(#:configure-flags
5891 '("--with-platform=gtk-only"
5892 "--with-card-theme-formats=svg")))
5893 (native-inputs
5894 `(("desktop-file-utils" ,desktop-file-utils)
5895 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5896 ("intltool" ,intltool)
5897 ("itstool" ,itstool)
5898 ("pkg-config" ,pkg-config)
5899 ("xmllint" ,libxml2)))
5900 (inputs
5901 (list gtk+ guile-2.2 libcanberra librsvg))
5902 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5903 (synopsis "Solitaire card games")
5904 (description
5905 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5906 which are easy to play with the aid of a mouse.")
5907 (license license:gpl3+)))
5908
5909 (define-public amtk
5910 (package
5911 (name "amtk")
5912 (version "5.3.1")
5913 (source (origin
5914 (method url-fetch)
5915 (uri (string-append "mirror://gnome/sources/amtk/"
5916 (version-major+minor version) "/"
5917 "amtk-" version ".tar.xz"))
5918 (sha256
5919 (base32
5920 "12v3nj1bb7507ndprjggq0hpz8k719b4bwvl8sm43p3ibmn27anm"))))
5921 (build-system meson-build-system)
5922 (native-inputs
5923 (list gobject-introspection
5924 `(,glib "bin") ; for glib-mkenums
5925 gtk-doc/stable pkg-config))
5926 (inputs
5927 (list glib gtk+))
5928 (home-page "https://wiki.gnome.org/Projects/Amtk")
5929 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5930 (description
5931 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5932 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5933 both a traditional UI or a modern UI with a GtkHeaderBar.")
5934 (license license:lgpl2.1+)))
5935
5936 (define-public devhelp
5937 (package
5938 (name "devhelp")
5939 (version "41.2")
5940 (source (origin
5941 (method url-fetch)
5942 (uri (string-append "mirror://gnome/sources/" name "/"
5943 (version-major version) "/"
5944 name "-" version ".tar.xz"))
5945 (sha256
5946 (base32
5947 "1lk0gycjvs6gibhy0zs3ffkrkzrkyl5nkp7n60hgpa6syjq91apc"))))
5948 (build-system meson-build-system)
5949 (arguments
5950 `(#:glib-or-gtk? #t
5951 #:phases
5952 (modify-phases %standard-phases
5953 (add-after 'unpack 'skip-gtk-update-icon-cache
5954 ;; Don't create 'icon-theme.cache'.
5955 (lambda _
5956 (substitute* "build-aux/meson/meson_post_install.py"
5957 (("gtk-update-icon-cache") "true"))))
5958 (add-after 'unpack 'fix-devhelp-gir-inputs
5959 ;; It still mentions webkitgtk 4.0
5960 (lambda _
5961 (substitute* "devhelp/meson.build"
5962 (("'WebKit2-4.0'") "'WebKit2-4.1'")))))))
5963 (propagated-inputs
5964 (list gsettings-desktop-schemas))
5965 (native-inputs
5966 `(("intltool" ,intltool)
5967 ("itstool" ,itstool)
5968 ("gobject-introspection" ,gobject-introspection)
5969 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5970 ("pkg-config" ,pkg-config)))
5971 (inputs
5972 (list amtk gsettings-desktop-schemas webkitgtk))
5973 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5974 (synopsis "API documentation browser for GNOME")
5975 (description
5976 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5977 natively with GTK-Doc (the API reference system developed for GTK+ and used
5978 throughout GNOME for API documentation).")
5979 (license license:gpl2+)))
5980
5981 (define-public devhelp-with-libsoup2
5982 (package/inherit devhelp
5983 (arguments
5984 (substitute-keyword-arguments (package-arguments devhelp)
5985 ((#:phases phases '%standard-phases)
5986 `(modify-phases %standard-phases
5987 (add-after 'unpack 'skip-gtk-update-icon-cache
5988 ;; Don't create 'icon-theme.cache'.
5989 (lambda _
5990 (substitute* "build-aux/meson/meson_post_install.py"
5991 (("gtk-update-icon-cache") "true"))))))))
5992 (inputs
5993 `(("amtk" ,amtk)
5994 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5995 ("webkitgtk" ,webkitgtk-with-libsoup2)))))
5996
5997 (define-public cogl
5998 (package
5999 (name "cogl")
6000 (version "1.22.8")
6001 (source
6002 (origin
6003 (method url-fetch)
6004 (uri (string-append "mirror://gnome/sources/cogl/"
6005 (version-major+minor version) "/"
6006 "cogl-" version ".tar.xz"))
6007 (sha256
6008 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
6009 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
6010 ;; cogl, corresponding changes may be appropriate in mutter as well.
6011 (build-system gnu-build-system)
6012 (native-inputs
6013 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6014 ("gobject-introspection" ,gobject-introspection)
6015 ("xorg-server" ,xorg-server-for-tests)
6016 ("pkg-config" ,pkg-config)))
6017 (propagated-inputs
6018 (list glib
6019 gdk-pixbuf
6020 libx11
6021 libxext
6022 libxfixes
6023 libxdamage
6024 libxcomposite
6025 libxrandr))
6026 (inputs
6027 (list mesa
6028 cairo
6029 pango
6030 gstreamer
6031 gst-plugins-base
6032 wayland))
6033 (arguments
6034 `(#:disallowed-references (,xorg-server-for-tests)
6035 #:configure-flags (list "--enable-cogl-gst"
6036 "--enable-wayland-egl-platform"
6037 "--enable-wayland-egl-server"
6038
6039 ;; Arrange to pass an absolute file name to
6040 ;; dlopen for libGL.so.
6041 (string-append "--with-gl-libname="
6042 (assoc-ref %build-inputs "mesa")
6043 "/lib/libGL.so"))
6044 #:phases
6045 (modify-phases %standard-phases
6046 (add-after 'unpack 'fix-build-with-mesa-20
6047 (lambda _
6048 ;; Work around a problem with Mesa 20 where some macros used by
6049 ;; Cogl went missing from eglext.h. This can likely be removed
6050 ;; for newer versions of Cogl or Mesa.
6051 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
6052 (substitute* '("configure"
6053 "cogl/winsys/cogl-winsys-egl-kms.c")
6054 (("#include <EGL/eglext.h>" all)
6055 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
6056 #t))
6057 (add-before 'check 'start-xorg-server
6058 (lambda* (#:key tests? inputs #:allow-other-keys)
6059 (if tests?
6060 (begin
6061 ;; The test suite requires a running X server.
6062 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
6063 (assoc-ref inputs "xorg-server")))
6064 (setenv "DISPLAY" ":1")
6065 #t)
6066 (format #t "test suite not run~%"))
6067 #t)))))
6068 (home-page "http://www.clutter-project.org")
6069 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
6070 (description
6071 "Cogl is a small library for using 3D graphics hardware to draw pretty
6072 pictures. The API departs from the flat state machine style of OpenGL and is
6073 designed to make it easy to write orthogonal components that can render
6074 without stepping on each others toes.")
6075 (license (list license:expat ; most of the code
6076 license:bsd-3 ; cogl/cogl-point-in-poly.c
6077 license:sgifreeb2.0 ; cogl-path/tesselator/
6078 license:asl2.0)))) ; examples/android/
6079
6080 (define-public clutter
6081 (package
6082 (name "clutter")
6083 (version "1.26.4")
6084 (source
6085 (origin
6086 (method url-fetch)
6087 (uri (string-append "mirror://gnome/sources/" name "/"
6088 (version-major+minor version) "/"
6089 name "-" version ".tar.xz"))
6090 (sha256
6091 (base32
6092 "1rn4cd1an6a9dfda884aqpcwcgq8dgydpqvb19nmagw4b70zlj4b"))))
6093 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
6094 ;; to clutter, corresponding changes may be appropriate in mutter as well.
6095 (build-system gnu-build-system)
6096 (outputs '("out"
6097 "doc")) ;9 MiB of gtk-doc HTML pages
6098 (native-inputs
6099 (list `(,glib "bin") ; for glib-genmarshal
6100 gobject-introspection
6101 libxslt
6102 pkg-config))
6103 (propagated-inputs
6104 (list atk
6105 cairo
6106 cogl
6107 glib
6108 gtk+
6109 json-glib
6110 libxcomposite
6111 libxdamage
6112 libxext
6113 xinput))
6114 (inputs
6115 (list eudev
6116 libxkbcommon))
6117 (arguments
6118 `(#:configure-flags (list "--enable-x11-backend=yes"
6119
6120 ;; This produces share/doc/{clutter,cally}.
6121 (string-append "--with-html-dir="
6122 (assoc-ref %outputs "doc")
6123 "/share/doc"))
6124 ;; XXX FIXME: Get test suite working. It would probably fail in the
6125 ;; same way the cogl tests fail, since clutter is based on cogl.
6126 #:tests? #f))
6127 (home-page "https://blogs.gnome.org/clutter/")
6128 (synopsis "OpenGL-based interactive canvas library")
6129 (description
6130 "Clutter is an OpenGL-based interactive canvas library, designed for
6131 creating fast, mainly 2D single window applications such as media box UIs,
6132 presentations, kiosk style applications and so on.")
6133 (license license:lgpl2.0+)))
6134
6135 (define-public clutter-gtk
6136 (package
6137 (name "clutter-gtk")
6138 (version "1.8.4")
6139 (source
6140 (origin
6141 (method url-fetch)
6142 (uri (string-append "mirror://gnome/sources/" name "/"
6143 (version-major+minor version) "/"
6144 name "-" version ".tar.xz"))
6145 (sha256
6146 (base32
6147 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
6148 (build-system gnu-build-system)
6149 (native-inputs
6150 (list pkg-config gobject-introspection))
6151 (propagated-inputs
6152 ;; clutter-gtk.pc refers to all these.
6153 (list clutter gtk+))
6154 (home-page "http://www.clutter-project.org")
6155 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
6156 (description
6157 "Clutter is an OpenGL-based interactive canvas library, designed for
6158 creating fast, mainly 2D single window applications such as media box UIs,
6159 presentations, kiosk style applications and so on.")
6160 (license license:lgpl2.0+)))
6161
6162 (define-public clutter-gst
6163 (package
6164 (name "clutter-gst")
6165 (version "3.0.27")
6166 (source
6167 (origin
6168 (method url-fetch)
6169 (uri (string-append "mirror://gnome/sources/clutter-gst/"
6170 (version-major+minor version) "/"
6171 "clutter-gst-" version ".tar.xz"))
6172 (sha256
6173 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
6174 (build-system gnu-build-system)
6175 (native-inputs
6176 (list `(,glib "bin") ; for glib-mkenums
6177 pkg-config gobject-introspection))
6178 (inputs
6179 (list clutter gstreamer gst-plugins-base))
6180 (home-page "http://www.clutter-project.org")
6181 (synopsis "Integration library for using GStreamer with Clutter")
6182 (description
6183 "Clutter-Gst is an integration library for using GStreamer with Clutter.
6184 It provides a GStreamer sink to upload frames to GL and an actor that
6185 implements the ClutterGstPlayer interface using playbin. Clutter is an
6186 OpenGL-based interactive canvas library.")
6187 (license license:lgpl2.0+)))
6188
6189 (define-public libchamplain
6190 (package
6191 (name "libchamplain")
6192 (version "0.12.20")
6193 (source (origin
6194 (method url-fetch)
6195 (uri (string-append
6196 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
6197 version ".tar.xz"))
6198 (sha256
6199 (base32
6200 "0rihpb0npqpihqcdz4w03rq6xl7jdckfqskvv9diq2hkrnzv8ch2"))))
6201 (build-system meson-build-system)
6202 (native-inputs
6203 (list gobject-introspection pkg-config vala))
6204 (propagated-inputs
6205 (list libsoup-minimal-2
6206 sqlite
6207 clutter
6208 clutter-gtk
6209 `(,glib "bin") ;glib-mkenums, etc.
6210 cairo
6211 gtk+
6212 glib))
6213 (home-page "https://projects.gnome.org/libchamplain/")
6214 (synopsis "C library providing a ClutterActor to display maps")
6215 (description
6216 "libchamplain is a C library providing a ClutterActor to display maps.
6217 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
6218 and Perl bindings are also available. It supports numerous free map sources
6219 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
6220 (license license:lgpl2.1+)))
6221
6222 (define-public gom
6223 (package
6224 (name "gom")
6225 (version "0.3.2")
6226 (source
6227 (origin
6228 (method url-fetch)
6229 (uri (string-append "mirror://gnome/sources/gom/"
6230 (version-major+minor version) "/"
6231 "gom-" version ".tar.xz"))
6232 (sha256
6233 (base32
6234 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
6235 (build-system gnu-build-system)
6236 (native-inputs
6237 (list intltool pkg-config gobject-introspection))
6238 (inputs
6239 (list glib gdk-pixbuf sqlite))
6240 ;; XXX TODO: Figure out how to run the test suite.
6241 (arguments `(#:tests? #f))
6242 (home-page "https://wiki.gnome.org/Projects/Gom")
6243 (synopsis "Object mapper from GObjects to SQLite")
6244 (description
6245 "Gom provides an object mapper from GObjects to SQLite. It helps you
6246 write applications that need to store structured data as well as make complex
6247 queries upon that data.")
6248 (license license:lgpl2.1+)))
6249
6250 (define-public libgnome-games-support
6251 (package
6252 (name "libgnome-games-support")
6253 (version "1.7.1")
6254 (source (origin
6255 (method url-fetch)
6256 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
6257 (version-major+minor version) "/"
6258 "libgnome-games-support-" version ".tar.xz"))
6259 (sha256
6260 (base32
6261 "11g1r3ppb9v8m3anks9gxf7fv1x38vmjiya3lr7zjjv328pb69d6"))))
6262 (build-system meson-build-system)
6263 (arguments
6264 '(#:glib-or-gtk? #t
6265 #:phases
6266 (modify-phases %standard-phases
6267 (add-before 'check 'pre-check
6268 (lambda _
6269 ;; Tests require a writable HOME.
6270 (setenv "HOME" (getcwd))
6271 #t)))))
6272 (native-inputs
6273 (list intltool pkg-config vala))
6274 (propagated-inputs
6275 ;; Required by libgnome-games-support-1.0.pc
6276 (list gtk+ libgee))
6277 (home-page "https://www.gnome.org/")
6278 (synopsis "Useful functionality shared among GNOME games")
6279 (description
6280 "libgnome-games-support is a small library intended for internal use by
6281 GNOME Games, but it may be used by others.")
6282 (license license:lgpl3+)))
6283
6284 (define-public gnome-klotski
6285 (package
6286 (name "gnome-klotski")
6287 (version "3.34.0")
6288 (source (origin
6289 (method url-fetch)
6290 (uri (string-append "mirror://gnome/sources/" name "/"
6291 (version-major+minor version) "/"
6292 name "-" version ".tar.xz"))
6293 (sha256
6294 (base32
6295 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
6296 (build-system meson-build-system)
6297 (arguments
6298 '(#:glib-or-gtk? #t
6299 #:phases
6300 (modify-phases %standard-phases
6301 (add-after 'unpack 'skip-gtk-update-icon-cache
6302 ;; Don't create 'icon-theme.cache'.
6303 (lambda _
6304 (substitute* "build-aux/meson_post_install.py"
6305 (("gtk-update-icon-cache") (which "true")))
6306 #t)))))
6307 (native-inputs
6308 `(("desktop-file-utils" ,desktop-file-utils)
6309 ("glib:bin" ,glib "bin") ; for glib-compile-resources
6310 ("intltool" ,intltool)
6311 ("itstool" ,itstool)
6312 ("pkg-config" ,pkg-config)
6313 ("vala" ,vala)
6314 ("xmllint" ,libxml2)))
6315 (inputs
6316 (list gtk+ libgnome-games-support librsvg))
6317 (home-page "https://wiki.gnome.org/Apps/Klotski")
6318 (synopsis "Sliding block puzzles")
6319 (description
6320 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6321 the patterned block to the area bordered by green markers. To do so, you will
6322 need to slide other blocks out of the way. Complete each puzzle in as few moves
6323 as possible!")
6324 (license license:gpl2+)))
6325
6326 (define-public grilo
6327 (package
6328 (name "grilo")
6329 (version "0.3.13")
6330 (source
6331 (origin
6332 (method url-fetch)
6333 (uri (string-append "mirror://gnome/sources/grilo/"
6334 (version-major+minor version) "/"
6335 "grilo-" version ".tar.xz"))
6336 (sha256
6337 (base32 "0ywjvh7xw4ql1q4fvl0q5n06n08pga1g1nc9l7c3x5214gr3fj6i"))))
6338 (build-system meson-build-system)
6339 (native-inputs
6340 (list `(,glib "bin") ; for glib-mkenums and glib-genmarshal
6341 intltool
6342 pkg-config
6343 gobject-introspection
6344 gtk-doc/stable
6345 vala))
6346 (inputs
6347 (list cyrus-sasl
6348 glib
6349 gtk+
6350 libxml2
6351 liboauth
6352 libsoup-minimal-2
6353 totem-pl-parser))
6354 (native-search-paths
6355 (list (search-path-specification
6356 (variable "GRL_PLUGIN_PATH")
6357 (files (list (string-append "lib/grilo-"
6358 (version-major+minor version)))))))
6359 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6360 (synopsis "Framework for discovering and browsing media")
6361 (description
6362 "Grilo is a framework focused on making media discovery and browsing easy
6363 for application developers.")
6364 (license license:lgpl2.1+)))
6365
6366 (define-public grilo-plugins
6367 (package
6368 (name "grilo-plugins")
6369 (version "0.3.13")
6370 (source
6371 (origin
6372 (method url-fetch)
6373 (uri (string-append "mirror://gnome/sources/" name "/"
6374 (version-major+minor version) "/"
6375 name "-" version ".tar.xz"))
6376 (sha256
6377 (base32 "1y10nnd711qxwgpz6spzp1rnk50fyf11kk1n71a31ab4fgb0ahqw"))))
6378 (build-system meson-build-system)
6379 (native-inputs
6380 `(("gettext" ,gettext-minimal)
6381 ("glib:bin" ,glib "bin")
6382 ("gtk+:bin" ,gtk+ "bin")
6383 ("itstool" ,itstool)
6384 ("pkg-config" ,pkg-config)))
6385 ;; TODO: ahavi, gstreamer
6386 (inputs
6387 `(("grilo" ,grilo)
6388 ;("gmime" ,gmime) ; unused
6389 ("gnome-online-accounts" ,gnome-online-accounts)
6390 ("gom" ,gom)
6391 ;("gssdp" ,gssdp) ; unused
6392 ;("gupnp" ,gupnp) ; unused
6393 ;("gupnp-av" ,gupnp-av) ; unused
6394 ("json-glib" ,json-glib)
6395 ("avahi" ,avahi)
6396 ("libgdata" ,libgdata)
6397 ("libmediaart" ,libmediaart)
6398 ;("librest" ,rest) ; unused
6399 ("libsoup" ,libsoup)
6400 ("python-pygobject" ,python-pygobject)
6401 ("totam-pl-parser" ,totem-pl-parser)
6402 ("tracker" ,tracker)
6403 ("tracker-miners" ,tracker-miners)))
6404 (arguments
6405 `(#:glib-or-gtk? #t
6406 ;;Disable lua-factory as it needs missing dependencies
6407 #:configure-flags '("-Denable-lua-factory=no")
6408 #:phases
6409 (modify-phases %standard-phases
6410 (add-before 'configure 'set-shell
6411 (lambda _
6412 (setenv "SHELL" (which "bash"))))
6413 ;; Disable the tracker test that requires the UPower daemon.
6414 (add-before 'configure 'fix-tests
6415 (lambda* (#:key inputs #:allow-other-keys)
6416 (substitute* "tests/tracker3/meson.build"
6417 (("'test_tracker3'.*") "")))))))
6418 (home-page "https://live.gnome.org/Grilo")
6419 (synopsis "Plugins for the Grilo media discovery library")
6420 (description
6421 "Grilo is a framework focused on making media discovery and browsing easy
6422 for application developers. This package provides plugins for common media
6423 discovery protocols.")
6424 (license license:lgpl2.1+)))
6425
6426 (define-public totem
6427 (package
6428 (name "totem")
6429 (version "42.0")
6430 (source
6431 (origin
6432 (method url-fetch)
6433 (uri (string-append "mirror://gnome/sources/totem/"
6434 (version-major version) "/"
6435 "totem-" version ".tar.xz"))
6436 (sha256
6437 (base32 "1az6ay7zhz2naqrzcfldx1yv2ylw1yjx76g3mqrqppwmvcflkw2a"))))
6438 (build-system meson-build-system)
6439 (native-inputs
6440 (list pkg-config
6441 desktop-file-utils
6442 gettext-minimal
6443 gobject-introspection
6444 `(,glib "bin") ;for 'glib-mkenums'
6445 itstool
6446 libxml2
6447 xorg-server-for-tests))
6448 (propagated-inputs
6449 (list dconf))
6450 (inputs
6451 (list gtk+
6452 gdk-pixbuf
6453 atk
6454 cairo
6455 dbus-glib
6456 xorgproto
6457 libxxf86vm
6458 libxtst
6459 libxrandr
6460 libxml2
6461 libsoup
6462 libpeas
6463 librsvg
6464 libhandy
6465 gnome-desktop
6466 gstreamer
6467 gst-plugins-base
6468 gst-plugins-good
6469 gsettings-desktop-schemas
6470 adwaita-icon-theme
6471 python
6472 python-pygobject
6473 totem-pl-parser
6474 grilo
6475 grilo-plugins
6476 vala))
6477 (arguments
6478 (list
6479 #:glib-or-gtk? #t
6480 ;; Disable automatic GStreamer plugin installation via PackageKit and
6481 ;; all that.
6482 #:configure-flags #~(list "-Denable-easy-codec-installation=no"
6483 ;; Do not build .a files for the plugins, it's
6484 ;; completely useless. This saves 2 MiB.
6485 "--default-library" "shared")
6486 #:phases
6487 #~(modify-phases %standard-phases
6488 (add-after 'unpack 'skip-gtk-update-icon-cache
6489 ;; Don't create 'icon-theme.cache'.
6490 (lambda _
6491 (substitute* "meson_post_install.py"
6492 (("gtk-update-icon-cache") "true"))))
6493 (add-before 'install 'disable-cache-generation
6494 (lambda _
6495 (setenv "DESTDIR" "/")))
6496 (add-before 'check 'pre-check
6497 (lambda _
6498 ;; Tests require a running X server.
6499 (system "Xvfb :1 &")
6500 (setenv "DISPLAY" ":1")))
6501 (add-after 'install 'wrap-totem
6502 (lambda* (#:key inputs outputs #:allow-other-keys)
6503 (let ((out (assoc-ref outputs "out"))
6504 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6505 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6506 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6507 (wrap-program (string-append out "/bin/totem")
6508 `("GI_TYPELIB_PATH" ":" suffix (,gi-typelib-path))
6509 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6510 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6511 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6512 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))))))))
6513 (home-page "https://wiki.gnome.org/Apps/Videos")
6514 (synopsis "Simple media player for GNOME based on GStreamer")
6515 (description "Totem is a simple yet featureful media player for GNOME
6516 which can read a large number of file formats.")
6517 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6518 ;; to be used and distributed together with GStreamer and Totem. See
6519 ;; file://COPYING in the source distribution for details.
6520 (license license:gpl2+)))
6521
6522 (define-public rhythmbox
6523 (package
6524 (name "rhythmbox")
6525 (version "3.4.4")
6526 (source (origin
6527 (method url-fetch)
6528 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6529 (version-major+minor version) "/"
6530 "rhythmbox-" version ".tar.xz"))
6531 (sha256
6532 (base32
6533 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6534 (build-system glib-or-gtk-build-system)
6535 (arguments
6536 `(#:configure-flags
6537 (list "--enable-lirc"
6538 "--enable-python"
6539 "--enable-vala"
6540 "--with-brasero"
6541 "--with-gudev"
6542 "--with-libsecret")
6543 #:phases
6544 (modify-phases %standard-phases
6545 (add-after
6546 'install 'wrap-rhythmbox
6547 (lambda* (#:key inputs outputs #:allow-other-keys)
6548 (let ((out (assoc-ref outputs "out"))
6549 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6550 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6551 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6552 (python-path (getenv "GUIX_PYTHONPATH")))
6553 (wrap-program (string-append out "/bin/rhythmbox")
6554 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6555 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6556 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6557 `("GUIX_PYTHONPATH" ":" prefix (,python-path))))
6558 #t)))))
6559 (propagated-inputs
6560 (list dconf))
6561 (native-inputs
6562 `(("itstool" ,itstool)
6563 ("intltool" ,intltool)
6564 ("glib" ,glib "bin")
6565 ("gobject-introspection" ,gobject-introspection)
6566 ("desktop-file-utils" ,desktop-file-utils)
6567 ("pkg-config" ,pkg-config)
6568 ("xmllint" ,libxml2)))
6569 (inputs
6570 `(("json-glib" ,json-glib)
6571 ("tdb" ,tdb)
6572 ("gnome-desktop" ,gnome-desktop)
6573 ("python" ,python)
6574 ("python-pygobject" ,python-pygobject)
6575 ("vala" ,vala)
6576 ("gmime" ,gmime)
6577 ("adwaita-icon-theme" ,adwaita-icon-theme)
6578 ("grilo" ,grilo)
6579 ("grilo-plugins" ,grilo-plugins)
6580 ("gstreamer" ,gstreamer)
6581 ("gst-plugins-base" ,gst-plugins-base)
6582 ("gst-plugins-good" ,gst-plugins-good)
6583 ("totem-pl-parser" ,totem-pl-parser)
6584 ("libgudev" ,libgudev)
6585 ;;("libmtp" ,libmtp) FIXME: Not detected
6586 ("libsecret" ,libsecret)
6587 ("libsoup" ,libsoup)
6588 ("libnotify" ,libnotify)
6589 ("libpeas" ,libpeas)
6590 ("libsoup" ,libsoup-minimal-2)
6591 ("lirc" ,lirc)
6592 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6593 ;;("clutter" ,clutter)
6594 ;;("clutter-gtk" ,clutter-gtk)
6595 ;;("clutter-gst" ,clutter-gst)
6596 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6597 ("atk" ,atk)
6598 ("pango" ,pango)
6599 ("gtk+" ,gtk+)
6600 ;; TODO:
6601 ;; * libgpod
6602 ;; * mx
6603 ("brasero" ,brasero)))
6604 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6605 (synopsis "Music player for GNOME")
6606 (description "Rhythmbox is a music playing application for GNOME. It
6607 supports playlists, song ratings, and any codecs installed through gstreamer.")
6608 (license license:gpl2+)))
6609
6610 (define-public eog
6611 (package
6612 (name "eog")
6613 (version "42.2")
6614 (source (origin
6615 (method url-fetch)
6616 (uri (string-append "mirror://gnome/sources/" name "/"
6617 (version-major version) "/"
6618 name "-" version ".tar.xz"))
6619 (sha256
6620 (base32
6621 "0ph4b05cjlkzbn8vil4hjkwvfr1cp819yi2qifp418p15rm4lk8f"))))
6622 (build-system meson-build-system)
6623 (arguments
6624 (list
6625 #:glib-or-gtk? #t
6626 #:configure-flags
6627 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6628 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
6629 #$output "/lib/eog"))
6630 #:phases
6631 #~(modify-phases %standard-phases
6632 (add-after 'unpack 'skip-gtk-update-icon-cache
6633 ;; Don't create 'icon-theme.cache'.
6634 (lambda _
6635 (substitute* "meson.build"
6636 (("gtk_update_icon_cache: true")
6637 "gtk_update_icon_cache: false"))))
6638 (add-after 'install 'wrap-eog
6639 (lambda* (#:key outputs #:allow-other-keys)
6640 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6641 (wrap-program (search-input-file outputs "bin/eog")
6642 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
6643 (propagated-inputs
6644 (list dconf))
6645 (native-inputs
6646 (list gettext-minimal
6647 itstool
6648 `(,glib "bin")
6649 gobject-introspection
6650 pkg-config
6651 libxml2))
6652 (inputs
6653 (list gnome-desktop
6654 shared-mime-info
6655 adwaita-icon-theme
6656 exempi
6657 lcms
6658 libexif
6659 libhandy
6660 libpeas
6661 libportal
6662 libjpeg-turbo
6663 librsvg
6664 gtk))
6665 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6666 (synopsis "GNOME image viewer")
6667 (description "Eye of GNOME is the GNOME image viewer. It
6668 supports image conversion, rotation, and slideshows.")
6669 (license license:gpl2+)))
6670
6671 (define-public eog-plugins
6672 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6673 ;; $DATA/eog/plugins, where DATA is one of the entries in
6674 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6675 ;; 'XDG_DATA_DIRS' appropriately set.
6676 (package
6677 (name "eog-plugins")
6678 (version "3.26.8")
6679 (source (origin
6680 (method url-fetch)
6681 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6682 (version-major+minor version) "/"
6683 "eog-plugins-" version ".tar.xz"))
6684 (sha256
6685 (base32
6686 "1dcxdjp7x092wn0iq7975f9b05ksb5kl5mxmyiqmydrja91ryw40"))))
6687 (build-system gnu-build-system)
6688 (arguments
6689 '(#:phases
6690 (modify-phases %standard-phases
6691 (add-after 'install 'fix-plugins-path
6692 ;; XXX: EOG looks its plugins in "share/eog/plugins", not in
6693 ;; "lib/eog/plugins".
6694 (lambda* (#:key outputs #:allow-other-keys)
6695 (let* ((out (assoc-ref outputs "out"))
6696 (plugins (string-append out "/share/eog/plugins")))
6697 (mkdir (dirname plugins))
6698 (symlink (string-append out "/lib/eog/plugins") plugins)))))))
6699 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6700 (synopsis "Extensions for the Eye of GNOME image viewer")
6701 (native-inputs
6702 (list pkg-config gettext-minimal))
6703 (inputs
6704 (list eog
6705 glib
6706 gtk+
6707 libpeas
6708 libexif
6709 libchamplain))
6710 (description
6711 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6712 notably:
6713
6714 @itemize
6715 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6716 @item @dfn{Map}, which displays a map of where the picture was taken on the
6717 side panel;
6718 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6719 @end itemize\n")
6720
6721 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6722 ;; long suspicious byte stream that goes to a
6723 ;; ".gresource.eog_postasa_plugin" ELF section.
6724 (license license:gpl2+)))
6725
6726 (define-public libgudev
6727 (package
6728 (name "libgudev")
6729 (version "236")
6730 (source (origin
6731 (method url-fetch)
6732 (uri (string-append "mirror://gnome/sources/" name "/"
6733 version "/" name "-" version ".tar.xz"))
6734 (sha256
6735 (base32
6736 "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
6737 (build-system meson-build-system)
6738 (native-inputs
6739 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6740 ("gobject-introspection" ,gobject-introspection)
6741 ("pkg-config" ,pkg-config)))
6742 (propagated-inputs
6743 (list glib ; in Requires of gudev-1.0.pc
6744 eudev)) ; in Requires.private of gudev-1.0.pc
6745 (inputs
6746 `(("udev" ,eudev)))
6747 (home-page "https://wiki.gnome.org/Projects/libgudev")
6748 (synopsis "GObject bindings for libudev")
6749 (description
6750 "This library provides GObject bindings for libudev. It was originally
6751 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6752 (license license:lgpl2.1+)))
6753
6754 (define-public gvfs
6755 (package
6756 (name "gvfs")
6757 (version "1.50.2")
6758 (source (origin
6759 (method url-fetch)
6760 (uri (string-append "mirror://gnome/sources/gvfs/"
6761 (version-major+minor version) "/"
6762 "gvfs-" version ".tar.xz"))
6763 (sha256
6764 (base32
6765 "0pmc0vda1ksm9l7v64h4bm8qnv16amb7nifgy0882hzg2n62pmq3"))))
6766 (build-system meson-build-system)
6767 (arguments
6768 (list #:glib-or-gtk? #t
6769 #:configure-flags
6770 #~(list "-Dsystemduserunitdir=no"
6771 "-Dtmpfilesdir=no"
6772 ;; Otherwise, the RUNPATH will lack the final path component.
6773 (string-append "-Dc_link_args=-Wl,-rpath="
6774 #$output "/lib/gvfs"))))
6775 (native-inputs
6776 (list `(,glib "bin") ;for glib-genmarshal, etc.
6777 gettext-minimal
6778 gtk-doc/stable
6779 pkg-config
6780 libxslt))
6781 (inputs
6782 (list avahi
6783 docbook-xml-4.2
6784 docbook-xsl
6785 dbus
6786 elogind
6787 fuse-3
6788 gcr
6789 glib
6790 gnome-online-accounts
6791 gsettings-desktop-schemas
6792 libarchive
6793 libbluray
6794 libcap
6795 libcdio-paranoia
6796 libgcrypt
6797 libgdata
6798 libgphoto2
6799 libgudev
6800 libimobiledevice
6801 libmtp
6802 libnfs
6803 libsecret
6804 samba
6805 libsoup
6806 libxml2
6807 openssh
6808 polkit
6809 udisks))
6810 (home-page "https://wiki.gnome.org/gvfs/")
6811 (synopsis "Userspace virtual file system for GIO")
6812 (description
6813 "GVFS is a userspace virtual file system designed to work with the I/O
6814 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS
6815 support to all applications using the GIO API. It also supports exposing the
6816 GVFS mounts to non-GIO applications using FUSE.
6817
6818 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6819 DAV, and others.")
6820 (license license:lgpl2.0+)))
6821
6822 (define-public gusb-minimal
6823 (package
6824 (name "gusb-minimal")
6825 (version "0.3.5")
6826 (source (origin
6827 (method git-fetch)
6828 (uri (git-reference
6829 (url "https://github.com/hughsie/libgusb")
6830 (commit version)))
6831 (file-name (git-file-name name version))
6832 (sha256
6833 (base32
6834 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6835 (build-system meson-build-system)
6836 (arguments
6837 `(#:tests? #f ;libusb fails to initialize. Wonder what that is.
6838 #:configure-flags
6839 (cons "-Ddocs=false"
6840 (if ,(%current-target-system)
6841 ;; Introspection data cannot currently be cross-compiled.
6842 '("-Dintrospection=false"
6843 ;; Requires introspection data.
6844 "-Dvapi=false")
6845 '()))))
6846 (native-inputs
6847 (list gobject-introspection pkg-config python vala))
6848 (propagated-inputs
6849 ;; Both of these are required by gusb.pc.
6850 (list glib libusb))
6851 (home-page "https://github.com/hughsie/libgusb")
6852 (synopsis "GLib binding for libusb1")
6853 (description
6854 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6855 asynchronous control, bulk and interrupt transfers with proper cancellation
6856 and integration into a mainloop. This makes it easy to integrate low level
6857 USB transfers with your high-level application or system daemon.")
6858 (license license:lgpl2.1+)))
6859
6860 (define-public gusb
6861 (package/inherit gusb-minimal
6862 (name "gusb")
6863 (arguments
6864 (substitute-keyword-arguments (package-arguments gusb-minimal)
6865 ((#:configure-flags flags)
6866 `(cons "-Ddocs=true"
6867 (delete "-Ddocs=false" ,flags)))))
6868 (native-inputs
6869 (cons `("gtk-doc" ,gtk-doc/stable)
6870 (package-native-inputs gusb-minimal)))))
6871
6872 (define-public simple-scan
6873 (package
6874 (name "simple-scan")
6875 (version "42.1")
6876 (source
6877 (origin
6878 (method url-fetch)
6879 (uri (string-append "mirror://gnome/sources/simple-scan/"
6880 (version-major version) "/"
6881 "simple-scan-" version ".tar.xz"))
6882 (sha256
6883 (base32 "09i23f8j3knppyxmikzfq9s09xarsgp9sqx9mfyvas8p3ihw16w5"))))
6884 (build-system meson-build-system)
6885 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6886 (arguments
6887 '(#:glib-or-gtk? #t))
6888 (native-inputs
6889 (list gettext-minimal
6890 itstool
6891 `(,glib "bin") ; glib-compile-schemas, etc.
6892 pkg-config
6893 python
6894 vala
6895 libxml2))
6896 (inputs
6897 (list gtk+
6898 zlib
6899 cairo
6900 colord
6901 gdk-pixbuf
6902 gusb
6903 libhandy
6904 sane-backends))
6905 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6906 (synopsis "Document and image scanner")
6907 (description
6908 "Document Scanner is an easy-to-use application that lets you connect your
6909 scanner and quickly capture images and documents in an appropriate format. It
6910 supports any scanner for which a suitable SANE driver is available, which is
6911 almost all of them.")
6912 (license license:gpl3+)))
6913
6914 (define-public eolie
6915 (package
6916 (name "eolie")
6917 (version "0.9.101")
6918 (source (origin
6919 (method url-fetch)
6920 (uri (string-append "https://adishatz.org/eolie/eolie-"
6921 version ".tar.xz"))
6922 (sha256
6923 (base32
6924 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6925 (build-system meson-build-system)
6926 (arguments
6927 `(#:glib-or-gtk? #t
6928 #:phases
6929 (modify-phases %standard-phases
6930 (add-after 'unpack 'skip-gtk-update-icon-cache
6931 ;; Don't create 'icon-theme.cache'.
6932 (lambda _
6933 (substitute* "meson_post_install.py"
6934 (("gtk-update-icon-cache") "true"))
6935 #t))
6936 (add-after 'wrap 'wrap-more
6937 (lambda* (#:key inputs outputs #:allow-other-keys)
6938 (let* ((out (assoc-ref outputs "out"))
6939 ;; These libraries must be on LD_LIBRARY_PATH.
6940 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6941 "atk" "gtk+" "gsettings-desktop-schemas"
6942 "gobject-introspection"))
6943 (path (string-join
6944 (map (lambda (lib)
6945 (string-append (assoc-ref inputs lib) "/lib"))
6946 libs)
6947 ":")))
6948 (wrap-program (string-append out "/bin/eolie")
6949 `("LD_LIBRARY_PATH" ":" prefix (,path))
6950 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
6951 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6952 #t)))))
6953 (native-inputs
6954 `(("intltool" ,intltool)
6955 ("itstool" ,itstool)
6956 ("pkg-config" ,pkg-config)
6957 ("python" ,python)
6958 ("glib:bin" ,glib "bin")))
6959 (inputs
6960 `(("gobject-introspection" ,gobject-introspection)
6961 ("glib-networking" ,glib-networking)
6962 ("cairo" ,cairo)
6963 ("gtk+" ,gtk+)
6964 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6965 ("python" ,python-wrapper)
6966 ("python-dateutil" ,python-dateutil)
6967 ("python-pyfxa" ,python-pyfxa)
6968 ("python-pygobject" ,python-pygobject)
6969 ("python-pycairo" ,python-pycairo)
6970 ("python-pycrypto" ,python-pycrypto)
6971 ("libhandy" ,libhandy)
6972 ("libsecret" ,libsecret)
6973 ("gtkspell3" ,gtkspell3)
6974 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6975 ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
6976 ("webkitgtk" ,webkitgtk)))
6977 (home-page "https://wiki.gnome.org/Apps/Eolie")
6978 (synopsis "Web browser for GNOME")
6979 (description
6980 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6981 a secret password store, an adblocker, and a modern UI.")
6982 (license license:gpl3+)))
6983
6984 (define-public epiphany
6985 (package
6986 (name "epiphany")
6987 (version "42.2")
6988 (source (origin
6989 (method url-fetch)
6990 (uri (string-append "mirror://gnome/sources/epiphany/"
6991 (version-major version) "/"
6992 "epiphany-" version ".tar.xz"))
6993 (sha256
6994 (base32
6995 "0b8rhns3b58f8dnp83mm1g933aqf88d8wrfyyp7jq3fihvw2rh4j"))))
6996 (build-system meson-build-system)
6997 (arguments
6998 (list
6999 #:glib-or-gtk? #t
7000 #:phases
7001 #~(modify-phases %standard-phases
7002 (add-after 'unpack 'skip-gtk-update-icon-cache
7003 ;; Don't create 'icon-theme.cache'.
7004 (lambda _
7005 (substitute* "post_install.py"
7006 (("gtk-update-icon-cache") "true"))))
7007 (add-after 'unpack 'disable-failing-tests
7008 (lambda _
7009 (substitute* "tests/meson.build"
7010 ;; embed_shell fails, because webkitgtk apparently no longer
7011 ;; supports overriding the ftp schema web_app_utils fails due
7012 ;; to missing network access.
7013 (("(embed_shell|web_app_utils)_test,")
7014 "find_program('sh'), args: ['-c', 'exit 77'],"))))
7015 (add-before 'check 'pre-check
7016 (lambda _
7017 ;; Tests require a running X server.
7018 (system "Xvfb :1 &")
7019 (setenv "DISPLAY" ":1"))))
7020 #:configure-flags
7021 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
7022 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7023 #$output "/lib/epiphany"))))
7024 (propagated-inputs (list dconf))
7025 (native-inputs (list desktop-file-utils ; for update-desktop-database
7026 `(,glib "bin") ; for glib-mkenums
7027 intltool
7028 itstool
7029 pkg-config
7030 libxml2
7031 xorg-server-for-tests))
7032 (inputs (list avahi
7033 gcr
7034 librsvg ; for loading SVG files
7035 glib-networking
7036 gnome-desktop
7037 gsettings-desktop-schemas
7038 json-glib
7039 iso-codes
7040 libarchive
7041 libdazzle
7042 libhandy
7043 libnotify
7044 libportal
7045 libsecret
7046 libxslt
7047 nettle ; for hogweed
7048 sqlite
7049 webkitgtk-with-libsoup2))
7050 (home-page "https://wiki.gnome.org/Apps/Web")
7051 (synopsis "GNOME web browser")
7052 (description
7053 "Epiphany is a GNOME web browser targeted at non-technical users. Its
7054 principles are simplicity and standards compliance.")
7055 (license license:gpl2+)))
7056
7057 (define-public d-feet
7058 (package
7059 (name "d-feet")
7060 (version "0.3.14")
7061 (source (origin
7062 (method url-fetch)
7063 (uri (string-append "mirror://gnome/sources/" name "/"
7064 (version-major+minor version) "/"
7065 name "-" version ".tar.xz"))
7066 (sha256
7067 (base32
7068 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
7069 (build-system glib-or-gtk-build-system)
7070 (arguments
7071 '(#:out-of-source? #f ; tests need to run in the source directory.
7072 #:phases
7073 (modify-phases %standard-phases
7074 (add-before
7075 'check 'pre-check
7076 (lambda _
7077 ;; The test suite requires a running X server.
7078 (system "Xvfb :1 &")
7079 (setenv "DISPLAY" ":1")
7080 ;; Don't fail on missing '/etc/machine-id'.
7081 (setenv "DBUS_FATAL_WARNINGS" "0")
7082 ;; tests.py and window.py don't meet E402:
7083 ;; E402 module level import not at top of file
7084 (substitute* "src/tests/Makefile"
7085 (("--ignore=E123") "--ignore=E123,E402"))
7086 #t))
7087 (add-after
7088 'install 'wrap-program
7089 (lambda* (#:key outputs #:allow-other-keys)
7090 (let ((prog (string-append (assoc-ref outputs "out")
7091 "/bin/d-feet")))
7092 (wrap-program prog
7093 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
7094 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
7095 #t))))))
7096 (native-inputs
7097 `(("intltool" ,intltool)
7098 ("itstool" ,itstool)
7099 ("pkg-config" ,pkg-config)
7100 ("python-pep8" ,python-pep8)
7101 ("xmllint" ,libxml2)
7102 ("xorg-server" ,xorg-server-for-tests)))
7103 (inputs
7104 `(("gobject-introspection" ,gobject-introspection)
7105 ("gtk+" ,gtk+)
7106 ("python" ,python-wrapper)
7107 ("hicolor-icon-theme" ,hicolor-icon-theme)
7108 ("python-pygobject" ,python-pygobject)))
7109 (home-page "https://wiki.gnome.org/Apps/DFeet")
7110 (synopsis "D-Bus debugger")
7111 (description
7112 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
7113 of running programs and invoke methods on those interfaces.")
7114 (license license:gpl2+)))
7115
7116 (define-public yelp-xsl
7117 (package
7118 (name "yelp-xsl")
7119 (version "41.0")
7120 (source
7121 (origin
7122 (method url-fetch)
7123 (uri
7124 (string-append "mirror://gnome/sources/" name "/"
7125 (version-major version) "/"
7126 name "-" version ".tar.xz"))
7127 (sha256
7128 (base32 "19d46rkajvr0f04560vlrzwvac88x5j8ilvzwkawbn5vjg069kf8"))))
7129 (build-system gnu-build-system)
7130 (arguments
7131 `(#:configure-flags
7132 (list
7133 "--enable-doc")))
7134 (native-inputs
7135 `(("ducktype" ,mallard-ducktype)
7136 ("gettext" ,gettext-minimal)
7137 ("intltool" ,intltool)
7138 ("itstool" ,itstool)
7139 ("xmllint" ,libxml2)
7140 ("xsltproc" ,libxslt)))
7141 (synopsis "XSL stylesheets for Yelp")
7142 (description "Yelp-XSL is a collection of programs and data files to help
7143 you build, maintain, and distribute documentation. It provides XSLT stylesheets
7144 that can be built upon for help viewers and publishing systems. These
7145 stylesheets output JavaScript and CSS content, and reference images
7146 provided by yelp-xsl. It also redistributes copies of the jQuery and
7147 jQuery.Syntax JavaScript libraries.")
7148 (home-page "https://wiki.gnome.org/Apps/Yelp")
7149 (license
7150 (list
7151 ;; XSLT
7152 license:gpl2+
7153 ;; Images
7154 license:lgpl2.1+
7155 ;; JavaScript
7156 license:expat))))
7157
7158 (define-public yelp
7159 (package
7160 (name "yelp")
7161 (version "41.0")
7162 (source (origin
7163 (method url-fetch)
7164 (uri (string-append "mirror://gnome/sources/" name "/"
7165 (version-major version) "/"
7166 name "-" version ".tar.xz"))
7167 (sha256
7168 (base32
7169 "11shrqass8ak8m10nayqssa6sbrrxa13ffpamvqi1c0yzkxdk9r5"))))
7170 (build-system glib-or-gtk-build-system)
7171 (native-inputs
7172 (list `(,glib "bin") ; for glib-genmarshal, etc.
7173 intltool itstool pkg-config))
7174 (propagated-inputs
7175 (list dconf))
7176 (inputs
7177 (list gsettings-desktop-schemas libxslt sqlite webkitgtk yelp-xsl))
7178 (home-page "https://wiki.gnome.org/Apps/Yelp")
7179 (synopsis "GNOME help browser")
7180 (description
7181 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
7182 man, info, and HTML documents. It can locate documents according to the
7183 freedesktop.org help system specification.")
7184 (license license:gpl2+)))
7185
7186 (define-public yelp-tools
7187 (package
7188 (name "yelp-tools")
7189 (version "3.32.2")
7190 (source
7191 (origin
7192 (method url-fetch)
7193 (uri
7194 (string-append "mirror://gnome/sources/" name "/"
7195 (version-major+minor version) "/"
7196 name "-" version ".tar.xz"))
7197 (sha256
7198 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
7199 (build-system gnu-build-system)
7200 (native-inputs
7201 (list pkg-config))
7202 (inputs
7203 (list yelp-xsl))
7204 (propagated-inputs
7205 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
7206 `(("itstool" ,itstool)
7207 ("xmllint" ,libxml2)
7208 ("xsltproc" ,libxslt)))
7209 (synopsis "Yelp documentation tools")
7210 (description
7211 "Yelp-tools is a collection of scripts and build utilities to help create,
7212 manage, and publish documentation for Yelp and the web. Most of the heavy
7213 lifting is done by packages like yelp-xsl and itstool. This package just
7214 wraps things up in a developer-friendly way.")
7215 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
7216 (license license:gpl2+)))
7217
7218 (define-public libgee
7219 (package
7220 (name "libgee")
7221 (version "0.20.3")
7222 (source (origin
7223 (method url-fetch)
7224 (uri (string-append "mirror://gnome/sources/libgee/"
7225 (version-major+minor version) "/"
7226 "libgee-" version ".tar.xz"))
7227 (sha256
7228 (base32
7229 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
7230 (build-system gnu-build-system)
7231 (arguments
7232 `(#:phases
7233 (modify-phases %standard-phases
7234 (add-after 'unpack 'fix-introspection-install-dir
7235 (lambda* (#:key outputs #:allow-other-keys)
7236 (let ((out (assoc-ref outputs "out")))
7237 (substitute* "gee/Makefile.in"
7238 (("@INTROSPECTION_GIRDIR@")
7239 (string-append out "/share/gir-1.0/"))
7240 (("@INTROSPECTION_TYPELIBDIR@")
7241 (string-append out "/lib/girepository-1.0/")))))))))
7242 (native-inputs
7243 (list `(,glib "bin") pkg-config))
7244 (inputs
7245 (list glib gobject-introspection))
7246 (home-page "https://wiki.gnome.org/Projects/Libgee")
7247 (synopsis "GObject collection library")
7248 (description
7249 "Libgee is a utility library providing GObject-based interfaces and
7250 classes for commonly used data structures.")
7251 (license license:lgpl2.1+)))
7252
7253 (define-public gexiv2
7254 (package
7255 (name "gexiv2")
7256 (version "0.12.2")
7257 (source (origin
7258 (method url-fetch)
7259 (uri (string-append "mirror://gnome/sources/" name "/"
7260 (version-major+minor version) "/"
7261 name "-" version ".tar.xz"))
7262 (sha256
7263 (base32
7264 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
7265 (build-system meson-build-system)
7266 (native-inputs
7267 (list gcr
7268 `(,glib "bin") pkg-config vala))
7269 (propagated-inputs
7270 ;; Listed in "Requires" section of gexiv2.pc
7271 (list exiv2))
7272 (inputs
7273 (list glib gobject-introspection))
7274 (home-page "https://wiki.gnome.org/Projects/gexiv2")
7275 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
7276 (description
7277 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
7278 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
7279 metadata in photo and video files of various formats.")
7280 (license license:gpl2+)))
7281
7282 (define-public shotwell
7283 (package
7284 (name "shotwell")
7285 (version "0.30.16")
7286 (source (origin
7287 (method url-fetch)
7288 (uri (string-append "mirror://gnome/sources/shotwell/"
7289 (version-major+minor version) "/"
7290 "shotwell-" version ".tar.xz"))
7291 (sha256
7292 (base32
7293 "1yhqfmz49qkls4i6xaznm5ybwzv19jxsqjdic60wn0ykvbxjr269"))))
7294 (build-system meson-build-system)
7295 (arguments
7296 '(#:glib-or-gtk? #t
7297 #:phases
7298 (modify-phases %standard-phases
7299 (add-after 'unpack 'skip-gtk-update-icon-cache
7300 (lambda _
7301 (substitute* "build-aux/meson/postinstall.py"
7302 (("gtk-update-icon-cache") (which "true"))
7303 (("update-desktop-database") (which "true")))
7304 #t)))))
7305 (propagated-inputs
7306 (list dconf))
7307 (native-inputs
7308 `(("gettext" ,gettext-minimal)
7309 ("glib:bin" ,glib "bin")
7310 ("itstool" ,itstool)
7311 ("pkg-config" ,pkg-config)
7312 ("python" ,python)
7313 ("vala" ,vala)))
7314 (inputs
7315 `(("gcr" ,gcr)
7316 ("gexiv2" ,gexiv2)
7317 ("gst-plugins-base" ,gst-plugins-base)
7318 ("gstreamer" ,gstreamer)
7319 ("json-glib" ,json-glib)
7320 ("libgdata" ,libgdata)
7321 ("libgee" ,libgee)
7322 ("libgphoto2" ,libgphoto2)
7323 ("libgudev" ,libgudev)
7324 ("libraw" ,libraw)
7325 ("libxml2" ,libxml2)
7326 ("sqlite" ,sqlite)
7327 ("webkitgtk" ,webkitgtk-with-libsoup2)))
7328 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7329 (synopsis "Photo manager for GNOME 3")
7330 (description
7331 "Shotwell is a digital photo manager designed for the GNOME desktop
7332 environment. It allows you to import photos from disk or camera, organize
7333 them by keywords and events, view them in full-window or fullscreen mode, and
7334 share them with others via social networking and more.")
7335 (license license:lgpl2.1+)))
7336
7337 (define-public file-roller
7338 (package
7339 (name "file-roller")
7340 (version "3.40.0")
7341 (source (origin
7342 (method url-fetch)
7343 (uri (string-append "mirror://gnome/sources/file-roller/"
7344 (version-major+minor version) "/"
7345 "file-roller-" version ".tar.xz"))
7346 (sha256
7347 (base32
7348 "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a"))))
7349 (build-system meson-build-system)
7350 (native-inputs
7351 (list desktop-file-utils ; for update-desktop-database
7352 intltool
7353 itstool
7354 pkg-config
7355 python
7356 `(,gtk+ "bin") ; gtk-update-icon-cache
7357 `(,glib "bin")))
7358 ;; TODO: Add libnautilus.
7359 (inputs
7360 (list gtk+
7361 gdk-pixbuf
7362 json-glib
7363 libarchive
7364 libnotify
7365 nettle
7366 libxml2))
7367 (synopsis "Graphical archive manager for GNOME")
7368 (description "File Roller is an archive manager for the GNOME desktop
7369 environment that allows users to view, unpack, and create compressed archives
7370 such as gzip tarballs.")
7371 (home-page "http://fileroller.sourceforge.net/")
7372 (license license:gpl2+)))
7373
7374 (define-public gnome-session
7375 (package
7376 (name "gnome-session")
7377 (version "42.0")
7378 (source (origin
7379 (method url-fetch)
7380 (uri (string-append "mirror://gnome/sources/" name "/"
7381 (version-major version) "/"
7382 name "-" version ".tar.xz"))
7383 (patches (search-patches "gnome-session-support-elogind.patch"))
7384 (sha256
7385 (base32
7386 "1alwjqr36rd0s132qs2clwnxgilcbylps6lm41lr50mn782hdjiw"))))
7387 (arguments
7388 `(#:glib-or-gtk? #t
7389 #:phases
7390 (modify-phases %standard-phases
7391 (add-after 'install 'wrap-gnome-session
7392 (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
7393 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7394 (wrap-program (search-input-file outputs "bin/gnome-session")
7395 `("PATH" ":" prefix
7396 (,(dirname (search-input-file (or native-inputs inputs)
7397 "bin/gdbus"))))))))
7398 #:configure-flags
7399 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7400 "-Dman=false" ; FIXME: disabled because of docbook validation error
7401 "-Delogind=true"
7402 "-Dsystemd=false"
7403 "-Dsystemd_session=disable"
7404 "-Dsystemd_journal=false")))
7405 (build-system meson-build-system)
7406 (native-inputs
7407 (list docbook-xml
7408 docbook-xsl
7409 `(,glib "bin") ; for glib-compile-schemas, etc.
7410 intltool
7411 libxml2 ;for 'XML_CATALOG_FILES'
7412 libxslt
7413 pkg-config
7414 xmlto))
7415 (inputs
7416 (list elogind
7417 gnome-desktop
7418 gsettings-desktop-schemas
7419 gtk+
7420 json-glib
7421 libsm
7422 libxcomposite
7423 libxtst
7424 mesa
7425 upower
7426 xtrans))
7427 (synopsis "Session manager for GNOME")
7428 (description
7429 "This package contains the GNOME session manager, as well as a
7430 configuration program to choose applications starting on login.")
7431 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7432 (license license:gpl2+)))
7433
7434 (define-public gjs
7435 (package
7436 (name "gjs")
7437 (version "1.72.2")
7438 (source (origin
7439 (method url-fetch)
7440 (uri (string-append "mirror://gnome/sources/" name "/"
7441 (version-major+minor version) "/"
7442 name "-" version ".tar.xz"))
7443 (sha256
7444 (base32
7445 "0xrrv9lsi087yb9yf146a1aarf5yh6rf4jw9blx30zasvjdkgvnx"))
7446 (modules '((guix build utils)))
7447 (snippet
7448 '(begin
7449 (substitute* "installed-tests/scripts/testCommandLine.sh"
7450 (("Valentín") "")
7451 (("☭") ""))))))
7452 (build-system meson-build-system)
7453 (arguments
7454 '(#:configure-flags '("-Dinstalled_tests=false")
7455 #:phases
7456 (modify-phases %standard-phases
7457 (add-before 'check 'pre-check
7458 (lambda _
7459 ;; The test suite requires a running X server.
7460 (system "Xvfb :1 &")
7461 (setenv "DISPLAY" ":1")
7462
7463 ;; For the missing /etc/machine-id.
7464 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
7465 (native-inputs
7466 (list `(,glib "bin") ;for glib-compile-resources
7467 pkg-config
7468 libxml2
7469 ;; For testing
7470 dbus
7471 dconf ;required to properly store settings
7472 util-linux
7473 xorg-server-for-tests))
7474 (propagated-inputs
7475 ;; These are all in the Requires.private field of gjs-1.0.pc.
7476 (list cairo gobject-introspection mozjs-91))
7477 (inputs
7478 (list gtk+ readline))
7479 (synopsis "Javascript bindings for GNOME")
7480 (home-page "https://wiki.gnome.org/Gjs")
7481 (description
7482 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7483 javascript engine and the GObject introspection framework.")
7484 (license license:gpl2+)))
7485
7486 (define-public gedit
7487 (package
7488 (name "gedit")
7489 (version "42.2")
7490 (source (origin
7491 (method url-fetch)
7492 (uri (string-append "mirror://gnome/sources/" name "/"
7493 (version-major version) "/"
7494 name "-" version ".tar.xz"))
7495 (sha256
7496 (base32
7497 "1jlgzihi4ywvlr4xj2vbnnxzar8j3mwj0jcn8jp6dh0a3w8jjqiw"))))
7498 (build-system meson-build-system)
7499 (arguments
7500 (list
7501 #:glib-or-gtk? #t
7502 #:configure-flags
7503 ;; Otherwise, the RUNPATH will lack the final path component.
7504 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7505 #$output "/lib/gedit"))
7506 #:phases
7507 #~(modify-phases %standard-phases
7508 (add-after 'unpack 'skip-gtk-update-icon-cache
7509 ;; Don't create 'icon-theme.cache'.
7510 (lambda _
7511 (substitute* "build-aux/meson/post_install.py"
7512 (("gtk-update-icon-cache") (which "true")))))
7513 (add-after 'unpack 'do-not-invoke-git
7514 (lambda* (#:key inputs #:allow-other-keys)
7515 (substitute* "meson.build"
7516 ((".*git.*") ""))))
7517 (add-after 'install 'wrap-gedit
7518 (lambda* (#:key outputs #:allow-other-keys)
7519 (wrap-program (search-input-file outputs "bin/gedit")
7520 ;; For plugins.
7521 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
7522 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
7523 ;; For language-specs.
7524 `("XDG_DATA_DIRS" ":" prefix
7525 (,(string-append #$(this-package-input "gtksourceview")
7526 "/share")))))))))
7527 (propagated-inputs
7528 (list dconf))
7529 (native-inputs
7530 (list desktop-file-utils ;for update-desktop-database
7531 `(,glib "bin") ;for glib-mkenums, etc.
7532 gobject-introspection
7533 intltool
7534 itstool
7535 libxml2
7536 pkg-config
7537 python
7538 vala))
7539 (inputs
7540 (list adwaita-icon-theme
7541 bash-minimal
7542 glib
7543 gsettings-desktop-schemas
7544 gspell
7545 gtk+
7546 gtksourceview-4
7547 libpeas
7548 libsoup
7549 python
7550 python-pygobject))
7551 (home-page "https://wiki.gnome.org/Apps/Gedit")
7552 (synopsis "GNOME text editor")
7553 (description "While aiming at simplicity and ease of use, gedit is a
7554 powerful general purpose text editor.")
7555 (license license:gpl2+)))
7556
7557 (define-public zenity
7558 (package
7559 (name "zenity")
7560 (version "3.43.0")
7561 (source (origin
7562 (method url-fetch)
7563 (uri (string-append "mirror://gnome/sources/zenity/"
7564 (version-major+minor version) "/"
7565 "zenity-" version ".tar.xz"))
7566 (sha256
7567 (base32
7568 "0czq2vx636xbvg7zbdqkxq41zgm7v1h048awy0cgls0q1hgcmmxh"))))
7569 (build-system meson-build-system)
7570 (arguments
7571 (list #:phases #~(modify-phases %standard-phases
7572 (add-after 'unpack 'disable-gtk-update-icon-cache
7573 ;; The gtk-update-icon-cache tool is only run when
7574 ;; DESTDIR is unset.
7575 (lambda _
7576 (setenv "DESTDIR" "/"))))))
7577 (native-inputs (list gettext-minimal itstool pkg-config))
7578 (inputs (list gtk+))
7579 (synopsis "Display graphical dialog boxes from shell scripts")
7580 (home-page "https://www.gnome.org")
7581 (description
7582 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7583 to display dialog boxes from the commandline and shell scripts.")
7584 (license license:lgpl2.0+)))
7585
7586 (define-public mutter
7587 (package
7588 (name "mutter")
7589 (version "42.4")
7590 (source (origin
7591 (method url-fetch)
7592 (uri (string-append "mirror://gnome/sources/" name "/"
7593 (version-major version) "/"
7594 name "-" version ".tar.xz"))
7595 (sha256
7596 (base32
7597 "0h1ak3201mdc2qbf67fhcn801ddp33hm0f0c52zis1l7s6ipyb62"))))
7598 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7599 ;; versions of cogl and clutter. As a result, many of the inputs,
7600 ;; propagated-inputs, and configure flags used in cogl and clutter are
7601 ;; needed here as well.
7602 (build-system meson-build-system)
7603 (arguments
7604 (list
7605 #:imported-modules `(,@%meson-build-system-modules
7606 (guix build syscalls))
7607 #:modules '((guix build meson-build-system)
7608 (guix build syscalls)
7609 (guix build utils)
7610 (ice-9 match))
7611 #:glib-or-gtk? #t
7612 #:configure-flags
7613 #~(list
7614 ;; Otherwise, the RUNPATH will lack the final path component.
7615 (string-append "-Dc_link_args=-Wl,-rpath="
7616 #$output "/lib:"
7617 #$output "/lib/mutter-9")
7618 ;; Disable systemd support.
7619 "-Dsystemd=false"
7620 ;; The following flags are needed for the bundled clutter
7621 (string-append "-Dxwayland_path="
7622 (search-input-file %build-inputs "bin/Xwayland"))
7623 ;; the remaining flags are needed for the bundled cogl
7624 (string-append "-Dopengl_libname="
7625 (search-input-file %build-inputs "lib/libGL.so"))
7626 (string-append "-Dgles2_libname="
7627 (search-input-file %build-inputs "lib/libGLESv2.so"))
7628 "-Degl_device=true" ;false by default
7629 "-Dwayland_eglstream=true") ;false by default
7630 #:test-options '(list "--verbose")
7631 #:phases
7632 #~(modify-phases %standard-phases
7633 (add-after 'unpack 'adjust-runpath-linker-directives
7634 (lambda _
7635 ;; By default Mutter uses RPATH instead of RUNPATH, which our
7636 ;; customized linker script makes use of. Some libraries are
7637 ;; also installed under lib/mutter-10 and need to be added to
7638 ;; the RUNPATH.
7639 (substitute* "meson.build"
7640 (("'-Wl,--disable-new-dtags'")
7641 (string-append "'-Wl,-rpath=" #$output "/lib/mutter-10'")))))
7642 (add-after 'unpack 'patch-dlopen-calls
7643 (lambda* (#:key inputs #:allow-other-keys)
7644 (substitute* "src/wayland/meta-wayland-egl-stream.c"
7645 (("libnvidia-egl-wayland.so.1")
7646 (search-input-file inputs "lib/libnvidia-egl-wayland.so.1")))))
7647 (add-before 'configure 'set-udev-dir
7648 (lambda _
7649 (setenv "PKG_CONFIG_UDEV_UDEVDIR"
7650 (string-append #$output "/lib/udev"))))
7651 (add-after 'unpack 'disable-problematic-tests
7652 (lambda _
7653 ;; The native-headless test hangs due to attempting to use audio,
7654 ;; unavailable in the container.
7655 ;; Note: the following sed expression deletes the whole test(...)
7656 ;; expression paragraph. For an explanation, see: info '(sed)
7657 ;; Multiline techniques'.
7658 (invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//"
7659 "-i" "src/tests/meson.build")
7660 ;; Timeline tests may unexpectedly fail on missed frames, so
7661 ;; let's disable them as well.
7662 ;; See <https://gitlab.gnome.org/GNOME/mutter/-/issues/2125>
7663 (substitute* "src/tests/clutter/conform/meson.build"
7664 (("'timeline.*',") ""))))
7665 (replace 'check
7666 (lambda* (#:key tests? test-options parallel-tests?
7667 #:allow-other-keys)
7668 (when tests?
7669 ;; Setup (see the 'test-mutter' CI target at
7670 ;; https://gitlab.gnome.org/GNOME/mutter/-/raw/main/.gitlab-ci.yml).
7671 (setenv "HOME" "/tmp")
7672 (setenv "XDG_RUNTIME_DIR" (string-append (getcwd)
7673 "/runtime-dir"))
7674 (mkdir (getenv "XDG_RUNTIME_DIR"))
7675 (chmod (getenv "XDG_RUNTIME_DIR") #o700)
7676
7677 (setenv "GSETTINGS_SCHEMA_DIR" "data")
7678 (setenv "MUTTER_DEBUG_DUMMY_MODE_SPECS" "800x600@10.0")
7679 (setenv "PIPEWIRE_DEBUG" "2")
7680 (setenv "PIPEWIRE_LOG" "meson-logs/pipewire.log")
7681 (setenv "XVFB_SERVER_ARGS" "+iglx -noreset")
7682 (setenv "G_SLICE" "always-malloc")
7683 (setenv "MALLOC_CHECK" "3")
7684 (setenv "NO_AT_BRIDGE" "1")
7685 ;; This is needed, otherwise the "mutter:core+mutter/unit /
7686 ;; anonymous-file" test would fail (see:
7687 ;; https://gitlab.gnome.org/GNOME/mutter/-/issues/2017).
7688 (setenv "CI_JOB_ID" "1")
7689
7690 (invoke "glib-compile-schemas" (getenv "GSETTINGS_SCHEMA_DIR"))
7691 (mkdir-p (getenv "XDG_RUNTIME_DIR"))
7692 (chmod (getenv "XDG_RUNTIME_DIR") #o755)
7693 (invoke "pipewire" "--version") ;check for pipewire
7694 (system "pipewire &") ;always returns 0 due to forking
7695
7696 (setenv "MESON_TESTTHREADS"
7697 (if parallel-tests?
7698 (number->string (parallel-job-count))
7699 "1"))
7700 (match (primitive-fork)
7701 (0 ;child process
7702 (set-child-subreaper!)
7703 ;; Use tini so that signals are properly handled and
7704 ;; doubly-forked processes get reaped; otherwise,
7705 ;; python-dbusmock would waste time polling for the dbus
7706 ;; processes it spawns to be reaped, in vain.
7707 (apply execlp "tini" "--"
7708 "dbus-run-session" "--"
7709 "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
7710 "meson" "test" "-t" "0" "--print-errorlogs"
7711 test-options))
7712 (pid
7713 (match (waitpid pid)
7714 ((_ . status)
7715 (unless (zero? status)
7716 (error "`meson test' exited with status"
7717 status))))))))))))
7718 (native-inputs
7719 (list desktop-file-utils ;for update-desktop-database
7720 `(,glib "bin") ;for glib-compile-schemas, etc.
7721 gobject-introspection
7722 intltool
7723 pkg-config
7724 xvfb-run
7725 ;; For git build
7726 autoconf
7727 automake
7728 libtool
7729 wayland-protocols-next
7730 ;; For tests.
7731 ;; Warnings are configured to be fatal during the tests; add an icon
7732 ;; theme to please libxcursor.
7733 adwaita-icon-theme
7734 libxcursor ;for XCURSOR_PATH
7735 pipewire-0.3
7736 python
7737 python-dbus
7738 python-dbusmock
7739 tini)) ;acting as init (zombie reaper)
7740 (propagated-inputs
7741 (list gsettings-desktop-schemas-next ;required by libmutter.pc
7742 gtk+ ;required by libmutter.pc
7743 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7744 atk
7745 cairo
7746 eudev
7747 gdk-pixbuf
7748 glib
7749 json-glib
7750 libinput
7751 libx11
7752 libxcomposite
7753 libxcvt
7754 libxdamage
7755 libxext
7756 libxfixes
7757 libxkbcommon
7758 libxml2
7759 libxrandr
7760 mesa
7761 pango
7762 xinput))
7763 (inputs
7764 (list egl-wayland ;for wayland-eglstream-protocols
7765 elogind
7766 gnome-desktop
7767 gnome-settings-daemon
7768 graphene
7769 libcanberra
7770 libgudev
7771 libice
7772 libsm
7773 libwacom
7774 libxkbfile
7775 libxrandr
7776 libxtst
7777 pipewire-0.3
7778 startup-notification
7779 sysprof
7780 upower
7781 xkeyboard-config
7782 xorg-server-xwayland
7783 zenity))
7784 (synopsis "Window and compositing manager")
7785 (home-page "https://www.gnome.org")
7786 (description
7787 "Mutter is a window and compositing manager that displays and manages your
7788 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7789 Clutter toolkit with solid window-management logic inherited from the Metacity
7790 window manager.")
7791 (license license:gpl2+)))
7792
7793 (define-public gnome-online-accounts
7794 (package
7795 (name "gnome-online-accounts")
7796 (version "3.45.2")
7797 (source (origin
7798 (method url-fetch)
7799 (uri (string-append "mirror://gnome/sources/" name "/"
7800 (version-major+minor version) "/"
7801 name "-" version ".tar.xz"))
7802 (sha256
7803 (base32
7804 "15zzzndbfba8a497vxb6cmy1y22l3lfn4sx9s9r59kwzd83i6fxn"))))
7805 (build-system meson-build-system)
7806 (arguments
7807 (list
7808 #:glib-or-gtk? #t
7809 #:phases
7810 #~(modify-phases %standard-phases
7811 (add-before 'install 'disable-gtk-update-icon-cache
7812 (lambda _
7813 (setenv "DESTDIR" "/"))))))
7814 (native-inputs
7815 (list gettext-minimal
7816 `(,glib "bin") ; for glib-compile-schemas, etc.
7817 gobject-introspection
7818 libxslt
7819 pkg-config
7820 vala))
7821 (propagated-inputs
7822 (list glib ; required by goa-1.0.pc
7823 gtk+)) ; required by goa-backend-1.0.pc
7824 (inputs
7825 (list docbook-xsl
7826 gcr
7827 json-glib
7828 libsecret
7829 mit-krb5
7830 rest-next
7831 webkitgtk))
7832 (synopsis "Single sign-on framework for GNOME")
7833 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7834 (description
7835 "GNOME Online Accounts provides interfaces so that applications and
7836 libraries in GNOME can access the user's online accounts. It has providers
7837 for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare,
7838 Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7839 (license license:lgpl2.0+)))
7840
7841 (define-public gnome-online-accounts-3.44
7842 (package
7843 (inherit gnome-online-accounts)
7844 (name "gnome-online-accounts")
7845 (version "3.44.0")
7846 (source (origin
7847 (method url-fetch)
7848 (uri (string-append "mirror://gnome/sources/" name "/"
7849 (version-major+minor version) "/"
7850 name "-" version ".tar.xz"))
7851 (sha256
7852 (base32
7853 "0hkkxa3zqyl0i4kw1p3ak4alwxw4wydh9al6fzwbcdgl0r0ms79q"))))
7854 (build-system glib-or-gtk-build-system)
7855 (arguments (substitute-keyword-arguments
7856 (strip-keyword-arguments
7857 '(#:glib-or-gtk?)
7858 (package-arguments gnome-online-accounts))
7859 ((#:phases phases)
7860 #~(modify-phases #$phases
7861 (delete 'disable-gtk-update-icon-cache)))))
7862 (inputs (modify-inputs (package-inputs gnome-online-accounts)
7863 (replace "rest" rest)
7864 (replace "webkitgtk" webkitgtk-with-libsoup2)))))
7865
7866 (define-public evolution-data-server
7867 (package
7868 (name "evolution-data-server")
7869 (version "3.44.4")
7870 (source
7871 (origin
7872 (method url-fetch)
7873 (uri (string-append "mirror://gnome/sources/" name "/"
7874 (version-major+minor version) "/"
7875 name "-" version ".tar.xz"))
7876 (sha256
7877 (base32 "1sxjrjr31wqbp9g4pf6dwj8rc4mi7c5fbfd489ha92ym7246bin0"))))
7878 (build-system cmake-build-system)
7879 (arguments
7880 (list
7881 #:configure-flags
7882 #~(let* ((lib (string-append #$output "/lib"))
7883 (runpaths (map (lambda (s)
7884 (string-append lib "/evolution-data-server/" s))
7885 '("addressbook-backends" "calendar-backends"
7886 "camel-providers" "credential-modules"
7887 "registry-modules"))))
7888 (list "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7889 "-DENABLE_VALA_BINDINGS=ON"
7890 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7891 (string-append lib "/evolution-data-server;")
7892 (string-join runpaths ";"))
7893 "-DENABLE_INTROSPECTION=ON" ;required for Vala bindings
7894 "-DWITH_PHONENUMBER=ON"))
7895 #:phases
7896 #~(modify-phases %standard-phases
7897 (add-after 'unpack 'disable-failing-tests
7898 (lambda _
7899 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7900 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7901 (delete-file-recursively "tests/book-migration")
7902 (substitute* "tests/CMakeLists.txt"
7903 (("add_subdirectory\\(book-migration\\)") ""))))
7904 (add-after 'unpack 'patch-paths
7905 (lambda _
7906 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7907 "tests/libedata-book/data-test-utils.c"
7908 "tests/libedata-book/test-book-cache-utils.c"
7909 "tests/libedata-cal/test-cal-cache-utils.c")
7910 (("/bin/rm") (which "rm")))))
7911 (add-before 'configure 'dont-override-rpath
7912 (lambda _
7913 (substitute* "CMakeLists.txt"
7914 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7915 ;; Remove it so the configure flag is respected.
7916 (("SET\\(CMAKE_INSTALL_RPATH .*") "")))))))
7917 (native-inputs
7918 (list `(,glib "bin") ; for glib-mkenums, etc.
7919 gobject-introspection
7920 gperf
7921 gsettings-desktop-schemas
7922 intltool
7923 pkg-config
7924 protobuf
7925 vala
7926 python-wrapper))
7927 (propagated-inputs
7928 ;; These are all in the Requires field of .pc files.
7929 (list gtk+
7930 libical
7931 libsecret
7932 libsoup-minimal-2
7933 nss
7934 sqlite))
7935 (inputs
7936 (list bdb
7937 boost
7938 gcr
7939 gnome-online-accounts
7940 json-glib
7941 libcanberra
7942 libgweather
7943 libphonenumber
7944 mit-krb5
7945 openldap
7946 webkitgtk-with-libsoup2))
7947 (synopsis "Store address books and calendars")
7948 (home-page "https://wiki.gnome.org/Apps/Evolution")
7949 (description
7950 "This package provides a unified backend for programs that work with
7951 contacts, tasks, and calendar information. It was originally developed for
7952 Evolution (hence the name), but is now used by other packages as well.")
7953 (license license:lgpl2.0)))
7954
7955 (define-public caribou
7956 (package
7957 (name "caribou")
7958 (version "0.4.21")
7959 (source (origin
7960 (method url-fetch)
7961 (uri (string-append "mirror://gnome/sources/" name "/"
7962 (version-major+minor version) "/"
7963 name "-" version ".tar.xz"))
7964 (sha256
7965 (base32
7966 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7967 (build-system glib-or-gtk-build-system)
7968 (arguments
7969 '(#:phases
7970 (modify-phases %standard-phases
7971 (add-before
7972 'build 'pre-build
7973 (lambda* (#:key outputs #:allow-other-keys)
7974 (let ((out (assoc-ref outputs "out")))
7975 ;; Use absolute shared library path in Caribou-1.0.typelib.
7976 (substitute* "libcaribou/Makefile"
7977 (("--shared-library=libcaribou.so")
7978 (string-append "--shared-library="
7979 out "/lib/libcaribou.so")))
7980 #t)))
7981 (add-after 'install 'wrap-programs
7982 (lambda* (#:key outputs #:allow-other-keys)
7983 (let* ((out (assoc-ref outputs "out"))
7984 (python-path (getenv "GUIX_PYTHONPATH"))
7985 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7986 (for-each
7987 (lambda (prog)
7988 (wrap-program prog
7989 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
7990 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7991 (list (string-append out "/bin/caribou-preferences")
7992 (string-append out "/libexec/antler-keyboard"))))
7993 #t)))))
7994 (native-inputs
7995 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7996 ("gobject-introspection" ,gobject-introspection)
7997 ("intltool" ,intltool)
7998 ("pkg-config" ,pkg-config)
7999 ("python" ,python)
8000 ("vala" ,vala)
8001 ("xsltproc" ,libxslt)))
8002 (propagated-inputs
8003 ;; caribou-1.0.pc refers to all these.
8004 (list libgee libxklavier libxtst gtk+))
8005 (inputs
8006 `(("clutter" ,clutter)
8007 ("dconf" ,dconf)
8008 ("gtk+-2" ,gtk+-2)
8009 ("python-pygobject" ,python-pygobject)))
8010 (synopsis "Text entry and UI navigation application")
8011 (home-page "https://wiki.gnome.org/Projects/Caribou")
8012 (description
8013 "Caribou is an input assistive technology intended for switch and pointer
8014 users.")
8015 (license license:lgpl2.1)))
8016
8017 (define-public network-manager
8018 (package
8019 (name "network-manager")
8020 (version "1.40.0")
8021 (source (origin
8022 (method url-fetch)
8023 (uri (string-append "mirror://gnome/sources/NetworkManager/"
8024 (version-major+minor version) "/"
8025 "NetworkManager-" version ".tar.xz"))
8026 (patches (search-patches "network-manager-plugin-path.patch"
8027 "network-manager-meson.patch"))
8028 (sha256
8029 (base32
8030 "00zwx7cvl8p8xv5h8yvlj2r5wycbvbqia7z4hjmmvjicpiby1rxf"))))
8031 (build-system meson-build-system)
8032 (outputs '("out"
8033 "doc")) ; 8 MiB of gtk-doc HTML
8034 (arguments
8035 (list
8036 #:configure-flags
8037 #~(list
8038 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
8039 ;; component.
8040 (string-append "-Dc_link_args=-Wl,-rpath="
8041 #$output "/lib:"
8042 #$output "/lib/NetworkManager/" #$version)
8043 "-Dsystemd_journal=false"
8044 "-Dsession_tracking=elogind"
8045 "-Dsuspend_resume=elogind"
8046 "-Dsystemdsystemunitdir=no"
8047 "-Dsession_tracking_consolekit=false"
8048 "-Ddhcpcd=no"
8049 "-Ddhcpcanon=no"
8050 "-Dcrypto=gnutls"
8051 "-Diwd=true"
8052 "-Dlibaudit=yes"
8053 "-Dqt=false"
8054 "-Ddocs=true"
8055 "--sysconfdir=/etc"
8056 "--localstatedir=/var"
8057 (string-append "-Dudev_dir="
8058 #$output "/lib/udev")
8059 (string-append "-Ddbus_conf_dir="
8060 #$output "/etc/dbus-1/system.d")
8061
8062 (string-append "-Ddhclient=" (search-input-file %build-inputs
8063 "/sbin/dhclient")))
8064 #:phases
8065 #~(modify-phases %standard-phases
8066 (add-after 'unpack 'patch-dlopen-call-to-libjansson.so
8067 (lambda* (#:key inputs #:allow-other-keys)
8068 (substitute* "src/libnm-glib-aux/nm-json-aux.c"
8069 (("(handle = dlopen\\()soname" _ head)
8070 (string-append
8071 head "\"" (search-input-file inputs
8072 "lib/libjansson.so") "\"")))))
8073 (add-before 'configure 'pre-configure
8074 (lambda _
8075 ;; These tests try to test aspects of network-manager's
8076 ;; functionality within restricted containers, but they don't
8077 ;; cope with being already in the Guix build jail as that jail
8078 ;; lacks some features that they would like to proxy over (like
8079 ;; a /sys mount).
8080 (substitute* "src/core/tests/meson.build"
8081 ((".*test-l3cfg.*") ""))
8082 (substitute* "src/core/devices/tests/meson.build"
8083 ((".*test-acd.*") "")
8084 ((".*test-lldp.*") ""))
8085 (substitute* "src/core/platform/tests/meson.build"
8086 ((".*test-address-linux.*") "")
8087 ((".*test-cleanup-linux.*") "")
8088 ((".*test-link-linux.*") "")
8089 ((".*test-lldp.*") "")
8090 ((".*test-route-linux.*") "")
8091 ((".*test-tc-linux.*") ""))))
8092 (add-after 'unpack 'patch-docbook-xml
8093 (lambda* (#:key inputs #:allow-other-keys)
8094 (substitute* (find-files "." ".*\\.(xsl|xml)")
8095 (("http://.*/docbookx\\.dtd")
8096 (search-input-file inputs "xml/dtd/docbook/docbookx.dtd")))))
8097 (add-before 'check 'pre-check
8098 (lambda _
8099 ;; For the missing /etc/machine-id.
8100 (setenv "DBUS_FATAL_WARNINGS" "0")))
8101 (add-before 'install 'no-polkit-magic
8102 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
8103 (lambda _
8104 (setenv "PKEXEC_UID" "something")))
8105 (add-after 'install 'move-doc
8106 (lambda _
8107 (mkdir-p (string-append #$output:doc "/share"))
8108 (for-each (lambda (directory)
8109 (copy-recursively (string-append #$output directory)
8110 (string-append #$output:doc
8111 directory))
8112 (delete-file-recursively
8113 (string-append #$output directory)))
8114 '("/share/doc" "/share/gtk-doc")))))))
8115 (propagated-inputs
8116 (list glib))
8117 (native-inputs
8118 (list `(,glib "bin") ; for gdbus-codegen
8119 gtk-doc/stable
8120 gobject-introspection
8121 docbook-xml
8122 docbook-xsl
8123 intltool
8124 libxslt
8125 libxml2
8126 pkg-config
8127 vala
8128 ;; For testing.
8129 python-wrapper
8130 python-dbus
8131 python-pygobject))
8132 (inputs
8133 (list curl
8134 cyrus-sasl
8135 dbus-glib
8136 dnsmasq
8137 eudev
8138 gnutls
8139 iptables
8140 isc-dhcp
8141 iwd ; wpa_supplicant alternative
8142 jansson
8143 audit
8144 libgcrypt
8145 libgudev
8146 libndp
8147 libnl
8148 libselinux
8149 libsoup
8150 mobile-broadband-provider-info
8151 modem-manager
8152 newt ;for the 'nmtui' console interface
8153 openresolv ; alternative resolv.conf manager
8154 polkit
8155 ppp
8156 readline
8157 util-linux
8158 elogind))
8159 (synopsis "Network connection manager")
8160 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8161 (description
8162 "NetworkManager is a system network service that manages your network
8163 devices and connections, attempting to keep active network connectivity when
8164 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
8165 devices, and provides VPN integration with a variety of different VPN
8166 services.")
8167 ;; “This NetworkManager project consists of the daemon, client tools, and
8168 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
8169 ;; GPL-2.0+.”
8170 (license (list license:gpl2+
8171 license:lgpl2.1+))
8172 (properties '((upstream-name . "NetworkManager")))))
8173
8174 (define-public network-manager-openvpn
8175 (package
8176 (name "network-manager-openvpn")
8177 (version "1.8.12")
8178 (source (origin
8179 (method url-fetch)
8180 (uri (string-append
8181 "mirror://gnome/sources/NetworkManager-openvpn/"
8182 (version-major+minor version)
8183 "/NetworkManager-openvpn-" version ".tar.xz"))
8184 (sha256
8185 (base32
8186 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
8187 (build-system gnu-build-system)
8188 (arguments
8189 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
8190 #:phases
8191 (modify-phases %standard-phases
8192 (add-after 'configure 'patch-path
8193 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8194 (let* ((ovpn (search-input-file inputs "/sbin/openvpn"))
8195 (modprobe (search-input-file inputs "/bin/modprobe"))
8196 (pretty-ovpn (string-append "\"" ovpn "\"")))
8197 (for-each
8198 (lambda (file)
8199 (substitute* file
8200 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
8201 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
8202 (("\"/sbin/openvpn\"") pretty-ovpn)
8203 (("/sbin/modprobe") modprobe)))
8204 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
8205 #t)))))
8206 (native-inputs
8207 (list pkg-config intltool))
8208 (inputs
8209 (list gtk+
8210 kmod
8211 openvpn
8212 network-manager
8213 libnma
8214 libsecret))
8215 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8216 (synopsis "OpenVPN plug-in for NetworkManager")
8217 (description
8218 "This extension of NetworkManager allows it to take care of connections
8219 to virtual private networks (VPNs) via OpenVPN.")
8220 (license license:gpl2+)
8221 (properties `((upstream-name . "NetworkManager-openvpn")))))
8222
8223 (define-public network-manager-vpnc
8224 (package
8225 (name "network-manager-vpnc")
8226 (version "1.2.6")
8227 (source (origin
8228 (method url-fetch)
8229 (uri (string-append
8230 "mirror://gnome/sources/NetworkManager-vpnc/"
8231 (version-major+minor version)
8232 "/NetworkManager-vpnc-" version ".tar.xz"))
8233 (sha256
8234 (base32
8235 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
8236 (build-system gnu-build-system)
8237 (arguments
8238 `(#:configure-flags '("--enable-absolute-paths"
8239 "--localstatedir=/var"
8240 ;; libnm-glib has been removed from network-manager
8241 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
8242 "--with-libnm-glib=no")
8243 #:phases
8244 (modify-phases %standard-phases
8245 (add-after 'configure 'patch-path
8246 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8247 (let* ((vpnc (search-input-file inputs "/sbin/vpnc"))
8248 (modprobe (search-input-file inputs "/bin/modprobe"))
8249 (pretty-ovpn (string-append "\"" vpnc "\"")))
8250 (substitute* "src/nm-vpnc-service.c"
8251 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
8252 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
8253 (("\"/sbin/vpnc\"") pretty-ovpn)
8254 (("/sbin/modprobe") modprobe)))
8255 #t)))))
8256 (native-inputs
8257 (list pkg-config intltool))
8258 (inputs
8259 (list gtk+
8260 kmod
8261 vpnc
8262 network-manager
8263 libnma
8264 libsecret))
8265 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8266 (synopsis "VPNC plug-in for NetworkManager")
8267 (description
8268 "Support for configuring virtual private networks based on VPNC.
8269 Compatible with Cisco VPN concentrators configured to use IPsec.")
8270 (license license:gpl2+)
8271 (properties `((upstream-name . "NetworkManager-vpnc")))))
8272
8273 (define-public network-manager-openconnect
8274 (package
8275 (name "network-manager-openconnect")
8276 (version "1.2.6")
8277 (source (origin
8278 (method url-fetch)
8279 (uri (string-append
8280 "mirror://gnome/sources/NetworkManager-openconnect/"
8281 (version-major+minor version)
8282 "/NetworkManager-openconnect-" version ".tar.xz"))
8283 (sha256
8284 (base32
8285 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
8286 (build-system gnu-build-system)
8287 (arguments
8288 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
8289 #:phases
8290 (modify-phases %standard-phases
8291 (add-after 'configure 'patch-path
8292 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8293 (let* ((openconnect (search-input-file inputs
8294 "/sbin/openconnect"))
8295 (modprobe (search-input-file inputs "/bin/modprobe"))
8296 (pretty-ovpn (string-append "\"" openconnect "\"")))
8297 (substitute* "src/nm-openconnect-service.c"
8298 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
8299 (("/sbin/modprobe") modprobe)))
8300 #t)))))
8301 (native-inputs
8302 (list intltool libnma pkg-config))
8303 (inputs
8304 (list gcr
8305 gtk+
8306 kmod
8307 libsecret
8308 libxml2
8309 lz4
8310 network-manager
8311 openconnect))
8312 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8313 (synopsis "OpenConnect plug-in for NetworkManager")
8314 (description
8315 "This extension of NetworkManager allows it to take care of connections
8316 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
8317 Cisco's AnyConnect SSL VPN.")
8318 (license license:gpl2+)
8319 (properties `((upstream-name . "NetworkManager-openconnect")
8320
8321 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
8322 ;; file refers to account "nm-openconnect". Specify it here
8323 ;; so that 'network-manager-service-type' creates it.
8324 (user-accounts . ("nm-openconnect"))))))
8325
8326 (define-public mobile-broadband-provider-info
8327 (package
8328 (name "mobile-broadband-provider-info")
8329 (version "20190116")
8330 (source (origin
8331 (method url-fetch)
8332 (uri (string-append
8333 "mirror://gnome/sources/"
8334 "mobile-broadband-provider-info/" version "/"
8335 "mobile-broadband-provider-info-" version ".tar.xz"))
8336 (sha256
8337 (base32
8338 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
8339 (build-system gnu-build-system)
8340 (arguments
8341 `(#:tests? #f)) ; no tests
8342 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8343 (synopsis "Database of broadband connection configuration")
8344 (description "Database of broadband connection configuration.")
8345 (license license:public-domain)))
8346
8347 (define-public network-manager-applet
8348 (package
8349 (name "network-manager-applet")
8350 (version "1.28.0")
8351 (source (origin
8352 (method url-fetch)
8353 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
8354 (version-major+minor version) "/"
8355 "network-manager-applet-" version ".tar.xz"))
8356 (sha256
8357 (base32
8358 "17742kgmbj9w545zwnirgr0i40zl0xzp8jx7b8c1krp93mc4h0sw"))))
8359 (build-system meson-build-system)
8360 (arguments
8361 `(#:glib-or-gtk? #t
8362 #:configure-flags
8363 '("-Dappindicator=yes")))
8364 (native-inputs
8365 (list gettext-minimal
8366 `(,glib "bin") ; for glib-compile-resources, etc.
8367 gobject-introspection
8368 gtk-doc/stable
8369 pkg-config))
8370 (propagated-inputs
8371 ;; libnm-gtk.pc refers to all these.
8372 (list dbus-glib gtk+ network-manager
8373 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8374 libnma))
8375 (inputs
8376 (list gcr
8377 libappindicator
8378 libgudev
8379 libnotify
8380 libsecret
8381 libselinux
8382 jansson ; for team support
8383 modem-manager))
8384 (synopsis "Applet for managing network connections")
8385 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8386 (description
8387 "This package contains a systray applet for NetworkManager. It displays
8388 the available networks and allows users to easily switch between them.")
8389 (license license:gpl2+)))
8390
8391 (define-public libxml++
8392 (package
8393 (name "libxml++")
8394 (version "3.2.0")
8395 (source
8396 (origin
8397 (method git-fetch)
8398 (uri (git-reference
8399 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8400 (commit version)))
8401 (file-name (git-file-name name version))
8402 (sha256
8403 (base32 "0wjz591rjlgbah7dcq8i0yn0zw9d62b7g6r0pppx81ic0cx8n8ga"))))
8404 (build-system gnu-build-system)
8405 (arguments
8406 `(#:phases
8407 (modify-phases %standard-phases
8408 (add-after 'unpack 'fix-documentation
8409 (lambda* (#:key inputs #:allow-other-keys)
8410 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
8411 "/xml/dtd/docbook"))
8412 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
8413 "/xml/xsl/docbook-xsl-"
8414 ,(package-version docbook-xsl))))
8415 (substitute* '("examples/dom_xpath/example.xml"
8416 "docs/manual/libxml++_without_code.xml")
8417 (("http://.*/docbookx\\.dtd")
8418 (string-append xmldoc "/docbookx.dtd")))
8419 (setenv "SGML_CATALOG_FILES"
8420 (string-append xmldoc "/catalog.xml"))
8421 (substitute* "docs/manual/docbook-customisation.xsl"
8422 (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
8423 (string-append xsldoc "/html/chunk.xsl")))))))))
8424 (propagated-inputs
8425 ;; libxml++-3.0.pc refers to all these.
8426 (list glibmm-2.64 libxml2))
8427 (native-inputs
8428 (list autoconf
8429 automake
8430 doxygen
8431 docbook-xml
8432 docbook-xsl
8433 graphviz ; for dot
8434 libtool
8435 libxslt
8436 mm-common
8437 perl
8438 pkg-config))
8439 (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
8440 (synopsis "C++ bindings to the libxml2 XML parser library")
8441 (description
8442 "This package provides a C++ interface to the libxml2 XML parser
8443 library.")
8444 (license license:lgpl2.1+)))
8445
8446 ;; This is the last release providing the 2.6 API, hence the name.
8447 ;; This is needed by tascam-gtk
8448 (define-public libxml++-2
8449 (package
8450 (inherit libxml++)
8451 (name "libxml++")
8452 (version "2.40.1")
8453 (source
8454 (origin
8455 (method git-fetch)
8456 (uri (git-reference
8457 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8458 (commit version)))
8459 (file-name (git-file-name name version))
8460 (sha256
8461 (base32 "0gbfi4l88w828gmyc9br11l003ylyi4vigp5d1kfgsn0k4cig3y9"))))))
8462
8463 (define-public gdm
8464 (package
8465 (name "gdm")
8466 (version "42.0")
8467 (source (origin
8468 (method url-fetch)
8469 (uri (string-append "mirror://gnome/sources/" name "/"
8470 (version-major version) "/"
8471 name "-" version ".tar.xz"))
8472 (sha256
8473 (base32
8474 "0m9qmm3vm81jmqlc30a1fb79hsr4l4lpiw0zjxww3gipd6bsqa53"))
8475 (patches
8476 (search-patches
8477 "gdm-default-session.patch"
8478 "gdm-elogind-support.patch"
8479 "gdm-remove-hardcoded-xwayland-path.patch"
8480 "gdm-wayland-session-wrapper-from-env.patch"
8481 "gdm-pass-gdk-pixbuf-loader-env.patch"))))
8482 (build-system meson-build-system)
8483 (arguments
8484 (list
8485 #:glib-or-gtk? #t
8486 #:configure-flags
8487 #~(list
8488 "-Dplymouth=disabled"
8489 "-Dsystemd-journal=false"
8490
8491 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8492 ;; instead of having to replace it (i.e., stopping the mingetty
8493 ;; service for TTY 1 before starting GDM).
8494 "-Dinitial-vt=7"
8495
8496 ;; Use elogind instead of systemd.
8497 "-Dlogind-provider=elogind"
8498 "-Dsystemdsystemunitdir=no"
8499 "-Dsystemduserunitdir=no"
8500
8501 ;; Use '/etc/environment' for locale settings instead of the
8502 ;; systemd-specific '/etc/locale.conf'.
8503 "-Dlang-file=/etc/environment"
8504
8505 (string-append "-Dudev-dir=" #$output "/lib/udev")
8506
8507 "--localstatedir=/var"
8508 (string-append "-Ddefault-path="
8509 (string-join '("/run/setuid-programs"
8510 "/run/current-system/profile/bin"
8511 "/run/current-system/profile/sbin")
8512 ":"))
8513 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8514 ;; XDG_DATA_DIRS so that it finds its schemas.
8515 "--sbindir" (string-append #$output "/bin"))
8516 #:phases
8517 #~(modify-phases %standard-phases
8518 (add-after 'unpack 'patch-paths
8519 (lambda* (#:key inputs #:allow-other-keys)
8520 (substitute* "daemon/gdm-session.c"
8521 (("dbus-run-session")
8522 (search-input-file inputs "bin/dbus-run-session")))))
8523 (add-before 'configure 'pre-configure
8524 (lambda* (#:key inputs #:allow-other-keys)
8525 ;; We don't have <systemd/sd-daemon.h>.
8526 (substitute* '("common/gdm-log.c"
8527 "daemon/gdm-server.c"
8528 "daemon/gdm-session-worker.c"
8529 "daemon/gdm-session-worker-job.c")
8530 (("#include <systemd/sd-daemon\\.h>") ""))
8531 ;; Use elogind for sd-login.
8532 (substitute* '("common/gdm-common.c"
8533 "daemon/gdm-local-display-factory.c"
8534 "daemon/gdm-manager.c"
8535 "libgdm/gdm-user-switching.c")
8536 (("#include <systemd/sd-login\\.h>")
8537 "#include <elogind/sd-login.h>"))
8538 ;; Look for system-installed sessions in
8539 ;; /run/current-system/profile/share.
8540 (substitute* '("libgdm/gdm-sessions.c"
8541 "daemon/gdm-session.c"
8542 "daemon/gdm-display.c"
8543 "daemon/gdm-launch-environment.c")
8544 (("DATADIR \"/x")
8545 "\"/run/current-system/profile/share/x")
8546 (("DATADIR \"/wayland")
8547 "\"/run/current-system/profile/share/wayland")
8548 (("DATADIR \"/gnome")
8549 "\"/run/current-system/profile/share/gnome"))
8550 (let ((propagate '("GDM_CUSTOM_CONF"
8551 "GDM_DBUS_DAEMON"
8552 "GDM_X_SERVER"
8553 "GDM_X_SESSION"
8554 ;; XXX: Remove this once GNOME Shell is
8555 ;; a dependency of GDM.
8556 "XDG_DATA_DIRS")))
8557 (substitute* "daemon/gdm-session.c"
8558 (("set_up_session_environment \\(self\\);")
8559 (apply string-append
8560 "set_up_session_environment (self);\n"
8561 (map (lambda (name)
8562 (string-append
8563 "gdm_session_set_environment_variable "
8564 "(self, \"" name "\","
8565 "g_getenv (\"" name "\"));\n"))
8566 propagate)))))
8567 ;; Find the configuration file using an environment variable.
8568 (substitute* '("common/gdm-settings.c")
8569 (("GDM_CUSTOM_CONF")
8570 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8571 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8572 " : GDM_CUSTOM_CONF)")))
8573 ;; Use service-supplied path to X.
8574 (substitute* '("daemon/gdm-server.c")
8575 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8576 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8577 (substitute* '("daemon/gdm-wayland-session.c"
8578 "daemon/gdm-x-session.c")
8579 (("\"dbus-daemon\"")
8580 "g_getenv (\"GDM_DBUS_DAEMON\")")
8581 (("X_SERVER")
8582 "g_getenv (\"GDM_X_SERVER\")")
8583 (("GDMCONFDIR \"/Xsession\"")
8584 "g_getenv (\"GDM_X_SESSION\")"))
8585 ;; Use an absolute path for GNOME Session.
8586 (substitute* "daemon/gdm-launch-environment.c"
8587 (("\"gnome-session\"")
8588 (format #f "~s"
8589 (search-input-file inputs "bin/gnome-session"))))
8590 ;; Do not automatically select the placeholder session.
8591 (substitute* "daemon/gdm-session.c"
8592 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8593 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8594 "(g_strcmp0(search_dirs[i], \""
8595 #$output "/share/gdm/BuiltInSessions/"
8596 "\") == 0 && "
8597 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8598 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8599 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))))
8600 (add-before 'install 'install-logo
8601 (lambda* (#:key inputs #:allow-other-keys)
8602 (let ((icon (search-input-file inputs "share/icons/hicolor/\
8603 scalable/apps/guix-white-icon.svg"))
8604 (schema (string-append #$output "/share/glib-2.0/schemas/\
8605 org.gnome.login-screen.gschema.override")))
8606 (mkdir-p (dirname schema))
8607 (with-output-to-file schema
8608 (lambda ()
8609 (format #t "\
8610 [org.gnome.login-screen]
8611 logo='~a'~%" icon))))))
8612 ;; GDM requires that there be at least one desktop entry
8613 ;; file. This phase installs a hidden one that simply
8614 ;; fails. This enables users to use GDM with a
8615 ;; '~/.xsession' script with no other desktop entry files.
8616 ;; See <https://bugs.gnu.org/35068>.
8617 (add-after 'install 'install-placeholder-desktop-entry
8618 (lambda _
8619 (let* ((sessions (string-append #$output
8620 "/share/gdm/BuiltInSessions"))
8621 (fail (string-append sessions "/fail.desktop")))
8622 (mkdir-p sessions)
8623 (with-output-to-file fail
8624 (lambda ()
8625 (for-each
8626 display
8627 '("[Desktop Entry]\n"
8628 "Encoding=UTF-8\n"
8629 "Type=Application\n"
8630 "Name=Fail\n"
8631 "Comment=This session fails immediately.\n"
8632 "NoDisplay=true\n"
8633 "Exec=false\n")))))))
8634 ;; GDM needs GNOME Session to run these applications. We link
8635 ;; their autostart files in `share/gdm/greeter/autostart'
8636 ;; because GDM explicitly tells GNOME Session to look there.
8637 ;;
8638 ;; XXX: GNOME Shell should be linked here too, but currently
8639 ;; GNOME Shell depends on GDM.
8640 (add-after 'install 'link-autostart-files
8641 (lambda* (#:key inputs #:allow-other-keys)
8642 (let ((autostart (string-append #$output "/share/gdm/"
8643 "greeter/autostart"))
8644 (settings #$(this-package-input "gnome-settings-daemon")))
8645 (mkdir-p autostart)
8646 (with-directory-excursion autostart
8647 (for-each (lambda (desktop)
8648 (symlink desktop (basename desktop)))
8649 (find-files
8650 (string-append settings "/etc/xdg"))))))))))
8651 (native-inputs
8652 (list `(,glib "bin") ;for glib-compile-schemas, etc.
8653 dconf
8654 gobject-introspection
8655 guix-icons
8656 intltool
8657 itstool
8658 libxml2
8659 pkg-config))
8660 (inputs
8661 (list accountsservice
8662 check ;for testing
8663 dbus
8664 elogind
8665 eudev
8666 gnome-session
8667 gnome-settings-daemon
8668 gtk+
8669 iso-codes
8670 libcanberra
8671 libgudev
8672 linux-pam))
8673 (synopsis "Display manager for GNOME")
8674 (home-page "https://wiki.gnome.org/Projects/GDM/")
8675 (description
8676 "GNOME Display Manager is a system service that is responsible for
8677 providing graphical log-ins and managing local and remote displays.")
8678 (license license:gpl2+)))
8679
8680 (define-public libgtop
8681 (package
8682 (name "libgtop")
8683 (version "2.40.0")
8684 (source (origin
8685 (method url-fetch)
8686 (uri (string-append "mirror://gnome/sources/libgtop/"
8687 (version-major+minor version) "/"
8688 "libgtop-" version ".tar.xz"))
8689 (sha256
8690 (base32
8691 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8692 (build-system gnu-build-system)
8693 (native-inputs
8694 (list gobject-introspection intltool perl pkg-config))
8695 (propagated-inputs
8696 (list glib)) ; required by libgtop-2.0.pc
8697 (synopsis "Portable system access library")
8698 (home-page "https://www.gnome.org/")
8699 (description
8700 "LibGTop is a library to get system specific data such as CPU and memory
8701 usage and information about running processes.")
8702 (license license:gpl2+)))
8703
8704 (define-public gnome-bluetooth
8705 (package
8706 (name "gnome-bluetooth")
8707 (version "42.4")
8708 (source (origin
8709 (method url-fetch)
8710 (uri (string-append "mirror://gnome/sources/gnome-bluetooth/"
8711 (version-major+minor version) "/"
8712 "gnome-bluetooth-" version ".tar.xz"))
8713 (sha256
8714 (base32
8715 "1p5wq3rh9p7fhka57qcds6lvphd26yyc18ilncx95jbcvcfcyvqx"))))
8716 (build-system meson-build-system)
8717 (native-inputs
8718 (list gettext-minimal
8719 gobject-introspection
8720 `(,glib "bin") ;for gdbus-codegen, etc.
8721 libxml2
8722 pkg-config
8723 python
8724 python-dbus))
8725 (propagated-inputs
8726 ;; These are all required by the gnome-bluetooth .pc file.
8727 (list glib
8728 gtk
8729 libadwaita))
8730 (inputs
8731 (list eudev
8732 gsound
8733 libnotify
8734 ;; TODO: Delete pango-next after it's the default.
8735 pango-next
8736 python-dbus
8737 upower))
8738 (synopsis "GNOME Bluetooth subsystem")
8739 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8740 (description
8741 "This package contains tools for managing and manipulating Bluetooth
8742 devices using the GNOME desktop.")
8743 (license license:lgpl2.1+)))
8744
8745 (define-public gnome-control-center
8746 (package
8747 (name "gnome-control-center")
8748 (version "42.3")
8749 (source (origin
8750 (method url-fetch)
8751 (uri (string-append "mirror://gnome/sources/" name "/"
8752 (version-major version) "/"
8753 name "-" version ".tar.xz"))
8754 (sha256
8755 (base32
8756 "0zhw6hcrrcpq1zjkyzr5ipznxnzd2aczrqd7n2y7xbz21mjy62nf"))))
8757 (build-system meson-build-system)
8758 (arguments
8759 (list
8760 #:glib-or-gtk? #t
8761 #:phases
8762 #~(modify-phases %standard-phases
8763 (add-before 'configure 'patch-paths
8764 (lambda* (#:key inputs #:allow-other-keys)
8765 (substitute* "panels/datetime/tz.h"
8766 (("/usr/share/zoneinfo/zone.tab")
8767 (search-input-file inputs "share/zoneinfo/zone.tab")))
8768 (substitute* "tests/datetime/test-endianess.c"
8769 (("/usr/share/locale")
8770 (search-input-directory inputs "share/locale")))
8771 (substitute* "panels/region/cc-region-panel.c"
8772 (("\"gkbd-keyboard-display")
8773 (string-append "\"" (search-input-file
8774 inputs "bin/gkbd-keyboard-display"))))
8775 (substitute* '("panels/network/net-device-bluetooth.c"
8776 "panels/network/net-device-mobile.c"
8777 "panels/network/connection-editor/net-connection-editor.c")
8778 (("\"nm-connection-editor")
8779 (string-append "\"" (search-input-file
8780 inputs "bin/nm-connection-editor"))))
8781 (substitute* "panels/user-accounts/run-passwd.c"
8782 (("/usr/bin/passwd")
8783 "/run/setuid-programs/passwd"))
8784 (substitute* "panels/info-overview/cc-info-overview-panel.c"
8785 (("DATADIR \"/gnome/gnome-version.xml\"")
8786 (format #f "~s" (search-input-file
8787 inputs "share/gnome/gnome-version.xml"))))))
8788 (add-after 'unpack 'skip-gtk-update-icon-cache
8789 ;; Don't create 'icon-theme.cache'.
8790 (lambda _
8791 (substitute* "build-aux/meson/meson_post_install.py"
8792 (("gtk-update-icon-cache") (which "true"))))))))
8793 (native-inputs
8794 (list docbook-xsl
8795 gettext-minimal
8796 `(,glib "bin") ;for glib-mkenums, etc.
8797 libxslt
8798 pkg-config
8799 python
8800 python-dbusmock
8801 xorg-server-for-tests))
8802 (inputs
8803 (list accountsservice
8804 colord-gtk
8805 cups
8806 dconf
8807 gcr
8808 gnome-bluetooth
8809 gnome-desktop
8810 gnome-online-accounts
8811 gnome-session
8812 gnome-settings-daemon
8813 gnutls
8814 grilo
8815 gsound
8816 ibus
8817 libadwaita
8818 libgnomekbd
8819 libgudev
8820 libgtop
8821 libnma
8822 libpwquality
8823 librsvg ;for loading SVG files
8824 libsecret
8825 libxml2
8826 libwacom
8827 mesa
8828 mit-krb5
8829 modem-manager
8830 network-manager-applet
8831 polkit
8832 pulseaudio
8833 samba
8834 tzdata
8835 udisks
8836 upower))
8837 (synopsis "Utilities to configure the GNOME desktop")
8838 (home-page "https://www.gnome.org/")
8839 (description
8840 "This package contains configuration applets for the GNOME desktop,
8841 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8842 properties, sound setup, desktop theme and background, user interface
8843 properties, screen resolution, and other GNOME parameters.")
8844 (license license:gpl2+)))
8845
8846 (define-public gnome-shell
8847 (package
8848 (name "gnome-shell")
8849 (version "42.4")
8850 (source (origin
8851 (method url-fetch)
8852 (uri (string-append "mirror://gnome/sources/" name "/"
8853 (version-major version) "/"
8854 name "-" version ".tar.xz"))
8855 (sha256
8856 (base32
8857 "0kn5fclciybp2fs38wd39hdz85y91pas0ckfa02pmyx91sbz4pw7"))))
8858 (build-system meson-build-system)
8859 (arguments
8860 (let ((disallowed-references
8861 (list (gexp-input glib "bin")
8862 (gexp-input libxslt)
8863 (gexp-input meson)
8864 (gexp-input ruby-sass))))
8865 (list
8866 #:glib-or-gtk? #t
8867 #:disallowed-references disallowed-references
8868 #:configure-flags
8869 #~(list "-Dsystemd=false"
8870 ;; Otherwise, the RUNPATH will lack the final path component.
8871 (string-append "-Dc_link_args=-Wl,-rpath="
8872 #$output "/lib/gnome-shell"))
8873 #:modules '((guix build meson-build-system)
8874 (guix build utils)
8875 (ice-9 match)
8876 (srfi srfi-1)
8877 (srfi srfi-26))
8878 #:phases
8879 #~(modify-phases %standard-phases
8880 (add-after 'unpack 'fix-keysdir
8881 (lambda _
8882 (let ((keysdir
8883 (string-append #$output
8884 "/share/gnome-control-center/keybindings")))
8885 (substitute* "meson.build"
8886 (("keysdir =.*")
8887 (string-append "keysdir = '" keysdir "'\n"))))))
8888 (add-after 'unpack 'skip-gtk-update-icon-cache
8889 ;; Don't create 'icon-theme.cache'.
8890 (lambda _
8891 (substitute* "meson.build"
8892 (("gtk_update_icon_cache: true")
8893 "gtk_update_icon_cache: false"))))
8894 (add-before 'configure 'record-absolute-file-names
8895 (lambda* (#:key inputs #:allow-other-keys)
8896 (let ((ibus-daemon (search-input-file inputs "bin/ibus-daemon"))
8897 (gkbd-keyboard-display
8898 (search-input-file inputs "bin/gkbd-keyboard-display")))
8899 (substitute* "js/misc/ibusManager.js"
8900 (("'ibus-daemon'")
8901 (string-append "'" ibus-daemon "'")))
8902 (substitute* "js/ui/status/keyboard.js"
8903 (("'gkbd-keyboard-display'")
8904 (string-append "'" gkbd-keyboard-display "'"))))))
8905 (add-before 'check 'pre-check
8906 (lambda* (#:key inputs #:allow-other-keys)
8907 ;; Tests require a running X server.
8908 (system "Xvfb :1 &")
8909 (setenv "DISPLAY" ":1")
8910 (setenv "HOME" "/tmp"))) ;to avoid "fatal" warnings
8911 (add-after 'install 'wrap-programs
8912 (lambda* (#:key inputs #:allow-other-keys)
8913 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8914 (python-path
8915 (string-join
8916 (filter (lambda (item)
8917 (not (any (cut string-prefix? <> item)
8918 '#$disallowed-references)))
8919 (string-split (getenv "GUIX_PYTHONPATH") #\:))
8920 ":")))
8921 (for-each
8922 (lambda (prog)
8923 (wrap-program (string-append #$output "/bin/" prog)
8924 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8925 '("gnome-shell" "gnome-extensions-app"))
8926 (substitute* (string-append #$output "/share/gnome-shell/"
8927 "org.gnome.Shell.Extensions")
8928 (("imports\\.package\\.start" all)
8929 (string-append "'" gi-typelib-path "'.split(':').forEach("
8930 "path => imports.gi.GIRepository.Repository."
8931 "prepend_search_path(path));\n"
8932 all)))
8933 (for-each
8934 (lambda (prog)
8935 (wrap-program (string-append #$output "/bin/" prog)
8936 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
8937 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8938 '("gnome-shell-perf-tool")))))
8939 (add-after 'install 'rewire
8940 (lambda* (#:key inputs #:allow-other-keys)
8941 (for-each
8942 (lambda (tool)
8943 (call-with-output-file (string-append #$output
8944 "/bin/" tool)
8945 (lambda (port)
8946 (format port "#!~a
8947 printf '~a is deprecated. Use the \"gnome-extensions\" CLI or \
8948 \"gnome-extensions-app\" instead.\\n'"
8949 (search-input-file inputs "bin/bash")
8950 tool))))
8951 '("gnome-shell-extension-tool" "gnome-shell-extension-prefs"))))
8952 (replace 'glib-or-gtk-wrap
8953 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8954 (lambda* (#:key inputs outputs #:allow-other-keys)
8955 ;; By default glib:bin et al. would end up in the XDG_DATA_DIRS
8956 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8957 ;; phase. Fix that since we don't need these.
8958 (wrap #:inputs
8959 (filter (match-lambda
8960 ((label . output)
8961 (not (member output
8962 '#$disallowed-references))))
8963 inputs)
8964 #:outputs outputs))))))))
8965 (native-inputs
8966 (list asciidoc
8967 gettext-minimal
8968 `(,glib "bin") ;for glib-compile-schemas, etc.
8969 desktop-file-utils ;for update-desktop-database
8970 gobject-introspection
8971 hicolor-icon-theme
8972 libxslt
8973 perl
8974 pkg-config
8975 python
8976 ruby-sass
8977 sassc
8978 ;; For tests
8979 xorg-server-for-tests))
8980 (inputs
8981 (list accountsservice
8982 caribou
8983 docbook-xsl
8984 evolution-data-server
8985 gcr
8986 gdm
8987 librsvg
8988 gjs
8989 gtk
8990 gnome-autoar
8991 gnome-bluetooth
8992 gnome-desktop
8993 gnome-settings-daemon
8994 graphene
8995 gst-plugins-base
8996 ibus
8997 libcanberra
8998 libcroco
8999 libgnomekbd ;for gkbd-keyboard-display
9000 libgweather4
9001 libnma
9002 libsoup
9003 mesa-headers
9004 mutter
9005 network-manager-applet
9006 polkit
9007 pulseaudio
9008 python-pygobject
9009 startup-notification
9010 telepathy-logger
9011 upower
9012 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
9013 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
9014 librsvg
9015 geoclue))
9016 (synopsis "Desktop shell for GNOME")
9017 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
9018 (description
9019 "GNOME Shell provides core user interface functions for the GNOME desktop,
9020 like switching to windows and launching applications.")
9021 (license license:gpl2+)))
9022
9023 (define-public gtk-vnc
9024 (package
9025 (name "gtk-vnc")
9026 (version "1.2.0")
9027 (source
9028 (origin
9029 (method url-fetch)
9030 (uri
9031 (string-append "mirror://gnome/sources/" name "/"
9032 (version-major+minor version) "/"
9033 name "-" version ".tar.xz"))
9034 (sha256
9035 (base32 "0jmr6igyzcj2wmx5v5ywaazvdz3hx6a6rys26yb4l4s71l281bvs"))))
9036 (build-system meson-build-system)
9037 (arguments
9038 `(#:meson ,meson-0.60
9039 #:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
9040 (native-inputs
9041 (append
9042 ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
9043 ;; dependency on other platforms (FIXME).
9044 (if (target-x86-64?)
9045 (list gjs)
9046 '())
9047 (list gettext-minimal
9048 `(,glib "bin")
9049 gobject-introspection
9050 node
9051 perl
9052 pkg-config
9053 python-wrapper
9054 vala)))
9055 (inputs
9056 (list cairo (librsvg-for-system)))
9057 (propagated-inputs
9058 ;; These are all in Requires or Requires.private of the .pc files.
9059 (list cyrus-sasl
9060 gdk-pixbuf
9061 glib
9062 gnutls
9063 gtk+
9064 libgcrypt
9065 libx11
9066 pulseaudio
9067 zlib))
9068 (synopsis "VNC client viewer widget for GTK+")
9069 (description "GTK-VNC is a project providing client side APIs for the RFB
9070 protocol / VNC remote desktop technology. It is built using coroutines allowing
9071 it to be completely asynchronous while remaining single threaded. It provides a
9072 core C library, and bindings for Python (PyGTK).")
9073 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
9074 (license license:lgpl2.1+)))
9075
9076 (define-public gnome-autoar
9077 (package
9078 (name "gnome-autoar")
9079 (version "0.4.3")
9080 (source (origin
9081 (method url-fetch)
9082 (uri (string-append "mirror://gnome/sources/" name "/"
9083 (version-major+minor version) "/"
9084 name "-" version ".tar.xz"))
9085 (sha256
9086 (base32
9087 "124y4j3wgb6axgfzw9f00865r033fg7b0qy9qgfsp5ilan4hgpvv"))))
9088 (build-system meson-build-system)
9089 (native-inputs
9090 (list gobject-introspection `(,glib "bin") pkg-config))
9091 (propagated-inputs
9092 (list libarchive)) ; Required by gnome-autoar-0.pc
9093 (inputs
9094 (list gtk+))
9095 (synopsis "Archives integration support for GNOME")
9096 (home-page "https://git.gnome.org/browse/gnome-autoar/")
9097 (description
9098 "GNOME Autoar is a library which makes creating and extracting archives
9099 easy, safe, and automatic.")
9100 (license license:lgpl2.1+)))
9101
9102 (define-public tracker
9103 (package
9104 (name "tracker")
9105 (version "3.3.3")
9106 (source (origin
9107 (method url-fetch)
9108 (uri (string-append "mirror://gnome/sources/tracker/"
9109 (version-major+minor version) "/"
9110 "tracker-" version ".tar.xz"))
9111 (sha256
9112 (base32
9113 "0r144kdqxdzs51qn495vablzf1zxkhkk6imrlrzj9wiqwc2gg520"))))
9114 (build-system meson-build-system)
9115 (arguments
9116 `(#:glib-or-gtk? #t
9117 #:configure-flags
9118 ;; Otherwise, the RUNPATH will lack the final path component.
9119 (list (string-append "-Dc_link_args=-Wl,-rpath="
9120 (assoc-ref %outputs "out") "/lib:"
9121 (assoc-ref %outputs "out") "/lib/tracker-3.0")
9122 "-Ddocs=false"
9123 "-Dsystemd_user_services=false")
9124 #:phases
9125 (modify-phases %standard-phases
9126 (add-before 'configure 'set-shell
9127 (lambda _
9128 (setenv "SHELL" (which "bash"))))
9129 (add-before 'configure 'fix-paths
9130 (lambda* (#:key inputs #:allow-other-keys)
9131 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9132 (file (search-input-file inputs manpage)))
9133 (substitute* "docs/manpages/meson.build"
9134 (("/etc/asciidoc[^']+")
9135 file)))))
9136 (replace 'check
9137 (lambda* (#:key tests? #:allow-other-keys)
9138 (when tests?
9139 ;; Some tests expect to write to $HOME.
9140 (setenv "HOME" "/tmp")
9141 (invoke "dbus-run-session" "--" "meson" "test"
9142 "--print-errorlogs")))))))
9143 (native-inputs
9144 (list gettext-minimal
9145 `(,glib "bin")
9146 gobject-introspection
9147 docbook-xsl
9148 docbook-xml
9149 gsettings-desktop-schemas
9150 asciidoc
9151 libxslt
9152 cmake-minimal
9153 python-pygobject
9154 gtk-doc/stable
9155 dbus
9156 pkg-config
9157 python
9158 vala))
9159 (inputs
9160 (list dbus
9161 libsoup))
9162 (propagated-inputs
9163 ;; These are in Requires or Requires.private of tracker-sparql-3.0.pc.
9164 (list glib
9165 icu4c ;libunistring gets miner-miner-fs test to fail
9166 json-glib
9167 libxml2
9168 sqlite))
9169 (synopsis "Metadata database, indexer and search tool")
9170 (home-page "https://wiki.gnome.org/Projects/Tracker")
9171 (description
9172 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
9173
9174 It is a middleware component aimed at desktop application developers who want
9175 their apps to browse and search user content. It's not designed to be used
9176 directly by desktop users, but it provides a commandline tool named
9177 @command{tracker} for the adventurous.
9178
9179 Tracker allows your application to instantly perform full-text searches across
9180 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
9181 example. This is achieved by indexing the user's home directory in the
9182 background.
9183
9184 Tracker also allows your application to query and list content that the user
9185 has stored. For example, GNOME Music displays all the music files that are
9186 found by Tracker. This means that GNOME Music doesn't need to maintain a
9187 database of its own.
9188
9189 If you need to go beyond simple searches, Tracker is also a linked data
9190 endpoint and it understands SPARQL.")
9191 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
9192 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9193 ;; libstemmer is bsd-3 and the rest is gpl2+.
9194 (license (list license:gpl2+
9195 license:bsd-3
9196 license:lgpl2.1+))))
9197
9198 (define-public tracker-miners
9199 (package
9200 (name "tracker-miners")
9201 (version "3.3.1")
9202 (source (origin
9203 (method url-fetch)
9204 (uri (string-append "mirror://gnome/sources/tracker-miners/"
9205 (version-major+minor version)
9206 "/tracker-miners-" version ".tar.xz"))
9207 (sha256
9208 (base32
9209 "151w6ljq1gk9idqfq9qs3w16vms91jnxy59c9kx6jaf0fb9cdp9y"))))
9210 (build-system meson-build-system)
9211 (arguments
9212 `(#:glib-or-gtk? #t
9213 #:configure-flags
9214 (list "-Dminer_rss=false" ; libgrss is required.
9215 ;; Ensure the RUNPATH contains all installed library locations.
9216 (string-append "-Dc_link_args=-Wl,-rpath="
9217 (assoc-ref %outputs "out")
9218 "/lib/tracker-miners-3.0")
9219 ;; TODO: Enable functional tests. Currently, the following error
9220 ;; appears:
9221 ;; Exception: The functional tests require DConf to be the default
9222 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
9223 "-Dfunctional_tests=false"
9224 "-Dsystemd_user_services=false")
9225 #:phases
9226 (modify-phases %standard-phases
9227 (add-before 'configure 'set-shell
9228 (lambda _
9229 (setenv "SHELL" (which "bash"))))
9230 (add-before 'configure 'fix-paths
9231 (lambda* (#:key inputs #:allow-other-keys)
9232 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9233 (file (search-input-file inputs manpage)))
9234 (substitute* "docs/manpages/meson.build"
9235 (("/etc/asciidoc[^']+")
9236 file)))))
9237 (add-before 'configure 'fix-tests
9238 (lambda* (#:key inputs #:allow-other-keys)
9239 ;; Disable those tests that require the functional_tests option
9240 ;; to be true and the UPower daemon to be started.
9241 (substitute* "examples/python/meson.build"
9242 (("foreach example_name:.*")
9243 "foreach example_name: []"))
9244 ;; Disable this test that is failing randomly:
9245 ;; https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/170.
9246 (substitute* "tests/libtracker-miner/meson.build"
9247 (("'miner-fs'.*")
9248 ""))))
9249 (replace 'check
9250 (lambda* (#:key tests? #:allow-other-keys)
9251 (when tests?
9252 ;; Some tests expect to write to $HOME.
9253 (setenv "HOME" "/tmp")
9254 (setenv "LANG" "en_US.UTF-8")
9255 (invoke "dbus-run-session" "--" "meson" "test"
9256 "--print-errorlogs"
9257 ;; Do not run the slow test, which fail (see:
9258 ;; https://gitlab.gnome.org/GNOME/tracker-miners
9259 ;; /-/issues/226).
9260 "--no-suite" "slow")))))))
9261 (native-inputs
9262 (list dbus
9263 intltool
9264 `(,glib "bin")
9265 docbook-xsl
9266 docbook-xml
9267 gsettings-desktop-schemas
9268 asciidoc
9269 libxslt
9270 gobject-introspection
9271 pkg-config
9272 python-pygobject))
9273 (inputs
9274 (list exempi
9275 ffmpeg
9276 flac
9277 giflib
9278 glib
9279 gstreamer
9280 icu4c
9281 json-glib
9282 libcue
9283 libexif
9284 libgsf
9285 libgxps
9286 libiptcdata
9287 libjpeg-turbo
9288 libosinfo
9289 libpng
9290 libseccomp
9291 libsoup
9292 libtiff
9293 libvorbis
9294 libxml2
9295 poppler
9296 shared-mime-info
9297 taglib
9298 totem-pl-parser
9299 tracker
9300 upower
9301 zlib))
9302 (synopsis "Metadata database, indexer and search tool")
9303 (home-page "https://wiki.gnome.org/Projects/Tracker")
9304 (description
9305 "Tracker is an advanced framework for first class objects with associated
9306 metadata and tags. It provides a one stop solution for all metadata, tags,
9307 shared object databases, search tools and indexing.")
9308 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9309 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
9310 (license (list license:gpl2+
9311 license:lgpl2.1+
9312 license:lgpl2.0+))))
9313
9314 (define-public nautilus
9315 (package
9316 (name "nautilus")
9317 (version "41.1")
9318 (source (origin
9319 (method url-fetch)
9320 (uri (string-append "mirror://gnome/sources/" name "/"
9321 (version-major version) "/"
9322 name "-" version ".tar.xz"))
9323 (sha256
9324 (base32
9325 "0bsqh241m43x3qb3z0mjakjic610ncl95zhjdgls649phnc30qry"))
9326 (patches
9327 ;; This patch is already upstream and can be removed next
9328 ;; release.
9329 (search-patches "nautilus-add-libportal-gtk3.patch"))))
9330 (build-system meson-build-system)
9331 (arguments
9332 `(#:glib-or-gtk? #t
9333 #:phases
9334 (modify-phases %standard-phases
9335 (add-after 'unpack 'make-extensible
9336 (lambda _
9337 (substitute* "src/nautilus-module.c"
9338 (("static gboolean initialized = FALSE;" all)
9339 (string-append all "
9340 const char *extension_path;
9341 char **extension_dirs, **d;
9342 ")
9343 )
9344 (("load_module_dir \\(NAUTILUS_EXTENSIONDIR\\);" all)
9345 (string-append all
9346 "
9347 extension_path = g_getenv (\"NAUTILUS_EXTENSION_PATH\");
9348 if (extension_path)
9349 {
9350 extension_dirs = g_strsplit (extension_path, \":\", -1);
9351 for (d = extension_dirs; d != NULL && *d != NULL; d++)
9352 load_module_dir(*d);
9353 g_strfreev(extension_dirs);
9354 }
9355 ")))))
9356 (add-after 'unpack 'skip-gtk-update-icon-cache
9357 ;; Don't create 'icon-theme.cache'.
9358 (lambda _
9359 (substitute* "build-aux/meson/postinstall.py"
9360 (("gtk-update-icon-cache") "true")))))
9361 ;; XXX: FAIL: check-nautilus
9362 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
9363 #:tests? #f))
9364 (native-inputs
9365 (list desktop-file-utils ; for update-desktop-database
9366 `(,glib "bin") ; for glib-mkenums, etc.
9367 gobject-introspection
9368 intltool
9369 pkg-config
9370 python))
9371 (inputs
9372 (list dconf
9373 gexiv2
9374 gvfs
9375 exempi
9376 gnome-desktop
9377 gnome-autoar
9378 gst-plugins-base
9379 json-glib
9380 libhandy
9381 libportal
9382 libseccomp
9383 libselinux
9384 libsoup-minimal-2 ; to satisfy tracker dependencies
9385 tracker
9386 tracker-miners
9387 ;; XXX: gtk+ is required by libnautilus-extension.pc
9388 ;;
9389 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
9390 ;; package. See:
9391 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
9392 gtk+
9393 libexif
9394 libxml2))
9395 (native-search-paths
9396 (list (search-path-specification
9397 (variable "NAUTILUS_EXTENSION_PATH")
9398 (files '("lib/nautilus/site-extensions")))))
9399 (synopsis "File manager for GNOME")
9400 (home-page "https://wiki.gnome.org/Apps/Nautilus")
9401 (description
9402 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
9403 design and behaviour, giving the user a simple way to navigate and manage its
9404 files.")
9405 (license license:gpl2+)))
9406
9407 (define-public baobab
9408 (package
9409 (name "baobab")
9410 (version "42.0")
9411 (source (origin
9412 (method url-fetch)
9413 (uri (string-append
9414 "mirror://gnome/sources/" name "/"
9415 (version-major version) "/"
9416 name "-" version ".tar.xz"))
9417 (sha256
9418 (base32
9419 "1p2hg8qxbvdfax9z4qjhdsxia93zrsdq58krx8zjnn5ipbkan6jb"))))
9420 (build-system meson-build-system)
9421 (arguments
9422 '(#:glib-or-gtk? #t))
9423 (native-inputs
9424 (list desktop-file-utils ;for update-desktop-database
9425 gettext-minimal
9426 `(,glib "bin")
9427 `(,gtk+ "bin") ;for gtk-update-icon-cache
9428 itstool
9429 libxml2
9430 pkg-config
9431 python
9432 vala))
9433 (inputs
9434 (list gtk libadwaita libhandy
9435 ;; XXX: Ensure pango-next is used instead of the equally propagated
9436 ;; 'pango'.
9437 pango-next))
9438 (synopsis "Disk usage analyzer for GNOME")
9439 (description
9440 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
9441 usage in the GNOME desktop environment. It can easily scan device volumes or
9442 a specific user-requested directory branch (local or remote). Once the scan
9443 is complete it provides a graphical representation of each selected folder.")
9444 (home-page "https://wiki.gnome.org/Apps/Baobab")
9445 (license license:gpl2+)))
9446
9447 (define-public gnome-backgrounds
9448 (package
9449 (name "gnome-backgrounds")
9450 (version "41.0")
9451 (source
9452 (origin
9453 (method url-fetch)
9454 (uri (string-append "mirror://gnome/sources/" name "/"
9455 (version-major version) "/"
9456 name "-" version ".tar.xz"))
9457 (sha256
9458 (base32
9459 "0i9id5z72dqddh94648zylyf41amqq5lhny8sbyg1v8v4q6sr88x"))))
9460 (build-system meson-build-system)
9461 (native-inputs (list gettext-minimal))
9462 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
9463 (synopsis "Background images for the GNOME desktop")
9464 (description
9465 "GNOME backgrounds package contains a collection of graphics files which
9466 can be used as backgrounds in the GNOME Desktop environment. Additionally,
9467 the package creates the proper framework and directory structure so that you
9468 can add your own files to the collection.")
9469 (license (list license:gpl2+
9470 license:cc-by2.0
9471 license:cc-by-sa2.0
9472 license:cc-by-sa3.0))))
9473
9474 (define-public gnome-screenshot
9475 (package
9476 (name "gnome-screenshot")
9477 (version "41.0")
9478 (source
9479 (origin
9480 (method url-fetch)
9481 (uri (string-append "mirror://gnome/sources/" name "/"
9482 (version-major version) "/"
9483 name "-" version ".tar.xz"))
9484 (sha256
9485 (base32
9486 "15wmikwk62cdi93gas77nqh4fbhlrxrncyfmcd1gfa34jbn7vnsa"))
9487 (patches
9488 (search-patches "gnome-screenshot-meson-0.60.patch"))))
9489 (build-system meson-build-system)
9490 (arguments
9491 '(#:glib-or-gtk? #t
9492 #:phases
9493 (modify-phases %standard-phases
9494 (add-after 'unpack 'skip-gtk-update-icon-cache
9495 ;; Don't create 'icon-theme.cache'.
9496 (lambda _
9497 (substitute* "build-aux/postinstall.py"
9498 (("gtk-update-icon-cache") "true")))))))
9499 (native-inputs
9500 (list appstream-glib
9501 desktop-file-utils ; for update-desktop-database
9502 gettext-minimal
9503 `(,glib "bin") ; for glib-compile-schemas, etc.
9504 pkg-config
9505 python))
9506 (inputs
9507 (list gtk+
9508 libhandy
9509 libx11
9510 libxext))
9511 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
9512 (synopsis "Take pictures of your screen")
9513 (description
9514 "GNOME Screenshot is a utility used for taking screenshots of the entire
9515 screen, a window or a user defined area of the screen, with optional
9516 beautifying border effects.")
9517 (license license:gpl2+)))
9518
9519 (define-public dconf-editor
9520 (package
9521 (name "dconf-editor")
9522 (version "3.38.3")
9523 (source
9524 (origin
9525 (method url-fetch)
9526 (uri (string-append "mirror://gnome/sources/" name "/"
9527 (version-major+minor version) "/"
9528 name "-" version ".tar.xz"))
9529 (sha256
9530 (base32
9531 "1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp"))))
9532 (build-system meson-build-system)
9533 (native-inputs
9534 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9535 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9536 ("intltool" ,intltool)
9537 ("pkg-config" ,pkg-config)
9538 ("vala" ,vala)))
9539 (inputs
9540 (list dconf gtk+ libxml2))
9541 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9542 (synopsis "Graphical editor for GNOME's dconf configuration system")
9543 (description
9544 "Dconf-editor is a graphical tool for browsing and editing the dconf
9545 configuration system for GNOME. It allows users to configure desktop
9546 software that do not provide their own configuration interface.")
9547 (license license:lgpl2.1+)))
9548
9549 (define-public gnome-default-applications
9550 (package
9551 (name "gnome-default-applications")
9552 (version "0")
9553 (build-system trivial-build-system)
9554 (source #f)
9555 (propagated-inputs
9556 (list nautilus evince))
9557 (arguments
9558 `(#:modules ((guix build utils))
9559 #:builder
9560 (begin
9561 (use-modules (guix build utils))
9562 (let* ((out (assoc-ref %outputs "out"))
9563 (apps (string-append out "/share/applications")))
9564 (mkdir-p apps)
9565 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9566 (lambda (port)
9567 (format port "[Default Applications]\n")
9568 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9569 (format port "application/pdf=evince.desktop\n")
9570 (format port "application/postscript=evince.desktop\n")))
9571 #t))))
9572 (synopsis "Default MIME type associations for the GNOME desktop")
9573 (description
9574 "Given many installed packages which might handle a given MIME type, a
9575 user running the GNOME desktop probably has some preferences: for example,
9576 that folders be opened by default by the Nautilus file manager, not the Baobab
9577 disk usage analyzer. This package establishes that set of default MIME type
9578 associations for GNOME.")
9579 (license license:gpl3+)
9580 (home-page #f)))
9581
9582 (define-public libgovirt
9583 (package
9584 (name "libgovirt")
9585 (version "0.3.8")
9586 (source (origin
9587 (method url-fetch)
9588 (uri (string-append "mirror://gnome/sources/" name "/"
9589 (version-major+minor version) "/"
9590 name "-" version ".tar.xz"))
9591 (sha256
9592 (base32
9593 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9594 (build-system glib-or-gtk-build-system)
9595 (native-inputs
9596 (list gettext-minimal
9597 `(,glib "bin")
9598 gobject-introspection
9599 gsettings-desktop-schemas
9600 `(,gtk+ "bin")
9601 pkg-config))
9602 (inputs
9603 (list glib-networking ; GIO plugin--for the tests
9604 rest))
9605 (synopsis "GoVirt Library")
9606 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9607 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9608 (license license:gpl2+)))
9609
9610 (define-public gnome-weather
9611 (package
9612 (name "gnome-weather")
9613 (version "42.0")
9614 (source (origin
9615 (method url-fetch)
9616 (uri (string-append "mirror://gnome/sources/" name "/"
9617 (version-major version) "/"
9618 name "-" version ".tar.xz"))
9619 (sha256
9620 (base32
9621 "0rdl0ywdk8jlq819wr1sbdzdvsasz11pp30fylzvprakv28yd7jp"))))
9622 (build-system meson-build-system)
9623 (arguments
9624 (list
9625 #:glib-or-gtk? #t
9626 #:phases
9627 #~(modify-phases %standard-phases
9628 (add-after 'unpack 'fix-service-file
9629 (lambda _
9630 (substitute* "data/org.gnome.Weather.service.in"
9631 (("Exec=[[:graph:]]+")
9632 (string-append "Exec=" #$output
9633 "/bin/gnome-weather")))))
9634 (add-after 'unpack 'disable-gtk-update-icon-cache
9635 (lambda _
9636 (setenv "DESTDIR" "/")))
9637 (add-after 'install 'fix-desktop-file
9638 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some
9639 ;; reason. See https://issues.guix.gnu.org/issue/39324.
9640 (lambda* (#:key outputs #:allow-other-keys)
9641 (substitute* (search-input-file
9642 outputs
9643 "share/applications/org.gnome.Weather.desktop")
9644 (("Exec=.*") "Exec=gnome-weather\n"))))
9645 (add-after 'install 'wrap
9646 (lambda* (#:key outputs #:allow-other-keys)
9647 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at
9648 ;; runtime.
9649 (wrap-program (search-input-file outputs "bin/gnome-weather")
9650 `("GI_TYPELIB_PATH" ":" prefix
9651 (,(getenv "GI_TYPELIB_PATH")))))))))
9652 (native-inputs
9653 (list gettext-minimal
9654 `(,glib "bin")
9655 gobject-introspection
9656 pkg-config))
9657 (inputs
9658 (list appstream-glib
9659 bash-minimal
9660 geoclue
9661 gjs
9662 gsettings-desktop-schemas-next
9663 gtk
9664 libadwaita
9665 libgweather4))
9666 (synopsis "Weather monitoring for GNOME desktop")
9667 (description "GNOME Weather is a small application that allows you to
9668 monitor the current weather conditions for your city, or anywhere in the
9669 world.")
9670 (home-page "https://wiki.gnome.org/Apps/Weather")
9671 (license license:gpl2+)))
9672
9673 (define-public gnome
9674 (package
9675 (name "gnome")
9676 (version (package-version gnome-shell))
9677 (source #f)
9678 (build-system trivial-build-system)
9679 (arguments '(#:builder (begin (mkdir %output) #t)))
9680 (propagated-inputs
9681 `(;; GNOME-Core-OS-Services
9682 ("accountsservice" ,accountsservice)
9683 ("network-manager" ,network-manager)
9684 ("packagekit" ,packagekit)
9685 ("upower" ,upower)
9686 ;; GNOME-Core-Shell
9687 ("adwaita-icon-theme" ,adwaita-icon-theme)
9688 ("gdm" ,gdm)
9689 ("glib-networking" ,glib-networking)
9690 ("gnome-backgrounds" ,gnome-backgrounds)
9691 ("gnome-bluetooth" ,gnome-bluetooth)
9692 ("gnome-color-manager" ,gnome-color-manager)
9693 ("gnome-control-center" ,gnome-control-center)
9694 ("gnome-desktop" ,gnome-desktop)
9695 ("gnome-initial-setup" ,gnome-initial-setup)
9696 ("gnome-keyring" ,gnome-keyring)
9697 ("gnome-menus" ,gnome-menus)
9698 ("gnome-session" ,gnome-session)
9699 ("gnome-settings-daemon" ,gnome-settings-daemon)
9700 ("gnome-shell-extensions" ,gnome-shell-extensions)
9701 ("gnome-shell" ,gnome-shell)
9702 ("gnome-themes-extra" ,gnome-themes-extra)
9703 ("gnome-user-docs" ,gnome-user-docs)
9704 ("gnome-user-share" ,gnome-user-share)
9705 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9706 ("gvfs" ,gvfs)
9707 ("mutter" ,mutter)
9708 ("orca" ,orca)
9709 ("rygel" ,rygel)
9710 ("sushi" ,sushi)
9711 ;; GNOME-Core-Utilities
9712 ("baobab" ,baobab)
9713 ("cheese" ,cheese)
9714 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9715 ;; only works on x86_64, so exclude it on other architectures.
9716 ,@(if (string-prefix? "x86_64" (%current-system))
9717 `(("eog" ,eog))
9718 '())
9719 ("epiphany" ,epiphany)
9720 ("evince" ,evince)
9721 ("file-roller" ,file-roller)
9722 ("gedit" ,gedit)
9723 ("gnome-boxes" ,gnome-boxes)
9724 ("gnome-calculator" ,gnome-calculator)
9725 ("gnome-calendar" ,gnome-calendar)
9726 ("gnome-characters" ,gnome-characters)
9727 ("gnome-clocks" ,gnome-clocks)
9728 ("gnome-contacts" ,gnome-contacts)
9729 ("gnome-disk-utility" ,gnome-disk-utility)
9730 ("gnome-font-viewer" ,gnome-font-viewer)
9731 ("gnome-maps" ,gnome-maps)
9732 ("gnome-music" ,gnome-music)
9733 ("gnome-photos" ,gnome-photos)
9734 ("gnome-screenshot" ,gnome-screenshot)
9735 ("gnome-system-monitor" ,gnome-system-monitor)
9736 ("gnome-terminal" ,gnome-terminal)
9737 ("gnome-weather" ,gnome-weather)
9738 ("nautilus" ,nautilus)
9739 ("simple-scan" ,simple-scan)
9740 ("totem" ,totem)
9741 ("tracker-miners" ,tracker-miners)
9742 ("yelp" ,yelp)
9743 ;; Others
9744 ("hicolor-icon-theme" ,hicolor-icon-theme)
9745 ("gnome-online-accounts" ,gnome-online-accounts)
9746
9747 ;; Packages not part of GNOME proper but that are needed for a good
9748 ;; experience. See <https://bugs.gnu.org/39646>.
9749 ;; XXX: Find out exactly which ones are needed and why.
9750 ("font-abattis-cantarell" ,font-abattis-cantarell)
9751 ("font-dejavu" ,font-dejavu)
9752 ("at-spi2-core" ,at-spi2-core-minimal)
9753 ("dbus" ,dbus)
9754 ("dconf" ,dconf)
9755 ("desktop-file-utils" ,desktop-file-utils)
9756 ("gnome-default-applications" ,gnome-default-applications)
9757 ("gst-plugins-base" ,gst-plugins-base)
9758 ("gst-plugins-good" ,gst-plugins-good)
9759 ("gucharmap" ,gucharmap)
9760 ("pinentry-gnome3" ,pinentry-gnome3)
9761 ("pulseaudio" ,pulseaudio)
9762 ("shared-mime-info" ,shared-mime-info)
9763 ("system-config-printer" ,system-config-printer)
9764 ("xdg-user-dirs" ,xdg-user-dirs)
9765 ("yelp" ,yelp)
9766 ("zenity" ,zenity)))
9767 (synopsis "The GNU desktop environment")
9768 (home-page "https://www.gnome.org/")
9769 (description
9770 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9771 applications for browsing the web, editing text and images, creating
9772 documents and diagrams, playing media, scanning, and much more.")
9773 (license license:gpl2+)))
9774
9775 (define-public byzanz
9776 ;; The last stable release of Byzanz was in 2011, but there have been many
9777 ;; useful commits made to the Byzanz repository since then that it would be
9778 ;; silly to use such an old release.
9779 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9780 (package
9781 (name "byzanz")
9782 (version (string-append "0.2-1." (string-take commit 7)))
9783 (source (origin
9784 (method git-fetch)
9785 (uri (git-reference
9786 (url "https://git.gnome.org/browse/byzanz")
9787 (commit commit)))
9788 (file-name (string-append name "-" version "-checkout"))
9789 (sha256
9790 (base32
9791 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9792 (build-system glib-or-gtk-build-system)
9793 (arguments
9794 '(#:phases
9795 (modify-phases %standard-phases
9796 (add-before 'bootstrap 'build-without-Werror
9797 (lambda _
9798 ;; The build system cleverly detects that we're not building from
9799 ;; a release tarball and turns on -Werror for GCC.
9800 ;; Unsurprisingly, there is a warning during compilation that
9801 ;; causes the build to fail unnecessarily, so we remove the flag.
9802 (substitute* '("configure.ac")
9803 (("-Werror") ""))
9804 #t)))))
9805 (native-inputs
9806 (list autoconf
9807 automake
9808 gnome-common
9809 intltool
9810 libtool
9811 pkg-config
9812 which))
9813 (inputs
9814 (list glib gstreamer gst-plugins-base gtk+))
9815 (synopsis "Desktop recording program")
9816 (description "Byzanz is a simple desktop recording program with a
9817 command-line interface. It can record part or all of an X display for a
9818 specified duration and save it as a GIF encoded animated image file.")
9819 (home-page "https://git.gnome.org/browse/byzanz")
9820 (license license:gpl2+))))
9821
9822 (define-public authenticator
9823 (package
9824 (name "authenticator")
9825 (version "3.32.2")
9826 (source
9827 (origin
9828 (method git-fetch)
9829 (uri (git-reference
9830 (url "https://gitlab.gnome.org/World/Authenticator")
9831 (commit version)))
9832 (file-name (git-file-name name version))
9833 (sha256
9834 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9835 (build-system meson-build-system)
9836 (arguments
9837 `(#:meson ,meson-0.59
9838 #:glib-or-gtk? #t
9839 #:phases
9840 (modify-phases %standard-phases
9841 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9842 (lambda* (#:key inputs outputs #:allow-other-keys)
9843 (let ((prog (string-append (assoc-ref outputs "out")
9844 "/bin/authenticator"))
9845 (pylib (string-append (assoc-ref outputs "out")
9846 "/lib/python"
9847 ,(version-major+minor
9848 (package-version
9849 (this-package-input "python")))
9850 "/site-packages")))
9851 (wrap-program prog
9852 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
9853 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
9854 (native-inputs
9855 (list desktop-file-utils
9856 gettext-minimal
9857 `(,glib "bin")
9858 gobject-introspection
9859 `(,gtk+ "bin")
9860 pkg-config))
9861 (inputs
9862 (list gsettings-desktop-schemas
9863 gtk+
9864 libhandy-0.0
9865 libsecret
9866 python
9867 python-beautifulsoup4
9868 python-pillow
9869 python-pyfavicon
9870 python-pygobject
9871 python-pyotp
9872 python-pyzbar
9873 yoyo-migrations
9874 zbar))
9875 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9876 (synopsis "Two-factor authentication application built for GNOME")
9877 (description
9878 "Authenticator is a two-factor authentication (2FA) application built for
9879 the GNOME desktop environment.
9880
9881 Features:
9882
9883 @itemize
9884 @item QR code scanner
9885 @item Beautiful UI
9886 @item Huge database of more than 560 supported services
9887 @item Keep your PIN tokens secure by locking the application with a password
9888 @item Automatically fetch an image for services using their favicon
9889 @item The possibility to add new services
9890 @end itemize")
9891 (license license:gpl3+)))
9892
9893 (define-public gsound
9894 (package
9895 (name "gsound")
9896 (version "1.0.3")
9897 (source (origin
9898 (method url-fetch)
9899 (uri (string-append "mirror://gnome/sources/gsound/"
9900 (version-major+minor version) "/"
9901 "gsound-" version ".tar.xz"))
9902 (sha256
9903 (base32
9904 "06l80xgykj7x1kqkjvcq06pwj2rmca458zvs053qc55x3sg06bfa"))))
9905 (build-system meson-build-system)
9906 (native-inputs
9907 (list pkg-config gobject-introspection vala))
9908 (propagated-inputs
9909 (list libcanberra)) ; in Requires.private of gsound.pc
9910 (home-page "https://wiki.gnome.org/Projects/GSound")
9911 (synopsis "GObject wrapper for libcanberra")
9912 (description
9913 "GSound is a small library for playing system sounds. It's designed to be
9914 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9915 library.")
9916 (license license:lgpl2.1+)))
9917
9918 (define-public libzapojit
9919 (package
9920 (name "libzapojit")
9921 (version "0.0.3")
9922 (source (origin
9923 (method url-fetch)
9924 (uri (string-append "mirror://gnome/sources/" name "/"
9925 (version-major+minor version) "/"
9926 name "-" version ".tar.xz"))
9927 (sha256
9928 (base32
9929 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9930 (build-system gnu-build-system)
9931 (native-inputs
9932 (list gobject-introspection intltool pkg-config))
9933 (inputs
9934 (list gnome-online-accounts json-glib rest))
9935 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9936 (synopsis "Library for accessing SkyDrive and Hotmail")
9937 (description
9938 "Libzapojit is a GLib-based library for accessing online service APIs of
9939 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9940 (license license:lgpl2.1+)))
9941
9942 (define-public gnome-clocks
9943 (package
9944 (name "gnome-clocks")
9945 (version "42.0")
9946 (source (origin
9947 (method url-fetch)
9948 (uri (string-append "mirror://gnome/sources/" name "/"
9949 (version-major version) "/"
9950 name "-" version ".tar.xz"))
9951 (sha256
9952 (base32
9953 "1q3gvniwd4dkr1ghqpp05zr7qswdhaxqrn8j6bm3qbh39bdihw8f"))))
9954 (build-system meson-build-system)
9955 (arguments
9956 '(#:glib-or-gtk? #t
9957 #:phases
9958 (modify-phases %standard-phases
9959 (add-after 'unpack 'skip-gtk-update-icon-cache
9960 ;; Don't create 'icon-theme.cache'.
9961 (lambda _
9962 (substitute* "meson.build"
9963 (("gtk_update_icon_cache: true")
9964 "gtk_update_icon_cache: false")))))))
9965 (native-inputs
9966 (list desktop-file-utils
9967 gettext-minimal
9968 `(,glib "bin") ; for glib-compile-resources
9969 itstool
9970 pkg-config
9971 vala-next))
9972 (inputs
9973 (list geoclue
9974 geocode-glib-with-libsoup2
9975 glib
9976 gnome-desktop
9977 gsound
9978 gtk
9979 libadwaita
9980 libgweather4-with-libsoup2))
9981 (home-page "https://wiki.gnome.org/Apps/Clocks")
9982 (synopsis "GNOME's clock application")
9983 (description
9984 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9985 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9986 (license license:gpl3+)))
9987
9988 (define-public gnome-calendar
9989 (package
9990 (name "gnome-calendar")
9991 (version "42.2")
9992 (source (origin
9993 (method url-fetch)
9994 (uri (string-append "mirror://gnome/sources/" name "/"
9995 (version-major version) "/"
9996 name "-" version ".tar.xz"))
9997 (sha256
9998 (base32
9999 "1ggvnl2jnc24nzpkjvsk57vpckjzb14a7mmnk6jjm84nmqxccz5f"))))
10000 (build-system meson-build-system)
10001 (arguments
10002 `(#:glib-or-gtk? #t
10003 #:phases
10004 (modify-phases %standard-phases
10005 (add-after 'unpack 'skip-gtk-update-icon-cache
10006 ;; Don't create 'icon-theme.cache'.
10007 (lambda _
10008 (substitute* "meson.build"
10009 (("gtk_update_icon_cache: true")
10010 "gtk_update_icon_cache: false")))))))
10011 (native-inputs
10012 (list gettext-minimal
10013 `(,glib "bin") ; For glib-compile-schemas
10014 pkg-config))
10015 (inputs
10016 ;; Note: not propagating evolution-data-server-3.44 to keep profiles
10017 ;; clean from libsoup2.
10018 (list evolution-data-server-3.44
10019 geoclue
10020 geocode-glib-with-libsoup2
10021 gnome-online-accounts-3.44
10022 gsettings-desktop-schemas
10023 libadwaita
10024 libdazzle
10025 libgweather4-with-libsoup2
10026 ;; Remove pango-next when it's the default.
10027 pango-next))
10028 (home-page "https://wiki.gnome.org/Apps/Calendar")
10029 (synopsis "GNOME's calendar application")
10030 (description
10031 "GNOME Calendar is a simple calendar application designed to fit the GNOME
10032 desktop. It supports multiple calendars, month, week and year view.")
10033 (license license:gpl3+)))
10034
10035 (define-public gnome-todo
10036 (package
10037 (name "gnome-todo")
10038 (version "41.0")
10039 (source (origin
10040 (method url-fetch)
10041 (uri (string-append "mirror://gnome/sources/" name "/"
10042 (version-major version) "/"
10043 name "-" version ".tar.xz"))
10044 (sha256
10045 (base32
10046 "1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras"))
10047 (patches (search-patches "gnome-todo-libportal.patch"))))
10048 (build-system meson-build-system)
10049 (arguments
10050 (list
10051 #:glib-or-gtk? #t
10052 #:phases
10053 #~(modify-phases %standard-phases
10054 (add-after 'unpack 'skip-gtk-update-icon-cache
10055 (lambda _
10056 (substitute* "build-aux/meson/meson_post_install.py"
10057 (("gtk-update-icon-cache") "true"))))
10058 (delete 'check)
10059 (add-after 'install 'check
10060 (assoc-ref %standard-phases
10061 'check))
10062 (add-before 'check 'pre-check
10063 (lambda _
10064 (setenv "GSETTINGS_SCHEMA_DIR"
10065 (string-append #$output "/share/glib-2.0/schemas")))))))
10066 (native-inputs
10067 (list gettext-minimal
10068 gobject-introspection
10069 `(,glib "bin") ;for glib-compile-resources
10070 `(,gtk "bin") ;for gtk-update-icon-cache
10071 itstool
10072 pkg-config))
10073 (inputs
10074 (list rest ;for Todoist plugin
10075 gtk
10076 json-glib ;for Todoist plugin
10077 libadwaita
10078 evolution-data-server
10079 libical
10080 libpeas
10081 libportal
10082 python-pygobject
10083 evolution-data-server
10084 gnome-online-accounts
10085 gsettings-desktop-schemas))
10086 (home-page "https://wiki.gnome.org/Apps/Todo")
10087 (synopsis "GNOME's ToDo Application")
10088 (description "GNOME To Do is a simplistic personal task manager designed
10089 to perfectly fit the GNOME desktop.")
10090 (license license:gpl3+)))
10091
10092 (define-public gnome-dictionary
10093 (package
10094 (name "gnome-dictionary")
10095 (version "40.0")
10096 (source (origin
10097 (method url-fetch)
10098 (uri (string-append "mirror://gnome/sources/" name "/"
10099 (version-major version) "/"
10100 name "-" version ".tar.xz"))
10101 (sha256
10102 (base32
10103 "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f"))))
10104 (build-system meson-build-system)
10105 (arguments
10106 `(#:glib-or-gtk? #t
10107 #:phases
10108 (modify-phases %standard-phases
10109 (add-after 'unpack 'skip-gtk-update-icon-cache
10110 ;; Don't create 'icon-theme.cache'.
10111 (lambda _
10112 (substitute* "build-aux/meson/post-install.py"
10113 (("gtk-update-icon-cache") "true")))))))
10114 (native-inputs
10115 (list `(,glib "bin")
10116 gobject-introspection
10117 intltool
10118 itstool
10119 pkg-config
10120 libxml2))
10121 (inputs
10122 (list gsettings-desktop-schemas
10123 gtk+))
10124 (home-page "https://wiki.gnome.org/Apps/Dictionary")
10125 (synopsis "Look up words in dictionary sources")
10126 (description
10127 "GNOME Dictionary can look for the definition or translation of a word in
10128 existing databases over the internet.")
10129 (license license:gpl3+)))
10130
10131 (define-public gnome-tweaks
10132 (package
10133 (name "gnome-tweaks")
10134 (version "40.10")
10135 (source (origin
10136 (method url-fetch)
10137 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
10138 (version-major version) "/"
10139 "gnome-tweaks-" version ".tar.xz"))
10140 (patches
10141 (list (search-patch "gnome-tweaks-search-paths.patch")))
10142 (sha256
10143 (base32
10144 "1z13xy804hld9q8k0vq5y4j5jk7m0ayqzkli8jxpymwrlcrkpzfg"))))
10145 (build-system meson-build-system)
10146 (arguments
10147 (list
10148 #:glib-or-gtk? #t
10149 #:configure-flags #~(list "-Dlocalstatedir=/tmp"
10150 "-Dsysconfdir=/tmp")
10151 #:imported-modules `((guix build python-build-system)
10152 ,@%meson-build-system-modules)
10153 #:modules '((guix build meson-build-system)
10154 ((guix build python-build-system) #:prefix python:)
10155 (guix build utils))
10156 #:phases
10157 #~(modify-phases %standard-phases
10158 (add-after 'unpack 'skip-gtk-update-icon-cache
10159 ;; Don't create 'icon-theme.cache'.
10160 (lambda _
10161 (substitute* "meson-postinstall.py"
10162 (("gtk-update-icon-cache") "true"))))
10163 (add-after 'install 'wrap
10164 (assoc-ref python:%standard-phases 'wrap))
10165 (add-after 'wrap 'wrap-gi-typelib-and-python
10166 (lambda* (#:key inputs outputs #:allow-other-keys)
10167 (wrap-program (search-input-file outputs "bin/gnome-tweaks")
10168 `("GI_TYPELIB_PATH" ":" prefix
10169 (,(getenv "GI_TYPELIB_PATH")))
10170 `("GUIX_PYTHONPATH" ":" prefix
10171 (,(python:site-packages inputs outputs)))))))))
10172 (native-inputs
10173 (list `(,glib "bin") ; for glib-compile-resources, etc.
10174 gettext-minimal
10175 pkg-config))
10176 (inputs
10177 (list bash-minimal ; to execute the wrapper program
10178 gnome-desktop
10179 gtk+
10180 gobject-introspection
10181 gsettings-desktop-schemas
10182 libhandy
10183 libnotify
10184 libsoup
10185 nautilus
10186 python
10187 python-pygobject))
10188 (synopsis "Customize advanced GNOME 3 options")
10189 (home-page "https://wiki.gnome.org/Apps/Tweaks")
10190 (description
10191 "GNOME Tweaks allows adjusting advanced configuration settings in
10192 GNOME 3. This includes things like the fonts used in user interface elements,
10193 alternative user interface themes, changes in window management behavior,
10194 GNOME Shell appearance and extension, etc.")
10195 (license license:gpl3+)))
10196
10197 (define-public gnome-shell-extensions
10198 (package
10199 (name "gnome-shell-extensions")
10200 (version "42.3")
10201 (source (origin
10202 (method url-fetch)
10203 (uri (string-append "mirror://gnome/sources/" name "/"
10204 (version-major version) "/"
10205 name "-" version ".tar.xz"))
10206 (sha256
10207 (base32
10208 "1z3k4bvq8f2s0q9q7i093w4hrz289lci7xlib20aqa4z5sivxhhf"))))
10209 (build-system meson-build-system)
10210 (arguments
10211 '(#:configure-flags '("-Dextension_set=all")))
10212 (native-inputs
10213 (list `(,glib "bin")
10214 gettext-minimal
10215 pkg-config))
10216 (propagated-inputs
10217 (list glib))
10218 (synopsis "Extensions for GNOME Shell")
10219 (description "GNOME Shell extensions modify and extend GNOME Shell
10220 functionality and behavior.")
10221 (home-page "https://extensions.gnome.org/")
10222 (license license:gpl3+)))
10223
10224 (define-public folks
10225 (package
10226 (name "folks")
10227 (version "0.15.5")
10228 (source (origin
10229 (method url-fetch)
10230 (uri (string-append
10231 "mirror://gnome/sources/folks/"
10232 (version-major+minor version) "/"
10233 "folks-" version ".tar.xz"))
10234 (sha256
10235 (base32
10236 "11lhfn6b7gml4ckj2dkm6g889j21wpvj90srwjp85k9hcf4qmzqg"))))
10237 (build-system meson-build-system)
10238 (arguments
10239 '(#:phases
10240 (modify-phases %standard-phases
10241 (add-after 'unpack 'skip-gtk-update-icon-cache
10242 ;; Don't create 'icon-theme.cache'.
10243 (lambda _
10244 (substitute* "meson_post_install.py"
10245 (("gtk-update-icon-cache") "true")))))))
10246 (inputs
10247 (list bdb
10248 dbus-glib
10249 evolution-data-server
10250 glib
10251 libgee
10252 readline
10253 telepathy-glib))
10254 (native-inputs
10255 (list gettext-minimal
10256 `(,glib "bin")
10257 gobject-introspection
10258 python-dbusmock
10259 pkg-config
10260 python
10261 vala))
10262 (synopsis "Library to aggregate data about people")
10263 (description "Libfolks is a library that aggregates information about people
10264 from multiple sources (e.g., Telepathy connection managers for IM contacts,
10265 Evolution Data Server for local contacts, libsocialweb for web service contacts,
10266 etc.) to create metacontacts. It's written in Vala, which generates C code when
10267 compiled.")
10268 (home-page "https://wiki.gnome.org/Projects/Folks")
10269 (license license:lgpl2.1+)))
10270
10271 (define-public gfbgraph
10272 (package
10273 (name "gfbgraph")
10274 (version "0.2.4")
10275 (source (origin
10276 (method url-fetch)
10277 (uri (string-append
10278 "mirror://gnome/sources/gfbgraph/"
10279 (version-major+minor version) "/"
10280 "gfbgraph-" version ".tar.xz"))
10281 (sha256
10282 (base32
10283 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
10284 (build-system glib-or-gtk-build-system)
10285 (arguments
10286 `(#:tests? #f ; tests appear to require the network
10287 #:configure-flags '("--disable-static"
10288 "--enable-gtk-doc"
10289 "--enable-introspection")))
10290 (native-inputs
10291 (list gobject-introspection
10292 gtk-doc/stable
10293 pkg-config
10294 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
10295 autoconf
10296 automake
10297 libtool
10298 which))
10299 (inputs
10300 `(("json-glib" ,json-glib)
10301 ("gnome-online-accounts" ,gnome-online-accounts)
10302 ("rest" ,rest)))
10303 (synopsis "GLib/GObject wrapper for the Facebook API")
10304 (description "This library allows you to use the Facebook API from
10305 GLib/GObject code.")
10306 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
10307 (license license:lgpl2.1+)))
10308
10309 (define-public libgnomekbd
10310 (package
10311 (name "libgnomekbd")
10312 (version "3.28.0")
10313 (source (origin
10314 (method url-fetch)
10315 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
10316 (version-major+minor version) "/"
10317 "libgnomekbd-" version ".tar.xz"))
10318 (sha256
10319 (base32
10320 "1jarhq9crhq0wfnbcz7x3hgxbkan98ax3p2jwcgzj9jc7r27l1dk"))))
10321 (build-system gnu-build-system)
10322 (native-inputs
10323 (list autoconf
10324 automake
10325 `(,glib "bin")
10326 libtool
10327 pkg-config
10328 gettext-minimal
10329 gobject-introspection))
10330 (propagated-inputs
10331 ;; Referred to in .h files and .pc.
10332 (list glib
10333 gtk+
10334 libxklavier))
10335 (home-page "https://www.gnome.org")
10336 (synopsis "GNOME keyboard configuration library")
10337 (description
10338 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
10339 environment, which can notably display keyboard layouts.")
10340 (license license:lgpl2.0+)))
10341
10342 ;;; This package is no longer maintained:
10343 ;;; https://wiki.gnome.org/Attic/LibUnique
10344 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
10345 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
10346 (define-public libunique
10347 (package
10348 (name "libunique")
10349 (version "3.0.2")
10350 (source (origin
10351 (method url-fetch)
10352 (uri (string-append "mirror://gnome/sources/" name "/"
10353 (version-major+minor version) "/"
10354 name "-" version ".tar.xz"))
10355 (sha256
10356 (base32
10357 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
10358 (build-system glib-or-gtk-build-system)
10359 (arguments
10360 `(#:configure-flags '("--disable-static"
10361 "--disable-dbus" ; use gdbus
10362 "--enable-introspection")))
10363 (native-inputs
10364 `(("pkg-config" ,pkg-config)
10365 ("gobject-introspection" ,gobject-introspection)
10366 ("glib:bin" ,glib "bin")
10367 ("gtk-doc" ,gtk-doc/stable)))
10368 (propagated-inputs
10369 ;; Referred to in .h files and .pc.
10370 (list gtk+))
10371 (home-page "https://wiki.gnome.org/Attic/LibUnique")
10372 (synopsis "Library for writing single instance applications")
10373 (description
10374 "Libunique is a library for writing single instance applications. If you
10375 launch a single instance application twice, the second instance will either just
10376 quit or will send a message to the running instance. Libunique makes it easy to
10377 write this kind of application, by providing a base class, taking care of all
10378 the IPC machinery needed to send messages to a running instance, and also
10379 handling the startup notification side.")
10380 (license license:lgpl2.1+)))
10381
10382 (define-public gnome-calculator
10383 (package
10384 (name "gnome-calculator")
10385 (version "42.2")
10386 (source
10387 (origin
10388 (method url-fetch)
10389 (uri (string-append "mirror://gnome/sources/" name "/"
10390 (version-major version) "/"
10391 name "-" version ".tar.xz"))
10392 (sha256
10393 (base32
10394 "1866qn0r9xp7b7j1436kry2k3bdh9ikhz2wm41jxcn1nljyb3nik"))))
10395 (build-system meson-build-system)
10396 (arguments
10397 '(#:glib-or-gtk? #t
10398 #:phases
10399 (modify-phases %standard-phases
10400 (add-after 'unpack 'skip-gtk-update-icon-cache
10401 (lambda _
10402 (substitute* "meson.build"
10403 (("gtk_update_icon_cache: true")
10404 "gtk_update_icon_cache: false"))))
10405 (add-before 'check 'pre-check
10406 (lambda _
10407 ;; Tests require a writable HOME.
10408 (setenv "HOME" (getcwd)))))))
10409 (native-inputs
10410 (list gettext-minimal
10411 `(,glib "bin") ;for glib-compile-schemas, gio-2.0.
10412 itstool
10413 pkg-config
10414 python
10415 vala))
10416 (inputs
10417 (list gsettings-desktop-schemas-next
10418 gtksourceview
10419 libadwaita
10420 libgee
10421 libhandy
10422 libsoup-minimal-2
10423 libxml2
10424 mpc
10425 mpfr))
10426 (home-page "https://wiki.gnome.org/Apps/Calculator")
10427 (synopsis "Desktop calculator")
10428 (description
10429 "Calculator is an application that solves mathematical equations and
10430 is suitable as a default application in a Desktop environment.")
10431 (license license:gpl3)))
10432
10433 (define-public xpad
10434 (package
10435 (name "xpad")
10436 (version "5.8.0")
10437 (source
10438 (origin
10439 (method url-fetch)
10440 (uri (string-append "https://launchpad.net/xpad/trunk/"
10441 version "/+download/"
10442 name "-" version ".tar.bz2"))
10443 (sha256
10444 (base32
10445 "1sc2dz4yxx6glnqpnhiby85g2blnsfn8d3fvbaqhdi2hi0q54q7j"))))
10446 (build-system gnu-build-system)
10447 (native-inputs
10448 (list autoconf automake
10449 `(,gtk+ "bin") intltool pkg-config))
10450 (inputs
10451 (list gtksourceview libsm))
10452 (home-page "https://wiki.gnome.org/Apps/Xpad")
10453 (synopsis "Virtual sticky note")
10454 (description
10455 "Xpad is a sticky note that strives to be simple, fault tolerant,
10456 and customizable. Xpad consists of independent pad windows, each is
10457 basically a text box in which notes can be written.")
10458 (license license:gpl3+)))
10459
10460 (define-public gucharmap
10461 (let ((unicode-files
10462 '(("Blocks.txt"
10463 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
10464 ("DerivedAge.txt"
10465 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
10466 ("NamesList.txt"
10467 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
10468 ("Scripts.txt"
10469 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
10470 ("UnicodeData.txt"
10471 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
10472 ("Unihan.zip"
10473 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
10474 (package
10475 (name "gucharmap")
10476 (version "12.0.1")
10477 (source
10478 (origin
10479 (method url-fetch)
10480 (uri (string-append "mirror://gnome/sources/" name "/"
10481 (version-major+minor version) "/"
10482 name "-" version ".tar.xz"))
10483 (sha256
10484 (base32
10485 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
10486 (build-system glib-or-gtk-build-system)
10487 (arguments
10488 `(#:modules ((ice-9 match)
10489 (guix build glib-or-gtk-build-system)
10490 (guix build utils))
10491 #:configure-flags
10492 (list "--with-unicode-data=../unicode-data")
10493 #:phases
10494 (modify-phases %standard-phases
10495 (add-after 'unpack 'prepare-unicode-data
10496 (lambda* (#:key inputs #:allow-other-keys)
10497 (mkdir-p "../unicode-data")
10498 (with-directory-excursion "../unicode-data"
10499 (for-each (match-lambda
10500 ((file _)
10501 (install-file (assoc-ref inputs file) ".")))
10502 ',unicode-files))
10503 #t)))))
10504 (native-inputs
10505 `(("desktop-file-utils" ,desktop-file-utils)
10506 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
10507 ("gobject-introspection" ,gobject-introspection)
10508 ("intltool" ,intltool)
10509 ("itstool" ,itstool)
10510 ("pkg-config" ,pkg-config)
10511 ,@(map (match-lambda
10512 ((file hash)
10513 `(,file
10514 ,(origin
10515 (method url-fetch)
10516 (uri (string-append
10517 "http://www.unicode.org/Public/12.0.0/ucd/"
10518 file))
10519 (sha256 (base32 hash))))))
10520 unicode-files)
10521 ("unzip" ,unzip)))
10522 (inputs
10523 `(("gtk+" ,gtk+)
10524 ("xmllint" ,libxml2)))
10525 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
10526 (synopsis "Unicode character picker and font browser")
10527 (description
10528 "This program allows you to browse through all the available Unicode
10529 characters and categories for the installed fonts, and to examine their
10530 detailed properties. It is an easy way to find the character you might
10531 only know by its Unicode name or code point.")
10532 (license license:gpl3+))))
10533
10534 (define-public gcolor3
10535 (package
10536 (name "gcolor3")
10537 (version "2.4.0")
10538 (source
10539 (origin
10540 (method git-fetch)
10541 (uri (git-reference
10542 (url "https://gitlab.gnome.org/World/gcolor3")
10543 (commit (string-append "v" version))))
10544 (file-name (git-file-name name version))
10545 (sha256
10546 (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc"))
10547 ;; XXX: Remove when upgrading
10548 (patches (search-patches "gcolor3-update-libportal-usage.patch"))))
10549 (build-system meson-build-system)
10550 (arguments
10551 `(#:glib-or-gtk? #t))
10552 (native-inputs
10553 (list desktop-file-utils gettext-minimal
10554 `(,glib "bin")
10555 `(,gtk+ "bin") pkg-config))
10556 (inputs
10557 (list gsettings-desktop-schemas gtk+ libportal))
10558 (home-page "https://www.hjdskes.nl/projects/gcolor3/")
10559 (synopsis "Simple color chooser written in GTK3")
10560 (description "Color Picker is a simple color chooser written in GTK3. It
10561 supports both X and Wayland display servers.")
10562 (license license:gpl2+)))
10563
10564 (define-public bluefish
10565 (package
10566 (name "bluefish")
10567 (version "2.2.12")
10568 (source
10569 (origin
10570 (method url-fetch)
10571 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
10572 "bluefish-" version ".tar.gz"))
10573 (sha256
10574 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
10575 (build-system gnu-build-system)
10576 (native-inputs
10577 (list desktop-file-utils intltool pkg-config))
10578 (inputs
10579 (list enchant gtk+ python-wrapper libxml2 gucharmap))
10580 (home-page "http://bluefish.openoffice.nl")
10581 (synopsis "Web development studio")
10582 (description
10583 "Bluefish is an editor aimed at programmers and web developers,
10584 with many options to write web sites, scripts and other code.
10585 Bluefish supports many programming and markup languages.")
10586 (license license:gpl3+)))
10587
10588 (define-public gnome-system-monitor
10589 (package
10590 (name "gnome-system-monitor")
10591 (version "42.0")
10592 (source
10593 (origin
10594 (method url-fetch)
10595 (uri (string-append "mirror://gnome/sources/" name "/"
10596 (version-major version) "/"
10597 name "-" version ".tar.xz"))
10598 (sha256
10599 (base32
10600 "1p3mq32pfd9260aql5nys806g0c4nrswacwqs8ms40920ci9s8qk"))))
10601 (build-system meson-build-system)
10602 (arguments
10603 '(#:glib-or-gtk? #t
10604 #:configure-flags '("-Dsystemd=false")))
10605 (native-inputs
10606 (list `(,glib "bin") ;for glib-mkenums.
10607 `(,gtk+ "bin") ;gtk-update-icon-cache
10608 intltool
10609 itstool
10610 libgtop
10611 polkit
10612 pkg-config))
10613 (inputs
10614 (list gdk-pixbuf ;for loading SVG files.
10615 gtk+
10616 gtkmm-3
10617 libhandy
10618 librsvg
10619 libxml2
10620 libwnck))
10621 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10622 (synopsis "Process viewer and system resource monitor for GNOME")
10623 (description
10624 "GNOME System Monitor is a GNOME process viewer and system monitor with
10625 an attractive, easy-to-use interface. It has features, such as a tree view
10626 for process dependencies, icons for processes, the ability to hide processes,
10627 graphical time histories of CPU/memory/swap usage and the ability to
10628 kill/reinice processes.")
10629 (license license:gpl2+)))
10630
10631 (define-public python-pyatspi
10632 (package
10633 (name "python-pyatspi")
10634 (version "2.34.0")
10635 (source (origin
10636 (method url-fetch)
10637 (uri (string-append
10638 "mirror://gnome/sources/pyatspi/"
10639 (version-major+minor version)
10640 "/pyatspi-" version ".tar.xz"))
10641 (sha256
10642 (base32
10643 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10644 (build-system gnu-build-system)
10645 (arguments
10646 `(#:phases
10647 (modify-phases %standard-phases
10648 (add-before 'build 'fix-atk-load
10649 (lambda _
10650 (substitute* "pyatspi/__init__.py"
10651 (("from gi.repository import Atspi")
10652 "gi.require_version('Gtk', '3.0')
10653 from gi.repository import Gtk
10654 from gi.repository import Atspi"))
10655 #t)))))
10656 (native-inputs
10657 (list pkg-config))
10658 (inputs
10659 (list python))
10660 (propagated-inputs
10661 (list python-pygobject))
10662 (synopsis "Python client bindings for D-Bus AT-SPI")
10663 (home-page "https://wiki.linuxfoundation.org/accessibility\
10664 /atk/at-spi/at-spi_on_d-bus")
10665 (description
10666 "This package includes a python client library for the AT-SPI D-Bus
10667 accessibility infrastructure.")
10668 (license license:lgpl2.0)
10669 (properties '((upstream-name . "pyatspi")))))
10670
10671 (define-public orca
10672 (package
10673 (name "orca")
10674 (version "41.0")
10675 (source (origin
10676 (method url-fetch)
10677 (uri (string-append
10678 "mirror://gnome/sources/" name "/"
10679 (version-major version) "/"
10680 name "-" version ".tar.xz"))
10681 (sha256
10682 (base32
10683 "1gflnsv6d5qn5rh1f16yfa0q0yv8yvd0l5lbwrsdg7z18lafb5vn"))))
10684 (build-system glib-or-gtk-build-system)
10685 (arguments
10686 '(#:phases
10687 (modify-phases %standard-phases
10688 (add-before 'configure 'qualify-xkbcomp
10689 (lambda* (#:key inputs #:allow-other-keys)
10690 (let ((xkbcomp (string-append
10691 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10692 (substitute* "src/orca/orca.py"
10693 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))))
10694 (add-after 'install 'wrap-orca
10695 (lambda* (#:key outputs #:allow-other-keys)
10696 (let* ((out (assoc-ref outputs "out"))
10697 (prog (string-append out "/bin/orca")))
10698 (wrap-program prog
10699 `("GI_TYPELIB_PATH" ":" prefix
10700 (,(getenv "GI_TYPELIB_PATH")))
10701 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10702 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10703 `("GUIX_PYTHONPATH" ":" prefix
10704 (,(getenv "GUIX_PYTHONPATH"))))))))))
10705 (native-inputs
10706 (list intltool
10707 itstool
10708 pkg-config
10709 libxml2))
10710 (inputs
10711 (list at-spi2-atk
10712 gsettings-desktop-schemas
10713 gstreamer
10714 gst-plugins-base
10715 gst-plugins-good
10716 gtk+
10717 python
10718 python-pygobject
10719 python-pyatspi
10720 speech-dispatcher
10721 xkbcomp))
10722 (synopsis
10723 "Screen reader for individuals who are blind or visually impaired")
10724 (home-page "https://wiki.gnome.org/Projects/Orca")
10725 (description
10726 "Orca is a screen reader that provides access to the graphical desktop
10727 via speech and refreshable braille. Orca works with applications and toolkits
10728 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10729 (license license:lgpl2.1+)))
10730
10731 (define-public gspell
10732 (package
10733 (name "gspell")
10734 (version "1.8.2")
10735 (source (origin
10736 (method url-fetch)
10737 (uri (string-append "mirror://gnome/sources/" name "/"
10738 (version-major+minor version) "/"
10739 name "-" version ".tar.xz"))
10740 (sha256
10741 (base32
10742 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10743 (patches (search-patches "gspell-dash-test.patch"))))
10744 (build-system glib-or-gtk-build-system)
10745 (arguments
10746 '(#:configure-flags (list "--enable-vala")
10747 #:phases
10748 (modify-phases %standard-phases
10749 (add-before 'check 'pre-check
10750 (lambda* (#:key inputs #:allow-other-keys)
10751 ;; Tests require a running X server.
10752 (system "Xvfb :1 &")
10753 (setenv "DISPLAY" ":1")
10754
10755 ;; For the missing /etc/machine-id.
10756 (setenv "DBUS_FATAL_WARNINGS" "0")
10757
10758 ;; Allow Enchant and its Aspell backend to find the en_US
10759 ;; dictionary.
10760 (setenv "ASPELL_DICT_DIR"
10761 (search-input-directory inputs "/lib/aspell")))))))
10762 (inputs
10763 (list iso-codes))
10764 (native-inputs
10765 `(("glib" ,glib "bin")
10766 ("gobject-introspection" ,gobject-introspection)
10767 ("pkg-config" ,pkg-config)
10768 ("vala" ,vala) ;for VAPI, needed by Geary
10769 ("xmllint" ,libxml2)
10770
10771 ;; For tests.
10772 ("aspell-dict-en" ,aspell-dict-en)
10773 ("xorg-server" ,xorg-server-for-tests)))
10774 (propagated-inputs
10775 ;; Referred by .pc file.
10776 (list enchant glib gtk+))
10777 (home-page "https://wiki.gnome.org/Projects/gspell")
10778 (synopsis "GNOME's alternative spell checker")
10779 (description
10780 "gspell provides a flexible API to add spell-checking to a GTK+
10781 application. It provides a GObject API, spell-checking to text entries and
10782 text views, and buttons to choose the language.")
10783 (license license:gpl2+)))
10784
10785 (define-public gnome-planner
10786 (package
10787 (name "gnome-planner")
10788 (version "0.14.6")
10789 (source (origin
10790 (method url-fetch)
10791 (uri (string-append "mirror://gnome/sources/planner/"
10792 (version-major+minor version) "/planner-"
10793 version ".tar.xz"))
10794 (sha256
10795 (base32
10796 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10797 (build-system glib-or-gtk-build-system)
10798 (arguments
10799 ;; Disable the Python bindings because the Planner program functions
10800 ;; without them, and (as of 2017-06-13) we have not packaged all of
10801 ;; packages that are necessary for building the Python bindings.
10802 `(#:configure-flags
10803 (list "--disable-python"
10804 ,@(if (string=? "aarch64-linux" (%current-system))
10805 '("--build=aarch64-unknown-linux-gnu")
10806 '()))))
10807 (inputs
10808 (list libgnomecanvas
10809 libgnomeui
10810 libglade
10811 gnome-vfs
10812 gconf
10813 libxml2
10814 libxslt
10815 gtk+
10816 glib))
10817 (native-inputs
10818 (list intltool scrollkeeper pkg-config))
10819 (home-page "https://wiki.gnome.org/Apps/Planner")
10820 (synopsis "Project management software for the GNOME desktop")
10821 (description
10822 "GNOME Planner is a project management tool based on the Work Breakdown
10823 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10824 the resources, tasks, and constraints that you define, Planner generates
10825 various views into a project. For example, Planner can show a Gantt chart of
10826 the project. It can show a detailed summary of tasks including their
10827 duration, cost, and current progress. It can also show a report of resource
10828 utilization that highlights under-utilized and over-utilized resources. These
10829 views can be printed as PDF or PostScript files, or exported to HTML.")
10830 (license license:gpl2+)))
10831
10832 (define-public lollypop
10833 (package
10834 (name "lollypop")
10835 (version "1.4.24")
10836 (source
10837 (origin
10838 (method url-fetch)
10839 (uri (string-append "https://adishatz.org/lollypop/"
10840 "lollypop-" version ".tar.xz"))
10841 (sha256
10842 (base32 "10cw3x75siibmnbh4zhfmf2vd08fqjs3lj3l4wpk6zj9h22ncfxw"))))
10843 (build-system meson-build-system)
10844 (arguments
10845 `(#:imported-modules
10846 (,@%meson-build-system-modules
10847 (guix build python-build-system))
10848 #:modules
10849 ((guix build meson-build-system)
10850 ((guix build python-build-system) #:prefix python:)
10851 (guix build utils))
10852 #:glib-or-gtk? #t
10853 #:tests? #f ; no test suite
10854 #:phases
10855 (modify-phases %standard-phases
10856 (add-after 'install 'wrap-program
10857 (lambda* (#:key outputs #:allow-other-keys)
10858 (let ((out (assoc-ref outputs "out"))
10859 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10860 (wrap-program (string-append out "/bin/lollypop")
10861 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10862 #t))
10863 (add-after 'install 'wrap-python
10864 (assoc-ref python:%standard-phases 'wrap)))))
10865 (native-inputs
10866 `(("gettext" ,gettext-minimal)
10867 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10868 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10869 ("pkg-config" ,pkg-config)))
10870 (inputs
10871 `(("glib-networking" ,glib-networking)
10872 ("gobject-introspection" ,gobject-introspection)
10873 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10874 ("gst-plugins-base" ,gst-plugins-base)
10875 ("libnotify" ,libnotify)
10876 ("libsecret" ,libsecret)
10877 ("libhandy" ,libhandy)
10878 ("libsoup" ,libsoup-minimal-2)
10879 ("python" ,python)
10880 ("python-beautifulsoup4" ,python-beautifulsoup4)
10881 ("python-gst" ,python-gst)
10882 ("python-pil" ,python-pillow)
10883 ("python-pycairo" ,python-pycairo)
10884 ("python-pygobject" ,python-pygobject)
10885 ("python-pylast" ,python-pylast)
10886 ("totem-pl-parser" ,totem-pl-parser)
10887 ("webkitgtk" ,webkitgtk)))
10888 (propagated-inputs
10889 (list ;; gst-plugins-base is required to start Lollypop,
10890 ;; the others are required to play streaming.
10891 gst-plugins-good gst-plugins-ugly))
10892 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10893 (synopsis "GNOME music playing application")
10894 (description
10895 "Lollypop is a music player designed to play well with GNOME desktop.
10896 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10897 from artists and tracks from the web. It also fetches cover artworks
10898 automatically and it can stream songs from online music services and charts.")
10899 (license license:gpl3+)))
10900
10901 (define-public gnome-video-effects
10902 (package
10903 (name "gnome-video-effects")
10904 (version "0.5.0")
10905 (source (origin
10906 (method url-fetch)
10907 (uri (string-append "mirror://gnome/sources/" name "/"
10908 (version-major+minor version) "/" name "-"
10909 version ".tar.xz"))
10910 (sha256
10911 (base32
10912 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10913 (build-system meson-build-system)
10914 (native-inputs
10915 (list gettext-minimal pkg-config))
10916 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10917 (synopsis "Video effects for Cheese and other GNOME applications")
10918 (description
10919 "A collection of GStreamer video filters and effects to be used in
10920 photo-booth-like software, such as Cheese.")
10921 (license license:gpl2+)))
10922
10923 (define-public cheese
10924 (package
10925 (name "cheese")
10926 (version "41.0")
10927 (source (origin
10928 (method url-fetch)
10929 (uri (string-append "mirror://gnome/sources/" name "/"
10930 (version-major version) "/" name "-"
10931 version ".tar.xz"))
10932 (sha256
10933 (base32
10934 "1y92glc0d6w323x2bdbc0gdh1jdffvkbv6cwlwm1rx0wgvv1svqh"))))
10935 (arguments
10936 `(#:glib-or-gtk? #t
10937 #:meson ,meson-0.60
10938 ;; Tests require GDK.
10939 #:tests? #f
10940 #:phases
10941 (modify-phases %standard-phases
10942 (add-after 'unpack 'skip-gtk-update-icon-cache
10943 (lambda _
10944 ;; Don't create 'icon-theme.cache'
10945 (substitute* "meson_post_install.py"
10946 (("gtk-update-icon-cache") (which "true")))
10947 #t))
10948 (add-after 'install 'wrap-cheese
10949 (lambda* (#:key inputs outputs #:allow-other-keys)
10950 (let ((out (assoc-ref outputs "out"))
10951 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10952 (wrap-program (string-append out "/bin/cheese")
10953 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10954 #t)))))
10955 (build-system meson-build-system)
10956 (native-inputs
10957 (list docbook-xsl
10958 docbook-xml-4.3
10959 gettext-minimal
10960 `(,glib "bin")
10961 gtk-doc/stable
10962 itstool
10963 libxml2
10964 libxslt
10965 pkg-config
10966 vala))
10967 (propagated-inputs
10968 (list gnome-video-effects
10969 clutter
10970 clutter-gst
10971 clutter-gtk
10972 libcanberra
10973 gdk-pixbuf
10974 glib
10975 gstreamer))
10976 (inputs
10977 (list gnome-desktop
10978 gobject-introspection
10979 gst-plugins-base
10980 gst-plugins-good
10981 gst-plugins-bad
10982 gtk+
10983 libx11
10984 libxtst))
10985 (home-page "https://wiki.gnome.org/Apps/Cheese")
10986 (synopsis "Webcam photo booth software for GNOME")
10987 (description
10988 "Cheese uses your webcam to take photos and videos. Cheese can also
10989 apply fancy special effects and lets you share the fun with others.")
10990 (license license:gpl2+)))
10991
10992 (define-public passwordsafe
10993 (package
10994 (name "passwordsafe")
10995 (version "5.1")
10996 (source
10997 (origin
10998 (method git-fetch)
10999 (uri (git-reference
11000 (url "https://gitlab.gnome.org/World/secrets")
11001 (commit version)))
11002 (file-name (git-file-name name version))
11003 (sha256
11004 (base32 "0kd43j6i017wdsqj6d5gnxhfv4ijnh3xahlw7md2gh51i8p682j6"))))
11005 (build-system meson-build-system)
11006 (arguments
11007 (list #:glib-or-gtk? #t
11008 #:meson meson-0.59
11009 #:phases
11010 #~(modify-phases %standard-phases
11011 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11012 (lambda* (#:key outputs #:allow-other-keys)
11013 (let ((prog (string-append #$output
11014 "/bin/gnome-passwordsafe"))
11015 (pylib (string-append
11016 #$output "/lib/python"
11017 #$(version-major+minor
11018 (package-version (this-package-input "python")))
11019 "/site-packages")))
11020 (wrap-program prog
11021 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11022 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11023 (native-inputs
11024 (list desktop-file-utils
11025 gettext-minimal
11026 `(,glib "bin")
11027 gobject-introspection
11028 `(,gtk+ "bin")
11029 pkg-config))
11030 (inputs
11031 (list glib
11032 gsettings-desktop-schemas
11033 gtk+
11034 libhandy
11035 libpwquality
11036 python
11037 python-pygobject
11038 python-pykeepass))
11039 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
11040 (synopsis "Password manager for the GNOME desktop")
11041 (description
11042 "Password Safe is a password manager which makes use of the KeePass v4
11043 format. It integrates perfectly with the GNOME desktop and provides an easy
11044 and uncluttered interface for the management of password databases.")
11045 (license license:gpl3+)))
11046
11047 (define-public sound-juicer
11048 (package
11049 (name "sound-juicer")
11050 (version "3.24.0")
11051 (source
11052 (origin
11053 (method url-fetch)
11054 (uri (string-append "mirror://gnome/sources/" name "/"
11055 (version-major+minor version) "/"
11056 name "-" version ".tar.xz"))
11057 (sha256
11058 (base32
11059 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
11060 (build-system glib-or-gtk-build-system)
11061 (native-inputs
11062 (list desktop-file-utils intltool itstool pkg-config libxml2))
11063 (inputs
11064 (list gtk+
11065 gsettings-desktop-schemas
11066 gstreamer
11067 gst-plugins-base
11068 gst-plugins-good
11069 iso-codes
11070 brasero
11071 libcanberra
11072 libdiscid
11073 libmusicbrainz
11074 neon))
11075 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
11076 (synopsis "Audio music cd ripper")
11077 (description "Sound Juicer extracts audio from compact discs and convert it
11078 into audio files that a personal computer or digital audio player can play.
11079 It supports ripping to any audio codec supported by a GStreamer plugin, such as
11080 mp3, Ogg Vorbis and FLAC")
11081 (license license:gpl2+)))
11082
11083 (define-public soundconverter
11084 (package
11085 (name "soundconverter")
11086 (version "3.0.2")
11087 (source
11088 (origin
11089 (method url-fetch)
11090 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
11091 version "/+download/"
11092 "soundconverter-" version ".tar.xz"))
11093
11094 (sha256
11095 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
11096 (build-system glib-or-gtk-build-system)
11097 (arguments
11098 `(#:imported-modules ((guix build python-build-system)
11099 (guix build glib-or-gtk-build-system)
11100 ,@%gnu-build-system-modules)
11101
11102 #:modules ((guix build glib-or-gtk-build-system)
11103 (guix build utils)
11104 ((guix build gnu-build-system) #:prefix gnu:)
11105 ((guix build python-build-system) #:prefix python:))
11106
11107 #:phases
11108 (modify-phases %standard-phases
11109 (add-after 'install 'wrap-soundconverter-for-python
11110 (assoc-ref python:%standard-phases 'wrap))
11111 (add-after 'install 'wrap-soundconverter
11112 (lambda* (#:key inputs outputs #:allow-other-keys)
11113 (let ((out (assoc-ref outputs "out"))
11114 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
11115 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
11116 (wrap-program (string-append out "/bin/soundconverter")
11117 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
11118 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
11119 #t)))))
11120 (native-inputs
11121 `(("intltool" ,intltool)
11122 ("pkg-config" ,pkg-config)
11123 ("glib:bin" ,glib "bin")))
11124 (inputs
11125 (list gtk+ python python-pygobject gstreamer gst-plugins-base))
11126 (home-page "https://soundconverter.org/")
11127 (synopsis "Convert between audio formats with a graphical interface")
11128 (description
11129 "SoundConverter supports converting between many audio formats including
11130 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
11131 configurable file renaming.")
11132 (license license:gpl3)))
11133
11134 (define-public workrave
11135 (package
11136 (name "workrave")
11137 (version "1.10.50")
11138 (source
11139 (origin
11140 (method git-fetch)
11141 (uri (git-reference
11142 (url "https://github.com/rcaelers/workrave")
11143 (commit (string-append "v" (string-map
11144 (match-lambda (#\. #\_) (chr chr))
11145 version)))))
11146 (file-name (git-file-name name version))
11147 (sha256
11148 (base32 "0fj3fqmdn4nsjgvbbvzpxw2mgiihcr1zpb08amg2p6hg9n11y9bx"))))
11149 (build-system glib-or-gtk-build-system)
11150 (arguments
11151 ;; The only tests are maintainer tests (in po/), which fail.
11152 `(#:tests? #f))
11153 (inputs (list glib
11154 gtk+
11155 gdk-pixbuf
11156 gtkmm-3
11157 glibmm
11158 libx11
11159 libxtst
11160 dconf
11161 libice
11162 libsm
11163 libxscrnsaver))
11164 (native-inputs `(("boost" ,boost)
11165 ("pkg-config" ,pkg-config)
11166 ("gettext" ,gettext-minimal)
11167 ("autoconf" ,autoconf)
11168 ("autoconf-archive" , autoconf-archive)
11169 ("automake" ,automake)
11170 ("libtool" ,libtool)
11171 ("intltool" ,intltool)
11172 ("gobject-introspection" ,gobject-introspection)
11173 ("python3" ,python-3)
11174 ("python-jinja2" ,python-jinja2)))
11175 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
11176 (description
11177 "Workrave is a program that assists in the recovery and prevention of
11178 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
11179 micro-pauses and rest breaks, and restricts you to your daily limit.")
11180 (home-page "http://www.workrave.org")
11181 (license license:gpl3+)))
11182
11183 (define-public ghex
11184 (package
11185 (name "ghex")
11186 (version "3.18.4")
11187 (source (origin
11188 (method url-fetch)
11189 (uri (string-append "mirror://gnome/sources/ghex/"
11190 (version-major+minor version) "/"
11191 "ghex-" version ".tar.xz"))
11192 (sha256
11193 (base32
11194 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
11195 (build-system meson-build-system)
11196 (arguments
11197 '(#:glib-or-gtk? #t
11198 #:phases
11199 (modify-phases %standard-phases
11200 (add-after 'unpack 'skip-gtk-update-icon-cache
11201 ;; Don't create 'icon-theme.cache'.
11202 (lambda _
11203 (substitute* "meson_post_install.py"
11204 (("gtk-update-icon-cache") (which "true")))
11205 #t)))))
11206 (native-inputs
11207 `(("pkg-config" ,pkg-config)
11208 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
11209 ("gnome-common" ,gnome-common)
11210 ("which" ,which)
11211 ("intltool" ,intltool)
11212 ("yelp-tools" ,yelp-tools)
11213 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
11214 (inputs
11215 `(("atk" ,atk)
11216 ("gtk" ,gtk+)))
11217 (synopsis "GNOME hexadecimal editor")
11218 (description "The GHex program can view and edit files in two ways:
11219 hexadecimal or ASCII. It is useful for editing binary files in general.")
11220 (home-page "https://wiki.gnome.org/Apps/Ghex")
11221 (license license:gpl2)))
11222
11223 (define-public libdazzle
11224 (package
11225 (name "libdazzle")
11226 (version "3.44.0")
11227 (source (origin
11228 (method url-fetch)
11229 (uri (string-append "mirror://gnome/sources/libdazzle/"
11230 (version-major+minor version) "/"
11231 "libdazzle-" version ".tar.xz"))
11232 (sha256
11233 (base32
11234 "1blfs61ifv4fywl0wbr1cm3rvmgrv06yiqajbnq0qs72nrgf9lrw"))))
11235 (build-system meson-build-system)
11236 (arguments
11237 `(#:phases
11238 (modify-phases %standard-phases
11239 (add-before 'check 'pre-check
11240 (lambda _
11241 ;; Tests require a running X server.
11242 (system "Xvfb :1 &")
11243 (setenv "DISPLAY" ":1"))))))
11244 (native-inputs
11245 (list `(,glib "bin") ; glib-compile-resources
11246 gobject-introspection
11247 pkg-config
11248 ;; For tests.
11249 xorg-server-for-tests
11250 vala))
11251 (inputs
11252 (list glib
11253 gtk+))
11254 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
11255 (synopsis "Companion library to GObject and Gtk+")
11256 (description "The libdazzle library is a companion library to GObject and
11257 Gtk+. It provides various features that the authors wish were in the
11258 underlying library but cannot for various reasons. In most cases, they are
11259 wildly out of scope for those libraries. In other cases, they are not quite
11260 generic enough to work for everyone.")
11261 (license license:gpl3+)))
11262
11263 (define-public evolution
11264 (package
11265 (name "evolution")
11266 (version "3.42.1")
11267 (source (origin
11268 (method url-fetch)
11269 (uri (string-append "mirror://gnome/sources/evolution/"
11270 (version-major+minor version) "/"
11271 "evolution-" version ".tar.xz"))
11272 (sha256
11273 (base32
11274 "0igfzapdvgfx2gnpwfkjfkn7l5j186wk88ni39vqas1sl7ijlls6"))))
11275 (build-system cmake-build-system)
11276 (arguments
11277 `(#:imported-modules (,@%cmake-build-system-modules
11278 (guix build glib-or-gtk-build-system))
11279 #:modules ((guix build cmake-build-system)
11280 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11281 (guix build utils))
11282 #:configure-flags
11283 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
11284 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
11285 ; in four years and cannot be built.
11286 #:phases
11287 (modify-phases %standard-phases
11288 ;; The build system attempts to install user interface modules to the
11289 ;; output directory of the "evolution-data-server" package. This
11290 ;; change redirects that change.
11291 (add-after 'unpack 'patch-ui-module-dir
11292 (lambda* (#:key outputs #:allow-other-keys)
11293 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
11294 (("\\$\\{edsuimoduledir\\}")
11295 (string-append (assoc-ref outputs "out")
11296 "/lib/evolution-data-server/ui-modules")))))
11297 (add-after 'install 'glib-or-gtk-compile-schemas
11298 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
11299 (add-after 'install 'glib-or-gtk-wrap
11300 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11301 (native-inputs
11302 (list `(,glib "bin") ; glib-mkenums
11303 pkg-config intltool itstool))
11304 (inputs
11305 `(("enchant" ,enchant)
11306 ("evolution-data-server" ,evolution-data-server) ; must be the same version
11307 ("gcr" ,gcr)
11308 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11309 ("gnome-autoar" ,gnome-autoar)
11310 ("gnome-desktop" ,gnome-desktop)
11311 ("gspell" ,gspell)
11312 ("highlight" ,highlight)
11313 ("libcanberra" ,libcanberra)
11314 ("libgweather" ,libgweather)
11315 ("libnotify" ,libnotify)
11316 ("libsoup" ,libsoup)
11317 ("nss" ,nss)
11318 ("openldap" ,openldap)
11319 ("webkitgtk" ,webkitgtk-with-libsoup2) ; because of evolution-data-server
11320 ("ytnef" ,ytnef)))
11321 (home-page "https://gitlab.gnome.org/GNOME/evolution")
11322 (synopsis "Manage your email, contacts and schedule")
11323 (description "Evolution is a personal information management application
11324 that provides integrated mail, calendaring and address book
11325 functionality.")
11326 ;; See COPYING for details.
11327 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
11328 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
11329 license:lgpl2.1+)))) ; smime/lib/*
11330
11331 (define-public gthumb
11332 (package
11333 (name "gthumb")
11334 (version "3.12.2")
11335 (source (origin
11336 (method url-fetch)
11337 (uri (string-append "mirror://gnome/sources/gthumb/"
11338 (version-major+minor version) "/"
11339 "gthumb-" version ".tar.xz"))
11340 (sha256
11341 (base32
11342 "09flm8s6jrvfya2ypw5873mnnani8ssy7wdv3ra1cljk4bjszy4p"))))
11343 (build-system meson-build-system)
11344 (arguments
11345 `(#:glib-or-gtk? #t
11346 #:configure-flags
11347 ;; Ensure the RUNPATH contains all installed library locations.
11348 (list (string-append "-Dc_link_args=-Wl,-rpath="
11349 (assoc-ref %outputs "out")
11350 "/lib/gthumb/extensions")
11351 (string-append "-Dcpp_link_args=-Wl,-rpath="
11352 (assoc-ref %outputs "out")
11353 "/lib/gthumb/extensions"))))
11354 (native-inputs
11355 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11356 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11357 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11358 ("intltool" ,intltool)
11359 ("itstool" ,itstool)
11360 ("pkg-config" ,pkg-config)
11361 ("python" ,python)))
11362 (inputs
11363 `(("clutter" ,clutter)
11364 ("clutter-gst" ,clutter-gst)
11365 ("clutter-gtk" ,clutter-gtk)
11366 ("colord" ,colord)
11367 ("exiv2" ,exiv2)
11368 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11369 ("gstreamer" ,gstreamer)
11370 ("gtk" ,gtk+)
11371 ("libheif" ,libheif)
11372 ("libjpeg" ,libjpeg-turbo)
11373 ("libraw" ,libraw)
11374 ("librsvg" ,librsvg)
11375 ("libtiff" ,libtiff)
11376 ("libwebp" ,libwebp)))
11377 (home-page "https://wiki.gnome.org/Apps/Gthumb")
11378 (synopsis "GNOME image viewer and browser")
11379 (description "GThumb is an image viewer, browser, organizer, editor and
11380 advanced image management tool")
11381 (license license:gpl2+)))
11382
11383 (define-public terminator
11384 (package
11385 (name "terminator")
11386 (version "2.1.1")
11387 (source
11388 (origin
11389 (method url-fetch)
11390 (uri (string-append "https://github.com/gnome-terminator/terminator/"
11391 "releases/download/v" version "/"
11392 name "-" version ".tar.gz"))
11393 (sha256
11394 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
11395 (build-system python-build-system)
11396 (native-inputs
11397 `(("gettext" ,gettext-minimal)
11398 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11399 ("gobject-introspection" ,gobject-introspection)
11400 ("intltool" ,intltool)
11401 ("pkg-config" ,pkg-config)
11402 ("python-psutil" ,python-psutil)
11403 ("python-pytest-runner" ,python-pytest-runner)
11404 ("python-pytest" ,python-pytest)))
11405 (inputs
11406 `(("cairo" ,cairo)
11407 ("dbus-glib" ,dbus-glib)
11408 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11409 ("gtk+" ,gtk+)
11410 ("python" ,python-wrapper)
11411 ("python-dbus" ,python-dbus)
11412 ("python-notify2" ,python-notify2)
11413 ("python-pycairo" ,python-pycairo)
11414 ("python-pygobject" ,python-pygobject)
11415 ("vte" ,vte)))
11416 (propagated-inputs
11417 (list python-configobj))
11418 (arguments
11419 ;; One test out of 28 fails due to dbus-python and python-notify; skip
11420 ;; tests.
11421 `(#:tests? #f
11422 #:imported-modules ((guix build glib-or-gtk-build-system)
11423 ,@%python-build-system-modules)
11424 #:modules ((guix build python-build-system)
11425 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11426 (guix build utils))
11427 #:phases
11428 (modify-phases %standard-phases
11429 (add-after 'unpack 'handle-dbus-python
11430 (lambda _
11431 ;; python-dbus cannot be found but it's really there. See
11432 ;; https://github.com/SpotlightKid/jack-select/issues/2
11433 (substitute* "setup.py"
11434 (("'dbus-python',") ""))))
11435 (add-after 'install 'wrap-program
11436 (lambda* (#:key outputs #:allow-other-keys)
11437 (let ((prog (string-append (assoc-ref outputs "out")
11438 "/bin/terminator"))
11439 (pylib (string-append (assoc-ref outputs "out")
11440 "/lib/python"
11441 ,(version-major+minor
11442 (package-version python))
11443 "/site-packages")))
11444 (wrap-program prog
11445 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11446 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
11447 (add-after 'wrap-program 'glib-or-gtk-wrap
11448 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11449 (home-page "https://gnome-terminator.org/")
11450 (synopsis "Store and run multiple GNOME terminals in one window")
11451 (description
11452 "Terminator allows you to run multiple GNOME terminals in a grid and
11453 tabs, and it supports drag and drop re-ordering of terminals.")
11454 (license license:gpl2)))
11455
11456 (define-public libhandy
11457 (package
11458 (name "libhandy")
11459 (version "1.7.90")
11460 (source
11461 (origin
11462 (method git-fetch)
11463 (uri (git-reference
11464 (url "https://gitlab.gnome.org/GNOME/libhandy")
11465 (commit version)))
11466 (file-name (git-file-name name version))
11467 (sha256
11468 (base32 "1z8sbx7g19c1p8dy0sn0l25qfvrd2j28h269lsqm1y98r818h2k1"))))
11469 (build-system meson-build-system)
11470 (arguments
11471 `(#:configure-flags
11472 '("-Dglade_catalog=enabled"
11473 ;; XXX: Generating the documentation fails because the
11474 ;; libhandy.devhelp2 document cannot be created. This seems to be
11475 ;; caused by a problem during the XSL transformation.
11476 "-Dgtk_doc=false")
11477 #:phases
11478 (modify-phases %standard-phases
11479 (add-after 'unpack 'patch-docbook-xml
11480 (lambda* (#:key inputs #:allow-other-keys)
11481 (for-each
11482 (lambda (file)
11483 (substitute* file
11484 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
11485 (search-input-file inputs
11486 "/xml/dtd/docbook/docbookx.dtd"))))
11487 (find-files "doc" "\\.xml"))))
11488 (add-before 'check 'pre-check
11489 (lambda _
11490 ;; Tests require a running X server.
11491 (system "Xvfb :1 &")
11492 (setenv "DISPLAY" ":1"))))))
11493 (inputs
11494 (list gtk+ glade3))
11495 (native-inputs
11496 (list gobject-introspection ; for g-ir-scanner
11497 `(,glib "bin")
11498 vala
11499 libxml2
11500 libxslt
11501 docbook-xsl
11502 docbook-xml-4.3
11503 gtk-doc/stable
11504 pkg-config
11505 gettext-minimal
11506
11507 ;; Test suite dependencies.
11508 hicolor-icon-theme
11509 xorg-server-for-tests))
11510 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11511 (synopsis "Library full of GTK+ widgets for mobile phones")
11512 (description "The aim of the handy library is to help with developing user
11513 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11514 for usage on small and big screens.")
11515 (license license:lgpl2.1+)))
11516
11517 (define-public libhandy-0.0
11518 (package
11519 (inherit libhandy)
11520 (version "0.0.13")
11521 (source
11522 (origin
11523 (method git-fetch)
11524 (uri (git-reference
11525 (url "https://gitlab.gnome.org/GNOME/libhandy")
11526 (commit (string-append "v" version))))
11527 (file-name (git-file-name "libhandy" version))
11528 (sha256
11529 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11530 (arguments
11531 (substitute-keyword-arguments (package-arguments libhandy)
11532 ((#:configure-flags flags)
11533 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11534
11535 (define-public libgit2-glib
11536 (package
11537 (name "libgit2-glib")
11538 (version "1.0.0.1")
11539 (source (origin
11540 (method url-fetch)
11541 (uri (string-append "mirror://gnome/sources/" name "/"
11542 (version-major+minor version) "/"
11543 name "-" version ".tar.xz"))
11544 (sha256
11545 (base32
11546 "0mrb21cgqmbhbxqxwx76yry1ifqj1k4vy6455n6s034m6rlms2j6"))))
11547 (build-system meson-build-system)
11548 (native-inputs
11549 (list `(,glib "bin") ;; For glib-mkenums
11550 gobject-introspection
11551 pkg-config
11552 python-pygobject
11553 python-wrapper
11554 vala))
11555 (inputs
11556 (list glib libssh2))
11557 (propagated-inputs
11558 (list ;; In Requires of libgit2-glib.pc.
11559 libgit2))
11560 (synopsis "GLib wrapper around the libgit2 Git access library")
11561 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11562 access library. It only implements the core plumbing functions, not really the
11563 higher level porcelain stuff.")
11564 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11565 (license license:gpl2+)))
11566
11567 (define-public gitg
11568 (package
11569 (name "gitg")
11570 (version "41")
11571 (source (origin
11572 (method url-fetch)
11573 (uri (string-append "mirror://gnome/sources/" name "/"
11574 (version-major version) "/"
11575 name "-" version ".tar.xz"))
11576 (sha256
11577 (base32
11578 "0aa6djcf7rjw0q688mfy47k67bbjpnx6aw1xs94abfhgn6gipdkz"))))
11579 (build-system meson-build-system)
11580 (arguments
11581 (list
11582 #:glib-or-gtk? #t
11583 #:phases
11584 #~(modify-phases %standard-phases
11585 (add-after 'unpack 'disable-post-install-partially
11586 (lambda _
11587 (substitute* "meson_post_install.py"
11588 (("'python'") ; there are no python sources to compile
11589 (string-append "'" (which "true") "'"))
11590 (("gtk-update-icon-cache") (which "true")))))
11591 (add-after 'unpack 'fix-test-sources
11592 (lambda _
11593 (substitute* "tests/libgitg/test-commit.vala"
11594 (("/bin/bash") (which "bash")))))
11595 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11596 (lambda* (#:key outputs #:allow-other-keys)
11597 (let ((prog (string-append #$output "/bin/gitg")))
11598 (wrap-program prog
11599 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11600 (inputs
11601 (list glib
11602 gsettings-desktop-schemas
11603 gspell
11604 gtk+
11605 gtksourceview
11606 json-glib
11607 libdazzle
11608 libgee
11609 libgit2-glib
11610 libpeas
11611 libsecret
11612 libsoup-minimal-2
11613 libxml2))
11614 (native-inputs
11615 (list `(,glib "bin")
11616 `(,gtk+ "bin")
11617 gobject-introspection
11618 intltool
11619 pkg-config
11620 python
11621 vala))
11622 (synopsis "Graphical user interface for git")
11623 (description
11624 "gitg is a graphical user interface for git. It aims at being a small,
11625 fast and convenient tool to visualize the history of git repositories.
11626 Besides visualization, gitg also provides several utilities to manage your
11627 repository and commit your work.")
11628 (home-page "https://wiki.gnome.org/Apps/Gitg")
11629 (license license:gpl2+)))
11630
11631 (define-public gamin
11632 (package
11633 (name "gamin")
11634 (version "0.1.10")
11635 (source (origin
11636 (method url-fetch)
11637 (uri (string-append "mirror://gnome/sources/" name "/"
11638 (version-major+minor version) "/"
11639 name "-" version ".tar.bz2"))
11640 (sha256
11641 (base32
11642 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11643 (build-system gnu-build-system)
11644 (arguments
11645 `(#:phases
11646 (modify-phases %standard-phases
11647 ;; The 'config.sub' is too old to recognise aarch64.
11648 ,@(if (and=> (%current-target-system) target-aarch64?)
11649 `((add-after 'unpack 'replace-config.sub
11650 (lambda _
11651 (delete-file "config.sub")
11652 (symlink (which "config.sub") "config.sub"))))
11653 '())
11654 (add-after 'unpack 'remove-deprecated-macro
11655 (lambda _
11656 (substitute* '("server/gam_node.c"
11657 "server/gam_subscription.h"
11658 "server/gam_node.h"
11659 "server/gam_subscription.c")
11660 (("G_CONST_RETURN") "const"))
11661 #t))
11662 ;; The configure script runs a test program unconditionally,
11663 ;; without an option to manually set the test result.
11664 ;; Override this test anyway.
11665 ,@(if (%current-target-system)
11666 `((add-after 'bootstrap 'set-have-abstract-sockets
11667 (lambda _
11668 (define in-abstract-sockets-test? #f)
11669 (substitute* "configure"
11670 (("^#### Abstract sockets\n$")
11671 (set! in-abstract-sockets-test? #t)
11672 "#### Abstract sockets\n")
11673 (("^have_abstract_sockets=no\n$")
11674 (set! in-abstract-sockets-test? #f)
11675 ;; ‘Abstract sockets’ appear to be Linux-only.
11676 (string-append "have_abstract_sockets="
11677 ,(if (target-linux?)
11678 "yes"
11679 "no")
11680 "\nif false; then\nif false; then :\n"))
11681 (("^(.*\n)$" line)
11682 (if in-abstract-sockets-test?
11683 "" ; delete
11684 line))))))
11685 '()))))
11686 (inputs
11687 (list glib))
11688 (native-inputs
11689 `(("pkg-config" ,pkg-config)
11690 ,@(if (and=> (%current-target-system) target-aarch64?)
11691 `(("config" ,config))
11692 '())))
11693 (home-page "https://people.gnome.org/~veillard/gamin/")
11694 (synopsis "File alteration monitor")
11695 (description
11696 "Gamin is a file and directory monitoring system defined to be a subset
11697 of the FAM (File Alteration Monitor) system. This is a service provided by a
11698 library which detects when a file or a directory has been modified.")
11699 (license license:gpl2+)))
11700
11701 (define-public gnome-mahjongg
11702 (package
11703 (name "gnome-mahjongg")
11704 (version "3.38.3")
11705 (source (origin
11706 (method url-fetch)
11707 (uri (string-append "mirror://gnome/sources/" name "/"
11708 (version-major+minor version) "/" name "-"
11709 version ".tar.xz"))
11710 (sha256
11711 (base32
11712 "144ia3zn9rhwa1xbdkvsz6m0dsysl6mxvqw9bnrlh845hmyy9cfj"))))
11713 (build-system meson-build-system)
11714 (arguments
11715 `(#:meson ,meson-0.59
11716 #:glib-or-gtk? #t))
11717 (native-inputs
11718 `(("appstream-glib" ,appstream-glib)
11719 ("gettext" ,gettext-minimal)
11720 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11721 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11722 ("itstool" ,itstool)
11723 ("pkg-config" ,pkg-config)
11724 ("vala" ,vala)))
11725 (propagated-inputs
11726 (list dconf))
11727 (inputs
11728 (list glib gtk+))
11729 (synopsis "Mahjongg tile-matching game")
11730 (description "GNOME Mahjongg is a game based on the classic Chinese
11731 tile-matching game Mahjongg. It features multiple board layouts, tile themes,
11732 and a high score table.")
11733 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11734 (license license:gpl2+)))
11735
11736 (define-public gnome-themes-extra
11737 (package
11738 (name "gnome-themes-extra")
11739 (version "3.28")
11740 (source
11741 (origin
11742 (method url-fetch)
11743 (uri (string-append "mirror://gnome/sources/" name "/"
11744 (version-major+minor version) "/" name "-"
11745 version ".tar.xz"))
11746 (sha256
11747 (base32
11748 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11749 (build-system gnu-build-system)
11750 (arguments
11751 '(#:configure-flags
11752 ;; Don't create 'icon-theme.cache'.
11753 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11754 (true (string-append coreutils "/bin/true")))
11755 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11756 (native-inputs
11757 `(("glib:bin" ,glib "bin")
11758 ("intltool" ,intltool)
11759 ("pkg-config" ,pkg-config)))
11760 (inputs
11761 `(("glib" ,glib)
11762 ("gtk+" ,gtk+)
11763 ("gtk+-2" ,gtk+-2)
11764 ("librsvg" ,librsvg)
11765 ("libxml2" ,libxml2)))
11766 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11767 (synopsis "GNOME Extra Themes")
11768 (description "This package provides themes and related elements that don't
11769 really fit in other upstream packages. It offers legacy support for GTK+ 2
11770 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11771 index files needed for Adwaita to be used outside of GNOME.")
11772 (license license:lgpl2.1+)))
11773
11774 (define-public gnome-themes-standard
11775 (deprecated-package "gnome-themes-standard" gnome-themes-extra))
11776
11777 (define-public gnote
11778 (package
11779 (name "gnote")
11780 (version "41.2")
11781 (source
11782 (origin
11783 (method url-fetch)
11784 (uri (string-append "mirror://gnome/sources/" name "/"
11785 (version-major version) "/"
11786 "gnote-" version ".tar.xz"))
11787 (sha256
11788 (base32 "0gs2j988rwfrxckb8qxlkyxnvqsv30q32myqish6hssfa51yzc11"))))
11789 (build-system meson-build-system)
11790 (arguments
11791 `(#:glib-or-gtk? #t
11792 #:phases (modify-phases %standard-phases
11793 (add-after 'unpack 'skip-gtk-update-icon-cache
11794 ;; Don't create 'icon-theme.cache'.
11795 (lambda _
11796 (substitute* "post-install.py"
11797 (("gtk-update-icon-cache") "true")))))))
11798 (native-inputs
11799 (list desktop-file-utils
11800 `(,glib "bin")
11801 gobject-introspection
11802 intltool
11803 itstool
11804 pkg-config
11805 python))
11806 (inputs
11807 (list glibmm
11808 gsettings-desktop-schemas
11809 gspell
11810 gtk+
11811 gtkmm-3
11812 libsecret
11813 `(,util-linux "lib")
11814 libxml2
11815 libxslt))
11816 (synopsis "Note-taking application for the GNOME desktop")
11817 (description "Gnote is a note-taking application written for the GNOME
11818 desktop environment.")
11819 (home-page "https://wiki.gnome.org/Apps/Gnote")
11820 (license license:gpl3+)))
11821
11822 (define-public polari
11823 (package
11824 (name "polari")
11825 (version "41.0")
11826 (source (origin
11827 (method url-fetch)
11828 (uri (string-append "mirror://gnome/sources/polari/"
11829 (version-major version)
11830 "/polari-" version ".tar.xz"))
11831 (sha256
11832 (base32
11833 "1ss0x8idwar1q9p9535kzqb8idy7k2r48vrbjiyccw03cs0mzc53"))))
11834 (build-system meson-build-system)
11835 (arguments
11836 `(#:glib-or-gtk? #t
11837 #:phases
11838 (modify-phases %standard-phases
11839 (add-after 'unpack 'skip-gtk-update-icon-cache
11840 (lambda _
11841 (substitute* "meson/meson-postinstall.sh"
11842 (("gtk-update-icon-cache") (which "true")))))
11843 (add-after 'install 'fix-desktop-file
11844 ;; Hardcode launcher to be on the safe side
11845 (lambda* (#:key outputs #:allow-other-keys)
11846 (let ((out (assoc-ref outputs "out")))
11847 (substitute* (string-append out "/share/applications/"
11848 "org.gnome.Polari.desktop")
11849 (("Exec=.*") (string-append "Exec=" out "/bin/polari\n"))))))
11850 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11851 (lambda* (#:key outputs #:allow-other-keys)
11852 (let ((prog (string-append (assoc-ref outputs "out")
11853 "/bin/polari")))
11854 (wrap-program prog
11855 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11856 (inputs
11857 (list glib
11858 gsettings-desktop-schemas
11859 gspell
11860 gtk
11861 gjs
11862 libsecret
11863 libsoup-minimal-2
11864 telepathy-glib
11865 telepathy-logger))
11866 (native-inputs
11867 (list `(,glib "bin")
11868 gobject-introspection
11869 intltool
11870 pkg-config
11871 yelp-tools))
11872 (propagated-inputs
11873 (list telepathy-idle telepathy-mission-control))
11874 (synopsis "Simple IRC Client")
11875 (description
11876 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11877 integrate seamlessly with the GNOME desktop.")
11878 (home-page "https://wiki.gnome.org/Apps/Polari")
11879 (license license:gpl2+)))
11880
11881 (define-public gnome-boxes
11882 (package
11883 (name "gnome-boxes")
11884 (version "42.3")
11885 (source
11886 (origin
11887 (method url-fetch)
11888 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11889 (version-major version) "/"
11890 "gnome-boxes-" version ".tar.xz"))
11891 (sha256
11892 (base32 "1lv0bdh935qj6wkv3ixg2pcv8yrapj79z02gw4fal3rhz3xggvsn"))))
11893 (build-system meson-build-system)
11894 (arguments
11895 (list #:glib-or-gtk? #t
11896 #:configure-flags #~(list "-Drdp=false"
11897 (string-append "-Dc_link_args=-Wl,-rpath="
11898 #$output
11899 "/lib/gnome-boxes"))
11900 #:phases #~(modify-phases %standard-phases
11901 (add-after 'unpack 'disable-gtk-update-icon-cache
11902 (lambda _
11903 (setenv "DESTDIR" "/"))))))
11904 (native-inputs
11905 (list desktop-file-utils ;for update-desktop-database
11906 gettext-minimal
11907 `(,glib "bin") ;for glib-compile-resources
11908 itstool
11909 pkg-config
11910 python
11911 vala))
11912 (inputs
11913 (list glib-networking ;for TLS support
11914 gsettings-desktop-schemas
11915 gtk+
11916 gtk-vnc
11917 gtksourceview
11918 json-glib
11919 libarchive
11920 libgudev
11921 libhandy
11922 libosinfo
11923 libsecret
11924 libsoup-minimal-2
11925 libusb
11926 libvirt
11927 libvirt-glib
11928 libxml2
11929 sparql-query
11930 spice-gtk
11931 tracker
11932 vte
11933 webkitgtk-with-libsoup2)) ;for webkit2gtk-4.0
11934 (home-page "https://wiki.gnome.org/Apps/Boxes")
11935 (synopsis "View, access, and manage remote and virtual systems")
11936 (description "GNOME Boxes is a simple application to view, access, and
11937 manage remote and virtual systems. Note that this application requires the
11938 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11939 @command{info '(guix) Virtualization Services'} to learn how to configure
11940 these services on the Guix System.")
11941 (license (list
11942 ;; For data/icons/empty-boxes.png.
11943 license:cc-by2.0
11944 ;; For all others.
11945 license:lgpl2.0+))))
11946
11947 (define-public geary
11948 (package
11949 (name "geary")
11950 (version "40.0")
11951 (source (origin
11952 (method git-fetch)
11953 (uri (git-reference
11954 (url "https://gitlab.gnome.org/GNOME/geary.git")
11955 (commit (string-append "gnome-" version))))
11956 (file-name (git-file-name name version))
11957 (sha256
11958 (base32
11959 "04hvw86r8sczvjm1z3ls5y5y5h6nyfb648rjkfx05ib00mqq5v1x"))))
11960 (build-system meson-build-system)
11961 (arguments
11962 `(#:glib-or-gtk? #t
11963 #:configure-flags
11964 '("-Dprofile=release")
11965 #:phases (modify-phases %standard-phases
11966 (add-after 'unpack 'disable-failing-tests
11967 (lambda _
11968 (substitute* "test/test-client.vala"
11969 (("client.add_suite\\(new Application.CertificateManagerTest\\(\\).suite\\);")
11970 ""))))
11971 (add-after 'unpack 'generate-vapis
11972 (lambda* (#:key inputs #:allow-other-keys)
11973 ;; It’s not possible to generate the GMime vapi, because
11974 ;; there’s custom metadata that gmime didn’t
11975 ;; install. Thus, the vapi should be built and installed
11976 ;; with gmime.
11977 (define gmime
11978 (assoc-ref inputs "gmime"))
11979 (copy-file (string-append gmime "/share/vala/vapi/gmime-3.0.vapi")
11980 "bindings/vapi/gmime-3.0.vapi")))
11981 (add-after 'unpack 'disable-postinstall-script
11982 (lambda _
11983 (substitute* "build-aux/post_install.py"
11984 (("gtk-update-icon-cache")
11985 "true"))))
11986 (add-before 'check 'setup-home
11987 (lambda _
11988 ;; Tests require a writable HOME.
11989 (setenv "HOME" (getcwd))))
11990 (add-before 'check 'setup-xvfb
11991 (lambda _
11992 (system "Xvfb :1 &")
11993 (setenv "DISPLAY" ":1"))))))
11994 (inputs
11995 (list enchant
11996 folks
11997 gcr
11998 glib
11999 gmime
12000 gnome-online-accounts
12001 gsettings-desktop-schemas
12002 gspell
12003 gsound
12004 gtk+
12005 iso-codes
12006 json-glib
12007 libcanberra
12008 libgee
12009 libhandy
12010 libpeas
12011 libsecret
12012 libstemmer
12013 libunwind
12014 sqlite
12015 webkitgtk-with-libsoup2
12016 ytnef))
12017 (native-inputs
12018 (list appstream-glib
12019 cmake-minimal
12020 desktop-file-utils
12021 gettext-minimal
12022 glib
12023 `(,glib "bin")
12024 gmime
12025 gobject-introspection
12026 gsettings-desktop-schemas
12027 itstool
12028 libarchive
12029 libxml2
12030 pkg-config
12031 python-minimal
12032 vala
12033 xorg-server-for-tests))
12034 (synopsis "GNOME email application built around conversations")
12035 (description
12036 "Geary collects related messages together into conversations,
12037 making it easy to find and follow your discussions. Full-text and keyword
12038 search makes it easy to find the email you are looking for. Geary's
12039 full-featured composer lets you send rich, styled text with images, links, and
12040 lists, but also send lightweight, easy to read text messages. Geary
12041 automatically picks up your existing GNOME Online Accounts, and adding more is
12042 easy. Geary has a clean, fast, modern interface that works like you want it
12043 to.")
12044 (home-page "https://wiki.gnome.org/Apps/Geary")
12045 (license (list
12046 ;; geary
12047 license:lgpl2.1+
12048 ;; icons
12049 license:cc-by3.0
12050 license:cc-by-sa3.0
12051 license:public-domain
12052 ;; snowball
12053 license:bsd-2))))
12054
12055 (define-public glabels
12056 (package
12057 (name "glabels")
12058 (version "3.4.1")
12059 (source
12060 (origin
12061 (method url-fetch)
12062 (uri (string-append "mirror://gnome/sources/" name "/"
12063 (version-major+minor version) "/"
12064 "glabels-" version ".tar.xz"))
12065 (sha256
12066 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
12067 (build-system glib-or-gtk-build-system)
12068 (native-inputs
12069 `(("gettext" ,gettext-minimal)
12070 ("glib:bin" ,glib "bin")
12071 ("intltool" ,intltool)
12072 ("itstool" ,itstool)
12073 ("pkg-config" ,pkg-config)))
12074 (inputs
12075 (list gtk+ librsvg libxml2))
12076 (arguments
12077 `(#:configure-flags '("CFLAGS=-fcommon")))
12078 (home-page "https://glabels.org/")
12079 (synopsis "Program for creating labels and business cards")
12080 (description
12081 "gLabels is a program for creating labels and business cards. It is
12082 designed to work with various laser/ink-jet peel-off label and business
12083 card sheets that you’ll find at most office supply stores.")
12084 (license license:gpl3+)))
12085
12086 (define-public gnome-latex
12087 (package
12088 (name "gnome-latex")
12089 (version "3.41.2")
12090 (source
12091 (origin
12092 (method url-fetch)
12093 (uri (string-append "mirror://gnome/sources/" name "/"
12094 (version-major+minor version) "/"
12095 "gnome-latex-" version ".tar.xz"))
12096 (sha256
12097 (base32 "0cynhmrn99f4f3kddczsc58ak4b9sv2zkfbcyz7z16848nhz047k"))))
12098 (build-system glib-or-gtk-build-system)
12099 (native-inputs
12100 (list gettext-minimal
12101 `(,glib "bin")
12102 gobject-introspection
12103 gtk-doc/stable
12104 itstool
12105 pkg-config
12106 vala))
12107 (inputs
12108 (list dconf
12109 glib
12110 gspell
12111 libgee
12112 tepl
12113 uchardet))
12114 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
12115 (synopsis "LaTeX editor for the GNOME desktop")
12116 (description
12117 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
12118 such as build tools, completion of LaTeX commands, structure navigation,
12119 symbol tables, document templates, project management, spell-checking, menus
12120 and toolbars.")
12121 (license license:gpl3+)))
12122
12123 (define-public setzer
12124 (package
12125 (name "setzer")
12126 (version "0.4.1")
12127 (source
12128 (origin
12129 (method git-fetch)
12130 (uri (git-reference
12131 (url "https://github.com/cvfosammmm/Setzer")
12132 (commit (string-append "v" version))))
12133 (file-name (git-file-name name version))
12134 (sha256
12135 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
12136 (build-system meson-build-system)
12137 (arguments
12138 `(#:glib-or-gtk? #t
12139 #:phases
12140 (modify-phases %standard-phases
12141 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12142 (lambda* (#:key outputs #:allow-other-keys)
12143 (let ((prog (string-append (assoc-ref outputs "out")
12144 "/bin/setzer"))
12145 (pylib (string-append (assoc-ref outputs "out")
12146 "/lib/python"
12147 ,(version-major+minor
12148 (package-version python))
12149 "/site-packages")))
12150 (wrap-program prog
12151 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12152 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12153 #t))))))
12154 (native-inputs
12155 `(("desktop-file-utils" ,desktop-file-utils)
12156 ("gettext" ,gettext-minimal)
12157 ("glib:bin" ,glib "bin")
12158 ("gobject-introspection" ,gobject-introspection)
12159 ("gtk+:bin" ,gtk+ "bin")
12160 ("python-wrapper" ,python-wrapper)))
12161 (inputs
12162 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12163 ("gspell" ,gspell)
12164 ("gtk+" ,gtk+)
12165 ("gtksourceview" ,gtksourceview)
12166 ("pango" ,pango)
12167 ("poppler" ,poppler)
12168 ("python-pdfminer" ,python-pdfminer-six)
12169 ("python-pycairo" ,python-pycairo)
12170 ("python-pygobject" ,python-pygobject)
12171 ("python-pyxdg" ,python-pyxdg)
12172 ("webkitgtk" ,webkitgtk)
12173 ("xdg-utils" ,xdg-utils)))
12174 (home-page "https://www.cvfosammmm.org/setzer/")
12175 (synopsis "LaTeX editor written in Python with GTK+")
12176 (description
12177 "Setzer is a simple yet full-featured LaTeX editor written in Python with
12178 GTK+. It integrates well with the GNOME desktop environment.")
12179 (license license:gpl3+)))
12180
12181 (define-public apostrophe
12182 (package
12183 (name "apostrophe")
12184 (version "2.5")
12185 (source (origin
12186 (method git-fetch)
12187 (uri (git-reference
12188 (url "https://gitlab.gnome.org/somas/apostrophe")
12189 (commit (string-append "v" version))))
12190 (file-name (git-file-name name version))
12191 (sha256
12192 (base32
12193 "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp"))))
12194 (build-system meson-build-system)
12195 (arguments
12196 `(#:glib-or-gtk? #t
12197 #:meson ,meson-0.59 ;fails with 0.60
12198 #:phases
12199 (modify-phases %standard-phases
12200 (add-after 'unpack 'patch-meson
12201 (lambda _
12202 (substitute* "build-aux/meson_post_install.py"
12203 (("gtk-update-icon-cache") "true"))))
12204 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12205 (lambda* (#:key inputs outputs #:allow-other-keys)
12206 (let ((prog (string-append (assoc-ref outputs "out")
12207 "/bin/apostrophe"))
12208 (pylib (string-append (assoc-ref outputs "out")
12209 "/lib/python"
12210 ,(version-major+minor
12211 (package-version
12212 (this-package-input "python")))
12213 "/site-packages")))
12214 (wrap-program prog
12215 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12216 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
12217 `("PATH" prefix (,(dirname
12218 (search-input-file inputs
12219 "/bin/pandoc")))))))))))
12220 (inputs
12221 (list glib
12222 gobject-introspection
12223 gspell
12224 gtk+
12225 libhandy
12226 pandoc
12227 python
12228 python-chardet
12229 python-levenshtein
12230 python-regex
12231 python-pycairo
12232 python-pygobject
12233 python-pyenchant
12234 python-pypandoc
12235 webkitgtk-with-libsoup2))
12236 (native-inputs
12237 (list gettext-minimal
12238 `(,glib "bin")
12239 pkg-config
12240 sassc))
12241 (home-page "https://gitlab.gnome.org/somas/apostrophe")
12242 (synopsis "Markdown editor written in Python with GTK+")
12243 (description "Apostrophe is a GTK+ based distraction-free Markdown editor.
12244 It uses pandoc as back-end for parsing Markdown.")
12245 (license license:gpl3)))
12246
12247 (define-public libratbag
12248 (package
12249 (name "libratbag")
12250 (version "0.16")
12251 (source
12252 (origin
12253 (method git-fetch)
12254 (uri (git-reference
12255 (url "https://github.com/libratbag/libratbag")
12256 (commit (string-append "v" version))))
12257 (file-name (git-file-name name version))
12258 (sha256
12259 (base32 "0jjf6xc3a37icp5dvbxla3ai9is2ns31m0llbfq1bmb6dk8cd4n0"))))
12260 (build-system meson-build-system)
12261 (arguments
12262 `(#:configure-flags
12263 (list "-Dsystemd=false"
12264 "-Dlogind-provider=elogind"
12265 ,@(if (not (package? (this-package-native-input "valgrind")))
12266 `("-Dtests=false") ; Some tests still run.
12267 `()))
12268 #:phases
12269 (modify-phases %standard-phases
12270 (add-after 'install 'wrap
12271 (lambda* (#:key inputs outputs #:allow-other-keys)
12272 (let* ((out (assoc-ref outputs "out"))
12273 (site (string-append
12274 "/lib/python"
12275 ,(version-major+minor (package-version python))
12276 "/site-packages"))
12277 (evdev (string-append
12278 (assoc-ref inputs "python-evdev") site))
12279 (pygo (string-append
12280 (assoc-ref inputs "python-pygobject") site))
12281 (python-wrap
12282 `("GUIX_PYTHONPATH" = (,evdev ,pygo))))
12283 (wrap-program (string-append out "/bin/" "ratbagctl")
12284 python-wrap)
12285 #t))))))
12286 (native-inputs
12287 (append
12288 (list check pkg-config swig)
12289 (if (member (%current-system) (package-supported-systems valgrind))
12290 (list valgrind)
12291 '())))
12292 (inputs
12293 `(("glib" ,glib)
12294 ("json-glib" ,json-glib)
12295 ("libevdev" ,libevdev)
12296 ("libsystemd" ,elogind)
12297 ("libunistring" ,libunistring)
12298 ("python" ,python)
12299 ("python-evdev" ,python-evdev)
12300 ("python-pygobject" ,python-pygobject)
12301 ("udev" ,eudev)))
12302 (home-page "https://github.com/libratbag/libratbag")
12303 (synopsis "DBus daemon and utility for configuring gaming mice")
12304 (description "libratbag provides @command{ratbagd}, a DBus daemon to
12305 configure input devices, mainly gaming mice. The daemon provides a generic
12306 way to access the various features exposed by these mice and abstracts away
12307 hardware-specific and kernel-specific quirks. There is also the
12308 @command{ratbagctl} command line interface for configuring devices.
12309
12310 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
12311 Steelseries.
12312
12313 The ratbagd DBus service can be enabled by adding the following service to
12314 your operating-system definition:
12315
12316 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12317 (license license:expat)))
12318
12319 (define-public piper
12320 (package
12321 (name "piper")
12322 (version "0.7")
12323 (source
12324 (origin
12325 (method git-fetch)
12326 (uri (git-reference
12327 (url "https://github.com/libratbag/piper")
12328 (commit version)))
12329 (sha256
12330 (base32 "0jsvfy0ihdcgnqljfgs41lys1nlz18qvsa0a8ndx3pyr41f8w8wf"))
12331 (file-name (git-file-name name version))))
12332 (build-system meson-build-system)
12333 (native-inputs
12334 (list appstream
12335 gettext-minimal
12336 `(,glib "bin")
12337 gobject-introspection
12338 pkg-config
12339 python-flake8))
12340 (inputs
12341 (list adwaita-icon-theme
12342 gtk+
12343 `(,gtk+ "bin")
12344 libratbag
12345 python
12346 python-evdev
12347 python-lxml
12348 python-pycairo
12349 python-pygobject))
12350 (arguments
12351 (list #:glib-or-gtk? #t
12352 #:phases
12353 #~(modify-phases %standard-phases
12354 (add-after 'unpack 'dont-update-gtk-icon-cache
12355 (lambda _
12356 (substitute* "meson.build"
12357 (("meson.add_install_script('meson_install.sh')") ""))))
12358 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12359 (lambda _
12360 (let ((pylib (string-append #$output
12361 "/lib/python"
12362 #$(version-major+minor
12363 (package-version python))
12364 "/site-packages")))
12365 (wrap-program
12366 (string-append #$output "/bin/piper")
12367 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12368 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
12369 (add-before 'check 'flake8-config
12370 (lambda _
12371 ;; Make sure the tests use the local flake8 config
12372 (symlink (string-append #$source "/.flake8") ".flake8"))))))
12373 (home-page "https://github.com/libratbag/piper/")
12374 (synopsis "Configure bindings and LEDs on gaming mice")
12375 (description "Piper is a GTK+ application for configuring gaming mice with
12376 onboard configuration for key bindings via libratbag. Piper requires
12377 a @command{ratbagd} daemon running with root privileges. It can be run
12378 manually as root, but is preferably configured as a DBus service that can
12379 launch on demand. This can be configured by enabling the following service,
12380 provided there is a DBus service present:
12381
12382 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12383 (license license:gpl2)))
12384
12385 (define-public parlatype
12386 (package
12387 (name "parlatype")
12388 (version "3.1")
12389 (source
12390 (origin
12391 (method git-fetch)
12392 (uri (git-reference
12393 (url "https://github.com/gkarsay/parlatype")
12394 (commit (string-append "v" version))))
12395 (file-name (git-file-name name version))
12396 (sha256
12397 (base32 "0cqrzbkyksfsm57riirmjkwf2nf2dgl1xpps1wvqxpij475qcb9b"))))
12398 (build-system meson-build-system)
12399 (arguments
12400 `(#:glib-or-gtk? #t
12401 #:tests? #f ;require internet access
12402 #:phases
12403 (modify-phases %standard-phases
12404 (add-after 'unpack 'skip-gtk-update-icon-cache
12405 (lambda _
12406 (substitute* "data/meson_post_install.py"
12407 (("gtk-update-icon-cache") "true"))))
12408 (add-after 'install 'wrap-parlatype
12409 ;; Add gstreamer plugin provided in this package to system's
12410 ;; plugins.
12411 (lambda* (#:key outputs #:allow-other-keys)
12412 (let* ((out (assoc-ref outputs "out"))
12413 (gst-plugin-path (string-append
12414 out "/lib/gstreamer-1.0/"
12415 ":"
12416 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
12417 (wrap-program (string-append out "/bin/parlatype")
12418 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path)))))))))
12419 (native-inputs
12420 (list appstream-glib
12421 desktop-file-utils ;for desktop-file-validate
12422 gettext-minimal
12423 `(,glib "bin") ;for glib-compile-resources
12424 pkg-config
12425 yelp-tools))
12426 (inputs
12427 (list gst-plugins-base
12428 gst-plugins-good
12429 gstreamer
12430 gtk+
12431 iso-codes
12432 pocketsphinx
12433 pulseaudio
12434 sphinxbase))
12435 (home-page "https://www.parlatype.org")
12436 (synopsis "GNOME audio player for transcription")
12437 (description "Parlatype is an audio player for the GNOME desktop
12438 environment. Its main purpose is the manual transcription of spoken
12439 audio files.")
12440 (license license:gpl3+)))
12441
12442 (define-public jsonrpc-glib
12443 (package
12444 (name "jsonrpc-glib")
12445 (version "3.34.0")
12446 (source (origin
12447 (method url-fetch)
12448 (uri (string-append "mirror://gnome/sources/" name "/"
12449 (version-major+minor version) "/"
12450 name "-" version ".tar.xz"))
12451 (sha256
12452 (base32
12453 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
12454 (build-system meson-build-system)
12455 (inputs
12456 (list json-glib glib))
12457 (native-inputs
12458 (list pkg-config
12459 `(,glib "bin") ; for glib-genmarshal, etc.
12460 gobject-introspection vala))
12461 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
12462 (synopsis "JSON-RPC library for GLib")
12463 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
12464 peers in either a synchronous or asynchronous fashion. It also allows
12465 communicating using the GVariant serialization format instead of JSON when
12466 both peers support it. You might want that when communicating on a single
12467 host to avoid parser overhead and memory-allocator fragmentation.")
12468 (license license:lgpl2.1+)))
12469
12470 (define-public feedbackd
12471 (package
12472 (name "feedbackd")
12473 (version "0.0.0+git20200527")
12474 (source (origin
12475 (method git-fetch)
12476 (uri (git-reference
12477 (url "https://source.puri.sm/Librem5/feedbackd.git")
12478 (commit (string-append "v" version))))
12479 (file-name (git-file-name name version))
12480 (sha256
12481 (base32
12482 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
12483 (build-system meson-build-system)
12484 (native-inputs
12485 (list `(,glib "bin") gobject-introspection pkg-config vala))
12486 (inputs
12487 (list dbus gsound json-glib libgudev))
12488 (propagated-inputs
12489 (list glib)) ; in Requires of libfeedback-0.0.pc
12490 (synopsis "Haptic/visual/audio feedback via DBus")
12491 (description "Feedbackd provides a DBus daemon to act on events to provide
12492 haptic, visual and audio feedback. It offers the libfeedbackd library and
12493 GObject introspection bindings.")
12494 (home-page "https://source.puri.sm/Librem5/feedbackd")
12495 (license (list license:lgpl2.1+ ; libfeedbackd
12496 license:lgpl3+)))) ; the rest
12497
12498 (define-public sysprof
12499 (package
12500 (name "sysprof")
12501 (version "3.44.0")
12502 (source
12503 (origin
12504 (method url-fetch)
12505 (uri (string-append "mirror://gnome/sources/sysprof/"
12506 (version-major+minor version) "/"
12507 "sysprof-" version ".tar.xz"))
12508 (sha256
12509 (base32 "0nq0icbln0ryqzlybr7wyl19mhr3vkqzs6wasn430fwpf5drypdb"))))
12510 (build-system meson-build-system)
12511 (arguments
12512 (list
12513 #:configure-flags
12514 #~(list (string-append "-Dsystemdunitdir=" #$output "/share/systemd"))
12515 #:phases
12516 #~(modify-phases %standard-phases
12517 (add-after 'unpack 'patch-install-script
12518 (lambda _
12519 (substitute* "build-aux/meson/post_install.sh"
12520 (("gtk-update-icon-cache") "true")
12521 (("update-desktop-database") "true")))))))
12522 (propagated-inputs
12523 (list polkit))
12524 (inputs
12525 (list glib
12526 gtk+
12527 json-glib
12528 libdazzle
12529 libunwind
12530 polkit))
12531 (native-inputs
12532 (list gettext-minimal
12533 `(,glib "bin") ;for gdbus-codegen, etc.
12534 itstool
12535 pkg-config
12536 libxml2))
12537 ;; This home page is so woefully out of date as to be essentially useless.
12538 ;; (home-page "http://www.sysprof.com")
12539 (home-page "https://wiki.gnome.org/Apps/Sysprof")
12540 (synopsis "System-wide performance profiler for GNU/Linux")
12541 (description
12542 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
12543 GNU/Linux system including the kernel and all user-space applications. This
12544 helps find the function(s) in which a program spends most of its time.
12545
12546 It uses the kernel's built-in @code{ptrace} feature and handles shared
12547 libraries. Applications do not need to be recompiled--or even restarted.")
12548 (license license:gpl3+)))
12549
12550 (define-public gnome-builder
12551 (package
12552 (name "gnome-builder")
12553 (version "41.2")
12554 (source (origin
12555 (method url-fetch)
12556 (uri (string-append "mirror://gnome/sources/" name "/"
12557 (version-major version) "/"
12558 name "-" version ".tar.xz"))
12559 (sha256
12560 (base32
12561 "04p031i999dccbnlbysmr6f93x7dji7b559j6yhdsqbqgxb7ncan"))
12562 (patches
12563 (search-patches "gnome-builder-update-libportal.patch"))))
12564 (build-system meson-build-system)
12565 (arguments
12566 (list
12567 #:glib-or-gtk? #t ;To wrap binaries and compile schemas
12568 #:configure-flags
12569 #~(list "-Dnetwork_tests=false"
12570 ;; TODO: Enable all plugins...
12571 ;; Flatpak plugin wants libsoup 2
12572 "-Dplugin_flatpak=false"
12573 ;; ... except this one.
12574 "-Dplugin_update_manager=false")
12575 #:phases
12576 #~(modify-phases %standard-phases
12577 (add-after 'unpack 'patch-meson
12578 (lambda* (#:key inputs #:allow-other-keys)
12579 (substitute* "build-aux/meson/post_install.py"
12580 (("gtk-update-icon-cache") "true")
12581 (("update-desktop-database") "true"))
12582 (substitute* "src/libide/meson.build"
12583 (("/usr/lib") (string-append (assoc-ref inputs
12584 "python-pygobject")
12585 "/lib")))))
12586 (add-after 'configure 'fix-ninja
12587 (lambda _
12588 ;; #43296: meson(?) incorrectly assumes we want to link
12589 ;; this PIE against a static libselinux.
12590 (substitute* "build.ninja"
12591 (("libselinux\\.a") "libselinux.so"))))
12592 (add-before 'check 'pre-check
12593 (lambda _
12594 (system "Xvfb :1 &")
12595 (setenv "DISPLAY" ":1"))))))
12596 (inputs (list cmark
12597 clang
12598 devhelp-with-libsoup2
12599 glade3
12600 gspell
12601 gtk+
12602 json-glib
12603 jsonrpc-glib
12604 libdazzle
12605 libgit2-glib
12606 libpeas
12607 libportal
12608 libsoup-minimal-2
12609 llvm
12610 python
12611 python-pygobject
12612 sysprof
12613 template-glib
12614 vte
12615 webkitgtk-with-libsoup2))
12616 (propagated-inputs (list gtksourceview)) ; needed for settings
12617 (native-inputs (list desktop-file-utils ; for desktop-file-validate
12618 `(,glib "bin")
12619 gettext-minimal
12620 pkg-config
12621 python ; for meson scripts
12622 vala
12623 xorg-server-for-tests))
12624 (home-page "https://wiki.gnome.org/Apps/Builder")
12625 (synopsis "Toolsmith for GNOME-based applications")
12626 (description
12627 "Builder aims to be an integrated development environment (IDE) for
12628 writing GNOME-based software. It features fuzzy search, auto-completion,
12629 a mini code map, documentation browsing, Git integration, an integrated
12630 profiler via Sysprof, debugging support, and more.")
12631 (license license:gpl3+)))
12632
12633 (define-public komikku
12634 (package
12635 (name "komikku")
12636 (version "0.41.0")
12637 (source
12638 (origin
12639 (method git-fetch)
12640 (uri (git-reference
12641 (url "https://gitlab.com/valos/Komikku/")
12642 (commit (string-append "v" version))))
12643 (file-name (git-file-name name version))
12644 (sha256
12645 (base32
12646 "17r059srxrx26w40swy47pdpyigyjdczp8550g4rfh86qs3ld4il"))))
12647 (build-system meson-build-system)
12648 (arguments
12649 `(#:glib-or-gtk? #t
12650 #:phases
12651 (modify-phases %standard-phases
12652 (add-after 'unpack 'patch-sources
12653 (lambda _
12654 (substitute* "komikku/utils.py"
12655 (("from komikku\\.servers import get_servers_list")
12656 ;; code following that line should migrate old databases
12657 ;; but the line itself results in an import error
12658 "return data_dir_path"))))
12659 (add-after 'unpack 'skip-gtk-update-icon-cache
12660 (lambda _
12661 (substitute* "meson_post_install.py"
12662 (("gtk-update-icon-cache") (which "true")))
12663 #t))
12664 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12665 (lambda* (#:key outputs #:allow-other-keys)
12666 (let ((prog (string-append (assoc-ref outputs "out")
12667 "/bin/komikku")))
12668 (wrap-program prog
12669 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
12670 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12671 #t))))))
12672 (inputs
12673 (list gtk+
12674 libhandy
12675 libnotify
12676 libsecret
12677 python
12678 python-beautifulsoup4
12679 python-brotli
12680 python-cloudscraper
12681 python-dateparser
12682 python-keyring
12683 python-lxml
12684 python-magic
12685 python-natsort
12686 python-pillow
12687 python-pure-protobuf
12688 python-pycairo
12689 python-pygobject
12690 python-requests
12691 python-unidecode
12692 webkitgtk-with-libsoup2))
12693 (native-inputs
12694 (list desktop-file-utils
12695 gettext-minimal
12696 `(,glib "bin")
12697 gobject-introspection
12698 pkg-config))
12699 (home-page "https://gitlab.com/valos/Komikku")
12700 (synopsis "Manga reader for GNOME")
12701 (description "Komikku is an online/offline manga reader for GNOME,
12702 developed with the aim of being used with the Librem 5 phone.")
12703 (license license:gpl3+)))
12704
12705 (define-public libgda
12706 (package
12707 (name "libgda")
12708 (version "6.0.0")
12709 (source
12710 (origin
12711 (method url-fetch)
12712 (uri (string-append "mirror://gnome/sources/" name "/"
12713 (version-major+minor version) "/"
12714 name "-" version ".tar.xz"))
12715 (sha256
12716 (base32 "0w564z7krgjk19r39mi5qn4kggpdg9ggbyn9pb4aavb61r14npwr"))
12717 (patches (search-patches "libgda-cve-2021-39359.patch"
12718 "libgda-fix-build.patch"
12719 "libgda-fix-missing-initialization.patch"
12720 "libgda-skip-postgresql-tests.patch"))))
12721 (build-system meson-build-system)
12722 (native-inputs
12723 (list intltool
12724 iso-codes
12725 `(,glib "bin")
12726 gnome-common
12727 gettext-minimal
12728 gobject-introspection
12729 gtk-doc/stable
12730 pkg-config
12731 python
12732 vala
12733 yelp-tools))
12734 (inputs
12735 (list json-glib
12736 glib
12737 glade3
12738 gtk+
12739 libsecret
12740 libxslt
12741 openssl
12742 sqlite
12743 vala))
12744 (propagated-inputs
12745 (list libxml2)) ; required by libgda-5.0.pc
12746 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12747 (synopsis "Uniform data access")
12748 (description
12749 "GNU Data Access (GDA) is an attempt to provide uniform access to
12750 different kinds of data sources (databases, information servers, mail spools,
12751 etc). It is a complete architecture that provides all you need to access
12752 your data.")
12753 (license license:lgpl2.1+)))
12754
12755 (define-public gtranslator
12756 (package
12757 (name "gtranslator")
12758 (version "42.0")
12759 (source (origin
12760 (method url-fetch)
12761 (uri (string-append "mirror://gnome/sources/" name "/"
12762 (version-major version) "/"
12763 name "-" version ".tar.xz"))
12764 (sha256
12765 (base32
12766 "0fzi48s3wz9mf6c1ndpkby83bgshgn2116nqjq31n1j3wszvqrra"))))
12767 (build-system meson-build-system)
12768 (arguments
12769 (list #:build-type "release" ;otherwise it tries to fetch stuff via git
12770 #:glib-or-gtk? #t
12771 #:phases
12772 #~(modify-phases %standard-phases
12773 (add-after 'unpack 'skip-gtk-update-icon-cache
12774 (lambda _
12775 (substitute* "build-aux/meson/meson_post_install.py"
12776 (("gtk-update-icon-cache") (which "true"))))))))
12777 (native-inputs
12778 (list `(,glib-next "bin")
12779 gettext-minimal
12780 itstool
12781 pkg-config))
12782 (inputs
12783 (list json-glib
12784 jsonrpc-glib
12785 gettext-minimal
12786 glib-next
12787 gsettings-desktop-schemas
12788 gspell
12789 libgda
12790 libhandy
12791 libsoup
12792 pango-next))
12793 (propagated-inputs
12794 (list gtksourceview-4)) ; required for source view
12795 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12796 (synopsis "Translation making program")
12797 (description
12798 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12799 for the GNOME 3.x platform with many features. It aims to be a very complete
12800 editing environment for translation issues within the GNU gettext/GNOME desktop
12801 world.")
12802 (license license:gpl3+)))
12803
12804
12805 (define-public ocrfeeder
12806 (package
12807 (name "ocrfeeder")
12808 (version "0.8.5")
12809 (source (origin
12810 (method url-fetch)
12811 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12812 (version-major+minor version) "/"
12813 "ocrfeeder-" version ".tar.xz"))
12814 (sha256
12815 (base32
12816 "1vaaphzk6zn7pp2x9scphdzlbsma910wnbhd9xry50nx95cjlgdh"))))
12817 (build-system gnu-build-system)
12818 (arguments
12819 `(#:phases
12820 (modify-phases %standard-phases
12821 (add-after
12822 'install 'wrap-program
12823 (lambda* (#:key outputs #:allow-other-keys)
12824 (let ((prog (string-append (assoc-ref outputs "out")
12825 "/bin/" "ocrfeeder"))
12826 (pylib (string-append (assoc-ref outputs "out")
12827 "/lib/python"
12828 ,(version-major+minor
12829 (package-version python))
12830 "/site-packages")))
12831 (wrap-program prog
12832 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12833 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
12834 (native-inputs
12835 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12836 ("gobject-introspection" ,gobject-introspection)
12837 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12838 ("intltool" ,intltool)
12839 ("itstool" ,itstool)
12840 ("pkg-config" ,pkg-config)
12841 ("xmllint" ,libxml2)))
12842 (inputs
12843 `(("enchant" ,enchant)
12844 ("glib" ,glib)
12845 ("goocanvas" ,goocanvas)
12846 ("gtk" ,gtk+)
12847 ("gtkspell3" ,gtkspell3)
12848 ("libjpeg" ,libjpeg-turbo)
12849 ("libtiff" ,libtiff)
12850 ("libraw" ,libraw)
12851 ("ocrad" ,ocrad)
12852 ("python" ,python-wrapper)
12853 ("python-pygobject" ,python-pygobject)
12854 ("python-odfpy" ,python-odfpy)
12855 ("python-pillow" ,python-pillow)
12856 ("python-pyenchant" ,python-pyenchant)
12857 ("python-reportlab" ,python-reportlab)
12858 ("python-sane" ,python-sane)
12859 ("sane-backends" ,sane-backends)
12860 ("tesseract-ocr" ,tesseract-ocr)))
12861 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12862 (synopsis "Complete OCR Suite")
12863 (description "OCRFeeder is a complete Optical Character Recognition and
12864 Document Analysis and Recognition program.")
12865 (license license:gpl3+)))
12866
12867 (define-public libadwaita
12868 (package
12869 (name "libadwaita")
12870 (version "1.1.0")
12871 (source (origin
12872 (method url-fetch)
12873 (uri (string-append "mirror://gnome/sources/libadwaita/"
12874 (version-major+minor version) "/"
12875 "libadwaita-" version ".tar.xz"))
12876 (sha256
12877 (base32
12878 "03h14mrm453bn03f48rmpf85pvg5cnzzab27cs1c43417s09ixdg"))))
12879 (build-system meson-build-system)
12880 (arguments
12881 `(#:phases
12882 (modify-phases %standard-phases
12883 (add-before 'check 'pre-check
12884 (lambda* (#:key inputs #:allow-other-keys)
12885 ;; Tests require a running X server.
12886 (system "Xvfb :1 &")
12887 (setenv "DISPLAY" ":1"))))))
12888 (native-inputs
12889 `(("sassc" ,sassc)
12890 ("glib:bin" ,glib "bin")
12891 ("gtk-doc" ,gtk-doc/stable)
12892 ("pkg-config" ,pkg-config)
12893 ("vala" ,vala)
12894 ("xvfb" ,xorg-server-for-tests)
12895 ("gettext" ,gettext-minimal)))
12896 (inputs
12897 (list gobject-introspection libportal))
12898 (propagated-inputs
12899 (list gtk)) ;libadwaita-1.pc 'Requires' it
12900 (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
12901 (synopsis "Building blocks for GNOME applications")
12902 (description
12903 "@code{libadwaita} offers widgets and objects to build GNOME
12904 applications scaling from desktop workstations to mobile phones. It is the
12905 successor of @code{libhandy} for GTK4.")
12906 (license license:lgpl2.1+)))
12907
12908 (define-public gnome-power-manager
12909 (package
12910 (name "gnome-power-manager")
12911 (version "3.32.0")
12912 (source (origin
12913 (method url-fetch)
12914 (uri (string-append "mirror://gnome/sources/" name "/"
12915 (version-major+minor version) "/"
12916 name "-" version ".tar.xz"))
12917 (sha256
12918 (base32
12919 "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g"))))
12920 (build-system meson-build-system)
12921 (inputs
12922 (list upower gtk+ gsettings-desktop-schemas adwaita-icon-theme))
12923 (native-inputs
12924 (list desktop-file-utils
12925 `(,glib "bin") gettext-minimal pkg-config))
12926 (home-page "https://gitlab.gnome.org/GNOME/gnome-power-manager")
12927 (synopsis "Power management daemon for the GNOME desktop")
12928 (description "@code{gnome-power-manager} is a tool for viewing present and
12929 historical battery usage and related statistics.")
12930 (license license:gpl2)))
12931
12932 (define-public xffm+
12933 (package
12934 (name "xffm+")
12935 (version "0.94")
12936 (source (origin
12937 (method url-fetch)
12938 (uri (string-append "mirror://sourceforge/xffm/xffm+/xffm+-"
12939 version ".tar.bz2"))
12940 (sha256
12941 (base32
12942 "0gwbgmjzlgv9ba95cgaigjnc9njzi7qznhvzp0qrnnlq3nbcm1k1"))))
12943 (build-system cmake-build-system)
12944 (arguments
12945 `(#:tests? #f ; No tests exist
12946 #:configure-flags
12947 (let ((shared-mime-info (assoc-ref %build-inputs "shared-mime-info"))
12948 (out (assoc-ref %outputs "out")))
12949 (list (string-append "-DFREEDESKTOP_GLOBS=" shared-mime-info
12950 "/share/mime/globs")
12951 (string-append "-DFREEDESKTOP_ALIAS=" shared-mime-info
12952 "/share/mime/aliases")
12953 (string-append "-DFREEDESKTOP_ICONS=" shared-mime-info
12954 "/share/mime/generic-icons")
12955 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
12956 (string-append "-DPREFIX_BIN=" out "/bin")))
12957 #:phases
12958 (modify-phases %standard-phases
12959 (add-after 'unpack 'patch-installation-destination
12960 (lambda* (#:key outputs #:allow-other-keys)
12961 (substitute* "CMakeLists.txt"
12962 ;; This is done so we can override.
12963 (("^set.CMAKE_INSTALL_PREFIX") "set(QCMAKE_INSTALL_PREFIX")
12964 ;; This is done so we can override.
12965 (("`set.PREFIX_BIN") "set(QPREFIX_BIN")))))))
12966 (native-inputs
12967 (list cmake pkg-config intltool gnu-gettext))
12968 (inputs
12969 (list glib gtk+ libx11 libsm libxv libxaw libxcb libxkbfile
12970 shared-mime-info))
12971 (synopsis "File manager")
12972 (description "This package provides a graphical file manager.")
12973 (home-page "http://xffm.org/")
12974 (license license:gpl3+)
12975 (properties '((upstream-name . "xffm")))))