gnu: Use 'search-input-file' some more.
[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, 2015, 2016, 2017, 2018, 2019, 2020, 2021 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, 2016, 2017, 2018, 2019, 2020, 2021 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–2021 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 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 Marius Bakke <mbakke@fastmail.com>
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 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 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 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 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 Guillaume Le Vaillant <glv@posteo.net>
64 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
65 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
66 ;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
67 ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
68 ;;;
69 ;;; This file is part of GNU Guix.
70 ;;;
71 ;;; GNU Guix is free software; you can redistribute it and/or modify it
72 ;;; under the terms of the GNU General Public License as published by
73 ;;; the Free Software Foundation; either version 3 of the License, or (at
74 ;;; your option) any later version.
75 ;;;
76 ;;; GNU Guix is distributed in the hope that it will be useful, but
77 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
78 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
79 ;;; GNU General Public License for more details.
80 ;;;
81 ;;; You should have received a copy of the GNU General Public License
82 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
83
84 (define-module (gnu packages gnome)
85 #:use-module (gnu packages)
86 #:use-module (gnu packages admin)
87 #:use-module (gnu packages aidc)
88 #:use-module (gnu packages aspell)
89 #:use-module (gnu packages autotools)
90 #:use-module (gnu packages avahi)
91 #:use-module (gnu packages backup)
92 #:use-module (gnu packages base)
93 #:use-module (gnu packages bash)
94 #:use-module (gnu packages bison)
95 #:use-module (gnu packages boost)
96 #:use-module (gnu packages build-tools)
97 #:use-module (gnu packages calendar)
98 #:use-module (gnu packages cdrom)
99 #:use-module (gnu packages check)
100 #:use-module (gnu packages cmake)
101 #:use-module (gnu packages compression)
102 #:use-module (gnu packages crates-io)
103 #:use-module (gnu packages crates-graphics)
104 #:use-module (gnu packages crates-gtk)
105 #:use-module (gnu packages cups)
106 #:use-module (gnu packages curl)
107 #:use-module (gnu packages cyrus-sasl)
108 #:use-module (gnu packages databases)
109 #:use-module (gnu packages dbm)
110 #:use-module (gnu packages djvu)
111 #:use-module (gnu packages dns)
112 #:use-module (gnu packages docbook)
113 #:use-module (gnu packages documentation)
114 #:use-module (gnu packages enchant)
115 #:use-module (gnu packages flex)
116 #:use-module (gnu packages fonts)
117 #:use-module (gnu packages file-systems)
118 #:use-module (gnu packages fontutils)
119 #:use-module (gnu packages freedesktop)
120 #:use-module (gnu packages game-development)
121 #:use-module (gnu packages gcc)
122 #:use-module (gnu packages gettext)
123 #:use-module (gnu packages ghostscript)
124 #:use-module (gnu packages gimp)
125 #:use-module (gnu packages gl)
126 #:use-module (gnu packages glib)
127 #:use-module (gnu packages gnupg)
128 #:use-module (gnu packages gnuzilla)
129 #:use-module (gnu packages geo)
130 #:use-module (gnu packages gperf)
131 #:use-module (gnu packages graphviz)
132 #:use-module (gnu packages gstreamer)
133 #:use-module (gnu packages gtk)
134 #:use-module (gnu packages guile)
135 #:use-module (gnu packages haskell-xyz)
136 #:use-module (gnu packages ibus)
137 #:use-module (gnu packages icu4c)
138 #:use-module (gnu packages image)
139 #:use-module (gnu packages imagemagick)
140 #:use-module (gnu packages inkscape)
141 #:use-module (gnu packages iso-codes)
142 #:use-module (gnu packages kerberos)
143 #:use-module (gnu packages libcanberra)
144 #:use-module (gnu packages libffi)
145 #:use-module (gnu packages libunistring)
146 #:use-module (gnu packages libunwind)
147 #:use-module (gnu packages libusb)
148 #:use-module (gnu packages linux)
149 #:use-module (gnu packages lirc)
150 #:use-module (gnu packages lua)
151 #:use-module (gnu packages mail)
152 #:use-module (gnu packages man)
153 #:use-module (gnu packages mp3)
154 #:use-module (gnu packages multiprecision)
155 #:use-module (gnu packages music)
156 #:use-module (gnu packages ncurses)
157 #:use-module (gnu packages nettle)
158 #:use-module (gnu packages networking)
159 #:use-module (gnu packages ninja)
160 #:use-module (gnu packages node)
161 #:use-module (gnu packages nss)
162 #:use-module (gnu packages ocr)
163 #:use-module (gnu packages openldap)
164 #:use-module (gnu packages package-management)
165 #:use-module (gnu packages password-utils)
166 #:use-module (gnu packages pcre)
167 #:use-module (gnu packages pdf)
168 #:use-module (gnu packages perl)
169 #:use-module (gnu packages photo)
170 #:use-module (gnu packages php)
171 #:use-module (gnu packages pkg-config)
172 #:use-module (gnu packages polkit)
173 #:use-module (gnu packages popt)
174 #:use-module (gnu packages pretty-print)
175 #:use-module (gnu packages protobuf)
176 #:use-module (gnu packages pulseaudio)
177 #:use-module (gnu packages python)
178 #:use-module (gnu packages python-crypto)
179 #:use-module (gnu packages python-web)
180 #:use-module (gnu packages python-xyz)
181 #:use-module (gnu packages rdesktop)
182 #:use-module (gnu packages rdf)
183 #:use-module (gnu packages readline)
184 #:use-module (gnu packages ruby)
185 #:use-module (gnu packages rust)
186 #:use-module (gnu packages samba)
187 #:use-module (gnu packages scanner)
188 #:use-module (gnu packages sdl)
189 #:use-module (gnu packages search)
190 #:use-module (gnu packages selinux)
191 #:use-module (gnu packages slang)
192 #:use-module (gnu packages speech)
193 #:use-module (gnu packages spice)
194 #:use-module (gnu packages sqlite)
195 #:use-module (gnu packages ssh)
196 #:use-module (gnu packages swig)
197 #:use-module (gnu packages tex)
198 #:use-module (gnu packages time)
199 #:use-module (gnu packages tls)
200 #:use-module (gnu packages valgrind)
201 #:use-module (gnu packages version-control)
202 #:use-module (gnu packages video)
203 #:use-module (gnu packages virtualization)
204 #:use-module (gnu packages vpn)
205 #:use-module (gnu packages web)
206 #:use-module (gnu packages webkit)
207 #:use-module (gnu packages xdisorg)
208 #:use-module (gnu packages xiph)
209 #:use-module (gnu packages xml)
210 #:use-module (gnu packages xorg)
211 #:use-module (gnu artwork)
212 #:use-module (guix build-system cargo)
213 #:use-module (guix build-system cmake)
214 #:use-module (guix build-system glib-or-gtk)
215 #:use-module (guix build-system gnu)
216 #:use-module (guix build-system meson)
217 #:use-module (guix build-system python)
218 #:use-module (guix build-system trivial)
219 #:use-module (guix download)
220 #:use-module (guix git-download)
221 #:use-module ((guix licenses) #:prefix license:)
222 #:use-module (guix packages)
223 #:use-module (guix utils)
224 #:use-module (guix gexp)
225 #:use-module (ice-9 match)
226 #:use-module (srfi srfi-1))
227
228 (define-public gupnp-igd
229 (package
230 (name "gupnp-igd")
231 (version "1.2.0")
232 (source
233 (origin
234 (method url-fetch)
235 (uri
236 (string-append "mirror://gnome/sources/" name "/"
237 (version-major+minor version) "/"
238 name "-" version ".tar.xz"))
239 (sha256
240 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
241 (build-system meson-build-system)
242 (outputs '("out" "doc"))
243 (arguments
244 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
245 #:configure-flags (list "-Dgtk_doc=true")
246 #:phases
247 (modify-phases %standard-phases
248 (add-after 'unpack 'patch-docbook-xml
249 (lambda* (#:key inputs #:allow-other-keys)
250 (with-directory-excursion "doc"
251 (substitute* "gupnp-igd-docs.xml"
252 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
253 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
254 "/xml/dtd/docbook/"))))
255 #t))
256 (add-after 'install 'move-doc
257 (lambda* (#:key outputs #:allow-other-keys)
258 (let* ((out (assoc-ref outputs "out"))
259 (doc (assoc-ref outputs "doc")))
260 (mkdir-p (string-append doc "/share"))
261 (rename-file
262 (string-append out "/share/gtk-doc")
263 (string-append doc "/share/gtk-doc"))
264 #t))))))
265 (native-inputs
266 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
267 ("docbook-xsl" ,docbook-xsl)
268 ("glib:bin" ,glib "bin")
269 ("gobject-introspection" ,gobject-introspection)
270 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
271 ("gtk-doc" ,gtk-doc/stable)
272 ("pkg-config" ,pkg-config)))
273 (propagated-inputs
274 `(("glib" ,glib)
275 ("glib-networking" ,glib-networking)
276 ("gssdp" ,gssdp)
277 ("gupnp" ,gupnp)
278 ("libsoup" ,libsoup)))
279 (synopsis "UPnP IGD for GNOME")
280 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
281 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
282 (license license:lgpl2.1+)))
283
284 (define-public brasero
285 (package
286 (name "brasero")
287 (version "3.12.3")
288 (source (origin
289 (method url-fetch)
290 (uri (string-append "mirror://gnome/sources/brasero/"
291 (version-major+minor version) "/"
292 "brasero-" version ".tar.xz"))
293 (sha256
294 (base32
295 "05gabybkl7xfinwx97i4scp9hic0dlxj7gh03dyj0hd16fp9wx47"))))
296 (build-system glib-or-gtk-build-system)
297 (arguments
298 `(#:configure-flags (list
299 (string-append "--with-girdir="
300 (assoc-ref %outputs "out")
301 "/share/gir-1.0")
302 (string-append "--with-typelibdir="
303 (assoc-ref %outputs "out")
304 "/lib/girepository-1.0"))
305 #:phases
306 (modify-phases %standard-phases
307 (add-before 'configure 'embed-growisofs-reference
308 (lambda* (#:key inputs #:allow-other-keys)
309 (let ((dvd+rw-tools (assoc-ref inputs "dvd+rw-tools")))
310 (substitute* "plugins/growisofs/burn-growisofs.c"
311 (("(\")(growisofs)" _ prefix command)
312 (string-append prefix dvd+rw-tools "/bin/" command)))))))))
313 (propagated-inputs
314 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
315 (native-inputs
316 `(("intltool" ,intltool)
317 ("itstool" ,itstool)
318 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
319 ("gobject-introspection" ,gobject-introspection)
320 ("pkg-config" ,pkg-config)))
321 (inputs
322 `(("dvd+rw-tools" ,dvd+rw-tools)
323 ("glib" ,glib)
324 ("gnome-doc-utils" ,gnome-doc-utils)
325 ("gstreamer" ,gstreamer)
326 ("gst-plugins-base" ,gst-plugins-base)
327 ("gtk+" ,gtk+)
328 ("libcanberra" ,libcanberra)
329 ("libice" ,libice)
330 ("libnotify" ,libnotify)
331 ("libsm" ,libsm)
332 ("libxml2" ,libxml2)
333 ("totem-pl-parser" ,totem-pl-parser)))
334 (home-page "https://wiki.gnome.org/Apps/Brasero")
335 (synopsis "CD/DVD burning tool for Gnome")
336 (description "Brasero is an application to burn CD/DVD for the Gnome
337 Desktop. It is designed to be as simple as possible and has some unique
338 features to enable users to create their discs easily and quickly.")
339 (license license:gpl2+)))
340
341 (define-public libcloudproviders
342 (package
343 (name "libcloudproviders")
344 (version "0.3.1")
345 (source
346 (origin
347 (method url-fetch)
348 (uri
349 (string-append "mirror://gnome/sources/" name "/"
350 (version-major+minor version) "/"
351 name "-" version ".tar.xz"))
352 (sha256
353 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
354 (build-system meson-build-system)
355 (outputs '("out" "doc"))
356 (arguments
357 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
358 #:configure-flags
359 (list
360 "-Denable-gtk-doc=true")
361 #:phases
362 (modify-phases %standard-phases
363 (add-after 'install 'move-doc
364 (lambda* (#:key outputs #:allow-other-keys)
365 (let* ((out (assoc-ref outputs "out"))
366 (doc (assoc-ref outputs "doc")))
367 (mkdir-p (string-append doc "/share"))
368 (rename-file
369 (string-append out "/share/gtk-doc")
370 (string-append doc "/share/gtk-doc"))
371 #t))))))
372 (native-inputs
373 `(("glib:bin" ,glib "bin")
374 ("gobject-introspection" ,gobject-introspection)
375 ("gtk-doc" ,gtk-doc/stable)
376 ("pkg-config" ,pkg-config)
377 ("vala" ,vala)))
378 (inputs
379 `(("glib" ,glib)
380 ("glib-networking" ,glib-networking)))
381 (synopsis "Cloudproviders Integration API")
382 (description "Libcloudproviders is a DBus API that allows cloud storage sync
383 clients to expose their services. Clients such as file managers and desktop
384 environments can then provide integrated access to the cloud providers
385 services.")
386 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
387 (license license:lgpl3+)))
388
389 (define-public libgrss
390 (package
391 (name "libgrss")
392 (version "0.7.0")
393 (source
394 (origin
395 (method url-fetch)
396 (uri
397 (string-append "mirror://gnome/sources/" name "/"
398 (version-major+minor version) "/"
399 name "-" version ".tar.xz"))
400 (sha256
401 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))
402 (patches
403 (search-patches "libgrss-CVE-2016-2001.patch"))))
404 (build-system glib-or-gtk-build-system)
405 (outputs '("out" "doc"))
406 (arguments
407 `(#:configure-flags
408 (list
409 "--enable-gtk-doc"
410 (string-append "--with-html-dir="
411 (assoc-ref %outputs "doc")
412 "/share/gtk-doc/html"))
413 #:phases
414 (modify-phases %standard-phases
415 (add-after 'unpack 'patch-docbook-xml
416 (lambda* (#:key inputs #:allow-other-keys)
417 (with-directory-excursion "doc/reference"
418 (substitute* "libgrss-docs.sgml"
419 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
420 (string-append (assoc-ref inputs "docbook-xml")
421 "/xml/dtd/docbook/"))))
422 #t)))))
423 (native-inputs
424 `(("docbook-xml" ,docbook-xml-4.1.2)
425 ("gobject-introspection" ,gobject-introspection)
426 ("gtk-doc" ,gtk-doc/stable)
427 ("pkg-config" ,pkg-config)))
428 (propagated-inputs
429 `(("glib" ,glib)
430 ("libsoup" ,libsoup)
431 ("libxml2" ,libxml2)))
432 (synopsis "Glib library for feeds")
433 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
434 and other formats.")
435 (home-page "https://wiki.gnome.org/Projects/Libgrss")
436 (license license:lgpl3+)))
437
438 (define-public gnome-js-common
439 (package
440 (name "gnome-js-common")
441 (version "0.1.2")
442 (source
443 (origin
444 (method url-fetch)
445 (uri
446 (string-append "mirror://gnome/sources/" name "/"
447 (version-major+minor version) "/"
448 name "-" version ".tar.gz"))
449 (sha256
450 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
451 (build-system glib-or-gtk-build-system)
452 (arguments
453 `(#:configure-flags
454 (list
455 "--disable-static")))
456 (native-inputs
457 `(("gettext" ,gettext-minimal)
458 ("intltool" ,intltool)
459 ("pkg-config" ,pkg-config)))
460 (synopsis "Common JS Modules")
461 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
462 bindings.")
463 (home-page "https://wiki.gnome.org/Projects/Seed")
464 (license license:gpl3+)))
465
466 (define-public seed
467 (package
468 (name "seed")
469 (version "3.8.1")
470 (source
471 (origin
472 (method url-fetch)
473 (uri
474 (string-append "mirror://gnome/sources/" name "/"
475 (version-major+minor version) "/"
476 name "-" version ".tar.xz"))
477 (sha256
478 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
479 (patches
480 (search-patches "seed-webkit.patch"))))
481 (build-system glib-or-gtk-build-system)
482 (outputs '("out" "doc"))
483 (arguments
484 `(#:configure-flags
485 (list
486 "--disable-static"
487 "--enable-xorg-module"
488 (string-append "--with-html-dir="
489 (assoc-ref %outputs "doc")
490 "/share/gtk-doc/html")
491 "--with-webkit=4.0")
492 #:phases
493 (modify-phases %standard-phases
494 ;; The seed-webkit.patch patches configure.ac.
495 ;; So the source files need to be re-bootstrapped.
496 (add-after 'unpack 'trigger-bootstrap
497 (lambda _
498 (for-each delete-file
499 (list
500 "configure"
501 "Makefile.in"))
502 #t))
503 (add-after 'unpack 'patch-tests
504 (lambda* (#:key outputs #:allow-other-keys)
505 (substitute* (find-files "." "\\.js$")
506 (("#!/usr/bin/env seed")
507 (string-append "#!" (getcwd) "/src/seed")))
508 #t))
509 (add-before 'build 'patch-docbook-xml
510 (lambda* (#:key inputs #:allow-other-keys)
511 (with-directory-excursion "doc"
512 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
513 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
514 (string-append (assoc-ref inputs "docbook-xml")
515 "/xml/dtd/docbook/"))))
516 #t)))))
517 (native-inputs
518 `(("autoconf" ,autoconf)
519 ("automake" ,automake)
520 ("docbook-xml" ,docbook-xml-4.1.2)
521 ("gettext" ,gettext-minimal)
522 ("gobject-introspection" ,gobject-introspection)
523 ("gtk-doc" ,gtk-doc/stable)
524 ("intltool" ,intltool)
525 ("libtool" ,libtool)
526 ("pkg-config" ,pkg-config)))
527 (inputs
528 `(("cairo" ,cairo)
529 ("dbus" ,dbus)
530 ("dbus-glib" ,dbus-glib)
531 ("gnome-js-common" ,gnome-js-common)
532 ("gtk+" ,gtk+)
533 ("gtk+-2" ,gtk+-2)
534 ("libffi" ,libffi)
535 ("libxml2" ,libxml2)
536 ("mpfr" ,mpfr)
537 ("readline" ,readline)
538 ("sqlite" ,sqlite)
539 ("xscrnsaver" ,libxscrnsaver)))
540 (propagated-inputs
541 `(("glib" ,glib)
542 ("webkit" ,webkitgtk)))
543 (synopsis "GObject JavaScriptCore bridge")
544 (description "Seed is a library and interpreter, dynamically bridging
545 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
546 GNOME platform. It serves as something which enables you to write standalone
547 applications in JavaScript, or easily enable your application to be extensible
548 in JavaScript.")
549 (home-page "https://wiki.gnome.org/Projects/Seed")
550 (license license:lgpl2.0+)))
551
552 (define-public libdmapsharing
553 (package
554 (name "libdmapsharing")
555 (version "3.9.10")
556 (source
557 (origin
558 (method url-fetch)
559 (uri
560 (string-append "https://www.flyn.org/projects/"
561 name "/" name "-" version ".tar.gz"))
562 (sha256
563 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
564 (build-system glib-or-gtk-build-system)
565 (outputs '("out" "doc"))
566 (arguments
567 `(#:tests? #f ; Tests require networking.
568 #:configure-flags
569 (list
570 "--disable-static"
571 (string-append "--with-html-dir="
572 (assoc-ref %outputs "doc")
573 "/share/gtk-doc/html"))
574 #:phases
575 (modify-phases %standard-phases
576 (add-after 'unpack 'patch-docbook-xml
577 (lambda* (#:key inputs #:allow-other-keys)
578 (with-directory-excursion "doc"
579 (substitute* "libdmapsharing-4.0-docs.xml"
580 (("http://www.oasis-open.org/docbook/xml/4.3/")
581 (string-append (assoc-ref inputs "docbook-xml")
582 "/xml/dtd/docbook/"))))
583 #t)))))
584 (native-inputs
585 `(("check" ,check)
586 ("docbook-xml" ,docbook-xml-4.3)
587 ("gobject-introspection" ,gobject-introspection)
588 ("pedansee" ,pedansee)
589 ("pkg-config" ,pkg-config)
590 ("vala" ,vala)))
591 (inputs
592 `(("avahi" ,avahi)
593 ("gdk-pixbuf" ,gdk-pixbuf+svg)
594 ("gee" ,libgee)
595 ("gst-plugins-base" ,gst-plugins-base)
596 ("gtk+" ,gtk+)))
597 (propagated-inputs
598 `(("glib" ,glib)
599 ("glib-networking" ,glib-networking)
600 ("gstreamer" ,gstreamer)
601 ("libsoup" ,libsoup)))
602 (synopsis "Media management library")
603 (description "Libdmapsharing is a library which allows programs to access,
604 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
605 It is written in C using GObject and libsoup.")
606 (home-page "https://launchpad.net/gtx")
607 (license license:lgpl2.1+)))
608
609 (define-public gtx
610 (package
611 (name "gtx")
612 (version "0.2.2")
613 (source
614 (origin
615 (method url-fetch)
616 (uri
617 (string-append "https://launchpad.net/gtx/trunk/"
618 version "/+download/gtx-" version ".tar.gz"))
619 (sha256
620 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
621 (build-system glib-or-gtk-build-system)
622 (outputs '("out" "doc"))
623 (arguments
624 `(#:configure-flags
625 (list
626 "--disable-static"
627 "--enable-gtk-doc"
628 (string-append "--with-html-dir="
629 (assoc-ref %outputs "doc")
630 "/share/gtk-doc/html"))))
631 (native-inputs
632 `(("gobject-introspection" ,gobject-introspection)
633 ("gtk-doc" ,gtk-doc/stable)
634 ("pkg-config" ,pkg-config)))
635 (propagated-inputs
636 `(("glib" ,glib)))
637 (synopsis "GLib Testing Framework")
638 (description "GTX is a small collection of convenience functions intended to
639 enhance the GLib testing framework. With specific emphasis on easing the pain
640 of writing test cases for asynchronous interactions.")
641 (home-page "https://launchpad.net/gtx")
642 (license license:lgpl2.1+)))
643
644 (define-public dee
645 (package
646 (name "dee")
647 (version "1.2.7")
648 (source
649 (origin
650 (method url-fetch)
651 (uri
652 (string-append "https://launchpad.net/dee/1.0/"
653 version "/+download/dee-" version ".tar.gz"))
654 (sha256
655 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
656 (patches
657 (search-patches "dee-vapi.patch"))))
658 (build-system glib-or-gtk-build-system)
659 (outputs '("out" "doc"))
660 (arguments
661 `(#:configure-flags
662 (list
663 "--disable-maintainer-flags"
664 (string-append "--with-pygi-overrides-dir="
665 (assoc-ref %outputs "out")
666 "/lib/python"
667 ,(version-major+minor
668 (package-version python))
669 "/site-packages/gi/overrides")
670 (string-append "--with-html-dir="
671 (assoc-ref %outputs "doc")
672 "/share/gtk-doc/html"))
673 #:phases
674 (modify-phases %standard-phases
675 (add-after 'unpack 'patch-docbook-xml
676 (lambda* (#:key inputs #:allow-other-keys)
677 (with-directory-excursion "doc/reference/dee-1.0"
678 (substitute* "dee-1.0-docs.sgml"
679 (("http://www.oasis-open.org/docbook/xml/4.3/")
680 (string-append (assoc-ref inputs "docbook-xml")
681 "/xml/dtd/docbook/"))))
682 #t))
683 (add-after 'patch-docbook-xml 'disable-failing-tests
684 (lambda _
685 (substitute* "tests/test-icu.c"
686 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
687 "")
688 (("setup, test_ascii_folder, teardown\\);")
689 ""))
690 #t))
691 (add-before 'check 'pre-check
692 (lambda _
693 ;; Tests require a running dbus-daemon.
694 (system "dbus-daemon &")
695 ;; For missing '/etc/machine-id'.
696 (setenv "DBUS_FATAL_WARNINGS" "0")
697 #t)))))
698 (native-inputs
699 `(("dbus" ,dbus)
700 ("dbus-test-runner" ,dbus-test-runner)
701 ("docbook-xml" ,docbook-xml-4.3)
702 ("gobject-introspection" ,gobject-introspection)
703 ("gtk-doc" ,gtk-doc/stable)
704 ;; Would only be required by configure flag "--enable-extended-tests".
705 ;("gtx" ,gtx)
706 ("pkg-config" ,pkg-config)
707 ("pygobject" ,python-pygobject)
708 ("python" ,python-wrapper)
709 ("vala" ,vala)))
710 (inputs
711 `(("icu" ,icu4c)))
712 (propagated-inputs
713 `(("glib" ,glib)))
714 (synopsis "Model to synchronize multiple instances over DBus")
715 (description "Dee is a library that uses DBus to provide objects allowing
716 you to create Model-View-Controller type programs across DBus. It also consists
717 of utility objects which extend DBus allowing for peer-to-peer discoverability
718 of known objects without needing a central registrar.")
719 (home-page "https://launchpad.net/dee")
720 (license
721 ;; Dual-licensed
722 (list
723 license:lgpl3+
724 license:gpl3+))))
725
726 (define-public zeitgeist
727 (package
728 (name "zeitgeist")
729 (version "1.0.3")
730 (source
731 (origin
732 (method git-fetch)
733 (uri
734 (git-reference
735 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
736 (commit
737 (string-append "v" version))))
738 (file-name
739 (git-file-name name version))
740 (sha256
741 (base32 "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp"))))
742 (build-system glib-or-gtk-build-system)
743 (arguments
744 `(#:configure-flags
745 (list
746 "--enable-explain-queries"
747 "--enable-fts"
748 "--enable-docs")
749 #:phases
750 (modify-phases %standard-phases
751 (add-after 'unpack 'patch-docbook-xml
752 (lambda* (#:key inputs #:allow-other-keys)
753 (with-directory-excursion "doc/libzeitgeist"
754 (substitute* "zeitgeist-gtkdoc-index.sgml"
755 (("http://www.oasis-open.org/docbook/xml/4.3/")
756 (string-append (assoc-ref inputs "docbook-xml")
757 "/xml/dtd/docbook/"))))
758 #t))
759 (add-after 'patch-docbook-xml 'disable-failing-tests
760 (lambda _
761 (substitute* "test/direct/Makefile.am"
762 ((" log-test ")
763 ""))
764 (substitute* "test/c/Makefile.am"
765 ((" test-log ")
766 ""))
767 #t))
768 (add-before 'bootstrap 'remove-autogen-script
769 (lambda _
770 ;; To honor `autoreconf -vif` by build-system.
771 (delete-file "autogen.sh")
772 #t)))))
773 (native-inputs
774 `(("autoconf" ,autoconf)
775 ("automake" ,automake)
776 ("docbook-xml" ,docbook-xml-4.3)
777 ("gettext" ,gettext-minimal)
778 ("gobject-introspection" ,gobject-introspection)
779 ("gtk-doc" ,gtk-doc/stable)
780 ("libtool" ,libtool)
781 ("pkg-config" ,pkg-config)
782 ("vala" ,vala)
783 ("xorg-server-for-tests" ,xorg-server-for-tests)))
784 (inputs
785 `(("dee-icu" ,dee)
786 ("gtk+" ,gtk+)
787 ("json-glib" ,json-glib)
788 ("sqlite" ,sqlite)
789 ("telepathy-glib" ,telepathy-glib)
790 ("python" ,python-wrapper)
791 ("python-rdflib" ,python-rdflib)
792 ("xapian-config" ,xapian)))
793 (propagated-inputs
794 `(("glib" ,glib)))
795 (synopsis "Desktop Activity Logging")
796 (description "Zeitgeist is a service which logs the users’s activities and
797 events, anywhere from files opened to websites visited and conversations. It
798 makes this information readily available for other applications to use. It is
799 able to establish relationships between items based on similarity and usage
800 patterns.")
801 (home-page "https://zeitgeist.freedesktop.org/")
802 (license
803 ;; Dual-licensed
804 (list
805 license:lgpl2.1+
806 license:gpl2+))))
807
808 (define-public gnome-recipes
809 (package
810 (name "gnome-recipes")
811 (version "2.0.4")
812 (source (origin
813 (method git-fetch)
814 (uri (git-reference
815 (url "https://gitlab.gnome.org/GNOME/recipes")
816 (commit version)))
817 (file-name (git-file-name name version))
818 (sha256
819 (base32
820 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
821 (build-system meson-build-system)
822 (arguments
823 `(#:glib-or-gtk? #t
824 #:phases
825 (modify-phases %standard-phases
826 (add-after 'unpack 'skip-gtk-update-icon-cache
827 (lambda _
828 (substitute* "meson_post_install.py"
829 (("gtk-update-icon-cache") (which "true")))
830 #t))
831 (add-after 'unpack 'unpack-libgd
832 (lambda* (#:key inputs #:allow-other-keys)
833 (let ((libgd (assoc-ref inputs "libgd")))
834 (copy-recursively libgd "subprojects/libgd")
835 #t))))))
836 (inputs
837 `(("glib" ,glib)
838 ("gnome-autoar" ,gnome-autoar)
839 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
840 ("gspell" ,gspell)
841 ("gtk+" ,gtk+)
842 ("json-glib" ,json-glib)
843 ("libcanberra" ,libcanberra)
844 ("libsoup" ,libsoup)
845 ("rest" ,rest)))
846 (native-inputs
847 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
848 ("gettext" ,gettext-minimal)
849 ("glib:bin" ,glib "bin")
850 ("itstool" ,itstool)
851 ("libgd"
852 ,(origin
853 (method git-fetch)
854 (uri (git-reference
855 (url "https://gitlab.gnome.org/GNOME/libgd")
856 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
857 (file-name (git-file-name "libgd" version))
858 (sha256
859 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
860 ("pkg-config" ,pkg-config)))
861 (home-page "https://wiki.gnome.org/Apps/Recipes")
862 (synopsis "Discover recipes for preparing food")
863 (description "GNOME Recipes helps you discover what to cook today,
864 tomorrow, the rest of the week and for special occasions.")
865 (license license:gpl3+)))
866
867 (define-public gnome-photos
868 (package
869 (name "gnome-photos")
870 (version "40.0")
871 (source
872 (origin
873 (method url-fetch)
874 (uri
875 (string-append "mirror://gnome/sources/" name "/"
876 (version-major version) "/"
877 name "-" version ".tar.xz"))
878 (sha256
879 (base32
880 "1bzi79plw6ji6qlckhxnwfnswy6jpnhzmmyanml2i2xg73hp6bg0"))))
881 (build-system meson-build-system)
882 (arguments
883 `(#:glib-or-gtk? #t
884 #:configure-flags
885 (list "-Ddogtail=false" ; Not available
886 ;; Required for RUNPATH validation.
887 (string-append "-Dc_link_args=-Wl,-rpath="
888 (assoc-ref %outputs "out") "/lib/gnome-photos"))
889 #:phases
890 (modify-phases %standard-phases
891 (add-after 'install 'wrap-gnome-photos
892 (lambda* (#:key inputs outputs #:allow-other-keys)
893 (let*
894 ((out (assoc-ref outputs "out")))
895 (wrap-program (string-append out "/bin/gnome-photos")
896 `("GRL_PLUGIN_PATH" =
897 (,(getenv "GRL_PLUGIN_PATH"))))))))))
898 (native-inputs
899 `(("dbus" ,dbus)
900 ("desktop-file-utils" ,desktop-file-utils)
901 ("gettext" ,gettext-minimal)
902 ("git" ,git-minimal)
903 ("glib:bin" ,glib "bin")
904 ("gobject-introspection" ,gobject-introspection)
905 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
906 ("gtk+:bin" ,gtk+ "bin")
907 ("itstool" ,itstool)
908 ("pkg-config" ,pkg-config)))
909 (inputs
910 `(("babl" ,babl)
911 ("cairo" ,cairo)
912 ("gdk-pixbuf" ,gdk-pixbuf+svg)
913 ("gegl" ,gegl)
914 ("geocode-glib" ,geocode-glib)
915 ("gexiv2" ,gexiv2)
916 ("gnome-online-accounts" ,gnome-online-accounts)
917 ("gnome-online-miners" ,gnome-online-miners)
918 ("grilo" ,grilo)
919 ("grilo-plugins" ,grilo-plugins)
920 ("gtk+" ,gtk+)
921 ("libdazzle" ,libdazzle)
922 ("libgdata" ,libgdata)
923 ("libgfbgraph" ,gfbgraph)
924 ("libhandy" ,libhandy)
925 ("libjpeg" ,libjpeg-turbo)
926 ("libpng" ,libpng)
927 ("librest" ,rest)
928 ("pygobject" ,python-pygobject)
929 ("tracker" ,tracker)
930 ("tracker-miners" ,tracker-miners)))
931 (synopsis "Access, organize and share your photos on GNOME desktop")
932 (description "GNOME Photos is a simple and elegant replacement for using a
933 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
934 cloud integration is offered through GNOME Online Accounts.")
935 (home-page "https://wiki.gnome.org/Apps/Photos")
936 (license license:gpl3+)))
937
938 (define-public gnome-music
939 (package
940 (name "gnome-music")
941 (version "40.1.1")
942 (source
943 (origin
944 (method url-fetch)
945 (uri
946 (string-append "mirror://gnome/sources/" name "/"
947 (version-major version) "/"
948 name "-" version ".tar.xz"))
949 (sha256
950 (base32
951 "0lcdal4qdhclr8961p57xf010y92l6wwmkw86lyi9wy224z6gjr0"))))
952 (build-system meson-build-system)
953 (arguments
954 `(#:glib-or-gtk? #t
955 #:phases
956 (modify-phases %standard-phases
957 (add-after 'install 'wrap-gnome-music
958 (lambda* (#:key inputs outputs #:allow-other-keys)
959 (let*
960 ((out (assoc-ref outputs "out"))
961 (pylib (string-append out "/lib/python"
962 ,(version-major+minor
963 (package-version python))
964 "/site-packages")))
965 (wrap-program (string-append out "/bin/gnome-music")
966 `("GI_TYPELIB_PATH" =
967 (,(getenv "GI_TYPELIB_PATH")))
968 `("GST_PLUGIN_SYSTEM_PATH" =
969 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
970 `("GRL_PLUGIN_PATH" =
971 (,(getenv "GRL_PLUGIN_PATH")))
972 `("GUIX_PYTHONPATH" =
973 (,(getenv "GUIX_PYTHONPATH") ,pylib)))))))))
974 (native-inputs
975 `(("desktop-file-utils" ,desktop-file-utils)
976 ("gettext" ,gettext-minimal)
977 ("glib:bin" ,glib "bin")
978 ("gobject-introspection" ,gobject-introspection)
979 ("gtk+:bin" ,gtk+ "bin")
980 ("itstools" ,itstool)
981 ("pkg-config" ,pkg-config)))
982 (inputs
983 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
984 ("grilo" ,grilo)
985 ("grilo-plugins" ,grilo-plugins)
986 ("gst-plugins-base" ,gst-plugins-base)
987 ("gst-plugins-good" ,gst-plugins-good)
988 ("gstreamer" ,gstreamer)
989 ("gvfs" ,gvfs)
990 ("json-glib" ,json-glib)
991 ("libdazzle" ,libdazzle)
992 ("libmediaart" ,libmediaart)
993 ("libsoup" ,libsoup)
994 ("pycairo" ,python-pycairo)
995 ("pygobject" ,python-pygobject)
996 ("tracker" ,tracker)
997 ("tracker-miners" ,tracker-miners)))
998 (synopsis "Simple music player for GNOME desktop")
999 (description "GNOME Music is the new GNOME music playing application that
1000 aims to combine an elegant and immersive browsing experience with simple
1001 and straightforward controls.")
1002 (home-page "https://wiki.gnome.org/Apps/Music")
1003 (license license:gpl2+)))
1004
1005 (define-public portablexdr
1006 (package
1007 (name "portablexdr")
1008 (version "4.9.1")
1009 (source
1010 (origin
1011 (method url-fetch)
1012 (uri
1013 (string-append "https://people.redhat.com/~rjones/" name "/files/"
1014 name "-" version ".tar.gz"))
1015 (sha256
1016 (base32
1017 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1018 (build-system gnu-build-system)
1019 (synopsis "External Data Representation Library")
1020 (description "PortableXDR is an implementation of External Data
1021 Representation (XDR) Library. It is a standard data serialization format, for
1022 uses such as computer network protocols. It allows data to be transferred
1023 between different kinds of computer systems.")
1024 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1025 (license
1026 (list
1027 license:gpl2+
1028 license:lgpl2.1+))))
1029
1030 (define-public tepl
1031 (package
1032 (name "tepl")
1033 (version "6.00.0")
1034 (source
1035 (origin
1036 (method url-fetch)
1037 (uri
1038 (string-append "mirror://gnome/sources/" name "/"
1039 (version-major+minor version) "/"
1040 name "-" version ".tar.xz"))
1041 (sha256
1042 (base32
1043 "0qvs7s86gqyyrzi0r5fbrj8zczlgv8xhdjswgbgc1afwjnl9fqx8"))))
1044 (build-system meson-build-system)
1045 (arguments
1046 `(#:glib-or-gtk? #t
1047 #:tests? #f)) ; FIX-ME: Requires gvfs
1048 (native-inputs
1049 `(("glib" ,glib "bin")
1050 ("gobject-introspection" ,gobject-introspection)
1051 ("pkg-config" ,pkg-config)))
1052 (inputs
1053 `(("amtk" ,amtk)
1054 ("glib" ,glib)
1055 ("gtk+" ,gtk+)
1056 ("gtksourceview" ,gtksourceview)
1057 ("libxml2" ,libxml2)
1058 ("uchardet" ,uchardet)))
1059 (synopsis "Text editor product line")
1060 (description "Tepl is a library that eases the development of
1061 GtkSourceView-based text editors and IDEs.")
1062 (home-page "https://wiki.gnome.org/Projects/Tepl")
1063 (license license:lgpl2.1+)))
1064
1065 (define-public tepl-5
1066 (package
1067 (inherit tepl)
1068 (name "tepl")
1069 (version "5.0.1")
1070 (source
1071 (origin
1072 (method url-fetch)
1073 (uri
1074 (string-append "mirror://gnome/sources/" name "/"
1075 (version-major+minor version) "/"
1076 name "-" version ".tar.xz"))
1077 (sha256
1078 (base32
1079 "0118j64s4fb350phbgda2rk6sv19rfgglxc7nf248llzc1klj9xi"))))))
1080
1081 (define-public krb5-auth-dialog
1082 (package
1083 (name "krb5-auth-dialog")
1084 (version "3.26.1")
1085 (source
1086 (origin
1087 (method url-fetch)
1088 (uri
1089 (string-append "mirror://gnome/sources/" name "/"
1090 (version-major+minor version) "/"
1091 name "-" version ".tar.xz"))
1092 (sha256
1093 (base32
1094 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1095 (build-system glib-or-gtk-build-system)
1096 (native-inputs
1097 `(("intltool" ,intltool)
1098 ("itstool" ,itstool)
1099 ("libxml2" ,libxml2)
1100 ("pkg-config" ,pkg-config)
1101 ("python-wrapper" ,python-wrapper)))
1102 (inputs
1103 `(("glib" ,glib)
1104 ("gtk+" ,gtk+)
1105 ("libnotify" ,libnotify)
1106 ("mit-krb5" ,mit-krb5)
1107 ("network-manager" ,network-manager)))
1108 (synopsis "Popup dialogs for Kerberos 5")
1109 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1110 tickets, and pops up a dialog when they are about to expire.")
1111 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1112 (license license:gpl2+)))
1113
1114 (define-public notification-daemon
1115 (package
1116 (name "notification-daemon")
1117 (version "3.20.0")
1118 (source
1119 (origin
1120 (method url-fetch)
1121 (uri
1122 (string-append "mirror://gnome/sources/" name "/"
1123 (version-major+minor version) "/"
1124 name "-" version ".tar.xz"))
1125 (sha256
1126 (base32
1127 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1128 (build-system glib-or-gtk-build-system)
1129 (native-inputs
1130 `(("intltool" ,intltool)
1131 ("pkg-config" ,pkg-config)))
1132 (inputs
1133 `(("glib" ,glib)
1134 ("gtk+" ,gtk+)
1135 ("x11" ,libx11)))
1136 (synopsis "Notification Daemon for GNOME Desktop")
1137 (description "Notification-Daemon is the server implementation of the
1138 freedesktop.org desktop notification specification.")
1139 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1140 (license license:gpl2+)))
1141
1142 (define-public mm-common
1143 (package
1144 (name "mm-common")
1145 (version "1.0.3")
1146 (source (origin
1147 (method url-fetch)
1148 (uri (string-append "mirror://gnome/sources/mm-common/"
1149 (version-major+minor version) "/"
1150 "mm-common-" version ".tar.xz"))
1151 (sha256
1152 (base32
1153 "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
1154 (build-system meson-build-system)
1155 (arguments
1156 `(#:phases
1157 (modify-phases %standard-phases
1158 (add-after 'unpack 'patch
1159 (lambda* (#:key inputs #:allow-other-keys)
1160 (substitute* "util/mm-common-prepare.in"
1161 (("ln") (search-input-file inputs "/bin/ln"))
1162 (("cp") (search-input-file inputs "/bin/cp"))
1163 (("sed") (search-input-file inputs "/bin/sed"))
1164 (("cat") (search-input-file inputs "/bin/cat"))))))))
1165 (native-inputs
1166 `(("coreutils" ,coreutils)
1167 ("gettext" ,gettext-minimal)
1168 ("pkg-config" ,pkg-config)
1169 ("sed" ,sed)))
1170 (inputs
1171 `(("python" ,python)))
1172 (synopsis "Module of GNOME C++ bindings")
1173 (description "The mm-common module provides the build infrastructure
1174 and utilities shared among the GNOME C++ binding libraries. Release
1175 archives of mm-common include the Doxygen tag file for the GNU C++
1176 Library reference documentation.")
1177 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1178 (license license:gpl2+)))
1179
1180 (define-public phodav
1181 (package
1182 (name "phodav")
1183 (version "2.5")
1184 (source (origin
1185 (method url-fetch)
1186 (uri (string-append "mirror://gnome/sources/" name "/"
1187 (version-major+minor version) "/"
1188 name "-" version ".tar.xz"))
1189 (sha256
1190 (base32
1191 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1192 (build-system meson-build-system)
1193 (arguments
1194 `(#:phases
1195 (modify-phases %standard-phases
1196 (add-after 'unpack 'fix-udev-rules-directory
1197 (lambda* (#:key outputs #:allow-other-keys)
1198 (let* ((out (assoc-ref outputs "out"))
1199 (rules (string-append out "/lib/udev/rules.d")))
1200 (substitute* "data/meson.build"
1201 (("udev\\.get_pkgconfig_variable\\('udevdir'\\)")
1202 (format #f "'~a'" rules))))))
1203 (add-before 'check 'start-virtual-dir-server
1204 ;; The same server when started by tests/virtual-dir returns an
1205 ;; unexpected status (4 instead of 200) and fails a test. It is
1206 ;; unclear why starting it manually here makes it pass.
1207 (lambda _
1208 (system "tests/virtual-dir-server &"))))))
1209 (native-inputs
1210 `(("docbook-xml" ,docbook-xml-4.3)
1211 ("gettext" ,gettext-minimal)
1212 ("glib:bin" ,glib "bin")
1213 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1214 ("gtk-doc" ,gtk-doc/stable)
1215 ("pkg-config" ,pkg-config)))
1216 (inputs
1217 `(("avahi" ,avahi)
1218 ("libgudev" ,libgudev)
1219 ("libsoup" ,libsoup)))
1220 (synopsis "WebDav server implementation using libsoup")
1221 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1222 but it is generic enough to be reused in other projects,
1223 in particular in the GNOME desktop.")
1224 (home-page "https://wiki.gnome.org/phodav")
1225 (license license:lgpl2.1+)))
1226
1227 (define-public gnome-color-manager
1228 (package
1229 (name "gnome-color-manager")
1230 (version "3.36.0")
1231 (source (origin
1232 (method url-fetch)
1233 (uri (string-append "mirror://gnome/sources/" name "/"
1234 (version-major+minor version) "/"
1235 name "-" version ".tar.xz"))
1236 (sha256
1237 (base32
1238 "0fxdng74d8hwhfx1nwl1i4jx9h9f6c2hkyc12f01kqbjcimrxnwx"))))
1239 (build-system meson-build-system)
1240 (arguments
1241 `(#:glib-or-gtk? #t
1242 #:phases
1243 (modify-phases %standard-phases
1244 (add-before
1245 'check 'pre-check
1246 (lambda _
1247 ;; Tests require a running X server.
1248 (system "Xvfb :1 &")
1249 (setenv "DISPLAY" ":1")
1250 #t)))))
1251 (native-inputs
1252 `(("desktop-file-utils" ,desktop-file-utils)
1253 ("gettext" ,gettext-minimal)
1254 ("glib:bin" ,glib "bin")
1255 ("gtk+:bin" ,gtk+ "bin")
1256 ("itstool" ,itstool)
1257 ("pkg-config" ,pkg-config)
1258 ("xorg-server" ,xorg-server-for-tests)))
1259 (inputs
1260 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1261 ("appstream-glib" ,appstream-glib)
1262 ("colord-gtk" ,colord-gtk)
1263 ("exiv2" ,exiv2)
1264 ("gnome-desktop" ,gnome-desktop)
1265 ("libcanberra" ,libcanberra)
1266 ("libexif" ,libexif)
1267 ("libtiff" ,libtiff)
1268 ("libxrandr" ,libxrandr)
1269 ("libxtst" ,libxtst)
1270 ("libxxf86vm" ,libxxf86vm)
1271 ("vte" ,vte)
1272 ("xorgproto" ,xorgproto)))
1273 (synopsis "Color profile manager for the GNOME desktop")
1274 (description "GNOME Color Manager is a session framework that makes
1275 it easy to manage, install and generate color profiles
1276 in the GNOME desktop.")
1277 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1278 (license license:gpl2+)))
1279
1280 (define-public gnome-online-miners
1281 (package
1282 (name "gnome-online-miners")
1283 (version "3.34.0")
1284 (source (origin
1285 (method url-fetch)
1286 (uri (string-append "mirror://gnome/sources/" name "/"
1287 (version-major+minor version) "/"
1288 name "-" version ".tar.xz"))
1289 (sha256
1290 (base32
1291 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))
1292 (patches
1293 (search-patches
1294 "gnome-online-miners-tracker-3.patch"))))
1295 (build-system glib-or-gtk-build-system)
1296 (arguments
1297 `(#:phases
1298 (modify-phases %standard-phases
1299 (add-after 'unpack 'fix-configure
1300 (lambda _
1301 (substitute* "configure.ac"
1302 (("AX_CHECK_ENABLE_DEBUG.*")
1303 ""))))
1304 (add-after 'fix-configure 'autoreconf
1305 (lambda _
1306 (invoke "autoreconf" "-vif"))))))
1307 (native-inputs
1308 `(("autoconf" ,autoconf)
1309 ("automake" ,automake)
1310 ("gettext" ,gettext-minimal)
1311 ("glib:bin" ,glib "bin")
1312 ("gobject-introspection" ,gobject-introspection)
1313 ("gtk+:bin" ,gtk+ "bin")
1314 ("libtool" ,libtool)
1315 ("pkg-config" ,pkg-config)))
1316 (inputs
1317 `(("gnome-online-accounts" ,gnome-online-accounts)
1318 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1319 ("grilo" ,grilo)
1320 ("libgdata" ,libgdata)
1321 ("libgfbgraph" ,gfbgraph)
1322 ("libzapojit" ,libzapojit)
1323 ("rest" ,rest)
1324 ("tracker" ,tracker)))
1325 (synopsis "Web Crawlers for GNOME")
1326 (description "GNOME Online Miners provides a set of crawlers that
1327 go through your online content and index them locally in Tracker.
1328 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1329 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1330 (license license:gpl2+)))
1331
1332 (define-public gssdp
1333 (package
1334 (name "gssdp")
1335 (version "1.2.3")
1336 (source (origin
1337 (method url-fetch)
1338 (uri (string-append "mirror://gnome/sources/" name "/"
1339 (version-major+minor version) "/"
1340 name "-" version ".tar.xz"))
1341 (sha256
1342 (base32
1343 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1344 (build-system meson-build-system)
1345 (native-inputs
1346 `(("gettext" ,gettext-minimal)
1347 ("glib:bin" ,glib "bin")
1348 ("gobject-introspection" ,gobject-introspection)
1349 ("gtk-doc" ,gtk-doc/stable)
1350 ("pkg-config" ,pkg-config)
1351 ("vala" ,vala)))
1352 (inputs
1353 `(("gtk+" ,gtk+)
1354 ("libsoup" ,libsoup)))
1355 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1356 Protocol} for GNOME")
1357 (description "This package provides a library to handle resource discovery
1358 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1359 a debugging tool, @command{gssdp-device-sniffer}.")
1360 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1361 (license license:lgpl2.0+)))
1362
1363 (define-public gupnp
1364 (package
1365 (name "gupnp")
1366 (version "1.2.4")
1367 (source (origin
1368 (method url-fetch)
1369 (uri (string-append "mirror://gnome/sources/" name "/"
1370 (version-major+minor version) "/"
1371 name "-" version ".tar.xz"))
1372 (sha256
1373 (base32
1374 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1375 (build-system meson-build-system)
1376 (arguments
1377 `(#:phases
1378 (modify-phases %standard-phases
1379 (add-before 'check 'pre-check
1380 (lambda _
1381 ;; Tests require a writable HOME.
1382 (setenv "HOME" (getcwd)))))))
1383 (native-inputs
1384 `(("gettext" ,gettext-minimal)
1385 ("glib:bin" ,glib "bin")
1386 ("gobject-introspection" ,gobject-introspection)
1387 ("gtk-doc" ,gtk-doc/stable)
1388 ("pkg-config" ,pkg-config)
1389 ("vala" ,vala)))
1390 (inputs
1391 `(("gssdp" ,gssdp)
1392 ("gtk+" ,gtk+)
1393 ("libsoup" ,libsoup)))
1394 (propagated-inputs
1395 `(;; For ‘org.gnome.system.proxy’.
1396 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
1397 (synopsis "PnP API for GNOME")
1398 (description "This package provides GUPnP, an object-oriented framework
1399 for creating UPnP devices and control points, written in C using
1400 @code{GObject} and @code{libsoup}.")
1401 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1402 (license license:lgpl2.0+)))
1403
1404 (define-public gupnp-dlna
1405 (package
1406 (name "gupnp-dlna")
1407 (version "0.10.5")
1408 (source (origin
1409 (method url-fetch)
1410 (uri (string-append "mirror://gnome/sources/" name "/"
1411 (version-major+minor version) "/"
1412 name "-" version ".tar.xz"))
1413 (sha256
1414 (base32
1415 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1416 (build-system gnu-build-system)
1417 (native-inputs
1418 `(("gettext" ,gettext-minimal)
1419 ("glib:bin" ,glib "bin")
1420 ("gobject-introspection" ,gobject-introspection)
1421 ("gtk-doc" ,gtk-doc/stable)
1422 ("libxml" ,libxml2)
1423 ("pkg-config" ,pkg-config)
1424 ("vala" ,vala)))
1425 (inputs
1426 `(("gstreamer" ,gstreamer)
1427 ("gupnp" ,gupnp)))
1428 (propagated-inputs
1429 `(("gst-plugins-base" ,gst-plugins-base)
1430 ("gst-plugins-good" ,gst-plugins-good)))
1431 (synopsis "GUPnP DLNA for GNOME")
1432 (description "This package provides a small utility library to
1433 support DLNA-related tasks such as media profile guessing, transcoding to a
1434 given profile, etc. DLNA is a subset of UPnP A/V.")
1435 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1436 (license license:lgpl2.0+)))
1437
1438 (define-public gupnp-av
1439 (package
1440 (name "gupnp-av")
1441 (version "0.12.11")
1442 (source (origin
1443 (method url-fetch)
1444 (uri (string-append "mirror://gnome/sources/" name "/"
1445 (version-major+minor version) "/"
1446 name "-" version ".tar.xz"))
1447 (sha256
1448 (base32
1449 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1450 (build-system gnu-build-system)
1451 (native-inputs
1452 `(("gettext" ,gettext-minimal)
1453 ("glib:bin" ,glib "bin")
1454 ("gobject-introspection" ,gobject-introspection)
1455 ("gtk-doc" ,gtk-doc/stable)
1456 ("libxml" ,libxml2)
1457 ("pkg-config" ,pkg-config)
1458 ("vala" ,vala)))
1459 (inputs
1460 `(("gtk+" ,gtk+)
1461 ("gupnp" ,gupnp)))
1462 (synopsis "GUPnP A/V for GNOME")
1463 (description "This package provides a small library for handling
1464 and implementation of UPnP A/V profiles.")
1465 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1466 (license license:lgpl2.0+)))
1467
1468 (define-public libmediaart
1469 (package
1470 (name "libmediaart")
1471 (version "1.9.5")
1472 (source (origin
1473 (method url-fetch)
1474 (uri (string-append "mirror://gnome/sources/" name "/"
1475 (version-major+minor version) "/"
1476 name "-" version ".tar.xz"))
1477 (sha256
1478 (base32
1479 "1mlw1qgj8nkd9ll6b6h54r1gfdy3zp8a8xqz7qfyfaj85jjgbph7"))))
1480 (build-system meson-build-system)
1481 (native-inputs
1482 `(("glib:bin" ,glib "bin")
1483 ("pkg-config" ,pkg-config)))
1484 (inputs
1485 `(("gdk-pixbuf" ,gdk-pixbuf)
1486 ("gettext" ,gettext-minimal)
1487 ("gobject-introspection" ,gobject-introspection)
1488 ("gtk+:doc" ,gtk+ "doc")
1489 ("vala" ,vala)))
1490 (synopsis "Media art library for the GNOME desktop")
1491 (description
1492 "The libmediaart library is the foundation for media art caching,
1493 extraction, and lookup for applications on the desktop.")
1494 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1495 (license license:lgpl2.1+)))
1496
1497 (define-public gnome-initial-setup
1498 (package
1499 (name "gnome-initial-setup")
1500 (version "40.4")
1501 (source (origin
1502 (method url-fetch)
1503 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1504 (version-major version)
1505 "/gnome-initial-setup-" version ".tar.xz"))
1506 (sha256
1507 (base32
1508 "06q3p4f8g9zr7a4mw3qr556mi0dg9qzrj8n46ybdz93fxs26aaj1"))))
1509 (build-system meson-build-system)
1510 (arguments
1511 '(#:configure-flags '(;; Enable camera support for user selfie.
1512 "-Dcheese=auto"
1513 "-Dsystemd=false")
1514 #:phases (modify-phases %standard-phases
1515 (add-after 'unpack 'set-gkbd-file-name
1516 (lambda* (#:key inputs #:allow-other-keys)
1517 ;; Allow the "Preview" button in the keyboard layout
1518 ;; selection dialog to display the layout.
1519 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1520 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1521 (("\"gkbd-keyboard-display")
1522 (string-append "\"" libgnomekbd
1523 "/bin/gkbd-keyboard-display")))
1524 #t))))))
1525 (native-inputs
1526 `(("gettext" ,gettext-minimal)
1527 ("glib:bin" ,glib "bin")
1528 ("gobject-introspection" ,gobject-introspection)
1529 ("gtk+:bin" ,gtk+ "bin")
1530 ("pkg-config" ,pkg-config)))
1531 (inputs
1532 `(("accountsservice" ,accountsservice)
1533 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1534 ("elogind" ,elogind)
1535 ("gdm" ,gdm)
1536 ("geoclue" ,geoclue)
1537 ("gnome-desktop" ,gnome-desktop)
1538 ("gnome-online-accounts" ,gnome-online-accounts)
1539 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1540 ("gstreamer" ,gstreamer)
1541 ("ibus" ,ibus)
1542 ("json-glib" ,json-glib)
1543 ("krb5" ,mit-krb5)
1544 ("libgweather" ,libgweather)
1545 ("libnma" ,libnma)
1546 ("libsecret" ,libsecret)
1547 ("network-manager" ,network-manager)
1548 ("packagekit" ,packagekit)
1549 ("polkit" ,polkit)
1550 ("pwquality" ,libpwquality)
1551 ("rest" ,rest)
1552 ("upower" ,upower)
1553 ("webkitgtk" ,webkitgtk)
1554 ("libgnomekbd" ,libgnomekbd)))
1555 (synopsis "Initial setup wizard for GNOME desktop")
1556 (description "This package provides a set-up wizard when a
1557 user logs into GNOME for the first time. It typically provides a
1558 tour of all gnome components and allows the user to set them up.")
1559 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1560 (license license:gpl2)))
1561
1562 (define-public gnome-user-share
1563 (package
1564 (name "gnome-user-share")
1565 (version "3.34.0")
1566 (source (origin
1567 (method url-fetch)
1568 (uri (string-append "mirror://gnome/sources/" name "/"
1569 (version-major+minor version) "/"
1570 name "-" version ".tar.xz"))
1571 (sha256
1572 (base32
1573 "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x"))))
1574 (build-system meson-build-system)
1575 (arguments
1576 `(#:glib-or-gtk? #t
1577 #:configure-flags
1578 `("-Dsystemduserunitdir=/tmp/empty"
1579 ;; Enable nautilus extension for file sharing.
1580 "-Dnautilus_extension=true")))
1581 (native-inputs
1582 `(("gettext" ,gettext-minimal)
1583 ("glib:bin" ,glib "bin")
1584 ("gobject-introspection" ,gobject-introspection)
1585 ("gtk+:bin" ,gtk+ "bin")
1586 ("pkg-config" ,pkg-config)
1587 ("yelp-tools" ,yelp-tools)))
1588 (inputs
1589 `(("glib" ,glib)
1590 ("gnome-bluetooth" ,gnome-bluetooth)
1591 ("gtk+" ,gtk+)
1592 ("libcanberra" ,libcanberra)
1593 ("libnotify" ,libnotify)
1594 ("nautilus" ,nautilus))) ; For nautilus extension.
1595 (synopsis "File sharing for GNOME desktop")
1596 (description "GNOME User Share is a small package that binds together
1597 various free software projects to bring easy to use user-level file
1598 sharing to the masses.")
1599 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1600 (license license:gpl2+)))
1601
1602 (define-public sushi
1603 (package
1604 (name "sushi")
1605 (version "3.38.1")
1606 (source (origin
1607 (method url-fetch)
1608 (uri (string-append "mirror://gnome/sources/" name "/"
1609 (version-major+minor version) "/"
1610 name "-" version ".tar.xz"))
1611 (sha256
1612 (base32
1613 "1sc8i0vrw6bn43rklnwp2fl1gq0r0xfd3bszcqxd0a2mh46d3rpk"))))
1614 (build-system meson-build-system)
1615 (arguments
1616 `(#:glib-or-gtk? #t
1617 #:phases
1618 (modify-phases %standard-phases
1619 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1620 (lambda* (#:key outputs #:allow-other-keys)
1621 (let ((prog (string-append (assoc-ref outputs "out")
1622 "/bin/sushi")))
1623 ;; Put existing typelibs before sushi's deps, so as to
1624 ;; correctly infer gdk-pixbuf.
1625 (wrap-program prog
1626 `("GI_TYPELIB_PATH" suffix
1627 (,(getenv "GI_TYPELIB_PATH"))))))))))
1628 (native-inputs
1629 `(("glib:bin" ,glib "bin")
1630 ("gettext" ,gettext-minimal)
1631 ("gobject-introspection" ,gobject-introspection)
1632 ("pkg-config" ,pkg-config)))
1633 (inputs
1634 `(("clutter" ,clutter)
1635 ("clutter-gst" ,clutter-gst)
1636 ("clutter-gtk" ,clutter-gtk)
1637 ("evince" ,evince) ; For file previewing.
1638 ("freetype" ,freetype)
1639 ("gdk-pixbuf" ,gdk-pixbuf)
1640 ("gjs" ,gjs)
1641 ("gst-plugins-base" ,gst-plugins-base)
1642 ("gstreamer" ,gstreamer)
1643 ("gtksourceview" ,gtksourceview)
1644 ("harfbuzz" ,harfbuzz)
1645 ("libepoxy" ,libepoxy)
1646 ("libmusicbrainz" ,libmusicbrainz)
1647 ("libxml2" ,libxml2)
1648 ("neon" ,neon)
1649 ("webkitgtk" ,webkitgtk)))
1650 (synopsis "File previewer for the GNOME desktop")
1651 (description "Sushi is a DBus-activated service that allows applications
1652 to preview files on the GNOME desktop.")
1653 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1654 (license license:gpl2+)))
1655
1656 (define-public rygel
1657 (package
1658 (name "rygel")
1659 (version "0.40.1")
1660 (source (origin
1661 (method url-fetch)
1662 (uri (string-append "mirror://gnome/sources/" name "/"
1663 (version-major+minor version) "/"
1664 name "-" version ".tar.xz"))
1665 (sha256
1666 (base32
1667 "0bd3d2swa8lq47b9r04x8xwdr9nhjnrwqi6scygd134wb5vxfh22"))))
1668 (build-system meson-build-system)
1669 (arguments
1670 ;; Disable the tracker plugin.
1671 '(#:configure-flags
1672 (list "-Dplugins=external,gst-launch,lms,media-export,
1673 mpris,playbin,ruih,tracker3")))
1674 (native-inputs
1675 `(("gettext" ,gettext-minimal)
1676 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
1677 ("gobject-introspection" ,gobject-introspection)
1678 ("gtk-doc" ,gtk-doc/stable)
1679 ("pkg-config" ,pkg-config)
1680 ("vala" ,vala)
1681 ("docbook-xml" ,docbook-xml)
1682 ("dockbook-xsl" ,docbook-xsl)
1683 ("xsltproc" ,libxslt)))
1684 (inputs
1685 `(("gdk-pixbuf" ,gdk-pixbuf)
1686 ("gssdp" ,gssdp)
1687 ("gstreamer" ,gstreamer)
1688 ("gst-plugins-base" ,gst-plugins-base)
1689 ("gst-editing-services" ,gst-editing-services)
1690 ("gtk+" ,gtk+)
1691 ("gupnp" ,gupnp)
1692 ("gupnp-av" ,gupnp-av)
1693 ("gupnp-dlna" ,gupnp-dlna)
1694 ("json-glib" ,json-glib)
1695 ("libgee" ,libgee)
1696 ("libmediaart" ,libmediaart)
1697 ("libsoup" ,libsoup)
1698 ("libxslt" ,libxslt)
1699 ("libunistring" ,libunistring)
1700 ("tracker" ,tracker)))
1701 (synopsis "Share audio, video, and pictures with other devices")
1702 (description
1703 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1704 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1705 pictures, and to control a media player on your home network.
1706
1707 Rygel achieves interoperability with other devices by trying to conform to the
1708 strict requirements of DLNA and by converting media on-the-fly to formats that
1709 client devices can handle.")
1710 (home-page "https://wiki.gnome.org/Projects/Rygel")
1711 (license (list
1712 ;; For logo (data/icons/*).
1713 license:cc-by-sa3.0
1714 ;; For all others.
1715 license:lgpl2.1+))))
1716
1717 (define-public libnma
1718 (package
1719 (name "libnma")
1720 (version "1.8.28")
1721 (source (origin
1722 (method url-fetch)
1723 (uri (string-append "mirror://gnome/sources/" name "/"
1724 (version-major+minor version) "/"
1725 name "-" version ".tar.xz"))
1726 (sha256
1727 (base32
1728 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1729 (build-system meson-build-system)
1730 (arguments
1731 `(#:phases
1732 (modify-phases %standard-phases
1733 (add-after 'unpack 'patch-docbook-xml
1734 (lambda* (#:key inputs #:allow-other-keys)
1735 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1736 "/xml/dtd/docbook")))
1737 (substitute* "libnma-docs.xml"
1738 (("http://.*/docbookx\\.dtd")
1739 (string-append xmldoc "/docbookx.dtd")))
1740 #t))))))
1741 (native-inputs
1742 `(("docbook-xml" ,docbook-xml-4.3)
1743 ("gettext" ,gettext-minimal)
1744 ("glib:bin" ,glib "bin")
1745 ("gtk-doc" ,gtk-doc/stable)
1746 ("gobject-introspection" ,gobject-introspection)
1747 ("pkg-config" ,pkg-config)
1748 ("vala" ,vala)))
1749 (inputs
1750 `(("gcr" ,gcr)
1751 ("gtk+" ,gtk+)
1752 ("iso-codes" ,iso-codes)
1753 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1754 ("network-manager" ,network-manager)))
1755 (synopsis "Network Manager's applet library")
1756 (description "Libnma is an applet library for Network Manager. It was
1757 initially part of network-manager-applet and has now become a separate
1758 project.")
1759 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1760 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1761 ;; "LGPL-2.1+".
1762 (license license:gpl2+)))
1763
1764 (define-public gnome-menus
1765 (package
1766 (name "gnome-menus")
1767 (version "3.36.0")
1768 (source (origin
1769 (method url-fetch)
1770 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1771 (version-major+minor version) "/"
1772 name "-" version ".tar.xz"))
1773 (sha256
1774 (base32
1775 "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r"))))
1776 (build-system gnu-build-system)
1777 (native-inputs
1778 `(("gettext" ,gettext-minimal)
1779 ("glib" ,glib)
1780 ("pkg-config" ,pkg-config)))
1781 (synopsis "Menu support for GNOME desktop")
1782 (description "GNOME Menus contains the libgnome-menu library, the layout
1783 configuration files for the GNOME menu, as well as a simple menu editor.")
1784 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1785 (license license:lgpl2.0+)))
1786
1787 (define-public deja-dup
1788 (package
1789 (name "deja-dup")
1790 (version "40.6")
1791 (source (origin
1792 (method url-fetch)
1793 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1794 version "/deja-dup-" version ".tar.bz2"))
1795 (sha256
1796 (base32
1797 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1798 (build-system meson-build-system)
1799 (arguments
1800 `(#:glib-or-gtk? #t
1801 #:configure-flags
1802 (list
1803 ;; Otherwise, the RUNPATH will lack the final path component.
1804 (string-append "-Dc_link_args=-Wl,-rpath="
1805 (assoc-ref %outputs "out") "/lib/deja-dup"))
1806 #:phases
1807 (modify-phases %standard-phases
1808 (add-after 'unpack 'patch-paths
1809 (lambda* (#:key inputs #:allow-other-keys)
1810 (let ((python (assoc-ref inputs "python")))
1811 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1812 "libdeja/tests/scripts/instance-error.test")
1813 (("/bin/rm")
1814 (which "rm")))
1815 (substitute* "libdeja/tests/runner.vala"
1816 (("/bin/sh")
1817 (which "sh")))
1818 (substitute* "libdeja/tests/scripts/instance-error.test"
1819 (("`which python3`")
1820 (string-append python "/bin/python3"))))))
1821 (add-after 'unpack 'patch-libgpg-error
1822 (lambda* (#:key inputs #:allow-other-keys)
1823 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1824 (substitute* "meson.build"
1825 (("(gpgerror_libs = ).*" _ var)
1826 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1827 #t))
1828 (add-after 'unpack 'skip-gtk-update-icon-cache
1829 ;; Don't create 'icon-theme.cache'.
1830 (lambda _
1831 (substitute* "data/post-install.sh"
1832 (("gtk-update-icon-cache") "true"))
1833 #t))
1834 (add-after 'install 'wrap-program
1835 (lambda* (#:key inputs outputs #:allow-other-keys)
1836 ;; Add duplicity to the search path
1837 (wrap-program (string-append (assoc-ref outputs "out")
1838 "/bin/deja-dup")
1839 `("PATH" ":" prefix
1840 (,(string-append (assoc-ref inputs "duplicity") "/bin")))))))))
1841 (inputs
1842 `(("bash-minimal" ,bash-minimal)
1843 ("duplicity" ,duplicity)
1844 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1845 ("gtk+" ,gtk+)
1846 ("json-glib" ,json-glib)
1847 ("libgpg-error" ,libgpg-error)
1848 ("libnotify" ,libnotify)
1849 ("libsecret" ,libsecret)
1850 ("libsoup" ,libsoup)
1851 ("packagekit" ,packagekit)
1852 ("python" ,python)
1853 ("python-pygobject" ,python-pygobject)))
1854 (native-inputs
1855 `(("appstream-glib" ,appstream-glib)
1856 ("desktop-file-utils" ,desktop-file-utils)
1857 ("gettext" ,gettext-minimal)
1858 ("glib" ,glib "bin") ; for glib-compile-schemas.
1859 ("gobject-introspection" ,gobject-introspection)
1860 ("itstool" ,itstool)
1861 ("pkg-config" ,pkg-config)
1862 ("vala" ,vala)))
1863 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1864 (synopsis "Simple backup tool, for regular encrypted backups")
1865 (description
1866 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1867 uses duplicity as the backend, which supports incremental backups and storage
1868 either on a local, or remote machine via a number of methods.")
1869 (license license:gpl3+)))
1870
1871 (define-public gnome-commander
1872 (package
1873 (name "gnome-commander")
1874 (version "1.12.2")
1875 (source
1876 (origin
1877 (method url-fetch)
1878 (uri (string-append "mirror://gnome/sources/" name "/"
1879 (version-major+minor version) "/"
1880 "gnome-commander-" version ".tar.xz"))
1881 (sha256
1882 (base32 "0f7l2pkyh3r1qk4hhavl7387l3bq5my3snpdppiavcpnji28dpa5"))))
1883 (build-system glib-or-gtk-build-system)
1884 (native-inputs
1885 `(("desktop-file-utils" ,desktop-file-utils)
1886 ("gettext" ,gettext-minimal)
1887 ("glib:bin" ,glib "bin")
1888 ("gobject-introspection" ,gobject-introspection)
1889 ("googletest" ,googletest)
1890 ("intltool" ,intltool)
1891 ("itstool" ,itstool)
1892 ("libtool" ,libtool)
1893 ("pkg-config" ,pkg-config)))
1894 (inputs
1895 `(("gconf" ,gconf)
1896 ("gnome-vfs" ,gnome-vfs)
1897 ("gtk+" ,gtk+-2)
1898 ("libxml2" ,libxml2)))
1899 (home-page "https://gcmd.github.io/")
1900 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1901 (description
1902 "GNOME Commander is a two-pane graphical file manager using GNOME
1903 libraries. It aims to fulfill the demands of more advanced users who
1904 like to focus on file management, their work through special applications
1905 and running smart commands.")
1906 (license license:gpl2+)))
1907
1908 (define-public gnome-user-docs
1909 (package
1910 (name "gnome-user-docs")
1911 (version "40.5")
1912 (source
1913 (origin
1914 (method url-fetch)
1915 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1916 (version-major version)
1917 "/gnome-user-docs-" version ".tar.xz"))
1918 (sha256
1919 (base32 "0p6ysdqlfc7vvzsrcanl9bhsc7666sv42xxzpbgsf5j55z3yrkpr"))))
1920 (build-system gnu-build-system)
1921 (native-inputs
1922 `(("gettext" ,gettext-minimal)
1923 ("itstool" ,itstool)
1924 ("pkg-config" ,pkg-config)
1925 ("xmllint" ,libxml2)))
1926 (synopsis "User documentation for the GNOME desktop")
1927 (description
1928 "The GNOME User Documentation explains how to use the GNOME desktop and its
1929 components. It covers usage and setup of the core GNOME programs by end-users
1930 and system administrators.")
1931 (home-page "https://live.gnome.org/DocumentationProject")
1932 (license license:cc-by3.0)))
1933
1934 (define-public dia
1935 ;; This version from GNOME's repository includes fixes for compiling with
1936 ;; recent versions of the build tools. The latest activity on the
1937 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1938 ;; fixes since.
1939 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1940 (revision "2"))
1941 (package
1942 (name "dia")
1943 (version (git-version "0.97.3" revision commit))
1944 (source (origin
1945 (method git-fetch)
1946 (uri (git-reference
1947 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1948 (commit commit)))
1949 (file-name (git-file-name name version))
1950 (sha256
1951 (base32
1952 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1953 (build-system meson-build-system)
1954 (inputs
1955 `(("graphene" ,graphene)
1956 ("gtk+" ,gtk+-2)
1957 ("libxml2" ,libxml2)
1958 ("libxslt" ,libxslt)
1959 ("poppler" ,poppler)
1960 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1961 ;; ERROR: Unknown method "dependency" in object.
1962 ("python-2" ,python-2)))
1963 (native-inputs
1964 `(("appstream-glib" ,appstream-glib)
1965 ("docbook-xsl" ,docbook-xsl)
1966 ("glib" ,glib "bin")
1967 ("intltool" ,intltool)
1968 ("pkg-config" ,pkg-config)))
1969 (home-page "https://wiki.gnome.org/Apps/Dia")
1970 (synopsis "Diagram creation for GNOME")
1971 (description "Dia can be used to draw different types of diagrams, and
1972 includes support for UML static structure diagrams (class diagrams), entity
1973 relationship modeling, and network diagrams. The program supports various file
1974 formats like PNG, SVG, PDF and EPS.")
1975 (license license:gpl2+))))
1976
1977 (define-public libgdata
1978 (package
1979 (name "libgdata")
1980 (version "0.18.1")
1981 (source (origin
1982 (method url-fetch)
1983 (uri (string-append "mirror://gnome/sources/" name "/"
1984 (version-major+minor version) "/"
1985 name "-" version ".tar.xz"))
1986 (sha256
1987 (base32
1988 "1iq4d1qy0vkmy29xvr13dgz4pxvn5v3yi2swryld0ajinvp951fx"))))
1989 (build-system meson-build-system)
1990 (arguments
1991 '(#:phases
1992 (modify-phases %standard-phases
1993 (add-before 'check 'set-home-for-tests
1994 (lambda _
1995 (setenv "HOME" "/tmp"))))))
1996 (native-inputs
1997 `(("glib:bin" ,glib "bin")
1998 ("gobject-introspection" ,gobject-introspection)
1999 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2000 ("intltool" ,intltool)
2001 ("pkg-config" ,pkg-config)
2002 ("uhttpmock" ,uhttpmock)))
2003 (inputs
2004 `(("cyrus-sasl" ,cyrus-sasl)
2005 ("glib-networking" ,glib-networking)
2006 ("vala" ,vala)))
2007 (propagated-inputs
2008 `(("gcr" ,gcr)
2009 ("glib" ,glib)
2010 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
2011 ("json-glib" ,json-glib)
2012 ("liboauth" ,liboauth)
2013 ("libsoup" ,libsoup)
2014 ("libxml2" ,libxml2)))
2015 (home-page "https://wiki.gnome.org/Projects/libgdata")
2016 (synopsis "Library for accessing online service APIs")
2017 (description
2018 "libgdata is a GLib-based library for accessing online service APIs using
2019 the GData protocol — most notably, Google's services. It provides APIs to
2020 access the common Google services, and has full asynchronous support.")
2021 (license license:lgpl2.1+)))
2022
2023 (define-public libgxps
2024 (package
2025 (name "libgxps")
2026 (version "0.3.2")
2027 (source (origin
2028 (method url-fetch)
2029 (uri (string-append "mirror://gnome/sources/" name "/"
2030 (version-major+minor version) "/"
2031 name "-" version ".tar.xz"))
2032 (sha256
2033 (base32
2034 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
2035 (build-system meson-build-system)
2036 (native-inputs
2037 `(("gobject-introspection" ,gobject-introspection)
2038 ("pkg-config" ,pkg-config)))
2039 (inputs
2040 `(("gtk+" ,gtk+)
2041 ("libjpeg" ,libjpeg-turbo)
2042 ("lcms" ,lcms)
2043 ("libtiff" ,libtiff)))
2044 (propagated-inputs
2045 ;; In Requires of libgxps.pc.
2046 `(("cairo" ,cairo)
2047 ("glib" ,glib)
2048 ("libarchive" ,libarchive)))
2049 (home-page "https://wiki.gnome.org/Projects/libgxps")
2050 (synopsis "GObject-based library for handling and rendering XPS documents")
2051 (description
2052 "libgxps is a GObject-based library for handling and rendering XPS
2053 documents. This package also contains binaries that can convert XPS documents
2054 to other formats.")
2055 (license license:lgpl2.1+)))
2056
2057 (define-public gnome-characters
2058 (package
2059 (name "gnome-characters")
2060 (version "40.0")
2061 (source
2062 (origin
2063 (method url-fetch)
2064 (uri (string-append "mirror://gnome/sources/"
2065 "gnome-characters/" (version-major version)
2066 "/gnome-characters-" version ".tar.xz"))
2067 (sha256
2068 (base32
2069 "0z2xa4w921bzpzj6gv88pvbrijcnnwni6jxynwz0ybaravyzaqha"))))
2070 (build-system meson-build-system)
2071 (arguments
2072 `(#:glib-or-gtk? #t
2073 #:phases (modify-phases %standard-phases
2074 (add-after 'install 'wrap
2075 (lambda* (#:key outputs #:allow-other-keys)
2076 ;; GNOME Characters needs Typelib files from GTK and
2077 ;; gnome-desktop.
2078 (wrap-program (string-append (assoc-ref outputs "out")
2079 "/bin/gnome-characters")
2080 `("GI_TYPELIB_PATH" ":" prefix
2081 (,(getenv "GI_TYPELIB_PATH")))))))))
2082 (native-inputs
2083 `(("gettext" ,gettext-minimal)
2084 ("glib:bin" ,glib "bin")
2085 ("gtk+:bin" ,gtk+ "bin")
2086 ("pkg-config" ,pkg-config)
2087 ("python" ,python-minimal)))
2088 (inputs
2089 `(("gjs" ,gjs)
2090 ("gtk+" ,gtk+)
2091 ("libhandy" ,libhandy)
2092 ("libunistring" ,libunistring)
2093 ("gnome-desktop" ,gnome-desktop)))
2094 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2095 (synopsis "Find and insert unusual characters")
2096 (description "Characters is a simple utility application to find
2097 and insert unusual characters. It allows you to quickly find the
2098 character you are looking for by searching for keywords.")
2099 (license license:bsd-3)))
2100
2101 (define-public gnome-common
2102 (package
2103 (name "gnome-common")
2104 (version "3.18.0")
2105 (source
2106 (origin
2107 (method url-fetch)
2108 (uri (string-append "mirror://gnome/sources/" name "/"
2109 (version-major+minor version) "/"
2110 name "-" version ".tar.xz"))
2111 (sha256
2112 (base32
2113 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2114 (build-system gnu-build-system)
2115 (home-page "https://www.gnome.org/")
2116 (synopsis "Bootstrap GNOME modules built from Git")
2117 (description "gnome-common contains various files needed to bootstrap
2118 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2119 can be used to configure a source directory checked out from Git and some
2120 commonly used macros.")
2121 (license license:gpl2+)))
2122
2123 (define-public gnome-contacts
2124 (package
2125 (name "gnome-contacts")
2126 (version "40.0")
2127 (source (origin
2128 (method url-fetch)
2129 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2130 (version-major version) "/"
2131 name "-" version ".tar.xz"))
2132 (sha256
2133 (base32
2134 "0w2g5xhw65adzvwzakrj5kaim4sw1w7s8qqwm3nm6inq50znzpn9"))))
2135 (build-system meson-build-system)
2136 (arguments
2137 `(#:configure-flags '("-Dcheese=disabled")
2138 #:phases
2139 (modify-phases %standard-phases
2140 (add-after 'unpack 'generate-vapis
2141 (lambda* (#:key inputs #:allow-other-keys)
2142 ;; To generate goa's missing .vapi file
2143 (define goa
2144 (assoc-ref inputs "gnome-online-accounts:lib"))
2145
2146 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
2147 "--library=goa-1.0"
2148 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))))
2149 (add-after 'unpack 'skip-gtk-update-icon-cache
2150 ;; Don't create 'icon-theme.cache'.
2151 (lambda _
2152 (substitute* "build-aux/meson_post_install.py"
2153 (("gtk-update-icon-cache") "true")))))))
2154 (native-inputs
2155 `(("docbook-xml" ,docbook-xml-4.2)
2156 ("docbook-xsl" ,docbook-xsl)
2157 ("glib:bin" ,glib "bin")
2158 ("pkg-config" ,pkg-config)))
2159 (inputs
2160 `(("docbook-xml" ,docbook-xml)
2161 ("dockbook-xsl" ,docbook-xsl)
2162 ("evolution-data-server" ,evolution-data-server)
2163 ("gettext" ,gettext-minimal)
2164 ("gnome-desktop" ,gnome-desktop)
2165 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
2166 ("gobject-introspection" ,gobject-introspection)
2167 ("gst-plugins-base" ,gst-plugins-base)
2168 ("gtk+" ,gtk+)
2169 ("libgee" ,libgee)
2170 ("libhandy" ,libhandy)
2171 ("libxslt" ,libxslt)
2172 ("telepathy-glib" ,telepathy-glib)
2173 ("vala" ,vala)))
2174 (propagated-inputs
2175 `(("folks" ,folks)
2176 ("telepathy-mission-control" ,telepathy-mission-control)))
2177 (synopsis "GNOME's integrated address book")
2178 (description
2179 "GNOME Contacts organizes your contact information from online and
2180 offline sources, providing a centralized place for managing your contacts.")
2181 (home-page "https://wiki.gnome.org/Apps/Contacts")
2182 (license license:gpl2+)))
2183
2184 (define-public gnome-desktop
2185 (package
2186 (name "gnome-desktop")
2187 (version "40.4")
2188 (source
2189 (origin
2190 (method url-fetch)
2191 (uri (string-append "mirror://gnome/sources/" name "/"
2192 (version-major version) "/"
2193 name "-" version ".tar.xz"))
2194 (sha256
2195 (base32
2196 "1vs5knn2yj6a449p9bn5w5407i1yvxfxg8xv844qgl70hpsrdbl8"))))
2197 (build-system meson-build-system)
2198 (arguments
2199 '(#:phases
2200 (modify-phases %standard-phases
2201 (add-before 'configure 'patch-path
2202 (lambda* (#:key inputs #:allow-other-keys)
2203 (let ((libc (assoc-ref inputs "libc")))
2204 (substitute* "libgnome-desktop/gnome-languages.c"
2205 (("\"locale\"")
2206 (string-append "\"" libc "/bin/locale\"")))
2207 #t)))
2208 (add-before 'configure 'patch-bubblewrap
2209 (lambda* (#:key inputs #:allow-other-keys)
2210 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2211 (("\"bwrap\",")
2212 (string-append "\"" (which "bwrap") "\","))
2213 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2214 (string-append "\"--ro-bind\", \""
2215 (%store-directory)
2216 "\", \""
2217 (%store-directory)
2218 "\","))
2219 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2220 #t))
2221 (add-before 'check 'pre-check
2222 (lambda* (#:key inputs #:allow-other-keys)
2223 ;; Tests require a running X server and locales.
2224 (system "Xvfb :1 &")
2225 (setenv "DISPLAY" ":1")
2226 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
2227 (setenv "XDG_CONFIG_HOME" "/tmp")
2228 (setenv "GUIX_LOCPATH"
2229 (search-input-directory inputs
2230 "lib/locale")))))))
2231 (native-inputs
2232 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2233 ("glibc-locales" ,glibc-locales) ; for tests
2234 ("gobject-introspection" ,gobject-introspection)
2235 ("itstool" ,itstool)
2236 ("intltool" ,intltool)
2237 ("pkg-config" ,pkg-config)
2238 ("xmllint" ,libxml2)
2239 ("xorg-server" ,xorg-server-for-tests)))
2240 (propagated-inputs
2241 ;; Required by gnome-desktop-3.0.pc.
2242 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2243 ("gtk+" ,gtk+)
2244 ("iso-codes" ,iso-codes)
2245 ("libseccomp" ,libseccomp)
2246 ("libx11" ,libx11)
2247 ("xkeyboard-config" ,xkeyboard-config)))
2248 (inputs
2249 `(("gdk-pixbuf" ,gdk-pixbuf)
2250 ("glib" ,glib)
2251 ("bubblewrap" ,bubblewrap)
2252 ("libxext" ,libxext)
2253 ("libxkbfile" ,libxkbfile)
2254 ("libxrandr" ,libxrandr)))
2255 (home-page "https://www.gnome.org/")
2256 (synopsis
2257 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2258 (description
2259 "The libgnome-desktop library provides API shared by several applications
2260 on the desktop, but that cannot live in the platform for various reasons.
2261 There is no API or ABI guarantee, although we are doing our best to provide
2262 stability. Documentation for the API is available with gtk-doc.
2263
2264 The gnome-about program helps find which version of GNOME is installed.")
2265 ; Some bits under the LGPL.
2266 (license license:gpl2+)))
2267
2268 (define-public gnome-doc-utils
2269 (package
2270 (name "gnome-doc-utils")
2271 (version "0.20.10")
2272 (source
2273 (origin
2274 (method url-fetch)
2275 (uri (string-append "mirror://gnome/sources/" name "/"
2276 (version-major+minor version) "/"
2277 name "-" version ".tar.xz"))
2278 (sha256
2279 (base32
2280 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2281 (build-system gnu-build-system)
2282 (native-inputs
2283 `(("intltool" ,intltool)
2284 ("docbook-xml" ,docbook-xml-4.4)
2285 ("python2-libxml2" ,python2-libxml2)
2286 ("libxml2" ,libxml2)
2287 ("libxslt" ,libxslt)
2288 ("pkg-config" ,pkg-config)
2289 ("python-2" ,python-2)))
2290 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2291 (synopsis
2292 "Documentation utilities for the Gnome project")
2293 (description
2294 "Gnome-doc-utils is a collection of documentation utilities for the
2295 Gnome project. It includes xml2po tool which makes it easier to translate
2296 and keep up to date translations of documentation.")
2297 (license license:gpl2+))) ; xslt under lgpl
2298
2299 (define-public gnome-disk-utility
2300 (package
2301 (name "gnome-disk-utility")
2302 (version "40.2")
2303 (source (origin
2304 (method url-fetch)
2305 (uri (string-append "mirror://gnome/sources/" name "/"
2306 (version-major version) "/"
2307 name "-" version ".tar.xz"))
2308 (sha256
2309 (base32
2310 "1rr1ypb89p51b6428yqvczmpmylwjfnhnkgx78hzm3vxm3m15lff"))))
2311 (build-system meson-build-system)
2312 (arguments
2313 '(#:configure-flags '("-Dlogind=libelogind")
2314 #:phases
2315 (modify-phases %standard-phases
2316 (add-after 'unpack 'skip-gtk-update-icon-cache
2317 ;; Don't create 'icon-theme.cache'.
2318 (lambda _
2319 (substitute* "meson_post_install.py"
2320 (("gtk-update-icon-cache") "true"))
2321 #t)))))
2322 (native-inputs
2323 `(("glib:bin" ,glib "bin")
2324 ("intltool" ,intltool)
2325 ("pkg-config" ,pkg-config)
2326 ("docbook-xml" ,docbook-xml)
2327 ("docbook-xsl" ,docbook-xsl)
2328 ("libxml2" ,libxml2)
2329 ("libxslt" ,libxslt)))
2330 (inputs
2331 `(("elogind" ,elogind)
2332 ("glib" ,glib)
2333 ("appstream-glib" ,appstream-glib)
2334 ("gnome-settings-daemon" ,gnome-settings-daemon)
2335 ("gtk+" ,gtk+)
2336 ("libcanberra" ,libcanberra)
2337 ("libdvdread" ,libdvdread)
2338 ("libhandy" ,libhandy)
2339 ("libnotify" ,libnotify)
2340 ("libpwquality" ,libpwquality)
2341 ("libsecret" ,libsecret)
2342 ("udisks" ,udisks)))
2343 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2344 (synopsis "Disk management utility for GNOME")
2345 (description "Disk management utility for GNOME.")
2346 (license license:gpl2+)))
2347
2348 (define-public gnome-font-viewer
2349 (package
2350 (name "gnome-font-viewer")
2351 (version "40.0")
2352 (source (origin
2353 (method url-fetch)
2354 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2355 (version-major version)
2356 "/gnome-font-viewer-" version ".tar.xz"))
2357 (sha256
2358 (base32
2359 "0hpyi0sz3gcqqs9lkwyk8b6hr39m3n27432x98kxr436jj37dk6j"))))
2360 (build-system meson-build-system)
2361 (arguments
2362 '(#:phases
2363 (modify-phases %standard-phases
2364 (add-after 'unpack 'patch-post-install-script
2365 (lambda _
2366 (substitute* "meson-postinstall.sh"
2367 (("update-desktop-database") (which "true")))
2368 #t))
2369 (add-after 'install 'patch-thumbnailer
2370 (lambda* (#:key outputs #:allow-other-keys)
2371 (let ((out (assoc-ref outputs "out")))
2372 (substitute*
2373 (string-append
2374 out
2375 "/share/thumbnailers/gnome-font-viewer.thumbnailer")
2376 (("gnome-thumbnail-font")
2377 (string-append out "/bin/gnome-thumbnail-font"))))
2378 #t)))))
2379 (native-inputs
2380 `(("gettext" ,gettext-minimal)
2381 ("glib:bin" ,glib "bin")
2382 ("pkg-config" ,pkg-config)))
2383 (inputs
2384 `(("glib" ,glib)
2385 ("gnome-desktop" ,gnome-desktop)
2386 ("gtk+" ,gtk+)
2387 ("libhandy" ,libhandy)
2388 ("libxml2" ,libxml2)))
2389 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2390 (synopsis "GNOME Fonts")
2391 (description "Application to show you the fonts installed on your computer
2392 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2393 the font would look under various sizes.")
2394 (license license:gpl2+)))
2395
2396 (define-public gcr
2397 (package
2398 (name "gcr")
2399 (version "3.34.0")
2400 (source (origin
2401 (method url-fetch)
2402 (uri (string-append "mirror://gnome/sources/" name "/"
2403 (version-major+minor version) "/"
2404 name "-" version ".tar.xz"))
2405 (sha256
2406 (base32
2407 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2408 (build-system gnu-build-system)
2409 (arguments
2410 '(#:phases
2411 (modify-phases %standard-phases
2412 ;; These fail because /var/lib/dbus/machine-id is not present in the
2413 ;; build environment.
2414 (add-after 'unpack 'disable-failing-tests
2415 (lambda _
2416 (substitute* "Makefile.in"
2417 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2418 ""))
2419 #t))
2420 (add-before 'check 'pre-check
2421 (lambda _
2422 ;; Some tests expect to write to $HOME.
2423 (setenv "HOME" "/tmp")
2424 #t)))))
2425 (inputs
2426 `(("dbus" ,dbus)
2427 ("gnupg" ,gnupg) ;called as a child process during tests
2428 ("libgcrypt" ,libgcrypt)))
2429 (native-inputs
2430 `(("python" ,python-wrapper) ;for tests
2431 ("pkg-config" ,pkg-config)
2432 ("gettext" ,gettext-minimal)
2433 ("glib" ,glib "bin")
2434 ("gobject-introspection" ,gobject-introspection)
2435 ("libxml2" ,libxml2)
2436 ("vala" ,vala)
2437 ("xsltproc" ,libxslt)))
2438 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2439 (propagated-inputs
2440 `(("p11-kit" ,p11-kit)
2441 ("glib" ,glib)
2442 ("gtk+" ,gtk+)))
2443 (home-page "https://www.gnome.org")
2444 (synopsis "Libraries for displaying certificates and accessing key stores")
2445 (description
2446 "The GCR package contains libraries used for displaying certificates and
2447 accessing key stores. It also provides the viewer for crypto files on the
2448 GNOME Desktop.")
2449 (license license:lgpl2.1+)))
2450
2451 (define-public gdl
2452 (package
2453 (name "gdl")
2454 (version "3.34.0")
2455 (source (origin
2456 (method git-fetch)
2457 (uri (git-reference
2458 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2459 (commit (string-append "GDL_" (string-map (match-lambda
2460 (#\. #\_)
2461 (c c))
2462 version)))))
2463 (file-name (git-file-name name version))
2464 (sha256
2465 (base32
2466 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2467 (build-system gnu-build-system)
2468 (native-inputs
2469 `(("autoconf" ,autoconf)
2470 ("automake" ,automake)
2471 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2472 ("gnome-common" ,gnome-common)
2473 ("gtk-doc" ,gtk-doc/stable)
2474 ("intltool" ,intltool)
2475 ("pkg-config" ,pkg-config)
2476 ("libtool" ,libtool)
2477 ("which" ,which)))
2478 (inputs
2479 `(("libxml2" ,libxml2)))
2480 (propagated-inputs
2481 ;; The gdl-3.0.pc file 'Requires' GTK+.
2482 `(("gtk+" ,gtk+)))
2483 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2484 (synopsis "GNOME docking library")
2485 (description "This library provides docking features for gtk+.")
2486 (license license:lgpl2.1+)))
2487
2488 ;;; A minimal variant used to break a cycle with Inkscape.
2489 (define-public gdl-minimal
2490 (package/inherit gdl
2491 (name "gdl-minimal")
2492 (arguments
2493 '(#:phases
2494 (modify-phases %standard-phases
2495 (add-after 'unpack 'disable-doc-generation
2496 ;; XXX: There is no easy way to disable generating the
2497 ;; documentation.
2498 (lambda _
2499 (substitute* "configure.in"
2500 (("GTK_DOC_CHECK.*") "")
2501 (("docs/.*") ""))
2502 (substitute* "Makefile.am"
2503 (("gdl docs po") "gdl po"))
2504 #t)))))
2505 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2506
2507 (define-public libgnome-keyring
2508 (package
2509 (name "libgnome-keyring")
2510 (version "3.12.0")
2511 (source (origin
2512 (method url-fetch)
2513 (uri (string-append "mirror://gnome/sources/" name "/"
2514 (version-major+minor version) "/"
2515 name "-" version ".tar.xz"))
2516 (sha256
2517 (base32
2518 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2519 (build-system gnu-build-system)
2520 (inputs
2521 `(("libgcrypt" ,libgcrypt)
2522 ("dbus" ,dbus)))
2523 (native-inputs
2524 `(("pkg-config" ,pkg-config)
2525 ("glib" ,glib "bin")
2526 ("intltool" ,intltool)))
2527 (propagated-inputs
2528 ;; Referred to in .h files and .pc.
2529 `(("glib" ,glib)))
2530 (home-page "https://www.gnome.org")
2531 (synopsis "Accessing passwords from the GNOME keyring")
2532 (description
2533 "Client library to access passwords from the GNOME keyring.")
2534
2535 ;; Though a couple of files are LGPLv2.1+.
2536 (license license:lgpl2.0+)))
2537
2538 (define-public gnome-keyring
2539 (package
2540 (name "gnome-keyring")
2541 (version "40.0")
2542 (source (origin
2543 (method url-fetch)
2544 (uri (string-append "mirror://gnome/sources/" name "/"
2545 (version-major version) "/"
2546 name "-" version ".tar.xz"))
2547 (sha256
2548 (base32
2549 "0cdrlcw814zayhvlaxqs1sm9bqlfijlp22dzzd0g5zg2isq4vlm3"))))
2550 (build-system gnu-build-system)
2551 (arguments
2552 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2553 ;not exist
2554 #:configure-flags
2555 (list
2556 (string-append "--with-pkcs11-config="
2557 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2558 (string-append "--with-pkcs11-modules="
2559 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2560 #:phases
2561 (modify-phases %standard-phases
2562 (add-after 'unpack 'fix-/bin/sh-reference
2563 (lambda _
2564 (substitute* "po/Makefile.in.in"
2565 (("/bin/sh") (which "sh")))
2566 #t))
2567 (add-after 'unpack 'fix-docbook
2568 (lambda* (#:key inputs #:allow-other-keys)
2569 (substitute* "docs/Makefile.am"
2570 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2571 (string-append (assoc-ref inputs "docbook-xsl")
2572 "/xml/xsl/docbook-xsl-"
2573 ,(package-version docbook-xsl)
2574 "/manpages/docbook.xsl")))
2575 (setenv "XML_CATALOG_FILES"
2576 (string-append (assoc-ref inputs "docbook-xml")
2577 "/xml/dtd/docbook/catalog.xml"))
2578 ;; Rerun the whole thing to avoid version mismatch ("This is
2579 ;; Automake 1.15.1, but the definition used by this
2580 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2581 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2582 (invoke "autoconf")
2583 (invoke "aclocal")
2584 (invoke "automake" "-ac"))))))
2585 (inputs
2586 `(("libgcrypt" ,libgcrypt)
2587 ("linux-pam" ,linux-pam)
2588 ("openssh" ,openssh)
2589 ("dbus" ,dbus)
2590 ("gcr" ,gcr)))
2591 (native-inputs
2592 `(("pkg-config" ,pkg-config)
2593 ("glib" ,glib "bin")
2594 ("glib" ,glib) ; for m4 macros
2595 ("python" ,python-2) ;for tests
2596 ("intltool" ,intltool)
2597 ("autoconf" ,autoconf)
2598 ("automake" ,automake)
2599 ("libxslt" ,libxslt) ;for documentation
2600 ("docbook-xml" ,docbook-xml-4.3)
2601 ("docbook-xsl" ,docbook-xsl)))
2602 (propagated-inputs
2603 `(("gcr" ,gcr)))
2604 (home-page "https://www.gnome.org")
2605 (synopsis "Daemon to store passwords and encryption keys")
2606 (description
2607 "gnome-keyring is a program that keeps passwords and other secrets for
2608 users. It is run as a daemon in the session, similar to ssh-agent, and other
2609 applications locate it via an environment variable or D-Bus.
2610
2611 The program can manage several keyrings, each with its own master password,
2612 and there is also a session keyring which is never stored to disk, but
2613 forgotten when the session ends.")
2614 (license license:lgpl2.1+)))
2615
2616 (define-public evince
2617 (package
2618 (name "evince")
2619 (version "40.2")
2620 (source (origin
2621 (method url-fetch)
2622 (uri "mirror://gnome/sources/evince/40/evince-40.2.tar.xz")
2623 (sha256
2624 (base32
2625 "0xrwls1bhvny8vvd7mfjy9p26zjch0pd6x6j9jn9g2ka6xwyrxqg"))))
2626 (build-system meson-build-system)
2627 (arguments
2628 `(#:glib-or-gtk? #t
2629 #:build-type "release"
2630 #:configure-flags
2631 '("-Dnautilus=false"
2632 "-Dintrospection=true"
2633 ;; XXX: Generating the documentation fails because the
2634 ;; libevdocument.devhelp document cannot be created. This seems to be
2635 ;; caused by a problem during the XSL transformation.
2636 "-Dgtk_doc=false")
2637 #:phases
2638 (modify-phases %standard-phases
2639 (add-after 'unpack 'skip-gtk-update-icon-cache
2640 ;; Don't create 'icon-theme.cache'.
2641 (lambda _
2642 (substitute* "meson_post_install.py"
2643 (("gtk-update-icon-cache") "true"))
2644 #t)))))
2645 (inputs
2646 `(("libarchive" ,libarchive)
2647 ("libgxps" ,libgxps)
2648 ("libspectre" ,libspectre)
2649 ("djvulibre" ,djvulibre)
2650 ("ghostscript" ,ghostscript)
2651 ("poppler" ,poppler)
2652 ("libtiff" ,libtiff)
2653 ("texlive-libkpathsea" ,texlive-libkpathsea) ; for DVI support
2654 ("gnome-desktop" ,gnome-desktop)
2655 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2656 ("gspell" ,gspell)
2657 ("libgnome-keyring" ,libgnome-keyring)
2658 ("adwaita-icon-theme" ,adwaita-icon-theme)
2659 ("gdk-pixbuf" ,gdk-pixbuf)
2660 ("atk" ,atk)
2661 ("pango" ,pango)
2662 ("gtk+" ,gtk+)
2663 ("glib" ,glib)
2664 ("libxml2" ,libxml2)
2665 ("libsm" ,libsm)
2666 ("libice" ,libice)
2667 ("shared-mime-info" ,shared-mime-info)
2668 ("dconf" ,dconf)
2669 ("libcanberra" ,libcanberra)
2670 ("libsecret" ,libsecret)
2671 ("libhandy" ,libhandy)))
2672 (native-inputs
2673 `(("itstool" ,itstool)
2674 ("intltool" ,intltool)
2675 ("glib" ,glib "bin")
2676 ("gobject-introspection" ,gobject-introspection)
2677 ("pkg-config" ,pkg-config)
2678 ("xmllint" ,libxml2)))
2679 (home-page "https://www.gnome.org/projects/evince/")
2680 (synopsis "GNOME's document viewer")
2681 (description
2682 "Evince is a document viewer for multiple document formats. It
2683 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2684 of Evince is to replace the multiple document viewers that exist
2685 on the GNOME Desktop with a single simple application.")
2686 (license license:gpl2+)))
2687
2688 (define-public gsettings-desktop-schemas
2689 (package
2690 (name "gsettings-desktop-schemas")
2691 (version "40.0")
2692 (source
2693 (origin
2694 (method url-fetch)
2695 (uri (string-append "mirror://gnome/sources/" name "/"
2696 (version-major version) "/"
2697 name "-" version ".tar.xz"))
2698 (sha256
2699 (base32
2700 "11an29br55dp0b26kfqlrfxj19glfrmhcdpds2n1w9n04gq3pf7i"))))
2701 (build-system meson-build-system)
2702 (arguments
2703 '(#:phases (modify-phases %standard-phases
2704 (add-after 'unpack 'patch-schemas
2705 (lambda* (#:key inputs #:allow-other-keys)
2706 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2707 (substitute* (find-files "schemas"
2708 "\\.gschema\\.xml\\.in$")
2709 ;; Provide the correct file name of the default
2710 ;; GNOME background, 'adwaita-timed.xml'.
2711 (("@datadir@/backgrounds/gnome")
2712 (string-append theme "/share/backgrounds/gnome"))
2713 ;; Do not reference fonts, that may not exist.
2714 (("'Source Code Pro 10'") "'Monospace 11'"))))))))
2715 (inputs
2716 `(("glib" ,glib)
2717 ("gnome-backgrounds" ,gnome-backgrounds)))
2718 (native-inputs
2719 `(("gettext" ,gettext-minimal)
2720 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2721 ("gobject-introspection" ,gobject-introspection)
2722 ("pkg-config" ,pkg-config)))
2723 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2724 (synopsis
2725 "GNOME settings for various desktop components")
2726 (description
2727 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2728 for settings shared by various components of the GNOME desktop.")
2729 (license license:lgpl2.1+)))
2730
2731 (define-public python-liblarch
2732 (package
2733 (name "python-liblarch")
2734 (version "3.0.1")
2735 (source
2736 (origin
2737 (method git-fetch)
2738 (uri (git-reference
2739 (url "https://github.com/getting-things-gnome/liblarch")
2740 (commit (string-append "v" version))))
2741 (file-name (git-file-name name version))
2742 (sha256
2743 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2744 (build-system python-build-system)
2745 (arguments
2746 `(#:phases
2747 (modify-phases %standard-phases
2748 (add-before 'check 'start-xserver
2749 (lambda* (#:key inputs #:allow-other-keys)
2750 (system (format #f "~a/bin/Xvfb :1 &"
2751 (assoc-ref inputs "xorg-server")))
2752 (setenv "DISPLAY" ":1")
2753 #t)))))
2754 (native-inputs
2755 `(("xorg-server" ,xorg-server-for-tests)))
2756 (inputs
2757 `(("gtk+" ,gtk+)))
2758 (propagated-inputs
2759 `(("python-pygobject" ,python-pygobject)))
2760 (home-page "https://wiki.gnome.org/Projects/liblarch")
2761 (synopsis "Library to easily handle complex data structures")
2762 (description
2763 "Liblarch is a Python library built to easily handle data structures such
2764 as lists, trees and acyclic graphs. There's also a GTK binding that will
2765 allow you to use your data structure in a @code{Gtk.Treeview}.
2766
2767 Liblarch support multiple views of one data structure and complex filtering.
2768 That way, you have a clear separation between your data themselves (Model)
2769 and how they are displayed (View).")
2770 (license license:lgpl3+)))
2771
2772 (define-public gtg
2773 (package
2774 (name "gtg")
2775 (version "0.5")
2776 (source
2777 (origin
2778 (method git-fetch)
2779 (uri (git-reference
2780 (url "https://github.com/getting-things-gnome/gtg")
2781 (commit (string-append "v" version))))
2782 (file-name (git-file-name name version))
2783 (sha256
2784 (base32 "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403"))))
2785 (build-system meson-build-system)
2786 (arguments
2787 `(#:glib-or-gtk? #t
2788 #:phases
2789 (modify-phases %standard-phases
2790 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2791 (lambda* (#:key outputs #:allow-other-keys)
2792 (let ((prog (string-append (assoc-ref outputs "out")
2793 "/bin/gtg"))
2794 (pylib (string-append (assoc-ref outputs "out")
2795 "/lib/python"
2796 ,(version-major+minor
2797 (package-version python))
2798 "/site-packages")))
2799 (wrap-program prog
2800 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
2801 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2802 #t))))))
2803 (native-inputs
2804 `(("desktop-file-utils" ,desktop-file-utils)
2805 ("gettext" ,gettext-minimal)
2806 ("glib:bin" ,glib "bin")
2807 ("gobject-introspection" ,gobject-introspection)
2808 ("gtk+:bin" ,gtk+ "bin")
2809 ("pkg-config" ,pkg-config)))
2810 (inputs
2811 `(("gdk-pixbuf" ,gdk-pixbuf+svg)
2812 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2813 ("gtk+" ,gtk+)
2814 ("pango" ,pango)
2815 ("python-dbus" ,python-dbus)
2816 ("python-liblarch" ,python-liblarch)
2817 ("python-lxml" ,python-lxml)
2818 ("python-pycairo" ,python-pycairo)
2819 ("python-pygobject" ,python-pygobject)
2820 ("python-pyxdg" ,python-pyxdg)))
2821 (home-page "https://wiki.gnome.org/Apps/GTG")
2822 (synopsis "Personal organizer for the GNOME desktop")
2823 (description
2824 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2825 organizer for the GNOME desktop environment inspired by the Getting Things
2826 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2827 and ease of use in mind so it can be used as more than just GTD software.
2828 GTG is intended to help you track everything you need to do and need to
2829 know, from small tasks to large projects.")
2830 (license license:gpl3+)))
2831
2832 (define-public icon-naming-utils
2833 (package
2834 (name "icon-naming-utils")
2835 (version "0.8.90")
2836 (source
2837 (origin
2838 (method url-fetch)
2839 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2840 version ".tar.bz2"))
2841 (sha256
2842 (base32
2843 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2844 (build-system gnu-build-system)
2845 (inputs
2846 `(("perl" ,perl)
2847 ("perl-xml-simple" ,perl-xml-simple)))
2848 (arguments
2849 '(#:phases
2850 (modify-phases %standard-phases
2851 (add-after 'install 'set-load-paths
2852 ;; Tell 'icon-name-mapping' where XML::Simple is.
2853 (lambda* (#:key outputs #:allow-other-keys)
2854 (let* ((out (assoc-ref outputs "out"))
2855 (prog (string-append out "/libexec/icon-name-mapping")))
2856 (wrap-program
2857 prog
2858 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2859 #t)))))
2860 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2861 (synopsis
2862 "Utility to implement the Freedesktop Icon Naming Specification")
2863 (description
2864 "To help with the transition to the Freedesktop Icon Naming
2865 Specification, the icon naming utility maps the icon names used by the
2866 GNOME and KDE desktops to the icon names proposed in the specification.")
2867 (license license:lgpl2.1+)))
2868
2869 (define-public gnome-icon-theme
2870 (package
2871 (name "gnome-icon-theme")
2872 (version "3.12.0")
2873 (source
2874 (origin
2875 (method url-fetch)
2876 (uri (string-append "mirror://gnome/sources/" name "/"
2877 (version-major+minor version) "/"
2878 name "-" version ".tar.xz"))
2879 (sha256
2880 (base32
2881 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2882 (build-system gnu-build-system)
2883 (arguments
2884 '(#:configure-flags
2885 ;; Don't create 'icon-theme.cache'.
2886 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2887 (true (string-append coreutils "/bin/true")))
2888 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2889 (native-inputs
2890 `(("icon-naming-utils" ,icon-naming-utils)
2891 ("intltool" ,intltool)
2892 ("pkg-config" ,pkg-config)))
2893 (home-page "https://wiki.gnome.org/Personalization")
2894 (synopsis "GNOME icon theme")
2895 (description "Icons for the GNOME desktop.")
2896 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2897
2898 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2899 (define-public adwaita-icon-theme
2900 (package (inherit gnome-icon-theme)
2901 (name "adwaita-icon-theme")
2902 (version "40.1.1")
2903 (source (origin
2904 (method url-fetch)
2905 (uri (string-append "mirror://gnome/sources/" name "/"
2906 (version-major version) "/"
2907 name "-" version ".tar.xz"))
2908 (sha256
2909 (base32
2910 "1xpqa1rgmixlp953938d08xvf7kv36h747ysial8g65dsrp46v0b"))))
2911 (native-inputs
2912 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2913
2914 (define-public tango-icon-theme
2915 (package
2916 (name "tango-icon-theme")
2917 (version "0.8.90")
2918 (source (origin
2919 (method url-fetch)
2920 (uri (string-append "http://tango.freedesktop.org/releases/"
2921 "tango-icon-theme-" version ".tar.bz2"))
2922 (sha256
2923 (base32
2924 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2925 (build-system gnu-build-system)
2926 (native-inputs
2927 `(("icon-naming-utils" ,icon-naming-utils)
2928 ("intltool" ,intltool)
2929 ("imagemagick" ,imagemagick)
2930 ("pkg-config" ,pkg-config)))
2931 (home-page "http://tango-project.org/")
2932 (synopsis "Tango icon theme")
2933 (description "This is an icon theme that follows the Tango visual
2934 guidelines.")
2935 (license license:public-domain)))
2936
2937 (define-public shared-mime-info
2938 (package
2939 (name "shared-mime-info")
2940 (version "1.15")
2941 (source (origin
2942 (method url-fetch)
2943 (uri (string-append
2944 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2945 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2946 ".tar.xz"))
2947 (sha256
2948 (base32
2949 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2950 (build-system gnu-build-system)
2951 (arguments
2952 ;; The build system appears not to be parallel-safe.
2953 '(#:parallel-build? #f))
2954 (inputs
2955 `(("glib" ,glib)
2956 ("libxml2" ,libxml2)))
2957 (native-inputs
2958 `(("gettext" ,gettext-minimal)
2959 ("itstool" ,itstool)
2960 ("pkg-config" ,pkg-config)))
2961 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2962 (synopsis "Database of common MIME types")
2963 (description
2964 "The shared-mime-info package contains the core database of common types
2965 and the update-mime-database command used to extend it. It requires glib2 to
2966 be installed for building the update command. Additionally, it uses intltool
2967 for translations, though this is only a dependency for the maintainers. This
2968 database is translated at Transifex.")
2969 (license license:gpl2+)))
2970
2971 (define-public system-config-printer
2972 (package
2973 (name "system-config-printer")
2974 (version "1.5.15")
2975 (source
2976 (origin
2977 (method url-fetch)
2978 (uri (string-append
2979 "https://github.com/OpenPrinting/system-config-printer/releases/"
2980 "download/v" version
2981 "/system-config-printer-" version ".tar.xz"))
2982 (sha256
2983 (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv"))))
2984 (build-system glib-or-gtk-build-system)
2985 (arguments
2986 `(#:imported-modules ((guix build python-build-system)
2987 ,@%glib-or-gtk-build-system-modules)
2988 #:phases
2989 (modify-phases %standard-phases
2990 (add-after 'unpack 'patch-Makefile.am
2991 (lambda _
2992 ;; The Makefile generates some scripts, so set a valid shebang
2993 (substitute* "Makefile.am"
2994 (("/bin/bash") (which "bash")))
2995 (delete-file "configure")
2996 #t))
2997 (add-after 'unpack 'patch-docbook-xml
2998 (lambda* (#:key inputs #:allow-other-keys)
2999 ;; Modify the man XML otherwise xmlto tries to access the network
3000 (substitute* "man/system-config-printer.xml"
3001 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
3002 (string-append (assoc-ref inputs "docbook-xml")
3003 "/xml/dtd/docbook/")))
3004 #t))
3005 (add-after 'install 'wrap-for-python
3006 (@@ (guix build python-build-system) wrap))
3007 (add-after 'install 'wrap
3008 (lambda* (#:key outputs #:allow-other-keys)
3009 (let ((out (assoc-ref outputs "out"))
3010 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
3011 (for-each
3012 (lambda (program)
3013 (wrap-program program
3014 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
3015 (map (lambda (name)
3016 (string-append out "/bin/" name))
3017 '("system-config-printer"
3018 "system-config-printer-applet"
3019 "install-printerdriver"
3020 "scp-dbus-service"))))
3021 #t)))))
3022 (inputs
3023 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3024 ("gobject-introspection" ,gobject-introspection)
3025 ("python" ,python)
3026 ("cups" ,cups)
3027 ("gtk+" ,gtk+)
3028 ("python-dbus" ,python-dbus)
3029 ("python-pygobject" ,python-pygobject)
3030 ("python-pycups" ,python-pycups)
3031 ("python-requests" ,python-requests)
3032 ("python-pycairo" ,python-pycairo)
3033 ("libnotify" ,libnotify)
3034 ("packagekit" ,packagekit)))
3035 (native-inputs
3036 `(("pkg-config" ,pkg-config)
3037 ("desktop-file-utils" ,desktop-file-utils)
3038 ("glib" ,glib)
3039 ("autoconf" ,autoconf)
3040 ("automake" ,automake)
3041 ("intltool" ,intltool)
3042 ("xmlto" ,xmlto)
3043 ("docbook-xml" ,docbook-xml-4.1.2)
3044 ("docbook-xsl" ,docbook-xsl)
3045 ("libxml2" ,libxml2)))
3046 (home-page "https://github.com/zdohnal/system-config-printer")
3047 (synopsis "CUPS administration tool")
3048 (description
3049 "system-config-printer is a CUPS administration tool. It's written in
3050 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
3051 configuring CUPS.")
3052 (license license:gpl2+)))
3053
3054 (define-public hicolor-icon-theme
3055 (package
3056 (name "hicolor-icon-theme")
3057 (version "0.17")
3058 (source
3059 (origin
3060 (method url-fetch)
3061 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3062 "hicolor-icon-theme-" version ".tar.xz"))
3063 (sha256
3064 (base32
3065 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3066 (build-system gnu-build-system)
3067 (arguments
3068 `(#:tests? #f)) ; no check target
3069 (home-page "https://icon-theme.freedesktop.org/releases/")
3070 (synopsis
3071 "Freedesktop icon theme")
3072 (description
3073 "Freedesktop icon theme.")
3074 (license license:gpl2)))
3075
3076 (define-public libnotify
3077 (package
3078 (name "libnotify")
3079 (version "0.7.9")
3080 (source
3081 (origin
3082 (method url-fetch)
3083 (uri (string-append "mirror://gnome/sources/" name "/"
3084 (version-major+minor version) "/"
3085 name "-" version ".tar.xz"))
3086 (sha256
3087 (base32
3088 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3089 (build-system meson-build-system)
3090 (arguments
3091 `(#:phases
3092 (modify-phases %standard-phases
3093 (add-after 'unpack 'fix-docbook
3094 (lambda* (#:key inputs #:allow-other-keys)
3095 ;; Don't attempt to download XSL schema.
3096 (substitute* "meson.build"
3097 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3098 /manpages/docbook.xsl")
3099 (string-append (assoc-ref inputs "docbook-xsl")
3100 "/xml/xsl/docbook-xsl-"
3101 ,(package-version docbook-xsl)
3102 "/manpages/docbook.xsl")))
3103 #t)))))
3104 (propagated-inputs
3105 `(;; In Requires of libnotify.pc.
3106 ("gdk-pixbuf" ,gdk-pixbuf)
3107 ("glib" ,glib)))
3108 (inputs
3109 `(("gtk+" ,gtk+)
3110 ("libpng" ,libpng)))
3111 (native-inputs
3112 `(("pkg-config" ,pkg-config)
3113 ("glib" ,glib "bin")
3114 ("gobject-introspection" ,gobject-introspection)
3115
3116 ;; For the documentation.
3117 ("gtk-doc" ,gtk-doc/stable)
3118 ("xsltproc" ,libxslt)
3119 ("docbook-xsl" ,docbook-xsl)))
3120 (home-page "https://developer-next.gnome.org/libnotify/")
3121 (synopsis
3122 "GNOME desktop notification library")
3123 (description
3124 "Libnotify is a library that sends desktop notifications to a
3125 notification daemon, as defined in the Desktop Notifications spec. These
3126 notifications can be used to inform the user about an event or display
3127 some form of information without getting in the user's way.")
3128 (license license:lgpl2.1+)))
3129
3130 (define-public libpeas
3131 (package
3132 (name "libpeas")
3133 (version "1.30.0")
3134 (source
3135 (origin
3136 (method url-fetch)
3137 (uri (string-append "mirror://gnome/sources/" name "/"
3138 (version-major+minor version) "/"
3139 name "-" version ".tar.xz"))
3140 (sha256
3141 (base32
3142 "18xrk1c1ixlhkmykcfiafrl2am470ws687xqvjlq40zwkcp5dx8b"))))
3143 (build-system meson-build-system)
3144 (arguments
3145 '(#:phases
3146 (modify-phases %standard-phases
3147 (add-before 'check 'start-xserver
3148 (lambda* (#:key inputs #:allow-other-keys)
3149 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3150 (disp ":1"))
3151 (setenv "DISPLAY" disp)
3152 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
3153 (setenv "XDG_CONFIG_HOME" "/tmp")
3154 ;; Tests require a running X server.
3155 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3156 #t))))))
3157 (inputs
3158 `(("gtk+" ,gtk+)
3159 ("glade" ,glade3)
3160 ("python" ,python)
3161 ("python-pygobject" ,python-pygobject)))
3162 (native-inputs
3163 `(("pkg-config" ,pkg-config)
3164 ("gettext" ,gettext-minimal)
3165 ("glib:bin" ,glib "bin")
3166 ("gobject-introspection" ,gobject-introspection)
3167 ("xorg-server" ,xorg-server-for-tests)))
3168 (propagated-inputs
3169 ;; The .pc file "Requires" gobject-introspection.
3170 `(("gobject-introspection" ,gobject-introspection)))
3171 (home-page "https://wiki.gnome.org/Libpeas")
3172 (synopsis "GObject plugin system")
3173 (description
3174 "Libpeas is a gobject-based plugin engine, targeted at giving every
3175 application the chance to assume its own extensibility. It also has a set of
3176 features including, but not limited to: multiple extension points; on-demand
3177 (lazy) programming language support for C, Python and JS; simplicity of the
3178 API.")
3179 (license license:lgpl2.0+)))
3180
3181 (define-public gtkglext
3182 (package
3183 (name "gtkglext")
3184 (version "1.2.0")
3185 (source (origin
3186 (method url-fetch)
3187 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3188 version "/gtkglext-" version ".tar.gz"))
3189 (sha256
3190 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3191 (patches (search-patches
3192 "gtkglext-disable-disable-deprecated.patch"))))
3193 (build-system gnu-build-system)
3194 (arguments
3195 `(#:phases
3196 (modify-phases %standard-phases
3197 ;; Fix a collision between a local variable and a definition from
3198 ;; glibc's string.h.
3199 (add-after 'unpack 'fix-collision
3200 (lambda _
3201 (substitute* "gdk/gdkglshapes.c"
3202 ((" index") " triangle_index"))
3203 #t)))))
3204 (inputs `(("gtk+" ,gtk+-2)
3205 ("mesa" ,mesa)
3206 ("glu" ,glu)
3207 ("libx11" ,libx11)
3208 ("libxt" ,libxt)))
3209 (native-inputs `(("pkg-config" ,pkg-config)
3210 ("glib" ,glib "bin")))
3211 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
3212 (home-page "https://projects.gnome.org/gtkglext")
3213 (synopsis "OpenGL extension to GTK+")
3214 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3215 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3216 API add-ons to make GTK+ widgets OpenGL-capable.")
3217 (license license:lgpl2.1+)))
3218
3219 (define-public glade3
3220 (package
3221 (name "glade")
3222 (version "3.38.2")
3223 (source (origin
3224 (method url-fetch)
3225 (uri (string-append "mirror://gnome/sources/" name "/"
3226 (version-major+minor version) "/"
3227 name "-" version ".tar.xz"))
3228 (sha256
3229 (base32
3230 "1dxsiz9ahqkxg2a1dw9sbd8jg59y5pdz4c1gvnbmql48gmj8gz4q"))
3231 (patches (search-patches
3232 "glade-gls-set-script-name.patch"
3233 "glade-test-widget-null-icon.patch"))))
3234 (build-system meson-build-system)
3235 (arguments
3236 `(#:phases
3237 (modify-phases %standard-phases
3238 (add-after 'unpack 'skip-gtk-update-icon-cache
3239 ;; Don't create 'icon-theme.cache'.
3240 (lambda _
3241 (substitute* "meson_post_install.py"
3242 (("gtk-update-icon-cache") "true"))))
3243 ;; XXX: Remove it once this issue is fixed:
3244 ;; https://issues.guix.gnu.org/50105.
3245 (add-after 'unpack 'fix-tests
3246 (lambda _
3247 (substitute* "tests/meson.build"
3248 (("\\['modules") "#['modules"))))
3249 (add-before 'configure 'fix-docbook
3250 (lambda* (#:key inputs #:allow-other-keys)
3251 (substitute* "man/meson.build"
3252 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
3253 (string-append (assoc-ref inputs "docbook-xsl")
3254 "/xml/xsl/docbook-xsl-"
3255 ,(package-version docbook-xsl)
3256 "/manpages/docbook.xsl")))
3257 #t))
3258 (add-before 'check 'pre-check
3259 (lambda _
3260 (setenv "HOME" "/tmp")
3261 ;; Tests require a running X server.
3262 (system "Xvfb :1 &")
3263 (setenv "DISPLAY" ":1")
3264 #t)))))
3265 (inputs
3266 `(("gtk+" ,gtk+)
3267 ("libxml2" ,libxml2)))
3268 (native-inputs
3269 `(("hicolor-icon-theme" ,hicolor-icon-theme)
3270 ("intltool" ,intltool)
3271 ("itstool" ,itstool)
3272 ("libxslt" ,libxslt) ;for xsltproc
3273 ("docbook-xml" ,docbook-xml-4.2)
3274 ("docbook-xsl" ,docbook-xsl)
3275 ("glib:bin" ,glib "bin")
3276 ("python-pygobject" ,python-pygobject)
3277 ("gobject-introspection" ,gobject-introspection)
3278 ("gjs" ,gjs)
3279 ("pkg-config" ,pkg-config)
3280 ("xorg-server" ,xorg-server-for-tests)))
3281 (home-page "https://glade.gnome.org")
3282 (synopsis "GTK+ rapid application development tool")
3283 (description "Glade is a rapid application development (RAD) tool to
3284 enable quick & easy development of user interfaces for the GTK+ toolkit and
3285 the GNOME desktop environment.")
3286 (license license:lgpl2.0+)
3287 (native-search-paths (list (search-path-specification
3288 (variable "GLADE_CATALOG_SEARCH_PATH")
3289 (files '("share/glade/catalogs")))
3290 (search-path-specification
3291 (variable "GLADE_MODULE_SEARCH_PATH")
3292 (files '("lib/glade/modules")))))))
3293
3294 (define-public libcroco
3295 (package
3296 (name "libcroco")
3297 (version "0.6.13")
3298 (source (origin
3299 (method url-fetch)
3300 (uri (string-append "mirror://gnome/sources/" name "/"
3301 (version-major+minor version) "/"
3302 name "-" version ".tar.xz"))
3303 (patches (search-patches "libcroco-CVE-2020-12825.patch"))
3304 (sha256
3305 (base32
3306 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3307 (build-system gnu-build-system)
3308 (native-inputs
3309 `(("pkg-config" ,pkg-config)))
3310 (inputs
3311 `(("glib" ,glib)
3312 ("libxml2" ,libxml2)
3313 ("zlib" ,zlib)))
3314 (home-page "https://github.com/GNOME/libcroco")
3315 (synopsis "CSS2 parsing and manipulation library")
3316 (description
3317 "Libcroco is a standalone CSS2 parsing and manipulation library.
3318 The parser provides a low level event driven SAC-like API and a CSS object
3319 model like API. Libcroco provides a CSS2 selection engine and an experimental
3320 XML/CSS rendering engine.")
3321
3322 ;; LGPLv2.1-only.
3323 (license license:lgpl2.1)))
3324
3325 (define-public libgsf
3326 (package
3327 (name "libgsf")
3328 (version "1.14.47")
3329 (source (origin
3330 (method url-fetch)
3331 (uri (string-append "mirror://gnome/sources/" name "/"
3332 (version-major+minor version) "/"
3333 name "-" version ".tar.xz"))
3334 (sha256
3335 (base32
3336 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3337 (build-system glib-or-gtk-build-system)
3338 (outputs '("out" "bin" "doc"))
3339 (arguments
3340 `(#:configure-flags
3341 (list
3342 "--disable-static"
3343 "--enable-introspection"
3344 (string-append "--with-gir-dir="
3345 (assoc-ref %outputs "out")
3346 "/share/gir-"
3347 ,(version-major
3348 (package-version gobject-introspection))
3349 ".0")
3350 (string-append "--with-typelib-dir="
3351 (assoc-ref %outputs "out")
3352 "/lib/girepository-"
3353 ,(version-major
3354 (package-version gobject-introspection))
3355 ".0")
3356 (string-append "--with-html-dir="
3357 (assoc-ref %outputs "doc")
3358 "/share/gtk-doc/html")
3359 "--with-zlib"
3360 "--with-bz2")
3361 #:phases
3362 (modify-phases %standard-phases
3363 (add-after 'unpack 'patch-docbook-xml
3364 (lambda* (#:key inputs #:allow-other-keys)
3365 (with-directory-excursion "doc"
3366 (substitute* "gsf-docs.xml"
3367 (("http://www.oasis-open.org/docbook/xml/4.5/")
3368 (string-append (assoc-ref inputs "docbook-xml")
3369 "/xml/dtd/docbook/"))))
3370 #t)))))
3371 (native-inputs
3372 `(("docbook-xml" ,docbook-xml)
3373 ("gettext" ,gettext-minimal)
3374 ("gobject-introspection" ,gobject-introspection)
3375 ("perl" ,perl)
3376 ("perl-xml-parser" ,perl-xml-parser)
3377 ("pkg-config" ,pkg-config)
3378 ("python" ,python-wrapper)))
3379 (inputs
3380 `(("bzip2" ,bzip2)
3381 ("gdk-pixbuf" ,gdk-pixbuf)
3382 ("zlib" ,zlib)))
3383 (propagated-inputs
3384 `(("glib" ,glib)
3385 ("libxml2" ,libxml2)))
3386 (synopsis "G Structured File Library")
3387 (description "Libgsf aims to provide an efficient extensible I/O abstraction
3388 for dealing with different structured file formats.")
3389 (home-page "https://gitlab.gnome.org/GNOME/libgsf")
3390 (license
3391 (list
3392 ;; Library
3393 license:lgpl2.1+
3394 ;; Others
3395 license:lgpl2.0+))))
3396
3397 (define-public librsvg
3398 (package
3399 (name "librsvg")
3400 (version "2.50.7")
3401 (source (origin
3402 (method url-fetch)
3403 (uri (string-append "mirror://gnome/sources/librsvg/"
3404 (version-major+minor version) "/"
3405 "librsvg-" version ".tar.xz"))
3406 (sha256
3407 (base32
3408 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3409 (modules '((guix build utils)))
3410 (snippet
3411 '(begin (delete-file-recursively "vendor")))))
3412 (build-system cargo-build-system)
3413 (outputs '("out" "doc"))
3414 (arguments
3415 `(#:install-source? #f
3416 #:modules
3417 ((guix build cargo-build-system)
3418 (guix build utils)
3419 ((guix build gnu-build-system) #:prefix gnu:))
3420 #:cargo-inputs
3421 (("rust-bitflags" ,rust-bitflags-1)
3422 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3423 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3424 ("rust-cast" ,rust-cast-0.2)
3425 ("rust-cssparser" ,rust-cssparser-0.27)
3426 ("rust-data-url" ,rust-data-url-0.1)
3427 ("rust-encoding" ,rust-encoding-0.2)
3428 ("rust-float-cmp" ,rust-float-cmp-0.8)
3429 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3430 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3431 ("rust-gio" ,rust-gio-0.8)
3432 ("rust-gio-sys" ,rust-gio-sys-0.9)
3433 ("rust-glib" ,rust-glib-0.9)
3434 ("rust-glib-sys" ,rust-glib-sys-0.9)
3435 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3436 ("rust-itertools" ,rust-itertools-0.9)
3437 ("rust-language-tags" ,rust-language-tags-0.2)
3438 ("rust-libc" ,rust-libc-0.2)
3439 ("rust-locale-config" ,rust-locale-config-0.3)
3440 ("rust-markup5ever" ,rust-markup5ever-0.10)
3441 ("rust-nalgebra" ,rust-nalgebra-0.21)
3442 ("rust-num-traits" ,rust-num-traits-0.2)
3443 ("rust-once-cell" ,rust-once-cell-1)
3444 ("rust-pkg-config" ,rust-pkg-config-0.3)
3445 ("rust-pango" ,rust-pango-0.8)
3446 ("rust-pango-sys" ,rust-pango-sys-0.9)
3447 ("rust-pangocairo" ,rust-pangocairo-0.9)
3448 ("rust-rayon" ,rust-rayon-1)
3449 ("rust-rctree" ,rust-rctree-0.3)
3450 ("rust-rgb" ,rust-rgb-0.8)
3451 ("rust-regex" ,rust-regex-1)
3452 ("rust-selectors" ,rust-selectors-0.22)
3453 ("rust-string-cache" ,rust-string-cache-0.8)
3454 ("rust-tinyvec" ,rust-tinyvec-0.3)
3455 ("rust-url" ,rust-url-2)
3456 ("rust-xml5ever" ,rust-xml5ever-0.16))
3457 #:cargo-development-inputs
3458 (("rust-assert-cmd" ,rust-assert-cmd-1)
3459 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3460 ("rust-chrono" ,rust-chrono-0.4)
3461 ("rust-criterion" ,rust-criterion-0.3)
3462 ("rust-float-cmp" ,rust-float-cmp-0.8)
3463 ("rust-lopdf" ,rust-lopdf-0.26)
3464 ("rust-png" ,rust-png-0.16)
3465 ("rust-predicates" ,rust-predicates-1)
3466 ("rust-tempfile" ,rust-tempfile-3))
3467 #:phases
3468 (modify-phases %standard-phases
3469 (add-after 'unpack 'patch-docbook-xml
3470 (lambda* (#:key inputs #:allow-other-keys)
3471 (with-directory-excursion "doc"
3472 (substitute* "rsvg-docs.xml"
3473 (("http://www.oasis-open.org/docbook/xml/4.3/")
3474 (string-append (assoc-ref inputs "docbook-xml")
3475 "/xml/dtd/docbook/"))))))
3476 (add-after 'unpack 'prepare-for-build
3477 (lambda _
3478 ;; In lieu of #:make-flags
3479 (setenv "CC" ,(cc-for-target))
3480 ;; Something about the build environment resists building
3481 ;; successfully with the '--locked' flag.
3482 (substitute* '("Makefile.am" "Makefile.in")
3483 (("--locked") ""))))
3484 (add-before 'configure 'pre-configure
3485 (lambda _
3486 (substitute* "gdk-pixbuf-loader/Makefile.in"
3487 ;; By default the gdk-pixbuf loader is installed under
3488 ;; gdk-pixbuf's prefix. Work around that.
3489 (("gdk_pixbuf_moduledir = .*$")
3490 (string-append "gdk_pixbuf_moduledir = "
3491 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3492 "loaders\n"))
3493 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3494 (("gdk_pixbuf_cache_file = .*$")
3495 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))))
3496 (add-after 'configure 'gnu-configure
3497 (lambda* (#:key outputs #:allow-other-keys #:rest args)
3498 (apply (assoc-ref gnu:%standard-phases 'configure)
3499 #:configure-flags
3500 (list "--disable-static"
3501 "--enable-vala"
3502 (string-append "--with-html-dir="
3503 (assoc-ref outputs "doc")
3504 "/share/gtk-doc/html"))
3505 args)))
3506 (add-after 'configure 'dont-vendor-self
3507 (lambda* (#:key vendor-dir #:allow-other-keys)
3508 ;; Don't keep the whole tarball in the vendor directory
3509 (delete-file-recursively
3510 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))))
3511 (replace 'build
3512 (assoc-ref gnu:%standard-phases 'build))
3513 (add-before 'check 'ignore-failing-tests
3514 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3515 (lambda _
3516 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3517 (("fn background_color_option_invalid_color_yields_error" all)
3518 (string-append "#[ignore] " all))
3519 (("fn empty_input_yields_error" all)
3520 (string-append "#[ignore] " all))
3521 (("fn empty_svg_yields_error" all)
3522 (string-append "#[ignore] " all))
3523 (("fn env_source_data_epoch_empty" all)
3524 (string-append "#[ignore] " all))
3525 (("fn env_source_data_epoch_no_digits" all)
3526 (string-append "#[ignore] " all))
3527 (("fn env_source_data_epoch_trailing_garbage" all)
3528 (string-append "#[ignore] " all))
3529 (("fn export_id_option_error" all)
3530 (string-append "#[ignore] " all))
3531 (("fn huge_zoom_factor_yields_error" all)
3532 (string-append "#[ignore] " all))
3533 (("fn multiple_input_files_not_allowed_for_png_output" all)
3534 (string-append "#[ignore] " all))
3535 (("fn stylesheet_option_error" all)
3536 (string-append "#[ignore] " all)))))
3537 (replace 'check
3538 (lambda* args
3539 ((assoc-ref gnu:%standard-phases 'check)
3540 #:test-target "check")))
3541 (replace 'install
3542 (assoc-ref gnu:%standard-phases 'install)))))
3543 (native-inputs
3544 `(("docbook-xml" ,docbook-xml-4.3)
3545 ("glib" ,glib "bin")
3546 ("gobject-introspection" ,gobject-introspection)
3547 ("pkg-config" ,pkg-config)
3548 ("python" ,python-wrapper)
3549 ("ruby" ,ruby)
3550 ("vala" ,vala)))
3551 (inputs
3552 `(("bzip2" ,bzip2)
3553 ("fontconfig" ,fontconfig)
3554 ("freetype" ,freetype)
3555 ("harfbuzz" ,harfbuzz)
3556 ("libcroco" ,libcroco)
3557 ("libgsf" ,libgsf)
3558 ("libxml2" ,libxml2)
3559 ("pango" ,pango)))
3560 (propagated-inputs
3561 `(("cairo" ,cairo)
3562 ("gdk-pixbuf" ,gdk-pixbuf)
3563 ("glib" ,glib)))
3564 (synopsis "SVG rendering library")
3565 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3566 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3567 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3568 diagrams.")
3569 (home-page "https://wiki.gnome.org/LibRsvg")
3570 (license license:lgpl2.1+)))
3571
3572 (define-public libidl
3573 (package
3574 (name "libidl")
3575 (version "0.8.14")
3576 (source (origin
3577 (method url-fetch)
3578 (uri (string-append "mirror://gnome/sources/libIDL/"
3579 (version-major+minor version) "/"
3580 "libIDL-" version ".tar.bz2"))
3581 (sha256
3582 (base32
3583 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3584 (build-system gnu-build-system)
3585 (inputs `(("glib" ,glib)))
3586 (native-inputs
3587 `(("pkg-config" ,pkg-config)
3588 ("flex" ,flex)
3589 ("bison" ,bison)))
3590 (home-page "http://freecode.com/projects/libidl")
3591 (synopsis "Create trees of CORBA Interface Definition Language files")
3592 (description "Libidl is a library for creating trees of CORBA Interface
3593 Definition Language (idl) files, which is a specification for defining
3594 portable interfaces. libidl was initially written for orbit (the orb from the
3595 GNOME project, and the primary means of libidl distribution). However, the
3596 functionality was designed to be as reusable and portable as possible.")
3597 (properties `((upstream-name . "libIDL")))
3598 (license license:lgpl2.0+)))
3599
3600
3601 (define-public orbit2
3602 (package
3603 (name "orbit2")
3604 (version "2.14.19")
3605 (source (origin
3606 (method url-fetch)
3607 (uri (let ((upstream-name "ORBit2"))
3608 (string-append "mirror://gnome/sources/" upstream-name "/"
3609 (version-major+minor version) "/"
3610 upstream-name "-" version ".tar.bz2")))
3611 (sha256
3612 (base32
3613 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3614 (build-system gnu-build-system)
3615 (arguments
3616 `(;; The "timeout-server" test hangs when run in parallel.
3617 #:parallel-tests? #f
3618 #:configure-flags
3619 '(;; We don't need static libraries, plus they don't build reproducibly
3620 ;; (non-deterministic ordering of .o files in the archive.)
3621 "--disable-static"
3622
3623 ;; The programmer kindly gives us a hook to turn off deprecation
3624 ;; warnings ...
3625 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3626 ;; ... which they then completly ignore !!
3627 #:phases
3628 (modify-phases %standard-phases
3629 (add-before 'configure 'ignore-deprecations
3630 (lambda _
3631 (substitute* "linc2/src/Makefile.in"
3632 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3633 #t)))))
3634 (inputs `(("glib" ,glib)
3635 ("libidl" ,libidl)))
3636 (native-inputs
3637 `(("pkg-config" ,pkg-config)))
3638 (home-page "https://projects.gnome.org/orbit2/")
3639 (synopsis "CORBA 2.4-compliant Object Request Broker")
3640 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3641 featuring mature C, C++ and Python bindings.")
3642 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3643 ;; a version. SOME of the code files have licence notices for GPLv2+.
3644 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3645 (license license:gpl2+)
3646 (properties `((upstream-name . "ORBit2")))))
3647
3648
3649 (define-public libbonobo
3650 (package
3651 (name "libbonobo")
3652 (version "2.32.1")
3653 (source (origin
3654 (method url-fetch)
3655 (uri (string-append "mirror://gnome/sources/" name "/"
3656 (version-major+minor version)
3657 "/" name "-" version ".tar.bz2"))
3658 (sha256
3659 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3660 (patches (search-patches
3661 "libbonobo-activation-test-race.patch"))))
3662 (build-system gnu-build-system)
3663 (arguments
3664 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3665 `(#:configure-flags
3666 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3667 ;; ... which they then completly ignore !!
3668 #:phases
3669 (modify-phases %standard-phases
3670 (add-before 'configure 'ignore-deprecations
3671 (lambda _
3672 (substitute* "activation-server/Makefile.in"
3673 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3674 #t)))
3675
3676 ;; There's apparently a race condition between the server stub
3677 ;; generation and linking of the example under 'samples/echo' that can
3678 ;; lead do undefined references when building in parallel, as reported
3679 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3680 ;; Thus, disable parallel builds.
3681 #:parallel-build? #f))
3682 (inputs `(("popt" ,popt)
3683 ("libxml2" ,libxml2)))
3684 ;; The following are Required by the .pc file
3685 (propagated-inputs
3686 `(("glib" ,glib)
3687 ("orbit2" ,orbit2)))
3688 (native-inputs
3689 `(("intltool" ,intltool)
3690 ("pkg-config" ,pkg-config)
3691 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3692 ("flex" ,flex)
3693 ("bison" ,bison)))
3694 (home-page "https://developer.gnome.org/libbonobo/")
3695 (synopsis "Framework for creating reusable components for use in GNOME applications")
3696 (description "Bonobo is a framework for creating reusable components for
3697 use in GNOME applications, built on top of CORBA.")
3698 ;; Licence not explicitly stated. Source files contain no licence notices.
3699 ;; Tarball contains text of both GPLv2 and LGPLv2
3700 ;; GPLv2 covers both conditions
3701 (license license:gpl2+)))
3702
3703
3704 (define-public gconf
3705 (package
3706 (name "gconf")
3707 (version "3.2.6")
3708 (source (origin
3709 (method url-fetch)
3710 (uri
3711 (let ((upstream-name "GConf"))
3712 (string-append "mirror://gnome/sources/" upstream-name "/"
3713 (version-major+minor version) "/"
3714 upstream-name "-" version ".tar.xz")))
3715 (sha256
3716 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3717 (build-system gnu-build-system)
3718 (inputs `(("dbus-glib" ,dbus-glib)
3719 ("libxml2" ,libxml2)))
3720 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3721 ("orbit2" ,orbit2)))
3722 (native-inputs
3723 `(("intltool" ,intltool)
3724 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3725 ("pkg-config" ,pkg-config)))
3726 (home-page "https://projects.gnome.org/gconf/")
3727 (synopsis "Store application preferences")
3728 (description "Gconf is a system for storing application preferences. It
3729 is intended for user preferences; not arbitrary data storage.")
3730 (license license:lgpl2.0+)
3731 (properties '((upstream-name . "GConf")))))
3732
3733
3734 (define-public gnome-mime-data
3735 (package
3736 (name "gnome-mime-data")
3737 (version "2.18.0")
3738 (source (origin
3739 (method url-fetch)
3740 (uri (string-append "mirror://gnome/sources/" name "/"
3741 (version-major+minor version) "/"
3742 name "-" version ".tar.bz2"))
3743 (sha256
3744 (base32
3745 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3746 (build-system gnu-build-system)
3747 (native-inputs
3748 `(("perl" ,perl)
3749 ("intltool" ,intltool)))
3750 (arguments
3751 '(#:phases (modify-phases %standard-phases
3752 (add-after 'configure 'use-our-intltool
3753 (lambda _
3754 ;; Do not use the bundled intltool commands, which lack
3755 ;; the "dotless @INC" fixes of our 'intltool' package.
3756 (substitute* (find-files "." "^Makefile$")
3757 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3758 (string-append "INTLTOOL_" tool " = intltool-"
3759 (string-downcase tool) "\n")))
3760 #t)))))
3761 (home-page "https://www.gnome.org")
3762 (synopsis "Base MIME and Application database for GNOME")
3763 (description "GNOME Mime Data is a module which contains the base MIME
3764 and Application database for GNOME. The data stored by this module is
3765 designed to be accessed through the MIME functions in GnomeVFS.")
3766 (license license:gpl2+)))
3767
3768
3769 (define-public gnome-vfs
3770 (package
3771 (name "gnome-vfs")
3772 (version "2.24.4")
3773 (source (origin
3774 (method url-fetch)
3775 (uri (string-append "mirror://gnome/sources/" name "/"
3776 (version-major+minor version) "/"
3777 name "-" version ".tar.bz2"))
3778 (sha256
3779 (base32
3780 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3781 (build-system gnu-build-system)
3782 (arguments
3783 `(#:phases
3784 (modify-phases %standard-phases
3785 (add-before 'configure 'ignore-deprecations
3786 (lambda _
3787 (substitute* '("libgnomevfs/Makefile.in"
3788 "daemon/Makefile.in")
3789 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3790 #t))
3791 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3792 (lambda _
3793 (substitute* "test/test-async-cancel.c"
3794 (("EXIT_FAILURE") "77"))
3795 #t)))))
3796 (inputs `(("libxml2" ,libxml2)
3797 ("dbus-glib" ,dbus-glib)
3798 ("gconf" ,gconf)
3799 ("gnome-mime-data" ,gnome-mime-data)
3800 ("zlib" ,zlib)))
3801 (native-inputs
3802 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3803 ("intltool" ,intltool)
3804 ("pkg-config" ,pkg-config)))
3805 (home-page "https://developer.gnome.org/gnome-vfs/")
3806 (synopsis "Access files and folders in GNOME applications")
3807 (description
3808 "GnomeVFS is the core library used to access files and folders in GNOME
3809 applications. It provides a file system abstraction which allows applications
3810 to access local and remote files with a single consistent API.")
3811 (license license:lgpl2.0+)))
3812
3813
3814
3815 (define-public libgnome
3816 (package
3817 (name "libgnome")
3818 (version "2.32.1")
3819 (source (origin
3820 (method url-fetch)
3821 (uri (string-append "mirror://gnome/sources/" name "/"
3822 (version-major+minor version) "/"
3823 name "-" version ".tar.bz2"))
3824 (sha256
3825 (base32
3826 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3827 (patches (search-patches "libgnome-encoding.patch"))))
3828 (build-system gnu-build-system)
3829 (arguments
3830 `(#:phases
3831 (modify-phases %standard-phases
3832 (add-before 'configure 'enable-deprecated
3833 (lambda _
3834 (substitute* "libgnome/Makefile.in"
3835 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3836 #t)))))
3837 (inputs `(("libxml2" ,libxml2)))
3838 (native-inputs
3839 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3840 ("intltool" ,intltool)
3841 ("pkg-config" ,pkg-config)))
3842 ;; The following are listed as Required in the .pc file
3843 ;; (except for libcanberra -- which seems to be oversight on the part
3844 ;; of the upstream developers -- anything that links against libgnome,
3845 ;; must also link against libcanberra
3846 (propagated-inputs
3847 `(("libcanberra" ,libcanberra)
3848 ("libbonobo" ,libbonobo)
3849 ("gconf" ,gconf)
3850 ("gnome-vfs" ,gnome-vfs)
3851 ("popt" ,popt))) ;gnome-program.h includes popt.h
3852 (home-page "https://developer.gnome.org/libgnome/")
3853 (synopsis "Useful routines for building applications")
3854 (description "The libgnome library provides a number of useful routines
3855 for building modern applications, including session management, activation of
3856 files and URIs, and displaying help.")
3857 (license license:lgpl2.0+)))
3858
3859
3860 (define-public libart-lgpl
3861 (package
3862 (name "libart-lgpl")
3863 (version "2.3.21")
3864 (source (origin
3865 (method url-fetch)
3866 (uri (let ((upstream-name "libart_lgpl"))
3867 (string-append "mirror://gnome/sources/" upstream-name "/"
3868 (version-major+minor version) "/"
3869 upstream-name "-" version ".tar.bz2")))
3870 (sha256
3871 (base32
3872 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3873 (build-system gnu-build-system)
3874 (native-inputs
3875 `(("pkg-config" ,pkg-config)))
3876 (home-page "https://people.gnome.org/~mathieu/libart")
3877 (synopsis "2D drawing library")
3878 (description "Libart is a 2D drawing library intended as a
3879 high-quality vector-based 2D library with antialiasing and alpha composition.")
3880 (license license:lgpl2.0+)))
3881
3882
3883
3884 (define-public libgnomecanvas
3885 (package
3886 (name "libgnomecanvas")
3887 (version "2.30.3")
3888 (source (origin
3889 (method url-fetch)
3890 (uri (string-append "mirror://gnome/sources/" name "/"
3891 (version-major+minor version) "/"
3892 name "-" version ".tar.gz"))
3893 (sha256
3894 (base32
3895 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3896 (build-system gnu-build-system)
3897 ;; Mentioned as Required in the .pc file
3898 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3899 ("gtk+" ,gtk+-2)))
3900 (native-inputs
3901 `(("intltool" ,intltool)
3902 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3903 ("pkg-config" ,pkg-config)))
3904 (home-page "https://developer.gnome.org/libgnomecanvas/")
3905 (synopsis "Flexible widget for creating interactive structured graphics")
3906 (description "The GnomeCanvas widget provides a flexible widget for
3907 creating interactive structured graphics.")
3908 (license license:lgpl2.0+)))
3909
3910 (define-public libgnomecanvasmm
3911 (package
3912 (name "libgnomecanvasmm")
3913 (version "2.26.0")
3914 (source (origin
3915 (method url-fetch)
3916 (uri (string-append "mirror://gnome/sources/" name "/"
3917 (version-major+minor version) "/"
3918 name "-" version ".tar.bz2"))
3919 (sha256
3920 (base32
3921 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3922 (build-system gnu-build-system)
3923 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3924 (native-inputs
3925 `(("gtkmm-2" ,gtkmm-2)
3926 ("pkg-config" ,pkg-config)))
3927 (home-page "https://gtkmm.org")
3928 (synopsis "C++ bindings to the GNOME Canvas library")
3929 (description "C++ bindings to the GNOME Canvas library.")
3930 (license license:lgpl2.0+)))
3931
3932 (define-public libgnomeui
3933 (package
3934 (name "libgnomeui")
3935 (version "2.24.5")
3936 (source (origin
3937 (method url-fetch)
3938 (uri (string-append "mirror://gnome/sources/" name "/"
3939 (version-major+minor version) "/"
3940 name "-" version ".tar.bz2"))
3941 (patches (search-patches "libgnomeui-utf8.patch"))
3942 (sha256
3943 (base32
3944 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3945 (build-system gnu-build-system)
3946 ;; Mentioned as Required in the .pc file
3947 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3948 ("libgnome" ,libgnome)
3949 ("libgnomecanvas" ,libgnomecanvas)
3950 ("libgnome-keyring" ,libgnome-keyring)))
3951 (inputs `(("libjpeg" ,libjpeg-turbo)
3952 ("popt" ,popt)
3953 ("libbonobo" ,libbonobo)
3954 ("libxml2" ,libxml2)
3955 ("libglade" ,libglade)))
3956 (native-inputs
3957 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3958 ("intltool" ,intltool)
3959 ("pkg-config" ,pkg-config)))
3960 (home-page "https://developer.gnome.org/libgnomeui/")
3961 (synopsis "Additional widgets for applications")
3962 (description "The libgnomeui library provides additional widgets for
3963 applications. Many of the widgets from libgnomeui have already been
3964 ported to GTK+.")
3965 (license license:lgpl2.0+)))
3966
3967 (define-public libglade
3968 (package
3969 (name "libglade")
3970 (version "2.6.4")
3971 (source (origin
3972 (method url-fetch)
3973 (uri (string-append "mirror://gnome/sources/" name "/"
3974 (version-major+minor version) "/"
3975 name "-" version ".tar.bz2"))
3976 (sha256
3977 (base32
3978 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3979 (build-system gnu-build-system)
3980 (inputs
3981 `(("python" ,python))) ;; needed for the optional libglade-convert program
3982 (propagated-inputs
3983 `(("gtk+-2" ,gtk+-2)
3984 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3985 (native-inputs
3986 `(("pkg-config" ,pkg-config)))
3987 (home-page "https://developer.gnome.org/libglade")
3988 (synopsis "Load glade interfaces and access the glade built widgets")
3989 (description "Libglade is a library that provides interfaces for loading
3990 graphical interfaces described in glade files and for accessing the
3991 widgets built in the loading process.")
3992 (license license:gpl2+))) ; This is correct. GPL not LGPL
3993
3994 (define-public libbonoboui
3995 (package
3996 (name "libbonoboui")
3997 (version "2.24.5")
3998 (source (origin
3999 (method url-fetch)
4000 (uri (string-append "mirror://gnome/sources/" name "/"
4001 (version-major+minor version) "/"
4002 name "-" version ".tar.bz2"))
4003 (sha256
4004 (base32
4005 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4006 (build-system gnu-build-system)
4007 (arguments
4008 `(#:phases
4009 (modify-phases %standard-phases
4010 (add-before 'check 'start-xserver
4011 (lambda* (#:key inputs #:allow-other-keys)
4012 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4013 (disp ":1"))
4014
4015 (setenv "HOME" (getcwd))
4016 (setenv "DISPLAY" disp)
4017 ;; There must be a running X server and make check doesn't start one.
4018 ;; Therefore we must do it.
4019 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4020 ;; Mentioned as Required by the .pc file
4021 (propagated-inputs `(("libxml2" ,libxml2)))
4022 (inputs
4023 `(("popt" ,popt)
4024 ("pangox-compat" ,pangox-compat)
4025 ("libgnome" ,libgnome)
4026 ("libgnomecanvas" ,libgnomecanvas)
4027 ("libglade" ,libglade)))
4028 (native-inputs
4029 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
4030 ("intltool" ,intltool)
4031 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
4032 ("pkg-config" ,pkg-config)))
4033 (home-page "https://developer.gnome.org/libbonoboui/")
4034 (synopsis "Some user interface controls using Bonobo")
4035 (description "The Bonobo UI library provides a number of user interface
4036 controls using the Bonobo component framework.")
4037 (license license:lgpl2.0+)))
4038
4039 (define-public libwnck
4040 (package
4041 (name "libwnck")
4042 (version "3.32.0")
4043 (source (origin
4044 (method url-fetch)
4045 (uri (string-append "mirror://gnome/sources/" name "/"
4046 (version-major+minor version) "/"
4047 name "-" version ".tar.xz"))
4048 (sha256
4049 (base32
4050 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4051 (build-system meson-build-system)
4052 (native-inputs
4053 `(("pkg-config" ,pkg-config)
4054 ("glib" ,glib "bin") ; for glib-mkenums
4055 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
4056 ("intltool" ,intltool)))
4057 (propagated-inputs
4058 `(("gtk+" ,gtk+)
4059 ("libxres" ,libxres)
4060 ("startup-notification" ,startup-notification)))
4061 (home-page "https://developer.gnome.org/libwnck/")
4062 (synopsis "Window Navigator Construction Kit")
4063 (description
4064 "Libwnck is the Window Navigator Construction Kit, a library for use in
4065 writing pagers, tasklists, and more generally applications that are dealing
4066 with window management. It tries hard to respect the Extended Window Manager
4067 Hints specification (EWMH).")
4068 (license license:lgpl2.0+)))
4069
4070 ;; stable version for gtk2, required by xfwm4.
4071 (define-public libwnck-2
4072 (package (inherit libwnck)
4073 (name "libwnck")
4074 (version "2.30.7")
4075 (source (origin
4076 (method url-fetch)
4077 (uri (string-append "mirror://gnome/sources/" name "/"
4078 (version-major+minor version) "/"
4079 name "-" version ".tar.xz"))
4080 (sha256
4081 (base32
4082 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4083 (build-system gnu-build-system)
4084 (native-inputs
4085 `(("pkg-config" ,pkg-config)
4086 ("intltool" ,intltool)))
4087 (propagated-inputs
4088 `(("gtk+" ,gtk+-2)
4089 ("libxres" ,libxres)
4090 ("startup-notification" ,startup-notification)))))
4091
4092 (define-public goffice
4093 (package
4094 (name "goffice")
4095 (version "0.10.50")
4096 (source (origin
4097 (method url-fetch)
4098 (uri (string-append "mirror://gnome/sources/goffice/"
4099 (version-major+minor version) "/"
4100 "goffice-" version ".tar.xz"))
4101 (sha256
4102 (base32 "1p5zbj7cbcfcxd6l8pnph54p6ah1bwf146y810j4bcq8ggf3sp1c"))))
4103 (build-system gnu-build-system)
4104 (outputs '("out"
4105 "doc")) ; 4.0 MiB of gtk-doc
4106 (arguments
4107 '(#:configure-flags (list (string-append "--with-html-dir="
4108 (assoc-ref %outputs "doc")
4109 "/share/gtk-doc/html"))))
4110 (inputs
4111 `(("gtk+" ,gtk+)
4112 ("libgsf" ,libgsf)
4113 ("librsvg" ,librsvg)
4114 ("libxslt" ,libxslt)
4115 ("libxml2" ,libxml2)))
4116 (native-inputs
4117 `(("intltool" ,intltool)
4118 ("glib" ,glib "bin")
4119 ("pkg-config" ,pkg-config)))
4120 (home-page "https://developer.gnome.org/goffice/")
4121 (synopsis "Document-centric objects and utilities")
4122 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4123 (license
4124 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4125 ;; Note: NOT LGPL
4126 (list license:gpl2 license:gpl3))))
4127
4128 (define-public goffice-0.8
4129 (package (inherit goffice)
4130 (version "0.8.17")
4131 (source (origin
4132 (method url-fetch)
4133 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4134 (version-major+minor version) "/"
4135 (package-name goffice) "-" version ".tar.xz"))
4136 (sha256
4137 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4138 (arguments
4139 `(#:phases
4140 (modify-phases %standard-phases
4141 (add-after 'unpack 'fix-pcre-check
4142 (lambda _
4143 ;; Only glib.h can be included directly. See
4144 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4145 (substitute* "configure"
4146 (("glib/gregex\\.h") "glib.h")) #t)))
4147
4148 ,@(package-arguments goffice)))
4149 (propagated-inputs
4150 ;; libgoffice-0.8.pc mentions libgsf-1
4151 `(("libgsf" ,libgsf)))
4152 (inputs
4153 `(("gtk" ,gtk+-2)
4154 ,@(alist-delete "gtk" (package-inputs goffice))))))
4155
4156 (define-public gnumeric
4157 (package
4158 (name "gnumeric")
4159 (version "1.12.50")
4160 (source (origin
4161 (method url-fetch)
4162 (uri (string-append "mirror://gnome/sources/gnumeric/"
4163 (version-major+minor version) "/"
4164 "gnumeric-" version ".tar.xz"))
4165 (sha256
4166 (base32
4167 "1f0lrj5msg80pgjp38jj6rddf352gwddgip7z4lki66n3fx1k23m"))))
4168 (build-system glib-or-gtk-build-system)
4169 (arguments
4170 `(;; The gnumeric developers don't worry much about failing tests.
4171 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4172 #:tests? #f
4173 #:phases
4174 (modify-phases %standard-phases
4175 (add-before
4176 'configure 'pre-conf
4177 (lambda* (#:key outputs #:allow-other-keys)
4178 ;; Make install tries to write into the directory of goffice
4179 ;; I am informed that this only affects the possibility to embed a
4180 ;; spreadsheet inside an Abiword document. So presumably when we
4181 ;; package Abiword we'll have to refer it to this directory.
4182 (substitute* "configure"
4183 (("^GOFFICE_PLUGINS_DIR=.*")
4184 (string-append "GOFFICE_PLUGINS_DIR="
4185 (assoc-ref outputs "out")
4186 "/goffice/plugins"))))))))
4187 (inputs
4188 `(("glib" ,glib)
4189 ("gtk+" ,gtk+)
4190 ("goffice" ,goffice)
4191 ("libgsf" ,libgsf)
4192 ("librsvg" ,librsvg)
4193 ("libxml2" ,libxml2)
4194 ("libxslt" ,libxslt)
4195 ("python" ,python)
4196 ("python-pygobject" ,python-pygobject)
4197 ("zlib" ,zlib)))
4198 (native-inputs
4199 `(("bison" ,bison)
4200 ("docbook-xml" ,docbook-xml)
4201 ("intltool" ,intltool)
4202 ("itstool" ,itstool)
4203 ("glib:bin" ,glib "bin")
4204 ("pkg-config" ,pkg-config)))
4205 (home-page "http://www.gnumeric.org")
4206 (synopsis "Spreadsheet application")
4207 (description
4208 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4209 interoperable with other spreadsheet applications. It has a vast array of
4210 features beyond typical spreadsheet functionality, such as support for linear
4211 and non-linear solvers, statistical analysis, and telecommunication
4212 engineering.")
4213 (license
4214 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4215 (list license:gpl2 license:gpl3))))
4216
4217 (define-public drawing
4218 (package
4219 (name "drawing")
4220 (version "0.8.3")
4221 (source
4222 (origin
4223 (method git-fetch)
4224 (uri (git-reference
4225 (url "https://github.com/maoschanz/drawing")
4226 (commit version)))
4227 (file-name (git-file-name name version))
4228 (sha256
4229 (base32 "0wz9p47riyy3h8b0sqsb6bx416hc6d1a1wyzlfmsxkrqrkwcjcm8"))))
4230 (build-system meson-build-system)
4231 (arguments
4232 `(#:glib-or-gtk? #t
4233 #:phases
4234 (modify-phases %standard-phases
4235 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
4236 (lambda* (#:key outputs #:allow-other-keys)
4237 (let ((prog (string-append (assoc-ref outputs "out")
4238 "/bin/drawing"))
4239 (pylib (string-append (assoc-ref outputs "out")
4240 "/lib/python"
4241 ,(version-major+minor
4242 (package-version python))
4243 "/site-packages")))
4244 (wrap-program prog
4245 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
4246 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
4247 (native-inputs
4248 `(("desktop-file-utils" ,desktop-file-utils)
4249 ("gettext" ,gettext-minimal)
4250 ("glib:bin" ,glib "bin")
4251 ("gobject-introspection" ,gobject-introspection)
4252 ("gtk+:bin" ,gtk+ "bin")
4253 ("pkg-config" ,pkg-config)))
4254 (inputs
4255 `(("gdk-pixbuf" ,gdk-pixbuf+svg)
4256 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4257 ("gtk+" ,gtk+)
4258 ("pango" ,pango)
4259 ("python-pycairo" ,python-pycairo)
4260 ("python-pygobject" ,python-pygobject)))
4261 (home-page "https://maoschanz.github.io/drawing/")
4262 (synopsis "Basic image editor for GNOME")
4263 (description
4264 "Drawing is a basic image editor aiming at the GNOME desktop.")
4265 (license license:gpl3+)))
4266
4267 (define-public gnome-themes-standard
4268 (package
4269 (name "gnome-themes-standard")
4270 (version "3.22.3")
4271 (source
4272 (origin
4273 (method url-fetch)
4274 (uri (string-append "mirror://gnome/sources/" name "/"
4275 (version-major+minor version) "/" name "-"
4276 version ".tar.xz"))
4277 (sha256
4278 (base32
4279 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4280 (build-system gnu-build-system)
4281 (arguments
4282 '(#:configure-flags
4283 ;; Don't create 'icon-theme.cache'.
4284 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4285 (true (string-append coreutils "/bin/true")))
4286 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4287 (inputs
4288 `(("gtk+" ,gtk+)
4289 ("gtk+-2" ,gtk+-2)
4290 ("librsvg" ,librsvg)
4291 ("libxml2" ,libxml2)
4292 ("glib" ,glib)))
4293 (native-inputs
4294 `(("intltool" ,intltool)
4295 ("glib:bin" ,glib "bin")
4296 ("pkg-config" ,pkg-config)))
4297 (home-page "https://launchpad.net/gnome-themes-standard")
4298 (synopsis "Default GNOME 3 themes")
4299 (description
4300 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4301 (license license:lgpl2.1+)))
4302
4303 (define-public seahorse
4304 (package
4305 (name "seahorse")
4306 (version "3.36.2")
4307 (source
4308 (origin
4309 (method url-fetch)
4310 (uri (string-append "mirror://gnome/sources/" name "/"
4311 (version-major+minor version) "/" name "-"
4312 version ".tar.xz"))
4313 (sha256
4314 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4315 (build-system meson-build-system)
4316 (arguments
4317 '(#:glib-or-gtk? #t
4318 #:phases
4319 (modify-phases %standard-phases
4320 (add-after 'unpack 'skip-gtk-update-icon-cache
4321 ;; Don't create 'icon-theme.cache'.
4322 (lambda _
4323 (substitute* "build-aux/meson_post_install.py"
4324 (("gtk-update-icon-cache") "true"))
4325 #t)))))
4326 (inputs
4327 `(("gtk+" ,gtk+)
4328 ("gcr" ,gcr)
4329 ("gnupg" ,gnupg)
4330 ("gpgme" ,gpgme)
4331 ("openldap" ,openldap)
4332 ("openssh" ,openssh)
4333 ("avahi" ,avahi)
4334 ("libhandy" ,libhandy-0.0)
4335 ("libpwquality" ,libpwquality)
4336 ("libsecret" ,libsecret)
4337 ("libsoup" ,libsoup)))
4338 (native-inputs
4339 `(("gettext" ,gettext-minimal)
4340 ("glib:bin" ,glib "bin")
4341 ("itstool" ,itstool)
4342 ("pkg-config" ,pkg-config)
4343 ("vala" ,vala)
4344 ("xmllint" ,libxml2)))
4345 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4346 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4347 (description
4348 "Seahorse is a GNOME application for managing encryption keys and
4349 passwords in the GNOME keyring.")
4350 (license license:gpl2+)))
4351
4352 (define-public vala
4353 (package
4354 (name "vala")
4355 (version "0.52.0")
4356 (source (origin
4357 (method url-fetch)
4358 (uri (string-append "mirror://gnome/sources/vala/"
4359 (version-major+minor version) "/"
4360 "vala-" version ".tar.xz"))
4361 (sha256
4362 (base32
4363 "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))
4364 (build-system glib-or-gtk-build-system)
4365 (arguments
4366 '(#:configure-flags '("--enable-coverage")
4367 #:phases
4368 (modify-phases %standard-phases
4369 (add-after 'unpack 'patch-docbook-xml
4370 (lambda* (#:key inputs #:allow-other-keys)
4371 (with-directory-excursion "doc/manual"
4372 (substitute* '("manual.xml" "version.xml.in")
4373 (("http://www.oasis-open.org/docbook/xml/4.4/")
4374 (string-append (assoc-ref inputs "docbook-xml")
4375 "/xml/dtd/docbook/"))))
4376 #t))
4377 (add-before 'check 'pre-check
4378 (lambda _
4379 (setenv "CC" "gcc")
4380 (substitute* "valadoc/tests/libvaladoc\
4381 /tests-extra-environment.sh"
4382 (("export PKG_CONFIG_PATH=" m)
4383 (string-append m "$PKG_CONFIG_PATH:"))))))))
4384 (native-inputs
4385 `(("bison" ,bison)
4386 ("dbus" ,dbus) ; for dbus tests
4387 ("docbook-xml" ,docbook-xml-4.4)
4388 ("docbook-xsl" ,docbook-xsl)
4389 ("flex" ,flex)
4390 ("gobject-introspection" ,gobject-introspection) ; for gir tests
4391 ("help2man" ,help2man)
4392 ("perl" ,perl)
4393 ("pkg-config" ,pkg-config)
4394 ("xsltproc" ,libxslt)))
4395 (propagated-inputs
4396 `(("glib" ,glib) ; required by libvala-0.40.pc
4397 ("libgvc" ,graphviz)))
4398 (home-page "https://wiki.gnome.org/Projects/Vala/")
4399 (synopsis "Compiler using the GObject type system")
4400 (description "Vala is a programming language using modern high level
4401 abstractions without imposing additional runtime requirements and without using
4402 a different ABI compared to applications and libraries written in C. Vala uses
4403 the GObject type system and has additional code generation routines that make
4404 targeting the GNOME stack simple.")
4405 (license license:lgpl2.1+)))
4406
4407 (define-public vte
4408 (package
4409 (name "vte")
4410 (version "0.64.2")
4411 (source (origin
4412 (method url-fetch)
4413 (uri (string-append "mirror://gnome/sources/vte/"
4414 (version-major+minor version) "/"
4415 "vte-" version ".tar.xz"))
4416 (sha256
4417 (base32
4418 "063ys3330cvhbz1dln9irhciavb2prw098lvhpcc2rx6cl5q4g1b"))))
4419 (build-system meson-build-system)
4420 (arguments
4421 `(#:configure-flags
4422 '("-Dvapi=true"
4423 "-D_systemd=false")))
4424 (native-inputs
4425 `(("pkg-config" ,pkg-config)
4426 ("gettext" ,gettext-minimal)
4427 ("vala" ,vala)
4428 ("gobject-introspection" ,gobject-introspection)
4429 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4430 ("gperf" ,gperf)
4431 ("xmllint" ,libxml2)))
4432 (propagated-inputs
4433 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4434 ("gnutls" ,gnutls) ; ditto
4435 ("pcre2" ,pcre2))) ; ditto
4436 (home-page "https://www.gnome.org/")
4437 (synopsis "Virtual Terminal Emulator")
4438 (description
4439 "VTE is a library (libvte) implementing a terminal emulator widget for
4440 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4441 gnome-terminal, but can also be used to embed a console/terminal in games,
4442 editors, IDEs, etc.")
4443 (license license:lgpl2.1+)))
4444
4445 (define-public vte-ng
4446 (package
4447 (inherit vte)
4448 (name "vte-ng")
4449 (version "0.58.2.a")
4450 (home-page "https://github.com/thestinger/vte-ng")
4451 (source (origin
4452 (method git-fetch)
4453 (uri (git-reference (url home-page) (commit version)))
4454 (file-name (git-file-name name version))
4455 (sha256
4456 (base32
4457 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4458 (build-system meson-build-system)
4459 (native-inputs
4460 `(("gtk-doc" ,gtk-doc/stable)
4461 ,@(package-native-inputs vte)))
4462 (arguments
4463 `(#:configure-flags '("-Ddocs=true")))
4464 (synopsis "Enhanced VTE terminal widget")
4465 (description
4466 "VTE is a library (libvte) implementing a terminal emulator widget for
4467 GTK+, this fork provides additional functions exposed for keyboard text
4468 selection and URL hints.")))
4469
4470 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4471 (define-public vte/gtk+-2
4472 (package (inherit vte)
4473 (name "vte")
4474 (version "0.28.2")
4475 (source (origin
4476 (method url-fetch)
4477 (uri (string-append "mirror://gnome/sources/" name "/"
4478 (version-major+minor version) "/"
4479 name "-" version ".tar.xz"))
4480 (sha256
4481 (base32
4482 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4483 (patches (search-patches
4484 "vte-CVE-2012-2738-pt1.patch"
4485 "vte-CVE-2012-2738-pt2.patch"))))
4486 (build-system gnu-build-system)
4487 (arguments
4488 '(#:configure-flags '("--disable-python")))
4489 (native-inputs
4490 `(("pkg-config" ,pkg-config)
4491 ("intltool" ,intltool)
4492 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4493 (propagated-inputs
4494 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4495 ("ncurses" ,ncurses))))) ; required by libvte.la
4496
4497 (define-public vinagre
4498 (package
4499 (name "vinagre")
4500 (version "3.22.0")
4501 (source (origin
4502 (method url-fetch)
4503 (uri (string-append "mirror://gnome/sources/" name "/"
4504 (version-major+minor version) "/"
4505 name "-" version ".tar.xz"))
4506 (patches (search-patches "vinagre-newer-freerdp.patch"
4507 "vinagre-newer-rdp-parameters.patch"))
4508 (sha256
4509 (base32
4510 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4511 (build-system glib-or-gtk-build-system)
4512 (arguments
4513 ;; Disable -Werror and such, to avoid build failures on compilation
4514 ;; warnings.
4515 '(#:configure-flags '("--enable-compile-warnings=minimum"
4516 "CFLAGS=-fcommon")
4517 #:phases
4518 (modify-phases %standard-phases
4519 (add-before 'install 'skip-gtk-update-icon-cache
4520 (lambda _
4521 ;; Don't create 'icon-theme.cache'
4522 (substitute* (find-files "." "^Makefile$")
4523 (("gtk-update-icon-cache") (which "true")))
4524 #t))
4525 (add-after 'unpack 'patch-configure
4526 (lambda _
4527 (substitute* "configure"
4528 (("freerdp") "freerdp2"))
4529 #t)))))
4530 (native-inputs
4531 `(("pkg-config" ,pkg-config)
4532 ("intltool" ,intltool)
4533 ("itstool" ,itstool)
4534 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4535 (inputs
4536 `(("libxml2" ,libxml2)
4537 ("gtk-vnc" ,gtk-vnc)
4538 ("gnome-keyring" ,gnome-keyring)
4539 ("libsecret" ,libsecret)
4540 ("freerdp" ,freerdp)
4541 ("spice" ,spice)
4542 ("spice-gtk" ,spice-gtk)
4543 ("telepathy-glib" ,telepathy-glib)
4544 ("vte" ,vte)))
4545 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4546 (synopsis "Remote desktop viewer for GNOME")
4547 (description "Vinagre is a remote display client supporting the VNC, SPICE
4548 and RDP protocols.")
4549 (license license:gpl3+)))
4550
4551 (define-public dconf
4552 (package
4553 (name "dconf")
4554 (version "0.36.0")
4555 (source (origin
4556 (method url-fetch)
4557 (uri (string-append
4558 "mirror://gnome/sources/" name "/"
4559 (version-major+minor version) "/"
4560 name "-" version ".tar.xz"))
4561 (sha256
4562 (base32
4563 "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
4564 (build-system meson-build-system)
4565 (propagated-inputs
4566 ;; In Requires of dconf.pc.
4567 `(("glib" ,glib)))
4568 (inputs
4569 `(("gtk+" ,gtk+)
4570 ("dbus" ,dbus)))
4571 (native-inputs
4572 `(("bash-completion" ,bash-completion)
4573 ("libxslt" ,libxslt) ;for xsltproc
4574 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4575 ("docbook-xml" ,docbook-xml-4.2)
4576 ("docbook-xsl" ,docbook-xsl)
4577 ("glib:bin" ,glib "bin")
4578 ("gtk-doc" ,gtk-doc/stable)
4579 ("pkg-config" ,pkg-config)
4580 ("vala" ,vala)))
4581 (arguments
4582 `(#:glib-or-gtk? #t
4583 #:configure-flags '("-Denable-gtk-doc=true")
4584 #:phases (modify-phases %standard-phases
4585 (add-after 'unpack 'increase-test-timeout
4586 (lambda _
4587 ;; On big-memory systems, the engine test may take
4588 ;; much longer than the default of 30 seconds.
4589 (substitute* "tests/meson.build"
4590 (("test\\(unit_test\\[0\\], exe" all)
4591 (string-append all ", timeout : 90")))
4592 #t)))))
4593 (home-page "https://developer.gnome.org/dconf/")
4594 (synopsis "Low-level GNOME configuration system")
4595 (description "Dconf is a low-level configuration system. Its main purpose
4596 is to provide a backend to GSettings on platforms that don't already have
4597 configuration storage systems.")
4598 (license license:lgpl2.1+)))
4599
4600 (define-public json-glib
4601 (package
4602 (name "json-glib")
4603 (version "1.6.2")
4604 (source (origin
4605 (method url-fetch)
4606 (uri (string-append "mirror://gnome/sources/" name "/"
4607 (version-major+minor version) "/"
4608 name "-" version ".tar.xz"))
4609 (sha256
4610 (base32
4611 "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3"))))
4612 (build-system meson-build-system)
4613 (outputs '("out" "doc"))
4614 (arguments
4615 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
4616 #:configure-flags
4617 (list
4618 "-Ddocs=true"
4619 "-Dman=true"
4620 ,@(if (%current-target-system)
4621 ;; If enabled, gtkdoc-scangobj will try to execute a
4622 ;; cross-compiled binary.
4623 '("-Dgtk_doc=disabled"
4624 ;; Trying to build introspection data when cross-compiling
4625 ;; causes errors during linking.
4626 "-Dintrospection=disabled")
4627 '()))
4628 #:phases
4629 (modify-phases %standard-phases
4630 (add-after 'unpack 'patch-docbook
4631 ;; TODO(core-updates): Use (or native-inputs inputs)
4632 ;; unconditionally.
4633 (lambda* (#:key ,@(if (%current-target-system)
4634 '(native-inputs)
4635 '()) inputs #:allow-other-keys)
4636 (with-directory-excursion "doc"
4637 (substitute* (find-files "." "\\.xml$")
4638 (("http://www.oasis-open.org/docbook/xml/4\\.3/")
4639 (string-append (assoc-ref ,(if (%current-target-system)
4640 '(or native-inputs inputs)
4641 'inputs)
4642 "docbook-xml")
4643 "/xml/dtd/docbook/")))
4644 (substitute* "meson.build"
4645 (("http://docbook.sourceforge.net/release/xsl/current/")
4646 (string-append (assoc-ref ,(if (%current-target-system)
4647 '(or native-inputs inputs)
4648 'inputs) "docbook-xsl")
4649 "/xml/xsl/docbook-xsl-1.79.2/"))))
4650 #t))
4651 ;; When cross-compiling, there are no docs to move.
4652 ,(if (%current-target-system)
4653 '(add-after 'install 'stub-docs
4654 (lambda* (#:key outputs #:allow-other-keys)
4655 ;; The daemon doesn't like empty output paths.
4656 (mkdir (assoc-ref outputs "doc"))))
4657 '(add-after 'install 'move-docs
4658 (lambda* (#:key outputs #:allow-other-keys)
4659 (let* ((out (assoc-ref outputs "out"))
4660 (doc (assoc-ref outputs "doc")))
4661 (mkdir-p (string-append doc "/share"))
4662 (rename-file
4663 (string-append out "/share/gtk-doc")
4664 (string-append doc "/share/gtk-doc"))
4665 #t)))))))
4666 (native-inputs
4667 `(("docbook-xml" ,docbook-xml-4.3)
4668 ("docbook-xsl" ,docbook-xsl)
4669 ("gettext" ,gettext-minimal)
4670 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4671 ("gobject-introspection" ,gobject-introspection)
4672 ("gtk-doc" ,gtk-doc)
4673 ("pkg-config" ,pkg-config)
4674 ("xsltproc" ,libxslt)))
4675 (inputs
4676 ;; TODO(core-updates): Make this input unconditional.
4677 (if (%current-target-system)
4678 `(("bash-minimal" ,bash-minimal))
4679 '()))
4680 (propagated-inputs
4681 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4682 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4683 (synopsis "Glib and GObject implementation of JSON")
4684 (description "JSON-GLib is a library providing serialization and
4685 described by RFC 4627. It implements a full JSON parser and generator using
4686 GLib and GObject, and integrates JSON with GLib data types.")
4687 (license license:lgpl2.1+)))
4688
4689 (define-public libxklavier
4690 (package
4691 (name "libxklavier")
4692 (version "5.4")
4693 (source (origin
4694 ;; Note: There's no tarball at ftp.gnome.org for this version.
4695 (method git-fetch)
4696 (uri (git-reference
4697 (url "https://anongit.freedesktop.org/git/libxklavier")
4698 (commit (string-append "libxklavier-" version))))
4699 (sha256
4700 (base32
4701 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4702 (file-name (git-file-name name version))))
4703 (build-system gnu-build-system)
4704 (arguments
4705 '(#:configure-flags
4706 (list (string-append "--with-xkb-base="
4707 (assoc-ref %build-inputs "xkeyboard-config")
4708 "/share/X11/xkb")
4709 "--disable-xmodmap-support")))
4710 (native-inputs
4711 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4712 ("gobject-introspection" ,gobject-introspection)
4713 ("pkg-config" ,pkg-config)
4714 ("gtk-doc" ,gtk-doc/stable)
4715 ("intltool" ,intltool)
4716 ("which" ,which)
4717 ("autoconf" ,autoconf)
4718 ("automake" ,automake)
4719 ("libtool" ,libtool)))
4720 (propagated-inputs
4721 ;; Required by libxklavier.pc.
4722 `(("glib" ,glib)
4723 ("libxml2" ,libxml2)))
4724 (inputs
4725 `(("iso-codes" ,iso-codes)
4726 ("libxi" ,libxi)
4727 ("libxkbfile" ,libxkbfile)
4728 ("xkbcomp" ,xkbcomp)
4729 ("xkeyboard-config" ,xkeyboard-config)))
4730 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4731 (synopsis "High-level API for X Keyboard Extension")
4732 (description
4733 "LibXklavier is a library providing high-level API for X Keyboard
4734 Extension known as XKB. This library is intended to support XFree86 and other
4735 commercial X servers. It is useful for creating XKB-related software (layout
4736 indicators etc).")
4737 (license license:lgpl2.0+)))
4738
4739 (define-public python2-rsvg
4740 ;; XXX: This is actually a subset of gnome-python-desktop.
4741 (package
4742 (name "python2-rsvg")
4743 (version "2.32.0")
4744 (source
4745 (origin
4746 (method url-fetch)
4747 (uri (string-append
4748 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4749 version ".tar.bz2"))
4750 (sha256
4751 (base32
4752 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4753 (build-system gnu-build-system)
4754 (native-inputs
4755 `(("pkg-config" ,pkg-config)))
4756 (inputs
4757 `(("python" ,python-2)
4758 ("python2-pygtk" ,python2-pygtk)
4759 ("librsvg" ,librsvg)))
4760 (home-page "https://www.gnome.org")
4761 (synopsis "Python bindings to librsvg")
4762 (description
4763 "This package provides Python bindings to librsvg, the SVG rendering
4764 library.")
4765
4766 ;; This is the license of the rsvg bindings. The license of each module
4767 ;; of gnome-python-desktop is given in 'COPYING'.
4768 (license license:lgpl2.1+)))
4769
4770 (define-public glib-networking
4771 (package
4772 (name "glib-networking")
4773 (version "2.68.2")
4774 (source (origin
4775 (method url-fetch)
4776 (uri (string-append "mirror://gnome/sources/glib-networking/"
4777 (version-major+minor version) "/"
4778 "glib-networking-" version ".tar.xz"))
4779 (sha256
4780 (base32
4781 "0kwrsp1xbqf852nqmd5cr7hqw771q0dxkzpzlibdp5zn9q2vqpjk"))
4782 (patches
4783 (search-patches "glib-networking-gnutls-binding.patch"))))
4784 (build-system meson-build-system)
4785 (native-inputs
4786 `(("pkg-config" ,pkg-config)
4787 ("gettext" ,gettext-minimal)))
4788 (inputs
4789 `(("glib" ,glib)
4790 ("gnutls" ,gnutls)
4791 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4792 ("libproxy" ,libproxy)))
4793 (home-page "https://wiki.gnome.org/Projects/GLib")
4794 (synopsis "Network extensions for GLib")
4795 (description
4796 "Glib-networking contains the implementations of certain GLib networking
4797 features that cannot be implemented directly in GLib itself because of their
4798 dependencies. Currently it contains GnuTLS and OpenSSL-based implementations of
4799 GTlsBackend, a libproxy-based implementation of GProxyResolver,
4800 GLibproxyResolver, and a GNOME GProxyResolver that uses the proxy information
4801 from the GSettings schemas in gsettings-desktop-schemas.")
4802 (license license:lgpl2.1+)))
4803
4804 (define-public rest
4805 (package
4806 (name "rest")
4807 (version "0.8.1")
4808 (source (origin
4809 (method url-fetch)
4810 (uri (string-append "mirror://gnome/sources/rest/"
4811 (version-major+minor version) "/"
4812 name "-" version ".tar.xz"))
4813 (sha256
4814 (base32
4815 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4816 (build-system gnu-build-system)
4817 (arguments
4818 '(#:tests? #f ; tests require internet connection
4819 #:configure-flags
4820 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4821 (native-inputs
4822 `(("glib-mkenums" ,glib "bin")
4823 ("gobject-introspection" ,gobject-introspection)
4824 ("pkg-config" ,pkg-config)))
4825 (propagated-inputs
4826 ;; rest-0.7.pc refers to all these.
4827 `(("glib" ,glib)
4828 ("libsoup" ,libsoup)
4829 ("libxml2" ,libxml2)))
4830 (home-page "https://www.gtk.org/")
4831 (synopsis "RESTful web api query library")
4832 (description
4833 "This library was designed to make it easier to access web services that
4834 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4835 libxml to ease remote use of the RESTful API.")
4836 (license license:lgpl2.1+)))
4837
4838 (define-public libsoup
4839 (package
4840 (name "libsoup")
4841 (version "2.72.0")
4842 (source (origin
4843 (method url-fetch)
4844 (uri (string-append "mirror://gnome/sources/libsoup/"
4845 (version-major+minor version) "/"
4846 "libsoup-" version ".tar.xz"))
4847 (sha256
4848 (base32
4849 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
4850 (build-system meson-build-system)
4851 (outputs '("out" "doc"))
4852 (arguments
4853 `(#:modules ((guix build utils)
4854 (guix build meson-build-system)
4855 (ice-9 popen))
4856
4857 #:configure-flags '("-Dgtk_doc=true")
4858 #:phases
4859 (modify-phases %standard-phases
4860 (add-after 'unpack 'patch-docbook-xml
4861 (lambda* (#:key inputs #:allow-other-keys)
4862 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
4863 "/xml/dtd/docbook")))
4864 (substitute* (find-files "docs/reference")
4865 (("http://.*/docbookx\\.dtd")
4866 (string-append xmldoc "/docbookx.dtd")))
4867 #t)))
4868 (add-after 'unpack 'adjust-tests
4869 (lambda _
4870 ;; This test fails due to missing /etc/nsswitch.conf
4871 ;; in the build environment.
4872 (substitute* "tests/socket-test.c"
4873 ((".*/sockets/unconnected.*") ""))
4874
4875 ;; These fail because "subdomain.localhost" does not resolve in
4876 ;; the build environment.
4877 (substitute* "tests/hsts-test.c"
4878 ((".*/hsts/basic.*") "")
4879 ((".*/hsts/subdomains.*") "")
4880 ((".*/hsts/superdomain.*") "")
4881 ((".*/hsts/utf8-address.*") ""))
4882 (substitute* "tests/hsts-db-test.c"
4883 ((".*/hsts-db/subdomains.*") ""))
4884
4885 ;; FIXME: ssl-test fails, starting with
4886 ;; glib-networking 2.68.x.
4887 (substitute* "tests/meson.build"
4888 (("[ \t]*\\['ssl', true, \\[\\]\\],") ""))
4889 #t))
4890 (add-after 'install 'move-doc
4891 (lambda* (#:key outputs #:allow-other-keys)
4892 (let ((out (assoc-ref outputs "out"))
4893 (doc (assoc-ref outputs "doc")))
4894 (mkdir-p (string-append doc "/share"))
4895 (copy-recursively (string-append out "/share/gtk-doc")
4896 (string-append doc "/share/gtk-doc"))
4897 (delete-file-recursively (string-append out "/share/gtk-doc"))
4898 #t))))))
4899 (native-inputs
4900 `(("docbook-xml" ,docbook-xml-4.1.2)
4901 ("glib:bin" ,glib "bin") ; for glib-mkenums
4902 ("gobject-introspection" ,gobject-introspection)
4903 ("gtk-doc" ,gtk-doc/stable)
4904 ("intltool" ,intltool)
4905 ("pkg-config" ,pkg-config)
4906 ("python" ,python-wrapper)
4907 ("vala" ,vala)
4908 ("php" ,php)
4909 ("curl" ,curl)
4910 ("httpd" ,httpd)))
4911 (propagated-inputs
4912 ;; libsoup-2.4.pc refers to all of these (except where otherwise noted)
4913 `(("brotli" ,brotli)
4914 ("glib" ,glib)
4915 ("glib-networking" ,glib-networking) ; for GIO runtime modules
4916 ("libpsl" ,libpsl)
4917 ("libxml2" ,libxml2)
4918 ("sqlite" ,sqlite)
4919 ("zlib" ,zlib)))
4920 (inputs
4921 `(("mit-krb5" ,mit-krb5)
4922 ("ntlm_auth" ,samba))) ; For ntlm_auth support
4923 (home-page "https://wiki.gnome.org/Projects/libsoup")
4924 (synopsis "GLib-based HTTP Library")
4925 (description
4926 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4927 and the GLib main loop, to integrate well with GNOME applications.")
4928 (license license:lgpl2.0+)))
4929
4930
4931 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4932 (define-public libsoup-minimal
4933 (package/inherit libsoup
4934 (name "libsoup-minimal")
4935 (outputs (delete "doc" (package-outputs libsoup)))
4936 (arguments
4937 (substitute-keyword-arguments (package-arguments libsoup)
4938 ((#:configure-flags configure-flags)
4939 `(delete "-Dgtk_doc=true" ,configure-flags))
4940 ((#:phases phases)
4941 `(modify-phases ,phases
4942 (delete 'move-doc)))))
4943 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4944
4945 (define-public libsecret
4946 (package
4947 (name "libsecret")
4948 (version "0.20.4")
4949 (source (origin
4950 (method url-fetch)
4951 (uri (string-append
4952 "mirror://gnome/sources/libsecret/"
4953 (version-major+minor version) "/"
4954 "libsecret-" version ".tar.xz"))
4955 (sha256
4956 (base32
4957 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
4958 (build-system gnu-build-system)
4959 (outputs '("out" "doc"))
4960 (arguments
4961 `(#:tests? #f ; FIXME: Testing hangs.
4962 #:configure-flags
4963 (list (string-append "--with-html-dir="
4964 (assoc-ref %outputs "doc")
4965 "/share/gtk-doc/html"))))
4966 (native-inputs
4967 `(("gettext" ,gettext-minimal)
4968 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4969 ("gobject-introspection" ,gobject-introspection)
4970 ("pkg-config" ,pkg-config)
4971 ("vala" ,vala)
4972 ("xsltproc" ,libxslt)))
4973 ;; These are needed for the tests.
4974 ;; FIXME: Add gjs once available.
4975 ;("dbus" ,dbus)
4976 ;("python2" ,python-2)
4977 ;("python2-dbus" ,python2-dbus)
4978 ;("python2-pygobject" ,python2-pygobject)
4979 ;("python2-pygobject-2" ,python2-pygobject-2)))
4980 (propagated-inputs
4981 `(("glib" ,glib))) ; required by libsecret-1.pc
4982 (inputs
4983 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
4984 ;; doesn't seem to affect the build result.
4985 `(("docbook-xsl" ,docbook-xsl)
4986 ("libgcrypt" ,libgcrypt)
4987 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4988 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4989 (synopsis "GObject bindings for \"Secret Service\" API")
4990 (description
4991 "Libsecret is a GObject based library for storing and retrieving passwords
4992 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4993 (license license:lgpl2.1+)))
4994
4995 (define-public five-or-more
4996 (package
4997 (name "five-or-more")
4998 (version "3.32.2")
4999 (source
5000 (origin
5001 (method url-fetch)
5002 (uri (string-append "mirror://gnome/sources/five-or-more/"
5003 (version-major+minor version) "/"
5004 "five-or-more-" version ".tar.xz"))
5005 (sha256
5006 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
5007 (build-system meson-build-system)
5008 (arguments
5009 '(#:glib-or-gtk? #t
5010 #:phases
5011 (modify-phases %standard-phases
5012 (add-after 'unpack 'skip-gtk-update-icon-cache
5013 (lambda _
5014 (substitute* "meson_post_install.py"
5015 (("gtk-update-icon-cache") (which "true")))
5016 #t)))))
5017 (native-inputs
5018 `(("pkg-config" ,pkg-config)
5019 ("appstream-glib" ,appstream-glib)
5020 ("desktop-file-utils" ,desktop-file-utils)
5021 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5022 ("intltool" ,intltool)
5023 ("itstool" ,itstool)
5024 ("vala" ,vala)
5025 ("xmllint" ,libxml2)))
5026 (inputs
5027 `(("gtk+" ,gtk+)
5028 ("libgnome-games-support" ,libgnome-games-support)
5029 ("librsvg" ,librsvg)))
5030 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
5031 (synopsis "Logic puzzle game")
5032 (description "Five or More is a game where you try to align
5033 five or more objects of the same color and shape causing them to disappear.
5034 On every turn more objects will appear, until the board is full.
5035 Try to last as long as possible.")
5036 (license license:gpl2+)))
5037
5038 (define-public gnome-mines
5039 (package
5040 (name "gnome-mines")
5041 (version "40.0")
5042 (source
5043 (origin
5044 (method url-fetch)
5045 (uri (string-append "mirror://gnome/sources/" name "/"
5046 (version-major version) "/"
5047 name "-" version ".tar.xz"))
5048 (sha256
5049 (base32 "0sf6kdvhr4pr3hddnj6ql9larz2wy108sri31id6x9g459nbly8z"))))
5050 (build-system meson-build-system)
5051 (arguments
5052 '(#:glib-or-gtk? #t
5053 #:phases
5054 (modify-phases %standard-phases
5055 (add-after 'unpack 'skip-gtk-update-icon-cache
5056 (lambda _
5057 (substitute* "build-aux/meson_post_install.py"
5058 (("gtk-update-icon-cache") (which "true"))))))))
5059 (native-inputs
5060 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5061 ("pkg-config" ,pkg-config)
5062 ("desktop-file-utils" ,desktop-file-utils)
5063 ("intltool" ,intltool)
5064 ("itstool" ,itstool)
5065 ("vala" ,vala)
5066 ("yelp" ,yelp)
5067 ("appstream-glib" ,appstream-glib)))
5068 (inputs
5069 `(("gtk+" ,gtk+)
5070 ("libgnome-games-support" ,libgnome-games-support)
5071 ("librsvg" ,librsvg)))
5072 (home-page "https://wiki.gnome.org/Apps/Mines")
5073 (synopsis "Minesweeper game")
5074 (description
5075 "Mines (previously gnomine) is a puzzle game where you locate mines
5076 floating in an ocean using only your brain and a little bit of luck.")
5077 (license license:gpl2+)))
5078
5079 (define-public gnome-multi-writer
5080 (package
5081 (name "gnome-multi-writer")
5082 (version "3.35.90")
5083 (source
5084 (origin
5085 (method url-fetch)
5086 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5087 (version-major+minor version) "/"
5088 "gnome-multi-writer-" version ".tar.xz"))
5089 (sha256
5090 (base32
5091 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5092 (build-system meson-build-system)
5093 (arguments
5094 '(#:glib-or-gtk? #t
5095 #:phases
5096 (modify-phases %standard-phases
5097 (add-after 'unpack 'skip-post-install
5098 (lambda _
5099 (substitute* "meson.build"
5100 (("meson.add_install_script" &) (string-append "# " &)))
5101 #t)))))
5102 (native-inputs
5103 `(("glib:bin" ,glib "bin")
5104 ("pkg-config" ,pkg-config)))
5105 (inputs
5106 `(("gtk+" ,gtk+)
5107 ("glib" ,glib) ; for gio
5108 ("gusb" ,gusb)
5109 ("udisks" ,udisks)
5110 ("libgudev" ,libgudev)
5111 ("libcanberra" ,libcanberra)
5112 ("polkit" ,polkit)))
5113 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5114 (synopsis "Write to multiple USB devices at once")
5115 (description
5116 "MultiWriter can be used to write an ISO file to multiple USB devices at
5117 once.")
5118 (license license:gpl2+)))
5119
5120 (define-public gnome-sudoku
5121 (package
5122 (name "gnome-sudoku")
5123 (version "40.2")
5124 (source
5125 (origin
5126 (method url-fetch)
5127 (uri (string-append "mirror://gnome/sources/" name "/"
5128 (version-major version) "/"
5129 name "-" version ".tar.xz"))
5130 (sha256
5131 (base32
5132 "18slsxifad5cjz4fqi818i66jc9b7kzgn01qxa0ra4y7wcqha4in"))))
5133 (build-system meson-build-system)
5134 (arguments
5135 '(#:glib-or-gtk? #t
5136 #:phases
5137 (modify-phases %standard-phases
5138 (add-after 'unpack 'skip-gtk-update-icon-cache
5139 (lambda _
5140 (substitute* "build-aux/post_install.py"
5141 (("gtk-update-icon-cache") (which "true"))))))))
5142 (native-inputs
5143 `(("pkg-config" ,pkg-config)
5144 ("desktop-file-utils" ,desktop-file-utils)
5145 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5146 ("intltool" ,intltool)
5147 ("itstool" ,itstool)
5148 ("vala" ,vala)
5149 ("xmllint" ,libxml2)))
5150 (inputs
5151 `(("gtk+" ,gtk+)
5152 ("json-glib" ,json-glib)
5153 ("libgee" ,libgee)
5154 ("librsvg" ,librsvg)
5155 ("qqwing" ,qqwing)))
5156 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5157 (synopsis "Japanese logic game")
5158 (description
5159 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5160 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5161 possible while still providing features that make playing difficult Sudoku
5162 more fun.")
5163 (license license:gpl2+)))
5164
5165 (define-public gnome-terminal
5166 (package
5167 (name "gnome-terminal")
5168 (version "3.40.3")
5169 (source
5170 (origin
5171 (method url-fetch)
5172 (uri (string-append "mirror://gnome/sources/" name "/"
5173 (version-major+minor version) "/"
5174 name "-" version ".tar.xz"))
5175 (sha256
5176 (base32
5177 "08hsic7sn32xw12i3j0ard2bhfhp8gmzqm0pa8xzl5l1jhzsmsfb"))))
5178 (build-system glib-or-gtk-build-system)
5179 (arguments
5180 '(#:configure-flags
5181 (list "--disable-migration" "--disable-search-provider"
5182 "--without-nautilus-extension")
5183 #:phases
5184 (modify-phases %standard-phases
5185 (add-before 'configure 'patch-/bin/true
5186 (lambda _
5187 (substitute* "configure"
5188 (("/bin/true") (which "true"))))))))
5189 (native-inputs
5190 `(("docbook-xsl" ,docbook-xsl)
5191 ("pkg-config" ,pkg-config)
5192 ("desktop-file-utils" ,desktop-file-utils)
5193 ("intltool" ,intltool)
5194 ("itstool" ,itstool)
5195 ("libxslt" ,libxslt)
5196 ("xmllint" ,libxml2)))
5197 (propagated-inputs
5198 `(("dconf" ,dconf)))
5199 (inputs
5200 `(("gtk+" ,gtk+)
5201 ("vte" ,vte)
5202 ("gnutls" ,gnutls)
5203 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5204 ("util-linux" ,util-linux "lib")
5205 ("vala" ,vala)))
5206 (home-page "https://wiki.gnome.org/Apps/Terminal")
5207 (synopsis "Terminal emulator")
5208 (description
5209 "GNOME Terminal is a terminal emulator application for accessing a
5210 UNIX shell environment which can be used to run programs available on
5211 your system.
5212
5213 It supports several profiles, multiple tabs and implements several
5214 keyboard shortcuts.")
5215 (license license:gpl3+)))
5216
5217 (define-public colord
5218 (package
5219 (name "colord")
5220 (version "1.4.5")
5221 (source
5222 (origin
5223 (method url-fetch)
5224 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5225 "colord-" version ".tar.xz"))
5226 (sha256
5227 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5228 (build-system meson-build-system)
5229 (arguments
5230 '(;; FIXME: One test fails:
5231 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5232 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5233 ;; application/x-zerosize
5234 #:tests? #f
5235 #:glib-or-gtk? #t
5236 #:configure-flags (list "-Dlocalstatedir=/var"
5237 ;; No dep on systemd.
5238 "-Dsystemd=false"
5239 ;; Wants to install to global completion dir;
5240 ;; punt.
5241 "-Dbash_completion=false"
5242 "-Ddaemon_user=colord"
5243 "-Dsane=true"
5244 "-Dvapi=true"
5245 ;; Requires spotread.
5246 "-Dargyllcms_sensor=false"
5247 ;; TODO: Requires docbook2x.
5248 "-Dman=false")
5249 #:phases
5250 (modify-phases %standard-phases
5251 (add-before 'configure 'patch-build-system
5252 (lambda* (#:key outputs #:allow-other-keys)
5253 (substitute* "rules/meson.build"
5254 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5255 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
5256 #t))
5257 (add-before 'configure 'set-sqlite3-file-name
5258 (lambda* (#:key inputs #:allow-other-keys)
5259 ;; "colormgr dump" works by invoking the "sqlite3" command.
5260 ;; Record its absolute file name.
5261 (let ((sqlite (assoc-ref inputs "sqlite")))
5262 (substitute* "client/cd-util.c"
5263 (("\"sqlite3\"")
5264 (string-append "\"" sqlite "/bin/sqlite3\"")))
5265 #t))))))
5266 (native-inputs
5267 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5268 ("gettext" ,gettext-minimal)
5269 ("gobject-introspection" ,gobject-introspection)
5270 ("gtk-doc" ,gtk-doc/stable)
5271 ("pkg-config" ,pkg-config)
5272 ("vala" ,vala)))
5273 (propagated-inputs
5274 ;; colord.pc refers to all these.
5275 `(("glib" ,glib)
5276 ("lcms" ,lcms)
5277 ("udev" ,eudev)))
5278 (inputs
5279 `(("dbus-glib" ,dbus-glib)
5280 ("gusb" ,gusb)
5281 ("libgudev" ,libgudev)
5282 ("libusb" ,libusb)
5283 ("polkit" ,polkit)
5284 ("python" ,python-wrapper)
5285 ("sqlite" ,sqlite)
5286 ("sane-backends" ,sane-backends)))
5287 (home-page "https://www.freedesktop.org/software/colord/")
5288 (synopsis "Color management service")
5289 (description "Colord is a system service that makes it easy to manage,
5290 install and generate color profiles to accurately color manage input and
5291 output devices.")
5292 (license license:gpl2+)))
5293
5294 (define-public geoclue
5295 (package
5296 (name "geoclue")
5297 (version "2.5.7")
5298 (source
5299 (origin
5300 (method url-fetch)
5301 (uri
5302 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5303 version "/geoclue-" version ".tar.bz2"))
5304 (sha256
5305 (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
5306 (patches (search-patches "geoclue-config.patch"))))
5307 (build-system meson-build-system)
5308 (arguments
5309 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
5310 (native-inputs
5311 `(("pkg-config" ,pkg-config)
5312 ("gobject-introspection" ,gobject-introspection)
5313 ("modem-manager" ,modem-manager)
5314 ("libnotify" ,libnotify)
5315 ("gtk-doc" ,gtk-doc/stable)
5316 ("intltool" ,intltool)))
5317 (inputs
5318 `(("avahi" ,avahi)
5319 ("glib:bin" ,glib "bin")
5320 ("glib-networking" ,glib-networking)
5321 ("json-glib" ,json-glib)
5322 ("libsoup" ,libsoup)))
5323 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5324 (synopsis "Geolocation service")
5325 (description "Geoclue is a D-Bus service that provides location
5326 information. The primary goal of the Geoclue project is to make creating
5327 location-aware applications as simple as possible, while the secondary goal is
5328 to ensure that no application can access location information without explicit
5329 permission from user.")
5330 (license license:gpl2+)))
5331
5332 (define-public geocode-glib
5333 (package
5334 (name "geocode-glib")
5335 (version "3.26.2")
5336 (source (origin
5337 (method url-fetch)
5338 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5339 (version-major+minor version) "/"
5340 "geocode-glib-" version ".tar.xz"))
5341 (sha256
5342 (base32
5343 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5344 (build-system meson-build-system)
5345 (arguments
5346 `(#:phases
5347 (modify-phases %standard-phases
5348 ;; The tests require a bunch of locales.
5349 (add-before 'check 'set-locales
5350 (lambda* (#:key inputs #:allow-other-keys)
5351 (setenv "GUIX_LOCPATH"
5352 (search-input-directory inputs "lib/locale")))))))
5353 (native-inputs
5354 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5355 ("glibc-locales" ,glibc-locales) ; for tests
5356 ("gettext" ,gettext-minimal)
5357 ("gobject-introspection" ,gobject-introspection)
5358 ("gtk-doc" ,gtk-doc/stable)
5359 ("pkg-config" ,pkg-config)
5360 ("json-glib" ,json-glib)))
5361 (propagated-inputs
5362 ;; geocode-glib-1.0.pc refers to GIO.
5363 `(("glib" ,glib)))
5364 (inputs
5365 `(("libsoup" ,libsoup)))
5366 (home-page "https://github.com/GNOME/geocode-glib/")
5367 (synopsis "Geocoding and reverse-geocoding library")
5368 (description
5369 "geocode-glib is a convenience library for geocoding (finding longitude,
5370 and latitude from an address) and reverse geocoding (finding an address from
5371 coordinates) using the Nominatim service. geocode-glib caches requests for
5372 faster results and to avoid unnecessary server load.")
5373 (license license:lgpl2.0+)))
5374
5375 (define-public upower
5376 (package
5377 (name "upower")
5378 (version "0.99.12")
5379 (source
5380 (origin
5381 (method git-fetch)
5382 (uri (git-reference
5383 (url "https://gitlab.freedesktop.org/upower/upower")
5384 (commit (string-append "UPOWER_"
5385 (string-map (match-lambda (#\. #\_)
5386 (chr chr))
5387 version)))))
5388 (file-name (git-file-name name version))
5389 (sha256
5390 (base32 "00q63yc8vp5cq05vhpwq3qglapdm8hg0lrqkzdwkphk30qzb6hv6"))
5391 (patches (search-patches "upower-builddir.patch"))
5392 (modules '((guix build utils)))
5393 (snippet
5394 '(begin
5395 ;; Upstream commit
5396 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5397 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5398 ;; 'dbus-configuration-directory' in (gnu services dbus)
5399 ;; expects it in etc/. Thus, move it back to its previous
5400 ;; location.
5401 (substitute* "src/Makefile.am"
5402 (("^dbusconfdir =.*$")
5403 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5404 #t))))
5405 (build-system glib-or-gtk-build-system)
5406 (arguments
5407 '(#:phases
5408 (modify-phases %standard-phases
5409 (add-before 'check 'pre-check
5410 (lambda* (#:key inputs #:allow-other-keys)
5411 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5412 "/lib")))
5413 (setenv "LD_LIBRARY_PATH" umockdev))
5414 #t)))
5415 #:configure-flags (list "--localstatedir=/var"
5416 (string-append "--with-udevrulesdir="
5417 (assoc-ref %outputs "out")
5418 "/lib/udev/rules.d"))))
5419 (native-inputs
5420 `(("autoconf" ,autoconf)
5421 ("automake" ,automake)
5422 ("gobject-introspection" ,gobject-introspection)
5423 ("gtk-doc" ,gtk-doc)
5424 ("intltool" ,intltool)
5425 ("libtool" ,libtool)
5426 ("pkg-config" ,pkg-config)
5427 ("python" ,python)
5428 ("which" ,which) ; for ./autogen.sh
5429
5430 ;; For tests.
5431 ("python-dbus" ,python-dbus)
5432 ("python-dbusmock" ,python-dbusmock)
5433 ("python-pygobject" ,python-pygobject)
5434 ("umockdev" ,umockdev)
5435
5436 ;; For man pages.
5437 ("docbook-xsl" ,docbook-xsl)
5438 ("libxslt" ,libxslt) ; for 'xsltproc'
5439 ("libxml2" ,libxml2))) ; for 'XML_CATALOG_FILES'
5440 (inputs
5441 `(("dbus-glib" ,dbus-glib)
5442 ("libgudev" ,libgudev)
5443 ("libusb" ,libusb)))
5444 (propagated-inputs
5445 ;; In Requires of upower-glib.pc.
5446 `(("glib" ,glib)))
5447 (home-page "https://upower.freedesktop.org/")
5448 (synopsis "System daemon for managing power devices")
5449 (description
5450 "UPower is an abstraction for enumerating power devices,
5451 listening to device events and querying history and statistics. Any
5452 application or service on the system can access the org.freedesktop.UPower
5453 service via the system message bus.")
5454 (license license:gpl2+)))
5455
5456 (define-public libgweather
5457 (package
5458 (name "libgweather")
5459 (version "40.0")
5460 (source (origin
5461 (method url-fetch)
5462 (uri (string-append "mirror://gnome/sources/" name "/"
5463 (version-major version) "/"
5464 name "-" version ".tar.xz"))
5465 (sha256
5466 (base32
5467 "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna"))))
5468 (build-system meson-build-system)
5469 (arguments
5470 `(#:tests? #f ; one of two tests requires network access
5471 #:configure-flags
5472 `(,(string-append "-Dzoneinfo_dir="
5473 (assoc-ref %build-inputs "tzdata")
5474 "/share/zoneinfo"))))
5475 (native-inputs
5476 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5477 ("gobject-introspection" ,gobject-introspection)
5478 ("pkg-config" ,pkg-config)
5479 ("vala" ,vala)
5480 ("intltool" ,intltool)
5481 ("python-pygobject" ,python-pygobject)))
5482 (propagated-inputs
5483 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5484 ;; libsoup.
5485 `(("gtk+" ,gtk+)
5486 ("gdk-pixbuf" ,gdk-pixbuf)
5487 ("libxml2" ,libxml2)
5488 ("libsoup" ,libsoup)
5489 ("geocode-glib" ,geocode-glib)))
5490 (inputs
5491 `(("tzdata" ,tzdata)))
5492 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5493 (synopsis "Location, time zone, and weather library for GNOME")
5494 (description
5495 "libgweather is a library to access weather information from online
5496 services for numerous locations.")
5497 (license license:gpl2+)))
5498
5499 (define-public gnome-settings-daemon
5500 (package
5501 (name "gnome-settings-daemon")
5502 (version "40.0.1")
5503 (source
5504 (origin
5505 (method url-fetch)
5506 (uri (string-append "mirror://gnome/sources/" name "/"
5507 (version-major version) "/"
5508 name "-" version ".tar.xz"))
5509 (sha256
5510 (base32
5511 "08bv32hvsmd8izw0llvldg0c2d71srch4hi8j94jwgm5d4dsrprp"))
5512 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5513 (build-system meson-build-system)
5514 (arguments
5515 `(#:glib-or-gtk? #t
5516 #:configure-flags
5517 (list (string-append "-Dudev_dir="
5518 (assoc-ref %outputs "out")
5519 "/lib/udev/rules.d/")
5520 "-Dsystemd=false"
5521 ;; Otherwise, the RUNPATH will lack the final path component.
5522 (string-append "-Dc_link_args=-Wl,-rpath="
5523 (assoc-ref %outputs "out")
5524 "/lib/gnome-settings-daemon-3.0"))
5525
5526 #:phases (modify-phases %standard-phases
5527 (add-before 'configure 'set-baobab-file-name
5528 (lambda* (#:key inputs #:allow-other-keys)
5529 ;; Hard-code the file name of Baobab instead of looking
5530 ;; it up in $PATH. This ensures users get the "Examine"
5531 ;; button in the low disk space notification of GDM even
5532 ;; if they don't have GNOME in their main profile.
5533 (let ((baobab (assoc-ref inputs "baobab")))
5534 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5535 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5536 (string-append "g_strdup (\"" baobab
5537 "/bin/baobab\")")))
5538 #t))))
5539
5540 ;; Color management test can't reach the colord system service.
5541 #:tests? #f))
5542 (native-inputs
5543 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5544 ("pkg-config" ,pkg-config)
5545 ("intltool" ,intltool)
5546 ("xsltproc" ,libxslt)
5547 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5548 ("docbook-xml" ,docbook-xml-4.2)
5549 ("docbook-xsl" ,docbook-xsl)))
5550 (inputs
5551 `(("alsa-lib" ,alsa-lib)
5552 ("baobab" ,baobab)
5553 ("colord" ,colord)
5554 ("libgudev" ,libgudev)
5555 ("upower" ,upower)
5556 ("polkit" ,polkit)
5557 ("pulseaudio" ,pulseaudio)
5558 ("libcanberra" ,libcanberra)
5559 ("libx11" ,libx11)
5560 ("libxtst" ,libxtst)
5561 ("lcms" ,lcms)
5562 ("libnotify" ,libnotify)
5563 ("geoclue" ,geoclue)
5564 ("geocode-glib" ,geocode-glib)
5565 ("libgweather" ,libgweather)
5566 ("gnome-desktop" ,gnome-desktop)
5567 ("nss" ,nss)
5568 ("cups" ,cups)
5569 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5570 ("libwacom" ,libwacom)
5571 ("librsvg" ,librsvg)
5572 ("xf86-input-wacom" ,xf86-input-wacom)
5573 ("wayland" ,wayland)
5574 ("network-manager" ,network-manager)
5575 ("gcr" ,gcr)
5576 ("modem-manager" ,modem-manager)))
5577 (home-page "https://www.gnome.org")
5578 (synopsis "GNOME settings daemon")
5579 (description
5580 "This package contains the daemon responsible for setting the various
5581 parameters of a GNOME session and the applications that run under it. It
5582 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5583 settings, themes, mouse settings, and startup of other daemons.")
5584 (license license:gpl2+)))
5585
5586 (define-public totem-pl-parser
5587 (package
5588 (name "totem-pl-parser")
5589 (version "3.26.6")
5590 (source (origin
5591 (method url-fetch)
5592 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5593 (version-major+minor version) "/"
5594 "totem-pl-parser-" version ".tar.xz"))
5595 (sha256
5596 (base32
5597 "075csd5x0frgf93jvhlqiwv5i0qm24zz3iw17jj7v7fgsml0zpy0"))))
5598 (build-system meson-build-system)
5599 (arguments
5600 ;; FIXME: Tests require gvfs.
5601 `(#:tests? #f))
5602 (native-inputs
5603 `(("intltool" ,intltool)
5604 ("glib" ,glib "bin")
5605 ("gobject-introspection" ,gobject-introspection)
5606 ("pkg-config" ,pkg-config)))
5607 (propagated-inputs
5608 `(("glib" ,glib)
5609 ("gmime" ,gmime)
5610 ("libarchive" ,libarchive)
5611 ("libgcrypt" ,libgcrypt)
5612 ("libxml2" ,libxml2)))
5613 (inputs
5614 `(("libsoup" ,libsoup)))
5615 (home-page "https://projects.gnome.org/totem")
5616 (synopsis "Library to parse and save media playlists for GNOME")
5617 (description "Totem-pl-parser is a GObjects-based library to parse and save
5618 playlists in a variety of formats.")
5619 (license license:lgpl2.0+)))
5620
5621 (define-public aisleriot
5622 (package
5623 (name "aisleriot")
5624 (version "3.22.9")
5625 (source (origin
5626 (method url-fetch)
5627 (uri (string-append "mirror://gnome/sources/aisleriot/"
5628 (version-major+minor version) "/"
5629 "aisleriot-" version ".tar.xz"))
5630 (sha256
5631 (base32
5632 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5633 (build-system glib-or-gtk-build-system)
5634 (arguments
5635 '(#:configure-flags
5636 '("--with-platform=gtk-only"
5637 "--with-card-theme-formats=svg")))
5638 (native-inputs
5639 `(("desktop-file-utils" ,desktop-file-utils)
5640 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5641 ("intltool" ,intltool)
5642 ("itstool" ,itstool)
5643 ("pkg-config" ,pkg-config)
5644 ("xmllint" ,libxml2)))
5645 (inputs
5646 `(("gtk+" ,gtk+)
5647 ("guile" ,guile-2.2)
5648 ("libcanberra" ,libcanberra)
5649 ("librsvg" ,librsvg)))
5650 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5651 (synopsis "Solitaire card games")
5652 (description
5653 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5654 which are easy to play with the aid of a mouse.")
5655 (license license:gpl3+)))
5656
5657 (define-public amtk
5658 (package
5659 (name "amtk")
5660 (version "5.3.1")
5661 (source (origin
5662 (method url-fetch)
5663 (uri (string-append "mirror://gnome/sources/amtk/"
5664 (version-major+minor version) "/"
5665 "amtk-" version ".tar.xz"))
5666 (sha256
5667 (base32
5668 "12v3nj1bb7507ndprjggq0hpz8k719b4bwvl8sm43p3ibmn27anm"))))
5669 (build-system meson-build-system)
5670 (native-inputs
5671 `(("gobject-introspection" ,gobject-introspection)
5672 ("glib:bin" ,glib "bin") ; for glib-mkenums
5673 ("gtk-doc" ,gtk-doc/stable)
5674 ("pkg-config" ,pkg-config)))
5675 (inputs
5676 `(("glib" ,glib)
5677 ("gtk+" ,gtk+)))
5678 (home-page "https://wiki.gnome.org/Projects/Amtk")
5679 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5680 (description
5681 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5682 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5683 both a traditional UI or a modern UI with a GtkHeaderBar.")
5684 (license license:lgpl2.1+)))
5685
5686 (define-public devhelp
5687 (package
5688 (name "devhelp")
5689 (version "40.1")
5690 (source (origin
5691 (method url-fetch)
5692 (uri (string-append "mirror://gnome/sources/" name "/"
5693 (version-major version) "/"
5694 name "-" version ".tar.xz"))
5695 (sha256
5696 (base32
5697 "1fvb69l1nyxdrs95ar95rmpfs8nfkpys4x74r8ilid44hhzdk2iy"))))
5698 (build-system meson-build-system)
5699 (arguments
5700 '(#:glib-or-gtk? #t
5701 #:phases
5702 (modify-phases %standard-phases
5703 (add-after 'unpack 'skip-gtk-update-icon-cache
5704 ;; Don't create 'icon-theme.cache'.
5705 (lambda _
5706 (substitute* "meson_post_install.py"
5707 (("gtk-update-icon-cache") "true")))))))
5708 (native-inputs
5709 `(("intltool" ,intltool)
5710 ("itstool" ,itstool)
5711 ("gobject-introspection" ,gobject-introspection)
5712 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5713 ("pkg-config" ,pkg-config)))
5714 (inputs
5715 `(("amtk" ,amtk)
5716 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5717 ("webkitgtk" ,webkitgtk)))
5718 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5719 (synopsis "API documentation browser for GNOME")
5720 (description
5721 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5722 natively with GTK-Doc (the API reference system developed for GTK+ and used
5723 throughout GNOME for API documentation).")
5724 (license license:gpl2+)))
5725
5726 (define-public cogl
5727 (package
5728 (name "cogl")
5729 (version "1.22.8")
5730 (source
5731 (origin
5732 (method url-fetch)
5733 (uri (string-append "mirror://gnome/sources/cogl/"
5734 (version-major+minor version) "/"
5735 "cogl-" version ".tar.xz"))
5736 (sha256
5737 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5738 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5739 ;; cogl, corresponding changes may be appropriate in mutter as well.
5740 (build-system gnu-build-system)
5741 (native-inputs
5742 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5743 ("gobject-introspection" ,gobject-introspection)
5744 ("xorg-server" ,xorg-server-for-tests)
5745 ("pkg-config" ,pkg-config)))
5746 (propagated-inputs
5747 `(("glib" ,glib)
5748 ("gdk-pixbuf" ,gdk-pixbuf)
5749 ("libx11" ,libx11)
5750 ("libxext" ,libxext)
5751 ("libxfixes" ,libxfixes)
5752 ("libxdamage" ,libxdamage)
5753 ("libxcomposite" ,libxcomposite)
5754 ("libxrandr" ,libxrandr)))
5755 (inputs
5756 `(("mesa" ,mesa)
5757 ("cairo" ,cairo)
5758 ("pango" ,pango)
5759 ("gstreamer" ,gstreamer)
5760 ("gst-plugins-base" ,gst-plugins-base)
5761 ("wayland" ,wayland)))
5762 (arguments
5763 `(#:disallowed-references (,xorg-server-for-tests)
5764 #:configure-flags (list "--enable-cogl-gst"
5765 "--enable-wayland-egl-platform"
5766 "--enable-wayland-egl-server"
5767
5768 ;; Arrange to pass an absolute file name to
5769 ;; dlopen for libGL.so.
5770 (string-append "--with-gl-libname="
5771 (assoc-ref %build-inputs "mesa")
5772 "/lib/libGL.so"))
5773 #:phases
5774 (modify-phases %standard-phases
5775 (add-after 'unpack 'fix-build-with-mesa-20
5776 (lambda _
5777 ;; Work around a problem with Mesa 20 where some macros used by
5778 ;; Cogl went missing from eglext.h. This can likely be removed
5779 ;; for newer versions of Cogl or Mesa.
5780 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5781 (substitute* '("configure"
5782 "cogl/winsys/cogl-winsys-egl-kms.c")
5783 (("#include <EGL/eglext.h>" all)
5784 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5785 #t))
5786 (add-before 'check 'start-xorg-server
5787 (lambda* (#:key tests? inputs #:allow-other-keys)
5788 (if tests?
5789 (begin
5790 ;; The test suite requires a running X server.
5791 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5792 (assoc-ref inputs "xorg-server")))
5793 (setenv "DISPLAY" ":1")
5794 #t)
5795 (format #t "test suite not run~%"))
5796 #t)))))
5797 (home-page "https://www.cogl3d.org")
5798 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5799 (description
5800 "Cogl is a small library for using 3D graphics hardware to draw pretty
5801 pictures. The API departs from the flat state machine style of OpenGL and is
5802 designed to make it easy to write orthogonal components that can render
5803 without stepping on each others toes.")
5804 (license (list license:expat ; most of the code
5805 license:bsd-3 ; cogl/cogl-point-in-poly.c
5806 license:sgifreeb2.0 ; cogl-path/tesselator/
5807 license:asl2.0)))) ; examples/android/
5808
5809 (define-public clutter
5810 (package
5811 (name "clutter")
5812 (version "1.26.2")
5813 (source
5814 (origin
5815 (method url-fetch)
5816 (uri (string-append "mirror://gnome/sources/" name "/"
5817 (version-major+minor version) "/"
5818 name "-" version ".tar.xz"))
5819 (sha256
5820 (base32
5821 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5822 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5823 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5824 (build-system gnu-build-system)
5825 (outputs '("out"
5826 "doc")) ;9 MiB of gtk-doc HTML pages
5827 (native-inputs
5828 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5829 ("gobject-introspection" ,gobject-introspection)
5830 ("pkg-config" ,pkg-config)
5831 ("xsltproc" ,libxslt)))
5832 (propagated-inputs
5833 `(("cogl" ,cogl)
5834 ("cairo" ,cairo)
5835 ("atk" ,atk)
5836 ("gtk+" ,gtk+)
5837 ("json-glib" ,json-glib)
5838 ("glib" ,glib)
5839 ("libxcomposite" ,libxcomposite)
5840 ("libxdamage" ,libxdamage)
5841 ("libxext" ,libxext)
5842 ("xinput" ,xinput)))
5843 (inputs
5844 `(("libxkbcommon" ,libxkbcommon)
5845 ("udev" ,eudev)))
5846 (arguments
5847 `(#:configure-flags (list "--enable-x11-backend=yes"
5848
5849 ;; This produces share/doc/{clutter,cally}.
5850 (string-append "--with-html-dir="
5851 (assoc-ref %outputs "doc")
5852 "/share/doc"))
5853 ;; XXX FIXME: Get test suite working. It would probably fail in the
5854 ;; same way the cogl tests fail, since clutter is based on cogl.
5855 #:tests? #f))
5856 (home-page "http://www.clutter-project.org")
5857 (synopsis "OpenGL-based interactive canvas library")
5858 (description
5859 "Clutter is an OpenGL-based interactive canvas library, designed for
5860 creating fast, mainly 2D single window applications such as media box UIs,
5861 presentations, kiosk style applications and so on.")
5862 (license license:lgpl2.0+)))
5863
5864 (define-public clutter-gtk
5865 (package
5866 (name "clutter-gtk")
5867 (version "1.8.4")
5868 (source
5869 (origin
5870 (method url-fetch)
5871 (uri (string-append "mirror://gnome/sources/" name "/"
5872 (version-major+minor version) "/"
5873 name "-" version ".tar.xz"))
5874 (sha256
5875 (base32
5876 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5877 (build-system gnu-build-system)
5878 (native-inputs
5879 `(("pkg-config" ,pkg-config)
5880 ("gobject-introspection" ,gobject-introspection)))
5881 (propagated-inputs
5882 ;; clutter-gtk.pc refers to all these.
5883 `(("clutter" ,clutter)
5884 ("gtk+" ,gtk+)))
5885 (home-page "http://www.clutter-project.org")
5886 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5887 (description
5888 "Clutter is an OpenGL-based interactive canvas library, designed for
5889 creating fast, mainly 2D single window applications such as media box UIs,
5890 presentations, kiosk style applications and so on.")
5891 (license license:lgpl2.0+)))
5892
5893 (define-public clutter-gst
5894 (package
5895 (name "clutter-gst")
5896 (version "3.0.27")
5897 (source
5898 (origin
5899 (method url-fetch)
5900 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5901 (version-major+minor version) "/"
5902 "clutter-gst-" version ".tar.xz"))
5903 (sha256
5904 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5905 (build-system gnu-build-system)
5906 (native-inputs
5907 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5908 ("pkg-config" ,pkg-config)
5909 ("gobject-introspection" ,gobject-introspection)))
5910 (inputs
5911 `(("clutter" ,clutter)
5912 ("gstreamer" ,gstreamer)
5913 ("gst-plugins-base" ,gst-plugins-base)))
5914 (home-page "http://www.clutter-project.org")
5915 (synopsis "Integration library for using GStreamer with Clutter")
5916 (description
5917 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5918 It provides a GStreamer sink to upload frames to GL and an actor that
5919 implements the ClutterGstPlayer interface using playbin. Clutter is an
5920 OpenGL-based interactive canvas library.")
5921 (license license:lgpl2.0+)))
5922
5923 (define-public libchamplain
5924 (package
5925 (name "libchamplain")
5926 (version "0.12.16")
5927 (source (origin
5928 (method url-fetch)
5929 (uri (string-append
5930 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5931 version ".tar.xz"))
5932 (sha256
5933 (base32
5934 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5935 (build-system gnu-build-system)
5936 (arguments '(#:configure-flags '("--enable-vala")))
5937 (native-inputs
5938 `(("gobject-introspection" ,gobject-introspection)
5939 ("pkg-config" ,pkg-config)
5940 ("vala" ,vala)))
5941 (propagated-inputs
5942 `(("libsoup" ,libsoup)
5943 ("sqlite" ,sqlite)
5944 ("clutter" ,clutter)
5945 ("clutter-gtk" ,clutter-gtk)
5946 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5947 ("cairo" ,cairo)
5948 ("gtk+3" ,gtk+)
5949 ("glib" ,glib)))
5950 (home-page "https://projects.gnome.org/libchamplain/")
5951 (synopsis "C library providing a ClutterActor to display maps")
5952 (description
5953 "libchamplain is a C library providing a ClutterActor to display maps.
5954 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5955 and Perl bindings are also available. It supports numerous free map sources
5956 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5957 (license license:lgpl2.1+)))
5958
5959 (define-public gom
5960 (package
5961 (name "gom")
5962 (version "0.3.2")
5963 (source
5964 (origin
5965 (method url-fetch)
5966 (uri (string-append "mirror://gnome/sources/gom/"
5967 (version-major+minor version) "/"
5968 "gom-" version ".tar.xz"))
5969 (sha256
5970 (base32
5971 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5972 (build-system gnu-build-system)
5973 (native-inputs
5974 `(("intltool" ,intltool)
5975 ("pkg-config" ,pkg-config)
5976 ("gobject-introspection" ,gobject-introspection)))
5977 (inputs
5978 `(("glib" ,glib)
5979 ("gdk-pixbuf" ,gdk-pixbuf)
5980 ("sqlite" ,sqlite)))
5981 ;; XXX TODO: Figure out how to run the test suite.
5982 (arguments `(#:tests? #f))
5983 (home-page "https://wiki.gnome.org/Projects/Gom")
5984 (synopsis "Object mapper from GObjects to SQLite")
5985 (description
5986 "Gom provides an object mapper from GObjects to SQLite. It helps you
5987 write applications that need to store structured data as well as make complex
5988 queries upon that data.")
5989 (license license:lgpl2.1+)))
5990
5991 (define-public libgnome-games-support
5992 (package
5993 (name "libgnome-games-support")
5994 (version "1.7.1")
5995 (source (origin
5996 (method url-fetch)
5997 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5998 (version-major+minor version) "/"
5999 "libgnome-games-support-" version ".tar.xz"))
6000 (sha256
6001 (base32
6002 "11g1r3ppb9v8m3anks9gxf7fv1x38vmjiya3lr7zjjv328pb69d6"))))
6003 (build-system meson-build-system)
6004 (arguments
6005 '(#:glib-or-gtk? #t
6006 #:phases
6007 (modify-phases %standard-phases
6008 (add-before 'check 'pre-check
6009 (lambda _
6010 ;; Tests require a writable HOME.
6011 (setenv "HOME" (getcwd))
6012 #t)))))
6013 (native-inputs
6014 `(("intltool" ,intltool)
6015 ("pkg-config" ,pkg-config)
6016 ("vala" ,vala)))
6017 (propagated-inputs
6018 ;; Required by libgnome-games-support-1.0.pc
6019 `(("gtk+" ,gtk+)
6020 ("libgee" ,libgee)))
6021 (home-page "https://www.gnome.org/")
6022 (synopsis "Useful functionality shared among GNOME games")
6023 (description
6024 "libgnome-games-support is a small library intended for internal use by
6025 GNOME Games, but it may be used by others.")
6026 (license license:lgpl3+)))
6027
6028 (define-public gnome-klotski
6029 (package
6030 (name "gnome-klotski")
6031 (version "3.34.0")
6032 (source (origin
6033 (method url-fetch)
6034 (uri (string-append "mirror://gnome/sources/" name "/"
6035 (version-major+minor version) "/"
6036 name "-" version ".tar.xz"))
6037 (sha256
6038 (base32
6039 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
6040 (build-system meson-build-system)
6041 (arguments
6042 '(#:glib-or-gtk? #t
6043 #:phases
6044 (modify-phases %standard-phases
6045 (add-after 'unpack 'skip-gtk-update-icon-cache
6046 ;; Don't create 'icon-theme.cache'.
6047 (lambda _
6048 (substitute* "build-aux/meson_post_install.py"
6049 (("gtk-update-icon-cache") (which "true")))
6050 #t)))))
6051 (native-inputs
6052 `(("desktop-file-utils" ,desktop-file-utils)
6053 ("glib:bin" ,glib "bin") ; for glib-compile-resources
6054 ("intltool" ,intltool)
6055 ("itstool" ,itstool)
6056 ("pkg-config" ,pkg-config)
6057 ("vala" ,vala)
6058 ("xmllint" ,libxml2)))
6059 (inputs
6060 `(("gtk+" ,gtk+)
6061 ("libgnome-games-support" ,libgnome-games-support)
6062 ("librsvg" ,librsvg)))
6063 (home-page "https://wiki.gnome.org/Apps/Klotski")
6064 (synopsis "Sliding block puzzles")
6065 (description
6066 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6067 the patterned block to the area bordered by green markers. To do so, you will
6068 need to slide other blocks out of the way. Complete each puzzle in as few moves
6069 as possible!")
6070 (license license:gpl2+)))
6071
6072 (define-public grilo
6073 (package
6074 (name "grilo")
6075 (version "0.3.13")
6076 (source
6077 (origin
6078 (method url-fetch)
6079 (uri (string-append "mirror://gnome/sources/grilo/"
6080 (version-major+minor version) "/"
6081 "grilo-" version ".tar.xz"))
6082 (sha256
6083 (base32 "0ywjvh7xw4ql1q4fvl0q5n06n08pga1g1nc9l7c3x5214gr3fj6i"))))
6084 (build-system meson-build-system)
6085 (native-inputs
6086 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
6087 ("intltool" ,intltool)
6088 ("pkg-config" ,pkg-config)
6089 ("gobject-introspection" ,gobject-introspection)
6090 ("gtk-doc" ,gtk-doc/stable)
6091 ("vala" ,vala)))
6092 (inputs
6093 `(("cyrus-sasl" ,cyrus-sasl)
6094 ("glib" ,glib)
6095 ("gtk+" ,gtk+)
6096 ("libxml2" ,libxml2)
6097 ("liboauth" ,liboauth)
6098 ("libsoup" ,libsoup)
6099 ("totem-pl-parser" ,totem-pl-parser)))
6100 (native-search-paths
6101 (list (search-path-specification
6102 (variable "GRL_PLUGIN_PATH")
6103 (files (list (string-append "lib/grilo-"
6104 (version-major+minor version)))))))
6105 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6106 (synopsis "Framework for discovering and browsing media")
6107 (description
6108 "Grilo is a framework focused on making media discovery and browsing easy
6109 for application developers.")
6110 (license license:lgpl2.1+)))
6111
6112 (define-public grilo-plugins
6113 (package
6114 (name "grilo-plugins")
6115 (version "0.3.13")
6116 (source
6117 (origin
6118 (method url-fetch)
6119 (uri (string-append "mirror://gnome/sources/" name "/"
6120 (version-major+minor version) "/"
6121 name "-" version ".tar.xz"))
6122 (sha256
6123 (base32 "1y10nnd711qxwgpz6spzp1rnk50fyf11kk1n71a31ab4fgb0ahqw"))))
6124 (build-system meson-build-system)
6125 (native-inputs
6126 `(("gettext" ,gettext-minimal)
6127 ("glib:bin" ,glib "bin")
6128 ("gtk+:bin" ,gtk+ "bin")
6129 ("itstool" ,itstool)
6130 ("pkg-config" ,pkg-config)))
6131 ;; TODO: ahavi, gstreamer
6132 (inputs
6133 `(("grilo" ,grilo)
6134 ;("gmime" ,gmime) ; unused
6135 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6136 ("gom" ,gom)
6137 ;("gssdp" ,gssdp) ; unused
6138 ;("gupnp" ,gupnp) ; unused
6139 ;("gupnp-av" ,gupnp-av) ; unused
6140 ("json-glib" ,json-glib)
6141 ("avahi" ,avahi)
6142 ("libgdata" ,libgdata)
6143 ("libmediaart" ,libmediaart)
6144 ;("librest" ,rest) ; unused
6145 ("libsoup" ,libsoup)
6146 ("python-pygobject" ,python-pygobject)
6147 ("totam-pl-parser" ,totem-pl-parser)
6148 ("tracker" ,tracker)
6149 ("tracker-miners" ,tracker-miners)))
6150 (arguments
6151 `(#:glib-or-gtk? #t
6152 ;;Disable lua-factory as it needs missing dependencies
6153 #:configure-flags '("-Denable-lua-factory=no")
6154 #:phases
6155 (modify-phases %standard-phases
6156 (add-before 'configure 'set-shell
6157 (lambda _
6158 (setenv "SHELL" (which "bash"))))
6159 ;; Disable the tracker test that requires the UPower daemon.
6160 (add-before 'configure 'fix-tests
6161 (lambda* (#:key inputs #:allow-other-keys)
6162 (substitute* "tests/tracker3/meson.build"
6163 (("'test_tracker3'.*") "")))))))
6164 (home-page "https://live.gnome.org/Grilo")
6165 (synopsis "Plugins for the Grilo media discovery library")
6166 (description
6167 "Grilo is a framework focused on making media discovery and browsing easy
6168 for application developers. This package provides plugins for common media
6169 discovery protocols.")
6170 (license license:lgpl2.1+)))
6171
6172 (define-public totem
6173 (package
6174 (name "totem")
6175 (version "3.38.1")
6176 (source
6177 (origin
6178 (method url-fetch)
6179 (uri (string-append "mirror://gnome/sources/totem/"
6180 (version-major+minor version) "/"
6181 "totem-" version ".tar.xz"))
6182 (sha256
6183 (base32 "02510lvzvxvmpcs64k6sqix8ysl7sihhhwvp0vmfv7521ryczylg"))))
6184 (build-system meson-build-system)
6185 (native-inputs
6186 `(("pkg-config" ,pkg-config)
6187 ("desktop-file-utils" ,desktop-file-utils)
6188 ("gettext" ,gettext-minimal)
6189 ("gobject-introspection" ,gobject-introspection)
6190 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
6191 ("itstool" ,itstool)
6192 ("xmllint" ,libxml2)
6193 ("xorg-server" ,xorg-server-for-tests)))
6194 (propagated-inputs
6195 `(("dconf" ,dconf)))
6196 (inputs
6197 `(("gtk+" ,gtk+)
6198 ("gdk-pixbuf" ,gdk-pixbuf)
6199 ("atk" ,atk)
6200 ("cairo" ,cairo)
6201 ("dbus-glib" ,dbus-glib)
6202 ("clutter" ,clutter)
6203 ("clutter-gtk" ,clutter-gtk)
6204 ("clutter-gst" ,clutter-gst)
6205 ("xorgproto" ,xorgproto)
6206 ("libxxf86vm" ,libxxf86vm)
6207 ("libxtst" ,libxtst)
6208 ("libxrandr" ,libxrandr)
6209 ("libxml2" ,libxml2)
6210 ("libsoup" ,libsoup)
6211 ("libpeas" ,libpeas)
6212 ("librsvg" ,librsvg)
6213 ("lirc" ,lirc)
6214 ("gnome-desktop" ,gnome-desktop)
6215 ("gstreamer" ,gstreamer)
6216 ("gst-plugins-base" ,gst-plugins-base)
6217 ("gst-plugins-good" ,gst-plugins-good)
6218 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6219 ("adwaita-icon-theme" ,adwaita-icon-theme)
6220 ("python" ,python)
6221 ("python-pygobject" ,python-pygobject)
6222 ("totem-pl-parser" ,totem-pl-parser)
6223 ("grilo" ,grilo)
6224 ("grilo-plugins" ,grilo-plugins)
6225 ("vala" ,vala)))
6226 (arguments
6227 `(#:glib-or-gtk? #t
6228
6229 ;; Disable automatic GStreamer plugin installation via PackageKit and
6230 ;; all that.
6231 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6232
6233 ;; Do not build .a files for the plugins, it's
6234 ;; completely useless. This saves 2 MiB.
6235 "--default-library" "shared")
6236 #:phases
6237 (modify-phases %standard-phases
6238 (add-after 'unpack 'skip-gtk-update-icon-cache
6239 ;; Don't create 'icon-theme.cache'.
6240 (lambda _
6241 (substitute* "meson_post_install.py"
6242 (("gtk-update-icon-cache") "true"))
6243 #t))
6244 (add-before
6245 'install 'disable-cache-generation
6246 (lambda _
6247 (setenv "DESTDIR" "/")
6248 #t))
6249 (add-before
6250 'check 'pre-check
6251 (lambda _
6252 ;; Tests require a running X server.
6253 (system "Xvfb :1 &")
6254 (setenv "DISPLAY" ":1")
6255 #t))
6256 (add-after
6257 'install 'wrap-totem
6258 (lambda* (#:key inputs outputs #:allow-other-keys)
6259 (let ((out (assoc-ref outputs "out"))
6260 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6261 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6262 (wrap-program (string-append out "/bin/totem")
6263 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6264 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6265 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6266 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
6267 #t)))))
6268 (home-page "https://wiki.gnome.org/Apps/Videos")
6269 (synopsis "Simple media player for GNOME based on GStreamer")
6270 (description "Totem is a simple yet featureful media player for GNOME
6271 which can read a large number of file formats.")
6272 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6273 ;; to be used and distributed together with GStreamer and Totem. See
6274 ;; file://COPYING in the source distribution for details.
6275 (license license:gpl2+)))
6276
6277 (define-public rhythmbox
6278 (package
6279 (name "rhythmbox")
6280 (version "3.4.4")
6281 (source (origin
6282 (method url-fetch)
6283 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6284 (version-major+minor version) "/"
6285 "rhythmbox-" version ".tar.xz"))
6286 (sha256
6287 (base32
6288 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6289 (build-system glib-or-gtk-build-system)
6290 (arguments
6291 `(#:configure-flags
6292 (list "--enable-lirc"
6293 "--enable-python"
6294 "--enable-vala"
6295 "--with-brasero"
6296 "--with-gudev"
6297 "--with-libsecret")
6298 #:phases
6299 (modify-phases %standard-phases
6300 (add-after
6301 'install 'wrap-rhythmbox
6302 (lambda* (#:key inputs outputs #:allow-other-keys)
6303 (let ((out (assoc-ref outputs "out"))
6304 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6305 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6306 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6307 (python-path (getenv "GUIX_PYTHONPATH")))
6308 (wrap-program (string-append out "/bin/rhythmbox")
6309 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6310 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6311 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6312 `("GUIX_PYTHONPATH" ":" prefix (,python-path))))
6313 #t)))))
6314 (propagated-inputs
6315 `(("dconf" ,dconf)))
6316 (native-inputs
6317 `(("itstool" ,itstool)
6318 ("intltool" ,intltool)
6319 ("glib" ,glib "bin")
6320 ("gobject-introspection" ,gobject-introspection)
6321 ("desktop-file-utils" ,desktop-file-utils)
6322 ("pkg-config" ,pkg-config)
6323 ("xmllint" ,libxml2)))
6324 (inputs
6325 `(("json-glib" ,json-glib)
6326 ("tdb" ,tdb)
6327 ("gnome-desktop" ,gnome-desktop)
6328 ("python" ,python)
6329 ("python-pygobject" ,python2-pygobject)
6330 ("vala" ,vala)
6331 ("gmime" ,gmime)
6332 ("adwaita-icon-theme" ,adwaita-icon-theme)
6333 ("grilo" ,grilo)
6334 ("grilo-plugins" ,grilo-plugins)
6335 ("gstreamer" ,gstreamer)
6336 ("gst-plugins-base" ,gst-plugins-base)
6337 ("gst-plugins-good" ,gst-plugins-good)
6338 ("totem-pl-parser" ,totem-pl-parser)
6339 ("libgudev" ,libgudev)
6340 ;;("libmtp" ,libmtp) FIXME: Not detected
6341 ("libsecret" ,libsecret)
6342 ("libsoup" ,libsoup)
6343 ("libnotify" ,libnotify)
6344 ("libpeas" ,libpeas)
6345 ("lirc" ,lirc)
6346 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6347 ;;("clutter" ,clutter)
6348 ;;("clutter-gtk" ,clutter-gtk)
6349 ;;("clutter-gst" ,clutter-gst)
6350 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6351 ("atk" ,atk)
6352 ("pango" ,pango)
6353 ("gtk+" ,gtk+)
6354 ;; TODO:
6355 ;; * libgpod
6356 ;; * mx
6357 ("brasero" ,brasero)))
6358 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6359 (synopsis "Music player for GNOME")
6360 (description "Rhythmbox is a music playing application for GNOME. It
6361 supports playlists, song ratings, and any codecs installed through gstreamer.")
6362 (license license:gpl2+)))
6363
6364 (define-public eog
6365 (package
6366 (name "eog")
6367 (version "40.3")
6368 (source (origin
6369 (method url-fetch)
6370 (uri (string-append "mirror://gnome/sources/" name "/"
6371 (version-major version) "/"
6372 name "-" version ".tar.xz"))
6373 (sha256
6374 (base32
6375 "0ddjwcd77nw0rxb5x5bz5hd671m8gya9827p8rsnb58x103kpai8"))))
6376 (build-system meson-build-system)
6377 (arguments
6378 `(#:configure-flags
6379 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6380 (list (string-append "-Dc_link_args=-Wl,-rpath="
6381 (assoc-ref %outputs "out") "/lib/eog"))
6382 #:phases
6383 (modify-phases %standard-phases
6384 (add-after 'unpack 'skip-gtk-update-icon-cache
6385 ;; Don't create 'icon-theme.cache'.
6386 (lambda _
6387 (substitute* "meson_post_install.py"
6388 (("gtk-update-icon-cache") "true"))))
6389 (add-after 'install 'wrap-eog
6390 (lambda* (#:key outputs #:allow-other-keys)
6391 (let ((out (assoc-ref outputs "out"))
6392 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6393 (wrap-program (string-append out "/bin/eog")
6394 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
6395 (propagated-inputs
6396 `(("dconf" ,dconf)))
6397 (native-inputs
6398 `(("intltool" ,intltool)
6399 ("itstool" ,itstool)
6400 ("glib" ,glib "bin")
6401 ("gobject-introspection" ,gobject-introspection)
6402 ("pkg-config" ,pkg-config)
6403 ("xmllint" ,libxml2)))
6404 (inputs
6405 `(("gnome-desktop" ,gnome-desktop)
6406 ("shared-mime-info" ,shared-mime-info)
6407 ("adwaita-icon-theme" ,adwaita-icon-theme)
6408 ("exempi" ,exempi)
6409 ("lcms" ,lcms)
6410 ("libexif" ,libexif)
6411 ("libpeas" ,libpeas)
6412 ("libportal" ,libportal)
6413 ("libjpeg" ,libjpeg-turbo)
6414 ("librsvg" ,librsvg)
6415 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6416 ("gtk+" ,gtk+)))
6417 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6418 (synopsis "GNOME image viewer")
6419 (description "Eye of GNOME is the GNOME image viewer. It
6420 supports image conversion, rotation, and slideshows.")
6421 (license license:gpl2+)))
6422
6423 (define-public eog-plugins
6424 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6425 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6426 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6427 ;; 'XDG_DATA_DIRS' appropriately set.
6428 (package
6429 (name "eog-plugins")
6430 (version "3.26.7")
6431 (source (origin
6432 (method url-fetch)
6433 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6434 (version-major+minor version) "/"
6435 "eog-plugins-" version ".tar.xz"))
6436 (sha256
6437 (base32
6438 "0gbvl54hjawcrj2cbkvsw5jx11p6jv1xkc58c8ikwwpb56gc3ric"))))
6439 (build-system gnu-build-system)
6440 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6441 (synopsis "Extensions for the Eye of GNOME image viewer")
6442 (native-inputs
6443 `(("pkg-config" ,pkg-config)
6444 ("gettext" ,gettext-minimal)))
6445 (inputs
6446 `(("eog" ,eog)
6447 ("glib" ,glib)
6448 ("gtk+" ,gtk+)
6449 ("libpeas" ,libpeas)
6450 ("libexif" ,libexif)
6451 ("libchamplain" ,libchamplain)))
6452 (description
6453 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6454 notably:
6455
6456 @itemize
6457 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6458 @item @dfn{Map}, which displays a map of where the picture was taken on the
6459 side panel;
6460 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6461 @end itemize\n")
6462
6463 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6464 ;; long suspicious byte stream that goes to a
6465 ;; ".gresource.eog_postasa_plugin" ELF section.
6466 (license license:gpl2+)))
6467
6468 (define-public libgudev
6469 (package
6470 (name "libgudev")
6471 (version "236")
6472 (source (origin
6473 (method url-fetch)
6474 (uri (string-append "mirror://gnome/sources/" name "/"
6475 version "/" name "-" version ".tar.xz"))
6476 (sha256
6477 (base32
6478 "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
6479 (build-system meson-build-system)
6480 (native-inputs
6481 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6482 ("gobject-introspection" ,gobject-introspection)
6483 ("pkg-config" ,pkg-config)))
6484 (propagated-inputs
6485 `(("glib" ,glib) ; in Requires of gudev-1.0.pc
6486 ("eudev" ,eudev))) ; in Requires.private of gudev-1.0.pc
6487 (inputs
6488 `(("udev" ,eudev)))
6489 (home-page "https://wiki.gnome.org/Projects/libgudev")
6490 (synopsis "GObject bindings for libudev")
6491 (description
6492 "This library provides GObject bindings for libudev. It was originally
6493 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6494 (license license:lgpl2.1+)))
6495
6496 (define-public gvfs
6497 (package
6498 (name "gvfs")
6499 (version "1.48.1")
6500 (source (origin
6501 (method url-fetch)
6502 (uri (string-append "mirror://gnome/sources/gvfs/"
6503 (version-major+minor version) "/"
6504 "gvfs-" version ".tar.xz"))
6505 (sha256
6506 (base32
6507 "1hlxl6368h6nyqp1888szxs9hnpcw98k3h23dgqi29xd38klzsmj"))))
6508 (build-system meson-build-system)
6509 (arguments
6510 '(#:glib-or-gtk? #t
6511 #:configure-flags
6512 (list "-Dsystemduserunitdir=no"
6513 "-Dtmpfilesdir=no"
6514 ;; Otherwise, the RUNPATH will lack the final path component.
6515 (string-append "-Dc_link_args=-Wl,-rpath="
6516 (assoc-ref %outputs "out") "/lib/gvfs"))))
6517 (native-inputs
6518 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6519 ("gettext" ,gettext-minimal)
6520 ("gtk-doc" ,gtk-doc/stable)
6521 ("pkg-config" ,pkg-config)
6522 ("xsltproc" ,libxslt)))
6523 (inputs
6524 `(("avahi" ,avahi)
6525 ("docbook-xml" ,docbook-xml-4.2)
6526 ("docbook-xsl" ,docbook-xsl)
6527 ("dbus" ,dbus)
6528 ("elogind" ,elogind)
6529 ("fuse" ,fuse-3)
6530 ("gcr" ,gcr)
6531 ("glib" ,glib)
6532 ("gnome-online-accounts" ,gnome-online-accounts)
6533 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6534 ("libarchive" ,libarchive)
6535 ("libbluray" ,libbluray)
6536 ("libcap" ,libcap)
6537 ("libcdio-paranoia" ,libcdio-paranoia)
6538 ("libgcrypt" ,libgcrypt)
6539 ("libgdata" ,libgdata)
6540 ("libgphoto2" ,libgphoto2)
6541 ("libgudev" ,libgudev)
6542 ("libimobiledevice" ,libimobiledevice)
6543 ("libmtp" ,libmtp)
6544 ("libnfs" ,libnfs)
6545 ("libsecret" ,libsecret)
6546 ("libsmbclient" ,samba)
6547 ("libsoup" ,libsoup)
6548 ("libxml2" ,libxml2)
6549 ("openssh" ,openssh)
6550 ("polkit" ,polkit)
6551 ("udisks" ,udisks)))
6552 (home-page "https://wiki.gnome.org/gvfs/")
6553 (synopsis "Userspace virtual file system for GIO")
6554 (description
6555 "GVFS is a userspace virtual file system designed to work with the I/O
6556 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS
6557 support to all applications using the GIO API. It also supports exposing the
6558 GVFS mounts to non-GIO applications using FUSE.
6559
6560 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6561 DAV, and others.")
6562 (license license:lgpl2.0+)))
6563
6564 (define-public gusb
6565 (package
6566 (name "gusb")
6567 (version "0.3.5")
6568 (source (origin
6569 (method git-fetch)
6570 (uri (git-reference
6571 (url "https://github.com/hughsie/libgusb")
6572 (commit version)))
6573 (file-name (git-file-name name version))
6574 (sha256
6575 (base32
6576 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6577 (build-system meson-build-system)
6578 (native-inputs
6579 `(("gobject-introspection" ,gobject-introspection)
6580 ("pkg-config" ,pkg-config)
6581 ("vala" ,vala)
6582 ("gtk-doc" ,gtk-doc/stable)))
6583 (propagated-inputs
6584 ;; Both of these are required by gusb.pc.
6585 `(("glib" ,glib)
6586 ("libusb" ,libusb)))
6587 (arguments
6588 `(#:tests? #f ;libusb fails to initialize. Wonder what that is.
6589 #:configure-flags
6590 ,(if (%current-target-system)
6591 ;; Introspection data cannot currently be cross-compiled.
6592 ''("-Dintrospection=false"
6593 ;; Requires introspection data.
6594 "-Dvapi=false")
6595 ''())))
6596 (home-page "https://github.com/hughsie/libgusb")
6597 (synopsis "GLib binding for libusb1")
6598 (description
6599 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6600 asynchronous control, bulk and interrupt transfers with proper cancellation
6601 and integration into a mainloop. This makes it easy to integrate low level
6602 USB transfers with your high-level application or system daemon.")
6603 (license license:lgpl2.1+)))
6604
6605 (define-public simple-scan
6606 (package
6607 (name "simple-scan")
6608 (version "40.5")
6609 (source
6610 (origin
6611 (method url-fetch)
6612 (uri (string-append "mirror://gnome/sources/simple-scan/"
6613 (version-major version) "/"
6614 "simple-scan-" version ".tar.xz"))
6615 (sha256
6616 (base32 "195rh8zj5n497gj42rd77mvkdl15hk0i08ll5h4hb9kcrgj7jlzb"))))
6617 (build-system meson-build-system)
6618 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6619 (arguments
6620 '(#:glib-or-gtk? #t))
6621 (inputs
6622 `(("gtk" ,gtk+)
6623 ("zlib" ,zlib)
6624 ("cairo" ,cairo)
6625 ("colord" ,colord)
6626 ("gdk-pixbuf" ,gdk-pixbuf)
6627 ("gusb" ,gusb)
6628 ("libhandy" ,libhandy)
6629 ("libsane" ,sane-backends)))
6630 (native-inputs
6631 `(("gettext" ,gettext-minimal)
6632 ("itstool" ,itstool)
6633 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6634 ("pkg-config" ,pkg-config)
6635 ("vala" ,vala)
6636 ("xmllint" ,libxml2)))
6637 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6638 (synopsis "Document and image scanner")
6639 (description
6640 "Document Scanner is an easy-to-use application that lets you connect your
6641 scanner and quickly capture images and documents in an appropriate format. It
6642 supports any scanner for which a suitable SANE driver is available, which is
6643 almost all of them.")
6644 (license license:gpl3+)))
6645
6646 (define-public eolie
6647 (package
6648 (name "eolie")
6649 (version "0.9.101")
6650 (source (origin
6651 (method url-fetch)
6652 (uri (string-append "https://adishatz.org/eolie/eolie-"
6653 version ".tar.xz"))
6654 (sha256
6655 (base32
6656 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6657 (build-system meson-build-system)
6658 (arguments
6659 `(#:glib-or-gtk? #t
6660 #:phases
6661 (modify-phases %standard-phases
6662 (add-after 'unpack 'skip-gtk-update-icon-cache
6663 ;; Don't create 'icon-theme.cache'.
6664 (lambda _
6665 (substitute* "meson_post_install.py"
6666 (("gtk-update-icon-cache") "true"))
6667 #t))
6668 (add-after 'wrap 'wrap-more
6669 (lambda* (#:key inputs outputs #:allow-other-keys)
6670 (let* ((out (assoc-ref outputs "out"))
6671 ;; These libraries must be on LD_LIBRARY_PATH.
6672 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6673 "atk" "gtk+" "gsettings-desktop-schemas"
6674 "gobject-introspection"))
6675 (path (string-join
6676 (map (lambda (lib)
6677 (string-append (assoc-ref inputs lib) "/lib"))
6678 libs)
6679 ":")))
6680 (wrap-program (string-append out "/bin/eolie")
6681 `("LD_LIBRARY_PATH" ":" prefix (,path))
6682 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
6683 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6684 #t)))))
6685 (native-inputs
6686 `(("intltool" ,intltool)
6687 ("itstool" ,itstool)
6688 ("pkg-config" ,pkg-config)
6689 ("python" ,python)
6690 ("glib:bin" ,glib "bin")))
6691 (inputs
6692 `(("gobject-introspection" ,gobject-introspection)
6693 ("glib-networking" ,glib-networking)
6694 ("cairo" ,cairo)
6695 ("gtk+" ,gtk+)
6696 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6697 ("python" ,python-wrapper)
6698 ("python-dateutil" ,python-dateutil)
6699 ("python-pyfxa" ,python-pyfxa)
6700 ("python-pygobject" ,python-pygobject)
6701 ("python-pycairo" ,python-pycairo)
6702 ("python-pycrypto" ,python-pycrypto)
6703 ("libhandy" ,libhandy)
6704 ("libsecret" ,libsecret)
6705 ("gtkspell3" ,gtkspell3)
6706 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6707 ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
6708 ("webkitgtk" ,webkitgtk)))
6709 (home-page "https://wiki.gnome.org/Apps/Eolie")
6710 (synopsis "Web browser for GNOME")
6711 (description
6712 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6713 a secret password store, an adblocker, and a modern UI.")
6714 (license license:gpl3+)))
6715
6716 (define-public epiphany
6717 (package
6718 (name "epiphany")
6719 (version "40.3")
6720 (source (origin
6721 (method url-fetch)
6722 (uri (string-append "mirror://gnome/sources/epiphany/"
6723 (version-major version) "/"
6724 "epiphany-" version ".tar.xz"))
6725 (sha256
6726 (base32
6727 "0r7m34xzz3shdfxf2abxb069izak3yv3ijlg29qy4pfmyawkilfs"))))
6728
6729 (build-system meson-build-system)
6730 (arguments
6731 '(#:glib-or-gtk? #t
6732 #:phases
6733 (modify-phases %standard-phases
6734 (add-after 'unpack 'skip-gtk-update-icon-cache
6735 ;; Don't create 'icon-theme.cache'.
6736 (lambda _
6737 (substitute* "post_install.py"
6738 (("gtk-update-icon-cache") "true"))))
6739 (add-after 'unpack 'disable-failing-tests
6740 (lambda _
6741 (substitute* "tests/meson.build"
6742 ;; embed_shell fails, because webkitgtk apparently no longer
6743 ;; supports overriding the ftp schema web_app_utils fails due
6744 ;; to missing network access.
6745 (("(embed_shell|web_app_utils)_test,")
6746 "find_program('sh'), args: ['-c', 'exit 77'],"))))
6747 (add-before 'check 'pre-check
6748 (lambda _
6749 ;; Tests require a running X server.
6750 (system "Xvfb :1 &")
6751 (setenv "DISPLAY" ":1"))))
6752 #:configure-flags
6753 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6754 (list (string-append "-Dc_link_args=-Wl,-rpath="
6755 (assoc-ref %outputs "out") "/lib/epiphany"))))
6756 (propagated-inputs
6757 `(("dconf" ,dconf)))
6758 (native-inputs
6759 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6760 ("glib:bin" ,glib "bin") ; for glib-mkenums
6761 ("intltool" ,intltool)
6762 ("itstool" ,itstool)
6763 ("pkg-config" ,pkg-config)
6764 ("xmllint" ,libxml2)
6765 ("xorg-server" ,xorg-server-for-tests)))
6766 (inputs
6767 `(("avahi" ,avahi)
6768 ("gcr" ,gcr)
6769 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6770 ("glib-networking" ,glib-networking)
6771 ("gnome-desktop" ,gnome-desktop)
6772 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6773 ("json-glib" ,json-glib)
6774 ("iso-codes" ,iso-codes)
6775 ("libarchive" ,libarchive)
6776 ("libdazzle" ,libdazzle)
6777 ("libhandy" ,libhandy)
6778 ("libnotify" ,libnotify)
6779 ("libportal" ,libportal)
6780 ("libsecret" ,libsecret)
6781 ("libxslt" ,libxslt)
6782 ("nettle" ,nettle) ; for hogweed
6783 ("sqlite" ,sqlite)
6784 ("webkitgtk" ,webkitgtk)))
6785 (home-page "https://wiki.gnome.org/Apps/Web")
6786 (synopsis "GNOME web browser")
6787 (description
6788 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6789 principles are simplicity and standards compliance.")
6790 (license license:gpl2+)))
6791
6792 (define-public d-feet
6793 (package
6794 (name "d-feet")
6795 (version "0.3.14")
6796 (source (origin
6797 (method url-fetch)
6798 (uri (string-append "mirror://gnome/sources/" name "/"
6799 (version-major+minor version) "/"
6800 name "-" version ".tar.xz"))
6801 (sha256
6802 (base32
6803 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6804 (build-system glib-or-gtk-build-system)
6805 (arguments
6806 '(#:out-of-source? #f ; tests need to run in the source directory.
6807 #:phases
6808 (modify-phases %standard-phases
6809 (add-before
6810 'check 'pre-check
6811 (lambda _
6812 ;; The test suite requires a running X server.
6813 (system "Xvfb :1 &")
6814 (setenv "DISPLAY" ":1")
6815 ;; Don't fail on missing '/etc/machine-id'.
6816 (setenv "DBUS_FATAL_WARNINGS" "0")
6817 ;; tests.py and window.py don't meet E402:
6818 ;; E402 module level import not at top of file
6819 (substitute* "src/tests/Makefile"
6820 (("--ignore=E123") "--ignore=E123,E402"))
6821 #t))
6822 (add-after
6823 'install 'wrap-program
6824 (lambda* (#:key outputs #:allow-other-keys)
6825 (let ((prog (string-append (assoc-ref outputs "out")
6826 "/bin/d-feet")))
6827 (wrap-program prog
6828 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
6829 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6830 #t))))))
6831 (native-inputs
6832 `(("intltool" ,intltool)
6833 ("itstool" ,itstool)
6834 ("pkg-config" ,pkg-config)
6835 ("python-pep8" ,python-pep8)
6836 ("xmllint" ,libxml2)
6837 ("xorg-server" ,xorg-server-for-tests)))
6838 (inputs
6839 `(("gobject-introspection" ,gobject-introspection)
6840 ("gtk+" ,gtk+)
6841 ("python" ,python-wrapper)
6842 ("hicolor-icon-theme" ,hicolor-icon-theme)
6843 ("python-pygobject" ,python-pygobject)))
6844 (home-page "https://wiki.gnome.org/Apps/DFeet")
6845 (synopsis "D-Bus debugger")
6846 (description
6847 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6848 of running programs and invoke methods on those interfaces.")
6849 (license license:gpl2+)))
6850
6851 (define-public yelp-xsl
6852 (package
6853 (name "yelp-xsl")
6854 (version "3.34.2")
6855 (source
6856 (origin
6857 (method url-fetch)
6858 (uri
6859 (string-append "mirror://gnome/sources/" name "/"
6860 (version-major+minor version) "/"
6861 name "-" version ".tar.xz"))
6862 (sha256
6863 (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6864 (build-system gnu-build-system)
6865 (arguments
6866 `(#:configure-flags
6867 (list
6868 "--enable-doc")))
6869 (native-inputs
6870 `(("ducktype" ,mallard-ducktype)
6871 ("gettext" ,gettext-minimal)
6872 ("intltool" ,intltool)
6873 ("itstool" ,itstool)
6874 ("xmllint" ,libxml2)
6875 ("xsltproc" ,libxslt)))
6876 (synopsis "XSL stylesheets for Yelp")
6877 (description "Yelp-XSL is a collection of programs and data files to help
6878 you build, maintain, and distribute documentation. It provides XSLT stylesheets
6879 that can be built upon for help viewers and publishing systems. These
6880 stylesheets output JavaScript and CSS content, and reference images
6881 provided by yelp-xsl. It also redistributes copies of the jQuery and
6882 jQuery.Syntax JavaScript libraries.")
6883 (home-page "https://wiki.gnome.org/Apps/Yelp")
6884 (license
6885 (list
6886 ;; XSLT
6887 license:gpl2+
6888 ;; Images
6889 license:lgpl2.1+
6890 ;; JavaScript
6891 license:expat))))
6892
6893 (define-public yelp
6894 (package
6895 (name "yelp")
6896 (version "40.3")
6897 (source (origin
6898 (method url-fetch)
6899 (uri (string-append "mirror://gnome/sources/" name "/"
6900 (version-major version) "/"
6901 name "-" version ".tar.xz"))
6902 (sha256
6903 (base32
6904 "08zflnnw6as96n33xhn7zz78r7akbl0i1fzcg2z8jqgja5w88wx1"))))
6905 (build-system glib-or-gtk-build-system)
6906 (native-inputs
6907 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6908 ("intltool" ,intltool)
6909 ("itstool" ,itstool)
6910 ("pkg-config" ,pkg-config)))
6911 (propagated-inputs
6912 `(("dconf" ,dconf)))
6913 (inputs
6914 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6915 ("libxslt" ,libxslt)
6916 ("sqlite" ,sqlite)
6917 ("webkitgtk" ,webkitgtk)
6918 ("yelp-xsl" ,yelp-xsl)))
6919 (home-page "https://wiki.gnome.org/Apps/Yelp")
6920 (synopsis "GNOME help browser")
6921 (description
6922 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6923 man, info, and HTML documents. It can locate documents according to the
6924 freedesktop.org help system specification.")
6925 (license license:gpl2+)))
6926
6927 (define-public yelp-tools
6928 (package
6929 (name "yelp-tools")
6930 (version "3.32.2")
6931 (source
6932 (origin
6933 (method url-fetch)
6934 (uri
6935 (string-append "mirror://gnome/sources/" name "/"
6936 (version-major+minor version) "/"
6937 name "-" version ".tar.xz"))
6938 (sha256
6939 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6940 (build-system gnu-build-system)
6941 (native-inputs
6942 `(("pkg-config" ,pkg-config)))
6943 (inputs
6944 `(("yelp-xsl" ,yelp-xsl)))
6945 (propagated-inputs
6946 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6947 `(("itstool" ,itstool)
6948 ("xmllint" ,libxml2)
6949 ("xsltproc" ,libxslt)))
6950 (synopsis "Yelp documentation tools")
6951 (description
6952 "Yelp-tools is a collection of scripts and build utilities to help create,
6953 manage, and publish documentation for Yelp and the web. Most of the heavy
6954 lifting is done by packages like yelp-xsl and itstool. This package just
6955 wraps things up in a developer-friendly way.")
6956 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6957 (license license:gpl2+)))
6958
6959 (define-public libgee
6960 (package
6961 (name "libgee")
6962 (version "0.20.3")
6963 (source (origin
6964 (method url-fetch)
6965 (uri (string-append "mirror://gnome/sources/libgee/"
6966 (version-major+minor version) "/"
6967 "libgee-" version ".tar.xz"))
6968 (sha256
6969 (base32
6970 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6971 (build-system gnu-build-system)
6972 (arguments
6973 `(#:phases
6974 (modify-phases %standard-phases
6975 (add-after 'unpack 'fix-introspection-install-dir
6976 (lambda* (#:key outputs #:allow-other-keys)
6977 (let ((out (assoc-ref outputs "out")))
6978 (substitute* "gee/Makefile.in"
6979 (("@INTROSPECTION_GIRDIR@")
6980 (string-append out "/share/gir-1.0/"))
6981 (("@INTROSPECTION_TYPELIBDIR@")
6982 (string-append out "/lib/girepository-1.0/")))))))))
6983 (native-inputs
6984 `(("glib" ,glib "bin")
6985 ("pkg-config" ,pkg-config)))
6986 (inputs
6987 `(("glib" ,glib)
6988 ("gobject-introspection" ,gobject-introspection)))
6989 (home-page "https://wiki.gnome.org/Projects/Libgee")
6990 (synopsis "GObject collection library")
6991 (description
6992 "Libgee is a utility library providing GObject-based interfaces and
6993 classes for commonly used data structures.")
6994 (license license:lgpl2.1+)))
6995
6996 (define-public gexiv2
6997 (package
6998 (name "gexiv2")
6999 (version "0.12.2")
7000 (source (origin
7001 (method url-fetch)
7002 (uri (string-append "mirror://gnome/sources/" name "/"
7003 (version-major+minor version) "/"
7004 name "-" version ".tar.xz"))
7005 (sha256
7006 (base32
7007 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
7008 (build-system meson-build-system)
7009 (native-inputs
7010 `(("gcr" ,gcr)
7011 ("glib" ,glib "bin")
7012 ("pkg-config" ,pkg-config)
7013 ("vala" ,vala)))
7014 (propagated-inputs
7015 ;; Listed in "Requires" section of gexiv2.pc
7016 `(("exiv2" ,exiv2)))
7017 (inputs
7018 `(("glib" ,glib)
7019 ("gobject-introspection" ,gobject-introspection)))
7020 (home-page "https://wiki.gnome.org/Projects/gexiv2")
7021 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
7022 (description
7023 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
7024 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
7025 metadata in photo and video files of various formats.")
7026 (license license:gpl2+)))
7027
7028 (define-public shotwell
7029 (package
7030 (name "shotwell")
7031 (version "0.30.12")
7032 (source (origin
7033 (method url-fetch)
7034 (uri (string-append "mirror://gnome/sources/shotwell/"
7035 (version-major+minor version) "/"
7036 "shotwell-" version ".tar.xz"))
7037 (sha256
7038 (base32
7039 "1h5crjq59lqi8f8mdkadzi8pc3i9i2ik4lsx2nrhzq486fzdfhw6"))))
7040 (build-system meson-build-system)
7041 (arguments
7042 '(#:glib-or-gtk? #t
7043 #:phases
7044 (modify-phases %standard-phases
7045 (add-after 'unpack 'skip-gtk-update-icon-cache
7046 (lambda _
7047 (substitute* "build-aux/meson/postinstall.py"
7048 (("gtk-update-icon-cache") (which "true"))
7049 (("update-desktop-database") (which "true")))
7050 #t)))))
7051 (propagated-inputs
7052 `(("dconf" ,dconf)))
7053 (native-inputs
7054 `(("gettext" ,gettext-minimal)
7055 ("glib:bin" ,glib "bin")
7056 ("itstool" ,itstool)
7057 ("pkg-config" ,pkg-config)
7058 ("vala" ,vala)))
7059 (inputs
7060 `(("gcr" ,gcr)
7061 ("gexiv2" ,gexiv2)
7062 ("gst-plugins-base" ,gst-plugins-base)
7063 ("gstreamer" ,gstreamer)
7064 ("json-glib" ,json-glib)
7065 ("libgdata" ,libgdata)
7066 ("libgee" ,libgee)
7067 ("libgphoto2" ,libgphoto2)
7068 ("libgudev" ,libgudev)
7069 ("libraw" ,libraw)
7070 ("libsoup" ,libsoup)
7071 ("libxml2" ,libxml2)
7072 ("sqlite" ,sqlite)
7073 ("webkitgtk" ,webkitgtk)))
7074 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7075 (synopsis "Photo manager for GNOME 3")
7076 (description
7077 "Shotwell is a digital photo manager designed for the GNOME desktop
7078 environment. It allows you to import photos from disk or camera, organize
7079 them by keywords and events, view them in full-window or fullscreen mode, and
7080 share them with others via social networking and more.")
7081 (license license:lgpl2.1+)))
7082
7083 (define-public file-roller
7084 (package
7085 (name "file-roller")
7086 (version "3.40.0")
7087 (source (origin
7088 (method url-fetch)
7089 (uri (string-append "mirror://gnome/sources/file-roller/"
7090 (version-major+minor version) "/"
7091 "file-roller-" version ".tar.xz"))
7092 (sha256
7093 (base32
7094 "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a"))))
7095 (build-system meson-build-system)
7096 (native-inputs
7097 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7098 ("intltool" ,intltool)
7099 ("itstool" ,itstool)
7100 ("pkg-config" ,pkg-config)
7101 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7102 ("glib:bin" ,glib "bin")))
7103 ;; TODO: Add libnautilus.
7104 (inputs
7105 `(("gtk+" ,gtk+)
7106 ("gdk-pixbuf" ,gdk-pixbuf)
7107 ("json-glib" ,json-glib)
7108 ("libarchive" ,libarchive)
7109 ("libnotify" ,libnotify)
7110 ("nettle" ,nettle)
7111 ("libxml2" ,libxml2)))
7112 (synopsis "Graphical archive manager for GNOME")
7113 (description "File Roller is an archive manager for the GNOME desktop
7114 environment that allows users to view, unpack, and create compressed archives
7115 such as gzip tarballs.")
7116 (home-page "http://fileroller.sourceforge.net/")
7117 (license license:gpl2+)))
7118
7119 (define-public gnome-session
7120 (package
7121 (name "gnome-session")
7122 (version "40.1")
7123 (source (origin
7124 (method url-fetch)
7125 (uri (string-append "mirror://gnome/sources/" name "/"
7126 (version-major version) "/"
7127 name "-" version ".tar.xz"))
7128 (sha256
7129 (base32
7130 "02z0xr6sv9ibl7awbw9j4y05hf4jk1zgvsbbmh7n27hhjvsvc8pl"))))
7131 (arguments
7132 '(#:glib-or-gtk? #t
7133 #:phases
7134 (modify-phases %standard-phases
7135 (add-before 'configure 'pre-configure
7136 (lambda* (#:key outputs #:allow-other-keys)
7137 ;; Use elogind instead of systemd.
7138 (substitute* "meson.build"
7139 (("libsystemd-login") "libelogind")
7140 (("and libsystemd_daemon_dep.found.*") ","))
7141 (substitute* "gnome-session/gsm-systemd.c"
7142 (("#include <systemd/sd-login.h>")
7143 "#include <elogind/sd-login.h>"))
7144 ;; Remove uses of the systemd daemon.
7145 (substitute* "gnome-session/gsm-autostart-app.c"
7146 (("#ifdef HAVE_SYSTEMD") "#if 0"))))
7147 (add-after 'install 'wrap-gnome-session
7148 (lambda* (#:key inputs outputs #:allow-other-keys)
7149 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7150 (let ((glib (assoc-ref inputs "glib:bin"))
7151 (out (assoc-ref outputs "out")))
7152 (wrap-program (string-append out "/bin/gnome-session")
7153 `("PATH" ":" prefix (,(string-append glib "/bin"))))))))
7154
7155 #:configure-flags
7156 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7157 "-Dman=false" ; FIXME: disabled because of docbook validation error
7158 "-Dsystemd=false"
7159 "-Dsystemd_session=disable"
7160 "-Dsystemd_journal=false")))
7161 (build-system meson-build-system)
7162 (native-inputs
7163 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7164 ("pkg-config" ,pkg-config)
7165 ("intltool" ,intltool)
7166 ("xsltproc" ,libxslt)
7167 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
7168 ("docbook-xsl" ,docbook-xsl)
7169 ("docbook-xml" ,docbook-xml)
7170 ("xmlto" ,xmlto)))
7171 (inputs
7172 `(("elogind" ,elogind)
7173 ("gnome-desktop" ,gnome-desktop)
7174 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7175 ("gtk+" ,gtk+)
7176 ("json-glib" ,json-glib)
7177 ("libsm" ,libsm)
7178 ("libxcomposite" ,libxcomposite)
7179 ("libxtst" ,libxtst)
7180 ("mesa" ,mesa)
7181 ("upower" ,upower)
7182 ("xtrans" ,xtrans)))
7183 (synopsis "Session manager for GNOME")
7184 (description
7185 "This package contains the GNOME session manager, as well as a
7186 configuration program to choose applications starting on login.")
7187 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7188 (license license:gpl2+)))
7189
7190 (define-public gjs
7191 (package
7192 (name "gjs")
7193 (version "1.68.2")
7194 (source (origin
7195 (method url-fetch)
7196 (uri (string-append "mirror://gnome/sources/" name "/"
7197 (version-major+minor version) "/"
7198 name "-" version ".tar.xz"))
7199 (sha256
7200 (base32
7201 "0c7fclm53v41n5vfndymp35fbh1x218lrk65iqrk1wc2lsnh5zvh"))
7202 (modules '((guix build utils)))
7203 (snippet
7204 '(begin
7205 (substitute* "installed-tests/scripts/testCommandLine.sh"
7206 (("Valentín") "")
7207 (("☭") ""))))))
7208 (build-system meson-build-system)
7209 (arguments
7210 '(#:configure-flags '("-Dinstalled_tests=false")
7211 #:phases
7212 (modify-phases %standard-phases
7213 (add-before 'check 'pre-check
7214 (lambda _
7215 ;; The test suite requires a running X server.
7216 (system "Xvfb :1 &")
7217 (setenv "DISPLAY" ":1")
7218
7219 ;; For the missing /etc/machine-id.
7220 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
7221 (native-inputs
7222 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
7223 ("pkg-config" ,pkg-config)
7224 ("xmllint" ,libxml2)
7225 ;; For testing
7226 ("dbus-launch" ,dbus)
7227 ("dconf" ,dconf) ; required to properly store settings
7228 ("uuidgen" ,util-linux)
7229 ("xvfb" ,xorg-server-for-tests)))
7230 (propagated-inputs
7231 ;; These are all in the Requires.private field of gjs-1.0.pc.
7232 `(("cairo" ,cairo)
7233 ("gobject-introspection" ,gobject-introspection)
7234 ("mozjs" ,mozjs-78)))
7235 (inputs
7236 `(("gtk+" ,gtk+)
7237 ("readline" ,readline)))
7238 (synopsis "Javascript bindings for GNOME")
7239 (home-page "https://live.gnome.org/Gjs")
7240 (description
7241 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7242 javascript engine and the GObject introspection framework.")
7243 (license license:gpl2+)))
7244
7245 (define-public gedit
7246 (package
7247 (name "gedit")
7248 (version "40.1")
7249 (source (origin
7250 (method url-fetch)
7251 (uri (string-append "mirror://gnome/sources/" name "/"
7252 (version-major version) "/"
7253 name "-" version ".tar.xz"))
7254 (sha256
7255 (base32
7256 "149ngl9qw6h59546lir1pa7hvw23ppsnqlj9mfqphmmn5jl99qsm"))))
7257 (build-system meson-build-system)
7258 (arguments
7259 `(#:glib-or-gtk? #t
7260 #:configure-flags
7261 ;; Otherwise, the RUNPATH will lack the final path component.
7262 (list (string-append "-Dc_link_args=-Wl,-rpath="
7263 (assoc-ref %outputs "out") "/lib/gedit"))
7264
7265 ;; XXX: Generated .h files are sometimes used before being built.
7266 #:parallel-build? #f
7267
7268 #:phases
7269 (modify-phases %standard-phases
7270 (add-after 'unpack 'skip-gtk-update-icon-cache
7271 ;; Don't create 'icon-theme.cache'.
7272 (lambda _
7273 (substitute* "build-aux/meson/post_install.py"
7274 (("gtk-update-icon-cache") (which "true")))
7275 #t))
7276 (add-after 'unpack 'patch-libgd-fetch
7277 (lambda* (#:key inputs #:allow-other-keys)
7278 (let ((libgd (assoc-ref inputs "libgd")))
7279 ;; Calling git is unnecessary because libgd is fetched as a
7280 ;; native input to this package.
7281 (substitute* "meson.build"
7282 ((".*git.*") ""))
7283 (copy-recursively libgd "subprojects/libgd")
7284 #t)))
7285 (add-after 'install 'wrap-gedit
7286 (lambda* (#:key inputs outputs #:allow-other-keys)
7287 (let ((out (assoc-ref outputs "out"))
7288 (gtksourceview (assoc-ref inputs "gtksourceview"))
7289 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7290 (python-path (getenv "GUIX_PYTHONPATH")))
7291 (wrap-program (string-append out "/bin/gedit")
7292 ;; For plugins.
7293 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7294 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
7295 ;; For language-specs.
7296 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7297 "/share")))))
7298 #t)))))
7299 (propagated-inputs
7300 `(("dconf" ,dconf)))
7301 (native-inputs
7302 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7303 ("intltool" ,intltool)
7304 ("itstool" ,itstool)
7305 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7306 ("gobject-introspection" ,gobject-introspection)
7307 ("libgd"
7308 ,(origin
7309 (method git-fetch)
7310 (uri (git-reference
7311 (url "https://gitlab.gnome.org/GNOME/libgd")
7312 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7313 (file-name (git-file-name "libgd" version))
7314 (sha256
7315 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7316 ("pkg-config" ,pkg-config)))
7317 (inputs
7318 `(("amtk" ,amtk)
7319 ("glib" ,glib)
7320 ("gspell" ,gspell)
7321 ("gtk+" ,gtk+)
7322 ("gtksourceview" ,gtksourceview)
7323 ("libpeas" ,libpeas)
7324 ("libxml2" ,libxml2)
7325 ("iso-codes" ,iso-codes)
7326 ("python-pygobject" ,python-pygobject)
7327 ("python" ,python)
7328 ("tepl" ,tepl)
7329 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7330 ("libx11" ,libx11)
7331 ("vala" ,vala)
7332 ("adwaita-icon-theme" ,adwaita-icon-theme)
7333 ("libsoup" ,libsoup)
7334 ("gnome-desktop" ,gnome-desktop)))
7335 (home-page "https://wiki.gnome.org/Apps/Gedit")
7336 (synopsis "GNOME text editor")
7337 (description "While aiming at simplicity and ease of use, gedit is a
7338 powerful general purpose text editor.")
7339 (license license:gpl2+)))
7340
7341 (define-public zenity
7342 (package
7343 (name "zenity")
7344 (version "3.32.0")
7345 (source (origin
7346 (method url-fetch)
7347 (uri (string-append "mirror://gnome/sources/zenity/"
7348 (version-major+minor version) "/"
7349 "zenity-" version ".tar.xz"))
7350 (sha256
7351 (base32
7352 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7353 (build-system gnu-build-system)
7354 (native-inputs
7355 `(("gettext" ,gettext-minimal)
7356 ("itstool" ,itstool)
7357 ("pkg-config" ,pkg-config)))
7358 (inputs
7359 `(("libnotify" ,libnotify)
7360 ("webkitgtk" ,webkitgtk)))
7361 (synopsis "Display graphical dialog boxes from shell scripts")
7362 (home-page "https://www.gnome.org")
7363 (description
7364 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7365 to display dialog boxes from the commandline and shell scripts.")
7366 (license license:lgpl2.0+)))
7367
7368 (define-public mutter
7369 (package
7370 (name "mutter")
7371 (version "40.5")
7372 (source (origin
7373 (method url-fetch)
7374 (uri (string-append "mirror://gnome/sources/" name "/"
7375 (version-major version) "/"
7376 name "-" version ".tar.xz"))
7377 (sha256
7378 (base32
7379 "0bmd6p9qcwx0hv0y2bp33xjfaw4lyfkl55r0qn2cm04465riddny"))))
7380 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7381 ;; versions of cogl and clutter. As a result, many of the inputs,
7382 ;; propagated-inputs, and configure flags used in cogl and clutter are
7383 ;; needed here as well.
7384 (build-system meson-build-system)
7385 (arguments
7386 '(;; XXX: All mutter tests fail with the following error:
7387 ;; Settings schema 'org.gnome.mutter' is not installed
7388 #:tests? #f
7389 #:glib-or-gtk? #t
7390 #:configure-flags
7391 ;; TODO: Enable profiler when Sysprof is packaged.
7392 (list "-Dprofiler=false"
7393 ;; Otherwise, the RUNPATH will lack the final path component.
7394 (string-append "-Dc_link_args=-Wl,-rpath="
7395 (assoc-ref %outputs "out") "/lib:"
7396 (assoc-ref %outputs "out") "/lib/mutter-8")
7397
7398 ;; The following flags are needed for the bundled clutter
7399 (string-append "-Dxwayland_path="
7400 (assoc-ref %build-inputs "xorg-server-xwayland")
7401 "/bin/Xwayland")
7402
7403 ;; the remaining flags are needed for the bundled cogl
7404 (string-append "-Dopengl_libname="
7405 (assoc-ref %build-inputs "mesa")
7406 "/lib/libGL.so"))
7407 #:phases
7408 (modify-phases %standard-phases
7409 (add-before 'configure 'set-udev-dir
7410 (lambda* (#:key inputs outputs #:allow-other-keys)
7411 (setenv "PKG_CONFIG_UDEV_UDEVDIR"
7412 (string-append (assoc-ref outputs "out")
7413 "/lib/udev")))))))
7414 (native-inputs
7415 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7416 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7417 ("gobject-introspection" ,gobject-introspection)
7418 ("intltool" ,intltool)
7419 ("pkg-config" ,pkg-config)
7420 ("xorg-server" ,xorg-server-for-tests)
7421 ;; For git build
7422 ("autoconf" ,autoconf)
7423 ("automake" ,automake)
7424 ("libtool" ,libtool)))
7425 (propagated-inputs
7426 `(;; libmutter.pc refers to these:
7427 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7428 ("gtk+" ,gtk+)
7429 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7430 ("atk" ,atk)
7431 ("cairo" ,cairo)
7432 ("gdk-pixbuf" ,gdk-pixbuf)
7433 ("glib" ,glib)
7434 ("json-glib" ,json-glib)
7435 ("libinput" ,libinput)
7436 ("libx11" ,libx11)
7437 ("libxcomposite" ,libxcomposite)
7438 ("libxdamage" ,libxdamage)
7439 ("libxext" ,libxext)
7440 ("libxfixes" ,libxfixes)
7441 ("libxkbcommon" ,libxkbcommon)
7442 ("libxml2" ,libxml2)
7443 ("libxrandr" ,libxrandr)
7444 ("mesa" ,mesa)
7445 ("pango" ,pango)
7446 ("udev" ,eudev)
7447 ("xinput" ,xinput)))
7448 (inputs
7449 `(("elogind" ,elogind)
7450 ("gnome-desktop" ,gnome-desktop)
7451 ("gnome-settings-daemon" ,gnome-settings-daemon)
7452 ("graphene" ,graphene)
7453 ("libcanberra-gtk" ,libcanberra)
7454 ("libgudev" ,libgudev)
7455 ("libice" ,libice)
7456 ("libsm" ,libsm)
7457 ("libwacom" ,libwacom)
7458 ("libxkbfile" ,libxkbfile)
7459 ("libxrandr" ,libxrandr)
7460 ("libxtst" ,libxtst)
7461 ("pipewire" ,pipewire-0.3)
7462 ("startup-notification" ,startup-notification)
7463 ("upower-glib" ,upower)
7464 ("xkeyboard-config" ,xkeyboard-config)
7465 ("xorg-server-xwayland" ,xorg-server-xwayland)
7466 ("zenity" ,zenity)))
7467 (synopsis "Window and compositing manager")
7468 (home-page "https://www.gnome.org")
7469 (description
7470 "Mutter is a window and compositing manager that displays and manages your
7471 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7472 Clutter toolkit with solid window-management logic inherited from the Metacity
7473 window manager.")
7474 (license license:gpl2+)))
7475
7476 (define-public gnome-online-accounts
7477 (package
7478 (name "gnome-online-accounts")
7479 (version "3.40.0")
7480 (source (origin
7481 (method url-fetch)
7482 (uri (string-append "mirror://gnome/sources/" name "/"
7483 (version-major+minor version) "/"
7484 name "-" version ".tar.xz"))
7485 (sha256
7486 (base32
7487 "1yn3n9pn2afrfv36cy2vxhm5r8lbn4gb0kyvpxvknm3gkyblyp2q"))))
7488 (outputs '("out" "lib"))
7489 (build-system glib-or-gtk-build-system)
7490 (arguments
7491 `(#:configure-flags
7492 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7493 #:phases
7494 (modify-phases %standard-phases
7495 (add-before 'configure 'patch-libgoa-output
7496 (lambda* (#:key outputs #:allow-other-keys)
7497 (let ((lib (assoc-ref outputs "lib")))
7498 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7499 (("@prefix@") lib)
7500 (("@exec_prefix@") lib)
7501 (("@libdir@") (string-append lib "/lib"))
7502 (("@includedir@") (string-append lib "/include"))
7503 (("@datadir@") (string-append lib "/share")))
7504 ;; Make sure gobject-introspection knows about the output
7505 ;; too (see <https://bugs.gnu.org/36535>).
7506 (setenv "outputs" "out lib")))))))
7507 (native-inputs
7508 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7509 ("gobject-introspection" ,gobject-introspection)
7510 ("intltool" ,intltool)
7511 ("pkg-config" ,pkg-config)
7512 ("vala" ,vala)
7513 ("xsltproc" ,libxslt)))
7514 (propagated-inputs
7515 `(("glib" ,glib) ; required by goa-1.0.pc
7516 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7517 (inputs
7518 `(("docbook-xsl" ,docbook-xsl)
7519 ("json-glib" ,json-glib)
7520 ("libsecret" ,libsecret)
7521 ("rest" ,rest)
7522 ("webkitgtk" ,webkitgtk)))
7523 (synopsis "Single sign-on framework for GNOME")
7524 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7525 (description
7526 "GNOME Online Accounts provides interfaces so that applications and
7527 libraries in GNOME can access the user's online accounts. It has providers
7528 for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare,
7529 Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7530 (license license:lgpl2.0+)))
7531
7532 (define-public evolution-data-server
7533 (package
7534 (name "evolution-data-server")
7535 (version "3.34.2")
7536 (source
7537 (origin
7538 (method url-fetch)
7539 (uri (string-append "mirror://gnome/sources/" name "/"
7540 (version-major+minor version) "/"
7541 name "-" version ".tar.xz"))
7542 (patches
7543 (search-patches "evolution-data-server-locales.patch"
7544 "evolution-data-server-libical-compat.patch"
7545 "evolution-data-server-CVE-2020-14928.patch"
7546 "evolution-data-server-CVE-2020-16117.patch"
7547 "evolution-data-server-printableoptions.patch"))
7548 (sha256
7549 (base32 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7550 (build-system cmake-build-system)
7551 (arguments
7552 '(#:configure-flags
7553 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7554 (runpaths (map (lambda (s)
7555 (string-append lib "/evolution-data-server/" s))
7556 '("addressbook-backends" "calendar-backends"
7557 "camel-providers" "credential-modules"
7558 "registry-modules"))))
7559 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7560 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7561 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7562 "-DENABLE_VALA_BINDINGS=ON"
7563 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7564 (string-append lib "/evolution-data-server;")
7565 (string-join runpaths ";"))
7566 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7567 #:phases
7568 (modify-phases %standard-phases
7569 (add-after 'unpack 'disable-failing-tests
7570 (lambda _
7571 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7572 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7573 (delete-file-recursively "tests/book-migration")
7574 (substitute* "tests/CMakeLists.txt"
7575 (("add_subdirectory\\(book-migration\\)") ""))
7576 #t))
7577 (add-after 'unpack 'patch-paths
7578 (lambda _
7579 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7580 "tests/libedata-book/data-test-utils.c"
7581 "tests/libedata-book/test-book-cache-utils.c"
7582 "tests/libedata-cal/test-cal-cache-utils.c")
7583 (("/bin/rm") (which "rm")))
7584 #t))
7585 (add-before 'configure 'dont-override-rpath
7586 (lambda _
7587 (substitute* "CMakeLists.txt"
7588 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7589 ;; Remove it so the configure flag is respected.
7590 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7591 #t)))))
7592 (native-inputs
7593 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7594 ("gobject-introspection" ,gobject-introspection)
7595 ("gperf" ,gperf)
7596 ("intltool" ,intltool)
7597 ("pkg-config" ,pkg-config)
7598 ("vala" ,vala)
7599 ("python" ,python-wrapper)))
7600 (propagated-inputs
7601 ;; These are all in the Requires field of .pc files.
7602 `(("gtk+" ,gtk+)
7603 ("libical" ,libical)
7604 ("libsecret" ,libsecret)
7605 ("libsoup" ,libsoup)
7606 ("nss" ,nss)
7607 ("sqlite" ,sqlite)))
7608 (inputs
7609 `(("bdb" ,bdb)
7610 ("gcr" ,gcr)
7611 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7612 ("json-glib" ,json-glib)
7613 ("libcanberra" ,libcanberra)
7614 ("libgweather" ,libgweather)
7615 ("mit-krb5" ,mit-krb5)
7616 ("openldap" ,openldap)
7617 ("webkitgtk" ,webkitgtk)))
7618 (synopsis "Store address books and calendars")
7619 (home-page "https://wiki.gnome.org/Apps/Evolution")
7620 (description
7621 "This package provides a unified backend for programs that work with
7622 contacts, tasks, and calendar information. It was originally developed for
7623 Evolution (hence the name), but is now used by other packages as well.")
7624 (license license:lgpl2.0)))
7625
7626 (define-public caribou
7627 (package
7628 (name "caribou")
7629 (version "0.4.21")
7630 (source (origin
7631 (method url-fetch)
7632 (uri (string-append "mirror://gnome/sources/" name "/"
7633 (version-major+minor version) "/"
7634 name "-" version ".tar.xz"))
7635 (sha256
7636 (base32
7637 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7638 (build-system glib-or-gtk-build-system)
7639 (arguments
7640 '(#:phases
7641 (modify-phases %standard-phases
7642 (add-before
7643 'build 'pre-build
7644 (lambda* (#:key outputs #:allow-other-keys)
7645 (let ((out (assoc-ref outputs "out")))
7646 ;; Use absolute shared library path in Caribou-1.0.typelib.
7647 (substitute* "libcaribou/Makefile"
7648 (("--shared-library=libcaribou.so")
7649 (string-append "--shared-library="
7650 out "/lib/libcaribou.so")))
7651 #t)))
7652 (add-after 'install 'wrap-programs
7653 (lambda* (#:key outputs #:allow-other-keys)
7654 (let* ((out (assoc-ref outputs "out"))
7655 (python-path (getenv "GUIX_PYTHONPATH"))
7656 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7657 (for-each
7658 (lambda (prog)
7659 (wrap-program prog
7660 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
7661 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7662 (list (string-append out "/bin/caribou-preferences")
7663 (string-append out "/libexec/antler-keyboard"))))
7664 #t)))))
7665 (native-inputs
7666 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7667 ("gobject-introspection" ,gobject-introspection)
7668 ("intltool" ,intltool)
7669 ("pkg-config" ,pkg-config)
7670 ("python" ,python)
7671 ("vala" ,vala)
7672 ("xsltproc" ,libxslt)))
7673 (propagated-inputs
7674 ;; caribou-1.0.pc refers to all these.
7675 `(("libgee" ,libgee)
7676 ("libxklavier" ,libxklavier)
7677 ("libxtst" ,libxtst)
7678 ("gtk+" ,gtk+)))
7679 (inputs
7680 `(("clutter" ,clutter)
7681 ("dconf" ,dconf)
7682 ("gtk+-2" ,gtk+-2)
7683 ("python-pygobject" ,python-pygobject)))
7684 (synopsis "Text entry and UI navigation application")
7685 (home-page "https://wiki.gnome.org/Projects/Caribou")
7686 (description
7687 "Caribou is an input assistive technology intended for switch and pointer
7688 users.")
7689 (license license:lgpl2.1)))
7690
7691 (define-public network-manager
7692 (package
7693 (name "network-manager")
7694 (version "1.24.0")
7695 (source (origin
7696 (method url-fetch)
7697 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7698 (version-major+minor version) "/"
7699 "NetworkManager-" version ".tar.xz"))
7700 (patches (search-patches "network-manager-plugin-path.patch"))
7701 (sha256
7702 (base32
7703 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7704 (modules '((guix build utils)))
7705 (snippet
7706 '(begin
7707 (substitute* "src/devices/wwan/nm-modem-manager.c"
7708 (("systemd") "elogind"))
7709 #t))))
7710 (build-system meson-build-system)
7711 (outputs '("out"
7712 "doc")) ; 8 MiB of gtk-doc HTML
7713 (arguments
7714 `(#:configure-flags
7715 (let ((out (assoc-ref %outputs "out"))
7716 (dhclient (search-input-file %build-inputs "/sbin/dhclient")))
7717 (list
7718 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7719 ;; component.
7720 (string-append "-Dc_link_args=-Wl,-rpath="
7721 out "/lib:"
7722 out "/lib/NetworkManager/" ,version)
7723 "-Dsystemd_journal=false"
7724 "-Dsession_tracking=elogind"
7725 "-Dsuspend_resume=elogind"
7726 "-Dsystemdsystemunitdir=no"
7727 "-Dsession_tracking_consolekit=false"
7728 "-Ddhcpcd=no"
7729 "-Ddhcpcanon=no"
7730 "-Dcrypto=gnutls"
7731 "-Diwd=true"
7732 "-Dlibaudit=yes"
7733 "-Dqt=false"
7734 "-Ddocs=true"
7735 "--sysconfdir=/etc"
7736 "--localstatedir=/var"
7737 (string-append "-Dudev_dir="
7738 out "/lib/udev")
7739 (string-append "-Ddbus_conf_dir="
7740 out "/etc/dbus-1/system.d")
7741
7742 (string-append "-Ddhclient=" dhclient)))
7743 #:phases
7744 (modify-phases %standard-phases
7745 (add-before 'configure 'pre-configure
7746 (lambda _
7747 ;; These tests try to test aspects of network-manager's
7748 ;; functionality within restricted containers, but they don't
7749 ;; cope with being already in the Guix build jail as that jail
7750 ;; lacks some features that they would like to proxy over (like
7751 ;; a /sys mount).
7752 (substitute* "src/platform/tests/meson.build"
7753 ((".*test-address-linux.*") "")
7754 ((".*test-cleanup-linux.*") "")
7755 ((".*test-link-linux.*") "")
7756 ((".*test-route-linux.*") ""))
7757 (substitute* "src/devices/tests/meson.build"
7758 ((".*test-acd.*") "")
7759 ((".*test-lldp.*") ""))
7760 #t))
7761 (add-after 'unpack 'patch-docbook-xml
7762 (lambda* (#:key inputs #:allow-other-keys)
7763 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7764 "/xml/dtd/docbook")))
7765 (substitute* (find-files "." ".*\\.(xsl|xml)")
7766 (("http://.*/docbookx\\.dtd")
7767 (string-append xmldoc "/docbookx.dtd")))
7768 #t)))
7769 (add-before 'check 'pre-check
7770 (lambda _
7771 ;; For the missing /etc/machine-id.
7772 (setenv "DBUS_FATAL_WARNINGS" "0")
7773 #t))
7774 (add-before 'install 'no-polkit-magic
7775 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7776 (lambda _
7777 (setenv "PKEXEC_UID" "something")
7778 #t))
7779 (add-after 'install 'move-doc
7780 (lambda* (#:key outputs #:allow-other-keys)
7781 (let ((out (assoc-ref outputs "out"))
7782 (doc (assoc-ref outputs "doc")))
7783 (mkdir-p (string-append doc "/share"))
7784 (for-each (lambda (directory)
7785 (copy-recursively (string-append out directory)
7786 (string-append doc directory))
7787 (delete-file-recursively
7788 (string-append out directory)))
7789 '("/share/doc" "/share/gtk-doc"))
7790 #t))))))
7791 (propagated-inputs
7792 `(("glib" ,glib)))
7793 (native-inputs
7794 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7795 ("gtk-doc" ,gtk-doc/stable)
7796 ("gobject-introspection" ,gobject-introspection)
7797 ("docbook-xml" ,docbook-xml)
7798 ("docbook-xsl" ,docbook-xsl)
7799 ("intltool" ,intltool)
7800 ("libxslt" ,libxslt)
7801 ("libxml2" ,libxml2)
7802 ("pkg-config" ,pkg-config)
7803 ("vala" ,vala)
7804 ;; For testing.
7805 ("python" ,python-wrapper)
7806 ("python-dbus" ,python-dbus)
7807 ("python-pygobject" ,python-pygobject)))
7808 (inputs
7809 `(("curl" ,curl)
7810 ("cyrus-sasl" ,cyrus-sasl)
7811 ("dbus-glib" ,dbus-glib)
7812 ("dnsmasq" ,dnsmasq)
7813 ("eudev" ,eudev)
7814 ("gnutls" ,gnutls)
7815 ("iptables" ,iptables)
7816 ("isc-dhcp" ,isc-dhcp)
7817 ("iwd" ,iwd) ; wpa_supplicant alternative
7818 ("jansson" ,jansson)
7819 ("libaudit" ,audit)
7820 ("libgcrypt" ,libgcrypt)
7821 ("libgudev" ,libgudev)
7822 ("libndp" ,libndp)
7823 ("libnl" ,libnl)
7824 ("libselinux" ,libselinux)
7825 ("libsoup" ,libsoup)
7826 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7827 ("modem-manager" ,modem-manager)
7828 ("newt" ,newt) ;for the 'nmtui' console interface
7829 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7830 ("polkit" ,polkit)
7831 ("ppp" ,ppp)
7832 ("readline" ,readline)
7833 ("util-linux" ,util-linux)
7834 ("elogind" ,elogind)))
7835 (synopsis "Network connection manager")
7836 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7837 (description
7838 "NetworkManager is a system network service that manages your network
7839 devices and connections, attempting to keep active network connectivity when
7840 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7841 devices, and provides VPN integration with a variety of different VPN
7842 services.")
7843 ;; “This NetworkManager project consists of the daemon, client tools, and
7844 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7845 ;; GPL-2.0+.”
7846 (license (list license:gpl2+
7847 license:lgpl2.1+))
7848 (properties '((upstream-name . "NetworkManager")))))
7849
7850 (define-public network-manager-openvpn
7851 (package
7852 (name "network-manager-openvpn")
7853 (version "1.8.12")
7854 (source (origin
7855 (method url-fetch)
7856 (uri (string-append
7857 "mirror://gnome/sources/NetworkManager-openvpn/"
7858 (version-major+minor version)
7859 "/NetworkManager-openvpn-" version ".tar.xz"))
7860 (sha256
7861 (base32
7862 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7863 (build-system gnu-build-system)
7864 (arguments
7865 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7866 #:phases
7867 (modify-phases %standard-phases
7868 (add-after 'configure 'patch-path
7869 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7870 (let* ((ovpn (search-input-file inputs "/sbin/openvpn"))
7871 (modprobe (search-input-file inputs "/bin/modprobe"))
7872 (pretty-ovpn (string-append "\"" ovpn "\"")))
7873 (for-each
7874 (lambda (file)
7875 (substitute* file
7876 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7877 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7878 (("\"/sbin/openvpn\"") pretty-ovpn)
7879 (("/sbin/modprobe") modprobe)))
7880 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7881 #t)))))
7882 (native-inputs
7883 `(("pkg-config" ,pkg-config)
7884 ("intltool" ,intltool)))
7885 (inputs
7886 `(("gtk+" ,gtk+)
7887 ("kmod" ,kmod)
7888 ("openvpn" ,openvpn)
7889 ("network-manager" ,network-manager)
7890 ("libnma" ,libnma)
7891 ("libsecret" ,libsecret)))
7892 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7893 (synopsis "OpenVPN plug-in for NetworkManager")
7894 (description
7895 "This extension of NetworkManager allows it to take care of connections
7896 to virtual private networks (VPNs) via OpenVPN.")
7897 (license license:gpl2+)
7898 (properties `((upstream-name . "NetworkManager-openvpn")))))
7899
7900 (define-public network-manager-vpnc
7901 (package
7902 (name "network-manager-vpnc")
7903 (version "1.2.6")
7904 (source (origin
7905 (method url-fetch)
7906 (uri (string-append
7907 "mirror://gnome/sources/NetworkManager-vpnc/"
7908 (version-major+minor version)
7909 "/NetworkManager-vpnc-" version ".tar.xz"))
7910 (sha256
7911 (base32
7912 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7913 (build-system gnu-build-system)
7914 (arguments
7915 `(#:configure-flags '("--enable-absolute-paths"
7916 "--localstatedir=/var"
7917 ;; libnm-glib has been removed from network-manager
7918 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7919 "--with-libnm-glib=no")
7920 #:phases
7921 (modify-phases %standard-phases
7922 (add-after 'configure 'patch-path
7923 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7924 (let* ((vpnc (search-input-file inputs "/sbin/vpnc"))
7925 (modprobe (search-input-file inputs "/bin/modprobe"))
7926 (pretty-ovpn (string-append "\"" vpnc "\"")))
7927 (substitute* "src/nm-vpnc-service.c"
7928 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7929 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7930 (("\"/sbin/vpnc\"") pretty-ovpn)
7931 (("/sbin/modprobe") modprobe)))
7932 #t)))))
7933 (native-inputs
7934 `(("pkg-config" ,pkg-config)
7935 ("intltool" ,intltool)))
7936 (inputs
7937 `(("gtk+" ,gtk+)
7938 ("kmod" ,kmod)
7939 ("vpnc" ,vpnc)
7940 ("network-manager" ,network-manager)
7941 ("libnma" ,libnma)
7942 ("libsecret" ,libsecret)))
7943 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7944 (synopsis "VPNC plug-in for NetworkManager")
7945 (description
7946 "Support for configuring virtual private networks based on VPNC.
7947 Compatible with Cisco VPN concentrators configured to use IPsec.")
7948 (license license:gpl2+)
7949 (properties `((upstream-name . "NetworkManager-vpnc")))))
7950
7951 (define-public network-manager-openconnect
7952 (package
7953 (name "network-manager-openconnect")
7954 (version "1.2.6")
7955 (source (origin
7956 (method url-fetch)
7957 (uri (string-append
7958 "mirror://gnome/sources/NetworkManager-openconnect/"
7959 (version-major+minor version)
7960 "/NetworkManager-openconnect-" version ".tar.xz"))
7961 (sha256
7962 (base32
7963 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7964 (build-system gnu-build-system)
7965 (arguments
7966 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7967 #:phases
7968 (modify-phases %standard-phases
7969 (add-after 'configure 'patch-path
7970 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7971 (let* ((openconnect (search-input-file inputs
7972 "/sbin/openconnect"))
7973 (modprobe (search-input-file inputs "/bin/modprobe"))
7974 (pretty-ovpn (string-append "\"" openconnect "\"")))
7975 (substitute* "src/nm-openconnect-service.c"
7976 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7977 (("/sbin/modprobe") modprobe)))
7978 #t)))))
7979 (native-inputs
7980 `(("intltool" ,intltool)
7981 ("libnma" ,libnma)
7982 ("pkg-config" ,pkg-config)))
7983 (inputs
7984 `(("gcr" ,gcr)
7985 ("gtk+" ,gtk+)
7986 ("kmod" ,kmod)
7987 ("libsecret" ,libsecret)
7988 ("libxml2" ,libxml2)
7989 ("lz4" ,lz4)
7990 ("network-manager" ,network-manager)
7991 ("openconnect" ,openconnect)))
7992 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7993 (synopsis "OpenConnect plug-in for NetworkManager")
7994 (description
7995 "This extension of NetworkManager allows it to take care of connections
7996 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7997 Cisco's AnyConnect SSL VPN.")
7998 (license license:gpl2+)
7999 (properties `((upstream-name . "NetworkManager-openconnect")
8000
8001 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
8002 ;; file refers to account "nm-openconnect". Specify it here
8003 ;; so that 'network-manager-service-type' creates it.
8004 (user-accounts . ("nm-openconnect"))))))
8005
8006 (define-public mobile-broadband-provider-info
8007 (package
8008 (name "mobile-broadband-provider-info")
8009 (version "20190116")
8010 (source (origin
8011 (method url-fetch)
8012 (uri (string-append
8013 "mirror://gnome/sources/"
8014 "mobile-broadband-provider-info/" version "/"
8015 "mobile-broadband-provider-info-" version ".tar.xz"))
8016 (sha256
8017 (base32
8018 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
8019 (build-system gnu-build-system)
8020 (arguments
8021 `(#:tests? #f)) ; no tests
8022 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8023 (synopsis "Database of broadband connection configuration")
8024 (description "Database of broadband connection configuration.")
8025 (license license:public-domain)))
8026
8027 (define-public network-manager-applet
8028 (package
8029 (name "network-manager-applet")
8030 (version "1.22.0")
8031 (source (origin
8032 (method url-fetch)
8033 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
8034 (version-major+minor version) "/"
8035 "network-manager-applet-" version ".tar.xz"))
8036 (sha256
8037 (base32
8038 "1gj6lqqi613j2m49v9i82lqg1rv7kwwc8z4nxjcwpaa0ins803f7"))))
8039 (build-system meson-build-system)
8040 (arguments
8041 '(#:glib-or-gtk? #t
8042 #:configure-flags
8043 '("-Dappindicator=yes")))
8044 (native-inputs
8045 `(("intltool" ,intltool)
8046 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
8047 ("gobject-introspection" ,gobject-introspection)
8048 ("gtk-doc" ,gtk-doc/stable)
8049 ("pkg-config" ,pkg-config)))
8050 (propagated-inputs
8051 ;; libnm-gtk.pc refers to all these.
8052 `(("dbus-glib" ,dbus-glib)
8053 ("gtk+" ,gtk+)
8054 ("network-manager" ,network-manager)
8055 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8056 ("libnma" ,libnma)))
8057 (inputs
8058 `(("gcr" ,gcr)
8059 ("libappindicator" ,libappindicator)
8060 ("libgudev" ,libgudev)
8061 ("libnotify" ,libnotify)
8062 ("libsecret" ,libsecret)
8063 ("libselinux" ,libselinux)
8064 ("jansson" ,jansson) ; for team support
8065 ("modem-manager" ,modem-manager)))
8066 (synopsis "Applet for managing network connections")
8067 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8068 (description
8069 "This package contains a systray applet for NetworkManager. It displays
8070 the available networks and allows users to easily switch between them.")
8071 (license license:gpl2+)))
8072
8073 (define-public libxml++
8074 (package
8075 (name "libxml++")
8076 (version "3.2.0")
8077 (source
8078 (origin
8079 (method git-fetch)
8080 (uri (git-reference
8081 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8082 (commit version)))
8083 (file-name (git-file-name name version))
8084 (sha256
8085 (base32 "0wjz591rjlgbah7dcq8i0yn0zw9d62b7g6r0pppx81ic0cx8n8ga"))))
8086 (build-system gnu-build-system)
8087 (arguments
8088 `(#:phases
8089 (modify-phases %standard-phases
8090 (add-after 'unpack 'fix-documentation
8091 (lambda* (#:key inputs #:allow-other-keys)
8092 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
8093 "/xml/dtd/docbook"))
8094 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
8095 "/xml/xsl/docbook-xsl-"
8096 ,(package-version docbook-xsl))))
8097 (substitute* '("examples/dom_xpath/example.xml"
8098 "docs/manual/libxml++_without_code.xml")
8099 (("http://.*/docbookx\\.dtd")
8100 (string-append xmldoc "/docbookx.dtd")))
8101 (setenv "SGML_CATALOG_FILES"
8102 (string-append xmldoc "/catalog.xml"))
8103 (substitute* "docs/manual/docbook-customisation.xsl"
8104 (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
8105 (string-append xsldoc "/html/chunk.xsl")))))))))
8106 (propagated-inputs
8107 ;; libxml++-3.0.pc refers to all these.
8108 `(("glibmm" ,glibmm-2.64)
8109 ("libxml2" ,libxml2)))
8110 (native-inputs
8111 `(("autoconf" ,autoconf)
8112 ("automake" ,automake)
8113 ("doxygen" ,doxygen)
8114 ("docbook-xml" ,docbook-xml)
8115 ("docbook-xsl" ,docbook-xsl)
8116 ("graphviz" ,graphviz) ; for dot
8117 ("libtool" ,libtool)
8118 ("libxslt" ,libxslt)
8119 ("mm-common" ,mm-common)
8120 ("perl" ,perl)
8121 ("pkg-config" ,pkg-config)))
8122 (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
8123 (synopsis "C++ bindings to the libxml2 XML parser library")
8124 (description
8125 "This package provides a C++ interface to the libxml2 XML parser
8126 library.")
8127 (license license:lgpl2.1+)))
8128
8129 ;; This is the last release providing the 2.6 API, hence the name.
8130 ;; This is needed by tascam-gtk
8131 (define-public libxml++-2
8132 (package
8133 (inherit libxml++)
8134 (name "libxml++")
8135 (version "2.40.1")
8136 (source
8137 (origin
8138 (method git-fetch)
8139 (uri (git-reference
8140 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8141 (commit version)))
8142 (file-name (git-file-name name version))
8143 (sha256
8144 (base32 "0gbfi4l88w828gmyc9br11l003ylyi4vigp5d1kfgsn0k4cig3y9"))))))
8145
8146 (define-public gdm
8147 (package
8148 (name "gdm")
8149 (version "40.1")
8150 (source (origin
8151 (method url-fetch)
8152 (uri (string-append "mirror://gnome/sources/" name "/"
8153 (version-major version) "/"
8154 name "-" version ".tar.xz"))
8155 (sha256
8156 (base32
8157 "1zbks7bwbys1pn7sk0aq0dbn09adx51amb441z4z4j28cvma3f5b"))
8158 (patches
8159 (search-patches
8160 "gdm-default-session.patch"
8161 "gdm-elogind-support.patch"
8162 "gdm-remove-hardcoded-xwayland-path.patch"
8163 "gdm-wayland-session-wrapper-from-env.patch"))))
8164 (build-system meson-build-system)
8165 (arguments
8166 `(#:glib-or-gtk? #t
8167 #:configure-flags
8168 ,#~(list
8169 "-Dplymouth=disabled"
8170 "-Dsystemd-journal=false"
8171
8172 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8173 ;; instead of having to replace it (i.e., stopping the mingetty
8174 ;; service for TTY 1 before starting GDM).
8175 "-Dinitial-vt=7"
8176
8177 ;; Use elogind instead of systemd.
8178 "-Dlogind-provider=elogind"
8179 "-Dsystemdsystemunitdir=no"
8180 "-Dsystemduserunitdir=no"
8181
8182 ;; Use '/etc/environment' for locale settings instead of the
8183 ;; systemd-specific '/etc/locale.conf'.
8184 "-Dlang-file=/etc/environment"
8185
8186 (string-append "-Dudev-dir=" #$output "/lib/udev")
8187
8188 "--localstatedir=/var"
8189 (string-append "-Ddefault-path="
8190 (string-join '("/run/setuid-programs"
8191 "/run/current-system/profile/bin"
8192 "/run/current-system/profile/sbin")
8193 ":"))
8194 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8195 ;; XDG_DATA_DIRS so that it finds its schemas.
8196 "--sbindir" (string-append #$output "/bin"))
8197 #:phases
8198 (modify-phases %standard-phases
8199 (add-before
8200 'configure 'pre-configure
8201 (lambda* (#:key inputs outputs #:allow-other-keys)
8202 ;; We don't have <systemd/sd-daemon.h>.
8203 (substitute* '("common/gdm-log.c"
8204 "daemon/gdm-server.c"
8205 "daemon/gdm-session-worker.c"
8206 "daemon/gdm-session-worker-job.c")
8207 (("#include <systemd/sd-daemon\\.h>") ""))
8208 ;; Use elogind for sd-login.
8209 (substitute* '("common/gdm-common.c"
8210 "daemon/gdm-local-display-factory.c"
8211 "daemon/gdm-manager.c"
8212 "libgdm/gdm-user-switching.c")
8213 (("#include <systemd/sd-login\\.h>")
8214 "#include <elogind/sd-login.h>"))
8215 ;; Look for system-installed sessions in
8216 ;; /run/current-system/profile/share.
8217 (substitute* '("libgdm/gdm-sessions.c"
8218 "daemon/gdm-session.c"
8219 "daemon/gdm-display.c"
8220 "daemon/gdm-launch-environment.c")
8221 (("DATADIR \"/x")
8222 "\"/run/current-system/profile/share/x")
8223 (("DATADIR \"/wayland")
8224 "\"/run/current-system/profile/share/wayland")
8225 (("DATADIR \"/gnome")
8226 "\"/run/current-system/profile/share/gnome"))
8227 (let ((propagate '("GDM_CUSTOM_CONF"
8228 "GDM_DBUS_DAEMON"
8229 "GDM_X_SERVER"
8230 "GDM_X_SESSION"
8231 ;; XXX: Remove this once GNOME Shell is
8232 ;; a dependency of GDM.
8233 "XDG_DATA_DIRS")))
8234 (substitute* "daemon/gdm-session.c"
8235 (("set_up_session_environment \\(self\\);")
8236 (apply string-append
8237 "set_up_session_environment (self);\n"
8238 (map (lambda (name)
8239 (string-append
8240 "gdm_session_set_environment_variable "
8241 "(self, \"" name "\","
8242 "g_getenv (\"" name "\"));\n"))
8243 propagate)))))
8244 ;; Find the configuration file using an environment variable.
8245 (substitute* '("common/gdm-settings.c")
8246 (("GDM_CUSTOM_CONF")
8247 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8248 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8249 " : GDM_CUSTOM_CONF)")))
8250 ;; Use service-supplied path to X.
8251 (substitute* '("daemon/gdm-server.c")
8252 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8253 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8254 (substitute* '("daemon/gdm-wayland-session.c"
8255 "daemon/gdm-x-session.c")
8256 (("\"dbus-daemon\"")
8257 "g_getenv (\"GDM_DBUS_DAEMON\")")
8258 (("X_SERVER")
8259 "g_getenv (\"GDM_X_SERVER\")")
8260 (("GDMCONFDIR \"/Xsession\"")
8261 "g_getenv (\"GDM_X_SESSION\")"))
8262 ;; Use an absolute path for GNOME Session.
8263 (substitute* "daemon/gdm-launch-environment.c"
8264 (("\"gnome-session\"")
8265 (string-append "\"" (assoc-ref inputs "gnome-session")
8266 "/bin/gnome-session\"")))
8267 ;; Do not automatically select the placeholder session.
8268 (substitute* "daemon/gdm-session.c"
8269 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8270 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8271 "(g_strcmp0(search_dirs[i], \""
8272 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
8273 "\") == 0 && "
8274 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8275 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8276 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))))
8277 (add-before 'install 'install-logo
8278 (lambda* (#:key inputs outputs #:allow-other-keys)
8279 (let* ((out (assoc-ref outputs "out"))
8280 (guix-icons (assoc-ref inputs "guix-icons"))
8281 (icon
8282 (string-append guix-icons "/share/icons/hicolor/\
8283 scalable/apps/guix-white-icon.svg"))
8284 (schema
8285 (string-append out "/share/glib-2.0/schemas/\
8286 org.gnome.login-screen.gschema.override")))
8287 (mkdir-p (dirname schema))
8288 (with-output-to-file schema
8289 (lambda ()
8290 (format #t "\
8291 [org.gnome.login-screen]
8292 logo='~a'~%" icon))))))
8293 ;; GDM requires that there be at least one desktop entry
8294 ;; file. This phase installs a hidden one that simply
8295 ;; fails. This enables users to use GDM with a
8296 ;; '~/.xsession' script with no other desktop entry files.
8297 ;; See <https://bugs.gnu.org/35068>.
8298 (add-after 'install 'install-placeholder-desktop-entry
8299 (lambda* (#:key inputs outputs #:allow-other-keys)
8300 (let* ((out (assoc-ref outputs "out"))
8301 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8302 (fail (string-append sessions "/fail.desktop")))
8303 (mkdir-p sessions)
8304 (with-output-to-file fail
8305 (lambda ()
8306 (for-each
8307 display
8308 '("[Desktop Entry]\n"
8309 "Encoding=UTF-8\n"
8310 "Type=Application\n"
8311 "Name=Fail\n"
8312 "Comment=This session fails immediately.\n"
8313 "NoDisplay=true\n"
8314 "Exec=false\n")))))))
8315 ;; GDM needs GNOME Session to run these applications. We link
8316 ;; their autostart files in `share/gdm/greeter/autostart'
8317 ;; because GDM explicitly tells GNOME Session to look there.
8318 ;;
8319 ;; XXX: GNOME Shell should be linked here too, but currently
8320 ;; GNOME Shell depends on GDM.
8321 (add-after 'install 'link-autostart-files
8322 (lambda* (#:key inputs outputs #:allow-other-keys)
8323 (let* ((out (assoc-ref outputs "out"))
8324 (autostart (string-append out "/share/gdm/"
8325 "greeter/autostart"))
8326 (settings (assoc-ref inputs "gnome-settings-daemon")))
8327 (mkdir-p autostart)
8328 (with-directory-excursion autostart
8329 (for-each (lambda (desktop)
8330 (symlink desktop (basename desktop)))
8331 (find-files
8332 (string-append settings "/etc/xdg"))))))))))
8333 (native-inputs
8334 `(("dconf" ,dconf)
8335 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8336 ("gobject-introspection" ,gobject-introspection)
8337 ("guix-icons" ,guix-icons)
8338 ("intltool" ,intltool)
8339 ("itstool" ,itstool)
8340 ("pkg-config" ,pkg-config)
8341 ("xmllint" ,libxml2)))
8342 (inputs
8343 `(("accountsservice" ,accountsservice)
8344 ("check" ,check-0.14) ;for testing
8345 ("elogind" ,elogind)
8346 ("eudev" ,eudev)
8347 ("gnome-session" ,gnome-session)
8348 ("gnome-settings-daemon" ,gnome-settings-daemon)
8349 ("gtk+" ,gtk+)
8350 ("iso-codes" ,iso-codes)
8351 ("libcanberra" ,libcanberra)
8352 ("linux-pam" ,linux-pam)))
8353 (synopsis "Display manager for GNOME")
8354 (home-page "https://wiki.gnome.org/Projects/GDM/")
8355 (description
8356 "GNOME Display Manager is a system service that is responsible for
8357 providing graphical log-ins and managing local and remote displays.")
8358 (license license:gpl2+)))
8359
8360 (define-public libgtop
8361 (package
8362 (name "libgtop")
8363 (version "2.40.0")
8364 (source (origin
8365 (method url-fetch)
8366 (uri (string-append "mirror://gnome/sources/libgtop/"
8367 (version-major+minor version) "/"
8368 "libgtop-" version ".tar.xz"))
8369 (sha256
8370 (base32
8371 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8372 (build-system gnu-build-system)
8373 (native-inputs
8374 `(("gobject-introspection" ,gobject-introspection)
8375 ("intltool" ,intltool)
8376 ("perl" ,perl)
8377 ("pkg-config" ,pkg-config)))
8378 (propagated-inputs
8379 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8380 (synopsis "Portable system access library")
8381 (home-page "https://www.gnome.org/")
8382 (description
8383 "LibGTop is a library to get system specific data such as CPU and memory
8384 usage and information about running processes.")
8385 (license license:gpl2+)))
8386
8387 (define-public gnome-bluetooth
8388 (package
8389 (name "gnome-bluetooth")
8390 (version "3.34.5")
8391 (source (origin
8392 (method url-fetch)
8393 (uri (string-append "mirror://gnome/sources/gnome-bluetooth/"
8394 (version-major+minor version) "/"
8395 "gnome-bluetooth-" version ".tar.xz"))
8396 (sha256
8397 (base32
8398 "1a9ynlwwkb3wpg293ym517vmrkk63y809mmcv9a21k5yr199x53c"))))
8399 (build-system meson-build-system)
8400 (native-inputs
8401 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8402 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8403 ("gobject-introspection" ,gobject-introspection)
8404 ("intltool" ,intltool)
8405 ("pkg-config" ,pkg-config)
8406 ("python" ,python)
8407 ("python-dbus" ,python-dbus)
8408 ("xmllint" ,libxml2)))
8409 (propagated-inputs
8410 ;; gnome-bluetooth-1.0.pc refers to all these.
8411 `(("glib" ,glib)
8412 ("gtk+" ,gtk+)))
8413 (inputs
8414 `(("eudev" ,eudev)
8415 ("libcanberra" ,libcanberra)
8416 ("libnotify" ,libnotify)
8417 ("python-dbus" ,python-dbus)))
8418 (synopsis "GNOME Bluetooth subsystem")
8419 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8420 (description
8421 "This package contains tools for managing and manipulating Bluetooth
8422 devices using the GNOME desktop.")
8423 (license license:lgpl2.1+)))
8424
8425 (define-public gnome-control-center
8426 (package
8427 (name "gnome-control-center")
8428 (version "40.1")
8429 (source (origin
8430 (method url-fetch)
8431 (uri (string-append "mirror://gnome/sources/" name "/"
8432 (version-major version) "/"
8433 name "-" version ".tar.xz"))
8434 (sha256
8435 (base32
8436 "0rr4d5m2a72vrb31jgyx49dp0s2pwgyxsrk4hyw5ym66wq63c3v1"))))
8437 (build-system meson-build-system)
8438 (arguments
8439 '(#:glib-or-gtk? #t
8440 #:configure-flags
8441 (list "-Dcheese=false"
8442 (string-append "-Dgnome_session_libexecdir="
8443 (assoc-ref %build-inputs "gnome-session")
8444 "/libexec"))
8445 #:phases
8446 (modify-phases %standard-phases
8447 (add-before 'configure 'patch-paths
8448 (lambda* (#:key inputs #:allow-other-keys)
8449 (let ((libc (assoc-ref inputs "libc"))
8450 (tzdata (assoc-ref inputs "tzdata"))
8451 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8452 (nm-applet (assoc-ref inputs "network-manager-applet"))
8453 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8454 (substitute* "panels/datetime/tz.h"
8455 (("/usr/share/zoneinfo/zone.tab")
8456 (string-append tzdata "/share/zoneinfo/zone.tab")))
8457 (substitute* "tests/datetime/test-endianess.c"
8458 (("/usr/share/locale")
8459 (string-append libc "/share/locale")))
8460 (substitute* "panels/region/cc-region-panel.c"
8461 (("\"gkbd-keyboard-display")
8462 (string-append "\"" libgnomekbd
8463 "/bin/gkbd-keyboard-display")))
8464 (substitute* '("panels/network/net-device-bluetooth.c"
8465 "panels/network/net-device-mobile.c"
8466 "panels/network/connection-editor/net-connection-editor.c")
8467 (("\"nm-connection-editor")
8468 (string-append "\"" nm-applet
8469 "/bin/nm-connection-editor")))
8470 (substitute* '("panels/user-accounts/run-passwd.c")
8471 (("/usr/bin/passwd")
8472 "/run/setuid-programs/passwd"))
8473 (substitute* "panels/info-overview/cc-info-overview-panel.c"
8474 (("DATADIR \"/gnome/gnome-version.xml\"")
8475 (string-append "\"" gnome-desktop
8476 "/share/gnome/gnome-version.xml\""))))))
8477 (add-after 'unpack 'skip-gtk-update-icon-cache
8478 ;; Don't create 'icon-theme.cache'.
8479 (lambda _
8480 (substitute* "build-aux/meson/meson_post_install.py"
8481 (("gtk-update-icon-cache") (which "true"))))))))
8482 (native-inputs
8483 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8484 ("intltool" ,intltool)
8485 ("pkg-config" ,pkg-config)
8486 ("xsltproc" ,libxslt)
8487 ;; For tests
8488 ("hicolor-icon-theme" ,hicolor-icon-theme)
8489 ("python-dbusmock" ,python-dbusmock)
8490 ("xorg-server" ,xorg-server-for-tests)))
8491 (inputs
8492 `(("accountsservice" ,accountsservice)
8493 ("clutter-gtk" ,clutter-gtk)
8494 ("colord-gtk" ,colord-gtk)
8495 ("cups" ,cups)
8496 ("dconf" ,dconf)
8497 ("docbook-xsl" ,docbook-xsl)
8498 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8499 ("gnome-bluetooth" ,gnome-bluetooth)
8500 ("gnome-desktop" ,gnome-desktop)
8501 ("gnome-online-accounts" ,gnome-online-accounts)
8502 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8503 ("gnome-session" ,gnome-session)
8504 ("gnome-settings-daemon" ,gnome-settings-daemon)
8505 ("grilo" ,grilo)
8506 ("gsound" ,gsound)
8507 ("ibus" ,ibus)
8508 ("libcanberra" ,libcanberra)
8509 ("libgnomekbd" ,libgnomekbd)
8510 ("libgudev" ,libgudev)
8511 ("libgtop" ,libgtop)
8512 ("libnma" ,libnma)
8513 ("libpwquality" ,libpwquality)
8514 ("libsecret" ,libsecret)
8515 ("libsoup" ,libsoup)
8516 ("libxml2" ,libxml2)
8517 ("libwacom" ,libwacom)
8518 ("mesa" ,mesa)
8519 ("mit-krb5" ,mit-krb5)
8520 ("modem-manager" ,modem-manager)
8521 ("network-manager-applet" ,network-manager-applet)
8522 ("polkit" ,polkit)
8523 ("pulseaudio" ,pulseaudio)
8524 ("smbclient" ,samba)
8525 ("tzdata" ,tzdata)
8526 ("udisks" ,udisks)
8527 ("upower" ,upower)))
8528 (synopsis "Utilities to configure the GNOME desktop")
8529 (home-page "https://www.gnome.org/")
8530 (description
8531 "This package contains configuration applets for the GNOME desktop,
8532 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8533 properties, sound setup, desktop theme and background, user interface
8534 properties, screen resolution, and other GNOME parameters.")
8535 (license license:gpl2+)))
8536
8537 (define-public gnome-shell
8538 (package
8539 (name "gnome-shell")
8540 (version "40.5")
8541 (source (origin
8542 (method url-fetch)
8543 (uri (string-append "mirror://gnome/sources/" name "/"
8544 (version-major version) "/"
8545 name "-" version ".tar.xz"))
8546 (sha256
8547 (base32
8548 "0kph3g4ix23sm3ip2b13rs7hx8sa7fvlvcyy4zdk2iaj56rmadvd"))
8549 (patches (search-patches "gnome-shell-disable-test.patch"))
8550 (modules '((guix build utils)))))
8551 (build-system meson-build-system)
8552 (arguments
8553 `(#:glib-or-gtk? #t
8554 #:disallowed-references ,(list (gexp-input glib "bin")
8555 (gexp-input libxslt)
8556 (gexp-input ruby-sass))
8557 #:configure-flags
8558 (list "-Dsystemd=false"
8559 ;; Otherwise, the RUNPATH will lack the final path component.
8560 (string-append "-Dc_link_args=-Wl,-rpath="
8561 (assoc-ref %outputs "out")
8562 "/lib/gnome-shell"))
8563
8564 #:modules ((guix build meson-build-system)
8565 (guix build utils)
8566 (srfi srfi-1))
8567
8568 #:phases
8569 (modify-phases %standard-phases
8570 (add-after 'unpack 'fix-keysdir
8571 (lambda* (#:key outputs #:allow-other-keys)
8572 (let* ((out (assoc-ref outputs "out"))
8573 (keysdir (string-append
8574 out "/share/gnome-control-center/keybindings")))
8575 (substitute* "meson.build"
8576 (("keysdir =.*")
8577 (string-append "keysdir = '" keysdir "'\n"))))))
8578 (add-after 'unpack 'skip-gtk-update-icon-cache
8579 ;; Don't create 'icon-theme.cache'.
8580 (lambda _
8581 (substitute* "meson/postinstall.py"
8582 (("gtk-update-icon-cache") "true"))))
8583 (add-before 'configure 'record-absolute-file-names
8584 (lambda* (#:key inputs #:allow-other-keys)
8585 (substitute* "js/misc/ibusManager.js"
8586 (("'ibus-daemon'")
8587 (string-append "'" (assoc-ref inputs "ibus")
8588 "/bin/ibus-daemon'")))
8589 (substitute* "js/ui/status/keyboard.js"
8590 (("'gkbd-keyboard-display'")
8591 (string-append "'" (assoc-ref inputs "libgnomekbd")
8592 "/bin/gkbd-keyboard-display'")))))
8593 (add-before 'check 'pre-check
8594 (lambda* (#:key inputs #:allow-other-keys)
8595 ;; Tests require a running X server.
8596 (system "Xvfb :1 &")
8597 (setenv "DISPLAY" ":1")))
8598 (add-after 'install 'wrap-programs
8599 (lambda* (#:key inputs outputs #:allow-other-keys)
8600 (let ((out (assoc-ref outputs "out"))
8601 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8602 (python-path (getenv "GUIX_PYTHONPATH")))
8603 (wrap-program (string-append out "/bin/gnome-shell")
8604 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8605 ;; FIXME: gnome-shell loads these libraries with unqualified
8606 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8607 ;; alternative might be to patch gnome-shell.
8608 `("LD_LIBRARY_PATH" ":" prefix
8609 ,(map (lambda (pkg)
8610 (string-append (assoc-ref inputs pkg) "/lib"))
8611 '("gdk-pixbuf"
8612 "gnome-bluetooth" "librsvg" "libgweather"))))
8613 (for-each
8614 (lambda (prog)
8615 (wrap-program (string-append out "/bin/" prog)
8616 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
8617 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8618 '("gnome-shell-extension-tool" "gnome-shell-perf-tool")))))
8619 (replace 'glib-or-gtk-wrap
8620 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8621 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8622 ;; By default intltool et al. would end up in the XDG_DATA_DIRS
8623 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8624 ;; phase. Fix that since we don't need these.
8625 (wrap #:inputs (fold alist-delete inputs
8626 '("intltool" "glib:bin"))
8627 #:outputs outputs)))))))
8628 (native-inputs
8629 `(("asciidoc" ,asciidoc)
8630 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8631 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8632 ("gobject-introspection" ,gobject-introspection)
8633 ("hicolor-icon-theme" ,hicolor-icon-theme)
8634 ("intltool" ,intltool)
8635 ("pkg-config" ,pkg-config)
8636 ("python" ,python)
8637 ("ruby-sass" ,ruby-sass)
8638 ("sassc" ,sassc)
8639 ("xsltproc" ,libxslt)
8640 ;; For tests
8641 ("xorg-server" ,xorg-server-for-tests)))
8642 (inputs
8643 `(("accountsservice" ,accountsservice)
8644 ("caribou" ,caribou)
8645 ("docbook-xsl" ,docbook-xsl)
8646 ("evolution-data-server" ,evolution-data-server)
8647 ("gcr" ,gcr)
8648 ("gdm" ,gdm)
8649 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8650 ("gjs" ,gjs)
8651 ("gtk" ,gtk)
8652 ("gnome-autoar" ,gnome-autoar)
8653 ("gnome-bluetooth" ,gnome-bluetooth)
8654 ("gnome-desktop" ,gnome-desktop)
8655 ("gnome-settings-daemon" ,gnome-settings-daemon)
8656 ("graphene" ,graphene)
8657 ("gst-plugins-base" ,gst-plugins-base)
8658 ("ibus" ,ibus)
8659 ("libcanberra" ,libcanberra)
8660 ("libcroco" ,libcroco)
8661 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8662 ("libgweather" ,libgweather)
8663 ("libnma" ,libnma)
8664 ("libsoup" ,libsoup)
8665 ("mesa-headers" ,mesa-headers)
8666 ("mutter" ,mutter)
8667 ("network-manager-applet" ,network-manager-applet)
8668 ("polkit" ,polkit)
8669 ("pulseaudio" ,pulseaudio)
8670 ("python-pygobject" ,python-pygobject)
8671 ("startup-notification" ,startup-notification)
8672 ("telepathy-logger" ,telepathy-logger)
8673 ("upower" ,upower)
8674 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8675 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8676 ("librsvg" ,librsvg)
8677 ("geoclue" ,geoclue)))
8678 (synopsis "Desktop shell for GNOME")
8679 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8680 (description
8681 "GNOME Shell provides core user interface functions for the GNOME desktop,
8682 like switching to windows and launching applications.")
8683 (license license:gpl2+)))
8684
8685 (define-public gtk-vnc
8686 (package
8687 (name "gtk-vnc")
8688 (version "1.0.0")
8689 (source
8690 (origin
8691 (method url-fetch)
8692 (uri
8693 (string-append "mirror://gnome/sources/" name "/"
8694 (version-major+minor version) "/"
8695 name "-" version ".tar.xz"))
8696 (sha256
8697 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8698 (build-system meson-build-system)
8699 (arguments
8700 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8701 (native-inputs
8702 `(("gjs" ,gjs)
8703 ("glib:bin" ,glib "bin")
8704 ("gobject-introspection" ,gobject-introspection)
8705 ("intltool" ,intltool)
8706 ("node" ,node)
8707 ("perl" ,perl)
8708 ("pkg-config" ,pkg-config)
8709 ("python" ,python-wrapper)
8710 ("vala" ,vala)))
8711 (inputs
8712 `(("cairo" ,cairo)
8713 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8714 ("glib" ,glib)
8715 ("gnutls" ,gnutls)
8716 ("libgcrypt" ,libgcrypt)
8717 ("libsasl" ,cyrus-sasl)
8718 ("pulseaudio" ,pulseaudio)
8719 ("x11" ,libx11)
8720 ("zlib" ,zlib)))
8721 (propagated-inputs
8722 `(("gtk+" ,gtk+)))
8723 (synopsis "VNC client viewer widget for GTK+")
8724 (description "GTK-VNC is a project providing client side APIs for the RFB
8725 protocol / VNC remote desktop technology. It is built using coroutines allowing
8726 it to be completely asynchronous while remaining single threaded. It provides a
8727 core C library, and bindings for Python (PyGTK).")
8728 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8729 (license license:lgpl2.1+)))
8730
8731 (define-public gnome-autoar
8732 (package
8733 (name "gnome-autoar")
8734 (version "0.3.3")
8735 (source (origin
8736 (method url-fetch)
8737 (uri (string-append "mirror://gnome/sources/" name "/"
8738 (version-major+minor version) "/"
8739 name "-" version ".tar.xz"))
8740 (sha256
8741 (base32
8742 "012w7rhhpxvlrnnhqy01vwzg1wxqpy8jbqgizn47wnip7bvh0917"))))
8743 (build-system glib-or-gtk-build-system)
8744 (native-inputs
8745 `(("gobject-introspection" ,gobject-introspection)
8746 ("pkg-config" ,pkg-config)))
8747 (propagated-inputs
8748 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8749 (inputs
8750 `(("gtk+" ,gtk+)))
8751 (synopsis "Archives integration support for GNOME")
8752 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8753 (description
8754 "GNOME Autoar is a library which makes creating and extracting archives
8755 easy, safe, and automatic.")
8756 (license license:lgpl2.1+)))
8757
8758 (define-public tracker
8759 (package
8760 (name "tracker")
8761 (version "3.1.2")
8762 (source (origin
8763 (method url-fetch)
8764 (uri (string-append "mirror://gnome/sources/tracker/"
8765 (version-major+minor version) "/"
8766 "tracker-" version ".tar.xz"))
8767 (sha256
8768 (base32
8769 "13zcc07wd51sz7kglk3xbjrsq7d835cxfr7iwjr7nn2xcri8jdns"))))
8770 (build-system meson-build-system)
8771 (arguments
8772 `(#:glib-or-gtk? #t
8773 #:configure-flags
8774 ;; Otherwise, the RUNPATH will lack the final path component.
8775 (list (string-append "-Dc_link_args=-Wl,-rpath="
8776 (assoc-ref %outputs "out") "/lib:"
8777 (assoc-ref %outputs "out") "/lib/tracker-3.0")
8778 "-Ddocs=false"
8779 "-Dsystemd_user_services=false")
8780 #:phases
8781 (modify-phases %standard-phases
8782 (add-before 'configure 'set-shell
8783 (lambda _
8784 (setenv "SHELL" (which "bash"))))
8785 (add-before 'configure 'fix-paths
8786 (lambda* (#:key inputs #:allow-other-keys)
8787 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
8788 (file (search-input-file inputs manpage)))
8789 (substitute* "docs/manpages/meson.build"
8790 (("/etc/asciidoc[^']+")
8791 file)))))
8792 (replace 'check
8793 (lambda* (#:key tests? #:allow-other-keys)
8794 (when tests?
8795 ;; Some tests expect to write to $HOME.
8796 (setenv "HOME" "/tmp")
8797 (invoke "dbus-run-session" "--" "meson" "test"
8798 "--print-errorlogs")))))))
8799 (native-inputs
8800 `(("glib:bin" ,glib "bin")
8801 ("gobject-introspection" ,gobject-introspection)
8802 ("docbook-xsl" ,docbook-xsl)
8803 ("docbook-xml-4.5" ,docbook-xml)
8804 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8805 ("asciidoc" ,asciidoc)
8806 ("xsltproc" ,libxslt)
8807 ("cmake-minimal" ,cmake-minimal)
8808 ("python-pygobject" ,python-pygobject)
8809 ("gtk-doc" ,gtk-doc/stable)
8810 ("intltool" ,intltool)
8811 ("dbus" ,dbus)
8812 ("pkg-config" ,pkg-config)
8813 ("vala" ,vala)))
8814 (inputs
8815 `(("dbus" ,dbus)
8816 ("sqlite" ,sqlite)
8817 ("libxml2" ,libxml2)
8818 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8819 ("json-glib" ,json-glib)
8820 ("libsoup" ,libsoup)))
8821 (synopsis "Metadata database, indexer and search tool")
8822 (home-page "https://wiki.gnome.org/Projects/Tracker")
8823 (description
8824 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8825
8826 It is a middleware component aimed at desktop application developers who want
8827 their apps to browse and search user content. It's not designed to be used
8828 directly by desktop users, but it provides a commandline tool named
8829 @command{tracker} for the adventurous.
8830
8831 Tracker allows your application to instantly perform full-text searches across
8832 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8833 example. This is achieved by indexing the user's home directory in the
8834 background.
8835
8836 Tracker also allows your application to query and list content that the user
8837 has stored. For example, GNOME Music displays all the music files that are
8838 found by Tracker. This means that GNOME Music doesn't need to maintain a
8839 database of its own.
8840
8841 If you need to go beyond simple searches, Tracker is also a linked data
8842 endpoint and it understands SPARQL. ")
8843 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8844 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8845 ;; libstemmer is bsd-3 and the rest is gpl2+.
8846 (license (list license:gpl2+
8847 license:bsd-3
8848 license:lgpl2.1+))))
8849
8850 (define-public tracker-miners
8851 (package
8852 (name "tracker-miners")
8853 (version "3.1.2")
8854 (source (origin
8855 (method url-fetch)
8856 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8857 (version-major+minor version)
8858 "/tracker-miners-" version ".tar.xz"))
8859 (sha256
8860 (base32
8861 "0fpd69lgm8cckbamcf9c2q57glxf0s3jcfwkq8p3s4lfsvdclmd0"))))
8862 (build-system meson-build-system)
8863 (arguments
8864 `(#:glib-or-gtk? #t
8865 #:configure-flags
8866 (list "-Dminer_rss=false" ; libgrss is required.
8867 ;; Ensure the RUNPATH contains all installed library locations.
8868 (string-append "-Dc_link_args=-Wl,-rpath="
8869 (assoc-ref %outputs "out")
8870 "/lib/tracker-miners-3.0")
8871 ;; TODO: Enable functional tests. Currently, the following error
8872 ;; appears:
8873 ;; Exception: The functional tests require DConf to be the default
8874 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8875 "-Dfunctional_tests=false"
8876 "-Dsystemd_user_services=false")
8877 #:phases
8878 (modify-phases %standard-phases
8879 (add-before 'configure 'set-shell
8880 (lambda _
8881 (setenv "SHELL" (which "bash"))))
8882 (add-before 'configure 'fix-paths
8883 (lambda* (#:key inputs #:allow-other-keys)
8884 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
8885 (file (search-input-file inputs manpage)))
8886 (substitute* "docs/manpages/meson.build"
8887 (("/etc/asciidoc[^']+")
8888 file)))))
8889 (add-before 'configure 'fix-tests
8890 (lambda* (#:key inputs #:allow-other-keys)
8891 ;; Disable those tests that require the functional_tests option
8892 ;; to be true and the UPower daemon to be started.
8893 (substitute* "examples/python/meson.build"
8894 (("foreach example_name:.*")
8895 "foreach example_name: []"))
8896 ;; Disable this test that is failing randomly:
8897 ;; https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/170.
8898 (substitute* "tests/libtracker-miner/meson.build"
8899 (("'miner-fs'.*")
8900 ""))))
8901 (replace 'check
8902 (lambda* (#:key tests? #:allow-other-keys)
8903 (when tests?
8904 ;; Some tests expect to write to $HOME.
8905 (setenv "HOME" "/tmp")
8906 (setenv "LANG" "en_US.UTF-8")
8907 (invoke "dbus-run-session" "--" "meson" "test"
8908 "--print-errorlogs")))))))
8909 (native-inputs
8910 `(("dbus" ,dbus)
8911 ("intltool" ,intltool)
8912 ("glib:bin" ,glib "bin")
8913 ("docbook-xsl" ,docbook-xsl)
8914 ("docbook-xml-4.5" ,docbook-xml)
8915 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8916 ("asciidoc" ,asciidoc)
8917 ("xsltproc" ,libxslt)
8918 ("gobject-introspection" ,gobject-introspection)
8919 ("pkg-config" ,pkg-config)
8920 ("python-pygobject" ,python-pygobject)))
8921 (inputs
8922 `(("exempi" ,exempi)
8923 ("ffmpeg" ,ffmpeg)
8924 ("flac" ,flac)
8925 ("giflib" ,giflib)
8926 ("glib" ,glib)
8927 ("gstreamer" ,gstreamer)
8928 ("icu4c" ,icu4c)
8929 ("json-glib" ,json-glib)
8930 ("libcue" ,libcue)
8931 ("libexif" ,libexif)
8932 ("libgsf" ,libgsf)
8933 ("libgxps" ,libgxps)
8934 ("libiptcdata" ,libiptcdata)
8935 ("libjpeg" ,libjpeg-turbo)
8936 ("libosinfo" ,libosinfo)
8937 ("libpng" ,libpng)
8938 ("libseccomp" ,libseccomp)
8939 ("libsoup" ,libsoup)
8940 ("libtiff" ,libtiff)
8941 ("libvorbis" ,libvorbis)
8942 ("libxml2" ,libxml2)
8943 ("poppler" ,poppler)
8944 ("shared-mime-info" ,shared-mime-info)
8945 ("taglib" ,taglib)
8946 ("totem-pl-parser" ,totem-pl-parser)
8947 ("tracker" ,tracker)
8948 ("upower" ,upower)
8949 ("zlib" ,zlib)))
8950 (synopsis "Metadata database, indexer and search tool")
8951 (home-page "https://wiki.gnome.org/Projects/Tracker")
8952 (description
8953 "Tracker is an advanced framework for first class objects with associated
8954 metadata and tags. It provides a one stop solution for all metadata, tags,
8955 shared object databases, search tools and indexing.")
8956 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8957 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8958 (license (list license:gpl2+
8959 license:lgpl2.1+
8960 license:lgpl2.0+))))
8961
8962 (define-public nautilus
8963 (package
8964 (name "nautilus")
8965 (version "40.2")
8966 (source (origin
8967 (method url-fetch)
8968 (uri (string-append "mirror://gnome/sources/" name "/"
8969 (version-major version) "/"
8970 name "-" version ".tar.xz"))
8971 (sha256
8972 (base32
8973 "03gn416vvpvyy75pj3xkpxrqilbvjhqbvrdi5fdaivp50zzg47mp"))))
8974 (build-system meson-build-system)
8975 (arguments
8976 '(#:glib-or-gtk? #t
8977 #:phases
8978 (modify-phases %standard-phases
8979 (add-after 'unpack 'skip-gtk-update-icon-cache
8980 ;; Don't create 'icon-theme.cache'.
8981 (lambda _
8982 (substitute* "build-aux/meson/postinstall.py"
8983 (("gtk-update-icon-cache") "true")))))
8984 ;; XXX: FAIL: check-nautilus
8985 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8986 #:tests? #f))
8987 (native-inputs
8988 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8989 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8990 ("gobject-introspection" ,gobject-introspection)
8991 ("intltool" ,intltool)
8992 ("pkg-config" ,pkg-config)))
8993 (inputs
8994 `(("dconf" ,dconf)
8995 ("gexiv2" ,gexiv2)
8996 ("gvfs" ,gvfs)
8997 ("exempi" ,exempi)
8998 ("gnome-desktop" ,gnome-desktop)
8999 ("gnome-autoar" ,gnome-autoar)
9000 ("gst-plugins-base" ,gst-plugins-base)
9001 ("json-glib" ,json-glib)
9002 ("libhandy" ,libhandy)
9003 ("libportal" ,libportal)
9004 ("libseccomp" ,libseccomp)
9005 ("libselinux" ,libselinux)
9006 ("libsoup" ,libsoup)
9007 ("tracker" ,tracker)
9008 ("tracker-miners" ,tracker-miners)
9009 ;; XXX: gtk+ is required by libnautilus-extension.pc
9010 ;;
9011 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
9012 ;; package. See:
9013 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
9014 ("gtk+" ,gtk+)
9015 ("libexif" ,libexif)
9016 ("libxml2" ,libxml2)))
9017 (synopsis "File manager for GNOME")
9018 (home-page "https://wiki.gnome.org/Apps/Nautilus")
9019 (description
9020 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
9021 design and behaviour, giving the user a simple way to navigate and manage its
9022 files.")
9023 (license license:gpl2+)))
9024
9025 (define-public baobab
9026 (package
9027 (name "baobab")
9028 (version "40.0")
9029 (source (origin
9030 (method url-fetch)
9031 (uri (string-append
9032 "mirror://gnome/sources/" name "/"
9033 (version-major version) "/"
9034 name "-" version ".tar.xz"))
9035 (sha256
9036 (base32
9037 "19yii3bdgivxrcka1c4g6dpbmql5nyawwhzlsph7z6bs68nambm6"))))
9038 (build-system meson-build-system)
9039 (arguments
9040 '(#:glib-or-gtk? #t))
9041 (native-inputs
9042 `(("intltool" ,intltool)
9043 ("pkg-config" ,pkg-config)
9044 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9045 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9046 ("itstool" ,itstool)
9047 ("xmllint" ,libxml2)
9048 ("glib" ,glib "bin")
9049 ("vala" ,vala)))
9050 (inputs
9051 `(("gtk+" ,gtk+)
9052 ("libhandy" ,libhandy)))
9053 (synopsis "Disk usage analyzer for GNOME")
9054 (description
9055 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
9056 usage in the GNOME desktop environment. It can easily scan device volumes or
9057 a specific user-requested directory branch (local or remote). Once the scan
9058 is complete it provides a graphical representation of each selected folder.")
9059 (home-page "https://wiki.gnome.org/Apps/Baobab")
9060 (license license:gpl2+)))
9061
9062 (define-public gnome-backgrounds
9063 (package
9064 (name "gnome-backgrounds")
9065 (version "40.1")
9066 (source
9067 (origin
9068 (method url-fetch)
9069 (uri (string-append "mirror://gnome/sources/" name "/"
9070 (version-major version) "/"
9071 name "-" version ".tar.xz"))
9072 (sha256
9073 (base32
9074 "03m7ldfk00cly9igrq0qizq1y0f45vijmm23f1dl5kh1lc6qmpv0"))))
9075 (build-system meson-build-system)
9076 (native-inputs
9077 `(("gettext" ,gettext-minimal)))
9078 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
9079 (synopsis "Background images for the GNOME desktop")
9080 (description
9081 "GNOME backgrounds package contains a collection of graphics files which
9082 can be used as backgrounds in the GNOME Desktop environment. Additionally,
9083 the package creates the proper framework and directory structure so that you
9084 can add your own files to the collection.")
9085 (license (list license:gpl2+
9086 license:cc-by2.0
9087 license:cc-by-sa2.0
9088 license:cc-by-sa3.0))))
9089
9090 (define-public gnome-screenshot
9091 (package
9092 (name "gnome-screenshot")
9093 (version "40.0")
9094 (source
9095 (origin
9096 (method url-fetch)
9097 (uri (string-append "mirror://gnome/sources/" name "/"
9098 (version-major version) "/"
9099 name "-" version ".tar.xz"))
9100 (sha256
9101 (base32
9102 "1qm544ymwibk31s30k47vnn79xg30m18r7l4di0c57g375dak31n"))))
9103 (build-system meson-build-system)
9104 (arguments
9105 '(#:phases
9106 (modify-phases %standard-phases
9107 (add-after 'unpack 'skip-gtk-update-icon-cache
9108 ;; Don't create 'icon-theme.cache'.
9109 (lambda _
9110 (substitute* "build-aux/postinstall.py"
9111 (("gtk-update-icon-cache") "true"))
9112 #t)))))
9113 (native-inputs
9114 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
9115 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9116 ("intltool" ,intltool)
9117 ("appstream-glib" ,appstream-glib)
9118 ("pkg-config" ,pkg-config)))
9119 (inputs
9120 `(("gtk+" ,gtk+)
9121 ("libcanberra" ,libcanberra)
9122 ("libhandy" ,libhandy)
9123 ("libx11" ,libx11)
9124 ("libxext" ,libxext)))
9125 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
9126 (synopsis "Take pictures of your screen")
9127 (description
9128 "GNOME Screenshot is a utility used for taking screenshots of the entire
9129 screen, a window or a user defined area of the screen, with optional
9130 beautifying border effects.")
9131 (license license:gpl2+)))
9132
9133 (define-public dconf-editor
9134 (package
9135 (name "dconf-editor")
9136 (version "3.38.3")
9137 (source
9138 (origin
9139 (method url-fetch)
9140 (uri (string-append "mirror://gnome/sources/" name "/"
9141 (version-major+minor version) "/"
9142 name "-" version ".tar.xz"))
9143 (sha256
9144 (base32
9145 "1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp"))))
9146 (build-system meson-build-system)
9147 (native-inputs
9148 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9149 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9150 ("intltool" ,intltool)
9151 ("pkg-config" ,pkg-config)
9152 ("vala" ,vala)))
9153 (inputs
9154 `(("dconf" ,dconf)
9155 ("gtk+" ,gtk+)
9156 ("libxml2" ,libxml2)))
9157 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9158 (synopsis "Graphical editor for GNOME's dconf configuration system")
9159 (description
9160 "Dconf-editor is a graphical tool for browsing and editing the dconf
9161 configuration system for GNOME. It allows users to configure desktop
9162 software that do not provide their own configuration interface.")
9163 (license license:lgpl2.1+)))
9164
9165 (define-public gnome-default-applications
9166 (package
9167 (name "gnome-default-applications")
9168 (version "0")
9169 (build-system trivial-build-system)
9170 (source #f)
9171 (propagated-inputs
9172 `(("nautilus" ,nautilus)
9173 ("evince" ,evince)))
9174 (arguments
9175 `(#:modules ((guix build utils))
9176 #:builder
9177 (begin
9178 (use-modules (guix build utils))
9179 (let* ((out (assoc-ref %outputs "out"))
9180 (apps (string-append out "/share/applications")))
9181 (mkdir-p apps)
9182 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9183 (lambda (port)
9184 (format port "[Default Applications]\n")
9185 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9186 (format port "application/pdf=evince.desktop\n")
9187 (format port "application/postscript=evince.desktop\n")))
9188 #t))))
9189 (synopsis "Default MIME type associations for the GNOME desktop")
9190 (description
9191 "Given many installed packages which might handle a given MIME type, a
9192 user running the GNOME desktop probably has some preferences: for example,
9193 that folders be opened by default by the Nautilus file manager, not the Baobab
9194 disk usage analyzer. This package establishes that set of default MIME type
9195 associations for GNOME.")
9196 (license license:gpl3+)
9197 (home-page #f)))
9198
9199 (define-public libgovirt
9200 (package
9201 (name "libgovirt")
9202 (version "0.3.8")
9203 (source (origin
9204 (method url-fetch)
9205 (uri (string-append "mirror://gnome/sources/" name "/"
9206 (version-major+minor version) "/"
9207 name "-" version ".tar.xz"))
9208 (sha256
9209 (base32
9210 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9211 (build-system glib-or-gtk-build-system)
9212 (native-inputs
9213 `(("gettext" ,gettext-minimal)
9214 ("glib:bin" ,glib "bin")
9215 ("gobject-introspection" ,gobject-introspection)
9216 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9217 ("gtk+:bin" ,gtk+ "bin")
9218 ("pkg-config" ,pkg-config)))
9219 (inputs
9220 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
9221 ("librest" ,rest)))
9222 (synopsis "GoVirt Library")
9223 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9224 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9225 (license license:gpl2+)))
9226
9227 (define-public gnome-weather
9228 (package
9229 (name "gnome-weather")
9230 (version "40.1")
9231 (source (origin
9232 (method url-fetch)
9233 (uri (string-append "mirror://gnome/sources/" name "/"
9234 (version-major version) "/"
9235 name "-" version ".tar.xz"))
9236 (sha256
9237 (base32
9238 "0k9wnyinvx6433r07kvjyahgqc605g7gbpf3d0h6vi4p8x61849x"))))
9239 (build-system meson-build-system)
9240 (native-inputs
9241 `(("gettext" ,gettext-minimal)
9242 ("glib:bin" ,glib "bin")
9243 ("gobject-introspection" ,gobject-introspection)
9244 ("gtk+:bin" ,gtk+ "bin")
9245 ("pkg-config" ,pkg-config)))
9246 (inputs
9247 `(("appstream-glib" ,appstream-glib)
9248 ("geoclue" ,geoclue)
9249 ("gjs" ,gjs)
9250 ("gnome-desktop" ,gnome-desktop)
9251 ("libgweather" ,libgweather)
9252 ("libhandy" ,libhandy)))
9253 (arguments
9254 `(#:glib-or-gtk? #t
9255 #:phases
9256 ,#~(modify-phases %standard-phases
9257 (add-after 'unpack 'fix-service-file
9258 (lambda _
9259 (substitute* "data/org.gnome.Weather.service.in"
9260 (("Exec=[[:graph:]]+")
9261 (string-append "Exec=" #$output
9262 "/bin/gnome-weather")))))
9263 (add-after 'install 'fix-desktop-file
9264 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some
9265 ;; reason. See https://issues.guix.gnu.org/issue/39324.
9266 (lambda _
9267 (let ((applications
9268 (string-append #$output "/share/applications")))
9269 (substitute* (string-append applications
9270 "/org.gnome.Weather.desktop")
9271 (("Exec=.*") "Exec=gnome-weather\n")))))
9272 (add-after 'install 'wrap
9273 (lambda _
9274 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9275 ;; GNOME Weather needs the typelib files of GTK+, Pango etc
9276 ;; at runtime.
9277 (wrap-program (string-append #$output "/bin/gnome-weather")
9278 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
9279 (synopsis "Weather monitoring for GNOME desktop")
9280 (description "GNOME Weather is a small application that allows you to
9281 monitor the current weather conditions for your city, or anywhere in the
9282 world.")
9283 (home-page "https://wiki.gnome.org/Apps/Weather")
9284 (license license:gpl2+)))
9285
9286 (define-public gnome
9287 (package
9288 (name "gnome")
9289 (version (package-version gnome-shell))
9290 (source #f)
9291 (build-system trivial-build-system)
9292 (arguments '(#:builder (begin (mkdir %output) #t)))
9293 (propagated-inputs
9294 `(;; GNOME-Core-OS-Services
9295 ("accountsservice" ,accountsservice)
9296 ("network-manager" ,network-manager)
9297 ("packagekit" ,packagekit)
9298 ("upower" ,upower)
9299 ;; GNOME-Core-Shell
9300 ("adwaita-icon-theme" ,adwaita-icon-theme)
9301 ("gdm" ,gdm)
9302 ("glib-networking" ,glib-networking)
9303 ("gnome-backgrounds" ,gnome-backgrounds)
9304 ("gnome-bluetooth" ,gnome-bluetooth)
9305 ("gnome-color-manager" ,gnome-color-manager)
9306 ("gnome-control-center" ,gnome-control-center)
9307 ("gnome-desktop" ,gnome-desktop)
9308 ("gnome-initial-setup" ,gnome-initial-setup)
9309 ("gnome-keyring" ,gnome-keyring)
9310 ("gnome-menus" ,gnome-menus)
9311 ("gnome-session" ,gnome-session)
9312 ("gnome-settings-daemon" ,gnome-settings-daemon)
9313 ("gnome-shell-extensions" ,gnome-shell-extensions)
9314 ("gnome-shell" ,gnome-shell)
9315 ("gnome-themes-extra" ,gnome-themes-extra)
9316 ("gnome-user-docs" ,gnome-user-docs)
9317 ("gnome-user-share" ,gnome-user-share)
9318 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9319 ("gvfs" ,gvfs)
9320 ("mutter" ,mutter)
9321 ("orca" ,orca)
9322 ("rygel" ,rygel)
9323 ("sushi" ,sushi)
9324 ;; GNOME-Core-Utilities
9325 ("baobab" ,baobab)
9326 ("cheese" ,cheese)
9327 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9328 ;; only works on x86_64, so exclude it on other architectures.
9329 ,@(if (string-prefix? "x86_64" (%current-system))
9330 `(("eog" ,eog))
9331 '())
9332 ("epiphany" ,epiphany)
9333 ("evince" ,evince)
9334 ("file-roller" ,file-roller)
9335 ("gedit" ,gedit)
9336 ("gnome-boxes" ,gnome-boxes)
9337 ("gnome-calculator" ,gnome-calculator)
9338 ("gnome-calendar" ,gnome-calendar)
9339 ("gnome-characters" ,gnome-characters)
9340 ("gnome-clocks" ,gnome-clocks)
9341 ("gnome-contacts" ,gnome-contacts)
9342 ("gnome-disk-utility" ,gnome-disk-utility)
9343 ("gnome-font-viewer" ,gnome-font-viewer)
9344 ("gnome-maps" ,gnome-maps)
9345 ("gnome-music" ,gnome-music)
9346 ("gnome-photos" ,gnome-photos)
9347 ("gnome-screenshot" ,gnome-screenshot)
9348 ("gnome-system-monitor" ,gnome-system-monitor)
9349 ("gnome-terminal" ,gnome-terminal)
9350 ("gnome-weather" ,gnome-weather)
9351 ("nautilus" ,nautilus)
9352 ("simple-scan" ,simple-scan)
9353 ("totem" ,totem)
9354 ("tracker-miners" ,tracker-miners)
9355 ("yelp" ,yelp)
9356 ;; Others
9357 ("hicolor-icon-theme" ,hicolor-icon-theme)
9358 ("gnome-online-accounts" ,gnome-online-accounts)
9359
9360 ;; Packages not part of GNOME proper but that are needed for a good
9361 ;; experience. See <https://bugs.gnu.org/39646>.
9362 ;; XXX: Find out exactly which ones are needed and why.
9363 ("font-abattis-cantarell" ,font-abattis-cantarell)
9364 ("font-dejavu" ,font-dejavu)
9365 ("at-spi2-core" ,at-spi2-core)
9366 ("dbus" ,dbus)
9367 ("dconf" ,dconf)
9368 ("desktop-file-utils" ,desktop-file-utils)
9369 ("gnome-default-applications" ,gnome-default-applications)
9370 ("gnome-themes-standard" ,gnome-themes-standard)
9371 ("gst-plugins-base" ,gst-plugins-base)
9372 ("gst-plugins-good" ,gst-plugins-good)
9373 ("gucharmap" ,gucharmap)
9374 ("pinentry-gnome3" ,pinentry-gnome3)
9375 ("pulseaudio" ,pulseaudio)
9376 ("shared-mime-info" ,shared-mime-info)
9377 ("system-config-printer" ,system-config-printer)
9378 ("xdg-user-dirs" ,xdg-user-dirs)
9379 ("yelp" ,yelp)
9380 ("zenity" ,zenity)))
9381 (synopsis "The GNU desktop environment")
9382 (home-page "https://www.gnome.org/")
9383 (description
9384 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9385 applications for browsing the web, editing text and images, creating
9386 documents and diagrams, playing media, scanning, and much more.")
9387 (license license:gpl2+)))
9388
9389 (define-public byzanz
9390 ;; The last stable release of Byzanz was in 2011, but there have been many
9391 ;; useful commits made to the Byzanz repository since then that it would be
9392 ;; silly to use such an old release.
9393 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9394 (package
9395 (name "byzanz")
9396 (version (string-append "0.2-1." (string-take commit 7)))
9397 (source (origin
9398 (method git-fetch)
9399 (uri (git-reference
9400 (url "https://git.gnome.org/browse/byzanz")
9401 (commit commit)))
9402 (file-name (string-append name "-" version "-checkout"))
9403 (sha256
9404 (base32
9405 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9406 (build-system glib-or-gtk-build-system)
9407 (arguments
9408 '(#:phases
9409 (modify-phases %standard-phases
9410 (add-before 'bootstrap 'build-without-Werror
9411 (lambda _
9412 ;; The build system cleverly detects that we're not building from
9413 ;; a release tarball and turns on -Werror for GCC.
9414 ;; Unsurprisingly, there is a warning during compilation that
9415 ;; causes the build to fail unnecessarily, so we remove the flag.
9416 (substitute* '("configure.ac")
9417 (("-Werror") ""))
9418 #t)))))
9419 (native-inputs
9420 `(("autoconf" ,autoconf)
9421 ("automake" ,automake)
9422 ("gnome-common" ,gnome-common)
9423 ("intltool" ,intltool)
9424 ("libtool" ,libtool)
9425 ("pkg-config" ,pkg-config)
9426 ("which" ,which)))
9427 (inputs
9428 `(("glib" ,glib)
9429 ("gstreamer" ,gstreamer)
9430 ("gst-plugins-base" ,gst-plugins-base)
9431 ("gtk+" ,gtk+)))
9432 (synopsis "Desktop recording program")
9433 (description "Byzanz is a simple desktop recording program with a
9434 command-line interface. It can record part or all of an X display for a
9435 specified duration and save it as a GIF encoded animated image file.")
9436 (home-page "https://git.gnome.org/browse/byzanz")
9437 (license license:gpl2+))))
9438
9439 (define-public authenticator
9440 (package
9441 (name "authenticator")
9442 (version "3.32.2")
9443 (source
9444 (origin
9445 (method git-fetch)
9446 (uri (git-reference
9447 (url "https://gitlab.gnome.org/World/Authenticator")
9448 (commit version)))
9449 (file-name (git-file-name name version))
9450 (sha256
9451 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9452 (build-system meson-build-system)
9453 (arguments
9454 `(#:glib-or-gtk? #t
9455 #:phases
9456 (modify-phases %standard-phases
9457 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9458 (lambda* (#:key inputs outputs #:allow-other-keys)
9459 (let ((prog (string-append (assoc-ref outputs "out")
9460 "/bin/authenticator"))
9461 (pylib (string-append (assoc-ref outputs "out")
9462 "/lib/python"
9463 ,(version-major+minor
9464 (package-version python))
9465 "/site-packages")))
9466 (wrap-program prog
9467 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
9468 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9469 #t))))))
9470 (native-inputs
9471 `(("desktop-file-utils" ,desktop-file-utils)
9472 ("gettext" ,gettext-minimal)
9473 ("glib:bin" ,glib "bin")
9474 ("gobject-introspection" ,gobject-introspection)
9475 ("gtk+:bin" ,gtk+ "bin")
9476 ("pkg-config" ,pkg-config)))
9477 (inputs
9478 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9479 ("gtk+" ,gtk+)
9480 ("libhandy" ,libhandy-0.0)
9481 ("libsecret" ,libsecret)
9482 ("python-beautifulsoup4" ,python-beautifulsoup4)
9483 ("python-pillow" ,python-pillow)
9484 ("python-pyfavicon" ,python-pyfavicon)
9485 ("python-pygobject" ,python-pygobject)
9486 ("python-pyotp" ,python-pyotp)
9487 ("python-pyzbar" ,python-pyzbar)
9488 ("yoyo-migrations" ,yoyo-migrations)
9489 ("zbar" ,zbar)))
9490 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9491 (synopsis "Two-factor authentication application built for GNOME")
9492 (description
9493 "Authenticator is a two-factor authentication (2FA) application built for
9494 the GNOME desktop environment.
9495
9496 Features:
9497
9498 @itemize
9499 @item QR code scanner
9500 @item Beautiful UI
9501 @item Huge database of more than 560 supported services
9502 @item Keep your PIN tokens secure by locking the application with a password
9503 @item Automatically fetch an image for services using their favicon
9504 @item The possibility to add new services
9505 @end itemize")
9506 (license license:gpl3+)))
9507
9508 (define-public gsound
9509 (package
9510 (name "gsound")
9511 (version "1.0.3")
9512 (source (origin
9513 (method url-fetch)
9514 (uri (string-append "mirror://gnome/sources/gsound/"
9515 (version-major+minor version) "/"
9516 "gsound-" version ".tar.xz"))
9517 (sha256
9518 (base32
9519 "06l80xgykj7x1kqkjvcq06pwj2rmca458zvs053qc55x3sg06bfa"))))
9520 (build-system meson-build-system)
9521 (native-inputs
9522 `(("pkg-config" ,pkg-config)
9523 ("gobject-introspection" ,gobject-introspection)
9524 ("vala" ,vala)))
9525 (propagated-inputs
9526 `(("libcanberra" ,libcanberra))) ; in Requires.private of gsound.pc
9527 (home-page "https://wiki.gnome.org/Projects/GSound")
9528 (synopsis "GObject wrapper for libcanberra")
9529 (description
9530 "GSound is a small library for playing system sounds. It's designed to be
9531 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9532 library.")
9533 (license license:lgpl2.1+)))
9534
9535 (define-public libzapojit
9536 (package
9537 (name "libzapojit")
9538 (version "0.0.3")
9539 (source (origin
9540 (method url-fetch)
9541 (uri (string-append "mirror://gnome/sources/" name "/"
9542 (version-major+minor version) "/"
9543 name "-" version ".tar.xz"))
9544 (sha256
9545 (base32
9546 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9547 (build-system gnu-build-system)
9548 (native-inputs
9549 `(("gobject-introspection" ,gobject-introspection)
9550 ("intltool" ,intltool)
9551 ("pkg-config" ,pkg-config)))
9552 (inputs
9553 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9554 ("json-glib" ,json-glib)
9555 ("rest" ,rest)))
9556 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9557 (synopsis "Library for accessing SkyDrive and Hotmail")
9558 (description
9559 "Libzapojit is a GLib-based library for accessing online service APIs of
9560 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9561 (license license:lgpl2.1+)))
9562
9563 (define-public gnome-clocks
9564 (package
9565 (name "gnome-clocks")
9566 (version "40.0")
9567 (source (origin
9568 (method url-fetch)
9569 (uri (string-append "mirror://gnome/sources/" name "/"
9570 (version-major version) "/"
9571 name "-" version ".tar.xz"))
9572 (sha256
9573 (base32
9574 "02d3jg46sn8d9gd4dsaly22gg5vkbz2gpq4pmwpvncb4rsqk7sn2"))))
9575 (build-system meson-build-system)
9576 (arguments
9577 '(#:glib-or-gtk? #t
9578 #:phases
9579 (modify-phases %standard-phases
9580 (add-after 'unpack 'skip-gtk-update-icon-cache
9581 ;; Don't create 'icon-theme.cache'.
9582 (lambda _
9583 (substitute* "build-aux/post-install.py"
9584 (("gtk-update-icon-cache") "true")))))))
9585 (native-inputs
9586 `(("vala" ,vala)
9587 ("pkg-config" ,pkg-config)
9588 ("glib" ,glib "bin") ; for glib-compile-resources
9589 ("desktop-file-utils" ,desktop-file-utils)
9590 ("gettext" ,gettext-minimal)
9591 ("itstool" ,itstool)))
9592 (inputs
9593 `(("glib" ,glib)
9594 ("gtk+" ,gtk+)
9595 ("gsound" ,gsound)
9596 ("geoclue" ,geoclue)
9597 ("geocode-glib" ,geocode-glib)
9598 ("libgweather" ,libgweather)
9599 ("libhandy" ,libhandy)
9600 ("gnome-desktop" ,gnome-desktop)))
9601 (home-page "https://wiki.gnome.org/Apps/Clocks")
9602 (synopsis "GNOME's clock application")
9603 (description
9604 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9605 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9606 (license license:gpl3+)))
9607
9608 (define-public gnome-calendar
9609 (package
9610 (name "gnome-calendar")
9611 (version "40.2")
9612 (source (origin
9613 (method url-fetch)
9614 (uri (string-append "mirror://gnome/sources/" name "/"
9615 (version-major version) "/"
9616 name "-" version ".tar.xz"))
9617 (sha256
9618 (base32
9619 "0czasxnmbw2zm21lmxam8qixacagciq3f815s809hn0f9byh2dwy"))))
9620 (build-system meson-build-system)
9621 (arguments
9622 '(#:glib-or-gtk? #t
9623 ;; gnome-calendar has to be installed before the tests can be run
9624 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9625 #:tests? #f
9626 #:phases
9627 (modify-phases %standard-phases
9628 (add-after 'unpack 'skip-gtk-update-icon-cache
9629 ;; Don't create 'icon-theme.cache'.
9630 (lambda _
9631 (substitute* "build-aux/meson/meson_post_install.py"
9632 (("gtk-update-icon-cache") "true"))
9633 #t)))))
9634 (native-inputs
9635 `(("gettext" ,gettext-minimal)
9636 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9637 ("pkg-config" ,pkg-config)))
9638 (inputs
9639 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9640 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9641 ("libdazzle" ,libdazzle)
9642 ("libedataserverui" ,evolution-data-server)
9643 ("libgweather" ,libgweather)
9644 ("libhandy" ,libhandy)
9645 ("geoclue" ,geoclue)))
9646 (propagated-inputs
9647 `(("evolution-data-server" ,evolution-data-server)))
9648 (home-page "https://wiki.gnome.org/Apps/Calendar")
9649 (synopsis "GNOME's calendar application")
9650 (description
9651 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9652 desktop. It supports multiple calendars, month, week and year view.")
9653 (license license:gpl3+)))
9654
9655 (define-public gnome-todo
9656 (package
9657 (name "gnome-todo")
9658 (version "40.1")
9659 (source (origin
9660 (method url-fetch)
9661 (uri (string-append "mirror://gnome/sources/" name "/"
9662 (version-major version) "/"
9663 name "-" version ".tar.xz"))
9664 (sha256
9665 (base32
9666 "1r1fb3zgjvkhx93by24j8cg1w1g3zvwr49vqkscjn261vqs44jq3"))))
9667 (build-system meson-build-system)
9668 (arguments
9669 `(#:glib-or-gtk? #t
9670 ;; XXX: Some tests fail with the following error:
9671 ;; Settings schema 'org.gnome.todo' is not installed.
9672 #:tests? #f
9673 #:phases
9674 (modify-phases %standard-phases
9675 (add-after 'unpack 'skip-gtk-update-icon-cache
9676 ;; Don't create 'icon-theme.cache'.
9677 (lambda _
9678 (substitute* "build-aux/meson/meson_post_install.py"
9679 (("gtk-update-icon-cache") "true")))))))
9680 (native-inputs
9681 `(("gettext" ,gettext-minimal)
9682 ("gobject-introspection" ,gobject-introspection)
9683 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9684 ("gtk-bin" ,gtk "bin") ; For gtk-update-icon-cache
9685 ("pkg-config" ,pkg-config)))
9686 (inputs
9687 `(("rest" ,rest) ; For Todoist plugin
9688 ("gtk" ,gtk)
9689 ("json-glib" ,json-glib) ; For Todoist plugin
9690 ("libadwaita" ,libadwaita)
9691 ("libedataserverui" ,evolution-data-server)
9692 ("libical" ,libical)
9693 ("libpeas" ,libpeas)
9694 ("libportal" ,libportal)
9695 ("python-pygobject" ,python-pygobject)
9696 ("evolution-data-server" ,evolution-data-server)
9697 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9698 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9699 (home-page "https://wiki.gnome.org/Apps/Todo")
9700 (synopsis "GNOME's ToDo Application")
9701 (description
9702 "GNOME To Do is a simplistic personal task manager designed to perfectly
9703 fit the GNOME desktop.")
9704 (license license:gpl3+)))
9705
9706 (define-public gnome-dictionary
9707 (package
9708 (name "gnome-dictionary")
9709 (version "40.0")
9710 (source (origin
9711 (method url-fetch)
9712 (uri (string-append "mirror://gnome/sources/" name "/"
9713 (version-major version) "/"
9714 name "-" version ".tar.xz"))
9715 (sha256
9716 (base32
9717 "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f"))))
9718 (build-system meson-build-system)
9719 (arguments
9720 '(#:glib-or-gtk? #t
9721 #:phases
9722 (modify-phases %standard-phases
9723 (add-after 'unpack 'skip-gtk-update-icon-cache
9724 ;; Don't create 'icon-theme.cache'.
9725 (lambda _
9726 (substitute* "build-aux/meson/post-install.py"
9727 (("gtk-update-icon-cache") "true")))))))
9728 (native-inputs
9729 `(("glib:bin" ,glib "bin")
9730 ("gobject-introspection" ,gobject-introspection)
9731 ("intltool" ,intltool)
9732 ("itstool" ,itstool)
9733 ("pkg-config" ,pkg-config)
9734 ("xmllint" ,libxml2)))
9735 (inputs
9736 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9737 ("gtk+" ,gtk+)))
9738 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9739 (synopsis "Look up words in dictionary sources")
9740 (description
9741 "GNOME Dictionary can look for the definition or translation of a word in
9742 existing databases over the internet.")
9743 (license license:gpl3+)))
9744
9745 (define-public gnome-tweaks
9746 (package
9747 (name "gnome-tweaks")
9748 (version "40.0")
9749 (source (origin
9750 (method url-fetch)
9751 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9752 (version-major version) "/"
9753 "gnome-tweaks-" version ".tar.xz"))
9754 (patches
9755 (list (search-patch "gnome-tweaks-search-paths.patch")))
9756 (sha256
9757 (base32
9758 "0sn3xsjhnini0f2dyi1ymrr3fb8mi7w5j5lsyw11rc5h67h3ypzr"))))
9759 (build-system meson-build-system)
9760 (arguments
9761 `(#:glib-or-gtk? #t
9762 #:configure-flags '("-Dlocalstatedir=/tmp"
9763 "-Dsysconfdir=/tmp")
9764 #:imported-modules ((guix build python-build-system)
9765 ,@%meson-build-system-modules)
9766 #:phases
9767 (modify-phases %standard-phases
9768 (add-after 'unpack 'skip-gtk-update-icon-cache
9769 ;; Don't create 'icon-theme.cache'.
9770 (lambda _
9771 (substitute* "meson-postinstall.py"
9772 (("gtk-update-icon-cache") "true"))))
9773 (add-after 'install 'wrap
9774 (@@ (guix build python-build-system) wrap))
9775 (add-after 'wrap 'wrap-gi-typelib
9776 (lambda* (#:key inputs outputs #:allow-other-keys)
9777 (let ((out (assoc-ref outputs "out"))
9778 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9779 (wrap-program (string-append out "/bin/gnome-tweaks")
9780 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
9781 (native-inputs
9782 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
9783 ("intltool" ,intltool)
9784 ("pkg-config" ,pkg-config)))
9785 (inputs
9786 `(("gnome-desktop" ,gnome-desktop)
9787 ("gtk+" ,gtk+)
9788 ("gobject-introspection" ,gobject-introspection)
9789 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9790 ("libhandy" ,libhandy-0.0)
9791 ("libnotify" ,libnotify)
9792 ("libsoup" ,libsoup)
9793 ("nautilus" ,nautilus)
9794 ("python" ,python)
9795 ("python-pygobject" ,python-pygobject)))
9796 (synopsis "Customize advanced GNOME 3 options")
9797 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9798 (description
9799 "GNOME Tweaks allows adjusting advanced configuration settings in
9800 GNOME 3. This includes things like the fonts used in user interface elements,
9801 alternative user interface themes, changes in window management behavior,
9802 GNOME Shell appearance and extension, etc.")
9803 (license license:gpl3+)))
9804
9805 (define-public gnome-shell-extensions
9806 (package
9807 (name "gnome-shell-extensions")
9808 (version "40.4")
9809 (source (origin
9810 (method url-fetch)
9811 (uri (string-append "mirror://gnome/sources/" name "/"
9812 (version-major version) "/"
9813 name "-" version ".tar.xz"))
9814 (sha256
9815 (base32
9816 "0yfd1bcwf72dmr1hfh7g8s5cb7snyiyg86575hqx1frbq914q7gm"))))
9817 (build-system meson-build-system)
9818 (arguments
9819 '(#:configure-flags '("-Dextension_set=all")))
9820 (native-inputs
9821 `(("glib:bin" ,glib "bin")
9822 ("intltool" ,intltool)
9823 ("pkg-config" ,pkg-config)))
9824 (propagated-inputs
9825 `(("glib" ,glib)))
9826 (synopsis "Extensions for GNOME Shell")
9827 (description "GNOME Shell extensions modify and extend GNOME Shell
9828 functionality and behavior.")
9829 (home-page "https://extensions.gnome.org/")
9830 (license license:gpl3+)))
9831
9832 (define-public folks
9833 (package
9834 (name "folks")
9835 (version "0.14.0")
9836 (source (origin
9837 (method url-fetch)
9838 (uri (string-append
9839 "mirror://gnome/sources/folks/"
9840 (version-major+minor version) "/"
9841 "folks-" version ".tar.xz"))
9842 (sha256
9843 (base32
9844 "1f9b52vmwnq7s51vj26w2618dn2ph5g12ibbkbyk6fvxcgd7iryn"))))
9845 (build-system meson-build-system)
9846 (arguments
9847 '(#:phases
9848 (modify-phases %standard-phases
9849 (add-after 'unpack 'skip-gtk-update-icon-cache
9850 ;; Don't create 'icon-theme.cache'.
9851 (lambda _
9852 (substitute* "meson_post_install.py"
9853 (("gtk-update-icon-cache") "true"))
9854 #t)))))
9855 (inputs
9856 `(("bdb" ,bdb)
9857 ("dbus-glib" ,dbus-glib)
9858 ("evolution-data-server" ,evolution-data-server)
9859 ("glib" ,glib)
9860 ("libgee" ,libgee)
9861 ("readline" ,readline)
9862 ("telepathy-glib" ,telepathy-glib)))
9863 (native-inputs
9864 `(("glib:bin" ,glib "bin")
9865 ("gobject-introspection" ,gobject-introspection)
9866 ("python-dbusmock" ,python-dbusmock)
9867 ("intltool" ,intltool)
9868 ("pkg-config" ,pkg-config)
9869 ("vala" ,vala)))
9870 (synopsis "Library to aggregate data about people")
9871 (description "Libfolks is a library that aggregates information about people
9872 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9873 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9874 etc.) to create metacontacts. It's written in Vala, which generates C code when
9875 compiled.")
9876 (home-page "https://wiki.gnome.org/Projects/Folks")
9877 (license license:lgpl2.1+)))
9878
9879 (define-public gfbgraph
9880 (package
9881 (name "gfbgraph")
9882 (version "0.2.4")
9883 (source (origin
9884 (method url-fetch)
9885 (uri (string-append
9886 "mirror://gnome/sources/gfbgraph/"
9887 (version-major+minor version) "/"
9888 "gfbgraph-" version ".tar.xz"))
9889 (sha256
9890 (base32
9891 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9892 (build-system glib-or-gtk-build-system)
9893 (arguments
9894 `(#:tests? #f ; tests appear to require the network
9895 #:configure-flags '("--disable-static"
9896 "--enable-gtk-doc"
9897 "--enable-introspection")))
9898 (native-inputs
9899 `(("gobject-introspection" ,gobject-introspection)
9900 ("gtk-doc" ,gtk-doc/stable)
9901 ("pkg-config" ,pkg-config)
9902
9903 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9904 ("autoconf" ,autoconf)
9905 ("automake" ,automake)
9906 ("libtool" ,libtool)
9907 ("which" ,which)))
9908 (inputs
9909 `(("json-glib" ,json-glib)
9910 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9911 ("rest" ,rest)))
9912 (synopsis "GLib/GObject wrapper for the Facebook API")
9913 (description "This library allows you to use the Facebook API from
9914 GLib/GObject code.")
9915 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9916 (license license:lgpl2.1+)))
9917
9918 (define-public libgnomekbd
9919 (package
9920 (name "libgnomekbd")
9921 (version "3.26.1")
9922 (source (origin
9923 (method url-fetch)
9924 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9925 (version-major+minor version) "/"
9926 "libgnomekbd-" version ".tar.xz"))
9927 (sha256
9928 (base32
9929 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9930 (build-system gnu-build-system)
9931 (native-inputs
9932 `(("pkg-config" ,pkg-config)
9933 ("glib" ,glib "bin")
9934 ("intltool" ,intltool)))
9935 (propagated-inputs
9936 ;; Referred to in .h files and .pc.
9937 `(("glib" ,glib)
9938 ("gtk+" ,gtk+)
9939 ("libxklavier" ,libxklavier)))
9940 (home-page "https://www.gnome.org")
9941 (synopsis "GNOME keyboard configuration library")
9942 (description
9943 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9944 environment, which can notably display keyboard layouts.")
9945 (license license:lgpl2.0+)))
9946
9947 ;;; This package is no longer maintained:
9948 ;;; https://wiki.gnome.org/Attic/LibUnique
9949 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9950 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9951 (define-public libunique
9952 (package
9953 (name "libunique")
9954 (version "3.0.2")
9955 (source (origin
9956 (method url-fetch)
9957 (uri (string-append "mirror://gnome/sources/" name "/"
9958 (version-major+minor version) "/"
9959 name "-" version ".tar.xz"))
9960 (sha256
9961 (base32
9962 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9963 (build-system glib-or-gtk-build-system)
9964 (arguments
9965 `(#:configure-flags '("--disable-static"
9966 "--disable-dbus" ; use gdbus
9967 "--enable-introspection")))
9968 (native-inputs
9969 `(("pkg-config" ,pkg-config)
9970 ("gobject-introspection" ,gobject-introspection)
9971 ("glib:bin" ,glib "bin")
9972 ("gtk-doc" ,gtk-doc/stable)))
9973 (propagated-inputs
9974 ;; Referred to in .h files and .pc.
9975 `(("gtk+" ,gtk+)))
9976 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9977 (synopsis "Library for writing single instance applications")
9978 (description
9979 "Libunique is a library for writing single instance applications. If you
9980 launch a single instance application twice, the second instance will either just
9981 quit or will send a message to the running instance. Libunique makes it easy to
9982 write this kind of application, by providing a base class, taking care of all
9983 the IPC machinery needed to send messages to a running instance, and also
9984 handling the startup notification side.")
9985 (license license:lgpl2.1+)))
9986
9987 (define-public gnome-calculator
9988 (package
9989 (name "gnome-calculator")
9990 (version "40.1")
9991 (source
9992 (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 "1xkazxbkpn1z5pfphhps7fc5q4yc8lp7f6b222n8bx5iyxhwbrkz"))))
10000 (build-system meson-build-system)
10001 (arguments
10002 '(#:glib-or-gtk? #t
10003 #:phases
10004 (modify-phases %standard-phases
10005 (add-before 'check 'pre-check
10006 (lambda _
10007 ;; Tests require a writable HOME.
10008 (setenv "HOME" (getcwd)))))))
10009 (native-inputs
10010 `(("gettext" ,gettext-minimal)
10011 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
10012 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10013 ("itstool" ,itstool)
10014 ("vala" ,vala)
10015 ("pkg-config" ,pkg-config)))
10016 (inputs
10017 `(("glib" ,glib)
10018 ("gtksourceview" ,gtksourceview)
10019 ("libgee" ,libgee)
10020 ("libhandy" ,libhandy)
10021 ("libsoup" ,libsoup)
10022 ("libxml2" ,libxml2)
10023 ("mpc" ,mpc)
10024 ("mpfr" ,mpfr)))
10025 (home-page "https://wiki.gnome.org/Apps/Calculator")
10026 (synopsis "Desktop calculator")
10027 (description
10028 "Calculator is an application that solves mathematical equations and
10029 is suitable as a default application in a Desktop environment.")
10030 (license license:gpl3)))
10031
10032 (define-public xpad
10033 (package
10034 (name "xpad")
10035 (version "5.1.0")
10036 (source
10037 (origin
10038 (method url-fetch)
10039 (uri (string-append "https://launchpad.net/xpad/trunk/"
10040 version "/+download/"
10041 name "-" version ".tar.bz2"))
10042 (sha256
10043 (base32
10044 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
10045 (build-system gnu-build-system)
10046 (native-inputs
10047 `(("autoconf" ,autoconf)
10048 ("automake" ,automake)
10049 ("gtk+:bin" ,gtk+ "bin")
10050 ("intltool" ,intltool)
10051 ("pkg-config" ,pkg-config)))
10052 (inputs
10053 `(("gtksourceview" ,gtksourceview-3)
10054 ("libsm" ,libsm)))
10055 (home-page "https://wiki.gnome.org/Apps/Xpad")
10056 (synopsis "Virtual sticky note")
10057 (description
10058 "Xpad is a sticky note that strives to be simple, fault tolerant,
10059 and customizable. Xpad consists of independent pad windows, each is
10060 basically a text box in which notes can be written.")
10061 (license license:gpl3+)))
10062
10063 (define-public gucharmap
10064 (let ((unicode-files
10065 '(("Blocks.txt"
10066 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
10067 ("DerivedAge.txt"
10068 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
10069 ("NamesList.txt"
10070 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
10071 ("Scripts.txt"
10072 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
10073 ("UnicodeData.txt"
10074 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
10075 ("Unihan.zip"
10076 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
10077 (package
10078 (name "gucharmap")
10079 (version "12.0.1")
10080 (source
10081 (origin
10082 (method url-fetch)
10083 (uri (string-append "mirror://gnome/sources/" name "/"
10084 (version-major+minor version) "/"
10085 name "-" version ".tar.xz"))
10086 (sha256
10087 (base32
10088 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
10089 (build-system glib-or-gtk-build-system)
10090 (arguments
10091 `(#:modules ((ice-9 match)
10092 (guix build glib-or-gtk-build-system)
10093 (guix build utils))
10094 #:configure-flags
10095 (list "--with-unicode-data=../unicode-data")
10096 #:phases
10097 (modify-phases %standard-phases
10098 (add-after 'unpack 'prepare-unicode-data
10099 (lambda* (#:key inputs #:allow-other-keys)
10100 (mkdir-p "../unicode-data")
10101 (with-directory-excursion "../unicode-data"
10102 (for-each (match-lambda
10103 ((file _)
10104 (install-file (assoc-ref inputs file) ".")))
10105 ',unicode-files))
10106 #t)))))
10107 (native-inputs
10108 `(("desktop-file-utils" ,desktop-file-utils)
10109 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
10110 ("gobject-introspection" ,gobject-introspection)
10111 ("intltool" ,intltool)
10112 ("itstool" ,itstool)
10113 ("pkg-config" ,pkg-config)
10114 ,@(map (match-lambda
10115 ((file hash)
10116 `(,file
10117 ,(origin
10118 (method url-fetch)
10119 (uri (string-append
10120 "http://www.unicode.org/Public/12.0.0/ucd/"
10121 file))
10122 (sha256 (base32 hash))))))
10123 unicode-files)
10124 ("unzip" ,unzip)))
10125 (inputs
10126 `(("gtk+" ,gtk+)
10127 ("xmllint" ,libxml2)))
10128 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
10129 (synopsis "Unicode character picker and font browser")
10130 (description
10131 "This program allows you to browse through all the available Unicode
10132 characters and categories for the installed fonts, and to examine their
10133 detailed properties. It is an easy way to find the character you might
10134 only know by its Unicode name or code point.")
10135 (license license:gpl3+))))
10136
10137 (define-public gcolor3
10138 (package
10139 (name "gcolor3")
10140 (version "2.4.0")
10141 (source
10142 (origin
10143 (method git-fetch)
10144 (uri (git-reference
10145 (url "https://gitlab.gnome.org/World/gcolor3")
10146 (commit (string-append "v" version))))
10147 (file-name (git-file-name name version))
10148 (sha256
10149 (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc"))))
10150 (build-system meson-build-system)
10151 (arguments
10152 `(#:glib-or-gtk? #t))
10153 (native-inputs
10154 `(("desktop-file-utils" ,desktop-file-utils)
10155 ("gettext" ,gettext-minimal)
10156 ("glib:bin" ,glib "bin")
10157 ("gtk+:bin" ,gtk+ "bin")
10158 ("pkg-config" ,pkg-config)))
10159 (inputs
10160 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10161 ("gtk+" ,gtk+)
10162 ("libportal" ,libportal)))
10163 (home-page "https://www.hjdskes.nl/projects/gcolor3/")
10164 (synopsis "Simple color chooser written in GTK3")
10165 (description "Color Picker is a simple color chooser written in GTK3. It
10166 supports both X and Wayland display servers.")
10167 (license license:gpl2+)))
10168
10169 (define-public bluefish
10170 (package
10171 (name "bluefish")
10172 (version "2.2.12")
10173 (source
10174 (origin
10175 (method url-fetch)
10176 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
10177 "bluefish-" version ".tar.gz"))
10178 (sha256
10179 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
10180 (build-system gnu-build-system)
10181 (native-inputs
10182 `(("desktop-file-utils" ,desktop-file-utils)
10183 ("intltool" ,intltool)
10184 ("pkg-config" ,pkg-config)))
10185 (inputs
10186 `(("enchant" ,enchant)
10187 ("gtk+" ,gtk+)
10188 ("python" ,python-wrapper)
10189 ("xmllint" ,libxml2)
10190 ("gucharmap" ,gucharmap)))
10191 (home-page "http://bluefish.openoffice.nl")
10192 (synopsis "Web development studio")
10193 (description
10194 "Bluefish is an editor aimed at programmers and web developers,
10195 with many options to write web sites, scripts and other code.
10196 Bluefish supports many programming and markup languages.")
10197 (license license:gpl3+)))
10198
10199 (define-public gnome-system-monitor
10200 (package
10201 (name "gnome-system-monitor")
10202 (version "40.1")
10203 (source
10204 (origin
10205 (method url-fetch)
10206 (uri (string-append "mirror://gnome/sources/" name "/"
10207 (version-major version) "/"
10208 name "-" version ".tar.xz"))
10209 (sha256
10210 (base32
10211 "06hxd4igxas2kyind5jwfq5qbfkknykpdfy2sy3anylhcx1hzczx"))))
10212 (build-system meson-build-system)
10213 (arguments
10214 '(#:glib-or-gtk? #t
10215 #:configure-flags '("-Dsystemd=false")))
10216 (native-inputs
10217 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
10218 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
10219 ("intltool" ,intltool)
10220 ("itstool" ,itstool)
10221 ("libgtop" ,libgtop)
10222 ("polkit" ,polkit)
10223 ("pkg-config" ,pkg-config)))
10224 (inputs
10225 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
10226 ("gtk+" ,gtk+)
10227 ("gtkmm" ,gtkmm-3)
10228 ("libhandy" ,libhandy)
10229 ("librsvg" ,librsvg)
10230 ("libxml2" ,libxml2)
10231 ("libwnck" ,libwnck)))
10232 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10233 (synopsis "Process viewer and system resource monitor for GNOME")
10234 (description
10235 "GNOME System Monitor is a GNOME process viewer and system monitor with
10236 an attractive, easy-to-use interface. It has features, such as a tree view
10237 for process dependencies, icons for processes, the ability to hide processes,
10238 graphical time histories of CPU/memory/swap usage and the ability to
10239 kill/reinice processes.")
10240 (license license:gpl2+)))
10241
10242 (define-public python-pyatspi
10243 (package
10244 (name "python-pyatspi")
10245 (version "2.34.0")
10246 (source (origin
10247 (method url-fetch)
10248 (uri (string-append
10249 "mirror://gnome/sources/pyatspi/"
10250 (version-major+minor version)
10251 "/pyatspi-" version ".tar.xz"))
10252 (sha256
10253 (base32
10254 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10255 (build-system gnu-build-system)
10256 (arguments
10257 `(#:phases
10258 (modify-phases %standard-phases
10259 (add-before 'build 'fix-atk-load
10260 (lambda _
10261 (substitute* "pyatspi/__init__.py"
10262 (("from gi.repository import Atspi")
10263 "gi.require_version('Gtk', '3.0')
10264 from gi.repository import Gtk
10265 from gi.repository import Atspi"))
10266 #t)))))
10267 (native-inputs
10268 `(("pkg-config" ,pkg-config)))
10269 (inputs
10270 `(("python" ,python)))
10271 (propagated-inputs
10272 `(("python-pygobject" ,python-pygobject)))
10273 (synopsis "Python client bindings for D-Bus AT-SPI")
10274 (home-page "https://wiki.linuxfoundation.org/accessibility\
10275 /atk/at-spi/at-spi_on_d-bus")
10276 (description
10277 "This package includes a python client library for the AT-SPI D-Bus
10278 accessibility infrastructure.")
10279 (license license:lgpl2.0)
10280 (properties '((upstream-name . "pyatspi")))))
10281
10282 (define-public python2-pyatspi
10283 (package/inherit python-pyatspi
10284 (name "python2-pyatspi")
10285 (inputs
10286 `(("python" ,python-2)))
10287 (propagated-inputs
10288 `(("python-pygobject" ,python2-pygobject)))))
10289
10290 (define-public orca
10291 (package
10292 (name "orca")
10293 (version "40.0")
10294 (source (origin
10295 (method url-fetch)
10296 (uri (string-append
10297 "mirror://gnome/sources/" name "/"
10298 (version-major version) "/"
10299 name "-" version ".tar.xz"))
10300 (sha256
10301 (base32
10302 "0hq0zdcn80ficpcffbk667907v6m7dih3dhyc7ss01mrj3iyw000"))))
10303 (build-system glib-or-gtk-build-system)
10304 (arguments
10305 '(#:phases
10306 (modify-phases %standard-phases
10307 (add-before 'configure 'qualify-xkbcomp
10308 (lambda* (#:key inputs #:allow-other-keys)
10309 (let ((xkbcomp (string-append
10310 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10311 (substitute* "src/orca/orca.py"
10312 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
10313 #t))
10314 (add-after 'install 'wrap-orca
10315 (lambda* (#:key outputs #:allow-other-keys)
10316 (let* ((out (assoc-ref outputs "out"))
10317 (prog (string-append out "/bin/orca")))
10318 (wrap-program prog
10319 `("GI_TYPELIB_PATH" ":" prefix
10320 (,(getenv "GI_TYPELIB_PATH")))
10321 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10322 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10323 `("GUIX_PYTHONPATH" ":" prefix
10324 (,(getenv "GUIX_PYTHONPATH")))))
10325 #t)))))
10326 (native-inputs
10327 `(("intltool" ,intltool)
10328 ("itstool" ,itstool)
10329 ("pkg-config" ,pkg-config)
10330 ("xmllint" ,libxml2)))
10331 (inputs
10332 `(("at-spi2-atk" ,at-spi2-atk)
10333 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10334 ("gstreamer" ,gstreamer)
10335 ("gst-plugins-base" ,gst-plugins-base)
10336 ("gst-plugins-good" ,gst-plugins-good)
10337 ("gtk+" ,gtk+)
10338 ("python" ,python)
10339 ("python-pygobject" ,python-pygobject)
10340 ("python-pyatspi" ,python-pyatspi)
10341 ("python-speechd" ,speech-dispatcher)
10342 ("xkbcomp" ,xkbcomp)))
10343 (synopsis
10344 "Screen reader for individuals who are blind or visually impaired")
10345 (home-page "https://wiki.gnome.org/Projects/Orca")
10346 (description
10347 "Orca is a screen reader that provides access to the graphical desktop
10348 via speech and refreshable braille. Orca works with applications and toolkits
10349 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10350 (license license:lgpl2.1+)))
10351
10352 (define-public gspell
10353 (package
10354 (name "gspell")
10355 (version "1.8.2")
10356 (source (origin
10357 (method url-fetch)
10358 (uri (string-append "mirror://gnome/sources/" name "/"
10359 (version-major+minor version) "/"
10360 name "-" version ".tar.xz"))
10361 (sha256
10362 (base32
10363 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10364 (patches (search-patches "gspell-dash-test.patch"))))
10365 (build-system glib-or-gtk-build-system)
10366 (arguments
10367 '(#:configure-flags (list "--enable-vala")
10368 #:phases
10369 (modify-phases %standard-phases
10370 (add-before 'check 'pre-check
10371 (lambda* (#:key inputs #:allow-other-keys)
10372 ;; Tests require a running X server.
10373 (system "Xvfb :1 &")
10374 (setenv "DISPLAY" ":1")
10375
10376 ;; For the missing /etc/machine-id.
10377 (setenv "DBUS_FATAL_WARNINGS" "0")
10378
10379 ;; Allow Enchant and its Aspell backend to find the en_US
10380 ;; dictionary.
10381 (setenv "ASPELL_DICT_DIR"
10382 (search-input-directory inputs "/lib/aspell")))))))
10383 (inputs
10384 `(("iso-codes" ,iso-codes)))
10385 (native-inputs
10386 `(("glib" ,glib "bin")
10387 ("gobject-introspection" ,gobject-introspection)
10388 ("pkg-config" ,pkg-config)
10389 ("vala" ,vala) ;for VAPI, needed by Geary
10390 ("xmllint" ,libxml2)
10391
10392 ;; For tests.
10393 ("aspell-dict-en" ,aspell-dict-en)
10394 ("xorg-server" ,xorg-server-for-tests)))
10395 (propagated-inputs
10396 ;; Referred by .pc file.
10397 `(("enchant" ,enchant)
10398 ("glib" ,glib)
10399 ("gtk+" ,gtk+)))
10400 (home-page "https://wiki.gnome.org/Projects/gspell")
10401 (synopsis "GNOME's alternative spell checker")
10402 (description
10403 "gspell provides a flexible API to add spell-checking to a GTK+
10404 application. It provides a GObject API, spell-checking to text entries and
10405 text views, and buttons to choose the language.")
10406 (license license:gpl2+)))
10407
10408 (define-public gnome-planner
10409 (package
10410 (name "gnome-planner")
10411 (version "0.14.6")
10412 (source (origin
10413 (method url-fetch)
10414 (uri (string-append "mirror://gnome/sources/planner/"
10415 (version-major+minor version) "/planner-"
10416 version ".tar.xz"))
10417 (sha256
10418 (base32
10419 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10420 (build-system glib-or-gtk-build-system)
10421 (arguments
10422 ;; Disable the Python bindings because the Planner program functions
10423 ;; without them, and (as of 2017-06-13) we have not packaged all of
10424 ;; packages that are necessary for building the Python bindings.
10425 `(#:configure-flags
10426 (list "--disable-python"
10427 ,@(if (string=? "aarch64-linux" (%current-system))
10428 '("--build=aarch64-unknown-linux-gnu")
10429 '()))))
10430 (inputs
10431 `(("libgnomecanvas" ,libgnomecanvas)
10432 ("libgnomeui" ,libgnomeui)
10433 ("libglade" ,libglade)
10434 ("gnome-vfs" ,gnome-vfs)
10435 ("gconf" ,gconf)
10436 ("libxml2" ,libxml2)
10437 ("libxslt" ,libxslt)
10438 ("gtk+" ,gtk+)
10439 ("glib" ,glib)))
10440 (native-inputs
10441 `(("intltool" ,intltool)
10442 ("scrollkeeper" ,scrollkeeper)
10443 ("pkg-config" ,pkg-config)))
10444 (home-page "https://wiki.gnome.org/Apps/Planner")
10445 (synopsis "Project management software for the GNOME desktop")
10446 (description
10447 "GNOME Planner is a project management tool based on the Work Breakdown
10448 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10449 the resources, tasks, and constraints that you define, Planner generates
10450 various views into a project. For example, Planner can show a Gantt chart of
10451 the project. It can show a detailed summary of tasks including their
10452 duration, cost, and current progress. It can also show a report of resource
10453 utilization that highlights under-utilized and over-utilized resources. These
10454 views can be printed as PDF or PostScript files, or exported to HTML.")
10455 (license license:gpl2+)))
10456
10457 (define-public lollypop
10458 (package
10459 (name "lollypop")
10460 (version "1.4.6")
10461 (source
10462 (origin
10463 (method url-fetch)
10464 (uri (string-append "https://adishatz.org/lollypop/"
10465 "lollypop-" version ".tar.xz"))
10466 (sha256
10467 (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
10468 (build-system meson-build-system)
10469 (arguments
10470 `(#:imported-modules
10471 (,@%meson-build-system-modules
10472 (guix build python-build-system))
10473 #:modules
10474 ((guix build meson-build-system)
10475 ((guix build python-build-system) #:prefix python:)
10476 (guix build utils))
10477 #:glib-or-gtk? #t
10478 #:tests? #f ; no test suite
10479 #:phases
10480 (modify-phases %standard-phases
10481 (add-after 'install 'wrap-program
10482 (lambda* (#:key outputs #:allow-other-keys)
10483 (let ((out (assoc-ref outputs "out"))
10484 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10485 (wrap-program (string-append out "/bin/lollypop")
10486 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10487 #t))
10488 (add-after 'install 'wrap-python
10489 (assoc-ref python:%standard-phases 'wrap)))))
10490 (native-inputs
10491 `(("intltool" ,intltool)
10492 ("itstool" ,itstool)
10493 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10494 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10495 ("pkg-config" ,pkg-config)))
10496 (inputs
10497 `(("glib-networking" ,glib-networking)
10498 ("gobject-introspection" ,gobject-introspection)
10499 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10500 ("gst-plugins-base" ,gst-plugins-base)
10501 ("libnotify" ,libnotify)
10502 ("libsecret" ,libsecret)
10503 ("libhandy" ,libhandy)
10504 ("libsoup" ,libsoup)
10505 ("python" ,python)
10506 ("python-beautifulsoup4" ,python-beautifulsoup4)
10507 ("python-gst" ,python-gst)
10508 ("python-pil" ,python-pillow)
10509 ("python-pycairo" ,python-pycairo)
10510 ("python-pygobject" ,python-pygobject)
10511 ("python-pylast" ,python-pylast)
10512 ("totem-pl-parser" ,totem-pl-parser)
10513 ("webkitgtk" ,webkitgtk)))
10514 (propagated-inputs
10515 `(;; gst-plugins-base is required to start Lollypop,
10516 ;; the others are required to play streaming.
10517 ("gst-plugins-good" ,gst-plugins-good)
10518 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10519 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10520 (synopsis "GNOME music playing application")
10521 (description
10522 "Lollypop is a music player designed to play well with GNOME desktop.
10523 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10524 from artists and tracks from the web. It also fetches cover artworks
10525 automatically and it can stream songs from online music services and charts.")
10526 (license license:gpl3+)))
10527
10528 (define-public gnome-video-effects
10529 (package
10530 (name "gnome-video-effects")
10531 (version "0.5.0")
10532 (source (origin
10533 (method url-fetch)
10534 (uri (string-append "mirror://gnome/sources/" name "/"
10535 (version-major+minor version) "/" name "-"
10536 version ".tar.xz"))
10537 (sha256
10538 (base32
10539 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10540 (build-system meson-build-system)
10541 (native-inputs
10542 `(("gettext" ,gettext-minimal)
10543 ("pkg-config" ,pkg-config)))
10544 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10545 (synopsis "Video effects for Cheese and other GNOME applications")
10546 (description
10547 "A collection of GStreamer video filters and effects to be used in
10548 photo-booth-like software, such as Cheese.")
10549 (license license:gpl2+)))
10550
10551 (define-public cheese
10552 (package
10553 (name "cheese")
10554 (version "3.38.0")
10555 (source (origin
10556 (method url-fetch)
10557 (uri (string-append "mirror://gnome/sources/" name "/"
10558 (version-major+minor version) "/" name "-"
10559 version ".tar.xz"))
10560 (sha256
10561 (base32
10562 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))
10563 (patches (search-patches "cheese-vala-update.patch"))))
10564 (arguments
10565 `(#:glib-or-gtk? #t
10566 ;; Tests require GDK.
10567 #:tests? #f
10568 #:phases
10569 (modify-phases %standard-phases
10570 (add-after 'unpack 'skip-gtk-update-icon-cache
10571 (lambda _
10572 ;; Don't create 'icon-theme.cache'
10573 (substitute* "meson_post_install.py"
10574 (("gtk-update-icon-cache") (which "true")))
10575 #t))
10576 (add-after 'unpack 'patch-docbook-xml
10577 (lambda* (#:key inputs #:allow-other-keys)
10578 ;; Avoid a network connection attempt during the build.
10579 (substitute* '("docs/reference/cheese.xml"
10580 "docs/reference/cheese-docs.xml")
10581 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10582 (string-append (assoc-ref inputs "docbook-xml")
10583 "/xml/dtd/docbook/docbookx.dtd")))
10584 #t))
10585 (add-after 'install 'wrap-cheese
10586 (lambda* (#:key inputs outputs #:allow-other-keys)
10587 (let ((out (assoc-ref outputs "out"))
10588 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10589 (wrap-program (string-append out "/bin/cheese")
10590 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10591 #t)))))
10592 (build-system meson-build-system)
10593 (native-inputs
10594 `(("docbook-xsl" ,docbook-xsl)
10595 ("docbook-xml" ,docbook-xml-4.3)
10596 ("gettext" ,gettext-minimal)
10597 ("glib:bin" ,glib "bin")
10598 ("gtk-doc" ,gtk-doc/stable)
10599 ("itstool" ,itstool)
10600 ("libxml2" ,libxml2)
10601 ("libxslt" ,libxslt)
10602 ("pkg-config" ,pkg-config)
10603 ("vala" ,vala)))
10604 (propagated-inputs
10605 `(("gnome-video-effects" ,gnome-video-effects)
10606 ("clutter" ,clutter)
10607 ("clutter-gst" ,clutter-gst)
10608 ("clutter-gtk" ,clutter-gtk)
10609 ("libcanberra" ,libcanberra)
10610 ("gdk-pixbuf" ,gdk-pixbuf)
10611 ("glib" ,glib)
10612 ("gstreamer" ,gstreamer)))
10613 (inputs
10614 `(("gnome-desktop" ,gnome-desktop)
10615 ("gobject-introspection" ,gobject-introspection)
10616 ("gst-plugins-base" ,gst-plugins-base)
10617 ("gst-plugins-good" ,gst-plugins-good)
10618 ("gst-plugins-bad" ,gst-plugins-bad)
10619 ("gtk+" ,gtk+)
10620 ("libx11" ,libx11)
10621 ("libxtst" ,libxtst)))
10622 (home-page "https://wiki.gnome.org/Apps/Cheese")
10623 (synopsis "Webcam photo booth software for GNOME")
10624 (description
10625 "Cheese uses your webcam to take photos and videos. Cheese can also
10626 apply fancy special effects and lets you share the fun with others.")
10627 (license license:gpl2+)))
10628
10629 (define-public passwordsafe
10630 (package
10631 (name "passwordsafe")
10632 (version "5.0")
10633 (source
10634 (origin
10635 (method git-fetch)
10636 (uri (git-reference
10637 (url "https://gitlab.gnome.org/World/PasswordSafe")
10638 (commit version)))
10639 (file-name (git-file-name name version))
10640 (sha256
10641 (base32 "1xh64bbg10gnfzlck5jvqy2zk6hbk9cyqgv85xc9kbdvs8n4lhgh"))))
10642 (build-system meson-build-system)
10643 (arguments
10644 `(#:glib-or-gtk? #t
10645 #:phases
10646 (modify-phases %standard-phases
10647 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10648 (lambda* (#:key outputs #:allow-other-keys)
10649 (let ((prog (string-append (assoc-ref outputs "out")
10650 "/bin/gnome-passwordsafe"))
10651 (pylib (string-append (assoc-ref outputs "out")
10652 "/lib/python"
10653 ,(version-major+minor
10654 (package-version python))
10655 "/site-packages")))
10656 (wrap-program prog
10657 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
10658 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10659 #t))))))
10660 (native-inputs
10661 `(("desktop-file-utils" ,desktop-file-utils)
10662 ("gettext" ,gettext-minimal)
10663 ("glib:bin" ,glib "bin")
10664 ("gobject-introspection" ,gobject-introspection)
10665 ("gtk+:bin" ,gtk+ "bin")
10666 ("pkg-config" ,pkg-config)))
10667 (inputs
10668 `(("glib" ,glib)
10669 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10670 ("gtk+" ,gtk+)
10671 ("libhandy" ,libhandy)
10672 ("libpwquality" ,libpwquality)
10673 ("python-pygobject" ,python-pygobject)
10674 ("python-pykeepass" ,python-pykeepass)))
10675 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
10676 (synopsis "Password manager for the GNOME desktop")
10677 (description
10678 "Password Safe is a password manager which makes use of the KeePass v4
10679 format. It integrates perfectly with the GNOME desktop and provides an easy
10680 and uncluttered interface for the management of password databases.")
10681 (license license:gpl3+)))
10682
10683 (define-public sound-juicer
10684 (package
10685 (name "sound-juicer")
10686 (version "3.24.0")
10687 (source
10688 (origin
10689 (method url-fetch)
10690 (uri (string-append "mirror://gnome/sources/" name "/"
10691 (version-major+minor version) "/"
10692 name "-" version ".tar.xz"))
10693 (sha256
10694 (base32
10695 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10696 (build-system glib-or-gtk-build-system)
10697 (native-inputs
10698 `(("desktop-file-utils" ,desktop-file-utils)
10699 ("intltool" ,intltool)
10700 ("itstool" ,itstool)
10701 ("pkg-config" ,pkg-config)
10702 ("xmllint" ,libxml2)))
10703 (inputs
10704 `(("gtk+" ,gtk+)
10705 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10706 ("gstreamer" ,gstreamer)
10707 ("gst-plugins-base" ,gst-plugins-base)
10708 ("gst-plugins-good" ,gst-plugins-good)
10709 ("iso-codes" ,iso-codes)
10710 ("libbrasero-media3" ,brasero)
10711 ("libcanberra" ,libcanberra)
10712 ("libdiscid" ,libdiscid)
10713 ("libmusicbrainz" ,libmusicbrainz)
10714 ("neon" ,neon)))
10715 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10716 (synopsis "Audio music cd ripper")
10717 (description "Sound Juicer extracts audio from compact discs and convert it
10718 into audio files that a personal computer or digital audio player can play.
10719 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10720 mp3, Ogg Vorbis and FLAC")
10721 (license license:gpl2+)))
10722
10723 (define-public soundconverter
10724 (package
10725 (name "soundconverter")
10726 (version "3.0.2")
10727 (source
10728 (origin
10729 (method url-fetch)
10730 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10731 version "/+download/"
10732 "soundconverter-" version ".tar.xz"))
10733
10734 (sha256
10735 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10736 (build-system glib-or-gtk-build-system)
10737 (arguments
10738 `(#:imported-modules ((guix build python-build-system)
10739 (guix build glib-or-gtk-build-system)
10740 ,@%gnu-build-system-modules)
10741
10742 #:modules ((guix build glib-or-gtk-build-system)
10743 (guix build utils)
10744 ((guix build gnu-build-system) #:prefix gnu:)
10745 ((guix build python-build-system) #:prefix python:))
10746
10747 #:phases
10748 (modify-phases %standard-phases
10749 (add-after 'install 'wrap-soundconverter-for-python
10750 (assoc-ref python:%standard-phases 'wrap))
10751 (add-after 'install 'wrap-soundconverter
10752 (lambda* (#:key inputs outputs #:allow-other-keys)
10753 (let ((out (assoc-ref outputs "out"))
10754 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10755 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10756 (wrap-program (string-append out "/bin/soundconverter")
10757 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10758 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10759 #t)))))
10760 (native-inputs
10761 `(("intltool" ,intltool)
10762 ("pkg-config" ,pkg-config)
10763 ("glib:bin" ,glib "bin")))
10764 (inputs
10765 `(("gtk+" ,gtk+)
10766 ("python" ,python)
10767 ("python-pygobject" ,python-pygobject)
10768 ("gstreamer" ,gstreamer)
10769 ("gst-plugins-base" ,gst-plugins-base)))
10770 (home-page "https://soundconverter.org/")
10771 (synopsis "Convert between audio formats with a graphical interface")
10772 (description
10773 "SoundConverter supports converting between many audio formats including
10774 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10775 configurable file renaming. ")
10776 (license license:gpl3)))
10777
10778 (define-public workrave
10779 (package
10780 (name "workrave")
10781 (version "1.10.48")
10782 (source
10783 (origin
10784 (method git-fetch)
10785 (uri (git-reference
10786 (url "https://github.com/rcaelers/workrave")
10787 (commit (string-append "v" (string-map
10788 (match-lambda (#\. #\_) (chr chr))
10789 version)))))
10790 (file-name (git-file-name name version))
10791 (sha256
10792 (base32 "0qcknxylk9mr0xzszsd1rkgh2zpnix20m998dfclkm9x8zh9pvyr"))))
10793 (build-system glib-or-gtk-build-system)
10794 (arguments
10795 ;; The only tests are maintainer tests (in po/), which fail.
10796 `(#:tests? #f))
10797 (inputs `(("glib" ,glib)
10798 ("gtk+" ,gtk+)
10799 ("gdk-pixbuf" ,gdk-pixbuf)
10800 ("gtkmm" ,gtkmm-3)
10801 ("glibmm" ,glibmm)
10802 ("libx11" ,libx11)
10803 ("libxtst" ,libxtst)
10804 ("dconf" ,dconf)
10805 ("libice" ,libice)
10806 ("libsm" ,libsm)
10807 ("libxscrnsaver" ,libxscrnsaver)))
10808 (native-inputs `(("boost" ,boost)
10809 ("pkg-config" ,pkg-config)
10810 ("gettext" ,gettext-minimal)
10811 ("autoconf" ,autoconf)
10812 ("autoconf-archive" , autoconf-archive)
10813 ("automake" ,automake)
10814 ("libtool" ,libtool)
10815 ("intltool" ,intltool)
10816 ("gobject-introspection" ,gobject-introspection)
10817 ("python3" ,python-3)
10818 ("python-jinja2" ,python-jinja2)))
10819 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10820 (description
10821 "Workrave is a program that assists in the recovery and prevention of
10822 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10823 micro-pauses and rest breaks, and restricts you to your daily limit.")
10824 (home-page "http://www.workrave.org")
10825 (license license:gpl3+)))
10826
10827 (define-public ghex
10828 (package
10829 (name "ghex")
10830 (version "3.18.4")
10831 (source (origin
10832 (method url-fetch)
10833 (uri (string-append "mirror://gnome/sources/ghex/"
10834 (version-major+minor version) "/"
10835 "ghex-" version ".tar.xz"))
10836 (sha256
10837 (base32
10838 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10839 (build-system meson-build-system)
10840 (arguments
10841 '(#:glib-or-gtk? #t
10842 #:phases
10843 (modify-phases %standard-phases
10844 (add-after 'unpack 'skip-gtk-update-icon-cache
10845 ;; Don't create 'icon-theme.cache'.
10846 (lambda _
10847 (substitute* "meson_post_install.py"
10848 (("gtk-update-icon-cache") (which "true")))
10849 #t)))))
10850 (native-inputs
10851 `(("pkg-config" ,pkg-config)
10852 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10853 ("gnome-common" ,gnome-common)
10854 ("which" ,which)
10855 ("intltool" ,intltool)
10856 ("yelp-tools" ,yelp-tools)
10857 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10858 (inputs
10859 `(("atk" ,atk)
10860 ("gtk" ,gtk+)))
10861 (synopsis "GNOME hexadecimal editor")
10862 (description "The GHex program can view and edit files in two ways:
10863 hexadecimal or ASCII. It is useful for editing binary files in general.")
10864 (home-page "https://wiki.gnome.org/Apps/Ghex")
10865 (license license:gpl2)))
10866
10867 (define-public libdazzle
10868 (package
10869 (name "libdazzle")
10870 (version "3.37.1")
10871 (source (origin
10872 (method url-fetch)
10873 (uri (string-append "mirror://gnome/sources/libdazzle/"
10874 (version-major+minor version) "/"
10875 "libdazzle-" version ".tar.xz"))
10876 (sha256
10877 (base32
10878 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10879 (build-system meson-build-system)
10880 (arguments
10881 `(#:phases
10882 (modify-phases %standard-phases
10883 (add-before 'check 'pre-check
10884 (lambda _
10885 ;; Tests require a running X server.
10886 (system "Xvfb :1 &")
10887 (setenv "DISPLAY" ":1")
10888 #t)))))
10889 (native-inputs
10890 `(("glib" ,glib "bin") ; glib-compile-resources
10891 ("pkg-config" ,pkg-config)
10892 ;; For tests.
10893 ("xorg-server" ,xorg-server-for-tests)))
10894 (inputs
10895 `(("glib" ,glib)
10896 ("gobject-introspection" ,gobject-introspection)
10897 ("gtk+" ,gtk+)
10898 ("vala" ,vala)))
10899 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10900 (synopsis "Companion library to GObject and Gtk+")
10901 (description "The libdazzle library is a companion library to GObject and
10902 Gtk+. It provides various features that the authors wish were in the
10903 underlying library but cannot for various reasons. In most cases, they are
10904 wildly out of scope for those libraries. In other cases, they are not quite
10905 generic enough to work for everyone.")
10906 (license license:gpl3+)))
10907
10908 (define-public evolution
10909 (package
10910 (name "evolution")
10911 (version "3.34.2")
10912 (source (origin
10913 (method url-fetch)
10914 (uri (string-append "mirror://gnome/sources/evolution/"
10915 (version-major+minor version) "/"
10916 "evolution-" version ".tar.xz"))
10917 (sha256
10918 (base32
10919 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))
10920 (patches (search-patches "evolution-CVE-2020-11879.patch"
10921 "evolution-printableoptions.patch"))))
10922 (build-system cmake-build-system)
10923 (arguments
10924 `(#:imported-modules (,@%cmake-build-system-modules
10925 (guix build glib-or-gtk-build-system))
10926 #:modules ((guix build cmake-build-system)
10927 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10928 (guix build utils))
10929 #:configure-flags
10930 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10931 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10932 ; in four years and cannot be built.
10933 #:phases
10934 (modify-phases %standard-phases
10935 ;; The build system attempts to install user interface modules to the
10936 ;; output directory of the "evolution-data-server" package. This
10937 ;; change redirects that change.
10938 (add-after 'unpack 'patch-ui-module-dir
10939 (lambda* (#:key outputs #:allow-other-keys)
10940 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10941 (("\\$\\{edsuimoduledir\\}")
10942 (string-append (assoc-ref outputs "out")
10943 "/lib/evolution-data-server/ui-modules")))
10944 #t))
10945 (add-after 'install 'glib-or-gtk-compile-schemas
10946 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10947 (add-after 'install 'glib-or-gtk-wrap
10948 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10949 (native-inputs
10950 `(("glib" ,glib "bin") ; glib-mkenums
10951 ("pkg-config" ,pkg-config)
10952 ("intltool" ,intltool)
10953 ("itstool" ,itstool)))
10954 (inputs
10955 `(("enchant" ,enchant)
10956 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10957 ("gcr" ,gcr)
10958 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10959 ("gnome-autoar" ,gnome-autoar)
10960 ("gnome-desktop" ,gnome-desktop)
10961 ("gspell" ,gspell)
10962 ("highlight" ,highlight)
10963 ("libcanberra" ,libcanberra)
10964 ("libgweather" ,libgweather)
10965 ("libnotify" ,libnotify)
10966 ("libsoup" ,libsoup)
10967 ("nss" ,nss)
10968 ("openldap" ,openldap)
10969 ("webkitgtk" ,webkitgtk)
10970 ("ytnef" ,ytnef)))
10971 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10972 (synopsis "Manage your email, contacts and schedule")
10973 (description "Evolution is a personal information management application
10974 that provides integrated mail, calendaring and address book
10975 functionality.")
10976 ;; See COPYING for details.
10977 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10978 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10979 license:lgpl2.1+)))) ; smime/lib/*
10980
10981 (define-public gthumb
10982 (package
10983 (name "gthumb")
10984 (version "3.12.0")
10985 (source (origin
10986 (method url-fetch)
10987 (uri (string-append "mirror://gnome/sources/gthumb/"
10988 (version-major+minor version) "/"
10989 "gthumb-" version ".tar.xz"))
10990 (sha256
10991 (base32
10992 "0grqiq6v26z8avl7mj24xy4i9bl1niwpqhqw6rblprl40c1zrvrx"))))
10993 (build-system meson-build-system)
10994 (arguments
10995 `(#:glib-or-gtk? #t
10996 #:configure-flags
10997 ;; Ensure the RUNPATH contains all installed library locations.
10998 (list (string-append "-Dc_link_args=-Wl,-rpath="
10999 (assoc-ref %outputs "out")
11000 "/lib/gthumb/extensions")
11001 (string-append "-Dcpp_link_args=-Wl,-rpath="
11002 (assoc-ref %outputs "out")
11003 "/lib/gthumb/extensions"))))
11004 (native-inputs
11005 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11006 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11007 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11008 ("intltool" ,intltool)
11009 ("itstool" ,itstool)
11010 ("pkg-config" ,pkg-config)))
11011 (inputs
11012 `(("clutter" ,clutter)
11013 ("clutter-gst" ,clutter-gst)
11014 ("clutter-gtk" ,clutter-gtk)
11015 ("colord" ,colord)
11016 ("exiv2" ,exiv2)
11017 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11018 ("gstreamer" ,gstreamer)
11019 ("gtk" ,gtk+)
11020 ("libheif" ,libheif)
11021 ("libjpeg" ,libjpeg-turbo)
11022 ("libraw" ,libraw)
11023 ("librsvg" ,librsvg)
11024 ("libtiff" ,libtiff)
11025 ("libwebp" ,libwebp)))
11026 (home-page "https://wiki.gnome.org/Apps/Gthumb")
11027 (synopsis "GNOME image viewer and browser")
11028 (description "GThumb is an image viewer, browser, organizer, editor and
11029 advanced image management tool")
11030 (license license:gpl2+)))
11031
11032 (define-public terminator
11033 (package
11034 (name "terminator")
11035 (version "2.1.1")
11036 (source
11037 (origin
11038 (method url-fetch)
11039 (uri (string-append "https://github.com/gnome-terminator/terminator/"
11040 "releases/download/v" version "/"
11041 name "-" version ".tar.gz"))
11042 (sha256
11043 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
11044 (build-system python-build-system)
11045 (native-inputs
11046 `(("gettext" ,gettext-minimal)
11047 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11048 ("gobject-introspection" ,gobject-introspection)
11049 ("intltool" ,intltool)
11050 ("pkg-config" ,pkg-config)
11051 ("python-psutil" ,python-psutil)
11052 ("python-pytest-runner" ,python-pytest-runner)
11053 ("python-pytest" ,python-pytest)))
11054 (inputs
11055 `(("cairo" ,cairo)
11056 ("dbus-glib" ,dbus-glib)
11057 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11058 ("gtk+" ,gtk+)
11059 ("python" ,python-wrapper)
11060 ("python-dbus" ,python-dbus)
11061 ("python-notify2" ,python-notify2)
11062 ("python-pycairo" ,python-pycairo)
11063 ("python-pygobject" ,python-pygobject)
11064 ("vte" ,vte)))
11065 (propagated-inputs
11066 `(("python-configobj" ,python-configobj)))
11067 (arguments
11068 ;; One test out of 28 fails due to dbus-python and python-notify; skip
11069 ;; tests.
11070 `(#:tests? #f
11071 #:imported-modules ((guix build glib-or-gtk-build-system)
11072 ,@%python-build-system-modules)
11073 #:modules ((guix build python-build-system)
11074 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11075 (guix build utils))
11076 #:phases
11077 (modify-phases %standard-phases
11078 (add-after 'unpack 'handle-dbus-python
11079 (lambda _
11080 ;; python-dbus cannot be found but it's really there. See
11081 ;; https://github.com/SpotlightKid/jack-select/issues/2
11082 (substitute* "setup.py"
11083 (("'dbus-python',") ""))
11084 #t))
11085 (add-after 'install 'wrap-program
11086 (lambda* (#:key outputs #:allow-other-keys)
11087 (let ((prog (string-append (assoc-ref outputs "out")
11088 "/bin/terminator"))
11089 (pylib (string-append (assoc-ref outputs "out")
11090 "/lib/python"
11091 ,(version-major+minor
11092 (package-version python))
11093 "/site-packages")))
11094 (wrap-program prog
11095 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
11096 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11097 #t)))
11098 (add-after 'wrap-program 'glib-or-gtk-wrap
11099 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11100 (home-page "https://gnome-terminator.org/")
11101 (synopsis "Store and run multiple GNOME terminals in one window")
11102 (description
11103 "Terminator allows you to run multiple GNOME terminals in a grid and
11104 tabs, and it supports drag and drop re-ordering of terminals.")
11105 (license license:gpl2)))
11106
11107 (define-public libhandy
11108 (package
11109 (name "libhandy")
11110 (version "1.2.3")
11111 (source
11112 (origin
11113 (method git-fetch)
11114 (uri (git-reference
11115 (url "https://gitlab.gnome.org/GNOME/libhandy")
11116 (commit version)))
11117 (file-name (git-file-name name version))
11118 (sha256
11119 (base32 "1ng2607cp4dfl169rj7zi8q5p6fzxy3a4l0glm7mj75yd1a603rz"))))
11120 (build-system meson-build-system)
11121 (arguments
11122 `(#:configure-flags
11123 '("-Dglade_catalog=enabled"
11124 ;; XXX: Generating the documentation fails because the
11125 ;; libhandy.devhelp2 document cannot be created. This seems to be
11126 ;; caused by a problem during the XSL transformation.
11127 "-Dgtk_doc=false")
11128 #:phases
11129 (modify-phases %standard-phases
11130 (add-after 'unpack 'patch-docbook-xml
11131 (lambda* (#:key inputs #:allow-other-keys)
11132 (for-each
11133 (lambda (file)
11134 (substitute* file
11135 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
11136 (search-input-file inputs
11137 "/xml/dtd/docbook/docbookx.dtd"))))
11138 (find-files "doc" "\\.xml"))))
11139 (add-before 'check 'pre-check
11140 (lambda _
11141 ;; Tests require a running X server.
11142 (system "Xvfb :1 &")
11143 (setenv "DISPLAY" ":1")
11144 #t)))))
11145 (inputs
11146 `(("gtk+" ,gtk+)
11147 ("glade" ,glade3)))
11148 (native-inputs
11149 `(("glib:bin" ,glib "bin")
11150 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
11151 ("vala" ,vala)
11152 ("libxml2" ,libxml2)
11153 ("libxslt" ,libxslt)
11154 ("docbook-xsl" ,docbook-xsl)
11155 ("docbook-xml" ,docbook-xml-4.3)
11156 ("gtk-doc" ,gtk-doc/stable)
11157 ("pkg-config" ,pkg-config)
11158 ("gettext" ,gettext-minimal)
11159
11160 ;; Test suite dependencies.
11161 ("xorg-server" ,xorg-server-for-tests)
11162 ("hicolor-icon-theme" ,hicolor-icon-theme)))
11163 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11164 (synopsis "Library full of GTK+ widgets for mobile phones")
11165 (description "The aim of the handy library is to help with developing user
11166 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11167 for usage on small and big screens.")
11168 (license license:lgpl2.1+)))
11169
11170 (define-public libhandy-0.0
11171 (package
11172 (inherit libhandy)
11173 (version "0.0.13")
11174 (source
11175 (origin
11176 (method git-fetch)
11177 (uri (git-reference
11178 (url "https://gitlab.gnome.org/GNOME/libhandy")
11179 (commit (string-append "v" version))))
11180 (file-name (git-file-name "libhandy" version))
11181 (sha256
11182 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11183 (arguments
11184 (substitute-keyword-arguments (package-arguments libhandy)
11185 ((#:configure-flags flags)
11186 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11187
11188 (define-public libgit2-glib
11189 (package
11190 (name "libgit2-glib")
11191 (version "0.99.0.1")
11192 (source (origin
11193 (method url-fetch)
11194 (uri (string-append "mirror://gnome/sources/" name "/"
11195 (version-major+minor version) "/"
11196 name "-" version ".tar.xz"))
11197 (sha256
11198 (base32
11199 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
11200 (build-system meson-build-system)
11201 (native-inputs
11202 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
11203 ("gobject-introspection" ,gobject-introspection)
11204 ("pkg-config" ,pkg-config)
11205 ("python-pygobject" ,python-pygobject)
11206 ("python-wrapper" ,python-wrapper)
11207 ("vala" ,vala)))
11208 (inputs
11209 `(("glib" ,glib)
11210 ("libssh2" ,libssh2)))
11211 (propagated-inputs
11212 `(;; In Requires of libgit2-glib.pc.
11213 ("libgit2" ,libgit2)))
11214 (synopsis "GLib wrapper around the libgit2 Git access library")
11215 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11216 access library. It only implements the core plumbing functions, not really the
11217 higher level porcelain stuff.")
11218 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11219 (license license:gpl2+)))
11220
11221 (define-public gitg
11222 (package
11223 (name "gitg")
11224 (version "3.32.1")
11225 (source (origin
11226 (method url-fetch)
11227 (uri (string-append "mirror://gnome/sources/" name "/"
11228 (version-major+minor version) "/"
11229 name "-" version ".tar.xz"))
11230 (sha256
11231 (base32
11232 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
11233 (build-system meson-build-system)
11234 (arguments
11235 `(#:glib-or-gtk? #t
11236 #:phases
11237 (modify-phases %standard-phases
11238 (add-after 'unpack 'disable-post-install-partially
11239 (lambda _
11240 (substitute* "meson_post_install.py"
11241 (("'python'") ; there are no python sources to compile
11242 (string-append "'" (which "true") "'"))
11243 (("gtk-update-icon-cache") (which "true")))
11244 #t))
11245 (add-after 'unpack 'fix-test-sources
11246 (lambda _
11247 (substitute* "tests/libgitg/test-commit.vala"
11248 (("/bin/bash") (which "bash")))
11249 #t))
11250 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11251 (lambda* (#:key outputs #:allow-other-keys)
11252 (let ((prog (string-append (assoc-ref outputs "out")
11253 "/bin/gitg")))
11254 (wrap-program prog
11255 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11256 #t))))))
11257 (inputs
11258 `(("glib" ,glib)
11259 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11260 ("gtk+" ,gtk+)
11261 ("gtkspell3" ,gtkspell3)
11262 ("gtksourceview" ,gtksourceview-3)
11263 ("json-glib" ,json-glib)
11264 ("libdazzle" ,libdazzle)
11265 ("libgee" ,libgee)
11266 ("libgit2-glib" ,libgit2-glib)
11267 ("libpeas" ,libpeas)
11268 ("libsecret" ,libsecret)
11269 ("libsoup" ,libsoup)
11270 ("libxml2" ,libxml2)))
11271 (native-inputs
11272 `(("glib:bin" ,glib "bin")
11273 ("gtk+:bin" ,gtk+ "bin")
11274 ("gobject-introspection" ,gobject-introspection)
11275 ("intltool" ,intltool)
11276 ("pkg-config" ,pkg-config)
11277 ("vala" ,vala)))
11278 (synopsis "Graphical user interface for git")
11279 (description
11280 "gitg is a graphical user interface for git. It aims at being a small,
11281 fast and convenient tool to visualize the history of git repositories.
11282 Besides visualization, gitg also provides several utilities to manage your
11283 repository and commit your work.")
11284 (home-page "https://wiki.gnome.org/Apps/Gitg")
11285 (license license:gpl2+)))
11286
11287 (define-public gamin
11288 (package
11289 (name "gamin")
11290 (version "0.1.10")
11291 (source (origin
11292 (method url-fetch)
11293 (uri (string-append "mirror://gnome/sources/" name "/"
11294 (version-major+minor version) "/"
11295 name "-" version ".tar.bz2"))
11296 (sha256
11297 (base32
11298 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11299 (build-system gnu-build-system)
11300 (arguments
11301 `(#:phases
11302 (modify-phases %standard-phases
11303 ;; The 'config.sub' is too old to recognise aarch64.
11304 ,@(if (and=> (%current-target-system) target-aarch64?)
11305 `((add-after 'unpack 'replace-config.sub
11306 (lambda _
11307 (delete-file "config.sub")
11308 (symlink (which "config.sub") "config.sub"))))
11309 '())
11310 (add-after 'unpack 'remove-deprecated-macro
11311 (lambda _
11312 (substitute* '("server/gam_node.c"
11313 "server/gam_subscription.h"
11314 "server/gam_node.h"
11315 "server/gam_subscription.c")
11316 (("G_CONST_RETURN") "const"))
11317 #t))
11318 ;; The configure script runs a test program unconditionally,
11319 ;; without an option to manually set the test result.
11320 ;; Override this test anyway.
11321 ,@(if (%current-target-system)
11322 `((add-after 'bootstrap 'set-have-abstract-sockets
11323 (lambda _
11324 (define in-abstract-sockets-test? #f)
11325 (substitute* "configure"
11326 (("^#### Abstract sockets\n$")
11327 (set! in-abstract-sockets-test? #t)
11328 "#### Abstract sockets\n")
11329 (("^have_abstract_sockets=no\n$")
11330 (set! in-abstract-sockets-test? #f)
11331 ;; ‘Abstract sockets’ appear to be Linux-only.
11332 (string-append "have_abstract_sockets="
11333 ,(if (target-linux?)
11334 "yes"
11335 "no")
11336 "\nif false; then\nif false; then :\n"))
11337 (("^(.*\n)$" line)
11338 (if in-abstract-sockets-test?
11339 "" ; delete
11340 line))))))
11341 '()))))
11342 (inputs
11343 `(("glib" ,glib)))
11344 (native-inputs
11345 `(("pkg-config" ,pkg-config)
11346 ,@(if (and=> (%current-target-system) target-aarch64?)
11347 `(("config" ,config))
11348 '())))
11349 (home-page "https://people.gnome.org/~veillard/gamin/")
11350 (synopsis "File alteration monitor")
11351 (description
11352 "Gamin is a file and directory monitoring system defined to be a subset
11353 of the FAM (File Alteration Monitor) system. This is a service provided by a
11354 library which detects when a file or a directory has been modified.")
11355 (license license:gpl2+)))
11356
11357 (define-public gnome-mahjongg
11358 (package
11359 (name "gnome-mahjongg")
11360 (version "3.35.1")
11361 (source (origin
11362 (method git-fetch)
11363 (uri (git-reference
11364 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
11365 (commit version)))
11366 (file-name (git-file-name name version))
11367 (sha256
11368 (base32
11369 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
11370 (build-system meson-build-system)
11371 (arguments
11372 `(#:glib-or-gtk? #t))
11373 (native-inputs
11374 `(("appstream-glib" ,appstream-glib)
11375 ("gettext" ,gettext-minimal)
11376 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11377 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11378 ("itstool" ,itstool)
11379 ("pkg-config" ,pkg-config)
11380 ("vala" ,vala)))
11381 (propagated-inputs
11382 `(("dconf" ,dconf)))
11383 (inputs
11384 `(("glib" ,glib)
11385 ("gtk+" ,gtk+)
11386 ("librsvg" ,librsvg)))
11387 (synopsis "Mahjongg tile-matching game")
11388 (description "GNOME Mahjongg is a game based on the classic Chinese
11389 tile-matching game Mahjong. It features multiple board layouts, tile themes,
11390 and a high score table.")
11391 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11392 (license license:gpl2+)))
11393
11394 (define-public gnome-themes-extra
11395 (package
11396 (name "gnome-themes-extra")
11397 (version "3.28")
11398 (source
11399 (origin
11400 (method url-fetch)
11401 (uri (string-append "mirror://gnome/sources/" name "/"
11402 (version-major+minor version) "/" name "-"
11403 version ".tar.xz"))
11404 (sha256
11405 (base32
11406 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11407 (build-system gnu-build-system)
11408 (arguments
11409 '(#:configure-flags
11410 ;; Don't create 'icon-theme.cache'.
11411 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11412 (true (string-append coreutils "/bin/true")))
11413 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11414 (native-inputs
11415 `(("glib:bin" ,glib "bin")
11416 ("intltool" ,intltool)
11417 ("pkg-config" ,pkg-config)))
11418 (inputs
11419 `(("glib" ,glib)
11420 ("gtk+" ,gtk+)
11421 ("gtk+-2" ,gtk+-2)
11422 ("librsvg" ,librsvg)
11423 ("libxml2" ,libxml2)))
11424 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11425 (synopsis "GNOME Extra Themes")
11426 (description "This package provides themes and related elements that don't
11427 really fit in other upstream packages. It offers legacy support for GTK+ 2
11428 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11429 index files needed for Adwaita to be used outside of GNOME.")
11430 (license license:lgpl2.1+)))
11431
11432 (define-public gnote
11433 (package
11434 (name "gnote")
11435 (version "40.2")
11436 (source
11437 (origin
11438 (method url-fetch)
11439 (uri (string-append "mirror://gnome/sources/" name "/"
11440 (version-major version) "/"
11441 "gnote-" version ".tar.xz"))
11442 (sha256
11443 (base32 "01fqdfgcl32cf40jw9q0h7f5bghl1lvf89vln1lh41ncrk0iw6vy"))))
11444 (build-system glib-or-gtk-build-system)
11445 (native-inputs
11446 `(("desktop-file-utils" ,desktop-file-utils)
11447 ("glib:bin" ,glib "bin")
11448 ("gobject-introspection" ,gobject-introspection)
11449 ("intltool" ,intltool)
11450 ("itstool" ,itstool)
11451 ("pkg-config" ,pkg-config)
11452 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
11453 (inputs
11454 `(("glibmm" ,glibmm)
11455 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11456 ("gspell" ,gspell)
11457 ("gtk+" ,gtk+)
11458 ("gtkmm" ,gtkmm-3)
11459 ("libsecret" ,libsecret)
11460 ("libuuid" ,util-linux "lib")
11461 ("libxml2" ,libxml2)
11462 ("libxslt" ,libxslt)))
11463 (synopsis "Note-taking application for the GNOME desktop")
11464 (description
11465 "Gnote is a note-taking application written for the GNOME desktop
11466 environment.")
11467 (home-page "https://wiki.gnome.org/Apps/Gnote")
11468 (license license:gpl3+)))
11469
11470 (define-public polari
11471 (package
11472 (name "polari")
11473 (version "3.36.3")
11474 (source (origin
11475 (method url-fetch)
11476 (uri (string-append "mirror://gnome/sources/polari/"
11477 (version-major+minor version)
11478 "/polari-" version ".tar.xz"))
11479 (sha256
11480 (base32
11481 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11482 (build-system meson-build-system)
11483 (arguments
11484 `(#:glib-or-gtk? #t
11485 #:phases
11486 (modify-phases %standard-phases
11487 (add-after 'unpack 'skip-gtk-update-icon-cache
11488 (lambda _
11489 (substitute* "meson/meson-postinstall.sh"
11490 (("gtk-update-icon-cache") (which "true")))
11491 #t))
11492 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11493 (lambda* (#:key outputs #:allow-other-keys)
11494 (let ((prog (string-append (assoc-ref outputs "out")
11495 "/bin/polari")))
11496 (wrap-program prog
11497 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11498 #t))))))
11499 (inputs
11500 `(("glib" ,glib)
11501 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11502 ("gspell" ,gspell)
11503 ("gtk+" ,gtk+)
11504 ("gjs" ,gjs)
11505 ("libsecret" ,libsecret)
11506 ("libsoup" ,libsoup)
11507 ("telepathy-glib" ,telepathy-glib)
11508 ("telepathy-logger" ,telepathy-logger)))
11509 (native-inputs
11510 `(("glib:bin" ,glib "bin")
11511 ("gobject-introspection" ,gobject-introspection)
11512 ("intltool" ,intltool)
11513 ("pkg-config" ,pkg-config)
11514 ("yelp-tools" ,yelp-tools)))
11515 (propagated-inputs
11516 `(("telepathy-idle" ,telepathy-idle)
11517 ("telepathy-mission-control" ,telepathy-mission-control)))
11518 (synopsis "Simple IRC Client")
11519 (description
11520 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11521 integrate seamlessly with the GNOME desktop.")
11522 (home-page "https://wiki.gnome.org/Apps/Polari")
11523 (license license:gpl2+)))
11524
11525 (define-public gnome-boxes
11526 (package
11527 (name "gnome-boxes")
11528 (version "40.3")
11529 (source
11530 (origin
11531 (method url-fetch)
11532 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11533 (version-major version) "/"
11534 "gnome-boxes-" version ".tar.xz"))
11535 (sha256
11536 (base32 "0n20yzxsc7mv73a905djvsas76vknfn67ad1n0rnvgm48n7qxw7z"))))
11537 (build-system meson-build-system)
11538 (arguments
11539 '(#:glib-or-gtk? #t
11540 #:configure-flags (list "-Drdp=false"
11541 (string-append "-Dc_link_args=-Wl,-rpath="
11542 (assoc-ref %outputs "out")
11543 "/lib/gnome-boxes"))))
11544 (native-inputs
11545 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11546 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11547 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11548 ("itstool" ,itstool)
11549 ("intltool" ,intltool)
11550 ("vala" ,vala)
11551 ("pkg-config" ,pkg-config)))
11552 (inputs
11553 `(("libarchive" ,libarchive)
11554 ("glib-networking" ,glib-networking) ;for TLS support
11555 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11556 ("gtk" ,gtk+)
11557 ("gtk-vnc" ,gtk-vnc)
11558 ("gtksourceview" ,gtksourceview)
11559 ("json-glib" ,json-glib)
11560 ("libosinfo" ,libosinfo)
11561 ("libsecret" ,libsecret)
11562 ("libsoup" ,libsoup)
11563 ("libusb" ,libusb)
11564 ("libvirt" ,libvirt)
11565 ("libvirt-glib" ,libvirt-glib)
11566 ("libxml" ,libxml2)
11567 ("spice-gtk" ,spice-gtk)
11568 ("sparql-query" ,sparql-query)
11569 ("vte" ,vte)
11570 ("webkitgtk" ,webkitgtk)
11571 ("tracker" ,tracker)
11572 ("libgudev" ,libgudev)))
11573 (home-page "https://wiki.gnome.org/Apps/Boxes")
11574 (synopsis "View, access, and manage remote and virtual systems")
11575 (description "GNOME Boxes is a simple application to view, access, and
11576 manage remote and virtual systems. Note that this application requires the
11577 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11578 @command{info '(guix) Virtualization Services'} to learn how to configure
11579 these services on the Guix System.")
11580 (license (list
11581 ;; For data/icons/empty-boxes.png.
11582 license:cc-by2.0
11583 ;; For all others.
11584 license:lgpl2.0+))))
11585
11586 (define-public geary
11587 (package
11588 (name "geary")
11589 (version "3.34.1")
11590 (source (origin
11591 (method git-fetch)
11592 (uri (git-reference
11593 (url "https://gitlab.gnome.org/GNOME/geary")
11594 (commit version)))
11595 (file-name (git-file-name name version))
11596 (sha256
11597 (base32
11598 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))
11599 (patches (search-patches "geary-CVE-2020-24661.patch"))))
11600 (build-system meson-build-system)
11601 (arguments
11602 `(#:glib-or-gtk? #t
11603 #:phases (modify-phases %standard-phases
11604 (add-after 'unpack 'disable-failing-tests
11605 (lambda _
11606 (substitute* "test/meson.build"
11607 (("test\\('client-tests', geary_test_client_bin\\)")
11608 ""))
11609 #t))
11610 (add-after 'unpack 'disable-postinstall-script
11611 (lambda _
11612 (substitute* "meson.build"
11613 (("meson.add_install_script\\(\
11614 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11615 ""))
11616 #t))
11617 (add-before 'check 'setup-xvfb
11618 (lambda _
11619 (system "Xvfb :1 &")
11620 (setenv "DISPLAY" ":1")
11621 #t)))))
11622 (inputs
11623 `(("enchant" ,enchant)
11624 ("folks" ,folks)
11625 ("gcr" ,gcr)
11626 ("glib" ,glib)
11627 ("gmime" ,gmime-2.6)
11628 ("gnome-online-accounts:lib"
11629 ,gnome-online-accounts "lib")
11630 ("gspell" ,gspell)
11631 ("gtk+" ,gtk+)
11632 ("iso-codes" ,iso-codes)
11633 ("json-glib" ,json-glib)
11634 ("libcanberra" ,libcanberra)
11635 ("libgee" ,libgee)
11636 ("libhandy" ,libhandy-0.0)
11637 ("libpeas" ,libpeas)
11638 ("libsecret" ,libsecret)
11639 ("libunwind" ,libunwind)
11640 ("sqlite" ,sqlite)
11641 ("webkitgtk" ,webkitgtk)
11642 ("ytnef" ,ytnef)))
11643 (native-inputs
11644 `(("appstream-glib" ,appstream-glib)
11645 ("cmake-minimal" ,cmake-minimal)
11646 ("desktop-file-utils" ,desktop-file-utils)
11647 ("gettext" ,gettext-minimal)
11648 ("glib:bin" ,glib "bin")
11649 ("gobject-introspection" ,gobject-introspection)
11650 ("itstool" ,itstool)
11651 ("libarchive" ,libarchive)
11652 ("libxml2" ,libxml2)
11653 ("pkg-config" ,pkg-config)
11654 ("vala" ,vala)
11655 ("xvfb" ,xorg-server-for-tests)))
11656 (synopsis "GNOME email application built around conversations")
11657 (description
11658 "Geary collects related messages together into conversations,
11659 making it easy to find and follow your discussions. Full-text and keyword
11660 search makes it easy to find the email you are looking for. Geary's
11661 full-featured composer lets you send rich, styled text with images, links, and
11662 lists, but also send lightweight, easy to read text messages. Geary
11663 automatically picks up your existing GNOME Online Accounts, and adding more is
11664 easy. Geary has a clean, fast, modern interface that works like you want it
11665 to.")
11666 (home-page "https://wiki.gnome.org/Apps/Geary")
11667 (license (list
11668 ;; geary
11669 license:lgpl2.1+
11670 ;; icons
11671 license:cc-by3.0
11672 license:cc-by-sa3.0
11673 license:public-domain
11674 ;; snowball
11675 license:bsd-2))))
11676
11677 (define-public glabels
11678 (package
11679 (name "glabels")
11680 (version "3.4.1")
11681 (source
11682 (origin
11683 (method url-fetch)
11684 (uri (string-append "mirror://gnome/sources/" name "/"
11685 (version-major+minor version) "/"
11686 "glabels-" version ".tar.xz"))
11687 (sha256
11688 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11689 (build-system glib-or-gtk-build-system)
11690 (native-inputs
11691 `(("gettext" ,gettext-minimal)
11692 ("glib:bin" ,glib "bin")
11693 ("intltool" ,intltool)
11694 ("itstool" ,itstool)
11695 ("pkg-config" ,pkg-config)))
11696 (inputs
11697 `(("gtk+" ,gtk+)
11698 ("librsvg" ,librsvg)
11699 ("libxml2" ,libxml2)))
11700 (arguments
11701 `(#:configure-flags '("CFLAGS=-fcommon")))
11702 (home-page "https://glabels.org/")
11703 (synopsis "Program for creating labels and business cards")
11704 (description
11705 "gLabels is a program for creating labels and business cards. It is
11706 designed to work with various laser/ink-jet peel-off label and business
11707 card sheets that you’ll find at most office supply stores.")
11708 (license license:gpl3+)))
11709
11710 (define-public gnome-latex
11711 (package
11712 (name "gnome-latex")
11713 (version "3.38.0")
11714 (source
11715 (origin
11716 (method url-fetch)
11717 (uri (string-append "mirror://gnome/sources/" name "/"
11718 (version-major+minor version) "/"
11719 "gnome-latex-" version ".tar.xz"))
11720 (sha256
11721 (base32 "0xqd49pgi82dygqnxj08i1v22b0vwwhx3zvdinhrx4jny339yam8"))))
11722 (build-system glib-or-gtk-build-system)
11723 (native-inputs
11724 `(("gettext" ,gettext-minimal)
11725 ("glib:bin" ,glib "bin")
11726 ("gobject-introspection" ,gobject-introspection)
11727 ("gtk-doc" ,gtk-doc/stable)
11728 ("intltool" ,intltool)
11729 ("itstool" ,itstool)
11730 ("pkg-config" ,pkg-config)
11731 ("vala" ,vala)))
11732 (inputs
11733 `(("amtk" ,amtk)
11734 ("dconf" ,dconf)
11735 ("glib" ,glib)
11736 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11737 ("gspell" ,gspell)
11738 ("gtk+" ,gtk+)
11739 ("gtksourceview" ,gtksourceview)
11740 ("libgee" ,libgee)
11741 ("tepl" ,tepl-5)
11742 ("uchardet" ,uchardet)))
11743 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11744 (synopsis "LaTeX editor for the GNOME desktop")
11745 (description
11746 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11747 such as build tools, completion of LaTeX commands, structure navigation,
11748 symbol tables, document templates, project management, spell-checking, menus
11749 and toolbars.")
11750 (license license:gpl3+)))
11751
11752 (define-public setzer
11753 (package
11754 (name "setzer")
11755 (version "0.4.1")
11756 (source
11757 (origin
11758 (method git-fetch)
11759 (uri (git-reference
11760 (url "https://github.com/cvfosammmm/Setzer")
11761 (commit (string-append "v" version))))
11762 (file-name (git-file-name name version))
11763 (sha256
11764 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
11765 (build-system meson-build-system)
11766 (arguments
11767 `(#:glib-or-gtk? #t
11768 #:phases
11769 (modify-phases %standard-phases
11770 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11771 (lambda* (#:key outputs #:allow-other-keys)
11772 (let ((prog (string-append (assoc-ref outputs "out")
11773 "/bin/setzer"))
11774 (pylib (string-append (assoc-ref outputs "out")
11775 "/lib/python"
11776 ,(version-major+minor
11777 (package-version python))
11778 "/site-packages")))
11779 (wrap-program prog
11780 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11781 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11782 #t))))))
11783 (native-inputs
11784 `(("desktop-file-utils" ,desktop-file-utils)
11785 ("gettext" ,gettext-minimal)
11786 ("glib:bin" ,glib "bin")
11787 ("gobject-introspection" ,gobject-introspection)
11788 ("gtk+:bin" ,gtk+ "bin")))
11789 (inputs
11790 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11791 ("gspell" ,gspell)
11792 ("gtk+" ,gtk+)
11793 ("gtksourceview" ,gtksourceview)
11794 ("pango" ,pango)
11795 ("poppler" ,poppler)
11796 ("python-pdfminer" ,python-pdfminer-six)
11797 ("python-pycairo" ,python-pycairo)
11798 ("python-pygobject" ,python-pygobject)
11799 ("python-pyxdg" ,python-pyxdg)
11800 ("webkitgtk" ,webkitgtk)
11801 ("xdg-utils" ,xdg-utils)))
11802 (home-page "https://www.cvfosammmm.org/setzer/")
11803 (synopsis "LaTeX editor written in Python with GTK+")
11804 (description
11805 "Setzer is a simple yet full-featured LaTeX editor written in Python with
11806 GTK+. It integrates well with the GNOME desktop environment.")
11807 (license license:gpl3+)))
11808
11809 (define-public apostrophe
11810 (package
11811 (name "apostrophe")
11812 (version "2.5")
11813 (source (origin
11814 (method git-fetch)
11815 (uri (git-reference
11816 (url "https://gitlab.gnome.org/somas/apostrophe")
11817 (commit (string-append "v" version))))
11818 (file-name (git-file-name name version))
11819 (sha256
11820 (base32
11821 "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp"))))
11822 (build-system meson-build-system)
11823 (arguments
11824 `(#:glib-or-gtk? #t
11825 #:phases
11826 (modify-phases %standard-phases
11827 (add-after 'unpack 'patch-meson
11828 (lambda _
11829 (substitute* "build-aux/meson_post_install.py"
11830 (("gtk-update-icon-cache") "true"))
11831 #t))
11832 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11833 (lambda* (#:key inputs outputs #:allow-other-keys)
11834 (let ((prog (string-append (assoc-ref outputs "out")
11835 "/bin/apostrophe"))
11836 (pylib (string-append (assoc-ref outputs "out")
11837 "/lib/python"
11838 ,(version-major+minor
11839 (package-version python))
11840 "/site-packages")))
11841 (wrap-program prog
11842 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11843 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
11844 `("PATH" prefix (,(dirname
11845 (search-input-file inputs
11846 "/bin/pandoc")))))))))))
11847 (inputs
11848 `(("glib" ,glib)
11849 ("gobject-introspection" ,gobject-introspection)
11850 ("gspell" ,gspell)
11851 ("gtk+" ,gtk+)
11852 ("libhandy" ,libhandy)
11853 ("pandoc" ,pandoc)
11854 ("python-chardet" ,python-chardet)
11855 ("python-levenshtein" ,python-levenshtein)
11856 ("python-regex" ,python-regex)
11857 ("python-pycairo" ,python-pycairo)
11858 ("python-pygobject" ,python-pygobject)
11859 ("python-pyenchant" ,python-pyenchant)
11860 ("python-pypandoc" ,python-pypandoc)
11861 ("webkitgtk" ,webkitgtk)))
11862 (native-inputs
11863 `(("gettext" ,gettext-minimal)
11864 ("glib:bin" ,glib "bin")
11865 ("pkg-config" ,pkg-config)
11866 ("sassc" ,sassc)))
11867 (home-page "https://gitlab.gnome.org/somas/apostrophe")
11868 (synopsis "Markdown editor written in Python with GTK+")
11869 (description "Apostrophe is a GTK+ based distraction-free Markdown editor.
11870 It uses pandoc as back-end for parsing Markdown.")
11871 (license license:gpl3)))
11872
11873 (define-public libratbag
11874 (package
11875 (name "libratbag")
11876 (version "0.14")
11877 (source
11878 (origin
11879 (method git-fetch)
11880 (uri (git-reference
11881 (url "https://github.com/libratbag/libratbag")
11882 (commit (string-append "v" version))))
11883 (file-name (git-file-name name version))
11884 (sha256
11885 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11886 (build-system meson-build-system)
11887 (arguments
11888 `(#:configure-flags
11889 (list "-Dsystemd=false"
11890 "-Dlogind-provider=elogind")
11891 #:phases
11892 (modify-phases %standard-phases
11893 (add-after 'install 'wrap
11894 (lambda* (#:key inputs outputs #:allow-other-keys)
11895 (let* ((out (assoc-ref outputs "out"))
11896 (site (string-append
11897 "/lib/python"
11898 ,(version-major+minor (package-version python))
11899 "/site-packages"))
11900 (evdev (string-append
11901 (assoc-ref inputs "python-evdev") site))
11902 (pygo (string-append
11903 (assoc-ref inputs "python-pygobject") site))
11904 (python-wrap
11905 `("GUIX_PYTHONPATH" = (,evdev ,pygo))))
11906 (wrap-program (string-append out "/bin/" "ratbagctl")
11907 python-wrap)
11908 #t))))))
11909 (native-inputs
11910 `(("check" ,check)
11911 ("pkg-config" ,pkg-config)
11912 ("swig" ,swig)
11913 ("valgrind" ,valgrind)))
11914 (inputs
11915 `(("glib" ,glib)
11916 ("json-glib" ,json-glib)
11917 ("libevdev" ,libevdev)
11918 ("libsystemd" ,elogind)
11919 ("libunistring" ,libunistring)
11920 ("python-evdev" ,python-evdev)
11921 ("python-pygobject" ,python-pygobject)
11922 ("udev" ,eudev)))
11923 (home-page "https://github.com/libratbag/libratbag")
11924 (synopsis "DBus daemon and utility for configuring gaming mice")
11925 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11926 configure input devices, mainly gaming mice. The daemon provides a generic
11927 way to access the various features exposed by these mice and abstracts away
11928 hardware-specific and kernel-specific quirks. There is also the
11929 @command{ratbagctl} command line interface for configuring devices.
11930
11931 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11932 Steelseries.
11933
11934 The ratbagd DBus service can be enabled by adding the following service to
11935 your operating-system definition:
11936
11937 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11938 (license license:expat)))
11939
11940 (define-public piper
11941 (package
11942 (name "piper")
11943 (version "0.5.1")
11944 (source
11945 (origin
11946 (method git-fetch)
11947 (uri (git-reference
11948 (url "https://github.com/libratbag/piper")
11949 (commit version)))
11950 (sha256
11951 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11952 (file-name (git-file-name name version))))
11953 (build-system meson-build-system)
11954 (native-inputs
11955 `(("gettext" ,gettext-minimal)
11956 ("glib:bin" ,glib "bin")
11957 ("gobject-introspection" ,gobject-introspection)
11958 ("pkg-config" ,pkg-config)
11959 ("python-flake8" ,python-flake8)))
11960 (inputs
11961 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11962 ("gtk" ,gtk+)
11963 ("gtk:bin" ,gtk+ "bin")
11964 ("librsvg" ,librsvg)
11965 ("python-evdev" ,python-evdev)
11966 ("python-lxml" ,python-lxml)
11967 ("python-pycairo" ,python-pycairo)
11968 ("python-pygobject" ,python-pygobject)))
11969 (arguments
11970 `(#:imported-modules ((guix build python-build-system)
11971 ,@%meson-build-system-modules)
11972 #:modules (((guix build python-build-system) #:prefix python:)
11973 (guix build meson-build-system)
11974 (guix build utils))
11975 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11976 #:phases
11977 (modify-phases %standard-phases
11978 (add-after 'unpack 'dont-update-gtk-icon-cache
11979 (lambda _
11980 (substitute* "meson.build"
11981 (("meson.add_install_script('meson_install.sh')") ""))
11982 #t))
11983 ;; TODO: Switch to wrap-script when it is fixed.
11984 (add-after 'install 'wrap-python
11985 (assoc-ref python:%standard-phases 'wrap))
11986 (add-after 'wrap-python 'wrap
11987 (lambda* (#:key outputs #:allow-other-keys)
11988 (wrap-program
11989 (string-append (assoc-ref outputs "out" )"/bin/piper")
11990 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11991 #t)))))
11992 (home-page "https://github.com/libratbag/piper/")
11993 (synopsis "Configure bindings and LEDs on gaming mice")
11994 (description "Piper is a GTK+ application for configuring gaming mice with
11995 onboard configuration for key bindings via libratbag. Piper requires
11996 a @command{ratbagd} daemon running with root privileges. It can be run
11997 manually as root, but is preferably configured as a DBus service that can
11998 launch on demand. This can be configured by enabling the following service,
11999 provided there is a DBus service present:
12000
12001 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12002 (license license:gpl2)))
12003
12004 (define-public parlatype
12005 (package
12006 (name "parlatype")
12007 (version "2.1")
12008 (source
12009 (origin
12010 (method git-fetch)
12011 (uri (git-reference
12012 (url "https://github.com/gkarsay/parlatype")
12013 (commit (string-append "v" version))))
12014 (file-name (git-file-name name version))
12015 (sha256
12016 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
12017 (build-system meson-build-system)
12018 (arguments
12019 `(#:glib-or-gtk? #t
12020 #:tests? #f ;require internet access
12021 #:phases
12022 (modify-phases %standard-phases
12023 (add-after 'install 'wrap-parlatype
12024 ;; Add gstreamer plugin provided in this package to system's
12025 ;; plugins.
12026 (lambda* (#:key outputs #:allow-other-keys)
12027 (let* ((out (assoc-ref outputs "out"))
12028 (gst-plugin-path (string-append
12029 out "/lib/gstreamer-1.0/"
12030 ":"
12031 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
12032 (wrap-program (string-append out "/bin/parlatype")
12033 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
12034 #t)))))
12035 (native-inputs
12036 `(("appstream-glib" ,appstream-glib)
12037 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
12038 ("gettext" ,gettext-minimal)
12039 ("glib" ,glib "bin") ;for glib-compile-resources
12040 ("pkg-config" ,pkg-config)
12041 ("yelp-tools" ,yelp-tools)))
12042 (inputs
12043 `(("gst-plugins-base" ,gst-plugins-base)
12044 ("gst-plugins-good" ,gst-plugins-good)
12045 ("gstreamer" ,gstreamer)
12046 ("gtk+" ,gtk+)
12047 ("pocketsphinx" ,pocketsphinx)
12048 ("pulseaudio" ,pulseaudio)
12049 ("sphinxbase" ,sphinxbase)))
12050 (home-page "http://gkarsay.github.io/parlatype/")
12051 (synopsis "GNOME audio player for transcription")
12052 (description "Parlatype is an audio player for the GNOME desktop
12053 environment. Its main purpose is the manual transcription of spoken
12054 audio files.")
12055 (license license:gpl3+)))
12056
12057 (define-public jsonrpc-glib
12058 (package
12059 (name "jsonrpc-glib")
12060 (version "3.34.0")
12061 (source (origin
12062 (method url-fetch)
12063 (uri (string-append "mirror://gnome/sources/" name "/"
12064 (version-major+minor version) "/"
12065 name "-" version ".tar.xz"))
12066 (sha256
12067 (base32
12068 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
12069 (build-system meson-build-system)
12070 (inputs
12071 `(("json-glib" ,json-glib)
12072 ("glib" ,glib)))
12073 (native-inputs
12074 `(("pkg-config" ,pkg-config)
12075 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
12076 ("gobject-introspection" ,gobject-introspection)
12077 ("vala" ,vala)))
12078 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
12079 (synopsis "JSON-RPC library for GLib")
12080 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
12081 peers in either a synchronous or asynchronous fashion. It also allows
12082 communicating using the GVariant serialization format instead of JSON when
12083 both peers support it. You might want that when communicating on a single
12084 host to avoid parser overhead and memory-allocator fragmentation.")
12085 (license license:lgpl2.1+)))
12086
12087 (define-public feedbackd
12088 (package
12089 (name "feedbackd")
12090 (version "0.0.0+git20200527")
12091 (source (origin
12092 (method git-fetch)
12093 (uri (git-reference
12094 (url "https://source.puri.sm/Librem5/feedbackd.git")
12095 (commit (string-append "v" version))))
12096 (file-name (git-file-name name version))
12097 (sha256
12098 (base32
12099 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
12100 (build-system meson-build-system)
12101 (native-inputs
12102 `(("glib:bin" ,glib "bin")
12103 ("gobject-introspection" ,gobject-introspection)
12104 ("pkg-config" ,pkg-config)
12105 ("vala" ,vala)))
12106 (inputs
12107 `(("dbus" ,dbus)
12108 ("gsound" ,gsound)
12109 ("json-glib" ,json-glib)
12110 ("libgudev" ,libgudev)))
12111 (propagated-inputs
12112 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
12113 (synopsis "Haptic/visual/audio feedback via DBus")
12114 (description "Feedbackd provides a DBus daemon to act on events to provide
12115 haptic, visual and audio feedback. It offers the libfeedbackd library and
12116 GObject introspection bindings.")
12117 (home-page "https://source.puri.sm/Librem5/feedbackd")
12118 (license (list license:lgpl2.1+ ; libfeedbackd
12119 license:lgpl3+)))) ; the rest
12120
12121 (define-public sysprof
12122 (package
12123 (name "sysprof")
12124 (version "3.36.0")
12125 (source
12126 (origin
12127 (method url-fetch)
12128 (uri (string-append "mirror://gnome/sources/sysprof/"
12129 (version-major+minor version) "/"
12130 "sysprof-" version ".tar.xz"))
12131 (sha256
12132 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
12133 (build-system meson-build-system)
12134 (arguments
12135 `(#:configure-flags
12136 (list (string-append "-Dsystemdunitdir="
12137 %output
12138 "/share/systemd"))
12139 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
12140 #:phases
12141 (modify-phases %standard-phases
12142 (add-after 'unpack 'patch-install-script
12143 (lambda _
12144 (substitute* "build-aux/meson/post_install.sh"
12145 (("gtk-update-icon-cache") "true")
12146 (("update-desktop-database") "true"))
12147 #t)))))
12148 (inputs
12149 `(("glib" ,glib)
12150 ("gtk+" ,gtk+)
12151 ("libdazzle" ,libdazzle)
12152 ("polkit" ,polkit)))
12153 (native-inputs
12154 `(("gettext" ,gettext-minimal)
12155 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
12156 ("itstool" ,itstool)
12157 ("pkg-config" ,pkg-config)
12158 ("xmllint" ,libxml2)))
12159 ;; This home page is so woefully out of date as to be essentially useless.
12160 ;; (home-page "http://www.sysprof.com")
12161 (home-page "https://wiki.gnome.org/Apps/Sysprof")
12162 (synopsis "System-wide performance profiler for GNU/Linux")
12163 (description
12164 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
12165 GNU/Linux system including the kernel and all user-space applications. This
12166 helps find the function(s) in which a program spends most of its time.
12167
12168 It uses the kernel's built-in @code{ptrace} feature and handles shared
12169 libraries. Applications do not need to be recompiled--or even restarted.")
12170 (license license:gpl3+)))
12171
12172 (define-public gnome-builder
12173 (package
12174 (name "gnome-builder")
12175 (version "3.36.1")
12176 (source (origin
12177 (method url-fetch)
12178 (uri (string-append "mirror://gnome/sources/" name "/"
12179 (version-major+minor version) "/"
12180 name "-" version ".tar.xz"))
12181 (sha256
12182 (base32
12183 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
12184 (build-system meson-build-system)
12185 (arguments
12186 `(#:configure-flags (list "-Dnetwork_tests=false"
12187 ;; TODO: Enable all plugins...
12188 "-Dplugin_clang=false"
12189 "-Dplugin_flatpak=false"
12190 "-Dplugin_glade=false"
12191 ;; XXX: This one has been shown not to work in
12192 ;; <https://issues.guix.gnu.org/45272>
12193 "-Dplugin_jedi=false"
12194 ;; ... except this one.
12195 "-Dplugin_update_manager=false")
12196 #:phases
12197 (modify-phases %standard-phases
12198 (add-after 'unpack 'patch-meson
12199 (lambda* (#:key inputs #:allow-other-keys)
12200 (substitute* "build-aux/meson/post_install.py"
12201 (("gtk-update-icon-cache") "true")
12202 (("update-desktop-database") "true"))
12203 (substitute* "src/libide/meson.build"
12204 (("/usr/lib")
12205 (string-append (assoc-ref inputs "python-pygobject")
12206 "/lib")))
12207 #t))
12208 (add-after 'configure 'fix-ninja
12209 (lambda _
12210 ;; #43296: meson(?) incorrectly assumes we want to link
12211 ;; this PIE against a static libselinux.
12212 (substitute* "build.ninja"
12213 (("libselinux\\.a") "libselinux.so"))
12214 #t))
12215 (add-before 'check 'pre-check
12216 (lambda _
12217 (system "Xvfb :1 &")
12218 (setenv "DISPLAY" ":1")
12219 #t)))))
12220 (inputs
12221 `(("devhelp" ,devhelp)
12222 ("gspell" ,gspell)
12223 ("gtk+" ,gtk+)
12224 ("json-glib" ,json-glib)
12225 ("jsonrpc-glib" ,jsonrpc-glib)
12226 ("libdazzle" ,libdazzle)
12227 ("libgit2-glib" ,libgit2-glib)
12228 ("libpeas" ,libpeas)
12229 ("python-pygobject" ,python-pygobject)
12230 ("sysprof" ,sysprof)
12231 ("template-glib" ,template-glib)
12232 ("vte" ,vte)
12233 ("webkitgtk" ,webkitgtk)))
12234 (propagated-inputs
12235 `(("gtksourceview" ,gtksourceview))) ;needed for settings
12236 (native-inputs
12237 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
12238 ("glib:bin" ,glib "bin")
12239 ("gettext" ,gettext-minimal)
12240 ("pkg-config" ,pkg-config)
12241 ("vala" ,vala)
12242 ("xorg-server" ,xorg-server-for-tests)))
12243 (home-page "https://wiki.gnome.org/Apps/Builder")
12244 (synopsis "Toolsmith for GNOME-based applications")
12245 (description "Builder aims to be an integrated development
12246 environment (IDE) for writing GNOME-based software. It features fuzzy search,
12247 auto-completion, a mini code map, documentation browsing, Git integration, an
12248 integrated profiler via Sysprof, debugging support, and more.")
12249 (license license:gpl3+)))
12250
12251 (define-public komikku
12252 (package
12253 (name "komikku")
12254 (version "0.35.1")
12255 (source
12256 (origin
12257 (method git-fetch)
12258 (uri (git-reference
12259 (url "https://gitlab.com/valos/Komikku/")
12260 (commit (string-append "v" version))))
12261 (file-name (git-file-name name version))
12262 (sha256
12263 (base32
12264 "0975c55lmiwaqm0wj0ci91a90syjan3i99akrp0hl9m7r73jnfh9"))))
12265 (build-system meson-build-system)
12266 (arguments
12267 `(#:glib-or-gtk? #t
12268 #:phases
12269 (modify-phases %standard-phases
12270 (add-after 'unpack 'patch-sources
12271 (lambda _
12272 (substitute* "komikku/utils.py"
12273 (("from komikku\\.servers import get_servers_list")
12274 ;; code following that line should migrate old databases
12275 ;; but the line itself results in an import error
12276 "return data_dir_path"))))
12277 (add-after 'unpack 'skip-gtk-update-icon-cache
12278 (lambda _
12279 (substitute* "meson_post_install.py"
12280 (("gtk-update-icon-cache") (which "true")))
12281 #t))
12282 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12283 (lambda* (#:key outputs #:allow-other-keys)
12284 (let ((prog (string-append (assoc-ref outputs "out")
12285 "/bin/komikku")))
12286 (wrap-program prog
12287 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
12288 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12289 #t))))))
12290 (inputs
12291 `(("gtk+" ,gtk+)
12292 ("libhandy" ,libhandy)
12293 ("libnotify" ,libnotify)
12294 ("libsecret" ,libsecret)
12295 ("python-beautifulsoup4" ,python-beautifulsoup4)
12296 ("python-brotli" ,python-brotli)
12297 ("python-cloudscraper" ,python-cloudscraper)
12298 ("python-dateparser" ,python-dateparser)
12299 ("python-keyring" ,python-keyring)
12300 ("python-lxml" ,python-lxml)
12301 ("python-magic" ,python-magic)
12302 ("python-natsort" ,python-natsort)
12303 ("python-pillow" ,python-pillow)
12304 ("python-pure-protobuf" ,python-pure-protobuf)
12305 ("python-pycairo" ,python-pycairo)
12306 ("python-pygobject" ,python-pygobject)
12307 ("python-requests" ,python-requests)
12308 ("python-unidecode" ,python-unidecode)
12309 ("webkitgtk" ,webkitgtk)))
12310 (native-inputs
12311 `(("desktop-file-utils" ,desktop-file-utils)
12312 ("gettext" ,gettext-minimal)
12313 ("glib:bin" ,glib "bin")
12314 ("gobject-introspection" ,gobject-introspection)
12315 ("pkg-config" ,pkg-config)))
12316 (home-page "https://gitlab.com/valos/Komikku")
12317 (synopsis "Manga reader for GNOME")
12318 (description "Komikku is an online/offline manga reader for GNOME,
12319 developed with the aim of being used with the Librem 5 phone.")
12320 (license license:gpl3+)))
12321
12322 (define-public libgda
12323 (package
12324 (name "libgda")
12325 (version "5.2.10")
12326 (source
12327 (origin
12328 (method git-fetch)
12329 (uri (git-reference
12330 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
12331 (commit (string-append "LIBGDA_" (string-replace-substring
12332 version "." "_")))))
12333 (file-name (git-file-name name version))
12334 (sha256
12335 (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
12336 (build-system gnu-build-system)
12337 (arguments
12338 `(#:configure-flags '("--enable-vala")
12339 ;; There's a race between check_cnc_lock and check_threaded_cnc
12340 ;; in tests/multi-threading.
12341 #:parallel-tests? #f
12342 #:phases
12343 (modify-phases %standard-phases
12344 (add-after 'unpack 'fix-glade-install
12345 (lambda _
12346 (substitute* "configure.ac"
12347 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
12348 "${datadir}/glade/catalogs")
12349 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
12350 "${datadir}/glade/pixmaps"))
12351 #t))
12352 (add-before 'check 'pre-check
12353 (lambda* (#:key inputs #:allow-other-keys)
12354 ;; Tests require a running X server.
12355 (system "Xvfb :1 &")
12356 (setenv "DISPLAY" ":1")
12357 #t))
12358 (add-after 'install 'symlink-glade-module
12359 (lambda* (#:key outputs #:allow-other-keys)
12360 (let* ((shlib "libgda-ui-5.0.so")
12361 (out (assoc-ref outputs "out"))
12362 (out/lib (string-append out "/lib"))
12363 (moduledir (string-append out/lib "/glade/modules")))
12364 (mkdir-p moduledir)
12365 (symlink (string-append out/lib "/" shlib)
12366 (string-append moduledir "/" shlib))
12367 #t))))))
12368 (propagated-inputs
12369 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
12370 (inputs
12371 `(("glib" ,glib)
12372 ("glade" ,glade3)
12373 ("gtk+" ,gtk+)
12374 ("libsecret" ,libsecret)
12375 ("libxslt" ,libxslt)
12376 ("openssl" ,openssl)
12377 ("vala" ,vala)))
12378 (native-inputs
12379 `(("autoconf" ,autoconf)
12380 ("autoconf-archive" ,autoconf-archive)
12381 ("automake" ,automake)
12382 ("glib:bin" ,glib "bin")
12383 ("gnome-common" ,gnome-common)
12384 ("gobject-introspection" ,gobject-introspection)
12385 ("gtk-doc" ,gtk-doc/stable)
12386 ("intltool" ,intltool)
12387 ("libtool" ,libtool)
12388 ("pkg-config" ,pkg-config)
12389 ("vala" ,vala)
12390 ("which" ,which)
12391 ("xorg-server" ,xorg-server-for-tests)
12392 ("yelp-tools" ,yelp-tools)))
12393 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12394 (synopsis "Uniform data access")
12395 (description
12396 "GNU Data Access (GDA) is an attempt to provide uniform access to
12397 different kinds of data sources (databases, information servers, mail spools,
12398 etc). It is a complete architecture that provides all you need to access
12399 your data.")
12400 (license license:lgpl2.1+)))
12401
12402 (define-public gtranslator
12403 (package
12404 (name "gtranslator")
12405 (version "3.36.0")
12406 (source (origin
12407 (method url-fetch)
12408 (uri (string-append "mirror://gnome/sources/" name "/"
12409 (version-major+minor version) "/"
12410 name "-" version ".tar.xz"))
12411 (sha256
12412 (base32
12413 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
12414 (build-system meson-build-system)
12415 (inputs
12416 `(("json-glib" ,json-glib)
12417 ("jsonrpc-glib" ,jsonrpc-glib)
12418 ("gettext" ,gettext-minimal)
12419 ("glib" ,glib)
12420 ("gtk+" ,gtk+)
12421 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12422 ("gspell" ,gspell)
12423 ("libdazzle" ,libdazzle)
12424 ("libgda" ,libgda)
12425 ("libsoup" ,libsoup)))
12426 (native-inputs
12427 `(("glib:bin" ,glib "bin")
12428 ("itstool" ,itstool)
12429 ("pkg-config" ,pkg-config)))
12430 (propagated-inputs
12431 `(("gtksourceview" ,gtksourceview))) ; required for source view
12432 (arguments
12433 `(#:build-type "release"
12434 #:glib-or-gtk? #t
12435 #:phases
12436 (modify-phases %standard-phases
12437 (add-after 'unpack 'skip-gtk-update-icon-cache
12438 (lambda _
12439 (substitute* "build-aux/meson/meson_post_install.py"
12440 (("gtk-update-icon-cache") (which "true")))
12441 #t)))))
12442 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12443 (synopsis "Translation making program")
12444 (description
12445 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12446 for the GNOME 3.x platform with many features. It aims to be a very complete
12447 editing environment for translation issues within the GNU gettext/GNOME desktop
12448 world.")
12449 (license license:gpl3+)))
12450
12451
12452 (define-public ocrfeeder
12453 (package
12454 (name "ocrfeeder")
12455 (version "0.8.3")
12456 (source (origin
12457 (method url-fetch)
12458 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12459 (version-major+minor version) "/"
12460 "ocrfeeder-" version ".tar.xz"))
12461 (sha256
12462 (base32
12463 "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529"))))
12464 (build-system gnu-build-system)
12465 (arguments
12466 `(#:phases
12467 (modify-phases %standard-phases
12468 (add-after
12469 'install 'wrap-program
12470 (lambda* (#:key outputs #:allow-other-keys)
12471 (let ((prog (string-append (assoc-ref outputs "out")
12472 "/bin/" "ocrfeeder"))
12473 (pylib (string-append (assoc-ref outputs "out")
12474 "/lib/python"
12475 ,(version-major+minor
12476 (package-version python))
12477 "/site-packages")))
12478 (wrap-program prog
12479 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12480 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12481 #t))))))
12482 (native-inputs
12483 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12484 ("gobject-introspection" ,gobject-introspection)
12485 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12486 ("intltool" ,intltool)
12487 ("itstool" ,itstool)
12488 ("pkg-config" ,pkg-config)
12489 ("xmllint" ,libxml2)))
12490 (inputs
12491 `(("enchant" ,enchant)
12492 ("glib" ,glib)
12493 ("goocanvas" ,goocanvas)
12494 ("gtk" ,gtk+)
12495 ("gtkspell3" ,gtkspell3)
12496 ("libjpeg" ,libjpeg-turbo)
12497 ("libtiff" ,libtiff)
12498 ("libraw" ,libraw)
12499 ("ocrad" ,ocrad)
12500 ("python" ,python-wrapper)
12501 ("python-pygobject" ,python-pygobject)
12502 ("python-odfpy" ,python-odfpy)
12503 ("python-pillow" ,python-pillow)
12504 ("python-pyenchant" ,python-pyenchant)
12505 ("python-reportlab" ,python-reportlab)
12506 ("python-sane" ,python-sane)
12507 ("sane-backends" ,sane-backends)
12508 ("tesseract-ocr" ,tesseract-ocr)))
12509 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12510 (synopsis "Complete OCR Suite")
12511 (description "OCRFeeder is a complete Optical Character Recognition and
12512 Document Analysis and Recognition program.")
12513 (license license:gpl3+)))
12514
12515 (define-public libadwaita
12516 (let ((commit "8d66b987a19979d9d7b85dacc6bad5ce0c8743fe")
12517 (revision "1"))
12518 (package
12519 (name "libadwaita")
12520 (version (git-version "0.0.1" revision commit))
12521 (source (origin
12522 (method git-fetch)
12523 (uri (git-reference
12524 (url "https://gitlab.gnome.org/GNOME/libadwaita.git")
12525 (commit commit)))
12526 (file-name (git-file-name name version))
12527 (sha256
12528 (base32
12529 "0i3wav6jsyi4w4i2r1rad769m5y5s9djj4zqb7dfyh0bad24ba3q"))))
12530 (build-system meson-build-system)
12531 (arguments
12532 `(#:phases
12533 (modify-phases %standard-phases
12534 (add-before 'check 'pre-check
12535 (lambda* (#:key inputs #:allow-other-keys)
12536 ;; Tests require a running X server.
12537 (system "Xvfb :1 &")
12538 (setenv "DISPLAY" ":1"))))))
12539 (native-inputs
12540 `(("sassc" ,sassc)
12541 ("glib:bin" ,glib "bin")
12542 ("gtk-doc" ,gtk-doc/stable)
12543 ("pkg-config" ,pkg-config)
12544 ("vala" ,vala)
12545 ("xvfb" ,xorg-server-for-tests)))
12546 (inputs
12547 `(("gtk" ,gtk)
12548 ("gobject-introspection" ,gobject-introspection)
12549 ("libportal" ,libportal)))
12550 (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
12551 (synopsis "Building blocks for GNOME applications")
12552 (description
12553 "@code(libadwaita) offers widgets and objects to build GNOME
12554 applications scaling from desktop workstations to mobile phones. It is the
12555 successor of @code{libhandy} for GTK4.")
12556 (license license:lgpl2.1+))))
12557
12558 (define-public gnome-power-manager
12559 (package
12560 (name "gnome-power-manager")
12561 (version "3.32.0")
12562 (source (origin
12563 (method url-fetch)
12564 (uri (string-append "mirror://gnome/sources/" name "/"
12565 (version-major+minor version) "/"
12566 name "-" version ".tar.xz"))
12567 (sha256
12568 (base32
12569 "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g"))))
12570 (build-system meson-build-system)
12571 (inputs
12572 `(("upower" ,upower)
12573 ("gtk+" ,gtk+)
12574 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12575 ("adwaita-icon-theme" ,adwaita-icon-theme)))
12576 (native-inputs
12577 `(("desktop-file-utils" ,desktop-file-utils)
12578 ("glib:bin" ,glib "bin")
12579 ("gettext" ,gettext-minimal)
12580 ("pkg-config" ,pkg-config)))
12581 (home-page "https://gitlab.gnome.org/GNOME/gnome-power-manager")
12582 (synopsis "Power management daemon for the GNOME desktop")
12583 (description "@code{gnome-power-manager} is a tool for viewing present and
12584 historical battery usage and related statistics.")
12585 (license license:gpl2)))