gnu: komikku: Update to 0.29.2.
[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 Leo Prikler <leo.prikler@student.tugraz.at>
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 ;;;
64 ;;; This file is part of GNU Guix.
65 ;;;
66 ;;; GNU Guix is free software; you can redistribute it and/or modify it
67 ;;; under the terms of the GNU General Public License as published by
68 ;;; the Free Software Foundation; either version 3 of the License, or (at
69 ;;; your option) any later version.
70 ;;;
71 ;;; GNU Guix is distributed in the hope that it will be useful, but
72 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
73 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
74 ;;; GNU General Public License for more details.
75 ;;;
76 ;;; You should have received a copy of the GNU General Public License
77 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
78
79 (define-module (gnu packages gnome)
80 #:use-module (gnu packages)
81 #:use-module (gnu packages admin)
82 #:use-module (gnu packages aidc)
83 #:use-module (gnu packages aspell)
84 #:use-module (gnu packages autotools)
85 #:use-module (gnu packages avahi)
86 #:use-module (gnu packages backup)
87 #:use-module (gnu packages base)
88 #:use-module (gnu packages bash)
89 #:use-module (gnu packages bison)
90 #:use-module (gnu packages boost)
91 #:use-module (gnu packages build-tools)
92 #:use-module (gnu packages calendar)
93 #:use-module (gnu packages cdrom)
94 #:use-module (gnu packages check)
95 #:use-module (gnu packages cmake)
96 #:use-module (gnu packages compression)
97 #:use-module (gnu packages crates-io)
98 #:use-module (gnu packages crates-graphics)
99 #:use-module (gnu packages crates-gtk)
100 #:use-module (gnu packages cups)
101 #:use-module (gnu packages curl)
102 #:use-module (gnu packages cyrus-sasl)
103 #:use-module (gnu packages databases)
104 #:use-module (gnu packages dbm)
105 #:use-module (gnu packages djvu)
106 #:use-module (gnu packages dns)
107 #:use-module (gnu packages docbook)
108 #:use-module (gnu packages documentation)
109 #:use-module (gnu packages enchant)
110 #:use-module (gnu packages flex)
111 #:use-module (gnu packages fonts)
112 #:use-module (gnu packages file-systems)
113 #:use-module (gnu packages fontutils)
114 #:use-module (gnu packages freedesktop)
115 #:use-module (gnu packages game-development)
116 #:use-module (gnu packages gcc)
117 #:use-module (gnu packages gettext)
118 #:use-module (gnu packages ghostscript)
119 #:use-module (gnu packages gimp)
120 #:use-module (gnu packages gl)
121 #:use-module (gnu packages glib)
122 #:use-module (gnu packages gnupg)
123 #:use-module (gnu packages gnuzilla)
124 #:use-module (gnu packages geo)
125 #:use-module (gnu packages gperf)
126 #:use-module (gnu packages graphviz)
127 #:use-module (gnu packages gstreamer)
128 #:use-module (gnu packages gtk)
129 #:use-module (gnu packages guile)
130 #:use-module (gnu packages ibus)
131 #:use-module (gnu packages icu4c)
132 #:use-module (gnu packages image)
133 #:use-module (gnu packages imagemagick)
134 #:use-module (gnu packages inkscape)
135 #:use-module (gnu packages iso-codes)
136 #:use-module (gnu packages kerberos)
137 #:use-module (gnu packages libcanberra)
138 #:use-module (gnu packages libffi)
139 #:use-module (gnu packages libunistring)
140 #:use-module (gnu packages libunwind)
141 #:use-module (gnu packages libusb)
142 #:use-module (gnu packages linux)
143 #:use-module (gnu packages lirc)
144 #:use-module (gnu packages lua)
145 #:use-module (gnu packages mail)
146 #:use-module (gnu packages mp3)
147 #:use-module (gnu packages multiprecision)
148 #:use-module (gnu packages music)
149 #:use-module (gnu packages ncurses)
150 #:use-module (gnu packages nettle)
151 #:use-module (gnu packages networking)
152 #:use-module (gnu packages ninja)
153 #:use-module (gnu packages node)
154 #:use-module (gnu packages nss)
155 #:use-module (gnu packages ocr)
156 #:use-module (gnu packages openldap)
157 #:use-module (gnu packages package-management)
158 #:use-module (gnu packages password-utils)
159 #:use-module (gnu packages pcre)
160 #:use-module (gnu packages pdf)
161 #:use-module (gnu packages perl)
162 #:use-module (gnu packages photo)
163 #:use-module (gnu packages php)
164 #:use-module (gnu packages pkg-config)
165 #:use-module (gnu packages polkit)
166 #:use-module (gnu packages popt)
167 #:use-module (gnu packages pretty-print)
168 #:use-module (gnu packages protobuf)
169 #:use-module (gnu packages pulseaudio)
170 #:use-module (gnu packages python)
171 #:use-module (gnu packages python-compression)
172 #:use-module (gnu packages python-crypto)
173 #:use-module (gnu packages python-web)
174 #:use-module (gnu packages python-xyz)
175 #:use-module (gnu packages rdesktop)
176 #:use-module (gnu packages rdf)
177 #:use-module (gnu packages readline)
178 #:use-module (gnu packages ruby)
179 #:use-module (gnu packages rust)
180 #:use-module (gnu packages samba)
181 #:use-module (gnu packages scanner)
182 #:use-module (gnu packages sdl)
183 #:use-module (gnu packages search)
184 #:use-module (gnu packages selinux)
185 #:use-module (gnu packages slang)
186 #:use-module (gnu packages speech)
187 #:use-module (gnu packages spice)
188 #:use-module (gnu packages sqlite)
189 #:use-module (gnu packages ssh)
190 #:use-module (gnu packages swig)
191 #:use-module (gnu packages tex)
192 #:use-module (gnu packages time)
193 #:use-module (gnu packages tls)
194 #:use-module (gnu packages valgrind)
195 #:use-module (gnu packages version-control)
196 #:use-module (gnu packages video)
197 #:use-module (gnu packages virtualization)
198 #:use-module (gnu packages vpn)
199 #:use-module (gnu packages web)
200 #:use-module (gnu packages webkit)
201 #:use-module (gnu packages xdisorg)
202 #:use-module (gnu packages xiph)
203 #:use-module (gnu packages xml)
204 #:use-module (gnu packages xorg)
205 #:use-module (gnu artwork)
206 #:use-module (guix build-system cargo)
207 #:use-module (guix build-system cmake)
208 #:use-module (guix build-system glib-or-gtk)
209 #:use-module (guix build-system gnu)
210 #:use-module (guix build-system meson)
211 #:use-module (guix build-system python)
212 #:use-module (guix build-system trivial)
213 #:use-module (guix download)
214 #:use-module (guix git-download)
215 #:use-module ((guix licenses) #:prefix license:)
216 #:use-module (guix packages)
217 #:use-module (guix utils)
218 #:use-module (guix gexp)
219 #:use-module (ice-9 match)
220 #:use-module (srfi srfi-1))
221
222 (define-public gupnp-igd
223 (package
224 (name "gupnp-igd")
225 (version "1.2.0")
226 (source
227 (origin
228 (method url-fetch)
229 (uri
230 (string-append "mirror://gnome/sources/" name "/"
231 (version-major+minor version) "/"
232 name "-" version ".tar.xz"))
233 (sha256
234 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
235 (build-system meson-build-system)
236 (outputs '("out" "doc"))
237 (arguments
238 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
239 #:configure-flags (list "-Dgtk_doc=true")
240 #:phases
241 (modify-phases %standard-phases
242 (add-after 'unpack 'patch-docbook-xml
243 (lambda* (#:key inputs #:allow-other-keys)
244 (with-directory-excursion "doc"
245 (substitute* "gupnp-igd-docs.xml"
246 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
247 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
248 "/xml/dtd/docbook/"))))
249 #t))
250 (add-after 'install 'move-doc
251 (lambda* (#:key outputs #:allow-other-keys)
252 (let* ((out (assoc-ref outputs "out"))
253 (doc (assoc-ref outputs "doc")))
254 (mkdir-p (string-append doc "/share"))
255 (rename-file
256 (string-append out "/share/gtk-doc")
257 (string-append doc "/share/gtk-doc"))
258 #t))))))
259 (native-inputs
260 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
261 ("docbook-xsl" ,docbook-xsl)
262 ("glib:bin" ,glib "bin")
263 ("gobject-introspection" ,gobject-introspection)
264 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
265 ("gtk-doc" ,gtk-doc/stable)
266 ("pkg-config" ,pkg-config)))
267 (propagated-inputs
268 `(("glib" ,glib)
269 ("glib-networking" ,glib-networking)
270 ("gssdp" ,gssdp)
271 ("gupnp" ,gupnp)
272 ("libsoup" ,libsoup)))
273 (synopsis "UPnP IGD for GNOME")
274 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
275 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
276 (license license:lgpl2.1+)))
277
278 (define-public brasero
279 (package
280 (name "brasero")
281 (version "3.12.2")
282 (source (origin
283 (method url-fetch)
284 (uri (string-append "mirror://gnome/sources/brasero/"
285 (version-major+minor version) "/"
286 "brasero-" version ".tar.xz"))
287 (sha256
288 (base32
289 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
290 (build-system glib-or-gtk-build-system)
291 (arguments
292 `(#:configure-flags (list
293 (string-append "--with-girdir="
294 (assoc-ref %outputs "out")
295 "/share/gir-1.0")
296 (string-append "--with-typelibdir="
297 (assoc-ref %outputs "out")
298 "/lib/girepository-1.0"))
299 #:phases
300 (modify-phases %standard-phases
301 (add-before 'configure 'embed-growisofs
302 (lambda* (#:key inputs #:allow-other-keys)
303 (substitute* "plugins/growisofs/burn-growisofs.c"
304 (("\"growisofs") (string-append "\"" (which "growisofs"))))
305 #t)))))
306 (propagated-inputs
307 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
308 (native-inputs
309 `(("intltool" ,intltool)
310 ("itstool" ,itstool)
311 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
312 ("gobject-introspection" ,gobject-introspection)
313 ("pkg-config" ,pkg-config)))
314 (inputs
315 `(("dvd+rw-tools" ,dvd+rw-tools)
316 ("glib" ,glib)
317 ("gnome-doc-utils" ,gnome-doc-utils)
318 ("gstreamer" ,gstreamer)
319 ("gst-plugins-base" ,gst-plugins-base)
320 ("gtk+" ,gtk+)
321 ("libcanberra" ,libcanberra)
322 ("libice" ,libice)
323 ("libnotify" ,libnotify)
324 ("libsm" ,libsm)
325 ("libxml2" ,libxml2)
326 ("totem-pl-parser" ,totem-pl-parser)))
327 (home-page "https://wiki.gnome.org/Apps/Brasero")
328 (synopsis "CD/DVD burning tool for Gnome")
329 (description "Brasero is an application to burn CD/DVD for the Gnome
330 Desktop. It is designed to be as simple as possible and has some unique
331 features to enable users to create their discs easily and quickly.")
332 (license license:gpl2+)))
333
334 (define-public libcloudproviders
335 (package
336 (name "libcloudproviders")
337 (version "0.3.1")
338 (source
339 (origin
340 (method url-fetch)
341 (uri
342 (string-append "mirror://gnome/sources/" name "/"
343 (version-major+minor version) "/"
344 name "-" version ".tar.xz"))
345 (sha256
346 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
347 (build-system meson-build-system)
348 (outputs '("out" "doc"))
349 (arguments
350 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
351 #:configure-flags
352 (list
353 "-Denable-gtk-doc=true")
354 #:phases
355 (modify-phases %standard-phases
356 (add-after 'install 'move-doc
357 (lambda* (#:key outputs #:allow-other-keys)
358 (let* ((out (assoc-ref outputs "out"))
359 (doc (assoc-ref outputs "doc")))
360 (mkdir-p (string-append doc "/share"))
361 (rename-file
362 (string-append out "/share/gtk-doc")
363 (string-append doc "/share/gtk-doc"))
364 #t))))))
365 (native-inputs
366 `(("glib:bin" ,glib "bin")
367 ("gobject-introspection" ,gobject-introspection)
368 ("gtk-doc" ,gtk-doc/stable)
369 ("pkg-config" ,pkg-config)
370 ("vala" ,vala)))
371 (inputs
372 `(("glib" ,glib)
373 ("glib-networking" ,glib-networking)))
374 (synopsis "Cloudproviders Integration API")
375 (description "Libcloudproviders is a DBus API that allows cloud storage sync
376 clients to expose their services. Clients such as file managers and desktop
377 environments can then provide integrated access to the cloud providers
378 services.")
379 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
380 (license license:lgpl3+)))
381
382 (define-public libgrss
383 (package
384 (name "libgrss")
385 (version "0.7.0")
386 (source
387 (origin
388 (method url-fetch)
389 (uri
390 (string-append "mirror://gnome/sources/" name "/"
391 (version-major+minor version) "/"
392 name "-" version ".tar.xz"))
393 (sha256
394 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
395 (build-system glib-or-gtk-build-system)
396 (outputs '("out" "doc"))
397 (arguments
398 `(#:configure-flags
399 (list
400 "--enable-gtk-doc"
401 (string-append "--with-html-dir="
402 (assoc-ref %outputs "doc")
403 "/share/gtk-doc/html"))
404 #:phases
405 (modify-phases %standard-phases
406 (add-after 'unpack 'patch-docbook-xml
407 (lambda* (#:key inputs #:allow-other-keys)
408 (with-directory-excursion "doc/reference"
409 (substitute* "libgrss-docs.sgml"
410 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
411 (string-append (assoc-ref inputs "docbook-xml")
412 "/xml/dtd/docbook/"))))
413 #t)))))
414 (native-inputs
415 `(("docbook-xml" ,docbook-xml-4.1.2)
416 ("gobject-introspection" ,gobject-introspection)
417 ("gtk-doc" ,gtk-doc/stable)
418 ("pkg-config" ,pkg-config)))
419 (propagated-inputs
420 `(("glib" ,glib)
421 ("libsoup" ,libsoup)
422 ("libxml2" ,libxml2)))
423 (synopsis "Glib library for feeds")
424 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
425 and other formats.")
426 (home-page "https://wiki.gnome.org/Projects/Libgrss")
427 (license license:lgpl3+)))
428
429 (define-public gnome-js-common
430 (package
431 (name "gnome-js-common")
432 (version "0.1.2")
433 (source
434 (origin
435 (method url-fetch)
436 (uri
437 (string-append "mirror://gnome/sources/" name "/"
438 (version-major+minor version) "/"
439 name "-" version ".tar.gz"))
440 (sha256
441 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
442 (build-system glib-or-gtk-build-system)
443 (arguments
444 `(#:configure-flags
445 (list
446 "--disable-static")))
447 (native-inputs
448 `(("gettext" ,gettext-minimal)
449 ("intltool" ,intltool)
450 ("pkg-config" ,pkg-config)))
451 (synopsis "Common JS Modules")
452 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
453 bindings.")
454 (home-page "https://wiki.gnome.org/Projects/Seed")
455 (license license:gpl3+)))
456
457 (define-public seed
458 (package
459 (name "seed")
460 (version "3.8.1")
461 (source
462 (origin
463 (method url-fetch)
464 (uri
465 (string-append "mirror://gnome/sources/" name "/"
466 (version-major+minor version) "/"
467 name "-" version ".tar.xz"))
468 (sha256
469 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
470 (patches
471 (search-patches "seed-webkit.patch"))))
472 (build-system glib-or-gtk-build-system)
473 (outputs '("out" "doc"))
474 (arguments
475 `(#:configure-flags
476 (list
477 "--disable-static"
478 "--enable-xorg-module"
479 (string-append "--with-html-dir="
480 (assoc-ref %outputs "doc")
481 "/share/gtk-doc/html")
482 "--with-webkit=4.0")
483 #:phases
484 (modify-phases %standard-phases
485 ;; The seed-webkit.patch patches configure.ac.
486 ;; So the source files need to be re-bootstrapped.
487 (add-after 'unpack 'trigger-bootstrap
488 (lambda _
489 (for-each delete-file
490 (list
491 "configure"
492 "Makefile.in"))
493 #t))
494 (add-after 'unpack 'patch-tests
495 (lambda* (#:key outputs #:allow-other-keys)
496 (substitute* (find-files "." "\\.js$")
497 (("#!/usr/bin/env seed")
498 (string-append "#!" (getcwd) "/src/seed")))
499 #t))
500 (add-before 'build 'patch-docbook-xml
501 (lambda* (#:key inputs #:allow-other-keys)
502 (with-directory-excursion "doc"
503 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
504 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
505 (string-append (assoc-ref inputs "docbook-xml")
506 "/xml/dtd/docbook/"))))
507 #t)))))
508 (native-inputs
509 `(("autoconf" ,autoconf)
510 ("automake" ,automake)
511 ("docbook-xml" ,docbook-xml-4.1.2)
512 ("gettext" ,gettext-minimal)
513 ("gobject-introspection" ,gobject-introspection)
514 ("gtk-doc" ,gtk-doc/stable)
515 ("intltool" ,intltool)
516 ("libtool" ,libtool)
517 ("pkg-config" ,pkg-config)))
518 (inputs
519 `(("cairo" ,cairo)
520 ("dbus" ,dbus)
521 ("dbus-glib" ,dbus-glib)
522 ("gnome-js-common" ,gnome-js-common)
523 ("gtk+" ,gtk+)
524 ("gtk+-2" ,gtk+-2)
525 ("libffi" ,libffi)
526 ("libxml2" ,libxml2)
527 ("mpfr" ,mpfr)
528 ("readline" ,readline)
529 ("sqlite" ,sqlite)
530 ("xscrnsaver" ,libxscrnsaver)))
531 (propagated-inputs
532 `(("glib" ,glib)
533 ("webkit" ,webkitgtk)))
534 (synopsis "GObject JavaScriptCore bridge")
535 (description "Seed is a library and interpreter, dynamically bridging
536 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
537 GNOME platform. It serves as something which enables you to write standalone
538 applications in JavaScript, or easily enable your application to be extensible
539 in JavaScript.")
540 (home-page "https://wiki.gnome.org/Projects/Seed")
541 (license license:lgpl2.0+)))
542
543 (define-public libdmapsharing
544 (package
545 (name "libdmapsharing")
546 (version "3.9.10")
547 (source
548 (origin
549 (method url-fetch)
550 (uri
551 (string-append "https://www.flyn.org/projects/"
552 name "/" name "-" version ".tar.gz"))
553 (sha256
554 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
555 (build-system glib-or-gtk-build-system)
556 (outputs '("out" "doc"))
557 (arguments
558 `(#:tests? #f ; Tests require networking.
559 #:configure-flags
560 (list
561 "--disable-static"
562 (string-append "--with-html-dir="
563 (assoc-ref %outputs "doc")
564 "/share/gtk-doc/html"))
565 #:phases
566 (modify-phases %standard-phases
567 (add-after 'unpack 'patch-docbook-xml
568 (lambda* (#:key inputs #:allow-other-keys)
569 (with-directory-excursion "doc"
570 (substitute* "libdmapsharing-4.0-docs.xml"
571 (("http://www.oasis-open.org/docbook/xml/4.3/")
572 (string-append (assoc-ref inputs "docbook-xml")
573 "/xml/dtd/docbook/"))))
574 #t)))))
575 (native-inputs
576 `(("check" ,check)
577 ("docbook-xml" ,docbook-xml-4.3)
578 ("gobject-introspection" ,gobject-introspection)
579 ("pedansee" ,pedansee)
580 ("pkg-config" ,pkg-config)
581 ("vala" ,vala)))
582 (inputs
583 `(("avahi" ,avahi)
584 ("gdk-pixbuf" ,gdk-pixbuf+svg)
585 ("gee" ,libgee)
586 ("gst-plugins-base" ,gst-plugins-base)
587 ("gtk+" ,gtk+)))
588 (propagated-inputs
589 `(("glib" ,glib)
590 ("glib-networking" ,glib-networking)
591 ("gstreamer" ,gstreamer)
592 ("libsoup" ,libsoup)))
593 (synopsis "Media management library")
594 (description "Libdmapsharing is a library which allows programs to access,
595 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
596 It is written in C using GObject and libsoup.")
597 (home-page "https://launchpad.net/gtx")
598 (license license:lgpl2.1+)))
599
600 (define-public gtx
601 (package
602 (name "gtx")
603 (version "0.2.2")
604 (source
605 (origin
606 (method url-fetch)
607 (uri
608 (string-append "https://launchpad.net/gtx/trunk/"
609 version "/+download/gtx-" version ".tar.gz"))
610 (sha256
611 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
612 (build-system glib-or-gtk-build-system)
613 (outputs '("out" "doc"))
614 (arguments
615 `(#:configure-flags
616 (list
617 "--disable-static"
618 "--enable-gtk-doc"
619 (string-append "--with-html-dir="
620 (assoc-ref %outputs "doc")
621 "/share/gtk-doc/html"))))
622 (native-inputs
623 `(("gobject-introspection" ,gobject-introspection)
624 ("gtk-doc" ,gtk-doc/stable)
625 ("pkg-config" ,pkg-config)))
626 (propagated-inputs
627 `(("glib" ,glib)))
628 (synopsis "GLib Testing Framework")
629 (description "GTX is a small collection of convenience functions intended to
630 enhance the GLib testing framework. With specific emphasis on easing the pain
631 of writing test cases for asynchronous interactions.")
632 (home-page "https://launchpad.net/gtx")
633 (license license:lgpl2.1+)))
634
635 (define-public dee
636 (package
637 (name "dee")
638 (version "1.2.7")
639 (source
640 (origin
641 (method url-fetch)
642 (uri
643 (string-append "https://launchpad.net/dee/1.0/"
644 version "/+download/dee-" version ".tar.gz"))
645 (sha256
646 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
647 (patches
648 (search-patches "dee-vapi.patch"))))
649 (build-system glib-or-gtk-build-system)
650 (outputs '("out" "doc"))
651 (arguments
652 `(#:configure-flags
653 (list
654 "--disable-maintainer-flags"
655 (string-append "--with-pygi-overrides-dir="
656 (assoc-ref %outputs "out")
657 "/lib/python"
658 ,(version-major+minor
659 (package-version python))
660 "/site-packages/gi/overrides")
661 (string-append "--with-html-dir="
662 (assoc-ref %outputs "doc")
663 "/share/gtk-doc/html"))
664 #:phases
665 (modify-phases %standard-phases
666 (add-after 'unpack 'patch-docbook-xml
667 (lambda* (#:key inputs #:allow-other-keys)
668 (with-directory-excursion "doc/reference/dee-1.0"
669 (substitute* "dee-1.0-docs.sgml"
670 (("http://www.oasis-open.org/docbook/xml/4.3/")
671 (string-append (assoc-ref inputs "docbook-xml")
672 "/xml/dtd/docbook/"))))
673 #t))
674 (add-after 'patch-docbook-xml 'disable-failing-tests
675 (lambda _
676 (substitute* "tests/test-icu.c"
677 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
678 "")
679 (("setup, test_ascii_folder, teardown\\);")
680 ""))
681 #t))
682 (add-before 'check 'pre-check
683 (lambda _
684 ;; Tests require a running dbus-daemon.
685 (system "dbus-daemon &")
686 ;; For missing '/etc/machine-id'.
687 (setenv "DBUS_FATAL_WARNINGS" "0")
688 #t)))))
689 (native-inputs
690 `(("dbus" ,dbus)
691 ("dbus-test-runner" ,dbus-test-runner)
692 ("docbook-xml" ,docbook-xml-4.3)
693 ("gobject-introspection" ,gobject-introspection)
694 ("gtk-doc" ,gtk-doc/stable)
695 ;; Would only be required by configure flag "--enable-extended-tests".
696 ;("gtx" ,gtx)
697 ("pkg-config" ,pkg-config)
698 ("pygobject" ,python-pygobject)
699 ("python" ,python-wrapper)
700 ("vala" ,vala)))
701 (inputs
702 `(("icu" ,icu4c)))
703 (propagated-inputs
704 `(("glib" ,glib)))
705 (synopsis "Model to synchronize multiple instances over DBus")
706 (description "Dee is a library that uses DBus to provide objects allowing
707 you to create Model-View-Controller type programs across DBus. It also consists
708 of utility objects which extend DBus allowing for peer-to-peer discoverability
709 of known objects without needing a central registrar.")
710 (home-page "https://launchpad.net/dee")
711 (license
712 ;; Dual-licensed
713 (list
714 license:lgpl3+
715 license:gpl3+))))
716
717 (define-public zeitgeist
718 (package
719 (name "zeitgeist")
720 (version "1.0.3")
721 (source
722 (origin
723 (method git-fetch)
724 (uri
725 (git-reference
726 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
727 (commit
728 (string-append "v" version))))
729 (file-name
730 (git-file-name name version))
731 (sha256
732 (base32 "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp"))))
733 (build-system glib-or-gtk-build-system)
734 (arguments
735 `(#:configure-flags
736 (list
737 "--enable-explain-queries"
738 "--enable-fts"
739 "--enable-docs")
740 #:phases
741 (modify-phases %standard-phases
742 (add-after 'unpack 'patch-docbook-xml
743 (lambda* (#:key inputs #:allow-other-keys)
744 (with-directory-excursion "doc/libzeitgeist"
745 (substitute* "zeitgeist-gtkdoc-index.sgml"
746 (("http://www.oasis-open.org/docbook/xml/4.3/")
747 (string-append (assoc-ref inputs "docbook-xml")
748 "/xml/dtd/docbook/"))))
749 #t))
750 (add-after 'patch-docbook-xml 'disable-failing-tests
751 (lambda _
752 (substitute* "test/direct/Makefile.am"
753 ((" log-test ")
754 ""))
755 (substitute* "test/c/Makefile.am"
756 ((" test-log ")
757 ""))
758 #t))
759 (add-before 'bootstrap 'remove-autogen-script
760 (lambda _
761 ;; To honor `autoreconf -vif` by build-system.
762 (delete-file "autogen.sh")
763 #t)))))
764 (native-inputs
765 `(("autoconf" ,autoconf)
766 ("automake" ,automake)
767 ("docbook-xml" ,docbook-xml-4.3)
768 ("gettext" ,gettext-minimal)
769 ("gobject-introspection" ,gobject-introspection)
770 ("gtk-doc" ,gtk-doc/stable)
771 ("libtool" ,libtool)
772 ("pkg-config" ,pkg-config)
773 ("vala" ,vala)
774 ("xorg-server-for-tests" ,xorg-server-for-tests)))
775 (inputs
776 `(("dee-icu" ,dee)
777 ("gtk+" ,gtk+)
778 ("json-glib" ,json-glib)
779 ("sqlite" ,sqlite)
780 ("telepathy-glib" ,telepathy-glib)
781 ("python" ,python-wrapper)
782 ("python-rdflib" ,python-rdflib)
783 ("xapian-config" ,xapian)))
784 (propagated-inputs
785 `(("glib" ,glib)))
786 (synopsis "Desktop Activity Logging")
787 (description "Zeitgeist is a service which logs the users’s activities and
788 events, anywhere from files opened to websites visited and conversations. It
789 makes this information readily available for other applications to use. It is
790 able to establish relationships between items based on similarity and usage
791 patterns.")
792 (home-page "https://zeitgeist.freedesktop.org/")
793 (license
794 ;; Dual-licensed
795 (list
796 license:lgpl2.1+
797 license:gpl2+))))
798
799 (define-public gnome-recipes
800 (package
801 (name "gnome-recipes")
802 (version "2.0.4")
803 (source (origin
804 (method git-fetch)
805 (uri (git-reference
806 (url "https://gitlab.gnome.org/GNOME/recipes")
807 (commit version)))
808 (file-name (git-file-name name version))
809 (sha256
810 (base32
811 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
812 (build-system meson-build-system)
813 (arguments
814 `(#:glib-or-gtk? #t
815 #:phases
816 (modify-phases %standard-phases
817 (add-after 'unpack 'skip-gtk-update-icon-cache
818 (lambda _
819 (substitute* "meson_post_install.py"
820 (("gtk-update-icon-cache") (which "true")))
821 #t))
822 (add-after 'unpack 'unpack-libgd
823 (lambda* (#:key inputs #:allow-other-keys)
824 (let ((libgd (assoc-ref inputs "libgd")))
825 (copy-recursively libgd "subprojects/libgd")
826 #t))))))
827 (inputs
828 `(("glib" ,glib)
829 ("gnome-autoar" ,gnome-autoar)
830 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
831 ("gspell" ,gspell)
832 ("gtk+" ,gtk+)
833 ("json-glib" ,json-glib)
834 ("libcanberra" ,libcanberra)
835 ("libsoup" ,libsoup)
836 ("rest" ,rest)))
837 (native-inputs
838 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
839 ("gettext" ,gettext-minimal)
840 ("glib:bin" ,glib "bin")
841 ("itstool" ,itstool)
842 ("libgd"
843 ,(origin
844 (method git-fetch)
845 (uri (git-reference
846 (url "https://gitlab.gnome.org/GNOME/libgd")
847 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
848 (file-name (git-file-name "libgd" version))
849 (sha256
850 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
851 ("pkg-config" ,pkg-config)))
852 (home-page "https://wiki.gnome.org/Apps/Recipes")
853 (synopsis "Discover recipes for preparing food")
854 (description "GNOME Recipes helps you discover what to cook today,
855 tomorrow, the rest of the week and for special occasions.")
856 (license license:gpl3+)))
857
858 (define-public gnome-photos
859 (package
860 (name "gnome-photos")
861 (version "3.34.2")
862 (source
863 (origin
864 (method url-fetch)
865 (uri
866 (string-append "mirror://gnome/sources/" name "/"
867 (version-major+minor version) "/"
868 name "-" version ".tar.xz"))
869 (sha256
870 (base32
871 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
872 (build-system meson-build-system)
873 (arguments
874 `(#:glib-or-gtk? #t
875 #:configure-flags
876 (list "-Ddogtail=false" ; Not available
877 ;; Required for RUNPATH validation.
878 (string-append "-Dc_link_args=-Wl,-rpath="
879 (assoc-ref %outputs "out") "/lib/gnome-photos"))
880 #:phases
881 (modify-phases %standard-phases
882 (add-after 'install 'wrap-gnome-photos
883 (lambda* (#:key inputs outputs #:allow-other-keys)
884 (let*
885 ((out (assoc-ref outputs "out")))
886 (wrap-program (string-append out "/bin/gnome-photos")
887 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
888 #t)))))
889 (native-inputs
890 `(("dbus" ,dbus)
891 ("desktop-file-utils" ,desktop-file-utils)
892 ("gettext" ,gettext-minimal)
893 ("git" ,git-minimal)
894 ("glib:bin" ,glib "bin")
895 ("gobject-introspection" ,gobject-introspection)
896 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
897 ("gtk+:bin" ,gtk+ "bin")
898 ("itstool" ,itstool)
899 ("pkg-config" ,pkg-config)))
900 (inputs
901 `(("babl" ,babl)
902 ("cairo" ,cairo)
903 ("gdk-pixbuf" ,gdk-pixbuf+svg)
904 ("gegl" ,gegl)
905 ("geocode-glib" ,geocode-glib)
906 ("gexiv2" ,gexiv2)
907 ("gnome-online-accounts" ,gnome-online-accounts)
908 ("gnome-online-miners" ,gnome-online-miners)
909 ("grilo" ,grilo)
910 ("grilo-plugins" ,grilo-plugins)
911 ("gtk+" ,gtk+)
912 ("libdazzle" ,libdazzle)
913 ("libgdata" ,libgdata)
914 ("libgfbgraph" ,gfbgraph)
915 ("libjpeg" ,libjpeg-turbo)
916 ("libpng" ,libpng)
917 ("librest" ,rest)
918 ("pygobject" ,python-pygobject)
919 ("tracker" ,tracker)
920 ("tracker-miners" ,tracker-miners)))
921 (synopsis "Access, organize and share your photos on GNOME desktop")
922 (description "GNOME Photos is a simple and elegant replacement for using a
923 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
924 cloud integration is offered through GNOME Online Accounts.")
925 (home-page "https://wiki.gnome.org/Apps/Photos")
926 (license license:gpl3+)))
927
928 (define-public gnome-music
929 (package
930 (name "gnome-music")
931 (version "3.34.5")
932 (source
933 (origin
934 (method url-fetch)
935 (uri
936 (string-append "mirror://gnome/sources/" name "/"
937 (version-major+minor version) "/"
938 name "-" version ".tar.xz"))
939 (sha256
940 (base32
941 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
942 (build-system meson-build-system)
943 (arguments
944 `(#:glib-or-gtk? #t
945 #:phases
946 (modify-phases %standard-phases
947 (add-after 'install 'wrap-gnome-music
948 (lambda* (#:key inputs outputs #:allow-other-keys)
949 (let*
950 ((out (assoc-ref outputs "out"))
951 (pylib (string-append out "/lib/python"
952 ,(version-major+minor
953 (package-version python))
954 "/site-packages")))
955 (wrap-program (string-append out "/bin/gnome-music")
956 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
957 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
958 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
959 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
960 #t)))))
961 (native-inputs
962 `(("desktop-file-utils" ,desktop-file-utils)
963 ("gettext" ,gettext-minimal)
964 ("glib:bin" ,glib "bin")
965 ("gobject-introspection" ,gobject-introspection)
966 ("gtk+:bin" ,gtk+ "bin")
967 ("itstools" ,itstool)
968 ("pkg-config" ,pkg-config)))
969 (inputs
970 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
971 ("grilo" ,grilo)
972 ("grilo-plugins" ,grilo-plugins)
973 ("gst-plugins-base" ,gst-plugins-base)
974 ("gstreamer" ,gstreamer)
975 ("gvfs" ,gvfs)
976 ("libdazzle" ,libdazzle)
977 ("libmediaart" ,libmediaart)
978 ("libsoup" ,libsoup)
979 ("pycairo" ,python-pycairo)
980 ("pygobject" ,python-pygobject)
981 ("tracker" ,tracker)
982 ("tracker-miners" ,tracker-miners)))
983 (synopsis "Simple music player for GNOME desktop")
984 (description "GNOME Music is the new GNOME music playing application that
985 aims to combine an elegant and immersive browsing experience with simple
986 and straightforward controls.")
987 (home-page "https://wiki.gnome.org/Apps/Music")
988 (license license:gpl2+)))
989
990 (define-public portablexdr
991 (package
992 (name "portablexdr")
993 (version "4.9.1")
994 (source
995 (origin
996 (method url-fetch)
997 (uri
998 (string-append "https://people.redhat.com/~rjones/" name "/files/"
999 name "-" version ".tar.gz"))
1000 (sha256
1001 (base32
1002 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1003 (build-system gnu-build-system)
1004 (synopsis "External Data Representation Library")
1005 (description "PortableXDR is an implementation of External Data
1006 Representation (XDR) Library. It is a standard data serialization format, for
1007 uses such as computer network protocols. It allows data to be transferred
1008 between different kinds of computer systems.")
1009 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1010 (license
1011 (list
1012 license:gpl2+
1013 license:lgpl2.1+))))
1014
1015 (define-public tepl
1016 (package
1017 (name "tepl")
1018 (version "4.4.0")
1019 (source
1020 (origin
1021 (method url-fetch)
1022 (uri
1023 (string-append "mirror://gnome/sources/" name "/"
1024 (version-major+minor version) "/"
1025 name "-" version ".tar.xz"))
1026 (sha256
1027 (base32
1028 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
1029 (build-system glib-or-gtk-build-system)
1030 (arguments
1031 `(#:tests? #f)) ; FIX-ME: Requires gvfs
1032 (native-inputs
1033 `(("gobject-introspection" ,gobject-introspection)
1034 ("pkg-config" ,pkg-config)))
1035 (inputs
1036 `(("amtk" ,amtk)
1037 ("glib" ,glib)
1038 ("gtk+" ,gtk+)
1039 ("gtksourceview" ,gtksourceview)
1040 ("libxml2" ,libxml2)
1041 ("uchardet" ,uchardet)))
1042 (synopsis "Text editor product line")
1043 (description "Tepl is a library that eases the development of
1044 GtkSourceView-based text editors and IDEs.")
1045 (home-page "https://wiki.gnome.org/Projects/Tepl")
1046 (license license:lgpl2.1+)))
1047
1048 (define-public krb5-auth-dialog
1049 (package
1050 (name "krb5-auth-dialog")
1051 (version "3.26.1")
1052 (source
1053 (origin
1054 (method url-fetch)
1055 (uri
1056 (string-append "mirror://gnome/sources/" name "/"
1057 (version-major+minor version) "/"
1058 name "-" version ".tar.xz"))
1059 (sha256
1060 (base32
1061 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1062 (build-system glib-or-gtk-build-system)
1063 (native-inputs
1064 `(("intltool" ,intltool)
1065 ("itstool" ,itstool)
1066 ("libxml2" ,libxml2)
1067 ("pkg-config" ,pkg-config)
1068 ("python-wrapper" ,python-wrapper)))
1069 (inputs
1070 `(("glib" ,glib)
1071 ("gtk+" ,gtk+)
1072 ("libnotify" ,libnotify)
1073 ("mit-krb5" ,mit-krb5)
1074 ("network-manager" ,network-manager)))
1075 (synopsis "Popup dialogs for Kerberos 5")
1076 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1077 tickets, and pops up a dialog when they are about to expire.")
1078 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1079 (license license:gpl2+)))
1080
1081 (define-public notification-daemon
1082 (package
1083 (name "notification-daemon")
1084 (version "3.20.0")
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 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1095 (build-system glib-or-gtk-build-system)
1096 (native-inputs
1097 `(("intltool" ,intltool)
1098 ("pkg-config" ,pkg-config)))
1099 (inputs
1100 `(("glib" ,glib)
1101 ("gtk+" ,gtk+)
1102 ("x11" ,libx11)))
1103 (synopsis "Notification Daemon for GNOME Desktop")
1104 (description "Notification-Daemon is the server implementation of the
1105 freedesktop.org desktop notification specification.")
1106 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1107 (license license:gpl2+)))
1108
1109 (define-public mm-common
1110 (package
1111 (name "mm-common")
1112 (version "1.0.3")
1113 (source (origin
1114 (method url-fetch)
1115 (uri (string-append "mirror://gnome/sources/mm-common/"
1116 (version-major+minor version) "/"
1117 "mm-common-" version ".tar.xz"))
1118 (sha256
1119 (base32
1120 "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
1121 (build-system meson-build-system)
1122 (arguments
1123 `(#:meson ,meson-0.55
1124 #:phases
1125 (modify-phases %standard-phases
1126 (add-after 'unpack 'patch
1127 (lambda* (#:key inputs #:allow-other-keys)
1128 (substitute* "util/mm-common-prepare.in"
1129 (("ln") (string-append (assoc-ref inputs "coreutils")
1130 "/bin/ln"))
1131 (("cp") (string-append (assoc-ref inputs "coreutils")
1132 "/bin/cp"))
1133 (("sed") (string-append (assoc-ref inputs "sed")
1134 "/bin/sed"))
1135 (("cat") (string-append (assoc-ref inputs "coreutils")
1136 "/bin/cat")))
1137 #t)))))
1138 (native-inputs
1139 `(("coreutils" ,coreutils)
1140 ("gettext" ,gettext-minimal)
1141 ("pkg-config" ,pkg-config)
1142 ("sed" ,sed)))
1143 (inputs
1144 `(("python" ,python)))
1145 (synopsis "Module of GNOME C++ bindings")
1146 (description "The mm-common module provides the build infrastructure
1147 and utilities shared among the GNOME C++ binding libraries. Release
1148 archives of mm-common include the Doxygen tag file for the GNU C++
1149 Library reference documentation.")
1150 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1151 (license license:gpl2+)))
1152
1153 (define-public phodav
1154 (package
1155 (name "phodav")
1156 (version "2.5")
1157 (source (origin
1158 (method url-fetch)
1159 (uri (string-append "mirror://gnome/sources/" name "/"
1160 (version-major+minor version) "/"
1161 name "-" version ".tar.xz"))
1162 (sha256
1163 (base32
1164 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1165 (build-system meson-build-system)
1166 (arguments
1167 `(#:phases
1168 (modify-phases %standard-phases
1169 (add-before 'check 'start-virtual-dir-server
1170 ;; The same server when started by tests/virtual-dir returns an
1171 ;; unexpected status (4 instead of 200) and fails a test. It is
1172 ;; unclear why starting it manually here makes it pass.
1173 (lambda _
1174 (system "tests/virtual-dir-server &")
1175 #t)))))
1176 (native-inputs
1177 `(("docbook-xml" ,docbook-xml-4.3)
1178 ("gettext" ,gettext-minimal)
1179 ("glib:bin" ,glib "bin")
1180 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1181 ("gtk-doc" ,gtk-doc/stable)
1182 ("pkg-config" ,pkg-config)))
1183 (inputs
1184 `(("avahi" ,avahi)
1185 ("libgudev" ,libgudev)
1186 ("libsoup" ,libsoup)))
1187 (synopsis "WebDav server implementation using libsoup")
1188 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1189 but it is generic enough to be reused in other projects,
1190 in particular in the GNOME desktop.")
1191 (home-page "https://wiki.gnome.org/phodav")
1192 (license license:lgpl2.1+)))
1193
1194 (define-public gnome-color-manager
1195 (package
1196 (name "gnome-color-manager")
1197 (version "3.32.0")
1198 (source (origin
1199 (method url-fetch)
1200 (uri (string-append "mirror://gnome/sources/" name "/"
1201 (version-major+minor version) "/"
1202 name "-" version ".tar.xz"))
1203 (sha256
1204 (base32
1205 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1206 (build-system meson-build-system)
1207 (arguments
1208 `(#:glib-or-gtk? #t
1209 #:phases
1210 (modify-phases %standard-phases
1211 (add-before
1212 'check 'pre-check
1213 (lambda _
1214 ;; Tests require a running X server.
1215 (system "Xvfb :1 &")
1216 (setenv "DISPLAY" ":1")
1217 #t)))))
1218 (native-inputs
1219 `(("desktop-file-utils" ,desktop-file-utils)
1220 ("gettext" ,gettext-minimal)
1221 ("glib:bin" ,glib "bin")
1222 ("gtk+:bin" ,gtk+ "bin")
1223 ("itstool" ,itstool)
1224 ("pkg-config" ,pkg-config)
1225 ("xorg-server" ,xorg-server-for-tests)))
1226 (inputs
1227 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1228 ("appstream-glib" ,appstream-glib)
1229 ("colord-gtk" ,colord-gtk)
1230 ("exiv2" ,exiv2)
1231 ("gnome-desktop" ,gnome-desktop)
1232 ("libcanberra" ,libcanberra)
1233 ("libexif" ,libexif)
1234 ("libtiff" ,libtiff)
1235 ("libxrandr" ,libxrandr)
1236 ("libxtst" ,libxtst)
1237 ("libxxf86vm" ,libxxf86vm)
1238 ("vte" ,vte)
1239 ("xorgproto" ,xorgproto)))
1240 (synopsis "Color profile manager for the GNOME desktop")
1241 (description "GNOME Color Manager is a session framework that makes
1242 it easy to manage, install and generate color profiles
1243 in the GNOME desktop.")
1244 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1245 (license license:gpl2+)))
1246
1247 (define-public gnome-online-miners
1248 (package
1249 (name "gnome-online-miners")
1250 (version "3.34.0")
1251 (source (origin
1252 (method url-fetch)
1253 (uri (string-append "mirror://gnome/sources/" name "/"
1254 (version-major+minor version) "/"
1255 name "-" version ".tar.xz"))
1256 (sha256
1257 (base32
1258 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1259 (build-system glib-or-gtk-build-system)
1260 (native-inputs
1261 `(("gettext" ,gettext-minimal)
1262 ("glib:bin" ,glib "bin")
1263 ("gobject-introspection" ,gobject-introspection)
1264 ("gtk+:bin" ,gtk+ "bin")
1265 ("pkg-config" ,pkg-config)))
1266 (inputs
1267 `(("gnome-online-accounts" ,gnome-online-accounts)
1268 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1269 ("grilo" ,grilo)
1270 ("libgdata" ,libgdata)
1271 ("libgfbgraph" ,gfbgraph)
1272 ("libzapojit" ,libzapojit)
1273 ("rest" ,rest)
1274 ("tracker" ,tracker)))
1275 (synopsis "Web Crawlers for GNOME")
1276 (description "GNOME Online Miners provides a set of crawlers that
1277 go through your online content and index them locally in Tracker.
1278 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1279 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1280 (license license:gpl2+)))
1281
1282 (define-public gssdp
1283 (package
1284 (name "gssdp")
1285 (version "1.2.3")
1286 (source (origin
1287 (method url-fetch)
1288 (uri (string-append "mirror://gnome/sources/" name "/"
1289 (version-major+minor version) "/"
1290 name "-" version ".tar.xz"))
1291 (sha256
1292 (base32
1293 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1294 (build-system meson-build-system)
1295 (native-inputs
1296 `(("gettext" ,gettext-minimal)
1297 ("glib:bin" ,glib "bin")
1298 ("gobject-introspection" ,gobject-introspection)
1299 ("gtk-doc" ,gtk-doc/stable)
1300 ("pkg-config" ,pkg-config)
1301 ("vala" ,vala)))
1302 (inputs
1303 `(("gtk+" ,gtk+)
1304 ("libsoup" ,libsoup)))
1305 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1306 Protocol} for GNOME")
1307 (description "This package provides a library to handle resource discovery
1308 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1309 a debugging tool, @command{gssdp-device-sniffer}.")
1310 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1311 (license license:lgpl2.0+)))
1312
1313 (define-public gupnp
1314 (package
1315 (name "gupnp")
1316 (version "1.2.4")
1317 (source (origin
1318 (method url-fetch)
1319 (uri (string-append "mirror://gnome/sources/" name "/"
1320 (version-major+minor version) "/"
1321 name "-" version ".tar.xz"))
1322 (sha256
1323 (base32
1324 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1325 (build-system meson-build-system)
1326 (native-inputs
1327 `(("gettext" ,gettext-minimal)
1328 ("glib:bin" ,glib "bin")
1329 ("gobject-introspection" ,gobject-introspection)
1330 ("gtk-doc" ,gtk-doc/stable)
1331 ("pkg-config" ,pkg-config)
1332 ("vala" ,vala)))
1333 (inputs
1334 `(("gssdp" ,gssdp)
1335 ("gtk+" ,gtk+)
1336 ("libsoup" ,libsoup)))
1337 (propagated-inputs
1338 `(;; For ‘org.gnome.system.proxy’.
1339 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
1340 (synopsis "PnP API for GNOME")
1341 (description "This package provides GUPnP, an object-oriented framework
1342 for creating UPnP devices and control points, written in C using
1343 @code{GObject} and @code{libsoup}.")
1344 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1345 (license license:lgpl2.0+)))
1346
1347 (define-public gupnp-dlna
1348 (package
1349 (name "gupnp-dlna")
1350 (version "0.10.5")
1351 (source (origin
1352 (method url-fetch)
1353 (uri (string-append "mirror://gnome/sources/" name "/"
1354 (version-major+minor version) "/"
1355 name "-" version ".tar.xz"))
1356 (sha256
1357 (base32
1358 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1359 (build-system gnu-build-system)
1360 (native-inputs
1361 `(("gettext" ,gettext-minimal)
1362 ("glib:bin" ,glib "bin")
1363 ("gobject-introspection" ,gobject-introspection)
1364 ("gtk-doc" ,gtk-doc/stable)
1365 ("libxml" ,libxml2)
1366 ("pkg-config" ,pkg-config)
1367 ("vala" ,vala)))
1368 (inputs
1369 `(("gstreamer" ,gstreamer)
1370 ("gupnp" ,gupnp)))
1371 (propagated-inputs
1372 `(("gst-plugins-base" ,gst-plugins-base)
1373 ("gst-plugins-good" ,gst-plugins-good)))
1374 (synopsis "GUPnP DLNA for GNOME")
1375 (description "This package provides a small utility library to
1376 support DLNA-related tasks such as media profile guessing, transcoding to a
1377 given profile, etc. DLNA is a subset of UPnP A/V.")
1378 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1379 (license license:lgpl2.0+)))
1380
1381 (define-public gupnp-av
1382 (package
1383 (name "gupnp-av")
1384 (version "0.12.11")
1385 (source (origin
1386 (method url-fetch)
1387 (uri (string-append "mirror://gnome/sources/" name "/"
1388 (version-major+minor version) "/"
1389 name "-" version ".tar.xz"))
1390 (sha256
1391 (base32
1392 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1393 (build-system gnu-build-system)
1394 (native-inputs
1395 `(("gettext" ,gettext-minimal)
1396 ("glib:bin" ,glib "bin")
1397 ("gobject-introspection" ,gobject-introspection)
1398 ("gtk-doc" ,gtk-doc/stable)
1399 ("libxml" ,libxml2)
1400 ("pkg-config" ,pkg-config)))
1401 (inputs
1402 `(("gtk+" ,gtk+)
1403 ("gupnp" ,gupnp)))
1404 (synopsis "GUPnP A/V for GNOME")
1405 (description "This package provides a small library for handling
1406 and implementation of UPnP A/V profiles.")
1407 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1408 (license license:lgpl2.0+)))
1409
1410 (define-public libmediaart
1411 (package
1412 (name "libmediaart")
1413 (version "1.9.5")
1414 (source (origin
1415 (method url-fetch)
1416 (uri (string-append "mirror://gnome/sources/" name "/"
1417 (version-major+minor version) "/"
1418 name "-" version ".tar.xz"))
1419 (sha256
1420 (base32
1421 "1mlw1qgj8nkd9ll6b6h54r1gfdy3zp8a8xqz7qfyfaj85jjgbph7"))))
1422 (build-system meson-build-system)
1423 (arguments
1424 `(#:meson ,meson-next))
1425 (native-inputs
1426 `(("glib:bin" ,glib "bin")
1427 ("pkg-config" ,pkg-config)))
1428 (inputs
1429 `(("gdk-pixbuf" ,gdk-pixbuf)
1430 ("gettext" ,gettext-minimal)
1431 ("gobject-introspection" ,gobject-introspection)
1432 ("gtk+:doc" ,gtk+ "doc")
1433 ("vala" ,vala)))
1434 (synopsis "Media art library for the GNOME desktop")
1435 (description
1436 "The libmediaart library is the foundation for media art caching,
1437 extraction, and lookup for applications on the desktop.")
1438 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1439 (license license:lgpl2.1+)))
1440
1441 (define-public gnome-initial-setup
1442 (package
1443 (name "gnome-initial-setup")
1444 (version "3.32.1")
1445 (source (origin
1446 (method url-fetch)
1447 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1448 (version-major+minor version)
1449 "/gnome-initial-setup-" version ".tar.xz"))
1450 (sha256
1451 (base32
1452 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1453 (build-system meson-build-system)
1454 (arguments
1455 '(#:configure-flags '(;; Enable camera support for user selfie.
1456 "-Dcheese=auto"
1457 "-Dsystemd=false")
1458 #:phases (modify-phases %standard-phases
1459 (add-after 'unpack 'set-gkbd-file-name
1460 (lambda* (#:key inputs #:allow-other-keys)
1461 ;; Allow the "Preview" button in the keyboard layout
1462 ;; selection dialog to display the layout.
1463 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1464 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1465 (("\"gkbd-keyboard-display")
1466 (string-append "\"" libgnomekbd
1467 "/bin/gkbd-keyboard-display")))
1468 #t))))))
1469 (native-inputs
1470 `(("gettext" ,gettext-minimal)
1471 ("glib:bin" ,glib "bin")
1472 ("gobject-introspection" ,gobject-introspection)
1473 ("gtk+:bin" ,gtk+ "bin")
1474 ("pkg-config" ,pkg-config)))
1475 (inputs
1476 `(("accountsservice" ,accountsservice)
1477 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1478 ("gdm" ,gdm)
1479 ("geoclue" ,geoclue)
1480 ("gnome-desktop" ,gnome-desktop)
1481 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1482 ("gnome-online-accounts" ,gnome-online-accounts)
1483 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1484 ("gstreamer" ,gstreamer)
1485 ("ibus" ,ibus)
1486 ("json-glib" ,json-glib)
1487 ("krb5" ,mit-krb5)
1488 ("libgweather" ,libgweather)
1489 ("libnma" ,libnma)
1490 ("libsecret" ,libsecret)
1491 ("network-manager" ,network-manager)
1492 ("packagekit" ,packagekit)
1493 ("polkit" ,polkit)
1494 ("pwquality" ,libpwquality)
1495 ("rest" ,rest)
1496 ("upower" ,upower)
1497 ("webkitgtk" ,webkitgtk)
1498 ("libgnomekbd" ,libgnomekbd)))
1499 (synopsis "Initial setup wizard for GNOME desktop")
1500 (description "This package provides a set-up wizard when a
1501 user logs into GNOME for the first time. It typically provides a
1502 tour of all gnome components and allows the user to set them up.")
1503 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1504 (license license:gpl2)))
1505
1506 (define-public gnome-user-share
1507 (package
1508 (name "gnome-user-share")
1509 (version "3.33.1")
1510 (source (origin
1511 (method url-fetch)
1512 (uri (string-append "mirror://gnome/sources/" name "/"
1513 (version-major+minor version) "/"
1514 name "-" version ".tar.xz"))
1515 (sha256
1516 (base32
1517 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1518 (build-system meson-build-system)
1519 (arguments
1520 `(#:glib-or-gtk? #t
1521 #:configure-flags
1522 `("-Dsystemd=false"
1523 ;; Enable nautilus extension for file sharing.
1524 "-Dnautilus_extension=true")))
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 ("yelp-tools" ,yelp-tools)))
1532 (inputs
1533 `(("glib" ,glib)
1534 ("gnome-bluetooth" ,gnome-bluetooth)
1535 ("gtk+" ,gtk+)
1536 ("libcanberra" ,libcanberra)
1537 ("libnotify" ,libnotify)
1538 ("nautilus" ,nautilus))) ; For nautilus extension.
1539 (synopsis "File sharing for GNOME desktop")
1540 (description "GNOME User Share is a small package that binds together
1541 various free software projects to bring easy to use user-level file
1542 sharing to the masses.")
1543 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1544 (license license:gpl2+)))
1545
1546 (define-public sushi
1547 (package
1548 (name "sushi")
1549 (version "3.32.1")
1550 (source (origin
1551 (method url-fetch)
1552 (uri (string-append "mirror://gnome/sources/" name "/"
1553 (version-major+minor version) "/"
1554 name "-" version ".tar.xz"))
1555 (sha256
1556 (base32
1557 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1558 (build-system meson-build-system)
1559 (arguments
1560 `(#:glib-or-gtk? #t
1561 #:phases
1562 (modify-phases %standard-phases
1563 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1564 (lambda* (#:key outputs #:allow-other-keys)
1565 (let ((prog (string-append (assoc-ref outputs "out")
1566 "/bin/sushi")))
1567 ;; Put existing typelibs before sushi's deps, so as to correctly
1568 ;; infer gdk-pixbuf
1569 (wrap-program prog
1570 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1571 #t))))))
1572 (native-inputs
1573 `(("glib:bin" ,glib "bin")
1574 ("gettext" ,gettext-minimal)
1575 ("gobject-introspection" ,gobject-introspection)
1576 ("pkg-config" ,pkg-config)))
1577 (inputs
1578 `(("clutter" ,clutter)
1579 ("clutter-gst" ,clutter-gst)
1580 ("clutter-gtk" ,clutter-gtk)
1581 ("evince" ,evince) ; For file previewing.
1582 ("freetype" ,freetype)
1583 ("gdk-pixbuf" ,gdk-pixbuf)
1584 ("gjs" ,gjs)
1585 ("gst-plugins-base" ,gst-plugins-base)
1586 ("gstreamer" ,gstreamer)
1587 ("gtksourceview" ,gtksourceview-3)
1588 ("harfbuzz" ,harfbuzz)
1589 ("libepoxy" ,libepoxy)
1590 ("libmusicbrainz" ,libmusicbrainz)
1591 ("libxml2" ,libxml2)
1592 ("neon" ,neon)
1593 ("webkitgtk" ,webkitgtk)))
1594 (synopsis "File previewer for the GNOME desktop")
1595 (description "Sushi is a DBus-activated service that allows applications to
1596 preview files on the GNOME desktop.")
1597 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1598 (license license:gpl2+)))
1599
1600 (define-public rygel
1601 (package
1602 (name "rygel")
1603 (version "0.38.3")
1604 (source (origin
1605 (method url-fetch)
1606 (uri (string-append "mirror://gnome/sources/" name "/"
1607 (version-major+minor version) "/"
1608 name "-" version ".tar.xz"))
1609 (sha256
1610 (base32
1611 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1612 (build-system gnu-build-system)
1613 (native-inputs
1614 `(("gettext" ,gettext-minimal)
1615 ("gobject-introspection" ,gobject-introspection)
1616 ("gtk-doc" ,gtk-doc/stable)
1617 ("pkg-config" ,pkg-config)
1618 ("vala" ,vala)))
1619 (inputs
1620 `(("gdk-pixbuf" ,gdk-pixbuf)
1621 ("gssdp" ,gssdp)
1622 ("gstreamer" ,gstreamer)
1623 ("gst-plugins-base" ,gst-plugins-base)
1624 ("gtk+" ,gtk+)
1625 ("gupnp" ,gupnp)
1626 ("gupnp-av" ,gupnp-av)
1627 ("gupnp-dlna" ,gupnp-dlna)
1628 ("libgee" ,libgee)
1629 ("libmediaart" ,libmediaart)
1630 ("libsoup" ,libsoup)
1631 ("libxslt" ,libxslt)
1632 ("libunistring" ,libunistring)
1633 ("tracker" ,tracker)))
1634 (synopsis "Share audio, video, and pictures with other devices")
1635 (description
1636 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1637 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1638 pictures, and to control a media player on your home network.
1639
1640 Rygel achieves interoperability with other devices by trying to conform to the
1641 strict requirements of DLNA and by converting media on-the-fly to formats that
1642 client devices can handle.")
1643 (home-page "https://wiki.gnome.org/Projects/Rygel")
1644 (license (list
1645 ;; For logo (data/icons/*).
1646 license:cc-by-sa3.0
1647 ;; For all others.
1648 license:lgpl2.1+))))
1649
1650 (define-public libnma
1651 (package
1652 (name "libnma")
1653 (version "1.8.28")
1654 (source (origin
1655 (method url-fetch)
1656 (uri (string-append "mirror://gnome/sources/" name "/"
1657 (version-major+minor version) "/"
1658 name "-" version ".tar.xz"))
1659 (sha256
1660 (base32
1661 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1662 (build-system meson-build-system)
1663 (arguments
1664 `(#:phases
1665 (modify-phases %standard-phases
1666 (add-after 'unpack 'patch-docbook-xml
1667 (lambda* (#:key inputs #:allow-other-keys)
1668 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1669 "/xml/dtd/docbook")))
1670 (substitute* "libnma-docs.xml"
1671 (("http://.*/docbookx\\.dtd")
1672 (string-append xmldoc "/docbookx.dtd")))
1673 #t))))))
1674 (native-inputs
1675 `(("docbook-xml" ,docbook-xml-4.3)
1676 ("gettext" ,gettext-minimal)
1677 ("glib:bin" ,glib "bin")
1678 ("gtk-doc" ,gtk-doc/stable)
1679 ("gobject-introspection" ,gobject-introspection)
1680 ("pkg-config" ,pkg-config)
1681 ("vala" ,vala)))
1682 (inputs
1683 `(("gcr" ,gcr)
1684 ("gtk+" ,gtk+)
1685 ("iso-codes" ,iso-codes)
1686 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1687 ("network-manager" ,network-manager)))
1688 (synopsis "Network Manager's applet library")
1689 (description "Libnma is an applet library for Network Manager. It was
1690 initially part of network-manager-applet and has now become a separate
1691 project.")
1692 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1693 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1694 ;; "LGPL-2.1+".
1695 (license license:gpl2+)))
1696
1697 (define-public gnome-menus
1698 (package
1699 (name "gnome-menus")
1700 (version "3.32.0")
1701 (source (origin
1702 (method url-fetch)
1703 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1704 (version-major+minor version) "/"
1705 name "-" version ".tar.xz"))
1706 (sha256
1707 (base32
1708 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1709 (build-system gnu-build-system)
1710 (native-inputs
1711 `(("gettext" ,gettext-minimal)
1712 ("glib" ,glib)
1713 ("pkg-config" ,pkg-config)))
1714 (synopsis "Menu support for GNOME desktop")
1715 (description "GNOME Menus contains the libgnome-menu library, the layout
1716 configuration files for the GNOME menu, as well as a simple menu editor.")
1717 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1718 (license license:lgpl2.0+)))
1719
1720 (define-public deja-dup
1721 (package
1722 (name "deja-dup")
1723 (version "40.6")
1724 (source (origin
1725 (method url-fetch)
1726 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1727 version "/deja-dup-" version ".tar.bz2"))
1728 (sha256
1729 (base32
1730 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1731 (build-system meson-build-system)
1732 (arguments
1733 `(#:glib-or-gtk? #t
1734 #:configure-flags
1735 (list
1736 ;; Otherwise, the RUNPATH will lack the final path component.
1737 (string-append "-Dc_link_args=-Wl,-rpath="
1738 (assoc-ref %outputs "out") "/lib/deja-dup"))
1739 #:phases
1740 (modify-phases %standard-phases
1741 (add-after 'unpack 'patch-paths
1742 (lambda* (#:key inputs #:allow-other-keys)
1743 (let ((python (assoc-ref inputs "python")))
1744 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1745 "libdeja/tests/scripts/instance-error.test")
1746 (("/bin/rm")
1747 (which "rm")))
1748 (substitute* "libdeja/tests/runner.vala"
1749 (("/bin/sh")
1750 (which "sh")))
1751 (substitute* "libdeja/tests/scripts/instance-error.test"
1752 (("`which python3`")
1753 (string-append python "/bin/python3"))))))
1754 (add-after 'unpack 'patch-libgpg-error
1755 (lambda* (#:key inputs #:allow-other-keys)
1756 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1757 (substitute* "meson.build"
1758 (("(gpgerror_libs = ).*" _ var)
1759 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1760 #t))
1761 (add-after 'unpack 'skip-gtk-update-icon-cache
1762 ;; Don't create 'icon-theme.cache'.
1763 (lambda _
1764 (substitute* "data/post-install.sh"
1765 (("gtk-update-icon-cache") "true"))
1766 #t)))))
1767 (inputs
1768 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1769 ("duplicity" ,duplicity)
1770 ("python" ,python)
1771 ("python-pygobject" ,python-pygobject)
1772 ("gtk+" ,gtk+)
1773 ("json-glib" ,json-glib)
1774 ("libnotify" ,libnotify)
1775 ("libgpg-error" ,libgpg-error)
1776 ("libsecret" ,libsecret)
1777 ("libsoup" ,libsoup)
1778 ("packagekit" ,packagekit)))
1779 (native-inputs
1780 `(("appstream-glib" ,appstream-glib)
1781 ("desktop-file-utils" ,desktop-file-utils)
1782 ("gettext" ,gettext-minimal)
1783 ("glib" ,glib "bin") ; for glib-compile-schemas.
1784 ("gobject-introspection" ,gobject-introspection)
1785 ("itstool" ,itstool)
1786 ("pkg-config" ,pkg-config)
1787 ("vala" ,vala)))
1788 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1789 (synopsis "Simple backup tool, for regular encrypted backups")
1790 (description
1791 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1792 uses duplicity as the backend, which supports incremental backups and storage
1793 either on a local, or remote machine via a number of methods.")
1794 (license license:gpl3+)))
1795
1796 (define-public gnome-commander
1797 (package
1798 (name "gnome-commander")
1799 (version "1.10.3")
1800 (source
1801 (origin
1802 (method url-fetch)
1803 (uri (string-append "mirror://gnome/sources/" name "/"
1804 (version-major+minor version) "/"
1805 "gnome-commander-" version ".tar.xz"))
1806 (sha256
1807 (base32 "0bis36awb73vhkncq8yr0qlnyaxynqkvmyqbg57ijqwd0m8hh4zg"))))
1808 (build-system glib-or-gtk-build-system)
1809 (native-inputs
1810 `(("desktop-file-utils" ,desktop-file-utils)
1811 ("gcc" ,gcc-8) ;required for -Wcast-function-type
1812 ("gettext" ,gettext-minimal)
1813 ("glib:bin" ,glib "bin")
1814 ("gobject-introspection" ,gobject-introspection)
1815 ("googletest" ,googletest)
1816 ("intltool" ,intltool)
1817 ("itstool" ,itstool)
1818 ("libtool" ,libtool)
1819 ("pkg-config" ,pkg-config)))
1820 (inputs
1821 `(("gconf" ,gconf)
1822 ("gnome-vfs" ,gnome-vfs)
1823 ("gtk+" ,gtk+-2)
1824 ("libxml2" ,libxml2)))
1825 (home-page "https://gcmd.github.io/")
1826 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1827 (description
1828 "GNOME Commander is a two-pane graphical file manager using GNOME
1829 libraries. It aims to fulfill the demands of more advanced users who
1830 like to focus on file management, their work through special applications
1831 and running smart commands.")
1832 (license license:gpl2+)))
1833
1834 (define-public gnome-user-docs
1835 (package
1836 (name "gnome-user-docs")
1837 (version "3.32.3")
1838 (source
1839 (origin
1840 (method url-fetch)
1841 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1842 (version-major+minor version)
1843 "/gnome-user-docs-" version ".tar.xz"))
1844 (sha256
1845 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1846 (build-system gnu-build-system)
1847 (native-inputs
1848 `(("gettext" ,gettext-minimal)
1849 ("itstool" ,itstool)
1850 ("pkg-config" ,pkg-config)
1851 ("xmllint" ,libxml2)))
1852 (synopsis "User documentation for the GNOME desktop")
1853 (description
1854 "The GNOME User Documentation explains how to use the GNOME desktop and its
1855 components. It covers usage and setup of the core GNOME programs by end-users
1856 and system administrators.")
1857 (home-page "https://live.gnome.org/DocumentationProject")
1858 (license license:cc-by3.0)))
1859
1860 (define-public gnome-getting-started-docs
1861 (package
1862 (name "gnome-getting-started-docs")
1863 (version "3.32.2")
1864 (source
1865 (origin
1866 (method url-fetch)
1867 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1868 (version-major+minor version)
1869 "/gnome-getting-started-docs-" version ".tar.xz"))
1870 (sha256
1871 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1872 (build-system gnu-build-system)
1873 (native-inputs
1874 `(("gettext" ,gettext-minimal)
1875 ("itstool" ,itstool)
1876 ("pkg-config" ,pkg-config)
1877 ("xmllint" ,libxml2)))
1878 (synopsis "Help to get new users started with the GNOME desktop")
1879 (description
1880 "The GNOME Getting Started Documentation contains GNOME's intuitive
1881 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1882
1883 It is normally used together with @command{gnome-initial-setup}, but is also
1884 useful as a tutorial and users' guide for new or less experienced users.")
1885 (home-page "https://live.gnome.org/DocumentationProject")
1886 (license license:cc-by-sa3.0)))
1887
1888 (define-public dia
1889 ;; This version from GNOME's repository includes fixes for compiling with
1890 ;; recent versions of the build tools. The latest activity on the
1891 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1892 ;; fixes since.
1893 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1894 (revision "2"))
1895 (package
1896 (name "dia")
1897 (version (git-version "0.97.3" revision commit))
1898 (source (origin
1899 (method git-fetch)
1900 (uri (git-reference
1901 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1902 (commit commit)))
1903 (file-name (git-file-name name version))
1904 (sha256
1905 (base32
1906 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1907 (build-system meson-build-system)
1908 (inputs
1909 `(("graphene" ,graphene)
1910 ("gtk+" ,gtk+-2)
1911 ("libxml2" ,libxml2)
1912 ("libxslt" ,libxslt)
1913 ("poppler" ,poppler)
1914 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1915 ;; ERROR: Unknown method "dependency" in object.
1916 ("python-2" ,python-2)))
1917 (native-inputs
1918 `(("appstream-glib" ,appstream-glib)
1919 ("docbook-xsl" ,docbook-xsl)
1920 ("glib" ,glib "bin")
1921 ("intltool" ,intltool)
1922 ("pkg-config" ,pkg-config)))
1923 (home-page "https://wiki.gnome.org/Apps/Dia")
1924 (synopsis "Diagram creation for GNOME")
1925 (description "Dia can be used to draw different types of diagrams, and
1926 includes support for UML static structure diagrams (class diagrams), entity
1927 relationship modeling, and network diagrams. The program supports various file
1928 formats like PNG, SVG, PDF and EPS.")
1929 (license license:gpl2+))))
1930
1931 ;; This is the unstable release, but it is required for the current stable
1932 ;; release of gvfs (1.38.1).
1933 (define-public libgdata
1934 (package
1935 (name "libgdata")
1936 (version "0.17.9")
1937 (source (origin
1938 (method url-fetch)
1939 (uri (string-append "mirror://gnome/sources/" name "/"
1940 (version-major+minor version) "/"
1941 name "-" version ".tar.xz"))
1942 (sha256
1943 (base32
1944 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1945 (build-system gnu-build-system)
1946 (arguments
1947 '(#:phases
1948 (modify-phases %standard-phases
1949 (add-before 'check 'disable-failing-tests
1950 (lambda _
1951 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1952 ;; They have been removed in libgdata 0.17.6, so just do the same.
1953 (substitute* "gdata/tests/Makefile"
1954 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1955 #t)))))
1956 (native-inputs
1957 `(("glib:bin" ,glib "bin")
1958 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1959 ("intltool" ,intltool)
1960 ("pkg-config" ,pkg-config)
1961 ("uhttpmock" ,uhttpmock)))
1962 (inputs
1963 `(("cyrus-sasl" ,cyrus-sasl)
1964 ("glib-networking" ,glib-networking)))
1965 (propagated-inputs
1966 `(("gcr" ,gcr)
1967 ("glib" ,glib)
1968 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1969 ("json-glib" ,json-glib)
1970 ("liboauth" ,liboauth)
1971 ("libsoup" ,libsoup)
1972 ("libxml2" ,libxml2)))
1973 (home-page "https://wiki.gnome.org/Projects/libgdata")
1974 (synopsis "Library for accessing online service APIs")
1975 (description
1976 "libgdata is a GLib-based library for accessing online service APIs using
1977 the GData protocol — most notably, Google's services. It provides APIs to
1978 access the common Google services, and has full asynchronous support.")
1979 (license license:lgpl2.1+)))
1980
1981 (define-public libgxps
1982 (package
1983 (name "libgxps")
1984 (version "0.3.2")
1985 (source (origin
1986 (method url-fetch)
1987 (uri (string-append "mirror://gnome/sources/" name "/"
1988 (version-major+minor version) "/"
1989 name "-" version ".tar.xz"))
1990 (sha256
1991 (base32
1992 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
1993 (build-system meson-build-system)
1994 (native-inputs
1995 `(("gobject-introspection" ,gobject-introspection)
1996 ("pkg-config" ,pkg-config)))
1997 (inputs
1998 `(("gtk+" ,gtk+)
1999 ("libjpeg" ,libjpeg-turbo)
2000 ("lcms" ,lcms)
2001 ("libtiff" ,libtiff)))
2002 (propagated-inputs
2003 ;; In Requires of libgxps.pc.
2004 `(("cairo" ,cairo)
2005 ("glib" ,glib)
2006 ("libarchive" ,libarchive)))
2007 (home-page "https://wiki.gnome.org/Projects/libgxps")
2008 (synopsis "GObject-based library for handling and rendering XPS documents")
2009 (description
2010 "libgxps is a GObject-based library for handling and rendering XPS
2011 documents. This package also contains binaries that can convert XPS documents
2012 to other formats.")
2013 (license license:lgpl2.1+)))
2014
2015 (define-public gnome-characters
2016 (package
2017 (name "gnome-characters")
2018 (version "3.30.0")
2019 (source
2020 (origin
2021 (method url-fetch)
2022 (uri (string-append "mirror://gnome/sources/"
2023 "gnome-characters/" (version-major+minor version)
2024 "/gnome-characters-" version ".tar.xz"))
2025 (sha256
2026 (base32
2027 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
2028 (build-system meson-build-system)
2029 (arguments
2030 `(#:glib-or-gtk? #t
2031 #:phases (modify-phases %standard-phases
2032 (add-after 'install 'wrap
2033 (lambda* (#:key outputs #:allow-other-keys)
2034 ;; GNOME Characters needs Typelib files from GTK and
2035 ;; gnome-desktop.
2036 (wrap-program (string-append (assoc-ref outputs "out")
2037 "/bin/gnome-characters")
2038 `("GI_TYPELIB_PATH" ":" prefix
2039 (,(getenv "GI_TYPELIB_PATH"))))
2040 #t)))))
2041 (native-inputs
2042 `(("gettext" ,gettext-minimal)
2043 ("glib:bin" ,glib "bin")
2044 ("gtk+:bin" ,gtk+ "bin")
2045 ("pkg-config" ,pkg-config)
2046 ("python" ,python-minimal)))
2047 (inputs
2048 `(("gjs" ,gjs)
2049 ("gtk+" ,gtk+)
2050 ("libunistring" ,libunistring)
2051 ("gnome-desktop" ,gnome-desktop)))
2052 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2053 (synopsis "Find and insert unusual characters")
2054 (description "Characters is a simple utility application to find
2055 and insert unusual characters. It allows you to quickly find the
2056 character you are looking for by searching for keywords.")
2057 (license license:bsd-3)))
2058
2059 (define-public gnome-common
2060 (package
2061 (name "gnome-common")
2062 (version "3.18.0")
2063 (source
2064 (origin
2065 (method url-fetch)
2066 (uri (string-append "mirror://gnome/sources/" name "/"
2067 (version-major+minor version) "/"
2068 name "-" version ".tar.xz"))
2069 (sha256
2070 (base32
2071 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2072 (build-system gnu-build-system)
2073 (home-page "https://www.gnome.org/")
2074 (synopsis "Bootstrap GNOME modules built from Git")
2075 (description "gnome-common contains various files needed to bootstrap
2076 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2077 can be used to configure a source directory checked out from Git and some
2078 commonly used macros.")
2079 (license license:gpl2+)))
2080
2081 (define-public gnome-contacts
2082 (package
2083 (name "gnome-contacts")
2084 (version "3.34")
2085 (source (origin
2086 (method url-fetch)
2087 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2088 (version-major+minor version) "/"
2089 name "-" version ".tar.xz"))
2090 (sha256
2091 (base32
2092 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
2093 (build-system meson-build-system)
2094 (arguments
2095 `(#:configure-flags '("-Dcheese=false")
2096 #:phases
2097 (modify-phases %standard-phases
2098 (add-after 'unpack 'generate-vapis
2099 (lambda* (#:key inputs #:allow-other-keys)
2100 ;; To generate goa's missing .vapi file
2101 (define goa
2102 (assoc-ref inputs "gnome-online-accounts:lib"))
2103
2104 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
2105 "--library=goa-1.0"
2106 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
2107 #t))
2108 (add-after 'unpack 'skip-gtk-update-icon-cache
2109 ;; Don't create 'icon-theme.cache'.
2110 (lambda _
2111 (substitute* "build-aux/meson_post_install.py"
2112 (("gtk-update-icon-cache") "true"))
2113 #t)))))
2114 (native-inputs
2115 `(("glib:bin" ,glib "bin")
2116 ("pkg-config" ,pkg-config)))
2117 (inputs
2118 `(("docbook-xml" ,docbook-xml)
2119 ("dockbook-xsl" ,docbook-xsl)
2120 ("evolution-data-server" ,evolution-data-server)
2121 ("gettext" ,gettext-minimal)
2122 ("gnome-desktop" ,gnome-desktop)
2123 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
2124 ("gobject-introspection" ,gobject-introspection)
2125 ("gst-plugins-base" ,gst-plugins-base)
2126 ("gtk+" ,gtk+)
2127 ("libgee" ,libgee)
2128 ("libxslt" ,libxslt)
2129 ("telepathy-glib" ,telepathy-glib)
2130 ("vala" ,vala)))
2131 (propagated-inputs
2132 `(("folks" ,folks)
2133 ("telepathy-mission-control" ,telepathy-mission-control)))
2134 (synopsis "GNOME's integrated address book")
2135 (description
2136 "GNOME Contacts organizes your contact information from online and
2137 offline sources, providing a centralized place for managing your contacts.")
2138 (home-page "https://wiki.gnome.org/Apps/Contacts")
2139 (license license:gpl2+)))
2140
2141 (define-public gnome-desktop
2142 (package
2143 (name "gnome-desktop")
2144 (version "3.34.2")
2145 (source
2146 (origin
2147 (method url-fetch)
2148 (uri (string-append "mirror://gnome/sources/" name "/"
2149 (version-major+minor version) "/"
2150 name "-" version ".tar.xz"))
2151 (sha256
2152 (base32
2153 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2154 (build-system meson-build-system)
2155 (arguments
2156 '(#:phases
2157 (modify-phases %standard-phases
2158 (add-before 'configure 'patch-path
2159 (lambda* (#:key inputs #:allow-other-keys)
2160 (let ((libc (assoc-ref inputs "libc")))
2161 (substitute* "libgnome-desktop/gnome-languages.c"
2162 (("\"locale\"")
2163 (string-append "\"" libc "/bin/locale\"")))
2164 #t)))
2165 (add-before 'configure 'patch-bubblewrap
2166 (lambda* (#:key inputs #:allow-other-keys)
2167 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2168 (("\"bwrap\",")
2169 (string-append "\"" (which "bwrap") "\","))
2170 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2171 (string-append "\"--ro-bind\", \""
2172 (%store-directory)
2173 "\", \""
2174 (%store-directory)
2175 "\","))
2176 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2177 #t))
2178 (add-before 'check 'pre-check
2179 (lambda* (#:key inputs #:allow-other-keys)
2180 ;; Tests require a running X server and locales.
2181 (system "Xvfb :1 &")
2182 (setenv "DISPLAY" ":1")
2183 (setenv "GUIX_LOCPATH"
2184 (string-append (assoc-ref inputs "glibc-locales")
2185 "/lib/locale"))
2186 #t)))))
2187 (native-inputs
2188 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2189 ("glibc-locales" ,glibc-locales) ; for tests
2190 ("gobject-introspection" ,gobject-introspection)
2191 ("itstool" ,itstool)
2192 ("intltool" ,intltool)
2193 ("pkg-config" ,pkg-config)
2194 ("xmllint" ,libxml2)
2195 ("xorg-server" ,xorg-server-for-tests)))
2196 (propagated-inputs
2197 ;; Required by gnome-desktop-3.0.pc.
2198 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2199 ("gtk+" ,gtk+)
2200 ("iso-codes" ,iso-codes)
2201 ("libseccomp" ,libseccomp)
2202 ("libx11" ,libx11)
2203 ("xkeyboard-config" ,xkeyboard-config)))
2204 (inputs
2205 `(("gdk-pixbuf" ,gdk-pixbuf)
2206 ("glib" ,glib)
2207 ("bubblewrap" ,bubblewrap)
2208 ("libxext" ,libxext)
2209 ("libxkbfile" ,libxkbfile)
2210 ("libxrandr" ,libxrandr)))
2211 (home-page "https://www.gnome.org/")
2212 (synopsis
2213 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2214 (description
2215 "The libgnome-desktop library provides API shared by several applications
2216 on the desktop, but that cannot live in the platform for various reasons.
2217 There is no API or ABI guarantee, although we are doing our best to provide
2218 stability. Documentation for the API is available with gtk-doc.
2219
2220 The gnome-about program helps find which version of GNOME is installed.")
2221 ; Some bits under the LGPL.
2222 (license license:gpl2+)))
2223
2224 (define-public gnome-doc-utils
2225 (package
2226 (name "gnome-doc-utils")
2227 (version "0.20.10")
2228 (source
2229 (origin
2230 (method url-fetch)
2231 (uri (string-append "mirror://gnome/sources/" name "/"
2232 (version-major+minor version) "/"
2233 name "-" version ".tar.xz"))
2234 (sha256
2235 (base32
2236 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2237 (build-system gnu-build-system)
2238 (native-inputs
2239 `(("intltool" ,intltool)
2240 ("docbook-xml" ,docbook-xml-4.4)
2241 ("python2-libxml2" ,python2-libxml2)
2242 ("libxml2" ,libxml2)
2243 ("libxslt" ,libxslt)
2244 ("pkg-config" ,pkg-config)
2245 ("python-2" ,python-2)))
2246 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2247 (synopsis
2248 "Documentation utilities for the Gnome project")
2249 (description
2250 "Gnome-doc-utils is a collection of documentation utilities for the
2251 Gnome project. It includes xml2po tool which makes it easier to translate
2252 and keep up to date translations of documentation.")
2253 (license license:gpl2+))) ; xslt under lgpl
2254
2255 (define-public gnome-disk-utility
2256 (package
2257 (name "gnome-disk-utility")
2258 (version "3.34.0")
2259 (source (origin
2260 (method url-fetch)
2261 (uri (string-append "mirror://gnome/sources/" name "/"
2262 (version-major+minor version) "/"
2263 name "-" version ".tar.xz"))
2264 (sha256
2265 (base32
2266 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2267 (build-system meson-build-system)
2268 (arguments
2269 '(#:configure-flags '("-Dlogind=libelogind")
2270 #:phases
2271 (modify-phases %standard-phases
2272 (add-after 'unpack 'skip-gtk-update-icon-cache
2273 ;; Don't create 'icon-theme.cache'.
2274 (lambda _
2275 (substitute* "meson_post_install.py"
2276 (("gtk-update-icon-cache") "true"))
2277 #t)))))
2278 (native-inputs
2279 `(("glib:bin" ,glib "bin")
2280 ("intltool" ,intltool)
2281 ("pkg-config" ,pkg-config)
2282 ("docbook-xml" ,docbook-xml)
2283 ("docbook-xsl" ,docbook-xsl)
2284 ("libxml2" ,libxml2)
2285 ("libxslt" ,libxslt)))
2286 (inputs
2287 `(("elogind" ,elogind)
2288 ("glib" ,glib)
2289 ("appstream-glib" ,appstream-glib)
2290 ("gnome-settings-daemon" ,gnome-settings-daemon)
2291 ("gtk+" ,gtk+)
2292 ("libcanberra" ,libcanberra)
2293 ("libdvdread" ,libdvdread)
2294 ("libnotify" ,libnotify)
2295 ("libpwquality" ,libpwquality)
2296 ("libsecret" ,libsecret)
2297 ("udisks" ,udisks)))
2298 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2299 (synopsis "Disk management utility for GNOME")
2300 (description "Disk management utility for GNOME.")
2301 (license license:gpl2+)))
2302
2303 (define-public gnome-font-viewer
2304 (package
2305 (name "gnome-font-viewer")
2306 (version "3.30.0")
2307 (source (origin
2308 (method url-fetch)
2309 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2310 (version-major+minor version)
2311 "/gnome-font-viewer-" version ".tar.xz"))
2312 (sha256
2313 (base32
2314 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2315 (build-system meson-build-system)
2316 (arguments
2317 '(#:phases
2318 (modify-phases %standard-phases
2319 (add-after 'unpack 'patch-post-install-script
2320 (lambda _
2321 (substitute* "meson-postinstall.sh"
2322 (("update-desktop-database") (which "true")))
2323 #t))
2324 (add-after 'install 'patch-thumbnailer
2325 (lambda* (#:key outputs #:allow-other-keys)
2326 (let ((out (assoc-ref outputs "out")))
2327 (substitute*
2328 (string-append
2329 out
2330 "/share/thumbnailers/gnome-font-viewer.thumbnailer")
2331 (("gnome-thumbnail-font")
2332 (string-append out "/bin/gnome-thumbnail-font"))))
2333 #t)))))
2334 (native-inputs
2335 `(("gettext" ,gettext-minimal)
2336 ("glib:bin" ,glib "bin")
2337 ("pkg-config" ,pkg-config)))
2338 (inputs
2339 `(("glib" ,glib)
2340 ("gnome-desktop" ,gnome-desktop)
2341 ("gtk+" ,gtk+)))
2342 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2343 (synopsis "GNOME Fonts")
2344 (description "Application to show you the fonts installed on your computer
2345 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2346 the font would look under various sizes.")
2347 (license license:gpl2+)))
2348
2349 (define-public gcr
2350 (package
2351 (name "gcr")
2352 (version "3.34.0")
2353 (source (origin
2354 (method url-fetch)
2355 (uri (string-append "mirror://gnome/sources/" name "/"
2356 (version-major+minor version) "/"
2357 name "-" version ".tar.xz"))
2358 (sha256
2359 (base32
2360 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2361 (build-system gnu-build-system)
2362 (arguments
2363 '(#:phases
2364 (modify-phases %standard-phases
2365 ;; These fail because /var/lib/dbus/machine-id is not present in the
2366 ;; build environment.
2367 (add-after 'unpack 'disable-failing-tests
2368 (lambda _
2369 (substitute* "Makefile.in"
2370 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2371 ""))
2372 #t))
2373 (add-before 'check 'pre-check
2374 (lambda _
2375 ;; Some tests expect to write to $HOME.
2376 (setenv "HOME" "/tmp")
2377 #t)))))
2378 (inputs
2379 `(("dbus" ,dbus)
2380 ("gnupg" ,gnupg) ;called as a child process during tests
2381 ("libgcrypt" ,libgcrypt)))
2382 (native-inputs
2383 `(("python" ,python-wrapper) ;for tests
2384 ("pkg-config" ,pkg-config)
2385 ("gettext" ,gettext-minimal)
2386 ("glib" ,glib "bin")
2387 ("gobject-introspection" ,gobject-introspection)
2388 ("libxml2" ,libxml2)
2389 ("vala" ,vala)
2390 ("xsltproc" ,libxslt)))
2391 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2392 (propagated-inputs
2393 `(("p11-kit" ,p11-kit)
2394 ("glib" ,glib)
2395 ("gtk+" ,gtk+)))
2396 (home-page "https://www.gnome.org")
2397 (synopsis "Libraries for displaying certificates and accessing key stores")
2398 (description
2399 "The GCR package contains libraries used for displaying certificates and
2400 accessing key stores. It also provides the viewer for crypto files on the
2401 GNOME Desktop.")
2402 (license license:lgpl2.1+)))
2403
2404 (define-public gdl
2405 (package
2406 (name "gdl")
2407 (version "3.34.0")
2408 (source (origin
2409 (method git-fetch)
2410 (uri (git-reference
2411 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2412 (commit (string-append "GDL_" (string-map (match-lambda
2413 (#\. #\_)
2414 (c c))
2415 version)))))
2416 (file-name (git-file-name name version))
2417 (sha256
2418 (base32
2419 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2420 (build-system gnu-build-system)
2421 (native-inputs
2422 `(("autoconf" ,autoconf)
2423 ("automake" ,automake)
2424 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2425 ("gnome-common" ,gnome-common)
2426 ("gtk-doc" ,gtk-doc/stable)
2427 ("intltool" ,intltool)
2428 ("pkg-config" ,pkg-config)
2429 ("libtool" ,libtool)
2430 ("which" ,which)))
2431 (inputs
2432 `(("libxml2" ,libxml2)))
2433 (propagated-inputs
2434 ;; The gdl-3.0.pc file 'Requires' GTK+.
2435 `(("gtk+" ,gtk+)))
2436 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2437 (synopsis "GNOME docking library")
2438 (description "This library provides docking features for gtk+.")
2439 (license license:lgpl2.1+)))
2440
2441 ;;; A minimal variant used to break a cycle with Inkscape.
2442 (define-public gdl-minimal
2443 (package/inherit gdl
2444 (name "gdl-minimal")
2445 (arguments
2446 '(#:phases
2447 (modify-phases %standard-phases
2448 (add-after 'unpack 'disable-doc-generation
2449 ;; XXX: There is no easy way to disable generating the
2450 ;; documentation.
2451 (lambda _
2452 (substitute* "configure.in"
2453 (("GTK_DOC_CHECK.*") "")
2454 (("docs/.*") ""))
2455 (substitute* "Makefile.am"
2456 (("gdl docs po") "gdl po"))
2457 #t)))))
2458 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2459
2460 (define-public libgnome-keyring
2461 (package
2462 (name "libgnome-keyring")
2463 (version "3.12.0")
2464 (source (origin
2465 (method url-fetch)
2466 (uri (string-append "mirror://gnome/sources/" name "/"
2467 (version-major+minor version) "/"
2468 name "-" version ".tar.xz"))
2469 (sha256
2470 (base32
2471 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2472 (build-system gnu-build-system)
2473 (inputs
2474 `(("libgcrypt" ,libgcrypt)
2475 ("dbus" ,dbus)))
2476 (native-inputs
2477 `(("pkg-config" ,pkg-config)
2478 ("glib" ,glib "bin")
2479 ("intltool" ,intltool)))
2480 (propagated-inputs
2481 ;; Referred to in .h files and .pc.
2482 `(("glib" ,glib)))
2483 (home-page "https://www.gnome.org")
2484 (synopsis "Accessing passwords from the GNOME keyring")
2485 (description
2486 "Client library to access passwords from the GNOME keyring.")
2487
2488 ;; Though a couple of files are LGPLv2.1+.
2489 (license license:lgpl2.0+)))
2490
2491 (define-public gnome-keyring
2492 (package
2493 (name "gnome-keyring")
2494 (version "3.34.0")
2495 (source (origin
2496 (method url-fetch)
2497 (uri (string-append "mirror://gnome/sources/" name "/"
2498 (version-major+minor version) "/"
2499 name "-" version ".tar.xz"))
2500 (sha256
2501 (base32
2502 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2503 (build-system gnu-build-system)
2504 (arguments
2505 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2506 ;not exist
2507 #:configure-flags
2508 (list
2509 (string-append "--with-pkcs11-config="
2510 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2511 (string-append "--with-pkcs11-modules="
2512 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2513 #:phases
2514 (modify-phases %standard-phases
2515 (add-after 'unpack 'fix-/bin/sh-reference
2516 (lambda _
2517 (substitute* "po/Makefile.in.in"
2518 (("/bin/sh") (which "sh")))
2519 #t))
2520 (add-after 'unpack 'fix-docbook
2521 (lambda* (#:key inputs #:allow-other-keys)
2522 (substitute* "docs/Makefile.am"
2523 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2524 (string-append (assoc-ref inputs "docbook-xsl")
2525 "/xml/xsl/docbook-xsl-"
2526 ,(package-version docbook-xsl)
2527 "/manpages/docbook.xsl")))
2528 (setenv "XML_CATALOG_FILES"
2529 (string-append (assoc-ref inputs "docbook-xml")
2530 "/xml/dtd/docbook/catalog.xml"))
2531 ;; Rerun the whole thing to avoid version mismatch ("This is
2532 ;; Automake 1.15.1, but the definition used by this
2533 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2534 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2535 (invoke "autoconf")
2536 (invoke "aclocal")
2537 (invoke "automake" "-ac"))))))
2538 (inputs
2539 `(("libgcrypt" ,libgcrypt)
2540 ("linux-pam" ,linux-pam)
2541 ("openssh" ,openssh)
2542 ("dbus" ,dbus)
2543 ("gcr" ,gcr)))
2544 (native-inputs
2545 `(("pkg-config" ,pkg-config)
2546 ("glib" ,glib "bin")
2547 ("glib" ,glib) ; for m4 macros
2548 ("python" ,python-2) ;for tests
2549 ("intltool" ,intltool)
2550 ("autoconf" ,autoconf)
2551 ("automake" ,automake)
2552 ("libxslt" ,libxslt) ;for documentation
2553 ("docbook-xml" ,docbook-xml-4.2)
2554 ("docbook-xsl" ,docbook-xsl)))
2555 (propagated-inputs
2556 `(("gcr" ,gcr)))
2557 (home-page "https://www.gnome.org")
2558 (synopsis "Daemon to store passwords and encryption keys")
2559 (description
2560 "gnome-keyring is a program that keeps passwords and other secrets for
2561 users. It is run as a daemon in the session, similar to ssh-agent, and other
2562 applications locate it via an environment variable or D-Bus.
2563
2564 The program can manage several keyrings, each with its own master password,
2565 and there is also a session keyring which is never stored to disk, but
2566 forgotten when the session ends.")
2567 (license license:lgpl2.1+)))
2568
2569 (define-public evince
2570 (package
2571 (name "evince")
2572 (version "3.36.5")
2573 (source (origin
2574 (method url-fetch)
2575 (uri (string-append "mirror://gnome/sources/evince/"
2576 (version-major+minor version) "/"
2577 "evince-" version ".tar.xz"))
2578 (sha256
2579 (base32
2580 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2581 (build-system glib-or-gtk-build-system)
2582 (arguments
2583 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2584 #:phases
2585 (modify-phases %standard-phases
2586 (add-before 'install 'skip-gtk-update-icon-cache
2587 ;; Don't create 'icon-theme.cache'.
2588 (lambda _
2589 (substitute* "data/Makefile"
2590 (("gtk-update-icon-cache") "true"))
2591 #t)))))
2592 (inputs
2593 `(("libarchive" ,libarchive)
2594 ("libgxps" ,libgxps)
2595 ("libspectre" ,libspectre)
2596 ("djvulibre" ,djvulibre)
2597 ("ghostscript" ,ghostscript)
2598 ("poppler" ,poppler)
2599 ("libtiff" ,libtiff)
2600 ;; TODO:
2601 ;; Build libkpathsea as a shared library for DVI support.
2602 ;; ("libkpathsea" ,texlive-bin)
2603 ("gnome-desktop" ,gnome-desktop)
2604 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2605 ("gspell" ,gspell)
2606 ("libgnome-keyring" ,libgnome-keyring)
2607 ("adwaita-icon-theme" ,adwaita-icon-theme)
2608 ("gdk-pixbuf" ,gdk-pixbuf)
2609 ("atk" ,atk)
2610 ("pango" ,pango)
2611 ("gtk+" ,gtk+)
2612 ("glib" ,glib)
2613 ("libxml2" ,libxml2)
2614 ("libsm" ,libsm)
2615 ("libice" ,libice)
2616 ("shared-mime-info" ,shared-mime-info)
2617 ("dconf" ,dconf)
2618 ("libcanberra" ,libcanberra)
2619 ("libsecret" ,libsecret)
2620
2621 ;; For tests.
2622 ("dogtail" ,python2-dogtail)))
2623 (native-inputs
2624 `(("itstool" ,itstool)
2625 ("intltool" ,intltool)
2626 ("glib" ,glib "bin")
2627 ("gobject-introspection" ,gobject-introspection)
2628 ("pkg-config" ,pkg-config)
2629 ("xmllint" ,libxml2)))
2630 (home-page "https://www.gnome.org/projects/evince/")
2631 (synopsis "GNOME's document viewer")
2632 (description
2633 "Evince is a document viewer for multiple document formats. It
2634 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2635 of Evince is to replace the multiple document viewers that exist
2636 on the GNOME Desktop with a single simple application.")
2637 (license license:gpl2+)))
2638
2639 (define-public gsettings-desktop-schemas
2640 (package
2641 (name "gsettings-desktop-schemas")
2642 (version "3.34.0")
2643 (source
2644 (origin
2645 (method url-fetch)
2646 (uri (string-append "mirror://gnome/sources/" name "/"
2647 (version-major+minor version) "/"
2648 name "-" version ".tar.xz"))
2649 (sha256
2650 (base32
2651 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2652 (build-system meson-build-system)
2653 (arguments
2654 '(#:phases (modify-phases %standard-phases
2655 (add-after 'unpack 'patch-schemas
2656 (lambda* (#:key inputs #:allow-other-keys)
2657 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2658 (substitute* (find-files "schemas"
2659 "\\.gschema\\.xml\\.in$")
2660 ;; Provide the correct file name of the default GNOME
2661 ;; background, 'adwaita-timed.xml'.
2662 (("@datadir@/backgrounds/gnome")
2663 (string-append theme "/share/backgrounds/gnome"))
2664 ;; Do not reference fonts, that may not exist.
2665 (("'Source Code Pro 10'") "'Monospace 11'"))
2666 #t))))))
2667 (inputs
2668 `(("glib" ,glib)
2669 ("gnome-backgrounds" ,gnome-backgrounds)))
2670 (native-inputs
2671 `(("intltool" ,intltool)
2672 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2673 ("gobject-introspection" ,gobject-introspection)
2674 ("pkg-config" ,pkg-config)))
2675 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2676 (synopsis
2677 "GNOME settings for various desktop components")
2678 (description
2679 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2680 for settings shared by various components of the GNOME desktop.")
2681 (license license:lgpl2.1+)))
2682
2683 (define-public python-liblarch
2684 (package
2685 (name "python-liblarch")
2686 (version "3.0.1")
2687 (source
2688 (origin
2689 (method git-fetch)
2690 (uri (git-reference
2691 (url "https://github.com/getting-things-gnome/liblarch")
2692 (commit (string-append "v" version))))
2693 (file-name (git-file-name name version))
2694 (sha256
2695 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2696 (build-system python-build-system)
2697 (arguments
2698 `(#:phases
2699 (modify-phases %standard-phases
2700 (add-before 'check 'start-xserver
2701 (lambda* (#:key inputs #:allow-other-keys)
2702 (system (format #f "~a/bin/Xvfb :1 &"
2703 (assoc-ref inputs "xorg-server")))
2704 (setenv "DISPLAY" ":1")
2705 #t)))))
2706 (native-inputs
2707 `(("xorg-server" ,xorg-server-for-tests)))
2708 (inputs
2709 `(("gtk+" ,gtk+)))
2710 (propagated-inputs
2711 `(("python-pygobject" ,python-pygobject)))
2712 (home-page "https://wiki.gnome.org/Projects/liblarch")
2713 (synopsis "Library to easily handle complex data structures")
2714 (description
2715 "Liblarch is a Python library built to easily handle data structures such
2716 as lists, trees and acyclic graphs. There's also a GTK binding that will
2717 allow you to use your data structure in a @code{Gtk.Treeview}.
2718
2719 Liblarch support multiple views of one data structure and complex filtering.
2720 That way, you have a clear separation between your data themselves (Model)
2721 and how they are displayed (View).")
2722 (license license:lgpl3+)))
2723
2724 (define-public gtg
2725 (package
2726 (name "gtg")
2727 (version "0.5")
2728 (source
2729 (origin
2730 (method git-fetch)
2731 (uri (git-reference
2732 (url "https://github.com/getting-things-gnome/gtg")
2733 (commit (string-append "v" version))))
2734 (file-name (git-file-name name version))
2735 (sha256
2736 (base32 "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403"))))
2737 (build-system meson-build-system)
2738 (arguments
2739 `(#:glib-or-gtk? #t
2740 #:phases
2741 (modify-phases %standard-phases
2742 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2743 (lambda* (#:key outputs #:allow-other-keys)
2744 (let ((prog (string-append (assoc-ref outputs "out")
2745 "/bin/gtg"))
2746 (pylib (string-append (assoc-ref outputs "out")
2747 "/lib/python"
2748 ,(version-major+minor
2749 (package-version python))
2750 "/site-packages")))
2751 (wrap-program prog
2752 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
2753 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2754 #t))))))
2755 (native-inputs
2756 `(("desktop-file-utils" ,desktop-file-utils)
2757 ("gettext" ,gettext-minimal)
2758 ("glib:bin" ,glib "bin")
2759 ("gobject-introspection" ,gobject-introspection)
2760 ("gtk+:bin" ,gtk+ "bin")
2761 ("pkg-config" ,pkg-config)))
2762 (inputs
2763 `(("gdk-pixbuf" ,gdk-pixbuf+svg)
2764 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2765 ("gtk+" ,gtk+)
2766 ("pango" ,pango)
2767 ("python-dbus" ,python-dbus)
2768 ("python-liblarch" ,python-liblarch)
2769 ("python-lxml" ,python-lxml)
2770 ("python-pycairo" ,python-pycairo)
2771 ("python-pygobject" ,python-pygobject)
2772 ("python-pyxdg" ,python-pyxdg)))
2773 (home-page "https://wiki.gnome.org/Apps/GTG")
2774 (synopsis "Personal organizer for the GNOME desktop")
2775 (description
2776 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2777 organizer for the GNOME desktop environment inspired by the Getting Things
2778 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2779 and ease of use in mind so it can be used as more than just GTD software.
2780 GTG is intended to help you track everything you need to do and need to
2781 know, from small tasks to large projects.")
2782 (license license:gpl3+)))
2783
2784 (define-public icon-naming-utils
2785 (package
2786 (name "icon-naming-utils")
2787 (version "0.8.90")
2788 (source
2789 (origin
2790 (method url-fetch)
2791 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2792 version ".tar.bz2"))
2793 (sha256
2794 (base32
2795 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2796 (build-system gnu-build-system)
2797 (inputs
2798 `(("perl" ,perl)
2799 ("perl-xml-simple" ,perl-xml-simple)))
2800 (arguments
2801 '(#:phases
2802 (modify-phases %standard-phases
2803 (add-after 'install 'set-load-paths
2804 ;; Tell 'icon-name-mapping' where XML::Simple is.
2805 (lambda* (#:key outputs #:allow-other-keys)
2806 (let* ((out (assoc-ref outputs "out"))
2807 (prog (string-append out "/libexec/icon-name-mapping")))
2808 (wrap-program
2809 prog
2810 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2811 #t)))))
2812 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2813 (synopsis
2814 "Utility to implement the Freedesktop Icon Naming Specification")
2815 (description
2816 "To help with the transition to the Freedesktop Icon Naming
2817 Specification, the icon naming utility maps the icon names used by the
2818 GNOME and KDE desktops to the icon names proposed in the specification.")
2819 (license license:lgpl2.1+)))
2820
2821 (define-public gnome-icon-theme
2822 (package
2823 (name "gnome-icon-theme")
2824 (version "3.12.0")
2825 (source
2826 (origin
2827 (method url-fetch)
2828 (uri (string-append "mirror://gnome/sources/" name "/"
2829 (version-major+minor version) "/"
2830 name "-" version ".tar.xz"))
2831 (sha256
2832 (base32
2833 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2834 (build-system gnu-build-system)
2835 (arguments
2836 '(#:configure-flags
2837 ;; Don't create 'icon-theme.cache'.
2838 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2839 (true (string-append coreutils "/bin/true")))
2840 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2841 (native-inputs
2842 `(("icon-naming-utils" ,icon-naming-utils)
2843 ("intltool" ,intltool)
2844 ("pkg-config" ,pkg-config)))
2845 (home-page "https://wiki.gnome.org/Personalization")
2846 (synopsis "GNOME icon theme")
2847 (description "Icons for the GNOME desktop.")
2848 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2849
2850 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2851 (define-public adwaita-icon-theme
2852 (package (inherit gnome-icon-theme)
2853 (name "adwaita-icon-theme")
2854 (version "3.34.3")
2855 (source (origin
2856 (method url-fetch)
2857 (uri (string-append "mirror://gnome/sources/" name "/"
2858 (version-major+minor version) "/"
2859 name "-" version ".tar.xz"))
2860 (sha256
2861 (base32
2862 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2863 (native-inputs
2864 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2865
2866 (define-public tango-icon-theme
2867 (package
2868 (name "tango-icon-theme")
2869 (version "0.8.90")
2870 (source (origin
2871 (method url-fetch)
2872 (uri (string-append "http://tango.freedesktop.org/releases/"
2873 "tango-icon-theme-" version ".tar.bz2"))
2874 (sha256
2875 (base32
2876 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2877 (build-system gnu-build-system)
2878 (native-inputs
2879 `(("icon-naming-utils" ,icon-naming-utils)
2880 ("intltool" ,intltool)
2881 ("imagemagick" ,imagemagick)
2882 ("pkg-config" ,pkg-config)))
2883 (home-page "http://tango-project.org/")
2884 (synopsis "Tango icon theme")
2885 (description "This is an icon theme that follows the Tango visual
2886 guidelines.")
2887 (license license:public-domain)))
2888
2889 (define-public shared-mime-info
2890 (package
2891 (name "shared-mime-info")
2892 (version "1.15")
2893 (source (origin
2894 (method url-fetch)
2895 (uri (string-append
2896 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2897 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2898 ".tar.xz"))
2899 (sha256
2900 (base32
2901 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2902 (build-system gnu-build-system)
2903 (arguments
2904 ;; The build system appears not to be parallel-safe.
2905 '(#:parallel-build? #f))
2906 (inputs
2907 `(("glib" ,glib)
2908 ("libxml2" ,libxml2)))
2909 (native-inputs
2910 `(("gettext" ,gettext-minimal)
2911 ("itstool" ,itstool)
2912 ("pkg-config" ,pkg-config)))
2913 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2914 (synopsis "Database of common MIME types")
2915 (description
2916 "The shared-mime-info package contains the core database of common types
2917 and the update-mime-database command used to extend it. It requires glib2 to
2918 be installed for building the update command. Additionally, it uses intltool
2919 for translations, though this is only a dependency for the maintainers. This
2920 database is translated at Transifex.")
2921 (license license:gpl2+)))
2922
2923 (define-public system-config-printer
2924 (package
2925 (name "system-config-printer")
2926 (version "1.5.15")
2927 (source
2928 (origin
2929 (method url-fetch)
2930 (uri (string-append
2931 "https://github.com/OpenPrinting/system-config-printer/releases/"
2932 "download/v" version
2933 "/system-config-printer-" version ".tar.xz"))
2934 (sha256
2935 (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv"))))
2936 (build-system glib-or-gtk-build-system)
2937 (arguments
2938 `(#:imported-modules ((guix build python-build-system)
2939 ,@%glib-or-gtk-build-system-modules)
2940 #:phases
2941 (modify-phases %standard-phases
2942 (add-after 'unpack 'patch-Makefile.am
2943 (lambda _
2944 ;; The Makefile generates some scripts, so set a valid shebang
2945 (substitute* "Makefile.am"
2946 (("/bin/bash") (which "bash")))
2947 (delete-file "configure")
2948 #t))
2949 (add-after 'unpack 'patch-docbook-xml
2950 (lambda* (#:key inputs #:allow-other-keys)
2951 ;; Modify the man XML otherwise xmlto tries to access the network
2952 (substitute* "man/system-config-printer.xml"
2953 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2954 (string-append (assoc-ref inputs "docbook-xml")
2955 "/xml/dtd/docbook/")))
2956 #t))
2957 (add-after 'install 'wrap-for-python
2958 (@@ (guix build python-build-system) wrap))
2959 (add-after 'install 'wrap
2960 (lambda* (#:key outputs #:allow-other-keys)
2961 (let ((out (assoc-ref outputs "out"))
2962 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2963 (for-each
2964 (lambda (program)
2965 (wrap-program program
2966 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2967 (map (lambda (name)
2968 (string-append out "/bin/" name))
2969 '("system-config-printer"
2970 "system-config-printer-applet"
2971 "install-printerdriver"
2972 "scp-dbus-service"))))
2973 #t)))))
2974 (inputs
2975 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2976 ("gobject-introspection" ,gobject-introspection)
2977 ("python" ,python)
2978 ("cups" ,cups)
2979 ("gtk+" ,gtk+)
2980 ("python-dbus" ,python-dbus)
2981 ("python-pygobject" ,python-pygobject)
2982 ("python-pycups" ,python-pycups)
2983 ("python-requests" ,python-requests)
2984 ("python-pycairo" ,python-pycairo)
2985 ("libnotify" ,libnotify)
2986 ("packagekit" ,packagekit)))
2987 (native-inputs
2988 `(("pkg-config" ,pkg-config)
2989 ("desktop-file-utils" ,desktop-file-utils)
2990 ("glib" ,glib)
2991 ("autoconf" ,autoconf)
2992 ("automake" ,automake)
2993 ("intltool" ,intltool)
2994 ("xmlto" ,xmlto)
2995 ("docbook-xml" ,docbook-xml-4.1.2)
2996 ("docbook-xsl" ,docbook-xsl)
2997 ("libxml2" ,libxml2)))
2998 (home-page "https://github.com/zdohnal/system-config-printer")
2999 (synopsis "CUPS administration tool")
3000 (description
3001 "system-config-printer is a CUPS administration tool. It's written in
3002 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
3003 configuring CUPS.")
3004 (license license:gpl2+)))
3005
3006 (define-public hicolor-icon-theme
3007 (package
3008 (name "hicolor-icon-theme")
3009 (version "0.17")
3010 (source
3011 (origin
3012 (method url-fetch)
3013 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3014 "hicolor-icon-theme-" version ".tar.xz"))
3015 (sha256
3016 (base32
3017 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3018 (build-system gnu-build-system)
3019 (arguments
3020 `(#:tests? #f)) ; no check target
3021 (home-page "https://icon-theme.freedesktop.org/releases/")
3022 (synopsis
3023 "Freedesktop icon theme")
3024 (description
3025 "Freedesktop icon theme.")
3026 (license license:gpl2)))
3027
3028 (define-public libnotify
3029 (package
3030 (name "libnotify")
3031 (version "0.7.9")
3032 (source
3033 (origin
3034 (method url-fetch)
3035 (uri (string-append "mirror://gnome/sources/" name "/"
3036 (version-major+minor version) "/"
3037 name "-" version ".tar.xz"))
3038 (sha256
3039 (base32
3040 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3041 (build-system meson-build-system)
3042 (arguments
3043 `(#:phases
3044 (modify-phases %standard-phases
3045 (add-after 'unpack 'fix-docbook
3046 (lambda* (#:key inputs #:allow-other-keys)
3047 ;; Don't attempt to download XSL schema.
3048 (substitute* "meson.build"
3049 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3050 /manpages/docbook.xsl")
3051 (string-append (assoc-ref inputs "docbook-xsl")
3052 "/xml/xsl/docbook-xsl-"
3053 ,(package-version docbook-xsl)
3054 "/manpages/docbook.xsl")))
3055 #t)))))
3056 (propagated-inputs
3057 `(;; In Requires of libnotify.pc.
3058 ("gdk-pixbuf" ,gdk-pixbuf)
3059 ("glib" ,glib)))
3060 (inputs
3061 `(("gtk+" ,gtk+)
3062 ("libpng" ,libpng)))
3063 (native-inputs
3064 `(("pkg-config" ,pkg-config)
3065 ("glib" ,glib "bin")
3066 ("gobject-introspection" ,gobject-introspection)
3067
3068 ;; For the documentation.
3069 ("gtk-doc" ,gtk-doc/stable)
3070 ("xsltproc" ,libxslt)
3071 ("docbook-xsl" ,docbook-xsl)))
3072 (home-page "https://developer-next.gnome.org/libnotify/")
3073 (synopsis
3074 "GNOME desktop notification library")
3075 (description
3076 "Libnotify is a library that sends desktop notifications to a
3077 notification daemon, as defined in the Desktop Notifications spec. These
3078 notifications can be used to inform the user about an event or display
3079 some form of information without getting in the user's way.")
3080 (license license:lgpl2.1+)))
3081
3082 (define-public libpeas
3083 (package
3084 (name "libpeas")
3085 (version "1.28.0")
3086 (source
3087 (origin
3088 (method url-fetch)
3089 (uri (string-append "mirror://gnome/sources/" name "/"
3090 (version-major+minor version) "/"
3091 name "-" version ".tar.xz"))
3092 (sha256
3093 (base32
3094 "05cb7drn6arc4gi02wgsvzibigi2riz5gnfnmlb0zmbfnj9ikna2"))))
3095 (build-system meson-build-system)
3096 (arguments
3097 '(#:phases
3098 (modify-phases %standard-phases
3099 (add-before 'check 'start-xserver
3100 (lambda* (#:key inputs #:allow-other-keys)
3101 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3102 (disp ":1"))
3103 (setenv "DISPLAY" disp)
3104 ;; Tests require a running X server.
3105 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3106 #t))))))
3107 (inputs
3108 `(("gtk+" ,gtk+)
3109 ("glade" ,glade3)
3110 ("python" ,python)
3111 ("python-pygobject" ,python-pygobject)))
3112 (native-inputs
3113 `(("pkg-config" ,pkg-config)
3114 ("gettext" ,gettext-minimal)
3115 ("glib:bin" ,glib "bin")
3116 ("gobject-introspection" ,gobject-introspection)
3117 ("xorg-server" ,xorg-server-for-tests)))
3118 (propagated-inputs
3119 ;; The .pc file "Requires" gobject-introspection.
3120 `(("gobject-introspection" ,gobject-introspection)))
3121 (home-page "https://wiki.gnome.org/Libpeas")
3122 (synopsis "GObject plugin system")
3123 (description
3124 "Libpeas is a gobject-based plugin engine, targeted at giving every
3125 application the chance to assume its own extensibility. It also has a set of
3126 features including, but not limited to: multiple extension points; on-demand
3127 (lazy) programming language support for C, Python and JS; simplicity of the
3128 API.")
3129 (license license:lgpl2.0+)))
3130
3131 (define-public gtkglext
3132 (package
3133 (name "gtkglext")
3134 (version "1.2.0")
3135 (source (origin
3136 (method url-fetch)
3137 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3138 version "/gtkglext-" version ".tar.gz"))
3139 (sha256
3140 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3141 (patches (search-patches
3142 "gtkglext-disable-disable-deprecated.patch"))))
3143 (build-system gnu-build-system)
3144 (arguments
3145 `(#:phases
3146 (modify-phases %standard-phases
3147 ;; Fix a collision between a local variable and a definition from
3148 ;; glibc's string.h.
3149 (add-after 'unpack 'fix-collision
3150 (lambda _
3151 (substitute* "gdk/gdkglshapes.c"
3152 ((" index") " triangle_index"))
3153 #t)))))
3154 (inputs `(("gtk+" ,gtk+-2)
3155 ("mesa" ,mesa)
3156 ("glu" ,glu)
3157 ("libx11" ,libx11)
3158 ("libxt" ,libxt)))
3159 (native-inputs `(("pkg-config" ,pkg-config)
3160 ("glib" ,glib "bin")))
3161 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
3162 (home-page "https://projects.gnome.org/gtkglext")
3163 (synopsis "OpenGL extension to GTK+")
3164 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3165 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3166 API add-ons to make GTK+ widgets OpenGL-capable.")
3167 (license license:lgpl2.1+)))
3168
3169 (define-public glade3
3170 (package
3171 (name "glade")
3172 (version "3.36.0")
3173 (source (origin
3174 (method url-fetch)
3175 (uri (string-append "mirror://gnome/sources/" name "/"
3176 (version-major+minor version) "/"
3177 name "-" version ".tar.xz"))
3178 (sha256
3179 (base32
3180 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
3181 (build-system glib-or-gtk-build-system)
3182 (arguments
3183 `(#:phases
3184 (modify-phases %standard-phases
3185 (add-before 'configure 'fix-docbook
3186 (lambda* (#:key inputs #:allow-other-keys)
3187 (substitute* "man/Makefile.in"
3188 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
3189 (string-append (assoc-ref inputs "docbook-xsl")
3190 "/xml/xsl/docbook-xsl-"
3191 ,(package-version docbook-xsl)
3192 "/manpages/docbook.xsl")))
3193 #t))
3194 (add-before 'check 'pre-check
3195 (lambda _
3196 (setenv "HOME" "/tmp")
3197 ;; Tests require a running X server.
3198 (system "Xvfb :1 &")
3199 (setenv "DISPLAY" ":1")
3200 #t)))))
3201 (inputs
3202 `(("gtk+" ,gtk+)
3203 ("libxml2" ,libxml2)))
3204 (native-inputs
3205 `(("hicolor-icon-theme" ,hicolor-icon-theme)
3206 ("intltool" ,intltool)
3207 ("itstool" ,itstool)
3208 ("libxslt" ,libxslt) ;for xsltproc
3209 ("docbook-xml" ,docbook-xml-4.2)
3210 ("docbook-xsl" ,docbook-xsl)
3211 ("python" ,python-2)
3212 ("pkg-config" ,pkg-config)
3213 ("xorg-server" ,xorg-server-for-tests)))
3214 (home-page "https://glade.gnome.org")
3215 (synopsis "GTK+ rapid application development tool")
3216 (description "Glade is a rapid application development (RAD) tool to
3217 enable quick & easy development of user interfaces for the GTK+ toolkit and
3218 the GNOME desktop environment.")
3219 (license license:lgpl2.0+)
3220 (native-search-paths (list (search-path-specification
3221 (variable "GLADE_CATALOG_SEARCH_PATH")
3222 (files '("share/glade/catalogs")))
3223 (search-path-specification
3224 (variable "GLADE_MODULE_SEARCH_PATH")
3225 (files '("lib/glade/modules")))))))
3226
3227 (define-public libcroco
3228 (package
3229 (name "libcroco")
3230 (version "0.6.13")
3231 (source (origin
3232 (method url-fetch)
3233 (uri (string-append "mirror://gnome/sources/" name "/"
3234 (version-major+minor version) "/"
3235 name "-" version ".tar.xz"))
3236 (patches (search-patches "libcroco-CVE-2020-12825.patch"))
3237 (sha256
3238 (base32
3239 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3240 (build-system gnu-build-system)
3241 (native-inputs
3242 `(("pkg-config" ,pkg-config)))
3243 (inputs
3244 `(("glib" ,glib)
3245 ("libxml2" ,libxml2)
3246 ("zlib" ,zlib)))
3247 (home-page "https://github.com/GNOME/libcroco")
3248 (synopsis "CSS2 parsing and manipulation library")
3249 (description
3250 "Libcroco is a standalone CSS2 parsing and manipulation library.
3251 The parser provides a low level event driven SAC-like API and a CSS object
3252 model like API. Libcroco provides a CSS2 selection engine and an experimental
3253 XML/CSS rendering engine.")
3254
3255 ;; LGPLv2.1-only.
3256 (license license:lgpl2.1)))
3257
3258 (define-public libgsf
3259 (package
3260 (name "libgsf")
3261 (version "1.14.47")
3262 (source (origin
3263 (method url-fetch)
3264 (uri (string-append "mirror://gnome/sources/" name "/"
3265 (version-major+minor version) "/"
3266 name "-" version ".tar.xz"))
3267 (sha256
3268 (base32
3269 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3270 (build-system gnu-build-system)
3271 (arguments
3272 '(#:configure-flags '("--disable-static")))
3273 (native-inputs
3274 `(("pkg-config" ,pkg-config)
3275 ("gettext" ,gettext-minimal)
3276
3277 ;; For tests.
3278 ("perl" ,perl)
3279 ("perl-xml-parser" ,perl-xml-parser)))
3280 (inputs
3281 `(("zlib" ,zlib)
3282 ("bzip2" ,bzip2)))
3283 (propagated-inputs
3284 `(("gdk-pixbuf" ,gdk-pixbuf)
3285 ("glib" ,glib)
3286 ("libxml2" ,libxml2)))
3287 (home-page "https://www.gnome.org/projects/libgsf")
3288 (synopsis "GNOME's Structured File Library")
3289 (description
3290 "Libgsf aims to provide an efficient extensible I/O abstraction for
3291 dealing with different structured file formats.")
3292
3293 ;; LGPLv2.1-only.
3294 (license license:lgpl2.1)))
3295
3296 (define-public librsvg
3297 (package
3298 (name "librsvg")
3299 (version "2.40.21")
3300 (source (origin
3301 (method url-fetch)
3302 (uri (string-append "mirror://gnome/sources/" name "/"
3303 (version-major+minor version) "/"
3304 name "-" version ".tar.xz"))
3305 (sha256
3306 (base32
3307 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3308 (build-system gnu-build-system)
3309 (arguments
3310 `(#:configure-flags
3311 (list "--disable-static"
3312 "--enable-vala") ; needed for e.g. gnome-mines
3313 #:phases
3314 (modify-phases %standard-phases
3315 (add-before 'configure 'pre-configure
3316 (lambda* (#:key inputs #:allow-other-keys)
3317 (substitute* "gdk-pixbuf-loader/Makefile.in"
3318 ;; By default the gdk-pixbuf loader is installed under
3319 ;; gdk-pixbuf's prefix. Work around that.
3320 (("gdk_pixbuf_moduledir = .*$")
3321 (string-append "gdk_pixbuf_moduledir = "
3322 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3323 "loaders\n"))
3324 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3325 (("gdk_pixbuf_cache_file = .*$")
3326 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3327 #t))
3328 (add-before 'check 'remove-failing-tests
3329 (lambda _
3330 (with-directory-excursion "tests/fixtures/reftests"
3331 (for-each delete-file
3332 '(;; This test fails on i686:
3333 "svg1.1/masking-path-04-b.svg"
3334 ;; This test fails on armhf:
3335 "svg1.1/masking-mask-01-b.svg"
3336 ;; This test fails on aarch64:
3337 "bugs/777834-empty-text-children.svg")))
3338 #t)))))
3339 (native-inputs
3340 `(("pkg-config" ,pkg-config)
3341 ("vala" ,vala)
3342 ("glib" ,glib "bin") ; glib-mkenums, etc.
3343 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3344 (inputs
3345 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3346 ;; this ancient version of librsvg.
3347 ("pango" ,pango-1.42)
3348 ("libcroco" ,libcroco)
3349 ("bzip2" ,bzip2)
3350 ("libgsf" ,libgsf)
3351 ("libxml2" ,libxml2)))
3352 (propagated-inputs
3353 ;; librsvg-2.0.pc refers to all of that.
3354 `(("cairo" ,cairo)
3355 ("gdk-pixbuf" ,gdk-pixbuf)
3356 ("glib" ,glib)))
3357 (home-page "https://wiki.gnome.org/LibRsvg")
3358 (synopsis "Render SVG files using Cairo")
3359 (description
3360 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3361 library.")
3362 (license license:lgpl2.0+)))
3363
3364 (define-public librsvg-next
3365 (package
3366 (name "librsvg")
3367 (version "2.50.3")
3368 (source (origin
3369 (method url-fetch)
3370 (uri (string-append "mirror://gnome/sources/librsvg/"
3371 (version-major+minor version) "/"
3372 "librsvg-" version ".tar.xz"))
3373 (sha256
3374 (base32
3375 "0n79i4wj9hm0d3bbn4xvknq5ylhqs16pvhaqr1rxspx9wfc8lad4"))
3376 (modules '((guix build utils)))
3377 (snippet
3378 '(begin (delete-file-recursively "vendor")
3379 #t))))
3380 (build-system cargo-build-system)
3381 (outputs '("out" "doc"))
3382 (arguments
3383 `(#:install-source? #f
3384 #:modules
3385 ((guix build cargo-build-system)
3386 (guix build utils)
3387 ((guix build gnu-build-system) #:prefix gnu:))
3388 #:cargo-inputs
3389 (("rust-bitflags" ,rust-bitflags-1)
3390 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3391 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3392 ("rust-cast" ,rust-cast-0.2)
3393 ("rust-cssparser" ,rust-cssparser-0.27)
3394 ("rust-data-url" ,rust-data-url-0.1)
3395 ("rust-encoding" ,rust-encoding-0.2)
3396 ("rust-float-cmp" ,rust-float-cmp-0.8)
3397 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3398 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3399 ("rust-gio" ,rust-gio-0.8)
3400 ("rust-gio-sys" ,rust-gio-sys-0.9)
3401 ("rust-glib" ,rust-glib-0.9)
3402 ("rust-glib-sys" ,rust-glib-sys-0.9)
3403 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3404 ("rust-itertools" ,rust-itertools-0.9)
3405 ("rust-language-tags" ,rust-language-tags-0.2)
3406 ("rust-libc" ,rust-libc-0.2)
3407 ("rust-locale-config" ,rust-locale-config-0.3)
3408 ("rust-markup5ever" ,rust-markup5ever-0.10)
3409 ("rust-nalgebra" ,rust-nalgebra-0.21)
3410 ("rust-num-traits" ,rust-num-traits-0.2)
3411 ("rust-once-cell" ,rust-once-cell-1)
3412 ("rust-pkg-config" ,rust-pkg-config-0.3)
3413 ("rust-pango" ,rust-pango-0.8)
3414 ("rust-pango-sys" ,rust-pango-sys-0.9)
3415 ("rust-pangocairo" ,rust-pangocairo-0.9)
3416 ("rust-rayon" ,rust-rayon-1)
3417 ("rust-rctree" ,rust-rctree-0.3)
3418 ("rust-rgb" ,rust-rgb-0.8)
3419 ("rust-regex" ,rust-regex-1)
3420 ("rust-selectors" ,rust-selectors-0.22)
3421 ("rust-string-cache" ,rust-string-cache-0.8)
3422 ("rust-tinyvec" ,rust-tinyvec-0.3)
3423 ("rust-url" ,rust-url-2)
3424 ("rust-xml5ever" ,rust-xml5ever-0.16))
3425 #:cargo-development-inputs
3426 (("rust-assert-cmd" ,rust-assert-cmd-1)
3427 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3428 ("rust-chrono" ,rust-chrono-0.4)
3429 ("rust-criterion" ,rust-criterion-0.3)
3430 ("rust-float-cmp" ,rust-float-cmp-0.8)
3431 ("rust-lopdf" ,rust-lopdf-0.26)
3432 ("rust-png" ,rust-png-0.16)
3433 ("rust-predicates" ,rust-predicates-1)
3434 ("rust-tempfile" ,rust-tempfile-3))
3435 #:phases
3436 (modify-phases %standard-phases
3437 (add-after 'unpack 'patch-docbook-xml
3438 (lambda* (#:key inputs #:allow-other-keys)
3439 (with-directory-excursion "doc"
3440 (substitute* "rsvg-docs.xml"
3441 (("http://www.oasis-open.org/docbook/xml/4.3/")
3442 (string-append (assoc-ref inputs "docbook-xml")
3443 "/xml/dtd/docbook/"))))
3444 #t))
3445 (add-after 'unpack 'prepare-for-build
3446 (lambda _
3447 ;; In lieu of #:make-flags
3448 (setenv "CC" ,(cc-for-target))
3449 ;; Something about the build environment resists building
3450 ;; successfully with the '--locked' flag.
3451 (substitute* '("Makefile.am" "Makefile.in")
3452 (("--locked") ""))
3453 #t))
3454 (add-before 'configure 'pre-configure
3455 (lambda _
3456 (substitute* "gdk-pixbuf-loader/Makefile.in"
3457 ;; By default the gdk-pixbuf loader is installed under
3458 ;; gdk-pixbuf's prefix. Work around that.
3459 (("gdk_pixbuf_moduledir = .*$")
3460 (string-append "gdk_pixbuf_moduledir = "
3461 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3462 "loaders\n"))
3463 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3464 (("gdk_pixbuf_cache_file = .*$")
3465 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3466 #t))
3467 (add-after 'configure 'gnu-configure
3468 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3469 ((assoc-ref gnu:%standard-phases 'configure)
3470 #:native-inputs native-inputs
3471 #:inputs inputs
3472 #:outputs outputs
3473 #:configure-flags
3474 (list "--disable-static"
3475 "--enable-vala"
3476 (string-append "--with-html-dir="
3477 (assoc-ref %outputs "doc")
3478 "/share/gtk-doc/html")))))
3479 (add-after 'configure 'dont-vendor-self
3480 (lambda* (#:key vendor-dir #:allow-other-keys)
3481 ;; Don't keep the whole tarball in the vendor directory
3482 (delete-file-recursively
3483 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3484 #t))
3485 (replace 'build
3486 (assoc-ref gnu:%standard-phases 'build))
3487 (add-before 'check 'ignore-failing-tests
3488 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3489 (lambda _
3490 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3491 (("fn background_color_option_invalid_color_yields_error" all)
3492 (string-append "#[ignore] " all))
3493 (("fn empty_input_yields_error" all)
3494 (string-append "#[ignore] " all))
3495 (("fn empty_svg_yields_error" all)
3496 (string-append "#[ignore] " all))
3497 (("fn env_source_data_epoch_empty" all)
3498 (string-append "#[ignore] " all))
3499 (("fn env_source_data_epoch_no_digits" all)
3500 (string-append "#[ignore] " all))
3501 (("fn env_source_data_epoch_trailing_garbage" all)
3502 (string-append "#[ignore] " all))
3503 (("fn export_id_option_error" all)
3504 (string-append "#[ignore] " all))
3505 (("fn huge_zoom_factor_yields_error" all)
3506 (string-append "#[ignore] " all))
3507 (("fn multiple_input_files_not_allowed_for_png_output" all)
3508 (string-append "#[ignore] " all))
3509 (("fn stylesheet_option_error" all)
3510 (string-append "#[ignore] " all)))
3511 #t))
3512 (replace 'check
3513 (lambda* args
3514 ((assoc-ref gnu:%standard-phases 'check)
3515 #:test-target "check")))
3516 (replace 'install
3517 (assoc-ref gnu:%standard-phases 'install)))))
3518 (native-inputs
3519 `(("docbook-xml" ,docbook-xml-4.3)
3520 ("glib" ,glib "bin")
3521 ("gobject-introspection" ,gobject-introspection)
3522 ("pkg-config" ,pkg-config)
3523 ("python" ,python-wrapper)
3524 ("ruby" ,ruby)
3525 ("vala" ,vala)))
3526 (inputs
3527 `(("bzip2" ,bzip2)
3528 ("fontconfig" ,fontconfig)
3529 ("freetype" ,freetype)
3530 ("harfbuzz" ,harfbuzz)
3531 ("libcroco" ,libcroco)
3532 ("libgsf" ,libgsf)
3533 ("libxml2" ,libxml2)
3534 ("pango" ,pango)))
3535 (propagated-inputs
3536 `(("cairo" ,cairo)
3537 ("gdk-pixbuf" ,gdk-pixbuf)
3538 ("glib" ,glib)))
3539 (synopsis "SVG rendering library")
3540 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3541 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3542 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3543 diagrams.")
3544 (home-page "https://wiki.gnome.org/LibRsvg")
3545 (license license:lgpl2.1+)))
3546
3547 (define-public libidl
3548 (package
3549 (name "libidl")
3550 (version "0.8.14")
3551 (source (origin
3552 (method url-fetch)
3553 (uri (string-append "mirror://gnome/sources/libIDL/"
3554 (version-major+minor version) "/"
3555 "libIDL-" version ".tar.bz2"))
3556 (sha256
3557 (base32
3558 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3559 (build-system gnu-build-system)
3560 (inputs `(("glib" ,glib)))
3561 (native-inputs
3562 `(("pkg-config" ,pkg-config)
3563 ("flex" ,flex)
3564 ("bison" ,bison)))
3565 (home-page "http://freecode.com/projects/libidl")
3566 (synopsis "Create trees of CORBA Interface Definition Language files")
3567 (description "Libidl is a library for creating trees of CORBA Interface
3568 Definition Language (idl) files, which is a specification for defining
3569 portable interfaces. libidl was initially written for orbit (the orb from the
3570 GNOME project, and the primary means of libidl distribution). However, the
3571 functionality was designed to be as reusable and portable as possible.")
3572 (properties `((upstream-name . "libIDL")))
3573 (license license:lgpl2.0+)))
3574
3575
3576 (define-public orbit2
3577 (package
3578 (name "orbit2")
3579 (version "2.14.19")
3580 (source (origin
3581 (method url-fetch)
3582 (uri (let ((upstream-name "ORBit2"))
3583 (string-append "mirror://gnome/sources/" upstream-name "/"
3584 (version-major+minor version) "/"
3585 upstream-name "-" version ".tar.bz2")))
3586 (sha256
3587 (base32
3588 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3589 (build-system gnu-build-system)
3590 (arguments
3591 `(;; The "timeout-server" test hangs when run in parallel.
3592 #:parallel-tests? #f
3593 #:configure-flags
3594 '(;; We don't need static libraries, plus they don't build reproducibly
3595 ;; (non-deterministic ordering of .o files in the archive.)
3596 "--disable-static"
3597
3598 ;; The programmer kindly gives us a hook to turn off deprecation
3599 ;; warnings ...
3600 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3601 ;; ... which they then completly ignore !!
3602 #:phases
3603 (modify-phases %standard-phases
3604 (add-before 'configure 'ignore-deprecations
3605 (lambda _
3606 (substitute* "linc2/src/Makefile.in"
3607 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3608 #t)))))
3609 (inputs `(("glib" ,glib)
3610 ("libidl" ,libidl)))
3611 (native-inputs
3612 `(("pkg-config" ,pkg-config)))
3613 (home-page "https://projects.gnome.org/orbit2/")
3614 (synopsis "CORBA 2.4-compliant Object Request Broker")
3615 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3616 featuring mature C, C++ and Python bindings.")
3617 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3618 ;; a version. SOME of the code files have licence notices for GPLv2+.
3619 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3620 (license license:gpl2+)
3621 (properties `((upstream-name . "ORBit2")))))
3622
3623
3624 (define-public libbonobo
3625 (package
3626 (name "libbonobo")
3627 (version "2.32.1")
3628 (source (origin
3629 (method url-fetch)
3630 (uri (string-append "mirror://gnome/sources/" name "/"
3631 (version-major+minor version)
3632 "/" name "-" version ".tar.bz2"))
3633 (sha256
3634 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3635 (patches (search-patches
3636 "libbonobo-activation-test-race.patch"))))
3637 (build-system gnu-build-system)
3638 (arguments
3639 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3640 `(#:configure-flags
3641 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3642 ;; ... which they then completly ignore !!
3643 #:phases
3644 (modify-phases %standard-phases
3645 (add-before 'configure 'ignore-deprecations
3646 (lambda _
3647 (substitute* "activation-server/Makefile.in"
3648 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3649 #t)))
3650
3651 ;; There's apparently a race condition between the server stub
3652 ;; generation and linking of the example under 'samples/echo' that can
3653 ;; lead do undefined references when building in parallel, as reported
3654 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3655 ;; Thus, disable parallel builds.
3656 #:parallel-build? #f))
3657 (inputs `(("popt" ,popt)
3658 ("libxml2" ,libxml2)))
3659 ;; The following are Required by the .pc file
3660 (propagated-inputs
3661 `(("glib" ,glib)
3662 ("orbit2" ,orbit2)))
3663 (native-inputs
3664 `(("intltool" ,intltool)
3665 ("pkg-config" ,pkg-config)
3666 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3667 ("flex" ,flex)
3668 ("bison" ,bison)))
3669 (home-page "https://developer.gnome.org/libbonobo/")
3670 (synopsis "Framework for creating reusable components for use in GNOME applications")
3671 (description "Bonobo is a framework for creating reusable components for
3672 use in GNOME applications, built on top of CORBA.")
3673 ;; Licence not explicitly stated. Source files contain no licence notices.
3674 ;; Tarball contains text of both GPLv2 and LGPLv2
3675 ;; GPLv2 covers both conditions
3676 (license license:gpl2+)))
3677
3678
3679 (define-public gconf
3680 (package
3681 (name "gconf")
3682 (version "3.2.6")
3683 (source (origin
3684 (method url-fetch)
3685 (uri
3686 (let ((upstream-name "GConf"))
3687 (string-append "mirror://gnome/sources/" upstream-name "/"
3688 (version-major+minor version) "/"
3689 upstream-name "-" version ".tar.xz")))
3690 (sha256
3691 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3692 (build-system gnu-build-system)
3693 (inputs `(("dbus-glib" ,dbus-glib)
3694 ("libxml2" ,libxml2)))
3695 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3696 ("orbit2" ,orbit2)))
3697 (native-inputs
3698 `(("intltool" ,intltool)
3699 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3700 ("pkg-config" ,pkg-config)))
3701 (home-page "https://projects.gnome.org/gconf/")
3702 (synopsis "Store application preferences")
3703 (description "Gconf is a system for storing application preferences. It
3704 is intended for user preferences; not arbitrary data storage.")
3705 (license license:lgpl2.0+)
3706 (properties '((upstream-name . "GConf")))))
3707
3708
3709 (define-public gnome-mime-data
3710 (package
3711 (name "gnome-mime-data")
3712 (version "2.18.0")
3713 (source (origin
3714 (method url-fetch)
3715 (uri (string-append "mirror://gnome/sources/" name "/"
3716 (version-major+minor version) "/"
3717 name "-" version ".tar.bz2"))
3718 (sha256
3719 (base32
3720 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3721 (build-system gnu-build-system)
3722 (native-inputs
3723 `(("perl" ,perl)
3724 ("intltool" ,intltool)))
3725 (arguments
3726 '(#:phases (modify-phases %standard-phases
3727 (add-after 'configure 'use-our-intltool
3728 (lambda _
3729 ;; Do not use the bundled intltool commands, which lack
3730 ;; the "dotless @INC" fixes of our 'intltool' package.
3731 (substitute* (find-files "." "^Makefile$")
3732 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3733 (string-append "INTLTOOL_" tool " = intltool-"
3734 (string-downcase tool) "\n")))
3735 #t)))))
3736 (home-page "https://www.gnome.org")
3737 (synopsis "Base MIME and Application database for GNOME")
3738 (description "GNOME Mime Data is a module which contains the base MIME
3739 and Application database for GNOME. The data stored by this module is
3740 designed to be accessed through the MIME functions in GnomeVFS.")
3741 (license license:gpl2+)))
3742
3743
3744 (define-public gnome-vfs
3745 (package
3746 (name "gnome-vfs")
3747 (version "2.24.4")
3748 (source (origin
3749 (method url-fetch)
3750 (uri (string-append "mirror://gnome/sources/" name "/"
3751 (version-major+minor version) "/"
3752 name "-" version ".tar.bz2"))
3753 (sha256
3754 (base32
3755 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3756 (build-system gnu-build-system)
3757 (arguments
3758 `(#:phases
3759 (modify-phases %standard-phases
3760 (add-before 'configure 'ignore-deprecations
3761 (lambda _
3762 (substitute* '("libgnomevfs/Makefile.in"
3763 "daemon/Makefile.in")
3764 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3765 #t))
3766 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3767 (lambda _
3768 (substitute* "test/test-async-cancel.c"
3769 (("EXIT_FAILURE") "77"))
3770 #t)))))
3771 (inputs `(("libxml2" ,libxml2)
3772 ("dbus-glib" ,dbus-glib)
3773 ("gconf" ,gconf)
3774 ("gnome-mime-data" ,gnome-mime-data)
3775 ("zlib" ,zlib)))
3776 (native-inputs
3777 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3778 ("intltool" ,intltool)
3779 ("pkg-config" ,pkg-config)))
3780 (home-page "https://developer.gnome.org/gnome-vfs/")
3781 (synopsis "Access files and folders in GNOME applications")
3782 (description
3783 "GnomeVFS is the core library used to access files and folders in GNOME
3784 applications. It provides a file system abstraction which allows applications
3785 to access local and remote files with a single consistent API.")
3786 (license license:lgpl2.0+)))
3787
3788
3789
3790 (define-public libgnome
3791 (package
3792 (name "libgnome")
3793 (version "2.32.1")
3794 (source (origin
3795 (method url-fetch)
3796 (uri (string-append "mirror://gnome/sources/" name "/"
3797 (version-major+minor version) "/"
3798 name "-" version ".tar.bz2"))
3799 (sha256
3800 (base32
3801 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3802 (patches (search-patches "libgnome-encoding.patch"))))
3803 (build-system gnu-build-system)
3804 (arguments
3805 `(#:phases
3806 (modify-phases %standard-phases
3807 (add-before 'configure 'enable-deprecated
3808 (lambda _
3809 (substitute* "libgnome/Makefile.in"
3810 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3811 #t)))))
3812 (inputs `(("libxml2" ,libxml2)))
3813 (native-inputs
3814 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3815 ("intltool" ,intltool)
3816 ("pkg-config" ,pkg-config)))
3817 ;; The following are listed as Required in the .pc file
3818 ;; (except for libcanberra -- which seems to be oversight on the part
3819 ;; of the upstream developers -- anything that links against libgnome,
3820 ;; must also link against libcanberra
3821 (propagated-inputs
3822 `(("libcanberra" ,libcanberra)
3823 ("libbonobo" ,libbonobo)
3824 ("gconf" ,gconf)
3825 ("gnome-vfs" ,gnome-vfs)
3826 ("popt" ,popt))) ;gnome-program.h includes popt.h
3827 (home-page "https://developer.gnome.org/libgnome/")
3828 (synopsis "Useful routines for building applications")
3829 (description "The libgnome library provides a number of useful routines
3830 for building modern applications, including session management, activation of
3831 files and URIs, and displaying help.")
3832 (license license:lgpl2.0+)))
3833
3834
3835 (define-public libart-lgpl
3836 (package
3837 (name "libart-lgpl")
3838 (version "2.3.21")
3839 (source (origin
3840 (method url-fetch)
3841 (uri (let ((upstream-name "libart_lgpl"))
3842 (string-append "mirror://gnome/sources/" upstream-name "/"
3843 (version-major+minor version) "/"
3844 upstream-name "-" version ".tar.bz2")))
3845 (sha256
3846 (base32
3847 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3848 (build-system gnu-build-system)
3849 (native-inputs
3850 `(("pkg-config" ,pkg-config)))
3851 (home-page "https://people.gnome.org/~mathieu/libart")
3852 (synopsis "2D drawing library")
3853 (description "Libart is a 2D drawing library intended as a
3854 high-quality vector-based 2D library with antialiasing and alpha composition.")
3855 (license license:lgpl2.0+)))
3856
3857
3858
3859 (define-public libgnomecanvas
3860 (package
3861 (name "libgnomecanvas")
3862 (version "2.30.3")
3863 (source (origin
3864 (method url-fetch)
3865 (uri (string-append "mirror://gnome/sources/" name "/"
3866 (version-major+minor version) "/"
3867 name "-" version ".tar.gz"))
3868 (sha256
3869 (base32
3870 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3871 (build-system gnu-build-system)
3872 ;; Mentioned as Required in the .pc file
3873 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3874 ("gtk+" ,gtk+-2)))
3875 (native-inputs
3876 `(("intltool" ,intltool)
3877 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3878 ("pkg-config" ,pkg-config)))
3879 (home-page "https://developer.gnome.org/libgnomecanvas/")
3880 (synopsis "Flexible widget for creating interactive structured graphics")
3881 (description "The GnomeCanvas widget provides a flexible widget for
3882 creating interactive structured graphics.")
3883 (license license:lgpl2.0+)))
3884
3885 (define-public libgnomecanvasmm
3886 (package
3887 (name "libgnomecanvasmm")
3888 (version "2.26.0")
3889 (source (origin
3890 (method url-fetch)
3891 (uri (string-append "mirror://gnome/sources/" name "/"
3892 (version-major+minor version) "/"
3893 name "-" version ".tar.bz2"))
3894 (sha256
3895 (base32
3896 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3897 (build-system gnu-build-system)
3898 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3899 (native-inputs
3900 `(("gtkmm-2" ,gtkmm-2)
3901 ("pkg-config" ,pkg-config)))
3902 (home-page "https://gtkmm.org")
3903 (synopsis "C++ bindings to the GNOME Canvas library")
3904 (description "C++ bindings to the GNOME Canvas library.")
3905 (license license:lgpl2.0+)))
3906
3907 (define-public libgnomeui
3908 (package
3909 (name "libgnomeui")
3910 (version "2.24.5")
3911 (source (origin
3912 (method url-fetch)
3913 (uri (string-append "mirror://gnome/sources/" name "/"
3914 (version-major+minor version) "/"
3915 name "-" version ".tar.bz2"))
3916 (patches (search-patches "libgnomeui-utf8.patch"))
3917 (sha256
3918 (base32
3919 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3920 (build-system gnu-build-system)
3921 ;; Mentioned as Required in the .pc file
3922 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3923 ("libgnome" ,libgnome)
3924 ("libgnomecanvas" ,libgnomecanvas)
3925 ("libgnome-keyring" ,libgnome-keyring)))
3926 (inputs `(("libjpeg" ,libjpeg-turbo)
3927 ("popt" ,popt)
3928 ("libbonobo" ,libbonobo)
3929 ("libxml2" ,libxml2)
3930 ("libglade" ,libglade)))
3931 (native-inputs
3932 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3933 ("intltool" ,intltool)
3934 ("pkg-config" ,pkg-config)))
3935 (home-page "https://developer.gnome.org/libgnomeui/")
3936 (synopsis "Additional widgets for applications")
3937 (description "The libgnomeui library provides additional widgets for
3938 applications. Many of the widgets from libgnomeui have already been
3939 ported to GTK+.")
3940 (license license:lgpl2.0+)))
3941
3942 (define-public libglade
3943 (package
3944 (name "libglade")
3945 (version "2.6.4")
3946 (source (origin
3947 (method url-fetch)
3948 (uri (string-append "mirror://gnome/sources/" name "/"
3949 (version-major+minor version) "/"
3950 name "-" version ".tar.bz2"))
3951 (sha256
3952 (base32
3953 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3954 (build-system gnu-build-system)
3955 (inputs
3956 `(("python" ,python))) ;; needed for the optional libglade-convert program
3957 (propagated-inputs
3958 `(("gtk+-2" ,gtk+-2)
3959 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3960 (native-inputs
3961 `(("pkg-config" ,pkg-config)))
3962 (home-page "https://developer.gnome.org/libglade")
3963 (synopsis "Load glade interfaces and access the glade built widgets")
3964 (description "Libglade is a library that provides interfaces for loading
3965 graphical interfaces described in glade files and for accessing the
3966 widgets built in the loading process.")
3967 (license license:gpl2+))) ; This is correct. GPL not LGPL
3968
3969 (define-public libgnomeprint
3970 ;; This library has been deprecated since 2006; see
3971 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3972 (package
3973 (name "libgnomeprint")
3974 (version "2.18.8")
3975 (source (origin
3976 (method url-fetch)
3977 (uri (string-append "mirror://gnome/sources/" name "/"
3978 (version-major+minor version) "/"
3979 name "-" version ".tar.bz2"))
3980 (sha256
3981 (base32
3982 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3983 (build-system gnu-build-system)
3984 (inputs
3985 `(("popt" ,popt)
3986 ("libart-lgpl" ,libart-lgpl)
3987 ("gtk+" ,gtk+-2)
3988 ("libxml2" ,libxml2)))
3989 (native-inputs
3990 `(("intltool" ,intltool)
3991 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3992 ("pkg-config" ,pkg-config)))
3993 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3994 (synopsis "Printing framework for GNOME")
3995 (description
3996 "GNOME-print was a printing framework for GNOME. It has been deprecated
3997 since ca. 2006, when GTK+ itself incorporated printing support.")
3998 (license license:lgpl2.0+)))
3999
4000
4001 (define-public libgnomeprintui
4002 ;; Deprecated; see libgnomeprint.
4003 (package
4004 (name "libgnomeprintui")
4005 (version "2.18.6")
4006 (source (origin
4007 (method url-fetch)
4008 (uri (string-append "mirror://gnome/sources/" name "/"
4009 (version-major+minor version) "/"
4010 name "-" version ".tar.bz2"))
4011 (sha256
4012 (base32
4013 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
4014 (build-system gnu-build-system)
4015 ;; Mentioned as Required in the .pc file
4016 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
4017 (inputs `(("gtk+" ,gtk+-2)
4018 ("glib" ,glib)
4019 ("gnome-icon-theme" ,gnome-icon-theme)
4020 ("libgnomecanvas" ,libgnomecanvas)
4021 ("libxml2" ,libxml2)))
4022 (native-inputs
4023 `(("intltool" ,intltool)
4024 ("pkg-config" ,pkg-config)))
4025 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
4026 (synopsis "Printing framework for GNOME")
4027 (description (package-description libgnomeprint))
4028 (license license:lgpl2.0+)))
4029
4030 (define-public libbonoboui
4031 (package
4032 (name "libbonoboui")
4033 (version "2.24.5")
4034 (source (origin
4035 (method url-fetch)
4036 (uri (string-append "mirror://gnome/sources/" name "/"
4037 (version-major+minor version) "/"
4038 name "-" version ".tar.bz2"))
4039 (sha256
4040 (base32
4041 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4042 (build-system gnu-build-system)
4043 (arguments
4044 `(#:phases
4045 (modify-phases %standard-phases
4046 (add-before 'check 'start-xserver
4047 (lambda* (#:key inputs #:allow-other-keys)
4048 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4049 (disp ":1"))
4050
4051 (setenv "HOME" (getcwd))
4052 (setenv "DISPLAY" disp)
4053 ;; There must be a running X server and make check doesn't start one.
4054 ;; Therefore we must do it.
4055 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4056 ;; Mentioned as Required by the .pc file
4057 (propagated-inputs `(("libxml2" ,libxml2)))
4058 (inputs
4059 `(("popt" ,popt)
4060 ("pangox-compat" ,pangox-compat)
4061 ("libgnome" ,libgnome)
4062 ("libgnomecanvas" ,libgnomecanvas)
4063 ("libglade" ,libglade)))
4064 (native-inputs
4065 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
4066 ("intltool" ,intltool)
4067 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
4068 ("pkg-config" ,pkg-config)))
4069 (home-page "https://developer.gnome.org/libbonoboui/")
4070 (synopsis "Some user interface controls using Bonobo")
4071 (description "The Bonobo UI library provides a number of user interface
4072 controls using the Bonobo component framework.")
4073 (license license:lgpl2.0+)))
4074
4075 (define-public libwnck
4076 (package
4077 (name "libwnck")
4078 (version "3.32.0")
4079 (source (origin
4080 (method url-fetch)
4081 (uri (string-append "mirror://gnome/sources/" name "/"
4082 (version-major+minor version) "/"
4083 name "-" version ".tar.xz"))
4084 (sha256
4085 (base32
4086 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4087 (build-system meson-build-system)
4088 (native-inputs
4089 `(("pkg-config" ,pkg-config)
4090 ("glib" ,glib "bin") ; for glib-mkenums
4091 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
4092 ("intltool" ,intltool)))
4093 (propagated-inputs
4094 `(("gtk+" ,gtk+)
4095 ("libxres" ,libxres)
4096 ("startup-notification" ,startup-notification)))
4097 (home-page "https://developer.gnome.org/libwnck/")
4098 (synopsis "Window Navigator Construction Kit")
4099 (description
4100 "Libwnck is the Window Navigator Construction Kit, a library for use in
4101 writing pagers, tasklists, and more generally applications that are dealing
4102 with window management. It tries hard to respect the Extended Window Manager
4103 Hints specification (EWMH).")
4104 (license license:lgpl2.0+)))
4105
4106 ;; stable version for gtk2, required by xfwm4.
4107 (define-public libwnck-2
4108 (package (inherit libwnck)
4109 (name "libwnck")
4110 (version "2.30.7")
4111 (source (origin
4112 (method url-fetch)
4113 (uri (string-append "mirror://gnome/sources/" name "/"
4114 (version-major+minor version) "/"
4115 name "-" version ".tar.xz"))
4116 (sha256
4117 (base32
4118 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4119 (build-system gnu-build-system)
4120 (native-inputs
4121 `(("pkg-config" ,pkg-config)
4122 ("intltool" ,intltool)))
4123 (propagated-inputs
4124 `(("gtk+" ,gtk+-2)
4125 ("libxres" ,libxres)
4126 ("startup-notification" ,startup-notification)))))
4127
4128 (define-public goffice
4129 (package
4130 (name "goffice")
4131 (version "0.10.49")
4132 (source (origin
4133 (method url-fetch)
4134 (uri (string-append "mirror://gnome/sources/goffice/"
4135 (version-major+minor version) "/"
4136 "goffice-" version ".tar.xz"))
4137 (sha256
4138 (base32 "1s87ngs3g3nfvcn96aq4lgzx5cscbfg4n9f6ns2zpvc5ngdiiz2z"))))
4139 (build-system gnu-build-system)
4140 (outputs '("out"
4141 "doc")) ; 4.0 MiB of gtk-doc
4142 (arguments
4143 '(#:configure-flags (list (string-append "--with-html-dir="
4144 (assoc-ref %outputs "doc")
4145 "/share/gtk-doc/html"))))
4146 (inputs
4147 `(("gtk+" ,gtk+)
4148 ("libgsf" ,libgsf)
4149 ("librsvg" ,librsvg)
4150 ("libxslt" ,libxslt)
4151 ("libxml2" ,libxml2)))
4152 (native-inputs
4153 `(("intltool" ,intltool)
4154 ("glib" ,glib "bin")
4155 ("pkg-config" ,pkg-config)))
4156 (home-page "https://developer.gnome.org/goffice/")
4157 (synopsis "Document-centric objects and utilities")
4158 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4159 (license
4160 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4161 ;; Note: NOT LGPL
4162 (list license:gpl2 license:gpl3))))
4163
4164 (define-public goffice-0.8
4165 (package (inherit goffice)
4166 (version "0.8.17")
4167 (source (origin
4168 (method url-fetch)
4169 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4170 (version-major+minor version) "/"
4171 (package-name goffice) "-" version ".tar.xz"))
4172 (sha256
4173 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4174 (arguments
4175 `(#:phases
4176 (modify-phases %standard-phases
4177 (add-after 'unpack 'fix-pcre-check
4178 (lambda _
4179 ;; Only glib.h can be included directly. See
4180 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4181 (substitute* "configure"
4182 (("glib/gregex\\.h") "glib.h")) #t)))
4183
4184 ,@(package-arguments goffice)))
4185 (propagated-inputs
4186 ;; libgoffice-0.8.pc mentions libgsf-1
4187 `(("libgsf" ,libgsf)))
4188 (inputs
4189 `(("gtk" ,gtk+-2)
4190 ,@(alist-delete "gtk" (package-inputs goffice))))))
4191
4192 (define-public gnumeric
4193 (package
4194 (name "gnumeric")
4195 (version "1.12.50")
4196 (source (origin
4197 (method url-fetch)
4198 (uri (string-append "mirror://gnome/sources/gnumeric/"
4199 (version-major+minor version) "/"
4200 "gnumeric-" version ".tar.xz"))
4201 (sha256
4202 (base32
4203 "1f0lrj5msg80pgjp38jj6rddf352gwddgip7z4lki66n3fx1k23m"))))
4204 (build-system glib-or-gtk-build-system)
4205 (arguments
4206 `(;; The gnumeric developers don't worry much about failing tests.
4207 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4208 #:tests? #f
4209 #:phases
4210 (modify-phases %standard-phases
4211 (add-before
4212 'configure 'pre-conf
4213 (lambda* (#:key outputs #:allow-other-keys)
4214 ;; Make install tries to write into the directory of goffice
4215 ;; I am informed that this only affects the possibility to embed a
4216 ;; spreadsheet inside an Abiword document. So presumably when we
4217 ;; package Abiword we'll have to refer it to this directory.
4218 (substitute* "configure"
4219 (("^GOFFICE_PLUGINS_DIR=.*")
4220 (string-append "GOFFICE_PLUGINS_DIR="
4221 (assoc-ref outputs "out")
4222 "/goffice/plugins"))))))))
4223 (inputs
4224 `(("glib" ,glib)
4225 ("gtk+" ,gtk+)
4226 ("goffice" ,goffice)
4227 ("libgsf" ,libgsf)
4228 ("librsvg" ,librsvg)
4229 ("libxml2" ,libxml2)
4230 ("libxslt" ,libxslt)
4231 ("python" ,python)
4232 ("python-pygobject" ,python-pygobject)
4233 ("zlib" ,zlib)))
4234 (native-inputs
4235 `(("bison" ,bison)
4236 ("docbook-xml" ,docbook-xml)
4237 ("intltool" ,intltool)
4238 ("itstool" ,itstool)
4239 ("glib:bin" ,glib "bin")
4240 ("pkg-config" ,pkg-config)))
4241 (home-page "http://www.gnumeric.org")
4242 (synopsis "Spreadsheet application")
4243 (description
4244 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4245 interoperable with other spreadsheet applications. It has a vast array of
4246 features beyond typical spreadsheet functionality, such as support for linear
4247 and non-linear solvers, statistical analysis, and telecommunication
4248 engineering.")
4249 (license
4250 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4251 (list license:gpl2 license:gpl3))))
4252
4253 (define-public drawing
4254 (package
4255 (name "drawing")
4256 (version "0.8.0")
4257 (source
4258 (origin
4259 (method git-fetch)
4260 (uri (git-reference
4261 (url "https://github.com/maoschanz/drawing")
4262 (commit version)))
4263 (file-name (git-file-name name version))
4264 (sha256
4265 (base32 "03cx6acb0ph7b3difshjfddi8ld79wp8d12bdp7dp1q1820j5mz0"))))
4266 (build-system meson-build-system)
4267 (arguments
4268 `(#:glib-or-gtk? #t
4269 #:phases
4270 (modify-phases %standard-phases
4271 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
4272 (lambda* (#:key outputs #:allow-other-keys)
4273 (let ((prog (string-append (assoc-ref outputs "out")
4274 "/bin/drawing"))
4275 (pylib (string-append (assoc-ref outputs "out")
4276 "/lib/python"
4277 ,(version-major+minor
4278 (package-version python))
4279 "/site-packages")))
4280 (wrap-program prog
4281 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
4282 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
4283 #t))))))
4284 (native-inputs
4285 `(("desktop-file-utils" ,desktop-file-utils)
4286 ("gettext" ,gettext-minimal)
4287 ("glib:bin" ,glib "bin")
4288 ("gobject-introspection" ,gobject-introspection)
4289 ("gtk+:bin" ,gtk+ "bin")
4290 ("pkg-config" ,pkg-config)))
4291 (inputs
4292 `(("gdk-pixbuf" ,gdk-pixbuf+svg)
4293 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4294 ("gtk+" ,gtk+)
4295 ("pango" ,pango)
4296 ("python-pycairo" ,python-pycairo)
4297 ("python-pygobject" ,python-pygobject)))
4298 (home-page "https://maoschanz.github.io/drawing/")
4299 (synopsis "Basic image editor for GNOME")
4300 (description
4301 "Drawing is a basic image editor aiming at the GNOME desktop.")
4302 (license license:gpl3+)))
4303
4304 (define-public gnome-themes-standard
4305 (package
4306 (name "gnome-themes-standard")
4307 (version "3.22.3")
4308 (source
4309 (origin
4310 (method url-fetch)
4311 (uri (string-append "mirror://gnome/sources/" name "/"
4312 (version-major+minor version) "/" name "-"
4313 version ".tar.xz"))
4314 (sha256
4315 (base32
4316 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4317 (build-system gnu-build-system)
4318 (arguments
4319 '(#:configure-flags
4320 ;; Don't create 'icon-theme.cache'.
4321 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4322 (true (string-append coreutils "/bin/true")))
4323 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4324 (inputs
4325 `(("gtk+" ,gtk+)
4326 ("gtk+-2" ,gtk+-2)
4327 ("librsvg" ,librsvg)
4328 ("libxml2" ,libxml2)
4329 ("glib" ,glib)))
4330 (native-inputs
4331 `(("intltool" ,intltool)
4332 ("glib:bin" ,glib "bin")
4333 ("pkg-config" ,pkg-config)))
4334 (home-page "https://launchpad.net/gnome-themes-standard")
4335 (synopsis "Default GNOME 3 themes")
4336 (description
4337 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4338 (license license:lgpl2.1+)))
4339
4340 (define-public seahorse
4341 (package
4342 (name "seahorse")
4343 (version "3.36.2")
4344 (source
4345 (origin
4346 (method url-fetch)
4347 (uri (string-append "mirror://gnome/sources/" name "/"
4348 (version-major+minor version) "/" name "-"
4349 version ".tar.xz"))
4350 (sha256
4351 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4352 (build-system meson-build-system)
4353 (arguments
4354 '(#:glib-or-gtk? #t
4355 #:phases
4356 (modify-phases %standard-phases
4357 (add-after 'unpack 'skip-gtk-update-icon-cache
4358 ;; Don't create 'icon-theme.cache'.
4359 (lambda _
4360 (substitute* "build-aux/meson_post_install.py"
4361 (("gtk-update-icon-cache") "true"))
4362 #t)))))
4363 (inputs
4364 `(("gtk+" ,gtk+)
4365 ("gcr" ,gcr)
4366 ("gnupg" ,gnupg)
4367 ("gpgme" ,gpgme)
4368 ("openldap" ,openldap)
4369 ("openssh" ,openssh)
4370 ("avahi" ,avahi)
4371 ("libhandy" ,libhandy-0.0)
4372 ("libpwquality" ,libpwquality)
4373 ("libsecret" ,libsecret)
4374 ("libsoup" ,libsoup)))
4375 (native-inputs
4376 `(("gettext" ,gettext-minimal)
4377 ("glib:bin" ,glib "bin")
4378 ("itstool" ,itstool)
4379 ("pkg-config" ,pkg-config)
4380 ("vala" ,vala)
4381 ("xmllint" ,libxml2)))
4382 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4383 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4384 (description
4385 "Seahorse is a GNOME application for managing encryption keys and
4386 passwords in the GNOME keyring.")
4387 (license license:gpl2+)))
4388
4389 (define-public vala
4390 (package
4391 (name "vala")
4392 (version "0.46.5")
4393 (source (origin
4394 (method url-fetch)
4395 (uri (string-append "mirror://gnome/sources/" name "/"
4396 (version-major+minor version) "/"
4397 name "-" version ".tar.xz"))
4398 (sha256
4399 (base32
4400 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4401 (build-system gnu-build-system)
4402 (arguments
4403 '(#:phases
4404 (modify-phases %standard-phases
4405 (add-before 'check 'pre-check
4406 (lambda _
4407 (setenv "CC" "gcc")
4408 (substitute* "valadoc/tests/testrunner.sh"
4409 (("export PKG_CONFIG_PATH=" m)
4410 (string-append m "$PKG_CONFIG_PATH:")))
4411 ;; For missing '/etc/machine-id'.
4412 (setenv "DBUS_FATAL_WARNINGS" "0")
4413 #t)))))
4414 (native-inputs
4415 `(("pkg-config" ,pkg-config)
4416 ("flex" ,flex)
4417 ("bison" ,bison)
4418 ("xsltproc" ,libxslt)
4419 ("dbus" ,dbus) ; for dbus tests
4420 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4421 (inputs
4422 `(("graphviz" ,graphviz)))
4423 (propagated-inputs
4424 `(("glib" ,glib))) ; required by libvala-0.40.pc
4425 (home-page "https://wiki.gnome.org/Projects/Vala/")
4426 (synopsis "Compiler for the GObject type system")
4427 (description
4428 "Vala is a programming language that aims to bring modern programming
4429 language features to GNOME developers without imposing any additional runtime
4430 requirements and without using a different ABI compared to applications and
4431 libraries written in C.")
4432 (license license:lgpl2.1+)))
4433
4434 (define-public vala-0.50
4435 (package
4436 (inherit vala)
4437 (version "0.50.2")
4438 (source (origin
4439 (method url-fetch)
4440 (uri (string-append "mirror://gnome/sources/vala/"
4441 (version-major+minor version) "/"
4442 "vala-" version ".tar.xz"))
4443 (sha256
4444 (base32
4445 "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c"))))))
4446
4447 (define-public vte
4448 (package
4449 (name "vte")
4450 (version "0.60.3")
4451 (source (origin
4452 (method url-fetch)
4453 (uri (string-append "mirror://gnome/sources/vte/"
4454 (version-major+minor version) "/"
4455 "vte-" version ".tar.xz"))
4456 (sha256
4457 (base32
4458 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4459 (build-system meson-build-system)
4460 (arguments
4461 `(#:configure-flags
4462 '("-Dvapi=true"
4463 "-D_systemd=false")))
4464 (native-inputs
4465 `(("pkg-config" ,pkg-config)
4466 ("gettext" ,gettext-minimal)
4467 ("vala" ,vala)
4468 ("gobject-introspection" ,gobject-introspection)
4469 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4470 ("gperf" ,gperf)
4471 ("xmllint" ,libxml2)))
4472 (propagated-inputs
4473 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4474 ("gnutls" ,gnutls) ; ditto
4475 ("pcre2" ,pcre2))) ; ditto
4476 (home-page "https://www.gnome.org/")
4477 (synopsis "Virtual Terminal Emulator")
4478 (description
4479 "VTE is a library (libvte) implementing a terminal emulator widget for
4480 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4481 gnome-terminal, but can also be used to embed a console/terminal in games,
4482 editors, IDEs, etc.")
4483 (license license:lgpl2.1+)))
4484
4485 (define-public vte-ng
4486 (package
4487 (inherit vte)
4488 (name "vte-ng")
4489 (version "0.58.2.a")
4490 (home-page "https://github.com/thestinger/vte-ng")
4491 (source (origin
4492 (method git-fetch)
4493 (uri (git-reference (url home-page) (commit version)))
4494 (file-name (git-file-name name version))
4495 (sha256
4496 (base32
4497 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4498 (build-system meson-build-system)
4499 (native-inputs
4500 `(("gtk-doc" ,gtk-doc/stable)
4501 ,@(package-native-inputs vte)))
4502 (arguments
4503 `(#:configure-flags '("-Ddocs=true")))
4504 (synopsis "Enhanced VTE terminal widget")
4505 (description
4506 "VTE is a library (libvte) implementing a terminal emulator widget for
4507 GTK+, this fork provides additional functions exposed for keyboard text
4508 selection and URL hints.")))
4509
4510 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4511 (define-public vte/gtk+-2
4512 (package (inherit vte)
4513 (name "vte")
4514 (version "0.28.2")
4515 (source (origin
4516 (method url-fetch)
4517 (uri (string-append "mirror://gnome/sources/" name "/"
4518 (version-major+minor version) "/"
4519 name "-" version ".tar.xz"))
4520 (sha256
4521 (base32
4522 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4523 (patches (search-patches
4524 "vte-CVE-2012-2738-pt1.patch"
4525 "vte-CVE-2012-2738-pt2.patch"))))
4526 (build-system gnu-build-system)
4527 (arguments
4528 '(#:configure-flags '("--disable-python")))
4529 (native-inputs
4530 `(("pkg-config" ,pkg-config)
4531 ("intltool" ,intltool)
4532 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4533 (propagated-inputs
4534 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4535 ("ncurses" ,ncurses))))) ; required by libvte.la
4536
4537 (define-public vinagre
4538 (package
4539 (name "vinagre")
4540 (version "3.22.0")
4541 (source (origin
4542 (method url-fetch)
4543 (uri (string-append "mirror://gnome/sources/" name "/"
4544 (version-major+minor version) "/"
4545 name "-" version ".tar.xz"))
4546 (patches (search-patches "vinagre-newer-freerdp.patch"
4547 "vinagre-newer-rdp-parameters.patch"))
4548 (sha256
4549 (base32
4550 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4551 (build-system glib-or-gtk-build-system)
4552 (arguments
4553 ;; Disable -Werror and such, to avoid build failures on compilation
4554 ;; warnings.
4555 '(#:configure-flags '("--enable-compile-warnings=minimum")
4556 #:phases
4557 (modify-phases %standard-phases
4558 (add-before 'install 'skip-gtk-update-icon-cache
4559 (lambda _
4560 ;; Don't create 'icon-theme.cache'
4561 (substitute* (find-files "." "^Makefile$")
4562 (("gtk-update-icon-cache") (which "true")))
4563 #t))
4564 (add-after 'unpack 'patch-configure
4565 (lambda _
4566 (substitute* "configure"
4567 (("freerdp") "freerdp2"))
4568 #t)))))
4569 (native-inputs
4570 `(("pkg-config" ,pkg-config)
4571 ("intltool" ,intltool)
4572 ("itstool" ,itstool)
4573 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4574 (inputs
4575 `(("libxml2" ,libxml2)
4576 ("gtk-vnc" ,gtk-vnc)
4577 ("gnome-keyring" ,gnome-keyring)
4578 ("libsecret" ,libsecret)
4579 ("freerdp" ,freerdp)
4580 ("spice" ,spice)
4581 ("spice-gtk" ,spice-gtk)
4582 ("telepathy-glib" ,telepathy-glib)
4583 ("vte" ,vte)))
4584 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4585 (synopsis "Remote desktop viewer for GNOME")
4586 (description "Vinagre is a remote display client supporting the VNC, SPICE
4587 and RDP protocols.")
4588 (license license:gpl3+)))
4589
4590 (define-public dconf
4591 (package
4592 (name "dconf")
4593 (version "0.36.0")
4594 (source (origin
4595 (method url-fetch)
4596 (uri (string-append
4597 "mirror://gnome/sources/" name "/"
4598 (version-major+minor version) "/"
4599 name "-" version ".tar.xz"))
4600 (sha256
4601 (base32
4602 "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
4603 (build-system meson-build-system)
4604 (propagated-inputs
4605 ;; In Requires of dconf.pc.
4606 `(("glib" ,glib)))
4607 (inputs
4608 `(("gtk+" ,gtk+)
4609 ("dbus" ,dbus)))
4610 (native-inputs
4611 `(("bash-completion" ,bash-completion)
4612 ("libxslt" ,libxslt) ;for xsltproc
4613 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4614 ("docbook-xml" ,docbook-xml-4.2)
4615 ("docbook-xsl" ,docbook-xsl)
4616 ("glib:bin" ,glib "bin")
4617 ("gtk-doc" ,gtk-doc/stable)
4618 ("pkg-config" ,pkg-config)
4619 ("vala" ,vala)))
4620 (arguments
4621 `(#:glib-or-gtk? #t
4622 #:configure-flags '("-Denable-gtk-doc=true")
4623 #:phases (modify-phases %standard-phases
4624 (add-after 'unpack 'increase-test-timeout
4625 (lambda _
4626 ;; On big-memory systems, the engine test may take
4627 ;; much longer than the default of 30 seconds.
4628 (substitute* "tests/meson.build"
4629 (("test\\(unit_test\\[0\\], exe" all)
4630 (string-append all ", timeout : 90")))
4631 #t)))))
4632 (home-page "https://developer.gnome.org/dconf/")
4633 (synopsis "Low-level GNOME configuration system")
4634 (description "Dconf is a low-level configuration system. Its main purpose
4635 is to provide a backend to GSettings on platforms that don't already have
4636 configuration storage systems.")
4637 (license license:lgpl2.1+)))
4638
4639 (define-public json-glib
4640 (package
4641 (name "json-glib")
4642 (version "1.4.4")
4643 (source (origin
4644 (method url-fetch)
4645 (uri (string-append "mirror://gnome/sources/" name "/"
4646 (version-major+minor version) "/"
4647 name "-" version ".tar.xz"))
4648 (sha256
4649 (base32
4650 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4651 (build-system meson-build-system)
4652 (native-inputs
4653 `(("gettext" ,gettext-minimal)
4654 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4655 ("gobject-introspection" ,gobject-introspection)
4656 ("pkg-config" ,pkg-config)))
4657 (propagated-inputs
4658 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4659 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4660 (synopsis "Compiler for the GObject type system")
4661 (description
4662 "JSON-GLib is a C library based on GLib providing serialization and
4663 deserialization support for the JavaScript Object Notation (JSON) format
4664 described by RFC 4627. It provides parser and generator GObject classes and
4665 various wrappers for the complex data types employed by JSON, such as arrays
4666 and objects.")
4667 (license license:lgpl2.1+)))
4668
4669 (define-public libxklavier
4670 (package
4671 (name "libxklavier")
4672 (version "5.4")
4673 (source (origin
4674 ;; Note: There's no tarball at ftp.gnome.org for this version.
4675 (method git-fetch)
4676 (uri (git-reference
4677 (url "https://anongit.freedesktop.org/git/libxklavier")
4678 (commit (string-append "libxklavier-" version))))
4679 (sha256
4680 (base32
4681 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4682 (file-name (git-file-name name version))))
4683 (build-system gnu-build-system)
4684 (arguments
4685 '(#:configure-flags
4686 (list (string-append "--with-xkb-base="
4687 (assoc-ref %build-inputs "xkeyboard-config")
4688 "/share/X11/xkb")
4689 "--disable-xmodmap-support")))
4690 (native-inputs
4691 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4692 ("gobject-introspection" ,gobject-introspection)
4693 ("pkg-config" ,pkg-config)
4694 ("gtk-doc" ,gtk-doc/stable)
4695 ("intltool" ,intltool)
4696 ("which" ,which)
4697 ("autoconf" ,autoconf)
4698 ("automake" ,automake)
4699 ("libtool" ,libtool)))
4700 (propagated-inputs
4701 ;; Required by libxklavier.pc.
4702 `(("glib" ,glib)
4703 ("libxml2" ,libxml2)))
4704 (inputs
4705 `(("iso-codes" ,iso-codes)
4706 ("libxi" ,libxi)
4707 ("libxkbfile" ,libxkbfile)
4708 ("xkbcomp" ,xkbcomp)
4709 ("xkeyboard-config" ,xkeyboard-config)))
4710 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4711 (synopsis "High-level API for X Keyboard Extension")
4712 (description
4713 "LibXklavier is a library providing high-level API for X Keyboard
4714 Extension known as XKB. This library is intended to support XFree86 and other
4715 commercial X servers. It is useful for creating XKB-related software (layout
4716 indicators etc).")
4717 (license license:lgpl2.0+)))
4718
4719 (define-public python2-rsvg
4720 ;; XXX: This is actually a subset of gnome-python-desktop.
4721 (package
4722 (name "python2-rsvg")
4723 (version "2.32.0")
4724 (source
4725 (origin
4726 (method url-fetch)
4727 (uri (string-append
4728 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4729 version ".tar.bz2"))
4730 (sha256
4731 (base32
4732 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4733 (build-system gnu-build-system)
4734 (native-inputs
4735 `(("pkg-config" ,pkg-config)))
4736 (inputs
4737 `(("python" ,python-2)
4738 ("python2-pygtk" ,python2-pygtk)
4739 ("librsvg" ,librsvg)))
4740 (home-page "https://www.gnome.org")
4741 (synopsis "Python bindings to librsvg")
4742 (description
4743 "This package provides Python bindings to librsvg, the SVG rendering
4744 library.")
4745
4746 ;; This is the license of the rsvg bindings. The license of each module
4747 ;; of gnome-python-desktop is given in 'COPYING'.
4748 (license license:lgpl2.1+)))
4749
4750 (define-public glib-networking
4751 (package
4752 (name "glib-networking")
4753 (version "2.62.2")
4754 (source (origin
4755 (method url-fetch)
4756 (uri (string-append "mirror://gnome/sources/glib-networking/"
4757 (version-major+minor version) "/"
4758 "glib-networking-" version ".tar.xz"))
4759 (sha256
4760 (base32
4761 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4762 (build-system meson-build-system)
4763 (arguments
4764 `(#:configure-flags '("-Dlibproxy_support=false")))
4765 (native-inputs
4766 `(("pkg-config" ,pkg-config)
4767 ("intltool" ,intltool)))
4768 (inputs
4769 `(("glib" ,glib)
4770 ("gnutls" ,gnutls)
4771 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4772 (home-page "https://www.gnome.org")
4773 (synopsis "Network-related GIO modules")
4774 (description
4775 "This package contains various network related extensions for the GIO
4776 library.")
4777 (license license:lgpl2.0+)))
4778
4779 (define-public rest
4780 (package
4781 (name "rest")
4782 (version "0.8.1")
4783 (source (origin
4784 (method url-fetch)
4785 (uri (string-append "mirror://gnome/sources/rest/"
4786 (version-major+minor version) "/"
4787 name "-" version ".tar.xz"))
4788 (sha256
4789 (base32
4790 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4791 (build-system gnu-build-system)
4792 (arguments
4793 '(#:tests? #f ; tests require internet connection
4794 #:configure-flags
4795 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4796 (native-inputs
4797 `(("glib-mkenums" ,glib "bin")
4798 ("gobject-introspection" ,gobject-introspection)
4799 ("pkg-config" ,pkg-config)))
4800 (propagated-inputs
4801 ;; rest-0.7.pc refers to all these.
4802 `(("glib" ,glib)
4803 ("libsoup" ,libsoup)
4804 ("libxml2" ,libxml2)))
4805 (home-page "https://www.gtk.org/")
4806 (synopsis "RESTful web api query library")
4807 (description
4808 "This library was designed to make it easier to access web services that
4809 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4810 libxml to ease remote use of the RESTful API.")
4811 (license license:lgpl2.1+)))
4812
4813 (define-public libsoup
4814 (package
4815 (name "libsoup")
4816 (version "2.72.0")
4817 (source (origin
4818 (method url-fetch)
4819 (uri (string-append "mirror://gnome/sources/libsoup/"
4820 (version-major+minor version) "/"
4821 "libsoup-" version ".tar.xz"))
4822 (sha256
4823 (base32
4824 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
4825 (build-system meson-build-system)
4826 (outputs '("out" "doc"))
4827 (arguments
4828 `(#:modules ((guix build utils)
4829 (guix build meson-build-system)
4830 (ice-9 popen))
4831
4832 #:configure-flags '("-Dgtk_doc=true")
4833 #:phases
4834 (modify-phases %standard-phases
4835 (add-after 'unpack 'patch-docbook-xml
4836 (lambda* (#:key inputs #:allow-other-keys)
4837 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
4838 "/xml/dtd/docbook")))
4839 (substitute* (find-files "docs/reference")
4840 (("http://.*/docbookx\\.dtd")
4841 (string-append xmldoc "/docbookx.dtd")))
4842 #t)))
4843 (add-after 'unpack 'adjust-tests
4844 (lambda _
4845 ;; This test fails due to missing /etc/nsswitch.conf
4846 ;; in the build environment.
4847 (substitute* "tests/socket-test.c"
4848 ((".*/sockets/unconnected.*") ""))
4849
4850 ;; These fail because "subdomain.localhost" does not resolve in
4851 ;; the build environment.
4852 (substitute* "tests/hsts-test.c"
4853 ((".*/hsts/basic.*") "")
4854 ((".*/hsts/subdomains.*") "")
4855 ((".*/hsts/superdomain.*") "")
4856 ((".*/hsts/utf8-address.*") ""))
4857 (substitute* "tests/hsts-db-test.c"
4858 ((".*/hsts-db/subdomains.*") ""))
4859
4860 ;; Generate a self-signed certificate that has "localhost" as its
4861 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4862 ;; 3.5.12, tests such as "ssl-tests" fail:
4863 ;;
4864 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4865 ;;
4866 ;; 'certtool' is interactive so we have to pipe it the answers.
4867 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4868 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4869 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4870 (for-each (lambda (line)
4871 (display line pipe)
4872 (newline pipe))
4873 '("" ;Common name
4874 "" ;UID
4875 "Guix" ;Organizational unit name
4876 "GNU" ;Organization name
4877 "" ;Locality name
4878 "" ;State or province
4879 "" ;Country
4880 "" ;subject's domain component (DC)
4881 "" ;E-mail
4882 "" ;serial number
4883 "-1" ;expiration time
4884 "N" ;belong to authority?
4885 "N" ;web client certificate?
4886 "N" ;IPsec IKE?
4887 "Y" ;web server certificate?
4888 "localhost" ;dnsName of subject
4889 "" ;dnsName of subject (end)
4890 "" ;URI of subject
4891 "127.0.0.1" ;IP address of subject
4892 "" ;signing?
4893 "" ;encryption (RSA)?
4894 "" ;data encryption?
4895 "" ;sign OCSP requests?
4896 "" ;sign code?
4897 "" ;time stamping?
4898 "" ;email protection?
4899 "" ;URI of the CRL distribution point
4900 "y" ;above info OK?
4901 ))
4902 (close-pipe pipe))
4903 #t))
4904 (add-after 'install 'move-doc
4905 (lambda* (#:key outputs #:allow-other-keys)
4906 (let ((out (assoc-ref outputs "out"))
4907 (doc (assoc-ref outputs "doc")))
4908 (mkdir-p (string-append doc "/share"))
4909 (copy-recursively (string-append out "/share/gtk-doc")
4910 (string-append doc "/share/gtk-doc"))
4911 (delete-file-recursively (string-append out "/share/gtk-doc"))
4912 #t))))))
4913 (native-inputs
4914 `(("docbook-xml" ,docbook-xml-4.1.2)
4915 ("glib:bin" ,glib "bin") ; for glib-mkenums
4916 ("gobject-introspection" ,gobject-introspection)
4917 ("gtk-doc" ,gtk-doc/stable)
4918 ("intltool" ,intltool)
4919 ("pkg-config" ,pkg-config)
4920 ("python" ,python-wrapper)
4921 ("vala" ,vala)
4922 ("php" ,php)
4923 ("curl" ,curl)
4924 ("gnutls" ,gnutls) ;for 'certtool'
4925 ("httpd" ,httpd)))
4926 (propagated-inputs
4927 ;; libsoup-2.4.pc refers to all of these (except where otherwise noted)
4928 `(("brotli" ,google-brotli)
4929 ("glib" ,glib)
4930 ("glib-networking" ,glib-networking) ; for GIO runtime modules
4931 ("libpsl" ,libpsl)
4932 ("libxml2" ,libxml2)
4933 ("sqlite" ,sqlite)
4934 ("zlib" ,zlib)))
4935 (inputs
4936 `(("mit-krb5" ,mit-krb5)
4937 ("ntlm_auth" ,samba))) ; For ntlm_auth support
4938 (home-page "https://wiki.gnome.org/Projects/libsoup")
4939 (synopsis "GLib-based HTTP Library")
4940 (description
4941 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4942 and the GLib main loop, to integrate well with GNOME applications.")
4943 (license license:lgpl2.0+)))
4944
4945
4946 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4947 (define-public libsoup-minimal
4948 (package/inherit libsoup
4949 (name "libsoup-minimal")
4950 (outputs (delete "doc" (package-outputs libsoup)))
4951 (arguments
4952 (substitute-keyword-arguments (package-arguments libsoup)
4953 ((#:configure-flags configure-flags)
4954 `(delete "-Dgtk_doc=true" ,configure-flags))
4955 ((#:phases phases)
4956 `(modify-phases ,phases
4957 (delete 'move-doc)))))
4958 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4959
4960 (define-public libsecret
4961 (package
4962 (name "libsecret")
4963 (version "0.20.4")
4964 (source (origin
4965 (method url-fetch)
4966 (uri (string-append
4967 "mirror://gnome/sources/libsecret/"
4968 (version-major+minor version) "/"
4969 "libsecret-" version ".tar.xz"))
4970 (sha256
4971 (base32
4972 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
4973 (build-system gnu-build-system)
4974 (outputs '("out" "doc"))
4975 (arguments
4976 `(#:tests? #f ; FIXME: Testing hangs.
4977 #:configure-flags
4978 (list (string-append "--with-html-dir="
4979 (assoc-ref %outputs "doc")
4980 "/share/gtk-doc/html"))))
4981 (native-inputs
4982 `(("gettext" ,gettext-minimal)
4983 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4984 ("gobject-introspection" ,gobject-introspection)
4985 ("pkg-config" ,pkg-config)
4986 ("vala" ,vala)
4987 ("xsltproc" ,libxslt)))
4988 ;; These are needed for the tests.
4989 ;; FIXME: Add gjs once available.
4990 ;("dbus" ,dbus)
4991 ;("python2" ,python-2)
4992 ;("python2-dbus" ,python2-dbus)
4993 ;("python2-pygobject" ,python2-pygobject)
4994 ;("python2-pygobject-2" ,python2-pygobject-2)))
4995 (propagated-inputs
4996 `(("glib" ,glib))) ; required by libsecret-1.pc
4997 (inputs
4998 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
4999 ;; doesn't seem to affect the build result.
5000 `(("docbook-xsl" ,docbook-xsl)
5001 ("libgcrypt" ,libgcrypt)
5002 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
5003 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
5004 (synopsis "GObject bindings for \"Secret Service\" API")
5005 (description
5006 "Libsecret is a GObject based library for storing and retrieving passwords
5007 and other secrets. It communicates with the \"Secret Service\" using DBus.")
5008 (license license:lgpl2.1+)))
5009
5010 (define-public five-or-more
5011 (package
5012 (name "five-or-more")
5013 (version "3.32.2")
5014 (source
5015 (origin
5016 (method url-fetch)
5017 (uri (string-append "mirror://gnome/sources/five-or-more/"
5018 (version-major+minor version) "/"
5019 "five-or-more-" version ".tar.xz"))
5020 (sha256
5021 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
5022 (build-system meson-build-system)
5023 (arguments
5024 '(#:glib-or-gtk? #t
5025 #:phases
5026 (modify-phases %standard-phases
5027 (add-after 'unpack 'skip-gtk-update-icon-cache
5028 (lambda _
5029 (substitute* "meson_post_install.py"
5030 (("gtk-update-icon-cache") (which "true")))
5031 #t)))))
5032 (native-inputs
5033 `(("pkg-config" ,pkg-config)
5034 ("appstream-glib" ,appstream-glib)
5035 ("desktop-file-utils" ,desktop-file-utils)
5036 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5037 ("intltool" ,intltool)
5038 ("itstool" ,itstool)
5039 ("vala" ,vala)
5040 ("xmllint" ,libxml2)))
5041 (inputs
5042 `(("gtk+" ,gtk+)
5043 ("libgnome-games-support" ,libgnome-games-support)
5044 ("librsvg" ,librsvg)))
5045 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
5046 (synopsis "Logic puzzle game")
5047 (description "Five or More is a game where you try to align
5048 five or more objects of the same color and shape causing them to disappear.
5049 On every turn more objects will appear, until the board is full.
5050 Try to last as long as possible.")
5051 (license license:gpl2+)))
5052
5053 (define-public gnome-mines
5054 (package
5055 (name "gnome-mines")
5056 (version "3.36.1")
5057 (source
5058 (origin
5059 (method url-fetch)
5060 (uri (string-append "mirror://gnome/sources/" name "/"
5061 (version-major+minor version) "/"
5062 name "-" version ".tar.xz"))
5063 (sha256
5064 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
5065 (build-system meson-build-system)
5066 (arguments
5067 '(#:glib-or-gtk? #t
5068 #:phases
5069 (modify-phases %standard-phases
5070 (add-after 'unpack 'skip-gtk-update-icon-cache
5071 (lambda _
5072 (substitute* "build-aux/meson_post_install.py"
5073 (("gtk-update-icon-cache") (which "true")))
5074 #t)))))
5075 (native-inputs
5076 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5077 ("pkg-config" ,pkg-config)
5078 ("desktop-file-utils" ,desktop-file-utils)
5079 ("intltool" ,intltool)
5080 ("itstool" ,itstool)
5081 ("vala" ,vala)
5082 ("yelp" ,yelp)
5083 ("appstream-glib" ,appstream-glib)))
5084 (inputs
5085 `(("gtk+" ,gtk+)
5086 ("libgnome-games-support" ,libgnome-games-support)
5087 ("librsvg" ,librsvg)))
5088 (home-page "https://wiki.gnome.org/Apps/Mines")
5089 (synopsis "Minesweeper game")
5090 (description
5091 "Mines (previously gnomine) is a puzzle game where you locate mines
5092 floating in an ocean using only your brain and a little bit of luck.")
5093 (license license:gpl2+)))
5094
5095 (define-public gnome-multi-writer
5096 (package
5097 (name "gnome-multi-writer")
5098 (version "3.35.90")
5099 (source
5100 (origin
5101 (method url-fetch)
5102 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5103 (version-major+minor version) "/"
5104 "gnome-multi-writer-" version ".tar.xz"))
5105 (sha256
5106 (base32
5107 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5108 (build-system meson-build-system)
5109 (arguments
5110 '(#:glib-or-gtk? #t
5111 #:phases
5112 (modify-phases %standard-phases
5113 (add-after 'unpack 'skip-post-install
5114 (lambda _
5115 (substitute* "meson.build"
5116 (("meson.add_install_script" &) (string-append "# " &)))
5117 #t)))))
5118 (native-inputs
5119 `(("glib:bin" ,glib "bin")
5120 ("pkg-config" ,pkg-config)))
5121 (inputs
5122 `(("gtk+" ,gtk+)
5123 ("glib" ,glib) ; for gio
5124 ("gusb" ,gusb)
5125 ("udisks" ,udisks)
5126 ("libgudev" ,libgudev)
5127 ("libcanberra" ,libcanberra)
5128 ("polkit" ,polkit)))
5129 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5130 (synopsis "Write to multiple USB devices at once")
5131 (description
5132 "MultiWriter can be used to write an ISO file to multiple USB devices at
5133 once.")
5134 (license license:gpl2+)))
5135
5136 (define-public gnome-sudoku
5137 (package
5138 (name "gnome-sudoku")
5139 (version "3.34.1")
5140 (source
5141 (origin
5142 (method url-fetch)
5143 (uri (string-append "mirror://gnome/sources/" name "/"
5144 (version-major+minor version) "/"
5145 name "-" version ".tar.xz"))
5146 (sha256
5147 (base32
5148 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
5149 (build-system meson-build-system)
5150 (arguments
5151 '(#:glib-or-gtk? #t
5152 #:phases
5153 (modify-phases %standard-phases
5154 (add-after 'unpack 'skip-gtk-update-icon-cache
5155 (lambda _
5156 (substitute* "build-aux/post_install.py"
5157 (("gtk-update-icon-cache") (which "true")))
5158 #t)))))
5159 (native-inputs
5160 `(("pkg-config" ,pkg-config)
5161 ("desktop-file-utils" ,desktop-file-utils)
5162 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5163 ("intltool" ,intltool)
5164 ("itstool" ,itstool)
5165 ("vala" ,vala)
5166 ("xmllint" ,libxml2)))
5167 (inputs
5168 `(("gtk+" ,gtk+)
5169 ("json-glib" ,json-glib)
5170 ("libgee" ,libgee)
5171 ("librsvg" ,librsvg)
5172 ("qqwing" ,qqwing)))
5173 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5174 (synopsis "Japanese logic game")
5175 (description
5176 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5177 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5178 possible while still providing features that make playing difficult Sudoku
5179 more fun.")
5180 (license license:gpl2+)))
5181
5182 (define-public gnome-terminal
5183 (package
5184 (name "gnome-terminal")
5185 (version "3.34.2")
5186 (source
5187 (origin
5188 (method url-fetch)
5189 (uri (string-append "mirror://gnome/sources/" name "/"
5190 (version-major+minor version) "/"
5191 name "-" version ".tar.xz"))
5192 (sha256
5193 (base32
5194 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
5195 (build-system glib-or-gtk-build-system)
5196 (arguments
5197 '(#:configure-flags
5198 (list "--disable-migration" "--disable-search-provider"
5199 "--without-nautilus-extension")
5200 #:phases
5201 (modify-phases %standard-phases
5202 (add-before 'configure 'patch-/bin/true
5203 (lambda _
5204 (substitute* "configure"
5205 (("/bin/true") (which "true"))))))))
5206 (native-inputs
5207 `(("pkg-config" ,pkg-config)
5208 ("desktop-file-utils" ,desktop-file-utils)
5209 ("intltool" ,intltool)
5210 ("itstool" ,itstool)
5211 ("xmllint" ,libxml2)))
5212 (propagated-inputs
5213 `(("dconf" ,dconf)))
5214 (inputs
5215 `(("gtk+" ,gtk+)
5216 ("vte" ,vte)
5217 ("gnutls" ,gnutls)
5218 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5219 ("util-linux" ,util-linux "lib")
5220 ("vala" ,vala)))
5221 (home-page "https://wiki.gnome.org/Apps/Terminal")
5222 (synopsis "Terminal emulator")
5223 (description
5224 "GNOME Terminal is a terminal emulator application for accessing a
5225 UNIX shell environment which can be used to run programs available on
5226 your system.
5227
5228 It supports several profiles, multiple tabs and implements several
5229 keyboard shortcuts.")
5230 (license license:gpl3+)))
5231
5232 (define-public colord
5233 (package
5234 (name "colord")
5235 (version "1.4.5")
5236 (source
5237 (origin
5238 (method url-fetch)
5239 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5240 "colord-" version ".tar.xz"))
5241 (sha256
5242 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5243 (build-system meson-build-system)
5244 (arguments
5245 '(;; FIXME: One test fails:
5246 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5247 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5248 ;; application/x-zerosize
5249 #:tests? #f
5250 #:glib-or-gtk? #t
5251 #:configure-flags (list "-Dlocalstatedir=/var"
5252 ;; No dep on systemd.
5253 "-Dsystemd=false"
5254 ;; Wants to install to global completion dir;
5255 ;; punt.
5256 "-Dbash_completion=false"
5257 "-Ddaemon_user=colord"
5258 "-Dsane=true"
5259 "-Dvapi=true"
5260 ;; Requires spotread.
5261 "-Dargyllcms_sensor=false"
5262 ;; TODO: Requires docbook2x.
5263 "-Dman=false")
5264 #:phases
5265 (modify-phases %standard-phases
5266 (add-before 'configure 'patch-build-system
5267 (lambda* (#:key outputs #:allow-other-keys)
5268 (substitute* "rules/meson.build"
5269 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5270 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
5271 #t))
5272 (add-before 'configure 'set-sqlite3-file-name
5273 (lambda* (#:key inputs #:allow-other-keys)
5274 ;; "colormgr dump" works by invoking the "sqlite3" command.
5275 ;; Record its absolute file name.
5276 (let ((sqlite (assoc-ref inputs "sqlite")))
5277 (substitute* "client/cd-util.c"
5278 (("\"sqlite3\"")
5279 (string-append "\"" sqlite "/bin/sqlite3\"")))
5280 #t))))))
5281 (native-inputs
5282 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5283 ("gettext" ,gettext-minimal)
5284 ("gobject-introspection" ,gobject-introspection)
5285 ("gtk-doc" ,gtk-doc/stable)
5286 ("pkg-config" ,pkg-config)
5287 ("vala" ,vala)))
5288 (propagated-inputs
5289 ;; colord.pc refers to all these.
5290 `(("glib" ,glib)
5291 ("lcms" ,lcms)
5292 ("udev" ,eudev)))
5293 (inputs
5294 `(("dbus-glib" ,dbus-glib)
5295 ("gusb" ,gusb)
5296 ("libgudev" ,libgudev)
5297 ("libusb" ,libusb)
5298 ("polkit" ,polkit)
5299 ("python" ,python-wrapper)
5300 ("sqlite" ,sqlite)
5301 ("sane-backends" ,sane-backends)))
5302 (home-page "https://www.freedesktop.org/software/colord/")
5303 (synopsis "Color management service")
5304 (description "Colord is a system service that makes it easy to manage,
5305 install and generate color profiles to accurately color manage input and
5306 output devices.")
5307 (license license:gpl2+)))
5308
5309 (define-public geoclue
5310 (package
5311 (name "geoclue")
5312 (version "2.5.7")
5313 (source
5314 (origin
5315 (method url-fetch)
5316 (uri
5317 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5318 version "/geoclue-" version ".tar.bz2"))
5319 (sha256
5320 (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
5321 (patches (search-patches "geoclue-config.patch"))))
5322 (build-system meson-build-system)
5323 (arguments
5324 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
5325 (native-inputs
5326 `(("pkg-config" ,pkg-config)
5327 ("gobject-introspection" ,gobject-introspection)
5328 ("modem-manager" ,modem-manager)
5329 ("libnotify" ,libnotify)
5330 ("gtk-doc" ,gtk-doc/stable)
5331 ("intltool" ,intltool)))
5332 (inputs
5333 `(("avahi" ,avahi)
5334 ("glib:bin" ,glib "bin")
5335 ("glib-networking" ,glib-networking)
5336 ("json-glib" ,json-glib)
5337 ("libsoup" ,libsoup)))
5338 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5339 (synopsis "Geolocation service")
5340 (description "Geoclue is a D-Bus service that provides location
5341 information. The primary goal of the Geoclue project is to make creating
5342 location-aware applications as simple as possible, while the secondary goal is
5343 to ensure that no application can access location information without explicit
5344 permission from user.")
5345 (license license:gpl2+)))
5346
5347 (define-public geocode-glib
5348 (package
5349 (name "geocode-glib")
5350 (version "3.26.2")
5351 (source (origin
5352 (method url-fetch)
5353 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5354 (version-major+minor version) "/"
5355 "geocode-glib-" version ".tar.xz"))
5356 (sha256
5357 (base32
5358 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5359 (build-system meson-build-system)
5360 (arguments
5361 `(#:phases
5362 (modify-phases %standard-phases
5363 ;; The tests require a bunch of locales.
5364 (add-before 'check 'set-locales
5365 (lambda* (#:key inputs #:allow-other-keys)
5366 (setenv "GUIX_LOCPATH"
5367 (string-append (assoc-ref inputs "glibc-locales")
5368 "/lib/locale"))
5369 #t)))))
5370 (native-inputs
5371 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5372 ("glibc-locales" ,glibc-locales) ; for tests
5373 ("gettext" ,gettext-minimal)
5374 ("gobject-introspection" ,gobject-introspection)
5375 ("gtk-doc" ,gtk-doc/stable)
5376 ("pkg-config" ,pkg-config)
5377 ("json-glib" ,json-glib)))
5378 (propagated-inputs
5379 ;; geocode-glib-1.0.pc refers to GIO.
5380 `(("glib" ,glib)))
5381 (inputs
5382 `(("libsoup" ,libsoup)))
5383 (home-page "https://github.com/GNOME/geocode-glib/")
5384 (synopsis "Geocoding and reverse-geocoding library")
5385 (description
5386 "geocode-glib is a convenience library for geocoding (finding longitude,
5387 and latitude from an address) and reverse geocoding (finding an address from
5388 coordinates) using the Nominatim service. geocode-glib caches requests for
5389 faster results and to avoid unnecessary server load.")
5390 (license license:lgpl2.0+)))
5391
5392 (define-public upower
5393 (package
5394 (name "upower")
5395 (version "0.99.11")
5396 (source (origin
5397 (method url-fetch)
5398 (uri (string-append "https://upower.freedesktop.org/releases/"
5399 "upower-" version ".tar.xz"))
5400 (sha256
5401 (base32
5402 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5403 (patches (search-patches "upower-builddir.patch"))
5404 (modules '((guix build utils)))
5405 (snippet
5406 '(begin
5407 ;; Upstream commit
5408 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5409 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5410 ;; 'dbus-configuration-directory' in (gnu services dbus)
5411 ;; expects it in etc/. Thus, move it back to its previous
5412 ;; location.
5413 (substitute* "src/Makefile.in"
5414 (("^dbusconfdir =.*$")
5415 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5416 #t))))
5417 (build-system glib-or-gtk-build-system)
5418 (arguments
5419 '(#:phases
5420 (modify-phases %standard-phases
5421 (add-before 'check 'pre-check
5422 (lambda* (#:key inputs #:allow-other-keys)
5423 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5424 "/lib")))
5425 (setenv "LD_LIBRARY_PATH" umockdev))
5426 #t)))
5427 #:configure-flags (list "--localstatedir=/var"
5428 (string-append "--with-udevrulesdir="
5429 (assoc-ref %outputs "out")
5430 "/lib/udev/rules.d"))))
5431 (native-inputs
5432 `(("gobject-introspection" ,gobject-introspection)
5433 ("pkg-config" ,pkg-config)
5434 ("intltool" ,intltool)
5435 ("python" ,python)
5436
5437 ;; For tests.
5438 ("python-dbus" ,python-dbus)
5439 ("python-dbusmock" ,python-dbusmock)
5440 ("python-pygobject" ,python-pygobject)
5441 ("umockdev" ,umockdev)
5442
5443 ;; For man pages.
5444 ("libxslt" ,libxslt) ;for 'xsltproc'
5445 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5446 ("docbook-xsl" ,docbook-xsl)))
5447 (inputs
5448 `(("dbus-glib" ,dbus-glib)
5449 ("libgudev" ,libgudev)
5450 ("libusb" ,libusb)))
5451 (propagated-inputs
5452 ;; In Requires of upower-glib.pc.
5453 `(("glib" ,glib)))
5454 (home-page "https://upower.freedesktop.org/")
5455 (synopsis "System daemon for managing power devices")
5456 (description
5457 "UPower is an abstraction for enumerating power devices,
5458 listening to device events and querying history and statistics. Any
5459 application or service on the system can access the org.freedesktop.UPower
5460 service via the system message bus.")
5461 (license license:gpl2+)))
5462
5463 (define-public libgweather
5464 (package
5465 (name "libgweather")
5466 (version "3.34.0")
5467 (source (origin
5468 (method url-fetch)
5469 (uri (string-append "mirror://gnome/sources/" name "/"
5470 (version-major+minor version) "/"
5471 name "-" version ".tar.xz"))
5472 (sha256
5473 (base32
5474 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5475 (build-system meson-build-system)
5476 (arguments
5477 `(#:tests? #f ; one of two tests requires network access
5478 #:configure-flags
5479 `(,(string-append "-Dzoneinfo_dir="
5480 (assoc-ref %build-inputs "tzdata")
5481 "/share/zoneinfo"))))
5482 (native-inputs
5483 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5484 ("gobject-introspection" ,gobject-introspection)
5485 ("pkg-config" ,pkg-config)
5486 ("vala" ,vala)
5487 ("intltool" ,intltool)))
5488 (propagated-inputs
5489 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5490 ;; libsoup.
5491 `(("gtk+" ,gtk+)
5492 ("gdk-pixbuf" ,gdk-pixbuf)
5493 ("libxml2" ,libxml2)
5494 ("libsoup" ,libsoup)
5495 ("geocode-glib" ,geocode-glib)))
5496 (inputs
5497 `(("tzdata" ,tzdata)))
5498 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5499 (synopsis "Location, time zone, and weather library for GNOME")
5500 (description
5501 "libgweather is a library to access weather information from online
5502 services for numerous locations.")
5503 (license license:gpl2+)))
5504
5505 (define-public gnome-settings-daemon
5506 (package
5507 (name "gnome-settings-daemon")
5508 (version "3.34.1")
5509 (source
5510 (origin
5511 (method url-fetch)
5512 (uri (string-append "mirror://gnome/sources/" name "/"
5513 (version-major+minor version) "/"
5514 name "-" version ".tar.xz"))
5515 (sha256
5516 (base32
5517 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
5518 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5519 (build-system meson-build-system)
5520 (arguments
5521 `(#:glib-or-gtk? #t
5522 #:configure-flags
5523 (list (string-append "-Dudev_dir="
5524 (assoc-ref %outputs "out")
5525 "/lib/udev/rules.d/")
5526 "-Dsystemd=false"
5527 ;; Otherwise, the RUNPATH will lack the final path component.
5528 (string-append "-Dc_link_args=-Wl,-rpath="
5529 (assoc-ref %outputs "out")
5530 "/lib/gnome-settings-daemon-3.0"))
5531
5532 #:phases (modify-phases %standard-phases
5533 (add-before 'configure 'set-baobab-file-name
5534 (lambda* (#:key inputs #:allow-other-keys)
5535 ;; Hard-code the file name of Baobab instead of looking
5536 ;; it up in $PATH. This ensures users get the "Examine"
5537 ;; button in the low disk space notification of GDM even
5538 ;; if they don't have GNOME in their main profile.
5539 (let ((baobab (assoc-ref inputs "baobab")))
5540 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5541 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5542 (string-append "g_strdup (\"" baobab
5543 "/bin/baobab\")")))
5544 #t))))
5545
5546 ;; Color management test can't reach the colord system service.
5547 #:tests? #f))
5548 (native-inputs
5549 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5550 ("pkg-config" ,pkg-config)
5551 ("intltool" ,intltool)
5552 ("xsltproc" ,libxslt)
5553 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5554 ("docbook-xml" ,docbook-xml-4.2)
5555 ("docbook-xsl" ,docbook-xsl)))
5556 (inputs
5557 `(("alsa-lib" ,alsa-lib)
5558 ("baobab" ,baobab)
5559 ("colord" ,colord)
5560 ("libgudev" ,libgudev)
5561 ("upower" ,upower)
5562 ("polkit" ,polkit)
5563 ("pulseaudio" ,pulseaudio)
5564 ("libcanberra" ,libcanberra)
5565 ("libx11" ,libx11)
5566 ("libxtst" ,libxtst)
5567 ("lcms" ,lcms)
5568 ("libnotify" ,libnotify)
5569 ("geoclue" ,geoclue)
5570 ("geocode-glib" ,geocode-glib)
5571 ("libgweather" ,libgweather)
5572 ("gnome-desktop" ,gnome-desktop)
5573 ("nss" ,nss)
5574 ("cups" ,cups)
5575 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5576 ("libwacom" ,libwacom)
5577 ("librsvg" ,librsvg)
5578 ("xf86-input-wacom" ,xf86-input-wacom)
5579 ("wayland" ,wayland)
5580 ("network-manager" ,network-manager)
5581 ("gcr" ,gcr)
5582 ("modem-manager" ,modem-manager)))
5583 (home-page "https://www.gnome.org")
5584 (synopsis "GNOME settings daemon")
5585 (description
5586 "This package contains the daemon responsible for setting the various
5587 parameters of a GNOME session and the applications that run under it. It
5588 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5589 settings, themes, mouse settings, and startup of other daemons.")
5590 (license license:gpl2+)))
5591
5592 (define-public totem-pl-parser
5593 (package
5594 (name "totem-pl-parser")
5595 (version "3.26.5")
5596 (source (origin
5597 (method url-fetch)
5598 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5599 (version-major+minor version) "/"
5600 "totem-pl-parser-" version ".tar.xz"))
5601 (sha256
5602 (base32
5603 "132jihnf51zs98yjkc6jxyqib4f3dawpjm17g4bj4j78y93dww2k"))))
5604 (build-system meson-build-system)
5605 (arguments
5606 ;; FIXME: Tests require gvfs.
5607 `(#:tests? #f))
5608 (native-inputs
5609 `(("intltool" ,intltool)
5610 ("glib" ,glib "bin")
5611 ("gobject-introspection" ,gobject-introspection)
5612 ("pkg-config" ,pkg-config)))
5613 (propagated-inputs
5614 `(("glib" ,glib)
5615 ("gmime" ,gmime)
5616 ("libarchive" ,libarchive)
5617 ("libgcrypt" ,libgcrypt)
5618 ("libxml2" ,libxml2)))
5619 (inputs
5620 `(("libsoup" ,libsoup)))
5621 (home-page "https://projects.gnome.org/totem")
5622 (synopsis "Library to parse and save media playlists for GNOME")
5623 (description "Totem-pl-parser is a GObjects-based library to parse and save
5624 playlists in a variety of formats.")
5625 (license license:lgpl2.0+)))
5626
5627 (define-public aisleriot
5628 (package
5629 (name "aisleriot")
5630 (version "3.22.9")
5631 (source (origin
5632 (method url-fetch)
5633 (uri (string-append "mirror://gnome/sources/aisleriot/"
5634 (version-major+minor version) "/"
5635 "aisleriot-" version ".tar.xz"))
5636 (sha256
5637 (base32
5638 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5639 (build-system glib-or-gtk-build-system)
5640 (arguments
5641 '(#:configure-flags
5642 '("--with-platform=gtk-only"
5643 "--with-card-theme-formats=svg")))
5644 (native-inputs
5645 `(("desktop-file-utils" ,desktop-file-utils)
5646 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5647 ("intltool" ,intltool)
5648 ("itstool" ,itstool)
5649 ("pkg-config" ,pkg-config)
5650 ("xmllint" ,libxml2)))
5651 (inputs
5652 `(("gtk+" ,gtk+)
5653 ("guile" ,guile-2.2)
5654 ("libcanberra" ,libcanberra)
5655 ("librsvg" ,librsvg)))
5656 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5657 (synopsis "Solitaire card games")
5658 (description
5659 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5660 which are easy to play with the aid of a mouse.")
5661 (license license:gpl3+)))
5662
5663 (define-public amtk
5664 (package
5665 (name "amtk")
5666 (version "5.0.2")
5667 (source (origin
5668 (method url-fetch)
5669 (uri (string-append "mirror://gnome/sources/amtk/"
5670 (version-major+minor version) "/"
5671 "amtk-" version ".tar.xz"))
5672 (sha256
5673 (base32
5674 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5675 (build-system gnu-build-system)
5676 (arguments
5677 '(#:configure-flags '("--enable-gtk-doc")))
5678 (native-inputs
5679 `(("gobject-introspection" ,gobject-introspection)
5680 ("glib:bin" ,glib "bin") ; for glib-mkenums
5681 ("gtk-doc" ,gtk-doc/stable)
5682 ("pkg-config" ,pkg-config)))
5683 (inputs
5684 `(("glib" ,glib)
5685 ("gtk+" ,gtk+)))
5686 (home-page "https://wiki.gnome.org/Projects/Amtk")
5687 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5688 (description
5689 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5690 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5691 both a traditional UI or a modern UI with a GtkHeaderBar.")
5692 (license license:lgpl2.1+)))
5693
5694 (define-public devhelp
5695 (package
5696 (name "devhelp")
5697 (version "3.34.0")
5698 (source (origin
5699 (method url-fetch)
5700 (uri (string-append "mirror://gnome/sources/" name "/"
5701 (version-major+minor version) "/"
5702 name "-" version ".tar.xz"))
5703 (sha256
5704 (base32
5705 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5706 (build-system meson-build-system)
5707 (arguments
5708 '(#:glib-or-gtk? #t
5709 #:phases
5710 (modify-phases %standard-phases
5711 (add-after 'unpack 'skip-gtk-update-icon-cache
5712 ;; Don't create 'icon-theme.cache'.
5713 (lambda _
5714 (substitute* "meson_post_install.py"
5715 (("gtk-update-icon-cache") "true"))
5716 #t)))))
5717 (native-inputs
5718 `(("intltool" ,intltool)
5719 ("itstool" ,itstool)
5720 ("gobject-introspection" ,gobject-introspection)
5721 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5722 ("pkg-config" ,pkg-config)))
5723 (inputs
5724 `(("amtk" ,amtk)
5725 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5726 ("webkitgtk" ,webkitgtk)))
5727 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5728 (synopsis "API documentation browser for GNOME")
5729 (description
5730 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5731 natively with GTK-Doc (the API reference system developed for GTK+ and used
5732 throughout GNOME for API documentation).")
5733 (license license:gpl2+)))
5734
5735 (define-public cogl
5736 (package
5737 (name "cogl")
5738 (version "1.22.8")
5739 (source
5740 (origin
5741 (method url-fetch)
5742 (uri (string-append "mirror://gnome/sources/cogl/"
5743 (version-major+minor version) "/"
5744 "cogl-" version ".tar.xz"))
5745 (sha256
5746 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5747 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5748 ;; cogl, corresponding changes may be appropriate in mutter as well.
5749 (build-system gnu-build-system)
5750 (native-inputs
5751 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5752 ("gobject-introspection" ,gobject-introspection)
5753 ("xorg-server" ,xorg-server-for-tests)
5754 ("pkg-config" ,pkg-config)))
5755 (propagated-inputs
5756 `(("glib" ,glib)
5757 ("gdk-pixbuf" ,gdk-pixbuf)
5758 ("libx11" ,libx11)
5759 ("libxext" ,libxext)
5760 ("libxfixes" ,libxfixes)
5761 ("libxdamage" ,libxdamage)
5762 ("libxcomposite" ,libxcomposite)
5763 ("libxrandr" ,libxrandr)))
5764 (inputs
5765 `(("mesa" ,mesa)
5766 ("cairo" ,cairo)
5767 ("pango" ,pango)
5768 ("gstreamer" ,gstreamer)
5769 ("gst-plugins-base" ,gst-plugins-base)
5770 ("wayland" ,wayland)))
5771 (arguments
5772 `(#:disallowed-references (,xorg-server-for-tests)
5773 #:configure-flags (list "--enable-cogl-gst"
5774 "--enable-wayland-egl-platform"
5775 "--enable-wayland-egl-server"
5776
5777 ;; Arrange to pass an absolute file name to
5778 ;; dlopen for libGL.so.
5779 (string-append "--with-gl-libname="
5780 (assoc-ref %build-inputs "mesa")
5781 "/lib/libGL.so"))
5782 #:phases
5783 (modify-phases %standard-phases
5784 (add-after 'unpack 'fix-build-with-mesa-20
5785 (lambda _
5786 ;; Work around a problem with Mesa 20 where some macros used by
5787 ;; Cogl went missing from eglext.h. This can likely be removed
5788 ;; for newer versions of Cogl or Mesa.
5789 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5790 (substitute* '("configure"
5791 "cogl/winsys/cogl-winsys-egl-kms.c")
5792 (("#include <EGL/eglext.h>" all)
5793 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5794 #t))
5795 (add-before 'check 'start-xorg-server
5796 (lambda* (#:key tests? inputs #:allow-other-keys)
5797 (if tests?
5798 (begin
5799 ;; The test suite requires a running X server.
5800 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5801 (assoc-ref inputs "xorg-server")))
5802 (setenv "DISPLAY" ":1")
5803 #t)
5804 (format #t "test suite not run~%"))
5805 #t)))))
5806 (home-page "https://www.cogl3d.org")
5807 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5808 (description
5809 "Cogl is a small library for using 3D graphics hardware to draw pretty
5810 pictures. The API departs from the flat state machine style of OpenGL and is
5811 designed to make it easy to write orthogonal components that can render
5812 without stepping on each others toes.")
5813 (license (list license:expat ; most of the code
5814 license:bsd-3 ; cogl/cogl-point-in-poly.c
5815 license:sgifreeb2.0 ; cogl-path/tesselator/
5816 license:asl2.0)))) ; examples/android/
5817
5818 (define-public clutter
5819 (package
5820 (name "clutter")
5821 (version "1.26.2")
5822 (source
5823 (origin
5824 (method url-fetch)
5825 (uri (string-append "mirror://gnome/sources/" name "/"
5826 (version-major+minor version) "/"
5827 name "-" version ".tar.xz"))
5828 (sha256
5829 (base32
5830 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5831 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5832 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5833 (build-system gnu-build-system)
5834 (outputs '("out"
5835 "doc")) ;9 MiB of gtk-doc HTML pages
5836 (native-inputs
5837 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5838 ("gobject-introspection" ,gobject-introspection)
5839 ("pkg-config" ,pkg-config)
5840 ("xsltproc" ,libxslt)))
5841 (propagated-inputs
5842 `(("cogl" ,cogl)
5843 ("cairo" ,cairo)
5844 ("atk" ,atk)
5845 ("gtk+" ,gtk+)
5846 ("json-glib" ,json-glib)
5847 ("glib" ,glib)
5848 ("libxcomposite" ,libxcomposite)
5849 ("libxdamage" ,libxdamage)
5850 ("libxext" ,libxext)
5851 ("xinput" ,xinput)))
5852 (inputs
5853 `(("libxkbcommon" ,libxkbcommon)
5854 ("udev" ,eudev)))
5855 (arguments
5856 `(#:configure-flags (list "--enable-x11-backend=yes"
5857
5858 ;; This produces share/doc/{clutter,cally}.
5859 (string-append "--with-html-dir="
5860 (assoc-ref %outputs "doc")
5861 "/share/doc"))
5862 ;; XXX FIXME: Get test suite working. It would probably fail in the
5863 ;; same way the cogl tests fail, since clutter is based on cogl.
5864 #:tests? #f))
5865 (home-page "http://www.clutter-project.org")
5866 (synopsis "OpenGL-based interactive canvas library")
5867 (description
5868 "Clutter is an OpenGL-based interactive canvas library, designed for
5869 creating fast, mainly 2D single window applications such as media box UIs,
5870 presentations, kiosk style applications and so on.")
5871 (license license:lgpl2.0+)))
5872
5873 (define-public clutter-gtk
5874 (package
5875 (name "clutter-gtk")
5876 (version "1.8.4")
5877 (source
5878 (origin
5879 (method url-fetch)
5880 (uri (string-append "mirror://gnome/sources/" name "/"
5881 (version-major+minor version) "/"
5882 name "-" version ".tar.xz"))
5883 (sha256
5884 (base32
5885 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5886 (build-system gnu-build-system)
5887 (native-inputs
5888 `(("pkg-config" ,pkg-config)
5889 ("gobject-introspection" ,gobject-introspection)))
5890 (propagated-inputs
5891 ;; clutter-gtk.pc refers to all these.
5892 `(("clutter" ,clutter)
5893 ("gtk+" ,gtk+)))
5894 (home-page "http://www.clutter-project.org")
5895 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5896 (description
5897 "Clutter is an OpenGL-based interactive canvas library, designed for
5898 creating fast, mainly 2D single window applications such as media box UIs,
5899 presentations, kiosk style applications and so on.")
5900 (license license:lgpl2.0+)))
5901
5902 (define-public clutter-gst
5903 (package
5904 (name "clutter-gst")
5905 (version "3.0.27")
5906 (source
5907 (origin
5908 (method url-fetch)
5909 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5910 (version-major+minor version) "/"
5911 "clutter-gst-" version ".tar.xz"))
5912 (sha256
5913 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5914 (build-system gnu-build-system)
5915 (native-inputs
5916 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5917 ("pkg-config" ,pkg-config)
5918 ("gobject-introspection" ,gobject-introspection)))
5919 (inputs
5920 `(("clutter" ,clutter)
5921 ("gstreamer" ,gstreamer)
5922 ("gst-plugins-base" ,gst-plugins-base)))
5923 (home-page "http://www.clutter-project.org")
5924 (synopsis "Integration library for using GStreamer with Clutter")
5925 (description
5926 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5927 It provides a GStreamer sink to upload frames to GL and an actor that
5928 implements the ClutterGstPlayer interface using playbin. Clutter is an
5929 OpenGL-based interactive canvas library.")
5930 (license license:lgpl2.0+)))
5931
5932 (define-public libchamplain
5933 (package
5934 (name "libchamplain")
5935 (version "0.12.16")
5936 (source (origin
5937 (method url-fetch)
5938 (uri (string-append
5939 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5940 version ".tar.xz"))
5941 (sha256
5942 (base32
5943 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5944 (build-system gnu-build-system)
5945 (arguments '(#:configure-flags '("--enable-vala")))
5946 (native-inputs
5947 `(("gobject-introspection" ,gobject-introspection)
5948 ("pkg-config" ,pkg-config)
5949 ("vala" ,vala)))
5950 (propagated-inputs
5951 `(("libsoup" ,libsoup)
5952 ("sqlite" ,sqlite)
5953 ("clutter" ,clutter)
5954 ("clutter-gtk" ,clutter-gtk)
5955 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5956 ("cairo" ,cairo)
5957 ("gtk+3" ,gtk+)
5958 ("glib" ,glib)))
5959 (home-page "https://projects.gnome.org/libchamplain/")
5960 (synopsis "C library providing a ClutterActor to display maps")
5961 (description
5962 "libchamplain is a C library providing a ClutterActor to display maps.
5963 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5964 and Perl bindings are also available. It supports numerous free map sources
5965 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5966 (license license:lgpl2.1+)))
5967
5968 (define-public gom
5969 (package
5970 (name "gom")
5971 (version "0.3.2")
5972 (source
5973 (origin
5974 (method url-fetch)
5975 (uri (string-append "mirror://gnome/sources/gom/"
5976 (version-major+minor version) "/"
5977 "gom-" version ".tar.xz"))
5978 (sha256
5979 (base32
5980 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5981 (build-system gnu-build-system)
5982 (native-inputs
5983 `(("intltool" ,intltool)
5984 ("pkg-config" ,pkg-config)
5985 ("gobject-introspection" ,gobject-introspection)))
5986 (inputs
5987 `(("glib" ,glib)
5988 ("gdk-pixbuf" ,gdk-pixbuf)
5989 ("sqlite" ,sqlite)))
5990 ;; XXX TODO: Figure out how to run the test suite.
5991 (arguments `(#:tests? #f))
5992 (home-page "https://wiki.gnome.org/Projects/Gom")
5993 (synopsis "Object mapper from GObjects to SQLite")
5994 (description
5995 "Gom provides an object mapper from GObjects to SQLite. It helps you
5996 write applications that need to store structured data as well as make complex
5997 queries upon that data.")
5998 (license license:lgpl2.1+)))
5999
6000 (define-public libgnome-games-support
6001 (package
6002 (name "libgnome-games-support")
6003 (version "1.7.1")
6004 (source (origin
6005 (method url-fetch)
6006 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
6007 (version-major+minor version) "/"
6008 "libgnome-games-support-" version ".tar.xz"))
6009 (sha256
6010 (base32
6011 "11g1r3ppb9v8m3anks9gxf7fv1x38vmjiya3lr7zjjv328pb69d6"))))
6012 (build-system meson-build-system)
6013 (arguments
6014 '(#:glib-or-gtk? #t
6015 #:phases
6016 (modify-phases %standard-phases
6017 (add-before 'check 'pre-check
6018 (lambda _
6019 ;; Tests require a writable HOME.
6020 (setenv "HOME" (getcwd))
6021 #t)))))
6022 (native-inputs
6023 `(("intltool" ,intltool)
6024 ("pkg-config" ,pkg-config)
6025 ("vala" ,vala)))
6026 (propagated-inputs
6027 ;; Required by libgnome-games-support-1.0.pc
6028 `(("gtk+" ,gtk+)
6029 ("libgee" ,libgee)))
6030 (home-page "https://www.gnome.org/")
6031 (synopsis "Useful functionality shared among GNOME games")
6032 (description
6033 "libgnome-games-support is a small library intended for internal use by
6034 GNOME Games, but it may be used by others.")
6035 (license license:lgpl3+)))
6036
6037 (define-public gnome-klotski
6038 (package
6039 (name "gnome-klotski")
6040 (version "3.34.0")
6041 (source (origin
6042 (method url-fetch)
6043 (uri (string-append "mirror://gnome/sources/" name "/"
6044 (version-major+minor version) "/"
6045 name "-" version ".tar.xz"))
6046 (sha256
6047 (base32
6048 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
6049 (build-system meson-build-system)
6050 (arguments
6051 '(#:glib-or-gtk? #t
6052 #:phases
6053 (modify-phases %standard-phases
6054 (add-after 'unpack 'skip-gtk-update-icon-cache
6055 ;; Don't create 'icon-theme.cache'.
6056 (lambda _
6057 (substitute* "build-aux/meson_post_install.py"
6058 (("gtk-update-icon-cache") (which "true")))
6059 #t)))))
6060 (native-inputs
6061 `(("desktop-file-utils" ,desktop-file-utils)
6062 ("glib:bin" ,glib "bin") ; for glib-compile-resources
6063 ("intltool" ,intltool)
6064 ("itstool" ,itstool)
6065 ("pkg-config" ,pkg-config)
6066 ("vala" ,vala)
6067 ("xmllint" ,libxml2)))
6068 (inputs
6069 `(("gtk+" ,gtk+)
6070 ("libgnome-games-support" ,libgnome-games-support)
6071 ("librsvg" ,librsvg)))
6072 (home-page "https://wiki.gnome.org/Apps/Klotski")
6073 (synopsis "Sliding block puzzles")
6074 (description
6075 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6076 the patterned block to the area bordered by green markers. To do so, you will
6077 need to slide other blocks out of the way. Complete each puzzle in as few moves
6078 as possible!")
6079 (license license:gpl2+)))
6080
6081 (define-public grilo
6082 (package
6083 (name "grilo")
6084 (version "0.3.12")
6085 (source
6086 (origin
6087 (method url-fetch)
6088 (uri (string-append "mirror://gnome/sources/grilo/"
6089 (version-major+minor version) "/"
6090 "grilo-" version ".tar.xz"))
6091 (sha256
6092 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
6093 (build-system meson-build-system)
6094 (native-inputs
6095 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
6096 ("intltool" ,intltool)
6097 ("pkg-config" ,pkg-config)
6098 ("gobject-introspection" ,gobject-introspection)
6099 ("gtk-doc" ,gtk-doc/stable)
6100 ("vala" ,vala)))
6101 (inputs
6102 `(("cyrus-sasl" ,cyrus-sasl)
6103 ("glib" ,glib)
6104 ("gtk+" ,gtk+)
6105 ("libxml2" ,libxml2)
6106 ("liboauth" ,liboauth)
6107 ("libsoup" ,libsoup)
6108 ("totem-pl-parser" ,totem-pl-parser)))
6109 (native-search-paths
6110 (list (search-path-specification
6111 (variable "GRL_PLUGIN_PATH")
6112 (files (list (string-append "lib/grilo-"
6113 (version-major+minor version)))))))
6114 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6115 (synopsis "Framework for discovering and browsing media")
6116 (description
6117 "Grilo is a framework focused on making media discovery and browsing easy
6118 for application developers.")
6119 (license license:lgpl2.1+)))
6120
6121 (define-public grilo-plugins
6122 (package
6123 (name "grilo-plugins")
6124 (version "0.3.11")
6125 (source
6126 (origin
6127 (method url-fetch)
6128 (uri (string-append "mirror://gnome/sources/" name "/"
6129 (version-major+minor version) "/"
6130 name "-" version ".tar.xz"))
6131 (sha256
6132 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
6133 (build-system meson-build-system)
6134 (native-inputs
6135 `(("gettext" ,gettext-minimal)
6136 ("glib:bin" ,glib "bin")
6137 ("gtk+:bin" ,gtk+ "bin")
6138 ("itstool" ,itstool)
6139 ("pkg-config" ,pkg-config)))
6140 ;; TODO: ahavi, gstreamer
6141 (inputs
6142 `(("grilo" ,grilo)
6143 ;("gmime" ,gmime) ; unused
6144 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6145 ("gom" ,gom)
6146 ;("gssdp" ,gssdp) ; unused
6147 ;("gupnp" ,gupnp) ; unused
6148 ;("gupnp-av" ,gupnp-av) ; unused
6149 ("json-glib" ,json-glib)
6150 ("avahi" ,avahi)
6151 ("libgdata" ,libgdata)
6152 ("libmediaart" ,libmediaart)
6153 ;("librest" ,rest) ; unused
6154 ("libsoup" ,libsoup)
6155 ("totam-pl-parser" ,totem-pl-parser)
6156 ("tracker" ,tracker))) ; unused because it's too old
6157 (arguments
6158 `(#:glib-or-gtk? #t
6159 ;;Disable lua-factory as it needs missing dependencies
6160 #:configure-flags '("-Denable-lua-factory=no")))
6161 (home-page "https://live.gnome.org/Grilo")
6162 (synopsis "Plugins for the Grilo media discovery library")
6163 (description
6164 "Grilo is a framework focused on making media discovery and browsing easy
6165 for application developers. This package provides plugins for common media
6166 discovery protocols.")
6167 (license license:lgpl2.1+)))
6168
6169 (define-public totem
6170 (package
6171 (name "totem")
6172 (version "3.38.0")
6173 (source
6174 (origin
6175 (method url-fetch)
6176 (uri (string-append "mirror://gnome/sources/totem/"
6177 (version-major+minor version) "/"
6178 "totem-" version ".tar.xz"))
6179 (sha256
6180 (base32
6181 "0bs33ijvxbr2prb9yj4dxglsszslsn9k258n311sld84masz4ad8"))))
6182 (build-system meson-build-system)
6183 (native-inputs
6184 `(("pkg-config" ,pkg-config)
6185 ("desktop-file-utils" ,desktop-file-utils)
6186 ("gettext" ,gettext-minimal)
6187 ("gobject-introspection" ,gobject-introspection)
6188 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
6189 ("itstool" ,itstool)
6190 ("xmllint" ,libxml2)
6191 ("xorg-server" ,xorg-server-for-tests)))
6192 (propagated-inputs
6193 `(("dconf" ,dconf)))
6194 (inputs
6195 `(("gtk+" ,gtk+)
6196 ("gdk-pixbuf" ,gdk-pixbuf)
6197 ("atk" ,atk)
6198 ("cairo" ,cairo)
6199 ("dbus-glib" ,dbus-glib)
6200 ("clutter" ,clutter)
6201 ("clutter-gtk" ,clutter-gtk)
6202 ("clutter-gst" ,clutter-gst)
6203 ("xorgproto" ,xorgproto)
6204 ("libxxf86vm" ,libxxf86vm)
6205 ("libxtst" ,libxtst)
6206 ("libxrandr" ,libxrandr)
6207 ("libxml2" ,libxml2)
6208 ("libsoup" ,libsoup)
6209 ("libpeas" ,libpeas)
6210 ("librsvg" ,librsvg)
6211 ("lirc" ,lirc)
6212 ("gnome-desktop" ,gnome-desktop)
6213 ("gstreamer" ,gstreamer)
6214 ("gst-plugins-base" ,gst-plugins-base)
6215 ("gst-plugins-good" ,gst-plugins-good)
6216 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6217 ("adwaita-icon-theme" ,adwaita-icon-theme)
6218 ("python" ,python)
6219 ("python-pygobject" ,python-pygobject)
6220 ("totem-pl-parser" ,totem-pl-parser)
6221 ("grilo" ,grilo)
6222 ("grilo-plugins" ,grilo-plugins)
6223 ("vala" ,vala)))
6224 (arguments
6225 `(#:glib-or-gtk? #t
6226
6227 ;; Disable automatic GStreamer plugin installation via PackageKit and
6228 ;; all that.
6229 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6230
6231 ;; Do not build .a files for the plugins, it's
6232 ;; completely useless. This saves 2 MiB.
6233 "--default-library" "shared")
6234 #:phases
6235 (modify-phases %standard-phases
6236 (add-after 'unpack 'skip-gtk-update-icon-cache
6237 ;; Don't create 'icon-theme.cache'.
6238 (lambda _
6239 (substitute* "meson_post_install.py"
6240 (("gtk-update-icon-cache") "true"))
6241 #t))
6242 (add-after 'unpack 'patch-failing-test
6243 (lambda _
6244 ;; Work around test failure with GStreamer 1.18, because the test
6245 ;; relies on "und" not being mapped to a particular language:
6246 ;; https://gitlab.gnome.org/GNOME/totem/-/issues/450
6247 (substitute* "src/test-totem.c"
6248 (("und") "nosuchlang"))
6249 #t))
6250 (add-before
6251 'install 'disable-cache-generation
6252 (lambda _
6253 (setenv "DESTDIR" "/")
6254 #t))
6255 (add-before
6256 'check 'pre-check
6257 (lambda _
6258 ;; Tests require a running X server.
6259 (system "Xvfb :1 &")
6260 (setenv "DISPLAY" ":1")
6261 #t))
6262 (add-after
6263 'install 'wrap-totem
6264 (lambda* (#:key inputs outputs #:allow-other-keys)
6265 (let ((out (assoc-ref outputs "out"))
6266 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6267 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6268 (wrap-program (string-append out "/bin/totem")
6269 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6270 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6271 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6272 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
6273 #t)))))
6274 (home-page "https://wiki.gnome.org/Apps/Videos")
6275 (synopsis "Simple media player for GNOME based on GStreamer")
6276 (description "Totem is a simple yet featureful media player for GNOME
6277 which can read a large number of file formats.")
6278 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6279 ;; to be used and distributed together with GStreamer and Totem. See
6280 ;; file://COPYING in the source distribution for details.
6281 (license license:gpl2+)))
6282
6283 (define-public rhythmbox
6284 (package
6285 (name "rhythmbox")
6286 (version "3.4.4")
6287 (source (origin
6288 (method url-fetch)
6289 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6290 (version-major+minor version) "/"
6291 "rhythmbox-" version ".tar.xz"))
6292 (sha256
6293 (base32
6294 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6295 (build-system glib-or-gtk-build-system)
6296 (arguments
6297 `(#:configure-flags
6298 (list "--enable-lirc"
6299 "--enable-python"
6300 "--enable-vala"
6301 "--with-brasero"
6302 "--with-gudev"
6303 "--with-libsecret")
6304 #:phases
6305 (modify-phases %standard-phases
6306 (add-after
6307 'install 'wrap-rhythmbox
6308 (lambda* (#:key inputs outputs #:allow-other-keys)
6309 (let ((out (assoc-ref outputs "out"))
6310 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6311 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6312 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6313 (python-path (getenv "PYTHONPATH")))
6314 (wrap-program (string-append out "/bin/rhythmbox")
6315 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6316 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6317 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6318 `("PYTHONPATH" ":" prefix (,python-path))))
6319 #t)))))
6320 (propagated-inputs
6321 `(("dconf" ,dconf)))
6322 (native-inputs
6323 `(("itstool" ,itstool)
6324 ("intltool" ,intltool)
6325 ("glib" ,glib "bin")
6326 ("gobject-introspection" ,gobject-introspection)
6327 ("desktop-file-utils" ,desktop-file-utils)
6328 ("pkg-config" ,pkg-config)
6329 ("xmllint" ,libxml2)))
6330 (inputs
6331 `(("json-glib" ,json-glib)
6332 ("tdb" ,tdb)
6333 ("gnome-desktop" ,gnome-desktop)
6334 ("python" ,python)
6335 ("python-pygobject" ,python2-pygobject)
6336 ("vala" ,vala)
6337 ("gmime" ,gmime)
6338 ("adwaita-icon-theme" ,adwaita-icon-theme)
6339 ("grilo" ,grilo)
6340 ("grilo-plugins" ,grilo-plugins)
6341 ("gstreamer" ,gstreamer)
6342 ("gst-plugins-base" ,gst-plugins-base)
6343 ("gst-plugins-good" ,gst-plugins-good)
6344 ("totem-pl-parser" ,totem-pl-parser)
6345 ("libgudev" ,libgudev)
6346 ;;("libmtp" ,libmtp) FIXME: Not detected
6347 ("libsecret" ,libsecret)
6348 ("libsoup" ,libsoup)
6349 ("libnotify" ,libnotify)
6350 ("libpeas" ,libpeas)
6351 ("lirc" ,lirc)
6352 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6353 ;;("clutter" ,clutter)
6354 ;;("clutter-gtk" ,clutter-gtk)
6355 ;;("clutter-gst" ,clutter-gst)
6356 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6357 ("atk" ,atk)
6358 ("pango" ,pango)
6359 ("gtk+" ,gtk+)
6360 ;; TODO:
6361 ;; * libgpod
6362 ;; * mx
6363 ("brasero" ,brasero)))
6364 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6365 (synopsis "Music player for GNOME")
6366 (description "Rhythmbox is a music playing application for GNOME. It
6367 supports playlists, song ratings, and any codecs installed through gstreamer.")
6368 (license license:gpl2+)))
6369
6370 (define-public eog
6371 (package
6372 (name "eog")
6373 (version "3.34.1")
6374 (source (origin
6375 (method url-fetch)
6376 (uri (string-append "mirror://gnome/sources/" name "/"
6377 (version-major+minor version) "/"
6378 name "-" version ".tar.xz"))
6379 (sha256
6380 (base32
6381 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
6382 (build-system meson-build-system)
6383 (arguments
6384 `(#:configure-flags
6385 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6386 (list (string-append "-Dc_link_args=-Wl,-rpath="
6387 (assoc-ref %outputs "out") "/lib/eog"))
6388 #:phases
6389 (modify-phases %standard-phases
6390 (add-after 'unpack 'skip-gtk-update-icon-cache
6391 ;; Don't create 'icon-theme.cache'.
6392 (lambda _
6393 (substitute* "meson_post_install.py"
6394 (("gtk-update-icon-cache") "true"))
6395 #t))
6396 (add-after 'install 'wrap-eog
6397 (lambda* (#:key outputs #:allow-other-keys)
6398 (let ((out (assoc-ref outputs "out"))
6399 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6400 (wrap-program (string-append out "/bin/eog")
6401 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6402 #t)))))
6403 (propagated-inputs
6404 `(("dconf" ,dconf)))
6405 (native-inputs
6406 `(("intltool" ,intltool)
6407 ("itstool" ,itstool)
6408 ("glib" ,glib "bin")
6409 ("gobject-introspection" ,gobject-introspection)
6410 ("pkg-config" ,pkg-config)
6411 ("xmllint" ,libxml2)))
6412 (inputs
6413 `(("gnome-desktop" ,gnome-desktop)
6414 ("shared-mime-info" ,shared-mime-info)
6415 ("adwaita-icon-theme" ,adwaita-icon-theme)
6416 ("exempi" ,exempi)
6417 ("lcms" ,lcms)
6418 ("libexif" ,libexif)
6419 ("libpeas" ,libpeas)
6420 ("libjpeg" ,libjpeg-turbo)
6421 ("librsvg" ,librsvg-next)
6422 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6423 ("gtk+" ,gtk+)))
6424 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6425 (synopsis "GNOME image viewer")
6426 (description "Eye of GNOME is the GNOME image viewer. It
6427 supports image conversion, rotation, and slideshows.")
6428 (license license:gpl2+)))
6429
6430 (define-public eog-plugins
6431 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6432 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6433 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6434 ;; 'XDG_DATA_DIRS' appropriately set.
6435 (package
6436 (name "eog-plugins")
6437 (version "3.26.4")
6438 (source (origin
6439 (method url-fetch)
6440 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6441 (version-major+minor version) "/"
6442 "eog-plugins-" version ".tar.xz"))
6443 (sha256
6444 (base32
6445 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6446 (build-system gnu-build-system)
6447 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6448 (synopsis "Extensions for the Eye of GNOME image viewer")
6449 (native-inputs
6450 `(("pkg-config" ,pkg-config)
6451 ("gettext" ,gettext-minimal)))
6452 (inputs
6453 `(("eog" ,eog)
6454 ("glib" ,glib)
6455 ("gtk+" ,gtk+)
6456 ("libpeas" ,libpeas)
6457 ("libexif" ,libexif)
6458 ("libchamplain" ,libchamplain)))
6459 (description
6460 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6461 notably:
6462
6463 @itemize
6464 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6465 @item @dfn{Map}, which displays a map of where the picture was taken on the
6466 side panel;
6467 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6468 @end itemize\n")
6469
6470 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6471 ;; long suspicious byte stream that goes to a
6472 ;; ".gresource.eog_postasa_plugin" ELF section.
6473 (license license:gpl2+)))
6474
6475 (define-public libgudev
6476 (package
6477 (name "libgudev")
6478 (version "232")
6479 (source (origin
6480 (method url-fetch)
6481 (uri (string-append "mirror://gnome/sources/" name "/"
6482 version "/" name "-" version ".tar.xz"))
6483 (sha256
6484 (base32
6485 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
6486 (build-system gnu-build-system)
6487 (arguments
6488 '(#:configure-flags
6489 ;; umockdev depends on libgudev.
6490 (list "--disable-umockdev")))
6491 (native-inputs
6492 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6493 ("gobject-introspection" ,gobject-introspection)
6494 ("pkg-config" ,pkg-config)))
6495 (propagated-inputs
6496 `(("glib" ,glib))) ; required by gudev-1.0.pc
6497 (inputs
6498 `(("udev" ,eudev)))
6499 (home-page "https://wiki.gnome.org/Projects/libgudev")
6500 (synopsis "GObject bindings for libudev")
6501 (description
6502 "This library provides GObject bindings for libudev. It was originally
6503 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6504 (license license:lgpl2.1+)))
6505
6506 (define-public gvfs
6507 (package
6508 (name "gvfs")
6509 (version "1.40.2")
6510 (source (origin
6511 (method url-fetch)
6512 (uri (string-append "mirror://gnome/sources/gvfs/"
6513 (version-major+minor version) "/"
6514 "gvfs-" version ".tar.xz"))
6515 (sha256
6516 (base32
6517 "07lpcfric3h0302n9b1pwa38mjb76r9s98kg2867y2d1qvzfivxx"))
6518 ;; This patch may be removed when upgrading to version 1.46.x.
6519 (patches
6520 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6521 (build-system meson-build-system)
6522 (arguments
6523 '(#:glib-or-gtk? #t
6524 #:configure-flags
6525 (list "-Dsystemduserunitdir=no"
6526 "-Dtmpfilesdir=no"
6527 ;; Otherwise, the RUNPATH will lack the final path component.
6528 (string-append "-Dc_link_args=-Wl,-rpath="
6529 (assoc-ref %outputs "out") "/lib/gvfs"))))
6530 (native-inputs
6531 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6532 ("gettext" ,gettext-minimal)
6533 ("gtk-doc" ,gtk-doc/stable)
6534 ("pkg-config" ,pkg-config)
6535 ("xsltproc" ,libxslt)))
6536 (inputs
6537 `(("avahi" ,avahi)
6538 ("docbook-xml" ,docbook-xml-4.2)
6539 ("docbook-xsl" ,docbook-xsl)
6540 ("dbus" ,dbus)
6541 ("elogind" ,elogind)
6542 ("fuse" ,fuse)
6543 ("gcr" ,gcr)
6544 ("glib" ,glib)
6545 ("gnome-online-accounts" ,gnome-online-accounts)
6546 ("libarchive" ,libarchive)
6547 ("libbluray" ,libbluray)
6548 ("libcap" ,libcap)
6549 ("libcdio-paranoia" ,libcdio-paranoia)
6550 ("libgcrypt" ,libgcrypt)
6551 ("libgdata" ,libgdata)
6552 ("libgphoto2" ,libgphoto2)
6553 ("libgudev" ,libgudev)
6554 ("libimobiledevice" ,libimobiledevice)
6555 ("libmtp" ,libmtp)
6556 ("libnfs" ,libnfs)
6557 ("libsecret" ,libsecret)
6558 ("libsmbclient" ,samba)
6559 ("libsoup" ,libsoup)
6560 ("libxml2" ,libxml2)
6561 ("openssh" ,openssh)
6562 ("polkit" ,polkit)
6563 ("udisks" ,udisks)))
6564 ;; CVE-2019-{12447,12448,12449} are fixed in the 1.40.2 release.
6565 (properties '((lint-hidden-cve . ("CVE-2019-12447"
6566 "CVE-2019-12448"
6567 "CVE-2019-12449"))))
6568 (home-page "https://wiki.gnome.org/gvfs/")
6569 (synopsis "Userspace virtual file system for GIO")
6570 (description
6571 "GVFS is a userspace virtual file system designed to work with the I/O
6572 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6573 to all applications using the GIO API. It also supports exposing the GVFS
6574 mounts to non-GIO applications using FUSE.
6575
6576 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6577 DAV, and others.")
6578 (license license:lgpl2.0+)))
6579
6580 (define-public gusb
6581 (package
6582 (name "gusb")
6583 (version "0.3.5")
6584 (source (origin
6585 (method git-fetch)
6586 (uri (git-reference
6587 (url "https://github.com/hughsie/libgusb")
6588 (commit version)))
6589 (file-name (git-file-name name version))
6590 (sha256
6591 (base32
6592 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6593 (build-system meson-build-system)
6594 (native-inputs
6595 `(("gobject-introspection" ,gobject-introspection)
6596 ("pkg-config" ,pkg-config)
6597 ("vala" ,vala)
6598 ("gtk-doc" ,gtk-doc/stable)))
6599 (propagated-inputs
6600 ;; Both of these are required by gusb.pc.
6601 `(("glib" ,glib)
6602 ("libusb" ,libusb)))
6603 (arguments
6604 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6605 (home-page "https://github.com/hughsie/libgusb")
6606 (synopsis "GLib binding for libusb1")
6607 (description
6608 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6609 asynchronous control, bulk and interrupt transfers with proper cancellation
6610 and integration into a mainloop. This makes it easy to integrate low level
6611 USB transfers with your high-level application or system daemon.")
6612 (license license:lgpl2.1+)))
6613
6614 (define-public simple-scan
6615 (package
6616 (name "simple-scan")
6617 (version "3.38.2")
6618 (source
6619 (origin
6620 (method url-fetch)
6621 (uri (string-append "mirror://gnome/sources/simple-scan/"
6622 (version-major+minor version) "/"
6623 "simple-scan-" version ".tar.xz"))
6624 (sha256
6625 (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8"))))
6626 (build-system meson-build-system)
6627 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6628 (arguments
6629 '(#:glib-or-gtk? #t))
6630 (inputs
6631 `(("gtk" ,gtk+)
6632 ("zlib" ,zlib)
6633 ("cairo" ,cairo)
6634 ("colord" ,colord)
6635 ("gdk-pixbuf" ,gdk-pixbuf)
6636 ("gusb" ,gusb)
6637 ("libsane" ,sane-backends)))
6638 (native-inputs
6639 `(("gettext" ,gettext-minimal)
6640 ("itstool" ,itstool)
6641 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6642 ("pkg-config" ,pkg-config)
6643 ("vala" ,vala)
6644 ("xmllint" ,libxml2)))
6645 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6646 (synopsis "Document and image scanner")
6647 (description
6648 "Document Scanner is an easy-to-use application that lets you connect your
6649 scanner and quickly capture images and documents in an appropriate format. It
6650 supports any scanner for which a suitable SANE driver is available, which is
6651 almost all of them.")
6652 (license license:gpl3+)))
6653
6654 (define-public eolie
6655 (package
6656 (name "eolie")
6657 (version "0.9.101")
6658 (source (origin
6659 (method url-fetch)
6660 (uri (string-append "https://adishatz.org/eolie/eolie-"
6661 version ".tar.xz"))
6662 (sha256
6663 (base32
6664 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6665 (build-system meson-build-system)
6666 (arguments
6667 `(#:glib-or-gtk? #t
6668 #:phases
6669 (modify-phases %standard-phases
6670 (add-after 'unpack 'skip-gtk-update-icon-cache
6671 ;; Don't create 'icon-theme.cache'.
6672 (lambda _
6673 (substitute* "meson_post_install.py"
6674 (("gtk-update-icon-cache") "true"))
6675 #t))
6676 (add-after 'wrap 'wrap-more
6677 (lambda* (#:key inputs outputs #:allow-other-keys)
6678 (let* ((out (assoc-ref outputs "out"))
6679 ;; These libraries must be on LD_LIBRARY_PATH.
6680 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6681 "atk" "gtk+" "gsettings-desktop-schemas"
6682 "gobject-introspection"))
6683 (path (string-join
6684 (map (lambda (lib)
6685 (string-append (assoc-ref inputs lib) "/lib"))
6686 libs)
6687 ":")))
6688 (wrap-program (string-append out "/bin/eolie")
6689 `("LD_LIBRARY_PATH" ":" prefix (,path))
6690 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6691 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6692 #t)))))
6693 (native-inputs
6694 `(("intltool" ,intltool)
6695 ("itstool" ,itstool)
6696 ("pkg-config" ,pkg-config)
6697 ("python" ,python)
6698 ("glib:bin" ,glib "bin")))
6699 (inputs
6700 `(("gobject-introspection" ,gobject-introspection)
6701 ("glib-networking" ,glib-networking)
6702 ("cairo" ,cairo)
6703 ("gtk+" ,gtk+)
6704 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6705 ("python" ,python-wrapper)
6706 ("python-dateutil" ,python-dateutil)
6707 ("python-pyfxa" ,python-pyfxa)
6708 ("python-pygobject" ,python-pygobject)
6709 ("python-pycairo" ,python-pycairo)
6710 ("python-pycrypto" ,python-pycrypto)
6711 ("libhandy" ,libhandy)
6712 ("libsecret" ,libsecret)
6713 ("gtkspell3" ,gtkspell3)
6714 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6715 ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
6716 ("webkitgtk" ,webkitgtk)))
6717 (home-page "https://wiki.gnome.org/Apps/Eolie")
6718 (synopsis "Web browser for GNOME")
6719 (description
6720 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6721 a secret password store, an adblocker, and a modern UI.")
6722 (license license:gpl3+)))
6723
6724 (define-public epiphany
6725 (package
6726 (name "epiphany")
6727 (version "3.34.4")
6728 (source (origin
6729 (method url-fetch)
6730 (uri (string-append "mirror://gnome/sources/epiphany/"
6731 (version-major+minor version) "/"
6732 "epiphany-" version ".tar.xz"))
6733 (sha256
6734 (base32
6735 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6736
6737 (build-system meson-build-system)
6738 (arguments
6739 '(#:glib-or-gtk? #t
6740 #:phases
6741 (modify-phases %standard-phases
6742 (add-after 'unpack 'skip-gtk-update-icon-cache
6743 ;; Don't create 'icon-theme.cache'.
6744 (lambda _
6745 (substitute* "post_install.py"
6746 (("gtk-update-icon-cache") "true"))
6747 #t))
6748 (add-after 'unpack 'disable-failing-tests
6749 (lambda _
6750 (substitute* "tests/meson.build"
6751 ;; embed_shell fails, because webkitgtk apparently no longer supports
6752 ;; overriding the ftp schema
6753 ;; web_app_utils fails due to missing network access
6754 (("(embed_shell|web_app_utils)_test,")
6755 "find_program('sh'), args: ['-c', 'exit 77'],"))
6756 #t))
6757 (add-before 'check 'pre-check
6758 (lambda _
6759 ;; Tests require a running X server.
6760 (system "Xvfb :1 &")
6761 (setenv "DISPLAY" ":1")
6762 #t)))
6763 #:configure-flags
6764 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6765 (list (string-append "-Dc_link_args=-Wl,-rpath="
6766 (assoc-ref %outputs "out") "/lib/epiphany"))))
6767 (propagated-inputs
6768 `(("dconf" ,dconf)))
6769 (native-inputs
6770 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6771 ("glib:bin" ,glib "bin") ; for glib-mkenums
6772 ("intltool" ,intltool)
6773 ("itstool" ,itstool)
6774 ("pkg-config" ,pkg-config)
6775 ("xmllint" ,libxml2)
6776 ("xorg-server" ,xorg-server-for-tests)))
6777 (inputs
6778 `(("avahi" ,avahi)
6779 ("gcr" ,gcr)
6780 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6781 ("glib-networking" ,glib-networking)
6782 ("gnome-desktop" ,gnome-desktop)
6783 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6784 ("json-glib" ,json-glib)
6785 ("iso-codes" ,iso-codes)
6786 ("libdazzle" ,libdazzle)
6787 ("libnotify" ,libnotify)
6788 ("libsecret" ,libsecret)
6789 ("libxslt" ,libxslt)
6790 ("nettle" ,nettle) ; for hogweed
6791 ("sqlite" ,sqlite)
6792 ("webkitgtk" ,webkitgtk)))
6793 (home-page "https://wiki.gnome.org/Apps/Web")
6794 (synopsis "GNOME web browser")
6795 (description
6796 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6797 principles are simplicity and standards compliance.")
6798 (license license:gpl2+)))
6799
6800 (define-public d-feet
6801 (package
6802 (name "d-feet")
6803 (version "0.3.14")
6804 (source (origin
6805 (method url-fetch)
6806 (uri (string-append "mirror://gnome/sources/" name "/"
6807 (version-major+minor version) "/"
6808 name "-" version ".tar.xz"))
6809 (sha256
6810 (base32
6811 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6812 (build-system glib-or-gtk-build-system)
6813 (arguments
6814 '(#:out-of-source? #f ; tests need to run in the source directory.
6815 #:phases
6816 (modify-phases %standard-phases
6817 (add-before
6818 'check 'pre-check
6819 (lambda _
6820 ;; The test suite requires a running X server.
6821 (system "Xvfb :1 &")
6822 (setenv "DISPLAY" ":1")
6823 ;; Don't fail on missing '/etc/machine-id'.
6824 (setenv "DBUS_FATAL_WARNINGS" "0")
6825 ;; tests.py and window.py don't meet E402:
6826 ;; E402 module level import not at top of file
6827 (substitute* "src/tests/Makefile"
6828 (("--ignore=E123") "--ignore=E123,E402"))
6829 #t))
6830 (add-after
6831 'install 'wrap-program
6832 (lambda* (#:key outputs #:allow-other-keys)
6833 (let ((prog (string-append (assoc-ref outputs "out")
6834 "/bin/d-feet")))
6835 (wrap-program prog
6836 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6837 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6838 #t))))))
6839 (native-inputs
6840 `(("intltool" ,intltool)
6841 ("itstool" ,itstool)
6842 ("pkg-config" ,pkg-config)
6843 ("python-pep8" ,python-pep8)
6844 ("xmllint" ,libxml2)
6845 ("xorg-server" ,xorg-server-for-tests)))
6846 (inputs
6847 `(("gobject-introspection" ,gobject-introspection)
6848 ("gtk+" ,gtk+)
6849 ("python" ,python-wrapper)
6850 ("hicolor-icon-theme" ,hicolor-icon-theme)
6851 ("python-pygobject" ,python-pygobject)))
6852 (home-page "https://wiki.gnome.org/Apps/DFeet")
6853 (synopsis "D-Bus debugger")
6854 (description
6855 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6856 of running programs and invoke methods on those interfaces.")
6857 (license license:gpl2+)))
6858
6859 (define-public yelp-xsl
6860 (package
6861 (name "yelp-xsl")
6862 (version "3.34.2")
6863 (source
6864 (origin
6865 (method url-fetch)
6866 (uri
6867 (string-append "mirror://gnome/sources/" name "/"
6868 (version-major+minor version) "/"
6869 name "-" version ".tar.xz"))
6870 (sha256
6871 (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6872 (build-system gnu-build-system)
6873 (native-inputs
6874 `(("gettext-minimal" ,gettext-minimal)
6875 ("itstool" ,itstool)
6876 ("xmllint" ,libxml2)))
6877 (synopsis "XSL stylesheets for Yelp")
6878 (description "Yelp-XSL is a collection of programs and data files to help
6879 you build, maintain, and distribute documentation. It provides XSLT stylesheets
6880 that can be built upon for help viewers and publishing systems. These
6881 stylesheets output JavaScript and CSS content, and reference images
6882 provided by yelp-xsl. It also redistributes copies of the jQuery and
6883 jQuery.Syntax JavaScript libraries.")
6884 (home-page "https://wiki.gnome.org/Apps/Yelp")
6885 (license
6886 (list
6887 ;; XSLT
6888 license:gpl2+
6889 ;; Images
6890 license:lgpl2.1+
6891 ;; JavaScript
6892 license:expat))))
6893
6894 (define-public yelp
6895 (package
6896 (name "yelp")
6897 (version "3.32.2")
6898 (source (origin
6899 (method url-fetch)
6900 (uri (string-append "mirror://gnome/sources/" name "/"
6901 (version-major+minor version) "/"
6902 name "-" version ".tar.xz"))
6903 (sha256
6904 (base32
6905 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6906 (build-system glib-or-gtk-build-system)
6907 (native-inputs
6908 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6909 ("intltool" ,intltool)
6910 ("itstool" ,itstool)
6911 ("pkg-config" ,pkg-config)))
6912 (propagated-inputs
6913 `(("dconf" ,dconf)))
6914 (inputs
6915 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6916 ("libxslt" ,libxslt)
6917 ("sqlite" ,sqlite)
6918 ("webkitgtk" ,webkitgtk)
6919 ("yelp-xsl" ,yelp-xsl)))
6920 (home-page "https://wiki.gnome.org/Apps/Yelp")
6921 (synopsis "GNOME help browser")
6922 (description
6923 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6924 man, info, and HTML documents. It can locate documents according to the
6925 freedesktop.org help system specification.")
6926 (license license:gpl2+)))
6927
6928 (define-public yelp-tools
6929 (package
6930 (name "yelp-tools")
6931 (version "3.32.2")
6932 (source
6933 (origin
6934 (method url-fetch)
6935 (uri
6936 (string-append "mirror://gnome/sources/" name "/"
6937 (version-major+minor version) "/"
6938 name "-" version ".tar.xz"))
6939 (sha256
6940 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6941 (build-system gnu-build-system)
6942 (native-inputs
6943 `(("pkg-config" ,pkg-config)))
6944 (inputs
6945 `(("yelp-xsl" ,yelp-xsl)))
6946 (propagated-inputs
6947 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6948 `(("itstool" ,itstool)
6949 ("xmllint" ,libxml2)
6950 ("xsltproc" ,libxslt)))
6951 (synopsis "Yelp documentation tools")
6952 (description
6953 "Yelp-tools is a collection of scripts and build utilities to help create,
6954 manage, and publish documentation for Yelp and the web. Most of the heavy
6955 lifting is done by packages like yelp-xsl and itstool. This package just
6956 wraps things up in a developer-friendly way.")
6957 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6958 (license license:gpl2+)))
6959
6960 (define-public libgee
6961 (package
6962 (name "libgee")
6963 (version "0.20.3")
6964 (source (origin
6965 (method url-fetch)
6966 (uri (string-append "mirror://gnome/sources/libgee/"
6967 (version-major+minor version) "/"
6968 "libgee-" version ".tar.xz"))
6969 (sha256
6970 (base32
6971 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6972 (build-system gnu-build-system)
6973 (arguments
6974 `(#:phases
6975 (modify-phases %standard-phases
6976 (add-after 'unpack 'fix-introspection-install-dir
6977 (lambda* (#:key outputs #:allow-other-keys)
6978 (let ((out (assoc-ref outputs "out")))
6979 (substitute* "gee/Makefile.in"
6980 (("@INTROSPECTION_GIRDIR@")
6981 (string-append out "/share/gir-1.0/"))
6982 (("@INTROSPECTION_TYPELIBDIR@")
6983 (string-append out "/lib/girepository-1.0/")))))))))
6984 (native-inputs
6985 `(("glib" ,glib "bin")
6986 ("pkg-config" ,pkg-config)))
6987 (inputs
6988 `(("glib" ,glib)
6989 ("gobject-introspection" ,gobject-introspection)))
6990 (home-page "https://wiki.gnome.org/Projects/Libgee")
6991 (synopsis "GObject collection library")
6992 (description
6993 "Libgee is a utility library providing GObject-based interfaces and
6994 classes for commonly used data structures.")
6995 (license license:lgpl2.1+)))
6996
6997 (define-public gexiv2
6998 (package
6999 (name "gexiv2")
7000 (version "0.12.2")
7001 (source (origin
7002 (method url-fetch)
7003 (uri (string-append "mirror://gnome/sources/" name "/"
7004 (version-major+minor version) "/"
7005 name "-" version ".tar.xz"))
7006 (sha256
7007 (base32
7008 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
7009 (build-system meson-build-system)
7010 (native-inputs
7011 `(("gcr" ,gcr)
7012 ("glib" ,glib "bin")
7013 ("pkg-config" ,pkg-config)
7014 ("vala" ,vala)))
7015 (propagated-inputs
7016 ;; Listed in "Requires" section of gexiv2.pc
7017 `(("exiv2" ,exiv2)))
7018 (inputs
7019 `(("glib" ,glib)
7020 ("gobject-introspection" ,gobject-introspection)))
7021 (home-page "https://wiki.gnome.org/Projects/gexiv2")
7022 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
7023 (description
7024 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
7025 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
7026 metadata in photo and video files of various formats.")
7027 (license license:gpl2+)))
7028
7029 (define-public shotwell
7030 (package
7031 (name "shotwell")
7032 (version "0.30.12")
7033 (source (origin
7034 (method url-fetch)
7035 (uri (string-append "mirror://gnome/sources/shotwell/"
7036 (version-major+minor version) "/"
7037 "shotwell-" version ".tar.xz"))
7038 (sha256
7039 (base32
7040 "1h5crjq59lqi8f8mdkadzi8pc3i9i2ik4lsx2nrhzq486fzdfhw6"))))
7041 (build-system meson-build-system)
7042 (arguments
7043 '(#:glib-or-gtk? #t
7044 #:phases
7045 (modify-phases %standard-phases
7046 (add-after 'unpack 'skip-gtk-update-icon-cache
7047 (lambda _
7048 (substitute* "build-aux/meson/postinstall.py"
7049 (("gtk-update-icon-cache") (which "true"))
7050 (("update-desktop-database") (which "true")))
7051 #t)))))
7052 (propagated-inputs
7053 `(("dconf" ,dconf)))
7054 (native-inputs
7055 `(("gettext" ,gettext-minimal)
7056 ("glib:bin" ,glib "bin")
7057 ("itstool" ,itstool)
7058 ("pkg-config" ,pkg-config)
7059 ("vala" ,vala)))
7060 (inputs
7061 `(("gcr" ,gcr)
7062 ("gexiv2" ,gexiv2)
7063 ("gst-plugins-base" ,gst-plugins-base)
7064 ("gstreamer" ,gstreamer)
7065 ("json-glib" ,json-glib)
7066 ("libgdata" ,libgdata)
7067 ("libgee" ,libgee)
7068 ("libgphoto2" ,libgphoto2)
7069 ("libgudev" ,libgudev)
7070 ("libraw" ,libraw)
7071 ("libsoup" ,libsoup)
7072 ("libxml2" ,libxml2)
7073 ("sqlite" ,sqlite)
7074 ("webkitgtk" ,webkitgtk)))
7075 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7076 (synopsis "Photo manager for GNOME 3")
7077 (description
7078 "Shotwell is a digital photo manager designed for the GNOME desktop
7079 environment. It allows you to import photos from disk or camera, organize
7080 them by keywords and events, view them in full-window or fullscreen mode, and
7081 share them with others via social networking and more.")
7082 (license license:lgpl2.1+)))
7083
7084 (define-public file-roller
7085 (package
7086 (name "file-roller")
7087 (version "3.38.0")
7088 (source (origin
7089 (method url-fetch)
7090 (uri (string-append "mirror://gnome/sources/file-roller/"
7091 (version-major+minor version) "/"
7092 "file-roller-" version ".tar.xz"))
7093 (sha256
7094 (base32
7095 "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj"))))
7096 (build-system meson-build-system)
7097 (native-inputs
7098 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7099 ("intltool" ,intltool)
7100 ("itstool" ,itstool)
7101 ("pkg-config" ,pkg-config)
7102 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7103 ("glib:bin" ,glib "bin")))
7104 ;; TODO: Add libnautilus.
7105 (inputs
7106 `(("gtk+" ,gtk+)
7107 ("gdk-pixbuf" ,gdk-pixbuf)
7108 ("json-glib" ,json-glib)
7109 ("libarchive" ,libarchive)
7110 ("libnotify" ,libnotify)
7111 ("nettle" ,nettle)
7112 ("libxml2" ,libxml2)))
7113 (synopsis "Graphical archive manager for GNOME")
7114 (description "File Roller is an archive manager for the GNOME desktop
7115 environment that allows users to view, unpack, and create compressed archives
7116 such as gzip tarballs.")
7117 (home-page "http://fileroller.sourceforge.net/")
7118 (license license:gpl2+)))
7119
7120 (define-public gnome-session
7121 (package
7122 (name "gnome-session")
7123 (version "3.34.2")
7124 (source (origin
7125 (method url-fetch)
7126 (uri (string-append "mirror://gnome/sources/" name "/"
7127 (version-major+minor version) "/"
7128 name "-" version ".tar.xz"))
7129 (sha256
7130 (base32
7131 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
7132 (arguments
7133 '(#:glib-or-gtk? #t
7134 #:phases
7135 (modify-phases %standard-phases
7136 (add-before 'configure 'pre-configure
7137 (lambda* (#:key outputs #:allow-other-keys)
7138 ;; Use elogind instead of systemd.
7139 (substitute* "meson.build"
7140 (("libsystemd-login") "libelogind")
7141 (("and libsystemd_daemon_dep.found.*") ","))
7142 (substitute* "gnome-session/gsm-systemd.c"
7143 (("#include <systemd/sd-login.h>")
7144 "#include <elogind/sd-login.h>"))
7145 ;; Remove uses of the systemd daemon.
7146 (substitute* "gnome-session/gsm-autostart-app.c"
7147 (("#ifdef HAVE_SYSTEMD") "#if 0"))
7148 #t))
7149 (add-after 'install 'wrap-gnome-session
7150 (lambda* (#:key inputs outputs #:allow-other-keys)
7151 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7152 (let ((glib (assoc-ref inputs "glib:bin"))
7153 (out (assoc-ref outputs "out")))
7154 (wrap-program (string-append out "/bin/gnome-session")
7155 `("PATH" ":" prefix (,(string-append glib "/bin"))))
7156 #t))))
7157
7158 #:configure-flags
7159 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7160 "-Dman=false" ; FIXME: disabled because of docbook validation error
7161 "-Dsystemd_journal=false")))
7162 (build-system meson-build-system)
7163 (native-inputs
7164 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7165 ("pkg-config" ,pkg-config)
7166 ("intltool" ,intltool)
7167 ("xsltproc" ,libxslt)
7168 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
7169 ("docbook-xsl" ,docbook-xsl)
7170 ("docbook-xml" ,docbook-xml)
7171 ("xmlto" ,xmlto)))
7172 (inputs
7173 `(("elogind" ,elogind)
7174 ("gnome-desktop" ,gnome-desktop)
7175 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7176 ("gtk+" ,gtk+)
7177 ("json-glib" ,json-glib)
7178 ("libsm" ,libsm)
7179 ("libxcomposite" ,libxcomposite)
7180 ("libxtst" ,libxtst)
7181 ("mesa" ,mesa)
7182 ("upower" ,upower)
7183 ("xtrans" ,xtrans)))
7184 (synopsis "Session manager for GNOME")
7185 (description
7186 "This package contains the GNOME session manager, as well as a
7187 configuration program to choose applications starting on login.")
7188 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7189 (license license:gpl2+)))
7190
7191 (define-public gjs
7192 (package
7193 (name "gjs")
7194 (version "1.58.3")
7195 (source (origin
7196 (method url-fetch)
7197 (uri (string-append "mirror://gnome/sources/" name "/"
7198 (version-major+minor version) "/"
7199 name "-" version ".tar.xz"))
7200 (sha256
7201 (base32
7202 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
7203 (build-system gnu-build-system)
7204 (arguments
7205 '(#:phases
7206 (modify-phases %standard-phases
7207 (add-before
7208 'check 'pre-check
7209 (lambda _
7210 ;; The test suite requires a running X server.
7211 (system "Xvfb :1 &")
7212 (setenv "DISPLAY" ":1")
7213
7214 ;; For the missing /etc/machine-id.
7215 (setenv "DBUS_FATAL_WARNINGS" "0")
7216
7217 ;; Our mozjs-38 package does not compile the required Intl API
7218 ;; support for these failing tests.
7219 (substitute* "installed-tests/js/testLocale.js"
7220 ((".*toBeDefined.*") "")
7221 ((".*expect\\(datestr\\).*") ""))
7222 (substitute* "installed-tests/scripts/testCommandLine.sh"
7223 (("Valentín") "")
7224 (("☭") ""))
7225 #t)))))
7226 (native-inputs
7227 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
7228 ("pkg-config" ,pkg-config)
7229 ("xmllint" ,libxml2)
7230 ;; For testing
7231 ("dbus-launch" ,dbus)
7232 ("dconf" ,dconf) ; required to properly store settings
7233 ("uuidgen" ,util-linux)
7234 ("xvfb" ,xorg-server-for-tests)))
7235 (propagated-inputs
7236 ;; These are all in the Requires.private field of gjs-1.0.pc.
7237 `(("cairo" ,cairo)
7238 ("gobject-introspection" ,gobject-introspection)
7239 ("mozjs" ,mozjs-60)))
7240 (inputs
7241 `(("gtk+" ,gtk+)
7242 ("readline" ,readline)))
7243 (synopsis "Javascript bindings for GNOME")
7244 (home-page "https://live.gnome.org/Gjs")
7245 (description
7246 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7247 javascript engine and the GObject introspection framework.")
7248 (license license:gpl2+)))
7249
7250 (define-public gedit
7251 (package
7252 (name "gedit")
7253 (version "3.34.1")
7254 (source (origin
7255 (method url-fetch)
7256 (uri (string-append "mirror://gnome/sources/" name "/"
7257 (version-major+minor version) "/"
7258 name "-" version ".tar.xz"))
7259 (sha256
7260 (base32
7261 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7262 (build-system meson-build-system)
7263 (arguments
7264 `(#:glib-or-gtk? #t
7265 #:configure-flags
7266 ;; Otherwise, the RUNPATH will lack the final path component.
7267 (list (string-append "-Dc_link_args=-Wl,-rpath="
7268 (assoc-ref %outputs "out") "/lib/gedit"))
7269
7270 ;; XXX: Generated .h files are sometimes used before being built.
7271 #:parallel-build? #f
7272
7273 #:phases
7274 (modify-phases %standard-phases
7275 (add-after 'unpack 'skip-gtk-update-icon-cache
7276 ;; Don't create 'icon-theme.cache'.
7277 (lambda _
7278 (substitute* "build-aux/meson/post_install.py"
7279 (("gtk-update-icon-cache") (which "true")))
7280 #t))
7281 (add-after 'unpack 'patch-libgd-fetch
7282 (lambda* (#:key inputs #:allow-other-keys)
7283 (let ((libgd (assoc-ref inputs "libgd")))
7284 ;; Calling git is unnecessary because libgd is fetched as a
7285 ;; native input to this package.
7286 (substitute* "meson.build"
7287 ((".*git.*") ""))
7288 (copy-recursively libgd "subprojects/libgd")
7289 #t)))
7290 (add-after 'install 'wrap-gedit
7291 (lambda* (#:key inputs outputs #:allow-other-keys)
7292 (let ((out (assoc-ref outputs "out"))
7293 (gtksourceview (assoc-ref inputs "gtksourceview"))
7294 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7295 (python-path (getenv "PYTHONPATH")))
7296 (wrap-program (string-append out "/bin/gedit")
7297 ;; For plugins.
7298 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7299 `("PYTHONPATH" ":" prefix (,python-path))
7300 ;; For language-specs.
7301 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7302 "/share")))))
7303 #t)))))
7304 (propagated-inputs
7305 `(("dconf" ,dconf)))
7306 (native-inputs
7307 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7308 ("intltool" ,intltool)
7309 ("itstool" ,itstool)
7310 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7311 ("gobject-introspection" ,gobject-introspection)
7312 ("libgd"
7313 ,(origin
7314 (method git-fetch)
7315 (uri (git-reference
7316 (url "https://gitlab.gnome.org/GNOME/libgd")
7317 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7318 (file-name (git-file-name "libgd" version))
7319 (sha256
7320 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7321 ("pkg-config" ,pkg-config)))
7322 (inputs
7323 `(("glib" ,glib)
7324 ("gspell" ,gspell)
7325 ("gtk+" ,gtk+)
7326 ("gtksourceview" ,gtksourceview)
7327 ("libpeas" ,libpeas)
7328 ("libxml2" ,libxml2)
7329 ("iso-codes" ,iso-codes)
7330 ("python-pygobject" ,python-pygobject)
7331 ("python" ,python)
7332 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7333 ("libx11" ,libx11)
7334 ("vala" ,vala)
7335 ("adwaita-icon-theme" ,adwaita-icon-theme)
7336 ("libsoup" ,libsoup)
7337 ("gnome-desktop" ,gnome-desktop)))
7338 (home-page "https://wiki.gnome.org/Apps/Gedit")
7339 (synopsis "GNOME text editor")
7340 (description "While aiming at simplicity and ease of use, gedit is a
7341 powerful general purpose text editor.")
7342 (license license:gpl2+)))
7343
7344 (define-public zenity
7345 (package
7346 (name "zenity")
7347 (version "3.32.0")
7348 (source (origin
7349 (method url-fetch)
7350 (uri (string-append "mirror://gnome/sources/zenity/"
7351 (version-major+minor version) "/"
7352 "zenity-" version ".tar.xz"))
7353 (sha256
7354 (base32
7355 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7356 (build-system gnu-build-system)
7357 (native-inputs
7358 `(("gettext" ,gettext-minimal)
7359 ("itstool" ,itstool)
7360 ("pkg-config" ,pkg-config)))
7361 (inputs
7362 `(("libnotify" ,libnotify)
7363 ("webkitgtk" ,webkitgtk)))
7364 (synopsis "Display graphical dialog boxes from shell scripts")
7365 (home-page "https://www.gnome.org")
7366 (description
7367 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7368 to display dialog boxes from the commandline and shell scripts.")
7369 (license license:lgpl2.0+)))
7370
7371 (define-public mutter
7372 (package
7373 (name "mutter")
7374 (version "3.34.2")
7375 (source (origin
7376 (method url-fetch)
7377 (uri (string-append "mirror://gnome/sources/" name "/"
7378 (version-major+minor version) "/"
7379 name "-" version ".tar.xz"))
7380 (sha256
7381 (base32
7382 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
7383 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7384 ;; versions of cogl and clutter. As a result, many of the inputs,
7385 ;; propagated-inputs, and configure flags used in cogl and clutter are
7386 ;; needed here as well.
7387 (build-system meson-build-system)
7388 (arguments
7389 '(;; XXX: All mutter tests fail with the following error:
7390 ;; Settings schema 'org.gnome.mutter' is not installed
7391 #:tests? #f
7392 #:glib-or-gtk? #t
7393 #:configure-flags
7394 ;; TODO: Enable profiler when Sysprof is packaged.
7395 (list "-Dprofiler=false"
7396 ;; Otherwise, the RUNPATH will lack the final path component.
7397 (string-append "-Dc_link_args=-Wl,-rpath="
7398 (assoc-ref %outputs "out") "/lib:"
7399 (assoc-ref %outputs "out") "/lib/mutter-5")
7400
7401 ;; The following flags are needed for the bundled clutter
7402 (string-append "-Dxwayland_path="
7403 (assoc-ref %build-inputs "xorg-server-xwayland")
7404 "/bin/Xwayland")
7405
7406 ;; the remaining flags are needed for the bundled cogl
7407 (string-append "-Dopengl_libname="
7408 (assoc-ref %build-inputs "mesa")
7409 "/lib/libGL.so"))
7410 #:phases (modify-phases %standard-phases
7411 (add-after 'unpack 'fix-build-with-mesa-20
7412 (lambda _
7413 ;; Mimic upstream commit a444a4c5f58ea516ad for
7414 ;; compatibility with Mesa 20. Remove for 3.36.
7415 (substitute* '("src/backends/meta-egl-ext.h"
7416 "src/backends/meta-egl.c"
7417 "src/backends/meta-egl.h")
7418 (("#include <EGL/eglext\\.h>" all)
7419 (string-append all "\n#include <EGL/eglmesaext.h>")))
7420 (substitute* "cogl/cogl/meson.build"
7421 (("#include <EGL/eglext\\.h>" all)
7422 (string-append all "\\n#include <EGL/eglmesaext.h>")))
7423 #t)))))
7424 (native-inputs
7425 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7426 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7427 ("gobject-introspection" ,gobject-introspection)
7428 ("intltool" ,intltool)
7429 ("pkg-config" ,pkg-config)
7430 ("xorg-server" ,xorg-server-for-tests)
7431 ;; For git build
7432 ("autoconf" ,autoconf)
7433 ("automake" ,automake)
7434 ("libtool" ,libtool)))
7435 (propagated-inputs
7436 `(;; libmutter.pc refers to these:
7437 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7438 ("gtk+" ,gtk+)
7439 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7440 ("atk" ,atk)
7441 ("cairo" ,cairo)
7442 ("gdk-pixbuf" ,gdk-pixbuf)
7443 ("glib" ,glib)
7444 ("json-glib" ,json-glib)
7445 ("libinput" ,libinput)
7446 ("libx11" ,libx11)
7447 ("libxcomposite" ,libxcomposite)
7448 ("libxdamage" ,libxdamage)
7449 ("libxext" ,libxext)
7450 ("libxfixes" ,libxfixes)
7451 ("libxkbcommon" ,libxkbcommon)
7452 ("libxrandr" ,libxrandr)
7453 ("mesa" ,mesa)
7454 ("pango" ,pango)
7455 ("udev" ,eudev)
7456 ("xinput" ,xinput)))
7457 (inputs
7458 `(("elogind" ,elogind)
7459 ("gnome-desktop" ,gnome-desktop)
7460 ("gnome-settings-daemon" ,gnome-settings-daemon)
7461 ("libcanberra-gtk" ,libcanberra)
7462 ("libgudev" ,libgudev)
7463 ("libice" ,libice)
7464 ("libsm" ,libsm)
7465 ("libwacom" ,libwacom)
7466 ("libxkbfile" ,libxkbfile)
7467 ("libxrandr" ,libxrandr)
7468 ("libxtst" ,libxtst)
7469 ("pipewire" ,pipewire)
7470 ("startup-notification" ,startup-notification)
7471 ("upower-glib" ,upower)
7472 ("xkeyboard-config" ,xkeyboard-config)
7473 ("xorg-server-xwayland" ,xorg-server-xwayland)
7474 ("zenity" ,zenity)))
7475 (synopsis "Window and compositing manager")
7476 (home-page "https://www.gnome.org")
7477 (description
7478 "Mutter is a window and compositing manager that displays and manages your
7479 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7480 Clutter toolkit with solid window-management logic inherited from the Metacity
7481 window manager.")
7482 (license license:gpl2+)))
7483
7484 (define-public gnome-online-accounts
7485 (package
7486 (name "gnome-online-accounts")
7487 (version "3.36.0")
7488 (source (origin
7489 (method url-fetch)
7490 (uri (string-append "mirror://gnome/sources/" name "/"
7491 (version-major+minor version) "/"
7492 name "-" version ".tar.xz"))
7493 (sha256
7494 (base32
7495 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7496 (outputs '("out" "lib"))
7497 (build-system glib-or-gtk-build-system)
7498 (arguments
7499 `(#:configure-flags
7500 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7501 #:phases
7502 (modify-phases %standard-phases
7503 (add-before 'configure 'patch-libgoa-output
7504 (lambda* (#:key outputs #:allow-other-keys)
7505 (let ((lib (assoc-ref outputs "lib")))
7506 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7507 (("@prefix@") lib)
7508 (("@exec_prefix@") lib)
7509 (("@libdir@") (string-append lib "/lib"))
7510 (("@includedir@") (string-append lib "/include"))
7511 (("@datadir@") (string-append lib "/share")))
7512 ;; Make sure gobject-introspection knows about the output
7513 ;; too (see <https://bugs.gnu.org/36535>).
7514 (setenv "outputs" "out lib")
7515 #t))))))
7516 (native-inputs
7517 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7518 ("gobject-introspection" ,gobject-introspection)
7519 ("intltool" ,intltool)
7520 ("pkg-config" ,pkg-config)
7521 ("vala" ,vala)
7522 ("xsltproc" ,libxslt)))
7523 (propagated-inputs
7524 `(("glib" ,glib) ; required by goa-1.0.pc
7525 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7526 (inputs
7527 `(("docbook-xsl" ,docbook-xsl)
7528 ("json-glib" ,json-glib)
7529 ("libsecret" ,libsecret)
7530 ("rest" ,rest)
7531 ("webkitgtk" ,webkitgtk)))
7532 (synopsis "Single sign-on framework for GNOME")
7533 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7534 (description
7535 "GNOME Online Accounts provides interfaces so that applications and
7536 libraries in GNOME can access the user's online accounts. It has providers for
7537 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7538 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7539 (license license:lgpl2.0+)))
7540
7541 (define-public evolution-data-server
7542 (package
7543 (name "evolution-data-server")
7544 (version "3.34.2")
7545 (source (origin
7546 (method url-fetch)
7547 (uri (string-append "mirror://gnome/sources/" name "/"
7548 (version-major+minor version) "/"
7549 name "-" version ".tar.xz"))
7550 (patches (search-patches "evolution-data-server-locales.patch"
7551 "evolution-data-server-libical-compat.patch"
7552 "evolution-data-server-CVE-2020-14928.patch"
7553 "evolution-data-server-CVE-2020-16117.patch"))
7554 (sha256
7555 (base32
7556 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7557 (build-system cmake-build-system)
7558 (arguments
7559 '(#:configure-flags
7560 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7561 (runpaths (map (lambda (s)
7562 (string-append lib "/evolution-data-server/" s))
7563 '("addressbook-backends" "calendar-backends"
7564 "camel-providers" "credential-modules"
7565 "registry-modules"))))
7566 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7567 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7568 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7569 "-DENABLE_VALA_BINDINGS=ON"
7570 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7571 (string-append lib "/evolution-data-server;")
7572 (string-join runpaths ";"))
7573 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7574 #:phases
7575 (modify-phases %standard-phases
7576 (add-after 'unpack 'disable-failing-tests
7577 (lambda _
7578 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7579 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7580 (delete-file-recursively "tests/book-migration")
7581 (substitute* "tests/CMakeLists.txt"
7582 (("add_subdirectory\\(book-migration\\)") ""))
7583 #t))
7584 (add-after 'unpack 'patch-paths
7585 (lambda _
7586 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7587 "tests/libedata-book/data-test-utils.c"
7588 "tests/libedata-book/test-book-cache-utils.c"
7589 "tests/libedata-cal/test-cal-cache-utils.c")
7590 (("/bin/rm") (which "rm")))
7591 #t))
7592 (add-before 'configure 'dont-override-rpath
7593 (lambda _
7594 (substitute* "CMakeLists.txt"
7595 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7596 ;; Remove it so the configure flag is respected.
7597 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7598 #t)))))
7599 (native-inputs
7600 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7601 ("gobject-introspection" ,gobject-introspection)
7602 ("gperf" ,gperf)
7603 ("intltool" ,intltool)
7604 ("pkg-config" ,pkg-config)
7605 ("vala" ,vala)
7606 ("python" ,python-wrapper)))
7607 (propagated-inputs
7608 ;; These are all in the Requires field of .pc files.
7609 `(("gtk+" ,gtk+)
7610 ("libical" ,libical)
7611 ("libsecret" ,libsecret)
7612 ("libsoup" ,libsoup)
7613 ("nss" ,nss)
7614 ("sqlite" ,sqlite)))
7615 (inputs
7616 `(("bdb" ,bdb)
7617 ("gcr" ,gcr)
7618 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7619 ("json-glib" ,json-glib)
7620 ("libcanberra" ,libcanberra)
7621 ("libgweather" ,libgweather)
7622 ("mit-krb5" ,mit-krb5)
7623 ("openldap" ,openldap)
7624 ("webkitgtk" ,webkitgtk)))
7625 (synopsis "Store address books and calendars")
7626 (home-page "https://wiki.gnome.org/Apps/Evolution")
7627 (description
7628 "This package provides a unified backend for programs that work with
7629 contacts, tasks, and calendar information. It was originally developed for
7630 Evolution (hence the name), but is now used by other packages as well.")
7631 (license license:lgpl2.0)))
7632
7633 (define-public caribou
7634 (package
7635 (name "caribou")
7636 (version "0.4.21")
7637 (source (origin
7638 (method url-fetch)
7639 (uri (string-append "mirror://gnome/sources/" name "/"
7640 (version-major+minor version) "/"
7641 name "-" version ".tar.xz"))
7642 (sha256
7643 (base32
7644 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7645 (build-system glib-or-gtk-build-system)
7646 (arguments
7647 '(#:phases
7648 (modify-phases %standard-phases
7649 (add-before
7650 'build 'pre-build
7651 (lambda* (#:key outputs #:allow-other-keys)
7652 (let ((out (assoc-ref outputs "out")))
7653 ;; Use absolute shared library path in Caribou-1.0.typelib.
7654 (substitute* "libcaribou/Makefile"
7655 (("--shared-library=libcaribou.so")
7656 (string-append "--shared-library="
7657 out "/lib/libcaribou.so")))
7658 #t)))
7659 (add-after 'install 'wrap-programs
7660 (lambda* (#:key outputs #:allow-other-keys)
7661 (let* ((out (assoc-ref outputs "out"))
7662 (python-path (getenv "PYTHONPATH"))
7663 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7664 (for-each
7665 (lambda (prog)
7666 (wrap-program prog
7667 `("PYTHONPATH" ":" prefix (,python-path))
7668 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7669 (list (string-append out "/bin/caribou-preferences")
7670 (string-append out "/libexec/antler-keyboard"))))
7671 #t)))))
7672 (native-inputs
7673 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7674 ("gobject-introspection" ,gobject-introspection)
7675 ("intltool" ,intltool)
7676 ("pkg-config" ,pkg-config)
7677 ("python" ,python)
7678 ("vala" ,vala)
7679 ("xsltproc" ,libxslt)))
7680 (propagated-inputs
7681 ;; caribou-1.0.pc refers to all these.
7682 `(("libgee" ,libgee)
7683 ("libxklavier" ,libxklavier)
7684 ("libxtst" ,libxtst)
7685 ("gtk+" ,gtk+)))
7686 (inputs
7687 `(("clutter" ,clutter)
7688 ("dconf" ,dconf)
7689 ("gtk+-2" ,gtk+-2)
7690 ("python-pygobject" ,python-pygobject)))
7691 (synopsis "Text entry and UI navigation application")
7692 (home-page "https://wiki.gnome.org/Projects/Caribou")
7693 (description
7694 "Caribou is an input assistive technology intended for switch and pointer
7695 users.")
7696 (license license:lgpl2.1)))
7697
7698 (define-public network-manager
7699 (package
7700 (name "network-manager")
7701 (version "1.24.0")
7702 (source (origin
7703 (method url-fetch)
7704 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7705 (version-major+minor version) "/"
7706 "NetworkManager-" version ".tar.xz"))
7707 (patches (search-patches "network-manager-plugin-path.patch"))
7708 (sha256
7709 (base32
7710 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7711 (modules '((guix build utils)))
7712 (snippet
7713 '(begin
7714 (substitute* "src/devices/wwan/nm-modem-manager.c"
7715 (("systemd") "elogind"))
7716 #t))))
7717 (build-system meson-build-system)
7718 (outputs '("out"
7719 "doc")) ; 8 MiB of gtk-doc HTML
7720 (arguments
7721 `(#:configure-flags
7722 (let ((out (assoc-ref %outputs "out"))
7723 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7724 "/sbin/dhclient")))
7725 (list
7726 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7727 ;; component.
7728 (string-append "-Dc_link_args=-Wl,-rpath="
7729 out "/lib:"
7730 out "/lib/NetworkManager/" ,version)
7731 "-Dsystemd_journal=false"
7732 "-Dsession_tracking=elogind"
7733 "-Dsuspend_resume=elogind"
7734 "-Dsystemdsystemunitdir=no"
7735 "-Dsession_tracking_consolekit=false"
7736 "-Ddhcpcd=no"
7737 "-Ddhcpcanon=no"
7738 "-Dcrypto=gnutls"
7739 "-Diwd=true"
7740 "-Dlibaudit=yes"
7741 "-Dqt=false"
7742 "-Ddocs=true"
7743 "--sysconfdir=/etc"
7744 "--localstatedir=/var"
7745 (string-append "-Dudev_dir="
7746 out "/lib/udev")
7747 (string-append "-Ddbus_conf_dir="
7748 out "/etc/dbus-1/system.d")
7749
7750 (string-append "-Ddhclient=" dhclient)))
7751 #:phases
7752 (modify-phases %standard-phases
7753 (add-before 'configure 'pre-configure
7754 (lambda _
7755 ;; These tests try to test aspects of network-manager's
7756 ;; functionality within restricted containers, but they don't
7757 ;; cope with being already in the Guix build jail as that jail
7758 ;; lacks some features that they would like to proxy over (like
7759 ;; a /sys mount).
7760 (substitute* "src/platform/tests/meson.build"
7761 ((".*test-address-linux.*") "")
7762 ((".*test-cleanup-linux.*") "")
7763 ((".*test-link-linux.*") "")
7764 ((".*test-route-linux.*") ""))
7765 (substitute* "src/devices/tests/meson.build"
7766 ((".*test-acd.*") "")
7767 ((".*test-lldp.*") ""))
7768 #t))
7769 (add-after 'unpack 'patch-docbook-xml
7770 (lambda* (#:key inputs #:allow-other-keys)
7771 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7772 "/xml/dtd/docbook")))
7773 (substitute* (find-files "." ".*\\.(xsl|xml)")
7774 (("http://.*/docbookx\\.dtd")
7775 (string-append xmldoc "/docbookx.dtd")))
7776 #t)))
7777 (add-before 'check 'pre-check
7778 (lambda _
7779 ;; For the missing /etc/machine-id.
7780 (setenv "DBUS_FATAL_WARNINGS" "0")
7781 #t))
7782 (add-before 'install 'no-polkit-magic
7783 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7784 (lambda _
7785 (setenv "PKEXEC_UID" "something")
7786 #t))
7787 (add-after 'install 'move-doc
7788 (lambda* (#:key outputs #:allow-other-keys)
7789 (let ((out (assoc-ref outputs "out"))
7790 (doc (assoc-ref outputs "doc")))
7791 (mkdir-p (string-append doc "/share"))
7792 (for-each (lambda (directory)
7793 (copy-recursively (string-append out directory)
7794 (string-append doc directory))
7795 (delete-file-recursively
7796 (string-append out directory)))
7797 '("/share/doc" "/share/gtk-doc"))
7798 #t))))))
7799 (propagated-inputs
7800 `(("glib" ,glib)))
7801 (native-inputs
7802 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7803 ("gtk-doc" ,gtk-doc/stable)
7804 ("gobject-introspection" ,gobject-introspection)
7805 ("docbook-xml" ,docbook-xml)
7806 ("docbook-xsl" ,docbook-xsl)
7807 ("intltool" ,intltool)
7808 ("libxslt" ,libxslt)
7809 ("libxml2" ,libxml2)
7810 ("pkg-config" ,pkg-config)
7811 ("vala" ,vala)
7812 ;; For testing.
7813 ("python" ,python-wrapper)
7814 ("python-dbus" ,python-dbus)
7815 ("python-pygobject" ,python-pygobject)))
7816 (inputs
7817 `(("curl" ,curl)
7818 ("cyrus-sasl" ,cyrus-sasl)
7819 ("dbus-glib" ,dbus-glib)
7820 ("dnsmasq" ,dnsmasq)
7821 ("eudev" ,eudev)
7822 ("gnutls" ,gnutls)
7823 ("iptables" ,iptables)
7824 ("isc-dhcp" ,isc-dhcp)
7825 ("iwd" ,iwd) ; wpa_supplicant alternative
7826 ("jansson" ,jansson)
7827 ("libaudit" ,audit)
7828 ("libgcrypt" ,libgcrypt)
7829 ("libgudev" ,libgudev)
7830 ("libndp" ,libndp)
7831 ("libnl" ,libnl)
7832 ("libsoup" ,libsoup)
7833 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7834 ("modem-manager" ,modem-manager)
7835 ("newt" ,newt) ;for the 'nmtui' console interface
7836 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7837 ("polkit" ,polkit)
7838 ("ppp" ,ppp)
7839 ("readline" ,readline)
7840 ("util-linux" ,util-linux)
7841 ("elogind" ,elogind)))
7842 (synopsis "Network connection manager")
7843 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7844 (description
7845 "NetworkManager is a system network service that manages your network
7846 devices and connections, attempting to keep active network connectivity when
7847 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7848 devices, and provides VPN integration with a variety of different VPN
7849 services.")
7850 ;; “This NetworkManager project consists of the daemon, client tools, and
7851 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7852 ;; GPL-2.0+.”
7853 (license (list license:gpl2+
7854 license:lgpl2.1+))
7855 (properties '((upstream-name . "NetworkManager")))))
7856
7857 (define-public network-manager-openvpn
7858 (package
7859 (name "network-manager-openvpn")
7860 (version "1.8.12")
7861 (source (origin
7862 (method url-fetch)
7863 (uri (string-append
7864 "mirror://gnome/sources/NetworkManager-openvpn/"
7865 (version-major+minor version)
7866 "/NetworkManager-openvpn-" version ".tar.xz"))
7867 (sha256
7868 (base32
7869 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7870 (build-system gnu-build-system)
7871 (arguments
7872 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7873 #:phases
7874 (modify-phases %standard-phases
7875 (add-after 'configure 'patch-path
7876 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7877 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7878 "/sbin/openvpn"))
7879 (modprobe (string-append (assoc-ref inputs "kmod")
7880 "/bin/modprobe"))
7881 (pretty-ovpn (string-append "\"" ovpn "\"")))
7882 (for-each
7883 (lambda (file)
7884 (substitute* file
7885 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7886 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7887 (("\"/sbin/openvpn\"") pretty-ovpn)
7888 (("/sbin/modprobe") modprobe)))
7889 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7890 #t)))))
7891 (native-inputs
7892 `(("pkg-config" ,pkg-config)
7893 ("intltool" ,intltool)))
7894 (inputs
7895 `(("gtk+" ,gtk+)
7896 ("kmod" ,kmod)
7897 ("openvpn" ,openvpn)
7898 ("network-manager" ,network-manager)
7899 ("libnma" ,libnma)
7900 ("libsecret" ,libsecret)))
7901 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7902 (synopsis "OpenVPN plug-in for NetworkManager")
7903 (description
7904 "This extension of NetworkManager allows it to take care of connections
7905 to virtual private networks (VPNs) via OpenVPN.")
7906 (license license:gpl2+)
7907 (properties `((upstream-name . "NetworkManager-openvpn")))))
7908
7909 (define-public network-manager-vpnc
7910 (package
7911 (name "network-manager-vpnc")
7912 (version "1.2.6")
7913 (source (origin
7914 (method url-fetch)
7915 (uri (string-append
7916 "mirror://gnome/sources/NetworkManager-vpnc/"
7917 (version-major+minor version)
7918 "/NetworkManager-vpnc-" version ".tar.xz"))
7919 (sha256
7920 (base32
7921 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7922 (build-system gnu-build-system)
7923 (arguments
7924 `(#:configure-flags '("--enable-absolute-paths"
7925 "--localstatedir=/var"
7926 ;; libnm-glib has been removed from network-manager
7927 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7928 "--with-libnm-glib=no")
7929 #:phases
7930 (modify-phases %standard-phases
7931 (add-after 'configure 'patch-path
7932 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7933 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7934 "/sbin/vpnc"))
7935 (modprobe (string-append (assoc-ref inputs "kmod")
7936 "/bin/modprobe"))
7937 (pretty-ovpn (string-append "\"" vpnc "\"")))
7938 (substitute* "src/nm-vpnc-service.c"
7939 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7940 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7941 (("\"/sbin/vpnc\"") pretty-ovpn)
7942 (("/sbin/modprobe") modprobe)))
7943 #t)))))
7944 (native-inputs
7945 `(("pkg-config" ,pkg-config)
7946 ("intltool" ,intltool)))
7947 (inputs
7948 `(("gtk+" ,gtk+)
7949 ("kmod" ,kmod)
7950 ("vpnc" ,vpnc)
7951 ("network-manager" ,network-manager)
7952 ("libnma" ,libnma)
7953 ("libsecret" ,libsecret)))
7954 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7955 (synopsis "VPNC plug-in for NetworkManager")
7956 (description
7957 "Support for configuring virtual private networks based on VPNC.
7958 Compatible with Cisco VPN concentrators configured to use IPsec.")
7959 (license license:gpl2+)
7960 (properties `((upstream-name . "NetworkManager-vpnc")))))
7961
7962 (define-public network-manager-openconnect
7963 (package
7964 (name "network-manager-openconnect")
7965 (version "1.2.6")
7966 (source (origin
7967 (method url-fetch)
7968 (uri (string-append
7969 "mirror://gnome/sources/NetworkManager-openconnect/"
7970 (version-major+minor version)
7971 "/NetworkManager-openconnect-" version ".tar.xz"))
7972 (sha256
7973 (base32
7974 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7975 (build-system gnu-build-system)
7976 (arguments
7977 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7978 #:phases
7979 (modify-phases %standard-phases
7980 (add-after 'configure 'patch-path
7981 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7982 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7983 "/sbin/openconnect"))
7984 (modprobe (string-append (assoc-ref inputs "kmod")
7985 "/bin/modprobe"))
7986 (pretty-ovpn (string-append "\"" openconnect "\"")))
7987 (substitute* "src/nm-openconnect-service.c"
7988 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7989 (("/sbin/modprobe") modprobe)))
7990 #t)))))
7991 (native-inputs
7992 `(("intltool" ,intltool)
7993 ("libnma" ,libnma)
7994 ("pkg-config" ,pkg-config)))
7995 (inputs
7996 `(("gcr" ,gcr)
7997 ("gtk+" ,gtk+)
7998 ("kmod" ,kmod)
7999 ("libsecret" ,libsecret)
8000 ("libxml2" ,libxml2)
8001 ("lz4" ,lz4)
8002 ("network-manager" ,network-manager)
8003 ("openconnect" ,openconnect)))
8004 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8005 (synopsis "OpenConnect plug-in for NetworkManager")
8006 (description
8007 "This extension of NetworkManager allows it to take care of connections
8008 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
8009 Cisco's AnyConnect SSL VPN.")
8010 (license license:gpl2+)
8011 (properties `((upstream-name . "NetworkManager-openconnect")
8012
8013 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
8014 ;; file refers to account "nm-openconnect". Specify it here
8015 ;; so that 'network-manager-service-type' creates it.
8016 (user-accounts . ("nm-openconnect"))))))
8017
8018 (define-public mobile-broadband-provider-info
8019 (package
8020 (name "mobile-broadband-provider-info")
8021 (version "20190116")
8022 (source (origin
8023 (method url-fetch)
8024 (uri (string-append
8025 "mirror://gnome/sources/"
8026 "mobile-broadband-provider-info/" version "/"
8027 "mobile-broadband-provider-info-" version ".tar.xz"))
8028 (sha256
8029 (base32
8030 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
8031 (build-system gnu-build-system)
8032 (arguments
8033 `(#:tests? #f)) ; no tests
8034 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8035 (synopsis "Database of broadband connection configuration")
8036 (description "Database of broadband connection configuration.")
8037 (license license:public-domain)))
8038
8039 (define-public network-manager-applet
8040 (package
8041 (name "network-manager-applet")
8042 (version "1.20.0")
8043 (source (origin
8044 (method url-fetch)
8045 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
8046 (version-major+minor version) "/"
8047 "network-manager-applet-" version ".tar.xz"))
8048 (sha256
8049 (base32
8050 "0lsjkbv66hn7acl2pg9h6hz4b700zzv4cjwrwjvy7043blw0bcla"))))
8051 (build-system meson-build-system)
8052 (arguments
8053 '(#:glib-or-gtk? #t
8054 #:configure-flags
8055 '("-Dappindicator=yes")))
8056 (native-inputs
8057 `(("intltool" ,intltool)
8058 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
8059 ("gobject-introspection" ,gobject-introspection)
8060 ("gtk-doc" ,gtk-doc/stable)
8061 ("pkg-config" ,pkg-config)))
8062 (propagated-inputs
8063 ;; libnm-gtk.pc refers to all these.
8064 `(("dbus-glib" ,dbus-glib)
8065 ("gtk+" ,gtk+)
8066 ("network-manager" ,network-manager)
8067 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8068 ("libnma" ,libnma)))
8069 (inputs
8070 `(("gcr" ,gcr)
8071 ("libappindicator" ,libappindicator)
8072 ("libgudev" ,libgudev)
8073 ("libnotify" ,libnotify)
8074 ("libsecret" ,libsecret)
8075 ("libselinux" ,libselinux)
8076 ("jansson" ,jansson) ; for team support
8077 ("modem-manager" ,modem-manager)))
8078 (synopsis "Applet for managing network connections")
8079 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8080 (description
8081 "This package contains a systray applet for NetworkManager. It displays
8082 the available networks and allows users to easily switch between them.")
8083 (license license:gpl2+)))
8084
8085 (define-public libxml++
8086 (package
8087 (name "libxml++")
8088 (version "3.0.1")
8089 (source (origin
8090 (method url-fetch)
8091 (uri (string-append "mirror://gnome/sources/" name "/"
8092 (version-major+minor version) "/"
8093 name "-" version ".tar.xz"))
8094 (sha256
8095 (base32
8096 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
8097 (build-system gnu-build-system)
8098 ;; libxml++-3.0.pc refers to all these.
8099 (propagated-inputs
8100 `(("libxml2" ,libxml2)
8101 ("glibmm" ,glibmm)))
8102 (native-inputs
8103 `(("perl" ,perl)
8104 ("pkg-config" ,pkg-config)))
8105 (home-page "http://libxmlplusplus.sourceforge.net/")
8106 (synopsis "C++ wrapper for XML parser library libxml2")
8107 (description
8108 "This package provides a C++ wrapper for the XML parser library
8109 libxml2.")
8110 (license license:lgpl2.1+)))
8111
8112 (define-public libxml++-2
8113 (package
8114 (inherit libxml++)
8115 (name "libxml++")
8116 (version "2.40.1")
8117 (source (origin
8118 (method url-fetch)
8119 (uri (string-append "mirror://gnome/sources/" name "/"
8120 (version-major+minor version) "/"
8121 name "-" version ".tar.xz"))
8122 (sha256
8123 (base32
8124 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
8125
8126 (define-public gdm
8127 (package
8128 (name "gdm")
8129 (version "3.34.1")
8130 (source (origin
8131 (method url-fetch)
8132 (uri (string-append "mirror://gnome/sources/" name "/"
8133 (version-major+minor version) "/"
8134 name "-" version ".tar.xz"))
8135 (sha256
8136 (base32
8137 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
8138 (patches (search-patches "gdm-default-session.patch"))))
8139 (build-system glib-or-gtk-build-system)
8140 (arguments
8141 '(#:configure-flags
8142 `("--without-plymouth"
8143 "--disable-systemd-journal"
8144
8145 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8146 ;; instead of having to replace it (i.e., stopping the mingetty
8147 ;; service for TTY 1 before starting GDM).
8148 "--with-initial-vt=7"
8149
8150 ;; Use '/etc/environment' for locale settings instead of the
8151 ;; systemd-specific '/etc/locale.conf'.
8152 "--with-lang-file=/etc/environment"
8153
8154 ,(string-append "--with-udevdir="
8155 (assoc-ref %outputs "out") "/lib/udev")
8156
8157 "--localstatedir=/var"
8158 ,(string-append "--with-default-path="
8159 (string-join '("/run/setuid-programs"
8160 "/run/current-system/profile/bin"
8161 "/run/current-system/profile/sbin")
8162 ":"))
8163 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8164 ;; XDG_DATA_DIRS so that it finds its schemas.
8165 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
8166 #:phases
8167 (modify-phases %standard-phases
8168 (add-before
8169 'configure 'pre-configure
8170 (lambda* (#:key inputs outputs #:allow-other-keys)
8171 ;; We don't have <systemd/sd-daemon.h>.
8172 (substitute* '("common/gdm-log.c"
8173 "daemon/gdm-server.c"
8174 "daemon/gdm-session-worker.c"
8175 "daemon/gdm-session-worker-job.c")
8176 (("#include <systemd/sd-daemon\\.h>") ""))
8177 ;; Use elogind for sd-login.
8178 (substitute* '("common/gdm-common.c"
8179 "daemon/gdm-local-display-factory.c"
8180 "daemon/gdm-manager.c"
8181 "libgdm/gdm-user-switching.c")
8182 (("#include <systemd/sd-login\\.h>")
8183 "#include <elogind/sd-login.h>"))
8184 ;; Check for elogind.
8185 (substitute* '("configure")
8186 (("libsystemd")
8187 "libelogind"))
8188 ;; Look for system-installed sessions in
8189 ;; /run/current-system/profile/share.
8190 (substitute* '("libgdm/gdm-sessions.c"
8191 "daemon/gdm-session.c"
8192 "daemon/gdm-display.c"
8193 "daemon/gdm-launch-environment.c")
8194 (("DATADIR \"/x")
8195 "\"/run/current-system/profile/share/x")
8196 (("DATADIR \"/wayland")
8197 "\"/run/current-system/profile/share/wayland")
8198 (("DATADIR \"/gnome")
8199 "\"/run/current-system/profile/share/gnome"))
8200 (let ((propagate '("GDM_CUSTOM_CONF"
8201 "GDM_DBUS_DAEMON"
8202 "GDM_X_SERVER"
8203 "GDM_X_SESSION"
8204 ;; XXX: Remove this once GNOME Shell is
8205 ;; a dependency of GDM.
8206 "XDG_DATA_DIRS")))
8207 (substitute* "daemon/gdm-session.c"
8208 (("set_up_session_environment \\(self\\);")
8209 (apply string-append
8210 "set_up_session_environment (self);\n"
8211 (map (lambda (name)
8212 (string-append
8213 "gdm_session_set_environment_variable "
8214 "(self, \"" name "\","
8215 "g_getenv (\"" name "\"));\n"))
8216 propagate)))))
8217 ;; Find the configuration file using an environment variable.
8218 (substitute* '("common/gdm-settings.c")
8219 (("GDM_CUSTOM_CONF")
8220 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8221 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8222 " : GDM_CUSTOM_CONF)")))
8223 ;; Use service-supplied path to X.
8224 (substitute* '("daemon/gdm-server.c")
8225 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8226 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8227 (substitute* '("daemon/gdm-wayland-session.c"
8228 "daemon/gdm-x-session.c")
8229 (("\"dbus-daemon\"")
8230 "g_getenv (\"GDM_DBUS_DAEMON\")")
8231 (("X_SERVER")
8232 "g_getenv (\"GDM_X_SERVER\")")
8233 (("GDMCONFDIR \"/Xsession\"")
8234 "g_getenv (\"GDM_X_SESSION\")"))
8235 ;; Use an absolute path for GNOME Session.
8236 (substitute* "daemon/gdm-launch-environment.c"
8237 (("\"gnome-session\"")
8238 (string-append "\"" (assoc-ref inputs "gnome-session")
8239 "/bin/gnome-session\"")))
8240 ;; Do not automatically select the placeholder session.
8241 (substitute* "daemon/gdm-session.c"
8242 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8243 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8244 "(g_strcmp0(search_dirs[i], \""
8245 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
8246 "\") == 0 && "
8247 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8248 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8249 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
8250 #t))
8251 ;; GDM requires that there be at least one desktop entry
8252 ;; file. This phase installs a hidden one that simply
8253 ;; fails. This enables users to use GDM with a
8254 ;; '~/.xsession' script with no other desktop entry files.
8255 ;; See <https://bugs.gnu.org/35068>.
8256 (add-after 'install 'install-placeholder-desktop-entry
8257 (lambda* (#:key inputs outputs #:allow-other-keys)
8258 (let* ((out (assoc-ref outputs "out"))
8259 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8260 (fail (string-append sessions "/fail.desktop")))
8261 (mkdir-p sessions)
8262 (with-output-to-file fail
8263 (lambda ()
8264 (for-each
8265 display
8266 '("[Desktop Entry]\n"
8267 "Encoding=UTF-8\n"
8268 "Type=Application\n"
8269 "Name=Fail\n"
8270 "Comment=This session fails immediately.\n"
8271 "NoDisplay=true\n"
8272 "Exec=false\n"))))
8273 #t)))
8274 ;; GDM needs GNOME Session to run these applications. We link
8275 ;; their autostart files in `share/gdm/greeter/autostart'
8276 ;; because GDM explicitly tells GNOME Session to look there.
8277 ;;
8278 ;; XXX: GNOME Shell should be linked here too, but currently
8279 ;; GNOME Shell depends on GDM.
8280 (add-after 'install 'link-autostart-files
8281 (lambda* (#:key inputs outputs #:allow-other-keys)
8282 (let* ((out (assoc-ref outputs "out"))
8283 (autostart (string-append out "/share/gdm/"
8284 "greeter/autostart"))
8285 (settings (assoc-ref inputs "gnome-settings-daemon")))
8286 (mkdir-p autostart)
8287 (with-directory-excursion autostart
8288 (for-each (lambda (desktop)
8289 (symlink desktop (basename desktop)))
8290 (find-files (string-append settings "/etc/xdg"))))
8291 #t))))))
8292 (native-inputs
8293 `(("dconf" ,dconf)
8294 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8295 ("gobject-introspection" ,gobject-introspection)
8296 ("intltool" ,intltool)
8297 ("itstool" ,itstool)
8298 ("pkg-config" ,pkg-config)
8299 ("xmllint" ,libxml2)))
8300 (inputs
8301 `(("accountsservice" ,accountsservice)
8302 ("check" ,check-0.14) ;for testing
8303 ("elogind" ,elogind)
8304 ("gnome-session" ,gnome-session)
8305 ("gnome-settings-daemon" ,gnome-settings-daemon)
8306 ("gtk+" ,gtk+)
8307 ("iso-codes" ,iso-codes)
8308 ("libcanberra" ,libcanberra)
8309 ("linux-pam" ,linux-pam)))
8310 (synopsis "Display manager for GNOME")
8311 (home-page "https://wiki.gnome.org/Projects/GDM/")
8312 (description
8313 "GNOME Display Manager is a system service that is responsible for
8314 providing graphical log-ins and managing local and remote displays.")
8315 (license license:gpl2+)))
8316
8317 (define-public libgtop
8318 (package
8319 (name "libgtop")
8320 (version "2.40.0")
8321 (source (origin
8322 (method url-fetch)
8323 (uri (string-append "mirror://gnome/sources/libgtop/"
8324 (version-major+minor version) "/"
8325 "libgtop-" version ".tar.xz"))
8326 (sha256
8327 (base32
8328 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8329 (build-system gnu-build-system)
8330 (native-inputs
8331 `(("gobject-introspection" ,gobject-introspection)
8332 ("intltool" ,intltool)
8333 ("perl" ,perl)
8334 ("pkg-config" ,pkg-config)))
8335 (propagated-inputs
8336 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8337 (synopsis "Portable system access library")
8338 (home-page "https://www.gnome.org/")
8339 (description
8340 "LibGTop is a library to get system specific data such as CPU and memory
8341 usage and information about running processes.")
8342 (license license:gpl2+)))
8343
8344 (define-public gnome-bluetooth
8345 (package
8346 (name "gnome-bluetooth")
8347 (version "3.34.2")
8348 (source (origin
8349 (method url-fetch)
8350 (uri (string-append "mirror://gnome/sources/" name "/"
8351 (version-major+minor version) "/"
8352 name "-" version ".tar.xz"))
8353 (sha256
8354 (base32
8355 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8356 (build-system meson-build-system)
8357 (native-inputs
8358 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8359 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8360 ("gobject-introspection" ,gobject-introspection)
8361 ("intltool" ,intltool)
8362 ("pkg-config" ,pkg-config)
8363 ("xmllint" ,libxml2)))
8364 (propagated-inputs
8365 ;; gnome-bluetooth-1.0.pc refers to all these.
8366 `(("glib" ,glib)
8367 ("gtk+" ,gtk+)))
8368 (inputs
8369 `(("eudev" ,eudev)
8370 ("libcanberra" ,libcanberra)
8371 ("libnotify" ,libnotify)))
8372 (synopsis "GNOME Bluetooth subsystem")
8373 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8374 (description
8375 "This package contains tools for managing and manipulating Bluetooth
8376 devices using the GNOME desktop.")
8377 (license license:lgpl2.1+)))
8378
8379 (define-public gnome-control-center
8380 (package
8381 (name "gnome-control-center")
8382 (version "3.34.2")
8383 (source (origin
8384 (method url-fetch)
8385 (uri (string-append "mirror://gnome/sources/" name "/"
8386 (version-major+minor version) "/"
8387 name "-" version ".tar.xz"))
8388 (sha256
8389 (base32
8390 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8391 (build-system meson-build-system)
8392 (arguments
8393 '(#:glib-or-gtk? #t
8394 #:configure-flags
8395 (list "-Dcheese=false"
8396 (string-append "-Dgnome_session_libexecdir="
8397 (assoc-ref %build-inputs "gnome-session")
8398 "/libexec"))
8399 #:phases
8400 (modify-phases %standard-phases
8401 (add-before 'configure 'patch-paths
8402 (lambda* (#:key inputs #:allow-other-keys)
8403 (let ((libc (assoc-ref inputs "libc"))
8404 (tzdata (assoc-ref inputs "tzdata"))
8405 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8406 (nm-applet (assoc-ref inputs "network-manager-applet"))
8407 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8408 (substitute* "panels/datetime/tz.h"
8409 (("/usr/share/zoneinfo/zone.tab")
8410 (string-append tzdata "/share/zoneinfo/zone.tab")))
8411 (substitute* "tests/datetime/test-endianess.c"
8412 (("/usr/share/locale")
8413 (string-append libc "/share/locale")))
8414 (substitute* "panels/region/cc-region-panel.c"
8415 (("\"gkbd-keyboard-display")
8416 (string-append "\"" libgnomekbd
8417 "/bin/gkbd-keyboard-display")))
8418 (substitute* '("panels/network/net-device-wifi.c"
8419 "panels/network/net-device.c"
8420 "panels/network/connection-editor/net-connection-editor.c")
8421 (("\"nm-connection-editor")
8422 (string-append "\"" nm-applet
8423 "/bin/nm-connection-editor")))
8424 (substitute* '("panels/user-accounts/run-passwd.c")
8425 (("/usr/bin/passwd")
8426 "/run/setuid-programs/passwd"))
8427 (substitute* "panels/info/cc-info-overview-panel.c"
8428 (("DATADIR \"/gnome/gnome-version.xml\"")
8429 (string-append "\"" gnome-desktop
8430 "/share/gnome/gnome-version.xml\"")))
8431 #t)))
8432 (add-after 'unpack 'skip-gtk-update-icon-cache
8433 ;; Don't create 'icon-theme.cache'.
8434 (lambda _
8435 (substitute* "build-aux/meson/meson_post_install.py"
8436 (("gtk-update-icon-cache") (which "true")))
8437 #t)))))
8438 (native-inputs
8439 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8440 ("intltool" ,intltool)
8441 ("pkg-config" ,pkg-config)
8442 ("xsltproc" ,libxslt)
8443 ;; For tests
8444 ("hicolor-icon-theme" ,hicolor-icon-theme)
8445 ("python-dbusmock" ,python-dbusmock)
8446 ("xorg-server" ,xorg-server-for-tests)))
8447 (inputs
8448 `(("accountsservice" ,accountsservice)
8449 ("clutter-gtk" ,clutter-gtk)
8450 ("colord-gtk" ,colord-gtk)
8451 ("cups" ,cups)
8452 ("dconf" ,dconf)
8453 ("docbook-xsl" ,docbook-xsl)
8454 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8455 ("gnome-bluetooth" ,gnome-bluetooth)
8456 ("gnome-desktop" ,gnome-desktop)
8457 ("gnome-online-accounts" ,gnome-online-accounts)
8458 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8459 ("gnome-session" ,gnome-session)
8460 ("gnome-settings-daemon" ,gnome-settings-daemon)
8461 ("grilo" ,grilo)
8462 ("gsound" ,gsound)
8463 ("ibus" ,ibus)
8464 ("libcanberra" ,libcanberra)
8465 ("libgnomekbd" ,libgnomekbd)
8466 ("libgudev" ,libgudev)
8467 ("libgtop" ,libgtop)
8468 ("libnma" ,libnma)
8469 ("libpwquality" ,libpwquality)
8470 ("libsecret" ,libsecret)
8471 ("libsoup" ,libsoup)
8472 ("libxml2" ,libxml2)
8473 ("libwacom" ,libwacom)
8474 ("mesa" ,mesa)
8475 ("mit-krb5" ,mit-krb5)
8476 ("modem-manager" ,modem-manager)
8477 ("network-manager-applet" ,network-manager-applet)
8478 ("polkit" ,polkit)
8479 ("pulseaudio" ,pulseaudio)
8480 ("smbclient" ,samba)
8481 ("tzdata" ,tzdata)
8482 ("udisks" ,udisks)
8483 ("upower" ,upower)))
8484 (synopsis "Utilities to configure the GNOME desktop")
8485 (home-page "https://www.gnome.org/")
8486 (description
8487 "This package contains configuration applets for the GNOME desktop,
8488 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8489 properties, sound setup, desktop theme and background, user interface
8490 properties, screen resolution, and other GNOME parameters.")
8491 (license license:gpl2+)))
8492
8493 (define-public gnome-shell
8494 (package
8495 (name "gnome-shell")
8496 (version "3.34.5")
8497 (source (origin
8498 (method url-fetch)
8499 (uri (string-append "mirror://gnome/sources/" name "/"
8500 (version-major+minor version) "/"
8501 name "-" version ".tar.xz"))
8502 (sha256
8503 (base32
8504 "0l3mdn7g2c22mdhrqkxvvc1pk2w0v32f2v4a6n1phvaalwcg75nj"))
8505 (patches (search-patches "gnome-shell-CVE-2020-17489.patch"
8506 "gnome-shell-theme.patch"
8507 "gnome-shell-disable-test.patch"))
8508 (modules '((guix build utils)))
8509 (snippet
8510 #~(begin
8511 ;; Copy images for use on the GDM log-in screen.
8512 (copy-file #$(file-append %artwork-repository
8513 "/slim/0.x/background.png")
8514 "data/theme/guix-background.png")
8515 (copy-file #$(file-append %artwork-repository
8516 "/logo/Guix-horizontal-white.svg")
8517 "data/theme/guix-logo.svg")
8518 #t))))
8519 (build-system meson-build-system)
8520 (arguments
8521 `(#:glib-or-gtk? #t
8522 #:disallowed-references ((,glib "bin")
8523 ,inkscape ,libxslt
8524 ,ruby-sass)
8525 #:configure-flags
8526 (list "-Dsystemd=false"
8527 ;; Otherwise, the RUNPATH will lack the final path component.
8528 (string-append "-Dc_link_args=-Wl,-rpath="
8529 (assoc-ref %outputs "out")
8530 "/lib/gnome-shell"))
8531
8532 #:modules ((guix build meson-build-system)
8533 (guix build utils)
8534 (srfi srfi-1))
8535
8536 #:phases
8537 (modify-phases %standard-phases
8538 (add-after 'unpack 'fix-keysdir
8539 (lambda* (#:key outputs #:allow-other-keys)
8540 (let* ((out (assoc-ref outputs "out"))
8541 (keysdir (string-append
8542 out "/share/gnome-control-center/keybindings")))
8543 (substitute* "meson.build"
8544 (("keysdir =.*")
8545 (string-append "keysdir = '" keysdir "'\n")))
8546 #t)))
8547 (add-before 'configure 'convert-logo-to-png
8548 (lambda* (#:key inputs #:allow-other-keys)
8549 ;; Convert the logo from SVG to PNG.
8550 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8551 "data/theme/guix-logo.svg")))
8552 (add-before 'configure 'record-absolute-file-names
8553 (lambda* (#:key inputs #:allow-other-keys)
8554 (substitute* "js/misc/ibusManager.js"
8555 (("'ibus-daemon'")
8556 (string-append "'" (assoc-ref inputs "ibus")
8557 "/bin/ibus-daemon'")))
8558 (substitute* "js/ui/status/keyboard.js"
8559 (("'gkbd-keyboard-display'")
8560 (string-append "'" (assoc-ref inputs "libgnomekbd")
8561 "/bin/gkbd-keyboard-display'")))
8562 #t))
8563 (add-before 'check 'pre-check
8564 (lambda* (#:key inputs #:allow-other-keys)
8565 ;; Tests require a running X server.
8566 (system "Xvfb :1 &")
8567 (setenv "DISPLAY" ":1")
8568 #t))
8569 (add-after 'install 'wrap-programs
8570 (lambda* (#:key inputs outputs #:allow-other-keys)
8571 (let ((out (assoc-ref outputs "out"))
8572 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8573 (python-path (getenv "PYTHONPATH")))
8574 (wrap-program (string-append out "/bin/gnome-shell")
8575 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8576 ;; FIXME: gnome-shell loads these libraries with unqualified
8577 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8578 ;; alternative might be to patch gnome-shell.
8579 `("LD_LIBRARY_PATH" ":" prefix
8580 ,(map (lambda (pkg)
8581 (string-append (assoc-ref inputs pkg) "/lib"))
8582 '("gdk-pixbuf"
8583 "gnome-bluetooth" "librsvg" "libgweather"))))
8584 (for-each
8585 (lambda (prog)
8586 (wrap-program (string-append out "/bin/" prog)
8587 `("PYTHONPATH" ":" prefix (,python-path))
8588 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8589 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8590 #t)))
8591 (replace 'glib-or-gtk-wrap
8592 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8593 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8594 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8595 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8596 ;; phase. Fix that since we don't need these.
8597 (wrap #:inputs (fold alist-delete inputs
8598 '("inkscape" "intltool" "glib:bin"))
8599 #:outputs outputs)))))))
8600 (native-inputs
8601 `(("asciidoc" ,asciidoc)
8602 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8603 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8604 ("gobject-introspection" ,gobject-introspection)
8605 ("inkscape" ,inkscape)
8606 ("intltool" ,intltool)
8607 ("pkg-config" ,pkg-config)
8608 ("python" ,python)
8609 ("ruby-sass" ,ruby-sass)
8610 ("sassc" ,sassc)
8611 ("xsltproc" ,libxslt)
8612 ;; For tests
8613 ("xorg-server" ,xorg-server-for-tests)))
8614 (inputs
8615 `(("accountsservice" ,accountsservice)
8616 ("caribou" ,caribou)
8617 ("docbook-xsl" ,docbook-xsl)
8618 ("evolution-data-server" ,evolution-data-server)
8619 ("gcr" ,gcr)
8620 ("gdm" ,gdm)
8621 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8622 ("gjs" ,gjs)
8623 ("gnome-autoar" ,gnome-autoar)
8624 ("gnome-bluetooth" ,gnome-bluetooth)
8625 ("gnome-desktop" ,gnome-desktop)
8626 ("gnome-settings-daemon" ,gnome-settings-daemon)
8627 ("gst-plugins-base" ,gst-plugins-base)
8628 ("ibus" ,ibus)
8629 ("libcanberra" ,libcanberra)
8630 ("libcroco" ,libcroco)
8631 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8632 ("libgweather" ,libgweather)
8633 ("libnma" ,libnma)
8634 ("libsoup" ,libsoup)
8635 ("mesa-headers" ,mesa-headers)
8636 ("mutter" ,mutter)
8637 ("network-manager-applet" ,network-manager-applet)
8638 ("polkit" ,polkit)
8639 ("pulseaudio" ,pulseaudio)
8640 ("python-pygobject" ,python-pygobject)
8641 ("startup-notification" ,startup-notification)
8642 ("telepathy-logger" ,telepathy-logger)
8643 ("upower" ,upower)
8644 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8645 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8646 ("librsvg" ,librsvg)
8647 ("geoclue" ,geoclue)))
8648 ;; CVE-2019-3820 was fixed before GNOME 3.34 was released, in upstream
8649 ;; commit f0a7395b3006360905ccdc642982f9fc67378927.
8650 (properties '((lint-hidden-cve . ("CVE-2019-3820"))))
8651 (synopsis "Desktop shell for GNOME")
8652 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8653 (description
8654 "GNOME Shell provides core user interface functions for the GNOME desktop,
8655 like switching to windows and launching applications.")
8656 (license license:gpl2+)))
8657
8658 (define-public gtk-vnc
8659 (package
8660 (name "gtk-vnc")
8661 (version "1.0.0")
8662 (source
8663 (origin
8664 (method url-fetch)
8665 (uri
8666 (string-append "mirror://gnome/sources/" name "/"
8667 (version-major+minor version) "/"
8668 name "-" version ".tar.xz"))
8669 (sha256
8670 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8671 (build-system meson-build-system)
8672 (arguments
8673 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8674 (native-inputs
8675 `(("gjs" ,gjs)
8676 ("glib:bin" ,glib "bin")
8677 ("gobject-introspection" ,gobject-introspection)
8678 ("intltool" ,intltool)
8679 ("node" ,node)
8680 ("perl" ,perl)
8681 ("pkg-config" ,pkg-config)
8682 ("python" ,python-wrapper)
8683 ("vala" ,vala)))
8684 (inputs
8685 `(("cairo" ,cairo)
8686 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8687 ("glib" ,glib)
8688 ("gnutls" ,gnutls)
8689 ("libgcrypt" ,libgcrypt)
8690 ("libsasl" ,cyrus-sasl)
8691 ("pulseaudio" ,pulseaudio)
8692 ("x11" ,libx11)
8693 ("zlib" ,zlib)))
8694 (propagated-inputs
8695 `(("gtk+" ,gtk+)))
8696 (synopsis "VNC client viewer widget for GTK+")
8697 (description "GTK-VNC is a project providing client side APIs for the RFB
8698 protocol / VNC remote desktop technology. It is built using coroutines allowing
8699 it to be completely asynchronous while remaining single threaded. It provides a
8700 core C library, and bindings for Python (PyGTK).")
8701 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8702 (license license:lgpl2.1+)))
8703
8704 (define-public gnome-autoar
8705 (package
8706 (name "gnome-autoar")
8707 (version "0.3.2")
8708 (source (origin
8709 (method url-fetch)
8710 (uri (string-append "mirror://gnome/sources/" name "/"
8711 (version-major+minor version) "/"
8712 name "-" version ".tar.xz"))
8713 (sha256
8714 (base32
8715 "0wkwix44yg126xn1v4f2j60bv9yiyadfpzf8ifx0bvd9x5f4v354"))))
8716 (build-system glib-or-gtk-build-system)
8717 (native-inputs
8718 `(("gobject-introspection" ,gobject-introspection)
8719 ("pkg-config" ,pkg-config)))
8720 (propagated-inputs
8721 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8722 (inputs
8723 `(("gtk+" ,gtk+)))
8724 (synopsis "Archives integration support for GNOME")
8725 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8726 (description
8727 "GNOME Autoar is a library which makes creating and extracting archives
8728 easy, safe, and automatic.")
8729 (license license:lgpl2.1+)))
8730
8731 (define-public tracker
8732 (package
8733 (name "tracker")
8734 (version "2.3.5")
8735 (source (origin
8736 (method url-fetch)
8737 (uri (string-append "mirror://gnome/sources/tracker/"
8738 (version-major+minor version) "/"
8739 "tracker-" version ".tar.xz"))
8740 (sha256
8741 (base32
8742 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8743 (build-system meson-build-system)
8744 (arguments
8745 `(#:glib-or-gtk? #t
8746 #:configure-flags
8747 ;; Otherwise, the RUNPATH will lack the final path component.
8748 (list (string-append "-Dc_link_args=-Wl,-rpath="
8749 (assoc-ref %outputs "out") "/lib:"
8750 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8751 #:phases
8752 (modify-phases %standard-phases
8753 (add-before 'check 'pre-check
8754 (lambda _
8755 ;; Some tests expect to write to $HOME.
8756 (setenv "HOME" "/tmp")
8757 #t)))))
8758 (native-inputs
8759 `(("glib:bin" ,glib "bin")
8760 ("gobject-introspection" ,gobject-introspection)
8761 ("python-pygobject" ,python-pygobject)
8762 ("intltool" ,intltool)
8763 ("pkg-config" ,pkg-config)
8764 ("vala" ,vala)))
8765 (inputs
8766 `(("dbus" ,dbus)
8767 ("sqlite" ,sqlite)
8768 ("libxml2" ,libxml2)
8769 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8770 ("json-glib" ,json-glib)
8771 ("libsoup" ,libsoup)))
8772 (synopsis "Metadata database, indexer and search tool")
8773 (home-page "https://wiki.gnome.org/Projects/Tracker")
8774 (description
8775 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8776
8777 It is a middleware component aimed at desktop application developers who want
8778 their apps to browse and search user content. It's not designed to be used
8779 directly by desktop users, but it provides a commandline tool named
8780 @command{tracker} for the adventurous.
8781
8782 Tracker allows your application to instantly perform full-text searches across
8783 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8784 example. This is achieved by indexing the user's home directory in the
8785 background.
8786
8787 Tracker also allows your application to query and list content that the user
8788 has stored. For example, GNOME Music displays all the music files that are
8789 found by Tracker. This means that GNOME Music doesn't need to maintain a
8790 database of its own.
8791
8792 If you need to go beyond simple searches, Tracker is also a linked data
8793 endpoint and it understands SPARQL. ")
8794 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8795 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8796 ;; libstemmer is bsd-3 and the rest is gpl2+.
8797 (license (list license:gpl2+
8798 license:bsd-3
8799 license:lgpl2.1+))))
8800
8801 (define-public tracker-miners
8802 (package
8803 (name "tracker-miners")
8804 (version "2.3.4")
8805 (source (origin
8806 (method url-fetch)
8807 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8808 (version-major+minor version)
8809 "/tracker-miners-" version ".tar.xz"))
8810 (sha256
8811 (base32
8812 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8813 (build-system meson-build-system)
8814 (arguments
8815 `(#:glib-or-gtk? #t
8816 #:configure-flags
8817 (list "-Dminer_rss=false" ; libgrss is required.
8818 ;; Ensure the RUNPATH contains all installed library locations.
8819 (string-append "-Dc_link_args=-Wl,-rpath="
8820 (assoc-ref %outputs "out")
8821 "/lib/tracker-miners-2.0")
8822 ;; TODO: Enable functional tests. Currently, the following error
8823 ;; appears:
8824 ;; Exception: The functional tests require DConf to be the default
8825 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8826 "-Dfunctional_tests=false")))
8827 (native-inputs
8828 `(("dbus" ,dbus)
8829 ("intltool" ,intltool)
8830 ("glib:bin" ,glib "bin")
8831 ("gobject-introspection" ,gobject-introspection)
8832 ("pkg-config" ,pkg-config)
8833 ("python-pygobject" ,python-pygobject)))
8834 (inputs
8835 `(("exempi" ,exempi)
8836 ("ffmpeg" ,ffmpeg)
8837 ("flac" ,flac)
8838 ("giflib" ,giflib)
8839 ("glib" ,glib)
8840 ("gstreamer" ,gstreamer)
8841 ("icu4c" ,icu4c)
8842 ("libcue" ,libcue)
8843 ("libexif" ,libexif)
8844 ("libgsf" ,libgsf)
8845 ("libgxps" ,libgxps)
8846 ("libiptcdata" ,libiptcdata)
8847 ("libjpeg" ,libjpeg-turbo)
8848 ("libosinfo" ,libosinfo)
8849 ("libpng" ,libpng)
8850 ("libseccomp" ,libseccomp)
8851 ("libtiff" ,libtiff)
8852 ("libvorbis" ,libvorbis)
8853 ("libxml2" ,libxml2)
8854 ("poppler" ,poppler)
8855 ("taglib" ,taglib)
8856 ("totem-pl-parser" ,totem-pl-parser)
8857 ("tracker" ,tracker)
8858 ("upower" ,upower)
8859 ("zlib" ,zlib)))
8860 (synopsis "Metadata database, indexer and search tool")
8861 (home-page "https://wiki.gnome.org/Projects/Tracker")
8862 (description
8863 "Tracker is an advanced framework for first class objects with associated
8864 metadata and tags. It provides a one stop solution for all metadata, tags,
8865 shared object databases, search tools and indexing.")
8866 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8867 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8868 (license (list license:gpl2+
8869 license:lgpl2.1+
8870 license:lgpl2.0+))))
8871
8872 (define-public nautilus
8873 (package
8874 (name "nautilus")
8875 (version "3.34.2")
8876 (source (origin
8877 (method url-fetch)
8878 (uri (string-append "mirror://gnome/sources/" name "/"
8879 (version-major+minor version) "/"
8880 name "-" version ".tar.xz"))
8881 (sha256
8882 (base32
8883 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8884 (build-system meson-build-system)
8885 (arguments
8886 '(#:glib-or-gtk? #t
8887 #:phases
8888 (modify-phases %standard-phases
8889 (add-after 'unpack 'skip-gtk-update-icon-cache
8890 ;; Don't create 'icon-theme.cache'.
8891 (lambda _
8892 (substitute* "build-aux/meson/postinstall.py"
8893 (("gtk-update-icon-cache") "true"))
8894 #t)))
8895 ;; XXX: FAIL: check-nautilus
8896 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8897 #:tests? #f))
8898 (native-inputs
8899 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8900 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8901 ("gobject-introspection" ,gobject-introspection)
8902 ("intltool" ,intltool)
8903 ("pkg-config" ,pkg-config)))
8904 (inputs
8905 `(("dconf" ,dconf)
8906 ("gexiv2" ,gexiv2)
8907 ("gvfs" ,gvfs)
8908 ("exempi" ,exempi)
8909 ("gnome-desktop" ,gnome-desktop)
8910 ("gnome-autoar" ,gnome-autoar)
8911 ("gst-plugins-base" ,gst-plugins-base)
8912 ("libseccomp" ,libseccomp)
8913 ("libselinux" ,libselinux)
8914 ("tracker" ,tracker)
8915 ("tracker-miners" ,tracker-miners)
8916 ;; XXX: gtk+ is required by libnautilus-extension.pc
8917 ;;
8918 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8919 ;; package. See:
8920 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8921 ("gtk+" ,gtk+)
8922 ("libexif" ,libexif)
8923 ("libxml2" ,libxml2)))
8924 (synopsis "File manager for GNOME")
8925 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8926 (description
8927 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8928 design and behaviour, giving the user a simple way to navigate and manage its
8929 files.")
8930 (license license:gpl2+)))
8931
8932 (define-public baobab
8933 (package
8934 (name "baobab")
8935 (version "3.38.0")
8936 (source (origin
8937 (method url-fetch)
8938 (uri (string-append
8939 "mirror://gnome/sources/" name "/"
8940 (version-major+minor version) "/"
8941 name "-" version ".tar.xz"))
8942 (sha256
8943 (base32
8944 "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104"))))
8945 (build-system meson-build-system)
8946 (arguments
8947 '(#:glib-or-gtk? #t))
8948 (native-inputs
8949 `(("intltool" ,intltool)
8950 ("pkg-config" ,pkg-config)
8951 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8952 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8953 ("itstool" ,itstool)
8954 ("xmllint" ,libxml2)
8955 ("glib" ,glib "bin")
8956 ("vala" ,vala)))
8957 (inputs
8958 `(("gtk+" ,gtk+)))
8959 (synopsis "Disk usage analyzer for GNOME")
8960 (description
8961 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8962 usage in the GNOME desktop environment. It can easily scan device volumes or
8963 a specific user-requested directory branch (local or remote). Once the scan
8964 is complete it provides a graphical representation of each selected folder.")
8965 (home-page "https://wiki.gnome.org/Apps/Baobab")
8966 (license license:gpl2+)))
8967
8968 (define-public gnome-backgrounds
8969 (package
8970 (name "gnome-backgrounds")
8971 (version "3.34.0")
8972 (source
8973 (origin
8974 (method url-fetch)
8975 (uri (string-append "mirror://gnome/sources/" name "/"
8976 (version-major+minor version) "/"
8977 name "-" version ".tar.xz"))
8978 (sha256
8979 (base32
8980 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8981 (build-system meson-build-system)
8982 (native-inputs
8983 `(("intltool" ,intltool)))
8984 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8985 (synopsis "Background images for the GNOME desktop")
8986 (description
8987 "GNOME backgrounds package contains a collection of graphics files which
8988 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8989 the package creates the proper framework and directory structure so that you
8990 can add your own files to the collection.")
8991 (license (list license:gpl2+
8992 license:cc-by2.0
8993 license:cc-by-sa2.0
8994 license:cc-by-sa3.0))))
8995
8996 (define-public gnome-screenshot
8997 (package
8998 (name "gnome-screenshot")
8999 (version "3.34.0")
9000 (source
9001 (origin
9002 (method url-fetch)
9003 (uri (string-append "mirror://gnome/sources/" name "/"
9004 (version-major+minor version) "/"
9005 name "-" version ".tar.xz"))
9006 (sha256
9007 (base32
9008 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
9009 (build-system meson-build-system)
9010 (arguments
9011 '(#:phases
9012 (modify-phases %standard-phases
9013 (add-after 'unpack 'skip-gtk-update-icon-cache
9014 ;; Don't create 'icon-theme.cache'.
9015 (lambda _
9016 (substitute* "build-aux/postinstall.py"
9017 (("gtk-update-icon-cache") "true"))
9018 #t)))))
9019 (native-inputs
9020 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
9021 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9022 ("intltool" ,intltool)
9023 ("appstream-glib" ,appstream-glib)
9024 ("pkg-config" ,pkg-config)))
9025 (inputs
9026 `(("gtk+" ,gtk+)
9027 ("libcanberra" ,libcanberra)
9028 ("libx11" ,libx11)
9029 ("libxext" ,libxext)))
9030 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
9031 (synopsis "Take pictures of your screen")
9032 (description
9033 "GNOME Screenshot is a utility used for taking screenshots of the entire
9034 screen, a window or a user defined area of the screen, with optional
9035 beautifying border effects.")
9036 (license license:gpl2+)))
9037
9038 (define-public dconf-editor
9039 (package
9040 (name "dconf-editor")
9041 (version "3.34.2")
9042 (source
9043 (origin
9044 (method url-fetch)
9045 (uri (string-append "mirror://gnome/sources/" name "/"
9046 (version-major+minor version) "/"
9047 name "-" version ".tar.xz"))
9048 (sha256
9049 (base32
9050 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
9051 (build-system meson-build-system)
9052 (native-inputs
9053 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9054 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9055 ("intltool" ,intltool)
9056 ("pkg-config" ,pkg-config)
9057 ("vala" ,vala)))
9058 (inputs
9059 `(("dconf" ,dconf)
9060 ("gtk+" ,gtk+)
9061 ("libxml2" ,libxml2)))
9062 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9063 (synopsis "Graphical editor for GNOME's dconf configuration system")
9064 (description
9065 "Dconf-editor is a graphical tool for browsing and editing the dconf
9066 configuration system for GNOME. It allows users to configure desktop
9067 software that do not provide their own configuration interface.")
9068 (license license:lgpl2.1+)))
9069
9070 (define-public gnome-default-applications
9071 (package
9072 (name "gnome-default-applications")
9073 (version "0")
9074 (build-system trivial-build-system)
9075 (source #f)
9076 (propagated-inputs
9077 `(("nautilus" ,nautilus)
9078 ("evince" ,evince)))
9079 (arguments
9080 `(#:modules ((guix build utils))
9081 #:builder
9082 (begin
9083 (use-modules (guix build utils))
9084 (let* ((out (assoc-ref %outputs "out"))
9085 (apps (string-append out "/share/applications")))
9086 (mkdir-p apps)
9087 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9088 (lambda (port)
9089 (format port "[Default Applications]\n")
9090 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9091 (format port "application/pdf=evince.desktop\n")
9092 (format port "application/postscript=evince.desktop\n")))
9093 #t))))
9094 (synopsis "Default MIME type associations for the GNOME desktop")
9095 (description
9096 "Given many installed packages which might handle a given MIME type, a
9097 user running the GNOME desktop probably has some preferences: for example,
9098 that folders be opened by default by the Nautilus file manager, not the Baobab
9099 disk usage analyzer. This package establishes that set of default MIME type
9100 associations for GNOME.")
9101 (license license:gpl3+)
9102 (home-page #f)))
9103
9104 (define-public libgovirt
9105 (package
9106 (name "libgovirt")
9107 (version "0.3.8")
9108 (source (origin
9109 (method url-fetch)
9110 (uri (string-append "mirror://gnome/sources/" name "/"
9111 (version-major+minor version) "/"
9112 name "-" version ".tar.xz"))
9113 (sha256
9114 (base32
9115 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9116 (build-system glib-or-gtk-build-system)
9117 (native-inputs
9118 `(("gettext" ,gettext-minimal)
9119 ("glib:bin" ,glib "bin")
9120 ("gobject-introspection" ,gobject-introspection)
9121 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9122 ("gtk+:bin" ,gtk+ "bin")
9123 ("pkg-config" ,pkg-config)))
9124 (inputs
9125 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
9126 ("librest" ,rest)))
9127 (synopsis "GoVirt Library")
9128 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9129 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9130 (license license:gpl2+)))
9131
9132 (define-public gnome-weather
9133 (package
9134 (name "gnome-weather")
9135 (version "3.34.0")
9136 (source (origin
9137 (method url-fetch)
9138 (uri (string-append "mirror://gnome/sources/" name "/"
9139 (version-major+minor version) "/"
9140 name "-" version ".tar.xz"))
9141 (sha256
9142 (base32
9143 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
9144 (build-system meson-build-system)
9145 (native-inputs
9146 `(("gettext" ,gettext-minimal)
9147 ("glib:bin" ,glib "bin")
9148 ("gobject-introspection" ,gobject-introspection)
9149 ("gtk+:bin" ,gtk+ "bin")
9150 ("pkg-config" ,pkg-config)))
9151 (inputs
9152 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
9153 ("appstream-glib" ,appstream-glib)
9154 ("geoclue" ,geoclue)
9155 ("gdk-pixbuf" ,gdk-pixbuf)
9156 ("gjs" ,gjs)
9157 ("gnome-desktop" ,gnome-desktop)
9158 ("libgweather" ,libgweather)))
9159 (arguments
9160 `(#:glib-or-gtk? #t
9161 #:phases
9162 (modify-phases %standard-phases
9163 (add-after 'install 'fix-desktop-file
9164 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
9165 ;; See https://issues.guix.gnu.org/issue/39324.
9166 (lambda* (#:key outputs #:allow-other-keys)
9167 (let* ((out (assoc-ref outputs "out"))
9168 (applications (string-append out "/share/applications")))
9169 (substitute* (string-append applications "/org.gnome.Weather.desktop")
9170 (("Exec=.*") "Exec=gnome-weather\n"))
9171 #t)))
9172 (add-after 'install 'wrap
9173 (lambda* (#:key inputs outputs #:allow-other-keys)
9174 (let ((out (assoc-ref outputs "out"))
9175 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9176 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
9177 (wrap-program (string-append out "/bin/gnome-weather")
9178 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
9179 #t))))))
9180 (synopsis "Weather monitoring for GNOME desktop")
9181 (description "GNOME Weather is a small application that allows you to
9182 monitor the current weather conditions for your city, or anywhere in the
9183 world.")
9184 (home-page "https://wiki.gnome.org/Apps/Weather")
9185 (license license:gpl2+)))
9186
9187 (define-public gnome
9188 (package
9189 (name "gnome")
9190 (version (package-version gnome-shell))
9191 (source #f)
9192 (build-system trivial-build-system)
9193 (arguments '(#:builder (begin (mkdir %output) #t)))
9194 (propagated-inputs
9195 ;; TODO: Add or remove packages according to:
9196 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
9197 `(
9198 ;; GNOME-Core-OS-Services
9199 ("accountsservice" ,accountsservice)
9200 ("network-manager" ,network-manager)
9201 ("packagekit" ,packagekit)
9202 ("upower" ,upower)
9203 ;; GNOME-Core-Shell
9204 ("adwaita-icon-theme" ,adwaita-icon-theme)
9205 ("gdm" ,gdm)
9206 ("glib-networking" ,glib-networking)
9207 ("gnome-backgrounds" ,gnome-backgrounds)
9208 ("gnome-bluetooth" ,gnome-bluetooth)
9209 ("gnome-color-manager" ,gnome-color-manager)
9210 ("gnome-control-center" ,gnome-control-center)
9211 ("gnome-desktop" ,gnome-desktop)
9212 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
9213 ("gnome-initial-setup" ,gnome-initial-setup)
9214 ("gnome-keyring" ,gnome-keyring)
9215 ("gnome-menus" ,gnome-menus)
9216 ("gnome-session" ,gnome-session)
9217 ("gnome-settings-daemon" ,gnome-settings-daemon)
9218 ("gnome-shell-extensions" ,gnome-shell-extensions)
9219 ("gnome-shell" ,gnome-shell)
9220 ("gnome-themes-extra" ,gnome-themes-extra)
9221 ("gnome-user-docs" ,gnome-user-docs)
9222 ("gnome-user-share" ,gnome-user-share)
9223 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9224 ("gvfs" ,gvfs)
9225 ("mutter" ,mutter)
9226 ("orca" ,orca)
9227 ("rygel" ,rygel)
9228 ("sushi" ,sushi)
9229 ;; GNOME-Core-Utilities
9230 ("baobab" ,baobab)
9231 ("cheese" ,cheese)
9232 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9233 ;; only works on x86_64, so exclude it on other architectures.
9234 ,@(if (string-prefix? "x86_64" (%current-system))
9235 `(("eog" ,eog))
9236 '())
9237 ("epiphany" ,epiphany)
9238 ("evince" ,evince)
9239 ("file-roller" ,file-roller)
9240 ("gedit" ,gedit)
9241 ("gnome-boxes" ,gnome-boxes)
9242 ("gnome-calculator" ,gnome-calculator)
9243 ("gnome-calendar" ,gnome-calendar)
9244 ("gnome-characters" ,gnome-characters)
9245 ("gnome-clocks" ,gnome-clocks)
9246 ("gnome-contacts" ,gnome-contacts)
9247 ("gnome-disk-utility" ,gnome-disk-utility)
9248 ("gnome-font-viewer" ,gnome-font-viewer)
9249 ("gnome-maps" ,gnome-maps)
9250 ; TODO: ("gnome-music" ,gnome-music)
9251 ; TODO: ("gnome-photos" ,gnome-photos)
9252 ("gnome-screenshot" ,gnome-screenshot)
9253 ("gnome-system-monitor" ,gnome-system-monitor)
9254 ("gnome-terminal" ,gnome-terminal)
9255 ("gnome-weather" ,gnome-weather)
9256 ("nautilus" ,nautilus)
9257 ("simple-scan" ,simple-scan)
9258 ("totem" ,totem)
9259 ("yelp" ,yelp)
9260 ;; Others
9261 ("hicolor-icon-theme" ,hicolor-icon-theme)
9262 ("gnome-online-accounts" ,gnome-online-accounts)
9263
9264 ;; Packages not part of GNOME proper but that are needed for a good
9265 ;; experience. See <https://bugs.gnu.org/39646>.
9266 ;; XXX: Find out exactly which ones are needed and why.
9267 ("font-cantarell" ,font-cantarell)
9268 ("font-dejavu" ,font-dejavu)
9269 ("at-spi2-core" ,at-spi2-core)
9270 ("dbus" ,dbus)
9271 ("dconf" ,dconf)
9272 ("desktop-file-utils" ,desktop-file-utils)
9273 ("gnome-default-applications" ,gnome-default-applications)
9274 ("gnome-themes-standard" ,gnome-themes-standard)
9275 ("gst-plugins-base" ,gst-plugins-base)
9276 ("gst-plugins-good" ,gst-plugins-good)
9277 ("gucharmap" ,gucharmap)
9278 ("pinentry-gnome3" ,pinentry-gnome3)
9279 ("pulseaudio" ,pulseaudio)
9280 ("shared-mime-info" ,shared-mime-info)
9281 ("system-config-printer" ,system-config-printer)
9282 ("xdg-user-dirs" ,xdg-user-dirs)
9283 ("yelp" ,yelp)
9284 ("zenity" ,zenity)))
9285 (synopsis "The GNU desktop environment")
9286 (home-page "https://www.gnome.org/")
9287 (description
9288 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9289 applications for browsing the web, editing text and images, creating
9290 documents and diagrams, playing media, scanning, and much more.")
9291 (license license:gpl2+)))
9292
9293 (define-public byzanz
9294 ;; The last stable release of Byzanz was in 2011, but there have been many
9295 ;; useful commits made to the Byzanz repository since then that it would be
9296 ;; silly to use such an old release.
9297 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9298 (package
9299 (name "byzanz")
9300 (version (string-append "0.2-1." (string-take commit 7)))
9301 (source (origin
9302 (method git-fetch)
9303 (uri (git-reference
9304 (url "https://git.gnome.org/browse/byzanz")
9305 (commit commit)))
9306 (file-name (string-append name "-" version "-checkout"))
9307 (sha256
9308 (base32
9309 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9310 (build-system glib-or-gtk-build-system)
9311 (arguments
9312 '(#:phases
9313 (modify-phases %standard-phases
9314 (add-before 'bootstrap 'build-without-Werror
9315 (lambda _
9316 ;; The build system cleverly detects that we're not building from
9317 ;; a release tarball and turns on -Werror for GCC.
9318 ;; Unsurprisingly, there is a warning during compilation that
9319 ;; causes the build to fail unnecessarily, so we remove the flag.
9320 (substitute* '("configure.ac")
9321 (("-Werror") ""))
9322 #t)))))
9323 (native-inputs
9324 `(("autoconf" ,autoconf)
9325 ("automake" ,automake)
9326 ("gnome-common" ,gnome-common)
9327 ("intltool" ,intltool)
9328 ("libtool" ,libtool)
9329 ("pkg-config" ,pkg-config)
9330 ("which" ,which)))
9331 (inputs
9332 `(("glib" ,glib)
9333 ("gstreamer" ,gstreamer)
9334 ("gst-plugins-base" ,gst-plugins-base)
9335 ("gtk+" ,gtk+)))
9336 (synopsis "Desktop recording program")
9337 (description "Byzanz is a simple desktop recording program with a
9338 command-line interface. It can record part or all of an X display for a
9339 specified duration and save it as a GIF encoded animated image file.")
9340 (home-page "https://git.gnome.org/browse/byzanz")
9341 (license license:gpl2+))))
9342
9343 (define-public authenticator
9344 (package
9345 (name "authenticator")
9346 (version "3.32.2")
9347 (source
9348 (origin
9349 (method git-fetch)
9350 (uri (git-reference
9351 (url "https://gitlab.gnome.org/World/Authenticator")
9352 (commit version)))
9353 (file-name (git-file-name name version))
9354 (sha256
9355 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9356 (build-system meson-build-system)
9357 (arguments
9358 `(#:glib-or-gtk? #t
9359 #:phases
9360 (modify-phases %standard-phases
9361 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9362 (lambda* (#:key inputs outputs #:allow-other-keys)
9363 (let ((prog (string-append (assoc-ref outputs "out")
9364 "/bin/authenticator"))
9365 (pylib (string-append (assoc-ref outputs "out")
9366 "/lib/python"
9367 ,(version-major+minor
9368 (package-version python))
9369 "/site-packages")))
9370 (wrap-program prog
9371 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
9372 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9373 #t))))))
9374 (native-inputs
9375 `(("desktop-file-utils" ,desktop-file-utils)
9376 ("gettext" ,gettext-minimal)
9377 ("glib:bin" ,glib "bin")
9378 ("gobject-introspection" ,gobject-introspection)
9379 ("gtk+:bin" ,gtk+ "bin")
9380 ("pkg-config" ,pkg-config)))
9381 (inputs
9382 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9383 ("gtk+" ,gtk+)
9384 ("libhandy" ,libhandy-0.0)
9385 ("libsecret" ,libsecret)
9386 ("python-beautifulsoup4" ,python-beautifulsoup4)
9387 ("python-pillow" ,python-pillow)
9388 ("python-pyfavicon" ,python-pyfavicon)
9389 ("python-pygobject" ,python-pygobject)
9390 ("python-pyotp" ,python-pyotp)
9391 ("python-pyzbar" ,python-pyzbar)
9392 ("yoyo-migrations" ,yoyo-migrations)
9393 ("zbar" ,zbar)))
9394 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9395 (synopsis "Two-factor authentication application built for GNOME")
9396 (description
9397 "Authenticator is a two-factor authentication (2FA) application built for
9398 the GNOME desktop environment.
9399
9400 Features:
9401
9402 @itemize
9403 @item QR code scanner
9404 @item Beautiful UI
9405 @item Huge database of more than 560 supported services
9406 @item Keep your PIN tokens secure by locking the application with a password
9407 @item Automatically fetch an image for services using their favicon
9408 @item The possibility to add new services
9409 @end itemize")
9410 (license license:gpl3+)))
9411
9412 (define-public gsound
9413 (package
9414 (name "gsound")
9415 (version "1.0.2")
9416 (source (origin
9417 (method url-fetch)
9418 (uri (string-append "mirror://gnome/sources/" name "/"
9419 (version-major+minor version) "/"
9420 name "-" version ".tar.xz"))
9421 (sha256
9422 (base32
9423 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9424 (build-system glib-or-gtk-build-system)
9425 (native-inputs
9426 `(("pkg-config" ,pkg-config)
9427 ("gobject-introspection" ,gobject-introspection)
9428 ("vala" ,vala)))
9429 (inputs
9430 `(("glib" ,glib)
9431 ("libcanberra" ,libcanberra)))
9432 (home-page "https://wiki.gnome.org/Projects/GSound")
9433 (synopsis "GObject wrapper for libcanberra")
9434 (description
9435 "GSound is a small library for playing system sounds. It's designed to be
9436 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9437 library.")
9438 (license license:lgpl2.1+)))
9439
9440 (define-public libzapojit
9441 (package
9442 (name "libzapojit")
9443 (version "0.0.3")
9444 (source (origin
9445 (method url-fetch)
9446 (uri (string-append "mirror://gnome/sources/" name "/"
9447 (version-major+minor version) "/"
9448 name "-" version ".tar.xz"))
9449 (sha256
9450 (base32
9451 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9452 (build-system gnu-build-system)
9453 (native-inputs
9454 `(("gobject-introspection" ,gobject-introspection)
9455 ("intltool" ,intltool)
9456 ("pkg-config" ,pkg-config)))
9457 (inputs
9458 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9459 ("json-glib" ,json-glib)
9460 ("rest" ,rest)))
9461 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9462 (synopsis "Library for accessing SkyDrive and Hotmail")
9463 (description
9464 "Libzapojit is a GLib-based library for accessing online service APIs of
9465 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9466 (license license:lgpl2.1+)))
9467
9468 (define-public gnome-clocks
9469 (package
9470 (name "gnome-clocks")
9471 (version "3.34.0")
9472 (source (origin
9473 (method url-fetch)
9474 (uri (string-append "mirror://gnome/sources/" name "/"
9475 (version-major+minor version) "/"
9476 name "-" version ".tar.xz"))
9477 (sha256
9478 (base32
9479 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9480 (build-system meson-build-system)
9481 (arguments
9482 '(#:glib-or-gtk? #t
9483 #:phases
9484 (modify-phases %standard-phases
9485 (add-after 'unpack 'skip-gtk-update-icon-cache
9486 ;; Don't create 'icon-theme.cache'.
9487 (lambda _
9488 (substitute* "build-aux/post-install.py"
9489 (("gtk-update-icon-cache") "true"))
9490 #t)))))
9491 (native-inputs
9492 `(("vala" ,vala)
9493 ("pkg-config" ,pkg-config)
9494 ("glib" ,glib "bin") ; for glib-compile-resources
9495 ("desktop-file-utils" ,desktop-file-utils)
9496 ("gettext" ,gettext-minimal)
9497 ("itstool" ,itstool)))
9498 (inputs
9499 `(("glib" ,glib)
9500 ("gtk+" ,gtk+)
9501 ("gsound" ,gsound)
9502 ("geoclue" ,geoclue)
9503 ("geocode-glib" ,geocode-glib)
9504 ("libgweather" ,libgweather)
9505 ("gnome-desktop" ,gnome-desktop)))
9506 (home-page "https://wiki.gnome.org/Apps/Clocks")
9507 (synopsis "GNOME's clock application")
9508 (description
9509 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9510 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9511 (license license:gpl3+)))
9512
9513 (define-public gnome-calendar
9514 (package
9515 (name "gnome-calendar")
9516 (version "3.34.2")
9517 (source (origin
9518 (method url-fetch)
9519 (uri (string-append "mirror://gnome/sources/" name "/"
9520 (version-major+minor version) "/"
9521 name "-" version ".tar.xz"))
9522 (sha256
9523 (base32
9524 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9525 (build-system meson-build-system)
9526 (arguments
9527 '(#:glib-or-gtk? #t
9528 ;; gnome-calendar has to be installed before the tests can be run
9529 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9530 #:tests? #f
9531 #:phases
9532 (modify-phases %standard-phases
9533 (add-after 'unpack 'skip-gtk-update-icon-cache
9534 ;; Don't create 'icon-theme.cache'.
9535 (lambda _
9536 (substitute* "build-aux/meson/meson_post_install.py"
9537 (("gtk-update-icon-cache") "true"))
9538 #t)))))
9539 (native-inputs
9540 `(("gettext" ,gettext-minimal)
9541 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9542 ("pkg-config" ,pkg-config)))
9543 (inputs
9544 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9545 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9546 ("libdazzle" ,libdazzle)
9547 ("libedataserverui" ,evolution-data-server)
9548 ("libgweather" ,libgweather)
9549 ("geoclue" ,geoclue)))
9550 (propagated-inputs
9551 `(("evolution-data-server" ,evolution-data-server)))
9552 (home-page "https://wiki.gnome.org/Apps/Calendar")
9553 (synopsis "GNOME's calendar application")
9554 (description
9555 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9556 desktop. It supports multiple calendars, month, week and year view.")
9557 (license license:gpl3+)))
9558
9559 (define-public gnome-todo
9560 (package
9561 (name "gnome-todo")
9562 (version "3.28.1")
9563 (source (origin
9564 (method url-fetch)
9565 (uri (string-append "mirror://gnome/sources/" name "/"
9566 (version-major+minor version) "/"
9567 name "-" version ".tar.xz"))
9568 (sha256
9569 (base32
9570 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9571 (patches
9572 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9573 (build-system meson-build-system)
9574 (arguments
9575 '(#:glib-or-gtk? #t
9576 #:phases (modify-phases %standard-phases
9577 (add-after
9578 'install 'wrap-gnome-todo
9579 (lambda* (#:key inputs outputs #:allow-other-keys)
9580 (let ((out (assoc-ref outputs "out"))
9581 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9582 (python-path (getenv "PYTHONPATH")))
9583 (wrap-program (string-append out "/bin/gnome-todo")
9584 ;; XXX: gi plugins are broken.
9585 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9586 ;; For plugins.
9587 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9588 `("PYTHONPATH" ":" prefix (,python-path))))
9589 #t)))))
9590 (native-inputs
9591 `(("gettext" ,gettext-minimal)
9592 ("gobject-introspection" ,gobject-introspection)
9593 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9594 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9595 ("pkg-config" ,pkg-config)))
9596 (inputs
9597 `(("rest" ,rest) ; For Todoist plugin
9598 ("json-glib" ,json-glib) ; For Todoist plugin
9599 ("libedataserverui" ,evolution-data-server)
9600 ("libical" ,libical)
9601 ("libpeas" ,libpeas)
9602 ("python-pygobject" ,python-pygobject)
9603 ("evolution-data-server" ,evolution-data-server)
9604 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9605 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9606 (home-page "https://wiki.gnome.org/Apps/Todo")
9607 (synopsis "GNOME's ToDo Application")
9608 (description
9609 "GNOME To Do is a simplistic personal task manager designed to perfectly
9610 fit the GNOME desktop.")
9611 (license license:gpl3+)))
9612
9613 (define-public gnome-dictionary
9614 (package
9615 (name "gnome-dictionary")
9616 (version "3.26.1")
9617 (source (origin
9618 (method url-fetch)
9619 (uri (string-append "mirror://gnome/sources/" name "/"
9620 (version-major+minor version) "/"
9621 name "-" version ".tar.xz"))
9622 (sha256
9623 (base32
9624 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9625 (build-system meson-build-system)
9626 (arguments '(#:glib-or-gtk? #t
9627 #:phases (modify-phases %standard-phases
9628 (add-after 'unpack 'patch-install-script
9629 (lambda _
9630 ;; This script attempts to compile glib schemas
9631 ;; and create an empty MIME database. We do
9632 ;; that elsewhere, so prevent it from running.
9633 (substitute* "build-aux/post-install.sh"
9634 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9635 #t)))))
9636 (native-inputs
9637 `(("glib:bin" ,glib "bin")
9638 ("gobject-introspection" ,gobject-introspection)
9639 ("intltool" ,intltool)
9640 ("itstool" ,itstool)
9641 ("pkg-config" ,pkg-config)
9642 ("xmllint" ,libxml2)))
9643 (inputs
9644 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9645 ("gtk+" ,gtk+)))
9646 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9647 (synopsis "Look up words in dictionary sources")
9648 (description
9649 "GNOME Dictionary can look for the definition or translation of a word in
9650 existing databases over the internet.")
9651 (license license:gpl3+)))
9652
9653 (define-public gnome-tweaks
9654 (package
9655 (name "gnome-tweaks")
9656 (version "3.34.1")
9657 (source (origin
9658 (method url-fetch)
9659 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9660 (version-major+minor version) "/"
9661 "gnome-tweaks-" version ".tar.xz"))
9662 (patches
9663 (list (search-patch "gnome-tweaks-search-paths.patch")))
9664 (sha256
9665 (base32
9666 "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq"))))
9667 (build-system meson-build-system)
9668 (arguments
9669 `(#:glib-or-gtk? #t
9670 #:configure-flags '("-Dlocalstatedir=/tmp"
9671 "-Dsysconfdir=/tmp")
9672 #:imported-modules ((guix build python-build-system)
9673 ,@%meson-build-system-modules)
9674 #:phases
9675 (modify-phases %standard-phases
9676 (add-after 'unpack 'skip-gtk-update-icon-cache
9677 ;; Don't create 'icon-theme.cache'.
9678 (lambda _
9679 (substitute* "meson-postinstall.py"
9680 (("gtk-update-icon-cache") "true"))
9681 #t))
9682 (add-after 'install 'wrap
9683 (@@ (guix build python-build-system) wrap))
9684 (add-after 'wrap 'wrap-gi-typelib
9685 (lambda* (#:key inputs outputs #:allow-other-keys)
9686 (let ((out (assoc-ref outputs "out"))
9687 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9688 (wrap-program (string-append out "/bin/gnome-tweaks")
9689 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9690 #t)))))
9691 (native-inputs
9692 `(("intltool" ,intltool)
9693 ("pkg-config" ,pkg-config)))
9694 (inputs
9695 `(("gnome-desktop" ,gnome-desktop)
9696 ("gtk+" ,gtk+)
9697 ("gobject-introspection" ,gobject-introspection)
9698 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9699 ("libhandy" ,libhandy-0.0)
9700 ("libnotify" ,libnotify)
9701 ("libsoup" ,libsoup)
9702 ("nautilus" ,nautilus)
9703 ("python" ,python)
9704 ("python-pygobject" ,python-pygobject)))
9705 (synopsis "Customize advanced GNOME 3 options")
9706 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9707 (description
9708 "GNOME Tweaks allows adjusting advanced configuration settings in
9709 GNOME 3. This includes things like the fonts used in user interface elements,
9710 alternative user interface themes, changes in window management behavior,
9711 GNOME Shell appearance and extension, etc.")
9712 (license license:gpl3+)))
9713
9714 (define-public gnome-shell-extensions
9715 (package
9716 (name "gnome-shell-extensions")
9717 (version "3.34.2")
9718 (source (origin
9719 (method url-fetch)
9720 (uri (string-append "mirror://gnome/sources/" name "/"
9721 (version-major+minor version) "/"
9722 name "-" version ".tar.xz"))
9723 (sha256
9724 (base32
9725 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9726 (build-system meson-build-system)
9727 (arguments
9728 '(#:configure-flags '("-Dextension_set=all")))
9729 (native-inputs
9730 `(("glib:bin" ,glib "bin")
9731 ("intltool" ,intltool)
9732 ("pkg-config" ,pkg-config)))
9733 (propagated-inputs
9734 `(("glib" ,glib)))
9735 (synopsis "Extensions for GNOME Shell")
9736 (description "GNOME Shell extensions modify and extend GNOME Shell
9737 functionality and behavior.")
9738 (home-page "https://extensions.gnome.org/")
9739 (license license:gpl3+)))
9740
9741 (define-public folks
9742 (package
9743 (name "folks")
9744 (version "0.13.1")
9745 (source (origin
9746 (method url-fetch)
9747 (uri (string-append
9748 "mirror://gnome/sources/folks/"
9749 (version-major+minor version) "/"
9750 "folks-" version ".tar.xz"))
9751 (sha256
9752 (base32
9753 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9754 (build-system meson-build-system)
9755 (arguments
9756 '(#:phases
9757 (modify-phases %standard-phases
9758 (add-after 'unpack 'skip-gtk-update-icon-cache
9759 ;; Don't create 'icon-theme.cache'.
9760 (lambda _
9761 (substitute* "meson_post_install.py"
9762 (("gtk-update-icon-cache") "true"))
9763 #t)))))
9764 (inputs
9765 `(("bdb" ,bdb)
9766 ("dbus-glib" ,dbus-glib)
9767 ("evolution-data-server" ,evolution-data-server)
9768 ("glib" ,glib)
9769 ("libgee" ,libgee)
9770 ("readline" ,readline)
9771 ("telepathy-glib" ,telepathy-glib)))
9772 (native-inputs
9773 `(("glib:bin" ,glib "bin")
9774 ("gobject-introspection" ,gobject-introspection)
9775 ("intltool" ,intltool)
9776 ("pkg-config" ,pkg-config)
9777 ("vala" ,vala)))
9778 (synopsis "Library to aggregate data about people")
9779 (description "Libfolks is a library that aggregates information about people
9780 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9781 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9782 etc.) to create metacontacts. It's written in Vala, which generates C code when
9783 compiled.")
9784 (home-page "https://wiki.gnome.org/Projects/Folks")
9785 (license license:lgpl2.1+)))
9786
9787 (define-public gfbgraph
9788 (package
9789 (name "gfbgraph")
9790 (version "0.2.4")
9791 (source (origin
9792 (method url-fetch)
9793 (uri (string-append
9794 "mirror://gnome/sources/gfbgraph/"
9795 (version-major+minor version) "/"
9796 "gfbgraph-" version ".tar.xz"))
9797 (sha256
9798 (base32
9799 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9800 (build-system glib-or-gtk-build-system)
9801 (arguments
9802 `(#:tests? #f ; tests appear to require the network
9803 #:configure-flags '("--disable-static"
9804 "--enable-gtk-doc"
9805 "--enable-introspection")))
9806 (native-inputs
9807 `(("gobject-introspection" ,gobject-introspection)
9808 ("gtk-doc" ,gtk-doc/stable)
9809 ("pkg-config" ,pkg-config)
9810
9811 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9812 ("autoconf" ,autoconf)
9813 ("automake" ,automake)
9814 ("libtool" ,libtool)
9815 ("which" ,which)))
9816 (inputs
9817 `(("json-glib" ,json-glib)
9818 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9819 ("rest" ,rest)))
9820 (synopsis "GLib/GObject wrapper for the Facebook API")
9821 (description "This library allows you to use the Facebook API from
9822 GLib/GObject code.")
9823 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9824 (license license:lgpl2.1+)))
9825
9826 (define-public libgnomekbd
9827 (package
9828 (name "libgnomekbd")
9829 (version "3.26.1")
9830 (source (origin
9831 (method url-fetch)
9832 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9833 (version-major+minor version) "/"
9834 "libgnomekbd-" version ".tar.xz"))
9835 (sha256
9836 (base32
9837 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9838 (build-system gnu-build-system)
9839 (native-inputs
9840 `(("pkg-config" ,pkg-config)
9841 ("glib" ,glib "bin")
9842 ("intltool" ,intltool)))
9843 (propagated-inputs
9844 ;; Referred to in .h files and .pc.
9845 `(("glib" ,glib)
9846 ("gtk+" ,gtk+)
9847 ("libxklavier" ,libxklavier)))
9848 (home-page "https://www.gnome.org")
9849 (synopsis "GNOME keyboard configuration library")
9850 (description
9851 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9852 environment, which can notably display keyboard layouts.")
9853 (license license:lgpl2.0+)))
9854
9855 ;;; This package is no longer maintained:
9856 ;;; https://wiki.gnome.org/Attic/LibUnique
9857 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9858 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9859 (define-public libunique
9860 (package
9861 (name "libunique")
9862 (version "3.0.2")
9863 (source (origin
9864 (method url-fetch)
9865 (uri (string-append "mirror://gnome/sources/" name "/"
9866 (version-major+minor version) "/"
9867 name "-" version ".tar.xz"))
9868 (sha256
9869 (base32
9870 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9871 (build-system glib-or-gtk-build-system)
9872 (arguments
9873 `(#:configure-flags '("--disable-static"
9874 "--disable-dbus" ; use gdbus
9875 "--enable-introspection")))
9876 (native-inputs
9877 `(("pkg-config" ,pkg-config)
9878 ("gobject-introspection" ,gobject-introspection)
9879 ("glib:bin" ,glib "bin")
9880 ("gtk-doc" ,gtk-doc/stable)))
9881 (propagated-inputs
9882 ;; Referred to in .h files and .pc.
9883 `(("gtk+" ,gtk+)))
9884 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9885 (synopsis "Library for writing single instance applications")
9886 (description
9887 "Libunique is a library for writing single instance applications. If you
9888 launch a single instance application twice, the second instance will either just
9889 quit or will send a message to the running instance. Libunique makes it easy to
9890 write this kind of application, by providing a base class, taking care of all
9891 the IPC machinery needed to send messages to a running instance, and also
9892 handling the startup notification side.")
9893 (license license:lgpl2.1+)))
9894
9895 (define-public gnome-calculator
9896 (package
9897 (name "gnome-calculator")
9898 (version "3.34.1")
9899 (source
9900 (origin
9901 (method url-fetch)
9902 (uri (string-append "mirror://gnome/sources/" name "/"
9903 (version-major+minor version) "/"
9904 name "-" version ".tar.xz"))
9905 (sha256
9906 (base32
9907 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9908 (build-system meson-build-system)
9909 (arguments '(#:glib-or-gtk? #t))
9910 (native-inputs
9911 `(("gettext" ,gettext-minimal)
9912 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9913 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9914 ("itstool" ,itstool)
9915 ("vala" ,vala)
9916 ("pkg-config" ,pkg-config)))
9917 (inputs
9918 `(("glib" ,glib)
9919 ("gtksourceview" ,gtksourceview)
9920 ("libgee" ,libgee)
9921 ("libsoup" ,libsoup)
9922 ("libxml2" ,libxml2)
9923 ("mpc" ,mpc)
9924 ("mpfr" ,mpfr)))
9925 (home-page "https://wiki.gnome.org/Apps/Calculator")
9926 (synopsis "Desktop calculator")
9927 (description
9928 "Calculator is an application that solves mathematical equations and
9929 is suitable as a default application in a Desktop environment.")
9930 (license license:gpl3)))
9931
9932 (define-public xpad
9933 (package
9934 (name "xpad")
9935 (version "5.1.0")
9936 (source
9937 (origin
9938 (method url-fetch)
9939 (uri (string-append "https://launchpad.net/xpad/trunk/"
9940 version "/+download/"
9941 name "-" version ".tar.bz2"))
9942 (sha256
9943 (base32
9944 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9945 (build-system gnu-build-system)
9946 (native-inputs
9947 `(("autoconf" ,autoconf)
9948 ("automake" ,automake)
9949 ("gtk+:bin" ,gtk+ "bin")
9950 ("intltool" ,intltool)
9951 ("pkg-config" ,pkg-config)))
9952 (inputs
9953 `(("gtksourceview" ,gtksourceview-3)
9954 ("libsm" ,libsm)))
9955 (home-page "https://wiki.gnome.org/Apps/Xpad")
9956 (synopsis "Virtual sticky note")
9957 (description
9958 "Xpad is a sticky note that strives to be simple, fault tolerant,
9959 and customizable. Xpad consists of independent pad windows, each is
9960 basically a text box in which notes can be written.")
9961 (license license:gpl3+)))
9962
9963 (define-public gucharmap
9964 (let ((unicode-files
9965 '(("Blocks.txt"
9966 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9967 ("DerivedAge.txt"
9968 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9969 ("NamesList.txt"
9970 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9971 ("Scripts.txt"
9972 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9973 ("UnicodeData.txt"
9974 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9975 ("Unihan.zip"
9976 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9977 (package
9978 (name "gucharmap")
9979 (version "12.0.1")
9980 (source
9981 (origin
9982 (method url-fetch)
9983 (uri (string-append "mirror://gnome/sources/" name "/"
9984 (version-major+minor version) "/"
9985 name "-" version ".tar.xz"))
9986 (sha256
9987 (base32
9988 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9989 (build-system glib-or-gtk-build-system)
9990 (arguments
9991 `(#:modules ((ice-9 match)
9992 (guix build glib-or-gtk-build-system)
9993 (guix build utils))
9994 #:configure-flags
9995 (list "--with-unicode-data=../unicode-data")
9996 #:phases
9997 (modify-phases %standard-phases
9998 (add-after 'unpack 'prepare-unicode-data
9999 (lambda* (#:key inputs #:allow-other-keys)
10000 (mkdir-p "../unicode-data")
10001 (with-directory-excursion "../unicode-data"
10002 (for-each (match-lambda
10003 ((file _)
10004 (install-file (assoc-ref inputs file) ".")))
10005 ',unicode-files))
10006 #t)))))
10007 (native-inputs
10008 `(("desktop-file-utils" ,desktop-file-utils)
10009 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
10010 ("gobject-introspection" ,gobject-introspection)
10011 ("intltool" ,intltool)
10012 ("itstool" ,itstool)
10013 ("pkg-config" ,pkg-config)
10014 ,@(map (match-lambda
10015 ((file hash)
10016 `(,file
10017 ,(origin
10018 (method url-fetch)
10019 (uri (string-append
10020 "http://www.unicode.org/Public/12.0.0/ucd/"
10021 file))
10022 (sha256 (base32 hash))))))
10023 unicode-files)
10024 ("unzip" ,unzip)))
10025 (inputs
10026 `(("gtk+" ,gtk+)
10027 ("xmllint" ,libxml2)))
10028 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
10029 (synopsis "Unicode character picker and font browser")
10030 (description
10031 "This program allows you to browse through all the available Unicode
10032 characters and categories for the installed fonts, and to examine their
10033 detailed properties. It is an easy way to find the character you might
10034 only know by its Unicode name or code point.")
10035 (license license:gpl3+))))
10036
10037 (define-public bluefish
10038 (package
10039 (name "bluefish")
10040 (version "2.2.12")
10041 (source
10042 (origin
10043 (method url-fetch)
10044 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
10045 "bluefish-" version ".tar.gz"))
10046 (sha256
10047 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
10048 (build-system gnu-build-system)
10049 (native-inputs
10050 `(("desktop-file-utils" ,desktop-file-utils)
10051 ("intltool" ,intltool)
10052 ("pkg-config" ,pkg-config)))
10053 (inputs
10054 `(("enchant" ,enchant)
10055 ("gtk+" ,gtk+)
10056 ("python" ,python-wrapper)
10057 ("xmllint" ,libxml2)
10058 ("gucharmap" ,gucharmap)))
10059 (home-page "http://bluefish.openoffice.nl")
10060 (synopsis "Web development studio")
10061 (description
10062 "Bluefish is an editor aimed at programmers and web developers,
10063 with many options to write web sites, scripts and other code.
10064 Bluefish supports many programming and markup languages.")
10065 (license license:gpl3+)))
10066
10067 (define-public gnome-system-monitor
10068 (package
10069 (name "gnome-system-monitor")
10070 (version "3.32.1")
10071 (source
10072 (origin
10073 (method url-fetch)
10074 (uri (string-append "mirror://gnome/sources/" name "/"
10075 (version-major+minor version) "/"
10076 name "-" version ".tar.xz"))
10077 (sha256
10078 (base32
10079 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
10080 (build-system meson-build-system)
10081 (arguments
10082 '(#:glib-or-gtk? #t
10083 #:configure-flags '("-Dsystemd=false")))
10084 (native-inputs
10085 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
10086 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
10087 ("intltool" ,intltool)
10088 ("itstool" ,itstool)
10089 ("libgtop" ,libgtop)
10090 ("polkit" ,polkit)
10091 ("pkg-config" ,pkg-config)))
10092 (inputs
10093 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
10094 ("gtk+" ,gtk+)
10095 ("gtkmm" ,gtkmm)
10096 ("librsvg" ,librsvg)
10097 ("libxml2" ,libxml2)
10098 ("libwnck" ,libwnck)))
10099 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10100 (synopsis "Process viewer and system resource monitor for GNOME")
10101 (description
10102 "GNOME System Monitor is a GNOME process viewer and system monitor with
10103 an attractive, easy-to-use interface. It has features, such as a tree view
10104 for process dependencies, icons for processes, the ability to hide processes,
10105 graphical time histories of CPU/memory/swap usage and the ability to
10106 kill/reinice processes.")
10107 (license license:gpl2+)))
10108
10109 (define-public python-pyatspi
10110 (package
10111 (name "python-pyatspi")
10112 (version "2.34.0")
10113 (source (origin
10114 (method url-fetch)
10115 (uri (string-append
10116 "mirror://gnome/sources/pyatspi/"
10117 (version-major+minor version)
10118 "/pyatspi-" version ".tar.xz"))
10119 (sha256
10120 (base32
10121 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10122 (build-system gnu-build-system)
10123 (arguments
10124 `(#:phases
10125 (modify-phases %standard-phases
10126 (add-before 'build 'fix-atk-load
10127 (lambda _
10128 (substitute* "pyatspi/__init__.py"
10129 (("from gi.repository import Atspi")
10130 "gi.require_version('Gtk', '3.0')
10131 from gi.repository import Gtk
10132 from gi.repository import Atspi"))
10133 #t)))))
10134 (native-inputs
10135 `(("pkg-config" ,pkg-config)))
10136 (inputs
10137 `(("python" ,python)))
10138 (propagated-inputs
10139 `(("python-pygobject" ,python-pygobject)))
10140 (synopsis "Python client bindings for D-Bus AT-SPI")
10141 (home-page "https://wiki.linuxfoundation.org/accessibility\
10142 /atk/at-spi/at-spi_on_d-bus")
10143 (description
10144 "This package includes a python client library for the AT-SPI D-Bus
10145 accessibility infrastructure.")
10146 (license license:lgpl2.0)
10147 (properties '((upstream-name . "pyatspi")))))
10148
10149 (define-public python2-pyatspi
10150 (package/inherit python-pyatspi
10151 (name "python2-pyatspi")
10152 (inputs
10153 `(("python" ,python-2)))
10154 (propagated-inputs
10155 `(("python-pygobject" ,python2-pygobject)))))
10156
10157 (define-public orca
10158 (package
10159 (name "orca")
10160 (version "3.34.1")
10161 (source (origin
10162 (method url-fetch)
10163 (uri (string-append
10164 "mirror://gnome/sources/" name "/"
10165 (version-major+minor version) "/"
10166 name "-" version ".tar.xz"))
10167 (sha256
10168 (base32
10169 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
10170 (build-system glib-or-gtk-build-system)
10171 (arguments
10172 '(#:phases
10173 (modify-phases %standard-phases
10174 (add-before 'configure 'qualify-xkbcomp
10175 (lambda* (#:key inputs #:allow-other-keys)
10176 (let ((xkbcomp (string-append
10177 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10178 (substitute* "src/orca/orca.py"
10179 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
10180 #t))
10181 (add-after 'install 'wrap-orca
10182 (lambda* (#:key outputs #:allow-other-keys)
10183 (let* ((out (assoc-ref outputs "out"))
10184 (prog (string-append out "/bin/orca")))
10185 (wrap-program prog
10186 `("GI_TYPELIB_PATH" ":" prefix
10187 (,(getenv "GI_TYPELIB_PATH")))
10188 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10189 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10190 `("PYTHONPATH" ":" prefix
10191 (,(getenv "PYTHONPATH")))))
10192 #t)))))
10193 (native-inputs
10194 `(("intltool" ,intltool)
10195 ("itstool" ,itstool)
10196 ("pkg-config" ,pkg-config)
10197 ("xmllint" ,libxml2)))
10198 (inputs
10199 `(("at-spi2-atk" ,at-spi2-atk)
10200 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10201 ("gstreamer" ,gstreamer)
10202 ("gst-plugins-base" ,gst-plugins-base)
10203 ("gst-plugins-good" ,gst-plugins-good)
10204 ("gtk+" ,gtk+)
10205 ("python" ,python)
10206 ("python-pygobject" ,python-pygobject)
10207 ("python-pyatspi" ,python-pyatspi)
10208 ("python-speechd" ,speech-dispatcher)
10209 ("xkbcomp" ,xkbcomp)))
10210 (synopsis
10211 "Screen reader for individuals who are blind or visually impaired")
10212 (home-page "https://wiki.gnome.org/Projects/Orca")
10213 (description
10214 "Orca is a screen reader that provides access to the graphical desktop
10215 via speech and refreshable braille. Orca works with applications and toolkits
10216 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10217 (license license:lgpl2.1+)))
10218
10219 (define-public gspell
10220 (package
10221 (name "gspell")
10222 (version "1.8.2")
10223 (source (origin
10224 (method url-fetch)
10225 (uri (string-append "mirror://gnome/sources/" name "/"
10226 (version-major+minor version) "/"
10227 name "-" version ".tar.xz"))
10228 (sha256
10229 (base32
10230 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10231 (patches (search-patches "gspell-dash-test.patch"))))
10232 (build-system glib-or-gtk-build-system)
10233 (arguments
10234 '(#:configure-flags (list "--enable-vala")
10235 #:phases
10236 (modify-phases %standard-phases
10237 (add-before 'check 'pre-check
10238 (lambda* (#:key inputs #:allow-other-keys)
10239 ;; Tests require a running X server.
10240 (system "Xvfb :1 &")
10241 (setenv "DISPLAY" ":1")
10242
10243 ;; For the missing /etc/machine-id.
10244 (setenv "DBUS_FATAL_WARNINGS" "0")
10245
10246 ;; Allow Enchant and its Aspell backend to find the en_US
10247 ;; dictionary.
10248 (setenv "ASPELL_DICT_DIR"
10249 (string-append (assoc-ref inputs "aspell-dict-en")
10250 "/lib/aspell"))
10251 #t)))))
10252 (inputs
10253 `(("gtk+" ,gtk+)
10254 ("glib" ,glib)
10255 ("iso-codes" ,iso-codes)))
10256 (native-inputs
10257 `(("glib" ,glib "bin")
10258 ("gobject-introspection" ,gobject-introspection)
10259 ("pkg-config" ,pkg-config)
10260 ("vala" ,vala) ;for VAPI, needed by Geary
10261 ("xmllint" ,libxml2)
10262
10263 ;; For tests.
10264 ("aspell-dict-en" ,aspell-dict-en)
10265 ("xorg-server" ,xorg-server-for-tests)))
10266 (propagated-inputs
10267 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
10268 (home-page "https://wiki.gnome.org/Projects/gspell")
10269 (synopsis "GNOME's alternative spell checker")
10270 (description
10271 "gspell provides a flexible API to add spell-checking to a GTK+
10272 application. It provides a GObject API, spell-checking to text entries and
10273 text views, and buttons to choose the language.")
10274 (license license:gpl2+)))
10275
10276 (define-public gnome-planner
10277 (package
10278 (name "gnome-planner")
10279 (version "0.14.6")
10280 (source (origin
10281 (method url-fetch)
10282 (uri (string-append "mirror://gnome/sources/planner/"
10283 (version-major+minor version) "/planner-"
10284 version ".tar.xz"))
10285 (sha256
10286 (base32
10287 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10288 (build-system glib-or-gtk-build-system)
10289 (arguments
10290 ;; Disable the Python bindings because the Planner program functions
10291 ;; without them, and (as of 2017-06-13) we have not packaged all of
10292 ;; packages that are necessary for building the Python bindings.
10293 `(#:configure-flags
10294 (list "--disable-python"
10295 ,@(if (string=? "aarch64-linux" (%current-system))
10296 '("--build=aarch64-unknown-linux-gnu")
10297 '()))))
10298 (inputs
10299 `(("libgnomecanvas" ,libgnomecanvas)
10300 ("libgnomeui" ,libgnomeui)
10301 ("libglade" ,libglade)
10302 ("gnome-vfs" ,gnome-vfs)
10303 ("gconf" ,gconf)
10304 ("libxml2" ,libxml2)
10305 ("libxslt" ,libxslt)
10306 ("gtk+" ,gtk+)
10307 ("glib" ,glib)))
10308 (native-inputs
10309 `(("intltool" ,intltool)
10310 ("scrollkeeper" ,scrollkeeper)
10311 ("pkg-config" ,pkg-config)))
10312 (home-page "https://wiki.gnome.org/Apps/Planner")
10313 (synopsis "Project management software for the GNOME desktop")
10314 (description
10315 "GNOME Planner is a project management tool based on the Work Breakdown
10316 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10317 the resources, tasks, and constraints that you define, Planner generates
10318 various views into a project. For example, Planner can show a Gantt chart of
10319 the project. It can show a detailed summary of tasks including their
10320 duration, cost, and current progress. It can also show a report of resource
10321 utilization that highlights under-utilized and over-utilized resources. These
10322 views can be printed as PDF or PostScript files, or exported to HTML.")
10323 (license license:gpl2+)))
10324
10325 (define-public lollypop
10326 (package
10327 (name "lollypop")
10328 (version "1.4.6")
10329 (source
10330 (origin
10331 (method url-fetch)
10332 (uri (string-append "https://adishatz.org/lollypop/"
10333 "lollypop-" version ".tar.xz"))
10334 (sha256
10335 (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
10336 (build-system meson-build-system)
10337 (arguments
10338 `(#:imported-modules
10339 (,@%meson-build-system-modules
10340 (guix build python-build-system))
10341 #:modules
10342 ((guix build meson-build-system)
10343 ((guix build python-build-system) #:prefix python:)
10344 (guix build utils))
10345 #:glib-or-gtk? #t
10346 #:tests? #f ; no test suite
10347 #:phases
10348 (modify-phases %standard-phases
10349 (add-after 'install 'wrap-program
10350 (lambda* (#:key outputs #:allow-other-keys)
10351 (let ((out (assoc-ref outputs "out"))
10352 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10353 (wrap-program (string-append out "/bin/lollypop")
10354 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10355 #t))
10356 (add-after 'install 'wrap-python
10357 (assoc-ref python:%standard-phases 'wrap)))))
10358 (native-inputs
10359 `(("intltool" ,intltool)
10360 ("itstool" ,itstool)
10361 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10362 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10363 ("pkg-config" ,pkg-config)))
10364 (inputs
10365 `(("glib-networking" ,glib-networking)
10366 ("gobject-introspection" ,gobject-introspection)
10367 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10368 ("gst-plugins-base" ,gst-plugins-base)
10369 ("libnotify" ,libnotify)
10370 ("libsecret" ,libsecret)
10371 ("libhandy" ,libhandy)
10372 ("libsoup" ,libsoup)
10373 ("python" ,python)
10374 ("python-beautifulsoup4" ,python-beautifulsoup4)
10375 ("python-gst" ,python-gst)
10376 ("python-pil" ,python-pillow)
10377 ("python-pycairo" ,python-pycairo)
10378 ("python-pygobject" ,python-pygobject)
10379 ("python-pylast" ,python-pylast)
10380 ("totem-pl-parser" ,totem-pl-parser)
10381 ("webkitgtk" ,webkitgtk)))
10382 (propagated-inputs
10383 `(;; gst-plugins-base is required to start Lollypop,
10384 ;; the others are required to play streaming.
10385 ("gst-plugins-good" ,gst-plugins-good)
10386 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10387 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10388 (synopsis "GNOME music playing application")
10389 (description
10390 "Lollypop is a music player designed to play well with GNOME desktop.
10391 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10392 from artists and tracks from the web. It also fetches cover artworks
10393 automatically and it can stream songs from online music services and charts.")
10394 (license license:gpl3+)))
10395
10396 (define-public gnome-video-effects
10397 (package
10398 (name "gnome-video-effects")
10399 (version "0.5.0")
10400 (source (origin
10401 (method url-fetch)
10402 (uri (string-append "mirror://gnome/sources/" name "/"
10403 (version-major+minor version) "/" name "-"
10404 version ".tar.xz"))
10405 (sha256
10406 (base32
10407 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10408 (build-system meson-build-system)
10409 (native-inputs
10410 `(("gettext" ,gettext-minimal)
10411 ("pkg-config" ,pkg-config)))
10412 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10413 (synopsis "Video effects for Cheese and other GNOME applications")
10414 (description
10415 "A collection of GStreamer video filters and effects to be used in
10416 photo-booth-like software, such as Cheese.")
10417 (license license:gpl2+)))
10418
10419 (define-public cheese
10420 (package
10421 (name "cheese")
10422 (version "3.38.0")
10423 (source (origin
10424 (method url-fetch)
10425 (uri (string-append "mirror://gnome/sources/" name "/"
10426 (version-major+minor version) "/" name "-"
10427 version ".tar.xz"))
10428 (sha256
10429 (base32
10430 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10431 (arguments
10432 `(#:glib-or-gtk? #t
10433 ;; Tests require GDK.
10434 #:tests? #f
10435 #:phases
10436 (modify-phases %standard-phases
10437 (add-after 'unpack 'skip-gtk-update-icon-cache
10438 (lambda _
10439 ;; Don't create 'icon-theme.cache'
10440 (substitute* "meson_post_install.py"
10441 (("gtk-update-icon-cache") (which "true")))
10442 #t))
10443 (add-after 'unpack 'patch-docbook-xml
10444 (lambda* (#:key inputs #:allow-other-keys)
10445 ;; Avoid a network connection attempt during the build.
10446 (substitute* '("docs/reference/cheese.xml"
10447 "docs/reference/cheese-docs.xml")
10448 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10449 (string-append (assoc-ref inputs "docbook-xml")
10450 "/xml/dtd/docbook/docbookx.dtd")))
10451 #t))
10452 (add-after 'install 'wrap-cheese
10453 (lambda* (#:key inputs outputs #:allow-other-keys)
10454 (let ((out (assoc-ref outputs "out"))
10455 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10456 (wrap-program (string-append out "/bin/cheese")
10457 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10458 #t)))))
10459 (build-system meson-build-system)
10460 (native-inputs
10461 `(("docbook-xsl" ,docbook-xsl)
10462 ("docbook-xml" ,docbook-xml-4.3)
10463 ("gettext" ,gettext-minimal)
10464 ("glib:bin" ,glib "bin")
10465 ("gtk-doc" ,gtk-doc/stable)
10466 ("itstool" ,itstool)
10467 ("libxml2" ,libxml2)
10468 ("libxslt" ,libxslt)
10469 ("pkg-config" ,pkg-config)
10470 ("vala" ,vala)))
10471 (propagated-inputs
10472 `(("gnome-video-effects" ,gnome-video-effects)
10473 ("clutter" ,clutter)
10474 ("clutter-gst" ,clutter-gst)
10475 ("clutter-gtk" ,clutter-gtk)
10476 ("libcanberra" ,libcanberra)
10477 ("gdk-pixbuf" ,gdk-pixbuf)
10478 ("glib" ,glib)
10479 ("gstreamer" ,gstreamer)))
10480 (inputs
10481 `(("gnome-desktop" ,gnome-desktop)
10482 ("gobject-introspection" ,gobject-introspection)
10483 ("gst-plugins-base" ,gst-plugins-base)
10484 ("gst-plugins-good" ,gst-plugins-good)
10485 ("gst-plugins-bad" ,gst-plugins-bad)
10486 ("gtk+" ,gtk+)
10487 ("libx11" ,libx11)
10488 ("libxtst" ,libxtst)))
10489 (home-page "https://wiki.gnome.org/Apps/Cheese")
10490 (synopsis "Webcam photo booth software for GNOME")
10491 (description
10492 "Cheese uses your webcam to take photos and videos. Cheese can also
10493 apply fancy special effects and lets you share the fun with others.")
10494 (license license:gpl2+)))
10495
10496 (define-public passwordsafe
10497 (package
10498 (name "passwordsafe")
10499 (version "5.0")
10500 (source
10501 (origin
10502 (method git-fetch)
10503 (uri (git-reference
10504 (url "https://gitlab.gnome.org/World/PasswordSafe")
10505 (commit version)))
10506 (file-name (git-file-name name version))
10507 (sha256
10508 (base32 "1xh64bbg10gnfzlck5jvqy2zk6hbk9cyqgv85xc9kbdvs8n4lhgh"))))
10509 (build-system meson-build-system)
10510 (arguments
10511 `(#:glib-or-gtk? #t
10512 #:phases
10513 (modify-phases %standard-phases
10514 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10515 (lambda* (#:key outputs #:allow-other-keys)
10516 (let ((prog (string-append (assoc-ref outputs "out")
10517 "/bin/gnome-passwordsafe"))
10518 (pylib (string-append (assoc-ref outputs "out")
10519 "/lib/python"
10520 ,(version-major+minor
10521 (package-version python))
10522 "/site-packages")))
10523 (wrap-program prog
10524 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10525 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10526 #t))))))
10527 (native-inputs
10528 `(("desktop-file-utils" ,desktop-file-utils)
10529 ("gettext" ,gettext-minimal)
10530 ("glib:bin" ,glib "bin")
10531 ("gobject-introspection" ,gobject-introspection)
10532 ("gtk+:bin" ,gtk+ "bin")
10533 ("pkg-config" ,pkg-config)))
10534 (inputs
10535 `(("glib" ,glib)
10536 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10537 ("gtk+" ,gtk+)
10538 ("libhandy" ,libhandy)
10539 ("libpwquality" ,libpwquality)
10540 ("python-pygobject" ,python-pygobject)
10541 ("python-pykeepass" ,python-pykeepass)))
10542 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
10543 (synopsis "Password manager for the GNOME desktop")
10544 (description
10545 "Password Safe is a password manager which makes use of the KeePass v4
10546 format. It integrates perfectly with the GNOME desktop and provides an easy
10547 and uncluttered interface for the management of password databases.")
10548 (license license:gpl3+)))
10549
10550 (define-public sound-juicer
10551 (package
10552 (name "sound-juicer")
10553 (version "3.24.0")
10554 (source
10555 (origin
10556 (method url-fetch)
10557 (uri (string-append "mirror://gnome/sources/" name "/"
10558 (version-major+minor version) "/"
10559 name "-" version ".tar.xz"))
10560 (sha256
10561 (base32
10562 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10563 (build-system glib-or-gtk-build-system)
10564 (native-inputs
10565 `(("desktop-file-utils" ,desktop-file-utils)
10566 ("intltool" ,intltool)
10567 ("itstool" ,itstool)
10568 ("pkg-config" ,pkg-config)
10569 ("xmllint" ,libxml2)))
10570 (inputs
10571 `(("gtk+" ,gtk+)
10572 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10573 ("gstreamer" ,gstreamer)
10574 ("gst-plugins-base" ,gst-plugins-base)
10575 ("gst-plugins-good" ,gst-plugins-good)
10576 ("iso-codes" ,iso-codes)
10577 ("libbrasero-media3" ,brasero)
10578 ("libcanberra" ,libcanberra)
10579 ("libdiscid" ,libdiscid)
10580 ("libmusicbrainz" ,libmusicbrainz)
10581 ("neon" ,neon)))
10582 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10583 (synopsis "Audio music cd ripper")
10584 (description "Sound Juicer extracts audio from compact discs and convert it
10585 into audio files that a personal computer or digital audio player can play.
10586 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10587 mp3, Ogg Vorbis and FLAC")
10588 (license license:gpl2+)))
10589
10590 (define-public soundconverter
10591 (package
10592 (name "soundconverter")
10593 (version "3.0.2")
10594 (source
10595 (origin
10596 (method url-fetch)
10597 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10598 version "/+download/"
10599 "soundconverter-" version ".tar.xz"))
10600
10601 (sha256
10602 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10603 (build-system glib-or-gtk-build-system)
10604 (arguments
10605 `(#:imported-modules ((guix build python-build-system)
10606 (guix build glib-or-gtk-build-system)
10607 ,@%gnu-build-system-modules)
10608
10609 #:modules ((guix build glib-or-gtk-build-system)
10610 (guix build utils)
10611 ((guix build gnu-build-system) #:prefix gnu:)
10612 ((guix build python-build-system) #:prefix python:))
10613
10614 #:phases
10615 (modify-phases %standard-phases
10616 (add-after 'install 'wrap-soundconverter-for-python
10617 (assoc-ref python:%standard-phases 'wrap))
10618 (add-after 'install 'wrap-soundconverter
10619 (lambda* (#:key inputs outputs #:allow-other-keys)
10620 (let ((out (assoc-ref outputs "out"))
10621 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10622 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10623 (wrap-program (string-append out "/bin/soundconverter")
10624 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10625 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10626 #t)))))
10627 (native-inputs
10628 `(("intltool" ,intltool)
10629 ("pkg-config" ,pkg-config)
10630 ("glib:bin" ,glib "bin")))
10631 (inputs
10632 `(("gtk+" ,gtk+)
10633 ("python" ,python)
10634 ("python-pygobject" ,python-pygobject)
10635 ("gstreamer" ,gstreamer)
10636 ("gst-plugins-base" ,gst-plugins-base)))
10637 (home-page "https://soundconverter.org/")
10638 (synopsis "Convert between audio formats with a graphical interface")
10639 (description
10640 "SoundConverter supports converting between many audio formats including
10641 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10642 configurable file renaming. ")
10643 (license license:gpl3)))
10644
10645 (define-public workrave
10646 (package
10647 (name "workrave")
10648 (version "1.10.43")
10649 (source
10650 (origin
10651 (method git-fetch)
10652 (uri (git-reference
10653 (url "https://github.com/rcaelers/workrave")
10654 (commit (string-append "v" (string-map
10655 (match-lambda (#\. #\_) (chr chr))
10656 version)))))
10657 (file-name (git-file-name name version))
10658 (sha256
10659 (base32 "1baa9qjzd4b3q1zy5vhvyrx0hyz17mk237373ca48647897kw4cr"))))
10660 (build-system glib-or-gtk-build-system)
10661 (arguments
10662 ;; The only tests are maintainer tests (in po/), which fail.
10663 `(#:tests? #f))
10664 (inputs `(("glib" ,glib)
10665 ("gtk+" ,gtk+)
10666 ("gdk-pixbuf" ,gdk-pixbuf)
10667 ("gtkmm" ,gtkmm)
10668 ("glibmm" ,glibmm)
10669 ("libx11" ,libx11)
10670 ("libxtst" ,libxtst)
10671 ("dconf" ,dconf)
10672 ("libice" ,libice)
10673 ("libsm" ,libsm)
10674 ("libxscrnsaver" ,libxscrnsaver)))
10675 (native-inputs `(("boost" ,boost)
10676 ("pkg-config" ,pkg-config)
10677 ("gettext" ,gettext-minimal)
10678 ("autoconf" ,autoconf)
10679 ("autoconf-archive" , autoconf-archive)
10680 ("automake" ,automake)
10681 ("libtool" ,libtool)
10682 ("intltool" ,intltool)
10683 ("gobject-introspection" ,gobject-introspection)
10684 ("python3" ,python-3)
10685 ("python-jinja2" ,python-jinja2)))
10686 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10687 (description
10688 "Workrave is a program that assists in the recovery and prevention of
10689 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10690 micro-pauses and rest breaks, and restricts you to your daily limit.")
10691 (home-page "http://www.workrave.org")
10692 (license license:gpl3+)))
10693
10694 (define-public ghex
10695 (package
10696 (name "ghex")
10697 (version "3.18.4")
10698 (source (origin
10699 (method url-fetch)
10700 (uri (string-append "mirror://gnome/sources/ghex/"
10701 (version-major+minor version) "/"
10702 "ghex-" version ".tar.xz"))
10703 (sha256
10704 (base32
10705 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10706 (build-system meson-build-system)
10707 (arguments
10708 '(#:glib-or-gtk? #t
10709 #:phases
10710 (modify-phases %standard-phases
10711 (add-after 'unpack 'skip-gtk-update-icon-cache
10712 ;; Don't create 'icon-theme.cache'.
10713 (lambda _
10714 (substitute* "meson_post_install.py"
10715 (("gtk-update-icon-cache") (which "true")))
10716 #t)))))
10717 (native-inputs
10718 `(("pkg-config" ,pkg-config)
10719 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10720 ("gnome-common" ,gnome-common)
10721 ("which" ,which)
10722 ("intltool" ,intltool)
10723 ("yelp-tools" ,yelp-tools)
10724 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10725 (inputs
10726 `(("atk" ,atk)
10727 ("gtk" ,gtk+)))
10728 (synopsis "GNOME hexadecimal editor")
10729 (description "The GHex program can view and edit files in two ways:
10730 hexadecimal or ASCII. It is useful for editing binary files in general.")
10731 (home-page "https://wiki.gnome.org/Apps/Ghex")
10732 (license license:gpl2)))
10733
10734 (define-public libdazzle
10735 (package
10736 (name "libdazzle")
10737 (version "3.37.1")
10738 (source (origin
10739 (method url-fetch)
10740 (uri (string-append "mirror://gnome/sources/libdazzle/"
10741 (version-major+minor version) "/"
10742 "libdazzle-" version ".tar.xz"))
10743 (sha256
10744 (base32
10745 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10746 (build-system meson-build-system)
10747 (arguments
10748 `(#:phases
10749 (modify-phases %standard-phases
10750 (add-before 'check 'pre-check
10751 (lambda _
10752 ;; Tests require a running X server.
10753 (system "Xvfb :1 &")
10754 (setenv "DISPLAY" ":1")
10755 #t)))))
10756 (native-inputs
10757 `(("glib" ,glib "bin") ; glib-compile-resources
10758 ("pkg-config" ,pkg-config)
10759 ;; For tests.
10760 ("xorg-server" ,xorg-server-for-tests)))
10761 (inputs
10762 `(("glib" ,glib)
10763 ("gobject-introspection" ,gobject-introspection)
10764 ("gtk+" ,gtk+)
10765 ("vala" ,vala)))
10766 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10767 (synopsis "Companion library to GObject and Gtk+")
10768 (description "The libdazzle library is a companion library to GObject and
10769 Gtk+. It provides various features that the authors wish were in the
10770 underlying library but cannot for various reasons. In most cases, they are
10771 wildly out of scope for those libraries. In other cases, they are not quite
10772 generic enough to work for everyone.")
10773 (license license:gpl3+)))
10774
10775 (define-public evolution
10776 (package
10777 (name "evolution")
10778 (version "3.34.2")
10779 (source (origin
10780 (method url-fetch)
10781 (uri (string-append "mirror://gnome/sources/evolution/"
10782 (version-major+minor version) "/"
10783 "evolution-" version ".tar.xz"))
10784 (sha256
10785 (base32
10786 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))
10787 (patches (search-patches "evolution-CVE-2020-11879.patch"))))
10788 (build-system cmake-build-system)
10789 (arguments
10790 `(#:imported-modules (,@%cmake-build-system-modules
10791 (guix build glib-or-gtk-build-system))
10792 #:modules ((guix build cmake-build-system)
10793 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10794 (guix build utils))
10795 #:configure-flags
10796 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10797 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10798 ; in four years and cannot be built.
10799 #:phases
10800 (modify-phases %standard-phases
10801 ;; The build system attempts to install user interface modules to the
10802 ;; output directory of the "evolution-data-server" package. This
10803 ;; change redirects that change.
10804 (add-after 'unpack 'patch-ui-module-dir
10805 (lambda* (#:key outputs #:allow-other-keys)
10806 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10807 (("\\$\\{edsuimoduledir\\}")
10808 (string-append (assoc-ref outputs "out")
10809 "/lib/evolution-data-server/ui-modules")))
10810 #t))
10811 (add-after 'install 'glib-or-gtk-compile-schemas
10812 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10813 (add-after 'install 'glib-or-gtk-wrap
10814 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10815 (native-inputs
10816 `(("glib" ,glib "bin") ; glib-mkenums
10817 ("pkg-config" ,pkg-config)
10818 ("intltool" ,intltool)
10819 ("itstool" ,itstool)))
10820 (inputs
10821 `(("enchant" ,enchant)
10822 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10823 ("gcr" ,gcr)
10824 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10825 ("gnome-autoar" ,gnome-autoar)
10826 ("gnome-desktop" ,gnome-desktop)
10827 ("gspell" ,gspell)
10828 ("highlight" ,highlight)
10829 ("libcanberra" ,libcanberra)
10830 ("libgweather" ,libgweather)
10831 ("libnotify" ,libnotify)
10832 ("libsoup" ,libsoup)
10833 ("nss" ,nss)
10834 ("openldap" ,openldap)
10835 ("webkitgtk" ,webkitgtk)
10836 ("ytnef" ,ytnef)))
10837 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10838 (synopsis "Manage your email, contacts and schedule")
10839 (description "Evolution is a personal information management application
10840 that provides integrated mail, calendaring and address book
10841 functionality.")
10842 ;; See COPYING for details.
10843 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10844 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10845 license:lgpl2.1+)))) ; smime/lib/*
10846
10847 (define-public gthumb
10848 (package
10849 (name "gthumb")
10850 (version "3.10.3")
10851 (source (origin
10852 (method url-fetch)
10853 (uri (string-append "mirror://gnome/sources/gthumb/"
10854 (version-major+minor version) "/"
10855 "gthumb-" version ".tar.xz"))
10856 (sha256
10857 (base32
10858 "04n2sgasc03kiczyzkq362pjilj12hq2r5qj07lynqr9rivkzdys"))))
10859 (build-system meson-build-system)
10860 (arguments
10861 `(#:glib-or-gtk? #t
10862 #:configure-flags
10863 ;; Ensure the RUNPATH contains all installed library locations.
10864 (list (string-append "-Dc_link_args=-Wl,-rpath="
10865 (assoc-ref %outputs "out")
10866 "/lib/gthumb/extensions")
10867 (string-append "-Dcpp_link_args=-Wl,-rpath="
10868 (assoc-ref %outputs "out")
10869 "/lib/gthumb/extensions"))))
10870 (native-inputs
10871 `(("pkg-config" ,pkg-config)
10872 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10873 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10874 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10875 ("intltool" ,intltool)
10876 ("itstool" ,itstool)))
10877 (inputs
10878 `(("exiv2" ,exiv2)
10879 ("gtk" ,gtk+)
10880 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10881 ("gstreamer" ,gstreamer)
10882 ("clutter" ,clutter)
10883 ("clutter-gst" ,clutter-gst)
10884 ("clutter-gtk" ,clutter-gtk)
10885 ("libjpeg" ,libjpeg-turbo)
10886 ("libtiff" ,libtiff)
10887 ("libraw" ,libraw)))
10888 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10889 (synopsis "GNOME image viewer and browser")
10890 (description "GThumb is an image viewer, browser, organizer, editor and
10891 advanced image management tool")
10892 (license license:gpl2+)))
10893
10894 (define-public terminator
10895 (package
10896 (name "terminator")
10897 (version "2.1.1")
10898 (source
10899 (origin
10900 (method url-fetch)
10901 (uri (string-append "https://github.com/gnome-terminator/terminator/"
10902 "releases/download/v" version "/"
10903 name "-" version ".tar.gz"))
10904 (sha256
10905 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
10906 (build-system python-build-system)
10907 (native-inputs
10908 `(("gettext" ,gettext-minimal)
10909 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10910 ("gobject-introspection" ,gobject-introspection)
10911 ("intltool" ,intltool)
10912 ("pkg-config" ,pkg-config)
10913 ("python-psutil" ,python-psutil)
10914 ("python-pytest-runner" ,python-pytest-runner)
10915 ("python-pytest" ,python-pytest)))
10916 (inputs
10917 `(("cairo" ,cairo)
10918 ("dbus-glib" ,dbus-glib)
10919 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10920 ("gtk+" ,gtk+)
10921 ("python" ,python-wrapper)
10922 ("python-dbus" ,python-dbus)
10923 ("python-notify2" ,python-notify2)
10924 ("python-pycairo" ,python-pycairo)
10925 ("python-pygobject" ,python-pygobject)
10926 ("vte" ,vte)))
10927 (propagated-inputs
10928 `(("python-configobj" ,python-configobj)))
10929 (arguments
10930 ;; One test out of 28 fails due to dbus-python and python-notify; skip
10931 ;; tests.
10932 `(#:tests? #f
10933 #:imported-modules ((guix build glib-or-gtk-build-system)
10934 ,@%python-build-system-modules)
10935 #:modules ((guix build python-build-system)
10936 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10937 (guix build utils))
10938 #:phases
10939 (modify-phases %standard-phases
10940 (add-after 'unpack 'handle-dbus-python
10941 (lambda _
10942 ;; python-dbus cannot be found but it's really there. See
10943 ;; https://github.com/SpotlightKid/jack-select/issues/2
10944 (substitute* "setup.py"
10945 (("'dbus-python',") ""))
10946 #t))
10947 (add-after 'install 'wrap-program
10948 (lambda* (#:key outputs #:allow-other-keys)
10949 (let ((prog (string-append (assoc-ref outputs "out")
10950 "/bin/terminator"))
10951 (pylib (string-append (assoc-ref outputs "out")
10952 "/lib/python"
10953 ,(version-major+minor
10954 (package-version python))
10955 "/site-packages")))
10956 (wrap-program prog
10957 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10958 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10959 #t)))
10960 (add-after 'wrap-program 'glib-or-gtk-wrap
10961 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10962 (home-page "https://gnome-terminator.org/")
10963 (synopsis "Store and run multiple GNOME terminals in one window")
10964 (description
10965 "Terminator allows you to run multiple GNOME terminals in a grid and
10966 tabs, and it supports drag and drop re-ordering of terminals.")
10967 (license license:gpl2)))
10968
10969 (define-public libhandy
10970 (package
10971 (name "libhandy")
10972 (version "1.2.2")
10973 (source
10974 (origin
10975 (method git-fetch)
10976 (uri (git-reference
10977 (url "https://gitlab.gnome.org/GNOME/libhandy")
10978 (commit version)))
10979 (file-name (git-file-name name version))
10980 (sha256
10981 (base32 "0345x7gif6yjm95y62lww71lj84wfwsr2p32r3iww8shavb8scyk"))))
10982 (build-system meson-build-system)
10983 (arguments
10984 `(#:configure-flags
10985 '("-Dglade_catalog=enabled"
10986 "-Dgtk_doc=true")
10987 #:phases
10988 (modify-phases %standard-phases
10989 (add-before 'check 'pre-check
10990 (lambda _
10991 ;; Tests require a running X server.
10992 (system "Xvfb :1 &")
10993 (setenv "DISPLAY" ":1")
10994 #t)))))
10995 (inputs
10996 `(("gtk+" ,gtk+)
10997 ("glade" ,glade3)
10998 ("libxml2" ,libxml2)))
10999 (native-inputs
11000 `(("glib:bin" ,glib "bin")
11001 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
11002 ("vala" ,vala)
11003 ("gtk-doc" ,gtk-doc/stable)
11004 ("pkg-config" ,pkg-config)
11005 ("gettext" ,gettext-minimal)
11006
11007 ;; Test suite dependencies.
11008 ("xorg-server" ,xorg-server-for-tests)
11009 ("hicolor-icon-theme" ,hicolor-icon-theme)))
11010 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11011 (synopsis "Library full of GTK+ widgets for mobile phones")
11012 (description "The aim of the handy library is to help with developing user
11013 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11014 for usage on small and big screens.")
11015 (license license:lgpl2.1+)))
11016
11017 (define-public libhandy-0.0
11018 (package
11019 (inherit libhandy)
11020 (version "0.0.13")
11021 (source
11022 (origin
11023 (method git-fetch)
11024 (uri (git-reference
11025 (url "https://gitlab.gnome.org/GNOME/libhandy")
11026 (commit (string-append "v" version))))
11027 (file-name (git-file-name "libhandy" version))
11028 (sha256
11029 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11030 (arguments
11031 (substitute-keyword-arguments (package-arguments libhandy)
11032 ((#:configure-flags flags)
11033 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11034
11035 (define-public libgit2-glib
11036 (package
11037 (name "libgit2-glib")
11038 (version "0.99.0.1")
11039 (source (origin
11040 (method url-fetch)
11041 (uri (string-append "mirror://gnome/sources/" name "/"
11042 (version-major+minor version) "/"
11043 name "-" version ".tar.xz"))
11044 (sha256
11045 (base32
11046 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
11047 (build-system meson-build-system)
11048 (native-inputs
11049 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
11050 ("gobject-introspection" ,gobject-introspection)
11051 ("pkg-config" ,pkg-config)
11052 ("python-pygobject" ,python-pygobject)
11053 ("python-wrapper" ,python-wrapper)
11054 ("vala" ,vala)))
11055 (inputs
11056 `(("glib" ,glib)
11057 ("libssh2" ,libssh2)))
11058 (propagated-inputs
11059 `(;; In Requires of libgit2-glib.pc.
11060 ("libgit2" ,libgit2)))
11061 (synopsis "GLib wrapper around the libgit2 Git access library")
11062 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11063 access library. It only implements the core plumbing functions, not really the
11064 higher level porcelain stuff.")
11065 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11066 (license license:gpl2+)))
11067
11068 (define-public gitg
11069 (package
11070 (name "gitg")
11071 (version "3.32.1")
11072 (source (origin
11073 (method url-fetch)
11074 (uri (string-append "mirror://gnome/sources/" name "/"
11075 (version-major+minor version) "/"
11076 name "-" version ".tar.xz"))
11077 (sha256
11078 (base32
11079 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
11080 (build-system meson-build-system)
11081 (arguments
11082 `(#:glib-or-gtk? #t
11083 #:phases
11084 (modify-phases %standard-phases
11085 (add-after 'unpack 'disable-post-install-partially
11086 (lambda _
11087 (substitute* "meson_post_install.py"
11088 (("'python'") ; there are no python sources to compile
11089 (string-append "'" (which "true") "'"))
11090 (("gtk-update-icon-cache") (which "true")))
11091 #t))
11092 (add-after 'unpack 'fix-test-sources
11093 (lambda _
11094 (substitute* "tests/libgitg/test-commit.vala"
11095 (("/bin/bash") (which "bash")))
11096 #t))
11097 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11098 (lambda* (#:key outputs #:allow-other-keys)
11099 (let ((prog (string-append (assoc-ref outputs "out")
11100 "/bin/gitg")))
11101 (wrap-program prog
11102 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11103 #t))))))
11104 (inputs
11105 `(("glib" ,glib)
11106 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11107 ("gtk+" ,gtk+)
11108 ("gtkspell3" ,gtkspell3)
11109 ("gtksourceview" ,gtksourceview-3)
11110 ("json-glib" ,json-glib)
11111 ("libdazzle" ,libdazzle)
11112 ("libgee" ,libgee)
11113 ("libgit2-glib" ,libgit2-glib)
11114 ("libpeas" ,libpeas)
11115 ("libsecret" ,libsecret)
11116 ("libsoup" ,libsoup)
11117 ("libxml2" ,libxml2)))
11118 (native-inputs
11119 `(("glib:bin" ,glib "bin")
11120 ("gtk+:bin" ,gtk+ "bin")
11121 ("gobject-introspection" ,gobject-introspection)
11122 ("intltool" ,intltool)
11123 ("pkg-config" ,pkg-config)
11124 ("vala" ,vala)))
11125 (synopsis "Graphical user interface for git")
11126 (description
11127 "gitg is a graphical user interface for git. It aims at being a small,
11128 fast and convenient tool to visualize the history of git repositories.
11129 Besides visualization, gitg also provides several utilities to manage your
11130 repository and commit your work.")
11131 (home-page "https://wiki.gnome.org/Apps/Gitg")
11132 (license license:gpl2+)))
11133
11134 (define-public gamin
11135 (package
11136 (name "gamin")
11137 (version "0.1.10")
11138 (source (origin
11139 (method url-fetch)
11140 (uri (string-append "mirror://gnome/sources/" name "/"
11141 (version-major+minor version) "/"
11142 name "-" version ".tar.bz2"))
11143 (sha256
11144 (base32
11145 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11146 (build-system gnu-build-system)
11147 (arguments
11148 `(#:phases
11149 (modify-phases %standard-phases
11150 (add-after 'unpack 'remove-deprecated-macro
11151 (lambda _
11152 (substitute* '("server/gam_node.c"
11153 "server/gam_subscription.h"
11154 "server/gam_node.h"
11155 "server/gam_subscription.c")
11156 (("G_CONST_RETURN") "const"))
11157 #t)))))
11158 (inputs
11159 `(("glib" ,glib)))
11160 (native-inputs
11161 `(("intltool" ,intltool)
11162 ("pkg-config" ,pkg-config)))
11163 (home-page "https://people.gnome.org/~veillard/gamin/")
11164 (synopsis "File alteration monitor")
11165 (description
11166 "Gamin is a file and directory monitoring system defined to be a subset
11167 of the FAM (File Alteration Monitor) system. This is a service provided by a
11168 library which detects when a file or a directory has been modified.")
11169 (license license:gpl2+)))
11170
11171 (define-public gnome-mahjongg
11172 (package
11173 (name "gnome-mahjongg")
11174 (version "3.35.1")
11175 (source (origin
11176 (method git-fetch)
11177 (uri (git-reference
11178 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
11179 (commit version)))
11180 (file-name (git-file-name name version))
11181 (sha256
11182 (base32
11183 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
11184 (build-system meson-build-system)
11185 (arguments
11186 `(#:glib-or-gtk? #t))
11187 (native-inputs
11188 `(("appstream-glib" ,appstream-glib)
11189 ("gettext" ,gettext-minimal)
11190 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11191 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11192 ("itstool" ,itstool)
11193 ("pkg-config" ,pkg-config)
11194 ("vala" ,vala)))
11195 (propagated-inputs
11196 `(("dconf" ,dconf)))
11197 (inputs
11198 `(("glib" ,glib)
11199 ("gtk+" ,gtk+)
11200 ("librsvg" ,librsvg)))
11201 (synopsis "Mahjongg tile-matching game")
11202 (description "GNOME Mahjongg is a game based on the classic Chinese
11203 tile-matching game Mahjong. It features multiple board layouts, tile themes,
11204 and a high score table.")
11205 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11206 (license license:gpl2+)))
11207
11208 (define-public gnome-themes-extra
11209 (package
11210 (name "gnome-themes-extra")
11211 (version "3.28")
11212 (source
11213 (origin
11214 (method url-fetch)
11215 (uri (string-append "mirror://gnome/sources/" name "/"
11216 (version-major+minor version) "/" name "-"
11217 version ".tar.xz"))
11218 (sha256
11219 (base32
11220 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11221 (build-system gnu-build-system)
11222 (arguments
11223 '(#:configure-flags
11224 ;; Don't create 'icon-theme.cache'.
11225 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11226 (true (string-append coreutils "/bin/true")))
11227 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11228 (native-inputs
11229 `(("glib:bin" ,glib "bin")
11230 ("intltool" ,intltool)
11231 ("pkg-config" ,pkg-config)))
11232 (inputs
11233 `(("glib" ,glib)
11234 ("gtk+" ,gtk+)
11235 ("gtk+-2" ,gtk+-2)
11236 ("librsvg" ,librsvg)
11237 ("libxml2" ,libxml2)))
11238 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11239 (synopsis "GNOME Extra Themes")
11240 (description "This package provides themes and related elements that don't
11241 really fit in other upstream packages. It offers legacy support for GTK+ 2
11242 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11243 index files needed for Adwaita to be used outside of GNOME.")
11244 (license license:lgpl2.1+)))
11245
11246 (define-public gnote
11247 (package
11248 (name "gnote")
11249 (version "3.38.1")
11250 (source
11251 (origin
11252 (method url-fetch)
11253 (uri (string-append "mirror://gnome/sources/" name "/"
11254 (version-major+minor version) "/"
11255 "gnote-" version ".tar.xz"))
11256 (sha256
11257 (base32 "1adjfjhmsm2d33999khjyzvli6kiz1jlzavn77jhd49kfzhxa9y4"))))
11258 (build-system glib-or-gtk-build-system)
11259 (native-inputs
11260 `(("desktop-file-utils" ,desktop-file-utils)
11261 ("glib:bin" ,glib "bin")
11262 ("gobject-introspection" ,gobject-introspection)
11263 ("intltool" ,intltool)
11264 ("itstool" ,itstool)
11265 ("pkg-config" ,pkg-config)
11266 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
11267 (inputs
11268 `(("glibmm" ,glibmm)
11269 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11270 ("gspell" ,gspell)
11271 ("gtk+" ,gtk+)
11272 ("gtkmm" ,gtkmm)
11273 ("libsecret" ,libsecret)
11274 ("libuuid" ,util-linux "lib")
11275 ("libxml2" ,libxml2)
11276 ("libxslt" ,libxslt)))
11277 (synopsis "Note-taking application for the GNOME desktop")
11278 (description
11279 "Gnote is a note-taking application written for the GNOME desktop
11280 environment.")
11281 (home-page "https://wiki.gnome.org/Apps/Gnote")
11282 (license license:gpl3+)))
11283
11284 (define-public polari
11285 (package
11286 (name "polari")
11287 (version "3.36.3")
11288 (source (origin
11289 (method url-fetch)
11290 (uri (string-append "mirror://gnome/sources/polari/"
11291 (version-major+minor version)
11292 "/polari-" version ".tar.xz"))
11293 (sha256
11294 (base32
11295 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11296 (build-system meson-build-system)
11297 (arguments
11298 `(#:glib-or-gtk? #t
11299 #:phases
11300 (modify-phases %standard-phases
11301 (add-after 'unpack 'skip-gtk-update-icon-cache
11302 (lambda _
11303 (substitute* "meson/meson-postinstall.sh"
11304 (("gtk-update-icon-cache") (which "true")))
11305 #t))
11306 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11307 (lambda* (#:key outputs #:allow-other-keys)
11308 (let ((prog (string-append (assoc-ref outputs "out")
11309 "/bin/polari")))
11310 (wrap-program prog
11311 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11312 #t))))))
11313 (inputs
11314 `(("glib" ,glib)
11315 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11316 ("gspell" ,gspell)
11317 ("gtk+" ,gtk+)
11318 ("gjs" ,gjs)
11319 ("libsecret" ,libsecret)
11320 ("libsoup" ,libsoup)
11321 ("telepathy-glib" ,telepathy-glib)
11322 ("telepathy-logger" ,telepathy-logger)))
11323 (native-inputs
11324 `(("glib:bin" ,glib "bin")
11325 ("gobject-introspection" ,gobject-introspection)
11326 ("intltool" ,intltool)
11327 ("pkg-config" ,pkg-config)
11328 ("yelp-tools" ,yelp-tools)))
11329 (propagated-inputs
11330 `(("telepathy-idle" ,telepathy-idle)
11331 ("telepathy-mission-control" ,telepathy-mission-control)))
11332 (synopsis "Simple IRC Client")
11333 (description
11334 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11335 integrate seamlessly with the GNOME desktop.")
11336 (home-page "https://wiki.gnome.org/Apps/Polari")
11337 (license license:gpl2+)))
11338
11339 (define-public gnome-boxes
11340 (package
11341 (name "gnome-boxes")
11342 (version "3.36.6")
11343 (source
11344 (origin
11345 (method url-fetch)
11346 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11347 (version-major+minor version) "/"
11348 "gnome-boxes-" version ".tar.xz"))
11349 (sha256
11350 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11351 (build-system meson-build-system)
11352 (arguments
11353 '(#:glib-or-gtk? #t
11354 #:configure-flags (list "-Drdp=false"
11355 (string-append "-Dc_link_args=-Wl,-rpath="
11356 (assoc-ref %outputs "out")
11357 "/lib/gnome-boxes"))))
11358 (native-inputs
11359 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11360 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11361 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11362 ("itstool" ,itstool)
11363 ("intltool" ,intltool)
11364 ("vala" ,vala)
11365 ("pkg-config" ,pkg-config)))
11366 (inputs
11367 `(("libarchive" ,libarchive)
11368 ("glib-networking" ,glib-networking) ;for TLS support
11369 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11370 ("gtk" ,gtk+)
11371 ("gtk-vnc" ,gtk-vnc)
11372 ("libosinfo" ,libosinfo)
11373 ("libsecret" ,libsecret)
11374 ("libsoup" ,libsoup)
11375 ("libusb" ,libusb)
11376 ("libvirt" ,libvirt)
11377 ("libvirt-glib" ,libvirt-glib)
11378 ("libxml" ,libxml2)
11379 ("spice-gtk" ,spice-gtk)
11380 ("sparql-query" ,sparql-query)
11381 ("vte" ,vte)
11382 ("webkitgtk" ,webkitgtk)
11383 ("tracker" ,tracker)
11384 ("libgudev" ,libgudev)))
11385 (home-page "https://wiki.gnome.org/Apps/Boxes")
11386 (synopsis "View, access, and manage remote and virtual systems")
11387 (description "GNOME Boxes is a simple application to view, access, and
11388 manage remote and virtual systems. Note that this application requires the
11389 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11390 @command{info '(guix) Virtualization Services'} to learn how to configure
11391 these services on the Guix System.")
11392 (license (list
11393 ;; For data/icons/empty-boxes.png.
11394 license:cc-by2.0
11395 ;; For all others.
11396 license:lgpl2.0+))))
11397
11398 (define-public geary
11399 (package
11400 (name "geary")
11401 (version "3.34.1")
11402 (source (origin
11403 (method git-fetch)
11404 (uri (git-reference
11405 (url "https://gitlab.gnome.org/GNOME/geary")
11406 (commit version)))
11407 (file-name (git-file-name name version))
11408 (sha256
11409 (base32
11410 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))
11411 (patches (search-patches "geary-CVE-2020-24661.patch"))))
11412 (build-system meson-build-system)
11413 (arguments
11414 `(#:glib-or-gtk? #t
11415 #:phases (modify-phases %standard-phases
11416 (add-after 'unpack 'disable-failing-tests
11417 (lambda _
11418 (substitute* "test/meson.build"
11419 (("test\\('client-tests', geary_test_client_bin\\)")
11420 ""))
11421 #t))
11422 (add-after 'unpack 'disable-postinstall-script
11423 (lambda _
11424 (substitute* "meson.build"
11425 (("meson.add_install_script\\(\
11426 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11427 ""))
11428 #t))
11429 (add-before 'check 'setup-xvfb
11430 (lambda _
11431 (system "Xvfb :1 &")
11432 (setenv "DISPLAY" ":1")
11433 #t)))))
11434 (inputs
11435 `(("enchant" ,enchant)
11436 ("folks" ,folks)
11437 ("gcr" ,gcr)
11438 ("glib" ,glib)
11439 ("gmime" ,gmime-2.6)
11440 ("gnome-online-accounts:lib"
11441 ,gnome-online-accounts "lib")
11442 ("gspell" ,gspell)
11443 ("gtk+" ,gtk+)
11444 ("iso-codes" ,iso-codes)
11445 ("json-glib" ,json-glib)
11446 ("libcanberra" ,libcanberra)
11447 ("libgee" ,libgee)
11448 ("libhandy" ,libhandy-0.0)
11449 ("libpeas" ,libpeas)
11450 ("libsecret" ,libsecret)
11451 ("libunwind" ,libunwind)
11452 ("sqlite" ,sqlite)
11453 ("webkitgtk" ,webkitgtk)
11454 ("ytnef" ,ytnef)))
11455 (native-inputs
11456 `(("appstream-glib" ,appstream-glib)
11457 ("cmake-minimal" ,cmake-minimal)
11458 ("desktop-file-utils" ,desktop-file-utils)
11459 ("gettext" ,gettext-minimal)
11460 ("glib:bin" ,glib "bin")
11461 ("gobject-introspection" ,gobject-introspection)
11462 ("itstool" ,itstool)
11463 ("libarchive" ,libarchive)
11464 ("libxml2" ,libxml2)
11465 ("pkg-config" ,pkg-config)
11466 ("vala" ,vala)
11467 ("xvfb" ,xorg-server-for-tests)))
11468 (synopsis "GNOME email application built around conversations")
11469 (description
11470 "Geary collects related messages together into conversations,
11471 making it easy to find and follow your discussions. Full-text and keyword
11472 search makes it easy to find the email you are looking for. Geary's
11473 full-featured composer lets you send rich, styled text with images, links, and
11474 lists, but also send lightweight, easy to read text messages. Geary
11475 automatically picks up your existing GNOME Online Accounts, and adding more is
11476 easy. Geary has a clean, fast, modern interface that works like you want it
11477 to.")
11478 (home-page "https://wiki.gnome.org/Apps/Geary")
11479 (license (list
11480 ;; geary
11481 license:lgpl2.1+
11482 ;; icons
11483 license:cc-by3.0
11484 license:cc-by-sa3.0
11485 license:public-domain
11486 ;; snowball
11487 license:bsd-2))))
11488
11489 (define-public glabels
11490 (package
11491 (name "glabels")
11492 (version "3.4.1")
11493 (source
11494 (origin
11495 (method url-fetch)
11496 (uri (string-append "mirror://gnome/sources/" name "/"
11497 (version-major+minor version) "/"
11498 "glabels-" version ".tar.xz"))
11499 (sha256
11500 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11501 (build-system glib-or-gtk-build-system)
11502 (native-inputs
11503 `(("gettext" ,gettext-minimal)
11504 ("glib:bin" ,glib "bin")
11505 ("intltool" ,intltool)
11506 ("itstool" ,itstool)
11507 ("pkg-config" ,pkg-config)))
11508 (inputs
11509 `(("gtk+" ,gtk+)
11510 ("librsvg" ,librsvg)
11511 ("libxml2" ,libxml2)))
11512 (home-page "https://glabels.org/")
11513 (synopsis "Program for creating labels and business cards")
11514 (description
11515 "gLabels is a program for creating labels and business cards. It is
11516 designed to work with various laser/ink-jet peel-off label and business
11517 card sheets that you’ll find at most office supply stores.")
11518 (license license:gpl3+)))
11519
11520 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11521 (define-public gnome-latex
11522 (package
11523 (name "gnome-latex")
11524 (version "3.36.0")
11525 (source
11526 (origin
11527 (method url-fetch)
11528 (uri (string-append "mirror://gnome/sources/" name "/"
11529 (version-major+minor version) "/"
11530 "gnome-latex-" version ".tar.xz"))
11531 (sha256
11532 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11533 (build-system glib-or-gtk-build-system)
11534 (native-inputs
11535 `(("gettext" ,gettext-minimal)
11536 ("glib:bin" ,glib "bin")
11537 ("gobject-introspection" ,gobject-introspection)
11538 ("gtk-doc" ,gtk-doc/stable)
11539 ("intltool" ,intltool)
11540 ("itstool" ,itstool)
11541 ("pkg-config" ,pkg-config)
11542 ("vala" ,vala)))
11543 (inputs
11544 `(("amtk" ,amtk)
11545 ("dconf" ,dconf)
11546 ("glib" ,glib)
11547 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11548 ("gspell" ,gspell)
11549 ("gtk+" ,gtk+)
11550 ("gtksourceview" ,gtksourceview)
11551 ("libgee" ,libgee)
11552 ("tepl" ,tepl)
11553 ("uchardet" ,uchardet)))
11554 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11555 (synopsis "LaTeX editor for the GNOME desktop")
11556 (description
11557 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11558 such as build tools, completion of LaTeX commands, structure navigation,
11559 symbol tables, document templates, project management, spell-checking, menus
11560 and toolbars.")
11561 (license license:gpl3+)))
11562
11563 (define-public setzer
11564 (package
11565 (name "setzer")
11566 (version "0.4.1")
11567 (source
11568 (origin
11569 (method git-fetch)
11570 (uri (git-reference
11571 (url "https://github.com/cvfosammmm/Setzer")
11572 (commit (string-append "v" version))))
11573 (file-name (git-file-name name version))
11574 (sha256
11575 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
11576 (build-system meson-build-system)
11577 (arguments
11578 `(#:glib-or-gtk? #t
11579 #:phases
11580 (modify-phases %standard-phases
11581 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11582 (lambda* (#:key outputs #:allow-other-keys)
11583 (let ((prog (string-append (assoc-ref outputs "out")
11584 "/bin/setzer"))
11585 (pylib (string-append (assoc-ref outputs "out")
11586 "/lib/python"
11587 ,(version-major+minor
11588 (package-version python))
11589 "/site-packages")))
11590 (wrap-program prog
11591 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
11592 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11593 #t))))))
11594 (native-inputs
11595 `(("desktop-file-utils" ,desktop-file-utils)
11596 ("gettext" ,gettext-minimal)
11597 ("glib:bin" ,glib "bin")
11598 ("gobject-introspection" ,gobject-introspection)
11599 ("gtk+:bin" ,gtk+ "bin")))
11600 (inputs
11601 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11602 ("gspell" ,gspell)
11603 ("gtk+" ,gtk+)
11604 ("gtksourceview" ,gtksourceview)
11605 ("pango" ,pango)
11606 ("poppler" ,poppler)
11607 ("python-pdfminer" ,python-pdfminer-six)
11608 ("python-pycairo" ,python-pycairo)
11609 ("python-pygobject" ,python-pygobject)
11610 ("python-pyxdg" ,python-pyxdg)
11611 ("webkitgtk" ,webkitgtk)
11612 ("xdg-utils" ,xdg-utils)))
11613 (home-page "https://www.cvfosammmm.org/setzer/")
11614 (synopsis "LaTeX editor written in Python with GTK+")
11615 (description
11616 "Setzer is a simple yet full-featured LaTeX editor written in Python with
11617 GTK+. It integrates well with the GNOME desktop environment.")
11618 (license license:gpl3+)))
11619
11620 (define-public libratbag
11621 (package
11622 (name "libratbag")
11623 (version "0.14")
11624 (source
11625 (origin
11626 (method git-fetch)
11627 (uri (git-reference
11628 (url "https://github.com/libratbag/libratbag")
11629 (commit (string-append "v" version))))
11630 (file-name (git-file-name name version))
11631 (sha256
11632 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11633 (build-system meson-build-system)
11634 (arguments
11635 `(#:configure-flags
11636 (list "-Dsystemd=false"
11637 "-Dlogind-provider=elogind")
11638 #:phases
11639 (modify-phases %standard-phases
11640 (add-after 'install 'wrap
11641 (lambda* (#:key inputs outputs #:allow-other-keys)
11642 (let* ((out (assoc-ref outputs "out"))
11643 (site (string-append
11644 "/lib/python"
11645 ,(version-major+minor (package-version python))
11646 "/site-packages"))
11647 (evdev (string-append
11648 (assoc-ref inputs "python-evdev") site))
11649 (pygo (string-append
11650 (assoc-ref inputs "python-pygobject") site))
11651 (python-wrap
11652 `("PYTHONPATH" = (,evdev ,pygo))))
11653 (wrap-program (string-append out "/bin/" "ratbagctl")
11654 python-wrap)
11655 #t))))))
11656 (native-inputs
11657 `(("check" ,check)
11658 ("pkg-config" ,pkg-config)
11659 ("swig" ,swig)
11660 ("valgrind" ,valgrind)))
11661 (inputs
11662 `(("glib" ,glib)
11663 ("json-glib" ,json-glib)
11664 ("libevdev" ,libevdev)
11665 ("libsystemd" ,elogind)
11666 ("libunistring" ,libunistring)
11667 ("python-evdev" ,python-evdev)
11668 ("python-pygobject" ,python-pygobject)
11669 ("udev" ,eudev)))
11670 (home-page "https://github.com/libratbag/libratbag")
11671 (synopsis "DBus daemon and utility for configuring gaming mice")
11672 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11673 configure input devices, mainly gaming mice. The daemon provides a generic
11674 way to access the various features exposed by these mice and abstracts away
11675 hardware-specific and kernel-specific quirks. There is also the
11676 @command{ratbagctl} command line interface for configuring devices.
11677
11678 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11679 Steelseries.
11680
11681 The ratbagd DBus service can be enabled by adding the following service to
11682 your operating-system definition:
11683
11684 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11685 (license license:expat)))
11686
11687 (define-public piper
11688 (package
11689 (name "piper")
11690 (version "0.5.1")
11691 (source
11692 (origin
11693 (method git-fetch)
11694 (uri (git-reference
11695 (url "https://github.com/libratbag/piper")
11696 (commit version)))
11697 (sha256
11698 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11699 (file-name (git-file-name name version))))
11700 (build-system meson-build-system)
11701 (native-inputs
11702 `(("gettext" ,gettext-minimal)
11703 ("glib:bin" ,glib "bin")
11704 ("gobject-introspection" ,gobject-introspection)
11705 ("pkg-config" ,pkg-config)
11706 ("python-flake8" ,python-flake8)))
11707 (inputs
11708 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11709 ("gtk" ,gtk+)
11710 ("gtk:bin" ,gtk+ "bin")
11711 ("librsvg" ,librsvg)
11712 ("python-evdev" ,python-evdev)
11713 ("python-lxml" ,python-lxml)
11714 ("python-pycairo" ,python-pycairo)
11715 ("python-pygobject" ,python-pygobject)))
11716 (arguments
11717 `(#:imported-modules ((guix build python-build-system)
11718 ,@%meson-build-system-modules)
11719 #:modules (((guix build python-build-system) #:prefix python:)
11720 (guix build meson-build-system)
11721 (guix build utils))
11722 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11723 #:phases
11724 (modify-phases %standard-phases
11725 (add-after 'unpack 'dont-update-gtk-icon-cache
11726 (lambda _
11727 (substitute* "meson.build"
11728 (("meson.add_install_script('meson_install.sh')") ""))
11729 #t))
11730 ;; TODO: Switch to wrap-script when it is fixed.
11731 (add-after 'install 'wrap-python
11732 (assoc-ref python:%standard-phases 'wrap))
11733 (add-after 'wrap-python 'wrap
11734 (lambda* (#:key outputs #:allow-other-keys)
11735 (wrap-program
11736 (string-append (assoc-ref outputs "out" )"/bin/piper")
11737 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11738 #t)))))
11739 (home-page "https://github.com/libratbag/piper/")
11740 (synopsis "Configure bindings and LEDs on gaming mice")
11741 (description "Piper is a GTK+ application for configuring gaming mice with
11742 onboard configuration for key bindings via libratbag. Piper requires
11743 a @command{ratbagd} daemon running with root privileges. It can be run
11744 manually as root, but is preferably configured as a DBus service that can
11745 launch on demand. This can be configured by enabling the following service,
11746 provided there is a DBus service present:
11747
11748 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11749 (license license:gpl2)))
11750
11751 (define-public parlatype
11752 (package
11753 (name "parlatype")
11754 (version "2.1")
11755 (source
11756 (origin
11757 (method git-fetch)
11758 (uri (git-reference
11759 (url "https://github.com/gkarsay/parlatype")
11760 (commit (string-append "v" version))))
11761 (file-name (git-file-name name version))
11762 (sha256
11763 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11764 (build-system meson-build-system)
11765 (arguments
11766 `(#:glib-or-gtk? #t
11767 #:tests? #f ;require internet access
11768 #:phases
11769 (modify-phases %standard-phases
11770 (add-after 'install 'wrap-parlatype
11771 ;; Add gstreamer plugin provided in this package to system's
11772 ;; plugins.
11773 (lambda* (#:key outputs #:allow-other-keys)
11774 (let* ((out (assoc-ref outputs "out"))
11775 (gst-plugin-path (string-append
11776 out "/lib/gstreamer-1.0/"
11777 ":"
11778 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11779 (wrap-program (string-append out "/bin/parlatype")
11780 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11781 #t)))))
11782 (native-inputs
11783 `(("appstream-glib" ,appstream-glib)
11784 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11785 ("gettext" ,gettext-minimal)
11786 ("glib" ,glib "bin") ;for glib-compile-resources
11787 ("pkg-config" ,pkg-config)
11788 ("yelp-tools" ,yelp-tools)))
11789 (inputs
11790 `(("gst-plugins-base" ,gst-plugins-base)
11791 ("gst-plugins-good" ,gst-plugins-good)
11792 ("gstreamer" ,gstreamer)
11793 ("gtk+" ,gtk+)
11794 ("pocketsphinx" ,pocketsphinx)
11795 ("pulseaudio" ,pulseaudio)
11796 ("sphinxbase" ,sphinxbase)))
11797 (home-page "http://gkarsay.github.io/parlatype/")
11798 (synopsis "GNOME audio player for transcription")
11799 (description "Parlatype is an audio player for the GNOME desktop
11800 environment. Its main purpose is the manual transcription of spoken
11801 audio files.")
11802 (license license:gpl3+)))
11803
11804 (define-public jsonrpc-glib
11805 (package
11806 (name "jsonrpc-glib")
11807 (version "3.34.0")
11808 (source (origin
11809 (method url-fetch)
11810 (uri (string-append "mirror://gnome/sources/" name "/"
11811 (version-major+minor version) "/"
11812 name "-" version ".tar.xz"))
11813 (sha256
11814 (base32
11815 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11816 (build-system meson-build-system)
11817 (inputs
11818 `(("json-glib" ,json-glib)
11819 ("glib" ,glib)))
11820 (native-inputs
11821 `(("pkg-config" ,pkg-config)
11822 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11823 ("gobject-introspection" ,gobject-introspection)
11824 ("vala" ,vala)))
11825 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11826 (synopsis "JSON-RPC library for GLib")
11827 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11828 peers in either a synchronous or asynchronous fashion. It also allows
11829 communicating using the GVariant serialization format instead of JSON when
11830 both peers support it. You might want that when communicating on a single
11831 host to avoid parser overhead and memory-allocator fragmentation.")
11832 (license license:lgpl2.1+)))
11833
11834 (define-public feedbackd
11835 (package
11836 (name "feedbackd")
11837 (version "0.0.0+git20200527")
11838 (source (origin
11839 (method git-fetch)
11840 (uri (git-reference
11841 (url "https://source.puri.sm/Librem5/feedbackd.git")
11842 (commit (string-append "v" version))))
11843 (file-name (git-file-name name version))
11844 (sha256
11845 (base32
11846 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11847 (build-system meson-build-system)
11848 (native-inputs
11849 `(("glib:bin" ,glib "bin")
11850 ("gobject-introspection" ,gobject-introspection)
11851 ("pkg-config" ,pkg-config)
11852 ("vala" ,vala)))
11853 (inputs
11854 `(("dbus" ,dbus)
11855 ("gsound" ,gsound)
11856 ("json-glib" ,json-glib)
11857 ("libgudev" ,libgudev)))
11858 (propagated-inputs
11859 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11860 (synopsis "Haptic/visual/audio feedback via DBus")
11861 (description "Feedbackd provides a DBus daemon to act on events to provide
11862 haptic, visual and audio feedback. It offers the libfeedbackd library and
11863 GObject introspection bindings.")
11864 (home-page "https://source.puri.sm/Librem5/feedbackd")
11865 (license (list license:lgpl2.1+ ; libfeedbackd
11866 license:lgpl3+)))) ; the rest
11867
11868 (define-public sysprof
11869 (package
11870 (name "sysprof")
11871 (version "3.36.0")
11872 (source
11873 (origin
11874 (method url-fetch)
11875 (uri (string-append "mirror://gnome/sources/sysprof/"
11876 (version-major+minor version) "/"
11877 "sysprof-" version ".tar.xz"))
11878 (sha256
11879 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11880 (build-system meson-build-system)
11881 (arguments
11882 `(#:configure-flags
11883 (list (string-append "-Dsystemdunitdir="
11884 %output
11885 "/share/systemd"))
11886 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11887 #:phases
11888 (modify-phases %standard-phases
11889 (add-after 'unpack 'patch-install-script
11890 (lambda _
11891 (substitute* "build-aux/meson/post_install.sh"
11892 (("gtk-update-icon-cache") "true")
11893 (("update-desktop-database") "true"))
11894 #t)))))
11895 (inputs
11896 `(("glib" ,glib)
11897 ("gtk+" ,gtk+)
11898 ("libdazzle" ,libdazzle)
11899 ("polkit" ,polkit)))
11900 (native-inputs
11901 `(("gettext" ,gettext-minimal)
11902 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11903 ("itstool" ,itstool)
11904 ("pkg-config" ,pkg-config)
11905 ("xmllint" ,libxml2)))
11906 ;; This home page is so woefully out of date as to be essentially useless.
11907 ;; (home-page "http://www.sysprof.com")
11908 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11909 (synopsis "System-wide performance profiler for GNU/Linux")
11910 (description
11911 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11912 GNU/Linux system including the kernel and all user-space applications. This
11913 helps find the function(s) in which a program spends most of its time.
11914
11915 It uses the kernel's built-in @code{ptrace} feature and handles shared
11916 libraries. Applications do not need to be recompiled--or even restarted.")
11917 (license license:gpl3+)))
11918
11919 (define-public gnome-builder
11920 (package
11921 (name "gnome-builder")
11922 (version "3.36.1")
11923 (source (origin
11924 (method url-fetch)
11925 (uri (string-append "mirror://gnome/sources/" name "/"
11926 (version-major+minor version) "/"
11927 name "-" version ".tar.xz"))
11928 (sha256
11929 (base32
11930 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11931 (build-system meson-build-system)
11932 (arguments
11933 `(#:configure-flags (list "-Dnetwork_tests=false"
11934 ;; TODO: Enable all plugins...
11935 "-Dplugin_clang=false"
11936 "-Dplugin_flatpak=false"
11937 "-Dplugin_glade=false"
11938 ;; XXX: This one has been shown not to work in
11939 ;; <https://issues.guix.gnu.org/45272>
11940 "-Dplugin_jedi=false"
11941 ;; ... except this one.
11942 "-Dplugin_update_manager=false")
11943 #:phases
11944 (modify-phases %standard-phases
11945 (add-after 'unpack 'patch-meson
11946 (lambda* (#:key inputs #:allow-other-keys)
11947 (substitute* "build-aux/meson/post_install.py"
11948 (("gtk-update-icon-cache") "true")
11949 (("update-desktop-database") "true"))
11950 (substitute* "src/libide/meson.build"
11951 (("/usr/lib")
11952 (string-append (assoc-ref inputs "python-pygobject")
11953 "/lib")))
11954 #t))
11955 (add-after 'configure 'fix-ninja
11956 (lambda _
11957 ;; #43296: meson(?) incorrectly assumes we want to link
11958 ;; this PIE against a static libselinux.
11959 (substitute* "build.ninja"
11960 (("libselinux\\.a") "libselinux.so"))
11961 #t))
11962 (add-before 'check 'pre-check
11963 (lambda _
11964 (system "Xvfb :1 &")
11965 (setenv "DISPLAY" ":1")
11966 #t)))))
11967 (inputs
11968 `(("devhelp" ,devhelp)
11969 ("gspell" ,gspell)
11970 ("gtk+" ,gtk+)
11971 ("json-glib" ,json-glib)
11972 ("jsonrpc-glib" ,jsonrpc-glib)
11973 ("libdazzle" ,libdazzle)
11974 ("libgit2-glib" ,libgit2-glib)
11975 ("libpeas" ,libpeas)
11976 ("python-pygobject" ,python-pygobject)
11977 ("sysprof" ,sysprof)
11978 ("template-glib" ,template-glib)
11979 ("vte" ,vte)
11980 ("webkitgtk" ,webkitgtk)))
11981 (propagated-inputs
11982 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11983 (native-inputs
11984 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11985 ("glib:bin" ,glib "bin")
11986 ("gettext" ,gettext-minimal)
11987 ("pkg-config" ,pkg-config)
11988 ("vala" ,vala)
11989 ("xorg-server" ,xorg-server-for-tests)))
11990 (home-page "https://wiki.gnome.org/Apps/Builder")
11991 (synopsis "Toolsmith for GNOME-based applications")
11992 (description "Builder aims to be an integrated development
11993 environment (IDE) for writing GNOME-based software. It features fuzzy search,
11994 auto-completion, a mini code map, documentation browsing, Git integration, an
11995 integrated profiler via Sysprof, debugging support, and more.")
11996 (license license:gpl3+)))
11997
11998 (define-public komikku
11999 (package
12000 (name "komikku")
12001 (version "0.29.2")
12002 (source
12003 (origin
12004 (method git-fetch)
12005 (uri (git-reference
12006 (url "https://gitlab.com/valos/Komikku/")
12007 (commit (string-append "v" version))))
12008 (file-name (git-file-name name version))
12009 (sha256
12010 (base32
12011 "0g1whk0y3k1cy6ix20gz226ww1vzpb9hinn5d24z6j38mdgqqa5l"))))
12012 (build-system meson-build-system)
12013 (arguments
12014 `(#:glib-or-gtk? #t
12015 #:phases
12016 (modify-phases %standard-phases
12017 (add-after 'unpack 'patch-sources
12018 (lambda _
12019 (substitute* "komikku/utils.py"
12020 (("from komikku\\.servers import get_servers_list")
12021 ;; code following that line should migrate old databases
12022 ;; but the line itself results in an import error
12023 "return data_dir_path"))))
12024 (add-after 'unpack 'skip-gtk-update-icon-cache
12025 (lambda _
12026 (substitute* "meson_post_install.py"
12027 (("gtk-update-icon-cache") (which "true")))
12028 #t))
12029 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12030 (lambda* (#:key outputs #:allow-other-keys)
12031 (let ((prog (string-append (assoc-ref outputs "out")
12032 "/bin/komikku")))
12033 (wrap-program prog
12034 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
12035 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12036 #t))))))
12037 (inputs
12038 `(("gtk+" ,gtk+)
12039 ("libhandy" ,libhandy)
12040 ("libnotify" ,libnotify)
12041 ("libsecret" ,libsecret)
12042 ("python-beautifulsoup4" ,python-beautifulsoup4)
12043 ("python-brotli" ,python-brotli)
12044 ("python-cloudscraper" ,python-cloudscraper)
12045 ("python-dateparser" ,python-dateparser)
12046 ("python-keyring" ,python-keyring)
12047 ("python-lxml" ,python-lxml)
12048 ("python-magic" ,python-magic)
12049 ("python-pillow" ,python-pillow)
12050 ("python-pure-protobuf" ,python-pure-protobuf)
12051 ("python-pycairo" ,python-pycairo)
12052 ("python-pygobject" ,python-pygobject)
12053 ("python-requests" ,python-requests)
12054 ("python-unidecode" ,python-unidecode)
12055 ("webkitgtk" ,webkitgtk)))
12056 (native-inputs
12057 `(("desktop-file-utils" ,desktop-file-utils)
12058 ("gettext" ,gettext-minimal)
12059 ("glib:bin" ,glib "bin")
12060 ("gobject-introspection" ,gobject-introspection)
12061 ("pkg-config" ,pkg-config)))
12062 (home-page "https://gitlab.com/valos/Komikku")
12063 (synopsis "Manga reader for GNOME")
12064 (description "Komikku is an online/offline manga reader for GNOME,
12065 developed with the aim of being used with the Librem 5 phone.")
12066 (license license:gpl3+)))
12067
12068 (define-public libgda
12069 (package
12070 (name "libgda")
12071 (version "5.2.10")
12072 (source
12073 (origin
12074 (method git-fetch)
12075 (uri (git-reference
12076 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
12077 (commit (string-append "LIBGDA_" (string-replace-substring
12078 version "." "_")))))
12079 (file-name (git-file-name name version))
12080 (sha256
12081 (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
12082 (build-system gnu-build-system)
12083 (arguments
12084 `(#:configure-flags '("--enable-vala")
12085 ;; There's a race between check_cnc_lock and check_threaded_cnc
12086 ;; in tests/multi-threading.
12087 #:parallel-tests? #f
12088 #:phases
12089 (modify-phases %standard-phases
12090 (add-after 'unpack 'fix-glade-install
12091 (lambda _
12092 (substitute* "configure.ac"
12093 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
12094 "${datadir}/glade/catalogs")
12095 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
12096 "${datadir}/glade/pixmaps"))
12097 #t))
12098 (add-before 'check 'pre-check
12099 (lambda* (#:key inputs #:allow-other-keys)
12100 ;; Tests require a running X server.
12101 (system "Xvfb :1 &")
12102 (setenv "DISPLAY" ":1")
12103 #t))
12104 (add-after 'install 'symlink-glade-module
12105 (lambda* (#:key outputs #:allow-other-keys)
12106 (let* ((shlib "libgda-ui-5.0.so")
12107 (out (assoc-ref outputs "out"))
12108 (out/lib (string-append out "/lib"))
12109 (moduledir (string-append out/lib "/glade/modules")))
12110 (mkdir-p moduledir)
12111 (symlink (string-append out/lib "/" shlib)
12112 (string-append moduledir "/" shlib))
12113 #t))))))
12114 (propagated-inputs
12115 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
12116 (inputs
12117 `(("glib" ,glib)
12118 ("glade" ,glade3)
12119 ("gtk+" ,gtk+)
12120 ("libsecret" ,libsecret)
12121 ("libxslt" ,libxslt)
12122 ("openssl" ,openssl)
12123 ("vala" ,vala)))
12124 (native-inputs
12125 `(("autoconf" ,autoconf)
12126 ("autoconf-archive" ,autoconf-archive)
12127 ("automake" ,automake)
12128 ("glib:bin" ,glib "bin")
12129 ("gnome-common" ,gnome-common)
12130 ("gobject-introspection" ,gobject-introspection)
12131 ("gtk-doc" ,gtk-doc/stable)
12132 ("intltool" ,intltool)
12133 ("libtool" ,libtool)
12134 ("pkg-config" ,pkg-config)
12135 ("vala" ,vala)
12136 ("which" ,which)
12137 ("xorg-server" ,xorg-server-for-tests)
12138 ("yelp-tools" ,yelp-tools)))
12139 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12140 (synopsis "Uniform data access")
12141 (description
12142 "GNU Data Access (GDA) is an attempt to provide uniform access to
12143 different kinds of data sources (databases, information servers, mail spools,
12144 etc). It is a complete architecture that provides all you need to access
12145 your data.")
12146 (license license:lgpl2.1+)))
12147
12148 (define-public gtranslator
12149 (package
12150 (name "gtranslator")
12151 (version "3.36.0")
12152 (source (origin
12153 (method url-fetch)
12154 (uri (string-append "mirror://gnome/sources/" name "/"
12155 (version-major+minor version) "/"
12156 name "-" version ".tar.xz"))
12157 (sha256
12158 (base32
12159 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
12160 (build-system meson-build-system)
12161 (inputs
12162 `(("json-glib" ,json-glib)
12163 ("jsonrpc-glib" ,jsonrpc-glib)
12164 ("gettext" ,gettext-minimal)
12165 ("glib" ,glib)
12166 ("gtk+" ,gtk+)
12167 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12168 ("gspell" ,gspell)
12169 ("libdazzle" ,libdazzle)
12170 ("libgda" ,libgda)
12171 ("libsoup" ,libsoup)))
12172 (native-inputs
12173 `(("glib:bin" ,glib "bin")
12174 ("itstool" ,itstool)
12175 ("pkg-config" ,pkg-config)))
12176 (propagated-inputs
12177 `(("gtksourceview" ,gtksourceview))) ; required for source view
12178 (arguments
12179 `(#:build-type "release"
12180 #:glib-or-gtk? #t
12181 #:phases
12182 (modify-phases %standard-phases
12183 (add-after 'unpack 'skip-gtk-update-icon-cache
12184 (lambda _
12185 (substitute* "build-aux/meson/meson_post_install.py"
12186 (("gtk-update-icon-cache") (which "true")))
12187 #t)))))
12188 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12189 (synopsis "Translation making program")
12190 (description
12191 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12192 for the GNOME 3.x platform with many features. It aims to be a very complete
12193 editing environment for translation issues within the GNU gettext/GNOME desktop
12194 world.")
12195 (license license:gpl3+)))
12196
12197
12198 (define-public ocrfeeder
12199 (package
12200 (name "ocrfeeder")
12201 (version "0.8.3")
12202 (source (origin
12203 (method url-fetch)
12204 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12205 (version-major+minor version) "/"
12206 "ocrfeeder-" version ".tar.xz"))
12207 (sha256
12208 (base32
12209 "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529"))))
12210 (build-system gnu-build-system)
12211 (arguments
12212 `(#:phases
12213 (modify-phases %standard-phases
12214 (add-after
12215 'install 'wrap-program
12216 (lambda* (#:key outputs #:allow-other-keys)
12217 (let ((prog (string-append (assoc-ref outputs "out")
12218 "/bin/" "ocrfeeder"))
12219 (pylib (string-append (assoc-ref outputs "out")
12220 "/lib/python"
12221 ,(version-major+minor
12222 (package-version python))
12223 "/site-packages")))
12224 (wrap-program prog
12225 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
12226 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12227 #t))))))
12228 (native-inputs
12229 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12230 ("gobject-introspection" ,gobject-introspection)
12231 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12232 ("intltool" ,intltool)
12233 ("itstool" ,itstool)
12234 ("pkg-config" ,pkg-config)
12235 ("xmllint" ,libxml2)))
12236 (inputs
12237 `(("enchant" ,enchant)
12238 ("glib" ,glib)
12239 ("goocanvas" ,goocanvas)
12240 ("gtk" ,gtk+)
12241 ("gtkspell3" ,gtkspell3)
12242 ("libjpeg" ,libjpeg-turbo)
12243 ("libtiff" ,libtiff)
12244 ("libraw" ,libraw)
12245 ("ocrad" ,ocrad)
12246 ("python" ,python-wrapper)
12247 ("python-pygobject" ,python-pygobject)
12248 ("python-odfpy" ,python-odfpy)
12249 ("python-pillow" ,python-pillow)
12250 ("python-pyenchant" ,python-pyenchant)
12251 ("python-reportlab" ,python-reportlab)
12252 ("python-sane" ,python-sane)
12253 ("sane-backends" ,sane-backends)
12254 ("tesseract-ocr" ,tesseract-ocr)))
12255 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12256 (synopsis "Complete OCR Suite")
12257 (description "OCRFeeder is a complete Optical Character Recognition and
12258 Document Analysis and Recognition program.")
12259 (license license:gpl3+)))