gnu: drawing: Update to 0.8.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 haskell-xyz)
131 #:use-module (gnu packages ibus)
132 #:use-module (gnu packages icu4c)
133 #:use-module (gnu packages image)
134 #:use-module (gnu packages imagemagick)
135 #:use-module (gnu packages inkscape)
136 #:use-module (gnu packages iso-codes)
137 #:use-module (gnu packages kerberos)
138 #:use-module (gnu packages libcanberra)
139 #:use-module (gnu packages libffi)
140 #:use-module (gnu packages libunistring)
141 #:use-module (gnu packages libunwind)
142 #:use-module (gnu packages libusb)
143 #:use-module (gnu packages linux)
144 #:use-module (gnu packages lirc)
145 #:use-module (gnu packages lua)
146 #:use-module (gnu packages mail)
147 #:use-module (gnu packages mp3)
148 #:use-module (gnu packages multiprecision)
149 #:use-module (gnu packages music)
150 #:use-module (gnu packages ncurses)
151 #:use-module (gnu packages nettle)
152 #:use-module (gnu packages networking)
153 #:use-module (gnu packages ninja)
154 #:use-module (gnu packages node)
155 #:use-module (gnu packages nss)
156 #:use-module (gnu packages ocr)
157 #:use-module (gnu packages openldap)
158 #:use-module (gnu packages package-management)
159 #:use-module (gnu packages password-utils)
160 #:use-module (gnu packages pcre)
161 #:use-module (gnu packages pdf)
162 #:use-module (gnu packages perl)
163 #:use-module (gnu packages photo)
164 #:use-module (gnu packages php)
165 #:use-module (gnu packages pkg-config)
166 #:use-module (gnu packages polkit)
167 #:use-module (gnu packages popt)
168 #:use-module (gnu packages pretty-print)
169 #:use-module (gnu packages protobuf)
170 #:use-module (gnu packages pulseaudio)
171 #:use-module (gnu packages python)
172 #:use-module (gnu packages python-compression)
173 #:use-module (gnu packages python-crypto)
174 #:use-module (gnu packages python-web)
175 #:use-module (gnu packages python-xyz)
176 #:use-module (gnu packages rdesktop)
177 #:use-module (gnu packages rdf)
178 #:use-module (gnu packages readline)
179 #:use-module (gnu packages ruby)
180 #:use-module (gnu packages rust)
181 #:use-module (gnu packages samba)
182 #:use-module (gnu packages scanner)
183 #:use-module (gnu packages sdl)
184 #:use-module (gnu packages search)
185 #:use-module (gnu packages selinux)
186 #:use-module (gnu packages slang)
187 #:use-module (gnu packages speech)
188 #:use-module (gnu packages spice)
189 #:use-module (gnu packages sqlite)
190 #:use-module (gnu packages ssh)
191 #:use-module (gnu packages swig)
192 #:use-module (gnu packages tex)
193 #:use-module (gnu packages time)
194 #:use-module (gnu packages tls)
195 #:use-module (gnu packages valgrind)
196 #:use-module (gnu packages version-control)
197 #:use-module (gnu packages video)
198 #:use-module (gnu packages virtualization)
199 #:use-module (gnu packages vpn)
200 #:use-module (gnu packages web)
201 #:use-module (gnu packages webkit)
202 #:use-module (gnu packages xdisorg)
203 #:use-module (gnu packages xiph)
204 #:use-module (gnu packages xml)
205 #:use-module (gnu packages xorg)
206 #:use-module (gnu artwork)
207 #:use-module (guix build-system cargo)
208 #:use-module (guix build-system cmake)
209 #:use-module (guix build-system glib-or-gtk)
210 #:use-module (guix build-system gnu)
211 #:use-module (guix build-system meson)
212 #:use-module (guix build-system python)
213 #:use-module (guix build-system trivial)
214 #:use-module (guix download)
215 #:use-module (guix git-download)
216 #:use-module ((guix licenses) #:prefix license:)
217 #:use-module (guix packages)
218 #:use-module (guix utils)
219 #:use-module (guix gexp)
220 #:use-module (ice-9 match)
221 #:use-module (srfi srfi-1))
222
223 (define-public gupnp-igd
224 (package
225 (name "gupnp-igd")
226 (version "1.2.0")
227 (source
228 (origin
229 (method url-fetch)
230 (uri
231 (string-append "mirror://gnome/sources/" name "/"
232 (version-major+minor version) "/"
233 name "-" version ".tar.xz"))
234 (sha256
235 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
236 (build-system meson-build-system)
237 (outputs '("out" "doc"))
238 (arguments
239 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
240 #:configure-flags (list "-Dgtk_doc=true")
241 #:phases
242 (modify-phases %standard-phases
243 (add-after 'unpack 'patch-docbook-xml
244 (lambda* (#:key inputs #:allow-other-keys)
245 (with-directory-excursion "doc"
246 (substitute* "gupnp-igd-docs.xml"
247 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
248 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
249 "/xml/dtd/docbook/"))))
250 #t))
251 (add-after 'install 'move-doc
252 (lambda* (#:key outputs #:allow-other-keys)
253 (let* ((out (assoc-ref outputs "out"))
254 (doc (assoc-ref outputs "doc")))
255 (mkdir-p (string-append doc "/share"))
256 (rename-file
257 (string-append out "/share/gtk-doc")
258 (string-append doc "/share/gtk-doc"))
259 #t))))))
260 (native-inputs
261 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
262 ("docbook-xsl" ,docbook-xsl)
263 ("glib:bin" ,glib "bin")
264 ("gobject-introspection" ,gobject-introspection)
265 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
266 ("gtk-doc" ,gtk-doc/stable)
267 ("pkg-config" ,pkg-config)))
268 (propagated-inputs
269 `(("glib" ,glib)
270 ("glib-networking" ,glib-networking)
271 ("gssdp" ,gssdp)
272 ("gupnp" ,gupnp)
273 ("libsoup" ,libsoup)))
274 (synopsis "UPnP IGD for GNOME")
275 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
276 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
277 (license license:lgpl2.1+)))
278
279 (define-public brasero
280 (package
281 (name "brasero")
282 (version "3.12.2")
283 (source (origin
284 (method url-fetch)
285 (uri (string-append "mirror://gnome/sources/brasero/"
286 (version-major+minor version) "/"
287 "brasero-" version ".tar.xz"))
288 (sha256
289 (base32
290 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
291 (build-system glib-or-gtk-build-system)
292 (arguments
293 `(#:configure-flags (list
294 (string-append "--with-girdir="
295 (assoc-ref %outputs "out")
296 "/share/gir-1.0")
297 (string-append "--with-typelibdir="
298 (assoc-ref %outputs "out")
299 "/lib/girepository-1.0"))
300 #:phases
301 (modify-phases %standard-phases
302 (add-before 'configure 'embed-growisofs
303 (lambda* (#:key inputs #:allow-other-keys)
304 (substitute* "plugins/growisofs/burn-growisofs.c"
305 (("\"growisofs") (string-append "\"" (which "growisofs"))))
306 #t)))))
307 (propagated-inputs
308 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
309 (native-inputs
310 `(("intltool" ,intltool)
311 ("itstool" ,itstool)
312 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
313 ("gobject-introspection" ,gobject-introspection)
314 ("pkg-config" ,pkg-config)))
315 (inputs
316 `(("dvd+rw-tools" ,dvd+rw-tools)
317 ("glib" ,glib)
318 ("gnome-doc-utils" ,gnome-doc-utils)
319 ("gstreamer" ,gstreamer)
320 ("gst-plugins-base" ,gst-plugins-base)
321 ("gtk+" ,gtk+)
322 ("libcanberra" ,libcanberra)
323 ("libice" ,libice)
324 ("libnotify" ,libnotify)
325 ("libsm" ,libsm)
326 ("libxml2" ,libxml2)
327 ("totem-pl-parser" ,totem-pl-parser)))
328 (home-page "https://wiki.gnome.org/Apps/Brasero")
329 (synopsis "CD/DVD burning tool for Gnome")
330 (description "Brasero is an application to burn CD/DVD for the Gnome
331 Desktop. It is designed to be as simple as possible and has some unique
332 features to enable users to create their discs easily and quickly.")
333 (license license:gpl2+)))
334
335 (define-public libcloudproviders
336 (package
337 (name "libcloudproviders")
338 (version "0.3.1")
339 (source
340 (origin
341 (method url-fetch)
342 (uri
343 (string-append "mirror://gnome/sources/" name "/"
344 (version-major+minor version) "/"
345 name "-" version ".tar.xz"))
346 (sha256
347 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
348 (build-system meson-build-system)
349 (outputs '("out" "doc"))
350 (arguments
351 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
352 #:configure-flags
353 (list
354 "-Denable-gtk-doc=true")
355 #:phases
356 (modify-phases %standard-phases
357 (add-after 'install 'move-doc
358 (lambda* (#:key outputs #:allow-other-keys)
359 (let* ((out (assoc-ref outputs "out"))
360 (doc (assoc-ref outputs "doc")))
361 (mkdir-p (string-append doc "/share"))
362 (rename-file
363 (string-append out "/share/gtk-doc")
364 (string-append doc "/share/gtk-doc"))
365 #t))))))
366 (native-inputs
367 `(("glib:bin" ,glib "bin")
368 ("gobject-introspection" ,gobject-introspection)
369 ("gtk-doc" ,gtk-doc/stable)
370 ("pkg-config" ,pkg-config)
371 ("vala" ,vala)))
372 (inputs
373 `(("glib" ,glib)
374 ("glib-networking" ,glib-networking)))
375 (synopsis "Cloudproviders Integration API")
376 (description "Libcloudproviders is a DBus API that allows cloud storage sync
377 clients to expose their services. Clients such as file managers and desktop
378 environments can then provide integrated access to the cloud providers
379 services.")
380 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
381 (license license:lgpl3+)))
382
383 (define-public libgrss
384 (package
385 (name "libgrss")
386 (version "0.7.0")
387 (source
388 (origin
389 (method url-fetch)
390 (uri
391 (string-append "mirror://gnome/sources/" name "/"
392 (version-major+minor version) "/"
393 name "-" version ".tar.xz"))
394 (sha256
395 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))
396 (patches
397 (search-patches "libgrss-CVE-2016-2001.patch"))))
398 (build-system glib-or-gtk-build-system)
399 (outputs '("out" "doc"))
400 (arguments
401 `(#:configure-flags
402 (list
403 "--enable-gtk-doc"
404 (string-append "--with-html-dir="
405 (assoc-ref %outputs "doc")
406 "/share/gtk-doc/html"))
407 #:phases
408 (modify-phases %standard-phases
409 (add-after 'unpack 'patch-docbook-xml
410 (lambda* (#:key inputs #:allow-other-keys)
411 (with-directory-excursion "doc/reference"
412 (substitute* "libgrss-docs.sgml"
413 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
414 (string-append (assoc-ref inputs "docbook-xml")
415 "/xml/dtd/docbook/"))))
416 #t)))))
417 (native-inputs
418 `(("docbook-xml" ,docbook-xml-4.1.2)
419 ("gobject-introspection" ,gobject-introspection)
420 ("gtk-doc" ,gtk-doc/stable)
421 ("pkg-config" ,pkg-config)))
422 (propagated-inputs
423 `(("glib" ,glib)
424 ("libsoup" ,libsoup)
425 ("libxml2" ,libxml2)))
426 (synopsis "Glib library for feeds")
427 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
428 and other formats.")
429 (home-page "https://wiki.gnome.org/Projects/Libgrss")
430 (license license:lgpl3+)))
431
432 (define-public gnome-js-common
433 (package
434 (name "gnome-js-common")
435 (version "0.1.2")
436 (source
437 (origin
438 (method url-fetch)
439 (uri
440 (string-append "mirror://gnome/sources/" name "/"
441 (version-major+minor version) "/"
442 name "-" version ".tar.gz"))
443 (sha256
444 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
445 (build-system glib-or-gtk-build-system)
446 (arguments
447 `(#:configure-flags
448 (list
449 "--disable-static")))
450 (native-inputs
451 `(("gettext" ,gettext-minimal)
452 ("intltool" ,intltool)
453 ("pkg-config" ,pkg-config)))
454 (synopsis "Common JS Modules")
455 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
456 bindings.")
457 (home-page "https://wiki.gnome.org/Projects/Seed")
458 (license license:gpl3+)))
459
460 (define-public seed
461 (package
462 (name "seed")
463 (version "3.8.1")
464 (source
465 (origin
466 (method url-fetch)
467 (uri
468 (string-append "mirror://gnome/sources/" name "/"
469 (version-major+minor version) "/"
470 name "-" version ".tar.xz"))
471 (sha256
472 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
473 (patches
474 (search-patches "seed-webkit.patch"))))
475 (build-system glib-or-gtk-build-system)
476 (outputs '("out" "doc"))
477 (arguments
478 `(#:configure-flags
479 (list
480 "--disable-static"
481 "--enable-xorg-module"
482 (string-append "--with-html-dir="
483 (assoc-ref %outputs "doc")
484 "/share/gtk-doc/html")
485 "--with-webkit=4.0")
486 #:phases
487 (modify-phases %standard-phases
488 ;; The seed-webkit.patch patches configure.ac.
489 ;; So the source files need to be re-bootstrapped.
490 (add-after 'unpack 'trigger-bootstrap
491 (lambda _
492 (for-each delete-file
493 (list
494 "configure"
495 "Makefile.in"))
496 #t))
497 (add-after 'unpack 'patch-tests
498 (lambda* (#:key outputs #:allow-other-keys)
499 (substitute* (find-files "." "\\.js$")
500 (("#!/usr/bin/env seed")
501 (string-append "#!" (getcwd) "/src/seed")))
502 #t))
503 (add-before 'build 'patch-docbook-xml
504 (lambda* (#:key inputs #:allow-other-keys)
505 (with-directory-excursion "doc"
506 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
507 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
508 (string-append (assoc-ref inputs "docbook-xml")
509 "/xml/dtd/docbook/"))))
510 #t)))))
511 (native-inputs
512 `(("autoconf" ,autoconf)
513 ("automake" ,automake)
514 ("docbook-xml" ,docbook-xml-4.1.2)
515 ("gettext" ,gettext-minimal)
516 ("gobject-introspection" ,gobject-introspection)
517 ("gtk-doc" ,gtk-doc/stable)
518 ("intltool" ,intltool)
519 ("libtool" ,libtool)
520 ("pkg-config" ,pkg-config)))
521 (inputs
522 `(("cairo" ,cairo)
523 ("dbus" ,dbus)
524 ("dbus-glib" ,dbus-glib)
525 ("gnome-js-common" ,gnome-js-common)
526 ("gtk+" ,gtk+)
527 ("gtk+-2" ,gtk+-2)
528 ("libffi" ,libffi)
529 ("libxml2" ,libxml2)
530 ("mpfr" ,mpfr)
531 ("readline" ,readline)
532 ("sqlite" ,sqlite)
533 ("xscrnsaver" ,libxscrnsaver)))
534 (propagated-inputs
535 `(("glib" ,glib)
536 ("webkit" ,webkitgtk)))
537 (synopsis "GObject JavaScriptCore bridge")
538 (description "Seed is a library and interpreter, dynamically bridging
539 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
540 GNOME platform. It serves as something which enables you to write standalone
541 applications in JavaScript, or easily enable your application to be extensible
542 in JavaScript.")
543 (home-page "https://wiki.gnome.org/Projects/Seed")
544 (license license:lgpl2.0+)))
545
546 (define-public libdmapsharing
547 (package
548 (name "libdmapsharing")
549 (version "3.9.10")
550 (source
551 (origin
552 (method url-fetch)
553 (uri
554 (string-append "https://www.flyn.org/projects/"
555 name "/" name "-" version ".tar.gz"))
556 (sha256
557 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
558 (build-system glib-or-gtk-build-system)
559 (outputs '("out" "doc"))
560 (arguments
561 `(#:tests? #f ; Tests require networking.
562 #:configure-flags
563 (list
564 "--disable-static"
565 (string-append "--with-html-dir="
566 (assoc-ref %outputs "doc")
567 "/share/gtk-doc/html"))
568 #:phases
569 (modify-phases %standard-phases
570 (add-after 'unpack 'patch-docbook-xml
571 (lambda* (#:key inputs #:allow-other-keys)
572 (with-directory-excursion "doc"
573 (substitute* "libdmapsharing-4.0-docs.xml"
574 (("http://www.oasis-open.org/docbook/xml/4.3/")
575 (string-append (assoc-ref inputs "docbook-xml")
576 "/xml/dtd/docbook/"))))
577 #t)))))
578 (native-inputs
579 `(("check" ,check)
580 ("docbook-xml" ,docbook-xml-4.3)
581 ("gobject-introspection" ,gobject-introspection)
582 ("pedansee" ,pedansee)
583 ("pkg-config" ,pkg-config)
584 ("vala" ,vala)))
585 (inputs
586 `(("avahi" ,avahi)
587 ("gdk-pixbuf" ,gdk-pixbuf+svg)
588 ("gee" ,libgee)
589 ("gst-plugins-base" ,gst-plugins-base)
590 ("gtk+" ,gtk+)))
591 (propagated-inputs
592 `(("glib" ,glib)
593 ("glib-networking" ,glib-networking)
594 ("gstreamer" ,gstreamer)
595 ("libsoup" ,libsoup)))
596 (synopsis "Media management library")
597 (description "Libdmapsharing is a library which allows programs to access,
598 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
599 It is written in C using GObject and libsoup.")
600 (home-page "https://launchpad.net/gtx")
601 (license license:lgpl2.1+)))
602
603 (define-public gtx
604 (package
605 (name "gtx")
606 (version "0.2.2")
607 (source
608 (origin
609 (method url-fetch)
610 (uri
611 (string-append "https://launchpad.net/gtx/trunk/"
612 version "/+download/gtx-" version ".tar.gz"))
613 (sha256
614 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
615 (build-system glib-or-gtk-build-system)
616 (outputs '("out" "doc"))
617 (arguments
618 `(#:configure-flags
619 (list
620 "--disable-static"
621 "--enable-gtk-doc"
622 (string-append "--with-html-dir="
623 (assoc-ref %outputs "doc")
624 "/share/gtk-doc/html"))))
625 (native-inputs
626 `(("gobject-introspection" ,gobject-introspection)
627 ("gtk-doc" ,gtk-doc/stable)
628 ("pkg-config" ,pkg-config)))
629 (propagated-inputs
630 `(("glib" ,glib)))
631 (synopsis "GLib Testing Framework")
632 (description "GTX is a small collection of convenience functions intended to
633 enhance the GLib testing framework. With specific emphasis on easing the pain
634 of writing test cases for asynchronous interactions.")
635 (home-page "https://launchpad.net/gtx")
636 (license license:lgpl2.1+)))
637
638 (define-public dee
639 (package
640 (name "dee")
641 (version "1.2.7")
642 (source
643 (origin
644 (method url-fetch)
645 (uri
646 (string-append "https://launchpad.net/dee/1.0/"
647 version "/+download/dee-" version ".tar.gz"))
648 (sha256
649 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
650 (patches
651 (search-patches "dee-vapi.patch"))))
652 (build-system glib-or-gtk-build-system)
653 (outputs '("out" "doc"))
654 (arguments
655 `(#:configure-flags
656 (list
657 "--disable-maintainer-flags"
658 (string-append "--with-pygi-overrides-dir="
659 (assoc-ref %outputs "out")
660 "/lib/python"
661 ,(version-major+minor
662 (package-version python))
663 "/site-packages/gi/overrides")
664 (string-append "--with-html-dir="
665 (assoc-ref %outputs "doc")
666 "/share/gtk-doc/html"))
667 #:phases
668 (modify-phases %standard-phases
669 (add-after 'unpack 'patch-docbook-xml
670 (lambda* (#:key inputs #:allow-other-keys)
671 (with-directory-excursion "doc/reference/dee-1.0"
672 (substitute* "dee-1.0-docs.sgml"
673 (("http://www.oasis-open.org/docbook/xml/4.3/")
674 (string-append (assoc-ref inputs "docbook-xml")
675 "/xml/dtd/docbook/"))))
676 #t))
677 (add-after 'patch-docbook-xml 'disable-failing-tests
678 (lambda _
679 (substitute* "tests/test-icu.c"
680 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
681 "")
682 (("setup, test_ascii_folder, teardown\\);")
683 ""))
684 #t))
685 (add-before 'check 'pre-check
686 (lambda _
687 ;; Tests require a running dbus-daemon.
688 (system "dbus-daemon &")
689 ;; For missing '/etc/machine-id'.
690 (setenv "DBUS_FATAL_WARNINGS" "0")
691 #t)))))
692 (native-inputs
693 `(("dbus" ,dbus)
694 ("dbus-test-runner" ,dbus-test-runner)
695 ("docbook-xml" ,docbook-xml-4.3)
696 ("gobject-introspection" ,gobject-introspection)
697 ("gtk-doc" ,gtk-doc/stable)
698 ;; Would only be required by configure flag "--enable-extended-tests".
699 ;("gtx" ,gtx)
700 ("pkg-config" ,pkg-config)
701 ("pygobject" ,python-pygobject)
702 ("python" ,python-wrapper)
703 ("vala" ,vala)))
704 (inputs
705 `(("icu" ,icu4c)))
706 (propagated-inputs
707 `(("glib" ,glib)))
708 (synopsis "Model to synchronize multiple instances over DBus")
709 (description "Dee is a library that uses DBus to provide objects allowing
710 you to create Model-View-Controller type programs across DBus. It also consists
711 of utility objects which extend DBus allowing for peer-to-peer discoverability
712 of known objects without needing a central registrar.")
713 (home-page "https://launchpad.net/dee")
714 (license
715 ;; Dual-licensed
716 (list
717 license:lgpl3+
718 license:gpl3+))))
719
720 (define-public zeitgeist
721 (package
722 (name "zeitgeist")
723 (version "1.0.3")
724 (source
725 (origin
726 (method git-fetch)
727 (uri
728 (git-reference
729 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
730 (commit
731 (string-append "v" version))))
732 (file-name
733 (git-file-name name version))
734 (sha256
735 (base32 "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp"))))
736 (build-system glib-or-gtk-build-system)
737 (arguments
738 `(#:configure-flags
739 (list
740 "--enable-explain-queries"
741 "--enable-fts"
742 "--enable-docs")
743 #:phases
744 (modify-phases %standard-phases
745 (add-after 'unpack 'patch-docbook-xml
746 (lambda* (#:key inputs #:allow-other-keys)
747 (with-directory-excursion "doc/libzeitgeist"
748 (substitute* "zeitgeist-gtkdoc-index.sgml"
749 (("http://www.oasis-open.org/docbook/xml/4.3/")
750 (string-append (assoc-ref inputs "docbook-xml")
751 "/xml/dtd/docbook/"))))
752 #t))
753 (add-after 'patch-docbook-xml 'disable-failing-tests
754 (lambda _
755 (substitute* "test/direct/Makefile.am"
756 ((" log-test ")
757 ""))
758 (substitute* "test/c/Makefile.am"
759 ((" test-log ")
760 ""))
761 #t))
762 (add-before 'bootstrap 'remove-autogen-script
763 (lambda _
764 ;; To honor `autoreconf -vif` by build-system.
765 (delete-file "autogen.sh")
766 #t)))))
767 (native-inputs
768 `(("autoconf" ,autoconf)
769 ("automake" ,automake)
770 ("docbook-xml" ,docbook-xml-4.3)
771 ("gettext" ,gettext-minimal)
772 ("gobject-introspection" ,gobject-introspection)
773 ("gtk-doc" ,gtk-doc/stable)
774 ("libtool" ,libtool)
775 ("pkg-config" ,pkg-config)
776 ("vala" ,vala)
777 ("xorg-server-for-tests" ,xorg-server-for-tests)))
778 (inputs
779 `(("dee-icu" ,dee)
780 ("gtk+" ,gtk+)
781 ("json-glib" ,json-glib)
782 ("sqlite" ,sqlite)
783 ("telepathy-glib" ,telepathy-glib)
784 ("python" ,python-wrapper)
785 ("python-rdflib" ,python-rdflib)
786 ("xapian-config" ,xapian)))
787 (propagated-inputs
788 `(("glib" ,glib)))
789 (synopsis "Desktop Activity Logging")
790 (description "Zeitgeist is a service which logs the users’s activities and
791 events, anywhere from files opened to websites visited and conversations. It
792 makes this information readily available for other applications to use. It is
793 able to establish relationships between items based on similarity and usage
794 patterns.")
795 (home-page "https://zeitgeist.freedesktop.org/")
796 (license
797 ;; Dual-licensed
798 (list
799 license:lgpl2.1+
800 license:gpl2+))))
801
802 (define-public gnome-recipes
803 (package
804 (name "gnome-recipes")
805 (version "2.0.4")
806 (source (origin
807 (method git-fetch)
808 (uri (git-reference
809 (url "https://gitlab.gnome.org/GNOME/recipes")
810 (commit version)))
811 (file-name (git-file-name name version))
812 (sha256
813 (base32
814 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
815 (build-system meson-build-system)
816 (arguments
817 `(#:glib-or-gtk? #t
818 #:phases
819 (modify-phases %standard-phases
820 (add-after 'unpack 'skip-gtk-update-icon-cache
821 (lambda _
822 (substitute* "meson_post_install.py"
823 (("gtk-update-icon-cache") (which "true")))
824 #t))
825 (add-after 'unpack 'unpack-libgd
826 (lambda* (#:key inputs #:allow-other-keys)
827 (let ((libgd (assoc-ref inputs "libgd")))
828 (copy-recursively libgd "subprojects/libgd")
829 #t))))))
830 (inputs
831 `(("glib" ,glib)
832 ("gnome-autoar" ,gnome-autoar)
833 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
834 ("gspell" ,gspell)
835 ("gtk+" ,gtk+)
836 ("json-glib" ,json-glib)
837 ("libcanberra" ,libcanberra)
838 ("libsoup" ,libsoup)
839 ("rest" ,rest)))
840 (native-inputs
841 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
842 ("gettext" ,gettext-minimal)
843 ("glib:bin" ,glib "bin")
844 ("itstool" ,itstool)
845 ("libgd"
846 ,(origin
847 (method git-fetch)
848 (uri (git-reference
849 (url "https://gitlab.gnome.org/GNOME/libgd")
850 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
851 (file-name (git-file-name "libgd" version))
852 (sha256
853 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
854 ("pkg-config" ,pkg-config)))
855 (home-page "https://wiki.gnome.org/Apps/Recipes")
856 (synopsis "Discover recipes for preparing food")
857 (description "GNOME Recipes helps you discover what to cook today,
858 tomorrow, the rest of the week and for special occasions.")
859 (license license:gpl3+)))
860
861 (define-public gnome-photos
862 (package
863 (name "gnome-photos")
864 (version "3.34.2")
865 (source
866 (origin
867 (method url-fetch)
868 (uri
869 (string-append "mirror://gnome/sources/" name "/"
870 (version-major+minor version) "/"
871 name "-" version ".tar.xz"))
872 (sha256
873 (base32
874 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
875 (build-system meson-build-system)
876 (arguments
877 `(#:glib-or-gtk? #t
878 #:configure-flags
879 (list "-Ddogtail=false" ; Not available
880 ;; Required for RUNPATH validation.
881 (string-append "-Dc_link_args=-Wl,-rpath="
882 (assoc-ref %outputs "out") "/lib/gnome-photos"))
883 #:phases
884 (modify-phases %standard-phases
885 (add-after 'install 'wrap-gnome-photos
886 (lambda* (#:key inputs outputs #:allow-other-keys)
887 (let*
888 ((out (assoc-ref outputs "out")))
889 (wrap-program (string-append out "/bin/gnome-photos")
890 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
891 #t)))))
892 (native-inputs
893 `(("dbus" ,dbus)
894 ("desktop-file-utils" ,desktop-file-utils)
895 ("gettext" ,gettext-minimal)
896 ("git" ,git-minimal)
897 ("glib:bin" ,glib "bin")
898 ("gobject-introspection" ,gobject-introspection)
899 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
900 ("gtk+:bin" ,gtk+ "bin")
901 ("itstool" ,itstool)
902 ("pkg-config" ,pkg-config)))
903 (inputs
904 `(("babl" ,babl)
905 ("cairo" ,cairo)
906 ("gdk-pixbuf" ,gdk-pixbuf+svg)
907 ("gegl" ,gegl)
908 ("geocode-glib" ,geocode-glib)
909 ("gexiv2" ,gexiv2)
910 ("gnome-online-accounts" ,gnome-online-accounts)
911 ("gnome-online-miners" ,gnome-online-miners)
912 ("grilo" ,grilo)
913 ("grilo-plugins" ,grilo-plugins)
914 ("gtk+" ,gtk+)
915 ("libdazzle" ,libdazzle)
916 ("libgdata" ,libgdata)
917 ("libgfbgraph" ,gfbgraph)
918 ("libjpeg" ,libjpeg-turbo)
919 ("libpng" ,libpng)
920 ("librest" ,rest)
921 ("pygobject" ,python-pygobject)
922 ("tracker" ,tracker)
923 ("tracker-miners" ,tracker-miners)))
924 (synopsis "Access, organize and share your photos on GNOME desktop")
925 (description "GNOME Photos is a simple and elegant replacement for using a
926 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
927 cloud integration is offered through GNOME Online Accounts.")
928 (home-page "https://wiki.gnome.org/Apps/Photos")
929 (license license:gpl3+)))
930
931 (define-public gnome-music
932 (package
933 (name "gnome-music")
934 (version "3.34.5")
935 (source
936 (origin
937 (method url-fetch)
938 (uri
939 (string-append "mirror://gnome/sources/" name "/"
940 (version-major+minor version) "/"
941 name "-" version ".tar.xz"))
942 (sha256
943 (base32
944 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
945 (build-system meson-build-system)
946 (arguments
947 `(#:glib-or-gtk? #t
948 #:phases
949 (modify-phases %standard-phases
950 (add-after 'install 'wrap-gnome-music
951 (lambda* (#:key inputs outputs #:allow-other-keys)
952 (let*
953 ((out (assoc-ref outputs "out"))
954 (pylib (string-append out "/lib/python"
955 ,(version-major+minor
956 (package-version python))
957 "/site-packages")))
958 (wrap-program (string-append out "/bin/gnome-music")
959 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
960 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
961 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
962 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
963 #t)))))
964 (native-inputs
965 `(("desktop-file-utils" ,desktop-file-utils)
966 ("gettext" ,gettext-minimal)
967 ("glib:bin" ,glib "bin")
968 ("gobject-introspection" ,gobject-introspection)
969 ("gtk+:bin" ,gtk+ "bin")
970 ("itstools" ,itstool)
971 ("pkg-config" ,pkg-config)))
972 (inputs
973 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
974 ("grilo" ,grilo)
975 ("grilo-plugins" ,grilo-plugins)
976 ("gst-plugins-base" ,gst-plugins-base)
977 ("gstreamer" ,gstreamer)
978 ("gvfs" ,gvfs)
979 ("libdazzle" ,libdazzle)
980 ("libmediaart" ,libmediaart)
981 ("libsoup" ,libsoup)
982 ("pycairo" ,python-pycairo)
983 ("pygobject" ,python-pygobject)
984 ("tracker" ,tracker)
985 ("tracker-miners" ,tracker-miners)))
986 (synopsis "Simple music player for GNOME desktop")
987 (description "GNOME Music is the new GNOME music playing application that
988 aims to combine an elegant and immersive browsing experience with simple
989 and straightforward controls.")
990 (home-page "https://wiki.gnome.org/Apps/Music")
991 (license license:gpl2+)))
992
993 (define-public portablexdr
994 (package
995 (name "portablexdr")
996 (version "4.9.1")
997 (source
998 (origin
999 (method url-fetch)
1000 (uri
1001 (string-append "https://people.redhat.com/~rjones/" name "/files/"
1002 name "-" version ".tar.gz"))
1003 (sha256
1004 (base32
1005 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1006 (build-system gnu-build-system)
1007 (synopsis "External Data Representation Library")
1008 (description "PortableXDR is an implementation of External Data
1009 Representation (XDR) Library. It is a standard data serialization format, for
1010 uses such as computer network protocols. It allows data to be transferred
1011 between different kinds of computer systems.")
1012 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1013 (license
1014 (list
1015 license:gpl2+
1016 license:lgpl2.1+))))
1017
1018 (define-public tepl
1019 (package
1020 (name "tepl")
1021 (version "4.4.0")
1022 (source
1023 (origin
1024 (method url-fetch)
1025 (uri
1026 (string-append "mirror://gnome/sources/" name "/"
1027 (version-major+minor version) "/"
1028 name "-" version ".tar.xz"))
1029 (sha256
1030 (base32
1031 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
1032 (build-system glib-or-gtk-build-system)
1033 (arguments
1034 `(#:tests? #f)) ; FIX-ME: Requires gvfs
1035 (native-inputs
1036 `(("gobject-introspection" ,gobject-introspection)
1037 ("pkg-config" ,pkg-config)))
1038 (inputs
1039 `(("amtk" ,amtk)
1040 ("glib" ,glib)
1041 ("gtk+" ,gtk+)
1042 ("gtksourceview" ,gtksourceview)
1043 ("libxml2" ,libxml2)
1044 ("uchardet" ,uchardet)))
1045 (synopsis "Text editor product line")
1046 (description "Tepl is a library that eases the development of
1047 GtkSourceView-based text editors and IDEs.")
1048 (home-page "https://wiki.gnome.org/Projects/Tepl")
1049 (license license:lgpl2.1+)))
1050
1051 (define-public krb5-auth-dialog
1052 (package
1053 (name "krb5-auth-dialog")
1054 (version "3.26.1")
1055 (source
1056 (origin
1057 (method url-fetch)
1058 (uri
1059 (string-append "mirror://gnome/sources/" name "/"
1060 (version-major+minor version) "/"
1061 name "-" version ".tar.xz"))
1062 (sha256
1063 (base32
1064 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1065 (build-system glib-or-gtk-build-system)
1066 (native-inputs
1067 `(("intltool" ,intltool)
1068 ("itstool" ,itstool)
1069 ("libxml2" ,libxml2)
1070 ("pkg-config" ,pkg-config)
1071 ("python-wrapper" ,python-wrapper)))
1072 (inputs
1073 `(("glib" ,glib)
1074 ("gtk+" ,gtk+)
1075 ("libnotify" ,libnotify)
1076 ("mit-krb5" ,mit-krb5)
1077 ("network-manager" ,network-manager)))
1078 (synopsis "Popup dialogs for Kerberos 5")
1079 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1080 tickets, and pops up a dialog when they are about to expire.")
1081 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1082 (license license:gpl2+)))
1083
1084 (define-public notification-daemon
1085 (package
1086 (name "notification-daemon")
1087 (version "3.20.0")
1088 (source
1089 (origin
1090 (method url-fetch)
1091 (uri
1092 (string-append "mirror://gnome/sources/" name "/"
1093 (version-major+minor version) "/"
1094 name "-" version ".tar.xz"))
1095 (sha256
1096 (base32
1097 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1098 (build-system glib-or-gtk-build-system)
1099 (native-inputs
1100 `(("intltool" ,intltool)
1101 ("pkg-config" ,pkg-config)))
1102 (inputs
1103 `(("glib" ,glib)
1104 ("gtk+" ,gtk+)
1105 ("x11" ,libx11)))
1106 (synopsis "Notification Daemon for GNOME Desktop")
1107 (description "Notification-Daemon is the server implementation of the
1108 freedesktop.org desktop notification specification.")
1109 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1110 (license license:gpl2+)))
1111
1112 (define-public mm-common
1113 (package
1114 (name "mm-common")
1115 (version "1.0.3")
1116 (source (origin
1117 (method url-fetch)
1118 (uri (string-append "mirror://gnome/sources/mm-common/"
1119 (version-major+minor version) "/"
1120 "mm-common-" version ".tar.xz"))
1121 (sha256
1122 (base32
1123 "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
1124 (build-system meson-build-system)
1125 (arguments
1126 `(#:meson ,meson-0.55
1127 #:phases
1128 (modify-phases %standard-phases
1129 (add-after 'unpack 'patch
1130 (lambda* (#:key inputs #:allow-other-keys)
1131 (substitute* "util/mm-common-prepare.in"
1132 (("ln") (string-append (assoc-ref inputs "coreutils")
1133 "/bin/ln"))
1134 (("cp") (string-append (assoc-ref inputs "coreutils")
1135 "/bin/cp"))
1136 (("sed") (string-append (assoc-ref inputs "sed")
1137 "/bin/sed"))
1138 (("cat") (string-append (assoc-ref inputs "coreutils")
1139 "/bin/cat")))
1140 #t)))))
1141 (native-inputs
1142 `(("coreutils" ,coreutils)
1143 ("gettext" ,gettext-minimal)
1144 ("pkg-config" ,pkg-config)
1145 ("sed" ,sed)))
1146 (inputs
1147 `(("python" ,python)))
1148 (synopsis "Module of GNOME C++ bindings")
1149 (description "The mm-common module provides the build infrastructure
1150 and utilities shared among the GNOME C++ binding libraries. Release
1151 archives of mm-common include the Doxygen tag file for the GNU C++
1152 Library reference documentation.")
1153 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1154 (license license:gpl2+)))
1155
1156 (define-public phodav
1157 (package
1158 (name "phodav")
1159 (version "2.5")
1160 (source (origin
1161 (method url-fetch)
1162 (uri (string-append "mirror://gnome/sources/" name "/"
1163 (version-major+minor version) "/"
1164 name "-" version ".tar.xz"))
1165 (sha256
1166 (base32
1167 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1168 (build-system meson-build-system)
1169 (arguments
1170 `(#:phases
1171 (modify-phases %standard-phases
1172 (add-after 'unpack 'fix-udev-rules-directory
1173 (lambda* (#:key outputs #:allow-other-keys)
1174 (let* ((out (assoc-ref outputs "out"))
1175 (rules (string-append out "/lib/udev/rules.d")))
1176 (substitute* "data/meson.build"
1177 (("udev\\.get_pkgconfig_variable\\('udevdir'\\)")
1178 (format #f "'~a'" rules))))))
1179 (add-before 'check 'start-virtual-dir-server
1180 ;; The same server when started by tests/virtual-dir returns an
1181 ;; unexpected status (4 instead of 200) and fails a test. It is
1182 ;; unclear why starting it manually here makes it pass.
1183 (lambda _
1184 (system "tests/virtual-dir-server &"))))))
1185 (native-inputs
1186 `(("docbook-xml" ,docbook-xml-4.3)
1187 ("gettext" ,gettext-minimal)
1188 ("glib:bin" ,glib "bin")
1189 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1190 ("gtk-doc" ,gtk-doc/stable)
1191 ("pkg-config" ,pkg-config)))
1192 (inputs
1193 `(("avahi" ,avahi)
1194 ("libgudev" ,libgudev)
1195 ("libsoup" ,libsoup)))
1196 (synopsis "WebDav server implementation using libsoup")
1197 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1198 but it is generic enough to be reused in other projects,
1199 in particular in the GNOME desktop.")
1200 (home-page "https://wiki.gnome.org/phodav")
1201 (license license:lgpl2.1+)))
1202
1203 (define-public gnome-color-manager
1204 (package
1205 (name "gnome-color-manager")
1206 (version "3.32.0")
1207 (source (origin
1208 (method url-fetch)
1209 (uri (string-append "mirror://gnome/sources/" name "/"
1210 (version-major+minor version) "/"
1211 name "-" version ".tar.xz"))
1212 (sha256
1213 (base32
1214 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1215 (build-system meson-build-system)
1216 (arguments
1217 `(#:glib-or-gtk? #t
1218 #:phases
1219 (modify-phases %standard-phases
1220 (add-before
1221 'check 'pre-check
1222 (lambda _
1223 ;; Tests require a running X server.
1224 (system "Xvfb :1 &")
1225 (setenv "DISPLAY" ":1")
1226 #t)))))
1227 (native-inputs
1228 `(("desktop-file-utils" ,desktop-file-utils)
1229 ("gettext" ,gettext-minimal)
1230 ("glib:bin" ,glib "bin")
1231 ("gtk+:bin" ,gtk+ "bin")
1232 ("itstool" ,itstool)
1233 ("pkg-config" ,pkg-config)
1234 ("xorg-server" ,xorg-server-for-tests)))
1235 (inputs
1236 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1237 ("appstream-glib" ,appstream-glib)
1238 ("colord-gtk" ,colord-gtk)
1239 ("exiv2" ,exiv2)
1240 ("gnome-desktop" ,gnome-desktop)
1241 ("libcanberra" ,libcanberra)
1242 ("libexif" ,libexif)
1243 ("libtiff" ,libtiff)
1244 ("libxrandr" ,libxrandr)
1245 ("libxtst" ,libxtst)
1246 ("libxxf86vm" ,libxxf86vm)
1247 ("vte" ,vte)
1248 ("xorgproto" ,xorgproto)))
1249 (synopsis "Color profile manager for the GNOME desktop")
1250 (description "GNOME Color Manager is a session framework that makes
1251 it easy to manage, install and generate color profiles
1252 in the GNOME desktop.")
1253 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1254 (license license:gpl2+)))
1255
1256 (define-public gnome-online-miners
1257 (package
1258 (name "gnome-online-miners")
1259 (version "3.34.0")
1260 (source (origin
1261 (method url-fetch)
1262 (uri (string-append "mirror://gnome/sources/" name "/"
1263 (version-major+minor version) "/"
1264 name "-" version ".tar.xz"))
1265 (sha256
1266 (base32
1267 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1268 (build-system glib-or-gtk-build-system)
1269 (native-inputs
1270 `(("gettext" ,gettext-minimal)
1271 ("glib:bin" ,glib "bin")
1272 ("gobject-introspection" ,gobject-introspection)
1273 ("gtk+:bin" ,gtk+ "bin")
1274 ("pkg-config" ,pkg-config)))
1275 (inputs
1276 `(("gnome-online-accounts" ,gnome-online-accounts)
1277 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1278 ("grilo" ,grilo)
1279 ("libgdata" ,libgdata)
1280 ("libgfbgraph" ,gfbgraph)
1281 ("libzapojit" ,libzapojit)
1282 ("rest" ,rest)
1283 ("tracker" ,tracker)))
1284 (synopsis "Web Crawlers for GNOME")
1285 (description "GNOME Online Miners provides a set of crawlers that
1286 go through your online content and index them locally in Tracker.
1287 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1288 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1289 (license license:gpl2+)))
1290
1291 (define-public gssdp
1292 (package
1293 (name "gssdp")
1294 (version "1.2.3")
1295 (source (origin
1296 (method url-fetch)
1297 (uri (string-append "mirror://gnome/sources/" name "/"
1298 (version-major+minor version) "/"
1299 name "-" version ".tar.xz"))
1300 (sha256
1301 (base32
1302 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1303 (build-system meson-build-system)
1304 (native-inputs
1305 `(("gettext" ,gettext-minimal)
1306 ("glib:bin" ,glib "bin")
1307 ("gobject-introspection" ,gobject-introspection)
1308 ("gtk-doc" ,gtk-doc/stable)
1309 ("pkg-config" ,pkg-config)
1310 ("vala" ,vala)))
1311 (inputs
1312 `(("gtk+" ,gtk+)
1313 ("libsoup" ,libsoup)))
1314 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1315 Protocol} for GNOME")
1316 (description "This package provides a library to handle resource discovery
1317 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1318 a debugging tool, @command{gssdp-device-sniffer}.")
1319 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1320 (license license:lgpl2.0+)))
1321
1322 (define-public gupnp
1323 (package
1324 (name "gupnp")
1325 (version "1.2.4")
1326 (source (origin
1327 (method url-fetch)
1328 (uri (string-append "mirror://gnome/sources/" name "/"
1329 (version-major+minor version) "/"
1330 name "-" version ".tar.xz"))
1331 (sha256
1332 (base32
1333 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1334 (build-system meson-build-system)
1335 (native-inputs
1336 `(("gettext" ,gettext-minimal)
1337 ("glib:bin" ,glib "bin")
1338 ("gobject-introspection" ,gobject-introspection)
1339 ("gtk-doc" ,gtk-doc/stable)
1340 ("pkg-config" ,pkg-config)
1341 ("vala" ,vala)))
1342 (inputs
1343 `(("gssdp" ,gssdp)
1344 ("gtk+" ,gtk+)
1345 ("libsoup" ,libsoup)))
1346 (propagated-inputs
1347 `(;; For ‘org.gnome.system.proxy’.
1348 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
1349 (synopsis "PnP API for GNOME")
1350 (description "This package provides GUPnP, an object-oriented framework
1351 for creating UPnP devices and control points, written in C using
1352 @code{GObject} and @code{libsoup}.")
1353 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1354 (license license:lgpl2.0+)))
1355
1356 (define-public gupnp-dlna
1357 (package
1358 (name "gupnp-dlna")
1359 (version "0.10.5")
1360 (source (origin
1361 (method url-fetch)
1362 (uri (string-append "mirror://gnome/sources/" name "/"
1363 (version-major+minor version) "/"
1364 name "-" version ".tar.xz"))
1365 (sha256
1366 (base32
1367 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1368 (build-system gnu-build-system)
1369 (native-inputs
1370 `(("gettext" ,gettext-minimal)
1371 ("glib:bin" ,glib "bin")
1372 ("gobject-introspection" ,gobject-introspection)
1373 ("gtk-doc" ,gtk-doc/stable)
1374 ("libxml" ,libxml2)
1375 ("pkg-config" ,pkg-config)
1376 ("vala" ,vala)))
1377 (inputs
1378 `(("gstreamer" ,gstreamer)
1379 ("gupnp" ,gupnp)))
1380 (propagated-inputs
1381 `(("gst-plugins-base" ,gst-plugins-base)
1382 ("gst-plugins-good" ,gst-plugins-good)))
1383 (synopsis "GUPnP DLNA for GNOME")
1384 (description "This package provides a small utility library to
1385 support DLNA-related tasks such as media profile guessing, transcoding to a
1386 given profile, etc. DLNA is a subset of UPnP A/V.")
1387 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1388 (license license:lgpl2.0+)))
1389
1390 (define-public gupnp-av
1391 (package
1392 (name "gupnp-av")
1393 (version "0.12.11")
1394 (source (origin
1395 (method url-fetch)
1396 (uri (string-append "mirror://gnome/sources/" name "/"
1397 (version-major+minor version) "/"
1398 name "-" version ".tar.xz"))
1399 (sha256
1400 (base32
1401 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1402 (build-system gnu-build-system)
1403 (native-inputs
1404 `(("gettext" ,gettext-minimal)
1405 ("glib:bin" ,glib "bin")
1406 ("gobject-introspection" ,gobject-introspection)
1407 ("gtk-doc" ,gtk-doc/stable)
1408 ("libxml" ,libxml2)
1409 ("pkg-config" ,pkg-config)))
1410 (inputs
1411 `(("gtk+" ,gtk+)
1412 ("gupnp" ,gupnp)))
1413 (synopsis "GUPnP A/V for GNOME")
1414 (description "This package provides a small library for handling
1415 and implementation of UPnP A/V profiles.")
1416 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1417 (license license:lgpl2.0+)))
1418
1419 (define-public libmediaart
1420 (package
1421 (name "libmediaart")
1422 (version "1.9.5")
1423 (source (origin
1424 (method url-fetch)
1425 (uri (string-append "mirror://gnome/sources/" name "/"
1426 (version-major+minor version) "/"
1427 name "-" version ".tar.xz"))
1428 (sha256
1429 (base32
1430 "1mlw1qgj8nkd9ll6b6h54r1gfdy3zp8a8xqz7qfyfaj85jjgbph7"))))
1431 (build-system meson-build-system)
1432 (arguments
1433 `(#:meson ,meson-next))
1434 (native-inputs
1435 `(("glib:bin" ,glib "bin")
1436 ("pkg-config" ,pkg-config)))
1437 (inputs
1438 `(("gdk-pixbuf" ,gdk-pixbuf)
1439 ("gettext" ,gettext-minimal)
1440 ("gobject-introspection" ,gobject-introspection)
1441 ("gtk+:doc" ,gtk+ "doc")
1442 ("vala" ,vala)))
1443 (synopsis "Media art library for the GNOME desktop")
1444 (description
1445 "The libmediaart library is the foundation for media art caching,
1446 extraction, and lookup for applications on the desktop.")
1447 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1448 (license license:lgpl2.1+)))
1449
1450 (define-public gnome-initial-setup
1451 (package
1452 (name "gnome-initial-setup")
1453 (version "3.32.1")
1454 (source (origin
1455 (method url-fetch)
1456 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1457 (version-major+minor version)
1458 "/gnome-initial-setup-" version ".tar.xz"))
1459 (sha256
1460 (base32
1461 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1462 (build-system meson-build-system)
1463 (arguments
1464 '(#:configure-flags '(;; Enable camera support for user selfie.
1465 "-Dcheese=auto"
1466 "-Dsystemd=false")
1467 #:phases (modify-phases %standard-phases
1468 (add-after 'unpack 'set-gkbd-file-name
1469 (lambda* (#:key inputs #:allow-other-keys)
1470 ;; Allow the "Preview" button in the keyboard layout
1471 ;; selection dialog to display the layout.
1472 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1473 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1474 (("\"gkbd-keyboard-display")
1475 (string-append "\"" libgnomekbd
1476 "/bin/gkbd-keyboard-display")))
1477 #t))))))
1478 (native-inputs
1479 `(("gettext" ,gettext-minimal)
1480 ("glib:bin" ,glib "bin")
1481 ("gobject-introspection" ,gobject-introspection)
1482 ("gtk+:bin" ,gtk+ "bin")
1483 ("pkg-config" ,pkg-config)))
1484 (inputs
1485 `(("accountsservice" ,accountsservice)
1486 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1487 ("gdm" ,gdm)
1488 ("geoclue" ,geoclue)
1489 ("gnome-desktop" ,gnome-desktop)
1490 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1491 ("gnome-online-accounts" ,gnome-online-accounts)
1492 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1493 ("gstreamer" ,gstreamer)
1494 ("ibus" ,ibus)
1495 ("json-glib" ,json-glib)
1496 ("krb5" ,mit-krb5)
1497 ("libgweather" ,libgweather)
1498 ("libnma" ,libnma)
1499 ("libsecret" ,libsecret)
1500 ("network-manager" ,network-manager)
1501 ("packagekit" ,packagekit)
1502 ("polkit" ,polkit)
1503 ("pwquality" ,libpwquality)
1504 ("rest" ,rest)
1505 ("upower" ,upower)
1506 ("webkitgtk" ,webkitgtk)
1507 ("libgnomekbd" ,libgnomekbd)))
1508 (synopsis "Initial setup wizard for GNOME desktop")
1509 (description "This package provides a set-up wizard when a
1510 user logs into GNOME for the first time. It typically provides a
1511 tour of all gnome components and allows the user to set them up.")
1512 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1513 (license license:gpl2)))
1514
1515 (define-public gnome-user-share
1516 (package
1517 (name "gnome-user-share")
1518 (version "3.33.1")
1519 (source (origin
1520 (method url-fetch)
1521 (uri (string-append "mirror://gnome/sources/" name "/"
1522 (version-major+minor version) "/"
1523 name "-" version ".tar.xz"))
1524 (sha256
1525 (base32
1526 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1527 (build-system meson-build-system)
1528 (arguments
1529 `(#:glib-or-gtk? #t
1530 #:configure-flags
1531 `("-Dsystemd=false"
1532 ;; Enable nautilus extension for file sharing.
1533 "-Dnautilus_extension=true")))
1534 (native-inputs
1535 `(("gettext" ,gettext-minimal)
1536 ("glib:bin" ,glib "bin")
1537 ("gobject-introspection" ,gobject-introspection)
1538 ("gtk+:bin" ,gtk+ "bin")
1539 ("pkg-config" ,pkg-config)
1540 ("yelp-tools" ,yelp-tools)))
1541 (inputs
1542 `(("glib" ,glib)
1543 ("gnome-bluetooth" ,gnome-bluetooth)
1544 ("gtk+" ,gtk+)
1545 ("libcanberra" ,libcanberra)
1546 ("libnotify" ,libnotify)
1547 ("nautilus" ,nautilus))) ; For nautilus extension.
1548 (synopsis "File sharing for GNOME desktop")
1549 (description "GNOME User Share is a small package that binds together
1550 various free software projects to bring easy to use user-level file
1551 sharing to the masses.")
1552 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1553 (license license:gpl2+)))
1554
1555 (define-public sushi
1556 (package
1557 (name "sushi")
1558 (version "3.32.1")
1559 (source (origin
1560 (method url-fetch)
1561 (uri (string-append "mirror://gnome/sources/" name "/"
1562 (version-major+minor version) "/"
1563 name "-" version ".tar.xz"))
1564 (sha256
1565 (base32
1566 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1567 (build-system meson-build-system)
1568 (arguments
1569 `(#:glib-or-gtk? #t
1570 #:phases
1571 (modify-phases %standard-phases
1572 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1573 (lambda* (#:key outputs #:allow-other-keys)
1574 (let ((prog (string-append (assoc-ref outputs "out")
1575 "/bin/sushi")))
1576 ;; Put existing typelibs before sushi's deps, so as to correctly
1577 ;; infer gdk-pixbuf
1578 (wrap-program prog
1579 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1580 #t))))))
1581 (native-inputs
1582 `(("glib:bin" ,glib "bin")
1583 ("gettext" ,gettext-minimal)
1584 ("gobject-introspection" ,gobject-introspection)
1585 ("pkg-config" ,pkg-config)))
1586 (inputs
1587 `(("clutter" ,clutter)
1588 ("clutter-gst" ,clutter-gst)
1589 ("clutter-gtk" ,clutter-gtk)
1590 ("evince" ,evince) ; For file previewing.
1591 ("freetype" ,freetype)
1592 ("gdk-pixbuf" ,gdk-pixbuf)
1593 ("gjs" ,gjs)
1594 ("gst-plugins-base" ,gst-plugins-base)
1595 ("gstreamer" ,gstreamer)
1596 ("gtksourceview" ,gtksourceview-3)
1597 ("harfbuzz" ,harfbuzz)
1598 ("libepoxy" ,libepoxy)
1599 ("libmusicbrainz" ,libmusicbrainz)
1600 ("libxml2" ,libxml2)
1601 ("neon" ,neon)
1602 ("webkitgtk" ,webkitgtk)))
1603 (synopsis "File previewer for the GNOME desktop")
1604 (description "Sushi is a DBus-activated service that allows applications to
1605 preview files on the GNOME desktop.")
1606 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1607 (license license:gpl2+)))
1608
1609 (define-public rygel
1610 (package
1611 (name "rygel")
1612 (version "0.38.3")
1613 (source (origin
1614 (method url-fetch)
1615 (uri (string-append "mirror://gnome/sources/" name "/"
1616 (version-major+minor version) "/"
1617 name "-" version ".tar.xz"))
1618 (sha256
1619 (base32
1620 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1621 (build-system gnu-build-system)
1622 (native-inputs
1623 `(("gettext" ,gettext-minimal)
1624 ("gobject-introspection" ,gobject-introspection)
1625 ("gtk-doc" ,gtk-doc/stable)
1626 ("pkg-config" ,pkg-config)
1627 ("vala" ,vala)))
1628 (inputs
1629 `(("gdk-pixbuf" ,gdk-pixbuf)
1630 ("gssdp" ,gssdp)
1631 ("gstreamer" ,gstreamer)
1632 ("gst-plugins-base" ,gst-plugins-base)
1633 ("gtk+" ,gtk+)
1634 ("gupnp" ,gupnp)
1635 ("gupnp-av" ,gupnp-av)
1636 ("gupnp-dlna" ,gupnp-dlna)
1637 ("libgee" ,libgee)
1638 ("libmediaart" ,libmediaart)
1639 ("libsoup" ,libsoup)
1640 ("libxslt" ,libxslt)
1641 ("libunistring" ,libunistring)
1642 ("tracker" ,tracker)))
1643 (synopsis "Share audio, video, and pictures with other devices")
1644 (description
1645 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1646 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1647 pictures, and to control a media player on your home network.
1648
1649 Rygel achieves interoperability with other devices by trying to conform to the
1650 strict requirements of DLNA and by converting media on-the-fly to formats that
1651 client devices can handle.")
1652 (home-page "https://wiki.gnome.org/Projects/Rygel")
1653 (license (list
1654 ;; For logo (data/icons/*).
1655 license:cc-by-sa3.0
1656 ;; For all others.
1657 license:lgpl2.1+))))
1658
1659 (define-public libnma
1660 (package
1661 (name "libnma")
1662 (version "1.8.28")
1663 (source (origin
1664 (method url-fetch)
1665 (uri (string-append "mirror://gnome/sources/" name "/"
1666 (version-major+minor version) "/"
1667 name "-" version ".tar.xz"))
1668 (sha256
1669 (base32
1670 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1671 (build-system meson-build-system)
1672 (arguments
1673 `(#:phases
1674 (modify-phases %standard-phases
1675 (add-after 'unpack 'patch-docbook-xml
1676 (lambda* (#:key inputs #:allow-other-keys)
1677 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1678 "/xml/dtd/docbook")))
1679 (substitute* "libnma-docs.xml"
1680 (("http://.*/docbookx\\.dtd")
1681 (string-append xmldoc "/docbookx.dtd")))
1682 #t))))))
1683 (native-inputs
1684 `(("docbook-xml" ,docbook-xml-4.3)
1685 ("gettext" ,gettext-minimal)
1686 ("glib:bin" ,glib "bin")
1687 ("gtk-doc" ,gtk-doc/stable)
1688 ("gobject-introspection" ,gobject-introspection)
1689 ("pkg-config" ,pkg-config)
1690 ("vala" ,vala)))
1691 (inputs
1692 `(("gcr" ,gcr)
1693 ("gtk+" ,gtk+)
1694 ("iso-codes" ,iso-codes)
1695 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1696 ("network-manager" ,network-manager)))
1697 (synopsis "Network Manager's applet library")
1698 (description "Libnma is an applet library for Network Manager. It was
1699 initially part of network-manager-applet and has now become a separate
1700 project.")
1701 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1702 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1703 ;; "LGPL-2.1+".
1704 (license license:gpl2+)))
1705
1706 (define-public gnome-menus
1707 (package
1708 (name "gnome-menus")
1709 (version "3.32.0")
1710 (source (origin
1711 (method url-fetch)
1712 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1713 (version-major+minor version) "/"
1714 name "-" version ".tar.xz"))
1715 (sha256
1716 (base32
1717 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1718 (build-system gnu-build-system)
1719 (native-inputs
1720 `(("gettext" ,gettext-minimal)
1721 ("glib" ,glib)
1722 ("pkg-config" ,pkg-config)))
1723 (synopsis "Menu support for GNOME desktop")
1724 (description "GNOME Menus contains the libgnome-menu library, the layout
1725 configuration files for the GNOME menu, as well as a simple menu editor.")
1726 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1727 (license license:lgpl2.0+)))
1728
1729 (define-public deja-dup
1730 (package
1731 (name "deja-dup")
1732 (version "40.6")
1733 (source (origin
1734 (method url-fetch)
1735 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1736 version "/deja-dup-" version ".tar.bz2"))
1737 (sha256
1738 (base32
1739 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1740 (build-system meson-build-system)
1741 (arguments
1742 `(#:glib-or-gtk? #t
1743 #:configure-flags
1744 (list
1745 ;; Otherwise, the RUNPATH will lack the final path component.
1746 (string-append "-Dc_link_args=-Wl,-rpath="
1747 (assoc-ref %outputs "out") "/lib/deja-dup"))
1748 #:phases
1749 (modify-phases %standard-phases
1750 (add-after 'unpack 'patch-paths
1751 (lambda* (#:key inputs #:allow-other-keys)
1752 (let ((python (assoc-ref inputs "python")))
1753 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1754 "libdeja/tests/scripts/instance-error.test")
1755 (("/bin/rm")
1756 (which "rm")))
1757 (substitute* "libdeja/tests/runner.vala"
1758 (("/bin/sh")
1759 (which "sh")))
1760 (substitute* "libdeja/tests/scripts/instance-error.test"
1761 (("`which python3`")
1762 (string-append python "/bin/python3"))))))
1763 (add-after 'unpack 'patch-libgpg-error
1764 (lambda* (#:key inputs #:allow-other-keys)
1765 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1766 (substitute* "meson.build"
1767 (("(gpgerror_libs = ).*" _ var)
1768 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1769 #t))
1770 (add-after 'unpack 'skip-gtk-update-icon-cache
1771 ;; Don't create 'icon-theme.cache'.
1772 (lambda _
1773 (substitute* "data/post-install.sh"
1774 (("gtk-update-icon-cache") "true"))
1775 #t)))))
1776 (inputs
1777 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1778 ("duplicity" ,duplicity)
1779 ("python" ,python)
1780 ("python-pygobject" ,python-pygobject)
1781 ("gtk+" ,gtk+)
1782 ("json-glib" ,json-glib)
1783 ("libnotify" ,libnotify)
1784 ("libgpg-error" ,libgpg-error)
1785 ("libsecret" ,libsecret)
1786 ("libsoup" ,libsoup)
1787 ("packagekit" ,packagekit)))
1788 (native-inputs
1789 `(("appstream-glib" ,appstream-glib)
1790 ("desktop-file-utils" ,desktop-file-utils)
1791 ("gettext" ,gettext-minimal)
1792 ("glib" ,glib "bin") ; for glib-compile-schemas.
1793 ("gobject-introspection" ,gobject-introspection)
1794 ("itstool" ,itstool)
1795 ("pkg-config" ,pkg-config)
1796 ("vala" ,vala)))
1797 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1798 (synopsis "Simple backup tool, for regular encrypted backups")
1799 (description
1800 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1801 uses duplicity as the backend, which supports incremental backups and storage
1802 either on a local, or remote machine via a number of methods.")
1803 (license license:gpl3+)))
1804
1805 (define-public gnome-commander
1806 (package
1807 (name "gnome-commander")
1808 (version "1.10.3")
1809 (source
1810 (origin
1811 (method url-fetch)
1812 (uri (string-append "mirror://gnome/sources/" name "/"
1813 (version-major+minor version) "/"
1814 "gnome-commander-" version ".tar.xz"))
1815 (sha256
1816 (base32 "0bis36awb73vhkncq8yr0qlnyaxynqkvmyqbg57ijqwd0m8hh4zg"))))
1817 (build-system glib-or-gtk-build-system)
1818 (native-inputs
1819 `(("desktop-file-utils" ,desktop-file-utils)
1820 ("gcc" ,gcc-8) ;required for -Wcast-function-type
1821 ("gettext" ,gettext-minimal)
1822 ("glib:bin" ,glib "bin")
1823 ("gobject-introspection" ,gobject-introspection)
1824 ("googletest" ,googletest)
1825 ("intltool" ,intltool)
1826 ("itstool" ,itstool)
1827 ("libtool" ,libtool)
1828 ("pkg-config" ,pkg-config)))
1829 (inputs
1830 `(("gconf" ,gconf)
1831 ("gnome-vfs" ,gnome-vfs)
1832 ("gtk+" ,gtk+-2)
1833 ("libxml2" ,libxml2)))
1834 (home-page "https://gcmd.github.io/")
1835 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1836 (description
1837 "GNOME Commander is a two-pane graphical file manager using GNOME
1838 libraries. It aims to fulfill the demands of more advanced users who
1839 like to focus on file management, their work through special applications
1840 and running smart commands.")
1841 (license license:gpl2+)))
1842
1843 (define-public gnome-user-docs
1844 (package
1845 (name "gnome-user-docs")
1846 (version "3.32.3")
1847 (source
1848 (origin
1849 (method url-fetch)
1850 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1851 (version-major+minor version)
1852 "/gnome-user-docs-" version ".tar.xz"))
1853 (sha256
1854 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1855 (build-system gnu-build-system)
1856 (native-inputs
1857 `(("gettext" ,gettext-minimal)
1858 ("itstool" ,itstool)
1859 ("pkg-config" ,pkg-config)
1860 ("xmllint" ,libxml2)))
1861 (synopsis "User documentation for the GNOME desktop")
1862 (description
1863 "The GNOME User Documentation explains how to use the GNOME desktop and its
1864 components. It covers usage and setup of the core GNOME programs by end-users
1865 and system administrators.")
1866 (home-page "https://live.gnome.org/DocumentationProject")
1867 (license license:cc-by3.0)))
1868
1869 (define-public gnome-getting-started-docs
1870 (package
1871 (name "gnome-getting-started-docs")
1872 (version "3.32.2")
1873 (source
1874 (origin
1875 (method url-fetch)
1876 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1877 (version-major+minor version)
1878 "/gnome-getting-started-docs-" version ".tar.xz"))
1879 (sha256
1880 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1881 (build-system gnu-build-system)
1882 (native-inputs
1883 `(("gettext" ,gettext-minimal)
1884 ("itstool" ,itstool)
1885 ("pkg-config" ,pkg-config)
1886 ("xmllint" ,libxml2)))
1887 (synopsis "Help to get new users started with the GNOME desktop")
1888 (description
1889 "The GNOME Getting Started Documentation contains GNOME's intuitive
1890 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1891
1892 It is normally used together with @command{gnome-initial-setup}, but is also
1893 useful as a tutorial and users' guide for new or less experienced users.")
1894 (home-page "https://live.gnome.org/DocumentationProject")
1895 (license license:cc-by-sa3.0)))
1896
1897 (define-public dia
1898 ;; This version from GNOME's repository includes fixes for compiling with
1899 ;; recent versions of the build tools. The latest activity on the
1900 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1901 ;; fixes since.
1902 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1903 (revision "2"))
1904 (package
1905 (name "dia")
1906 (version (git-version "0.97.3" revision commit))
1907 (source (origin
1908 (method git-fetch)
1909 (uri (git-reference
1910 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1911 (commit commit)))
1912 (file-name (git-file-name name version))
1913 (sha256
1914 (base32
1915 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1916 (build-system meson-build-system)
1917 (inputs
1918 `(("graphene" ,graphene)
1919 ("gtk+" ,gtk+-2)
1920 ("libxml2" ,libxml2)
1921 ("libxslt" ,libxslt)
1922 ("poppler" ,poppler)
1923 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1924 ;; ERROR: Unknown method "dependency" in object.
1925 ("python-2" ,python-2)))
1926 (native-inputs
1927 `(("appstream-glib" ,appstream-glib)
1928 ("docbook-xsl" ,docbook-xsl)
1929 ("glib" ,glib "bin")
1930 ("intltool" ,intltool)
1931 ("pkg-config" ,pkg-config)))
1932 (home-page "https://wiki.gnome.org/Apps/Dia")
1933 (synopsis "Diagram creation for GNOME")
1934 (description "Dia can be used to draw different types of diagrams, and
1935 includes support for UML static structure diagrams (class diagrams), entity
1936 relationship modeling, and network diagrams. The program supports various file
1937 formats like PNG, SVG, PDF and EPS.")
1938 (license license:gpl2+))))
1939
1940 ;; This is the unstable release, but it is required for the current stable
1941 ;; release of gvfs (1.38.1).
1942 (define-public libgdata
1943 (package
1944 (name "libgdata")
1945 (version "0.17.9")
1946 (source (origin
1947 (method url-fetch)
1948 (uri (string-append "mirror://gnome/sources/" name "/"
1949 (version-major+minor version) "/"
1950 name "-" version ".tar.xz"))
1951 (sha256
1952 (base32
1953 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1954 (build-system gnu-build-system)
1955 (arguments
1956 '(#:phases
1957 (modify-phases %standard-phases
1958 (add-before 'check 'disable-failing-tests
1959 (lambda _
1960 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1961 ;; They have been removed in libgdata 0.17.6, so just do the same.
1962 (substitute* "gdata/tests/Makefile"
1963 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1964 #t)))))
1965 (native-inputs
1966 `(("glib:bin" ,glib "bin")
1967 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1968 ("intltool" ,intltool)
1969 ("pkg-config" ,pkg-config)
1970 ("uhttpmock" ,uhttpmock)))
1971 (inputs
1972 `(("cyrus-sasl" ,cyrus-sasl)
1973 ("glib-networking" ,glib-networking)))
1974 (propagated-inputs
1975 `(("gcr" ,gcr)
1976 ("glib" ,glib)
1977 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1978 ("json-glib" ,json-glib)
1979 ("liboauth" ,liboauth)
1980 ("libsoup" ,libsoup)
1981 ("libxml2" ,libxml2)))
1982 (home-page "https://wiki.gnome.org/Projects/libgdata")
1983 (synopsis "Library for accessing online service APIs")
1984 (description
1985 "libgdata is a GLib-based library for accessing online service APIs using
1986 the GData protocol — most notably, Google's services. It provides APIs to
1987 access the common Google services, and has full asynchronous support.")
1988 (license license:lgpl2.1+)))
1989
1990 (define-public libgxps
1991 (package
1992 (name "libgxps")
1993 (version "0.3.2")
1994 (source (origin
1995 (method url-fetch)
1996 (uri (string-append "mirror://gnome/sources/" name "/"
1997 (version-major+minor version) "/"
1998 name "-" version ".tar.xz"))
1999 (sha256
2000 (base32
2001 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
2002 (build-system meson-build-system)
2003 (native-inputs
2004 `(("gobject-introspection" ,gobject-introspection)
2005 ("pkg-config" ,pkg-config)))
2006 (inputs
2007 `(("gtk+" ,gtk+)
2008 ("libjpeg" ,libjpeg-turbo)
2009 ("lcms" ,lcms)
2010 ("libtiff" ,libtiff)))
2011 (propagated-inputs
2012 ;; In Requires of libgxps.pc.
2013 `(("cairo" ,cairo)
2014 ("glib" ,glib)
2015 ("libarchive" ,libarchive)))
2016 (home-page "https://wiki.gnome.org/Projects/libgxps")
2017 (synopsis "GObject-based library for handling and rendering XPS documents")
2018 (description
2019 "libgxps is a GObject-based library for handling and rendering XPS
2020 documents. This package also contains binaries that can convert XPS documents
2021 to other formats.")
2022 (license license:lgpl2.1+)))
2023
2024 (define-public gnome-characters
2025 (package
2026 (name "gnome-characters")
2027 (version "3.30.0")
2028 (source
2029 (origin
2030 (method url-fetch)
2031 (uri (string-append "mirror://gnome/sources/"
2032 "gnome-characters/" (version-major+minor version)
2033 "/gnome-characters-" version ".tar.xz"))
2034 (sha256
2035 (base32
2036 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
2037 (build-system meson-build-system)
2038 (arguments
2039 `(#:glib-or-gtk? #t
2040 #:phases (modify-phases %standard-phases
2041 (add-after 'install 'wrap
2042 (lambda* (#:key outputs #:allow-other-keys)
2043 ;; GNOME Characters needs Typelib files from GTK and
2044 ;; gnome-desktop.
2045 (wrap-program (string-append (assoc-ref outputs "out")
2046 "/bin/gnome-characters")
2047 `("GI_TYPELIB_PATH" ":" prefix
2048 (,(getenv "GI_TYPELIB_PATH"))))
2049 #t)))))
2050 (native-inputs
2051 `(("gettext" ,gettext-minimal)
2052 ("glib:bin" ,glib "bin")
2053 ("gtk+:bin" ,gtk+ "bin")
2054 ("pkg-config" ,pkg-config)
2055 ("python" ,python-minimal)))
2056 (inputs
2057 `(("gjs" ,gjs)
2058 ("gtk+" ,gtk+)
2059 ("libunistring" ,libunistring)
2060 ("gnome-desktop" ,gnome-desktop)))
2061 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2062 (synopsis "Find and insert unusual characters")
2063 (description "Characters is a simple utility application to find
2064 and insert unusual characters. It allows you to quickly find the
2065 character you are looking for by searching for keywords.")
2066 (license license:bsd-3)))
2067
2068 (define-public gnome-common
2069 (package
2070 (name "gnome-common")
2071 (version "3.18.0")
2072 (source
2073 (origin
2074 (method url-fetch)
2075 (uri (string-append "mirror://gnome/sources/" name "/"
2076 (version-major+minor version) "/"
2077 name "-" version ".tar.xz"))
2078 (sha256
2079 (base32
2080 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2081 (build-system gnu-build-system)
2082 (home-page "https://www.gnome.org/")
2083 (synopsis "Bootstrap GNOME modules built from Git")
2084 (description "gnome-common contains various files needed to bootstrap
2085 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2086 can be used to configure a source directory checked out from Git and some
2087 commonly used macros.")
2088 (license license:gpl2+)))
2089
2090 (define-public gnome-contacts
2091 (package
2092 (name "gnome-contacts")
2093 (version "3.34")
2094 (source (origin
2095 (method url-fetch)
2096 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2097 (version-major+minor version) "/"
2098 name "-" version ".tar.xz"))
2099 (sha256
2100 (base32
2101 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
2102 (build-system meson-build-system)
2103 (arguments
2104 `(#:configure-flags '("-Dcheese=false")
2105 #:phases
2106 (modify-phases %standard-phases
2107 (add-after 'unpack 'generate-vapis
2108 (lambda* (#:key inputs #:allow-other-keys)
2109 ;; To generate goa's missing .vapi file
2110 (define goa
2111 (assoc-ref inputs "gnome-online-accounts:lib"))
2112
2113 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
2114 "--library=goa-1.0"
2115 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
2116 #t))
2117 (add-after 'unpack 'skip-gtk-update-icon-cache
2118 ;; Don't create 'icon-theme.cache'.
2119 (lambda _
2120 (substitute* "build-aux/meson_post_install.py"
2121 (("gtk-update-icon-cache") "true"))
2122 #t)))))
2123 (native-inputs
2124 `(("glib:bin" ,glib "bin")
2125 ("pkg-config" ,pkg-config)))
2126 (inputs
2127 `(("docbook-xml" ,docbook-xml)
2128 ("dockbook-xsl" ,docbook-xsl)
2129 ("evolution-data-server" ,evolution-data-server)
2130 ("gettext" ,gettext-minimal)
2131 ("gnome-desktop" ,gnome-desktop)
2132 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
2133 ("gobject-introspection" ,gobject-introspection)
2134 ("gst-plugins-base" ,gst-plugins-base)
2135 ("gtk+" ,gtk+)
2136 ("libgee" ,libgee)
2137 ("libxslt" ,libxslt)
2138 ("telepathy-glib" ,telepathy-glib)
2139 ("vala" ,vala)))
2140 (propagated-inputs
2141 `(("folks" ,folks)
2142 ("telepathy-mission-control" ,telepathy-mission-control)))
2143 (synopsis "GNOME's integrated address book")
2144 (description
2145 "GNOME Contacts organizes your contact information from online and
2146 offline sources, providing a centralized place for managing your contacts.")
2147 (home-page "https://wiki.gnome.org/Apps/Contacts")
2148 (license license:gpl2+)))
2149
2150 (define-public gnome-desktop
2151 (package
2152 (name "gnome-desktop")
2153 (version "3.34.2")
2154 (source
2155 (origin
2156 (method url-fetch)
2157 (uri (string-append "mirror://gnome/sources/" name "/"
2158 (version-major+minor version) "/"
2159 name "-" version ".tar.xz"))
2160 (sha256
2161 (base32
2162 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2163 (build-system meson-build-system)
2164 (arguments
2165 '(#:phases
2166 (modify-phases %standard-phases
2167 (add-before 'configure 'patch-path
2168 (lambda* (#:key inputs #:allow-other-keys)
2169 (let ((libc (assoc-ref inputs "libc")))
2170 (substitute* "libgnome-desktop/gnome-languages.c"
2171 (("\"locale\"")
2172 (string-append "\"" libc "/bin/locale\"")))
2173 #t)))
2174 (add-before 'configure 'patch-bubblewrap
2175 (lambda* (#:key inputs #:allow-other-keys)
2176 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2177 (("\"bwrap\",")
2178 (string-append "\"" (which "bwrap") "\","))
2179 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2180 (string-append "\"--ro-bind\", \""
2181 (%store-directory)
2182 "\", \""
2183 (%store-directory)
2184 "\","))
2185 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2186 #t))
2187 (add-before 'check 'pre-check
2188 (lambda* (#:key inputs #:allow-other-keys)
2189 ;; Tests require a running X server and locales.
2190 (system "Xvfb :1 &")
2191 (setenv "DISPLAY" ":1")
2192 (setenv "GUIX_LOCPATH"
2193 (string-append (assoc-ref inputs "glibc-locales")
2194 "/lib/locale"))
2195 #t)))))
2196 (native-inputs
2197 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2198 ("glibc-locales" ,glibc-locales) ; for tests
2199 ("gobject-introspection" ,gobject-introspection)
2200 ("itstool" ,itstool)
2201 ("intltool" ,intltool)
2202 ("pkg-config" ,pkg-config)
2203 ("xmllint" ,libxml2)
2204 ("xorg-server" ,xorg-server-for-tests)))
2205 (propagated-inputs
2206 ;; Required by gnome-desktop-3.0.pc.
2207 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2208 ("gtk+" ,gtk+)
2209 ("iso-codes" ,iso-codes)
2210 ("libseccomp" ,libseccomp)
2211 ("libx11" ,libx11)
2212 ("xkeyboard-config" ,xkeyboard-config)))
2213 (inputs
2214 `(("gdk-pixbuf" ,gdk-pixbuf)
2215 ("glib" ,glib)
2216 ("bubblewrap" ,bubblewrap)
2217 ("libxext" ,libxext)
2218 ("libxkbfile" ,libxkbfile)
2219 ("libxrandr" ,libxrandr)))
2220 (home-page "https://www.gnome.org/")
2221 (synopsis
2222 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2223 (description
2224 "The libgnome-desktop library provides API shared by several applications
2225 on the desktop, but that cannot live in the platform for various reasons.
2226 There is no API or ABI guarantee, although we are doing our best to provide
2227 stability. Documentation for the API is available with gtk-doc.
2228
2229 The gnome-about program helps find which version of GNOME is installed.")
2230 ; Some bits under the LGPL.
2231 (license license:gpl2+)))
2232
2233 (define-public gnome-doc-utils
2234 (package
2235 (name "gnome-doc-utils")
2236 (version "0.20.10")
2237 (source
2238 (origin
2239 (method url-fetch)
2240 (uri (string-append "mirror://gnome/sources/" name "/"
2241 (version-major+minor version) "/"
2242 name "-" version ".tar.xz"))
2243 (sha256
2244 (base32
2245 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2246 (build-system gnu-build-system)
2247 (native-inputs
2248 `(("intltool" ,intltool)
2249 ("docbook-xml" ,docbook-xml-4.4)
2250 ("python2-libxml2" ,python2-libxml2)
2251 ("libxml2" ,libxml2)
2252 ("libxslt" ,libxslt)
2253 ("pkg-config" ,pkg-config)
2254 ("python-2" ,python-2)))
2255 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2256 (synopsis
2257 "Documentation utilities for the Gnome project")
2258 (description
2259 "Gnome-doc-utils is a collection of documentation utilities for the
2260 Gnome project. It includes xml2po tool which makes it easier to translate
2261 and keep up to date translations of documentation.")
2262 (license license:gpl2+))) ; xslt under lgpl
2263
2264 (define-public gnome-disk-utility
2265 (package
2266 (name "gnome-disk-utility")
2267 (version "3.34.0")
2268 (source (origin
2269 (method url-fetch)
2270 (uri (string-append "mirror://gnome/sources/" name "/"
2271 (version-major+minor version) "/"
2272 name "-" version ".tar.xz"))
2273 (sha256
2274 (base32
2275 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2276 (build-system meson-build-system)
2277 (arguments
2278 '(#:configure-flags '("-Dlogind=libelogind")
2279 #:phases
2280 (modify-phases %standard-phases
2281 (add-after 'unpack 'skip-gtk-update-icon-cache
2282 ;; Don't create 'icon-theme.cache'.
2283 (lambda _
2284 (substitute* "meson_post_install.py"
2285 (("gtk-update-icon-cache") "true"))
2286 #t)))))
2287 (native-inputs
2288 `(("glib:bin" ,glib "bin")
2289 ("intltool" ,intltool)
2290 ("pkg-config" ,pkg-config)
2291 ("docbook-xml" ,docbook-xml)
2292 ("docbook-xsl" ,docbook-xsl)
2293 ("libxml2" ,libxml2)
2294 ("libxslt" ,libxslt)))
2295 (inputs
2296 `(("elogind" ,elogind)
2297 ("glib" ,glib)
2298 ("appstream-glib" ,appstream-glib)
2299 ("gnome-settings-daemon" ,gnome-settings-daemon)
2300 ("gtk+" ,gtk+)
2301 ("libcanberra" ,libcanberra)
2302 ("libdvdread" ,libdvdread)
2303 ("libnotify" ,libnotify)
2304 ("libpwquality" ,libpwquality)
2305 ("libsecret" ,libsecret)
2306 ("udisks" ,udisks)))
2307 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2308 (synopsis "Disk management utility for GNOME")
2309 (description "Disk management utility for GNOME.")
2310 (license license:gpl2+)))
2311
2312 (define-public gnome-font-viewer
2313 (package
2314 (name "gnome-font-viewer")
2315 (version "3.30.0")
2316 (source (origin
2317 (method url-fetch)
2318 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2319 (version-major+minor version)
2320 "/gnome-font-viewer-" version ".tar.xz"))
2321 (sha256
2322 (base32
2323 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2324 (build-system meson-build-system)
2325 (arguments
2326 '(#:phases
2327 (modify-phases %standard-phases
2328 (add-after 'unpack 'patch-post-install-script
2329 (lambda _
2330 (substitute* "meson-postinstall.sh"
2331 (("update-desktop-database") (which "true")))
2332 #t))
2333 (add-after 'install 'patch-thumbnailer
2334 (lambda* (#:key outputs #:allow-other-keys)
2335 (let ((out (assoc-ref outputs "out")))
2336 (substitute*
2337 (string-append
2338 out
2339 "/share/thumbnailers/gnome-font-viewer.thumbnailer")
2340 (("gnome-thumbnail-font")
2341 (string-append out "/bin/gnome-thumbnail-font"))))
2342 #t)))))
2343 (native-inputs
2344 `(("gettext" ,gettext-minimal)
2345 ("glib:bin" ,glib "bin")
2346 ("pkg-config" ,pkg-config)))
2347 (inputs
2348 `(("glib" ,glib)
2349 ("gnome-desktop" ,gnome-desktop)
2350 ("gtk+" ,gtk+)))
2351 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2352 (synopsis "GNOME Fonts")
2353 (description "Application to show you the fonts installed on your computer
2354 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2355 the font would look under various sizes.")
2356 (license license:gpl2+)))
2357
2358 (define-public gcr
2359 (package
2360 (name "gcr")
2361 (version "3.34.0")
2362 (source (origin
2363 (method url-fetch)
2364 (uri (string-append "mirror://gnome/sources/" name "/"
2365 (version-major+minor version) "/"
2366 name "-" version ".tar.xz"))
2367 (sha256
2368 (base32
2369 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2370 (build-system gnu-build-system)
2371 (arguments
2372 '(#:phases
2373 (modify-phases %standard-phases
2374 ;; These fail because /var/lib/dbus/machine-id is not present in the
2375 ;; build environment.
2376 (add-after 'unpack 'disable-failing-tests
2377 (lambda _
2378 (substitute* "Makefile.in"
2379 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2380 ""))
2381 #t))
2382 (add-before 'check 'pre-check
2383 (lambda _
2384 ;; Some tests expect to write to $HOME.
2385 (setenv "HOME" "/tmp")
2386 #t)))))
2387 (inputs
2388 `(("dbus" ,dbus)
2389 ("gnupg" ,gnupg) ;called as a child process during tests
2390 ("libgcrypt" ,libgcrypt)))
2391 (native-inputs
2392 `(("python" ,python-wrapper) ;for tests
2393 ("pkg-config" ,pkg-config)
2394 ("gettext" ,gettext-minimal)
2395 ("glib" ,glib "bin")
2396 ("gobject-introspection" ,gobject-introspection)
2397 ("libxml2" ,libxml2)
2398 ("vala" ,vala)
2399 ("xsltproc" ,libxslt)))
2400 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2401 (propagated-inputs
2402 `(("p11-kit" ,p11-kit)
2403 ("glib" ,glib)
2404 ("gtk+" ,gtk+)))
2405 (home-page "https://www.gnome.org")
2406 (synopsis "Libraries for displaying certificates and accessing key stores")
2407 (description
2408 "The GCR package contains libraries used for displaying certificates and
2409 accessing key stores. It also provides the viewer for crypto files on the
2410 GNOME Desktop.")
2411 (license license:lgpl2.1+)))
2412
2413 (define-public gdl
2414 (package
2415 (name "gdl")
2416 (version "3.34.0")
2417 (source (origin
2418 (method git-fetch)
2419 (uri (git-reference
2420 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2421 (commit (string-append "GDL_" (string-map (match-lambda
2422 (#\. #\_)
2423 (c c))
2424 version)))))
2425 (file-name (git-file-name name version))
2426 (sha256
2427 (base32
2428 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2429 (build-system gnu-build-system)
2430 (native-inputs
2431 `(("autoconf" ,autoconf)
2432 ("automake" ,automake)
2433 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2434 ("gnome-common" ,gnome-common)
2435 ("gtk-doc" ,gtk-doc/stable)
2436 ("intltool" ,intltool)
2437 ("pkg-config" ,pkg-config)
2438 ("libtool" ,libtool)
2439 ("which" ,which)))
2440 (inputs
2441 `(("libxml2" ,libxml2)))
2442 (propagated-inputs
2443 ;; The gdl-3.0.pc file 'Requires' GTK+.
2444 `(("gtk+" ,gtk+)))
2445 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2446 (synopsis "GNOME docking library")
2447 (description "This library provides docking features for gtk+.")
2448 (license license:lgpl2.1+)))
2449
2450 ;;; A minimal variant used to break a cycle with Inkscape.
2451 (define-public gdl-minimal
2452 (package/inherit gdl
2453 (name "gdl-minimal")
2454 (arguments
2455 '(#:phases
2456 (modify-phases %standard-phases
2457 (add-after 'unpack 'disable-doc-generation
2458 ;; XXX: There is no easy way to disable generating the
2459 ;; documentation.
2460 (lambda _
2461 (substitute* "configure.in"
2462 (("GTK_DOC_CHECK.*") "")
2463 (("docs/.*") ""))
2464 (substitute* "Makefile.am"
2465 (("gdl docs po") "gdl po"))
2466 #t)))))
2467 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2468
2469 (define-public libgnome-keyring
2470 (package
2471 (name "libgnome-keyring")
2472 (version "3.12.0")
2473 (source (origin
2474 (method url-fetch)
2475 (uri (string-append "mirror://gnome/sources/" name "/"
2476 (version-major+minor version) "/"
2477 name "-" version ".tar.xz"))
2478 (sha256
2479 (base32
2480 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2481 (build-system gnu-build-system)
2482 (inputs
2483 `(("libgcrypt" ,libgcrypt)
2484 ("dbus" ,dbus)))
2485 (native-inputs
2486 `(("pkg-config" ,pkg-config)
2487 ("glib" ,glib "bin")
2488 ("intltool" ,intltool)))
2489 (propagated-inputs
2490 ;; Referred to in .h files and .pc.
2491 `(("glib" ,glib)))
2492 (home-page "https://www.gnome.org")
2493 (synopsis "Accessing passwords from the GNOME keyring")
2494 (description
2495 "Client library to access passwords from the GNOME keyring.")
2496
2497 ;; Though a couple of files are LGPLv2.1+.
2498 (license license:lgpl2.0+)))
2499
2500 (define-public gnome-keyring
2501 (package
2502 (name "gnome-keyring")
2503 (version "3.34.0")
2504 (source (origin
2505 (method url-fetch)
2506 (uri (string-append "mirror://gnome/sources/" name "/"
2507 (version-major+minor version) "/"
2508 name "-" version ".tar.xz"))
2509 (sha256
2510 (base32
2511 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2512 (build-system gnu-build-system)
2513 (arguments
2514 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2515 ;not exist
2516 #:configure-flags
2517 (list
2518 (string-append "--with-pkcs11-config="
2519 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2520 (string-append "--with-pkcs11-modules="
2521 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2522 #:phases
2523 (modify-phases %standard-phases
2524 (add-after 'unpack 'fix-/bin/sh-reference
2525 (lambda _
2526 (substitute* "po/Makefile.in.in"
2527 (("/bin/sh") (which "sh")))
2528 #t))
2529 (add-after 'unpack 'fix-docbook
2530 (lambda* (#:key inputs #:allow-other-keys)
2531 (substitute* "docs/Makefile.am"
2532 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2533 (string-append (assoc-ref inputs "docbook-xsl")
2534 "/xml/xsl/docbook-xsl-"
2535 ,(package-version docbook-xsl)
2536 "/manpages/docbook.xsl")))
2537 (setenv "XML_CATALOG_FILES"
2538 (string-append (assoc-ref inputs "docbook-xml")
2539 "/xml/dtd/docbook/catalog.xml"))
2540 ;; Rerun the whole thing to avoid version mismatch ("This is
2541 ;; Automake 1.15.1, but the definition used by this
2542 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2543 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2544 (invoke "autoconf")
2545 (invoke "aclocal")
2546 (invoke "automake" "-ac"))))))
2547 (inputs
2548 `(("libgcrypt" ,libgcrypt)
2549 ("linux-pam" ,linux-pam)
2550 ("openssh" ,openssh)
2551 ("dbus" ,dbus)
2552 ("gcr" ,gcr)))
2553 (native-inputs
2554 `(("pkg-config" ,pkg-config)
2555 ("glib" ,glib "bin")
2556 ("glib" ,glib) ; for m4 macros
2557 ("python" ,python-2) ;for tests
2558 ("intltool" ,intltool)
2559 ("autoconf" ,autoconf)
2560 ("automake" ,automake)
2561 ("libxslt" ,libxslt) ;for documentation
2562 ("docbook-xml" ,docbook-xml-4.2)
2563 ("docbook-xsl" ,docbook-xsl)))
2564 (propagated-inputs
2565 `(("gcr" ,gcr)))
2566 (home-page "https://www.gnome.org")
2567 (synopsis "Daemon to store passwords and encryption keys")
2568 (description
2569 "gnome-keyring is a program that keeps passwords and other secrets for
2570 users. It is run as a daemon in the session, similar to ssh-agent, and other
2571 applications locate it via an environment variable or D-Bus.
2572
2573 The program can manage several keyrings, each with its own master password,
2574 and there is also a session keyring which is never stored to disk, but
2575 forgotten when the session ends.")
2576 (license license:lgpl2.1+)))
2577
2578 (define-public evince
2579 (package
2580 (name "evince")
2581 (version "3.36.5")
2582 (source (origin
2583 (method url-fetch)
2584 (uri (string-append "mirror://gnome/sources/evince/"
2585 (version-major+minor version) "/"
2586 "evince-" version ".tar.xz"))
2587 (sha256
2588 (base32
2589 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2590 (build-system glib-or-gtk-build-system)
2591 (arguments
2592 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2593 #:phases
2594 (modify-phases %standard-phases
2595 (add-before 'install 'skip-gtk-update-icon-cache
2596 ;; Don't create 'icon-theme.cache'.
2597 (lambda _
2598 (substitute* "data/Makefile"
2599 (("gtk-update-icon-cache") "true"))
2600 #t)))))
2601 (inputs
2602 `(("libarchive" ,libarchive)
2603 ("libgxps" ,libgxps)
2604 ("libspectre" ,libspectre)
2605 ("djvulibre" ,djvulibre)
2606 ("ghostscript" ,ghostscript)
2607 ("poppler" ,poppler)
2608 ("libtiff" ,libtiff)
2609 ;; TODO:
2610 ;; Build libkpathsea as a shared library for DVI support.
2611 ;; ("libkpathsea" ,texlive-bin)
2612 ("gnome-desktop" ,gnome-desktop)
2613 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2614 ("gspell" ,gspell)
2615 ("libgnome-keyring" ,libgnome-keyring)
2616 ("adwaita-icon-theme" ,adwaita-icon-theme)
2617 ("gdk-pixbuf" ,gdk-pixbuf)
2618 ("atk" ,atk)
2619 ("pango" ,pango)
2620 ("gtk+" ,gtk+)
2621 ("glib" ,glib)
2622 ("libxml2" ,libxml2)
2623 ("libsm" ,libsm)
2624 ("libice" ,libice)
2625 ("shared-mime-info" ,shared-mime-info)
2626 ("dconf" ,dconf)
2627 ("libcanberra" ,libcanberra)
2628 ("libsecret" ,libsecret)
2629
2630 ;; For tests.
2631 ("dogtail" ,python2-dogtail)))
2632 (native-inputs
2633 `(("itstool" ,itstool)
2634 ("intltool" ,intltool)
2635 ("glib" ,glib "bin")
2636 ("gobject-introspection" ,gobject-introspection)
2637 ("pkg-config" ,pkg-config)
2638 ("xmllint" ,libxml2)))
2639 (home-page "https://www.gnome.org/projects/evince/")
2640 (synopsis "GNOME's document viewer")
2641 (description
2642 "Evince is a document viewer for multiple document formats. It
2643 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2644 of Evince is to replace the multiple document viewers that exist
2645 on the GNOME Desktop with a single simple application.")
2646 (license license:gpl2+)))
2647
2648 (define-public gsettings-desktop-schemas
2649 (package
2650 (name "gsettings-desktop-schemas")
2651 (version "3.34.0")
2652 (source
2653 (origin
2654 (method url-fetch)
2655 (uri (string-append "mirror://gnome/sources/" name "/"
2656 (version-major+minor version) "/"
2657 name "-" version ".tar.xz"))
2658 (sha256
2659 (base32
2660 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2661 (build-system meson-build-system)
2662 (arguments
2663 '(#:phases (modify-phases %standard-phases
2664 (add-after 'unpack 'patch-schemas
2665 (lambda* (#:key inputs #:allow-other-keys)
2666 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2667 (substitute* (find-files "schemas"
2668 "\\.gschema\\.xml\\.in$")
2669 ;; Provide the correct file name of the default GNOME
2670 ;; background, 'adwaita-timed.xml'.
2671 (("@datadir@/backgrounds/gnome")
2672 (string-append theme "/share/backgrounds/gnome"))
2673 ;; Do not reference fonts, that may not exist.
2674 (("'Source Code Pro 10'") "'Monospace 11'"))
2675 #t))))))
2676 (inputs
2677 `(("glib" ,glib)
2678 ("gnome-backgrounds" ,gnome-backgrounds)))
2679 (native-inputs
2680 `(("intltool" ,intltool)
2681 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2682 ("gobject-introspection" ,gobject-introspection)
2683 ("pkg-config" ,pkg-config)))
2684 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2685 (synopsis
2686 "GNOME settings for various desktop components")
2687 (description
2688 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2689 for settings shared by various components of the GNOME desktop.")
2690 (license license:lgpl2.1+)))
2691
2692 (define-public python-liblarch
2693 (package
2694 (name "python-liblarch")
2695 (version "3.0.1")
2696 (source
2697 (origin
2698 (method git-fetch)
2699 (uri (git-reference
2700 (url "https://github.com/getting-things-gnome/liblarch")
2701 (commit (string-append "v" version))))
2702 (file-name (git-file-name name version))
2703 (sha256
2704 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2705 (build-system python-build-system)
2706 (arguments
2707 `(#:phases
2708 (modify-phases %standard-phases
2709 (add-before 'check 'start-xserver
2710 (lambda* (#:key inputs #:allow-other-keys)
2711 (system (format #f "~a/bin/Xvfb :1 &"
2712 (assoc-ref inputs "xorg-server")))
2713 (setenv "DISPLAY" ":1")
2714 #t)))))
2715 (native-inputs
2716 `(("xorg-server" ,xorg-server-for-tests)))
2717 (inputs
2718 `(("gtk+" ,gtk+)))
2719 (propagated-inputs
2720 `(("python-pygobject" ,python-pygobject)))
2721 (home-page "https://wiki.gnome.org/Projects/liblarch")
2722 (synopsis "Library to easily handle complex data structures")
2723 (description
2724 "Liblarch is a Python library built to easily handle data structures such
2725 as lists, trees and acyclic graphs. There's also a GTK binding that will
2726 allow you to use your data structure in a @code{Gtk.Treeview}.
2727
2728 Liblarch support multiple views of one data structure and complex filtering.
2729 That way, you have a clear separation between your data themselves (Model)
2730 and how they are displayed (View).")
2731 (license license:lgpl3+)))
2732
2733 (define-public gtg
2734 (package
2735 (name "gtg")
2736 (version "0.5")
2737 (source
2738 (origin
2739 (method git-fetch)
2740 (uri (git-reference
2741 (url "https://github.com/getting-things-gnome/gtg")
2742 (commit (string-append "v" version))))
2743 (file-name (git-file-name name version))
2744 (sha256
2745 (base32 "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403"))))
2746 (build-system meson-build-system)
2747 (arguments
2748 `(#:glib-or-gtk? #t
2749 #:phases
2750 (modify-phases %standard-phases
2751 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2752 (lambda* (#:key outputs #:allow-other-keys)
2753 (let ((prog (string-append (assoc-ref outputs "out")
2754 "/bin/gtg"))
2755 (pylib (string-append (assoc-ref outputs "out")
2756 "/lib/python"
2757 ,(version-major+minor
2758 (package-version python))
2759 "/site-packages")))
2760 (wrap-program prog
2761 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
2762 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2763 #t))))))
2764 (native-inputs
2765 `(("desktop-file-utils" ,desktop-file-utils)
2766 ("gettext" ,gettext-minimal)
2767 ("glib:bin" ,glib "bin")
2768 ("gobject-introspection" ,gobject-introspection)
2769 ("gtk+:bin" ,gtk+ "bin")
2770 ("pkg-config" ,pkg-config)))
2771 (inputs
2772 `(("gdk-pixbuf" ,gdk-pixbuf+svg)
2773 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2774 ("gtk+" ,gtk+)
2775 ("pango" ,pango)
2776 ("python-dbus" ,python-dbus)
2777 ("python-liblarch" ,python-liblarch)
2778 ("python-lxml" ,python-lxml)
2779 ("python-pycairo" ,python-pycairo)
2780 ("python-pygobject" ,python-pygobject)
2781 ("python-pyxdg" ,python-pyxdg)))
2782 (home-page "https://wiki.gnome.org/Apps/GTG")
2783 (synopsis "Personal organizer for the GNOME desktop")
2784 (description
2785 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2786 organizer for the GNOME desktop environment inspired by the Getting Things
2787 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2788 and ease of use in mind so it can be used as more than just GTD software.
2789 GTG is intended to help you track everything you need to do and need to
2790 know, from small tasks to large projects.")
2791 (license license:gpl3+)))
2792
2793 (define-public icon-naming-utils
2794 (package
2795 (name "icon-naming-utils")
2796 (version "0.8.90")
2797 (source
2798 (origin
2799 (method url-fetch)
2800 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2801 version ".tar.bz2"))
2802 (sha256
2803 (base32
2804 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2805 (build-system gnu-build-system)
2806 (inputs
2807 `(("perl" ,perl)
2808 ("perl-xml-simple" ,perl-xml-simple)))
2809 (arguments
2810 '(#:phases
2811 (modify-phases %standard-phases
2812 (add-after 'install 'set-load-paths
2813 ;; Tell 'icon-name-mapping' where XML::Simple is.
2814 (lambda* (#:key outputs #:allow-other-keys)
2815 (let* ((out (assoc-ref outputs "out"))
2816 (prog (string-append out "/libexec/icon-name-mapping")))
2817 (wrap-program
2818 prog
2819 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2820 #t)))))
2821 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2822 (synopsis
2823 "Utility to implement the Freedesktop Icon Naming Specification")
2824 (description
2825 "To help with the transition to the Freedesktop Icon Naming
2826 Specification, the icon naming utility maps the icon names used by the
2827 GNOME and KDE desktops to the icon names proposed in the specification.")
2828 (license license:lgpl2.1+)))
2829
2830 (define-public gnome-icon-theme
2831 (package
2832 (name "gnome-icon-theme")
2833 (version "3.12.0")
2834 (source
2835 (origin
2836 (method url-fetch)
2837 (uri (string-append "mirror://gnome/sources/" name "/"
2838 (version-major+minor version) "/"
2839 name "-" version ".tar.xz"))
2840 (sha256
2841 (base32
2842 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2843 (build-system gnu-build-system)
2844 (arguments
2845 '(#:configure-flags
2846 ;; Don't create 'icon-theme.cache'.
2847 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2848 (true (string-append coreutils "/bin/true")))
2849 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2850 (native-inputs
2851 `(("icon-naming-utils" ,icon-naming-utils)
2852 ("intltool" ,intltool)
2853 ("pkg-config" ,pkg-config)))
2854 (home-page "https://wiki.gnome.org/Personalization")
2855 (synopsis "GNOME icon theme")
2856 (description "Icons for the GNOME desktop.")
2857 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2858
2859 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2860 (define-public adwaita-icon-theme
2861 (package (inherit gnome-icon-theme)
2862 (name "adwaita-icon-theme")
2863 (version "3.34.3")
2864 (source (origin
2865 (method url-fetch)
2866 (uri (string-append "mirror://gnome/sources/" name "/"
2867 (version-major+minor version) "/"
2868 name "-" version ".tar.xz"))
2869 (sha256
2870 (base32
2871 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2872 (native-inputs
2873 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2874
2875 (define-public tango-icon-theme
2876 (package
2877 (name "tango-icon-theme")
2878 (version "0.8.90")
2879 (source (origin
2880 (method url-fetch)
2881 (uri (string-append "http://tango.freedesktop.org/releases/"
2882 "tango-icon-theme-" version ".tar.bz2"))
2883 (sha256
2884 (base32
2885 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2886 (build-system gnu-build-system)
2887 (native-inputs
2888 `(("icon-naming-utils" ,icon-naming-utils)
2889 ("intltool" ,intltool)
2890 ("imagemagick" ,imagemagick)
2891 ("pkg-config" ,pkg-config)))
2892 (home-page "http://tango-project.org/")
2893 (synopsis "Tango icon theme")
2894 (description "This is an icon theme that follows the Tango visual
2895 guidelines.")
2896 (license license:public-domain)))
2897
2898 (define-public shared-mime-info
2899 (package
2900 (name "shared-mime-info")
2901 (version "1.15")
2902 (source (origin
2903 (method url-fetch)
2904 (uri (string-append
2905 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2906 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2907 ".tar.xz"))
2908 (sha256
2909 (base32
2910 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2911 (build-system gnu-build-system)
2912 (arguments
2913 ;; The build system appears not to be parallel-safe.
2914 '(#:parallel-build? #f))
2915 (inputs
2916 `(("glib" ,glib)
2917 ("libxml2" ,libxml2)))
2918 (native-inputs
2919 `(("gettext" ,gettext-minimal)
2920 ("itstool" ,itstool)
2921 ("pkg-config" ,pkg-config)))
2922 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2923 (synopsis "Database of common MIME types")
2924 (description
2925 "The shared-mime-info package contains the core database of common types
2926 and the update-mime-database command used to extend it. It requires glib2 to
2927 be installed for building the update command. Additionally, it uses intltool
2928 for translations, though this is only a dependency for the maintainers. This
2929 database is translated at Transifex.")
2930 (license license:gpl2+)))
2931
2932 (define-public system-config-printer
2933 (package
2934 (name "system-config-printer")
2935 (version "1.5.15")
2936 (source
2937 (origin
2938 (method url-fetch)
2939 (uri (string-append
2940 "https://github.com/OpenPrinting/system-config-printer/releases/"
2941 "download/v" version
2942 "/system-config-printer-" version ".tar.xz"))
2943 (sha256
2944 (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv"))))
2945 (build-system glib-or-gtk-build-system)
2946 (arguments
2947 `(#:imported-modules ((guix build python-build-system)
2948 ,@%glib-or-gtk-build-system-modules)
2949 #:phases
2950 (modify-phases %standard-phases
2951 (add-after 'unpack 'patch-Makefile.am
2952 (lambda _
2953 ;; The Makefile generates some scripts, so set a valid shebang
2954 (substitute* "Makefile.am"
2955 (("/bin/bash") (which "bash")))
2956 (delete-file "configure")
2957 #t))
2958 (add-after 'unpack 'patch-docbook-xml
2959 (lambda* (#:key inputs #:allow-other-keys)
2960 ;; Modify the man XML otherwise xmlto tries to access the network
2961 (substitute* "man/system-config-printer.xml"
2962 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2963 (string-append (assoc-ref inputs "docbook-xml")
2964 "/xml/dtd/docbook/")))
2965 #t))
2966 (add-after 'install 'wrap-for-python
2967 (@@ (guix build python-build-system) wrap))
2968 (add-after 'install 'wrap
2969 (lambda* (#:key outputs #:allow-other-keys)
2970 (let ((out (assoc-ref outputs "out"))
2971 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2972 (for-each
2973 (lambda (program)
2974 (wrap-program program
2975 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2976 (map (lambda (name)
2977 (string-append out "/bin/" name))
2978 '("system-config-printer"
2979 "system-config-printer-applet"
2980 "install-printerdriver"
2981 "scp-dbus-service"))))
2982 #t)))))
2983 (inputs
2984 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2985 ("gobject-introspection" ,gobject-introspection)
2986 ("python" ,python)
2987 ("cups" ,cups)
2988 ("gtk+" ,gtk+)
2989 ("python-dbus" ,python-dbus)
2990 ("python-pygobject" ,python-pygobject)
2991 ("python-pycups" ,python-pycups)
2992 ("python-requests" ,python-requests)
2993 ("python-pycairo" ,python-pycairo)
2994 ("libnotify" ,libnotify)
2995 ("packagekit" ,packagekit)))
2996 (native-inputs
2997 `(("pkg-config" ,pkg-config)
2998 ("desktop-file-utils" ,desktop-file-utils)
2999 ("glib" ,glib)
3000 ("autoconf" ,autoconf)
3001 ("automake" ,automake)
3002 ("intltool" ,intltool)
3003 ("xmlto" ,xmlto)
3004 ("docbook-xml" ,docbook-xml-4.1.2)
3005 ("docbook-xsl" ,docbook-xsl)
3006 ("libxml2" ,libxml2)))
3007 (home-page "https://github.com/zdohnal/system-config-printer")
3008 (synopsis "CUPS administration tool")
3009 (description
3010 "system-config-printer is a CUPS administration tool. It's written in
3011 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
3012 configuring CUPS.")
3013 (license license:gpl2+)))
3014
3015 (define-public hicolor-icon-theme
3016 (package
3017 (name "hicolor-icon-theme")
3018 (version "0.17")
3019 (source
3020 (origin
3021 (method url-fetch)
3022 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3023 "hicolor-icon-theme-" version ".tar.xz"))
3024 (sha256
3025 (base32
3026 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3027 (build-system gnu-build-system)
3028 (arguments
3029 `(#:tests? #f)) ; no check target
3030 (home-page "https://icon-theme.freedesktop.org/releases/")
3031 (synopsis
3032 "Freedesktop icon theme")
3033 (description
3034 "Freedesktop icon theme.")
3035 (license license:gpl2)))
3036
3037 (define-public libnotify
3038 (package
3039 (name "libnotify")
3040 (version "0.7.9")
3041 (source
3042 (origin
3043 (method url-fetch)
3044 (uri (string-append "mirror://gnome/sources/" name "/"
3045 (version-major+minor version) "/"
3046 name "-" version ".tar.xz"))
3047 (sha256
3048 (base32
3049 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3050 (build-system meson-build-system)
3051 (arguments
3052 `(#:phases
3053 (modify-phases %standard-phases
3054 (add-after 'unpack 'fix-docbook
3055 (lambda* (#:key inputs #:allow-other-keys)
3056 ;; Don't attempt to download XSL schema.
3057 (substitute* "meson.build"
3058 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3059 /manpages/docbook.xsl")
3060 (string-append (assoc-ref inputs "docbook-xsl")
3061 "/xml/xsl/docbook-xsl-"
3062 ,(package-version docbook-xsl)
3063 "/manpages/docbook.xsl")))
3064 #t)))))
3065 (propagated-inputs
3066 `(;; In Requires of libnotify.pc.
3067 ("gdk-pixbuf" ,gdk-pixbuf)
3068 ("glib" ,glib)))
3069 (inputs
3070 `(("gtk+" ,gtk+)
3071 ("libpng" ,libpng)))
3072 (native-inputs
3073 `(("pkg-config" ,pkg-config)
3074 ("glib" ,glib "bin")
3075 ("gobject-introspection" ,gobject-introspection)
3076
3077 ;; For the documentation.
3078 ("gtk-doc" ,gtk-doc/stable)
3079 ("xsltproc" ,libxslt)
3080 ("docbook-xsl" ,docbook-xsl)))
3081 (home-page "https://developer-next.gnome.org/libnotify/")
3082 (synopsis
3083 "GNOME desktop notification library")
3084 (description
3085 "Libnotify is a library that sends desktop notifications to a
3086 notification daemon, as defined in the Desktop Notifications spec. These
3087 notifications can be used to inform the user about an event or display
3088 some form of information without getting in the user's way.")
3089 (license license:lgpl2.1+)))
3090
3091 (define-public libpeas
3092 (package
3093 (name "libpeas")
3094 (version "1.28.0")
3095 (source
3096 (origin
3097 (method url-fetch)
3098 (uri (string-append "mirror://gnome/sources/" name "/"
3099 (version-major+minor version) "/"
3100 name "-" version ".tar.xz"))
3101 (sha256
3102 (base32
3103 "05cb7drn6arc4gi02wgsvzibigi2riz5gnfnmlb0zmbfnj9ikna2"))))
3104 (build-system meson-build-system)
3105 (arguments
3106 '(#:phases
3107 (modify-phases %standard-phases
3108 (add-before 'check 'start-xserver
3109 (lambda* (#:key inputs #:allow-other-keys)
3110 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3111 (disp ":1"))
3112 (setenv "DISPLAY" disp)
3113 ;; Tests require a running X server.
3114 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3115 #t))))))
3116 (inputs
3117 `(("gtk+" ,gtk+)
3118 ("glade" ,glade3)
3119 ("python" ,python)
3120 ("python-pygobject" ,python-pygobject)))
3121 (native-inputs
3122 `(("pkg-config" ,pkg-config)
3123 ("gettext" ,gettext-minimal)
3124 ("glib:bin" ,glib "bin")
3125 ("gobject-introspection" ,gobject-introspection)
3126 ("xorg-server" ,xorg-server-for-tests)))
3127 (propagated-inputs
3128 ;; The .pc file "Requires" gobject-introspection.
3129 `(("gobject-introspection" ,gobject-introspection)))
3130 (home-page "https://wiki.gnome.org/Libpeas")
3131 (synopsis "GObject plugin system")
3132 (description
3133 "Libpeas is a gobject-based plugin engine, targeted at giving every
3134 application the chance to assume its own extensibility. It also has a set of
3135 features including, but not limited to: multiple extension points; on-demand
3136 (lazy) programming language support for C, Python and JS; simplicity of the
3137 API.")
3138 (license license:lgpl2.0+)))
3139
3140 (define-public gtkglext
3141 (package
3142 (name "gtkglext")
3143 (version "1.2.0")
3144 (source (origin
3145 (method url-fetch)
3146 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3147 version "/gtkglext-" version ".tar.gz"))
3148 (sha256
3149 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3150 (patches (search-patches
3151 "gtkglext-disable-disable-deprecated.patch"))))
3152 (build-system gnu-build-system)
3153 (arguments
3154 `(#:phases
3155 (modify-phases %standard-phases
3156 ;; Fix a collision between a local variable and a definition from
3157 ;; glibc's string.h.
3158 (add-after 'unpack 'fix-collision
3159 (lambda _
3160 (substitute* "gdk/gdkglshapes.c"
3161 ((" index") " triangle_index"))
3162 #t)))))
3163 (inputs `(("gtk+" ,gtk+-2)
3164 ("mesa" ,mesa)
3165 ("glu" ,glu)
3166 ("libx11" ,libx11)
3167 ("libxt" ,libxt)))
3168 (native-inputs `(("pkg-config" ,pkg-config)
3169 ("glib" ,glib "bin")))
3170 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
3171 (home-page "https://projects.gnome.org/gtkglext")
3172 (synopsis "OpenGL extension to GTK+")
3173 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3174 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3175 API add-ons to make GTK+ widgets OpenGL-capable.")
3176 (license license:lgpl2.1+)))
3177
3178 (define-public glade3
3179 (package
3180 (name "glade")
3181 (version "3.36.0")
3182 (source (origin
3183 (method url-fetch)
3184 (uri (string-append "mirror://gnome/sources/" name "/"
3185 (version-major+minor version) "/"
3186 name "-" version ".tar.xz"))
3187 (sha256
3188 (base32
3189 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
3190 (build-system glib-or-gtk-build-system)
3191 (arguments
3192 `(#:phases
3193 (modify-phases %standard-phases
3194 (add-before 'configure 'fix-docbook
3195 (lambda* (#:key inputs #:allow-other-keys)
3196 (substitute* "man/Makefile.in"
3197 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
3198 (string-append (assoc-ref inputs "docbook-xsl")
3199 "/xml/xsl/docbook-xsl-"
3200 ,(package-version docbook-xsl)
3201 "/manpages/docbook.xsl")))
3202 #t))
3203 (add-before 'check 'pre-check
3204 (lambda _
3205 (setenv "HOME" "/tmp")
3206 ;; Tests require a running X server.
3207 (system "Xvfb :1 &")
3208 (setenv "DISPLAY" ":1")
3209 #t)))))
3210 (inputs
3211 `(("gtk+" ,gtk+)
3212 ("libxml2" ,libxml2)))
3213 (native-inputs
3214 `(("hicolor-icon-theme" ,hicolor-icon-theme)
3215 ("intltool" ,intltool)
3216 ("itstool" ,itstool)
3217 ("libxslt" ,libxslt) ;for xsltproc
3218 ("docbook-xml" ,docbook-xml-4.2)
3219 ("docbook-xsl" ,docbook-xsl)
3220 ("python" ,python-2)
3221 ("pkg-config" ,pkg-config)
3222 ("xorg-server" ,xorg-server-for-tests)))
3223 (home-page "https://glade.gnome.org")
3224 (synopsis "GTK+ rapid application development tool")
3225 (description "Glade is a rapid application development (RAD) tool to
3226 enable quick & easy development of user interfaces for the GTK+ toolkit and
3227 the GNOME desktop environment.")
3228 (license license:lgpl2.0+)
3229 (native-search-paths (list (search-path-specification
3230 (variable "GLADE_CATALOG_SEARCH_PATH")
3231 (files '("share/glade/catalogs")))
3232 (search-path-specification
3233 (variable "GLADE_MODULE_SEARCH_PATH")
3234 (files '("lib/glade/modules")))))))
3235
3236 (define-public libcroco
3237 (package
3238 (name "libcroco")
3239 (version "0.6.13")
3240 (source (origin
3241 (method url-fetch)
3242 (uri (string-append "mirror://gnome/sources/" name "/"
3243 (version-major+minor version) "/"
3244 name "-" version ".tar.xz"))
3245 (patches (search-patches "libcroco-CVE-2020-12825.patch"))
3246 (sha256
3247 (base32
3248 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3249 (build-system gnu-build-system)
3250 (native-inputs
3251 `(("pkg-config" ,pkg-config)))
3252 (inputs
3253 `(("glib" ,glib)
3254 ("libxml2" ,libxml2)
3255 ("zlib" ,zlib)))
3256 (home-page "https://github.com/GNOME/libcroco")
3257 (synopsis "CSS2 parsing and manipulation library")
3258 (description
3259 "Libcroco is a standalone CSS2 parsing and manipulation library.
3260 The parser provides a low level event driven SAC-like API and a CSS object
3261 model like API. Libcroco provides a CSS2 selection engine and an experimental
3262 XML/CSS rendering engine.")
3263
3264 ;; LGPLv2.1-only.
3265 (license license:lgpl2.1)))
3266
3267 (define-public libgsf
3268 (package
3269 (name "libgsf")
3270 (version "1.14.47")
3271 (source (origin
3272 (method url-fetch)
3273 (uri (string-append "mirror://gnome/sources/" name "/"
3274 (version-major+minor version) "/"
3275 name "-" version ".tar.xz"))
3276 (sha256
3277 (base32
3278 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3279 (build-system gnu-build-system)
3280 (arguments
3281 '(#:configure-flags '("--disable-static")))
3282 (native-inputs
3283 `(("pkg-config" ,pkg-config)
3284 ("gettext" ,gettext-minimal)
3285
3286 ;; For tests.
3287 ("perl" ,perl)
3288 ("perl-xml-parser" ,perl-xml-parser)))
3289 (inputs
3290 `(("zlib" ,zlib)
3291 ("bzip2" ,bzip2)))
3292 (propagated-inputs
3293 `(("gdk-pixbuf" ,gdk-pixbuf)
3294 ("glib" ,glib)
3295 ("libxml2" ,libxml2)))
3296 (home-page "https://www.gnome.org/projects/libgsf")
3297 (synopsis "GNOME's Structured File Library")
3298 (description
3299 "Libgsf aims to provide an efficient extensible I/O abstraction for
3300 dealing with different structured file formats.")
3301
3302 ;; LGPLv2.1-only.
3303 (license license:lgpl2.1)))
3304
3305 (define-public librsvg
3306 (package
3307 (name "librsvg")
3308 (version "2.40.21")
3309 (source (origin
3310 (method url-fetch)
3311 (uri (string-append "mirror://gnome/sources/" name "/"
3312 (version-major+minor version) "/"
3313 name "-" version ".tar.xz"))
3314 (sha256
3315 (base32
3316 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3317 (build-system gnu-build-system)
3318 (arguments
3319 `(#:configure-flags
3320 (list "--disable-static"
3321 "--enable-vala") ; needed for e.g. gnome-mines
3322 #:phases
3323 (modify-phases %standard-phases
3324 (add-before 'configure 'pre-configure
3325 (lambda* (#:key inputs #:allow-other-keys)
3326 (substitute* "gdk-pixbuf-loader/Makefile.in"
3327 ;; By default the gdk-pixbuf loader is installed under
3328 ;; gdk-pixbuf's prefix. Work around that.
3329 (("gdk_pixbuf_moduledir = .*$")
3330 (string-append "gdk_pixbuf_moduledir = "
3331 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3332 "loaders\n"))
3333 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3334 (("gdk_pixbuf_cache_file = .*$")
3335 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3336 #t))
3337 (add-before 'check 'remove-failing-tests
3338 (lambda _
3339 (with-directory-excursion "tests/fixtures/reftests"
3340 (for-each delete-file
3341 '(;; This test fails on i686:
3342 "svg1.1/masking-path-04-b.svg"
3343 ;; This test fails on armhf:
3344 "svg1.1/masking-mask-01-b.svg"
3345 ;; This test fails on aarch64:
3346 "bugs/777834-empty-text-children.svg")))
3347 #t)))))
3348 (native-inputs
3349 `(("pkg-config" ,pkg-config)
3350 ("vala" ,vala)
3351 ("glib" ,glib "bin") ; glib-mkenums, etc.
3352 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3353 (inputs
3354 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3355 ;; this ancient version of librsvg.
3356 ("pango" ,pango-1.42)
3357 ("libcroco" ,libcroco)
3358 ("bzip2" ,bzip2)
3359 ("libgsf" ,libgsf)
3360 ("libxml2" ,libxml2)))
3361 (propagated-inputs
3362 ;; librsvg-2.0.pc refers to all of that.
3363 `(("cairo" ,cairo)
3364 ("gdk-pixbuf" ,gdk-pixbuf)
3365 ("glib" ,glib)))
3366 (home-page "https://wiki.gnome.org/LibRsvg")
3367 (synopsis "Render SVG files using Cairo")
3368 (description
3369 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3370 library.")
3371 (license license:lgpl2.0+)))
3372
3373 (define-public librsvg-next
3374 (package
3375 (name "librsvg")
3376 (version "2.50.3")
3377 (source (origin
3378 (method url-fetch)
3379 (uri (string-append "mirror://gnome/sources/librsvg/"
3380 (version-major+minor version) "/"
3381 "librsvg-" version ".tar.xz"))
3382 (sha256
3383 (base32
3384 "0n79i4wj9hm0d3bbn4xvknq5ylhqs16pvhaqr1rxspx9wfc8lad4"))
3385 (modules '((guix build utils)))
3386 (snippet
3387 '(begin (delete-file-recursively "vendor")
3388 #t))))
3389 (build-system cargo-build-system)
3390 (outputs '("out" "doc"))
3391 (arguments
3392 `(#:install-source? #f
3393 #:modules
3394 ((guix build cargo-build-system)
3395 (guix build utils)
3396 ((guix build gnu-build-system) #:prefix gnu:))
3397 #:cargo-inputs
3398 (("rust-bitflags" ,rust-bitflags-1)
3399 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3400 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3401 ("rust-cast" ,rust-cast-0.2)
3402 ("rust-cssparser" ,rust-cssparser-0.27)
3403 ("rust-data-url" ,rust-data-url-0.1)
3404 ("rust-encoding" ,rust-encoding-0.2)
3405 ("rust-float-cmp" ,rust-float-cmp-0.8)
3406 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3407 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3408 ("rust-gio" ,rust-gio-0.8)
3409 ("rust-gio-sys" ,rust-gio-sys-0.9)
3410 ("rust-glib" ,rust-glib-0.9)
3411 ("rust-glib-sys" ,rust-glib-sys-0.9)
3412 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3413 ("rust-itertools" ,rust-itertools-0.9)
3414 ("rust-language-tags" ,rust-language-tags-0.2)
3415 ("rust-libc" ,rust-libc-0.2)
3416 ("rust-locale-config" ,rust-locale-config-0.3)
3417 ("rust-markup5ever" ,rust-markup5ever-0.10)
3418 ("rust-nalgebra" ,rust-nalgebra-0.21)
3419 ("rust-num-traits" ,rust-num-traits-0.2)
3420 ("rust-once-cell" ,rust-once-cell-1)
3421 ("rust-pkg-config" ,rust-pkg-config-0.3)
3422 ("rust-pango" ,rust-pango-0.8)
3423 ("rust-pango-sys" ,rust-pango-sys-0.9)
3424 ("rust-pangocairo" ,rust-pangocairo-0.9)
3425 ("rust-rayon" ,rust-rayon-1)
3426 ("rust-rctree" ,rust-rctree-0.3)
3427 ("rust-rgb" ,rust-rgb-0.8)
3428 ("rust-regex" ,rust-regex-1)
3429 ("rust-selectors" ,rust-selectors-0.22)
3430 ("rust-string-cache" ,rust-string-cache-0.8)
3431 ("rust-tinyvec" ,rust-tinyvec-0.3)
3432 ("rust-url" ,rust-url-2)
3433 ("rust-xml5ever" ,rust-xml5ever-0.16))
3434 #:cargo-development-inputs
3435 (("rust-assert-cmd" ,rust-assert-cmd-1)
3436 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3437 ("rust-chrono" ,rust-chrono-0.4)
3438 ("rust-criterion" ,rust-criterion-0.3)
3439 ("rust-float-cmp" ,rust-float-cmp-0.8)
3440 ("rust-lopdf" ,rust-lopdf-0.26)
3441 ("rust-png" ,rust-png-0.16)
3442 ("rust-predicates" ,rust-predicates-1)
3443 ("rust-tempfile" ,rust-tempfile-3))
3444 #:phases
3445 (modify-phases %standard-phases
3446 (add-after 'unpack 'patch-docbook-xml
3447 (lambda* (#:key inputs #:allow-other-keys)
3448 (with-directory-excursion "doc"
3449 (substitute* "rsvg-docs.xml"
3450 (("http://www.oasis-open.org/docbook/xml/4.3/")
3451 (string-append (assoc-ref inputs "docbook-xml")
3452 "/xml/dtd/docbook/"))))
3453 #t))
3454 (add-after 'unpack 'prepare-for-build
3455 (lambda _
3456 ;; In lieu of #:make-flags
3457 (setenv "CC" ,(cc-for-target))
3458 ;; Something about the build environment resists building
3459 ;; successfully with the '--locked' flag.
3460 (substitute* '("Makefile.am" "Makefile.in")
3461 (("--locked") ""))
3462 #t))
3463 (add-before 'configure 'pre-configure
3464 (lambda _
3465 (substitute* "gdk-pixbuf-loader/Makefile.in"
3466 ;; By default the gdk-pixbuf loader is installed under
3467 ;; gdk-pixbuf's prefix. Work around that.
3468 (("gdk_pixbuf_moduledir = .*$")
3469 (string-append "gdk_pixbuf_moduledir = "
3470 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3471 "loaders\n"))
3472 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3473 (("gdk_pixbuf_cache_file = .*$")
3474 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3475 #t))
3476 (add-after 'configure 'gnu-configure
3477 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3478 ((assoc-ref gnu:%standard-phases 'configure)
3479 #:native-inputs native-inputs
3480 #:inputs inputs
3481 #:outputs outputs
3482 #:configure-flags
3483 (list "--disable-static"
3484 "--enable-vala"
3485 (string-append "--with-html-dir="
3486 (assoc-ref %outputs "doc")
3487 "/share/gtk-doc/html")))))
3488 (add-after 'configure 'dont-vendor-self
3489 (lambda* (#:key vendor-dir #:allow-other-keys)
3490 ;; Don't keep the whole tarball in the vendor directory
3491 (delete-file-recursively
3492 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3493 #t))
3494 (replace 'build
3495 (assoc-ref gnu:%standard-phases 'build))
3496 (add-before 'check 'ignore-failing-tests
3497 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3498 (lambda _
3499 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3500 (("fn background_color_option_invalid_color_yields_error" all)
3501 (string-append "#[ignore] " all))
3502 (("fn empty_input_yields_error" all)
3503 (string-append "#[ignore] " all))
3504 (("fn empty_svg_yields_error" all)
3505 (string-append "#[ignore] " all))
3506 (("fn env_source_data_epoch_empty" all)
3507 (string-append "#[ignore] " all))
3508 (("fn env_source_data_epoch_no_digits" all)
3509 (string-append "#[ignore] " all))
3510 (("fn env_source_data_epoch_trailing_garbage" all)
3511 (string-append "#[ignore] " all))
3512 (("fn export_id_option_error" all)
3513 (string-append "#[ignore] " all))
3514 (("fn huge_zoom_factor_yields_error" all)
3515 (string-append "#[ignore] " all))
3516 (("fn multiple_input_files_not_allowed_for_png_output" all)
3517 (string-append "#[ignore] " all))
3518 (("fn stylesheet_option_error" all)
3519 (string-append "#[ignore] " all)))
3520 #t))
3521 (replace 'check
3522 (lambda* args
3523 ((assoc-ref gnu:%standard-phases 'check)
3524 #:test-target "check")))
3525 (replace 'install
3526 (assoc-ref gnu:%standard-phases 'install)))))
3527 (native-inputs
3528 `(("docbook-xml" ,docbook-xml-4.3)
3529 ("glib" ,glib "bin")
3530 ("gobject-introspection" ,gobject-introspection)
3531 ("pkg-config" ,pkg-config)
3532 ("python" ,python-wrapper)
3533 ("ruby" ,ruby)
3534 ("vala" ,vala)))
3535 (inputs
3536 `(("bzip2" ,bzip2)
3537 ("fontconfig" ,fontconfig)
3538 ("freetype" ,freetype)
3539 ("harfbuzz" ,harfbuzz)
3540 ("libcroco" ,libcroco)
3541 ("libgsf" ,libgsf)
3542 ("libxml2" ,libxml2)
3543 ("pango" ,pango)))
3544 (propagated-inputs
3545 `(("cairo" ,cairo)
3546 ("gdk-pixbuf" ,gdk-pixbuf)
3547 ("glib" ,glib)))
3548 (synopsis "SVG rendering library")
3549 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3550 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3551 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3552 diagrams.")
3553 (home-page "https://wiki.gnome.org/LibRsvg")
3554 (license license:lgpl2.1+)))
3555
3556 (define-public libidl
3557 (package
3558 (name "libidl")
3559 (version "0.8.14")
3560 (source (origin
3561 (method url-fetch)
3562 (uri (string-append "mirror://gnome/sources/libIDL/"
3563 (version-major+minor version) "/"
3564 "libIDL-" version ".tar.bz2"))
3565 (sha256
3566 (base32
3567 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3568 (build-system gnu-build-system)
3569 (inputs `(("glib" ,glib)))
3570 (native-inputs
3571 `(("pkg-config" ,pkg-config)
3572 ("flex" ,flex)
3573 ("bison" ,bison)))
3574 (home-page "http://freecode.com/projects/libidl")
3575 (synopsis "Create trees of CORBA Interface Definition Language files")
3576 (description "Libidl is a library for creating trees of CORBA Interface
3577 Definition Language (idl) files, which is a specification for defining
3578 portable interfaces. libidl was initially written for orbit (the orb from the
3579 GNOME project, and the primary means of libidl distribution). However, the
3580 functionality was designed to be as reusable and portable as possible.")
3581 (properties `((upstream-name . "libIDL")))
3582 (license license:lgpl2.0+)))
3583
3584
3585 (define-public orbit2
3586 (package
3587 (name "orbit2")
3588 (version "2.14.19")
3589 (source (origin
3590 (method url-fetch)
3591 (uri (let ((upstream-name "ORBit2"))
3592 (string-append "mirror://gnome/sources/" upstream-name "/"
3593 (version-major+minor version) "/"
3594 upstream-name "-" version ".tar.bz2")))
3595 (sha256
3596 (base32
3597 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3598 (build-system gnu-build-system)
3599 (arguments
3600 `(;; The "timeout-server" test hangs when run in parallel.
3601 #:parallel-tests? #f
3602 #:configure-flags
3603 '(;; We don't need static libraries, plus they don't build reproducibly
3604 ;; (non-deterministic ordering of .o files in the archive.)
3605 "--disable-static"
3606
3607 ;; The programmer kindly gives us a hook to turn off deprecation
3608 ;; warnings ...
3609 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3610 ;; ... which they then completly ignore !!
3611 #:phases
3612 (modify-phases %standard-phases
3613 (add-before 'configure 'ignore-deprecations
3614 (lambda _
3615 (substitute* "linc2/src/Makefile.in"
3616 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3617 #t)))))
3618 (inputs `(("glib" ,glib)
3619 ("libidl" ,libidl)))
3620 (native-inputs
3621 `(("pkg-config" ,pkg-config)))
3622 (home-page "https://projects.gnome.org/orbit2/")
3623 (synopsis "CORBA 2.4-compliant Object Request Broker")
3624 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3625 featuring mature C, C++ and Python bindings.")
3626 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3627 ;; a version. SOME of the code files have licence notices for GPLv2+.
3628 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3629 (license license:gpl2+)
3630 (properties `((upstream-name . "ORBit2")))))
3631
3632
3633 (define-public libbonobo
3634 (package
3635 (name "libbonobo")
3636 (version "2.32.1")
3637 (source (origin
3638 (method url-fetch)
3639 (uri (string-append "mirror://gnome/sources/" name "/"
3640 (version-major+minor version)
3641 "/" name "-" version ".tar.bz2"))
3642 (sha256
3643 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3644 (patches (search-patches
3645 "libbonobo-activation-test-race.patch"))))
3646 (build-system gnu-build-system)
3647 (arguments
3648 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3649 `(#:configure-flags
3650 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3651 ;; ... which they then completly ignore !!
3652 #:phases
3653 (modify-phases %standard-phases
3654 (add-before 'configure 'ignore-deprecations
3655 (lambda _
3656 (substitute* "activation-server/Makefile.in"
3657 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3658 #t)))
3659
3660 ;; There's apparently a race condition between the server stub
3661 ;; generation and linking of the example under 'samples/echo' that can
3662 ;; lead do undefined references when building in parallel, as reported
3663 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3664 ;; Thus, disable parallel builds.
3665 #:parallel-build? #f))
3666 (inputs `(("popt" ,popt)
3667 ("libxml2" ,libxml2)))
3668 ;; The following are Required by the .pc file
3669 (propagated-inputs
3670 `(("glib" ,glib)
3671 ("orbit2" ,orbit2)))
3672 (native-inputs
3673 `(("intltool" ,intltool)
3674 ("pkg-config" ,pkg-config)
3675 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3676 ("flex" ,flex)
3677 ("bison" ,bison)))
3678 (home-page "https://developer.gnome.org/libbonobo/")
3679 (synopsis "Framework for creating reusable components for use in GNOME applications")
3680 (description "Bonobo is a framework for creating reusable components for
3681 use in GNOME applications, built on top of CORBA.")
3682 ;; Licence not explicitly stated. Source files contain no licence notices.
3683 ;; Tarball contains text of both GPLv2 and LGPLv2
3684 ;; GPLv2 covers both conditions
3685 (license license:gpl2+)))
3686
3687
3688 (define-public gconf
3689 (package
3690 (name "gconf")
3691 (version "3.2.6")
3692 (source (origin
3693 (method url-fetch)
3694 (uri
3695 (let ((upstream-name "GConf"))
3696 (string-append "mirror://gnome/sources/" upstream-name "/"
3697 (version-major+minor version) "/"
3698 upstream-name "-" version ".tar.xz")))
3699 (sha256
3700 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3701 (build-system gnu-build-system)
3702 (inputs `(("dbus-glib" ,dbus-glib)
3703 ("libxml2" ,libxml2)))
3704 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3705 ("orbit2" ,orbit2)))
3706 (native-inputs
3707 `(("intltool" ,intltool)
3708 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3709 ("pkg-config" ,pkg-config)))
3710 (home-page "https://projects.gnome.org/gconf/")
3711 (synopsis "Store application preferences")
3712 (description "Gconf is a system for storing application preferences. It
3713 is intended for user preferences; not arbitrary data storage.")
3714 (license license:lgpl2.0+)
3715 (properties '((upstream-name . "GConf")))))
3716
3717
3718 (define-public gnome-mime-data
3719 (package
3720 (name "gnome-mime-data")
3721 (version "2.18.0")
3722 (source (origin
3723 (method url-fetch)
3724 (uri (string-append "mirror://gnome/sources/" name "/"
3725 (version-major+minor version) "/"
3726 name "-" version ".tar.bz2"))
3727 (sha256
3728 (base32
3729 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3730 (build-system gnu-build-system)
3731 (native-inputs
3732 `(("perl" ,perl)
3733 ("intltool" ,intltool)))
3734 (arguments
3735 '(#:phases (modify-phases %standard-phases
3736 (add-after 'configure 'use-our-intltool
3737 (lambda _
3738 ;; Do not use the bundled intltool commands, which lack
3739 ;; the "dotless @INC" fixes of our 'intltool' package.
3740 (substitute* (find-files "." "^Makefile$")
3741 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3742 (string-append "INTLTOOL_" tool " = intltool-"
3743 (string-downcase tool) "\n")))
3744 #t)))))
3745 (home-page "https://www.gnome.org")
3746 (synopsis "Base MIME and Application database for GNOME")
3747 (description "GNOME Mime Data is a module which contains the base MIME
3748 and Application database for GNOME. The data stored by this module is
3749 designed to be accessed through the MIME functions in GnomeVFS.")
3750 (license license:gpl2+)))
3751
3752
3753 (define-public gnome-vfs
3754 (package
3755 (name "gnome-vfs")
3756 (version "2.24.4")
3757 (source (origin
3758 (method url-fetch)
3759 (uri (string-append "mirror://gnome/sources/" name "/"
3760 (version-major+minor version) "/"
3761 name "-" version ".tar.bz2"))
3762 (sha256
3763 (base32
3764 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3765 (build-system gnu-build-system)
3766 (arguments
3767 `(#:phases
3768 (modify-phases %standard-phases
3769 (add-before 'configure 'ignore-deprecations
3770 (lambda _
3771 (substitute* '("libgnomevfs/Makefile.in"
3772 "daemon/Makefile.in")
3773 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3774 #t))
3775 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3776 (lambda _
3777 (substitute* "test/test-async-cancel.c"
3778 (("EXIT_FAILURE") "77"))
3779 #t)))))
3780 (inputs `(("libxml2" ,libxml2)
3781 ("dbus-glib" ,dbus-glib)
3782 ("gconf" ,gconf)
3783 ("gnome-mime-data" ,gnome-mime-data)
3784 ("zlib" ,zlib)))
3785 (native-inputs
3786 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3787 ("intltool" ,intltool)
3788 ("pkg-config" ,pkg-config)))
3789 (home-page "https://developer.gnome.org/gnome-vfs/")
3790 (synopsis "Access files and folders in GNOME applications")
3791 (description
3792 "GnomeVFS is the core library used to access files and folders in GNOME
3793 applications. It provides a file system abstraction which allows applications
3794 to access local and remote files with a single consistent API.")
3795 (license license:lgpl2.0+)))
3796
3797
3798
3799 (define-public libgnome
3800 (package
3801 (name "libgnome")
3802 (version "2.32.1")
3803 (source (origin
3804 (method url-fetch)
3805 (uri (string-append "mirror://gnome/sources/" name "/"
3806 (version-major+minor version) "/"
3807 name "-" version ".tar.bz2"))
3808 (sha256
3809 (base32
3810 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3811 (patches (search-patches "libgnome-encoding.patch"))))
3812 (build-system gnu-build-system)
3813 (arguments
3814 `(#:phases
3815 (modify-phases %standard-phases
3816 (add-before 'configure 'enable-deprecated
3817 (lambda _
3818 (substitute* "libgnome/Makefile.in"
3819 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3820 #t)))))
3821 (inputs `(("libxml2" ,libxml2)))
3822 (native-inputs
3823 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3824 ("intltool" ,intltool)
3825 ("pkg-config" ,pkg-config)))
3826 ;; The following are listed as Required in the .pc file
3827 ;; (except for libcanberra -- which seems to be oversight on the part
3828 ;; of the upstream developers -- anything that links against libgnome,
3829 ;; must also link against libcanberra
3830 (propagated-inputs
3831 `(("libcanberra" ,libcanberra)
3832 ("libbonobo" ,libbonobo)
3833 ("gconf" ,gconf)
3834 ("gnome-vfs" ,gnome-vfs)
3835 ("popt" ,popt))) ;gnome-program.h includes popt.h
3836 (home-page "https://developer.gnome.org/libgnome/")
3837 (synopsis "Useful routines for building applications")
3838 (description "The libgnome library provides a number of useful routines
3839 for building modern applications, including session management, activation of
3840 files and URIs, and displaying help.")
3841 (license license:lgpl2.0+)))
3842
3843
3844 (define-public libart-lgpl
3845 (package
3846 (name "libart-lgpl")
3847 (version "2.3.21")
3848 (source (origin
3849 (method url-fetch)
3850 (uri (let ((upstream-name "libart_lgpl"))
3851 (string-append "mirror://gnome/sources/" upstream-name "/"
3852 (version-major+minor version) "/"
3853 upstream-name "-" version ".tar.bz2")))
3854 (sha256
3855 (base32
3856 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3857 (build-system gnu-build-system)
3858 (native-inputs
3859 `(("pkg-config" ,pkg-config)))
3860 (home-page "https://people.gnome.org/~mathieu/libart")
3861 (synopsis "2D drawing library")
3862 (description "Libart is a 2D drawing library intended as a
3863 high-quality vector-based 2D library with antialiasing and alpha composition.")
3864 (license license:lgpl2.0+)))
3865
3866
3867
3868 (define-public libgnomecanvas
3869 (package
3870 (name "libgnomecanvas")
3871 (version "2.30.3")
3872 (source (origin
3873 (method url-fetch)
3874 (uri (string-append "mirror://gnome/sources/" name "/"
3875 (version-major+minor version) "/"
3876 name "-" version ".tar.gz"))
3877 (sha256
3878 (base32
3879 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3880 (build-system gnu-build-system)
3881 ;; Mentioned as Required in the .pc file
3882 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3883 ("gtk+" ,gtk+-2)))
3884 (native-inputs
3885 `(("intltool" ,intltool)
3886 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3887 ("pkg-config" ,pkg-config)))
3888 (home-page "https://developer.gnome.org/libgnomecanvas/")
3889 (synopsis "Flexible widget for creating interactive structured graphics")
3890 (description "The GnomeCanvas widget provides a flexible widget for
3891 creating interactive structured graphics.")
3892 (license license:lgpl2.0+)))
3893
3894 (define-public libgnomecanvasmm
3895 (package
3896 (name "libgnomecanvasmm")
3897 (version "2.26.0")
3898 (source (origin
3899 (method url-fetch)
3900 (uri (string-append "mirror://gnome/sources/" name "/"
3901 (version-major+minor version) "/"
3902 name "-" version ".tar.bz2"))
3903 (sha256
3904 (base32
3905 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3906 (build-system gnu-build-system)
3907 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3908 (native-inputs
3909 `(("gtkmm-2" ,gtkmm-2)
3910 ("pkg-config" ,pkg-config)))
3911 (home-page "https://gtkmm.org")
3912 (synopsis "C++ bindings to the GNOME Canvas library")
3913 (description "C++ bindings to the GNOME Canvas library.")
3914 (license license:lgpl2.0+)))
3915
3916 (define-public libgnomeui
3917 (package
3918 (name "libgnomeui")
3919 (version "2.24.5")
3920 (source (origin
3921 (method url-fetch)
3922 (uri (string-append "mirror://gnome/sources/" name "/"
3923 (version-major+minor version) "/"
3924 name "-" version ".tar.bz2"))
3925 (patches (search-patches "libgnomeui-utf8.patch"))
3926 (sha256
3927 (base32
3928 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3929 (build-system gnu-build-system)
3930 ;; Mentioned as Required in the .pc file
3931 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3932 ("libgnome" ,libgnome)
3933 ("libgnomecanvas" ,libgnomecanvas)
3934 ("libgnome-keyring" ,libgnome-keyring)))
3935 (inputs `(("libjpeg" ,libjpeg-turbo)
3936 ("popt" ,popt)
3937 ("libbonobo" ,libbonobo)
3938 ("libxml2" ,libxml2)
3939 ("libglade" ,libglade)))
3940 (native-inputs
3941 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3942 ("intltool" ,intltool)
3943 ("pkg-config" ,pkg-config)))
3944 (home-page "https://developer.gnome.org/libgnomeui/")
3945 (synopsis "Additional widgets for applications")
3946 (description "The libgnomeui library provides additional widgets for
3947 applications. Many of the widgets from libgnomeui have already been
3948 ported to GTK+.")
3949 (license license:lgpl2.0+)))
3950
3951 (define-public libglade
3952 (package
3953 (name "libglade")
3954 (version "2.6.4")
3955 (source (origin
3956 (method url-fetch)
3957 (uri (string-append "mirror://gnome/sources/" name "/"
3958 (version-major+minor version) "/"
3959 name "-" version ".tar.bz2"))
3960 (sha256
3961 (base32
3962 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3963 (build-system gnu-build-system)
3964 (inputs
3965 `(("python" ,python))) ;; needed for the optional libglade-convert program
3966 (propagated-inputs
3967 `(("gtk+-2" ,gtk+-2)
3968 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3969 (native-inputs
3970 `(("pkg-config" ,pkg-config)))
3971 (home-page "https://developer.gnome.org/libglade")
3972 (synopsis "Load glade interfaces and access the glade built widgets")
3973 (description "Libglade is a library that provides interfaces for loading
3974 graphical interfaces described in glade files and for accessing the
3975 widgets built in the loading process.")
3976 (license license:gpl2+))) ; This is correct. GPL not LGPL
3977
3978 (define-public libgnomeprint
3979 ;; This library has been deprecated since 2006; see
3980 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3981 (package
3982 (name "libgnomeprint")
3983 (version "2.18.8")
3984 (source (origin
3985 (method url-fetch)
3986 (uri (string-append "mirror://gnome/sources/" name "/"
3987 (version-major+minor version) "/"
3988 name "-" version ".tar.bz2"))
3989 (sha256
3990 (base32
3991 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3992 (build-system gnu-build-system)
3993 (inputs
3994 `(("popt" ,popt)
3995 ("libart-lgpl" ,libart-lgpl)
3996 ("gtk+" ,gtk+-2)
3997 ("libxml2" ,libxml2)))
3998 (native-inputs
3999 `(("intltool" ,intltool)
4000 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4001 ("pkg-config" ,pkg-config)))
4002 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
4003 (synopsis "Printing framework for GNOME")
4004 (description
4005 "GNOME-print was a printing framework for GNOME. It has been deprecated
4006 since ca. 2006, when GTK+ itself incorporated printing support.")
4007 (license license:lgpl2.0+)))
4008
4009
4010 (define-public libgnomeprintui
4011 ;; Deprecated; see libgnomeprint.
4012 (package
4013 (name "libgnomeprintui")
4014 (version "2.18.6")
4015 (source (origin
4016 (method url-fetch)
4017 (uri (string-append "mirror://gnome/sources/" name "/"
4018 (version-major+minor version) "/"
4019 name "-" version ".tar.bz2"))
4020 (sha256
4021 (base32
4022 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
4023 (build-system gnu-build-system)
4024 ;; Mentioned as Required in the .pc file
4025 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
4026 (inputs `(("gtk+" ,gtk+-2)
4027 ("glib" ,glib)
4028 ("gnome-icon-theme" ,gnome-icon-theme)
4029 ("libgnomecanvas" ,libgnomecanvas)
4030 ("libxml2" ,libxml2)))
4031 (native-inputs
4032 `(("intltool" ,intltool)
4033 ("pkg-config" ,pkg-config)))
4034 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
4035 (synopsis "Printing framework for GNOME")
4036 (description (package-description libgnomeprint))
4037 (license license:lgpl2.0+)))
4038
4039 (define-public libbonoboui
4040 (package
4041 (name "libbonoboui")
4042 (version "2.24.5")
4043 (source (origin
4044 (method url-fetch)
4045 (uri (string-append "mirror://gnome/sources/" name "/"
4046 (version-major+minor version) "/"
4047 name "-" version ".tar.bz2"))
4048 (sha256
4049 (base32
4050 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4051 (build-system gnu-build-system)
4052 (arguments
4053 `(#:phases
4054 (modify-phases %standard-phases
4055 (add-before 'check 'start-xserver
4056 (lambda* (#:key inputs #:allow-other-keys)
4057 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4058 (disp ":1"))
4059
4060 (setenv "HOME" (getcwd))
4061 (setenv "DISPLAY" disp)
4062 ;; There must be a running X server and make check doesn't start one.
4063 ;; Therefore we must do it.
4064 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4065 ;; Mentioned as Required by the .pc file
4066 (propagated-inputs `(("libxml2" ,libxml2)))
4067 (inputs
4068 `(("popt" ,popt)
4069 ("pangox-compat" ,pangox-compat)
4070 ("libgnome" ,libgnome)
4071 ("libgnomecanvas" ,libgnomecanvas)
4072 ("libglade" ,libglade)))
4073 (native-inputs
4074 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
4075 ("intltool" ,intltool)
4076 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
4077 ("pkg-config" ,pkg-config)))
4078 (home-page "https://developer.gnome.org/libbonoboui/")
4079 (synopsis "Some user interface controls using Bonobo")
4080 (description "The Bonobo UI library provides a number of user interface
4081 controls using the Bonobo component framework.")
4082 (license license:lgpl2.0+)))
4083
4084 (define-public libwnck
4085 (package
4086 (name "libwnck")
4087 (version "3.32.0")
4088 (source (origin
4089 (method url-fetch)
4090 (uri (string-append "mirror://gnome/sources/" name "/"
4091 (version-major+minor version) "/"
4092 name "-" version ".tar.xz"))
4093 (sha256
4094 (base32
4095 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4096 (build-system meson-build-system)
4097 (native-inputs
4098 `(("pkg-config" ,pkg-config)
4099 ("glib" ,glib "bin") ; for glib-mkenums
4100 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
4101 ("intltool" ,intltool)))
4102 (propagated-inputs
4103 `(("gtk+" ,gtk+)
4104 ("libxres" ,libxres)
4105 ("startup-notification" ,startup-notification)))
4106 (home-page "https://developer.gnome.org/libwnck/")
4107 (synopsis "Window Navigator Construction Kit")
4108 (description
4109 "Libwnck is the Window Navigator Construction Kit, a library for use in
4110 writing pagers, tasklists, and more generally applications that are dealing
4111 with window management. It tries hard to respect the Extended Window Manager
4112 Hints specification (EWMH).")
4113 (license license:lgpl2.0+)))
4114
4115 ;; stable version for gtk2, required by xfwm4.
4116 (define-public libwnck-2
4117 (package (inherit libwnck)
4118 (name "libwnck")
4119 (version "2.30.7")
4120 (source (origin
4121 (method url-fetch)
4122 (uri (string-append "mirror://gnome/sources/" name "/"
4123 (version-major+minor version) "/"
4124 name "-" version ".tar.xz"))
4125 (sha256
4126 (base32
4127 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4128 (build-system gnu-build-system)
4129 (native-inputs
4130 `(("pkg-config" ,pkg-config)
4131 ("intltool" ,intltool)))
4132 (propagated-inputs
4133 `(("gtk+" ,gtk+-2)
4134 ("libxres" ,libxres)
4135 ("startup-notification" ,startup-notification)))))
4136
4137 (define-public goffice
4138 (package
4139 (name "goffice")
4140 (version "0.10.50")
4141 (source (origin
4142 (method url-fetch)
4143 (uri (string-append "mirror://gnome/sources/goffice/"
4144 (version-major+minor version) "/"
4145 "goffice-" version ".tar.xz"))
4146 (sha256
4147 (base32 "1p5zbj7cbcfcxd6l8pnph54p6ah1bwf146y810j4bcq8ggf3sp1c"))))
4148 (build-system gnu-build-system)
4149 (outputs '("out"
4150 "doc")) ; 4.0 MiB of gtk-doc
4151 (arguments
4152 '(#:configure-flags (list (string-append "--with-html-dir="
4153 (assoc-ref %outputs "doc")
4154 "/share/gtk-doc/html"))))
4155 (inputs
4156 `(("gtk+" ,gtk+)
4157 ("libgsf" ,libgsf)
4158 ("librsvg" ,librsvg)
4159 ("libxslt" ,libxslt)
4160 ("libxml2" ,libxml2)))
4161 (native-inputs
4162 `(("intltool" ,intltool)
4163 ("glib" ,glib "bin")
4164 ("pkg-config" ,pkg-config)))
4165 (home-page "https://developer.gnome.org/goffice/")
4166 (synopsis "Document-centric objects and utilities")
4167 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4168 (license
4169 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4170 ;; Note: NOT LGPL
4171 (list license:gpl2 license:gpl3))))
4172
4173 (define-public goffice-0.8
4174 (package (inherit goffice)
4175 (version "0.8.17")
4176 (source (origin
4177 (method url-fetch)
4178 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4179 (version-major+minor version) "/"
4180 (package-name goffice) "-" version ".tar.xz"))
4181 (sha256
4182 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4183 (arguments
4184 `(#:phases
4185 (modify-phases %standard-phases
4186 (add-after 'unpack 'fix-pcre-check
4187 (lambda _
4188 ;; Only glib.h can be included directly. See
4189 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4190 (substitute* "configure"
4191 (("glib/gregex\\.h") "glib.h")) #t)))
4192
4193 ,@(package-arguments goffice)))
4194 (propagated-inputs
4195 ;; libgoffice-0.8.pc mentions libgsf-1
4196 `(("libgsf" ,libgsf)))
4197 (inputs
4198 `(("gtk" ,gtk+-2)
4199 ,@(alist-delete "gtk" (package-inputs goffice))))))
4200
4201 (define-public gnumeric
4202 (package
4203 (name "gnumeric")
4204 (version "1.12.50")
4205 (source (origin
4206 (method url-fetch)
4207 (uri (string-append "mirror://gnome/sources/gnumeric/"
4208 (version-major+minor version) "/"
4209 "gnumeric-" version ".tar.xz"))
4210 (sha256
4211 (base32
4212 "1f0lrj5msg80pgjp38jj6rddf352gwddgip7z4lki66n3fx1k23m"))))
4213 (build-system glib-or-gtk-build-system)
4214 (arguments
4215 `(;; The gnumeric developers don't worry much about failing tests.
4216 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4217 #:tests? #f
4218 #:phases
4219 (modify-phases %standard-phases
4220 (add-before
4221 'configure 'pre-conf
4222 (lambda* (#:key outputs #:allow-other-keys)
4223 ;; Make install tries to write into the directory of goffice
4224 ;; I am informed that this only affects the possibility to embed a
4225 ;; spreadsheet inside an Abiword document. So presumably when we
4226 ;; package Abiword we'll have to refer it to this directory.
4227 (substitute* "configure"
4228 (("^GOFFICE_PLUGINS_DIR=.*")
4229 (string-append "GOFFICE_PLUGINS_DIR="
4230 (assoc-ref outputs "out")
4231 "/goffice/plugins"))))))))
4232 (inputs
4233 `(("glib" ,glib)
4234 ("gtk+" ,gtk+)
4235 ("goffice" ,goffice)
4236 ("libgsf" ,libgsf)
4237 ("librsvg" ,librsvg)
4238 ("libxml2" ,libxml2)
4239 ("libxslt" ,libxslt)
4240 ("python" ,python)
4241 ("python-pygobject" ,python-pygobject)
4242 ("zlib" ,zlib)))
4243 (native-inputs
4244 `(("bison" ,bison)
4245 ("docbook-xml" ,docbook-xml)
4246 ("intltool" ,intltool)
4247 ("itstool" ,itstool)
4248 ("glib:bin" ,glib "bin")
4249 ("pkg-config" ,pkg-config)))
4250 (home-page "http://www.gnumeric.org")
4251 (synopsis "Spreadsheet application")
4252 (description
4253 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4254 interoperable with other spreadsheet applications. It has a vast array of
4255 features beyond typical spreadsheet functionality, such as support for linear
4256 and non-linear solvers, statistical analysis, and telecommunication
4257 engineering.")
4258 (license
4259 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4260 (list license:gpl2 license:gpl3))))
4261
4262 (define-public drawing
4263 (package
4264 (name "drawing")
4265 (version "0.8.2")
4266 (source
4267 (origin
4268 (method git-fetch)
4269 (uri (git-reference
4270 (url "https://github.com/maoschanz/drawing")
4271 (commit version)))
4272 (file-name (git-file-name name version))
4273 (sha256
4274 (base32 "0lpszd8276rp5chn84rkvwmnflxc3pqlg4cz53gfxkqdb3gn02zz"))))
4275 (build-system meson-build-system)
4276 (arguments
4277 `(#:glib-or-gtk? #t
4278 #:phases
4279 (modify-phases %standard-phases
4280 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
4281 (lambda* (#:key outputs #:allow-other-keys)
4282 (let ((prog (string-append (assoc-ref outputs "out")
4283 "/bin/drawing"))
4284 (pylib (string-append (assoc-ref outputs "out")
4285 "/lib/python"
4286 ,(version-major+minor
4287 (package-version python))
4288 "/site-packages")))
4289 (wrap-program prog
4290 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
4291 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
4292 #t))))))
4293 (native-inputs
4294 `(("desktop-file-utils" ,desktop-file-utils)
4295 ("gettext" ,gettext-minimal)
4296 ("glib:bin" ,glib "bin")
4297 ("gobject-introspection" ,gobject-introspection)
4298 ("gtk+:bin" ,gtk+ "bin")
4299 ("pkg-config" ,pkg-config)))
4300 (inputs
4301 `(("gdk-pixbuf" ,gdk-pixbuf+svg)
4302 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4303 ("gtk+" ,gtk+)
4304 ("pango" ,pango)
4305 ("python-pycairo" ,python-pycairo)
4306 ("python-pygobject" ,python-pygobject)))
4307 (home-page "https://maoschanz.github.io/drawing/")
4308 (synopsis "Basic image editor for GNOME")
4309 (description
4310 "Drawing is a basic image editor aiming at the GNOME desktop.")
4311 (license license:gpl3+)))
4312
4313 (define-public gnome-themes-standard
4314 (package
4315 (name "gnome-themes-standard")
4316 (version "3.22.3")
4317 (source
4318 (origin
4319 (method url-fetch)
4320 (uri (string-append "mirror://gnome/sources/" name "/"
4321 (version-major+minor version) "/" name "-"
4322 version ".tar.xz"))
4323 (sha256
4324 (base32
4325 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4326 (build-system gnu-build-system)
4327 (arguments
4328 '(#:configure-flags
4329 ;; Don't create 'icon-theme.cache'.
4330 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4331 (true (string-append coreutils "/bin/true")))
4332 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4333 (inputs
4334 `(("gtk+" ,gtk+)
4335 ("gtk+-2" ,gtk+-2)
4336 ("librsvg" ,librsvg)
4337 ("libxml2" ,libxml2)
4338 ("glib" ,glib)))
4339 (native-inputs
4340 `(("intltool" ,intltool)
4341 ("glib:bin" ,glib "bin")
4342 ("pkg-config" ,pkg-config)))
4343 (home-page "https://launchpad.net/gnome-themes-standard")
4344 (synopsis "Default GNOME 3 themes")
4345 (description
4346 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4347 (license license:lgpl2.1+)))
4348
4349 (define-public seahorse
4350 (package
4351 (name "seahorse")
4352 (version "3.36.2")
4353 (source
4354 (origin
4355 (method url-fetch)
4356 (uri (string-append "mirror://gnome/sources/" name "/"
4357 (version-major+minor version) "/" name "-"
4358 version ".tar.xz"))
4359 (sha256
4360 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4361 (build-system meson-build-system)
4362 (arguments
4363 '(#:glib-or-gtk? #t
4364 #:phases
4365 (modify-phases %standard-phases
4366 (add-after 'unpack 'skip-gtk-update-icon-cache
4367 ;; Don't create 'icon-theme.cache'.
4368 (lambda _
4369 (substitute* "build-aux/meson_post_install.py"
4370 (("gtk-update-icon-cache") "true"))
4371 #t)))))
4372 (inputs
4373 `(("gtk+" ,gtk+)
4374 ("gcr" ,gcr)
4375 ("gnupg" ,gnupg)
4376 ("gpgme" ,gpgme)
4377 ("openldap" ,openldap)
4378 ("openssh" ,openssh)
4379 ("avahi" ,avahi)
4380 ("libhandy" ,libhandy-0.0)
4381 ("libpwquality" ,libpwquality)
4382 ("libsecret" ,libsecret)
4383 ("libsoup" ,libsoup)))
4384 (native-inputs
4385 `(("gettext" ,gettext-minimal)
4386 ("glib:bin" ,glib "bin")
4387 ("itstool" ,itstool)
4388 ("pkg-config" ,pkg-config)
4389 ("vala" ,vala)
4390 ("xmllint" ,libxml2)))
4391 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4392 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4393 (description
4394 "Seahorse is a GNOME application for managing encryption keys and
4395 passwords in the GNOME keyring.")
4396 (license license:gpl2+)))
4397
4398 (define-public vala
4399 (package
4400 (name "vala")
4401 (version "0.46.5")
4402 (source (origin
4403 (method url-fetch)
4404 (uri (string-append "mirror://gnome/sources/" name "/"
4405 (version-major+minor version) "/"
4406 name "-" version ".tar.xz"))
4407 (sha256
4408 (base32
4409 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4410 (build-system gnu-build-system)
4411 (arguments
4412 '(#:phases
4413 (modify-phases %standard-phases
4414 (add-before 'check 'pre-check
4415 (lambda _
4416 (setenv "CC" "gcc")
4417 (substitute* "valadoc/tests/testrunner.sh"
4418 (("export PKG_CONFIG_PATH=" m)
4419 (string-append m "$PKG_CONFIG_PATH:")))
4420 ;; For missing '/etc/machine-id'.
4421 (setenv "DBUS_FATAL_WARNINGS" "0")
4422 #t)))))
4423 (native-inputs
4424 `(("pkg-config" ,pkg-config)
4425 ("flex" ,flex)
4426 ("bison" ,bison)
4427 ("xsltproc" ,libxslt)
4428 ("dbus" ,dbus) ; for dbus tests
4429 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4430 (inputs
4431 `(("graphviz" ,graphviz)))
4432 (propagated-inputs
4433 `(("glib" ,glib))) ; required by libvala-0.40.pc
4434 (home-page "https://wiki.gnome.org/Projects/Vala/")
4435 (synopsis "Compiler for the GObject type system")
4436 (description
4437 "Vala is a programming language that aims to bring modern programming
4438 language features to GNOME developers without imposing any additional runtime
4439 requirements and without using a different ABI compared to applications and
4440 libraries written in C.")
4441 (license license:lgpl2.1+)))
4442
4443 (define-public vala-0.50
4444 (package
4445 (inherit vala)
4446 (version "0.50.2")
4447 (source (origin
4448 (method url-fetch)
4449 (uri (string-append "mirror://gnome/sources/vala/"
4450 (version-major+minor version) "/"
4451 "vala-" version ".tar.xz"))
4452 (sha256
4453 (base32
4454 "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c"))))))
4455
4456 (define-public vte
4457 (package
4458 (name "vte")
4459 (version "0.60.3")
4460 (source (origin
4461 (method url-fetch)
4462 (uri (string-append "mirror://gnome/sources/vte/"
4463 (version-major+minor version) "/"
4464 "vte-" version ".tar.xz"))
4465 (sha256
4466 (base32
4467 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4468 (build-system meson-build-system)
4469 (arguments
4470 `(#:configure-flags
4471 '("-Dvapi=true"
4472 "-D_systemd=false")))
4473 (native-inputs
4474 `(("pkg-config" ,pkg-config)
4475 ("gettext" ,gettext-minimal)
4476 ("vala" ,vala)
4477 ("gobject-introspection" ,gobject-introspection)
4478 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4479 ("gperf" ,gperf)
4480 ("xmllint" ,libxml2)))
4481 (propagated-inputs
4482 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4483 ("gnutls" ,gnutls) ; ditto
4484 ("pcre2" ,pcre2))) ; ditto
4485 (home-page "https://www.gnome.org/")
4486 (synopsis "Virtual Terminal Emulator")
4487 (description
4488 "VTE is a library (libvte) implementing a terminal emulator widget for
4489 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4490 gnome-terminal, but can also be used to embed a console/terminal in games,
4491 editors, IDEs, etc.")
4492 (license license:lgpl2.1+)))
4493
4494 (define-public vte-ng
4495 (package
4496 (inherit vte)
4497 (name "vte-ng")
4498 (version "0.58.2.a")
4499 (home-page "https://github.com/thestinger/vte-ng")
4500 (source (origin
4501 (method git-fetch)
4502 (uri (git-reference (url home-page) (commit version)))
4503 (file-name (git-file-name name version))
4504 (sha256
4505 (base32
4506 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4507 (build-system meson-build-system)
4508 (native-inputs
4509 `(("gtk-doc" ,gtk-doc/stable)
4510 ,@(package-native-inputs vte)))
4511 (arguments
4512 `(#:configure-flags '("-Ddocs=true")))
4513 (synopsis "Enhanced VTE terminal widget")
4514 (description
4515 "VTE is a library (libvte) implementing a terminal emulator widget for
4516 GTK+, this fork provides additional functions exposed for keyboard text
4517 selection and URL hints.")))
4518
4519 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4520 (define-public vte/gtk+-2
4521 (package (inherit vte)
4522 (name "vte")
4523 (version "0.28.2")
4524 (source (origin
4525 (method url-fetch)
4526 (uri (string-append "mirror://gnome/sources/" name "/"
4527 (version-major+minor version) "/"
4528 name "-" version ".tar.xz"))
4529 (sha256
4530 (base32
4531 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4532 (patches (search-patches
4533 "vte-CVE-2012-2738-pt1.patch"
4534 "vte-CVE-2012-2738-pt2.patch"))))
4535 (build-system gnu-build-system)
4536 (arguments
4537 '(#:configure-flags '("--disable-python")))
4538 (native-inputs
4539 `(("pkg-config" ,pkg-config)
4540 ("intltool" ,intltool)
4541 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4542 (propagated-inputs
4543 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4544 ("ncurses" ,ncurses))))) ; required by libvte.la
4545
4546 (define-public vinagre
4547 (package
4548 (name "vinagre")
4549 (version "3.22.0")
4550 (source (origin
4551 (method url-fetch)
4552 (uri (string-append "mirror://gnome/sources/" name "/"
4553 (version-major+minor version) "/"
4554 name "-" version ".tar.xz"))
4555 (patches (search-patches "vinagre-newer-freerdp.patch"
4556 "vinagre-newer-rdp-parameters.patch"))
4557 (sha256
4558 (base32
4559 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4560 (build-system glib-or-gtk-build-system)
4561 (arguments
4562 ;; Disable -Werror and such, to avoid build failures on compilation
4563 ;; warnings.
4564 '(#:configure-flags '("--enable-compile-warnings=minimum")
4565 #:phases
4566 (modify-phases %standard-phases
4567 (add-before 'install 'skip-gtk-update-icon-cache
4568 (lambda _
4569 ;; Don't create 'icon-theme.cache'
4570 (substitute* (find-files "." "^Makefile$")
4571 (("gtk-update-icon-cache") (which "true")))
4572 #t))
4573 (add-after 'unpack 'patch-configure
4574 (lambda _
4575 (substitute* "configure"
4576 (("freerdp") "freerdp2"))
4577 #t)))))
4578 (native-inputs
4579 `(("pkg-config" ,pkg-config)
4580 ("intltool" ,intltool)
4581 ("itstool" ,itstool)
4582 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4583 (inputs
4584 `(("libxml2" ,libxml2)
4585 ("gtk-vnc" ,gtk-vnc)
4586 ("gnome-keyring" ,gnome-keyring)
4587 ("libsecret" ,libsecret)
4588 ("freerdp" ,freerdp)
4589 ("spice" ,spice)
4590 ("spice-gtk" ,spice-gtk)
4591 ("telepathy-glib" ,telepathy-glib)
4592 ("vte" ,vte)))
4593 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4594 (synopsis "Remote desktop viewer for GNOME")
4595 (description "Vinagre is a remote display client supporting the VNC, SPICE
4596 and RDP protocols.")
4597 (license license:gpl3+)))
4598
4599 (define-public dconf
4600 (package
4601 (name "dconf")
4602 (version "0.36.0")
4603 (source (origin
4604 (method url-fetch)
4605 (uri (string-append
4606 "mirror://gnome/sources/" name "/"
4607 (version-major+minor version) "/"
4608 name "-" version ".tar.xz"))
4609 (sha256
4610 (base32
4611 "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
4612 (build-system meson-build-system)
4613 (propagated-inputs
4614 ;; In Requires of dconf.pc.
4615 `(("glib" ,glib)))
4616 (inputs
4617 `(("gtk+" ,gtk+)
4618 ("dbus" ,dbus)))
4619 (native-inputs
4620 `(("bash-completion" ,bash-completion)
4621 ("libxslt" ,libxslt) ;for xsltproc
4622 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4623 ("docbook-xml" ,docbook-xml-4.2)
4624 ("docbook-xsl" ,docbook-xsl)
4625 ("glib:bin" ,glib "bin")
4626 ("gtk-doc" ,gtk-doc/stable)
4627 ("pkg-config" ,pkg-config)
4628 ("vala" ,vala)))
4629 (arguments
4630 `(#:glib-or-gtk? #t
4631 #:configure-flags '("-Denable-gtk-doc=true")
4632 #:phases (modify-phases %standard-phases
4633 (add-after 'unpack 'increase-test-timeout
4634 (lambda _
4635 ;; On big-memory systems, the engine test may take
4636 ;; much longer than the default of 30 seconds.
4637 (substitute* "tests/meson.build"
4638 (("test\\(unit_test\\[0\\], exe" all)
4639 (string-append all ", timeout : 90")))
4640 #t)))))
4641 (home-page "https://developer.gnome.org/dconf/")
4642 (synopsis "Low-level GNOME configuration system")
4643 (description "Dconf is a low-level configuration system. Its main purpose
4644 is to provide a backend to GSettings on platforms that don't already have
4645 configuration storage systems.")
4646 (license license:lgpl2.1+)))
4647
4648 (define-public json-glib
4649 (package
4650 (name "json-glib")
4651 (version "1.4.4")
4652 (source (origin
4653 (method url-fetch)
4654 (uri (string-append "mirror://gnome/sources/" name "/"
4655 (version-major+minor version) "/"
4656 name "-" version ".tar.xz"))
4657 (sha256
4658 (base32
4659 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4660 (build-system meson-build-system)
4661 (native-inputs
4662 `(("gettext" ,gettext-minimal)
4663 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4664 ("gobject-introspection" ,gobject-introspection)
4665 ("pkg-config" ,pkg-config)))
4666 (propagated-inputs
4667 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4668 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4669 (synopsis "Compiler for the GObject type system")
4670 (description
4671 "JSON-GLib is a C library based on GLib providing serialization and
4672 deserialization support for the JavaScript Object Notation (JSON) format
4673 described by RFC 4627. It provides parser and generator GObject classes and
4674 various wrappers for the complex data types employed by JSON, such as arrays
4675 and objects.")
4676 (license license:lgpl2.1+)))
4677
4678 (define-public libxklavier
4679 (package
4680 (name "libxklavier")
4681 (version "5.4")
4682 (source (origin
4683 ;; Note: There's no tarball at ftp.gnome.org for this version.
4684 (method git-fetch)
4685 (uri (git-reference
4686 (url "https://anongit.freedesktop.org/git/libxklavier")
4687 (commit (string-append "libxklavier-" version))))
4688 (sha256
4689 (base32
4690 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4691 (file-name (git-file-name name version))))
4692 (build-system gnu-build-system)
4693 (arguments
4694 '(#:configure-flags
4695 (list (string-append "--with-xkb-base="
4696 (assoc-ref %build-inputs "xkeyboard-config")
4697 "/share/X11/xkb")
4698 "--disable-xmodmap-support")))
4699 (native-inputs
4700 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4701 ("gobject-introspection" ,gobject-introspection)
4702 ("pkg-config" ,pkg-config)
4703 ("gtk-doc" ,gtk-doc/stable)
4704 ("intltool" ,intltool)
4705 ("which" ,which)
4706 ("autoconf" ,autoconf)
4707 ("automake" ,automake)
4708 ("libtool" ,libtool)))
4709 (propagated-inputs
4710 ;; Required by libxklavier.pc.
4711 `(("glib" ,glib)
4712 ("libxml2" ,libxml2)))
4713 (inputs
4714 `(("iso-codes" ,iso-codes)
4715 ("libxi" ,libxi)
4716 ("libxkbfile" ,libxkbfile)
4717 ("xkbcomp" ,xkbcomp)
4718 ("xkeyboard-config" ,xkeyboard-config)))
4719 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4720 (synopsis "High-level API for X Keyboard Extension")
4721 (description
4722 "LibXklavier is a library providing high-level API for X Keyboard
4723 Extension known as XKB. This library is intended to support XFree86 and other
4724 commercial X servers. It is useful for creating XKB-related software (layout
4725 indicators etc).")
4726 (license license:lgpl2.0+)))
4727
4728 (define-public python2-rsvg
4729 ;; XXX: This is actually a subset of gnome-python-desktop.
4730 (package
4731 (name "python2-rsvg")
4732 (version "2.32.0")
4733 (source
4734 (origin
4735 (method url-fetch)
4736 (uri (string-append
4737 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4738 version ".tar.bz2"))
4739 (sha256
4740 (base32
4741 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4742 (build-system gnu-build-system)
4743 (native-inputs
4744 `(("pkg-config" ,pkg-config)))
4745 (inputs
4746 `(("python" ,python-2)
4747 ("python2-pygtk" ,python2-pygtk)
4748 ("librsvg" ,librsvg)))
4749 (home-page "https://www.gnome.org")
4750 (synopsis "Python bindings to librsvg")
4751 (description
4752 "This package provides Python bindings to librsvg, the SVG rendering
4753 library.")
4754
4755 ;; This is the license of the rsvg bindings. The license of each module
4756 ;; of gnome-python-desktop is given in 'COPYING'.
4757 (license license:lgpl2.1+)))
4758
4759 (define-public glib-networking
4760 (package
4761 (name "glib-networking")
4762 (version "2.62.2")
4763 (source (origin
4764 (method url-fetch)
4765 (uri (string-append "mirror://gnome/sources/glib-networking/"
4766 (version-major+minor version) "/"
4767 "glib-networking-" version ".tar.xz"))
4768 (sha256
4769 (base32
4770 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4771 (build-system meson-build-system)
4772 (arguments
4773 `(#:configure-flags '("-Dlibproxy_support=false")))
4774 (native-inputs
4775 `(("pkg-config" ,pkg-config)
4776 ("intltool" ,intltool)))
4777 (inputs
4778 `(("glib" ,glib)
4779 ("gnutls" ,gnutls)
4780 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4781 (home-page "https://www.gnome.org")
4782 (synopsis "Network-related GIO modules")
4783 (description
4784 "This package contains various network related extensions for the GIO
4785 library.")
4786 (license license:lgpl2.0+)))
4787
4788 (define-public rest
4789 (package
4790 (name "rest")
4791 (version "0.8.1")
4792 (source (origin
4793 (method url-fetch)
4794 (uri (string-append "mirror://gnome/sources/rest/"
4795 (version-major+minor version) "/"
4796 name "-" version ".tar.xz"))
4797 (sha256
4798 (base32
4799 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4800 (build-system gnu-build-system)
4801 (arguments
4802 '(#:tests? #f ; tests require internet connection
4803 #:configure-flags
4804 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4805 (native-inputs
4806 `(("glib-mkenums" ,glib "bin")
4807 ("gobject-introspection" ,gobject-introspection)
4808 ("pkg-config" ,pkg-config)))
4809 (propagated-inputs
4810 ;; rest-0.7.pc refers to all these.
4811 `(("glib" ,glib)
4812 ("libsoup" ,libsoup)
4813 ("libxml2" ,libxml2)))
4814 (home-page "https://www.gtk.org/")
4815 (synopsis "RESTful web api query library")
4816 (description
4817 "This library was designed to make it easier to access web services that
4818 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4819 libxml to ease remote use of the RESTful API.")
4820 (license license:lgpl2.1+)))
4821
4822 (define-public libsoup
4823 (package
4824 (name "libsoup")
4825 (version "2.72.0")
4826 (source (origin
4827 (method url-fetch)
4828 (uri (string-append "mirror://gnome/sources/libsoup/"
4829 (version-major+minor version) "/"
4830 "libsoup-" version ".tar.xz"))
4831 (sha256
4832 (base32
4833 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
4834 (build-system meson-build-system)
4835 (outputs '("out" "doc"))
4836 (arguments
4837 `(#:modules ((guix build utils)
4838 (guix build meson-build-system)
4839 (ice-9 popen))
4840
4841 #:configure-flags '("-Dgtk_doc=true")
4842 #:phases
4843 (modify-phases %standard-phases
4844 (add-after 'unpack 'patch-docbook-xml
4845 (lambda* (#:key inputs #:allow-other-keys)
4846 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
4847 "/xml/dtd/docbook")))
4848 (substitute* (find-files "docs/reference")
4849 (("http://.*/docbookx\\.dtd")
4850 (string-append xmldoc "/docbookx.dtd")))
4851 #t)))
4852 (add-after 'unpack 'adjust-tests
4853 (lambda _
4854 ;; This test fails due to missing /etc/nsswitch.conf
4855 ;; in the build environment.
4856 (substitute* "tests/socket-test.c"
4857 ((".*/sockets/unconnected.*") ""))
4858
4859 ;; These fail because "subdomain.localhost" does not resolve in
4860 ;; the build environment.
4861 (substitute* "tests/hsts-test.c"
4862 ((".*/hsts/basic.*") "")
4863 ((".*/hsts/subdomains.*") "")
4864 ((".*/hsts/superdomain.*") "")
4865 ((".*/hsts/utf8-address.*") ""))
4866 (substitute* "tests/hsts-db-test.c"
4867 ((".*/hsts-db/subdomains.*") ""))
4868
4869 ;; Generate a self-signed certificate that has "localhost" as its
4870 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4871 ;; 3.5.12, tests such as "ssl-tests" fail:
4872 ;;
4873 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4874 ;;
4875 ;; 'certtool' is interactive so we have to pipe it the answers.
4876 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4877 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4878 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4879 (for-each (lambda (line)
4880 (display line pipe)
4881 (newline pipe))
4882 '("" ;Common name
4883 "" ;UID
4884 "Guix" ;Organizational unit name
4885 "GNU" ;Organization name
4886 "" ;Locality name
4887 "" ;State or province
4888 "" ;Country
4889 "" ;subject's domain component (DC)
4890 "" ;E-mail
4891 "" ;serial number
4892 "-1" ;expiration time
4893 "N" ;belong to authority?
4894 "N" ;web client certificate?
4895 "N" ;IPsec IKE?
4896 "Y" ;web server certificate?
4897 "localhost" ;dnsName of subject
4898 "" ;dnsName of subject (end)
4899 "" ;URI of subject
4900 "127.0.0.1" ;IP address of subject
4901 "" ;signing?
4902 "" ;encryption (RSA)?
4903 "" ;data encryption?
4904 "" ;sign OCSP requests?
4905 "" ;sign code?
4906 "" ;time stamping?
4907 "" ;email protection?
4908 "" ;URI of the CRL distribution point
4909 "y" ;above info OK?
4910 ))
4911 (close-pipe pipe))
4912 #t))
4913 (add-after 'install 'move-doc
4914 (lambda* (#:key outputs #:allow-other-keys)
4915 (let ((out (assoc-ref outputs "out"))
4916 (doc (assoc-ref outputs "doc")))
4917 (mkdir-p (string-append doc "/share"))
4918 (copy-recursively (string-append out "/share/gtk-doc")
4919 (string-append doc "/share/gtk-doc"))
4920 (delete-file-recursively (string-append out "/share/gtk-doc"))
4921 #t))))))
4922 (native-inputs
4923 `(("docbook-xml" ,docbook-xml-4.1.2)
4924 ("glib:bin" ,glib "bin") ; for glib-mkenums
4925 ("gobject-introspection" ,gobject-introspection)
4926 ("gtk-doc" ,gtk-doc/stable)
4927 ("intltool" ,intltool)
4928 ("pkg-config" ,pkg-config)
4929 ("python" ,python-wrapper)
4930 ("vala" ,vala)
4931 ("php" ,php)
4932 ("curl" ,curl)
4933 ("gnutls" ,gnutls) ;for 'certtool'
4934 ("httpd" ,httpd)))
4935 (propagated-inputs
4936 ;; libsoup-2.4.pc refers to all of these (except where otherwise noted)
4937 `(("brotli" ,google-brotli)
4938 ("glib" ,glib)
4939 ("glib-networking" ,glib-networking) ; for GIO runtime modules
4940 ("libpsl" ,libpsl)
4941 ("libxml2" ,libxml2)
4942 ("sqlite" ,sqlite)
4943 ("zlib" ,zlib)))
4944 (inputs
4945 `(("mit-krb5" ,mit-krb5)
4946 ("ntlm_auth" ,samba))) ; For ntlm_auth support
4947 (home-page "https://wiki.gnome.org/Projects/libsoup")
4948 (synopsis "GLib-based HTTP Library")
4949 (description
4950 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4951 and the GLib main loop, to integrate well with GNOME applications.")
4952 (license license:lgpl2.0+)))
4953
4954
4955 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4956 (define-public libsoup-minimal
4957 (package/inherit libsoup
4958 (name "libsoup-minimal")
4959 (outputs (delete "doc" (package-outputs libsoup)))
4960 (arguments
4961 (substitute-keyword-arguments (package-arguments libsoup)
4962 ((#:configure-flags configure-flags)
4963 `(delete "-Dgtk_doc=true" ,configure-flags))
4964 ((#:phases phases)
4965 `(modify-phases ,phases
4966 (delete 'move-doc)))))
4967 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4968
4969 (define-public libsecret
4970 (package
4971 (name "libsecret")
4972 (version "0.20.4")
4973 (source (origin
4974 (method url-fetch)
4975 (uri (string-append
4976 "mirror://gnome/sources/libsecret/"
4977 (version-major+minor version) "/"
4978 "libsecret-" version ".tar.xz"))
4979 (sha256
4980 (base32
4981 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
4982 (build-system gnu-build-system)
4983 (outputs '("out" "doc"))
4984 (arguments
4985 `(#:tests? #f ; FIXME: Testing hangs.
4986 #:configure-flags
4987 (list (string-append "--with-html-dir="
4988 (assoc-ref %outputs "doc")
4989 "/share/gtk-doc/html"))))
4990 (native-inputs
4991 `(("gettext" ,gettext-minimal)
4992 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4993 ("gobject-introspection" ,gobject-introspection)
4994 ("pkg-config" ,pkg-config)
4995 ("vala" ,vala)
4996 ("xsltproc" ,libxslt)))
4997 ;; These are needed for the tests.
4998 ;; FIXME: Add gjs once available.
4999 ;("dbus" ,dbus)
5000 ;("python2" ,python-2)
5001 ;("python2-dbus" ,python2-dbus)
5002 ;("python2-pygobject" ,python2-pygobject)
5003 ;("python2-pygobject-2" ,python2-pygobject-2)))
5004 (propagated-inputs
5005 `(("glib" ,glib))) ; required by libsecret-1.pc
5006 (inputs
5007 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
5008 ;; doesn't seem to affect the build result.
5009 `(("docbook-xsl" ,docbook-xsl)
5010 ("libgcrypt" ,libgcrypt)
5011 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
5012 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
5013 (synopsis "GObject bindings for \"Secret Service\" API")
5014 (description
5015 "Libsecret is a GObject based library for storing and retrieving passwords
5016 and other secrets. It communicates with the \"Secret Service\" using DBus.")
5017 (license license:lgpl2.1+)))
5018
5019 (define-public five-or-more
5020 (package
5021 (name "five-or-more")
5022 (version "3.32.2")
5023 (source
5024 (origin
5025 (method url-fetch)
5026 (uri (string-append "mirror://gnome/sources/five-or-more/"
5027 (version-major+minor version) "/"
5028 "five-or-more-" version ".tar.xz"))
5029 (sha256
5030 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
5031 (build-system meson-build-system)
5032 (arguments
5033 '(#:glib-or-gtk? #t
5034 #:phases
5035 (modify-phases %standard-phases
5036 (add-after 'unpack 'skip-gtk-update-icon-cache
5037 (lambda _
5038 (substitute* "meson_post_install.py"
5039 (("gtk-update-icon-cache") (which "true")))
5040 #t)))))
5041 (native-inputs
5042 `(("pkg-config" ,pkg-config)
5043 ("appstream-glib" ,appstream-glib)
5044 ("desktop-file-utils" ,desktop-file-utils)
5045 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5046 ("intltool" ,intltool)
5047 ("itstool" ,itstool)
5048 ("vala" ,vala)
5049 ("xmllint" ,libxml2)))
5050 (inputs
5051 `(("gtk+" ,gtk+)
5052 ("libgnome-games-support" ,libgnome-games-support)
5053 ("librsvg" ,librsvg)))
5054 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
5055 (synopsis "Logic puzzle game")
5056 (description "Five or More is a game where you try to align
5057 five or more objects of the same color and shape causing them to disappear.
5058 On every turn more objects will appear, until the board is full.
5059 Try to last as long as possible.")
5060 (license license:gpl2+)))
5061
5062 (define-public gnome-mines
5063 (package
5064 (name "gnome-mines")
5065 (version "3.36.1")
5066 (source
5067 (origin
5068 (method url-fetch)
5069 (uri (string-append "mirror://gnome/sources/" name "/"
5070 (version-major+minor version) "/"
5071 name "-" version ".tar.xz"))
5072 (sha256
5073 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
5074 (build-system meson-build-system)
5075 (arguments
5076 '(#:glib-or-gtk? #t
5077 #:phases
5078 (modify-phases %standard-phases
5079 (add-after 'unpack 'skip-gtk-update-icon-cache
5080 (lambda _
5081 (substitute* "build-aux/meson_post_install.py"
5082 (("gtk-update-icon-cache") (which "true")))
5083 #t)))))
5084 (native-inputs
5085 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5086 ("pkg-config" ,pkg-config)
5087 ("desktop-file-utils" ,desktop-file-utils)
5088 ("intltool" ,intltool)
5089 ("itstool" ,itstool)
5090 ("vala" ,vala)
5091 ("yelp" ,yelp)
5092 ("appstream-glib" ,appstream-glib)))
5093 (inputs
5094 `(("gtk+" ,gtk+)
5095 ("libgnome-games-support" ,libgnome-games-support)
5096 ("librsvg" ,librsvg)))
5097 (home-page "https://wiki.gnome.org/Apps/Mines")
5098 (synopsis "Minesweeper game")
5099 (description
5100 "Mines (previously gnomine) is a puzzle game where you locate mines
5101 floating in an ocean using only your brain and a little bit of luck.")
5102 (license license:gpl2+)))
5103
5104 (define-public gnome-multi-writer
5105 (package
5106 (name "gnome-multi-writer")
5107 (version "3.35.90")
5108 (source
5109 (origin
5110 (method url-fetch)
5111 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5112 (version-major+minor version) "/"
5113 "gnome-multi-writer-" version ".tar.xz"))
5114 (sha256
5115 (base32
5116 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5117 (build-system meson-build-system)
5118 (arguments
5119 '(#:glib-or-gtk? #t
5120 #:phases
5121 (modify-phases %standard-phases
5122 (add-after 'unpack 'skip-post-install
5123 (lambda _
5124 (substitute* "meson.build"
5125 (("meson.add_install_script" &) (string-append "# " &)))
5126 #t)))))
5127 (native-inputs
5128 `(("glib:bin" ,glib "bin")
5129 ("pkg-config" ,pkg-config)))
5130 (inputs
5131 `(("gtk+" ,gtk+)
5132 ("glib" ,glib) ; for gio
5133 ("gusb" ,gusb)
5134 ("udisks" ,udisks)
5135 ("libgudev" ,libgudev)
5136 ("libcanberra" ,libcanberra)
5137 ("polkit" ,polkit)))
5138 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5139 (synopsis "Write to multiple USB devices at once")
5140 (description
5141 "MultiWriter can be used to write an ISO file to multiple USB devices at
5142 once.")
5143 (license license:gpl2+)))
5144
5145 (define-public gnome-sudoku
5146 (package
5147 (name "gnome-sudoku")
5148 (version "3.34.1")
5149 (source
5150 (origin
5151 (method url-fetch)
5152 (uri (string-append "mirror://gnome/sources/" name "/"
5153 (version-major+minor version) "/"
5154 name "-" version ".tar.xz"))
5155 (sha256
5156 (base32
5157 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
5158 (build-system meson-build-system)
5159 (arguments
5160 '(#:glib-or-gtk? #t
5161 #:phases
5162 (modify-phases %standard-phases
5163 (add-after 'unpack 'skip-gtk-update-icon-cache
5164 (lambda _
5165 (substitute* "build-aux/post_install.py"
5166 (("gtk-update-icon-cache") (which "true")))
5167 #t)))))
5168 (native-inputs
5169 `(("pkg-config" ,pkg-config)
5170 ("desktop-file-utils" ,desktop-file-utils)
5171 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5172 ("intltool" ,intltool)
5173 ("itstool" ,itstool)
5174 ("vala" ,vala)
5175 ("xmllint" ,libxml2)))
5176 (inputs
5177 `(("gtk+" ,gtk+)
5178 ("json-glib" ,json-glib)
5179 ("libgee" ,libgee)
5180 ("librsvg" ,librsvg)
5181 ("qqwing" ,qqwing)))
5182 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5183 (synopsis "Japanese logic game")
5184 (description
5185 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5186 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5187 possible while still providing features that make playing difficult Sudoku
5188 more fun.")
5189 (license license:gpl2+)))
5190
5191 (define-public gnome-terminal
5192 (package
5193 (name "gnome-terminal")
5194 (version "3.34.2")
5195 (source
5196 (origin
5197 (method url-fetch)
5198 (uri (string-append "mirror://gnome/sources/" name "/"
5199 (version-major+minor version) "/"
5200 name "-" version ".tar.xz"))
5201 (sha256
5202 (base32
5203 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
5204 (build-system glib-or-gtk-build-system)
5205 (arguments
5206 '(#:configure-flags
5207 (list "--disable-migration" "--disable-search-provider"
5208 "--without-nautilus-extension")
5209 #:phases
5210 (modify-phases %standard-phases
5211 (add-before 'configure 'patch-/bin/true
5212 (lambda _
5213 (substitute* "configure"
5214 (("/bin/true") (which "true"))))))))
5215 (native-inputs
5216 `(("pkg-config" ,pkg-config)
5217 ("desktop-file-utils" ,desktop-file-utils)
5218 ("intltool" ,intltool)
5219 ("itstool" ,itstool)
5220 ("xmllint" ,libxml2)))
5221 (propagated-inputs
5222 `(("dconf" ,dconf)))
5223 (inputs
5224 `(("gtk+" ,gtk+)
5225 ("vte" ,vte)
5226 ("gnutls" ,gnutls)
5227 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5228 ("util-linux" ,util-linux "lib")
5229 ("vala" ,vala)))
5230 (home-page "https://wiki.gnome.org/Apps/Terminal")
5231 (synopsis "Terminal emulator")
5232 (description
5233 "GNOME Terminal is a terminal emulator application for accessing a
5234 UNIX shell environment which can be used to run programs available on
5235 your system.
5236
5237 It supports several profiles, multiple tabs and implements several
5238 keyboard shortcuts.")
5239 (license license:gpl3+)))
5240
5241 (define-public colord
5242 (package
5243 (name "colord")
5244 (version "1.4.5")
5245 (source
5246 (origin
5247 (method url-fetch)
5248 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5249 "colord-" version ".tar.xz"))
5250 (sha256
5251 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5252 (build-system meson-build-system)
5253 (arguments
5254 '(;; FIXME: One test fails:
5255 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5256 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5257 ;; application/x-zerosize
5258 #:tests? #f
5259 #:glib-or-gtk? #t
5260 #:configure-flags (list "-Dlocalstatedir=/var"
5261 ;; No dep on systemd.
5262 "-Dsystemd=false"
5263 ;; Wants to install to global completion dir;
5264 ;; punt.
5265 "-Dbash_completion=false"
5266 "-Ddaemon_user=colord"
5267 "-Dsane=true"
5268 "-Dvapi=true"
5269 ;; Requires spotread.
5270 "-Dargyllcms_sensor=false"
5271 ;; TODO: Requires docbook2x.
5272 "-Dman=false")
5273 #:phases
5274 (modify-phases %standard-phases
5275 (add-before 'configure 'patch-build-system
5276 (lambda* (#:key outputs #:allow-other-keys)
5277 (substitute* "rules/meson.build"
5278 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5279 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
5280 #t))
5281 (add-before 'configure 'set-sqlite3-file-name
5282 (lambda* (#:key inputs #:allow-other-keys)
5283 ;; "colormgr dump" works by invoking the "sqlite3" command.
5284 ;; Record its absolute file name.
5285 (let ((sqlite (assoc-ref inputs "sqlite")))
5286 (substitute* "client/cd-util.c"
5287 (("\"sqlite3\"")
5288 (string-append "\"" sqlite "/bin/sqlite3\"")))
5289 #t))))))
5290 (native-inputs
5291 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5292 ("gettext" ,gettext-minimal)
5293 ("gobject-introspection" ,gobject-introspection)
5294 ("gtk-doc" ,gtk-doc/stable)
5295 ("pkg-config" ,pkg-config)
5296 ("vala" ,vala)))
5297 (propagated-inputs
5298 ;; colord.pc refers to all these.
5299 `(("glib" ,glib)
5300 ("lcms" ,lcms)
5301 ("udev" ,eudev)))
5302 (inputs
5303 `(("dbus-glib" ,dbus-glib)
5304 ("gusb" ,gusb)
5305 ("libgudev" ,libgudev)
5306 ("libusb" ,libusb)
5307 ("polkit" ,polkit)
5308 ("python" ,python-wrapper)
5309 ("sqlite" ,sqlite)
5310 ("sane-backends" ,sane-backends)))
5311 (home-page "https://www.freedesktop.org/software/colord/")
5312 (synopsis "Color management service")
5313 (description "Colord is a system service that makes it easy to manage,
5314 install and generate color profiles to accurately color manage input and
5315 output devices.")
5316 (license license:gpl2+)))
5317
5318 (define-public geoclue
5319 (package
5320 (name "geoclue")
5321 (version "2.5.7")
5322 (source
5323 (origin
5324 (method url-fetch)
5325 (uri
5326 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5327 version "/geoclue-" version ".tar.bz2"))
5328 (sha256
5329 (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
5330 (patches (search-patches "geoclue-config.patch"))))
5331 (build-system meson-build-system)
5332 (arguments
5333 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
5334 (native-inputs
5335 `(("pkg-config" ,pkg-config)
5336 ("gobject-introspection" ,gobject-introspection)
5337 ("modem-manager" ,modem-manager)
5338 ("libnotify" ,libnotify)
5339 ("gtk-doc" ,gtk-doc/stable)
5340 ("intltool" ,intltool)))
5341 (inputs
5342 `(("avahi" ,avahi)
5343 ("glib:bin" ,glib "bin")
5344 ("glib-networking" ,glib-networking)
5345 ("json-glib" ,json-glib)
5346 ("libsoup" ,libsoup)))
5347 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5348 (synopsis "Geolocation service")
5349 (description "Geoclue is a D-Bus service that provides location
5350 information. The primary goal of the Geoclue project is to make creating
5351 location-aware applications as simple as possible, while the secondary goal is
5352 to ensure that no application can access location information without explicit
5353 permission from user.")
5354 (license license:gpl2+)))
5355
5356 (define-public geocode-glib
5357 (package
5358 (name "geocode-glib")
5359 (version "3.26.2")
5360 (source (origin
5361 (method url-fetch)
5362 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5363 (version-major+minor version) "/"
5364 "geocode-glib-" version ".tar.xz"))
5365 (sha256
5366 (base32
5367 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5368 (build-system meson-build-system)
5369 (arguments
5370 `(#:phases
5371 (modify-phases %standard-phases
5372 ;; The tests require a bunch of locales.
5373 (add-before 'check 'set-locales
5374 (lambda* (#:key inputs #:allow-other-keys)
5375 (setenv "GUIX_LOCPATH"
5376 (string-append (assoc-ref inputs "glibc-locales")
5377 "/lib/locale"))
5378 #t)))))
5379 (native-inputs
5380 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5381 ("glibc-locales" ,glibc-locales) ; for tests
5382 ("gettext" ,gettext-minimal)
5383 ("gobject-introspection" ,gobject-introspection)
5384 ("gtk-doc" ,gtk-doc/stable)
5385 ("pkg-config" ,pkg-config)
5386 ("json-glib" ,json-glib)))
5387 (propagated-inputs
5388 ;; geocode-glib-1.0.pc refers to GIO.
5389 `(("glib" ,glib)))
5390 (inputs
5391 `(("libsoup" ,libsoup)))
5392 (home-page "https://github.com/GNOME/geocode-glib/")
5393 (synopsis "Geocoding and reverse-geocoding library")
5394 (description
5395 "geocode-glib is a convenience library for geocoding (finding longitude,
5396 and latitude from an address) and reverse geocoding (finding an address from
5397 coordinates) using the Nominatim service. geocode-glib caches requests for
5398 faster results and to avoid unnecessary server load.")
5399 (license license:lgpl2.0+)))
5400
5401 (define-public upower
5402 (package
5403 (name "upower")
5404 (version "0.99.12")
5405 (source
5406 (origin
5407 (method git-fetch)
5408 (uri (git-reference
5409 (url "https://gitlab.freedesktop.org/upower/upower")
5410 (commit (string-append "UPOWER_"
5411 (string-map (match-lambda (#\. #\_)
5412 (chr chr))
5413 version)))))
5414 (file-name (git-file-name name version))
5415 (sha256
5416 (base32 "00q63yc8vp5cq05vhpwq3qglapdm8hg0lrqkzdwkphk30qzb6hv6"))
5417 (patches (search-patches "upower-builddir.patch"))
5418 (modules '((guix build utils)))
5419 (snippet
5420 '(begin
5421 ;; Upstream commit
5422 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5423 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5424 ;; 'dbus-configuration-directory' in (gnu services dbus)
5425 ;; expects it in etc/. Thus, move it back to its previous
5426 ;; location.
5427 (substitute* "src/Makefile.am"
5428 (("^dbusconfdir =.*$")
5429 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5430 #t))))
5431 (build-system glib-or-gtk-build-system)
5432 (arguments
5433 '(#:phases
5434 (modify-phases %standard-phases
5435 (add-before 'check 'pre-check
5436 (lambda* (#:key inputs #:allow-other-keys)
5437 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5438 "/lib")))
5439 (setenv "LD_LIBRARY_PATH" umockdev))
5440 #t)))
5441 #:configure-flags (list "--localstatedir=/var"
5442 (string-append "--with-udevrulesdir="
5443 (assoc-ref %outputs "out")
5444 "/lib/udev/rules.d"))))
5445 (native-inputs
5446 `(("autoconf" ,autoconf)
5447 ("automake" ,automake)
5448 ("gobject-introspection" ,gobject-introspection)
5449 ("gtk-doc" ,gtk-doc)
5450 ("intltool" ,intltool)
5451 ("libtool" ,libtool)
5452 ("pkg-config" ,pkg-config)
5453 ("python" ,python)
5454 ("which" ,which) ; for ./autogen.sh
5455
5456 ;; For tests.
5457 ("python-dbus" ,python-dbus)
5458 ("python-dbusmock" ,python-dbusmock)
5459 ("python-pygobject" ,python-pygobject)
5460 ("umockdev" ,umockdev)
5461
5462 ;; For man pages.
5463 ("docbook-xsl" ,docbook-xsl)
5464 ("libxslt" ,libxslt) ; for 'xsltproc'
5465 ("libxml2" ,libxml2))) ; for 'XML_CATALOG_FILES'
5466 (inputs
5467 `(("dbus-glib" ,dbus-glib)
5468 ("libgudev" ,libgudev)
5469 ("libusb" ,libusb)))
5470 (propagated-inputs
5471 ;; In Requires of upower-glib.pc.
5472 `(("glib" ,glib)))
5473 (home-page "https://upower.freedesktop.org/")
5474 (synopsis "System daemon for managing power devices")
5475 (description
5476 "UPower is an abstraction for enumerating power devices,
5477 listening to device events and querying history and statistics. Any
5478 application or service on the system can access the org.freedesktop.UPower
5479 service via the system message bus.")
5480 (license license:gpl2+)))
5481
5482 (define-public libgweather
5483 (package
5484 (name "libgweather")
5485 (version "3.34.0")
5486 (source (origin
5487 (method url-fetch)
5488 (uri (string-append "mirror://gnome/sources/" name "/"
5489 (version-major+minor version) "/"
5490 name "-" version ".tar.xz"))
5491 (sha256
5492 (base32
5493 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5494 (build-system meson-build-system)
5495 (arguments
5496 `(#:tests? #f ; one of two tests requires network access
5497 #:configure-flags
5498 `(,(string-append "-Dzoneinfo_dir="
5499 (assoc-ref %build-inputs "tzdata")
5500 "/share/zoneinfo"))))
5501 (native-inputs
5502 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5503 ("gobject-introspection" ,gobject-introspection)
5504 ("pkg-config" ,pkg-config)
5505 ("vala" ,vala)
5506 ("intltool" ,intltool)))
5507 (propagated-inputs
5508 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5509 ;; libsoup.
5510 `(("gtk+" ,gtk+)
5511 ("gdk-pixbuf" ,gdk-pixbuf)
5512 ("libxml2" ,libxml2)
5513 ("libsoup" ,libsoup)
5514 ("geocode-glib" ,geocode-glib)))
5515 (inputs
5516 `(("tzdata" ,tzdata)))
5517 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5518 (synopsis "Location, time zone, and weather library for GNOME")
5519 (description
5520 "libgweather is a library to access weather information from online
5521 services for numerous locations.")
5522 (license license:gpl2+)))
5523
5524 (define-public gnome-settings-daemon
5525 (package
5526 (name "gnome-settings-daemon")
5527 (version "3.34.1")
5528 (source
5529 (origin
5530 (method url-fetch)
5531 (uri (string-append "mirror://gnome/sources/" name "/"
5532 (version-major+minor version) "/"
5533 name "-" version ".tar.xz"))
5534 (sha256
5535 (base32
5536 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
5537 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5538 (build-system meson-build-system)
5539 (arguments
5540 `(#:glib-or-gtk? #t
5541 #:configure-flags
5542 (list (string-append "-Dudev_dir="
5543 (assoc-ref %outputs "out")
5544 "/lib/udev/rules.d/")
5545 "-Dsystemd=false"
5546 ;; Otherwise, the RUNPATH will lack the final path component.
5547 (string-append "-Dc_link_args=-Wl,-rpath="
5548 (assoc-ref %outputs "out")
5549 "/lib/gnome-settings-daemon-3.0"))
5550
5551 #:phases (modify-phases %standard-phases
5552 (add-before 'configure 'set-baobab-file-name
5553 (lambda* (#:key inputs #:allow-other-keys)
5554 ;; Hard-code the file name of Baobab instead of looking
5555 ;; it up in $PATH. This ensures users get the "Examine"
5556 ;; button in the low disk space notification of GDM even
5557 ;; if they don't have GNOME in their main profile.
5558 (let ((baobab (assoc-ref inputs "baobab")))
5559 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5560 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5561 (string-append "g_strdup (\"" baobab
5562 "/bin/baobab\")")))
5563 #t))))
5564
5565 ;; Color management test can't reach the colord system service.
5566 #:tests? #f))
5567 (native-inputs
5568 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5569 ("pkg-config" ,pkg-config)
5570 ("intltool" ,intltool)
5571 ("xsltproc" ,libxslt)
5572 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5573 ("docbook-xml" ,docbook-xml-4.2)
5574 ("docbook-xsl" ,docbook-xsl)))
5575 (inputs
5576 `(("alsa-lib" ,alsa-lib)
5577 ("baobab" ,baobab)
5578 ("colord" ,colord)
5579 ("libgudev" ,libgudev)
5580 ("upower" ,upower)
5581 ("polkit" ,polkit)
5582 ("pulseaudio" ,pulseaudio)
5583 ("libcanberra" ,libcanberra)
5584 ("libx11" ,libx11)
5585 ("libxtst" ,libxtst)
5586 ("lcms" ,lcms)
5587 ("libnotify" ,libnotify)
5588 ("geoclue" ,geoclue)
5589 ("geocode-glib" ,geocode-glib)
5590 ("libgweather" ,libgweather)
5591 ("gnome-desktop" ,gnome-desktop)
5592 ("nss" ,nss)
5593 ("cups" ,cups)
5594 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5595 ("libwacom" ,libwacom)
5596 ("librsvg" ,librsvg)
5597 ("xf86-input-wacom" ,xf86-input-wacom)
5598 ("wayland" ,wayland)
5599 ("network-manager" ,network-manager)
5600 ("gcr" ,gcr)
5601 ("modem-manager" ,modem-manager)))
5602 (home-page "https://www.gnome.org")
5603 (synopsis "GNOME settings daemon")
5604 (description
5605 "This package contains the daemon responsible for setting the various
5606 parameters of a GNOME session and the applications that run under it. It
5607 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5608 settings, themes, mouse settings, and startup of other daemons.")
5609 (license license:gpl2+)))
5610
5611 (define-public totem-pl-parser
5612 (package
5613 (name "totem-pl-parser")
5614 (version "3.26.6")
5615 (source (origin
5616 (method url-fetch)
5617 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5618 (version-major+minor version) "/"
5619 "totem-pl-parser-" version ".tar.xz"))
5620 (sha256
5621 (base32
5622 "075csd5x0frgf93jvhlqiwv5i0qm24zz3iw17jj7v7fgsml0zpy0"))))
5623 (build-system meson-build-system)
5624 (arguments
5625 ;; FIXME: Tests require gvfs.
5626 `(#:tests? #f))
5627 (native-inputs
5628 `(("intltool" ,intltool)
5629 ("glib" ,glib "bin")
5630 ("gobject-introspection" ,gobject-introspection)
5631 ("pkg-config" ,pkg-config)))
5632 (propagated-inputs
5633 `(("glib" ,glib)
5634 ("gmime" ,gmime)
5635 ("libarchive" ,libarchive)
5636 ("libgcrypt" ,libgcrypt)
5637 ("libxml2" ,libxml2)))
5638 (inputs
5639 `(("libsoup" ,libsoup)))
5640 (home-page "https://projects.gnome.org/totem")
5641 (synopsis "Library to parse and save media playlists for GNOME")
5642 (description "Totem-pl-parser is a GObjects-based library to parse and save
5643 playlists in a variety of formats.")
5644 (license license:lgpl2.0+)))
5645
5646 (define-public aisleriot
5647 (package
5648 (name "aisleriot")
5649 (version "3.22.9")
5650 (source (origin
5651 (method url-fetch)
5652 (uri (string-append "mirror://gnome/sources/aisleriot/"
5653 (version-major+minor version) "/"
5654 "aisleriot-" version ".tar.xz"))
5655 (sha256
5656 (base32
5657 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5658 (build-system glib-or-gtk-build-system)
5659 (arguments
5660 '(#:configure-flags
5661 '("--with-platform=gtk-only"
5662 "--with-card-theme-formats=svg")))
5663 (native-inputs
5664 `(("desktop-file-utils" ,desktop-file-utils)
5665 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5666 ("intltool" ,intltool)
5667 ("itstool" ,itstool)
5668 ("pkg-config" ,pkg-config)
5669 ("xmllint" ,libxml2)))
5670 (inputs
5671 `(("gtk+" ,gtk+)
5672 ("guile" ,guile-2.2)
5673 ("libcanberra" ,libcanberra)
5674 ("librsvg" ,librsvg)))
5675 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5676 (synopsis "Solitaire card games")
5677 (description
5678 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5679 which are easy to play with the aid of a mouse.")
5680 (license license:gpl3+)))
5681
5682 (define-public amtk
5683 (package
5684 (name "amtk")
5685 (version "5.0.2")
5686 (source (origin
5687 (method url-fetch)
5688 (uri (string-append "mirror://gnome/sources/amtk/"
5689 (version-major+minor version) "/"
5690 "amtk-" version ".tar.xz"))
5691 (sha256
5692 (base32
5693 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5694 (build-system gnu-build-system)
5695 (arguments
5696 '(#:configure-flags '("--enable-gtk-doc")))
5697 (native-inputs
5698 `(("gobject-introspection" ,gobject-introspection)
5699 ("glib:bin" ,glib "bin") ; for glib-mkenums
5700 ("gtk-doc" ,gtk-doc/stable)
5701 ("pkg-config" ,pkg-config)))
5702 (inputs
5703 `(("glib" ,glib)
5704 ("gtk+" ,gtk+)))
5705 (home-page "https://wiki.gnome.org/Projects/Amtk")
5706 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5707 (description
5708 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5709 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5710 both a traditional UI or a modern UI with a GtkHeaderBar.")
5711 (license license:lgpl2.1+)))
5712
5713 (define-public devhelp
5714 (package
5715 (name "devhelp")
5716 (version "3.34.0")
5717 (source (origin
5718 (method url-fetch)
5719 (uri (string-append "mirror://gnome/sources/" name "/"
5720 (version-major+minor version) "/"
5721 name "-" version ".tar.xz"))
5722 (sha256
5723 (base32
5724 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5725 (build-system meson-build-system)
5726 (arguments
5727 '(#:glib-or-gtk? #t
5728 #:phases
5729 (modify-phases %standard-phases
5730 (add-after 'unpack 'skip-gtk-update-icon-cache
5731 ;; Don't create 'icon-theme.cache'.
5732 (lambda _
5733 (substitute* "meson_post_install.py"
5734 (("gtk-update-icon-cache") "true"))
5735 #t)))))
5736 (native-inputs
5737 `(("intltool" ,intltool)
5738 ("itstool" ,itstool)
5739 ("gobject-introspection" ,gobject-introspection)
5740 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5741 ("pkg-config" ,pkg-config)))
5742 (inputs
5743 `(("amtk" ,amtk)
5744 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5745 ("webkitgtk" ,webkitgtk)))
5746 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5747 (synopsis "API documentation browser for GNOME")
5748 (description
5749 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5750 natively with GTK-Doc (the API reference system developed for GTK+ and used
5751 throughout GNOME for API documentation).")
5752 (license license:gpl2+)))
5753
5754 (define-public cogl
5755 (package
5756 (name "cogl")
5757 (version "1.22.8")
5758 (source
5759 (origin
5760 (method url-fetch)
5761 (uri (string-append "mirror://gnome/sources/cogl/"
5762 (version-major+minor version) "/"
5763 "cogl-" version ".tar.xz"))
5764 (sha256
5765 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5766 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5767 ;; cogl, corresponding changes may be appropriate in mutter as well.
5768 (build-system gnu-build-system)
5769 (native-inputs
5770 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5771 ("gobject-introspection" ,gobject-introspection)
5772 ("xorg-server" ,xorg-server-for-tests)
5773 ("pkg-config" ,pkg-config)))
5774 (propagated-inputs
5775 `(("glib" ,glib)
5776 ("gdk-pixbuf" ,gdk-pixbuf)
5777 ("libx11" ,libx11)
5778 ("libxext" ,libxext)
5779 ("libxfixes" ,libxfixes)
5780 ("libxdamage" ,libxdamage)
5781 ("libxcomposite" ,libxcomposite)
5782 ("libxrandr" ,libxrandr)))
5783 (inputs
5784 `(("mesa" ,mesa)
5785 ("cairo" ,cairo)
5786 ("pango" ,pango)
5787 ("gstreamer" ,gstreamer)
5788 ("gst-plugins-base" ,gst-plugins-base)
5789 ("wayland" ,wayland)))
5790 (arguments
5791 `(#:disallowed-references (,xorg-server-for-tests)
5792 #:configure-flags (list "--enable-cogl-gst"
5793 "--enable-wayland-egl-platform"
5794 "--enable-wayland-egl-server"
5795
5796 ;; Arrange to pass an absolute file name to
5797 ;; dlopen for libGL.so.
5798 (string-append "--with-gl-libname="
5799 (assoc-ref %build-inputs "mesa")
5800 "/lib/libGL.so"))
5801 #:phases
5802 (modify-phases %standard-phases
5803 (add-after 'unpack 'fix-build-with-mesa-20
5804 (lambda _
5805 ;; Work around a problem with Mesa 20 where some macros used by
5806 ;; Cogl went missing from eglext.h. This can likely be removed
5807 ;; for newer versions of Cogl or Mesa.
5808 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5809 (substitute* '("configure"
5810 "cogl/winsys/cogl-winsys-egl-kms.c")
5811 (("#include <EGL/eglext.h>" all)
5812 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5813 #t))
5814 (add-before 'check 'start-xorg-server
5815 (lambda* (#:key tests? inputs #:allow-other-keys)
5816 (if tests?
5817 (begin
5818 ;; The test suite requires a running X server.
5819 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5820 (assoc-ref inputs "xorg-server")))
5821 (setenv "DISPLAY" ":1")
5822 #t)
5823 (format #t "test suite not run~%"))
5824 #t)))))
5825 (home-page "https://www.cogl3d.org")
5826 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5827 (description
5828 "Cogl is a small library for using 3D graphics hardware to draw pretty
5829 pictures. The API departs from the flat state machine style of OpenGL and is
5830 designed to make it easy to write orthogonal components that can render
5831 without stepping on each others toes.")
5832 (license (list license:expat ; most of the code
5833 license:bsd-3 ; cogl/cogl-point-in-poly.c
5834 license:sgifreeb2.0 ; cogl-path/tesselator/
5835 license:asl2.0)))) ; examples/android/
5836
5837 (define-public clutter
5838 (package
5839 (name "clutter")
5840 (version "1.26.2")
5841 (source
5842 (origin
5843 (method url-fetch)
5844 (uri (string-append "mirror://gnome/sources/" name "/"
5845 (version-major+minor version) "/"
5846 name "-" version ".tar.xz"))
5847 (sha256
5848 (base32
5849 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5850 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5851 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5852 (build-system gnu-build-system)
5853 (outputs '("out"
5854 "doc")) ;9 MiB of gtk-doc HTML pages
5855 (native-inputs
5856 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5857 ("gobject-introspection" ,gobject-introspection)
5858 ("pkg-config" ,pkg-config)
5859 ("xsltproc" ,libxslt)))
5860 (propagated-inputs
5861 `(("cogl" ,cogl)
5862 ("cairo" ,cairo)
5863 ("atk" ,atk)
5864 ("gtk+" ,gtk+)
5865 ("json-glib" ,json-glib)
5866 ("glib" ,glib)
5867 ("libxcomposite" ,libxcomposite)
5868 ("libxdamage" ,libxdamage)
5869 ("libxext" ,libxext)
5870 ("xinput" ,xinput)))
5871 (inputs
5872 `(("libxkbcommon" ,libxkbcommon)
5873 ("udev" ,eudev)))
5874 (arguments
5875 `(#:configure-flags (list "--enable-x11-backend=yes"
5876
5877 ;; This produces share/doc/{clutter,cally}.
5878 (string-append "--with-html-dir="
5879 (assoc-ref %outputs "doc")
5880 "/share/doc"))
5881 ;; XXX FIXME: Get test suite working. It would probably fail in the
5882 ;; same way the cogl tests fail, since clutter is based on cogl.
5883 #:tests? #f))
5884 (home-page "http://www.clutter-project.org")
5885 (synopsis "OpenGL-based interactive canvas library")
5886 (description
5887 "Clutter is an OpenGL-based interactive canvas library, designed for
5888 creating fast, mainly 2D single window applications such as media box UIs,
5889 presentations, kiosk style applications and so on.")
5890 (license license:lgpl2.0+)))
5891
5892 (define-public clutter-gtk
5893 (package
5894 (name "clutter-gtk")
5895 (version "1.8.4")
5896 (source
5897 (origin
5898 (method url-fetch)
5899 (uri (string-append "mirror://gnome/sources/" name "/"
5900 (version-major+minor version) "/"
5901 name "-" version ".tar.xz"))
5902 (sha256
5903 (base32
5904 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5905 (build-system gnu-build-system)
5906 (native-inputs
5907 `(("pkg-config" ,pkg-config)
5908 ("gobject-introspection" ,gobject-introspection)))
5909 (propagated-inputs
5910 ;; clutter-gtk.pc refers to all these.
5911 `(("clutter" ,clutter)
5912 ("gtk+" ,gtk+)))
5913 (home-page "http://www.clutter-project.org")
5914 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5915 (description
5916 "Clutter is an OpenGL-based interactive canvas library, designed for
5917 creating fast, mainly 2D single window applications such as media box UIs,
5918 presentations, kiosk style applications and so on.")
5919 (license license:lgpl2.0+)))
5920
5921 (define-public clutter-gst
5922 (package
5923 (name "clutter-gst")
5924 (version "3.0.27")
5925 (source
5926 (origin
5927 (method url-fetch)
5928 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5929 (version-major+minor version) "/"
5930 "clutter-gst-" version ".tar.xz"))
5931 (sha256
5932 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5933 (build-system gnu-build-system)
5934 (native-inputs
5935 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5936 ("pkg-config" ,pkg-config)
5937 ("gobject-introspection" ,gobject-introspection)))
5938 (inputs
5939 `(("clutter" ,clutter)
5940 ("gstreamer" ,gstreamer)
5941 ("gst-plugins-base" ,gst-plugins-base)))
5942 (home-page "http://www.clutter-project.org")
5943 (synopsis "Integration library for using GStreamer with Clutter")
5944 (description
5945 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5946 It provides a GStreamer sink to upload frames to GL and an actor that
5947 implements the ClutterGstPlayer interface using playbin. Clutter is an
5948 OpenGL-based interactive canvas library.")
5949 (license license:lgpl2.0+)))
5950
5951 (define-public libchamplain
5952 (package
5953 (name "libchamplain")
5954 (version "0.12.16")
5955 (source (origin
5956 (method url-fetch)
5957 (uri (string-append
5958 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5959 version ".tar.xz"))
5960 (sha256
5961 (base32
5962 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5963 (build-system gnu-build-system)
5964 (arguments '(#:configure-flags '("--enable-vala")))
5965 (native-inputs
5966 `(("gobject-introspection" ,gobject-introspection)
5967 ("pkg-config" ,pkg-config)
5968 ("vala" ,vala)))
5969 (propagated-inputs
5970 `(("libsoup" ,libsoup)
5971 ("sqlite" ,sqlite)
5972 ("clutter" ,clutter)
5973 ("clutter-gtk" ,clutter-gtk)
5974 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5975 ("cairo" ,cairo)
5976 ("gtk+3" ,gtk+)
5977 ("glib" ,glib)))
5978 (home-page "https://projects.gnome.org/libchamplain/")
5979 (synopsis "C library providing a ClutterActor to display maps")
5980 (description
5981 "libchamplain is a C library providing a ClutterActor to display maps.
5982 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5983 and Perl bindings are also available. It supports numerous free map sources
5984 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5985 (license license:lgpl2.1+)))
5986
5987 (define-public gom
5988 (package
5989 (name "gom")
5990 (version "0.3.2")
5991 (source
5992 (origin
5993 (method url-fetch)
5994 (uri (string-append "mirror://gnome/sources/gom/"
5995 (version-major+minor version) "/"
5996 "gom-" version ".tar.xz"))
5997 (sha256
5998 (base32
5999 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
6000 (build-system gnu-build-system)
6001 (native-inputs
6002 `(("intltool" ,intltool)
6003 ("pkg-config" ,pkg-config)
6004 ("gobject-introspection" ,gobject-introspection)))
6005 (inputs
6006 `(("glib" ,glib)
6007 ("gdk-pixbuf" ,gdk-pixbuf)
6008 ("sqlite" ,sqlite)))
6009 ;; XXX TODO: Figure out how to run the test suite.
6010 (arguments `(#:tests? #f))
6011 (home-page "https://wiki.gnome.org/Projects/Gom")
6012 (synopsis "Object mapper from GObjects to SQLite")
6013 (description
6014 "Gom provides an object mapper from GObjects to SQLite. It helps you
6015 write applications that need to store structured data as well as make complex
6016 queries upon that data.")
6017 (license license:lgpl2.1+)))
6018
6019 (define-public libgnome-games-support
6020 (package
6021 (name "libgnome-games-support")
6022 (version "1.7.1")
6023 (source (origin
6024 (method url-fetch)
6025 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
6026 (version-major+minor version) "/"
6027 "libgnome-games-support-" version ".tar.xz"))
6028 (sha256
6029 (base32
6030 "11g1r3ppb9v8m3anks9gxf7fv1x38vmjiya3lr7zjjv328pb69d6"))))
6031 (build-system meson-build-system)
6032 (arguments
6033 '(#:glib-or-gtk? #t
6034 #:phases
6035 (modify-phases %standard-phases
6036 (add-before 'check 'pre-check
6037 (lambda _
6038 ;; Tests require a writable HOME.
6039 (setenv "HOME" (getcwd))
6040 #t)))))
6041 (native-inputs
6042 `(("intltool" ,intltool)
6043 ("pkg-config" ,pkg-config)
6044 ("vala" ,vala)))
6045 (propagated-inputs
6046 ;; Required by libgnome-games-support-1.0.pc
6047 `(("gtk+" ,gtk+)
6048 ("libgee" ,libgee)))
6049 (home-page "https://www.gnome.org/")
6050 (synopsis "Useful functionality shared among GNOME games")
6051 (description
6052 "libgnome-games-support is a small library intended for internal use by
6053 GNOME Games, but it may be used by others.")
6054 (license license:lgpl3+)))
6055
6056 (define-public gnome-klotski
6057 (package
6058 (name "gnome-klotski")
6059 (version "3.34.0")
6060 (source (origin
6061 (method url-fetch)
6062 (uri (string-append "mirror://gnome/sources/" name "/"
6063 (version-major+minor version) "/"
6064 name "-" version ".tar.xz"))
6065 (sha256
6066 (base32
6067 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
6068 (build-system meson-build-system)
6069 (arguments
6070 '(#:glib-or-gtk? #t
6071 #:phases
6072 (modify-phases %standard-phases
6073 (add-after 'unpack 'skip-gtk-update-icon-cache
6074 ;; Don't create 'icon-theme.cache'.
6075 (lambda _
6076 (substitute* "build-aux/meson_post_install.py"
6077 (("gtk-update-icon-cache") (which "true")))
6078 #t)))))
6079 (native-inputs
6080 `(("desktop-file-utils" ,desktop-file-utils)
6081 ("glib:bin" ,glib "bin") ; for glib-compile-resources
6082 ("intltool" ,intltool)
6083 ("itstool" ,itstool)
6084 ("pkg-config" ,pkg-config)
6085 ("vala" ,vala)
6086 ("xmllint" ,libxml2)))
6087 (inputs
6088 `(("gtk+" ,gtk+)
6089 ("libgnome-games-support" ,libgnome-games-support)
6090 ("librsvg" ,librsvg)))
6091 (home-page "https://wiki.gnome.org/Apps/Klotski")
6092 (synopsis "Sliding block puzzles")
6093 (description
6094 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6095 the patterned block to the area bordered by green markers. To do so, you will
6096 need to slide other blocks out of the way. Complete each puzzle in as few moves
6097 as possible!")
6098 (license license:gpl2+)))
6099
6100 (define-public grilo
6101 (package
6102 (name "grilo")
6103 (version "0.3.12")
6104 (source
6105 (origin
6106 (method url-fetch)
6107 (uri (string-append "mirror://gnome/sources/grilo/"
6108 (version-major+minor version) "/"
6109 "grilo-" version ".tar.xz"))
6110 (sha256
6111 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
6112 (build-system meson-build-system)
6113 (native-inputs
6114 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
6115 ("intltool" ,intltool)
6116 ("pkg-config" ,pkg-config)
6117 ("gobject-introspection" ,gobject-introspection)
6118 ("gtk-doc" ,gtk-doc/stable)
6119 ("vala" ,vala)))
6120 (inputs
6121 `(("cyrus-sasl" ,cyrus-sasl)
6122 ("glib" ,glib)
6123 ("gtk+" ,gtk+)
6124 ("libxml2" ,libxml2)
6125 ("liboauth" ,liboauth)
6126 ("libsoup" ,libsoup)
6127 ("totem-pl-parser" ,totem-pl-parser)))
6128 (native-search-paths
6129 (list (search-path-specification
6130 (variable "GRL_PLUGIN_PATH")
6131 (files (list (string-append "lib/grilo-"
6132 (version-major+minor version)))))))
6133 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6134 (synopsis "Framework for discovering and browsing media")
6135 (description
6136 "Grilo is a framework focused on making media discovery and browsing easy
6137 for application developers.")
6138 (license license:lgpl2.1+)))
6139
6140 (define-public grilo-plugins
6141 (package
6142 (name "grilo-plugins")
6143 (version "0.3.11")
6144 (source
6145 (origin
6146 (method url-fetch)
6147 (uri (string-append "mirror://gnome/sources/" name "/"
6148 (version-major+minor version) "/"
6149 name "-" version ".tar.xz"))
6150 (sha256
6151 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
6152 (build-system meson-build-system)
6153 (native-inputs
6154 `(("gettext" ,gettext-minimal)
6155 ("glib:bin" ,glib "bin")
6156 ("gtk+:bin" ,gtk+ "bin")
6157 ("itstool" ,itstool)
6158 ("pkg-config" ,pkg-config)))
6159 ;; TODO: ahavi, gstreamer
6160 (inputs
6161 `(("grilo" ,grilo)
6162 ;("gmime" ,gmime) ; unused
6163 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6164 ("gom" ,gom)
6165 ;("gssdp" ,gssdp) ; unused
6166 ;("gupnp" ,gupnp) ; unused
6167 ;("gupnp-av" ,gupnp-av) ; unused
6168 ("json-glib" ,json-glib)
6169 ("avahi" ,avahi)
6170 ("libgdata" ,libgdata)
6171 ("libmediaart" ,libmediaart)
6172 ;("librest" ,rest) ; unused
6173 ("libsoup" ,libsoup)
6174 ("totam-pl-parser" ,totem-pl-parser)
6175 ("tracker" ,tracker))) ; unused because it's too old
6176 (arguments
6177 `(#:glib-or-gtk? #t
6178 ;;Disable lua-factory as it needs missing dependencies
6179 #:configure-flags '("-Denable-lua-factory=no")))
6180 (home-page "https://live.gnome.org/Grilo")
6181 (synopsis "Plugins for the Grilo media discovery library")
6182 (description
6183 "Grilo is a framework focused on making media discovery and browsing easy
6184 for application developers. This package provides plugins for common media
6185 discovery protocols.")
6186 (license license:lgpl2.1+)))
6187
6188 (define-public totem
6189 (package
6190 (name "totem")
6191 (version "3.38.1")
6192 (source
6193 (origin
6194 (method url-fetch)
6195 (uri (string-append "mirror://gnome/sources/totem/"
6196 (version-major+minor version) "/"
6197 "totem-" version ".tar.xz"))
6198 (sha256
6199 (base32 "02510lvzvxvmpcs64k6sqix8ysl7sihhhwvp0vmfv7521ryczylg"))))
6200 (build-system meson-build-system)
6201 (native-inputs
6202 `(("pkg-config" ,pkg-config)
6203 ("desktop-file-utils" ,desktop-file-utils)
6204 ("gettext" ,gettext-minimal)
6205 ("gobject-introspection" ,gobject-introspection)
6206 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
6207 ("itstool" ,itstool)
6208 ("xmllint" ,libxml2)
6209 ("xorg-server" ,xorg-server-for-tests)))
6210 (propagated-inputs
6211 `(("dconf" ,dconf)))
6212 (inputs
6213 `(("gtk+" ,gtk+)
6214 ("gdk-pixbuf" ,gdk-pixbuf)
6215 ("atk" ,atk)
6216 ("cairo" ,cairo)
6217 ("dbus-glib" ,dbus-glib)
6218 ("clutter" ,clutter)
6219 ("clutter-gtk" ,clutter-gtk)
6220 ("clutter-gst" ,clutter-gst)
6221 ("xorgproto" ,xorgproto)
6222 ("libxxf86vm" ,libxxf86vm)
6223 ("libxtst" ,libxtst)
6224 ("libxrandr" ,libxrandr)
6225 ("libxml2" ,libxml2)
6226 ("libsoup" ,libsoup)
6227 ("libpeas" ,libpeas)
6228 ("librsvg" ,librsvg)
6229 ("lirc" ,lirc)
6230 ("gnome-desktop" ,gnome-desktop)
6231 ("gstreamer" ,gstreamer)
6232 ("gst-plugins-base" ,gst-plugins-base)
6233 ("gst-plugins-good" ,gst-plugins-good)
6234 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6235 ("adwaita-icon-theme" ,adwaita-icon-theme)
6236 ("python" ,python)
6237 ("python-pygobject" ,python-pygobject)
6238 ("totem-pl-parser" ,totem-pl-parser)
6239 ("grilo" ,grilo)
6240 ("grilo-plugins" ,grilo-plugins)
6241 ("vala" ,vala)))
6242 (arguments
6243 `(#:glib-or-gtk? #t
6244
6245 ;; Disable automatic GStreamer plugin installation via PackageKit and
6246 ;; all that.
6247 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6248
6249 ;; Do not build .a files for the plugins, it's
6250 ;; completely useless. This saves 2 MiB.
6251 "--default-library" "shared")
6252 #:phases
6253 (modify-phases %standard-phases
6254 (add-after 'unpack 'skip-gtk-update-icon-cache
6255 ;; Don't create 'icon-theme.cache'.
6256 (lambda _
6257 (substitute* "meson_post_install.py"
6258 (("gtk-update-icon-cache") "true"))
6259 #t))
6260 (add-before
6261 'install 'disable-cache-generation
6262 (lambda _
6263 (setenv "DESTDIR" "/")
6264 #t))
6265 (add-before
6266 'check 'pre-check
6267 (lambda _
6268 ;; Tests require a running X server.
6269 (system "Xvfb :1 &")
6270 (setenv "DISPLAY" ":1")
6271 #t))
6272 (add-after
6273 'install 'wrap-totem
6274 (lambda* (#:key inputs outputs #:allow-other-keys)
6275 (let ((out (assoc-ref outputs "out"))
6276 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6277 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6278 (wrap-program (string-append out "/bin/totem")
6279 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6280 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6281 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6282 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
6283 #t)))))
6284 (home-page "https://wiki.gnome.org/Apps/Videos")
6285 (synopsis "Simple media player for GNOME based on GStreamer")
6286 (description "Totem is a simple yet featureful media player for GNOME
6287 which can read a large number of file formats.")
6288 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6289 ;; to be used and distributed together with GStreamer and Totem. See
6290 ;; file://COPYING in the source distribution for details.
6291 (license license:gpl2+)))
6292
6293 (define-public rhythmbox
6294 (package
6295 (name "rhythmbox")
6296 (version "3.4.4")
6297 (source (origin
6298 (method url-fetch)
6299 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6300 (version-major+minor version) "/"
6301 "rhythmbox-" version ".tar.xz"))
6302 (sha256
6303 (base32
6304 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6305 (build-system glib-or-gtk-build-system)
6306 (arguments
6307 `(#:configure-flags
6308 (list "--enable-lirc"
6309 "--enable-python"
6310 "--enable-vala"
6311 "--with-brasero"
6312 "--with-gudev"
6313 "--with-libsecret")
6314 #:phases
6315 (modify-phases %standard-phases
6316 (add-after
6317 'install 'wrap-rhythmbox
6318 (lambda* (#:key inputs outputs #:allow-other-keys)
6319 (let ((out (assoc-ref outputs "out"))
6320 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6321 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6322 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6323 (python-path (getenv "PYTHONPATH")))
6324 (wrap-program (string-append out "/bin/rhythmbox")
6325 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6326 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6327 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6328 `("PYTHONPATH" ":" prefix (,python-path))))
6329 #t)))))
6330 (propagated-inputs
6331 `(("dconf" ,dconf)))
6332 (native-inputs
6333 `(("itstool" ,itstool)
6334 ("intltool" ,intltool)
6335 ("glib" ,glib "bin")
6336 ("gobject-introspection" ,gobject-introspection)
6337 ("desktop-file-utils" ,desktop-file-utils)
6338 ("pkg-config" ,pkg-config)
6339 ("xmllint" ,libxml2)))
6340 (inputs
6341 `(("json-glib" ,json-glib)
6342 ("tdb" ,tdb)
6343 ("gnome-desktop" ,gnome-desktop)
6344 ("python" ,python)
6345 ("python-pygobject" ,python2-pygobject)
6346 ("vala" ,vala)
6347 ("gmime" ,gmime)
6348 ("adwaita-icon-theme" ,adwaita-icon-theme)
6349 ("grilo" ,grilo)
6350 ("grilo-plugins" ,grilo-plugins)
6351 ("gstreamer" ,gstreamer)
6352 ("gst-plugins-base" ,gst-plugins-base)
6353 ("gst-plugins-good" ,gst-plugins-good)
6354 ("totem-pl-parser" ,totem-pl-parser)
6355 ("libgudev" ,libgudev)
6356 ;;("libmtp" ,libmtp) FIXME: Not detected
6357 ("libsecret" ,libsecret)
6358 ("libsoup" ,libsoup)
6359 ("libnotify" ,libnotify)
6360 ("libpeas" ,libpeas)
6361 ("lirc" ,lirc)
6362 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6363 ;;("clutter" ,clutter)
6364 ;;("clutter-gtk" ,clutter-gtk)
6365 ;;("clutter-gst" ,clutter-gst)
6366 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6367 ("atk" ,atk)
6368 ("pango" ,pango)
6369 ("gtk+" ,gtk+)
6370 ;; TODO:
6371 ;; * libgpod
6372 ;; * mx
6373 ("brasero" ,brasero)))
6374 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6375 (synopsis "Music player for GNOME")
6376 (description "Rhythmbox is a music playing application for GNOME. It
6377 supports playlists, song ratings, and any codecs installed through gstreamer.")
6378 (license license:gpl2+)))
6379
6380 (define-public eog
6381 (package
6382 (name "eog")
6383 (version "3.34.1")
6384 (source (origin
6385 (method url-fetch)
6386 (uri (string-append "mirror://gnome/sources/" name "/"
6387 (version-major+minor version) "/"
6388 name "-" version ".tar.xz"))
6389 (sha256
6390 (base32
6391 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
6392 (build-system meson-build-system)
6393 (arguments
6394 `(#:configure-flags
6395 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6396 (list (string-append "-Dc_link_args=-Wl,-rpath="
6397 (assoc-ref %outputs "out") "/lib/eog"))
6398 #:phases
6399 (modify-phases %standard-phases
6400 (add-after 'unpack 'skip-gtk-update-icon-cache
6401 ;; Don't create 'icon-theme.cache'.
6402 (lambda _
6403 (substitute* "meson_post_install.py"
6404 (("gtk-update-icon-cache") "true"))
6405 #t))
6406 (add-after 'install 'wrap-eog
6407 (lambda* (#:key outputs #:allow-other-keys)
6408 (let ((out (assoc-ref outputs "out"))
6409 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6410 (wrap-program (string-append out "/bin/eog")
6411 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6412 #t)))))
6413 (propagated-inputs
6414 `(("dconf" ,dconf)))
6415 (native-inputs
6416 `(("intltool" ,intltool)
6417 ("itstool" ,itstool)
6418 ("glib" ,glib "bin")
6419 ("gobject-introspection" ,gobject-introspection)
6420 ("pkg-config" ,pkg-config)
6421 ("xmllint" ,libxml2)))
6422 (inputs
6423 `(("gnome-desktop" ,gnome-desktop)
6424 ("shared-mime-info" ,shared-mime-info)
6425 ("adwaita-icon-theme" ,adwaita-icon-theme)
6426 ("exempi" ,exempi)
6427 ("lcms" ,lcms)
6428 ("libexif" ,libexif)
6429 ("libpeas" ,libpeas)
6430 ("libjpeg" ,libjpeg-turbo)
6431 ("librsvg" ,librsvg-next)
6432 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6433 ("gtk+" ,gtk+)))
6434 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6435 (synopsis "GNOME image viewer")
6436 (description "Eye of GNOME is the GNOME image viewer. It
6437 supports image conversion, rotation, and slideshows.")
6438 (license license:gpl2+)))
6439
6440 (define-public eog-plugins
6441 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6442 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6443 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6444 ;; 'XDG_DATA_DIRS' appropriately set.
6445 (package
6446 (name "eog-plugins")
6447 (version "3.26.4")
6448 (source (origin
6449 (method url-fetch)
6450 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6451 (version-major+minor version) "/"
6452 "eog-plugins-" version ".tar.xz"))
6453 (sha256
6454 (base32
6455 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6456 (build-system gnu-build-system)
6457 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6458 (synopsis "Extensions for the Eye of GNOME image viewer")
6459 (native-inputs
6460 `(("pkg-config" ,pkg-config)
6461 ("gettext" ,gettext-minimal)))
6462 (inputs
6463 `(("eog" ,eog)
6464 ("glib" ,glib)
6465 ("gtk+" ,gtk+)
6466 ("libpeas" ,libpeas)
6467 ("libexif" ,libexif)
6468 ("libchamplain" ,libchamplain)))
6469 (description
6470 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6471 notably:
6472
6473 @itemize
6474 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6475 @item @dfn{Map}, which displays a map of where the picture was taken on the
6476 side panel;
6477 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6478 @end itemize\n")
6479
6480 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6481 ;; long suspicious byte stream that goes to a
6482 ;; ".gresource.eog_postasa_plugin" ELF section.
6483 (license license:gpl2+)))
6484
6485 (define-public libgudev
6486 (package
6487 (name "libgudev")
6488 (version "236")
6489 (source (origin
6490 (method url-fetch)
6491 (uri (string-append "mirror://gnome/sources/" name "/"
6492 version "/" name "-" version ".tar.xz"))
6493 (sha256
6494 (base32
6495 "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
6496 (build-system meson-build-system)
6497 (native-inputs
6498 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6499 ("gobject-introspection" ,gobject-introspection)
6500 ("pkg-config" ,pkg-config)))
6501 (propagated-inputs
6502 `(("glib" ,glib) ; in Requires of gudev-1.0.pc
6503 ("eudev" ,eudev))) ; in Requires.private of gudev-1.0.pc
6504 (inputs
6505 `(("udev" ,eudev)))
6506 (home-page "https://wiki.gnome.org/Projects/libgudev")
6507 (synopsis "GObject bindings for libudev")
6508 (description
6509 "This library provides GObject bindings for libudev. It was originally
6510 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6511 (license license:lgpl2.1+)))
6512
6513 (define-public gvfs
6514 (package
6515 (name "gvfs")
6516 (version "1.40.2")
6517 (source (origin
6518 (method url-fetch)
6519 (uri (string-append "mirror://gnome/sources/gvfs/"
6520 (version-major+minor version) "/"
6521 "gvfs-" version ".tar.xz"))
6522 (sha256
6523 (base32
6524 "07lpcfric3h0302n9b1pwa38mjb76r9s98kg2867y2d1qvzfivxx"))
6525 ;; This patch may be removed when upgrading to version 1.46.x.
6526 (patches
6527 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6528 (build-system meson-build-system)
6529 (arguments
6530 '(#:glib-or-gtk? #t
6531 #:configure-flags
6532 (list "-Dsystemduserunitdir=no"
6533 "-Dtmpfilesdir=no"
6534 ;; Otherwise, the RUNPATH will lack the final path component.
6535 (string-append "-Dc_link_args=-Wl,-rpath="
6536 (assoc-ref %outputs "out") "/lib/gvfs"))))
6537 (native-inputs
6538 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6539 ("gettext" ,gettext-minimal)
6540 ("gtk-doc" ,gtk-doc/stable)
6541 ("pkg-config" ,pkg-config)
6542 ("xsltproc" ,libxslt)))
6543 (inputs
6544 `(("avahi" ,avahi)
6545 ("docbook-xml" ,docbook-xml-4.2)
6546 ("docbook-xsl" ,docbook-xsl)
6547 ("dbus" ,dbus)
6548 ("elogind" ,elogind)
6549 ("fuse" ,fuse)
6550 ("gcr" ,gcr)
6551 ("glib" ,glib)
6552 ("gnome-online-accounts" ,gnome-online-accounts)
6553 ("libarchive" ,libarchive)
6554 ("libbluray" ,libbluray)
6555 ("libcap" ,libcap)
6556 ("libcdio-paranoia" ,libcdio-paranoia)
6557 ("libgcrypt" ,libgcrypt)
6558 ("libgdata" ,libgdata)
6559 ("libgphoto2" ,libgphoto2)
6560 ("libgudev" ,libgudev)
6561 ("libimobiledevice" ,libimobiledevice)
6562 ("libmtp" ,libmtp)
6563 ("libnfs" ,libnfs)
6564 ("libsecret" ,libsecret)
6565 ("libsmbclient" ,samba)
6566 ("libsoup" ,libsoup)
6567 ("libxml2" ,libxml2)
6568 ("openssh" ,openssh)
6569 ("polkit" ,polkit)
6570 ("udisks" ,udisks)))
6571 ;; CVE-2019-{12447,12448,12449} are fixed in the 1.40.2 release.
6572 (properties '((lint-hidden-cve . ("CVE-2019-12447"
6573 "CVE-2019-12448"
6574 "CVE-2019-12449"))))
6575 (home-page "https://wiki.gnome.org/gvfs/")
6576 (synopsis "Userspace virtual file system for GIO")
6577 (description
6578 "GVFS is a userspace virtual file system designed to work with the I/O
6579 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6580 to all applications using the GIO API. It also supports exposing the GVFS
6581 mounts to non-GIO applications using FUSE.
6582
6583 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6584 DAV, and others.")
6585 (license license:lgpl2.0+)))
6586
6587 (define-public gusb
6588 (package
6589 (name "gusb")
6590 (version "0.3.5")
6591 (source (origin
6592 (method git-fetch)
6593 (uri (git-reference
6594 (url "https://github.com/hughsie/libgusb")
6595 (commit version)))
6596 (file-name (git-file-name name version))
6597 (sha256
6598 (base32
6599 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6600 (build-system meson-build-system)
6601 (native-inputs
6602 `(("gobject-introspection" ,gobject-introspection)
6603 ("pkg-config" ,pkg-config)
6604 ("vala" ,vala)
6605 ("gtk-doc" ,gtk-doc/stable)))
6606 (propagated-inputs
6607 ;; Both of these are required by gusb.pc.
6608 `(("glib" ,glib)
6609 ("libusb" ,libusb)))
6610 (arguments
6611 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6612 (home-page "https://github.com/hughsie/libgusb")
6613 (synopsis "GLib binding for libusb1")
6614 (description
6615 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6616 asynchronous control, bulk and interrupt transfers with proper cancellation
6617 and integration into a mainloop. This makes it easy to integrate low level
6618 USB transfers with your high-level application or system daemon.")
6619 (license license:lgpl2.1+)))
6620
6621 (define-public simple-scan
6622 (package
6623 (name "simple-scan")
6624 (version "3.38.2")
6625 (source
6626 (origin
6627 (method url-fetch)
6628 (uri (string-append "mirror://gnome/sources/simple-scan/"
6629 (version-major+minor version) "/"
6630 "simple-scan-" version ".tar.xz"))
6631 (sha256
6632 (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8"))))
6633 (build-system meson-build-system)
6634 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6635 (arguments
6636 '(#:glib-or-gtk? #t))
6637 (inputs
6638 `(("gtk" ,gtk+)
6639 ("zlib" ,zlib)
6640 ("cairo" ,cairo)
6641 ("colord" ,colord)
6642 ("gdk-pixbuf" ,gdk-pixbuf)
6643 ("gusb" ,gusb)
6644 ("libsane" ,sane-backends)))
6645 (native-inputs
6646 `(("gettext" ,gettext-minimal)
6647 ("itstool" ,itstool)
6648 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6649 ("pkg-config" ,pkg-config)
6650 ("vala" ,vala)
6651 ("xmllint" ,libxml2)))
6652 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6653 (synopsis "Document and image scanner")
6654 (description
6655 "Document Scanner is an easy-to-use application that lets you connect your
6656 scanner and quickly capture images and documents in an appropriate format. It
6657 supports any scanner for which a suitable SANE driver is available, which is
6658 almost all of them.")
6659 (license license:gpl3+)))
6660
6661 (define-public eolie
6662 (package
6663 (name "eolie")
6664 (version "0.9.101")
6665 (source (origin
6666 (method url-fetch)
6667 (uri (string-append "https://adishatz.org/eolie/eolie-"
6668 version ".tar.xz"))
6669 (sha256
6670 (base32
6671 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6672 (build-system meson-build-system)
6673 (arguments
6674 `(#:glib-or-gtk? #t
6675 #:phases
6676 (modify-phases %standard-phases
6677 (add-after 'unpack 'skip-gtk-update-icon-cache
6678 ;; Don't create 'icon-theme.cache'.
6679 (lambda _
6680 (substitute* "meson_post_install.py"
6681 (("gtk-update-icon-cache") "true"))
6682 #t))
6683 (add-after 'wrap 'wrap-more
6684 (lambda* (#:key inputs outputs #:allow-other-keys)
6685 (let* ((out (assoc-ref outputs "out"))
6686 ;; These libraries must be on LD_LIBRARY_PATH.
6687 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6688 "atk" "gtk+" "gsettings-desktop-schemas"
6689 "gobject-introspection"))
6690 (path (string-join
6691 (map (lambda (lib)
6692 (string-append (assoc-ref inputs lib) "/lib"))
6693 libs)
6694 ":")))
6695 (wrap-program (string-append out "/bin/eolie")
6696 `("LD_LIBRARY_PATH" ":" prefix (,path))
6697 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6698 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6699 #t)))))
6700 (native-inputs
6701 `(("intltool" ,intltool)
6702 ("itstool" ,itstool)
6703 ("pkg-config" ,pkg-config)
6704 ("python" ,python)
6705 ("glib:bin" ,glib "bin")))
6706 (inputs
6707 `(("gobject-introspection" ,gobject-introspection)
6708 ("glib-networking" ,glib-networking)
6709 ("cairo" ,cairo)
6710 ("gtk+" ,gtk+)
6711 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6712 ("python" ,python-wrapper)
6713 ("python-dateutil" ,python-dateutil)
6714 ("python-pyfxa" ,python-pyfxa)
6715 ("python-pygobject" ,python-pygobject)
6716 ("python-pycairo" ,python-pycairo)
6717 ("python-pycrypto" ,python-pycrypto)
6718 ("libhandy" ,libhandy)
6719 ("libsecret" ,libsecret)
6720 ("gtkspell3" ,gtkspell3)
6721 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6722 ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
6723 ("webkitgtk" ,webkitgtk)))
6724 (home-page "https://wiki.gnome.org/Apps/Eolie")
6725 (synopsis "Web browser for GNOME")
6726 (description
6727 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6728 a secret password store, an adblocker, and a modern UI.")
6729 (license license:gpl3+)))
6730
6731 (define-public epiphany
6732 (package
6733 (name "epiphany")
6734 (version "3.34.4")
6735 (source (origin
6736 (method url-fetch)
6737 (uri (string-append "mirror://gnome/sources/epiphany/"
6738 (version-major+minor version) "/"
6739 "epiphany-" version ".tar.xz"))
6740 (sha256
6741 (base32
6742 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6743
6744 (build-system meson-build-system)
6745 (arguments
6746 '(#:glib-or-gtk? #t
6747 #:phases
6748 (modify-phases %standard-phases
6749 (add-after 'unpack 'skip-gtk-update-icon-cache
6750 ;; Don't create 'icon-theme.cache'.
6751 (lambda _
6752 (substitute* "post_install.py"
6753 (("gtk-update-icon-cache") "true"))
6754 #t))
6755 (add-after 'unpack 'disable-failing-tests
6756 (lambda _
6757 (substitute* "tests/meson.build"
6758 ;; embed_shell fails, because webkitgtk apparently no longer supports
6759 ;; overriding the ftp schema
6760 ;; web_app_utils fails due to missing network access
6761 (("(embed_shell|web_app_utils)_test,")
6762 "find_program('sh'), args: ['-c', 'exit 77'],"))
6763 #t))
6764 (add-before 'check 'pre-check
6765 (lambda _
6766 ;; Tests require a running X server.
6767 (system "Xvfb :1 &")
6768 (setenv "DISPLAY" ":1")
6769 #t)))
6770 #:configure-flags
6771 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6772 (list (string-append "-Dc_link_args=-Wl,-rpath="
6773 (assoc-ref %outputs "out") "/lib/epiphany"))))
6774 (propagated-inputs
6775 `(("dconf" ,dconf)))
6776 (native-inputs
6777 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6778 ("glib:bin" ,glib "bin") ; for glib-mkenums
6779 ("intltool" ,intltool)
6780 ("itstool" ,itstool)
6781 ("pkg-config" ,pkg-config)
6782 ("xmllint" ,libxml2)
6783 ("xorg-server" ,xorg-server-for-tests)))
6784 (inputs
6785 `(("avahi" ,avahi)
6786 ("gcr" ,gcr)
6787 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6788 ("glib-networking" ,glib-networking)
6789 ("gnome-desktop" ,gnome-desktop)
6790 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6791 ("json-glib" ,json-glib)
6792 ("iso-codes" ,iso-codes)
6793 ("libdazzle" ,libdazzle)
6794 ("libnotify" ,libnotify)
6795 ("libsecret" ,libsecret)
6796 ("libxslt" ,libxslt)
6797 ("nettle" ,nettle) ; for hogweed
6798 ("sqlite" ,sqlite)
6799 ("webkitgtk" ,webkitgtk)))
6800 (home-page "https://wiki.gnome.org/Apps/Web")
6801 (synopsis "GNOME web browser")
6802 (description
6803 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6804 principles are simplicity and standards compliance.")
6805 (license license:gpl2+)))
6806
6807 (define-public d-feet
6808 (package
6809 (name "d-feet")
6810 (version "0.3.14")
6811 (source (origin
6812 (method url-fetch)
6813 (uri (string-append "mirror://gnome/sources/" name "/"
6814 (version-major+minor version) "/"
6815 name "-" version ".tar.xz"))
6816 (sha256
6817 (base32
6818 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6819 (build-system glib-or-gtk-build-system)
6820 (arguments
6821 '(#:out-of-source? #f ; tests need to run in the source directory.
6822 #:phases
6823 (modify-phases %standard-phases
6824 (add-before
6825 'check 'pre-check
6826 (lambda _
6827 ;; The test suite requires a running X server.
6828 (system "Xvfb :1 &")
6829 (setenv "DISPLAY" ":1")
6830 ;; Don't fail on missing '/etc/machine-id'.
6831 (setenv "DBUS_FATAL_WARNINGS" "0")
6832 ;; tests.py and window.py don't meet E402:
6833 ;; E402 module level import not at top of file
6834 (substitute* "src/tests/Makefile"
6835 (("--ignore=E123") "--ignore=E123,E402"))
6836 #t))
6837 (add-after
6838 'install 'wrap-program
6839 (lambda* (#:key outputs #:allow-other-keys)
6840 (let ((prog (string-append (assoc-ref outputs "out")
6841 "/bin/d-feet")))
6842 (wrap-program prog
6843 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6844 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6845 #t))))))
6846 (native-inputs
6847 `(("intltool" ,intltool)
6848 ("itstool" ,itstool)
6849 ("pkg-config" ,pkg-config)
6850 ("python-pep8" ,python-pep8)
6851 ("xmllint" ,libxml2)
6852 ("xorg-server" ,xorg-server-for-tests)))
6853 (inputs
6854 `(("gobject-introspection" ,gobject-introspection)
6855 ("gtk+" ,gtk+)
6856 ("python" ,python-wrapper)
6857 ("hicolor-icon-theme" ,hicolor-icon-theme)
6858 ("python-pygobject" ,python-pygobject)))
6859 (home-page "https://wiki.gnome.org/Apps/DFeet")
6860 (synopsis "D-Bus debugger")
6861 (description
6862 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6863 of running programs and invoke methods on those interfaces.")
6864 (license license:gpl2+)))
6865
6866 (define-public yelp-xsl
6867 (package
6868 (name "yelp-xsl")
6869 (version "3.34.2")
6870 (source
6871 (origin
6872 (method url-fetch)
6873 (uri
6874 (string-append "mirror://gnome/sources/" name "/"
6875 (version-major+minor version) "/"
6876 name "-" version ".tar.xz"))
6877 (sha256
6878 (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6879 (build-system gnu-build-system)
6880 (native-inputs
6881 `(("gettext-minimal" ,gettext-minimal)
6882 ("itstool" ,itstool)
6883 ("xmllint" ,libxml2)))
6884 (synopsis "XSL stylesheets for Yelp")
6885 (description "Yelp-XSL is a collection of programs and data files to help
6886 you build, maintain, and distribute documentation. It provides XSLT stylesheets
6887 that can be built upon for help viewers and publishing systems. These
6888 stylesheets output JavaScript and CSS content, and reference images
6889 provided by yelp-xsl. It also redistributes copies of the jQuery and
6890 jQuery.Syntax JavaScript libraries.")
6891 (home-page "https://wiki.gnome.org/Apps/Yelp")
6892 (license
6893 (list
6894 ;; XSLT
6895 license:gpl2+
6896 ;; Images
6897 license:lgpl2.1+
6898 ;; JavaScript
6899 license:expat))))
6900
6901 (define-public yelp
6902 (package
6903 (name "yelp")
6904 (version "3.32.2")
6905 (source (origin
6906 (method url-fetch)
6907 (uri (string-append "mirror://gnome/sources/" name "/"
6908 (version-major+minor version) "/"
6909 name "-" version ".tar.xz"))
6910 (sha256
6911 (base32
6912 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6913 (build-system glib-or-gtk-build-system)
6914 (native-inputs
6915 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6916 ("intltool" ,intltool)
6917 ("itstool" ,itstool)
6918 ("pkg-config" ,pkg-config)))
6919 (propagated-inputs
6920 `(("dconf" ,dconf)))
6921 (inputs
6922 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6923 ("libxslt" ,libxslt)
6924 ("sqlite" ,sqlite)
6925 ("webkitgtk" ,webkitgtk)
6926 ("yelp-xsl" ,yelp-xsl)))
6927 (home-page "https://wiki.gnome.org/Apps/Yelp")
6928 (synopsis "GNOME help browser")
6929 (description
6930 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6931 man, info, and HTML documents. It can locate documents according to the
6932 freedesktop.org help system specification.")
6933 (license license:gpl2+)))
6934
6935 (define-public yelp-tools
6936 (package
6937 (name "yelp-tools")
6938 (version "3.32.2")
6939 (source
6940 (origin
6941 (method url-fetch)
6942 (uri
6943 (string-append "mirror://gnome/sources/" name "/"
6944 (version-major+minor version) "/"
6945 name "-" version ".tar.xz"))
6946 (sha256
6947 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6948 (build-system gnu-build-system)
6949 (native-inputs
6950 `(("pkg-config" ,pkg-config)))
6951 (inputs
6952 `(("yelp-xsl" ,yelp-xsl)))
6953 (propagated-inputs
6954 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6955 `(("itstool" ,itstool)
6956 ("xmllint" ,libxml2)
6957 ("xsltproc" ,libxslt)))
6958 (synopsis "Yelp documentation tools")
6959 (description
6960 "Yelp-tools is a collection of scripts and build utilities to help create,
6961 manage, and publish documentation for Yelp and the web. Most of the heavy
6962 lifting is done by packages like yelp-xsl and itstool. This package just
6963 wraps things up in a developer-friendly way.")
6964 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6965 (license license:gpl2+)))
6966
6967 (define-public libgee
6968 (package
6969 (name "libgee")
6970 (version "0.20.3")
6971 (source (origin
6972 (method url-fetch)
6973 (uri (string-append "mirror://gnome/sources/libgee/"
6974 (version-major+minor version) "/"
6975 "libgee-" version ".tar.xz"))
6976 (sha256
6977 (base32
6978 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6979 (build-system gnu-build-system)
6980 (arguments
6981 `(#:phases
6982 (modify-phases %standard-phases
6983 (add-after 'unpack 'fix-introspection-install-dir
6984 (lambda* (#:key outputs #:allow-other-keys)
6985 (let ((out (assoc-ref outputs "out")))
6986 (substitute* "gee/Makefile.in"
6987 (("@INTROSPECTION_GIRDIR@")
6988 (string-append out "/share/gir-1.0/"))
6989 (("@INTROSPECTION_TYPELIBDIR@")
6990 (string-append out "/lib/girepository-1.0/")))))))))
6991 (native-inputs
6992 `(("glib" ,glib "bin")
6993 ("pkg-config" ,pkg-config)))
6994 (inputs
6995 `(("glib" ,glib)
6996 ("gobject-introspection" ,gobject-introspection)))
6997 (home-page "https://wiki.gnome.org/Projects/Libgee")
6998 (synopsis "GObject collection library")
6999 (description
7000 "Libgee is a utility library providing GObject-based interfaces and
7001 classes for commonly used data structures.")
7002 (license license:lgpl2.1+)))
7003
7004 (define-public gexiv2
7005 (package
7006 (name "gexiv2")
7007 (version "0.12.2")
7008 (source (origin
7009 (method url-fetch)
7010 (uri (string-append "mirror://gnome/sources/" name "/"
7011 (version-major+minor version) "/"
7012 name "-" version ".tar.xz"))
7013 (sha256
7014 (base32
7015 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
7016 (build-system meson-build-system)
7017 (native-inputs
7018 `(("gcr" ,gcr)
7019 ("glib" ,glib "bin")
7020 ("pkg-config" ,pkg-config)
7021 ("vala" ,vala)))
7022 (propagated-inputs
7023 ;; Listed in "Requires" section of gexiv2.pc
7024 `(("exiv2" ,exiv2)))
7025 (inputs
7026 `(("glib" ,glib)
7027 ("gobject-introspection" ,gobject-introspection)))
7028 (home-page "https://wiki.gnome.org/Projects/gexiv2")
7029 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
7030 (description
7031 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
7032 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
7033 metadata in photo and video files of various formats.")
7034 (license license:gpl2+)))
7035
7036 (define-public shotwell
7037 (package
7038 (name "shotwell")
7039 (version "0.30.12")
7040 (source (origin
7041 (method url-fetch)
7042 (uri (string-append "mirror://gnome/sources/shotwell/"
7043 (version-major+minor version) "/"
7044 "shotwell-" version ".tar.xz"))
7045 (sha256
7046 (base32
7047 "1h5crjq59lqi8f8mdkadzi8pc3i9i2ik4lsx2nrhzq486fzdfhw6"))))
7048 (build-system meson-build-system)
7049 (arguments
7050 '(#:glib-or-gtk? #t
7051 #:phases
7052 (modify-phases %standard-phases
7053 (add-after 'unpack 'skip-gtk-update-icon-cache
7054 (lambda _
7055 (substitute* "build-aux/meson/postinstall.py"
7056 (("gtk-update-icon-cache") (which "true"))
7057 (("update-desktop-database") (which "true")))
7058 #t)))))
7059 (propagated-inputs
7060 `(("dconf" ,dconf)))
7061 (native-inputs
7062 `(("gettext" ,gettext-minimal)
7063 ("glib:bin" ,glib "bin")
7064 ("itstool" ,itstool)
7065 ("pkg-config" ,pkg-config)
7066 ("vala" ,vala)))
7067 (inputs
7068 `(("gcr" ,gcr)
7069 ("gexiv2" ,gexiv2)
7070 ("gst-plugins-base" ,gst-plugins-base)
7071 ("gstreamer" ,gstreamer)
7072 ("json-glib" ,json-glib)
7073 ("libgdata" ,libgdata)
7074 ("libgee" ,libgee)
7075 ("libgphoto2" ,libgphoto2)
7076 ("libgudev" ,libgudev)
7077 ("libraw" ,libraw)
7078 ("libsoup" ,libsoup)
7079 ("libxml2" ,libxml2)
7080 ("sqlite" ,sqlite)
7081 ("webkitgtk" ,webkitgtk)))
7082 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7083 (synopsis "Photo manager for GNOME 3")
7084 (description
7085 "Shotwell is a digital photo manager designed for the GNOME desktop
7086 environment. It allows you to import photos from disk or camera, organize
7087 them by keywords and events, view them in full-window or fullscreen mode, and
7088 share them with others via social networking and more.")
7089 (license license:lgpl2.1+)))
7090
7091 (define-public file-roller
7092 (package
7093 (name "file-roller")
7094 (version "3.38.0")
7095 (source (origin
7096 (method url-fetch)
7097 (uri (string-append "mirror://gnome/sources/file-roller/"
7098 (version-major+minor version) "/"
7099 "file-roller-" version ".tar.xz"))
7100 (sha256
7101 (base32
7102 "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj"))))
7103 (build-system meson-build-system)
7104 (native-inputs
7105 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7106 ("intltool" ,intltool)
7107 ("itstool" ,itstool)
7108 ("pkg-config" ,pkg-config)
7109 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7110 ("glib:bin" ,glib "bin")))
7111 ;; TODO: Add libnautilus.
7112 (inputs
7113 `(("gtk+" ,gtk+)
7114 ("gdk-pixbuf" ,gdk-pixbuf)
7115 ("json-glib" ,json-glib)
7116 ("libarchive" ,libarchive)
7117 ("libnotify" ,libnotify)
7118 ("nettle" ,nettle)
7119 ("libxml2" ,libxml2)))
7120 (synopsis "Graphical archive manager for GNOME")
7121 (description "File Roller is an archive manager for the GNOME desktop
7122 environment that allows users to view, unpack, and create compressed archives
7123 such as gzip tarballs.")
7124 (home-page "http://fileroller.sourceforge.net/")
7125 (license license:gpl2+)))
7126
7127 (define-public gnome-session
7128 (package
7129 (name "gnome-session")
7130 (version "3.34.2")
7131 (source (origin
7132 (method url-fetch)
7133 (uri (string-append "mirror://gnome/sources/" name "/"
7134 (version-major+minor version) "/"
7135 name "-" version ".tar.xz"))
7136 (sha256
7137 (base32
7138 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
7139 (arguments
7140 '(#:glib-or-gtk? #t
7141 #:phases
7142 (modify-phases %standard-phases
7143 (add-before 'configure 'pre-configure
7144 (lambda* (#:key outputs #:allow-other-keys)
7145 ;; Use elogind instead of systemd.
7146 (substitute* "meson.build"
7147 (("libsystemd-login") "libelogind")
7148 (("and libsystemd_daemon_dep.found.*") ","))
7149 (substitute* "gnome-session/gsm-systemd.c"
7150 (("#include <systemd/sd-login.h>")
7151 "#include <elogind/sd-login.h>"))
7152 ;; Remove uses of the systemd daemon.
7153 (substitute* "gnome-session/gsm-autostart-app.c"
7154 (("#ifdef HAVE_SYSTEMD") "#if 0"))
7155 #t))
7156 (add-after 'install 'wrap-gnome-session
7157 (lambda* (#:key inputs outputs #:allow-other-keys)
7158 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7159 (let ((glib (assoc-ref inputs "glib:bin"))
7160 (out (assoc-ref outputs "out")))
7161 (wrap-program (string-append out "/bin/gnome-session")
7162 `("PATH" ":" prefix (,(string-append glib "/bin"))))
7163 #t))))
7164
7165 #:configure-flags
7166 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7167 "-Dman=false" ; FIXME: disabled because of docbook validation error
7168 "-Dsystemd_journal=false")))
7169 (build-system meson-build-system)
7170 (native-inputs
7171 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7172 ("pkg-config" ,pkg-config)
7173 ("intltool" ,intltool)
7174 ("xsltproc" ,libxslt)
7175 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
7176 ("docbook-xsl" ,docbook-xsl)
7177 ("docbook-xml" ,docbook-xml)
7178 ("xmlto" ,xmlto)))
7179 (inputs
7180 `(("elogind" ,elogind)
7181 ("gnome-desktop" ,gnome-desktop)
7182 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7183 ("gtk+" ,gtk+)
7184 ("json-glib" ,json-glib)
7185 ("libsm" ,libsm)
7186 ("libxcomposite" ,libxcomposite)
7187 ("libxtst" ,libxtst)
7188 ("mesa" ,mesa)
7189 ("upower" ,upower)
7190 ("xtrans" ,xtrans)))
7191 (synopsis "Session manager for GNOME")
7192 (description
7193 "This package contains the GNOME session manager, as well as a
7194 configuration program to choose applications starting on login.")
7195 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7196 (license license:gpl2+)))
7197
7198 (define-public gjs
7199 (package
7200 (name "gjs")
7201 (version "1.58.3")
7202 (source (origin
7203 (method url-fetch)
7204 (uri (string-append "mirror://gnome/sources/" name "/"
7205 (version-major+minor version) "/"
7206 name "-" version ".tar.xz"))
7207 (sha256
7208 (base32
7209 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
7210 (build-system gnu-build-system)
7211 (arguments
7212 '(#:phases
7213 (modify-phases %standard-phases
7214 (add-before
7215 'check 'pre-check
7216 (lambda _
7217 ;; The test suite requires a running X server.
7218 (system "Xvfb :1 &")
7219 (setenv "DISPLAY" ":1")
7220
7221 ;; For the missing /etc/machine-id.
7222 (setenv "DBUS_FATAL_WARNINGS" "0")
7223
7224 ;; Our mozjs-38 package does not compile the required Intl API
7225 ;; support for these failing tests.
7226 (substitute* "installed-tests/js/testLocale.js"
7227 ((".*toBeDefined.*") "")
7228 ((".*expect\\(datestr\\).*") ""))
7229 (substitute* "installed-tests/scripts/testCommandLine.sh"
7230 (("Valentín") "")
7231 (("☭") ""))
7232 #t)))))
7233 (native-inputs
7234 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
7235 ("pkg-config" ,pkg-config)
7236 ("xmllint" ,libxml2)
7237 ;; For testing
7238 ("dbus-launch" ,dbus)
7239 ("dconf" ,dconf) ; required to properly store settings
7240 ("uuidgen" ,util-linux)
7241 ("xvfb" ,xorg-server-for-tests)))
7242 (propagated-inputs
7243 ;; These are all in the Requires.private field of gjs-1.0.pc.
7244 `(("cairo" ,cairo)
7245 ("gobject-introspection" ,gobject-introspection)
7246 ("mozjs" ,mozjs-60)))
7247 (inputs
7248 `(("gtk+" ,gtk+)
7249 ("readline" ,readline)))
7250 (synopsis "Javascript bindings for GNOME")
7251 (home-page "https://live.gnome.org/Gjs")
7252 (description
7253 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7254 javascript engine and the GObject introspection framework.")
7255 (license license:gpl2+)))
7256
7257 (define-public gedit
7258 (package
7259 (name "gedit")
7260 (version "3.34.1")
7261 (source (origin
7262 (method url-fetch)
7263 (uri (string-append "mirror://gnome/sources/" name "/"
7264 (version-major+minor version) "/"
7265 name "-" version ".tar.xz"))
7266 (sha256
7267 (base32
7268 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7269 (build-system meson-build-system)
7270 (arguments
7271 `(#:glib-or-gtk? #t
7272 #:configure-flags
7273 ;; Otherwise, the RUNPATH will lack the final path component.
7274 (list (string-append "-Dc_link_args=-Wl,-rpath="
7275 (assoc-ref %outputs "out") "/lib/gedit"))
7276
7277 ;; XXX: Generated .h files are sometimes used before being built.
7278 #:parallel-build? #f
7279
7280 #:phases
7281 (modify-phases %standard-phases
7282 (add-after 'unpack 'skip-gtk-update-icon-cache
7283 ;; Don't create 'icon-theme.cache'.
7284 (lambda _
7285 (substitute* "build-aux/meson/post_install.py"
7286 (("gtk-update-icon-cache") (which "true")))
7287 #t))
7288 (add-after 'unpack 'patch-libgd-fetch
7289 (lambda* (#:key inputs #:allow-other-keys)
7290 (let ((libgd (assoc-ref inputs "libgd")))
7291 ;; Calling git is unnecessary because libgd is fetched as a
7292 ;; native input to this package.
7293 (substitute* "meson.build"
7294 ((".*git.*") ""))
7295 (copy-recursively libgd "subprojects/libgd")
7296 #t)))
7297 (add-after 'install 'wrap-gedit
7298 (lambda* (#:key inputs outputs #:allow-other-keys)
7299 (let ((out (assoc-ref outputs "out"))
7300 (gtksourceview (assoc-ref inputs "gtksourceview"))
7301 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7302 (python-path (getenv "PYTHONPATH")))
7303 (wrap-program (string-append out "/bin/gedit")
7304 ;; For plugins.
7305 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7306 `("PYTHONPATH" ":" prefix (,python-path))
7307 ;; For language-specs.
7308 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7309 "/share")))))
7310 #t)))))
7311 (propagated-inputs
7312 `(("dconf" ,dconf)))
7313 (native-inputs
7314 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7315 ("intltool" ,intltool)
7316 ("itstool" ,itstool)
7317 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7318 ("gobject-introspection" ,gobject-introspection)
7319 ("libgd"
7320 ,(origin
7321 (method git-fetch)
7322 (uri (git-reference
7323 (url "https://gitlab.gnome.org/GNOME/libgd")
7324 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7325 (file-name (git-file-name "libgd" version))
7326 (sha256
7327 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7328 ("pkg-config" ,pkg-config)))
7329 (inputs
7330 `(("glib" ,glib)
7331 ("gspell" ,gspell)
7332 ("gtk+" ,gtk+)
7333 ("gtksourceview" ,gtksourceview)
7334 ("libpeas" ,libpeas)
7335 ("libxml2" ,libxml2)
7336 ("iso-codes" ,iso-codes)
7337 ("python-pygobject" ,python-pygobject)
7338 ("python" ,python)
7339 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7340 ("libx11" ,libx11)
7341 ("vala" ,vala)
7342 ("adwaita-icon-theme" ,adwaita-icon-theme)
7343 ("libsoup" ,libsoup)
7344 ("gnome-desktop" ,gnome-desktop)))
7345 (home-page "https://wiki.gnome.org/Apps/Gedit")
7346 (synopsis "GNOME text editor")
7347 (description "While aiming at simplicity and ease of use, gedit is a
7348 powerful general purpose text editor.")
7349 (license license:gpl2+)))
7350
7351 (define-public zenity
7352 (package
7353 (name "zenity")
7354 (version "3.32.0")
7355 (source (origin
7356 (method url-fetch)
7357 (uri (string-append "mirror://gnome/sources/zenity/"
7358 (version-major+minor version) "/"
7359 "zenity-" version ".tar.xz"))
7360 (sha256
7361 (base32
7362 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7363 (build-system gnu-build-system)
7364 (native-inputs
7365 `(("gettext" ,gettext-minimal)
7366 ("itstool" ,itstool)
7367 ("pkg-config" ,pkg-config)))
7368 (inputs
7369 `(("libnotify" ,libnotify)
7370 ("webkitgtk" ,webkitgtk)))
7371 (synopsis "Display graphical dialog boxes from shell scripts")
7372 (home-page "https://www.gnome.org")
7373 (description
7374 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7375 to display dialog boxes from the commandline and shell scripts.")
7376 (license license:lgpl2.0+)))
7377
7378 (define-public mutter
7379 (package
7380 (name "mutter")
7381 (version "3.34.2")
7382 (source (origin
7383 (method url-fetch)
7384 (uri (string-append "mirror://gnome/sources/" name "/"
7385 (version-major+minor version) "/"
7386 name "-" version ".tar.xz"))
7387 (sha256
7388 (base32
7389 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
7390 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7391 ;; versions of cogl and clutter. As a result, many of the inputs,
7392 ;; propagated-inputs, and configure flags used in cogl and clutter are
7393 ;; needed here as well.
7394 (build-system meson-build-system)
7395 (arguments
7396 '(;; XXX: All mutter tests fail with the following error:
7397 ;; Settings schema 'org.gnome.mutter' is not installed
7398 #:tests? #f
7399 #:glib-or-gtk? #t
7400 #:configure-flags
7401 ;; TODO: Enable profiler when Sysprof is packaged.
7402 (list "-Dprofiler=false"
7403 ;; Otherwise, the RUNPATH will lack the final path component.
7404 (string-append "-Dc_link_args=-Wl,-rpath="
7405 (assoc-ref %outputs "out") "/lib:"
7406 (assoc-ref %outputs "out") "/lib/mutter-5")
7407
7408 ;; The following flags are needed for the bundled clutter
7409 (string-append "-Dxwayland_path="
7410 (assoc-ref %build-inputs "xorg-server-xwayland")
7411 "/bin/Xwayland")
7412
7413 ;; the remaining flags are needed for the bundled cogl
7414 (string-append "-Dopengl_libname="
7415 (assoc-ref %build-inputs "mesa")
7416 "/lib/libGL.so"))
7417 #:phases (modify-phases %standard-phases
7418 (add-after 'unpack 'fix-build-with-mesa-20
7419 (lambda _
7420 ;; Mimic upstream commit a444a4c5f58ea516ad for
7421 ;; compatibility with Mesa 20. Remove for 3.36.
7422 (substitute* '("src/backends/meta-egl-ext.h"
7423 "src/backends/meta-egl.c"
7424 "src/backends/meta-egl.h")
7425 (("#include <EGL/eglext\\.h>" all)
7426 (string-append all "\n#include <EGL/eglmesaext.h>")))
7427 (substitute* "cogl/cogl/meson.build"
7428 (("#include <EGL/eglext\\.h>" all)
7429 (string-append all "\\n#include <EGL/eglmesaext.h>")))
7430 #t)))))
7431 (native-inputs
7432 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7433 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7434 ("gobject-introspection" ,gobject-introspection)
7435 ("intltool" ,intltool)
7436 ("pkg-config" ,pkg-config)
7437 ("xorg-server" ,xorg-server-for-tests)
7438 ;; For git build
7439 ("autoconf" ,autoconf)
7440 ("automake" ,automake)
7441 ("libtool" ,libtool)))
7442 (propagated-inputs
7443 `(;; libmutter.pc refers to these:
7444 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7445 ("gtk+" ,gtk+)
7446 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7447 ("atk" ,atk)
7448 ("cairo" ,cairo)
7449 ("gdk-pixbuf" ,gdk-pixbuf)
7450 ("glib" ,glib)
7451 ("json-glib" ,json-glib)
7452 ("libinput" ,libinput)
7453 ("libx11" ,libx11)
7454 ("libxcomposite" ,libxcomposite)
7455 ("libxdamage" ,libxdamage)
7456 ("libxext" ,libxext)
7457 ("libxfixes" ,libxfixes)
7458 ("libxkbcommon" ,libxkbcommon)
7459 ("libxrandr" ,libxrandr)
7460 ("mesa" ,mesa)
7461 ("pango" ,pango)
7462 ("udev" ,eudev)
7463 ("xinput" ,xinput)))
7464 (inputs
7465 `(("elogind" ,elogind)
7466 ("gnome-desktop" ,gnome-desktop)
7467 ("gnome-settings-daemon" ,gnome-settings-daemon)
7468 ("libcanberra-gtk" ,libcanberra)
7469 ("libgudev" ,libgudev)
7470 ("libice" ,libice)
7471 ("libsm" ,libsm)
7472 ("libwacom" ,libwacom)
7473 ("libxkbfile" ,libxkbfile)
7474 ("libxrandr" ,libxrandr)
7475 ("libxtst" ,libxtst)
7476 ("pipewire" ,pipewire)
7477 ("startup-notification" ,startup-notification)
7478 ("upower-glib" ,upower)
7479 ("xkeyboard-config" ,xkeyboard-config)
7480 ("xorg-server-xwayland" ,xorg-server-xwayland)
7481 ("zenity" ,zenity)))
7482 (synopsis "Window and compositing manager")
7483 (home-page "https://www.gnome.org")
7484 (description
7485 "Mutter is a window and compositing manager that displays and manages your
7486 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7487 Clutter toolkit with solid window-management logic inherited from the Metacity
7488 window manager.")
7489 (license license:gpl2+)))
7490
7491 (define-public gnome-online-accounts
7492 (package
7493 (name "gnome-online-accounts")
7494 (version "3.36.0")
7495 (source (origin
7496 (method url-fetch)
7497 (uri (string-append "mirror://gnome/sources/" name "/"
7498 (version-major+minor version) "/"
7499 name "-" version ".tar.xz"))
7500 (sha256
7501 (base32
7502 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7503 (outputs '("out" "lib"))
7504 (build-system glib-or-gtk-build-system)
7505 (arguments
7506 `(#:configure-flags
7507 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7508 #:phases
7509 (modify-phases %standard-phases
7510 (add-before 'configure 'patch-libgoa-output
7511 (lambda* (#:key outputs #:allow-other-keys)
7512 (let ((lib (assoc-ref outputs "lib")))
7513 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7514 (("@prefix@") lib)
7515 (("@exec_prefix@") lib)
7516 (("@libdir@") (string-append lib "/lib"))
7517 (("@includedir@") (string-append lib "/include"))
7518 (("@datadir@") (string-append lib "/share")))
7519 ;; Make sure gobject-introspection knows about the output
7520 ;; too (see <https://bugs.gnu.org/36535>).
7521 (setenv "outputs" "out lib")
7522 #t))))))
7523 (native-inputs
7524 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7525 ("gobject-introspection" ,gobject-introspection)
7526 ("intltool" ,intltool)
7527 ("pkg-config" ,pkg-config)
7528 ("vala" ,vala)
7529 ("xsltproc" ,libxslt)))
7530 (propagated-inputs
7531 `(("glib" ,glib) ; required by goa-1.0.pc
7532 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7533 (inputs
7534 `(("docbook-xsl" ,docbook-xsl)
7535 ("json-glib" ,json-glib)
7536 ("libsecret" ,libsecret)
7537 ("rest" ,rest)
7538 ("webkitgtk" ,webkitgtk)))
7539 (synopsis "Single sign-on framework for GNOME")
7540 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7541 (description
7542 "GNOME Online Accounts provides interfaces so that applications and
7543 libraries in GNOME can access the user's online accounts. It has providers for
7544 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7545 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7546 (license license:lgpl2.0+)))
7547
7548 (define-public evolution-data-server
7549 (package
7550 (name "evolution-data-server")
7551 (version "3.34.2")
7552 (source (origin
7553 (method url-fetch)
7554 (uri (string-append "mirror://gnome/sources/" name "/"
7555 (version-major+minor version) "/"
7556 name "-" version ".tar.xz"))
7557 (patches (search-patches "evolution-data-server-locales.patch"
7558 "evolution-data-server-libical-compat.patch"
7559 "evolution-data-server-CVE-2020-14928.patch"
7560 "evolution-data-server-CVE-2020-16117.patch"))
7561 (sha256
7562 (base32
7563 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7564 (build-system cmake-build-system)
7565 (arguments
7566 '(#:configure-flags
7567 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7568 (runpaths (map (lambda (s)
7569 (string-append lib "/evolution-data-server/" s))
7570 '("addressbook-backends" "calendar-backends"
7571 "camel-providers" "credential-modules"
7572 "registry-modules"))))
7573 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7574 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7575 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7576 "-DENABLE_VALA_BINDINGS=ON"
7577 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7578 (string-append lib "/evolution-data-server;")
7579 (string-join runpaths ";"))
7580 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7581 #:phases
7582 (modify-phases %standard-phases
7583 (add-after 'unpack 'disable-failing-tests
7584 (lambda _
7585 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7586 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7587 (delete-file-recursively "tests/book-migration")
7588 (substitute* "tests/CMakeLists.txt"
7589 (("add_subdirectory\\(book-migration\\)") ""))
7590 #t))
7591 (add-after 'unpack 'patch-paths
7592 (lambda _
7593 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7594 "tests/libedata-book/data-test-utils.c"
7595 "tests/libedata-book/test-book-cache-utils.c"
7596 "tests/libedata-cal/test-cal-cache-utils.c")
7597 (("/bin/rm") (which "rm")))
7598 #t))
7599 (add-before 'configure 'dont-override-rpath
7600 (lambda _
7601 (substitute* "CMakeLists.txt"
7602 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7603 ;; Remove it so the configure flag is respected.
7604 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7605 #t)))))
7606 (native-inputs
7607 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7608 ("gobject-introspection" ,gobject-introspection)
7609 ("gperf" ,gperf)
7610 ("intltool" ,intltool)
7611 ("pkg-config" ,pkg-config)
7612 ("vala" ,vala)
7613 ("python" ,python-wrapper)))
7614 (propagated-inputs
7615 ;; These are all in the Requires field of .pc files.
7616 `(("gtk+" ,gtk+)
7617 ("libical" ,libical)
7618 ("libsecret" ,libsecret)
7619 ("libsoup" ,libsoup)
7620 ("nss" ,nss)
7621 ("sqlite" ,sqlite)))
7622 (inputs
7623 `(("bdb" ,bdb)
7624 ("gcr" ,gcr)
7625 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7626 ("json-glib" ,json-glib)
7627 ("libcanberra" ,libcanberra)
7628 ("libgweather" ,libgweather)
7629 ("mit-krb5" ,mit-krb5)
7630 ("openldap" ,openldap)
7631 ("webkitgtk" ,webkitgtk)))
7632 (synopsis "Store address books and calendars")
7633 (home-page "https://wiki.gnome.org/Apps/Evolution")
7634 (description
7635 "This package provides a unified backend for programs that work with
7636 contacts, tasks, and calendar information. It was originally developed for
7637 Evolution (hence the name), but is now used by other packages as well.")
7638 (license license:lgpl2.0)))
7639
7640 (define-public caribou
7641 (package
7642 (name "caribou")
7643 (version "0.4.21")
7644 (source (origin
7645 (method url-fetch)
7646 (uri (string-append "mirror://gnome/sources/" name "/"
7647 (version-major+minor version) "/"
7648 name "-" version ".tar.xz"))
7649 (sha256
7650 (base32
7651 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7652 (build-system glib-or-gtk-build-system)
7653 (arguments
7654 '(#:phases
7655 (modify-phases %standard-phases
7656 (add-before
7657 'build 'pre-build
7658 (lambda* (#:key outputs #:allow-other-keys)
7659 (let ((out (assoc-ref outputs "out")))
7660 ;; Use absolute shared library path in Caribou-1.0.typelib.
7661 (substitute* "libcaribou/Makefile"
7662 (("--shared-library=libcaribou.so")
7663 (string-append "--shared-library="
7664 out "/lib/libcaribou.so")))
7665 #t)))
7666 (add-after 'install 'wrap-programs
7667 (lambda* (#:key outputs #:allow-other-keys)
7668 (let* ((out (assoc-ref outputs "out"))
7669 (python-path (getenv "PYTHONPATH"))
7670 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7671 (for-each
7672 (lambda (prog)
7673 (wrap-program prog
7674 `("PYTHONPATH" ":" prefix (,python-path))
7675 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7676 (list (string-append out "/bin/caribou-preferences")
7677 (string-append out "/libexec/antler-keyboard"))))
7678 #t)))))
7679 (native-inputs
7680 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7681 ("gobject-introspection" ,gobject-introspection)
7682 ("intltool" ,intltool)
7683 ("pkg-config" ,pkg-config)
7684 ("python" ,python)
7685 ("vala" ,vala)
7686 ("xsltproc" ,libxslt)))
7687 (propagated-inputs
7688 ;; caribou-1.0.pc refers to all these.
7689 `(("libgee" ,libgee)
7690 ("libxklavier" ,libxklavier)
7691 ("libxtst" ,libxtst)
7692 ("gtk+" ,gtk+)))
7693 (inputs
7694 `(("clutter" ,clutter)
7695 ("dconf" ,dconf)
7696 ("gtk+-2" ,gtk+-2)
7697 ("python-pygobject" ,python-pygobject)))
7698 (synopsis "Text entry and UI navigation application")
7699 (home-page "https://wiki.gnome.org/Projects/Caribou")
7700 (description
7701 "Caribou is an input assistive technology intended for switch and pointer
7702 users.")
7703 (license license:lgpl2.1)))
7704
7705 (define-public network-manager
7706 (package
7707 (name "network-manager")
7708 (version "1.24.0")
7709 (source (origin
7710 (method url-fetch)
7711 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7712 (version-major+minor version) "/"
7713 "NetworkManager-" version ".tar.xz"))
7714 (patches (search-patches "network-manager-plugin-path.patch"))
7715 (sha256
7716 (base32
7717 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7718 (modules '((guix build utils)))
7719 (snippet
7720 '(begin
7721 (substitute* "src/devices/wwan/nm-modem-manager.c"
7722 (("systemd") "elogind"))
7723 #t))))
7724 (build-system meson-build-system)
7725 (outputs '("out"
7726 "doc")) ; 8 MiB of gtk-doc HTML
7727 (arguments
7728 `(#:configure-flags
7729 (let ((out (assoc-ref %outputs "out"))
7730 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7731 "/sbin/dhclient")))
7732 (list
7733 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7734 ;; component.
7735 (string-append "-Dc_link_args=-Wl,-rpath="
7736 out "/lib:"
7737 out "/lib/NetworkManager/" ,version)
7738 "-Dsystemd_journal=false"
7739 "-Dsession_tracking=elogind"
7740 "-Dsuspend_resume=elogind"
7741 "-Dsystemdsystemunitdir=no"
7742 "-Dsession_tracking_consolekit=false"
7743 "-Ddhcpcd=no"
7744 "-Ddhcpcanon=no"
7745 "-Dcrypto=gnutls"
7746 "-Diwd=true"
7747 "-Dlibaudit=yes"
7748 "-Dqt=false"
7749 "-Ddocs=true"
7750 "--sysconfdir=/etc"
7751 "--localstatedir=/var"
7752 (string-append "-Dudev_dir="
7753 out "/lib/udev")
7754 (string-append "-Ddbus_conf_dir="
7755 out "/etc/dbus-1/system.d")
7756
7757 (string-append "-Ddhclient=" dhclient)))
7758 #:phases
7759 (modify-phases %standard-phases
7760 (add-before 'configure 'pre-configure
7761 (lambda _
7762 ;; These tests try to test aspects of network-manager's
7763 ;; functionality within restricted containers, but they don't
7764 ;; cope with being already in the Guix build jail as that jail
7765 ;; lacks some features that they would like to proxy over (like
7766 ;; a /sys mount).
7767 (substitute* "src/platform/tests/meson.build"
7768 ((".*test-address-linux.*") "")
7769 ((".*test-cleanup-linux.*") "")
7770 ((".*test-link-linux.*") "")
7771 ((".*test-route-linux.*") ""))
7772 (substitute* "src/devices/tests/meson.build"
7773 ((".*test-acd.*") "")
7774 ((".*test-lldp.*") ""))
7775 #t))
7776 (add-after 'unpack 'patch-docbook-xml
7777 (lambda* (#:key inputs #:allow-other-keys)
7778 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7779 "/xml/dtd/docbook")))
7780 (substitute* (find-files "." ".*\\.(xsl|xml)")
7781 (("http://.*/docbookx\\.dtd")
7782 (string-append xmldoc "/docbookx.dtd")))
7783 #t)))
7784 (add-before 'check 'pre-check
7785 (lambda _
7786 ;; For the missing /etc/machine-id.
7787 (setenv "DBUS_FATAL_WARNINGS" "0")
7788 #t))
7789 (add-before 'install 'no-polkit-magic
7790 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7791 (lambda _
7792 (setenv "PKEXEC_UID" "something")
7793 #t))
7794 (add-after 'install 'move-doc
7795 (lambda* (#:key outputs #:allow-other-keys)
7796 (let ((out (assoc-ref outputs "out"))
7797 (doc (assoc-ref outputs "doc")))
7798 (mkdir-p (string-append doc "/share"))
7799 (for-each (lambda (directory)
7800 (copy-recursively (string-append out directory)
7801 (string-append doc directory))
7802 (delete-file-recursively
7803 (string-append out directory)))
7804 '("/share/doc" "/share/gtk-doc"))
7805 #t))))))
7806 (propagated-inputs
7807 `(("glib" ,glib)))
7808 (native-inputs
7809 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7810 ("gtk-doc" ,gtk-doc/stable)
7811 ("gobject-introspection" ,gobject-introspection)
7812 ("docbook-xml" ,docbook-xml)
7813 ("docbook-xsl" ,docbook-xsl)
7814 ("intltool" ,intltool)
7815 ("libxslt" ,libxslt)
7816 ("libxml2" ,libxml2)
7817 ("pkg-config" ,pkg-config)
7818 ("vala" ,vala)
7819 ;; For testing.
7820 ("python" ,python-wrapper)
7821 ("python-dbus" ,python-dbus)
7822 ("python-pygobject" ,python-pygobject)))
7823 (inputs
7824 `(("curl" ,curl)
7825 ("cyrus-sasl" ,cyrus-sasl)
7826 ("dbus-glib" ,dbus-glib)
7827 ("dnsmasq" ,dnsmasq)
7828 ("eudev" ,eudev)
7829 ("gnutls" ,gnutls)
7830 ("iptables" ,iptables)
7831 ("isc-dhcp" ,isc-dhcp)
7832 ("iwd" ,iwd) ; wpa_supplicant alternative
7833 ("jansson" ,jansson)
7834 ("libaudit" ,audit)
7835 ("libgcrypt" ,libgcrypt)
7836 ("libgudev" ,libgudev)
7837 ("libndp" ,libndp)
7838 ("libnl" ,libnl)
7839 ("libsoup" ,libsoup)
7840 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7841 ("modem-manager" ,modem-manager)
7842 ("newt" ,newt) ;for the 'nmtui' console interface
7843 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7844 ("polkit" ,polkit)
7845 ("ppp" ,ppp)
7846 ("readline" ,readline)
7847 ("util-linux" ,util-linux)
7848 ("elogind" ,elogind)))
7849 (synopsis "Network connection manager")
7850 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7851 (description
7852 "NetworkManager is a system network service that manages your network
7853 devices and connections, attempting to keep active network connectivity when
7854 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7855 devices, and provides VPN integration with a variety of different VPN
7856 services.")
7857 ;; “This NetworkManager project consists of the daemon, client tools, and
7858 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7859 ;; GPL-2.0+.”
7860 (license (list license:gpl2+
7861 license:lgpl2.1+))
7862 (properties '((upstream-name . "NetworkManager")))))
7863
7864 (define-public network-manager-openvpn
7865 (package
7866 (name "network-manager-openvpn")
7867 (version "1.8.12")
7868 (source (origin
7869 (method url-fetch)
7870 (uri (string-append
7871 "mirror://gnome/sources/NetworkManager-openvpn/"
7872 (version-major+minor version)
7873 "/NetworkManager-openvpn-" version ".tar.xz"))
7874 (sha256
7875 (base32
7876 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7877 (build-system gnu-build-system)
7878 (arguments
7879 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7880 #:phases
7881 (modify-phases %standard-phases
7882 (add-after 'configure 'patch-path
7883 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7884 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7885 "/sbin/openvpn"))
7886 (modprobe (string-append (assoc-ref inputs "kmod")
7887 "/bin/modprobe"))
7888 (pretty-ovpn (string-append "\"" ovpn "\"")))
7889 (for-each
7890 (lambda (file)
7891 (substitute* file
7892 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7893 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7894 (("\"/sbin/openvpn\"") pretty-ovpn)
7895 (("/sbin/modprobe") modprobe)))
7896 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7897 #t)))))
7898 (native-inputs
7899 `(("pkg-config" ,pkg-config)
7900 ("intltool" ,intltool)))
7901 (inputs
7902 `(("gtk+" ,gtk+)
7903 ("kmod" ,kmod)
7904 ("openvpn" ,openvpn)
7905 ("network-manager" ,network-manager)
7906 ("libnma" ,libnma)
7907 ("libsecret" ,libsecret)))
7908 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7909 (synopsis "OpenVPN plug-in for NetworkManager")
7910 (description
7911 "This extension of NetworkManager allows it to take care of connections
7912 to virtual private networks (VPNs) via OpenVPN.")
7913 (license license:gpl2+)
7914 (properties `((upstream-name . "NetworkManager-openvpn")))))
7915
7916 (define-public network-manager-vpnc
7917 (package
7918 (name "network-manager-vpnc")
7919 (version "1.2.6")
7920 (source (origin
7921 (method url-fetch)
7922 (uri (string-append
7923 "mirror://gnome/sources/NetworkManager-vpnc/"
7924 (version-major+minor version)
7925 "/NetworkManager-vpnc-" version ".tar.xz"))
7926 (sha256
7927 (base32
7928 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7929 (build-system gnu-build-system)
7930 (arguments
7931 `(#:configure-flags '("--enable-absolute-paths"
7932 "--localstatedir=/var"
7933 ;; libnm-glib has been removed from network-manager
7934 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7935 "--with-libnm-glib=no")
7936 #:phases
7937 (modify-phases %standard-phases
7938 (add-after 'configure 'patch-path
7939 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7940 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7941 "/sbin/vpnc"))
7942 (modprobe (string-append (assoc-ref inputs "kmod")
7943 "/bin/modprobe"))
7944 (pretty-ovpn (string-append "\"" vpnc "\"")))
7945 (substitute* "src/nm-vpnc-service.c"
7946 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7947 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7948 (("\"/sbin/vpnc\"") pretty-ovpn)
7949 (("/sbin/modprobe") modprobe)))
7950 #t)))))
7951 (native-inputs
7952 `(("pkg-config" ,pkg-config)
7953 ("intltool" ,intltool)))
7954 (inputs
7955 `(("gtk+" ,gtk+)
7956 ("kmod" ,kmod)
7957 ("vpnc" ,vpnc)
7958 ("network-manager" ,network-manager)
7959 ("libnma" ,libnma)
7960 ("libsecret" ,libsecret)))
7961 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7962 (synopsis "VPNC plug-in for NetworkManager")
7963 (description
7964 "Support for configuring virtual private networks based on VPNC.
7965 Compatible with Cisco VPN concentrators configured to use IPsec.")
7966 (license license:gpl2+)
7967 (properties `((upstream-name . "NetworkManager-vpnc")))))
7968
7969 (define-public network-manager-openconnect
7970 (package
7971 (name "network-manager-openconnect")
7972 (version "1.2.6")
7973 (source (origin
7974 (method url-fetch)
7975 (uri (string-append
7976 "mirror://gnome/sources/NetworkManager-openconnect/"
7977 (version-major+minor version)
7978 "/NetworkManager-openconnect-" version ".tar.xz"))
7979 (sha256
7980 (base32
7981 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7982 (build-system gnu-build-system)
7983 (arguments
7984 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7985 #:phases
7986 (modify-phases %standard-phases
7987 (add-after 'configure 'patch-path
7988 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7989 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7990 "/sbin/openconnect"))
7991 (modprobe (string-append (assoc-ref inputs "kmod")
7992 "/bin/modprobe"))
7993 (pretty-ovpn (string-append "\"" openconnect "\"")))
7994 (substitute* "src/nm-openconnect-service.c"
7995 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7996 (("/sbin/modprobe") modprobe)))
7997 #t)))))
7998 (native-inputs
7999 `(("intltool" ,intltool)
8000 ("libnma" ,libnma)
8001 ("pkg-config" ,pkg-config)))
8002 (inputs
8003 `(("gcr" ,gcr)
8004 ("gtk+" ,gtk+)
8005 ("kmod" ,kmod)
8006 ("libsecret" ,libsecret)
8007 ("libxml2" ,libxml2)
8008 ("lz4" ,lz4)
8009 ("network-manager" ,network-manager)
8010 ("openconnect" ,openconnect)))
8011 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8012 (synopsis "OpenConnect plug-in for NetworkManager")
8013 (description
8014 "This extension of NetworkManager allows it to take care of connections
8015 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
8016 Cisco's AnyConnect SSL VPN.")
8017 (license license:gpl2+)
8018 (properties `((upstream-name . "NetworkManager-openconnect")
8019
8020 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
8021 ;; file refers to account "nm-openconnect". Specify it here
8022 ;; so that 'network-manager-service-type' creates it.
8023 (user-accounts . ("nm-openconnect"))))))
8024
8025 (define-public mobile-broadband-provider-info
8026 (package
8027 (name "mobile-broadband-provider-info")
8028 (version "20190116")
8029 (source (origin
8030 (method url-fetch)
8031 (uri (string-append
8032 "mirror://gnome/sources/"
8033 "mobile-broadband-provider-info/" version "/"
8034 "mobile-broadband-provider-info-" version ".tar.xz"))
8035 (sha256
8036 (base32
8037 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
8038 (build-system gnu-build-system)
8039 (arguments
8040 `(#:tests? #f)) ; no tests
8041 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8042 (synopsis "Database of broadband connection configuration")
8043 (description "Database of broadband connection configuration.")
8044 (license license:public-domain)))
8045
8046 (define-public network-manager-applet
8047 (package
8048 (name "network-manager-applet")
8049 (version "1.20.0")
8050 (source (origin
8051 (method url-fetch)
8052 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
8053 (version-major+minor version) "/"
8054 "network-manager-applet-" version ".tar.xz"))
8055 (sha256
8056 (base32
8057 "0lsjkbv66hn7acl2pg9h6hz4b700zzv4cjwrwjvy7043blw0bcla"))))
8058 (build-system meson-build-system)
8059 (arguments
8060 '(#:glib-or-gtk? #t
8061 #:configure-flags
8062 '("-Dappindicator=yes")))
8063 (native-inputs
8064 `(("intltool" ,intltool)
8065 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
8066 ("gobject-introspection" ,gobject-introspection)
8067 ("gtk-doc" ,gtk-doc/stable)
8068 ("pkg-config" ,pkg-config)))
8069 (propagated-inputs
8070 ;; libnm-gtk.pc refers to all these.
8071 `(("dbus-glib" ,dbus-glib)
8072 ("gtk+" ,gtk+)
8073 ("network-manager" ,network-manager)
8074 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8075 ("libnma" ,libnma)))
8076 (inputs
8077 `(("gcr" ,gcr)
8078 ("libappindicator" ,libappindicator)
8079 ("libgudev" ,libgudev)
8080 ("libnotify" ,libnotify)
8081 ("libsecret" ,libsecret)
8082 ("libselinux" ,libselinux)
8083 ("jansson" ,jansson) ; for team support
8084 ("modem-manager" ,modem-manager)))
8085 (synopsis "Applet for managing network connections")
8086 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8087 (description
8088 "This package contains a systray applet for NetworkManager. It displays
8089 the available networks and allows users to easily switch between them.")
8090 (license license:gpl2+)))
8091
8092 (define-public libxml++
8093 (package
8094 (name "libxml++")
8095 (version "3.0.1")
8096 (source (origin
8097 (method url-fetch)
8098 (uri (string-append "mirror://gnome/sources/" name "/"
8099 (version-major+minor version) "/"
8100 name "-" version ".tar.xz"))
8101 (sha256
8102 (base32
8103 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
8104 (build-system gnu-build-system)
8105 ;; libxml++-3.0.pc refers to all these.
8106 (propagated-inputs
8107 `(("libxml2" ,libxml2)
8108 ("glibmm" ,glibmm)))
8109 (native-inputs
8110 `(("perl" ,perl)
8111 ("pkg-config" ,pkg-config)))
8112 (home-page "http://libxmlplusplus.sourceforge.net/")
8113 (synopsis "C++ wrapper for XML parser library libxml2")
8114 (description
8115 "This package provides a C++ wrapper for the XML parser library
8116 libxml2.")
8117 (license license:lgpl2.1+)))
8118
8119 (define-public libxml++-2
8120 (package
8121 (inherit libxml++)
8122 (name "libxml++")
8123 (version "2.40.1")
8124 (source (origin
8125 (method url-fetch)
8126 (uri (string-append "mirror://gnome/sources/" name "/"
8127 (version-major+minor version) "/"
8128 name "-" version ".tar.xz"))
8129 (sha256
8130 (base32
8131 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
8132
8133 (define-public gdm
8134 (package
8135 (name "gdm")
8136 (version "3.34.1")
8137 (source (origin
8138 (method url-fetch)
8139 (uri (string-append "mirror://gnome/sources/" name "/"
8140 (version-major+minor version) "/"
8141 name "-" version ".tar.xz"))
8142 (sha256
8143 (base32
8144 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
8145 (patches (search-patches "gdm-default-session.patch"))))
8146 (build-system glib-or-gtk-build-system)
8147 (arguments
8148 '(#:configure-flags
8149 `("--without-plymouth"
8150 "--disable-systemd-journal"
8151
8152 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8153 ;; instead of having to replace it (i.e., stopping the mingetty
8154 ;; service for TTY 1 before starting GDM).
8155 "--with-initial-vt=7"
8156
8157 ;; Use '/etc/environment' for locale settings instead of the
8158 ;; systemd-specific '/etc/locale.conf'.
8159 "--with-lang-file=/etc/environment"
8160
8161 ,(string-append "--with-udevdir="
8162 (assoc-ref %outputs "out") "/lib/udev")
8163
8164 "--localstatedir=/var"
8165 ,(string-append "--with-default-path="
8166 (string-join '("/run/setuid-programs"
8167 "/run/current-system/profile/bin"
8168 "/run/current-system/profile/sbin")
8169 ":"))
8170 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8171 ;; XDG_DATA_DIRS so that it finds its schemas.
8172 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
8173 #:phases
8174 (modify-phases %standard-phases
8175 (add-before
8176 'configure 'pre-configure
8177 (lambda* (#:key inputs outputs #:allow-other-keys)
8178 ;; We don't have <systemd/sd-daemon.h>.
8179 (substitute* '("common/gdm-log.c"
8180 "daemon/gdm-server.c"
8181 "daemon/gdm-session-worker.c"
8182 "daemon/gdm-session-worker-job.c")
8183 (("#include <systemd/sd-daemon\\.h>") ""))
8184 ;; Use elogind for sd-login.
8185 (substitute* '("common/gdm-common.c"
8186 "daemon/gdm-local-display-factory.c"
8187 "daemon/gdm-manager.c"
8188 "libgdm/gdm-user-switching.c")
8189 (("#include <systemd/sd-login\\.h>")
8190 "#include <elogind/sd-login.h>"))
8191 ;; Check for elogind.
8192 (substitute* '("configure")
8193 (("libsystemd")
8194 "libelogind"))
8195 ;; Look for system-installed sessions in
8196 ;; /run/current-system/profile/share.
8197 (substitute* '("libgdm/gdm-sessions.c"
8198 "daemon/gdm-session.c"
8199 "daemon/gdm-display.c"
8200 "daemon/gdm-launch-environment.c")
8201 (("DATADIR \"/x")
8202 "\"/run/current-system/profile/share/x")
8203 (("DATADIR \"/wayland")
8204 "\"/run/current-system/profile/share/wayland")
8205 (("DATADIR \"/gnome")
8206 "\"/run/current-system/profile/share/gnome"))
8207 (let ((propagate '("GDM_CUSTOM_CONF"
8208 "GDM_DBUS_DAEMON"
8209 "GDM_X_SERVER"
8210 "GDM_X_SESSION"
8211 ;; XXX: Remove this once GNOME Shell is
8212 ;; a dependency of GDM.
8213 "XDG_DATA_DIRS")))
8214 (substitute* "daemon/gdm-session.c"
8215 (("set_up_session_environment \\(self\\);")
8216 (apply string-append
8217 "set_up_session_environment (self);\n"
8218 (map (lambda (name)
8219 (string-append
8220 "gdm_session_set_environment_variable "
8221 "(self, \"" name "\","
8222 "g_getenv (\"" name "\"));\n"))
8223 propagate)))))
8224 ;; Find the configuration file using an environment variable.
8225 (substitute* '("common/gdm-settings.c")
8226 (("GDM_CUSTOM_CONF")
8227 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8228 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8229 " : GDM_CUSTOM_CONF)")))
8230 ;; Use service-supplied path to X.
8231 (substitute* '("daemon/gdm-server.c")
8232 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8233 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8234 (substitute* '("daemon/gdm-wayland-session.c"
8235 "daemon/gdm-x-session.c")
8236 (("\"dbus-daemon\"")
8237 "g_getenv (\"GDM_DBUS_DAEMON\")")
8238 (("X_SERVER")
8239 "g_getenv (\"GDM_X_SERVER\")")
8240 (("GDMCONFDIR \"/Xsession\"")
8241 "g_getenv (\"GDM_X_SESSION\")"))
8242 ;; Use an absolute path for GNOME Session.
8243 (substitute* "daemon/gdm-launch-environment.c"
8244 (("\"gnome-session\"")
8245 (string-append "\"" (assoc-ref inputs "gnome-session")
8246 "/bin/gnome-session\"")))
8247 ;; Do not automatically select the placeholder session.
8248 (substitute* "daemon/gdm-session.c"
8249 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8250 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8251 "(g_strcmp0(search_dirs[i], \""
8252 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
8253 "\") == 0 && "
8254 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8255 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8256 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
8257 #t))
8258 ;; GDM requires that there be at least one desktop entry
8259 ;; file. This phase installs a hidden one that simply
8260 ;; fails. This enables users to use GDM with a
8261 ;; '~/.xsession' script with no other desktop entry files.
8262 ;; See <https://bugs.gnu.org/35068>.
8263 (add-after 'install 'install-placeholder-desktop-entry
8264 (lambda* (#:key inputs outputs #:allow-other-keys)
8265 (let* ((out (assoc-ref outputs "out"))
8266 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8267 (fail (string-append sessions "/fail.desktop")))
8268 (mkdir-p sessions)
8269 (with-output-to-file fail
8270 (lambda ()
8271 (for-each
8272 display
8273 '("[Desktop Entry]\n"
8274 "Encoding=UTF-8\n"
8275 "Type=Application\n"
8276 "Name=Fail\n"
8277 "Comment=This session fails immediately.\n"
8278 "NoDisplay=true\n"
8279 "Exec=false\n"))))
8280 #t)))
8281 ;; GDM needs GNOME Session to run these applications. We link
8282 ;; their autostart files in `share/gdm/greeter/autostart'
8283 ;; because GDM explicitly tells GNOME Session to look there.
8284 ;;
8285 ;; XXX: GNOME Shell should be linked here too, but currently
8286 ;; GNOME Shell depends on GDM.
8287 (add-after 'install 'link-autostart-files
8288 (lambda* (#:key inputs outputs #:allow-other-keys)
8289 (let* ((out (assoc-ref outputs "out"))
8290 (autostart (string-append out "/share/gdm/"
8291 "greeter/autostart"))
8292 (settings (assoc-ref inputs "gnome-settings-daemon")))
8293 (mkdir-p autostart)
8294 (with-directory-excursion autostart
8295 (for-each (lambda (desktop)
8296 (symlink desktop (basename desktop)))
8297 (find-files (string-append settings "/etc/xdg"))))
8298 #t))))))
8299 (native-inputs
8300 `(("dconf" ,dconf)
8301 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8302 ("gobject-introspection" ,gobject-introspection)
8303 ("intltool" ,intltool)
8304 ("itstool" ,itstool)
8305 ("pkg-config" ,pkg-config)
8306 ("xmllint" ,libxml2)))
8307 (inputs
8308 `(("accountsservice" ,accountsservice)
8309 ("check" ,check-0.14) ;for testing
8310 ("elogind" ,elogind)
8311 ("gnome-session" ,gnome-session)
8312 ("gnome-settings-daemon" ,gnome-settings-daemon)
8313 ("gtk+" ,gtk+)
8314 ("iso-codes" ,iso-codes)
8315 ("libcanberra" ,libcanberra)
8316 ("linux-pam" ,linux-pam)))
8317 (synopsis "Display manager for GNOME")
8318 (home-page "https://wiki.gnome.org/Projects/GDM/")
8319 (description
8320 "GNOME Display Manager is a system service that is responsible for
8321 providing graphical log-ins and managing local and remote displays.")
8322 (license license:gpl2+)))
8323
8324 (define-public libgtop
8325 (package
8326 (name "libgtop")
8327 (version "2.40.0")
8328 (source (origin
8329 (method url-fetch)
8330 (uri (string-append "mirror://gnome/sources/libgtop/"
8331 (version-major+minor version) "/"
8332 "libgtop-" version ".tar.xz"))
8333 (sha256
8334 (base32
8335 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8336 (build-system gnu-build-system)
8337 (native-inputs
8338 `(("gobject-introspection" ,gobject-introspection)
8339 ("intltool" ,intltool)
8340 ("perl" ,perl)
8341 ("pkg-config" ,pkg-config)))
8342 (propagated-inputs
8343 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8344 (synopsis "Portable system access library")
8345 (home-page "https://www.gnome.org/")
8346 (description
8347 "LibGTop is a library to get system specific data such as CPU and memory
8348 usage and information about running processes.")
8349 (license license:gpl2+)))
8350
8351 (define-public gnome-bluetooth
8352 (package
8353 (name "gnome-bluetooth")
8354 (version "3.34.2")
8355 (source (origin
8356 (method url-fetch)
8357 (uri (string-append "mirror://gnome/sources/" name "/"
8358 (version-major+minor version) "/"
8359 name "-" version ".tar.xz"))
8360 (sha256
8361 (base32
8362 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8363 (build-system meson-build-system)
8364 (native-inputs
8365 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8366 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8367 ("gobject-introspection" ,gobject-introspection)
8368 ("intltool" ,intltool)
8369 ("pkg-config" ,pkg-config)
8370 ("xmllint" ,libxml2)))
8371 (propagated-inputs
8372 ;; gnome-bluetooth-1.0.pc refers to all these.
8373 `(("glib" ,glib)
8374 ("gtk+" ,gtk+)))
8375 (inputs
8376 `(("eudev" ,eudev)
8377 ("libcanberra" ,libcanberra)
8378 ("libnotify" ,libnotify)))
8379 (synopsis "GNOME Bluetooth subsystem")
8380 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8381 (description
8382 "This package contains tools for managing and manipulating Bluetooth
8383 devices using the GNOME desktop.")
8384 (license license:lgpl2.1+)))
8385
8386 (define-public gnome-control-center
8387 (package
8388 (name "gnome-control-center")
8389 (version "3.34.2")
8390 (source (origin
8391 (method url-fetch)
8392 (uri (string-append "mirror://gnome/sources/" name "/"
8393 (version-major+minor version) "/"
8394 name "-" version ".tar.xz"))
8395 (sha256
8396 (base32
8397 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8398 (build-system meson-build-system)
8399 (arguments
8400 '(#:glib-or-gtk? #t
8401 #:configure-flags
8402 (list "-Dcheese=false"
8403 (string-append "-Dgnome_session_libexecdir="
8404 (assoc-ref %build-inputs "gnome-session")
8405 "/libexec"))
8406 #:phases
8407 (modify-phases %standard-phases
8408 (add-before 'configure 'patch-paths
8409 (lambda* (#:key inputs #:allow-other-keys)
8410 (let ((libc (assoc-ref inputs "libc"))
8411 (tzdata (assoc-ref inputs "tzdata"))
8412 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8413 (nm-applet (assoc-ref inputs "network-manager-applet"))
8414 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8415 (substitute* "panels/datetime/tz.h"
8416 (("/usr/share/zoneinfo/zone.tab")
8417 (string-append tzdata "/share/zoneinfo/zone.tab")))
8418 (substitute* "tests/datetime/test-endianess.c"
8419 (("/usr/share/locale")
8420 (string-append libc "/share/locale")))
8421 (substitute* "panels/region/cc-region-panel.c"
8422 (("\"gkbd-keyboard-display")
8423 (string-append "\"" libgnomekbd
8424 "/bin/gkbd-keyboard-display")))
8425 (substitute* '("panels/network/net-device-wifi.c"
8426 "panels/network/net-device.c"
8427 "panels/network/connection-editor/net-connection-editor.c")
8428 (("\"nm-connection-editor")
8429 (string-append "\"" nm-applet
8430 "/bin/nm-connection-editor")))
8431 (substitute* '("panels/user-accounts/run-passwd.c")
8432 (("/usr/bin/passwd")
8433 "/run/setuid-programs/passwd"))
8434 (substitute* "panels/info/cc-info-overview-panel.c"
8435 (("DATADIR \"/gnome/gnome-version.xml\"")
8436 (string-append "\"" gnome-desktop
8437 "/share/gnome/gnome-version.xml\"")))
8438 #t)))
8439 (add-after 'unpack 'skip-gtk-update-icon-cache
8440 ;; Don't create 'icon-theme.cache'.
8441 (lambda _
8442 (substitute* "build-aux/meson/meson_post_install.py"
8443 (("gtk-update-icon-cache") (which "true")))
8444 #t)))))
8445 (native-inputs
8446 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8447 ("intltool" ,intltool)
8448 ("pkg-config" ,pkg-config)
8449 ("xsltproc" ,libxslt)
8450 ;; For tests
8451 ("hicolor-icon-theme" ,hicolor-icon-theme)
8452 ("python-dbusmock" ,python-dbusmock)
8453 ("xorg-server" ,xorg-server-for-tests)))
8454 (inputs
8455 `(("accountsservice" ,accountsservice)
8456 ("clutter-gtk" ,clutter-gtk)
8457 ("colord-gtk" ,colord-gtk)
8458 ("cups" ,cups)
8459 ("dconf" ,dconf)
8460 ("docbook-xsl" ,docbook-xsl)
8461 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8462 ("gnome-bluetooth" ,gnome-bluetooth)
8463 ("gnome-desktop" ,gnome-desktop)
8464 ("gnome-online-accounts" ,gnome-online-accounts)
8465 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8466 ("gnome-session" ,gnome-session)
8467 ("gnome-settings-daemon" ,gnome-settings-daemon)
8468 ("grilo" ,grilo)
8469 ("gsound" ,gsound)
8470 ("ibus" ,ibus)
8471 ("libcanberra" ,libcanberra)
8472 ("libgnomekbd" ,libgnomekbd)
8473 ("libgudev" ,libgudev)
8474 ("libgtop" ,libgtop)
8475 ("libnma" ,libnma)
8476 ("libpwquality" ,libpwquality)
8477 ("libsecret" ,libsecret)
8478 ("libsoup" ,libsoup)
8479 ("libxml2" ,libxml2)
8480 ("libwacom" ,libwacom)
8481 ("mesa" ,mesa)
8482 ("mit-krb5" ,mit-krb5)
8483 ("modem-manager" ,modem-manager)
8484 ("network-manager-applet" ,network-manager-applet)
8485 ("polkit" ,polkit)
8486 ("pulseaudio" ,pulseaudio)
8487 ("smbclient" ,samba)
8488 ("tzdata" ,tzdata)
8489 ("udisks" ,udisks)
8490 ("upower" ,upower)))
8491 (synopsis "Utilities to configure the GNOME desktop")
8492 (home-page "https://www.gnome.org/")
8493 (description
8494 "This package contains configuration applets for the GNOME desktop,
8495 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8496 properties, sound setup, desktop theme and background, user interface
8497 properties, screen resolution, and other GNOME parameters.")
8498 (license license:gpl2+)))
8499
8500 (define-public gnome-shell
8501 (package
8502 (name "gnome-shell")
8503 (version "3.34.5")
8504 (source (origin
8505 (method url-fetch)
8506 (uri (string-append "mirror://gnome/sources/" name "/"
8507 (version-major+minor version) "/"
8508 name "-" version ".tar.xz"))
8509 (sha256
8510 (base32
8511 "0l3mdn7g2c22mdhrqkxvvc1pk2w0v32f2v4a6n1phvaalwcg75nj"))
8512 (patches (search-patches "gnome-shell-CVE-2020-17489.patch"
8513 "gnome-shell-theme.patch"
8514 "gnome-shell-disable-test.patch"))
8515 (modules '((guix build utils)))
8516 (snippet
8517 #~(begin
8518 ;; Copy images for use on the GDM log-in screen.
8519 (copy-file #$(file-append %artwork-repository
8520 "/slim/0.x/background.png")
8521 "data/theme/guix-background.png")
8522 (copy-file #$(file-append %artwork-repository
8523 "/logo/Guix-horizontal-white.svg")
8524 "data/theme/guix-logo.svg")
8525 #t))))
8526 (build-system meson-build-system)
8527 (arguments
8528 `(#:glib-or-gtk? #t
8529 #:disallowed-references ((,glib "bin")
8530 ,inkscape ,libxslt
8531 ,ruby-sass)
8532 #:configure-flags
8533 (list "-Dsystemd=false"
8534 ;; Otherwise, the RUNPATH will lack the final path component.
8535 (string-append "-Dc_link_args=-Wl,-rpath="
8536 (assoc-ref %outputs "out")
8537 "/lib/gnome-shell"))
8538
8539 #:modules ((guix build meson-build-system)
8540 (guix build utils)
8541 (srfi srfi-1))
8542
8543 #:phases
8544 (modify-phases %standard-phases
8545 (add-after 'unpack 'fix-keysdir
8546 (lambda* (#:key outputs #:allow-other-keys)
8547 (let* ((out (assoc-ref outputs "out"))
8548 (keysdir (string-append
8549 out "/share/gnome-control-center/keybindings")))
8550 (substitute* "meson.build"
8551 (("keysdir =.*")
8552 (string-append "keysdir = '" keysdir "'\n")))
8553 #t)))
8554 (add-before 'configure 'convert-logo-to-png
8555 (lambda* (#:key inputs #:allow-other-keys)
8556 ;; Convert the logo from SVG to PNG.
8557 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8558 "data/theme/guix-logo.svg")))
8559 (add-before 'configure 'record-absolute-file-names
8560 (lambda* (#:key inputs #:allow-other-keys)
8561 (substitute* "js/misc/ibusManager.js"
8562 (("'ibus-daemon'")
8563 (string-append "'" (assoc-ref inputs "ibus")
8564 "/bin/ibus-daemon'")))
8565 (substitute* "js/ui/status/keyboard.js"
8566 (("'gkbd-keyboard-display'")
8567 (string-append "'" (assoc-ref inputs "libgnomekbd")
8568 "/bin/gkbd-keyboard-display'")))
8569 #t))
8570 (add-before 'check 'pre-check
8571 (lambda* (#:key inputs #:allow-other-keys)
8572 ;; Tests require a running X server.
8573 (system "Xvfb :1 &")
8574 (setenv "DISPLAY" ":1")
8575 #t))
8576 (add-after 'install 'wrap-programs
8577 (lambda* (#:key inputs outputs #:allow-other-keys)
8578 (let ((out (assoc-ref outputs "out"))
8579 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8580 (python-path (getenv "PYTHONPATH")))
8581 (wrap-program (string-append out "/bin/gnome-shell")
8582 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8583 ;; FIXME: gnome-shell loads these libraries with unqualified
8584 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8585 ;; alternative might be to patch gnome-shell.
8586 `("LD_LIBRARY_PATH" ":" prefix
8587 ,(map (lambda (pkg)
8588 (string-append (assoc-ref inputs pkg) "/lib"))
8589 '("gdk-pixbuf"
8590 "gnome-bluetooth" "librsvg" "libgweather"))))
8591 (for-each
8592 (lambda (prog)
8593 (wrap-program (string-append out "/bin/" prog)
8594 `("PYTHONPATH" ":" prefix (,python-path))
8595 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8596 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8597 #t)))
8598 (replace 'glib-or-gtk-wrap
8599 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8600 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8601 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8602 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8603 ;; phase. Fix that since we don't need these.
8604 (wrap #:inputs (fold alist-delete inputs
8605 '("inkscape" "intltool" "glib:bin"))
8606 #:outputs outputs)))))))
8607 (native-inputs
8608 `(("asciidoc" ,asciidoc)
8609 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8610 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8611 ("gobject-introspection" ,gobject-introspection)
8612 ("inkscape" ,inkscape)
8613 ("intltool" ,intltool)
8614 ("pkg-config" ,pkg-config)
8615 ("python" ,python)
8616 ("ruby-sass" ,ruby-sass)
8617 ("sassc" ,sassc)
8618 ("xsltproc" ,libxslt)
8619 ;; For tests
8620 ("xorg-server" ,xorg-server-for-tests)))
8621 (inputs
8622 `(("accountsservice" ,accountsservice)
8623 ("caribou" ,caribou)
8624 ("docbook-xsl" ,docbook-xsl)
8625 ("evolution-data-server" ,evolution-data-server)
8626 ("gcr" ,gcr)
8627 ("gdm" ,gdm)
8628 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8629 ("gjs" ,gjs)
8630 ("gnome-autoar" ,gnome-autoar)
8631 ("gnome-bluetooth" ,gnome-bluetooth)
8632 ("gnome-desktop" ,gnome-desktop)
8633 ("gnome-settings-daemon" ,gnome-settings-daemon)
8634 ("gst-plugins-base" ,gst-plugins-base)
8635 ("ibus" ,ibus)
8636 ("libcanberra" ,libcanberra)
8637 ("libcroco" ,libcroco)
8638 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8639 ("libgweather" ,libgweather)
8640 ("libnma" ,libnma)
8641 ("libsoup" ,libsoup)
8642 ("mesa-headers" ,mesa-headers)
8643 ("mutter" ,mutter)
8644 ("network-manager-applet" ,network-manager-applet)
8645 ("polkit" ,polkit)
8646 ("pulseaudio" ,pulseaudio)
8647 ("python-pygobject" ,python-pygobject)
8648 ("startup-notification" ,startup-notification)
8649 ("telepathy-logger" ,telepathy-logger)
8650 ("upower" ,upower)
8651 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8652 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8653 ("librsvg" ,librsvg)
8654 ("geoclue" ,geoclue)))
8655 ;; CVE-2019-3820 was fixed before GNOME 3.34 was released, in upstream
8656 ;; commit f0a7395b3006360905ccdc642982f9fc67378927.
8657 (properties '((lint-hidden-cve . ("CVE-2019-3820"))))
8658 (synopsis "Desktop shell for GNOME")
8659 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8660 (description
8661 "GNOME Shell provides core user interface functions for the GNOME desktop,
8662 like switching to windows and launching applications.")
8663 (license license:gpl2+)))
8664
8665 (define-public gtk-vnc
8666 (package
8667 (name "gtk-vnc")
8668 (version "1.0.0")
8669 (source
8670 (origin
8671 (method url-fetch)
8672 (uri
8673 (string-append "mirror://gnome/sources/" name "/"
8674 (version-major+minor version) "/"
8675 name "-" version ".tar.xz"))
8676 (sha256
8677 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8678 (build-system meson-build-system)
8679 (arguments
8680 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8681 (native-inputs
8682 `(("gjs" ,gjs)
8683 ("glib:bin" ,glib "bin")
8684 ("gobject-introspection" ,gobject-introspection)
8685 ("intltool" ,intltool)
8686 ("node" ,node)
8687 ("perl" ,perl)
8688 ("pkg-config" ,pkg-config)
8689 ("python" ,python-wrapper)
8690 ("vala" ,vala)))
8691 (inputs
8692 `(("cairo" ,cairo)
8693 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8694 ("glib" ,glib)
8695 ("gnutls" ,gnutls)
8696 ("libgcrypt" ,libgcrypt)
8697 ("libsasl" ,cyrus-sasl)
8698 ("pulseaudio" ,pulseaudio)
8699 ("x11" ,libx11)
8700 ("zlib" ,zlib)))
8701 (propagated-inputs
8702 `(("gtk+" ,gtk+)))
8703 (synopsis "VNC client viewer widget for GTK+")
8704 (description "GTK-VNC is a project providing client side APIs for the RFB
8705 protocol / VNC remote desktop technology. It is built using coroutines allowing
8706 it to be completely asynchronous while remaining single threaded. It provides a
8707 core C library, and bindings for Python (PyGTK).")
8708 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8709 (license license:lgpl2.1+)))
8710
8711 (define-public gnome-autoar
8712 (package
8713 (name "gnome-autoar")
8714 (version "0.3.3")
8715 (source (origin
8716 (method url-fetch)
8717 (uri (string-append "mirror://gnome/sources/" name "/"
8718 (version-major+minor version) "/"
8719 name "-" version ".tar.xz"))
8720 (sha256
8721 (base32
8722 "012w7rhhpxvlrnnhqy01vwzg1wxqpy8jbqgizn47wnip7bvh0917"))))
8723 (build-system glib-or-gtk-build-system)
8724 (native-inputs
8725 `(("gobject-introspection" ,gobject-introspection)
8726 ("pkg-config" ,pkg-config)))
8727 (propagated-inputs
8728 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8729 (inputs
8730 `(("gtk+" ,gtk+)))
8731 (synopsis "Archives integration support for GNOME")
8732 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8733 (description
8734 "GNOME Autoar is a library which makes creating and extracting archives
8735 easy, safe, and automatic.")
8736 (license license:lgpl2.1+)))
8737
8738 (define-public tracker
8739 (package
8740 (name "tracker")
8741 (version "2.3.5")
8742 (source (origin
8743 (method url-fetch)
8744 (uri (string-append "mirror://gnome/sources/tracker/"
8745 (version-major+minor version) "/"
8746 "tracker-" version ".tar.xz"))
8747 (sha256
8748 (base32
8749 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8750 (build-system meson-build-system)
8751 (arguments
8752 `(#:glib-or-gtk? #t
8753 #:configure-flags
8754 ;; Otherwise, the RUNPATH will lack the final path component.
8755 (list (string-append "-Dc_link_args=-Wl,-rpath="
8756 (assoc-ref %outputs "out") "/lib:"
8757 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8758 #:phases
8759 (modify-phases %standard-phases
8760 (add-before 'check 'pre-check
8761 (lambda _
8762 ;; Some tests expect to write to $HOME.
8763 (setenv "HOME" "/tmp")
8764 #t)))))
8765 (native-inputs
8766 `(("glib:bin" ,glib "bin")
8767 ("gobject-introspection" ,gobject-introspection)
8768 ("python-pygobject" ,python-pygobject)
8769 ("intltool" ,intltool)
8770 ("pkg-config" ,pkg-config)
8771 ("vala" ,vala)))
8772 (inputs
8773 `(("dbus" ,dbus)
8774 ("sqlite" ,sqlite)
8775 ("libxml2" ,libxml2)
8776 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8777 ("json-glib" ,json-glib)
8778 ("libsoup" ,libsoup)))
8779 (synopsis "Metadata database, indexer and search tool")
8780 (home-page "https://wiki.gnome.org/Projects/Tracker")
8781 (description
8782 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8783
8784 It is a middleware component aimed at desktop application developers who want
8785 their apps to browse and search user content. It's not designed to be used
8786 directly by desktop users, but it provides a commandline tool named
8787 @command{tracker} for the adventurous.
8788
8789 Tracker allows your application to instantly perform full-text searches across
8790 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8791 example. This is achieved by indexing the user's home directory in the
8792 background.
8793
8794 Tracker also allows your application to query and list content that the user
8795 has stored. For example, GNOME Music displays all the music files that are
8796 found by Tracker. This means that GNOME Music doesn't need to maintain a
8797 database of its own.
8798
8799 If you need to go beyond simple searches, Tracker is also a linked data
8800 endpoint and it understands SPARQL. ")
8801 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8802 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8803 ;; libstemmer is bsd-3 and the rest is gpl2+.
8804 (license (list license:gpl2+
8805 license:bsd-3
8806 license:lgpl2.1+))))
8807
8808 (define-public tracker-miners
8809 (package
8810 (name "tracker-miners")
8811 (version "2.3.4")
8812 (source (origin
8813 (method url-fetch)
8814 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8815 (version-major+minor version)
8816 "/tracker-miners-" version ".tar.xz"))
8817 (sha256
8818 (base32
8819 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8820 (build-system meson-build-system)
8821 (arguments
8822 `(#:glib-or-gtk? #t
8823 #:configure-flags
8824 (list "-Dminer_rss=false" ; libgrss is required.
8825 ;; Ensure the RUNPATH contains all installed library locations.
8826 (string-append "-Dc_link_args=-Wl,-rpath="
8827 (assoc-ref %outputs "out")
8828 "/lib/tracker-miners-2.0")
8829 ;; TODO: Enable functional tests. Currently, the following error
8830 ;; appears:
8831 ;; Exception: The functional tests require DConf to be the default
8832 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8833 "-Dfunctional_tests=false")))
8834 (native-inputs
8835 `(("dbus" ,dbus)
8836 ("intltool" ,intltool)
8837 ("glib:bin" ,glib "bin")
8838 ("gobject-introspection" ,gobject-introspection)
8839 ("pkg-config" ,pkg-config)
8840 ("python-pygobject" ,python-pygobject)))
8841 (inputs
8842 `(("exempi" ,exempi)
8843 ("ffmpeg" ,ffmpeg)
8844 ("flac" ,flac)
8845 ("giflib" ,giflib)
8846 ("glib" ,glib)
8847 ("gstreamer" ,gstreamer)
8848 ("icu4c" ,icu4c)
8849 ("libcue" ,libcue)
8850 ("libexif" ,libexif)
8851 ("libgsf" ,libgsf)
8852 ("libgxps" ,libgxps)
8853 ("libiptcdata" ,libiptcdata)
8854 ("libjpeg" ,libjpeg-turbo)
8855 ("libosinfo" ,libosinfo)
8856 ("libpng" ,libpng)
8857 ("libseccomp" ,libseccomp)
8858 ("libtiff" ,libtiff)
8859 ("libvorbis" ,libvorbis)
8860 ("libxml2" ,libxml2)
8861 ("poppler" ,poppler)
8862 ("taglib" ,taglib)
8863 ("totem-pl-parser" ,totem-pl-parser)
8864 ("tracker" ,tracker)
8865 ("upower" ,upower)
8866 ("zlib" ,zlib)))
8867 (synopsis "Metadata database, indexer and search tool")
8868 (home-page "https://wiki.gnome.org/Projects/Tracker")
8869 (description
8870 "Tracker is an advanced framework for first class objects with associated
8871 metadata and tags. It provides a one stop solution for all metadata, tags,
8872 shared object databases, search tools and indexing.")
8873 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8874 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8875 (license (list license:gpl2+
8876 license:lgpl2.1+
8877 license:lgpl2.0+))))
8878
8879 (define-public nautilus
8880 (package
8881 (name "nautilus")
8882 (version "3.34.2")
8883 (source (origin
8884 (method url-fetch)
8885 (uri (string-append "mirror://gnome/sources/" name "/"
8886 (version-major+minor version) "/"
8887 name "-" version ".tar.xz"))
8888 (sha256
8889 (base32
8890 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8891 (build-system meson-build-system)
8892 (arguments
8893 '(#:glib-or-gtk? #t
8894 #:phases
8895 (modify-phases %standard-phases
8896 (add-after 'unpack 'skip-gtk-update-icon-cache
8897 ;; Don't create 'icon-theme.cache'.
8898 (lambda _
8899 (substitute* "build-aux/meson/postinstall.py"
8900 (("gtk-update-icon-cache") "true"))
8901 #t)))
8902 ;; XXX: FAIL: check-nautilus
8903 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8904 #:tests? #f))
8905 (native-inputs
8906 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8907 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8908 ("gobject-introspection" ,gobject-introspection)
8909 ("intltool" ,intltool)
8910 ("pkg-config" ,pkg-config)))
8911 (inputs
8912 `(("dconf" ,dconf)
8913 ("gexiv2" ,gexiv2)
8914 ("gvfs" ,gvfs)
8915 ("exempi" ,exempi)
8916 ("gnome-desktop" ,gnome-desktop)
8917 ("gnome-autoar" ,gnome-autoar)
8918 ("gst-plugins-base" ,gst-plugins-base)
8919 ("libseccomp" ,libseccomp)
8920 ("libselinux" ,libselinux)
8921 ("tracker" ,tracker)
8922 ("tracker-miners" ,tracker-miners)
8923 ;; XXX: gtk+ is required by libnautilus-extension.pc
8924 ;;
8925 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8926 ;; package. See:
8927 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8928 ("gtk+" ,gtk+)
8929 ("libexif" ,libexif)
8930 ("libxml2" ,libxml2)))
8931 (synopsis "File manager for GNOME")
8932 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8933 (description
8934 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8935 design and behaviour, giving the user a simple way to navigate and manage its
8936 files.")
8937 (license license:gpl2+)))
8938
8939 (define-public baobab
8940 (package
8941 (name "baobab")
8942 (version "3.38.0")
8943 (source (origin
8944 (method url-fetch)
8945 (uri (string-append
8946 "mirror://gnome/sources/" name "/"
8947 (version-major+minor version) "/"
8948 name "-" version ".tar.xz"))
8949 (sha256
8950 (base32
8951 "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104"))))
8952 (build-system meson-build-system)
8953 (arguments
8954 '(#:glib-or-gtk? #t))
8955 (native-inputs
8956 `(("intltool" ,intltool)
8957 ("pkg-config" ,pkg-config)
8958 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8959 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8960 ("itstool" ,itstool)
8961 ("xmllint" ,libxml2)
8962 ("glib" ,glib "bin")
8963 ("vala" ,vala)))
8964 (inputs
8965 `(("gtk+" ,gtk+)))
8966 (synopsis "Disk usage analyzer for GNOME")
8967 (description
8968 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8969 usage in the GNOME desktop environment. It can easily scan device volumes or
8970 a specific user-requested directory branch (local or remote). Once the scan
8971 is complete it provides a graphical representation of each selected folder.")
8972 (home-page "https://wiki.gnome.org/Apps/Baobab")
8973 (license license:gpl2+)))
8974
8975 (define-public gnome-backgrounds
8976 (package
8977 (name "gnome-backgrounds")
8978 (version "3.34.0")
8979 (source
8980 (origin
8981 (method url-fetch)
8982 (uri (string-append "mirror://gnome/sources/" name "/"
8983 (version-major+minor version) "/"
8984 name "-" version ".tar.xz"))
8985 (sha256
8986 (base32
8987 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8988 (build-system meson-build-system)
8989 (native-inputs
8990 `(("intltool" ,intltool)))
8991 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8992 (synopsis "Background images for the GNOME desktop")
8993 (description
8994 "GNOME backgrounds package contains a collection of graphics files which
8995 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8996 the package creates the proper framework and directory structure so that you
8997 can add your own files to the collection.")
8998 (license (list license:gpl2+
8999 license:cc-by2.0
9000 license:cc-by-sa2.0
9001 license:cc-by-sa3.0))))
9002
9003 (define-public gnome-screenshot
9004 (package
9005 (name "gnome-screenshot")
9006 (version "3.34.0")
9007 (source
9008 (origin
9009 (method url-fetch)
9010 (uri (string-append "mirror://gnome/sources/" name "/"
9011 (version-major+minor version) "/"
9012 name "-" version ".tar.xz"))
9013 (sha256
9014 (base32
9015 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
9016 (build-system meson-build-system)
9017 (arguments
9018 '(#:phases
9019 (modify-phases %standard-phases
9020 (add-after 'unpack 'skip-gtk-update-icon-cache
9021 ;; Don't create 'icon-theme.cache'.
9022 (lambda _
9023 (substitute* "build-aux/postinstall.py"
9024 (("gtk-update-icon-cache") "true"))
9025 #t)))))
9026 (native-inputs
9027 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
9028 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9029 ("intltool" ,intltool)
9030 ("appstream-glib" ,appstream-glib)
9031 ("pkg-config" ,pkg-config)))
9032 (inputs
9033 `(("gtk+" ,gtk+)
9034 ("libcanberra" ,libcanberra)
9035 ("libx11" ,libx11)
9036 ("libxext" ,libxext)))
9037 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
9038 (synopsis "Take pictures of your screen")
9039 (description
9040 "GNOME Screenshot is a utility used for taking screenshots of the entire
9041 screen, a window or a user defined area of the screen, with optional
9042 beautifying border effects.")
9043 (license license:gpl2+)))
9044
9045 (define-public dconf-editor
9046 (package
9047 (name "dconf-editor")
9048 (version "3.34.2")
9049 (source
9050 (origin
9051 (method url-fetch)
9052 (uri (string-append "mirror://gnome/sources/" name "/"
9053 (version-major+minor version) "/"
9054 name "-" version ".tar.xz"))
9055 (sha256
9056 (base32
9057 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
9058 (build-system meson-build-system)
9059 (native-inputs
9060 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9061 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9062 ("intltool" ,intltool)
9063 ("pkg-config" ,pkg-config)
9064 ("vala" ,vala)))
9065 (inputs
9066 `(("dconf" ,dconf)
9067 ("gtk+" ,gtk+)
9068 ("libxml2" ,libxml2)))
9069 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9070 (synopsis "Graphical editor for GNOME's dconf configuration system")
9071 (description
9072 "Dconf-editor is a graphical tool for browsing and editing the dconf
9073 configuration system for GNOME. It allows users to configure desktop
9074 software that do not provide their own configuration interface.")
9075 (license license:lgpl2.1+)))
9076
9077 (define-public gnome-default-applications
9078 (package
9079 (name "gnome-default-applications")
9080 (version "0")
9081 (build-system trivial-build-system)
9082 (source #f)
9083 (propagated-inputs
9084 `(("nautilus" ,nautilus)
9085 ("evince" ,evince)))
9086 (arguments
9087 `(#:modules ((guix build utils))
9088 #:builder
9089 (begin
9090 (use-modules (guix build utils))
9091 (let* ((out (assoc-ref %outputs "out"))
9092 (apps (string-append out "/share/applications")))
9093 (mkdir-p apps)
9094 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9095 (lambda (port)
9096 (format port "[Default Applications]\n")
9097 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9098 (format port "application/pdf=evince.desktop\n")
9099 (format port "application/postscript=evince.desktop\n")))
9100 #t))))
9101 (synopsis "Default MIME type associations for the GNOME desktop")
9102 (description
9103 "Given many installed packages which might handle a given MIME type, a
9104 user running the GNOME desktop probably has some preferences: for example,
9105 that folders be opened by default by the Nautilus file manager, not the Baobab
9106 disk usage analyzer. This package establishes that set of default MIME type
9107 associations for GNOME.")
9108 (license license:gpl3+)
9109 (home-page #f)))
9110
9111 (define-public libgovirt
9112 (package
9113 (name "libgovirt")
9114 (version "0.3.8")
9115 (source (origin
9116 (method url-fetch)
9117 (uri (string-append "mirror://gnome/sources/" name "/"
9118 (version-major+minor version) "/"
9119 name "-" version ".tar.xz"))
9120 (sha256
9121 (base32
9122 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9123 (build-system glib-or-gtk-build-system)
9124 (native-inputs
9125 `(("gettext" ,gettext-minimal)
9126 ("glib:bin" ,glib "bin")
9127 ("gobject-introspection" ,gobject-introspection)
9128 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9129 ("gtk+:bin" ,gtk+ "bin")
9130 ("pkg-config" ,pkg-config)))
9131 (inputs
9132 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
9133 ("librest" ,rest)))
9134 (synopsis "GoVirt Library")
9135 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9136 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9137 (license license:gpl2+)))
9138
9139 (define-public gnome-weather
9140 (package
9141 (name "gnome-weather")
9142 (version "3.34.0")
9143 (source (origin
9144 (method url-fetch)
9145 (uri (string-append "mirror://gnome/sources/" name "/"
9146 (version-major+minor version) "/"
9147 name "-" version ".tar.xz"))
9148 (sha256
9149 (base32
9150 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
9151 (build-system meson-build-system)
9152 (native-inputs
9153 `(("gettext" ,gettext-minimal)
9154 ("glib:bin" ,glib "bin")
9155 ("gobject-introspection" ,gobject-introspection)
9156 ("gtk+:bin" ,gtk+ "bin")
9157 ("pkg-config" ,pkg-config)))
9158 (inputs
9159 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
9160 ("appstream-glib" ,appstream-glib)
9161 ("geoclue" ,geoclue)
9162 ("gdk-pixbuf" ,gdk-pixbuf)
9163 ("gjs" ,gjs)
9164 ("gnome-desktop" ,gnome-desktop)
9165 ("libgweather" ,libgweather)))
9166 (arguments
9167 `(#:glib-or-gtk? #t
9168 #:phases
9169 (modify-phases %standard-phases
9170 (add-after 'install 'fix-desktop-file
9171 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
9172 ;; See https://issues.guix.gnu.org/issue/39324.
9173 (lambda* (#:key outputs #:allow-other-keys)
9174 (let* ((out (assoc-ref outputs "out"))
9175 (applications (string-append out "/share/applications")))
9176 (substitute* (string-append applications "/org.gnome.Weather.desktop")
9177 (("Exec=.*") "Exec=gnome-weather\n"))
9178 #t)))
9179 (add-after 'install 'wrap
9180 (lambda* (#:key inputs outputs #:allow-other-keys)
9181 (let ((out (assoc-ref outputs "out"))
9182 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9183 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
9184 (wrap-program (string-append out "/bin/gnome-weather")
9185 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
9186 #t))))))
9187 (synopsis "Weather monitoring for GNOME desktop")
9188 (description "GNOME Weather is a small application that allows you to
9189 monitor the current weather conditions for your city, or anywhere in the
9190 world.")
9191 (home-page "https://wiki.gnome.org/Apps/Weather")
9192 (license license:gpl2+)))
9193
9194 (define-public gnome
9195 (package
9196 (name "gnome")
9197 (version (package-version gnome-shell))
9198 (source #f)
9199 (build-system trivial-build-system)
9200 (arguments '(#:builder (begin (mkdir %output) #t)))
9201 (propagated-inputs
9202 ;; TODO: Add or remove packages according to:
9203 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
9204 `(
9205 ;; GNOME-Core-OS-Services
9206 ("accountsservice" ,accountsservice)
9207 ("network-manager" ,network-manager)
9208 ("packagekit" ,packagekit)
9209 ("upower" ,upower)
9210 ;; GNOME-Core-Shell
9211 ("adwaita-icon-theme" ,adwaita-icon-theme)
9212 ("gdm" ,gdm)
9213 ("glib-networking" ,glib-networking)
9214 ("gnome-backgrounds" ,gnome-backgrounds)
9215 ("gnome-bluetooth" ,gnome-bluetooth)
9216 ("gnome-color-manager" ,gnome-color-manager)
9217 ("gnome-control-center" ,gnome-control-center)
9218 ("gnome-desktop" ,gnome-desktop)
9219 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
9220 ("gnome-initial-setup" ,gnome-initial-setup)
9221 ("gnome-keyring" ,gnome-keyring)
9222 ("gnome-menus" ,gnome-menus)
9223 ("gnome-session" ,gnome-session)
9224 ("gnome-settings-daemon" ,gnome-settings-daemon)
9225 ("gnome-shell-extensions" ,gnome-shell-extensions)
9226 ("gnome-shell" ,gnome-shell)
9227 ("gnome-themes-extra" ,gnome-themes-extra)
9228 ("gnome-user-docs" ,gnome-user-docs)
9229 ("gnome-user-share" ,gnome-user-share)
9230 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9231 ("gvfs" ,gvfs)
9232 ("mutter" ,mutter)
9233 ("orca" ,orca)
9234 ("rygel" ,rygel)
9235 ("sushi" ,sushi)
9236 ;; GNOME-Core-Utilities
9237 ("baobab" ,baobab)
9238 ("cheese" ,cheese)
9239 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9240 ;; only works on x86_64, so exclude it on other architectures.
9241 ,@(if (string-prefix? "x86_64" (%current-system))
9242 `(("eog" ,eog))
9243 '())
9244 ("epiphany" ,epiphany)
9245 ("evince" ,evince)
9246 ("file-roller" ,file-roller)
9247 ("gedit" ,gedit)
9248 ("gnome-boxes" ,gnome-boxes)
9249 ("gnome-calculator" ,gnome-calculator)
9250 ("gnome-calendar" ,gnome-calendar)
9251 ("gnome-characters" ,gnome-characters)
9252 ("gnome-clocks" ,gnome-clocks)
9253 ("gnome-contacts" ,gnome-contacts)
9254 ("gnome-disk-utility" ,gnome-disk-utility)
9255 ("gnome-font-viewer" ,gnome-font-viewer)
9256 ("gnome-maps" ,gnome-maps)
9257 ; TODO: ("gnome-music" ,gnome-music)
9258 ; TODO: ("gnome-photos" ,gnome-photos)
9259 ("gnome-screenshot" ,gnome-screenshot)
9260 ("gnome-system-monitor" ,gnome-system-monitor)
9261 ("gnome-terminal" ,gnome-terminal)
9262 ("gnome-weather" ,gnome-weather)
9263 ("nautilus" ,nautilus)
9264 ("simple-scan" ,simple-scan)
9265 ("totem" ,totem)
9266 ("yelp" ,yelp)
9267 ;; Others
9268 ("hicolor-icon-theme" ,hicolor-icon-theme)
9269 ("gnome-online-accounts" ,gnome-online-accounts)
9270
9271 ;; Packages not part of GNOME proper but that are needed for a good
9272 ;; experience. See <https://bugs.gnu.org/39646>.
9273 ;; XXX: Find out exactly which ones are needed and why.
9274 ("font-cantarell" ,font-cantarell)
9275 ("font-dejavu" ,font-dejavu)
9276 ("at-spi2-core" ,at-spi2-core)
9277 ("dbus" ,dbus)
9278 ("dconf" ,dconf)
9279 ("desktop-file-utils" ,desktop-file-utils)
9280 ("gnome-default-applications" ,gnome-default-applications)
9281 ("gnome-themes-standard" ,gnome-themes-standard)
9282 ("gst-plugins-base" ,gst-plugins-base)
9283 ("gst-plugins-good" ,gst-plugins-good)
9284 ("gucharmap" ,gucharmap)
9285 ("pinentry-gnome3" ,pinentry-gnome3)
9286 ("pulseaudio" ,pulseaudio)
9287 ("shared-mime-info" ,shared-mime-info)
9288 ("system-config-printer" ,system-config-printer)
9289 ("xdg-user-dirs" ,xdg-user-dirs)
9290 ("yelp" ,yelp)
9291 ("zenity" ,zenity)))
9292 (synopsis "The GNU desktop environment")
9293 (home-page "https://www.gnome.org/")
9294 (description
9295 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9296 applications for browsing the web, editing text and images, creating
9297 documents and diagrams, playing media, scanning, and much more.")
9298 (license license:gpl2+)))
9299
9300 (define-public byzanz
9301 ;; The last stable release of Byzanz was in 2011, but there have been many
9302 ;; useful commits made to the Byzanz repository since then that it would be
9303 ;; silly to use such an old release.
9304 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9305 (package
9306 (name "byzanz")
9307 (version (string-append "0.2-1." (string-take commit 7)))
9308 (source (origin
9309 (method git-fetch)
9310 (uri (git-reference
9311 (url "https://git.gnome.org/browse/byzanz")
9312 (commit commit)))
9313 (file-name (string-append name "-" version "-checkout"))
9314 (sha256
9315 (base32
9316 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9317 (build-system glib-or-gtk-build-system)
9318 (arguments
9319 '(#:phases
9320 (modify-phases %standard-phases
9321 (add-before 'bootstrap 'build-without-Werror
9322 (lambda _
9323 ;; The build system cleverly detects that we're not building from
9324 ;; a release tarball and turns on -Werror for GCC.
9325 ;; Unsurprisingly, there is a warning during compilation that
9326 ;; causes the build to fail unnecessarily, so we remove the flag.
9327 (substitute* '("configure.ac")
9328 (("-Werror") ""))
9329 #t)))))
9330 (native-inputs
9331 `(("autoconf" ,autoconf)
9332 ("automake" ,automake)
9333 ("gnome-common" ,gnome-common)
9334 ("intltool" ,intltool)
9335 ("libtool" ,libtool)
9336 ("pkg-config" ,pkg-config)
9337 ("which" ,which)))
9338 (inputs
9339 `(("glib" ,glib)
9340 ("gstreamer" ,gstreamer)
9341 ("gst-plugins-base" ,gst-plugins-base)
9342 ("gtk+" ,gtk+)))
9343 (synopsis "Desktop recording program")
9344 (description "Byzanz is a simple desktop recording program with a
9345 command-line interface. It can record part or all of an X display for a
9346 specified duration and save it as a GIF encoded animated image file.")
9347 (home-page "https://git.gnome.org/browse/byzanz")
9348 (license license:gpl2+))))
9349
9350 (define-public authenticator
9351 (package
9352 (name "authenticator")
9353 (version "3.32.2")
9354 (source
9355 (origin
9356 (method git-fetch)
9357 (uri (git-reference
9358 (url "https://gitlab.gnome.org/World/Authenticator")
9359 (commit version)))
9360 (file-name (git-file-name name version))
9361 (sha256
9362 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9363 (build-system meson-build-system)
9364 (arguments
9365 `(#:glib-or-gtk? #t
9366 #:phases
9367 (modify-phases %standard-phases
9368 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9369 (lambda* (#:key inputs outputs #:allow-other-keys)
9370 (let ((prog (string-append (assoc-ref outputs "out")
9371 "/bin/authenticator"))
9372 (pylib (string-append (assoc-ref outputs "out")
9373 "/lib/python"
9374 ,(version-major+minor
9375 (package-version python))
9376 "/site-packages")))
9377 (wrap-program prog
9378 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
9379 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9380 #t))))))
9381 (native-inputs
9382 `(("desktop-file-utils" ,desktop-file-utils)
9383 ("gettext" ,gettext-minimal)
9384 ("glib:bin" ,glib "bin")
9385 ("gobject-introspection" ,gobject-introspection)
9386 ("gtk+:bin" ,gtk+ "bin")
9387 ("pkg-config" ,pkg-config)))
9388 (inputs
9389 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9390 ("gtk+" ,gtk+)
9391 ("libhandy" ,libhandy-0.0)
9392 ("libsecret" ,libsecret)
9393 ("python-beautifulsoup4" ,python-beautifulsoup4)
9394 ("python-pillow" ,python-pillow)
9395 ("python-pyfavicon" ,python-pyfavicon)
9396 ("python-pygobject" ,python-pygobject)
9397 ("python-pyotp" ,python-pyotp)
9398 ("python-pyzbar" ,python-pyzbar)
9399 ("yoyo-migrations" ,yoyo-migrations)
9400 ("zbar" ,zbar)))
9401 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9402 (synopsis "Two-factor authentication application built for GNOME")
9403 (description
9404 "Authenticator is a two-factor authentication (2FA) application built for
9405 the GNOME desktop environment.
9406
9407 Features:
9408
9409 @itemize
9410 @item QR code scanner
9411 @item Beautiful UI
9412 @item Huge database of more than 560 supported services
9413 @item Keep your PIN tokens secure by locking the application with a password
9414 @item Automatically fetch an image for services using their favicon
9415 @item The possibility to add new services
9416 @end itemize")
9417 (license license:gpl3+)))
9418
9419 (define-public gsound
9420 (package
9421 (name "gsound")
9422 (version "1.0.2")
9423 (source (origin
9424 (method url-fetch)
9425 (uri (string-append "mirror://gnome/sources/" name "/"
9426 (version-major+minor version) "/"
9427 name "-" version ".tar.xz"))
9428 (sha256
9429 (base32
9430 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9431 (build-system glib-or-gtk-build-system)
9432 (native-inputs
9433 `(("pkg-config" ,pkg-config)
9434 ("gobject-introspection" ,gobject-introspection)
9435 ("vala" ,vala)))
9436 (inputs
9437 `(("glib" ,glib)
9438 ("libcanberra" ,libcanberra)))
9439 (home-page "https://wiki.gnome.org/Projects/GSound")
9440 (synopsis "GObject wrapper for libcanberra")
9441 (description
9442 "GSound is a small library for playing system sounds. It's designed to be
9443 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9444 library.")
9445 (license license:lgpl2.1+)))
9446
9447 (define-public libzapojit
9448 (package
9449 (name "libzapojit")
9450 (version "0.0.3")
9451 (source (origin
9452 (method url-fetch)
9453 (uri (string-append "mirror://gnome/sources/" name "/"
9454 (version-major+minor version) "/"
9455 name "-" version ".tar.xz"))
9456 (sha256
9457 (base32
9458 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9459 (build-system gnu-build-system)
9460 (native-inputs
9461 `(("gobject-introspection" ,gobject-introspection)
9462 ("intltool" ,intltool)
9463 ("pkg-config" ,pkg-config)))
9464 (inputs
9465 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9466 ("json-glib" ,json-glib)
9467 ("rest" ,rest)))
9468 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9469 (synopsis "Library for accessing SkyDrive and Hotmail")
9470 (description
9471 "Libzapojit is a GLib-based library for accessing online service APIs of
9472 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9473 (license license:lgpl2.1+)))
9474
9475 (define-public gnome-clocks
9476 (package
9477 (name "gnome-clocks")
9478 (version "3.34.0")
9479 (source (origin
9480 (method url-fetch)
9481 (uri (string-append "mirror://gnome/sources/" name "/"
9482 (version-major+minor version) "/"
9483 name "-" version ".tar.xz"))
9484 (sha256
9485 (base32
9486 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9487 (build-system meson-build-system)
9488 (arguments
9489 '(#:glib-or-gtk? #t
9490 #:phases
9491 (modify-phases %standard-phases
9492 (add-after 'unpack 'skip-gtk-update-icon-cache
9493 ;; Don't create 'icon-theme.cache'.
9494 (lambda _
9495 (substitute* "build-aux/post-install.py"
9496 (("gtk-update-icon-cache") "true"))
9497 #t)))))
9498 (native-inputs
9499 `(("vala" ,vala)
9500 ("pkg-config" ,pkg-config)
9501 ("glib" ,glib "bin") ; for glib-compile-resources
9502 ("desktop-file-utils" ,desktop-file-utils)
9503 ("gettext" ,gettext-minimal)
9504 ("itstool" ,itstool)))
9505 (inputs
9506 `(("glib" ,glib)
9507 ("gtk+" ,gtk+)
9508 ("gsound" ,gsound)
9509 ("geoclue" ,geoclue)
9510 ("geocode-glib" ,geocode-glib)
9511 ("libgweather" ,libgweather)
9512 ("gnome-desktop" ,gnome-desktop)))
9513 (home-page "https://wiki.gnome.org/Apps/Clocks")
9514 (synopsis "GNOME's clock application")
9515 (description
9516 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9517 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9518 (license license:gpl3+)))
9519
9520 (define-public gnome-calendar
9521 (package
9522 (name "gnome-calendar")
9523 (version "3.34.2")
9524 (source (origin
9525 (method url-fetch)
9526 (uri (string-append "mirror://gnome/sources/" name "/"
9527 (version-major+minor version) "/"
9528 name "-" version ".tar.xz"))
9529 (sha256
9530 (base32
9531 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9532 (build-system meson-build-system)
9533 (arguments
9534 '(#:glib-or-gtk? #t
9535 ;; gnome-calendar has to be installed before the tests can be run
9536 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9537 #:tests? #f
9538 #:phases
9539 (modify-phases %standard-phases
9540 (add-after 'unpack 'skip-gtk-update-icon-cache
9541 ;; Don't create 'icon-theme.cache'.
9542 (lambda _
9543 (substitute* "build-aux/meson/meson_post_install.py"
9544 (("gtk-update-icon-cache") "true"))
9545 #t)))))
9546 (native-inputs
9547 `(("gettext" ,gettext-minimal)
9548 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9549 ("pkg-config" ,pkg-config)))
9550 (inputs
9551 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9552 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9553 ("libdazzle" ,libdazzle)
9554 ("libedataserverui" ,evolution-data-server)
9555 ("libgweather" ,libgweather)
9556 ("geoclue" ,geoclue)))
9557 (propagated-inputs
9558 `(("evolution-data-server" ,evolution-data-server)))
9559 (home-page "https://wiki.gnome.org/Apps/Calendar")
9560 (synopsis "GNOME's calendar application")
9561 (description
9562 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9563 desktop. It supports multiple calendars, month, week and year view.")
9564 (license license:gpl3+)))
9565
9566 (define-public gnome-todo
9567 (package
9568 (name "gnome-todo")
9569 (version "3.28.1")
9570 (source (origin
9571 (method url-fetch)
9572 (uri (string-append "mirror://gnome/sources/" name "/"
9573 (version-major+minor version) "/"
9574 name "-" version ".tar.xz"))
9575 (sha256
9576 (base32
9577 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9578 (patches
9579 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9580 (build-system meson-build-system)
9581 (arguments
9582 '(#:glib-or-gtk? #t
9583 #:phases (modify-phases %standard-phases
9584 (add-after
9585 'install 'wrap-gnome-todo
9586 (lambda* (#:key inputs outputs #:allow-other-keys)
9587 (let ((out (assoc-ref outputs "out"))
9588 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9589 (python-path (getenv "PYTHONPATH")))
9590 (wrap-program (string-append out "/bin/gnome-todo")
9591 ;; XXX: gi plugins are broken.
9592 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9593 ;; For plugins.
9594 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9595 `("PYTHONPATH" ":" prefix (,python-path))))
9596 #t)))))
9597 (native-inputs
9598 `(("gettext" ,gettext-minimal)
9599 ("gobject-introspection" ,gobject-introspection)
9600 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9601 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9602 ("pkg-config" ,pkg-config)))
9603 (inputs
9604 `(("rest" ,rest) ; For Todoist plugin
9605 ("json-glib" ,json-glib) ; For Todoist plugin
9606 ("libedataserverui" ,evolution-data-server)
9607 ("libical" ,libical)
9608 ("libpeas" ,libpeas)
9609 ("python-pygobject" ,python-pygobject)
9610 ("evolution-data-server" ,evolution-data-server)
9611 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9612 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9613 (home-page "https://wiki.gnome.org/Apps/Todo")
9614 (synopsis "GNOME's ToDo Application")
9615 (description
9616 "GNOME To Do is a simplistic personal task manager designed to perfectly
9617 fit the GNOME desktop.")
9618 (license license:gpl3+)))
9619
9620 (define-public gnome-dictionary
9621 (package
9622 (name "gnome-dictionary")
9623 (version "3.26.1")
9624 (source (origin
9625 (method url-fetch)
9626 (uri (string-append "mirror://gnome/sources/" name "/"
9627 (version-major+minor version) "/"
9628 name "-" version ".tar.xz"))
9629 (sha256
9630 (base32
9631 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9632 (build-system meson-build-system)
9633 (arguments '(#:glib-or-gtk? #t
9634 #:phases (modify-phases %standard-phases
9635 (add-after 'unpack 'patch-install-script
9636 (lambda _
9637 ;; This script attempts to compile glib schemas
9638 ;; and create an empty MIME database. We do
9639 ;; that elsewhere, so prevent it from running.
9640 (substitute* "build-aux/post-install.sh"
9641 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9642 #t)))))
9643 (native-inputs
9644 `(("glib:bin" ,glib "bin")
9645 ("gobject-introspection" ,gobject-introspection)
9646 ("intltool" ,intltool)
9647 ("itstool" ,itstool)
9648 ("pkg-config" ,pkg-config)
9649 ("xmllint" ,libxml2)))
9650 (inputs
9651 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9652 ("gtk+" ,gtk+)))
9653 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9654 (synopsis "Look up words in dictionary sources")
9655 (description
9656 "GNOME Dictionary can look for the definition or translation of a word in
9657 existing databases over the internet.")
9658 (license license:gpl3+)))
9659
9660 (define-public gnome-tweaks
9661 (package
9662 (name "gnome-tweaks")
9663 (version "3.34.1")
9664 (source (origin
9665 (method url-fetch)
9666 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9667 (version-major+minor version) "/"
9668 "gnome-tweaks-" version ".tar.xz"))
9669 (patches
9670 (list (search-patch "gnome-tweaks-search-paths.patch")))
9671 (sha256
9672 (base32
9673 "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq"))))
9674 (build-system meson-build-system)
9675 (arguments
9676 `(#:glib-or-gtk? #t
9677 #:configure-flags '("-Dlocalstatedir=/tmp"
9678 "-Dsysconfdir=/tmp")
9679 #:imported-modules ((guix build python-build-system)
9680 ,@%meson-build-system-modules)
9681 #:phases
9682 (modify-phases %standard-phases
9683 (add-after 'unpack 'skip-gtk-update-icon-cache
9684 ;; Don't create 'icon-theme.cache'.
9685 (lambda _
9686 (substitute* "meson-postinstall.py"
9687 (("gtk-update-icon-cache") "true"))
9688 #t))
9689 (add-after 'install 'wrap
9690 (@@ (guix build python-build-system) wrap))
9691 (add-after 'wrap 'wrap-gi-typelib
9692 (lambda* (#:key inputs outputs #:allow-other-keys)
9693 (let ((out (assoc-ref outputs "out"))
9694 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9695 (wrap-program (string-append out "/bin/gnome-tweaks")
9696 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9697 #t)))))
9698 (native-inputs
9699 `(("intltool" ,intltool)
9700 ("pkg-config" ,pkg-config)))
9701 (inputs
9702 `(("gnome-desktop" ,gnome-desktop)
9703 ("gtk+" ,gtk+)
9704 ("gobject-introspection" ,gobject-introspection)
9705 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9706 ("libhandy" ,libhandy-0.0)
9707 ("libnotify" ,libnotify)
9708 ("libsoup" ,libsoup)
9709 ("nautilus" ,nautilus)
9710 ("python" ,python)
9711 ("python-pygobject" ,python-pygobject)))
9712 (synopsis "Customize advanced GNOME 3 options")
9713 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9714 (description
9715 "GNOME Tweaks allows adjusting advanced configuration settings in
9716 GNOME 3. This includes things like the fonts used in user interface elements,
9717 alternative user interface themes, changes in window management behavior,
9718 GNOME Shell appearance and extension, etc.")
9719 (license license:gpl3+)))
9720
9721 (define-public gnome-shell-extensions
9722 (package
9723 (name "gnome-shell-extensions")
9724 (version "3.34.2")
9725 (source (origin
9726 (method url-fetch)
9727 (uri (string-append "mirror://gnome/sources/" name "/"
9728 (version-major+minor version) "/"
9729 name "-" version ".tar.xz"))
9730 (sha256
9731 (base32
9732 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9733 (build-system meson-build-system)
9734 (arguments
9735 '(#:configure-flags '("-Dextension_set=all")))
9736 (native-inputs
9737 `(("glib:bin" ,glib "bin")
9738 ("intltool" ,intltool)
9739 ("pkg-config" ,pkg-config)))
9740 (propagated-inputs
9741 `(("glib" ,glib)))
9742 (synopsis "Extensions for GNOME Shell")
9743 (description "GNOME Shell extensions modify and extend GNOME Shell
9744 functionality and behavior.")
9745 (home-page "https://extensions.gnome.org/")
9746 (license license:gpl3+)))
9747
9748 (define-public folks
9749 (package
9750 (name "folks")
9751 (version "0.13.1")
9752 (source (origin
9753 (method url-fetch)
9754 (uri (string-append
9755 "mirror://gnome/sources/folks/"
9756 (version-major+minor version) "/"
9757 "folks-" version ".tar.xz"))
9758 (sha256
9759 (base32
9760 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9761 (build-system meson-build-system)
9762 (arguments
9763 '(#:phases
9764 (modify-phases %standard-phases
9765 (add-after 'unpack 'skip-gtk-update-icon-cache
9766 ;; Don't create 'icon-theme.cache'.
9767 (lambda _
9768 (substitute* "meson_post_install.py"
9769 (("gtk-update-icon-cache") "true"))
9770 #t)))))
9771 (inputs
9772 `(("bdb" ,bdb)
9773 ("dbus-glib" ,dbus-glib)
9774 ("evolution-data-server" ,evolution-data-server)
9775 ("glib" ,glib)
9776 ("libgee" ,libgee)
9777 ("readline" ,readline)
9778 ("telepathy-glib" ,telepathy-glib)))
9779 (native-inputs
9780 `(("glib:bin" ,glib "bin")
9781 ("gobject-introspection" ,gobject-introspection)
9782 ("intltool" ,intltool)
9783 ("pkg-config" ,pkg-config)
9784 ("vala" ,vala)))
9785 (synopsis "Library to aggregate data about people")
9786 (description "Libfolks is a library that aggregates information about people
9787 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9788 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9789 etc.) to create metacontacts. It's written in Vala, which generates C code when
9790 compiled.")
9791 (home-page "https://wiki.gnome.org/Projects/Folks")
9792 (license license:lgpl2.1+)))
9793
9794 (define-public gfbgraph
9795 (package
9796 (name "gfbgraph")
9797 (version "0.2.4")
9798 (source (origin
9799 (method url-fetch)
9800 (uri (string-append
9801 "mirror://gnome/sources/gfbgraph/"
9802 (version-major+minor version) "/"
9803 "gfbgraph-" version ".tar.xz"))
9804 (sha256
9805 (base32
9806 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9807 (build-system glib-or-gtk-build-system)
9808 (arguments
9809 `(#:tests? #f ; tests appear to require the network
9810 #:configure-flags '("--disable-static"
9811 "--enable-gtk-doc"
9812 "--enable-introspection")))
9813 (native-inputs
9814 `(("gobject-introspection" ,gobject-introspection)
9815 ("gtk-doc" ,gtk-doc/stable)
9816 ("pkg-config" ,pkg-config)
9817
9818 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9819 ("autoconf" ,autoconf)
9820 ("automake" ,automake)
9821 ("libtool" ,libtool)
9822 ("which" ,which)))
9823 (inputs
9824 `(("json-glib" ,json-glib)
9825 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9826 ("rest" ,rest)))
9827 (synopsis "GLib/GObject wrapper for the Facebook API")
9828 (description "This library allows you to use the Facebook API from
9829 GLib/GObject code.")
9830 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9831 (license license:lgpl2.1+)))
9832
9833 (define-public libgnomekbd
9834 (package
9835 (name "libgnomekbd")
9836 (version "3.26.1")
9837 (source (origin
9838 (method url-fetch)
9839 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9840 (version-major+minor version) "/"
9841 "libgnomekbd-" version ".tar.xz"))
9842 (sha256
9843 (base32
9844 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9845 (build-system gnu-build-system)
9846 (native-inputs
9847 `(("pkg-config" ,pkg-config)
9848 ("glib" ,glib "bin")
9849 ("intltool" ,intltool)))
9850 (propagated-inputs
9851 ;; Referred to in .h files and .pc.
9852 `(("glib" ,glib)
9853 ("gtk+" ,gtk+)
9854 ("libxklavier" ,libxklavier)))
9855 (home-page "https://www.gnome.org")
9856 (synopsis "GNOME keyboard configuration library")
9857 (description
9858 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9859 environment, which can notably display keyboard layouts.")
9860 (license license:lgpl2.0+)))
9861
9862 ;;; This package is no longer maintained:
9863 ;;; https://wiki.gnome.org/Attic/LibUnique
9864 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9865 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9866 (define-public libunique
9867 (package
9868 (name "libunique")
9869 (version "3.0.2")
9870 (source (origin
9871 (method url-fetch)
9872 (uri (string-append "mirror://gnome/sources/" name "/"
9873 (version-major+minor version) "/"
9874 name "-" version ".tar.xz"))
9875 (sha256
9876 (base32
9877 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9878 (build-system glib-or-gtk-build-system)
9879 (arguments
9880 `(#:configure-flags '("--disable-static"
9881 "--disable-dbus" ; use gdbus
9882 "--enable-introspection")))
9883 (native-inputs
9884 `(("pkg-config" ,pkg-config)
9885 ("gobject-introspection" ,gobject-introspection)
9886 ("glib:bin" ,glib "bin")
9887 ("gtk-doc" ,gtk-doc/stable)))
9888 (propagated-inputs
9889 ;; Referred to in .h files and .pc.
9890 `(("gtk+" ,gtk+)))
9891 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9892 (synopsis "Library for writing single instance applications")
9893 (description
9894 "Libunique is a library for writing single instance applications. If you
9895 launch a single instance application twice, the second instance will either just
9896 quit or will send a message to the running instance. Libunique makes it easy to
9897 write this kind of application, by providing a base class, taking care of all
9898 the IPC machinery needed to send messages to a running instance, and also
9899 handling the startup notification side.")
9900 (license license:lgpl2.1+)))
9901
9902 (define-public gnome-calculator
9903 (package
9904 (name "gnome-calculator")
9905 (version "3.34.1")
9906 (source
9907 (origin
9908 (method url-fetch)
9909 (uri (string-append "mirror://gnome/sources/" name "/"
9910 (version-major+minor version) "/"
9911 name "-" version ".tar.xz"))
9912 (sha256
9913 (base32
9914 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9915 (build-system meson-build-system)
9916 (arguments '(#:glib-or-gtk? #t))
9917 (native-inputs
9918 `(("gettext" ,gettext-minimal)
9919 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9920 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9921 ("itstool" ,itstool)
9922 ("vala" ,vala)
9923 ("pkg-config" ,pkg-config)))
9924 (inputs
9925 `(("glib" ,glib)
9926 ("gtksourceview" ,gtksourceview)
9927 ("libgee" ,libgee)
9928 ("libsoup" ,libsoup)
9929 ("libxml2" ,libxml2)
9930 ("mpc" ,mpc)
9931 ("mpfr" ,mpfr)))
9932 (home-page "https://wiki.gnome.org/Apps/Calculator")
9933 (synopsis "Desktop calculator")
9934 (description
9935 "Calculator is an application that solves mathematical equations and
9936 is suitable as a default application in a Desktop environment.")
9937 (license license:gpl3)))
9938
9939 (define-public xpad
9940 (package
9941 (name "xpad")
9942 (version "5.1.0")
9943 (source
9944 (origin
9945 (method url-fetch)
9946 (uri (string-append "https://launchpad.net/xpad/trunk/"
9947 version "/+download/"
9948 name "-" version ".tar.bz2"))
9949 (sha256
9950 (base32
9951 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9952 (build-system gnu-build-system)
9953 (native-inputs
9954 `(("autoconf" ,autoconf)
9955 ("automake" ,automake)
9956 ("gtk+:bin" ,gtk+ "bin")
9957 ("intltool" ,intltool)
9958 ("pkg-config" ,pkg-config)))
9959 (inputs
9960 `(("gtksourceview" ,gtksourceview-3)
9961 ("libsm" ,libsm)))
9962 (home-page "https://wiki.gnome.org/Apps/Xpad")
9963 (synopsis "Virtual sticky note")
9964 (description
9965 "Xpad is a sticky note that strives to be simple, fault tolerant,
9966 and customizable. Xpad consists of independent pad windows, each is
9967 basically a text box in which notes can be written.")
9968 (license license:gpl3+)))
9969
9970 (define-public gucharmap
9971 (let ((unicode-files
9972 '(("Blocks.txt"
9973 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9974 ("DerivedAge.txt"
9975 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9976 ("NamesList.txt"
9977 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9978 ("Scripts.txt"
9979 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9980 ("UnicodeData.txt"
9981 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9982 ("Unihan.zip"
9983 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9984 (package
9985 (name "gucharmap")
9986 (version "12.0.1")
9987 (source
9988 (origin
9989 (method url-fetch)
9990 (uri (string-append "mirror://gnome/sources/" name "/"
9991 (version-major+minor version) "/"
9992 name "-" version ".tar.xz"))
9993 (sha256
9994 (base32
9995 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9996 (build-system glib-or-gtk-build-system)
9997 (arguments
9998 `(#:modules ((ice-9 match)
9999 (guix build glib-or-gtk-build-system)
10000 (guix build utils))
10001 #:configure-flags
10002 (list "--with-unicode-data=../unicode-data")
10003 #:phases
10004 (modify-phases %standard-phases
10005 (add-after 'unpack 'prepare-unicode-data
10006 (lambda* (#:key inputs #:allow-other-keys)
10007 (mkdir-p "../unicode-data")
10008 (with-directory-excursion "../unicode-data"
10009 (for-each (match-lambda
10010 ((file _)
10011 (install-file (assoc-ref inputs file) ".")))
10012 ',unicode-files))
10013 #t)))))
10014 (native-inputs
10015 `(("desktop-file-utils" ,desktop-file-utils)
10016 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
10017 ("gobject-introspection" ,gobject-introspection)
10018 ("intltool" ,intltool)
10019 ("itstool" ,itstool)
10020 ("pkg-config" ,pkg-config)
10021 ,@(map (match-lambda
10022 ((file hash)
10023 `(,file
10024 ,(origin
10025 (method url-fetch)
10026 (uri (string-append
10027 "http://www.unicode.org/Public/12.0.0/ucd/"
10028 file))
10029 (sha256 (base32 hash))))))
10030 unicode-files)
10031 ("unzip" ,unzip)))
10032 (inputs
10033 `(("gtk+" ,gtk+)
10034 ("xmllint" ,libxml2)))
10035 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
10036 (synopsis "Unicode character picker and font browser")
10037 (description
10038 "This program allows you to browse through all the available Unicode
10039 characters and categories for the installed fonts, and to examine their
10040 detailed properties. It is an easy way to find the character you might
10041 only know by its Unicode name or code point.")
10042 (license license:gpl3+))))
10043
10044 (define-public bluefish
10045 (package
10046 (name "bluefish")
10047 (version "2.2.12")
10048 (source
10049 (origin
10050 (method url-fetch)
10051 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
10052 "bluefish-" version ".tar.gz"))
10053 (sha256
10054 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
10055 (build-system gnu-build-system)
10056 (native-inputs
10057 `(("desktop-file-utils" ,desktop-file-utils)
10058 ("intltool" ,intltool)
10059 ("pkg-config" ,pkg-config)))
10060 (inputs
10061 `(("enchant" ,enchant)
10062 ("gtk+" ,gtk+)
10063 ("python" ,python-wrapper)
10064 ("xmllint" ,libxml2)
10065 ("gucharmap" ,gucharmap)))
10066 (home-page "http://bluefish.openoffice.nl")
10067 (synopsis "Web development studio")
10068 (description
10069 "Bluefish is an editor aimed at programmers and web developers,
10070 with many options to write web sites, scripts and other code.
10071 Bluefish supports many programming and markup languages.")
10072 (license license:gpl3+)))
10073
10074 (define-public gnome-system-monitor
10075 (package
10076 (name "gnome-system-monitor")
10077 (version "3.32.1")
10078 (source
10079 (origin
10080 (method url-fetch)
10081 (uri (string-append "mirror://gnome/sources/" name "/"
10082 (version-major+minor version) "/"
10083 name "-" version ".tar.xz"))
10084 (sha256
10085 (base32
10086 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
10087 (build-system meson-build-system)
10088 (arguments
10089 '(#:glib-or-gtk? #t
10090 #:configure-flags '("-Dsystemd=false")))
10091 (native-inputs
10092 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
10093 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
10094 ("intltool" ,intltool)
10095 ("itstool" ,itstool)
10096 ("libgtop" ,libgtop)
10097 ("polkit" ,polkit)
10098 ("pkg-config" ,pkg-config)))
10099 (inputs
10100 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
10101 ("gtk+" ,gtk+)
10102 ("gtkmm" ,gtkmm)
10103 ("librsvg" ,librsvg)
10104 ("libxml2" ,libxml2)
10105 ("libwnck" ,libwnck)))
10106 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10107 (synopsis "Process viewer and system resource monitor for GNOME")
10108 (description
10109 "GNOME System Monitor is a GNOME process viewer and system monitor with
10110 an attractive, easy-to-use interface. It has features, such as a tree view
10111 for process dependencies, icons for processes, the ability to hide processes,
10112 graphical time histories of CPU/memory/swap usage and the ability to
10113 kill/reinice processes.")
10114 (license license:gpl2+)))
10115
10116 (define-public python-pyatspi
10117 (package
10118 (name "python-pyatspi")
10119 (version "2.34.0")
10120 (source (origin
10121 (method url-fetch)
10122 (uri (string-append
10123 "mirror://gnome/sources/pyatspi/"
10124 (version-major+minor version)
10125 "/pyatspi-" version ".tar.xz"))
10126 (sha256
10127 (base32
10128 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10129 (build-system gnu-build-system)
10130 (arguments
10131 `(#:phases
10132 (modify-phases %standard-phases
10133 (add-before 'build 'fix-atk-load
10134 (lambda _
10135 (substitute* "pyatspi/__init__.py"
10136 (("from gi.repository import Atspi")
10137 "gi.require_version('Gtk', '3.0')
10138 from gi.repository import Gtk
10139 from gi.repository import Atspi"))
10140 #t)))))
10141 (native-inputs
10142 `(("pkg-config" ,pkg-config)))
10143 (inputs
10144 `(("python" ,python)))
10145 (propagated-inputs
10146 `(("python-pygobject" ,python-pygobject)))
10147 (synopsis "Python client bindings for D-Bus AT-SPI")
10148 (home-page "https://wiki.linuxfoundation.org/accessibility\
10149 /atk/at-spi/at-spi_on_d-bus")
10150 (description
10151 "This package includes a python client library for the AT-SPI D-Bus
10152 accessibility infrastructure.")
10153 (license license:lgpl2.0)
10154 (properties '((upstream-name . "pyatspi")))))
10155
10156 (define-public python2-pyatspi
10157 (package/inherit python-pyatspi
10158 (name "python2-pyatspi")
10159 (inputs
10160 `(("python" ,python-2)))
10161 (propagated-inputs
10162 `(("python-pygobject" ,python2-pygobject)))))
10163
10164 (define-public orca
10165 (package
10166 (name "orca")
10167 (version "3.34.1")
10168 (source (origin
10169 (method url-fetch)
10170 (uri (string-append
10171 "mirror://gnome/sources/" name "/"
10172 (version-major+minor version) "/"
10173 name "-" version ".tar.xz"))
10174 (sha256
10175 (base32
10176 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
10177 (build-system glib-or-gtk-build-system)
10178 (arguments
10179 '(#:phases
10180 (modify-phases %standard-phases
10181 (add-before 'configure 'qualify-xkbcomp
10182 (lambda* (#:key inputs #:allow-other-keys)
10183 (let ((xkbcomp (string-append
10184 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10185 (substitute* "src/orca/orca.py"
10186 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
10187 #t))
10188 (add-after 'install 'wrap-orca
10189 (lambda* (#:key outputs #:allow-other-keys)
10190 (let* ((out (assoc-ref outputs "out"))
10191 (prog (string-append out "/bin/orca")))
10192 (wrap-program prog
10193 `("GI_TYPELIB_PATH" ":" prefix
10194 (,(getenv "GI_TYPELIB_PATH")))
10195 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10196 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10197 `("PYTHONPATH" ":" prefix
10198 (,(getenv "PYTHONPATH")))))
10199 #t)))))
10200 (native-inputs
10201 `(("intltool" ,intltool)
10202 ("itstool" ,itstool)
10203 ("pkg-config" ,pkg-config)
10204 ("xmllint" ,libxml2)))
10205 (inputs
10206 `(("at-spi2-atk" ,at-spi2-atk)
10207 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10208 ("gstreamer" ,gstreamer)
10209 ("gst-plugins-base" ,gst-plugins-base)
10210 ("gst-plugins-good" ,gst-plugins-good)
10211 ("gtk+" ,gtk+)
10212 ("python" ,python)
10213 ("python-pygobject" ,python-pygobject)
10214 ("python-pyatspi" ,python-pyatspi)
10215 ("python-speechd" ,speech-dispatcher)
10216 ("xkbcomp" ,xkbcomp)))
10217 (synopsis
10218 "Screen reader for individuals who are blind or visually impaired")
10219 (home-page "https://wiki.gnome.org/Projects/Orca")
10220 (description
10221 "Orca is a screen reader that provides access to the graphical desktop
10222 via speech and refreshable braille. Orca works with applications and toolkits
10223 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10224 (license license:lgpl2.1+)))
10225
10226 (define-public gspell
10227 (package
10228 (name "gspell")
10229 (version "1.8.2")
10230 (source (origin
10231 (method url-fetch)
10232 (uri (string-append "mirror://gnome/sources/" name "/"
10233 (version-major+minor version) "/"
10234 name "-" version ".tar.xz"))
10235 (sha256
10236 (base32
10237 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10238 (patches (search-patches "gspell-dash-test.patch"))))
10239 (build-system glib-or-gtk-build-system)
10240 (arguments
10241 '(#:configure-flags (list "--enable-vala")
10242 #:phases
10243 (modify-phases %standard-phases
10244 (add-before 'check 'pre-check
10245 (lambda* (#:key inputs #:allow-other-keys)
10246 ;; Tests require a running X server.
10247 (system "Xvfb :1 &")
10248 (setenv "DISPLAY" ":1")
10249
10250 ;; For the missing /etc/machine-id.
10251 (setenv "DBUS_FATAL_WARNINGS" "0")
10252
10253 ;; Allow Enchant and its Aspell backend to find the en_US
10254 ;; dictionary.
10255 (setenv "ASPELL_DICT_DIR"
10256 (string-append (assoc-ref inputs "aspell-dict-en")
10257 "/lib/aspell"))
10258 #t)))))
10259 (inputs
10260 `(("gtk+" ,gtk+)
10261 ("glib" ,glib)
10262 ("iso-codes" ,iso-codes)))
10263 (native-inputs
10264 `(("glib" ,glib "bin")
10265 ("gobject-introspection" ,gobject-introspection)
10266 ("pkg-config" ,pkg-config)
10267 ("vala" ,vala) ;for VAPI, needed by Geary
10268 ("xmllint" ,libxml2)
10269
10270 ;; For tests.
10271 ("aspell-dict-en" ,aspell-dict-en)
10272 ("xorg-server" ,xorg-server-for-tests)))
10273 (propagated-inputs
10274 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
10275 (home-page "https://wiki.gnome.org/Projects/gspell")
10276 (synopsis "GNOME's alternative spell checker")
10277 (description
10278 "gspell provides a flexible API to add spell-checking to a GTK+
10279 application. It provides a GObject API, spell-checking to text entries and
10280 text views, and buttons to choose the language.")
10281 (license license:gpl2+)))
10282
10283 (define-public gnome-planner
10284 (package
10285 (name "gnome-planner")
10286 (version "0.14.6")
10287 (source (origin
10288 (method url-fetch)
10289 (uri (string-append "mirror://gnome/sources/planner/"
10290 (version-major+minor version) "/planner-"
10291 version ".tar.xz"))
10292 (sha256
10293 (base32
10294 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10295 (build-system glib-or-gtk-build-system)
10296 (arguments
10297 ;; Disable the Python bindings because the Planner program functions
10298 ;; without them, and (as of 2017-06-13) we have not packaged all of
10299 ;; packages that are necessary for building the Python bindings.
10300 `(#:configure-flags
10301 (list "--disable-python"
10302 ,@(if (string=? "aarch64-linux" (%current-system))
10303 '("--build=aarch64-unknown-linux-gnu")
10304 '()))))
10305 (inputs
10306 `(("libgnomecanvas" ,libgnomecanvas)
10307 ("libgnomeui" ,libgnomeui)
10308 ("libglade" ,libglade)
10309 ("gnome-vfs" ,gnome-vfs)
10310 ("gconf" ,gconf)
10311 ("libxml2" ,libxml2)
10312 ("libxslt" ,libxslt)
10313 ("gtk+" ,gtk+)
10314 ("glib" ,glib)))
10315 (native-inputs
10316 `(("intltool" ,intltool)
10317 ("scrollkeeper" ,scrollkeeper)
10318 ("pkg-config" ,pkg-config)))
10319 (home-page "https://wiki.gnome.org/Apps/Planner")
10320 (synopsis "Project management software for the GNOME desktop")
10321 (description
10322 "GNOME Planner is a project management tool based on the Work Breakdown
10323 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10324 the resources, tasks, and constraints that you define, Planner generates
10325 various views into a project. For example, Planner can show a Gantt chart of
10326 the project. It can show a detailed summary of tasks including their
10327 duration, cost, and current progress. It can also show a report of resource
10328 utilization that highlights under-utilized and over-utilized resources. These
10329 views can be printed as PDF or PostScript files, or exported to HTML.")
10330 (license license:gpl2+)))
10331
10332 (define-public lollypop
10333 (package
10334 (name "lollypop")
10335 (version "1.4.6")
10336 (source
10337 (origin
10338 (method url-fetch)
10339 (uri (string-append "https://adishatz.org/lollypop/"
10340 "lollypop-" version ".tar.xz"))
10341 (sha256
10342 (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
10343 (build-system meson-build-system)
10344 (arguments
10345 `(#:imported-modules
10346 (,@%meson-build-system-modules
10347 (guix build python-build-system))
10348 #:modules
10349 ((guix build meson-build-system)
10350 ((guix build python-build-system) #:prefix python:)
10351 (guix build utils))
10352 #:glib-or-gtk? #t
10353 #:tests? #f ; no test suite
10354 #:phases
10355 (modify-phases %standard-phases
10356 (add-after 'install 'wrap-program
10357 (lambda* (#:key outputs #:allow-other-keys)
10358 (let ((out (assoc-ref outputs "out"))
10359 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10360 (wrap-program (string-append out "/bin/lollypop")
10361 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10362 #t))
10363 (add-after 'install 'wrap-python
10364 (assoc-ref python:%standard-phases 'wrap)))))
10365 (native-inputs
10366 `(("intltool" ,intltool)
10367 ("itstool" ,itstool)
10368 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10369 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10370 ("pkg-config" ,pkg-config)))
10371 (inputs
10372 `(("glib-networking" ,glib-networking)
10373 ("gobject-introspection" ,gobject-introspection)
10374 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10375 ("gst-plugins-base" ,gst-plugins-base)
10376 ("libnotify" ,libnotify)
10377 ("libsecret" ,libsecret)
10378 ("libhandy" ,libhandy)
10379 ("libsoup" ,libsoup)
10380 ("python" ,python)
10381 ("python-beautifulsoup4" ,python-beautifulsoup4)
10382 ("python-gst" ,python-gst)
10383 ("python-pil" ,python-pillow)
10384 ("python-pycairo" ,python-pycairo)
10385 ("python-pygobject" ,python-pygobject)
10386 ("python-pylast" ,python-pylast)
10387 ("totem-pl-parser" ,totem-pl-parser)
10388 ("webkitgtk" ,webkitgtk)))
10389 (propagated-inputs
10390 `(;; gst-plugins-base is required to start Lollypop,
10391 ;; the others are required to play streaming.
10392 ("gst-plugins-good" ,gst-plugins-good)
10393 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10394 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10395 (synopsis "GNOME music playing application")
10396 (description
10397 "Lollypop is a music player designed to play well with GNOME desktop.
10398 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10399 from artists and tracks from the web. It also fetches cover artworks
10400 automatically and it can stream songs from online music services and charts.")
10401 (license license:gpl3+)))
10402
10403 (define-public gnome-video-effects
10404 (package
10405 (name "gnome-video-effects")
10406 (version "0.5.0")
10407 (source (origin
10408 (method url-fetch)
10409 (uri (string-append "mirror://gnome/sources/" name "/"
10410 (version-major+minor version) "/" name "-"
10411 version ".tar.xz"))
10412 (sha256
10413 (base32
10414 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10415 (build-system meson-build-system)
10416 (native-inputs
10417 `(("gettext" ,gettext-minimal)
10418 ("pkg-config" ,pkg-config)))
10419 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10420 (synopsis "Video effects for Cheese and other GNOME applications")
10421 (description
10422 "A collection of GStreamer video filters and effects to be used in
10423 photo-booth-like software, such as Cheese.")
10424 (license license:gpl2+)))
10425
10426 (define-public cheese
10427 (package
10428 (name "cheese")
10429 (version "3.38.0")
10430 (source (origin
10431 (method url-fetch)
10432 (uri (string-append "mirror://gnome/sources/" name "/"
10433 (version-major+minor version) "/" name "-"
10434 version ".tar.xz"))
10435 (sha256
10436 (base32
10437 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10438 (arguments
10439 `(#:glib-or-gtk? #t
10440 ;; Tests require GDK.
10441 #:tests? #f
10442 #:phases
10443 (modify-phases %standard-phases
10444 (add-after 'unpack 'skip-gtk-update-icon-cache
10445 (lambda _
10446 ;; Don't create 'icon-theme.cache'
10447 (substitute* "meson_post_install.py"
10448 (("gtk-update-icon-cache") (which "true")))
10449 #t))
10450 (add-after 'unpack 'patch-docbook-xml
10451 (lambda* (#:key inputs #:allow-other-keys)
10452 ;; Avoid a network connection attempt during the build.
10453 (substitute* '("docs/reference/cheese.xml"
10454 "docs/reference/cheese-docs.xml")
10455 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10456 (string-append (assoc-ref inputs "docbook-xml")
10457 "/xml/dtd/docbook/docbookx.dtd")))
10458 #t))
10459 (add-after 'install 'wrap-cheese
10460 (lambda* (#:key inputs outputs #:allow-other-keys)
10461 (let ((out (assoc-ref outputs "out"))
10462 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10463 (wrap-program (string-append out "/bin/cheese")
10464 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10465 #t)))))
10466 (build-system meson-build-system)
10467 (native-inputs
10468 `(("docbook-xsl" ,docbook-xsl)
10469 ("docbook-xml" ,docbook-xml-4.3)
10470 ("gettext" ,gettext-minimal)
10471 ("glib:bin" ,glib "bin")
10472 ("gtk-doc" ,gtk-doc/stable)
10473 ("itstool" ,itstool)
10474 ("libxml2" ,libxml2)
10475 ("libxslt" ,libxslt)
10476 ("pkg-config" ,pkg-config)
10477 ("vala" ,vala)))
10478 (propagated-inputs
10479 `(("gnome-video-effects" ,gnome-video-effects)
10480 ("clutter" ,clutter)
10481 ("clutter-gst" ,clutter-gst)
10482 ("clutter-gtk" ,clutter-gtk)
10483 ("libcanberra" ,libcanberra)
10484 ("gdk-pixbuf" ,gdk-pixbuf)
10485 ("glib" ,glib)
10486 ("gstreamer" ,gstreamer)))
10487 (inputs
10488 `(("gnome-desktop" ,gnome-desktop)
10489 ("gobject-introspection" ,gobject-introspection)
10490 ("gst-plugins-base" ,gst-plugins-base)
10491 ("gst-plugins-good" ,gst-plugins-good)
10492 ("gst-plugins-bad" ,gst-plugins-bad)
10493 ("gtk+" ,gtk+)
10494 ("libx11" ,libx11)
10495 ("libxtst" ,libxtst)))
10496 (home-page "https://wiki.gnome.org/Apps/Cheese")
10497 (synopsis "Webcam photo booth software for GNOME")
10498 (description
10499 "Cheese uses your webcam to take photos and videos. Cheese can also
10500 apply fancy special effects and lets you share the fun with others.")
10501 (license license:gpl2+)))
10502
10503 (define-public passwordsafe
10504 (package
10505 (name "passwordsafe")
10506 (version "5.0")
10507 (source
10508 (origin
10509 (method git-fetch)
10510 (uri (git-reference
10511 (url "https://gitlab.gnome.org/World/PasswordSafe")
10512 (commit version)))
10513 (file-name (git-file-name name version))
10514 (sha256
10515 (base32 "1xh64bbg10gnfzlck5jvqy2zk6hbk9cyqgv85xc9kbdvs8n4lhgh"))))
10516 (build-system meson-build-system)
10517 (arguments
10518 `(#:glib-or-gtk? #t
10519 #:phases
10520 (modify-phases %standard-phases
10521 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10522 (lambda* (#:key outputs #:allow-other-keys)
10523 (let ((prog (string-append (assoc-ref outputs "out")
10524 "/bin/gnome-passwordsafe"))
10525 (pylib (string-append (assoc-ref outputs "out")
10526 "/lib/python"
10527 ,(version-major+minor
10528 (package-version python))
10529 "/site-packages")))
10530 (wrap-program prog
10531 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10532 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10533 #t))))))
10534 (native-inputs
10535 `(("desktop-file-utils" ,desktop-file-utils)
10536 ("gettext" ,gettext-minimal)
10537 ("glib:bin" ,glib "bin")
10538 ("gobject-introspection" ,gobject-introspection)
10539 ("gtk+:bin" ,gtk+ "bin")
10540 ("pkg-config" ,pkg-config)))
10541 (inputs
10542 `(("glib" ,glib)
10543 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10544 ("gtk+" ,gtk+)
10545 ("libhandy" ,libhandy)
10546 ("libpwquality" ,libpwquality)
10547 ("python-pygobject" ,python-pygobject)
10548 ("python-pykeepass" ,python-pykeepass)))
10549 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
10550 (synopsis "Password manager for the GNOME desktop")
10551 (description
10552 "Password Safe is a password manager which makes use of the KeePass v4
10553 format. It integrates perfectly with the GNOME desktop and provides an easy
10554 and uncluttered interface for the management of password databases.")
10555 (license license:gpl3+)))
10556
10557 (define-public sound-juicer
10558 (package
10559 (name "sound-juicer")
10560 (version "3.24.0")
10561 (source
10562 (origin
10563 (method url-fetch)
10564 (uri (string-append "mirror://gnome/sources/" name "/"
10565 (version-major+minor version) "/"
10566 name "-" version ".tar.xz"))
10567 (sha256
10568 (base32
10569 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10570 (build-system glib-or-gtk-build-system)
10571 (native-inputs
10572 `(("desktop-file-utils" ,desktop-file-utils)
10573 ("intltool" ,intltool)
10574 ("itstool" ,itstool)
10575 ("pkg-config" ,pkg-config)
10576 ("xmllint" ,libxml2)))
10577 (inputs
10578 `(("gtk+" ,gtk+)
10579 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10580 ("gstreamer" ,gstreamer)
10581 ("gst-plugins-base" ,gst-plugins-base)
10582 ("gst-plugins-good" ,gst-plugins-good)
10583 ("iso-codes" ,iso-codes)
10584 ("libbrasero-media3" ,brasero)
10585 ("libcanberra" ,libcanberra)
10586 ("libdiscid" ,libdiscid)
10587 ("libmusicbrainz" ,libmusicbrainz)
10588 ("neon" ,neon)))
10589 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10590 (synopsis "Audio music cd ripper")
10591 (description "Sound Juicer extracts audio from compact discs and convert it
10592 into audio files that a personal computer or digital audio player can play.
10593 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10594 mp3, Ogg Vorbis and FLAC")
10595 (license license:gpl2+)))
10596
10597 (define-public soundconverter
10598 (package
10599 (name "soundconverter")
10600 (version "3.0.2")
10601 (source
10602 (origin
10603 (method url-fetch)
10604 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10605 version "/+download/"
10606 "soundconverter-" version ".tar.xz"))
10607
10608 (sha256
10609 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10610 (build-system glib-or-gtk-build-system)
10611 (arguments
10612 `(#:imported-modules ((guix build python-build-system)
10613 (guix build glib-or-gtk-build-system)
10614 ,@%gnu-build-system-modules)
10615
10616 #:modules ((guix build glib-or-gtk-build-system)
10617 (guix build utils)
10618 ((guix build gnu-build-system) #:prefix gnu:)
10619 ((guix build python-build-system) #:prefix python:))
10620
10621 #:phases
10622 (modify-phases %standard-phases
10623 (add-after 'install 'wrap-soundconverter-for-python
10624 (assoc-ref python:%standard-phases 'wrap))
10625 (add-after 'install 'wrap-soundconverter
10626 (lambda* (#:key inputs outputs #:allow-other-keys)
10627 (let ((out (assoc-ref outputs "out"))
10628 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10629 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10630 (wrap-program (string-append out "/bin/soundconverter")
10631 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10632 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10633 #t)))))
10634 (native-inputs
10635 `(("intltool" ,intltool)
10636 ("pkg-config" ,pkg-config)
10637 ("glib:bin" ,glib "bin")))
10638 (inputs
10639 `(("gtk+" ,gtk+)
10640 ("python" ,python)
10641 ("python-pygobject" ,python-pygobject)
10642 ("gstreamer" ,gstreamer)
10643 ("gst-plugins-base" ,gst-plugins-base)))
10644 (home-page "https://soundconverter.org/")
10645 (synopsis "Convert between audio formats with a graphical interface")
10646 (description
10647 "SoundConverter supports converting between many audio formats including
10648 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10649 configurable file renaming. ")
10650 (license license:gpl3)))
10651
10652 (define-public workrave
10653 (package
10654 (name "workrave")
10655 (version "1.10.43")
10656 (source
10657 (origin
10658 (method git-fetch)
10659 (uri (git-reference
10660 (url "https://github.com/rcaelers/workrave")
10661 (commit (string-append "v" (string-map
10662 (match-lambda (#\. #\_) (chr chr))
10663 version)))))
10664 (file-name (git-file-name name version))
10665 (sha256
10666 (base32 "1baa9qjzd4b3q1zy5vhvyrx0hyz17mk237373ca48647897kw4cr"))))
10667 (build-system glib-or-gtk-build-system)
10668 (arguments
10669 ;; The only tests are maintainer tests (in po/), which fail.
10670 `(#:tests? #f))
10671 (inputs `(("glib" ,glib)
10672 ("gtk+" ,gtk+)
10673 ("gdk-pixbuf" ,gdk-pixbuf)
10674 ("gtkmm" ,gtkmm)
10675 ("glibmm" ,glibmm)
10676 ("libx11" ,libx11)
10677 ("libxtst" ,libxtst)
10678 ("dconf" ,dconf)
10679 ("libice" ,libice)
10680 ("libsm" ,libsm)
10681 ("libxscrnsaver" ,libxscrnsaver)))
10682 (native-inputs `(("boost" ,boost)
10683 ("pkg-config" ,pkg-config)
10684 ("gettext" ,gettext-minimal)
10685 ("autoconf" ,autoconf)
10686 ("autoconf-archive" , autoconf-archive)
10687 ("automake" ,automake)
10688 ("libtool" ,libtool)
10689 ("intltool" ,intltool)
10690 ("gobject-introspection" ,gobject-introspection)
10691 ("python3" ,python-3)
10692 ("python-jinja2" ,python-jinja2)))
10693 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10694 (description
10695 "Workrave is a program that assists in the recovery and prevention of
10696 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10697 micro-pauses and rest breaks, and restricts you to your daily limit.")
10698 (home-page "http://www.workrave.org")
10699 (license license:gpl3+)))
10700
10701 (define-public ghex
10702 (package
10703 (name "ghex")
10704 (version "3.18.4")
10705 (source (origin
10706 (method url-fetch)
10707 (uri (string-append "mirror://gnome/sources/ghex/"
10708 (version-major+minor version) "/"
10709 "ghex-" version ".tar.xz"))
10710 (sha256
10711 (base32
10712 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10713 (build-system meson-build-system)
10714 (arguments
10715 '(#:glib-or-gtk? #t
10716 #:phases
10717 (modify-phases %standard-phases
10718 (add-after 'unpack 'skip-gtk-update-icon-cache
10719 ;; Don't create 'icon-theme.cache'.
10720 (lambda _
10721 (substitute* "meson_post_install.py"
10722 (("gtk-update-icon-cache") (which "true")))
10723 #t)))))
10724 (native-inputs
10725 `(("pkg-config" ,pkg-config)
10726 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10727 ("gnome-common" ,gnome-common)
10728 ("which" ,which)
10729 ("intltool" ,intltool)
10730 ("yelp-tools" ,yelp-tools)
10731 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10732 (inputs
10733 `(("atk" ,atk)
10734 ("gtk" ,gtk+)))
10735 (synopsis "GNOME hexadecimal editor")
10736 (description "The GHex program can view and edit files in two ways:
10737 hexadecimal or ASCII. It is useful for editing binary files in general.")
10738 (home-page "https://wiki.gnome.org/Apps/Ghex")
10739 (license license:gpl2)))
10740
10741 (define-public libdazzle
10742 (package
10743 (name "libdazzle")
10744 (version "3.37.1")
10745 (source (origin
10746 (method url-fetch)
10747 (uri (string-append "mirror://gnome/sources/libdazzle/"
10748 (version-major+minor version) "/"
10749 "libdazzle-" version ".tar.xz"))
10750 (sha256
10751 (base32
10752 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10753 (build-system meson-build-system)
10754 (arguments
10755 `(#:phases
10756 (modify-phases %standard-phases
10757 (add-before 'check 'pre-check
10758 (lambda _
10759 ;; Tests require a running X server.
10760 (system "Xvfb :1 &")
10761 (setenv "DISPLAY" ":1")
10762 #t)))))
10763 (native-inputs
10764 `(("glib" ,glib "bin") ; glib-compile-resources
10765 ("pkg-config" ,pkg-config)
10766 ;; For tests.
10767 ("xorg-server" ,xorg-server-for-tests)))
10768 (inputs
10769 `(("glib" ,glib)
10770 ("gobject-introspection" ,gobject-introspection)
10771 ("gtk+" ,gtk+)
10772 ("vala" ,vala)))
10773 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10774 (synopsis "Companion library to GObject and Gtk+")
10775 (description "The libdazzle library is a companion library to GObject and
10776 Gtk+. It provides various features that the authors wish were in the
10777 underlying library but cannot for various reasons. In most cases, they are
10778 wildly out of scope for those libraries. In other cases, they are not quite
10779 generic enough to work for everyone.")
10780 (license license:gpl3+)))
10781
10782 (define-public evolution
10783 (package
10784 (name "evolution")
10785 (version "3.34.2")
10786 (source (origin
10787 (method url-fetch)
10788 (uri (string-append "mirror://gnome/sources/evolution/"
10789 (version-major+minor version) "/"
10790 "evolution-" version ".tar.xz"))
10791 (sha256
10792 (base32
10793 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))
10794 (patches (search-patches "evolution-CVE-2020-11879.patch"))))
10795 (build-system cmake-build-system)
10796 (arguments
10797 `(#:imported-modules (,@%cmake-build-system-modules
10798 (guix build glib-or-gtk-build-system))
10799 #:modules ((guix build cmake-build-system)
10800 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10801 (guix build utils))
10802 #:configure-flags
10803 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10804 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10805 ; in four years and cannot be built.
10806 #:phases
10807 (modify-phases %standard-phases
10808 ;; The build system attempts to install user interface modules to the
10809 ;; output directory of the "evolution-data-server" package. This
10810 ;; change redirects that change.
10811 (add-after 'unpack 'patch-ui-module-dir
10812 (lambda* (#:key outputs #:allow-other-keys)
10813 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10814 (("\\$\\{edsuimoduledir\\}")
10815 (string-append (assoc-ref outputs "out")
10816 "/lib/evolution-data-server/ui-modules")))
10817 #t))
10818 (add-after 'install 'glib-or-gtk-compile-schemas
10819 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10820 (add-after 'install 'glib-or-gtk-wrap
10821 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10822 (native-inputs
10823 `(("glib" ,glib "bin") ; glib-mkenums
10824 ("pkg-config" ,pkg-config)
10825 ("intltool" ,intltool)
10826 ("itstool" ,itstool)))
10827 (inputs
10828 `(("enchant" ,enchant)
10829 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10830 ("gcr" ,gcr)
10831 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10832 ("gnome-autoar" ,gnome-autoar)
10833 ("gnome-desktop" ,gnome-desktop)
10834 ("gspell" ,gspell)
10835 ("highlight" ,highlight)
10836 ("libcanberra" ,libcanberra)
10837 ("libgweather" ,libgweather)
10838 ("libnotify" ,libnotify)
10839 ("libsoup" ,libsoup)
10840 ("nss" ,nss)
10841 ("openldap" ,openldap)
10842 ("webkitgtk" ,webkitgtk)
10843 ("ytnef" ,ytnef)))
10844 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10845 (synopsis "Manage your email, contacts and schedule")
10846 (description "Evolution is a personal information management application
10847 that provides integrated mail, calendaring and address book
10848 functionality.")
10849 ;; See COPYING for details.
10850 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10851 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10852 license:lgpl2.1+)))) ; smime/lib/*
10853
10854 (define-public gthumb
10855 (package
10856 (name "gthumb")
10857 (version "3.10.3")
10858 (source (origin
10859 (method url-fetch)
10860 (uri (string-append "mirror://gnome/sources/gthumb/"
10861 (version-major+minor version) "/"
10862 "gthumb-" version ".tar.xz"))
10863 (sha256
10864 (base32
10865 "04n2sgasc03kiczyzkq362pjilj12hq2r5qj07lynqr9rivkzdys"))))
10866 (build-system meson-build-system)
10867 (arguments
10868 `(#:glib-or-gtk? #t
10869 #:configure-flags
10870 ;; Ensure the RUNPATH contains all installed library locations.
10871 (list (string-append "-Dc_link_args=-Wl,-rpath="
10872 (assoc-ref %outputs "out")
10873 "/lib/gthumb/extensions")
10874 (string-append "-Dcpp_link_args=-Wl,-rpath="
10875 (assoc-ref %outputs "out")
10876 "/lib/gthumb/extensions"))))
10877 (native-inputs
10878 `(("pkg-config" ,pkg-config)
10879 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10880 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10881 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10882 ("intltool" ,intltool)
10883 ("itstool" ,itstool)))
10884 (inputs
10885 `(("exiv2" ,exiv2)
10886 ("gtk" ,gtk+)
10887 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10888 ("gstreamer" ,gstreamer)
10889 ("clutter" ,clutter)
10890 ("clutter-gst" ,clutter-gst)
10891 ("clutter-gtk" ,clutter-gtk)
10892 ("libjpeg" ,libjpeg-turbo)
10893 ("libtiff" ,libtiff)
10894 ("libraw" ,libraw)))
10895 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10896 (synopsis "GNOME image viewer and browser")
10897 (description "GThumb is an image viewer, browser, organizer, editor and
10898 advanced image management tool")
10899 (license license:gpl2+)))
10900
10901 (define-public terminator
10902 (package
10903 (name "terminator")
10904 (version "2.1.1")
10905 (source
10906 (origin
10907 (method url-fetch)
10908 (uri (string-append "https://github.com/gnome-terminator/terminator/"
10909 "releases/download/v" version "/"
10910 name "-" version ".tar.gz"))
10911 (sha256
10912 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
10913 (build-system python-build-system)
10914 (native-inputs
10915 `(("gettext" ,gettext-minimal)
10916 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10917 ("gobject-introspection" ,gobject-introspection)
10918 ("intltool" ,intltool)
10919 ("pkg-config" ,pkg-config)
10920 ("python-psutil" ,python-psutil)
10921 ("python-pytest-runner" ,python-pytest-runner)
10922 ("python-pytest" ,python-pytest)))
10923 (inputs
10924 `(("cairo" ,cairo)
10925 ("dbus-glib" ,dbus-glib)
10926 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10927 ("gtk+" ,gtk+)
10928 ("python" ,python-wrapper)
10929 ("python-dbus" ,python-dbus)
10930 ("python-notify2" ,python-notify2)
10931 ("python-pycairo" ,python-pycairo)
10932 ("python-pygobject" ,python-pygobject)
10933 ("vte" ,vte)))
10934 (propagated-inputs
10935 `(("python-configobj" ,python-configobj)))
10936 (arguments
10937 ;; One test out of 28 fails due to dbus-python and python-notify; skip
10938 ;; tests.
10939 `(#:tests? #f
10940 #:imported-modules ((guix build glib-or-gtk-build-system)
10941 ,@%python-build-system-modules)
10942 #:modules ((guix build python-build-system)
10943 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10944 (guix build utils))
10945 #:phases
10946 (modify-phases %standard-phases
10947 (add-after 'unpack 'handle-dbus-python
10948 (lambda _
10949 ;; python-dbus cannot be found but it's really there. See
10950 ;; https://github.com/SpotlightKid/jack-select/issues/2
10951 (substitute* "setup.py"
10952 (("'dbus-python',") ""))
10953 #t))
10954 (add-after 'install 'wrap-program
10955 (lambda* (#:key outputs #:allow-other-keys)
10956 (let ((prog (string-append (assoc-ref outputs "out")
10957 "/bin/terminator"))
10958 (pylib (string-append (assoc-ref outputs "out")
10959 "/lib/python"
10960 ,(version-major+minor
10961 (package-version python))
10962 "/site-packages")))
10963 (wrap-program prog
10964 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10965 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10966 #t)))
10967 (add-after 'wrap-program 'glib-or-gtk-wrap
10968 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10969 (home-page "https://gnome-terminator.org/")
10970 (synopsis "Store and run multiple GNOME terminals in one window")
10971 (description
10972 "Terminator allows you to run multiple GNOME terminals in a grid and
10973 tabs, and it supports drag and drop re-ordering of terminals.")
10974 (license license:gpl2)))
10975
10976 (define-public libhandy
10977 (package
10978 (name "libhandy")
10979 (version "1.2.2")
10980 (source
10981 (origin
10982 (method git-fetch)
10983 (uri (git-reference
10984 (url "https://gitlab.gnome.org/GNOME/libhandy")
10985 (commit version)))
10986 (file-name (git-file-name name version))
10987 (sha256
10988 (base32 "0345x7gif6yjm95y62lww71lj84wfwsr2p32r3iww8shavb8scyk"))))
10989 (build-system meson-build-system)
10990 (arguments
10991 `(#:configure-flags
10992 '("-Dglade_catalog=enabled"
10993 "-Dgtk_doc=true")
10994 #:phases
10995 (modify-phases %standard-phases
10996 (add-before 'check 'pre-check
10997 (lambda _
10998 ;; Tests require a running X server.
10999 (system "Xvfb :1 &")
11000 (setenv "DISPLAY" ":1")
11001 #t)))))
11002 (inputs
11003 `(("gtk+" ,gtk+)
11004 ("glade" ,glade3)
11005 ("libxml2" ,libxml2)))
11006 (native-inputs
11007 `(("glib:bin" ,glib "bin")
11008 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
11009 ("vala" ,vala)
11010 ("gtk-doc" ,gtk-doc/stable)
11011 ("pkg-config" ,pkg-config)
11012 ("gettext" ,gettext-minimal)
11013
11014 ;; Test suite dependencies.
11015 ("xorg-server" ,xorg-server-for-tests)
11016 ("hicolor-icon-theme" ,hicolor-icon-theme)))
11017 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11018 (synopsis "Library full of GTK+ widgets for mobile phones")
11019 (description "The aim of the handy library is to help with developing user
11020 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11021 for usage on small and big screens.")
11022 (license license:lgpl2.1+)))
11023
11024 (define-public libhandy-0.0
11025 (package
11026 (inherit libhandy)
11027 (version "0.0.13")
11028 (source
11029 (origin
11030 (method git-fetch)
11031 (uri (git-reference
11032 (url "https://gitlab.gnome.org/GNOME/libhandy")
11033 (commit (string-append "v" version))))
11034 (file-name (git-file-name "libhandy" version))
11035 (sha256
11036 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11037 (arguments
11038 (substitute-keyword-arguments (package-arguments libhandy)
11039 ((#:configure-flags flags)
11040 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11041
11042 (define-public libgit2-glib
11043 (package
11044 (name "libgit2-glib")
11045 (version "0.99.0.1")
11046 (source (origin
11047 (method url-fetch)
11048 (uri (string-append "mirror://gnome/sources/" name "/"
11049 (version-major+minor version) "/"
11050 name "-" version ".tar.xz"))
11051 (sha256
11052 (base32
11053 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
11054 (build-system meson-build-system)
11055 (native-inputs
11056 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
11057 ("gobject-introspection" ,gobject-introspection)
11058 ("pkg-config" ,pkg-config)
11059 ("python-pygobject" ,python-pygobject)
11060 ("python-wrapper" ,python-wrapper)
11061 ("vala" ,vala)))
11062 (inputs
11063 `(("glib" ,glib)
11064 ("libssh2" ,libssh2)))
11065 (propagated-inputs
11066 `(;; In Requires of libgit2-glib.pc.
11067 ("libgit2" ,libgit2)))
11068 (synopsis "GLib wrapper around the libgit2 Git access library")
11069 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11070 access library. It only implements the core plumbing functions, not really the
11071 higher level porcelain stuff.")
11072 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11073 (license license:gpl2+)))
11074
11075 (define-public gitg
11076 (package
11077 (name "gitg")
11078 (version "3.32.1")
11079 (source (origin
11080 (method url-fetch)
11081 (uri (string-append "mirror://gnome/sources/" name "/"
11082 (version-major+minor version) "/"
11083 name "-" version ".tar.xz"))
11084 (sha256
11085 (base32
11086 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
11087 (build-system meson-build-system)
11088 (arguments
11089 `(#:glib-or-gtk? #t
11090 #:phases
11091 (modify-phases %standard-phases
11092 (add-after 'unpack 'disable-post-install-partially
11093 (lambda _
11094 (substitute* "meson_post_install.py"
11095 (("'python'") ; there are no python sources to compile
11096 (string-append "'" (which "true") "'"))
11097 (("gtk-update-icon-cache") (which "true")))
11098 #t))
11099 (add-after 'unpack 'fix-test-sources
11100 (lambda _
11101 (substitute* "tests/libgitg/test-commit.vala"
11102 (("/bin/bash") (which "bash")))
11103 #t))
11104 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11105 (lambda* (#:key outputs #:allow-other-keys)
11106 (let ((prog (string-append (assoc-ref outputs "out")
11107 "/bin/gitg")))
11108 (wrap-program prog
11109 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11110 #t))))))
11111 (inputs
11112 `(("glib" ,glib)
11113 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11114 ("gtk+" ,gtk+)
11115 ("gtkspell3" ,gtkspell3)
11116 ("gtksourceview" ,gtksourceview-3)
11117 ("json-glib" ,json-glib)
11118 ("libdazzle" ,libdazzle)
11119 ("libgee" ,libgee)
11120 ("libgit2-glib" ,libgit2-glib)
11121 ("libpeas" ,libpeas)
11122 ("libsecret" ,libsecret)
11123 ("libsoup" ,libsoup)
11124 ("libxml2" ,libxml2)))
11125 (native-inputs
11126 `(("glib:bin" ,glib "bin")
11127 ("gtk+:bin" ,gtk+ "bin")
11128 ("gobject-introspection" ,gobject-introspection)
11129 ("intltool" ,intltool)
11130 ("pkg-config" ,pkg-config)
11131 ("vala" ,vala)))
11132 (synopsis "Graphical user interface for git")
11133 (description
11134 "gitg is a graphical user interface for git. It aims at being a small,
11135 fast and convenient tool to visualize the history of git repositories.
11136 Besides visualization, gitg also provides several utilities to manage your
11137 repository and commit your work.")
11138 (home-page "https://wiki.gnome.org/Apps/Gitg")
11139 (license license:gpl2+)))
11140
11141 (define-public gamin
11142 (package
11143 (name "gamin")
11144 (version "0.1.10")
11145 (source (origin
11146 (method url-fetch)
11147 (uri (string-append "mirror://gnome/sources/" name "/"
11148 (version-major+minor version) "/"
11149 name "-" version ".tar.bz2"))
11150 (sha256
11151 (base32
11152 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11153 (build-system gnu-build-system)
11154 (arguments
11155 `(#:phases
11156 (modify-phases %standard-phases
11157 (add-after 'unpack 'remove-deprecated-macro
11158 (lambda _
11159 (substitute* '("server/gam_node.c"
11160 "server/gam_subscription.h"
11161 "server/gam_node.h"
11162 "server/gam_subscription.c")
11163 (("G_CONST_RETURN") "const"))
11164 #t)))))
11165 (inputs
11166 `(("glib" ,glib)))
11167 (native-inputs
11168 `(("intltool" ,intltool)
11169 ("pkg-config" ,pkg-config)))
11170 (home-page "https://people.gnome.org/~veillard/gamin/")
11171 (synopsis "File alteration monitor")
11172 (description
11173 "Gamin is a file and directory monitoring system defined to be a subset
11174 of the FAM (File Alteration Monitor) system. This is a service provided by a
11175 library which detects when a file or a directory has been modified.")
11176 (license license:gpl2+)))
11177
11178 (define-public gnome-mahjongg
11179 (package
11180 (name "gnome-mahjongg")
11181 (version "3.35.1")
11182 (source (origin
11183 (method git-fetch)
11184 (uri (git-reference
11185 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
11186 (commit version)))
11187 (file-name (git-file-name name version))
11188 (sha256
11189 (base32
11190 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
11191 (build-system meson-build-system)
11192 (arguments
11193 `(#:glib-or-gtk? #t))
11194 (native-inputs
11195 `(("appstream-glib" ,appstream-glib)
11196 ("gettext" ,gettext-minimal)
11197 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11198 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11199 ("itstool" ,itstool)
11200 ("pkg-config" ,pkg-config)
11201 ("vala" ,vala)))
11202 (propagated-inputs
11203 `(("dconf" ,dconf)))
11204 (inputs
11205 `(("glib" ,glib)
11206 ("gtk+" ,gtk+)
11207 ("librsvg" ,librsvg)))
11208 (synopsis "Mahjongg tile-matching game")
11209 (description "GNOME Mahjongg is a game based on the classic Chinese
11210 tile-matching game Mahjong. It features multiple board layouts, tile themes,
11211 and a high score table.")
11212 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11213 (license license:gpl2+)))
11214
11215 (define-public gnome-themes-extra
11216 (package
11217 (name "gnome-themes-extra")
11218 (version "3.28")
11219 (source
11220 (origin
11221 (method url-fetch)
11222 (uri (string-append "mirror://gnome/sources/" name "/"
11223 (version-major+minor version) "/" name "-"
11224 version ".tar.xz"))
11225 (sha256
11226 (base32
11227 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11228 (build-system gnu-build-system)
11229 (arguments
11230 '(#:configure-flags
11231 ;; Don't create 'icon-theme.cache'.
11232 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11233 (true (string-append coreutils "/bin/true")))
11234 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11235 (native-inputs
11236 `(("glib:bin" ,glib "bin")
11237 ("intltool" ,intltool)
11238 ("pkg-config" ,pkg-config)))
11239 (inputs
11240 `(("glib" ,glib)
11241 ("gtk+" ,gtk+)
11242 ("gtk+-2" ,gtk+-2)
11243 ("librsvg" ,librsvg)
11244 ("libxml2" ,libxml2)))
11245 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11246 (synopsis "GNOME Extra Themes")
11247 (description "This package provides themes and related elements that don't
11248 really fit in other upstream packages. It offers legacy support for GTK+ 2
11249 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11250 index files needed for Adwaita to be used outside of GNOME.")
11251 (license license:lgpl2.1+)))
11252
11253 (define-public gnote
11254 (package
11255 (name "gnote")
11256 (version "3.38.1")
11257 (source
11258 (origin
11259 (method url-fetch)
11260 (uri (string-append "mirror://gnome/sources/" name "/"
11261 (version-major+minor version) "/"
11262 "gnote-" version ".tar.xz"))
11263 (sha256
11264 (base32 "1adjfjhmsm2d33999khjyzvli6kiz1jlzavn77jhd49kfzhxa9y4"))))
11265 (build-system glib-or-gtk-build-system)
11266 (native-inputs
11267 `(("desktop-file-utils" ,desktop-file-utils)
11268 ("glib:bin" ,glib "bin")
11269 ("gobject-introspection" ,gobject-introspection)
11270 ("intltool" ,intltool)
11271 ("itstool" ,itstool)
11272 ("pkg-config" ,pkg-config)
11273 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
11274 (inputs
11275 `(("glibmm" ,glibmm)
11276 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11277 ("gspell" ,gspell)
11278 ("gtk+" ,gtk+)
11279 ("gtkmm" ,gtkmm)
11280 ("libsecret" ,libsecret)
11281 ("libuuid" ,util-linux "lib")
11282 ("libxml2" ,libxml2)
11283 ("libxslt" ,libxslt)))
11284 (synopsis "Note-taking application for the GNOME desktop")
11285 (description
11286 "Gnote is a note-taking application written for the GNOME desktop
11287 environment.")
11288 (home-page "https://wiki.gnome.org/Apps/Gnote")
11289 (license license:gpl3+)))
11290
11291 (define-public polari
11292 (package
11293 (name "polari")
11294 (version "3.36.3")
11295 (source (origin
11296 (method url-fetch)
11297 (uri (string-append "mirror://gnome/sources/polari/"
11298 (version-major+minor version)
11299 "/polari-" version ".tar.xz"))
11300 (sha256
11301 (base32
11302 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11303 (build-system meson-build-system)
11304 (arguments
11305 `(#:glib-or-gtk? #t
11306 #:phases
11307 (modify-phases %standard-phases
11308 (add-after 'unpack 'skip-gtk-update-icon-cache
11309 (lambda _
11310 (substitute* "meson/meson-postinstall.sh"
11311 (("gtk-update-icon-cache") (which "true")))
11312 #t))
11313 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11314 (lambda* (#:key outputs #:allow-other-keys)
11315 (let ((prog (string-append (assoc-ref outputs "out")
11316 "/bin/polari")))
11317 (wrap-program prog
11318 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11319 #t))))))
11320 (inputs
11321 `(("glib" ,glib)
11322 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11323 ("gspell" ,gspell)
11324 ("gtk+" ,gtk+)
11325 ("gjs" ,gjs)
11326 ("libsecret" ,libsecret)
11327 ("libsoup" ,libsoup)
11328 ("telepathy-glib" ,telepathy-glib)
11329 ("telepathy-logger" ,telepathy-logger)))
11330 (native-inputs
11331 `(("glib:bin" ,glib "bin")
11332 ("gobject-introspection" ,gobject-introspection)
11333 ("intltool" ,intltool)
11334 ("pkg-config" ,pkg-config)
11335 ("yelp-tools" ,yelp-tools)))
11336 (propagated-inputs
11337 `(("telepathy-idle" ,telepathy-idle)
11338 ("telepathy-mission-control" ,telepathy-mission-control)))
11339 (synopsis "Simple IRC Client")
11340 (description
11341 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11342 integrate seamlessly with the GNOME desktop.")
11343 (home-page "https://wiki.gnome.org/Apps/Polari")
11344 (license license:gpl2+)))
11345
11346 (define-public gnome-boxes
11347 (package
11348 (name "gnome-boxes")
11349 (version "3.36.6")
11350 (source
11351 (origin
11352 (method url-fetch)
11353 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11354 (version-major+minor version) "/"
11355 "gnome-boxes-" version ".tar.xz"))
11356 (sha256
11357 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11358 (build-system meson-build-system)
11359 (arguments
11360 '(#:glib-or-gtk? #t
11361 #:configure-flags (list "-Drdp=false"
11362 (string-append "-Dc_link_args=-Wl,-rpath="
11363 (assoc-ref %outputs "out")
11364 "/lib/gnome-boxes"))))
11365 (native-inputs
11366 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11367 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11368 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11369 ("itstool" ,itstool)
11370 ("intltool" ,intltool)
11371 ("vala" ,vala)
11372 ("pkg-config" ,pkg-config)))
11373 (inputs
11374 `(("libarchive" ,libarchive)
11375 ("glib-networking" ,glib-networking) ;for TLS support
11376 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11377 ("gtk" ,gtk+)
11378 ("gtk-vnc" ,gtk-vnc)
11379 ("libosinfo" ,libosinfo)
11380 ("libsecret" ,libsecret)
11381 ("libsoup" ,libsoup)
11382 ("libusb" ,libusb)
11383 ("libvirt" ,libvirt)
11384 ("libvirt-glib" ,libvirt-glib)
11385 ("libxml" ,libxml2)
11386 ("spice-gtk" ,spice-gtk)
11387 ("sparql-query" ,sparql-query)
11388 ("vte" ,vte)
11389 ("webkitgtk" ,webkitgtk)
11390 ("tracker" ,tracker)
11391 ("libgudev" ,libgudev)))
11392 (home-page "https://wiki.gnome.org/Apps/Boxes")
11393 (synopsis "View, access, and manage remote and virtual systems")
11394 (description "GNOME Boxes is a simple application to view, access, and
11395 manage remote and virtual systems. Note that this application requires the
11396 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11397 @command{info '(guix) Virtualization Services'} to learn how to configure
11398 these services on the Guix System.")
11399 (license (list
11400 ;; For data/icons/empty-boxes.png.
11401 license:cc-by2.0
11402 ;; For all others.
11403 license:lgpl2.0+))))
11404
11405 (define-public geary
11406 (package
11407 (name "geary")
11408 (version "3.34.1")
11409 (source (origin
11410 (method git-fetch)
11411 (uri (git-reference
11412 (url "https://gitlab.gnome.org/GNOME/geary")
11413 (commit version)))
11414 (file-name (git-file-name name version))
11415 (sha256
11416 (base32
11417 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))
11418 (patches (search-patches "geary-CVE-2020-24661.patch"))))
11419 (build-system meson-build-system)
11420 (arguments
11421 `(#:glib-or-gtk? #t
11422 #:phases (modify-phases %standard-phases
11423 (add-after 'unpack 'disable-failing-tests
11424 (lambda _
11425 (substitute* "test/meson.build"
11426 (("test\\('client-tests', geary_test_client_bin\\)")
11427 ""))
11428 #t))
11429 (add-after 'unpack 'disable-postinstall-script
11430 (lambda _
11431 (substitute* "meson.build"
11432 (("meson.add_install_script\\(\
11433 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11434 ""))
11435 #t))
11436 (add-before 'check 'setup-xvfb
11437 (lambda _
11438 (system "Xvfb :1 &")
11439 (setenv "DISPLAY" ":1")
11440 #t)))))
11441 (inputs
11442 `(("enchant" ,enchant)
11443 ("folks" ,folks)
11444 ("gcr" ,gcr)
11445 ("glib" ,glib)
11446 ("gmime" ,gmime-2.6)
11447 ("gnome-online-accounts:lib"
11448 ,gnome-online-accounts "lib")
11449 ("gspell" ,gspell)
11450 ("gtk+" ,gtk+)
11451 ("iso-codes" ,iso-codes)
11452 ("json-glib" ,json-glib)
11453 ("libcanberra" ,libcanberra)
11454 ("libgee" ,libgee)
11455 ("libhandy" ,libhandy-0.0)
11456 ("libpeas" ,libpeas)
11457 ("libsecret" ,libsecret)
11458 ("libunwind" ,libunwind)
11459 ("sqlite" ,sqlite)
11460 ("webkitgtk" ,webkitgtk)
11461 ("ytnef" ,ytnef)))
11462 (native-inputs
11463 `(("appstream-glib" ,appstream-glib)
11464 ("cmake-minimal" ,cmake-minimal)
11465 ("desktop-file-utils" ,desktop-file-utils)
11466 ("gettext" ,gettext-minimal)
11467 ("glib:bin" ,glib "bin")
11468 ("gobject-introspection" ,gobject-introspection)
11469 ("itstool" ,itstool)
11470 ("libarchive" ,libarchive)
11471 ("libxml2" ,libxml2)
11472 ("pkg-config" ,pkg-config)
11473 ("vala" ,vala)
11474 ("xvfb" ,xorg-server-for-tests)))
11475 (synopsis "GNOME email application built around conversations")
11476 (description
11477 "Geary collects related messages together into conversations,
11478 making it easy to find and follow your discussions. Full-text and keyword
11479 search makes it easy to find the email you are looking for. Geary's
11480 full-featured composer lets you send rich, styled text with images, links, and
11481 lists, but also send lightweight, easy to read text messages. Geary
11482 automatically picks up your existing GNOME Online Accounts, and adding more is
11483 easy. Geary has a clean, fast, modern interface that works like you want it
11484 to.")
11485 (home-page "https://wiki.gnome.org/Apps/Geary")
11486 (license (list
11487 ;; geary
11488 license:lgpl2.1+
11489 ;; icons
11490 license:cc-by3.0
11491 license:cc-by-sa3.0
11492 license:public-domain
11493 ;; snowball
11494 license:bsd-2))))
11495
11496 (define-public glabels
11497 (package
11498 (name "glabels")
11499 (version "3.4.1")
11500 (source
11501 (origin
11502 (method url-fetch)
11503 (uri (string-append "mirror://gnome/sources/" name "/"
11504 (version-major+minor version) "/"
11505 "glabels-" version ".tar.xz"))
11506 (sha256
11507 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11508 (build-system glib-or-gtk-build-system)
11509 (native-inputs
11510 `(("gettext" ,gettext-minimal)
11511 ("glib:bin" ,glib "bin")
11512 ("intltool" ,intltool)
11513 ("itstool" ,itstool)
11514 ("pkg-config" ,pkg-config)))
11515 (inputs
11516 `(("gtk+" ,gtk+)
11517 ("librsvg" ,librsvg)
11518 ("libxml2" ,libxml2)))
11519 (home-page "https://glabels.org/")
11520 (synopsis "Program for creating labels and business cards")
11521 (description
11522 "gLabels is a program for creating labels and business cards. It is
11523 designed to work with various laser/ink-jet peel-off label and business
11524 card sheets that you’ll find at most office supply stores.")
11525 (license license:gpl3+)))
11526
11527 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11528 (define-public gnome-latex
11529 (package
11530 (name "gnome-latex")
11531 (version "3.36.0")
11532 (source
11533 (origin
11534 (method url-fetch)
11535 (uri (string-append "mirror://gnome/sources/" name "/"
11536 (version-major+minor version) "/"
11537 "gnome-latex-" version ".tar.xz"))
11538 (sha256
11539 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11540 (build-system glib-or-gtk-build-system)
11541 (native-inputs
11542 `(("gettext" ,gettext-minimal)
11543 ("glib:bin" ,glib "bin")
11544 ("gobject-introspection" ,gobject-introspection)
11545 ("gtk-doc" ,gtk-doc/stable)
11546 ("intltool" ,intltool)
11547 ("itstool" ,itstool)
11548 ("pkg-config" ,pkg-config)
11549 ("vala" ,vala)))
11550 (inputs
11551 `(("amtk" ,amtk)
11552 ("dconf" ,dconf)
11553 ("glib" ,glib)
11554 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11555 ("gspell" ,gspell)
11556 ("gtk+" ,gtk+)
11557 ("gtksourceview" ,gtksourceview)
11558 ("libgee" ,libgee)
11559 ("tepl" ,tepl)
11560 ("uchardet" ,uchardet)))
11561 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11562 (synopsis "LaTeX editor for the GNOME desktop")
11563 (description
11564 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11565 such as build tools, completion of LaTeX commands, structure navigation,
11566 symbol tables, document templates, project management, spell-checking, menus
11567 and toolbars.")
11568 (license license:gpl3+)))
11569
11570 (define-public setzer
11571 (package
11572 (name "setzer")
11573 (version "0.4.1")
11574 (source
11575 (origin
11576 (method git-fetch)
11577 (uri (git-reference
11578 (url "https://github.com/cvfosammmm/Setzer")
11579 (commit (string-append "v" version))))
11580 (file-name (git-file-name name version))
11581 (sha256
11582 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
11583 (build-system meson-build-system)
11584 (arguments
11585 `(#:glib-or-gtk? #t
11586 #:phases
11587 (modify-phases %standard-phases
11588 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11589 (lambda* (#:key outputs #:allow-other-keys)
11590 (let ((prog (string-append (assoc-ref outputs "out")
11591 "/bin/setzer"))
11592 (pylib (string-append (assoc-ref outputs "out")
11593 "/lib/python"
11594 ,(version-major+minor
11595 (package-version python))
11596 "/site-packages")))
11597 (wrap-program prog
11598 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
11599 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11600 #t))))))
11601 (native-inputs
11602 `(("desktop-file-utils" ,desktop-file-utils)
11603 ("gettext" ,gettext-minimal)
11604 ("glib:bin" ,glib "bin")
11605 ("gobject-introspection" ,gobject-introspection)
11606 ("gtk+:bin" ,gtk+ "bin")))
11607 (inputs
11608 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11609 ("gspell" ,gspell)
11610 ("gtk+" ,gtk+)
11611 ("gtksourceview" ,gtksourceview)
11612 ("pango" ,pango)
11613 ("poppler" ,poppler)
11614 ("python-pdfminer" ,python-pdfminer-six)
11615 ("python-pycairo" ,python-pycairo)
11616 ("python-pygobject" ,python-pygobject)
11617 ("python-pyxdg" ,python-pyxdg)
11618 ("webkitgtk" ,webkitgtk)
11619 ("xdg-utils" ,xdg-utils)))
11620 (home-page "https://www.cvfosammmm.org/setzer/")
11621 (synopsis "LaTeX editor written in Python with GTK+")
11622 (description
11623 "Setzer is a simple yet full-featured LaTeX editor written in Python with
11624 GTK+. It integrates well with the GNOME desktop environment.")
11625 (license license:gpl3+)))
11626
11627 (define-public apostrophe
11628 (package
11629 (name "apostrophe")
11630 (version "2.4")
11631 (source (origin
11632 (method git-fetch)
11633 (uri (git-reference
11634 (url "https://gitlab.gnome.org/somas/apostrophe")
11635 (commit (string-append "v" version))))
11636 (file-name (git-file-name name version))
11637 (sha256
11638 (base32
11639 "1qzy3zhi18wf42m034s8kcmx9gl05j620x3hf6rnycq2fvy7g4gz"))))
11640 (build-system meson-build-system)
11641 (arguments
11642 `(#:glib-or-gtk? #t
11643 #:phases
11644 (modify-phases %standard-phases
11645 (add-after 'unpack 'patch-meson
11646 (lambda _
11647 (substitute* "build-aux/meson_post_install.py"
11648 (("gtk-update-icon-cache") "true"))
11649 #t))
11650 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11651 (lambda* (#:key inputs outputs #:allow-other-keys)
11652 (let ((prog (string-append (assoc-ref outputs "out")
11653 "/bin/apostrophe"))
11654 (pylib (string-append (assoc-ref outputs "out")
11655 "/lib/python"
11656 ,(version-major+minor
11657 (package-version python))
11658 "/site-packages")))
11659 (wrap-program prog
11660 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
11661 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
11662 `("PATH" prefix (,(string-append (assoc-ref inputs "pandoc")
11663 "/bin"))))
11664 #t))))))
11665 (inputs
11666 `(("glib" ,glib)
11667 ("gobject-introspection" ,gobject-introspection)
11668 ("gspell" ,gspell)
11669 ("gtk+" ,gtk+)
11670 ("libhandy" ,libhandy)
11671 ("pandoc" ,pandoc)
11672 ("python-chardet" ,python-chardet)
11673 ("python-levenshtein" ,python-levenshtein)
11674 ("python-regex" ,python-regex)
11675 ("python-pycairo" ,python-pycairo)
11676 ("python-pygobject" ,python-pygobject)
11677 ("python-pyenchant" ,python-pyenchant)
11678 ("python-pypandoc" ,python-pypandoc)
11679 ("webkitgtk" ,webkitgtk)))
11680 (native-inputs
11681 `(("gettext" ,gettext-minimal)
11682 ("glib:bin" ,glib "bin")
11683 ("pkg-config" ,pkg-config)))
11684 (home-page "https://gitlab.gnome.org/somas/apostrophe")
11685 (synopsis "Markdown editor written in Python with GTK+")
11686 (description "Apostrophe is a GTK+ based distraction free Markdown editor.
11687 It uses pandoc as back-end for parsing Markdown.")
11688 (license license:gpl3)))
11689
11690 (define-public libratbag
11691 (package
11692 (name "libratbag")
11693 (version "0.14")
11694 (source
11695 (origin
11696 (method git-fetch)
11697 (uri (git-reference
11698 (url "https://github.com/libratbag/libratbag")
11699 (commit (string-append "v" version))))
11700 (file-name (git-file-name name version))
11701 (sha256
11702 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11703 (build-system meson-build-system)
11704 (arguments
11705 `(#:configure-flags
11706 (list "-Dsystemd=false"
11707 "-Dlogind-provider=elogind")
11708 #:phases
11709 (modify-phases %standard-phases
11710 (add-after 'install 'wrap
11711 (lambda* (#:key inputs outputs #:allow-other-keys)
11712 (let* ((out (assoc-ref outputs "out"))
11713 (site (string-append
11714 "/lib/python"
11715 ,(version-major+minor (package-version python))
11716 "/site-packages"))
11717 (evdev (string-append
11718 (assoc-ref inputs "python-evdev") site))
11719 (pygo (string-append
11720 (assoc-ref inputs "python-pygobject") site))
11721 (python-wrap
11722 `("PYTHONPATH" = (,evdev ,pygo))))
11723 (wrap-program (string-append out "/bin/" "ratbagctl")
11724 python-wrap)
11725 #t))))))
11726 (native-inputs
11727 `(("check" ,check)
11728 ("pkg-config" ,pkg-config)
11729 ("swig" ,swig)
11730 ("valgrind" ,valgrind)))
11731 (inputs
11732 `(("glib" ,glib)
11733 ("json-glib" ,json-glib)
11734 ("libevdev" ,libevdev)
11735 ("libsystemd" ,elogind)
11736 ("libunistring" ,libunistring)
11737 ("python-evdev" ,python-evdev)
11738 ("python-pygobject" ,python-pygobject)
11739 ("udev" ,eudev)))
11740 (home-page "https://github.com/libratbag/libratbag")
11741 (synopsis "DBus daemon and utility for configuring gaming mice")
11742 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11743 configure input devices, mainly gaming mice. The daemon provides a generic
11744 way to access the various features exposed by these mice and abstracts away
11745 hardware-specific and kernel-specific quirks. There is also the
11746 @command{ratbagctl} command line interface for configuring devices.
11747
11748 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11749 Steelseries.
11750
11751 The ratbagd DBus service can be enabled by adding the following service to
11752 your operating-system definition:
11753
11754 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11755 (license license:expat)))
11756
11757 (define-public piper
11758 (package
11759 (name "piper")
11760 (version "0.5.1")
11761 (source
11762 (origin
11763 (method git-fetch)
11764 (uri (git-reference
11765 (url "https://github.com/libratbag/piper")
11766 (commit version)))
11767 (sha256
11768 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11769 (file-name (git-file-name name version))))
11770 (build-system meson-build-system)
11771 (native-inputs
11772 `(("gettext" ,gettext-minimal)
11773 ("glib:bin" ,glib "bin")
11774 ("gobject-introspection" ,gobject-introspection)
11775 ("pkg-config" ,pkg-config)
11776 ("python-flake8" ,python-flake8)))
11777 (inputs
11778 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11779 ("gtk" ,gtk+)
11780 ("gtk:bin" ,gtk+ "bin")
11781 ("librsvg" ,librsvg)
11782 ("python-evdev" ,python-evdev)
11783 ("python-lxml" ,python-lxml)
11784 ("python-pycairo" ,python-pycairo)
11785 ("python-pygobject" ,python-pygobject)))
11786 (arguments
11787 `(#:imported-modules ((guix build python-build-system)
11788 ,@%meson-build-system-modules)
11789 #:modules (((guix build python-build-system) #:prefix python:)
11790 (guix build meson-build-system)
11791 (guix build utils))
11792 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11793 #:phases
11794 (modify-phases %standard-phases
11795 (add-after 'unpack 'dont-update-gtk-icon-cache
11796 (lambda _
11797 (substitute* "meson.build"
11798 (("meson.add_install_script('meson_install.sh')") ""))
11799 #t))
11800 ;; TODO: Switch to wrap-script when it is fixed.
11801 (add-after 'install 'wrap-python
11802 (assoc-ref python:%standard-phases 'wrap))
11803 (add-after 'wrap-python 'wrap
11804 (lambda* (#:key outputs #:allow-other-keys)
11805 (wrap-program
11806 (string-append (assoc-ref outputs "out" )"/bin/piper")
11807 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11808 #t)))))
11809 (home-page "https://github.com/libratbag/piper/")
11810 (synopsis "Configure bindings and LEDs on gaming mice")
11811 (description "Piper is a GTK+ application for configuring gaming mice with
11812 onboard configuration for key bindings via libratbag. Piper requires
11813 a @command{ratbagd} daemon running with root privileges. It can be run
11814 manually as root, but is preferably configured as a DBus service that can
11815 launch on demand. This can be configured by enabling the following service,
11816 provided there is a DBus service present:
11817
11818 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11819 (license license:gpl2)))
11820
11821 (define-public parlatype
11822 (package
11823 (name "parlatype")
11824 (version "2.1")
11825 (source
11826 (origin
11827 (method git-fetch)
11828 (uri (git-reference
11829 (url "https://github.com/gkarsay/parlatype")
11830 (commit (string-append "v" version))))
11831 (file-name (git-file-name name version))
11832 (sha256
11833 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11834 (build-system meson-build-system)
11835 (arguments
11836 `(#:glib-or-gtk? #t
11837 #:tests? #f ;require internet access
11838 #:phases
11839 (modify-phases %standard-phases
11840 (add-after 'install 'wrap-parlatype
11841 ;; Add gstreamer plugin provided in this package to system's
11842 ;; plugins.
11843 (lambda* (#:key outputs #:allow-other-keys)
11844 (let* ((out (assoc-ref outputs "out"))
11845 (gst-plugin-path (string-append
11846 out "/lib/gstreamer-1.0/"
11847 ":"
11848 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11849 (wrap-program (string-append out "/bin/parlatype")
11850 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11851 #t)))))
11852 (native-inputs
11853 `(("appstream-glib" ,appstream-glib)
11854 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11855 ("gettext" ,gettext-minimal)
11856 ("glib" ,glib "bin") ;for glib-compile-resources
11857 ("pkg-config" ,pkg-config)
11858 ("yelp-tools" ,yelp-tools)))
11859 (inputs
11860 `(("gst-plugins-base" ,gst-plugins-base)
11861 ("gst-plugins-good" ,gst-plugins-good)
11862 ("gstreamer" ,gstreamer)
11863 ("gtk+" ,gtk+)
11864 ("pocketsphinx" ,pocketsphinx)
11865 ("pulseaudio" ,pulseaudio)
11866 ("sphinxbase" ,sphinxbase)))
11867 (home-page "http://gkarsay.github.io/parlatype/")
11868 (synopsis "GNOME audio player for transcription")
11869 (description "Parlatype is an audio player for the GNOME desktop
11870 environment. Its main purpose is the manual transcription of spoken
11871 audio files.")
11872 (license license:gpl3+)))
11873
11874 (define-public jsonrpc-glib
11875 (package
11876 (name "jsonrpc-glib")
11877 (version "3.34.0")
11878 (source (origin
11879 (method url-fetch)
11880 (uri (string-append "mirror://gnome/sources/" name "/"
11881 (version-major+minor version) "/"
11882 name "-" version ".tar.xz"))
11883 (sha256
11884 (base32
11885 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11886 (build-system meson-build-system)
11887 (inputs
11888 `(("json-glib" ,json-glib)
11889 ("glib" ,glib)))
11890 (native-inputs
11891 `(("pkg-config" ,pkg-config)
11892 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11893 ("gobject-introspection" ,gobject-introspection)
11894 ("vala" ,vala)))
11895 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11896 (synopsis "JSON-RPC library for GLib")
11897 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11898 peers in either a synchronous or asynchronous fashion. It also allows
11899 communicating using the GVariant serialization format instead of JSON when
11900 both peers support it. You might want that when communicating on a single
11901 host to avoid parser overhead and memory-allocator fragmentation.")
11902 (license license:lgpl2.1+)))
11903
11904 (define-public feedbackd
11905 (package
11906 (name "feedbackd")
11907 (version "0.0.0+git20200527")
11908 (source (origin
11909 (method git-fetch)
11910 (uri (git-reference
11911 (url "https://source.puri.sm/Librem5/feedbackd.git")
11912 (commit (string-append "v" version))))
11913 (file-name (git-file-name name version))
11914 (sha256
11915 (base32
11916 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11917 (build-system meson-build-system)
11918 (native-inputs
11919 `(("glib:bin" ,glib "bin")
11920 ("gobject-introspection" ,gobject-introspection)
11921 ("pkg-config" ,pkg-config)
11922 ("vala" ,vala)))
11923 (inputs
11924 `(("dbus" ,dbus)
11925 ("gsound" ,gsound)
11926 ("json-glib" ,json-glib)
11927 ("libgudev" ,libgudev)))
11928 (propagated-inputs
11929 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11930 (synopsis "Haptic/visual/audio feedback via DBus")
11931 (description "Feedbackd provides a DBus daemon to act on events to provide
11932 haptic, visual and audio feedback. It offers the libfeedbackd library and
11933 GObject introspection bindings.")
11934 (home-page "https://source.puri.sm/Librem5/feedbackd")
11935 (license (list license:lgpl2.1+ ; libfeedbackd
11936 license:lgpl3+)))) ; the rest
11937
11938 (define-public sysprof
11939 (package
11940 (name "sysprof")
11941 (version "3.36.0")
11942 (source
11943 (origin
11944 (method url-fetch)
11945 (uri (string-append "mirror://gnome/sources/sysprof/"
11946 (version-major+minor version) "/"
11947 "sysprof-" version ".tar.xz"))
11948 (sha256
11949 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11950 (build-system meson-build-system)
11951 (arguments
11952 `(#:configure-flags
11953 (list (string-append "-Dsystemdunitdir="
11954 %output
11955 "/share/systemd"))
11956 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11957 #:phases
11958 (modify-phases %standard-phases
11959 (add-after 'unpack 'patch-install-script
11960 (lambda _
11961 (substitute* "build-aux/meson/post_install.sh"
11962 (("gtk-update-icon-cache") "true")
11963 (("update-desktop-database") "true"))
11964 #t)))))
11965 (inputs
11966 `(("glib" ,glib)
11967 ("gtk+" ,gtk+)
11968 ("libdazzle" ,libdazzle)
11969 ("polkit" ,polkit)))
11970 (native-inputs
11971 `(("gettext" ,gettext-minimal)
11972 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11973 ("itstool" ,itstool)
11974 ("pkg-config" ,pkg-config)
11975 ("xmllint" ,libxml2)))
11976 ;; This home page is so woefully out of date as to be essentially useless.
11977 ;; (home-page "http://www.sysprof.com")
11978 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11979 (synopsis "System-wide performance profiler for GNU/Linux")
11980 (description
11981 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11982 GNU/Linux system including the kernel and all user-space applications. This
11983 helps find the function(s) in which a program spends most of its time.
11984
11985 It uses the kernel's built-in @code{ptrace} feature and handles shared
11986 libraries. Applications do not need to be recompiled--or even restarted.")
11987 (license license:gpl3+)))
11988
11989 (define-public gnome-builder
11990 (package
11991 (name "gnome-builder")
11992 (version "3.36.1")
11993 (source (origin
11994 (method url-fetch)
11995 (uri (string-append "mirror://gnome/sources/" name "/"
11996 (version-major+minor version) "/"
11997 name "-" version ".tar.xz"))
11998 (sha256
11999 (base32
12000 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
12001 (build-system meson-build-system)
12002 (arguments
12003 `(#:configure-flags (list "-Dnetwork_tests=false"
12004 ;; TODO: Enable all plugins...
12005 "-Dplugin_clang=false"
12006 "-Dplugin_flatpak=false"
12007 "-Dplugin_glade=false"
12008 ;; XXX: This one has been shown not to work in
12009 ;; <https://issues.guix.gnu.org/45272>
12010 "-Dplugin_jedi=false"
12011 ;; ... except this one.
12012 "-Dplugin_update_manager=false")
12013 #:phases
12014 (modify-phases %standard-phases
12015 (add-after 'unpack 'patch-meson
12016 (lambda* (#:key inputs #:allow-other-keys)
12017 (substitute* "build-aux/meson/post_install.py"
12018 (("gtk-update-icon-cache") "true")
12019 (("update-desktop-database") "true"))
12020 (substitute* "src/libide/meson.build"
12021 (("/usr/lib")
12022 (string-append (assoc-ref inputs "python-pygobject")
12023 "/lib")))
12024 #t))
12025 (add-after 'configure 'fix-ninja
12026 (lambda _
12027 ;; #43296: meson(?) incorrectly assumes we want to link
12028 ;; this PIE against a static libselinux.
12029 (substitute* "build.ninja"
12030 (("libselinux\\.a") "libselinux.so"))
12031 #t))
12032 (add-before 'check 'pre-check
12033 (lambda _
12034 (system "Xvfb :1 &")
12035 (setenv "DISPLAY" ":1")
12036 #t)))))
12037 (inputs
12038 `(("devhelp" ,devhelp)
12039 ("gspell" ,gspell)
12040 ("gtk+" ,gtk+)
12041 ("json-glib" ,json-glib)
12042 ("jsonrpc-glib" ,jsonrpc-glib)
12043 ("libdazzle" ,libdazzle)
12044 ("libgit2-glib" ,libgit2-glib)
12045 ("libpeas" ,libpeas)
12046 ("python-pygobject" ,python-pygobject)
12047 ("sysprof" ,sysprof)
12048 ("template-glib" ,template-glib)
12049 ("vte" ,vte)
12050 ("webkitgtk" ,webkitgtk)))
12051 (propagated-inputs
12052 `(("gtksourceview" ,gtksourceview))) ;needed for settings
12053 (native-inputs
12054 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
12055 ("glib:bin" ,glib "bin")
12056 ("gettext" ,gettext-minimal)
12057 ("pkg-config" ,pkg-config)
12058 ("vala" ,vala)
12059 ("xorg-server" ,xorg-server-for-tests)))
12060 (home-page "https://wiki.gnome.org/Apps/Builder")
12061 (synopsis "Toolsmith for GNOME-based applications")
12062 (description "Builder aims to be an integrated development
12063 environment (IDE) for writing GNOME-based software. It features fuzzy search,
12064 auto-completion, a mini code map, documentation browsing, Git integration, an
12065 integrated profiler via Sysprof, debugging support, and more.")
12066 (license license:gpl3+)))
12067
12068 (define-public komikku
12069 (package
12070 (name "komikku")
12071 (version "0.29.2")
12072 (source
12073 (origin
12074 (method git-fetch)
12075 (uri (git-reference
12076 (url "https://gitlab.com/valos/Komikku/")
12077 (commit (string-append "v" version))))
12078 (file-name (git-file-name name version))
12079 (sha256
12080 (base32
12081 "0g1whk0y3k1cy6ix20gz226ww1vzpb9hinn5d24z6j38mdgqqa5l"))))
12082 (build-system meson-build-system)
12083 (arguments
12084 `(#:glib-or-gtk? #t
12085 #:phases
12086 (modify-phases %standard-phases
12087 (add-after 'unpack 'patch-sources
12088 (lambda _
12089 (substitute* "komikku/utils.py"
12090 (("from komikku\\.servers import get_servers_list")
12091 ;; code following that line should migrate old databases
12092 ;; but the line itself results in an import error
12093 "return data_dir_path"))))
12094 (add-after 'unpack 'skip-gtk-update-icon-cache
12095 (lambda _
12096 (substitute* "meson_post_install.py"
12097 (("gtk-update-icon-cache") (which "true")))
12098 #t))
12099 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12100 (lambda* (#:key outputs #:allow-other-keys)
12101 (let ((prog (string-append (assoc-ref outputs "out")
12102 "/bin/komikku")))
12103 (wrap-program prog
12104 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
12105 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12106 #t))))))
12107 (inputs
12108 `(("gtk+" ,gtk+)
12109 ("libhandy" ,libhandy)
12110 ("libnotify" ,libnotify)
12111 ("libsecret" ,libsecret)
12112 ("python-beautifulsoup4" ,python-beautifulsoup4)
12113 ("python-brotli" ,python-brotli)
12114 ("python-cloudscraper" ,python-cloudscraper)
12115 ("python-dateparser" ,python-dateparser)
12116 ("python-keyring" ,python-keyring)
12117 ("python-lxml" ,python-lxml)
12118 ("python-magic" ,python-magic)
12119 ("python-pillow" ,python-pillow)
12120 ("python-pure-protobuf" ,python-pure-protobuf)
12121 ("python-pycairo" ,python-pycairo)
12122 ("python-pygobject" ,python-pygobject)
12123 ("python-requests" ,python-requests)
12124 ("python-unidecode" ,python-unidecode)
12125 ("webkitgtk" ,webkitgtk)))
12126 (native-inputs
12127 `(("desktop-file-utils" ,desktop-file-utils)
12128 ("gettext" ,gettext-minimal)
12129 ("glib:bin" ,glib "bin")
12130 ("gobject-introspection" ,gobject-introspection)
12131 ("pkg-config" ,pkg-config)))
12132 (home-page "https://gitlab.com/valos/Komikku")
12133 (synopsis "Manga reader for GNOME")
12134 (description "Komikku is an online/offline manga reader for GNOME,
12135 developed with the aim of being used with the Librem 5 phone.")
12136 (license license:gpl3+)))
12137
12138 (define-public libgda
12139 (package
12140 (name "libgda")
12141 (version "5.2.10")
12142 (source
12143 (origin
12144 (method git-fetch)
12145 (uri (git-reference
12146 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
12147 (commit (string-append "LIBGDA_" (string-replace-substring
12148 version "." "_")))))
12149 (file-name (git-file-name name version))
12150 (sha256
12151 (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
12152 (build-system gnu-build-system)
12153 (arguments
12154 `(#:configure-flags '("--enable-vala")
12155 ;; There's a race between check_cnc_lock and check_threaded_cnc
12156 ;; in tests/multi-threading.
12157 #:parallel-tests? #f
12158 #:phases
12159 (modify-phases %standard-phases
12160 (add-after 'unpack 'fix-glade-install
12161 (lambda _
12162 (substitute* "configure.ac"
12163 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
12164 "${datadir}/glade/catalogs")
12165 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
12166 "${datadir}/glade/pixmaps"))
12167 #t))
12168 (add-before 'check 'pre-check
12169 (lambda* (#:key inputs #:allow-other-keys)
12170 ;; Tests require a running X server.
12171 (system "Xvfb :1 &")
12172 (setenv "DISPLAY" ":1")
12173 #t))
12174 (add-after 'install 'symlink-glade-module
12175 (lambda* (#:key outputs #:allow-other-keys)
12176 (let* ((shlib "libgda-ui-5.0.so")
12177 (out (assoc-ref outputs "out"))
12178 (out/lib (string-append out "/lib"))
12179 (moduledir (string-append out/lib "/glade/modules")))
12180 (mkdir-p moduledir)
12181 (symlink (string-append out/lib "/" shlib)
12182 (string-append moduledir "/" shlib))
12183 #t))))))
12184 (propagated-inputs
12185 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
12186 (inputs
12187 `(("glib" ,glib)
12188 ("glade" ,glade3)
12189 ("gtk+" ,gtk+)
12190 ("libsecret" ,libsecret)
12191 ("libxslt" ,libxslt)
12192 ("openssl" ,openssl)
12193 ("vala" ,vala)))
12194 (native-inputs
12195 `(("autoconf" ,autoconf)
12196 ("autoconf-archive" ,autoconf-archive)
12197 ("automake" ,automake)
12198 ("glib:bin" ,glib "bin")
12199 ("gnome-common" ,gnome-common)
12200 ("gobject-introspection" ,gobject-introspection)
12201 ("gtk-doc" ,gtk-doc/stable)
12202 ("intltool" ,intltool)
12203 ("libtool" ,libtool)
12204 ("pkg-config" ,pkg-config)
12205 ("vala" ,vala)
12206 ("which" ,which)
12207 ("xorg-server" ,xorg-server-for-tests)
12208 ("yelp-tools" ,yelp-tools)))
12209 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12210 (synopsis "Uniform data access")
12211 (description
12212 "GNU Data Access (GDA) is an attempt to provide uniform access to
12213 different kinds of data sources (databases, information servers, mail spools,
12214 etc). It is a complete architecture that provides all you need to access
12215 your data.")
12216 (license license:lgpl2.1+)))
12217
12218 (define-public gtranslator
12219 (package
12220 (name "gtranslator")
12221 (version "3.36.0")
12222 (source (origin
12223 (method url-fetch)
12224 (uri (string-append "mirror://gnome/sources/" name "/"
12225 (version-major+minor version) "/"
12226 name "-" version ".tar.xz"))
12227 (sha256
12228 (base32
12229 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
12230 (build-system meson-build-system)
12231 (inputs
12232 `(("json-glib" ,json-glib)
12233 ("jsonrpc-glib" ,jsonrpc-glib)
12234 ("gettext" ,gettext-minimal)
12235 ("glib" ,glib)
12236 ("gtk+" ,gtk+)
12237 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12238 ("gspell" ,gspell)
12239 ("libdazzle" ,libdazzle)
12240 ("libgda" ,libgda)
12241 ("libsoup" ,libsoup)))
12242 (native-inputs
12243 `(("glib:bin" ,glib "bin")
12244 ("itstool" ,itstool)
12245 ("pkg-config" ,pkg-config)))
12246 (propagated-inputs
12247 `(("gtksourceview" ,gtksourceview))) ; required for source view
12248 (arguments
12249 `(#:build-type "release"
12250 #:glib-or-gtk? #t
12251 #:phases
12252 (modify-phases %standard-phases
12253 (add-after 'unpack 'skip-gtk-update-icon-cache
12254 (lambda _
12255 (substitute* "build-aux/meson/meson_post_install.py"
12256 (("gtk-update-icon-cache") (which "true")))
12257 #t)))))
12258 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12259 (synopsis "Translation making program")
12260 (description
12261 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12262 for the GNOME 3.x platform with many features. It aims to be a very complete
12263 editing environment for translation issues within the GNU gettext/GNOME desktop
12264 world.")
12265 (license license:gpl3+)))
12266
12267
12268 (define-public ocrfeeder
12269 (package
12270 (name "ocrfeeder")
12271 (version "0.8.3")
12272 (source (origin
12273 (method url-fetch)
12274 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12275 (version-major+minor version) "/"
12276 "ocrfeeder-" version ".tar.xz"))
12277 (sha256
12278 (base32
12279 "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529"))))
12280 (build-system gnu-build-system)
12281 (arguments
12282 `(#:phases
12283 (modify-phases %standard-phases
12284 (add-after
12285 'install 'wrap-program
12286 (lambda* (#:key outputs #:allow-other-keys)
12287 (let ((prog (string-append (assoc-ref outputs "out")
12288 "/bin/" "ocrfeeder"))
12289 (pylib (string-append (assoc-ref outputs "out")
12290 "/lib/python"
12291 ,(version-major+minor
12292 (package-version python))
12293 "/site-packages")))
12294 (wrap-program prog
12295 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
12296 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12297 #t))))))
12298 (native-inputs
12299 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12300 ("gobject-introspection" ,gobject-introspection)
12301 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12302 ("intltool" ,intltool)
12303 ("itstool" ,itstool)
12304 ("pkg-config" ,pkg-config)
12305 ("xmllint" ,libxml2)))
12306 (inputs
12307 `(("enchant" ,enchant)
12308 ("glib" ,glib)
12309 ("goocanvas" ,goocanvas)
12310 ("gtk" ,gtk+)
12311 ("gtkspell3" ,gtkspell3)
12312 ("libjpeg" ,libjpeg-turbo)
12313 ("libtiff" ,libtiff)
12314 ("libraw" ,libraw)
12315 ("ocrad" ,ocrad)
12316 ("python" ,python-wrapper)
12317 ("python-pygobject" ,python-pygobject)
12318 ("python-odfpy" ,python-odfpy)
12319 ("python-pillow" ,python-pillow)
12320 ("python-pyenchant" ,python-pyenchant)
12321 ("python-reportlab" ,python-reportlab)
12322 ("python-sane" ,python-sane)
12323 ("sane-backends" ,sane-backends)
12324 ("tesseract-ocr" ,tesseract-ocr)))
12325 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12326 (synopsis "Complete OCR Suite")
12327 (description "OCRFeeder is a complete Optical Character Recognition and
12328 Document Analysis and Recognition program.")
12329 (license license:gpl3+)))