gnu: simple-scan: Update to 3.38.1
[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 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 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 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, 2017, 2018, 2019, 2020 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 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 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020 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 ;;;
60 ;;; This file is part of GNU Guix.
61 ;;;
62 ;;; GNU Guix is free software; you can redistribute it and/or modify it
63 ;;; under the terms of the GNU General Public License as published by
64 ;;; the Free Software Foundation; either version 3 of the License, or (at
65 ;;; your option) any later version.
66 ;;;
67 ;;; GNU Guix is distributed in the hope that it will be useful, but
68 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
69 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
70 ;;; GNU General Public License for more details.
71 ;;;
72 ;;; You should have received a copy of the GNU General Public License
73 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
74
75 (define-module (gnu packages gnome)
76 #:use-module (gnu packages)
77 #:use-module (gnu packages admin)
78 #:use-module (gnu packages aidc)
79 #:use-module (gnu packages aspell)
80 #:use-module (gnu packages autotools)
81 #:use-module (gnu packages avahi)
82 #:use-module (gnu packages backup)
83 #:use-module (gnu packages base)
84 #:use-module (gnu packages bash)
85 #:use-module (gnu packages bison)
86 #:use-module (gnu packages boost)
87 #:use-module (gnu packages build-tools)
88 #:use-module (gnu packages calendar)
89 #:use-module (gnu packages cdrom)
90 #:use-module (gnu packages check)
91 #:use-module (gnu packages cmake)
92 #:use-module (gnu packages compression)
93 #:use-module (gnu packages crates-io)
94 #:use-module (gnu packages crates-graphics)
95 #:use-module (gnu packages crates-gtk)
96 #:use-module (gnu packages cups)
97 #:use-module (gnu packages curl)
98 #:use-module (gnu packages cyrus-sasl)
99 #:use-module (gnu packages databases)
100 #:use-module (gnu packages dbm)
101 #:use-module (gnu packages djvu)
102 #:use-module (gnu packages dns)
103 #:use-module (gnu packages docbook)
104 #:use-module (gnu packages documentation)
105 #:use-module (gnu packages enchant)
106 #:use-module (gnu packages flex)
107 #:use-module (gnu packages fonts)
108 #:use-module (gnu packages file-systems)
109 #:use-module (gnu packages fontutils)
110 #:use-module (gnu packages freedesktop)
111 #:use-module (gnu packages game-development)
112 #:use-module (gnu packages gcc)
113 #:use-module (gnu packages gettext)
114 #:use-module (gnu packages ghostscript)
115 #:use-module (gnu packages gimp)
116 #:use-module (gnu packages gl)
117 #:use-module (gnu packages glib)
118 #:use-module (gnu packages gnupg)
119 #:use-module (gnu packages gnuzilla)
120 #:use-module (gnu packages geo)
121 #:use-module (gnu packages gperf)
122 #:use-module (gnu packages graphviz)
123 #:use-module (gnu packages gstreamer)
124 #:use-module (gnu packages gtk)
125 #:use-module (gnu packages guile)
126 #:use-module (gnu packages ibus)
127 #:use-module (gnu packages icu4c)
128 #:use-module (gnu packages image)
129 #:use-module (gnu packages imagemagick)
130 #:use-module (gnu packages inkscape)
131 #:use-module (gnu packages iso-codes)
132 #:use-module (gnu packages kerberos)
133 #:use-module (gnu packages libcanberra)
134 #:use-module (gnu packages libffi)
135 #:use-module (gnu packages libunistring)
136 #:use-module (gnu packages libunwind)
137 #:use-module (gnu packages libusb)
138 #:use-module (gnu packages linux)
139 #:use-module (gnu packages lirc)
140 #:use-module (gnu packages lua)
141 #:use-module (gnu packages mail)
142 #:use-module (gnu packages mp3)
143 #:use-module (gnu packages multiprecision)
144 #:use-module (gnu packages music)
145 #:use-module (gnu packages ncurses)
146 #:use-module (gnu packages nettle)
147 #:use-module (gnu packages networking)
148 #:use-module (gnu packages ninja)
149 #:use-module (gnu packages node)
150 #:use-module (gnu packages nss)
151 #:use-module (gnu packages openldap)
152 #:use-module (gnu packages package-management)
153 #:use-module (gnu packages password-utils)
154 #:use-module (gnu packages pcre)
155 #:use-module (gnu packages pdf)
156 #:use-module (gnu packages perl)
157 #:use-module (gnu packages photo)
158 #:use-module (gnu packages php)
159 #:use-module (gnu packages pkg-config)
160 #:use-module (gnu packages polkit)
161 #:use-module (gnu packages popt)
162 #:use-module (gnu packages pretty-print)
163 #:use-module (gnu packages protobuf)
164 #:use-module (gnu packages pulseaudio)
165 #:use-module (gnu packages python)
166 #:use-module (gnu packages python-crypto)
167 #:use-module (gnu packages python-web)
168 #:use-module (gnu packages python-xyz)
169 #:use-module (gnu packages rdesktop)
170 #:use-module (gnu packages rdf)
171 #:use-module (gnu packages readline)
172 #:use-module (gnu packages ruby)
173 #:use-module (gnu packages rust)
174 #:use-module (gnu packages samba)
175 #:use-module (gnu packages scanner)
176 #:use-module (gnu packages sdl)
177 #:use-module (gnu packages search)
178 #:use-module (gnu packages selinux)
179 #:use-module (gnu packages slang)
180 #:use-module (gnu packages speech)
181 #:use-module (gnu packages spice)
182 #:use-module (gnu packages sqlite)
183 #:use-module (gnu packages ssh)
184 #:use-module (gnu packages swig)
185 #:use-module (gnu packages tex)
186 #:use-module (gnu packages time)
187 #:use-module (gnu packages tls)
188 #:use-module (gnu packages valgrind)
189 #:use-module (gnu packages version-control)
190 #:use-module (gnu packages video)
191 #:use-module (gnu packages virtualization)
192 #:use-module (gnu packages vpn)
193 #:use-module (gnu packages web)
194 #:use-module (gnu packages webkit)
195 #:use-module (gnu packages xdisorg)
196 #:use-module (gnu packages xiph)
197 #:use-module (gnu packages xml)
198 #:use-module (gnu packages xorg)
199 #:use-module (gnu artwork)
200 #:use-module ((guix build utils) #:select (modify-phases))
201 #:use-module (guix build-system cargo)
202 #:use-module (guix build-system cmake)
203 #:use-module (guix build-system glib-or-gtk)
204 #:use-module (guix build-system gnu)
205 #:use-module (guix build-system meson)
206 #:use-module (guix build-system python)
207 #:use-module (guix build-system trivial)
208 #:use-module (guix download)
209 #:use-module (guix git-download)
210 #:use-module ((guix licenses) #:prefix license:)
211 #:use-module (guix packages)
212 #:use-module (guix utils)
213 #:use-module (guix gexp)
214 #:use-module (guix monads)
215 #:use-module (guix store)
216 #:use-module (ice-9 match)
217 #:use-module (srfi srfi-1))
218
219 (define-public gupnp-igd
220 (package
221 (name "gupnp-igd")
222 (version "1.2.0")
223 (source
224 (origin
225 (method url-fetch)
226 (uri
227 (string-append "mirror://gnome/sources/" name "/"
228 (version-major+minor version) "/"
229 name "-" version ".tar.xz"))
230 (sha256
231 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
232 (build-system meson-build-system)
233 (outputs '("out" "doc"))
234 (arguments
235 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
236 #:configure-flags (list "-Dgtk_doc=true")
237 #:phases
238 (modify-phases %standard-phases
239 (add-after 'unpack 'patch-docbook-xml
240 (lambda* (#:key inputs #:allow-other-keys)
241 (with-directory-excursion "doc"
242 (substitute* "gupnp-igd-docs.xml"
243 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
244 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
245 "/xml/dtd/docbook/"))))
246 #t))
247 (add-after 'install 'move-doc
248 (lambda* (#:key outputs #:allow-other-keys)
249 (let* ((out (assoc-ref outputs "out"))
250 (doc (assoc-ref outputs "doc")))
251 (mkdir-p (string-append doc "/share"))
252 (rename-file
253 (string-append out "/share/gtk-doc")
254 (string-append doc "/share/gtk-doc"))
255 #t))))))
256 (native-inputs
257 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
258 ("docbook-xsl" ,docbook-xsl)
259 ("glib:bin" ,glib "bin")
260 ("gobject-introspection" ,gobject-introspection)
261 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
262 ("gtk-doc" ,gtk-doc)
263 ("pkg-config" ,pkg-config)))
264 (propagated-inputs
265 `(("glib" ,glib)
266 ("glib-networking" ,glib-networking)
267 ("gssdp" ,gssdp)
268 ("gupnp" ,gupnp)
269 ("libsoup" ,libsoup)))
270 (synopsis "UPnP IGD for GNOME")
271 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
272 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
273 (license license:lgpl2.1+)))
274
275 (define-public brasero
276 (package
277 (name "brasero")
278 (version "3.12.2")
279 (source (origin
280 (method url-fetch)
281 (uri (string-append "mirror://gnome/sources/brasero/"
282 (version-major+minor version) "/"
283 "brasero-" version ".tar.xz"))
284 (sha256
285 (base32
286 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
287 (build-system glib-or-gtk-build-system)
288 (arguments
289 `(#:configure-flags (list
290 (string-append "--with-girdir="
291 (assoc-ref %outputs "out")
292 "/share/gir-1.0")
293 (string-append "--with-typelibdir="
294 (assoc-ref %outputs "out")
295 "/lib/girepository-1.0"))
296 #:phases
297 (modify-phases %standard-phases
298 (add-before 'configure 'embed-growisofs
299 (lambda* (#:key inputs #:allow-other-keys)
300 (substitute* "plugins/growisofs/burn-growisofs.c"
301 (("\"growisofs") (string-append "\"" (which "growisofs"))))
302 #t)))))
303 (propagated-inputs
304 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
305 (native-inputs
306 `(("intltool" ,intltool)
307 ("itstool" ,itstool)
308 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
309 ("gobject-introspection" ,gobject-introspection)
310 ("pkg-config" ,pkg-config)))
311 (inputs
312 `(("dvd+rw-tools" ,dvd+rw-tools)
313 ("glib" ,glib)
314 ("gnome-doc-utils" ,gnome-doc-utils)
315 ("gstreamer" ,gstreamer)
316 ("gst-plugins-base" ,gst-plugins-base)
317 ("gtk+" ,gtk+)
318 ("libcanberra" ,libcanberra)
319 ("libice" ,libice)
320 ("libnotify" ,libnotify)
321 ("libsm" ,libsm)
322 ("libxml2" ,libxml2)
323 ("totem-pl-parser" ,totem-pl-parser)))
324 (home-page "https://wiki.gnome.org/Apps/Brasero")
325 (synopsis "CD/DVD burning tool for Gnome")
326 (description "Brasero is an application to burn CD/DVD for the Gnome
327 Desktop. It is designed to be as simple as possible and has some unique
328 features to enable users to create their discs easily and quickly.")
329 (license license:gpl2+)))
330
331 (define-public libcloudproviders
332 (package
333 (name "libcloudproviders")
334 (version "0.3.1")
335 (source
336 (origin
337 (method url-fetch)
338 (uri
339 (string-append "mirror://gnome/sources/" name "/"
340 (version-major+minor version) "/"
341 name "-" version ".tar.xz"))
342 (sha256
343 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
344 (build-system meson-build-system)
345 (outputs '("out" "doc"))
346 (arguments
347 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
348 #:configure-flags
349 (list
350 "-Denable-gtk-doc=true")
351 #:phases
352 (modify-phases %standard-phases
353 (add-after 'install 'move-doc
354 (lambda* (#:key outputs #:allow-other-keys)
355 (let* ((out (assoc-ref outputs "out"))
356 (doc (assoc-ref outputs "doc")))
357 (mkdir-p (string-append doc "/share"))
358 (rename-file
359 (string-append out "/share/gtk-doc")
360 (string-append doc "/share/gtk-doc"))
361 #t))))))
362 (native-inputs
363 `(("glib:bin" ,glib "bin")
364 ("gobject-introspection" ,gobject-introspection)
365 ("gtk-doc" ,gtk-doc)
366 ("pkg-config" ,pkg-config)
367 ("vala" ,vala)))
368 (inputs
369 `(("glib" ,glib)
370 ("glib-networking" ,glib-networking)))
371 (synopsis "Cloudproviders Integration API")
372 (description "Libcloudproviders is a DBus API that allows cloud storage sync
373 clients to expose their services. Clients such as file managers and desktop
374 environments can then provide integrated access to the cloud providers
375 services.")
376 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
377 (license license:lgpl3+)))
378
379 (define-public libgrss
380 (package
381 (name "libgrss")
382 (version "0.7.0")
383 (source
384 (origin
385 (method url-fetch)
386 (uri
387 (string-append "mirror://gnome/sources/" name "/"
388 (version-major+minor version) "/"
389 name "-" version ".tar.xz"))
390 (sha256
391 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
392 (build-system glib-or-gtk-build-system)
393 (outputs '("out" "doc"))
394 (arguments
395 `(#:configure-flags
396 (list
397 "--enable-gtk-doc"
398 (string-append "--with-html-dir="
399 (assoc-ref %outputs "doc")
400 "/share/gtk-doc/html"))
401 #:phases
402 (modify-phases %standard-phases
403 (add-after 'unpack 'patch-docbook-xml
404 (lambda* (#:key inputs #:allow-other-keys)
405 (with-directory-excursion "doc/reference"
406 (substitute* "libgrss-docs.sgml"
407 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
408 (string-append (assoc-ref inputs "docbook-xml")
409 "/xml/dtd/docbook/"))))
410 #t)))))
411 (native-inputs
412 `(("docbook-xml" ,docbook-xml-4.1.2)
413 ("gobject-introspection" ,gobject-introspection)
414 ("gtk-doc" ,gtk-doc)
415 ("pkg-config" ,pkg-config)))
416 (propagated-inputs
417 `(("glib" ,glib)
418 ("libsoup" ,libsoup)
419 ("libxml2" ,libxml2)))
420 (synopsis "Glib library for feeds")
421 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
422 and other formats.")
423 (home-page "https://wiki.gnome.org/Projects/Libgrss")
424 (license license:lgpl3+)))
425
426 (define-public gnome-js-common
427 (package
428 (name "gnome-js-common")
429 (version "0.1.2")
430 (source
431 (origin
432 (method url-fetch)
433 (uri
434 (string-append "mirror://gnome/sources/" name "/"
435 (version-major+minor version) "/"
436 name "-" version ".tar.gz"))
437 (sha256
438 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
439 (build-system glib-or-gtk-build-system)
440 (arguments
441 `(#:configure-flags
442 (list
443 "--disable-static")))
444 (native-inputs
445 `(("gettext" ,gettext-minimal)
446 ("intltool" ,intltool)
447 ("pkg-config" ,pkg-config)))
448 (synopsis "Common JS Modules")
449 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
450 bindings.")
451 (home-page "https://wiki.gnome.org/Projects/Seed")
452 (license license:gpl3+)))
453
454 (define-public seed
455 (package
456 (name "seed")
457 (version "3.8.1")
458 (source
459 (origin
460 (method url-fetch)
461 (uri
462 (string-append "mirror://gnome/sources/" name "/"
463 (version-major+minor version) "/"
464 name "-" version ".tar.xz"))
465 (sha256
466 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
467 (patches
468 (search-patches "seed-webkit.patch"))))
469 (build-system glib-or-gtk-build-system)
470 (outputs '("out" "doc"))
471 (arguments
472 `(#:configure-flags
473 (list
474 "--disable-static"
475 "--enable-xorg-module"
476 (string-append "--with-html-dir="
477 (assoc-ref %outputs "doc")
478 "/share/gtk-doc/html")
479 "--with-webkit=4.0")
480 #:phases
481 (modify-phases %standard-phases
482 ;; The seed-webkit.patch patches configure.ac.
483 ;; So the source files need to be re-bootstrapped.
484 (add-after 'unpack 'trigger-bootstrap
485 (lambda _
486 (for-each delete-file
487 (list
488 "configure"
489 "Makefile.in"))
490 #t))
491 (add-after 'unpack 'patch-tests
492 (lambda* (#:key outputs #:allow-other-keys)
493 (substitute* (find-files "." "\\.js$")
494 (("#!/usr/bin/env seed")
495 (string-append "#!" (getcwd) "/src/seed")))
496 #t))
497 (add-before 'build 'patch-docbook-xml
498 (lambda* (#:key inputs #:allow-other-keys)
499 (with-directory-excursion "doc"
500 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
501 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
502 (string-append (assoc-ref inputs "docbook-xml")
503 "/xml/dtd/docbook/"))))
504 #t)))))
505 (native-inputs
506 `(("autoconf" ,autoconf)
507 ("automake" ,automake)
508 ("docbook-xml" ,docbook-xml-4.1.2)
509 ("gettext" ,gettext-minimal)
510 ("gobject-introspection" ,gobject-introspection)
511 ("gtk-doc" ,gtk-doc)
512 ("intltool" ,intltool)
513 ("libtool" ,libtool)
514 ("pkg-config" ,pkg-config)))
515 (inputs
516 `(("cairo" ,cairo)
517 ("dbus" ,dbus)
518 ("dbus-glib" ,dbus-glib)
519 ("gnome-js-common" ,gnome-js-common)
520 ("gtk+" ,gtk+)
521 ("gtk+-2" ,gtk+-2)
522 ("libffi" ,libffi)
523 ("libxml2" ,libxml2)
524 ("mpfr" ,mpfr)
525 ("readline" ,readline)
526 ("sqlite" ,sqlite)
527 ("xscrnsaver" ,libxscrnsaver)))
528 (propagated-inputs
529 `(("glib" ,glib)
530 ("webkit" ,webkitgtk)))
531 (synopsis "GObject JavaScriptCore bridge")
532 (description "Seed is a library and interpreter, dynamically bridging
533 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
534 GNOME platform. It serves as something which enables you to write standalone
535 applications in JavaScript, or easily enable your application to be extensible
536 in JavaScript.")
537 (home-page "https://wiki.gnome.org/Projects/Seed")
538 (license license:lgpl2.0+)))
539
540 (define-public libdmapsharing
541 (package
542 (name "libdmapsharing")
543 (version "3.9.10")
544 (source
545 (origin
546 (method url-fetch)
547 (uri
548 (string-append "https://www.flyn.org/projects/"
549 name "/" name "-" version ".tar.gz"))
550 (sha256
551 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
552 (build-system glib-or-gtk-build-system)
553 (outputs '("out" "doc"))
554 (arguments
555 `(#:tests? #f ; Tests require networking.
556 #:configure-flags
557 (list
558 "--disable-static"
559 (string-append "--with-html-dir="
560 (assoc-ref %outputs "doc")
561 "/share/gtk-doc/html"))
562 #:phases
563 (modify-phases %standard-phases
564 (add-after 'unpack 'patch-docbook-xml
565 (lambda* (#:key inputs #:allow-other-keys)
566 (with-directory-excursion "doc"
567 (substitute* "libdmapsharing-4.0-docs.xml"
568 (("http://www.oasis-open.org/docbook/xml/4.3/")
569 (string-append (assoc-ref inputs "docbook-xml")
570 "/xml/dtd/docbook/"))))
571 #t)))))
572 (native-inputs
573 `(("check" ,check)
574 ("docbook-xml" ,docbook-xml-4.3)
575 ("gobject-introspection" ,gobject-introspection)
576 ("pedansee" ,pedansee)
577 ("pkg-config" ,pkg-config)
578 ("vala" ,vala)))
579 (inputs
580 `(("avahi" ,avahi)
581 ("gdk-pixbuf" ,gdk-pixbuf+svg)
582 ("gee" ,libgee)
583 ("gst-plugins-base" ,gst-plugins-base)
584 ("gtk+" ,gtk+)))
585 (propagated-inputs
586 `(("glib" ,glib)
587 ("glib-networking" ,glib-networking)
588 ("gstreamer" ,gstreamer)
589 ("libsoup" ,libsoup)))
590 (synopsis "Media management library")
591 (description "Libdmapsharing is a library which allows programs to access,
592 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
593 It is written in C using GObject and libsoup.")
594 (home-page "https://launchpad.net/gtx")
595 (license license:lgpl2.1+)))
596
597 (define-public gtx
598 (package
599 (name "gtx")
600 (version "0.2.2")
601 (source
602 (origin
603 (method url-fetch)
604 (uri
605 (string-append "https://launchpad.net/gtx/trunk/"
606 version "/+download/gtx-" version ".tar.gz"))
607 (sha256
608 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
609 (build-system glib-or-gtk-build-system)
610 (outputs '("out" "doc"))
611 (arguments
612 `(#:configure-flags
613 (list
614 "--disable-static"
615 "--enable-gtk-doc"
616 (string-append "--with-html-dir="
617 (assoc-ref %outputs "doc")
618 "/share/gtk-doc/html"))))
619 (native-inputs
620 `(("gobject-introspection" ,gobject-introspection)
621 ("gtk-doc" ,gtk-doc)
622 ("pkg-config" ,pkg-config)))
623 (propagated-inputs
624 `(("glib" ,glib)))
625 (synopsis "GLib Testing Framework")
626 (description "GTX is a small collection of convenience functions intended to
627 enhance the GLib testing framework. With specific emphasis on easing the pain
628 of writing test cases for asynchronous interactions.")
629 (home-page "https://launchpad.net/gtx")
630 (license license:lgpl2.1+)))
631
632 (define-public dee
633 (package
634 (name "dee")
635 (version "1.2.7")
636 (source
637 (origin
638 (method url-fetch)
639 (uri
640 (string-append "https://launchpad.net/dee/1.0/"
641 version "/+download/dee-" version ".tar.gz"))
642 (sha256
643 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
644 (patches
645 (search-patches "dee-vapi.patch"))))
646 (build-system glib-or-gtk-build-system)
647 (outputs '("out" "doc"))
648 (arguments
649 `(#:configure-flags
650 (list
651 "--disable-maintainer-flags"
652 (string-append "--with-pygi-overrides-dir="
653 (assoc-ref %outputs "out")
654 "/lib/python"
655 ,(version-major+minor
656 (package-version python))
657 "/site-packages/gi/overrides")
658 (string-append "--with-html-dir="
659 (assoc-ref %outputs "doc")
660 "/share/gtk-doc/html"))
661 #:phases
662 (modify-phases %standard-phases
663 (add-after 'unpack 'patch-docbook-xml
664 (lambda* (#:key inputs #:allow-other-keys)
665 (with-directory-excursion "doc/reference/dee-1.0"
666 (substitute* "dee-1.0-docs.sgml"
667 (("http://www.oasis-open.org/docbook/xml/4.3/")
668 (string-append (assoc-ref inputs "docbook-xml")
669 "/xml/dtd/docbook/"))))
670 #t))
671 (add-after 'patch-docbook-xml 'disable-failing-tests
672 (lambda _
673 (substitute* "tests/test-icu.c"
674 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
675 "")
676 (("setup, test_ascii_folder, teardown\\);")
677 ""))
678 #t))
679 (add-before 'check 'pre-check
680 (lambda _
681 ;; Tests require a running dbus-daemon.
682 (system "dbus-daemon &")
683 ;; For missing '/etc/machine-id'.
684 (setenv "DBUS_FATAL_WARNINGS" "0")
685 #t)))))
686 (native-inputs
687 `(("dbus" ,dbus)
688 ("dbus-test-runner" ,dbus-test-runner)
689 ("docbook-xml" ,docbook-xml-4.3)
690 ("gobject-introspection" ,gobject-introspection)
691 ("gtk-doc" ,gtk-doc)
692 ;; Would only be required by configure flag "--enable-extended-tests".
693 ;("gtx" ,gtx)
694 ("pkg-config" ,pkg-config)
695 ("pygobject" ,python-pygobject)
696 ("python" ,python-wrapper)
697 ("vala" ,vala)))
698 (inputs
699 `(("icu" ,icu4c)))
700 (propagated-inputs
701 `(("glib" ,glib)))
702 (synopsis "Model to synchronize multiple instances over DBus")
703 (description "Dee is a library that uses DBus to provide objects allowing
704 you to create Model-View-Controller type programs across DBus. It also consists
705 of utility objects which extend DBus allowing for peer-to-peer discoverability
706 of known objects without needing a central registrar.")
707 (home-page "https://launchpad.net/dee")
708 (license
709 ;; Dual-licensed
710 (list
711 license:lgpl3+
712 license:gpl3+))))
713
714 (define-public zeitgeist
715 (package
716 (name "zeitgeist")
717 (version "1.0.2")
718 (source
719 (origin
720 (method git-fetch)
721 (uri
722 (git-reference
723 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
724 (commit
725 (string-append "v" version))))
726 (file-name
727 (git-file-name name version))
728 (sha256
729 (base32 "0ig3d3j1n0ghaxsgfww6g2hhcdwx8cljwwfmp9jk1nrvkxd6rnmv"))))
730 (build-system glib-or-gtk-build-system)
731 (arguments
732 `(#:configure-flags
733 (list
734 "--enable-explain-queries"
735 "--enable-fts"
736 "--enable-docs")
737 #:phases
738 (modify-phases %standard-phases
739 (add-after 'unpack 'patch-docbook-xml
740 (lambda* (#:key inputs #:allow-other-keys)
741 (with-directory-excursion "doc/libzeitgeist"
742 (substitute* "zeitgeist-gtkdoc-index.sgml"
743 (("http://www.oasis-open.org/docbook/xml/4.3/")
744 (string-append (assoc-ref inputs "docbook-xml")
745 "/xml/dtd/docbook/"))))
746 #t))
747 (add-after 'patch-docbook-xml 'disable-failing-tests
748 (lambda _
749 (substitute* "test/direct/Makefile.am"
750 ((" log-test ")
751 ""))
752 (substitute* "test/c/Makefile.am"
753 ((" test-log ")
754 ""))
755 #t))
756 (add-before 'bootstrap 'remove-autogen-script
757 (lambda _
758 ;; To honor `autoreconf -vif` by build-system.
759 (delete-file "autogen.sh")
760 #t)))))
761 (native-inputs
762 `(("autoconf" ,autoconf)
763 ("automake" ,automake)
764 ("docbook-xml" ,docbook-xml-4.3)
765 ("gettext" ,gettext-minimal)
766 ("gobject-introspection" ,gobject-introspection)
767 ("gtk-doc" ,gtk-doc)
768 ("libtool" ,libtool)
769 ("pkg-config" ,pkg-config)
770 ("vala" ,vala)
771 ("xorg-server-for-tests" ,xorg-server-for-tests)))
772 (inputs
773 `(("dee-icu" ,dee)
774 ("gtk+" ,gtk+)
775 ("json-glib" ,json-glib)
776 ("sqlite" ,sqlite)
777 ("telepathy-glib" ,telepathy-glib)
778 ("python" ,python-wrapper)
779 ("python-rdflib" ,python-rdflib)
780 ("xapian-config" ,xapian)))
781 (propagated-inputs
782 `(("glib" ,glib)))
783 (synopsis "Desktop Activity Logging")
784 (description "Zeitgeist is a service which logs the users’s activities and
785 events, anywhere from files opened to websites visited and conversations. It
786 makes this information readily available for other applications to use. It is
787 able to establish relationships between items based on similarity and usage
788 patterns.")
789 (home-page "https://zeitgeist.freedesktop.org/")
790 (license
791 ;; Dual-licensed
792 (list
793 license:lgpl2.1+
794 license:gpl2+))))
795
796 (define-public gnome-photos
797 (package
798 (name "gnome-photos")
799 (version "3.34.2")
800 (source
801 (origin
802 (method url-fetch)
803 (uri
804 (string-append "mirror://gnome/sources/" name "/"
805 (version-major+minor version) "/"
806 name "-" version ".tar.xz"))
807 (sha256
808 (base32
809 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
810 (build-system meson-build-system)
811 (arguments
812 `(#:glib-or-gtk? #t
813 #:configure-flags
814 (list "-Ddogtail=false" ; Not available
815 ;; Required for RUNPATH validation.
816 (string-append "-Dc_link_args=-Wl,-rpath="
817 (assoc-ref %outputs "out") "/lib/gnome-photos"))
818 #:phases
819 (modify-phases %standard-phases
820 (add-after 'install 'wrap-gnome-photos
821 (lambda* (#:key inputs outputs #:allow-other-keys)
822 (let*
823 ((out (assoc-ref outputs "out")))
824 (wrap-program (string-append out "/bin/gnome-photos")
825 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
826 #t)))))
827 (native-inputs
828 `(("dbus" ,dbus)
829 ("desktop-file-utils" ,desktop-file-utils)
830 ("gettext" ,gettext-minimal)
831 ("git" ,git-minimal)
832 ("glib:bin" ,glib "bin")
833 ("gobject-introspection" ,gobject-introspection)
834 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
835 ("gtk+:bin" ,gtk+ "bin")
836 ("itstool" ,itstool)
837 ("pkg-config" ,pkg-config)))
838 (inputs
839 `(("babl" ,babl)
840 ("cairo" ,cairo)
841 ("gdk-pixbuf" ,gdk-pixbuf+svg)
842 ("gegl" ,gegl)
843 ("geocode-glib" ,geocode-glib)
844 ("gexiv2" ,gexiv2)
845 ("gnome-online-accounts" ,gnome-online-accounts)
846 ("gnome-online-miners" ,gnome-online-miners)
847 ("grilo" ,grilo)
848 ("grilo-plugins" ,grilo-plugins)
849 ("gtk+" ,gtk+)
850 ("libdazzle" ,libdazzle)
851 ("libgdata" ,libgdata)
852 ("libgfbgraph" ,gfbgraph)
853 ("libjpeg" ,libjpeg-turbo)
854 ("libpng" ,libpng)
855 ("librest" ,rest)
856 ("pygobject" ,python-pygobject)
857 ("tracker" ,tracker)
858 ("tracker-miners" ,tracker-miners)))
859 (synopsis "Access, organize and share your photos on GNOME desktop")
860 (description "GNOME Photos is a simple and elegant replacement for using a
861 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
862 cloud integration is offered through GNOME Online Accounts.")
863 (home-page "https://wiki.gnome.org/Apps/Photos")
864 (license license:gpl3+)))
865
866 (define-public gnome-music
867 (package
868 (name "gnome-music")
869 (version "3.34.5")
870 (source
871 (origin
872 (method url-fetch)
873 (uri
874 (string-append "mirror://gnome/sources/" name "/"
875 (version-major+minor version) "/"
876 name "-" version ".tar.xz"))
877 (sha256
878 (base32
879 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
880 (build-system meson-build-system)
881 (arguments
882 `(#:glib-or-gtk? #t
883 #:phases
884 (modify-phases %standard-phases
885 (add-after 'install 'wrap-gnome-music
886 (lambda* (#:key inputs outputs #:allow-other-keys)
887 (let*
888 ((out (assoc-ref outputs "out"))
889 (pylib (string-append out "/lib/python"
890 ,(version-major+minor
891 (package-version python))
892 "/site-packages")))
893 (wrap-program (string-append out "/bin/gnome-music")
894 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
895 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
896 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
897 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
898 #t)))))
899 (native-inputs
900 `(("desktop-file-utils" ,desktop-file-utils)
901 ("gettext" ,gettext-minimal)
902 ("glib:bin" ,glib "bin")
903 ("gobject-introspection" ,gobject-introspection)
904 ("gtk+:bin" ,gtk+ "bin")
905 ("itstools" ,itstool)
906 ("pkg-config" ,pkg-config)))
907 (inputs
908 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
909 ("grilo" ,grilo)
910 ("grilo-plugins" ,grilo-plugins)
911 ("gst-plugins-base" ,gst-plugins-base)
912 ("gstreamer" ,gstreamer)
913 ("gvfs" ,gvfs)
914 ("libdazzle" ,libdazzle)
915 ("libmediaart" ,libmediaart)
916 ("libsoup" ,libsoup)
917 ("pycairo" ,python-pycairo)
918 ("pygobject" ,python-pygobject)
919 ("tracker" ,tracker)
920 ("tracker-miners" ,tracker-miners)))
921 (synopsis "Simple music player for GNOME desktop")
922 (description "GNOME Music is the new GNOME music playing application that
923 aims to combine an elegant and immersive browsing experience with simple
924 and straightforward controls.")
925 (home-page "https://wiki.gnome.org/Apps/Music")
926 (license license:gpl2+)))
927
928 (define-public portablexdr
929 (package
930 (name "portablexdr")
931 (version "4.9.1")
932 (source
933 (origin
934 (method url-fetch)
935 (uri
936 (string-append "https://people.redhat.com/~rjones/" name "/files/"
937 name "-" version ".tar.gz"))
938 (sha256
939 (base32
940 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
941 (build-system gnu-build-system)
942 (synopsis "External Data Representation Library")
943 (description "PortableXDR is an implementation of External Data
944 Representation (XDR) Library. It is a standard data serialization format, for
945 uses such as computer network protocols. It allows data to be transferred
946 between different kinds of computer systems.")
947 (home-page "https://people.redhat.com/~rjones/portablexdr/")
948 (license
949 (list
950 license:gpl2+
951 license:lgpl2.1+))))
952
953 (define-public tepl
954 (package
955 (name "tepl")
956 (version "4.4.0")
957 (source
958 (origin
959 (method url-fetch)
960 (uri
961 (string-append "mirror://gnome/sources/" name "/"
962 (version-major+minor version) "/"
963 name "-" version ".tar.xz"))
964 (sha256
965 (base32
966 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
967 (build-system glib-or-gtk-build-system)
968 (arguments
969 `(#:tests? #f)) ; FIX-ME: Requires gvfs
970 (native-inputs
971 `(("gobject-introspection" ,gobject-introspection)
972 ("pkg-config" ,pkg-config)))
973 (inputs
974 `(("amtk" ,amtk)
975 ("glib" ,glib)
976 ("gtk+" ,gtk+)
977 ("gtksourceview" ,gtksourceview)
978 ("libxml2" ,libxml2)
979 ("uchardet" ,uchardet)))
980 (synopsis "Text editor product line")
981 (description "Tepl is a library that eases the development of
982 GtkSourceView-based text editors and IDEs.")
983 (home-page "https://wiki.gnome.org/Projects/Tepl")
984 (license license:lgpl2.1+)))
985
986 (define-public krb5-auth-dialog
987 (package
988 (name "krb5-auth-dialog")
989 (version "3.26.1")
990 (source
991 (origin
992 (method url-fetch)
993 (uri
994 (string-append "mirror://gnome/sources/" name "/"
995 (version-major+minor version) "/"
996 name "-" version ".tar.xz"))
997 (sha256
998 (base32
999 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1000 (build-system glib-or-gtk-build-system)
1001 (native-inputs
1002 `(("intltool" ,intltool)
1003 ("itstool" ,itstool)
1004 ("libxml2" ,libxml2)
1005 ("pkg-config" ,pkg-config)
1006 ("python-wrapper" ,python-wrapper)))
1007 (inputs
1008 `(("glib" ,glib)
1009 ("gtk+" ,gtk+)
1010 ("libnotify" ,libnotify)
1011 ("mit-krb5" ,mit-krb5)
1012 ("network-manager" ,network-manager)))
1013 (synopsis "Popup dialogs for Kerberos 5")
1014 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1015 tickets, and pops up a dialog when they are about to expire.")
1016 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1017 (license license:gpl2+)))
1018
1019 (define-public notification-daemon
1020 (package
1021 (name "notification-daemon")
1022 (version "3.20.0")
1023 (source
1024 (origin
1025 (method url-fetch)
1026 (uri
1027 (string-append "mirror://gnome/sources/" name "/"
1028 (version-major+minor version) "/"
1029 name "-" version ".tar.xz"))
1030 (sha256
1031 (base32
1032 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1033 (build-system glib-or-gtk-build-system)
1034 (native-inputs
1035 `(("intltool" ,intltool)
1036 ("pkg-config" ,pkg-config)))
1037 (inputs
1038 `(("glib" ,glib)
1039 ("gtk+" ,gtk+)
1040 ("x11" ,libx11)))
1041 (synopsis "Notification Daemon for GNOME Desktop")
1042 (description "Notification-Daemon is the server implementation of the
1043 freedesktop.org desktop notification specification.")
1044 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1045 (license license:gpl2+)))
1046
1047 (define-public mm-common
1048 (package
1049 (name "mm-common")
1050 (version "1.0.2")
1051 (source (origin
1052 (method url-fetch)
1053 (uri (string-append "mirror://gnome/sources/mm-common/"
1054 (version-major+minor version) "/"
1055 "mm-common-" version ".tar.xz"))
1056 (sha256
1057 (base32
1058 "07b4s5ckcz9q5gwx8vchim19mhfgl8wysqwi30pndks3m4zrzad2"))))
1059 (build-system meson-build-system)
1060 (arguments
1061 `(#:phases
1062 (modify-phases %standard-phases
1063 (add-after 'unpack 'patch
1064 (lambda* (#:key inputs #:allow-other-keys)
1065 (substitute* "util/mm-common-prepare.in"
1066 (("ln") (string-append (assoc-ref inputs "coreutils")
1067 "/bin/ln"))
1068 (("cp") (string-append (assoc-ref inputs "coreutils")
1069 "/bin/cp"))
1070 (("sed") (string-append (assoc-ref inputs "sed")
1071 "/bin/sed"))
1072 (("cat") (string-append (assoc-ref inputs "coreutils")
1073 "/bin/cat")))
1074 #t)))))
1075 (native-inputs
1076 `(("coreutils" ,coreutils)
1077 ("gettext" ,gettext-minimal)
1078 ("pkg-config" ,pkg-config)
1079 ("sed" ,sed)))
1080 (inputs
1081 `(("python" ,python)))
1082 (synopsis "Module of GNOME C++ bindings")
1083 (description "The mm-common module provides the build infrastructure
1084 and utilities shared among the GNOME C++ binding libraries. Release
1085 archives of mm-common include the Doxygen tag file for the GNU C++
1086 Library reference documentation.")
1087 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1088 (license license:gpl2+)))
1089
1090 (define-public phodav
1091 (package
1092 (name "phodav")
1093 (version "2.5")
1094 (source (origin
1095 (method url-fetch)
1096 (uri (string-append "mirror://gnome/sources/" name "/"
1097 (version-major+minor version) "/"
1098 name "-" version ".tar.xz"))
1099 (sha256
1100 (base32
1101 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1102 (build-system meson-build-system)
1103 (arguments
1104 `(#:phases
1105 (modify-phases %standard-phases
1106 (add-before 'check 'start-virtual-dir-server
1107 ;; The same server when started by tests/virtual-dir returns an
1108 ;; unexpected status (4 instead of 200) and fails a test. It is
1109 ;; unclear why starting it manually here makes it pass.
1110 (lambda _
1111 (system "tests/virtual-dir-server &")
1112 #t)))))
1113 (native-inputs
1114 `(("docbook-xml" ,docbook-xml-4.3)
1115 ("gettext" ,gettext-minimal)
1116 ("glib:bin" ,glib "bin")
1117 ("gtk-doc" ,gtk-doc)
1118 ("pkg-config" ,pkg-config)))
1119 (inputs
1120 `(("avahi" ,avahi)
1121 ("libgudev" ,libgudev)
1122 ("libsoup" ,libsoup)))
1123 (synopsis "WebDav server implementation using libsoup")
1124 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1125 but it is generic enough to be reused in other projects,
1126 in particular in the GNOME desktop.")
1127 (home-page "https://wiki.gnome.org/phodav")
1128 (license license:lgpl2.1+)))
1129
1130 (define-public gnome-color-manager
1131 (package
1132 (name "gnome-color-manager")
1133 (version "3.32.0")
1134 (source (origin
1135 (method url-fetch)
1136 (uri (string-append "mirror://gnome/sources/" name "/"
1137 (version-major+minor version) "/"
1138 name "-" version ".tar.xz"))
1139 (sha256
1140 (base32
1141 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1142 (build-system meson-build-system)
1143 (arguments
1144 `(#:glib-or-gtk? #t
1145 #:phases
1146 (modify-phases %standard-phases
1147 (add-before
1148 'check 'pre-check
1149 (lambda _
1150 ;; Tests require a running X server.
1151 (system "Xvfb :1 &")
1152 (setenv "DISPLAY" ":1")
1153 #t)))))
1154 (native-inputs
1155 `(("desktop-file-utils" ,desktop-file-utils)
1156 ("gettext" ,gettext-minimal)
1157 ("glib:bin" ,glib "bin")
1158 ("gtk+:bin" ,gtk+ "bin")
1159 ("itstool" ,itstool)
1160 ("pkg-config" ,pkg-config)
1161 ("xorg-server" ,xorg-server-for-tests)))
1162 (inputs
1163 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1164 ("appstream-glib" ,appstream-glib)
1165 ("colord-gtk" ,colord-gtk)
1166 ("exiv2" ,exiv2)
1167 ("gnome-desktop" ,gnome-desktop)
1168 ("libcanberra" ,libcanberra)
1169 ("libexif" ,libexif)
1170 ("libtiff" ,libtiff)
1171 ("libxrandr" ,libxrandr)
1172 ("libxtst" ,libxtst)
1173 ("libxxf86vm" ,libxxf86vm)
1174 ("vte" ,vte)
1175 ("xorgproto" ,xorgproto)))
1176 (synopsis "Color profile manager for the GNOME desktop")
1177 (description "GNOME Color Manager is a session framework that makes
1178 it easy to manage, install and generate color profiles
1179 in the GNOME desktop.")
1180 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1181 (license license:gpl2+)))
1182
1183 (define-public gnome-online-miners
1184 (package
1185 (name "gnome-online-miners")
1186 (version "3.34.0")
1187 (source (origin
1188 (method url-fetch)
1189 (uri (string-append "mirror://gnome/sources/" name "/"
1190 (version-major+minor version) "/"
1191 name "-" version ".tar.xz"))
1192 (sha256
1193 (base32
1194 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1195 (build-system glib-or-gtk-build-system)
1196 (native-inputs
1197 `(("gettext" ,gettext-minimal)
1198 ("glib:bin" ,glib "bin")
1199 ("gobject-introspection" ,gobject-introspection)
1200 ("gtk+:bin" ,gtk+ "bin")
1201 ("pkg-config" ,pkg-config)))
1202 (inputs
1203 `(("gnome-online-accounts" ,gnome-online-accounts)
1204 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1205 ("grilo" ,grilo)
1206 ("libgdata" ,libgdata)
1207 ("libgfbgraph" ,gfbgraph)
1208 ("libzapojit" ,libzapojit)
1209 ("rest" ,rest)
1210 ("tracker" ,tracker)))
1211 (synopsis "Web Crawlers for GNOME")
1212 (description "GNOME Online Miners provides a set of crawlers that
1213 go through your online content and index them locally in Tracker.
1214 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1215 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1216 (license license:gpl2+)))
1217
1218 (define-public gssdp
1219 (package
1220 (name "gssdp")
1221 (version "1.2.3")
1222 (source (origin
1223 (method url-fetch)
1224 (uri (string-append "mirror://gnome/sources/" name "/"
1225 (version-major+minor version) "/"
1226 name "-" version ".tar.xz"))
1227 (sha256
1228 (base32
1229 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1230 (build-system meson-build-system)
1231 (native-inputs
1232 `(("gettext" ,gettext-minimal)
1233 ("glib:bin" ,glib "bin")
1234 ("gobject-introspection" ,gobject-introspection)
1235 ("gtk-doc" ,gtk-doc)
1236 ("pkg-config" ,pkg-config)
1237 ("vala" ,vala)))
1238 (inputs
1239 `(("gtk+" ,gtk+)
1240 ("libsoup" ,libsoup)))
1241 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1242 Protocol} for GNOME")
1243 (description "This package provides a library to handle resource discovery
1244 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1245 a debugging tool, @command{gssdp-device-sniffer}.")
1246 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1247 (license license:lgpl2.0+)))
1248
1249 (define-public gupnp
1250 (package
1251 (name "gupnp")
1252 (version "1.2.4")
1253 (source (origin
1254 (method url-fetch)
1255 (uri (string-append "mirror://gnome/sources/" name "/"
1256 (version-major+minor version) "/"
1257 name "-" version ".tar.xz"))
1258 (sha256
1259 (base32
1260 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1261 (build-system meson-build-system)
1262 (native-inputs
1263 `(("gettext" ,gettext-minimal)
1264 ("glib:bin" ,glib "bin")
1265 ("gobject-introspection" ,gobject-introspection)
1266 ("gtk-doc" ,gtk-doc)
1267 ("pkg-config" ,pkg-config)
1268 ("vala" ,vala)))
1269 (inputs
1270 `(("gssdp" ,gssdp)
1271 ("gtk+" ,gtk+)
1272 ("libsoup" ,libsoup)))
1273 (synopsis "PnP API for GNOME")
1274 (description "This package provides GUPnP, an object-oriented framework
1275 for creating UPnP devices and control points, written in C using
1276 @code{GObject} and @code{libsoup}.")
1277 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1278 (license license:lgpl2.0+)))
1279
1280 (define-public gupnp-dlna
1281 (package
1282 (name "gupnp-dlna")
1283 (version "0.10.5")
1284 (source (origin
1285 (method url-fetch)
1286 (uri (string-append "mirror://gnome/sources/" name "/"
1287 (version-major+minor version) "/"
1288 name "-" version ".tar.xz"))
1289 (sha256
1290 (base32
1291 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1292 (build-system gnu-build-system)
1293 (native-inputs
1294 `(("gettext" ,gettext-minimal)
1295 ("glib:bin" ,glib "bin")
1296 ("gobject-introspection" ,gobject-introspection)
1297 ("gtk-doc" ,gtk-doc)
1298 ("libxml" ,libxml2)
1299 ("pkg-config" ,pkg-config)
1300 ("vala" ,vala)))
1301 (inputs
1302 `(("gstreamer" ,gstreamer)
1303 ("gupnp" ,gupnp)))
1304 (propagated-inputs
1305 `(("gst-plugins-base" ,gst-plugins-base)
1306 ("gst-plugins-good" ,gst-plugins-good)))
1307 (synopsis "GUPnP DLNA for GNOME")
1308 (description "This package provides a small utility library to
1309 support DLNA-related tasks such as media profile guessing, transcoding to a
1310 given profile, etc. DLNA is a subset of UPnP A/V.")
1311 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1312 (license license:lgpl2.0+)))
1313
1314 (define-public gupnp-av
1315 (package
1316 (name "gupnp-av")
1317 (version "0.12.11")
1318 (source (origin
1319 (method url-fetch)
1320 (uri (string-append "mirror://gnome/sources/" name "/"
1321 (version-major+minor version) "/"
1322 name "-" version ".tar.xz"))
1323 (sha256
1324 (base32
1325 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1326 (build-system gnu-build-system)
1327 (native-inputs
1328 `(("gettext" ,gettext-minimal)
1329 ("glib:bin" ,glib "bin")
1330 ("gobject-introspection" ,gobject-introspection)
1331 ("gtk-doc" ,gtk-doc)
1332 ("libxml" ,libxml2)
1333 ("pkg-config" ,pkg-config)))
1334 (inputs
1335 `(("gtk+" ,gtk+)
1336 ("gupnp" ,gupnp)))
1337 (synopsis "GUPnP A/V for GNOME")
1338 (description "This package provides a small library for handling
1339 and implementation of UPnP A/V profiles.")
1340 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1341 (license license:lgpl2.0+)))
1342
1343 (define-public libmediaart
1344 (package
1345 (name "libmediaart")
1346 (version "1.9.4")
1347 (source (origin
1348 (method url-fetch)
1349 (uri (string-append "mirror://gnome/sources/" name "/"
1350 (version-major+minor version) "/"
1351 name "-" version ".tar.xz"))
1352 (sha256
1353 (base32
1354 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
1355 (build-system gnu-build-system)
1356 (native-inputs
1357 `(("glib:bin" ,glib "bin")
1358 ("pkg-config" ,pkg-config)))
1359 (inputs
1360 `(("gdk-pixbuf" ,gdk-pixbuf)
1361 ("gettext" ,gettext-minimal)
1362 ("gobject-introspection" ,gobject-introspection)
1363 ("gtk+:doc" ,gtk+ "doc")
1364 ("vala" ,vala)))
1365 (synopsis "Media art library for the GNOME desktop")
1366 (description
1367 "The libmediaart library is the foundation for media art caching,
1368 extraction, and lookup for applications on the desktop.")
1369 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1370 (license license:lgpl2.1+)))
1371
1372 (define-public gnome-initial-setup
1373 (package
1374 (name "gnome-initial-setup")
1375 (version "3.32.1")
1376 (source (origin
1377 (method url-fetch)
1378 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1379 (version-major+minor version)
1380 "/gnome-initial-setup-" version ".tar.xz"))
1381 (sha256
1382 (base32
1383 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1384 (build-system meson-build-system)
1385 (arguments
1386 '(#:configure-flags '(;; Enable camera support for user selfie.
1387 "-Dcheese=auto"
1388 "-Dsystemd=false")
1389 #:phases (modify-phases %standard-phases
1390 (add-after 'unpack 'set-gkbd-file-name
1391 (lambda* (#:key inputs #:allow-other-keys)
1392 ;; Allow the "Preview" button in the keyboard layout
1393 ;; selection dialog to display the layout.
1394 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1395 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1396 (("\"gkbd-keyboard-display")
1397 (string-append "\"" libgnomekbd
1398 "/bin/gkbd-keyboard-display")))
1399 #t))))))
1400 (native-inputs
1401 `(("gettext" ,gettext-minimal)
1402 ("glib:bin" ,glib "bin")
1403 ("gobject-introspection" ,gobject-introspection)
1404 ("gtk+:bin" ,gtk+ "bin")
1405 ("pkg-config" ,pkg-config)))
1406 (inputs
1407 `(("accountsservice" ,accountsservice)
1408 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1409 ("gdm" ,gdm)
1410 ("geoclue" ,geoclue)
1411 ("gnome-desktop" ,gnome-desktop)
1412 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1413 ("gnome-online-accounts" ,gnome-online-accounts)
1414 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1415 ("gstreamer" ,gstreamer)
1416 ("ibus" ,ibus)
1417 ("json-glib" ,json-glib)
1418 ("krb5" ,mit-krb5)
1419 ("libgweather" ,libgweather)
1420 ("libnma" ,libnma)
1421 ("libsecret" ,libsecret)
1422 ("network-manager" ,network-manager)
1423 ("packagekit" ,packagekit)
1424 ("polkit" ,polkit)
1425 ("pwquality" ,libpwquality)
1426 ("rest" ,rest)
1427 ("upower" ,upower)
1428 ("webkitgtk" ,webkitgtk)
1429 ("libgnomekbd" ,libgnomekbd)))
1430 (synopsis "Initial setup wizard for GNOME desktop")
1431 (description "This package provides a set-up wizard when a
1432 user logs into GNOME for the first time. It typically provides a
1433 tour of all gnome components and allows the user to set them up.")
1434 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1435 (license license:gpl2)))
1436
1437 (define-public gnome-user-share
1438 (package
1439 (name "gnome-user-share")
1440 (version "3.33.1")
1441 (source (origin
1442 (method url-fetch)
1443 (uri (string-append "mirror://gnome/sources/" name "/"
1444 (version-major+minor version) "/"
1445 name "-" version ".tar.xz"))
1446 (sha256
1447 (base32
1448 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1449 (build-system meson-build-system)
1450 (arguments
1451 `(#:glib-or-gtk? #t
1452 #:configure-flags
1453 `("-Dsystemd=false"
1454 ;; Enable nautilus extension for file sharing.
1455 "-Dnautilus_extension=true")))
1456 (native-inputs
1457 `(("gettext" ,gettext-minimal)
1458 ("glib:bin" ,glib "bin")
1459 ("gobject-introspection" ,gobject-introspection)
1460 ("gtk+:bin" ,gtk+ "bin")
1461 ("pkg-config" ,pkg-config)
1462 ("yelp-tools" ,yelp-tools)))
1463 (inputs
1464 `(("glib" ,glib)
1465 ("gnome-bluetooth" ,gnome-bluetooth)
1466 ("gtk+" ,gtk+)
1467 ("libcanberra" ,libcanberra)
1468 ("libnotify" ,libnotify)
1469 ("nautilus" ,nautilus))) ; For nautilus extension.
1470 (synopsis "File sharing for GNOME desktop")
1471 (description "GNOME User Share is a small package that binds together
1472 various free software projects to bring easy to use user-level file
1473 sharing to the masses.")
1474 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1475 (license license:gpl2+)))
1476
1477 (define-public sushi
1478 (package
1479 (name "sushi")
1480 (version "3.32.1")
1481 (source (origin
1482 (method url-fetch)
1483 (uri (string-append "mirror://gnome/sources/" name "/"
1484 (version-major+minor version) "/"
1485 name "-" version ".tar.xz"))
1486 (sha256
1487 (base32
1488 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1489 (build-system meson-build-system)
1490 (arguments
1491 `(#:glib-or-gtk? #t
1492 #:phases
1493 (modify-phases %standard-phases
1494 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1495 (lambda* (#:key outputs #:allow-other-keys)
1496 (let ((prog (string-append (assoc-ref outputs "out")
1497 "/bin/sushi")))
1498 ;; Put existing typelibs before sushi's deps, so as to correctly
1499 ;; infer gdk-pixbuf
1500 (wrap-program prog
1501 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1502 #t))))))
1503 (native-inputs
1504 `(("glib:bin" ,glib "bin")
1505 ("gettext" ,gettext-minimal)
1506 ("gobject-introspection" ,gobject-introspection)
1507 ("pkg-config" ,pkg-config)))
1508 (inputs
1509 `(("clutter" ,clutter)
1510 ("clutter-gst" ,clutter-gst)
1511 ("clutter-gtk" ,clutter-gtk)
1512 ("evince" ,evince) ; For file previewing.
1513 ("freetype" ,freetype)
1514 ("gdk-pixbuf" ,gdk-pixbuf)
1515 ("gjs" ,gjs)
1516 ("gst-plugins-base" ,gst-plugins-base)
1517 ("gstreamer" ,gstreamer)
1518 ("gtksourceview" ,gtksourceview-3)
1519 ("harfbuzz" ,harfbuzz)
1520 ("libepoxy" ,libepoxy)
1521 ("libmusicbrainz" ,libmusicbrainz)
1522 ("libxml2" ,libxml2)
1523 ("neon" ,neon)
1524 ("webkitgtk" ,webkitgtk)))
1525 (synopsis "File previewer for the GNOME desktop")
1526 (description "Sushi is a DBus-activated service that allows applications to
1527 preview files on the GNOME desktop.")
1528 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1529 (license license:gpl2+)))
1530
1531 (define-public rygel
1532 (package
1533 (name "rygel")
1534 (version "0.38.3")
1535 (source (origin
1536 (method url-fetch)
1537 (uri (string-append "mirror://gnome/sources/" name "/"
1538 (version-major+minor version) "/"
1539 name "-" version ".tar.xz"))
1540 (sha256
1541 (base32
1542 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1543 (build-system gnu-build-system)
1544 (native-inputs
1545 `(("gettext" ,gettext-minimal)
1546 ("gobject-introspection" ,gobject-introspection)
1547 ("gtk-doc" ,gtk-doc)
1548 ("pkg-config" ,pkg-config)
1549 ("vala" ,vala)))
1550 (inputs
1551 `(("gdk-pixbuf" ,gdk-pixbuf)
1552 ("gssdp" ,gssdp)
1553 ("gstreamer" ,gstreamer)
1554 ("gst-plugins-base" ,gst-plugins-base)
1555 ("gtk+" ,gtk+)
1556 ("gupnp" ,gupnp)
1557 ("gupnp-av" ,gupnp-av)
1558 ("gupnp-dlna" ,gupnp-dlna)
1559 ("libgee" ,libgee)
1560 ("libmediaart" ,libmediaart)
1561 ("libsoup" ,libsoup)
1562 ("libxslt" ,libxslt)
1563 ("libunistring" ,libunistring)
1564 ("tracker" ,tracker)))
1565 (synopsis "Share audio, video, and pictures with other devices")
1566 (description
1567 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1568 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1569 pictures, and to control a media player on your home network.
1570
1571 Rygel achieves interoperability with other devices by trying to conform to the
1572 strict requirements of DLNA and by converting media on-the-fly to formats that
1573 client devices can handle.")
1574 (home-page "https://wiki.gnome.org/Projects/Rygel")
1575 (license (list
1576 ;; For logo (data/icons/*).
1577 license:cc-by-sa3.0
1578 ;; For all others.
1579 license:lgpl2.1+))))
1580
1581 (define-public libnma
1582 (package
1583 (name "libnma")
1584 (version "1.8.28")
1585 (source (origin
1586 (method url-fetch)
1587 (uri (string-append "mirror://gnome/sources/" name "/"
1588 (version-major+minor version) "/"
1589 name "-" version ".tar.xz"))
1590 (sha256
1591 (base32
1592 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1593 (build-system meson-build-system)
1594 (arguments
1595 `(#:phases
1596 (modify-phases %standard-phases
1597 (add-after 'unpack 'patch-docbook-xml
1598 (lambda* (#:key inputs #:allow-other-keys)
1599 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1600 "/xml/dtd/docbook")))
1601 (substitute* "libnma-docs.xml"
1602 (("http://.*/docbookx\\.dtd")
1603 (string-append xmldoc "/docbookx.dtd")))
1604 #t))))))
1605 (native-inputs
1606 `(("docbook-xml" ,docbook-xml-4.3)
1607 ("gettext" ,gettext-minimal)
1608 ("glib:bin" ,glib "bin")
1609 ("gtk-doc" ,gtk-doc)
1610 ("gobject-introspection" ,gobject-introspection)
1611 ("pkg-config" ,pkg-config)
1612 ("vala" ,vala)))
1613 (inputs
1614 `(("gcr" ,gcr)
1615 ("gtk+" ,gtk+)
1616 ("iso-codes" ,iso-codes)
1617 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1618 ("network-manager" ,network-manager)))
1619 (synopsis "Network Manager's applet library")
1620 (description "Libnma is an applet library for Network Manager. It was
1621 initially part of network-manager-applet and has now become a separate
1622 project.")
1623 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1624 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1625 ;; "LGPL-2.1+".
1626 (license license:gpl2+)))
1627
1628 (define-public gnome-menus
1629 (package
1630 (name "gnome-menus")
1631 (version "3.32.0")
1632 (source (origin
1633 (method url-fetch)
1634 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1635 (version-major+minor version) "/"
1636 name "-" version ".tar.xz"))
1637 (sha256
1638 (base32
1639 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1640 (build-system gnu-build-system)
1641 (native-inputs
1642 `(("gettext" ,gettext-minimal)
1643 ("glib" ,glib)
1644 ("pkg-config" ,pkg-config)))
1645 (synopsis "Menu support for GNOME desktop")
1646 (description "GNOME Menus contains the libgnome-menu library, the layout
1647 configuration files for the GNOME menu, as well as a simple menu editor.")
1648 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1649 (license license:lgpl2.0+)))
1650
1651 (define-public deja-dup
1652 (package
1653 (name "deja-dup")
1654 (version "40.6")
1655 (source (origin
1656 (method url-fetch)
1657 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1658 version "/deja-dup-" version ".tar.bz2"))
1659 (sha256
1660 (base32
1661 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1662 (build-system meson-build-system)
1663 (arguments
1664 `(#:glib-or-gtk? #t
1665 #:configure-flags
1666 (list
1667 ;; Otherwise, the RUNPATH will lack the final path component.
1668 (string-append "-Dc_link_args=-Wl,-rpath="
1669 (assoc-ref %outputs "out") "/lib/deja-dup"))
1670 #:phases
1671 (modify-phases %standard-phases
1672 (add-after 'unpack 'patch-paths
1673 (lambda* (#:key inputs #:allow-other-keys)
1674 (let ((python (assoc-ref inputs "python")))
1675 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1676 "libdeja/tests/scripts/instance-error.test")
1677 (("/bin/rm")
1678 (which "rm")))
1679 (substitute* "libdeja/tests/runner.vala"
1680 (("/bin/sh")
1681 (which "sh")))
1682 (substitute* "libdeja/tests/scripts/instance-error.test"
1683 (("`which python3`")
1684 (string-append python "/bin/python3"))))))
1685 (add-after 'unpack 'patch-libgpg-error
1686 (lambda* (#:key inputs #:allow-other-keys)
1687 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1688 (substitute* "meson.build"
1689 (("(gpgerror_libs = ).*" _ var)
1690 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1691 #t))
1692 (add-after 'unpack 'skip-gtk-update-icon-cache
1693 ;; Don't create 'icon-theme.cache'.
1694 (lambda _
1695 (substitute* "data/post-install.sh"
1696 (("gtk-update-icon-cache") "true"))
1697 #t)))))
1698 (inputs
1699 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1700 ("duplicity" ,duplicity)
1701 ("python" ,python)
1702 ("python-pygobject" ,python-pygobject)
1703 ("gtk+" ,gtk+)
1704 ("json-glib" ,json-glib)
1705 ("libnotify" ,libnotify)
1706 ("libgpg-error" ,libgpg-error)
1707 ("libsecret" ,libsecret)
1708 ("libsoup" ,libsoup)
1709 ("packagekit" ,packagekit)))
1710 (native-inputs
1711 `(("appstream-glib" ,appstream-glib)
1712 ("desktop-file-utils" ,desktop-file-utils)
1713 ("gettext" ,gettext-minimal)
1714 ("glib" ,glib "bin") ; for glib-compile-schemas.
1715 ("gobject-introspection" ,gobject-introspection)
1716 ("itstool" ,itstool)
1717 ("pkg-config" ,pkg-config)
1718 ("vala" ,vala)))
1719 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1720 (synopsis "Simple backup tool, for regular encrypted backups")
1721 (description
1722 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1723 uses duplicity as the backend, which supports incremental backups and storage
1724 either on a local, or remote machine via a number of methods.")
1725 (license license:gpl3+)))
1726
1727 (define-public gnome-commander
1728 (package
1729 (name "gnome-commander")
1730 (version "1.10.3")
1731 (source
1732 (origin
1733 (method url-fetch)
1734 (uri (string-append "mirror://gnome/sources/" name "/"
1735 (version-major+minor version) "/"
1736 "gnome-commander-" version ".tar.xz"))
1737 (sha256
1738 (base32 "0bis36awb73vhkncq8yr0qlnyaxynqkvmyqbg57ijqwd0m8hh4zg"))))
1739 (build-system glib-or-gtk-build-system)
1740 (native-inputs
1741 `(("desktop-file-utils" ,desktop-file-utils)
1742 ("gcc" ,gcc-8) ;required for -Wcast-function-type
1743 ("gettext" ,gettext-minimal)
1744 ("glib:bin" ,glib "bin")
1745 ("gobject-introspection" ,gobject-introspection)
1746 ("googletest" ,googletest)
1747 ("intltool" ,intltool)
1748 ("itstool" ,itstool)
1749 ("libtool" ,libtool)
1750 ("pkg-config" ,pkg-config)))
1751 (inputs
1752 `(("gconf" ,gconf)
1753 ("gnome-vfs" ,gnome-vfs)
1754 ("gtk+" ,gtk+-2)
1755 ("libxml2" ,libxml2)))
1756 (home-page "https://gcmd.github.io/")
1757 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1758 (description
1759 "GNOME Commander is a two-pane graphical file manager using GNOME
1760 libraries. It aims to fulfill the demands of more advanced users who
1761 like to focus on file management, their work through special applications
1762 and running smart commands.")
1763 (license license:gpl2+)))
1764
1765 (define-public gnome-user-docs
1766 (package
1767 (name "gnome-user-docs")
1768 (version "3.32.3")
1769 (source
1770 (origin
1771 (method url-fetch)
1772 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1773 (version-major+minor version)
1774 "/gnome-user-docs-" version ".tar.xz"))
1775 (sha256
1776 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1777 (build-system gnu-build-system)
1778 (native-inputs
1779 `(("gettext" ,gettext-minimal)
1780 ("itstool" ,itstool)
1781 ("pkg-config" ,pkg-config)
1782 ("xmllint" ,libxml2)))
1783 (synopsis "User documentation for the GNOME desktop")
1784 (description
1785 "The GNOME User Documentation explains how to use the GNOME desktop and its
1786 components. It covers usage and setup of the core GNOME programs by end-users
1787 and system administrators.")
1788 (home-page "https://live.gnome.org/DocumentationProject")
1789 (license license:cc-by3.0)))
1790
1791 (define-public gnome-getting-started-docs
1792 (package
1793 (name "gnome-getting-started-docs")
1794 (version "3.32.2")
1795 (source
1796 (origin
1797 (method url-fetch)
1798 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1799 (version-major+minor version)
1800 "/gnome-getting-started-docs-" version ".tar.xz"))
1801 (sha256
1802 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1803 (build-system gnu-build-system)
1804 (native-inputs
1805 `(("gettext" ,gettext-minimal)
1806 ("itstool" ,itstool)
1807 ("pkg-config" ,pkg-config)
1808 ("xmllint" ,libxml2)))
1809 (synopsis "Help to get new users started with the GNOME desktop")
1810 (description
1811 "The GNOME Getting Started Documentation contains GNOME's intuitive
1812 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1813
1814 It is normally used together with @command{gnome-initial-setup}, but is also
1815 useful as a tutorial and users' guide for new or less experienced users.")
1816 (home-page "https://live.gnome.org/DocumentationProject")
1817 (license license:cc-by-sa3.0)))
1818
1819 (define-public dia
1820 ;; This version from GNOME's repository includes fixes for compiling with
1821 ;; recent versions of the build tools. The latest activity on the
1822 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1823 ;; fixes since.
1824 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1825 (revision "2"))
1826 (package
1827 (name "dia")
1828 (version (git-version "0.97.3" revision commit))
1829 (source (origin
1830 (method git-fetch)
1831 (uri (git-reference
1832 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1833 (commit commit)))
1834 (file-name (git-file-name name version))
1835 (sha256
1836 (base32
1837 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1838 (build-system meson-build-system)
1839 (inputs
1840 `(("graphene" ,graphene)
1841 ("gtk+" ,gtk+-2)
1842 ("libxml2" ,libxml2)
1843 ("libxslt" ,libxslt)
1844 ("poppler" ,poppler)
1845 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1846 ;; ERROR: Unknown method "dependency" in object.
1847 ("python-2" ,python-2)))
1848 (native-inputs
1849 `(("appstream-glib" ,appstream-glib)
1850 ("docbook-xsl" ,docbook-xsl)
1851 ("glib" ,glib "bin")
1852 ("intltool" ,intltool)
1853 ("pkg-config" ,pkg-config)))
1854 (home-page "https://wiki.gnome.org/Apps/Dia")
1855 (synopsis "Diagram creation for GNOME")
1856 (description "Dia can be used to draw different types of diagrams, and
1857 includes support for UML static structure diagrams (class diagrams), entity
1858 relationship modeling, and network diagrams. The program supports various file
1859 formats like PNG, SVG, PDF and EPS.")
1860 (license license:gpl2+))))
1861
1862 ;; This is the unstable release, but it is required for the current stable
1863 ;; release of gvfs (1.38.1).
1864 (define-public libgdata
1865 (package
1866 (name "libgdata")
1867 (version "0.17.9")
1868 (source (origin
1869 (method url-fetch)
1870 (uri (string-append "mirror://gnome/sources/" name "/"
1871 (version-major+minor version) "/"
1872 name "-" version ".tar.xz"))
1873 (sha256
1874 (base32
1875 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1876 (build-system gnu-build-system)
1877 (arguments
1878 '(#:phases
1879 (modify-phases %standard-phases
1880 (add-before 'check 'disable-failing-tests
1881 (lambda _
1882 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1883 ;; They have been removed in libgdata 0.17.6, so just do the same.
1884 (substitute* "gdata/tests/Makefile"
1885 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1886 #t)))))
1887 (native-inputs
1888 `(("glib:bin" ,glib "bin")
1889 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1890 ("intltool" ,intltool)
1891 ("pkg-config" ,pkg-config)
1892 ("uhttpmock" ,uhttpmock)))
1893 (inputs
1894 `(("cyrus-sasl" ,cyrus-sasl)
1895 ("glib-networking" ,glib-networking)))
1896 (propagated-inputs
1897 `(("gcr" ,gcr)
1898 ("glib" ,glib)
1899 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1900 ("json-glib" ,json-glib)
1901 ("liboauth" ,liboauth)
1902 ("libsoup" ,libsoup)
1903 ("libxml2" ,libxml2)))
1904 (home-page "https://wiki.gnome.org/Projects/libgdata")
1905 (synopsis "Library for accessing online service APIs")
1906 (description
1907 "libgdata is a GLib-based library for accessing online service APIs using
1908 the GData protocol — most notably, Google's services. It provides APIs to
1909 access the common Google services, and has full asynchronous support.")
1910 (license license:lgpl2.1+)))
1911
1912 (define-public libgxps
1913 (package
1914 (name "libgxps")
1915 (version "0.3.1")
1916 (source (origin
1917 (method url-fetch)
1918 (uri (string-append "mirror://gnome/sources/" name "/"
1919 (version-major+minor version) "/"
1920 name "-" version ".tar.xz"))
1921 (sha256
1922 (base32
1923 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1924 (build-system meson-build-system)
1925 (native-inputs
1926 `(("gobject-introspection" ,gobject-introspection)
1927 ("pkg-config" ,pkg-config)))
1928 (inputs
1929 `(("gtk+" ,gtk+)
1930 ("libjpeg" ,libjpeg-turbo)
1931 ("lcms" ,lcms)
1932 ("libtiff" ,libtiff)))
1933 (propagated-inputs
1934 ;; In Requires of libgxps.pc.
1935 `(("cairo" ,cairo)
1936 ("glib" ,glib)
1937 ("libarchive" ,libarchive)))
1938 (home-page "https://wiki.gnome.org/Projects/libgxps")
1939 (synopsis "GObject-based library for handling and rendering XPS documents")
1940 (description
1941 "libgxps is a GObject-based library for handling and rendering XPS
1942 documents. This package also contains binaries that can convert XPS documents
1943 to other formats.")
1944 (license license:lgpl2.1+)))
1945
1946 (define-public gnome-characters
1947 (package
1948 (name "gnome-characters")
1949 (version "3.30.0")
1950 (source
1951 (origin
1952 (method url-fetch)
1953 (uri (string-append "mirror://gnome/sources/"
1954 "gnome-characters/" (version-major+minor version)
1955 "/gnome-characters-" version ".tar.xz"))
1956 (sha256
1957 (base32
1958 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1959 (build-system meson-build-system)
1960 (arguments
1961 `(#:glib-or-gtk? #t
1962 #:phases (modify-phases %standard-phases
1963 (add-after 'install 'wrap
1964 (lambda* (#:key outputs #:allow-other-keys)
1965 ;; GNOME Characters needs Typelib files from GTK and
1966 ;; gnome-desktop.
1967 (wrap-program (string-append (assoc-ref outputs "out")
1968 "/bin/gnome-characters")
1969 `("GI_TYPELIB_PATH" ":" prefix
1970 (,(getenv "GI_TYPELIB_PATH"))))
1971 #t)))))
1972 (native-inputs
1973 `(("gettext" ,gettext-minimal)
1974 ("glib:bin" ,glib "bin")
1975 ("gtk+:bin" ,gtk+ "bin")
1976 ("pkg-config" ,pkg-config)
1977 ("python" ,python-minimal)))
1978 (inputs
1979 `(("gjs" ,gjs)
1980 ("gtk+" ,gtk+)
1981 ("libunistring" ,libunistring)
1982 ("gnome-desktop" ,gnome-desktop)))
1983 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1984 (synopsis "Find and insert unusual characters")
1985 (description "Characters is a simple utility application to find
1986 and insert unusual characters. It allows you to quickly find the
1987 character you are looking for by searching for keywords.")
1988 (license license:bsd-3)))
1989
1990 (define-public gnome-common
1991 (package
1992 (name "gnome-common")
1993 (version "3.18.0")
1994 (source
1995 (origin
1996 (method url-fetch)
1997 (uri (string-append "mirror://gnome/sources/" name "/"
1998 (version-major+minor version) "/"
1999 name "-" version ".tar.xz"))
2000 (sha256
2001 (base32
2002 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2003 (build-system gnu-build-system)
2004 (home-page "https://www.gnome.org/")
2005 (synopsis "Bootstrap GNOME modules built from Git")
2006 (description "gnome-common contains various files needed to bootstrap
2007 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2008 can be used to configure a source directory checked out from Git and some
2009 commonly used macros.")
2010 (license license:gpl2+)))
2011
2012 (define-public gnome-contacts
2013 (package
2014 (name "gnome-contacts")
2015 (version "3.34")
2016 (source (origin
2017 (method url-fetch)
2018 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2019 (version-major+minor version) "/"
2020 name "-" version ".tar.xz"))
2021 (sha256
2022 (base32
2023 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
2024 (build-system meson-build-system)
2025 (arguments
2026 `(#:configure-flags '("-Dcheese=false")
2027 #:phases
2028 (modify-phases %standard-phases
2029 (add-after 'unpack 'generate-vapis
2030 (lambda* (#:key inputs #:allow-other-keys)
2031 ;; To generate goa's missing .vapi file
2032 (define goa
2033 (assoc-ref inputs "gnome-online-accounts:lib"))
2034
2035 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
2036 "--library=goa-1.0"
2037 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
2038 #t))
2039 (add-after 'unpack 'skip-gtk-update-icon-cache
2040 ;; Don't create 'icon-theme.cache'.
2041 (lambda _
2042 (substitute* "build-aux/meson_post_install.py"
2043 (("gtk-update-icon-cache") "true"))
2044 #t)))))
2045 (native-inputs
2046 `(("glib:bin" ,glib "bin")
2047 ("pkg-config" ,pkg-config)))
2048 (inputs
2049 `(("docbook-xml" ,docbook-xml)
2050 ("dockbook-xsl" ,docbook-xsl)
2051 ("evolution-data-server" ,evolution-data-server)
2052 ("gettext" ,gettext-minimal)
2053 ("gnome-desktop" ,gnome-desktop)
2054 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
2055 ("gobject-introspection" ,gobject-introspection)
2056 ("gst-plugins-base" ,gst-plugins-base)
2057 ("gtk+" ,gtk+)
2058 ("libgee" ,libgee)
2059 ("libxslt" ,libxslt)
2060 ("telepathy-glib" ,telepathy-glib)
2061 ("vala" ,vala)))
2062 (propagated-inputs
2063 `(("folks" ,folks)
2064 ("telepathy-mission-control" ,telepathy-mission-control)))
2065 (synopsis "GNOME's integrated address book")
2066 (description
2067 "GNOME Contacts organizes your contact information from online and
2068 offline sources, providing a centralized place for managing your contacts.")
2069 (home-page "https://wiki.gnome.org/Apps/Contacts")
2070 (license license:gpl2+)))
2071
2072 (define-public gnome-desktop
2073 (package
2074 (name "gnome-desktop")
2075 (version "3.34.2")
2076 (source
2077 (origin
2078 (method url-fetch)
2079 (uri (string-append "mirror://gnome/sources/" name "/"
2080 (version-major+minor version) "/"
2081 name "-" version ".tar.xz"))
2082 (sha256
2083 (base32
2084 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2085 (build-system meson-build-system)
2086 (arguments
2087 '(#:phases
2088 (modify-phases %standard-phases
2089 (add-before 'configure 'patch-path
2090 (lambda* (#:key inputs #:allow-other-keys)
2091 (let ((libc (assoc-ref inputs "libc")))
2092 (substitute* "libgnome-desktop/gnome-languages.c"
2093 (("\"locale\"")
2094 (string-append "\"" libc "/bin/locale\"")))
2095 #t)))
2096 (add-before 'configure 'patch-bubblewrap
2097 (lambda* (#:key inputs #:allow-other-keys)
2098 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2099 (("\"bwrap\",")
2100 (string-append "\"" (which "bwrap") "\","))
2101 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2102 (string-append "\"--ro-bind\", \""
2103 (%store-directory)
2104 "\", \""
2105 (%store-directory)
2106 "\","))
2107 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2108 #t))
2109 (add-before 'check 'pre-check
2110 (lambda* (#:key inputs #:allow-other-keys)
2111 ;; Tests require a running X server and locales.
2112 (system "Xvfb :1 &")
2113 (setenv "DISPLAY" ":1")
2114 (setenv "GUIX_LOCPATH"
2115 (string-append (assoc-ref inputs "glibc-locales")
2116 "/lib/locale"))
2117 #t)))))
2118 (native-inputs
2119 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2120 ("glibc-locales" ,glibc-locales) ; for tests
2121 ("gobject-introspection" ,gobject-introspection)
2122 ("itstool" ,itstool)
2123 ("intltool" ,intltool)
2124 ("pkg-config" ,pkg-config)
2125 ("xmllint" ,libxml2)
2126 ("xorg-server" ,xorg-server-for-tests)))
2127 (propagated-inputs
2128 ;; Required by gnome-desktop-3.0.pc.
2129 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2130 ("gtk+" ,gtk+)
2131 ("iso-codes" ,iso-codes)
2132 ("libseccomp" ,libseccomp)
2133 ("libx11" ,libx11)
2134 ("xkeyboard-config" ,xkeyboard-config)))
2135 (inputs
2136 `(("gdk-pixbuf" ,gdk-pixbuf)
2137 ("glib" ,glib)
2138 ("bubblewrap" ,bubblewrap)
2139 ("libxext" ,libxext)
2140 ("libxkbfile" ,libxkbfile)
2141 ("libxrandr" ,libxrandr)))
2142 (home-page "https://www.gnome.org/")
2143 (synopsis
2144 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2145 (description
2146 "The libgnome-desktop library provides API shared by several applications
2147 on the desktop, but that cannot live in the platform for various reasons.
2148 There is no API or ABI guarantee, although we are doing our best to provide
2149 stability. Documentation for the API is available with gtk-doc.
2150
2151 The gnome-about program helps find which version of GNOME is installed.")
2152 ; Some bits under the LGPL.
2153 (license license:gpl2+)))
2154
2155 (define-public gnome-doc-utils
2156 (package
2157 (name "gnome-doc-utils")
2158 (version "0.20.10")
2159 (source
2160 (origin
2161 (method url-fetch)
2162 (uri (string-append "mirror://gnome/sources/" name "/"
2163 (version-major+minor version) "/"
2164 name "-" version ".tar.xz"))
2165 (sha256
2166 (base32
2167 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2168 (build-system gnu-build-system)
2169 (native-inputs
2170 `(("intltool" ,intltool)
2171 ("docbook-xml" ,docbook-xml-4.4)
2172 ("python2-libxml2" ,python2-libxml2)
2173 ("libxml2" ,libxml2)
2174 ("libxslt" ,libxslt)
2175 ("pkg-config" ,pkg-config)
2176 ("python-2" ,python-2)))
2177 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2178 (synopsis
2179 "Documentation utilities for the Gnome project")
2180 (description
2181 "Gnome-doc-utils is a collection of documentation utilities for the
2182 Gnome project. It includes xml2po tool which makes it easier to translate
2183 and keep up to date translations of documentation.")
2184 (license license:gpl2+))) ; xslt under lgpl
2185
2186 (define-public gnome-disk-utility
2187 (package
2188 (name "gnome-disk-utility")
2189 (version "3.34.0")
2190 (source (origin
2191 (method url-fetch)
2192 (uri (string-append "mirror://gnome/sources/" name "/"
2193 (version-major+minor version) "/"
2194 name "-" version ".tar.xz"))
2195 (sha256
2196 (base32
2197 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2198 (build-system meson-build-system)
2199 (arguments
2200 '(#:configure-flags '("-Dlogind=libelogind")
2201 #:phases
2202 (modify-phases %standard-phases
2203 (add-after 'unpack 'skip-gtk-update-icon-cache
2204 ;; Don't create 'icon-theme.cache'.
2205 (lambda _
2206 (substitute* "meson_post_install.py"
2207 (("gtk-update-icon-cache") "true"))
2208 #t)))))
2209 (native-inputs
2210 `(("glib:bin" ,glib "bin")
2211 ("intltool" ,intltool)
2212 ("pkg-config" ,pkg-config)
2213 ("docbook-xml" ,docbook-xml)
2214 ("docbook-xsl" ,docbook-xsl)
2215 ("libxml2" ,libxml2)
2216 ("libxslt" ,libxslt)))
2217 (inputs
2218 `(("elogind" ,elogind)
2219 ("glib" ,glib)
2220 ("appstream-glib" ,appstream-glib)
2221 ("gnome-settings-daemon" ,gnome-settings-daemon)
2222 ("gtk+" ,gtk+)
2223 ("libcanberra" ,libcanberra)
2224 ("libdvdread" ,libdvdread)
2225 ("libnotify" ,libnotify)
2226 ("libpwquality" ,libpwquality)
2227 ("libsecret" ,libsecret)
2228 ("udisks" ,udisks)))
2229 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2230 (synopsis "Disk management utility for GNOME")
2231 (description "Disk management utility for GNOME.")
2232 (license license:gpl2+)))
2233
2234 (define-public gnome-font-viewer
2235 (package
2236 (name "gnome-font-viewer")
2237 (version "3.30.0")
2238 (source (origin
2239 (method url-fetch)
2240 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2241 (version-major+minor version)
2242 "/gnome-font-viewer-" version ".tar.xz"))
2243 (sha256
2244 (base32
2245 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2246 (build-system meson-build-system)
2247 (arguments
2248 '(#:phases
2249 (modify-phases %standard-phases
2250 (add-after 'unpack 'patch-post-install-script
2251 (lambda _
2252 (substitute* "meson-postinstall.sh"
2253 (("update-desktop-database") (which "true")))
2254 #t)))))
2255 (native-inputs
2256 `(("gettext" ,gettext-minimal)
2257 ("glib:bin" ,glib "bin")
2258 ("pkg-config" ,pkg-config)))
2259 (inputs
2260 `(("glib" ,glib)
2261 ("gnome-desktop" ,gnome-desktop)
2262 ("gtk+" ,gtk+)))
2263 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2264 (synopsis "GNOME Fonts")
2265 (description "Application to show you the fonts installed on your computer
2266 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2267 the font would look under various sizes.")
2268 (license license:gpl2+)))
2269
2270 (define-public gcr
2271 (package
2272 (name "gcr")
2273 (version "3.34.0")
2274 (source (origin
2275 (method url-fetch)
2276 (uri (string-append "mirror://gnome/sources/" name "/"
2277 (version-major+minor version) "/"
2278 name "-" version ".tar.xz"))
2279 (sha256
2280 (base32
2281 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2282 (build-system gnu-build-system)
2283 (arguments
2284 '(#:phases
2285 (modify-phases %standard-phases
2286 ;; These fail because /var/lib/dbus/machine-id is not present in the
2287 ;; build environment.
2288 (add-after 'unpack 'disable-failing-tests
2289 (lambda _
2290 (substitute* "Makefile.in"
2291 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2292 ""))
2293 #t))
2294 (add-before 'check 'pre-check
2295 (lambda _
2296 ;; Some tests expect to write to $HOME.
2297 (setenv "HOME" "/tmp")
2298 #t)))))
2299 (inputs
2300 `(("dbus" ,dbus)
2301 ("gnupg" ,gnupg) ;called as a child process during tests
2302 ("libgcrypt" ,libgcrypt)))
2303 (native-inputs
2304 `(("python" ,python-wrapper) ;for tests
2305 ("pkg-config" ,pkg-config)
2306 ("gettext" ,gettext-minimal)
2307 ("glib" ,glib "bin")
2308 ("gobject-introspection" ,gobject-introspection)
2309 ("libxml2" ,libxml2)
2310 ("vala" ,vala)
2311 ("xsltproc" ,libxslt)))
2312 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2313 (propagated-inputs
2314 `(("p11-kit" ,p11-kit)
2315 ("glib" ,glib)
2316 ("gtk+" ,gtk+)))
2317 (home-page "https://www.gnome.org")
2318 (synopsis "Libraries for displaying certificates and accessing key stores")
2319 (description
2320 "The GCR package contains libraries used for displaying certificates and
2321 accessing key stores. It also provides the viewer for crypto files on the
2322 GNOME Desktop.")
2323 (license license:lgpl2.1+)))
2324
2325 (define-public gdl
2326 (package
2327 (name "gdl")
2328 (version "3.34.0")
2329 (source (origin
2330 (method git-fetch)
2331 (uri (git-reference
2332 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2333 (commit (string-append "GDL_" (string-map (match-lambda
2334 (#\. #\_)
2335 (c c))
2336 version)))))
2337 (file-name (git-file-name name version))
2338 (sha256
2339 (base32
2340 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2341 (build-system gnu-build-system)
2342 (native-inputs
2343 `(("autoconf" ,autoconf)
2344 ("automake" ,automake)
2345 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2346 ("gnome-common" ,gnome-common)
2347 ("gtk-doc" ,gtk-doc)
2348 ("intltool" ,intltool)
2349 ("pkg-config" ,pkg-config)
2350 ("libtool" ,libtool)
2351 ("which" ,which)))
2352 (inputs
2353 `(("libxml2" ,libxml2)))
2354 (propagated-inputs
2355 ;; The gdl-3.0.pc file 'Requires' GTK+.
2356 `(("gtk+" ,gtk+)))
2357 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2358 (synopsis "GNOME docking library")
2359 (description "This library provides docking features for gtk+.")
2360 (license license:lgpl2.1+)))
2361
2362 ;;; A minimal variant used to break a cycle with Inkscape.
2363 (define-public gdl-minimal
2364 (package
2365 (inherit gdl)
2366 (name "gdl-minimal")
2367 (arguments
2368 '(#:phases
2369 (modify-phases %standard-phases
2370 (add-after 'unpack 'disable-doc-generation
2371 ;; XXX: There is no easy way to disable generating the
2372 ;; documentation.
2373 (lambda _
2374 (substitute* "configure.in"
2375 (("GTK_DOC_CHECK.*") "")
2376 (("docs/.*") ""))
2377 (substitute* "Makefile.am"
2378 (("gdl docs po") "gdl po"))
2379 #t)))))
2380 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2381
2382 (define-public libgnome-keyring
2383 (package
2384 (name "libgnome-keyring")
2385 (version "3.12.0")
2386 (source (origin
2387 (method url-fetch)
2388 (uri (string-append "mirror://gnome/sources/" name "/"
2389 (version-major+minor version) "/"
2390 name "-" version ".tar.xz"))
2391 (sha256
2392 (base32
2393 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2394 (build-system gnu-build-system)
2395 (inputs
2396 `(("libgcrypt" ,libgcrypt)
2397 ("dbus" ,dbus)))
2398 (native-inputs
2399 `(("pkg-config" ,pkg-config)
2400 ("glib" ,glib "bin")
2401 ("intltool" ,intltool)))
2402 (propagated-inputs
2403 ;; Referred to in .h files and .pc.
2404 `(("glib" ,glib)))
2405 (home-page "https://www.gnome.org")
2406 (synopsis "Accessing passwords from the GNOME keyring")
2407 (description
2408 "Client library to access passwords from the GNOME keyring.")
2409
2410 ;; Though a couple of files are LGPLv2.1+.
2411 (license license:lgpl2.0+)))
2412
2413 (define-public gnome-keyring
2414 (package
2415 (name "gnome-keyring")
2416 (version "3.34.0")
2417 (source (origin
2418 (method url-fetch)
2419 (uri (string-append "mirror://gnome/sources/" name "/"
2420 (version-major+minor version) "/"
2421 name "-" version ".tar.xz"))
2422 (sha256
2423 (base32
2424 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2425 (build-system gnu-build-system)
2426 (arguments
2427 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2428 ;not exist
2429 #:configure-flags
2430 (list
2431 (string-append "--with-pkcs11-config="
2432 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2433 (string-append "--with-pkcs11-modules="
2434 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2435 #:phases
2436 (modify-phases %standard-phases
2437 (add-after 'unpack 'fix-/bin/sh-reference
2438 (lambda _
2439 (substitute* "po/Makefile.in.in"
2440 (("/bin/sh") (which "sh")))
2441 #t))
2442 (add-after 'unpack 'fix-docbook
2443 (lambda* (#:key inputs #:allow-other-keys)
2444 (substitute* "docs/Makefile.am"
2445 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2446 (string-append (assoc-ref inputs "docbook-xsl")
2447 "/xml/xsl/docbook-xsl-"
2448 ,(package-version docbook-xsl)
2449 "/manpages/docbook.xsl")))
2450 (setenv "XML_CATALOG_FILES"
2451 (string-append (assoc-ref inputs "docbook-xml")
2452 "/xml/dtd/docbook/catalog.xml"))
2453 ;; Rerun the whole thing to avoid version mismatch ("This is
2454 ;; Automake 1.15.1, but the definition used by this
2455 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2456 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2457 (invoke "autoconf")
2458 (invoke "aclocal")
2459 (invoke "automake" "-ac"))))))
2460 (inputs
2461 `(("libgcrypt" ,libgcrypt)
2462 ("linux-pam" ,linux-pam)
2463 ("openssh" ,openssh)
2464 ("dbus" ,dbus)
2465 ("gcr" ,gcr)))
2466 (native-inputs
2467 `(("pkg-config" ,pkg-config)
2468 ("glib" ,glib "bin")
2469 ("glib" ,glib) ; for m4 macros
2470 ("python" ,python-2) ;for tests
2471 ("intltool" ,intltool)
2472 ("autoconf" ,autoconf)
2473 ("automake" ,automake)
2474 ("libxslt" ,libxslt) ;for documentation
2475 ("docbook-xml" ,docbook-xml-4.2)
2476 ("docbook-xsl" ,docbook-xsl)))
2477 (home-page "https://www.gnome.org")
2478 (synopsis "Daemon to store passwords and encryption keys")
2479 (description
2480 "gnome-keyring is a program that keeps passwords and other secrets for
2481 users. It is run as a daemon in the session, similar to ssh-agent, and other
2482 applications locate it via an environment variable or D-Bus.
2483
2484 The program can manage several keyrings, each with its own master password,
2485 and there is also a session keyring which is never stored to disk, but
2486 forgotten when the session ends.")
2487 (license license:lgpl2.1+)))
2488
2489 (define-public evince
2490 (package
2491 (name "evince")
2492 (version "3.36.5")
2493 (source (origin
2494 (method url-fetch)
2495 (uri (string-append "mirror://gnome/sources/evince/"
2496 (version-major+minor version) "/"
2497 "evince-" version ".tar.xz"))
2498 (sha256
2499 (base32
2500 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2501 (build-system glib-or-gtk-build-system)
2502 (arguments
2503 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2504 #:phases
2505 (modify-phases %standard-phases
2506 (add-before 'install 'skip-gtk-update-icon-cache
2507 ;; Don't create 'icon-theme.cache'.
2508 (lambda _
2509 (substitute* "data/Makefile"
2510 (("gtk-update-icon-cache") "true"))
2511 #t)))))
2512 (inputs
2513 `(("libarchive" ,libarchive)
2514 ("libgxps" ,libgxps)
2515 ("libspectre" ,libspectre)
2516 ("djvulibre" ,djvulibre)
2517 ("ghostscript" ,ghostscript)
2518 ("poppler" ,poppler)
2519 ("libtiff" ,libtiff)
2520 ;; TODO:
2521 ;; Build libkpathsea as a shared library for DVI support.
2522 ;; ("libkpathsea" ,texlive-bin)
2523 ("gnome-desktop" ,gnome-desktop)
2524 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2525 ("gspell" ,gspell)
2526 ("libgnome-keyring" ,libgnome-keyring)
2527 ("adwaita-icon-theme" ,adwaita-icon-theme)
2528 ("gdk-pixbuf" ,gdk-pixbuf)
2529 ("atk" ,atk)
2530 ("pango" ,pango)
2531 ("gtk+" ,gtk+)
2532 ("glib" ,glib)
2533 ("libxml2" ,libxml2)
2534 ("libsm" ,libsm)
2535 ("libice" ,libice)
2536 ("shared-mime-info" ,shared-mime-info)
2537 ("dconf" ,dconf)
2538 ("libcanberra" ,libcanberra)
2539 ("libsecret" ,libsecret)
2540
2541 ;; For tests.
2542 ("dogtail" ,python2-dogtail)))
2543 (native-inputs
2544 `(("itstool" ,itstool)
2545 ("intltool" ,intltool)
2546 ("glib" ,glib "bin")
2547 ("gobject-introspection" ,gobject-introspection)
2548 ("pkg-config" ,pkg-config)
2549 ("xmllint" ,libxml2)))
2550 (home-page "https://www.gnome.org/projects/evince/")
2551 (synopsis "GNOME's document viewer")
2552 (description
2553 "Evince is a document viewer for multiple document formats. It
2554 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2555 of Evince is to replace the multiple document viewers that exist
2556 on the GNOME Desktop with a single simple application.")
2557 (license license:gpl2+)))
2558
2559 (define-public gsettings-desktop-schemas
2560 (package
2561 (name "gsettings-desktop-schemas")
2562 (version "3.34.0")
2563 (source
2564 (origin
2565 (method url-fetch)
2566 (uri (string-append "mirror://gnome/sources/" name "/"
2567 (version-major+minor version) "/"
2568 name "-" version ".tar.xz"))
2569 (sha256
2570 (base32
2571 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2572 (build-system meson-build-system)
2573 (arguments
2574 '(#:phases (modify-phases %standard-phases
2575 (add-after 'unpack 'patch-schemas
2576 (lambda* (#:key inputs #:allow-other-keys)
2577 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2578 (substitute* (find-files "schemas"
2579 "\\.gschema\\.xml\\.in$")
2580 ;; Provide the correct file name of the default GNOME
2581 ;; background, 'adwaita-timed.xml'.
2582 (("@datadir@/backgrounds/gnome")
2583 (string-append theme "/share/backgrounds/gnome"))
2584 ;; Do not reference fonts, that may not exist.
2585 (("'Source Code Pro 10'") "'Monospace 11'"))
2586 #t))))))
2587 (inputs
2588 `(("glib" ,glib)
2589 ("gnome-backgrounds" ,gnome-backgrounds)))
2590 (native-inputs
2591 `(("intltool" ,intltool)
2592 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2593 ("gobject-introspection" ,gobject-introspection)
2594 ("pkg-config" ,pkg-config)))
2595 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2596 (synopsis
2597 "GNOME settings for various desktop components")
2598 (description
2599 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2600 for settings shared by various components of the GNOME desktop.")
2601 (license license:lgpl2.1+)))
2602
2603 (define-public python-liblarch
2604 (package
2605 (name "python-liblarch")
2606 (version "3.0.1")
2607 (source
2608 (origin
2609 (method git-fetch)
2610 (uri (git-reference
2611 (url "https://github.com/getting-things-gnome/liblarch")
2612 (commit (string-append "v" version))))
2613 (file-name (git-file-name name version))
2614 (sha256
2615 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2616 (build-system python-build-system)
2617 (arguments
2618 `(#:phases
2619 (modify-phases %standard-phases
2620 (add-before 'check 'start-xserver
2621 (lambda* (#:key inputs #:allow-other-keys)
2622 (system (format #f "~a/bin/Xvfb :1 &"
2623 (assoc-ref inputs "xorg-server")))
2624 (setenv "DISPLAY" ":1")
2625 #t)))))
2626 (native-inputs
2627 `(("xorg-server" ,xorg-server-for-tests)))
2628 (inputs
2629 `(("gtk+" ,gtk+)))
2630 (propagated-inputs
2631 `(("python-pygobject" ,python-pygobject)))
2632 (home-page "https://wiki.gnome.org/Projects/liblarch")
2633 (synopsis "Library to easily handle complex data structures")
2634 (description
2635 "Liblarch is a Python library built to easily handle data structures such
2636 as lists, trees and acyclic graphs. There's also a GTK binding that will
2637 allow you to use your data structure in a @code{Gtk.Treeview}.
2638
2639 Liblarch support multiple views of one data structure and complex filtering.
2640 That way, you have a clear separation between your data themselves (Model)
2641 and how they are displayed (View).")
2642 (license license:lgpl3+)))
2643
2644 (define-public gtg
2645 (package
2646 (name "gtg")
2647 (version "0.4")
2648 (source
2649 (origin
2650 (method git-fetch)
2651 (uri (git-reference
2652 (url "https://github.com/getting-things-gnome/gtg")
2653 (commit (string-append "v" version))))
2654 (file-name (git-file-name name version))
2655 (sha256
2656 (base32 "0r28vyr88rj3kd3cg4gj7sd29wadjchi92wzmbx67d4hlg25h8kk"))))
2657 (build-system meson-build-system)
2658 (arguments
2659 `(#:glib-or-gtk? #t
2660 #:phases
2661 (modify-phases %standard-phases
2662 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2663 (lambda* (#:key outputs #:allow-other-keys)
2664 (let ((prog (string-append (assoc-ref outputs "out")
2665 "/bin/gtg"))
2666 (pylib (string-append (assoc-ref outputs "out")
2667 "/lib/python"
2668 ,(version-major+minor
2669 (package-version python))
2670 "/site-packages")))
2671 (wrap-program prog
2672 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
2673 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2674 #t))))))
2675 (native-inputs
2676 `(("desktop-file-utils" ,desktop-file-utils)
2677 ("gettext" ,gettext-minimal)
2678 ("glib:bin" ,glib "bin")
2679 ("gobject-introspection" ,gobject-introspection)
2680 ("gtk+:bin" ,gtk+ "bin")
2681 ("pkg-config" ,pkg-config)))
2682 (inputs
2683 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2684 ("gtk+" ,gtk+)
2685 ("python-dbus" ,python-dbus)
2686 ("python-liblarch" ,python-liblarch)
2687 ("python-pycairo" ,python-pycairo)
2688 ("python-pygobject" ,python-pygobject)
2689 ("python-pyxdg" ,python-pyxdg)))
2690 (home-page "https://wiki.gnome.org/Apps/GTG")
2691 (synopsis "Personal organizer for the GNOME desktop")
2692 (description
2693 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2694 organizer for the GNOME desktop environment inspired by the Getting Things
2695 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2696 and ease of use in mind so it can be used as more than just GTD software.
2697 GTG is intended to help you track everything you need to do and need to
2698 know, from small tasks to large projects.")
2699 (license license:gpl3+)))
2700
2701 (define-public icon-naming-utils
2702 (package
2703 (name "icon-naming-utils")
2704 (version "0.8.90")
2705 (source
2706 (origin
2707 (method url-fetch)
2708 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2709 version ".tar.bz2"))
2710 (sha256
2711 (base32
2712 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2713 (build-system gnu-build-system)
2714 (inputs
2715 `(("perl" ,perl)
2716 ("perl-xml-simple" ,perl-xml-simple)))
2717 (arguments
2718 '(#:phases
2719 (modify-phases %standard-phases
2720 (add-after 'install 'set-load-paths
2721 ;; Tell 'icon-name-mapping' where XML::Simple is.
2722 (lambda* (#:key outputs #:allow-other-keys)
2723 (let* ((out (assoc-ref outputs "out"))
2724 (prog (string-append out "/libexec/icon-name-mapping")))
2725 (wrap-program
2726 prog
2727 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2728 #t)))))
2729 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2730 (synopsis
2731 "Utility to implement the Freedesktop Icon Naming Specification")
2732 (description
2733 "To help with the transition to the Freedesktop Icon Naming
2734 Specification, the icon naming utility maps the icon names used by the
2735 GNOME and KDE desktops to the icon names proposed in the specification.")
2736 (license license:lgpl2.1+)))
2737
2738 (define-public gnome-icon-theme
2739 (package
2740 (name "gnome-icon-theme")
2741 (version "3.12.0")
2742 (source
2743 (origin
2744 (method url-fetch)
2745 (uri (string-append "mirror://gnome/sources/" name "/"
2746 (version-major+minor version) "/"
2747 name "-" version ".tar.xz"))
2748 (sha256
2749 (base32
2750 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2751 (build-system gnu-build-system)
2752 (arguments
2753 '(#:configure-flags
2754 ;; Don't create 'icon-theme.cache'.
2755 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2756 (true (string-append coreutils "/bin/true")))
2757 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2758 (native-inputs
2759 `(("icon-naming-utils" ,icon-naming-utils)
2760 ("intltool" ,intltool)
2761 ("pkg-config" ,pkg-config)))
2762 (home-page "https://wiki.gnome.org/Personalization")
2763 (synopsis "GNOME icon theme")
2764 (description "Icons for the GNOME desktop.")
2765 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2766
2767 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2768 (define-public adwaita-icon-theme
2769 (package (inherit gnome-icon-theme)
2770 (name "adwaita-icon-theme")
2771 (version "3.34.3")
2772 (source (origin
2773 (method url-fetch)
2774 (uri (string-append "mirror://gnome/sources/" name "/"
2775 (version-major+minor version) "/"
2776 name "-" version ".tar.xz"))
2777 (sha256
2778 (base32
2779 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2780 (native-inputs
2781 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2782
2783 (define-public tango-icon-theme
2784 (package
2785 (name "tango-icon-theme")
2786 (version "0.8.90")
2787 (source (origin
2788 (method url-fetch)
2789 (uri (string-append "http://tango.freedesktop.org/releases/"
2790 "tango-icon-theme-" version ".tar.bz2"))
2791 (sha256
2792 (base32
2793 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2794 (build-system gnu-build-system)
2795 (native-inputs
2796 `(("icon-naming-utils" ,icon-naming-utils)
2797 ("intltool" ,intltool)
2798 ("imagemagick" ,imagemagick)
2799 ("pkg-config" ,pkg-config)))
2800 (home-page "http://tango-project.org/")
2801 (synopsis "Tango icon theme")
2802 (description "This is an icon theme that follows the Tango visual
2803 guidelines.")
2804 (license license:public-domain)))
2805
2806 (define-public shared-mime-info
2807 (package
2808 (name "shared-mime-info")
2809 (version "1.15")
2810 (source (origin
2811 (method url-fetch)
2812 (uri (string-append
2813 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2814 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2815 ".tar.xz"))
2816 (sha256
2817 (base32
2818 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2819 (build-system gnu-build-system)
2820 (arguments
2821 ;; The build system appears not to be parallel-safe.
2822 '(#:parallel-build? #f))
2823 (inputs
2824 `(("glib" ,glib)
2825 ("libxml2" ,libxml2)))
2826 (native-inputs
2827 `(("gettext" ,gettext-minimal)
2828 ("itstool" ,itstool)
2829 ("pkg-config" ,pkg-config)))
2830 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2831 (synopsis "Database of common MIME types")
2832 (description
2833 "The shared-mime-info package contains the core database of common types
2834 and the update-mime-database command used to extend it. It requires glib2 to
2835 be installed for building the update command. Additionally, it uses intltool
2836 for translations, though this is only a dependency for the maintainers. This
2837 database is translated at Transifex.")
2838 (license license:gpl2+)))
2839
2840 (define-public system-config-printer
2841 (package
2842 (name "system-config-printer")
2843 (version "1.5.12")
2844 (source
2845 (origin
2846 (method url-fetch)
2847 (uri (string-append
2848 "https://github.com/OpenPrinting/system-config-printer/releases/"
2849 "download/" version
2850 "/system-config-printer-" version ".tar.xz"))
2851 (sha256
2852 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
2853 (build-system glib-or-gtk-build-system)
2854 (arguments
2855 `(#:imported-modules ((guix build python-build-system)
2856 ,@%glib-or-gtk-build-system-modules)
2857 #:phases
2858 (modify-phases %standard-phases
2859 (add-after 'unpack 'patch-Makefile.am
2860 (lambda _
2861 ;; The Makefile generates some scripts, so set a valid shebang
2862 (substitute* "Makefile.am"
2863 (("/bin/bash") (which "bash")))
2864 (delete-file "configure")
2865 #t))
2866 (add-after 'unpack 'patch-docbook-xml
2867 (lambda* (#:key inputs #:allow-other-keys)
2868 ;; Modify the man XML otherwise xmlto tries to access the network
2869 (substitute* "man/system-config-printer.xml"
2870 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2871 (string-append (assoc-ref inputs "docbook-xml")
2872 "/xml/dtd/docbook/")))
2873 #t))
2874 (add-after 'install 'wrap-for-python
2875 (@@ (guix build python-build-system) wrap))
2876 (add-after 'install 'wrap
2877 (lambda* (#:key outputs #:allow-other-keys)
2878 (let ((out (assoc-ref outputs "out"))
2879 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2880 (for-each
2881 (lambda (program)
2882 (wrap-program program
2883 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2884 (map (lambda (name)
2885 (string-append out "/bin/" name))
2886 '("system-config-printer"
2887 "system-config-printer-applet"
2888 "install-printerdriver"
2889 "scp-dbus-service"))))
2890 #t)))))
2891 (inputs
2892 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2893 ("gobject-introspection" ,gobject-introspection)
2894 ("python" ,python)
2895 ("cups" ,cups)
2896 ("gtk+" ,gtk+)
2897 ("python-dbus" ,python-dbus)
2898 ("python-pygobject" ,python-pygobject)
2899 ("python-pycups" ,python-pycups)
2900 ("python-requests" ,python-requests)
2901 ("python-pycairo" ,python-pycairo)
2902 ("libnotify" ,libnotify)
2903 ("packagekit" ,packagekit)))
2904 (native-inputs
2905 `(("pkg-config" ,pkg-config)
2906 ("desktop-file-utils" ,desktop-file-utils)
2907 ("glib" ,glib)
2908 ("autoconf" ,autoconf)
2909 ("automake" ,automake)
2910 ("intltool" ,intltool)
2911 ("xmlto" ,xmlto)
2912 ("docbook-xml" ,docbook-xml-4.1.2)
2913 ("docbook-xsl" ,docbook-xsl)
2914 ("libxml2" ,libxml2)))
2915 (home-page "https://github.com/zdohnal/system-config-printer")
2916 (synopsis "CUPS administration tool")
2917 (description
2918 "system-config-printer is a CUPS administration tool. It's written in
2919 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2920 configuring CUPS.")
2921 (license license:gpl2+)))
2922
2923 (define-public hicolor-icon-theme
2924 (package
2925 (name "hicolor-icon-theme")
2926 (version "0.17")
2927 (source
2928 (origin
2929 (method url-fetch)
2930 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2931 "hicolor-icon-theme-" version ".tar.xz"))
2932 (sha256
2933 (base32
2934 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2935 (build-system gnu-build-system)
2936 (arguments
2937 `(#:tests? #f)) ; no check target
2938 (home-page "https://icon-theme.freedesktop.org/releases/")
2939 (synopsis
2940 "Freedesktop icon theme")
2941 (description
2942 "Freedesktop icon theme.")
2943 (license license:gpl2)))
2944
2945 (define-public libnotify
2946 (package
2947 (name "libnotify")
2948 (version "0.7.7")
2949 (source
2950 (origin
2951 (method url-fetch)
2952 (uri (string-append "mirror://gnome/sources/" name "/"
2953 (version-major+minor version) "/"
2954 name "-" version ".tar.xz"))
2955 (sha256
2956 (base32
2957 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2958 (build-system gnu-build-system)
2959 (arguments
2960 `(#:configure-flags '("--disable-static")))
2961 (propagated-inputs
2962 `(;; In Requires of libnotify.pc.
2963 ("gdk-pixbuf" ,gdk-pixbuf)
2964 ("glib" ,glib)))
2965 (inputs
2966 `(("gtk+" ,gtk+)
2967 ("libpng" ,libpng)))
2968 (native-inputs
2969 `(("pkg-config" ,pkg-config)
2970 ("glib" ,glib "bin")
2971 ("gobject-introspection" ,gobject-introspection)))
2972 (home-page "https://developer-next.gnome.org/libnotify/")
2973 (synopsis
2974 "GNOME desktop notification library")
2975 (description
2976 "Libnotify is a library that sends desktop notifications to a
2977 notification daemon, as defined in the Desktop Notifications spec. These
2978 notifications can be used to inform the user about an event or display
2979 some form of information without getting in the user's way.")
2980 (license license:lgpl2.1+)))
2981
2982 (define-public libpeas
2983 (package
2984 (name "libpeas")
2985 (version "1.24.1")
2986 (source
2987 (origin
2988 (method url-fetch)
2989 (uri (string-append "mirror://gnome/sources/" name "/"
2990 (version-major+minor version) "/"
2991 name "-" version ".tar.xz"))
2992 (sha256
2993 (base32
2994 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2995 (build-system meson-build-system)
2996 (arguments
2997 '(#:phases
2998 (modify-phases %standard-phases
2999 (add-before 'check 'start-xserver
3000 (lambda* (#:key inputs #:allow-other-keys)
3001 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3002 (disp ":1"))
3003 (setenv "DISPLAY" disp)
3004 ;; Tests require a running X server.
3005 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3006 #t))))))
3007 (inputs
3008 `(("gtk+" ,gtk+)
3009 ("glade" ,glade3)
3010 ("python" ,python)
3011 ("python-pygobject" ,python-pygobject)))
3012 (native-inputs
3013 `(("pkg-config" ,pkg-config)
3014 ("gettext" ,gettext-minimal)
3015 ("glib:bin" ,glib "bin")
3016 ("gobject-introspection" ,gobject-introspection)
3017 ("xorg-server" ,xorg-server-for-tests)))
3018 (propagated-inputs
3019 ;; The .pc file "Requires" gobject-introspection.
3020 `(("gobject-introspection" ,gobject-introspection)))
3021 (home-page "https://wiki.gnome.org/Libpeas")
3022 (synopsis "GObject plugin system")
3023 (description
3024 "Libpeas is a gobject-based plugin engine, targeted at giving every
3025 application the chance to assume its own extensibility. It also has a set of
3026 features including, but not limited to: multiple extension points; on-demand
3027 (lazy) programming language support for C, Python and JS; simplicity of the
3028 API.")
3029 (license license:lgpl2.0+)))
3030
3031 (define-public gtkglext
3032 (package
3033 (name "gtkglext")
3034 (version "1.2.0")
3035 (source (origin
3036 (method url-fetch)
3037 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3038 version "/gtkglext-" version ".tar.gz"))
3039 (sha256
3040 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3041 (patches (search-patches
3042 "gtkglext-disable-disable-deprecated.patch"))))
3043 (build-system gnu-build-system)
3044 (arguments
3045 `(#:phases
3046 (modify-phases %standard-phases
3047 ;; Fix a collision between a local variable and a definition from
3048 ;; glibc's string.h.
3049 (add-after 'unpack 'fix-collision
3050 (lambda _
3051 (substitute* "gdk/gdkglshapes.c"
3052 ((" index") " triangle_index"))
3053 #t)))))
3054 (inputs `(("gtk+" ,gtk+-2)
3055 ("mesa" ,mesa)
3056 ("glu" ,glu)
3057 ("libx11" ,libx11)
3058 ("libxt" ,libxt)))
3059 (native-inputs `(("pkg-config" ,pkg-config)
3060 ("glib" ,glib "bin")))
3061 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
3062 (home-page "https://projects.gnome.org/gtkglext")
3063 (synopsis "OpenGL extension to GTK+")
3064 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3065 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3066 API add-ons to make GTK+ widgets OpenGL-capable.")
3067 (license license:lgpl2.1+)))
3068
3069 (define-public glade3
3070 (package
3071 (name "glade")
3072 (version "3.36.0")
3073 (source (origin
3074 (method url-fetch)
3075 (uri (string-append "mirror://gnome/sources/" name "/"
3076 (version-major+minor version) "/"
3077 name "-" version ".tar.xz"))
3078 (sha256
3079 (base32
3080 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
3081 (build-system glib-or-gtk-build-system)
3082 (arguments
3083 `(#:phases
3084 (modify-phases %standard-phases
3085 (add-before 'configure 'fix-docbook
3086 (lambda* (#:key inputs #:allow-other-keys)
3087 (substitute* "man/Makefile.in"
3088 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
3089 (string-append (assoc-ref inputs "docbook-xsl")
3090 "/xml/xsl/docbook-xsl-"
3091 ,(package-version docbook-xsl)
3092 "/manpages/docbook.xsl")))
3093 #t))
3094 (add-before 'check 'pre-check
3095 (lambda _
3096 (setenv "HOME" "/tmp")
3097 ;; Tests require a running X server.
3098 (system "Xvfb :1 &")
3099 (setenv "DISPLAY" ":1")
3100 #t)))))
3101 (inputs
3102 `(("gtk+" ,gtk+)
3103 ("libxml2" ,libxml2)))
3104 (native-inputs
3105 `(("hicolor-icon-theme" ,hicolor-icon-theme)
3106 ("intltool" ,intltool)
3107 ("itstool" ,itstool)
3108 ("libxslt" ,libxslt) ;for xsltproc
3109 ("docbook-xml" ,docbook-xml-4.2)
3110 ("docbook-xsl" ,docbook-xsl)
3111 ("python" ,python-2)
3112 ("pkg-config" ,pkg-config)
3113 ("xorg-server" ,xorg-server-for-tests)))
3114 (home-page "https://glade.gnome.org")
3115 (synopsis "GTK+ rapid application development tool")
3116 (description "Glade is a rapid application development (RAD) tool to
3117 enable quick & easy development of user interfaces for the GTK+ toolkit and
3118 the GNOME desktop environment.")
3119 (license license:lgpl2.0+)
3120 (native-search-paths (list (search-path-specification
3121 (variable "GLADE_CATALOG_SEARCH_PATH")
3122 (files '("share/glade/catalogs")))
3123 (search-path-specification
3124 (variable "GLADE_MODULE_SEARCH_PATH")
3125 (files '("lib/glade/modules")))))))
3126
3127 (define-public libcroco
3128 (package
3129 (name "libcroco")
3130 (version "0.6.13")
3131 (source (origin
3132 (method url-fetch)
3133 (uri (string-append "mirror://gnome/sources/" name "/"
3134 (version-major+minor version) "/"
3135 name "-" version ".tar.xz"))
3136 (sha256
3137 (base32
3138 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3139 (build-system gnu-build-system)
3140 (native-inputs
3141 `(("pkg-config" ,pkg-config)))
3142 (inputs
3143 `(("glib" ,glib)
3144 ("libxml2" ,libxml2)
3145 ("zlib" ,zlib)))
3146 (home-page "https://github.com/GNOME/libcroco")
3147 (synopsis "CSS2 parsing and manipulation library")
3148 (description
3149 "Libcroco is a standalone CSS2 parsing and manipulation library.
3150 The parser provides a low level event driven SAC-like API and a CSS object
3151 model like API. Libcroco provides a CSS2 selection engine and an experimental
3152 XML/CSS rendering engine.")
3153
3154 ;; LGPLv2.1-only.
3155 (license license:lgpl2.1)))
3156
3157 (define-public libgsf
3158 (package
3159 (name "libgsf")
3160 (version "1.14.47")
3161 (source (origin
3162 (method url-fetch)
3163 (uri (string-append "mirror://gnome/sources/" name "/"
3164 (version-major+minor version) "/"
3165 name "-" version ".tar.xz"))
3166 (sha256
3167 (base32
3168 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3169 (build-system gnu-build-system)
3170 (arguments
3171 '(#:configure-flags '("--disable-static")))
3172 (native-inputs
3173 `(("pkg-config" ,pkg-config)
3174 ("gettext" ,gettext-minimal)
3175
3176 ;; For tests.
3177 ("perl" ,perl)
3178 ("perl-xml-parser" ,perl-xml-parser)))
3179 (inputs
3180 `(("zlib" ,zlib)
3181 ("bzip2" ,bzip2)))
3182 (propagated-inputs
3183 `(("gdk-pixbuf" ,gdk-pixbuf)
3184 ("glib" ,glib)
3185 ("libxml2" ,libxml2)))
3186 (home-page "https://www.gnome.org/projects/libgsf")
3187 (synopsis "GNOME's Structured File Library")
3188 (description
3189 "Libgsf aims to provide an efficient extensible I/O abstraction for
3190 dealing with different structured file formats.")
3191
3192 ;; LGPLv2.1-only.
3193 (license license:lgpl2.1)))
3194
3195 (define-public librsvg
3196 (package
3197 (name "librsvg")
3198 (version "2.40.21")
3199 (source (origin
3200 (method url-fetch)
3201 (uri (string-append "mirror://gnome/sources/" name "/"
3202 (version-major+minor version) "/"
3203 name "-" version ".tar.xz"))
3204 (sha256
3205 (base32
3206 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3207 (build-system gnu-build-system)
3208 (arguments
3209 `(#:configure-flags
3210 (list "--disable-static"
3211 "--enable-vala") ; needed for e.g. gnome-mines
3212 #:phases
3213 (modify-phases %standard-phases
3214 (add-before 'configure 'pre-configure
3215 (lambda* (#:key inputs #:allow-other-keys)
3216 (substitute* "gdk-pixbuf-loader/Makefile.in"
3217 ;; By default the gdk-pixbuf loader is installed under
3218 ;; gdk-pixbuf's prefix. Work around that.
3219 (("gdk_pixbuf_moduledir = .*$")
3220 (string-append "gdk_pixbuf_moduledir = "
3221 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3222 "loaders\n"))
3223 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3224 (("gdk_pixbuf_cache_file = .*$")
3225 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3226 #t))
3227 (add-before 'check 'remove-failing-tests
3228 (lambda _
3229 (with-directory-excursion "tests/fixtures/reftests"
3230 (for-each delete-file
3231 '(;; This test fails on i686:
3232 "svg1.1/masking-path-04-b.svg"
3233 ;; This test fails on armhf:
3234 "svg1.1/masking-mask-01-b.svg"
3235 ;; This test fails on aarch64:
3236 "bugs/777834-empty-text-children.svg")))
3237 #t)))))
3238 (native-inputs
3239 `(("pkg-config" ,pkg-config)
3240 ("vala" ,vala)
3241 ("glib" ,glib "bin") ; glib-mkenums, etc.
3242 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3243 (inputs
3244 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3245 ;; this ancient version of librsvg.
3246 ("pango" ,pango-1.42)
3247 ("libcroco" ,libcroco)
3248 ("bzip2" ,bzip2)
3249 ("libgsf" ,libgsf)
3250 ("libxml2" ,libxml2)))
3251 (propagated-inputs
3252 ;; librsvg-2.0.pc refers to all of that.
3253 `(("cairo" ,cairo)
3254 ("gdk-pixbuf" ,gdk-pixbuf)
3255 ("glib" ,glib)))
3256 (home-page "https://wiki.gnome.org/LibRsvg")
3257 (synopsis "Render SVG files using Cairo")
3258 (description
3259 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3260 library.")
3261 (license license:lgpl2.0+)))
3262
3263 (define-public librsvg-next
3264 (package
3265 (name "librsvg")
3266 (version "2.50.1")
3267 (source (origin
3268 (method url-fetch)
3269 (uri (string-append "mirror://gnome/sources/librsvg/"
3270 (version-major+minor version) "/"
3271 "librsvg-" version ".tar.xz"))
3272 (sha256
3273 (base32
3274 "02csvx2nzygh8kyal2qiy3y6xb7d52vszxxr37dzav704a9pkncv"))
3275 (modules '((guix build utils)))
3276 (snippet
3277 '(begin (delete-file-recursively "vendor")
3278 #t))))
3279 (build-system cargo-build-system)
3280 (outputs '("out" "doc"))
3281 (arguments
3282 `(#:modules
3283 ((guix build cargo-build-system)
3284 (guix build utils)
3285 ((guix build gnu-build-system) #:prefix gnu:))
3286 #:rust ,rust-1.40
3287 #:cargo-inputs
3288 (("rust-bitflags" ,rust-bitflags-1)
3289 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3290 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3291 ("rust-cast" ,rust-cast-0.2)
3292 ("rust-cssparser" ,rust-cssparser-0.27)
3293 ("rust-data-url" ,rust-data-url-0.1)
3294 ("rust-encoding" ,rust-encoding-0.2)
3295 ("rust-float-cmp" ,rust-float-cmp-0.8)
3296 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3297 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3298 ("rust-gio" ,rust-gio-0.8)
3299 ("rust-gio-sys" ,rust-gio-sys-0.9)
3300 ("rust-glib" ,rust-glib-0.9)
3301 ("rust-glib-sys" ,rust-glib-sys-0.9)
3302 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3303 ("rust-itertools" ,rust-itertools-0.9)
3304 ("rust-language-tags" ,rust-language-tags-0.2)
3305 ("rust-libc" ,rust-libc-0.2)
3306 ("rust-locale-config" ,rust-locale-config-0.3)
3307 ("rust-markup5ever" ,rust-markup5ever-0.10)
3308 ("rust-nalgebra" ,rust-nalgebra-0.21)
3309 ("rust-num-traits" ,rust-num-traits-0.2)
3310 ("rust-once-cell" ,rust-once-cell-1)
3311 ("rust-pkg-config" ,rust-pkg-config-0.3)
3312 ("rust-pango" ,rust-pango-0.8)
3313 ("rust-pango-sys" ,rust-pango-sys-0.9)
3314 ("rust-pangocairo" ,rust-pangocairo-0.9)
3315 ("rust-rayon" ,rust-rayon-1)
3316 ("rust-rctree" ,rust-rctree-0.3)
3317 ("rust-rgb" ,rust-rgb-0.8)
3318 ("rust-regex" ,rust-regex-1)
3319 ("rust-selectors" ,rust-selectors-0.22)
3320 ("rust-string-cache" ,rust-string-cache-0.8)
3321 ("rust-tinyvec" ,rust-tinyvec-0.3)
3322 ("rust-url" ,rust-url-2)
3323 ("rust-xml5ever" ,rust-xml5ever-0.16))
3324 #:cargo-development-inputs
3325 (("rust-assert-cmd" ,rust-assert-cmd-1)
3326 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3327 ("rust-chrono" ,rust-chrono-0.4)
3328 ("rust-criterion" ,rust-criterion-0.3)
3329 ("rust-float-cmp" ,rust-float-cmp-0.8)
3330 ("rust-lopdf" ,rust-lopdf-0.25)
3331 ("rust-png" ,rust-png-0.16)
3332 ("rust-predicates" ,rust-predicates-1)
3333 ("rust-tempfile" ,rust-tempfile-3))
3334 #:phases
3335 (modify-phases %standard-phases
3336 (add-after 'unpack 'patch-docbook-xml
3337 (lambda* (#:key inputs #:allow-other-keys)
3338 (with-directory-excursion "doc"
3339 (substitute* "rsvg-docs.xml"
3340 (("http://www.oasis-open.org/docbook/xml/4.3/")
3341 (string-append (assoc-ref inputs "docbook-xml")
3342 "/xml/dtd/docbook/"))))
3343 #t))
3344 (add-after 'unpack 'prepare-for-build
3345 (lambda _
3346 ;; In lieu of #:make-flags
3347 (setenv "CC" ,(cc-for-target))
3348 ;; Something about the build environment resists building
3349 ;; successfully with the '--locked' flag.
3350 (substitute* '("Makefile.am" "Makefile.in")
3351 (("--locked") ""))
3352 #t))
3353 (add-before 'configure 'pre-configure
3354 (lambda _
3355 (substitute* "gdk-pixbuf-loader/Makefile.in"
3356 ;; By default the gdk-pixbuf loader is installed under
3357 ;; gdk-pixbuf's prefix. Work around that.
3358 (("gdk_pixbuf_moduledir = .*$")
3359 (string-append "gdk_pixbuf_moduledir = "
3360 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3361 "loaders\n"))
3362 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3363 (("gdk_pixbuf_cache_file = .*$")
3364 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3365 #t))
3366 (add-after 'configure 'gnu-configure
3367 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3368 ((assoc-ref gnu:%standard-phases 'configure)
3369 #:native-inputs native-inputs
3370 #:inputs inputs
3371 #:outputs outputs
3372 #:configure-flags
3373 (list "--disable-static"
3374 "--enable-vala"
3375 (string-append "--with-html-dir="
3376 (assoc-ref %outputs "doc")
3377 "/share/gtk-doc/html")))))
3378 (add-after 'configure 'dont-vendor-self
3379 (lambda* (#:key vendor-dir #:allow-other-keys)
3380 ;; Don't keep the whole tarball in the vendor directory
3381 (delete-file-recursively
3382 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3383 #t))
3384 (replace 'build
3385 (assoc-ref gnu:%standard-phases 'build))
3386 (add-before 'check 'ignore-failing-tests
3387 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3388 (lambda _
3389 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3390 (("fn background_color_option_invalid_color_yields_error" all)
3391 (string-append "#[ignore] " all))
3392 (("fn empty_input_yields_error" all)
3393 (string-append "#[ignore] " all))
3394 (("fn empty_svg_yields_error" all)
3395 (string-append "#[ignore] " all))
3396 (("fn env_source_data_epoch_empty" all)
3397 (string-append "#[ignore] " all))
3398 (("fn env_source_data_epoch_no_digits" all)
3399 (string-append "#[ignore] " all))
3400 (("fn env_source_data_epoch_trailing_garbage" all)
3401 (string-append "#[ignore] " all))
3402 (("fn export_id_option_error" all)
3403 (string-append "#[ignore] " all))
3404 (("fn huge_zoom_factor_yields_error" all)
3405 (string-append "#[ignore] " all))
3406 (("fn multiple_input_files_not_allowed_for_png_output" all)
3407 (string-append "#[ignore] " all))
3408 (("fn stylesheet_option_error" all)
3409 (string-append "#[ignore] " all)))
3410 #t))
3411 (replace 'check
3412 (lambda* args
3413 ((assoc-ref gnu:%standard-phases 'check)
3414 #:test-target "check")))
3415 (replace 'install
3416 (assoc-ref gnu:%standard-phases 'install)))))
3417 (native-inputs
3418 `(("docbook-xml" ,docbook-xml-4.3)
3419 ("glib" ,glib "bin")
3420 ("gobject-introspection" ,gobject-introspection)
3421 ("pkg-config" ,pkg-config)
3422 ("python" ,python-wrapper)
3423 ("ruby" ,ruby)
3424 ("vala" ,vala)))
3425 (inputs
3426 `(("bzip2" ,bzip2)
3427 ("fontconfig" ,fontconfig)
3428 ("freetype" ,freetype)
3429 ("harfbuzz" ,harfbuzz)
3430 ("libcroco" ,libcroco)
3431 ("libgsf" ,libgsf)
3432 ("libxml2" ,libxml2)
3433 ("pango" ,pango)))
3434 (propagated-inputs
3435 `(("cairo" ,cairo)
3436 ("gdk-pixbuf" ,gdk-pixbuf)
3437 ("glib" ,glib)))
3438 (synopsis "SVG rendering library")
3439 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3440 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3441 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3442 diagrams.")
3443 (home-page "https://wiki.gnome.org/LibRsvg")
3444 (license license:lgpl2.1+)))
3445
3446 (define-public libidl
3447 (package
3448 (name "libidl")
3449 (version "0.8.14")
3450 (source (origin
3451 (method url-fetch)
3452 (uri (string-append "mirror://gnome/sources/libIDL/"
3453 (version-major+minor version) "/"
3454 "libIDL-" version ".tar.bz2"))
3455 (sha256
3456 (base32
3457 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3458 (build-system gnu-build-system)
3459 (inputs `(("glib" ,glib)))
3460 (native-inputs
3461 `(("pkg-config" ,pkg-config)
3462 ("flex" ,flex)
3463 ("bison" ,bison)))
3464 (home-page "http://freecode.com/projects/libidl")
3465 (synopsis "Create trees of CORBA Interface Definition Language files")
3466 (description "Libidl is a library for creating trees of CORBA Interface
3467 Definition Language (idl) files, which is a specification for defining
3468 portable interfaces. libidl was initially written for orbit (the orb from the
3469 GNOME project, and the primary means of libidl distribution). However, the
3470 functionality was designed to be as reusable and portable as possible.")
3471 (properties `((upstream-name . "libIDL")))
3472 (license license:lgpl2.0+)))
3473
3474
3475 (define-public orbit2
3476 (package
3477 (name "orbit2")
3478 (version "2.14.19")
3479 (source (origin
3480 (method url-fetch)
3481 (uri (let ((upstream-name "ORBit2"))
3482 (string-append "mirror://gnome/sources/" upstream-name "/"
3483 (version-major+minor version) "/"
3484 upstream-name "-" version ".tar.bz2")))
3485 (sha256
3486 (base32
3487 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3488 (build-system gnu-build-system)
3489 (arguments
3490 `(;; The "timeout-server" test hangs when run in parallel.
3491 #:parallel-tests? #f
3492 #:configure-flags
3493 '(;; We don't need static libraries, plus they don't build reproducibly
3494 ;; (non-deterministic ordering of .o files in the archive.)
3495 "--disable-static"
3496
3497 ;; The programmer kindly gives us a hook to turn off deprecation
3498 ;; warnings ...
3499 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3500 ;; ... which they then completly ignore !!
3501 #:phases
3502 (modify-phases %standard-phases
3503 (add-before 'configure 'ignore-deprecations
3504 (lambda _
3505 (substitute* "linc2/src/Makefile.in"
3506 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3507 #t)))))
3508 (inputs `(("glib" ,glib)
3509 ("libidl" ,libidl)))
3510 (native-inputs
3511 `(("pkg-config" ,pkg-config)))
3512 (home-page "https://projects.gnome.org/orbit2/")
3513 (synopsis "CORBA 2.4-compliant Object Request Broker")
3514 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3515 featuring mature C, C++ and Python bindings.")
3516 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3517 ;; a version. SOME of the code files have licence notices for GPLv2+.
3518 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3519 (license license:gpl2+)
3520 (properties `((upstream-name . "ORBit2")))))
3521
3522
3523 (define-public libbonobo
3524 (package
3525 (name "libbonobo")
3526 (version "2.32.1")
3527 (source (origin
3528 (method url-fetch)
3529 (uri (string-append "mirror://gnome/sources/" name "/"
3530 (version-major+minor version)
3531 "/" name "-" version ".tar.bz2"))
3532 (sha256
3533 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3534 (patches (search-patches
3535 "libbonobo-activation-test-race.patch"))))
3536 (build-system gnu-build-system)
3537 (arguments
3538 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3539 `(#:configure-flags
3540 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3541 ;; ... which they then completly ignore !!
3542 #:phases
3543 (modify-phases %standard-phases
3544 (add-before 'configure 'ignore-deprecations
3545 (lambda _
3546 (substitute* "activation-server/Makefile.in"
3547 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3548 #t)))
3549
3550 ;; There's apparently a race condition between the server stub
3551 ;; generation and linking of the example under 'samples/echo' that can
3552 ;; lead do undefined references when building in parallel, as reported
3553 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3554 ;; Thus, disable parallel builds.
3555 #:parallel-build? #f))
3556 (inputs `(("popt" ,popt)
3557 ("libxml2" ,libxml2)))
3558 ;; The following are Required by the .pc file
3559 (propagated-inputs
3560 `(("glib" ,glib)
3561 ("orbit2" ,orbit2)))
3562 (native-inputs
3563 `(("intltool" ,intltool)
3564 ("pkg-config" ,pkg-config)
3565 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3566 ("flex" ,flex)
3567 ("bison" ,bison)))
3568 (home-page "https://developer.gnome.org/libbonobo/")
3569 (synopsis "Framework for creating reusable components for use in GNOME applications")
3570 (description "Bonobo is a framework for creating reusable components for
3571 use in GNOME applications, built on top of CORBA.")
3572 ;; Licence not explicitly stated. Source files contain no licence notices.
3573 ;; Tarball contains text of both GPLv2 and LGPLv2
3574 ;; GPLv2 covers both conditions
3575 (license license:gpl2+)))
3576
3577
3578 (define-public gconf
3579 (package
3580 (name "gconf")
3581 (version "3.2.6")
3582 (source (origin
3583 (method url-fetch)
3584 (uri
3585 (let ((upstream-name "GConf"))
3586 (string-append "mirror://gnome/sources/" upstream-name "/"
3587 (version-major+minor version) "/"
3588 upstream-name "-" version ".tar.xz")))
3589 (sha256
3590 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3591 (build-system gnu-build-system)
3592 (inputs `(("dbus-glib" ,dbus-glib)
3593 ("libxml2" ,libxml2)))
3594 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3595 ("orbit2" ,orbit2)))
3596 (native-inputs
3597 `(("intltool" ,intltool)
3598 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3599 ("pkg-config" ,pkg-config)))
3600 (home-page "https://projects.gnome.org/gconf/")
3601 (synopsis "Store application preferences")
3602 (description "Gconf is a system for storing application preferences. It
3603 is intended for user preferences; not arbitrary data storage.")
3604 (license license:lgpl2.0+)
3605 (properties '((upstream-name . "GConf")))))
3606
3607
3608 (define-public gnome-mime-data
3609 (package
3610 (name "gnome-mime-data")
3611 (version "2.18.0")
3612 (source (origin
3613 (method url-fetch)
3614 (uri (string-append "mirror://gnome/sources/" name "/"
3615 (version-major+minor version) "/"
3616 name "-" version ".tar.bz2"))
3617 (sha256
3618 (base32
3619 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3620 (build-system gnu-build-system)
3621 (native-inputs
3622 `(("perl" ,perl)
3623 ("intltool" ,intltool)))
3624 (arguments
3625 '(#:phases (modify-phases %standard-phases
3626 (add-after 'configure 'use-our-intltool
3627 (lambda _
3628 ;; Do not use the bundled intltool commands, which lack
3629 ;; the "dotless @INC" fixes of our 'intltool' package.
3630 (substitute* (find-files "." "^Makefile$")
3631 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3632 (string-append "INTLTOOL_" tool " = intltool-"
3633 (string-downcase tool) "\n")))
3634 #t)))))
3635 (home-page "https://www.gnome.org")
3636 (synopsis "Base MIME and Application database for GNOME")
3637 (description "GNOME Mime Data is a module which contains the base MIME
3638 and Application database for GNOME. The data stored by this module is
3639 designed to be accessed through the MIME functions in GnomeVFS.")
3640 (license license:gpl2+)))
3641
3642
3643 (define-public gnome-vfs
3644 (package
3645 (name "gnome-vfs")
3646 (version "2.24.4")
3647 (source (origin
3648 (method url-fetch)
3649 (uri (string-append "mirror://gnome/sources/" name "/"
3650 (version-major+minor version) "/"
3651 name "-" version ".tar.bz2"))
3652 (sha256
3653 (base32
3654 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3655 (build-system gnu-build-system)
3656 (arguments
3657 `(#:phases
3658 (modify-phases %standard-phases
3659 (add-before 'configure 'ignore-deprecations
3660 (lambda _
3661 (substitute* '("libgnomevfs/Makefile.in"
3662 "daemon/Makefile.in")
3663 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3664 #t))
3665 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3666 (lambda _
3667 (substitute* "test/test-async-cancel.c"
3668 (("EXIT_FAILURE") "77"))
3669 #t)))))
3670 (inputs `(("libxml2" ,libxml2)
3671 ("dbus-glib" ,dbus-glib)
3672 ("gconf" ,gconf)
3673 ("gnome-mime-data" ,gnome-mime-data)
3674 ("zlib" ,zlib)))
3675 (native-inputs
3676 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3677 ("intltool" ,intltool)
3678 ("pkg-config" ,pkg-config)))
3679 (home-page "https://developer.gnome.org/gnome-vfs/")
3680 (synopsis "Access files and folders in GNOME applications")
3681 (description
3682 "GnomeVFS is the core library used to access files and folders in GNOME
3683 applications. It provides a file system abstraction which allows applications
3684 to access local and remote files with a single consistent API.")
3685 (license license:lgpl2.0+)))
3686
3687
3688
3689 (define-public libgnome
3690 (package
3691 (name "libgnome")
3692 (version "2.32.1")
3693 (source (origin
3694 (method url-fetch)
3695 (uri (string-append "mirror://gnome/sources/" name "/"
3696 (version-major+minor version) "/"
3697 name "-" version ".tar.bz2"))
3698 (sha256
3699 (base32
3700 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3701 (patches (search-patches "libgnome-encoding.patch"))))
3702 (build-system gnu-build-system)
3703 (arguments
3704 `(#:phases
3705 (modify-phases %standard-phases
3706 (add-before 'configure 'enable-deprecated
3707 (lambda _
3708 (substitute* "libgnome/Makefile.in"
3709 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3710 #t)))))
3711 (inputs `(("libxml2" ,libxml2)))
3712 (native-inputs
3713 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3714 ("intltool" ,intltool)
3715 ("pkg-config" ,pkg-config)))
3716 ;; The following are listed as Required in the .pc file
3717 ;; (except for libcanberra -- which seems to be oversight on the part
3718 ;; of the upstream developers -- anything that links against libgnome,
3719 ;; must also link against libcanberra
3720 (propagated-inputs
3721 `(("libcanberra" ,libcanberra)
3722 ("libbonobo" ,libbonobo)
3723 ("gconf" ,gconf)
3724 ("gnome-vfs" ,gnome-vfs)
3725 ("popt" ,popt))) ;gnome-program.h includes popt.h
3726 (home-page "https://developer.gnome.org/libgnome/")
3727 (synopsis "Useful routines for building applications")
3728 (description "The libgnome library provides a number of useful routines
3729 for building modern applications, including session management, activation of
3730 files and URIs, and displaying help.")
3731 (license license:lgpl2.0+)))
3732
3733
3734 (define-public libart-lgpl
3735 (package
3736 (name "libart-lgpl")
3737 (version "2.3.21")
3738 (source (origin
3739 (method url-fetch)
3740 (uri (let ((upstream-name "libart_lgpl"))
3741 (string-append "mirror://gnome/sources/" upstream-name "/"
3742 (version-major+minor version) "/"
3743 upstream-name "-" version ".tar.bz2")))
3744 (sha256
3745 (base32
3746 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3747 (build-system gnu-build-system)
3748 (native-inputs
3749 `(("pkg-config" ,pkg-config)))
3750 (home-page "https://people.gnome.org/~mathieu/libart")
3751 (synopsis "2D drawing library")
3752 (description "Libart is a 2D drawing library intended as a
3753 high-quality vector-based 2D library with antialiasing and alpha composition.")
3754 (license license:lgpl2.0+)))
3755
3756
3757
3758 (define-public libgnomecanvas
3759 (package
3760 (name "libgnomecanvas")
3761 (version "2.30.3")
3762 (source (origin
3763 (method url-fetch)
3764 (uri (string-append "mirror://gnome/sources/" name "/"
3765 (version-major+minor version) "/"
3766 name "-" version ".tar.gz"))
3767 (sha256
3768 (base32
3769 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3770 (build-system gnu-build-system)
3771 ;; Mentioned as Required in the .pc file
3772 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3773 ("gtk+" ,gtk+-2)))
3774 (native-inputs
3775 `(("intltool" ,intltool)
3776 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3777 ("pkg-config" ,pkg-config)))
3778 (home-page "https://developer.gnome.org/libgnomecanvas/")
3779 (synopsis "Flexible widget for creating interactive structured graphics")
3780 (description "The GnomeCanvas widget provides a flexible widget for
3781 creating interactive structured graphics.")
3782 (license license:lgpl2.0+)))
3783
3784 (define-public libgnomecanvasmm
3785 (package
3786 (name "libgnomecanvasmm")
3787 (version "2.26.0")
3788 (source (origin
3789 (method url-fetch)
3790 (uri (string-append "mirror://gnome/sources/" name "/"
3791 (version-major+minor version) "/"
3792 name "-" version ".tar.bz2"))
3793 (sha256
3794 (base32
3795 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3796 (build-system gnu-build-system)
3797 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3798 (native-inputs
3799 `(("gtkmm-2" ,gtkmm-2)
3800 ("pkg-config" ,pkg-config)))
3801 (home-page "https://gtkmm.org")
3802 (synopsis "C++ bindings to the GNOME Canvas library")
3803 (description "C++ bindings to the GNOME Canvas library.")
3804 (license license:lgpl2.0+)))
3805
3806 (define-public libgnomeui
3807 (package
3808 (name "libgnomeui")
3809 (version "2.24.5")
3810 (source (origin
3811 (method url-fetch)
3812 (uri (string-append "mirror://gnome/sources/" name "/"
3813 (version-major+minor version) "/"
3814 name "-" version ".tar.bz2"))
3815 (patches (search-patches "libgnomeui-utf8.patch"))
3816 (sha256
3817 (base32
3818 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3819 (build-system gnu-build-system)
3820 ;; Mentioned as Required in the .pc file
3821 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3822 ("libgnome" ,libgnome)
3823 ("libgnomecanvas" ,libgnomecanvas)
3824 ("libgnome-keyring" ,libgnome-keyring)))
3825 (inputs `(("libjpeg" ,libjpeg-turbo)
3826 ("popt" ,popt)
3827 ("libbonobo" ,libbonobo)
3828 ("libxml2" ,libxml2)
3829 ("libglade" ,libglade)))
3830 (native-inputs
3831 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3832 ("intltool" ,intltool)
3833 ("pkg-config" ,pkg-config)))
3834 (home-page "https://developer.gnome.org/libgnomeui/")
3835 (synopsis "Additional widgets for applications")
3836 (description "The libgnomeui library provides additional widgets for
3837 applications. Many of the widgets from libgnomeui have already been
3838 ported to GTK+.")
3839 (license license:lgpl2.0+)))
3840
3841 (define-public libglade
3842 (package
3843 (name "libglade")
3844 (version "2.6.4")
3845 (source (origin
3846 (method url-fetch)
3847 (uri (string-append "mirror://gnome/sources/" name "/"
3848 (version-major+minor version) "/"
3849 name "-" version ".tar.bz2"))
3850 (sha256
3851 (base32
3852 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3853 (build-system gnu-build-system)
3854 (inputs
3855 `(("python" ,python))) ;; needed for the optional libglade-convert program
3856 (propagated-inputs
3857 `(("gtk+-2" ,gtk+-2)
3858 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3859 (native-inputs
3860 `(("pkg-config" ,pkg-config)))
3861 (home-page "https://developer.gnome.org/libglade")
3862 (synopsis "Load glade interfaces and access the glade built widgets")
3863 (description "Libglade is a library that provides interfaces for loading
3864 graphical interfaces described in glade files and for accessing the
3865 widgets built in the loading process.")
3866 (license license:gpl2+))) ; This is correct. GPL not LGPL
3867
3868 (define-public libgnomeprint
3869 ;; This library has been deprecated since 2006; see
3870 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3871 (package
3872 (name "libgnomeprint")
3873 (version "2.18.8")
3874 (source (origin
3875 (method url-fetch)
3876 (uri (string-append "mirror://gnome/sources/" name "/"
3877 (version-major+minor version) "/"
3878 name "-" version ".tar.bz2"))
3879 (sha256
3880 (base32
3881 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3882 (build-system gnu-build-system)
3883 (inputs
3884 `(("popt" ,popt)
3885 ("libart-lgpl" ,libart-lgpl)
3886 ("gtk+" ,gtk+-2)
3887 ("libxml2" ,libxml2)))
3888 (native-inputs
3889 `(("intltool" ,intltool)
3890 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3891 ("pkg-config" ,pkg-config)))
3892 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3893 (synopsis "Printing framework for GNOME")
3894 (description
3895 "GNOME-print was a printing framework for GNOME. It has been deprecated
3896 since ca. 2006, when GTK+ itself incorporated printing support.")
3897 (license license:lgpl2.0+)))
3898
3899
3900 (define-public libgnomeprintui
3901 ;; Deprecated; see libgnomeprint.
3902 (package
3903 (name "libgnomeprintui")
3904 (version "2.18.6")
3905 (source (origin
3906 (method url-fetch)
3907 (uri (string-append "mirror://gnome/sources/" name "/"
3908 (version-major+minor version) "/"
3909 name "-" version ".tar.bz2"))
3910 (sha256
3911 (base32
3912 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
3913 (build-system gnu-build-system)
3914 ;; Mentioned as Required in the .pc file
3915 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
3916 (inputs `(("gtk+" ,gtk+-2)
3917 ("glib" ,glib)
3918 ("gnome-icon-theme" ,gnome-icon-theme)
3919 ("libgnomecanvas" ,libgnomecanvas)
3920 ("libxml2" ,libxml2)))
3921 (native-inputs
3922 `(("intltool" ,intltool)
3923 ("pkg-config" ,pkg-config)))
3924 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3925 (synopsis "Printing framework for GNOME")
3926 (description (package-description libgnomeprint))
3927 (license license:lgpl2.0+)))
3928
3929 (define-public libbonoboui
3930 (package
3931 (name "libbonoboui")
3932 (version "2.24.5")
3933 (source (origin
3934 (method url-fetch)
3935 (uri (string-append "mirror://gnome/sources/" name "/"
3936 (version-major+minor version) "/"
3937 name "-" version ".tar.bz2"))
3938 (sha256
3939 (base32
3940 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
3941 (build-system gnu-build-system)
3942 (arguments
3943 `(#:phases
3944 (modify-phases %standard-phases
3945 (add-before 'check 'start-xserver
3946 (lambda* (#:key inputs #:allow-other-keys)
3947 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3948 (disp ":1"))
3949
3950 (setenv "HOME" (getcwd))
3951 (setenv "DISPLAY" disp)
3952 ;; There must be a running X server and make check doesn't start one.
3953 ;; Therefore we must do it.
3954 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
3955 ;; Mentioned as Required by the .pc file
3956 (propagated-inputs `(("libxml2" ,libxml2)))
3957 (inputs
3958 `(("popt" ,popt)
3959 ("pangox-compat" ,pangox-compat)
3960 ("libgnome" ,libgnome)
3961 ("libgnomecanvas" ,libgnomecanvas)
3962 ("libglade" ,libglade)))
3963 (native-inputs
3964 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3965 ("intltool" ,intltool)
3966 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
3967 ("pkg-config" ,pkg-config)))
3968 (home-page "https://developer.gnome.org/libbonoboui/")
3969 (synopsis "Some user interface controls using Bonobo")
3970 (description "The Bonobo UI library provides a number of user interface
3971 controls using the Bonobo component framework.")
3972 (license license:lgpl2.0+)))
3973
3974 (define-public libwnck
3975 (package
3976 (name "libwnck")
3977 (version "3.32.0")
3978 (source (origin
3979 (method url-fetch)
3980 (uri (string-append "mirror://gnome/sources/" name "/"
3981 (version-major+minor version) "/"
3982 name "-" version ".tar.xz"))
3983 (sha256
3984 (base32
3985 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3986 (build-system meson-build-system)
3987 (native-inputs
3988 `(("pkg-config" ,pkg-config)
3989 ("glib" ,glib "bin") ; for glib-mkenums
3990 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3991 ("intltool" ,intltool)))
3992 (propagated-inputs
3993 `(("gtk+" ,gtk+)
3994 ("libxres" ,libxres)
3995 ("startup-notification" ,startup-notification)))
3996 (home-page "https://developer.gnome.org/libwnck/")
3997 (synopsis "Window Navigator Construction Kit")
3998 (description
3999 "Libwnck is the Window Navigator Construction Kit, a library for use in
4000 writing pagers, tasklists, and more generally applications that are dealing
4001 with window management. It tries hard to respect the Extended Window Manager
4002 Hints specification (EWMH).")
4003 (license license:lgpl2.0+)))
4004
4005 ;; stable version for gtk2, required by xfwm4.
4006 (define-public libwnck-2
4007 (package (inherit libwnck)
4008 (name "libwnck")
4009 (version "2.30.7")
4010 (source (origin
4011 (method url-fetch)
4012 (uri (string-append "mirror://gnome/sources/" name "/"
4013 (version-major+minor version) "/"
4014 name "-" version ".tar.xz"))
4015 (sha256
4016 (base32
4017 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4018 (build-system gnu-build-system)
4019 (native-inputs
4020 `(("pkg-config" ,pkg-config)
4021 ("intltool" ,intltool)))
4022 (propagated-inputs
4023 `(("gtk+" ,gtk+-2)
4024 ("libxres" ,libxres)
4025 ("startup-notification" ,startup-notification)))))
4026
4027 (define-public goffice
4028 (package
4029 (name "goffice")
4030 (version "0.10.48")
4031 (source (origin
4032 (method url-fetch)
4033 (uri (string-append "mirror://gnome/sources/goffice/"
4034 (version-major+minor version) "/"
4035 "goffice-" version ".tar.xz"))
4036 (sha256
4037 (base32 "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4"))))
4038 (build-system gnu-build-system)
4039 (outputs '("out"
4040 "doc")) ; 4.0 MiB of gtk-doc
4041 (arguments
4042 '(#:configure-flags (list (string-append "--with-html-dir="
4043 (assoc-ref %outputs "doc")
4044 "/share/gtk-doc/html"))))
4045 (inputs
4046 `(("gtk+" ,gtk+)
4047 ("libgsf" ,libgsf)
4048 ("librsvg" ,librsvg)
4049 ("libxslt" ,libxslt)
4050 ("libxml2" ,libxml2)))
4051 (native-inputs
4052 `(("intltool" ,intltool)
4053 ("glib" ,glib "bin")
4054 ("pkg-config" ,pkg-config)))
4055 (home-page "https://developer.gnome.org/goffice/")
4056 (synopsis "Document-centric objects and utilities")
4057 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4058 (license
4059 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4060 ;; Note: NOT LGPL
4061 (list license:gpl2 license:gpl3))))
4062
4063 (define-public goffice-0.8
4064 (package (inherit goffice)
4065 (version "0.8.17")
4066 (source (origin
4067 (method url-fetch)
4068 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4069 (version-major+minor version) "/"
4070 (package-name goffice) "-" version ".tar.xz"))
4071 (sha256
4072 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4073 (arguments
4074 `(#:phases
4075 (modify-phases %standard-phases
4076 (add-after 'unpack 'fix-pcre-check
4077 (lambda _
4078 ;; Only glib.h can be included directly. See
4079 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4080 (substitute* "configure"
4081 (("glib/gregex\\.h") "glib.h")) #t)))
4082
4083 ,@(package-arguments goffice)))
4084 (propagated-inputs
4085 ;; libgoffice-0.8.pc mentions libgsf-1
4086 `(("libgsf" ,libgsf)))
4087 (inputs
4088 `(("gtk" ,gtk+-2)
4089 ,@(alist-delete "gtk" (package-inputs goffice))))))
4090
4091 (define-public gnumeric
4092 (package
4093 (name "gnumeric")
4094 (version "1.12.48")
4095 (source (origin
4096 (method url-fetch)
4097 (uri (string-append "mirror://gnome/sources/gnumeric/"
4098 (version-major+minor version) "/"
4099 "gnumeric-" version ".tar.xz"))
4100 (sha256
4101 (base32
4102 "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p"))))
4103 (build-system glib-or-gtk-build-system)
4104 (arguments
4105 `(;; The gnumeric developers don't worry much about failing tests.
4106 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4107 #:tests? #f
4108 #:phases
4109 (modify-phases %standard-phases
4110 (add-before
4111 'configure 'pre-conf
4112 (lambda* (#:key outputs #:allow-other-keys)
4113 ;; Make install tries to write into the directory of goffice
4114 ;; I am informed that this only affects the possibility to embed a
4115 ;; spreadsheet inside an Abiword document. So presumably when we
4116 ;; package Abiword we'll have to refer it to this directory.
4117 (substitute* "configure"
4118 (("^GOFFICE_PLUGINS_DIR=.*")
4119 (string-append "GOFFICE_PLUGINS_DIR="
4120 (assoc-ref outputs "out")
4121 "/goffice/plugins"))))))))
4122 (inputs
4123 `(("glib" ,glib)
4124 ("gtk+" ,gtk+)
4125 ("goffice" ,goffice)
4126 ("libgsf" ,libgsf)
4127 ("librsvg" ,librsvg)
4128 ("libxml2" ,libxml2)
4129 ("libxslt" ,libxslt)
4130 ("python" ,python)
4131 ("python-pygobject" ,python-pygobject)
4132 ("zlib" ,zlib)))
4133 (native-inputs
4134 `(("bison" ,bison)
4135 ("docbook-xml" ,docbook-xml)
4136 ("intltool" ,intltool)
4137 ("itstool" ,itstool)
4138 ("glib:bin" ,glib "bin")
4139 ("pkg-config" ,pkg-config)))
4140 (home-page "http://www.gnumeric.org")
4141 (synopsis "Spreadsheet application")
4142 (description
4143 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4144 interoperable with other spreadsheet applications. It has a vast array of
4145 features beyond typical spreadsheet functionality, such as support for linear
4146 and non-linear solvers, statistical analysis, and telecommunication
4147 engineering.")
4148 (license
4149 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4150 (list license:gpl2 license:gpl3))))
4151
4152 (define-public gnome-themes-standard
4153 (package
4154 (name "gnome-themes-standard")
4155 (version "3.22.3")
4156 (source
4157 (origin
4158 (method url-fetch)
4159 (uri (string-append "mirror://gnome/sources/" name "/"
4160 (version-major+minor version) "/" name "-"
4161 version ".tar.xz"))
4162 (sha256
4163 (base32
4164 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4165 (build-system gnu-build-system)
4166 (arguments
4167 '(#:configure-flags
4168 ;; Don't create 'icon-theme.cache'.
4169 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4170 (true (string-append coreutils "/bin/true")))
4171 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4172 (inputs
4173 `(("gtk+" ,gtk+)
4174 ("gtk+-2" ,gtk+-2)
4175 ("librsvg" ,librsvg)
4176 ("libxml2" ,libxml2)
4177 ("glib" ,glib)))
4178 (native-inputs
4179 `(("intltool" ,intltool)
4180 ("glib:bin" ,glib "bin")
4181 ("pkg-config" ,pkg-config)))
4182 (home-page "https://launchpad.net/gnome-themes-standard")
4183 (synopsis "Default GNOME 3 themes")
4184 (description
4185 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4186 (license license:lgpl2.1+)))
4187
4188 (define-public seahorse
4189 (package
4190 (name "seahorse")
4191 (version "3.36.2")
4192 (source
4193 (origin
4194 (method url-fetch)
4195 (uri (string-append "mirror://gnome/sources/" name "/"
4196 (version-major+minor version) "/" name "-"
4197 version ".tar.xz"))
4198 (sha256
4199 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4200 (build-system meson-build-system)
4201 (arguments
4202 '(#:glib-or-gtk? #t
4203 #:phases
4204 (modify-phases %standard-phases
4205 (add-after 'unpack 'skip-gtk-update-icon-cache
4206 ;; Don't create 'icon-theme.cache'.
4207 (lambda _
4208 (substitute* "build-aux/meson_post_install.py"
4209 (("gtk-update-icon-cache") "true"))
4210 #t)))))
4211 (inputs
4212 `(("gtk+" ,gtk+)
4213 ("gcr" ,gcr)
4214 ("gnupg" ,gnupg)
4215 ("gpgme" ,gpgme)
4216 ("openldap" ,openldap)
4217 ("openssh" ,openssh)
4218 ("avahi" ,avahi)
4219 ("libhandy" ,libhandy-0.0)
4220 ("libpwquality" ,libpwquality)
4221 ("libsecret" ,libsecret)
4222 ("libsoup" ,libsoup)))
4223 (native-inputs
4224 `(("gettext" ,gettext-minimal)
4225 ("glib:bin" ,glib "bin")
4226 ("itstool" ,itstool)
4227 ("pkg-config" ,pkg-config)
4228 ("vala" ,vala)
4229 ("xmllint" ,libxml2)))
4230 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4231 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4232 (description
4233 "Seahorse is a GNOME application for managing encryption keys and
4234 passwords in the GNOME keyring.")
4235 (license license:gpl2+)))
4236
4237 (define-public vala
4238 (package
4239 (name "vala")
4240 (version "0.46.5")
4241 (source (origin
4242 (method url-fetch)
4243 (uri (string-append "mirror://gnome/sources/" name "/"
4244 (version-major+minor version) "/"
4245 name "-" version ".tar.xz"))
4246 (sha256
4247 (base32
4248 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4249 (build-system gnu-build-system)
4250 (arguments
4251 '(#:phases
4252 (modify-phases %standard-phases
4253 (add-before 'check 'pre-check
4254 (lambda _
4255 (setenv "CC" "gcc")
4256 (substitute* "valadoc/tests/testrunner.sh"
4257 (("export PKG_CONFIG_PATH=" m)
4258 (string-append m "$PKG_CONFIG_PATH:")))
4259 ;; For missing '/etc/machine-id'.
4260 (setenv "DBUS_FATAL_WARNINGS" "0")
4261 #t)))))
4262 (native-inputs
4263 `(("pkg-config" ,pkg-config)
4264 ("flex" ,flex)
4265 ("bison" ,bison)
4266 ("xsltproc" ,libxslt)
4267 ("dbus" ,dbus) ; for dbus tests
4268 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4269 (inputs
4270 `(("graphviz" ,graphviz)))
4271 (propagated-inputs
4272 `(("glib" ,glib))) ; required by libvala-0.40.pc
4273 (home-page "https://live.gnome.org/Vala/")
4274 (synopsis "Compiler for the GObject type system")
4275 (description
4276 "Vala is a programming language that aims to bring modern programming
4277 language features to GNOME developers without imposing any additional runtime
4278 requirements and without using a different ABI compared to applications and
4279 libraries written in C.")
4280 (license license:lgpl2.1+)))
4281
4282 (define-public vala-0.48
4283 (package
4284 (inherit vala)
4285 (version "0.48.9")
4286 (source (origin
4287 (method url-fetch)
4288 (uri (string-append "mirror://gnome/sources/vala/"
4289 (version-major+minor version) "/"
4290 "vala-" version ".tar.xz"))
4291 (sha256
4292 (base32
4293 "1agyrvslv2yh9ikiw7k5nw6j6il1l2zrzfan0pzdpb9xpg9idslw"))))))
4294
4295 (define-public vte
4296 (package
4297 (name "vte")
4298 (version "0.60.3")
4299 (source (origin
4300 (method url-fetch)
4301 (uri (string-append "mirror://gnome/sources/vte/"
4302 (version-major+minor version) "/"
4303 "vte-" version ".tar.xz"))
4304 (sha256
4305 (base32
4306 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4307 (build-system meson-build-system)
4308 (arguments
4309 `(#:configure-flags
4310 '("-Dvapi=true"
4311 "-D_systemd=false")))
4312 (native-inputs
4313 `(("pkg-config" ,pkg-config)
4314 ("gettext" ,gettext-minimal)
4315 ("vala" ,vala)
4316 ("gobject-introspection" ,gobject-introspection)
4317 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4318 ("gperf" ,gperf)
4319 ("xmllint" ,libxml2)))
4320 (propagated-inputs
4321 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4322 ("gnutls" ,gnutls) ; ditto
4323 ("pcre2" ,pcre2))) ; ditto
4324 (home-page "https://www.gnome.org/")
4325 (synopsis "Virtual Terminal Emulator")
4326 (description
4327 "VTE is a library (libvte) implementing a terminal emulator widget for
4328 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4329 gnome-terminal, but can also be used to embed a console/terminal in games,
4330 editors, IDEs, etc.")
4331 (license license:lgpl2.1+)))
4332
4333 (define-public vte-ng
4334 (package
4335 (inherit vte)
4336 (name "vte-ng")
4337 (version "0.58.2.a")
4338 (home-page "https://github.com/thestinger/vte-ng")
4339 (source (origin
4340 (method git-fetch)
4341 (uri (git-reference (url home-page) (commit version)))
4342 (file-name (git-file-name name version))
4343 (sha256
4344 (base32
4345 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4346 (build-system meson-build-system)
4347 (native-inputs
4348 `(("gtk-doc" ,gtk-doc)
4349 ,@(package-native-inputs vte)))
4350 (arguments
4351 `(#:configure-flags '("-Ddocs=true")))
4352 (synopsis "Enhanced VTE terminal widget")
4353 (description
4354 "VTE is a library (libvte) implementing a terminal emulator widget for
4355 GTK+, this fork provides additional functions exposed for keyboard text
4356 selection and URL hints.")))
4357
4358 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4359 (define-public vte/gtk+-2
4360 (package (inherit vte)
4361 (name "vte")
4362 (version "0.28.2")
4363 (source (origin
4364 (method url-fetch)
4365 (uri (string-append "mirror://gnome/sources/" name "/"
4366 (version-major+minor version) "/"
4367 name "-" version ".tar.xz"))
4368 (sha256
4369 (base32
4370 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4371 (patches (search-patches
4372 "vte-CVE-2012-2738-pt1.patch"
4373 "vte-CVE-2012-2738-pt2.patch"))))
4374 (build-system gnu-build-system)
4375 (arguments
4376 '(#:configure-flags '("--disable-python")))
4377 (native-inputs
4378 `(("pkg-config" ,pkg-config)
4379 ("intltool" ,intltool)
4380 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4381 (propagated-inputs
4382 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4383 ("ncurses" ,ncurses))))) ; required by libvte.la
4384
4385 (define-public vinagre
4386 (package
4387 (name "vinagre")
4388 (version "3.22.0")
4389 (source (origin
4390 (method url-fetch)
4391 (uri (string-append "mirror://gnome/sources/" name "/"
4392 (version-major+minor version) "/"
4393 name "-" version ".tar.xz"))
4394 (patches (search-patches "vinagre-newer-freerdp.patch"
4395 "vinagre-newer-rdp-parameters.patch"))
4396 (sha256
4397 (base32
4398 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4399 (build-system glib-or-gtk-build-system)
4400 (arguments
4401 ;; Disable -Werror and such, to avoid build failures on compilation
4402 ;; warnings.
4403 '(#:configure-flags '("--enable-compile-warnings=minimum")
4404 #:phases
4405 (modify-phases %standard-phases
4406 (add-before 'install 'skip-gtk-update-icon-cache
4407 (lambda _
4408 ;; Don't create 'icon-theme.cache'
4409 (substitute* (find-files "." "^Makefile$")
4410 (("gtk-update-icon-cache") (which "true")))
4411 #t))
4412 (add-after 'unpack 'patch-configure
4413 (lambda _
4414 (substitute* "configure"
4415 (("freerdp") "freerdp2"))
4416 #t)))))
4417 (native-inputs
4418 `(("pkg-config" ,pkg-config)
4419 ("intltool" ,intltool)
4420 ("itstool" ,itstool)
4421 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4422 (inputs
4423 `(("libxml2" ,libxml2)
4424 ("gtk-vnc" ,gtk-vnc)
4425 ("gnome-keyring" ,gnome-keyring)
4426 ("libsecret" ,libsecret)
4427 ("freerdp" ,freerdp)
4428 ("spice" ,spice)
4429 ("spice-gtk" ,spice-gtk)
4430 ("telepathy-glib" ,telepathy-glib)
4431 ("vte" ,vte)))
4432 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4433 (synopsis "Remote desktop viewer for GNOME")
4434 (description "Vinagre is a remote display client supporting the VNC, SPICE
4435 and RDP protocols.")
4436 (license license:gpl3+)))
4437
4438 (define-public dconf
4439 (package
4440 (name "dconf")
4441 (version "0.34.0")
4442 (source (origin
4443 (method url-fetch)
4444 (uri (string-append
4445 "mirror://gnome/sources/" name "/"
4446 (version-major+minor version) "/"
4447 name "-" version ".tar.xz"))
4448 (patches (search-patches "dconf-meson-0.52.patch"))
4449 (sha256
4450 (base32
4451 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
4452 (build-system meson-build-system)
4453 (propagated-inputs
4454 ;; In Requires of dconf.pc.
4455 `(("glib" ,glib)))
4456 (inputs
4457 `(("gtk+" ,gtk+)
4458 ("dbus" ,dbus)))
4459 (native-inputs
4460 `(("bash-completion" ,bash-completion)
4461 ("libxslt" ,libxslt) ;for xsltproc
4462 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4463 ("docbook-xml" ,docbook-xml-4.2)
4464 ("docbook-xsl" ,docbook-xsl)
4465 ("glib:bin" ,glib "bin")
4466 ("gtk-doc" ,gtk-doc)
4467 ("pkg-config" ,pkg-config)
4468 ("vala" ,vala)))
4469 (arguments
4470 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
4471 ; or /etc/machine-id.
4472 #:glib-or-gtk? #t
4473 #:configure-flags '("-Denable-gtk-doc=true")))
4474 (home-page "https://developer.gnome.org/dconf/")
4475 (synopsis "Low-level GNOME configuration system")
4476 (description "Dconf is a low-level configuration system. Its main purpose
4477 is to provide a backend to GSettings on platforms that don't already have
4478 configuration storage systems.")
4479 (license license:lgpl2.1+)))
4480
4481 (define-public json-glib
4482 (package
4483 (name "json-glib")
4484 (version "1.4.4")
4485 (source (origin
4486 (method url-fetch)
4487 (uri (string-append "mirror://gnome/sources/" name "/"
4488 (version-major+minor version) "/"
4489 name "-" version ".tar.xz"))
4490 (sha256
4491 (base32
4492 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4493 (build-system meson-build-system)
4494 (native-inputs
4495 `(("gettext" ,gettext-minimal)
4496 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4497 ("gobject-introspection" ,gobject-introspection)
4498 ("pkg-config" ,pkg-config)))
4499 (propagated-inputs
4500 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4501 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4502 (synopsis "Compiler for the GObject type system")
4503 (description
4504 "JSON-GLib is a C library based on GLib providing serialization and
4505 deserialization support for the JavaScript Object Notation (JSON) format
4506 described by RFC 4627. It provides parser and generator GObject classes and
4507 various wrappers for the complex data types employed by JSON, such as arrays
4508 and objects.")
4509 (license license:lgpl2.1+)))
4510
4511 (define-public libxklavier
4512 (package
4513 (name "libxklavier")
4514 (version "5.4")
4515 (source (origin
4516 ;; Note: There's no tarball at ftp.gnome.org for this version.
4517 (method git-fetch)
4518 (uri (git-reference
4519 (url "https://anongit.freedesktop.org/git/libxklavier")
4520 (commit (string-append "libxklavier-" version))))
4521 (sha256
4522 (base32
4523 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4524 (file-name (git-file-name name version))))
4525 (build-system gnu-build-system)
4526 (arguments
4527 '(#:configure-flags
4528 (list (string-append "--with-xkb-base="
4529 (assoc-ref %build-inputs "xkeyboard-config")
4530 "/share/X11/xkb")
4531 "--disable-xmodmap-support")))
4532 (native-inputs
4533 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4534 ("gobject-introspection" ,gobject-introspection)
4535 ("pkg-config" ,pkg-config)
4536 ("gtk-doc" ,gtk-doc)
4537 ("intltool" ,intltool)
4538 ("which" ,which)
4539 ("autoconf" ,autoconf)
4540 ("automake" ,automake)
4541 ("libtool" ,libtool)))
4542 (propagated-inputs
4543 ;; Required by libxklavier.pc.
4544 `(("glib" ,glib)
4545 ("libxml2" ,libxml2)))
4546 (inputs
4547 `(("iso-codes" ,iso-codes)
4548 ("libxi" ,libxi)
4549 ("libxkbfile" ,libxkbfile)
4550 ("xkbcomp" ,xkbcomp)
4551 ("xkeyboard-config" ,xkeyboard-config)))
4552 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4553 (synopsis "High-level API for X Keyboard Extension")
4554 (description
4555 "LibXklavier is a library providing high-level API for X Keyboard
4556 Extension known as XKB. This library is intended to support XFree86 and other
4557 commercial X servers. It is useful for creating XKB-related software (layout
4558 indicators etc).")
4559 (license license:lgpl2.0+)))
4560
4561 (define-public python2-rsvg
4562 ;; XXX: This is actually a subset of gnome-python-desktop.
4563 (package
4564 (name "python2-rsvg")
4565 (version "2.32.0")
4566 (source
4567 (origin
4568 (method url-fetch)
4569 (uri (string-append
4570 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4571 version ".tar.bz2"))
4572 (sha256
4573 (base32
4574 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4575 (build-system gnu-build-system)
4576 (native-inputs
4577 `(("pkg-config" ,pkg-config)))
4578 (inputs
4579 `(("python" ,python-2)
4580 ("python2-pygtk" ,python2-pygtk)
4581 ("librsvg" ,librsvg)))
4582 (home-page "https://www.gnome.org")
4583 (synopsis "Python bindings to librsvg")
4584 (description
4585 "This package provides Python bindings to librsvg, the SVG rendering
4586 library.")
4587
4588 ;; This is the license of the rsvg bindings. The license of each module
4589 ;; of gnome-python-desktop is given in 'COPYING'.
4590 (license license:lgpl2.1+)))
4591
4592 (define-public glib-networking
4593 (package
4594 (name "glib-networking")
4595 (version "2.62.2")
4596 (source (origin
4597 (method url-fetch)
4598 (uri (string-append "mirror://gnome/sources/glib-networking/"
4599 (version-major+minor version) "/"
4600 "glib-networking-" version ".tar.xz"))
4601 (sha256
4602 (base32
4603 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4604 (build-system meson-build-system)
4605 (arguments
4606 `(#:configure-flags '("-Dlibproxy_support=false")))
4607 (native-inputs
4608 `(("pkg-config" ,pkg-config)
4609 ("intltool" ,intltool)))
4610 (inputs
4611 `(("glib" ,glib)
4612 ("gnutls" ,gnutls)
4613 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4614 (home-page "https://www.gnome.org")
4615 (synopsis "Network-related GIO modules")
4616 (description
4617 "This package contains various network related extensions for the GIO
4618 library.")
4619 (license license:lgpl2.0+)))
4620
4621 (define-public rest
4622 (package
4623 (name "rest")
4624 (version "0.8.1")
4625 (source (origin
4626 (method url-fetch)
4627 (uri (string-append "mirror://gnome/sources/rest/"
4628 (version-major+minor version) "/"
4629 name "-" version ".tar.xz"))
4630 (sha256
4631 (base32
4632 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4633 (build-system gnu-build-system)
4634 (arguments
4635 '(#:tests? #f ; tests require internet connection
4636 #:configure-flags
4637 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4638 (native-inputs
4639 `(("glib-mkenums" ,glib "bin")
4640 ("gobject-introspection" ,gobject-introspection)
4641 ("pkg-config" ,pkg-config)))
4642 (propagated-inputs
4643 ;; rest-0.7.pc refers to all these.
4644 `(("glib" ,glib)
4645 ("libsoup" ,libsoup)
4646 ("libxml2" ,libxml2)))
4647 (home-page "https://www.gtk.org/")
4648 (synopsis "RESTful web api query library")
4649 (description
4650 "This library was designed to make it easier to access web services that
4651 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4652 libxml to ease remote use of the RESTful API.")
4653 (license license:lgpl2.1+)))
4654
4655 (define-public libsoup
4656 (package
4657 (name "libsoup")
4658 (version "2.70.0")
4659 (source (origin
4660 (method url-fetch)
4661 (uri (string-append "mirror://gnome/sources/libsoup/"
4662 (version-major+minor version) "/"
4663 "libsoup-" version ".tar.xz"))
4664 (sha256
4665 (base32
4666 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
4667 (build-system meson-build-system)
4668 (outputs '("out" "doc"))
4669 (arguments
4670 `(#:modules ((guix build utils)
4671 (guix build meson-build-system)
4672 (ice-9 popen))
4673
4674 #:configure-flags '("-Dgtk_doc=true")
4675 #:phases
4676 (modify-phases %standard-phases
4677 (add-after 'unpack 'adjust-tests
4678 (lambda _
4679 ;; This test fails due to missing /etc/nsswitch.conf
4680 ;; in the build environment.
4681 (substitute* "tests/socket-test.c"
4682 ((".*/sockets/unconnected.*") ""))
4683
4684 ;; These fail because "subdomain.localhost" does not resolve in
4685 ;; the build environment.
4686 (substitute* "tests/hsts-test.c"
4687 ((".*/hsts/basic.*") "")
4688 ((".*/hsts/subdomains.*") "")
4689 ((".*/hsts/superdomain.*") "")
4690 ((".*/hsts/utf8-address.*") ""))
4691 (substitute* "tests/hsts-db-test.c"
4692 ((".*/hsts-db/subdomains.*") ""))
4693
4694 ;; Generate a self-signed certificate that has "localhost" as its
4695 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4696 ;; 3.5.12, tests such as "ssl-tests" fail:
4697 ;;
4698 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4699 ;;
4700 ;; 'certtool' is interactive so we have to pipe it the answers.
4701 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4702 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4703 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4704 (for-each (lambda (line)
4705 (display line pipe)
4706 (newline pipe))
4707 '("" ;Common name
4708 "" ;UID
4709 "Guix" ;Organizational unit name
4710 "GNU" ;Organization name
4711 "" ;Locality name
4712 "" ;State or province
4713 "" ;Country
4714 "" ;subject's domain component (DC)
4715 "" ;E-mail
4716 "" ;serial number
4717 "-1" ;expiration time
4718 "N" ;belong to authority?
4719 "N" ;web client certificate?
4720 "N" ;IPsec IKE?
4721 "Y" ;web server certificate?
4722 "localhost" ;dnsName of subject
4723 "" ;dnsName of subject (end)
4724 "" ;URI of subject
4725 "127.0.0.1" ;IP address of subject
4726 "" ;signing?
4727 "" ;encryption (RSA)?
4728 "" ;data encryption?
4729 "" ;sign OCSP requests?
4730 "" ;sign code?
4731 "" ;time stamping?
4732 "" ;email protection?
4733 "" ;URI of the CRL distribution point
4734 "y" ;above info OK?
4735 ))
4736 (close-pipe pipe))
4737 #t))
4738 (add-after 'install 'move-doc
4739 (lambda* (#:key outputs #:allow-other-keys)
4740 (let ((out (assoc-ref outputs "out"))
4741 (doc (assoc-ref outputs "doc")))
4742 (mkdir-p (string-append doc "/share"))
4743 (copy-recursively (string-append out "/share/gtk-doc")
4744 (string-append doc "/share/gtk-doc"))
4745 (delete-file-recursively (string-append out "/share/gtk-doc"))
4746 #t))))))
4747 (native-inputs
4748 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4749 ("gobject-introspection" ,gobject-introspection)
4750 ("gtk-doc" ,gtk-doc)
4751 ("intltool" ,intltool)
4752 ("pkg-config" ,pkg-config)
4753 ("python" ,python-wrapper)
4754 ("vala" ,vala)
4755 ("php" ,php)
4756 ("curl" ,curl)
4757 ("gnutls" ,gnutls) ;for 'certtool'
4758 ("httpd" ,httpd)))
4759 (propagated-inputs
4760 ;; libsoup-2.4.pc refers to all these.
4761 `(("brotli" ,google-brotli)
4762 ("glib" ,glib)
4763 ("libpsl" ,libpsl)
4764 ("libxml2" ,libxml2)
4765 ("sqlite" ,sqlite)
4766 ("zlib" ,zlib)))
4767 (inputs
4768 `(("glib-networking" ,glib-networking)
4769 ("mit-krb5" ,mit-krb5)))
4770 (home-page "https://live.gnome.org/LibSoup/")
4771 (synopsis "GLib-based HTTP Library")
4772 (description
4773 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4774 and the GLib main loop, to integrate well with GNOME applications.")
4775 (license license:lgpl2.0+)))
4776
4777
4778 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4779 (define-public libsoup-minimal
4780 (package
4781 (inherit libsoup)
4782 (name "libsoup-minimal")
4783 (outputs (delete "doc" (package-outputs libsoup)))
4784 (arguments
4785 (substitute-keyword-arguments (package-arguments libsoup)
4786 ((#:configure-flags configure-flags)
4787 `(delete "-Dgtk_doc=true" ,configure-flags))
4788 ((#:phases phases)
4789 `(modify-phases ,phases
4790 (delete 'move-doc)))))
4791 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4792
4793 (define-public libsecret
4794 (package
4795 (name "libsecret")
4796 (version "0.20.4")
4797 (source (origin
4798 (method url-fetch)
4799 (uri (string-append
4800 "mirror://gnome/sources/libsecret/"
4801 (version-major+minor version) "/"
4802 "libsecret-" version ".tar.xz"))
4803 (sha256
4804 (base32
4805 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
4806 (build-system gnu-build-system)
4807 (outputs '("out" "doc"))
4808 (arguments
4809 `(#:tests? #f ; FIXME: Testing hangs.
4810 #:configure-flags
4811 (list (string-append "--with-html-dir="
4812 (assoc-ref %outputs "doc")
4813 "/share/gtk-doc/html"))))
4814 (native-inputs
4815 `(("gettext" ,gettext-minimal)
4816 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4817 ("gobject-introspection" ,gobject-introspection)
4818 ("pkg-config" ,pkg-config)
4819 ("vala" ,vala)
4820 ("xsltproc" ,libxslt)))
4821 ;; These are needed for the tests.
4822 ;; FIXME: Add gjs once available.
4823 ;("dbus" ,dbus)
4824 ;("python2" ,python-2)
4825 ;("python2-dbus" ,python2-dbus)
4826 ;("python2-pygobject" ,python2-pygobject)
4827 ;("python2-pygobject-2" ,python2-pygobject-2)))
4828 (propagated-inputs
4829 `(("glib" ,glib))) ; required by libsecret-1.pc
4830 (inputs
4831 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
4832 ;; doesn't seem to affect the build result.
4833 `(("docbook-xsl" ,docbook-xsl)
4834 ("libgcrypt" ,libgcrypt)
4835 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4836 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4837 (synopsis "GObject bindings for \"Secret Service\" API")
4838 (description
4839 "Libsecret is a GObject based library for storing and retrieving passwords
4840 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4841 (license license:lgpl2.1+)))
4842
4843 (define-public five-or-more
4844 (package
4845 (name "five-or-more")
4846 (version "3.32.2")
4847 (source
4848 (origin
4849 (method url-fetch)
4850 (uri (string-append "mirror://gnome/sources/five-or-more/"
4851 (version-major+minor version) "/"
4852 "five-or-more-" version ".tar.xz"))
4853 (sha256
4854 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4855 (build-system meson-build-system)
4856 (arguments
4857 '(#:glib-or-gtk? #t
4858 #:phases
4859 (modify-phases %standard-phases
4860 (add-after 'unpack 'skip-gtk-update-icon-cache
4861 (lambda _
4862 (substitute* "meson_post_install.py"
4863 (("gtk-update-icon-cache") (which "true")))
4864 #t)))))
4865 (native-inputs
4866 `(("pkg-config" ,pkg-config)
4867 ("appstream-glib" ,appstream-glib)
4868 ("desktop-file-utils" ,desktop-file-utils)
4869 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4870 ("intltool" ,intltool)
4871 ("itstool" ,itstool)
4872 ("vala" ,vala)
4873 ("xmllint" ,libxml2)))
4874 (inputs
4875 `(("gtk+" ,gtk+)
4876 ("libgnome-games-support" ,libgnome-games-support)
4877 ("librsvg" ,librsvg)))
4878 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
4879 (synopsis "Logic puzzle game")
4880 (description "Five or More is a game where you try to align
4881 five or more objects of the same color and shape causing them to disappear.
4882 On every turn more objects will appear, until the board is full.
4883 Try to last as long as possible.")
4884 (license license:gpl2+)))
4885
4886 (define-public gnome-mines
4887 (package
4888 (name "gnome-mines")
4889 (version "3.36.1")
4890 (source
4891 (origin
4892 (method url-fetch)
4893 (uri (string-append "mirror://gnome/sources/" name "/"
4894 (version-major+minor version) "/"
4895 name "-" version ".tar.xz"))
4896 (sha256
4897 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
4898 (build-system meson-build-system)
4899 (arguments
4900 '(#:glib-or-gtk? #t
4901 #:phases
4902 (modify-phases %standard-phases
4903 (add-after 'unpack 'skip-gtk-update-icon-cache
4904 (lambda _
4905 (substitute* "build-aux/meson_post_install.py"
4906 (("gtk-update-icon-cache") (which "true")))
4907 #t)))))
4908 (native-inputs
4909 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
4910 ("pkg-config" ,pkg-config)
4911 ("desktop-file-utils" ,desktop-file-utils)
4912 ("intltool" ,intltool)
4913 ("itstool" ,itstool)
4914 ("vala" ,vala)
4915 ("yelp" ,yelp)
4916 ("appstream-glib" ,appstream-glib)))
4917 (inputs
4918 `(("gtk+" ,gtk+)
4919 ("libgnome-games-support" ,libgnome-games-support)
4920 ("librsvg" ,librsvg)))
4921 (home-page "https://wiki.gnome.org/Apps/Mines")
4922 (synopsis "Minesweeper game")
4923 (description
4924 "Mines (previously gnomine) is a puzzle game where you locate mines
4925 floating in an ocean using only your brain and a little bit of luck.")
4926 (license license:gpl2+)))
4927
4928 (define-public gnome-multi-writer
4929 (package
4930 (name "gnome-multi-writer")
4931 (version "3.35.90")
4932 (source
4933 (origin
4934 (method url-fetch)
4935 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
4936 (version-major+minor version) "/"
4937 "gnome-multi-writer-" version ".tar.xz"))
4938 (sha256
4939 (base32
4940 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
4941 (build-system meson-build-system)
4942 (arguments
4943 '(#:glib-or-gtk? #t
4944 #:phases
4945 (modify-phases %standard-phases
4946 (add-after 'unpack 'skip-post-install
4947 (lambda _
4948 (substitute* "meson.build"
4949 (("meson.add_install_script" &) (string-append "# " &)))
4950 #t)))))
4951 (native-inputs
4952 `(("glib:bin" ,glib "bin")
4953 ("pkg-config" ,pkg-config)))
4954 (inputs
4955 `(("gtk+" ,gtk+)
4956 ("glib" ,glib) ; for gio
4957 ("gusb" ,gusb)
4958 ("udisks" ,udisks)
4959 ("libgudev" ,libgudev)
4960 ("libcanberra" ,libcanberra)
4961 ("polkit" ,polkit)))
4962 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
4963 (synopsis "Write to multiple USB devices at once")
4964 (description
4965 "MultiWriter can be used to write an ISO file to multiple USB devices at
4966 once.")
4967 (license license:gpl2+)))
4968
4969 (define-public gnome-sudoku
4970 (package
4971 (name "gnome-sudoku")
4972 (version "3.34.1")
4973 (source
4974 (origin
4975 (method url-fetch)
4976 (uri (string-append "mirror://gnome/sources/" name "/"
4977 (version-major+minor version) "/"
4978 name "-" version ".tar.xz"))
4979 (sha256
4980 (base32
4981 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
4982 (build-system meson-build-system)
4983 (arguments
4984 '(#:glib-or-gtk? #t
4985 #:phases
4986 (modify-phases %standard-phases
4987 (add-after 'unpack 'skip-gtk-update-icon-cache
4988 (lambda _
4989 (substitute* "build-aux/post_install.py"
4990 (("gtk-update-icon-cache") (which "true")))
4991 #t)))))
4992 (native-inputs
4993 `(("pkg-config" ,pkg-config)
4994 ("desktop-file-utils" ,desktop-file-utils)
4995 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4996 ("intltool" ,intltool)
4997 ("itstool" ,itstool)
4998 ("vala" ,vala)
4999 ("xmllint" ,libxml2)))
5000 (inputs
5001 `(("gtk+" ,gtk+)
5002 ("json-glib" ,json-glib)
5003 ("libgee" ,libgee)
5004 ("librsvg" ,librsvg)
5005 ("qqwing" ,qqwing)))
5006 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5007 (synopsis "Japanese logic game")
5008 (description
5009 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5010 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5011 possible while still providing features that make playing difficult Sudoku
5012 more fun.")
5013 (license license:gpl2+)))
5014
5015 (define-public gnome-terminal
5016 (package
5017 (name "gnome-terminal")
5018 (version "3.34.2")
5019 (source
5020 (origin
5021 (method url-fetch)
5022 (uri (string-append "mirror://gnome/sources/" name "/"
5023 (version-major+minor version) "/"
5024 name "-" version ".tar.xz"))
5025 (sha256
5026 (base32
5027 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
5028 (build-system glib-or-gtk-build-system)
5029 (arguments
5030 '(#:configure-flags
5031 (list "--disable-migration" "--disable-search-provider"
5032 "--without-nautilus-extension")
5033 #:phases
5034 (modify-phases %standard-phases
5035 (add-before 'configure 'patch-/bin/true
5036 (lambda _
5037 (substitute* "configure"
5038 (("/bin/true") (which "true"))))))))
5039 (native-inputs
5040 `(("pkg-config" ,pkg-config)
5041 ("desktop-file-utils" ,desktop-file-utils)
5042 ("intltool" ,intltool)
5043 ("itstool" ,itstool)
5044 ("xmllint" ,libxml2)))
5045 (propagated-inputs
5046 `(("dconf" ,dconf)))
5047 (inputs
5048 `(("gtk+" ,gtk+)
5049 ("vte" ,vte)
5050 ("gnutls" ,gnutls)
5051 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5052 ("util-linux" ,util-linux "lib")
5053 ("vala" ,vala)))
5054 (home-page "https://wiki.gnome.org/Apps/Terminal")
5055 (synopsis "Terminal emulator")
5056 (description
5057 "GNOME Terminal is a terminal emulator application for accessing a
5058 UNIX shell environment which can be used to run programs available on
5059 your system.
5060
5061 It supports several profiles, multiple tabs and implements several
5062 keyboard shortcuts.")
5063 (license license:gpl3+)))
5064
5065 (define-public colord
5066 (package
5067 (name "colord")
5068 (version "1.4.4")
5069 (source
5070 (origin
5071 (method url-fetch)
5072 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5073 "colord-" version ".tar.xz"))
5074 (sha256
5075 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
5076 (build-system meson-build-system)
5077 (arguments
5078 '(;; FIXME: One test fails:
5079 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5080 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5081 ;; application/x-zerosize
5082 #:tests? #f
5083 #:glib-or-gtk? #t
5084 #:configure-flags (list "-Dlocalstatedir=/var"
5085 ;; No dep on systemd.
5086 "-Dsystemd=false"
5087 ;; Wants to install to global completion dir;
5088 ;; punt.
5089 "-Dbash_completion=false"
5090 "-Ddaemon_user=colord"
5091 "-Dsane=true"
5092 "-Dvapi=true"
5093 ;; Requires spotread.
5094 "-Dargyllcms_sensor=false"
5095 ;; TODO: Requires docbook2x.
5096 "-Dman=false")
5097 #:phases
5098 (modify-phases %standard-phases
5099 (add-before 'configure 'patch-build-system
5100 (lambda* (#:key outputs #:allow-other-keys)
5101 (substitute* "rules/meson.build"
5102 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5103 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
5104 #t))
5105 (add-before 'configure 'set-sqlite3-file-name
5106 (lambda* (#:key inputs #:allow-other-keys)
5107 ;; "colormgr dump" works by invoking the "sqlite3" command.
5108 ;; Record its absolute file name.
5109 (let ((sqlite (assoc-ref inputs "sqlite")))
5110 (substitute* "client/cd-util.c"
5111 (("\"sqlite3\"")
5112 (string-append "\"" sqlite "/bin/sqlite3\"")))
5113 #t))))))
5114 (native-inputs
5115 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5116 ("gettext" ,gettext-minimal)
5117 ("gobject-introspection" ,gobject-introspection)
5118 ("gtk-doc" ,gtk-doc)
5119 ("pkg-config" ,pkg-config)
5120 ("vala" ,vala)))
5121 (propagated-inputs
5122 ;; colord.pc refers to all these.
5123 `(("glib" ,glib)
5124 ("lcms" ,lcms)
5125 ("udev" ,eudev)))
5126 (inputs
5127 `(("dbus-glib" ,dbus-glib)
5128 ("gusb" ,gusb)
5129 ("libgudev" ,libgudev)
5130 ("libusb" ,libusb)
5131 ("polkit" ,polkit)
5132 ("python" ,python-wrapper)
5133 ("sqlite" ,sqlite)
5134 ("sane-backends" ,sane-backends)))
5135 (home-page "https://www.freedesktop.org/software/colord/")
5136 (synopsis "Color management service")
5137 (description "Colord is a system service that makes it easy to manage,
5138 install and generate color profiles to accurately color manage input and
5139 output devices.")
5140 (license license:gpl2+)))
5141
5142 (define-public geoclue
5143 (package
5144 (name "geoclue")
5145 (version "2.5.6")
5146 (source
5147 (origin
5148 (method url-fetch)
5149 (uri
5150 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5151 version "/geoclue-" version ".tar.bz2"))
5152 (sha256
5153 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
5154 (patches (search-patches "geoclue-config.patch"))))
5155 (build-system meson-build-system)
5156 (arguments
5157 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
5158 (native-inputs
5159 `(("pkg-config" ,pkg-config)
5160 ("gobject-introspection" ,gobject-introspection)
5161 ("modem-manager" ,modem-manager)
5162 ("libnotify" ,libnotify)
5163 ("gtk-doc" ,gtk-doc)
5164 ("intltool" ,intltool)))
5165 (inputs
5166 `(("avahi" ,avahi)
5167 ("glib:bin" ,glib "bin")
5168 ("glib-networking" ,glib-networking)
5169 ("json-glib" ,json-glib)
5170 ("libsoup" ,libsoup)))
5171 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5172 (synopsis "Geolocation service")
5173 (description "Geoclue is a D-Bus service that provides location
5174 information. The primary goal of the Geoclue project is to make creating
5175 location-aware applications as simple as possible, while the secondary goal is
5176 to ensure that no application can access location information without explicit
5177 permission from user.")
5178 (license license:gpl2+)))
5179
5180 (define-public geocode-glib
5181 (package
5182 (name "geocode-glib")
5183 (version "3.26.2")
5184 (source (origin
5185 (method url-fetch)
5186 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5187 (version-major+minor version) "/"
5188 "geocode-glib-" version ".tar.xz"))
5189 (sha256
5190 (base32
5191 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5192 (build-system meson-build-system)
5193 (arguments
5194 `(#:phases
5195 (modify-phases %standard-phases
5196 ;; The tests require a bunch of locales.
5197 (add-before 'check 'set-locales
5198 (lambda* (#:key inputs #:allow-other-keys)
5199 (setenv "GUIX_LOCPATH"
5200 (string-append (assoc-ref inputs "glibc-locales")
5201 "/lib/locale"))
5202 #t)))))
5203 (native-inputs
5204 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5205 ("glibc-locales" ,glibc-locales) ; for tests
5206 ("gettext" ,gettext-minimal)
5207 ("gobject-introspection" ,gobject-introspection)
5208 ("gtk-doc" ,gtk-doc)
5209 ("pkg-config" ,pkg-config)
5210 ("json-glib" ,json-glib)))
5211 (propagated-inputs
5212 ;; geocode-glib-1.0.pc refers to GIO.
5213 `(("glib" ,glib)))
5214 (inputs
5215 `(("libsoup" ,libsoup)))
5216 (home-page "https://github.com/GNOME/geocode-glib/")
5217 (synopsis "Geocoding and reverse-geocoding library")
5218 (description
5219 "geocode-glib is a convenience library for geocoding (finding longitude,
5220 and latitude from an address) and reverse geocoding (finding an address from
5221 coordinates) using the Nominatim service. geocode-glib caches requests for
5222 faster results and to avoid unnecessary server load.")
5223 (license license:lgpl2.0+)))
5224
5225 (define-public upower
5226 (package
5227 (name "upower")
5228 (version "0.99.11")
5229 (source (origin
5230 (method url-fetch)
5231 (uri (string-append "https://upower.freedesktop.org/releases/"
5232 "upower-" version ".tar.xz"))
5233 (sha256
5234 (base32
5235 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5236 (patches (search-patches "upower-builddir.patch"))
5237 (modules '((guix build utils)))
5238 (snippet
5239 '(begin
5240 ;; Upstream commit
5241 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5242 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5243 ;; 'dbus-configuration-directory' in (gnu services dbus)
5244 ;; expects it in etc/. Thus, move it back to its previous
5245 ;; location.
5246 (substitute* "src/Makefile.in"
5247 (("^dbusconfdir =.*$")
5248 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5249 #t))))
5250 (build-system glib-or-gtk-build-system)
5251 (arguments
5252 '(#:phases
5253 (modify-phases %standard-phases
5254 (add-before 'check 'pre-check
5255 (lambda* (#:key inputs #:allow-other-keys)
5256 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5257 "/lib")))
5258 (setenv "LD_LIBRARY_PATH" umockdev))
5259 #t)))
5260 #:configure-flags (list "--localstatedir=/var"
5261 (string-append "--with-udevrulesdir="
5262 (assoc-ref %outputs "out")
5263 "/lib/udev/rules.d"))))
5264 (native-inputs
5265 `(("gobject-introspection" ,gobject-introspection)
5266 ("pkg-config" ,pkg-config)
5267 ("intltool" ,intltool)
5268 ("python" ,python)
5269
5270 ;; For tests.
5271 ("python-dbus" ,python-dbus)
5272 ("python-dbusmock" ,python-dbusmock)
5273 ("python-pygobject" ,python-pygobject)
5274 ("umockdev" ,umockdev)
5275
5276 ;; For man pages.
5277 ("libxslt" ,libxslt) ;for 'xsltproc'
5278 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5279 ("docbook-xsl" ,docbook-xsl)))
5280 (inputs
5281 `(("dbus-glib" ,dbus-glib)
5282 ("libgudev" ,libgudev)
5283 ("libusb" ,libusb)))
5284 (propagated-inputs
5285 ;; In Requires of upower-glib.pc.
5286 `(("glib" ,glib)))
5287 (home-page "https://upower.freedesktop.org/")
5288 (synopsis "System daemon for managing power devices")
5289 (description
5290 "UPower is an abstraction for enumerating power devices,
5291 listening to device events and querying history and statistics. Any
5292 application or service on the system can access the org.freedesktop.UPower
5293 service via the system message bus.")
5294 (license license:gpl2+)))
5295
5296 (define-public libgweather
5297 (package
5298 (name "libgweather")
5299 (version "3.34.0")
5300 (source (origin
5301 (method url-fetch)
5302 (uri (string-append "mirror://gnome/sources/" name "/"
5303 (version-major+minor version) "/"
5304 name "-" version ".tar.xz"))
5305 (sha256
5306 (base32
5307 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5308 (build-system meson-build-system)
5309 (arguments
5310 `(#:tests? #f ; one of two tests requires network access
5311 #:configure-flags
5312 `(,(string-append "-Dzoneinfo_dir="
5313 (assoc-ref %build-inputs "tzdata")
5314 "/share/zoneinfo"))))
5315 (native-inputs
5316 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5317 ("gobject-introspection" ,gobject-introspection)
5318 ("pkg-config" ,pkg-config)
5319 ("vala" ,vala)
5320 ("intltool" ,intltool)))
5321 (propagated-inputs
5322 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5323 ;; libsoup.
5324 `(("gtk+" ,gtk+)
5325 ("gdk-pixbuf" ,gdk-pixbuf)
5326 ("libxml2" ,libxml2)
5327 ("libsoup" ,libsoup)
5328 ("geocode-glib" ,geocode-glib)))
5329 (inputs
5330 `(("tzdata" ,tzdata)))
5331 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5332 (synopsis "Location, time zone, and weather library for GNOME")
5333 (description
5334 "libgweather is a library to access weather information from online
5335 services for numerous locations.")
5336 (license license:gpl2+)))
5337
5338 (define-public gnome-settings-daemon
5339 (package
5340 (name "gnome-settings-daemon")
5341 (version "3.34.1")
5342 (source
5343 (origin
5344 (method url-fetch)
5345 (uri (string-append "mirror://gnome/sources/" name "/"
5346 (version-major+minor version) "/"
5347 name "-" version ".tar.xz"))
5348 (sha256
5349 (base32
5350 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
5351 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5352 (build-system meson-build-system)
5353 (arguments
5354 `(#:glib-or-gtk? #t
5355 #:configure-flags
5356 (list (string-append "-Dudev_dir="
5357 (assoc-ref %outputs "out")
5358 "/lib/udev/rules.d/")
5359 "-Dsystemd=false"
5360 ;; Otherwise, the RUNPATH will lack the final path component.
5361 (string-append "-Dc_link_args=-Wl,-rpath="
5362 (assoc-ref %outputs "out")
5363 "/lib/gnome-settings-daemon-3.0"))
5364
5365 #:phases (modify-phases %standard-phases
5366 (add-before 'configure 'set-baobab-file-name
5367 (lambda* (#:key inputs #:allow-other-keys)
5368 ;; Hard-code the file name of Baobab instead of looking
5369 ;; it up in $PATH. This ensures users get the "Examine"
5370 ;; button in the low disk space notification of GDM even
5371 ;; if they don't have GNOME in their main profile.
5372 (let ((baobab (assoc-ref inputs "baobab")))
5373 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5374 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5375 (string-append "g_strdup (\"" baobab
5376 "/bin/baobab\")")))
5377 #t))))
5378
5379 ;; Color management test can't reach the colord system service.
5380 #:tests? #f))
5381 (native-inputs
5382 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5383 ("pkg-config" ,pkg-config)
5384 ("intltool" ,intltool)
5385 ("xsltproc" ,libxslt)
5386 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5387 ("docbook-xml" ,docbook-xml-4.2)
5388 ("docbook-xsl" ,docbook-xsl)))
5389 (inputs
5390 `(("alsa-lib" ,alsa-lib)
5391 ("baobab" ,baobab)
5392 ("colord" ,colord)
5393 ("libgudev" ,libgudev)
5394 ("upower" ,upower)
5395 ("polkit" ,polkit)
5396 ("pulseaudio" ,pulseaudio)
5397 ("libcanberra" ,libcanberra)
5398 ("libx11" ,libx11)
5399 ("libxtst" ,libxtst)
5400 ("lcms" ,lcms)
5401 ("libnotify" ,libnotify)
5402 ("geoclue" ,geoclue)
5403 ("geocode-glib" ,geocode-glib)
5404 ("libgweather" ,libgweather)
5405 ("gnome-desktop" ,gnome-desktop)
5406 ("nss" ,nss)
5407 ("cups" ,cups)
5408 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5409 ("libwacom" ,libwacom)
5410 ("librsvg" ,librsvg)
5411 ("xf86-input-wacom" ,xf86-input-wacom)
5412 ("wayland" ,wayland)
5413 ("network-manager" ,network-manager)
5414 ("gcr" ,gcr)
5415 ("modem-manager" ,modem-manager)))
5416 (home-page "https://www.gnome.org")
5417 (synopsis "GNOME settings daemon")
5418 (description
5419 "This package contains the daemon responsible for setting the various
5420 parameters of a GNOME session and the applications that run under it. It
5421 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5422 settings, themes, mouse settings, and startup of other daemons.")
5423 (license license:gpl2+)))
5424
5425 (define-public totem-pl-parser
5426 (package
5427 (name "totem-pl-parser")
5428 (version "3.26.5")
5429 (source (origin
5430 (method url-fetch)
5431 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5432 (version-major+minor version) "/"
5433 "totem-pl-parser-" version ".tar.xz"))
5434 (sha256
5435 (base32
5436 "132jihnf51zs98yjkc6jxyqib4f3dawpjm17g4bj4j78y93dww2k"))))
5437 (build-system meson-build-system)
5438 (arguments
5439 ;; FIXME: Tests require gvfs.
5440 `(#:tests? #f))
5441 (native-inputs
5442 `(("intltool" ,intltool)
5443 ("glib" ,glib "bin")
5444 ("gobject-introspection" ,gobject-introspection)
5445 ("pkg-config" ,pkg-config)))
5446 (propagated-inputs
5447 `(("glib" ,glib)
5448 ("gmime" ,gmime)
5449 ("libarchive" ,libarchive)
5450 ("libgcrypt" ,libgcrypt)
5451 ("libxml2" ,libxml2)))
5452 (inputs
5453 `(("libsoup" ,libsoup)))
5454 (home-page "https://projects.gnome.org/totem")
5455 (synopsis "Library to parse and save media playlists for GNOME")
5456 (description "Totem-pl-parser is a GObjects-based library to parse and save
5457 playlists in a variety of formats.")
5458 (license license:lgpl2.0+)))
5459
5460 (define-public aisleriot
5461 (package
5462 (name "aisleriot")
5463 (version "3.22.9")
5464 (source (origin
5465 (method url-fetch)
5466 (uri (string-append "mirror://gnome/sources/aisleriot/"
5467 (version-major+minor version) "/"
5468 "aisleriot-" version ".tar.xz"))
5469 (sha256
5470 (base32
5471 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5472 (build-system glib-or-gtk-build-system)
5473 (arguments
5474 '(#:configure-flags
5475 '("--with-platform=gtk-only"
5476 "--with-card-theme-formats=svg")))
5477 (native-inputs
5478 `(("desktop-file-utils" ,desktop-file-utils)
5479 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5480 ("intltool" ,intltool)
5481 ("itstool" ,itstool)
5482 ("pkg-config" ,pkg-config)
5483 ("xmllint" ,libxml2)))
5484 (inputs
5485 `(("gtk+" ,gtk+)
5486 ("guile" ,guile-2.2)
5487 ("libcanberra" ,libcanberra)
5488 ("librsvg" ,librsvg)))
5489 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5490 (synopsis "Solitaire card games")
5491 (description
5492 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5493 which are easy to play with the aid of a mouse.")
5494 (license license:gpl3+)))
5495
5496 (define-public amtk
5497 (package
5498 (name "amtk")
5499 (version "5.0.2")
5500 (source (origin
5501 (method url-fetch)
5502 (uri (string-append "mirror://gnome/sources/amtk/"
5503 (version-major+minor version) "/"
5504 "amtk-" version ".tar.xz"))
5505 (sha256
5506 (base32
5507 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5508 (build-system gnu-build-system)
5509 (arguments
5510 '(#:configure-flags '("--enable-gtk-doc")))
5511 (native-inputs
5512 `(("gobject-introspection" ,gobject-introspection)
5513 ("glib:bin" ,glib "bin") ; for glib-mkenums
5514 ("gtk-doc" ,gtk-doc)
5515 ("pkg-config" ,pkg-config)))
5516 (inputs
5517 `(("glib" ,glib)
5518 ("gtk+" ,gtk+)))
5519 (home-page "https://wiki.gnome.org/Projects/Amtk")
5520 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5521 (description
5522 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5523 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5524 both a traditional UI or a modern UI with a GtkHeaderBar.")
5525 (license license:lgpl2.1+)))
5526
5527 (define-public devhelp
5528 (package
5529 (name "devhelp")
5530 (version "3.34.0")
5531 (source (origin
5532 (method url-fetch)
5533 (uri (string-append "mirror://gnome/sources/" name "/"
5534 (version-major+minor version) "/"
5535 name "-" version ".tar.xz"))
5536 (sha256
5537 (base32
5538 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5539 (build-system meson-build-system)
5540 (arguments
5541 '(#:glib-or-gtk? #t
5542 #:phases
5543 (modify-phases %standard-phases
5544 (add-after 'unpack 'skip-gtk-update-icon-cache
5545 ;; Don't create 'icon-theme.cache'.
5546 (lambda _
5547 (substitute* "meson_post_install.py"
5548 (("gtk-update-icon-cache") "true"))
5549 #t)))))
5550 (native-inputs
5551 `(("intltool" ,intltool)
5552 ("itstool" ,itstool)
5553 ("gobject-introspection" ,gobject-introspection)
5554 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5555 ("pkg-config" ,pkg-config)))
5556 (inputs
5557 `(("amtk" ,amtk)
5558 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5559 ("webkitgtk" ,webkitgtk)))
5560 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5561 (synopsis "API documentation browser for GNOME")
5562 (description
5563 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5564 natively with GTK-Doc (the API reference system developed for GTK+ and used
5565 throughout GNOME for API documentation).")
5566 (license license:gpl2+)))
5567
5568 (define-public cogl
5569 (package
5570 (name "cogl")
5571 (version "1.22.8")
5572 (source
5573 (origin
5574 (method url-fetch)
5575 (uri (string-append "mirror://gnome/sources/cogl/"
5576 (version-major+minor version) "/"
5577 "cogl-" version ".tar.xz"))
5578 (sha256
5579 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5580 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5581 ;; cogl, corresponding changes may be appropriate in mutter as well.
5582 (build-system gnu-build-system)
5583 (native-inputs
5584 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5585 ("gobject-introspection" ,gobject-introspection)
5586 ("xorg-server" ,xorg-server-for-tests)
5587 ("pkg-config" ,pkg-config)))
5588 (propagated-inputs
5589 `(("glib" ,glib)
5590 ("gdk-pixbuf" ,gdk-pixbuf)
5591 ("libx11" ,libx11)
5592 ("libxext" ,libxext)
5593 ("libxfixes" ,libxfixes)
5594 ("libxdamage" ,libxdamage)
5595 ("libxcomposite" ,libxcomposite)
5596 ("libxrandr" ,libxrandr)))
5597 (inputs
5598 `(("mesa" ,mesa)
5599 ("cairo" ,cairo)
5600 ("pango" ,pango)
5601 ("gstreamer" ,gstreamer)
5602 ("gst-plugins-base" ,gst-plugins-base)
5603 ("wayland" ,wayland)))
5604 (arguments
5605 `(#:disallowed-references (,xorg-server-for-tests)
5606 #:configure-flags (list "--enable-cogl-gst"
5607 "--enable-wayland-egl-platform"
5608 "--enable-wayland-egl-server"
5609
5610 ;; Arrange to pass an absolute file name to
5611 ;; dlopen for libGL.so.
5612 (string-append "--with-gl-libname="
5613 (assoc-ref %build-inputs "mesa")
5614 "/lib/libGL.so"))
5615 #:phases
5616 (modify-phases %standard-phases
5617 (add-after 'unpack 'fix-build-with-mesa-20
5618 (lambda _
5619 ;; Work around a problem with Mesa 20 where some macros used by
5620 ;; Cogl went missing from eglext.h. This can likely be removed
5621 ;; for newer versions of Cogl or Mesa.
5622 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5623 (substitute* '("configure"
5624 "cogl/winsys/cogl-winsys-egl-kms.c")
5625 (("#include <EGL/eglext.h>" all)
5626 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5627 #t))
5628 (add-before 'check 'start-xorg-server
5629 (lambda* (#:key tests? inputs #:allow-other-keys)
5630 (if tests?
5631 (begin
5632 ;; The test suite requires a running X server.
5633 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5634 (assoc-ref inputs "xorg-server")))
5635 (setenv "DISPLAY" ":1")
5636 #t)
5637 (format #t "test suite not run~%"))
5638 #t)))))
5639 (home-page "https://www.cogl3d.org")
5640 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5641 (description
5642 "Cogl is a small library for using 3D graphics hardware to draw pretty
5643 pictures. The API departs from the flat state machine style of OpenGL and is
5644 designed to make it easy to write orthogonal components that can render
5645 without stepping on each others toes.")
5646 (license (list license:expat ; most of the code
5647 license:bsd-3 ; cogl/cogl-point-in-poly.c
5648 license:sgifreeb2.0 ; cogl-path/tesselator/
5649 license:asl2.0)))) ; examples/android/
5650
5651 (define-public clutter
5652 (package
5653 (name "clutter")
5654 (version "1.26.2")
5655 (source
5656 (origin
5657 (method url-fetch)
5658 (uri (string-append "mirror://gnome/sources/" name "/"
5659 (version-major+minor version) "/"
5660 name "-" version ".tar.xz"))
5661 (sha256
5662 (base32
5663 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5664 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5665 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5666 (build-system gnu-build-system)
5667 (outputs '("out"
5668 "doc")) ;9 MiB of gtk-doc HTML pages
5669 (native-inputs
5670 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5671 ("gobject-introspection" ,gobject-introspection)
5672 ("pkg-config" ,pkg-config)
5673 ("xsltproc" ,libxslt)))
5674 (propagated-inputs
5675 `(("cogl" ,cogl)
5676 ("cairo" ,cairo)
5677 ("atk" ,atk)
5678 ("gtk+" ,gtk+)
5679 ("json-glib" ,json-glib)
5680 ("glib" ,glib)
5681 ("libxcomposite" ,libxcomposite)
5682 ("libxdamage" ,libxdamage)
5683 ("libxext" ,libxext)
5684 ("xinput" ,xinput)))
5685 (inputs
5686 `(("libxkbcommon" ,libxkbcommon)
5687 ("udev" ,eudev)))
5688 (arguments
5689 `(#:configure-flags (list "--enable-x11-backend=yes"
5690
5691 ;; This produces share/doc/{clutter,cally}.
5692 (string-append "--with-html-dir="
5693 (assoc-ref %outputs "doc")
5694 "/share/doc"))
5695 ;; XXX FIXME: Get test suite working. It would probably fail in the
5696 ;; same way the cogl tests fail, since clutter is based on cogl.
5697 #:tests? #f))
5698 (home-page "http://www.clutter-project.org")
5699 (synopsis "OpenGL-based interactive canvas library")
5700 (description
5701 "Clutter is an OpenGL-based interactive canvas library, designed for
5702 creating fast, mainly 2D single window applications such as media box UIs,
5703 presentations, kiosk style applications and so on.")
5704 (license license:lgpl2.0+)))
5705
5706 (define-public clutter-gtk
5707 (package
5708 (name "clutter-gtk")
5709 (version "1.8.4")
5710 (source
5711 (origin
5712 (method url-fetch)
5713 (uri (string-append "mirror://gnome/sources/" name "/"
5714 (version-major+minor version) "/"
5715 name "-" version ".tar.xz"))
5716 (sha256
5717 (base32
5718 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5719 (build-system gnu-build-system)
5720 (native-inputs
5721 `(("pkg-config" ,pkg-config)
5722 ("gobject-introspection" ,gobject-introspection)))
5723 (propagated-inputs
5724 ;; clutter-gtk.pc refers to all these.
5725 `(("clutter" ,clutter)
5726 ("gtk+" ,gtk+)))
5727 (home-page "http://www.clutter-project.org")
5728 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5729 (description
5730 "Clutter is an OpenGL-based interactive canvas library, designed for
5731 creating fast, mainly 2D single window applications such as media box UIs,
5732 presentations, kiosk style applications and so on.")
5733 (license license:lgpl2.0+)))
5734
5735 (define-public clutter-gst
5736 (package
5737 (name "clutter-gst")
5738 (version "3.0.27")
5739 (source
5740 (origin
5741 (method url-fetch)
5742 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5743 (version-major+minor version) "/"
5744 "clutter-gst-" version ".tar.xz"))
5745 (sha256
5746 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5747 (build-system gnu-build-system)
5748 (native-inputs
5749 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5750 ("pkg-config" ,pkg-config)
5751 ("gobject-introspection" ,gobject-introspection)))
5752 (inputs
5753 `(("clutter" ,clutter)
5754 ("gstreamer" ,gstreamer)
5755 ("gst-plugins-base" ,gst-plugins-base)))
5756 (home-page "http://www.clutter-project.org")
5757 (synopsis "Integration library for using GStreamer with Clutter")
5758 (description
5759 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5760 It provides a GStreamer sink to upload frames to GL and an actor that
5761 implements the ClutterGstPlayer interface using playbin. Clutter is an
5762 OpenGL-based interactive canvas library.")
5763 (license license:lgpl2.0+)))
5764
5765 (define-public libchamplain
5766 (package
5767 (name "libchamplain")
5768 (version "0.12.16")
5769 (source (origin
5770 (method url-fetch)
5771 (uri (string-append
5772 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5773 version ".tar.xz"))
5774 (sha256
5775 (base32
5776 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5777 (build-system gnu-build-system)
5778 (arguments '(#:configure-flags '("--enable-vala")))
5779 (native-inputs
5780 `(("gobject-introspection" ,gobject-introspection)
5781 ("pkg-config" ,pkg-config)
5782 ("vala" ,vala)))
5783 (propagated-inputs
5784 `(("libsoup" ,libsoup)
5785 ("sqlite" ,sqlite)
5786 ("clutter" ,clutter)
5787 ("clutter-gtk" ,clutter-gtk)
5788 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5789 ("cairo" ,cairo)
5790 ("gtk+3" ,gtk+)
5791 ("glib" ,glib)))
5792 (home-page "https://projects.gnome.org/libchamplain/")
5793 (synopsis "C library providing a ClutterActor to display maps")
5794 (description
5795 "libchamplain is a C library providing a ClutterActor to display maps.
5796 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5797 and Perl bindings are also available. It supports numerous free map sources
5798 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5799 (license license:lgpl2.1+)))
5800
5801 (define-public gom
5802 (package
5803 (name "gom")
5804 (version "0.3.2")
5805 (source
5806 (origin
5807 (method url-fetch)
5808 (uri (string-append "mirror://gnome/sources/gom/"
5809 (version-major+minor version) "/"
5810 "gom-" version ".tar.xz"))
5811 (sha256
5812 (base32
5813 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5814 (build-system gnu-build-system)
5815 (native-inputs
5816 `(("intltool" ,intltool)
5817 ("pkg-config" ,pkg-config)
5818 ("gobject-introspection" ,gobject-introspection)))
5819 (inputs
5820 `(("glib" ,glib)
5821 ("gdk-pixbuf" ,gdk-pixbuf)
5822 ("sqlite" ,sqlite)))
5823 ;; XXX TODO: Figure out how to run the test suite.
5824 (arguments `(#:tests? #f))
5825 (home-page "https://wiki.gnome.org/Projects/Gom")
5826 (synopsis "Object mapper from GObjects to SQLite")
5827 (description
5828 "Gom provides an object mapper from GObjects to SQLite. It helps you
5829 write applications that need to store structured data as well as make complex
5830 queries upon that data.")
5831 (license license:lgpl2.1+)))
5832
5833 (define-public libgnome-games-support
5834 (package
5835 (name "libgnome-games-support")
5836 (version "1.4.4")
5837 (source (origin
5838 (method url-fetch)
5839 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5840 (version-major+minor version) "/"
5841 "libgnome-games-support-" version ".tar.xz"))
5842 (sha256
5843 (base32
5844 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5845 (build-system gnu-build-system)
5846 (arguments
5847 '(#:phases
5848 (modify-phases %standard-phases
5849 (add-before 'check 'pre-check
5850 (lambda _
5851 ;; Tests require a writable HOME.
5852 (setenv "HOME" (getcwd))
5853 #t)))))
5854 (native-inputs
5855 `(("intltool" ,intltool)
5856 ("pkg-config" ,pkg-config)
5857 ("vala" ,vala)))
5858 (propagated-inputs
5859 ;; Required by libgnome-games-support-1.0.pc
5860 `(("gtk+" ,gtk+)
5861 ("libgee" ,libgee)))
5862 (home-page "https://www.gnome.org/")
5863 (synopsis "Useful functionality shared among GNOME games")
5864 (description
5865 "libgnome-games-support is a small library intended for internal use by
5866 GNOME Games, but it may be used by others.")
5867 (license license:lgpl3+)))
5868
5869 (define-public gnome-klotski
5870 (package
5871 (name "gnome-klotski")
5872 (version "3.34.0")
5873 (source (origin
5874 (method url-fetch)
5875 (uri (string-append "mirror://gnome/sources/" name "/"
5876 (version-major+minor version) "/"
5877 name "-" version ".tar.xz"))
5878 (sha256
5879 (base32
5880 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
5881 (build-system meson-build-system)
5882 (arguments
5883 '(#:glib-or-gtk? #t
5884 #:phases
5885 (modify-phases %standard-phases
5886 (add-after 'unpack 'skip-gtk-update-icon-cache
5887 ;; Don't create 'icon-theme.cache'.
5888 (lambda _
5889 (substitute* "build-aux/meson_post_install.py"
5890 (("gtk-update-icon-cache") (which "true")))
5891 #t)))))
5892 (native-inputs
5893 `(("desktop-file-utils" ,desktop-file-utils)
5894 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5895 ("intltool" ,intltool)
5896 ("itstool" ,itstool)
5897 ("pkg-config" ,pkg-config)
5898 ("vala" ,vala)
5899 ("xmllint" ,libxml2)))
5900 (inputs
5901 `(("gtk+" ,gtk+)
5902 ("libgnome-games-support" ,libgnome-games-support)
5903 ("librsvg" ,librsvg)))
5904 (home-page "https://wiki.gnome.org/Apps/Klotski")
5905 (synopsis "Sliding block puzzles")
5906 (description
5907 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
5908 the patterned block to the area bordered by green markers. To do so, you will
5909 need to slide other blocks out of the way. Complete each puzzle in as few moves
5910 as possible!")
5911 (license license:gpl2+)))
5912
5913 (define-public grilo
5914 (package
5915 (name "grilo")
5916 (version "0.3.12")
5917 (source
5918 (origin
5919 (method url-fetch)
5920 (uri (string-append "mirror://gnome/sources/grilo/"
5921 (version-major+minor version) "/"
5922 "grilo-" version ".tar.xz"))
5923 (sha256
5924 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
5925 (build-system meson-build-system)
5926 (native-inputs
5927 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
5928 ("intltool" ,intltool)
5929 ("pkg-config" ,pkg-config)
5930 ("gobject-introspection" ,gobject-introspection)
5931 ("gtk-doc" ,gtk-doc)
5932 ("vala" ,vala)))
5933 (inputs
5934 `(("cyrus-sasl" ,cyrus-sasl)
5935 ("glib" ,glib)
5936 ("gtk+" ,gtk+)
5937 ("libxml2" ,libxml2)
5938 ("liboauth" ,liboauth)
5939 ("libsoup" ,libsoup)
5940 ("totem-pl-parser" ,totem-pl-parser)))
5941 (native-search-paths
5942 (list (search-path-specification
5943 (variable "GRL_PLUGIN_PATH")
5944 (files (list (string-append "lib/grilo-"
5945 (version-major+minor version)))))))
5946 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
5947 (synopsis "Framework for discovering and browsing media")
5948 (description
5949 "Grilo is a framework focused on making media discovery and browsing easy
5950 for application developers.")
5951 (license license:lgpl2.1+)))
5952
5953 (define-public grilo-plugins
5954 (package
5955 (name "grilo-plugins")
5956 (version "0.3.11")
5957 (source
5958 (origin
5959 (method url-fetch)
5960 (uri (string-append "mirror://gnome/sources/" name "/"
5961 (version-major+minor version) "/"
5962 name "-" version ".tar.xz"))
5963 (sha256
5964 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
5965 (build-system meson-build-system)
5966 (native-inputs
5967 `(("gettext" ,gettext-minimal)
5968 ("glib:bin" ,glib "bin")
5969 ("gtk+:bin" ,gtk+ "bin")
5970 ("itstool" ,itstool)
5971 ("pkg-config" ,pkg-config)))
5972 ;; TODO: ahavi, gstreamer
5973 (inputs
5974 `(("grilo" ,grilo)
5975 ;("gmime" ,gmime) ; unused
5976 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
5977 ("gom" ,gom)
5978 ;("gssdp" ,gssdp) ; unused
5979 ;("gupnp" ,gupnp) ; unused
5980 ;("gupnp-av" ,gupnp-av) ; unused
5981 ("json-glib" ,json-glib)
5982 ("avahi" ,avahi)
5983 ("libgdata" ,libgdata)
5984 ("libmediaart" ,libmediaart)
5985 ;("librest" ,rest) ; unused
5986 ("libsoup" ,libsoup)
5987 ("totam-pl-parser" ,totem-pl-parser)
5988 ("tracker" ,tracker))) ; unused because it's too old
5989 (arguments
5990 `(#:glib-or-gtk? #t
5991 ;;Disable lua-factory as it needs missing dependencies
5992 #:configure-flags '("-Denable-lua-factory=no")))
5993 (home-page "https://live.gnome.org/Grilo")
5994 (synopsis "Plugins for the Grilo media discovery library")
5995 (description
5996 "Grilo is a framework focused on making media discovery and browsing easy
5997 for application developers. This package provides plugins for common media
5998 discovery protocols.")
5999 (license license:lgpl2.1+)))
6000
6001 (define-public totem
6002 (package
6003 (name "totem")
6004 (version "3.34.1")
6005 (source
6006 (origin
6007 (method url-fetch)
6008 (uri (string-append "mirror://gnome/sources/totem/"
6009 (version-major+minor version) "/"
6010 "totem-" version ".tar.xz"))
6011 (sha256
6012 (base32
6013 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
6014 (build-system meson-build-system)
6015 (native-inputs
6016 `(("pkg-config" ,pkg-config)
6017 ("desktop-file-utils" ,desktop-file-utils)
6018 ("gobject-introspection" ,gobject-introspection)
6019 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
6020 ("intltool" ,intltool)
6021 ("itstool" ,itstool)
6022 ("xmllint" ,libxml2)
6023 ("xorg-server" ,xorg-server-for-tests)))
6024 (propagated-inputs
6025 `(("dconf" ,dconf)))
6026 (inputs
6027 `(("gtk+" ,gtk+)
6028 ("gdk-pixbuf" ,gdk-pixbuf)
6029 ("atk" ,atk)
6030 ("cairo" ,cairo)
6031 ("dbus-glib" ,dbus-glib)
6032 ("clutter" ,clutter)
6033 ("clutter-gtk" ,clutter-gtk)
6034 ("clutter-gst" ,clutter-gst)
6035 ("xorgproto" ,xorgproto)
6036 ("libxxf86vm" ,libxxf86vm)
6037 ("libxtst" ,libxtst)
6038 ("libxrandr" ,libxrandr)
6039 ("libxml2" ,libxml2)
6040 ("libsoup" ,libsoup)
6041 ("libpeas" ,libpeas)
6042 ("librsvg" ,librsvg)
6043 ("lirc" ,lirc)
6044 ("gnome-desktop" ,gnome-desktop)
6045 ("gstreamer" ,gstreamer)
6046 ("gst-plugins-base" ,gst-plugins-base)
6047 ("gst-plugins-good" ,gst-plugins-good)
6048 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6049 ("adwaita-icon-theme" ,adwaita-icon-theme)
6050 ("python" ,python)
6051 ("python-pygobject" ,python-pygobject)
6052 ("totem-pl-parser" ,totem-pl-parser)
6053 ("grilo" ,grilo)
6054 ("grilo-plugins" ,grilo-plugins)
6055 ("vala" ,vala)))
6056 (arguments
6057 `(#:glib-or-gtk? #t
6058
6059 ;; Disable automatic GStreamer plugin installation via PackageKit and
6060 ;; all that.
6061 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6062
6063 ;; Do not build .a files for the plugins, it's
6064 ;; completely useless. This saves 2 MiB.
6065 "--default-library" "shared")
6066 #:phases
6067 (modify-phases %standard-phases
6068 (add-after 'unpack 'skip-gtk-update-icon-cache
6069 ;; Don't create 'icon-theme.cache'.
6070 (lambda _
6071 (substitute* "meson_post_install.py"
6072 (("gtk-update-icon-cache") "true"))
6073 #t))
6074 (add-before
6075 'install 'disable-cache-generation
6076 (lambda _
6077 (setenv "DESTDIR" "/")
6078 #t))
6079 (add-before
6080 'check 'pre-check
6081 (lambda _
6082 ;; Tests require a running X server.
6083 (system "Xvfb :1 &")
6084 (setenv "DISPLAY" ":1")
6085 #t))
6086 (add-after
6087 'install 'wrap-totem
6088 (lambda* (#:key inputs outputs #:allow-other-keys)
6089 (let ((out (assoc-ref outputs "out"))
6090 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6091 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6092 (wrap-program (string-append out "/bin/totem")
6093 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6094 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6095 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6096 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
6097 #t)))))
6098 (home-page "https://wiki.gnome.org/Apps/Videos")
6099 (synopsis "Simple media player for GNOME based on GStreamer")
6100 (description "Totem is a simple yet featureful media player for GNOME
6101 which can read a large number of file formats.")
6102 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6103 ;; to be used and distributed together with GStreamer and Totem. See
6104 ;; file://COPYING in the source distribution for details.
6105 (license license:gpl2+)))
6106
6107 (define-public rhythmbox
6108 (package
6109 (name "rhythmbox")
6110 (version "3.4.4")
6111 (source (origin
6112 (method url-fetch)
6113 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6114 (version-major+minor version) "/"
6115 "rhythmbox-" version ".tar.xz"))
6116 (sha256
6117 (base32
6118 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6119 (build-system glib-or-gtk-build-system)
6120 (arguments
6121 `(#:configure-flags
6122 (list "--enable-lirc"
6123 "--enable-python"
6124 "--enable-vala"
6125 "--with-brasero"
6126 "--with-gudev"
6127 "--with-libsecret")
6128 #:phases
6129 (modify-phases %standard-phases
6130 (add-after
6131 'install 'wrap-rhythmbox
6132 (lambda* (#:key inputs outputs #:allow-other-keys)
6133 (let ((out (assoc-ref outputs "out"))
6134 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6135 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6136 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6137 (python-path (getenv "PYTHONPATH")))
6138 (wrap-program (string-append out "/bin/rhythmbox")
6139 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6140 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6141 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6142 `("PYTHONPATH" ":" prefix (,python-path))))
6143 #t)))))
6144 (propagated-inputs
6145 `(("dconf" ,dconf)))
6146 (native-inputs
6147 `(("itstool" ,itstool)
6148 ("intltool" ,intltool)
6149 ("glib" ,glib "bin")
6150 ("gobject-introspection" ,gobject-introspection)
6151 ("desktop-file-utils" ,desktop-file-utils)
6152 ("pkg-config" ,pkg-config)
6153 ("xmllint" ,libxml2)))
6154 (inputs
6155 `(("json-glib" ,json-glib)
6156 ("tdb" ,tdb)
6157 ("gnome-desktop" ,gnome-desktop)
6158 ("python" ,python)
6159 ("python-pygobject" ,python2-pygobject)
6160 ("vala" ,vala)
6161 ("gmime" ,gmime)
6162 ("adwaita-icon-theme" ,adwaita-icon-theme)
6163 ("grilo" ,grilo)
6164 ("grilo-plugins" ,grilo-plugins)
6165 ("gstreamer" ,gstreamer)
6166 ("gst-plugins-base" ,gst-plugins-base)
6167 ("gst-plugins-good" ,gst-plugins-good)
6168 ("totem-pl-parser" ,totem-pl-parser)
6169 ("libgudev" ,libgudev)
6170 ;;("libmtp" ,libmtp) FIXME: Not detected
6171 ("libsecret" ,libsecret)
6172 ("libsoup" ,libsoup)
6173 ("libnotify" ,libnotify)
6174 ("libpeas" ,libpeas)
6175 ("lirc" ,lirc)
6176 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6177 ;;("clutter" ,clutter)
6178 ;;("clutter-gtk" ,clutter-gtk)
6179 ;;("clutter-gst" ,clutter-gst)
6180 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6181 ("atk" ,atk)
6182 ("pango" ,pango)
6183 ("gtk+" ,gtk+)
6184 ;; TODO:
6185 ;; * libgpod
6186 ;; * mx
6187 ("brasero" ,brasero)))
6188 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6189 (synopsis "Music player for GNOME")
6190 (description "Rhythmbox is a music playing application for GNOME. It
6191 supports playlists, song ratings, and any codecs installed through gstreamer.")
6192 (license license:gpl2+)))
6193
6194 (define-public eog
6195 (package
6196 (name "eog")
6197 (version "3.34.1")
6198 (source (origin
6199 (method url-fetch)
6200 (uri (string-append "mirror://gnome/sources/" name "/"
6201 (version-major+minor version) "/"
6202 name "-" version ".tar.xz"))
6203 (sha256
6204 (base32
6205 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
6206 (build-system meson-build-system)
6207 (arguments
6208 `(#:configure-flags
6209 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6210 (list (string-append "-Dc_link_args=-Wl,-rpath="
6211 (assoc-ref %outputs "out") "/lib/eog"))
6212 #:phases
6213 (modify-phases %standard-phases
6214 (add-after 'unpack 'skip-gtk-update-icon-cache
6215 ;; Don't create 'icon-theme.cache'.
6216 (lambda _
6217 (substitute* "meson_post_install.py"
6218 (("gtk-update-icon-cache") "true"))
6219 #t))
6220 (add-after 'install 'wrap-eog
6221 (lambda* (#:key outputs #:allow-other-keys)
6222 (let ((out (assoc-ref outputs "out"))
6223 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6224 (wrap-program (string-append out "/bin/eog")
6225 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6226 #t)))))
6227 (propagated-inputs
6228 `(("dconf" ,dconf)))
6229 (native-inputs
6230 `(("intltool" ,intltool)
6231 ("itstool" ,itstool)
6232 ("glib" ,glib "bin")
6233 ("gobject-introspection" ,gobject-introspection)
6234 ("pkg-config" ,pkg-config)
6235 ("xmllint" ,libxml2)))
6236 (inputs
6237 `(("gnome-desktop" ,gnome-desktop)
6238 ("shared-mime-info" ,shared-mime-info)
6239 ("adwaita-icon-theme" ,adwaita-icon-theme)
6240 ("exempi" ,exempi)
6241 ("lcms" ,lcms)
6242 ("libexif" ,libexif)
6243 ("libpeas" ,libpeas)
6244 ("libjpeg" ,libjpeg-turbo)
6245 ("librsvg" ,librsvg-next)
6246 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6247 ("gtk+" ,gtk+)))
6248 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6249 (synopsis "GNOME image viewer")
6250 (description "Eye of GNOME is the GNOME image viewer. It
6251 supports image conversion, rotation, and slideshows.")
6252 (license license:gpl2+)))
6253
6254 (define-public eog-plugins
6255 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6256 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6257 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6258 ;; 'XDG_DATA_DIRS' appropriately set.
6259 (package
6260 (name "eog-plugins")
6261 (version "3.26.4")
6262 (source (origin
6263 (method url-fetch)
6264 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6265 (version-major+minor version) "/"
6266 "eog-plugins-" version ".tar.xz"))
6267 (sha256
6268 (base32
6269 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6270 (build-system gnu-build-system)
6271 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6272 (synopsis "Extensions for the Eye of GNOME image viewer")
6273 (native-inputs
6274 `(("pkg-config" ,pkg-config)
6275 ("gettext" ,gettext-minimal)))
6276 (inputs
6277 `(("eog" ,eog)
6278 ("glib" ,glib)
6279 ("gtk+" ,gtk+)
6280 ("libpeas" ,libpeas)
6281 ("libexif" ,libexif)
6282 ("libchamplain" ,libchamplain)))
6283 (description
6284 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6285 notably:
6286
6287 @itemize
6288 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6289 @item @dfn{Map}, which displays a map of where the picture was taken on the
6290 side panel;
6291 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6292 @end itemize\n")
6293
6294 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6295 ;; long suspicious byte stream that goes to a
6296 ;; ".gresource.eog_postasa_plugin" ELF section.
6297 (license license:gpl2+)))
6298
6299 (define-public libgudev
6300 (package
6301 (name "libgudev")
6302 (version "232")
6303 (source (origin
6304 (method url-fetch)
6305 (uri (string-append "mirror://gnome/sources/" name "/"
6306 version "/" name "-" version ".tar.xz"))
6307 (sha256
6308 (base32
6309 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
6310 (build-system gnu-build-system)
6311 (arguments
6312 '(#:configure-flags
6313 ;; umockdev depends on libgudev.
6314 (list "--disable-umockdev")))
6315 (native-inputs
6316 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6317 ("gobject-introspection" ,gobject-introspection)
6318 ("pkg-config" ,pkg-config)))
6319 (propagated-inputs
6320 `(("glib" ,glib))) ; required by gudev-1.0.pc
6321 (inputs
6322 `(("udev" ,eudev)))
6323 (home-page "https://wiki.gnome.org/Projects/libgudev")
6324 (synopsis "GObject bindings for libudev")
6325 (description
6326 "This library provides GObject bindings for libudev. It was originally
6327 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6328 (license license:lgpl2.1+)))
6329
6330 (define-public gvfs
6331 (package
6332 (name "gvfs")
6333 (version "1.40.1")
6334 (source (origin
6335 (method url-fetch)
6336 (uri (string-append "mirror://gnome/sources/gvfs/"
6337 (version-major+minor version) "/"
6338 "gvfs-" version ".tar.xz"))
6339 (sha256
6340 (base32
6341 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
6342 ;; This patch may be removed when upgrading to version 1.46.x.
6343 (patches
6344 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6345 (build-system meson-build-system)
6346 (arguments
6347 '(#:glib-or-gtk? #t
6348 #:configure-flags
6349 (list "-Dsystemduserunitdir=no"
6350 "-Dtmpfilesdir=no"
6351 ;; Otherwise, the RUNPATH will lack the final path component.
6352 (string-append "-Dc_link_args=-Wl,-rpath="
6353 (assoc-ref %outputs "out") "/lib/gvfs"))))
6354 (native-inputs
6355 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6356 ("gettext" ,gettext-minimal)
6357 ("gtk-doc" ,gtk-doc)
6358 ("pkg-config" ,pkg-config)
6359 ("xsltproc" ,libxslt)))
6360 (inputs
6361 `(("avahi" ,avahi)
6362 ("docbook-xml" ,docbook-xml-4.2)
6363 ("docbook-xsl" ,docbook-xsl)
6364 ("dbus" ,dbus)
6365 ("elogind" ,elogind)
6366 ("fuse" ,fuse)
6367 ("gcr" ,gcr)
6368 ("glib" ,glib)
6369 ("gnome-online-accounts" ,gnome-online-accounts)
6370 ("libarchive" ,libarchive)
6371 ("libbluray" ,libbluray)
6372 ("libcap" ,libcap)
6373 ("libcdio-paranoia" ,libcdio-paranoia)
6374 ("libgcrypt" ,libgcrypt)
6375 ("libgdata" ,libgdata)
6376 ("libgphoto2" ,libgphoto2)
6377 ("libgudev" ,libgudev)
6378 ("libimobiledevice" ,libimobiledevice)
6379 ("libmtp" ,libmtp)
6380 ("libnfs" ,libnfs)
6381 ("libsecret" ,libsecret)
6382 ("libsmbclient" ,samba)
6383 ("libsoup" ,libsoup)
6384 ("libxml2" ,libxml2)
6385 ("openssh" ,openssh)
6386 ("polkit" ,polkit)
6387 ("udisks" ,udisks)))
6388 (home-page "https://wiki.gnome.org/gvfs/")
6389 (synopsis "Userspace virtual file system for GIO")
6390 (description
6391 "GVFS is a userspace virtual file system designed to work with the I/O
6392 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6393 to all applications using the GIO API. It also supports exposing the GVFS
6394 mounts to non-GIO applications using FUSE.
6395
6396 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6397 DAV, and others.")
6398 (license license:lgpl2.0+)))
6399
6400 (define-public gusb
6401 (package
6402 (name "gusb")
6403 (version "0.3.0")
6404 (source (origin
6405 (method git-fetch)
6406 (uri (git-reference
6407 (url "https://github.com/hughsie/libgusb")
6408 (commit version)))
6409 (file-name (git-file-name name version))
6410 (sha256
6411 (base32
6412 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
6413 (build-system meson-build-system)
6414 (native-inputs
6415 `(("gobject-introspection" ,gobject-introspection)
6416 ("pkg-config" ,pkg-config)
6417 ("vala" ,vala)
6418 ("gtk-doc" ,gtk-doc)))
6419 (propagated-inputs
6420 ;; Both of these are required by gusb.pc.
6421 `(("glib" ,glib)
6422 ("libusb" ,libusb)))
6423 (arguments
6424 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6425 (home-page "https://github.com/hughsie/libgusb")
6426 (synopsis "GLib binding for libusb1")
6427 (description
6428 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6429 asynchronous control, bulk and interrupt transfers with proper cancellation
6430 and integration into a mainloop. This makes it easy to integrate low level
6431 USB transfers with your high-level application or system daemon.")
6432 (license license:lgpl2.1+)))
6433
6434 (define-public simple-scan
6435 (package
6436 (name "simple-scan")
6437 (version "3.38.1")
6438 (source
6439 (origin
6440 (method url-fetch)
6441 (uri (string-append "mirror://gnome/sources/simple-scan/"
6442 (version-major+minor version) "/"
6443 "simple-scan-" version ".tar.xz"))
6444 (sha256
6445 (base32 "0grscz96bwj79ka4qvxh8h75avdx6824k8k38ylmaj6xbl6gi0hy"))))
6446 (build-system meson-build-system)
6447 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6448 (arguments
6449 '(#:glib-or-gtk? #t))
6450 (inputs
6451 `(("gtk" ,gtk+)
6452 ("zlib" ,zlib)
6453 ("cairo" ,cairo)
6454 ("colord" ,colord)
6455 ("gdk-pixbuf" ,gdk-pixbuf)
6456 ("gusb" ,gusb)
6457 ("libsane" ,sane-backends)))
6458 (native-inputs
6459 `(("gettext" ,gettext-minimal)
6460 ("itstool" ,itstool)
6461 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6462 ("pkg-config" ,pkg-config)
6463 ("vala" ,vala)
6464 ("xmllint" ,libxml2)))
6465 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6466 (synopsis "Document and image scanner")
6467 (description
6468 "Document Scanner is an easy-to-use application that lets you connect your
6469 scanner and quickly capture images and documents in an appropriate format. It
6470 supports any scanner for which a suitable SANE driver is available, which is
6471 almost all of them.")
6472 (license license:gpl3+)))
6473
6474 (define-public eolie
6475 (package
6476 (name "eolie")
6477 (version "0.9.99")
6478 (source (origin
6479 (method url-fetch)
6480 (uri (string-append "https://adishatz.org/eolie/eolie-"
6481 version ".tar.xz"))
6482 (sha256
6483 (base32
6484 "0zj5v7wxqj7c20bmil127ah0vnjfzvvf6kzz82b9ip3846h43j02"))))
6485 (build-system meson-build-system)
6486 (arguments
6487 `(#:glib-or-gtk? #t
6488 #:phases
6489 (modify-phases %standard-phases
6490 (add-after 'unpack 'skip-gtk-update-icon-cache
6491 ;; Don't create 'icon-theme.cache'.
6492 (lambda _
6493 (substitute* "meson_post_install.py"
6494 (("gtk-update-icon-cache") "true"))
6495 #t))
6496 (add-after 'wrap 'wrap-more
6497 (lambda* (#:key inputs outputs #:allow-other-keys)
6498 (let* ((out (assoc-ref outputs "out"))
6499 ;; These libraries must be on LD_LIBRARY_PATH.
6500 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6501 "atk" "gtk+" "gsettings-desktop-schemas"
6502 "gobject-introspection"))
6503 (path (string-join
6504 (map (lambda (lib)
6505 (string-append (assoc-ref inputs lib) "/lib"))
6506 libs)
6507 ":")))
6508 (wrap-program (string-append out "/bin/eolie")
6509 `("LD_LIBRARY_PATH" ":" prefix (,path))
6510 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6511 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6512 #t)))))
6513 (native-inputs
6514 `(("intltool" ,intltool)
6515 ("itstool" ,itstool)
6516 ("pkg-config" ,pkg-config)
6517 ("python" ,python)
6518 ("glib:bin" ,glib "bin")))
6519 (inputs
6520 `(("gobject-introspection" ,gobject-introspection)
6521 ("glib-networking" ,glib-networking)
6522 ("cairo" ,cairo)
6523 ("gtk+" ,gtk+)
6524 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6525 ("python" ,python-wrapper)
6526 ("python-dateutil" ,python-dateutil)
6527 ("python-pyfxa" ,python-pyfxa)
6528 ("python-pygobject" ,python-pygobject)
6529 ("python-pycairo" ,python-pycairo)
6530 ("python-pycrypto" ,python-pycrypto)
6531 ("libsecret" ,libsecret)
6532 ("gtkspell3" ,gtkspell3)
6533 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6534 ("webkitgtk" ,webkitgtk)))
6535 (home-page "https://wiki.gnome.org/Apps/Eolie")
6536 (synopsis "Web browser for GNOME")
6537 (description
6538 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6539 a secret password store, an adblocker, and a modern UI.")
6540 (license license:gpl3+)))
6541
6542 (define-public epiphany
6543 (package
6544 (name "epiphany")
6545 (version "3.34.4")
6546 (source (origin
6547 (method url-fetch)
6548 (uri (string-append "mirror://gnome/sources/epiphany/"
6549 (version-major+minor version) "/"
6550 "epiphany-" version ".tar.xz"))
6551 (sha256
6552 (base32
6553 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6554
6555 (build-system meson-build-system)
6556 (arguments
6557 '(#:glib-or-gtk? #t
6558 #:phases
6559 (modify-phases %standard-phases
6560 (add-after 'unpack 'skip-gtk-update-icon-cache
6561 ;; Don't create 'icon-theme.cache'.
6562 (lambda _
6563 (substitute* "post_install.py"
6564 (("gtk-update-icon-cache") "true"))
6565 #t))
6566 (add-after 'unpack 'disable-failing-tests
6567 (lambda _
6568 (substitute* "tests/meson.build"
6569 ;; embed_shell fails, because webkitgtk apparently no longer supports
6570 ;; overriding the ftp schema
6571 ;; web_app_utils fails due to missing network access
6572 (("(embed_shell|web_app_utils)_test,")
6573 "find_program('sh'), args: ['-c', 'exit 77'],"))
6574 #t))
6575 (add-before 'check 'pre-check
6576 (lambda _
6577 ;; Tests require a running X server.
6578 (system "Xvfb :1 &")
6579 (setenv "DISPLAY" ":1")
6580 #t)))
6581 #:configure-flags
6582 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6583 (list (string-append "-Dc_link_args=-Wl,-rpath="
6584 (assoc-ref %outputs "out") "/lib/epiphany"))))
6585 (propagated-inputs
6586 `(("dconf" ,dconf)))
6587 (native-inputs
6588 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6589 ("glib:bin" ,glib "bin") ; for glib-mkenums
6590 ("intltool" ,intltool)
6591 ("itstool" ,itstool)
6592 ("pkg-config" ,pkg-config)
6593 ("xmllint" ,libxml2)
6594 ("xorg-server" ,xorg-server-for-tests)))
6595 (inputs
6596 `(("avahi" ,avahi)
6597 ("gcr" ,gcr)
6598 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6599 ("glib-networking" ,glib-networking)
6600 ("gnome-desktop" ,gnome-desktop)
6601 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6602 ("json-glib" ,json-glib)
6603 ("iso-codes" ,iso-codes)
6604 ("libdazzle" ,libdazzle)
6605 ("libnotify" ,libnotify)
6606 ("libsecret" ,libsecret)
6607 ("libxslt" ,libxslt)
6608 ("nettle" ,nettle) ; for hogweed
6609 ("sqlite" ,sqlite)
6610 ("webkitgtk" ,webkitgtk)))
6611 (home-page "https://wiki.gnome.org/Apps/Web")
6612 (synopsis "GNOME web browser")
6613 (description
6614 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6615 principles are simplicity and standards compliance.")
6616 (license license:gpl2+)))
6617
6618 (define-public d-feet
6619 (package
6620 (name "d-feet")
6621 (version "0.3.14")
6622 (source (origin
6623 (method url-fetch)
6624 (uri (string-append "mirror://gnome/sources/" name "/"
6625 (version-major+minor version) "/"
6626 name "-" version ".tar.xz"))
6627 (sha256
6628 (base32
6629 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6630 (build-system glib-or-gtk-build-system)
6631 (arguments
6632 '(#:out-of-source? #f ; tests need to run in the source directory.
6633 #:phases
6634 (modify-phases %standard-phases
6635 (add-before
6636 'check 'pre-check
6637 (lambda _
6638 ;; The test suite requires a running X server.
6639 (system "Xvfb :1 &")
6640 (setenv "DISPLAY" ":1")
6641 ;; Don't fail on missing '/etc/machine-id'.
6642 (setenv "DBUS_FATAL_WARNINGS" "0")
6643 ;; tests.py and window.py don't meet E402:
6644 ;; E402 module level import not at top of file
6645 (substitute* "src/tests/Makefile"
6646 (("--ignore=E123") "--ignore=E123,E402"))
6647 #t))
6648 (add-after
6649 'install 'wrap-program
6650 (lambda* (#:key outputs #:allow-other-keys)
6651 (let ((prog (string-append (assoc-ref outputs "out")
6652 "/bin/d-feet")))
6653 (wrap-program prog
6654 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6655 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6656 #t))))))
6657 (native-inputs
6658 `(("intltool" ,intltool)
6659 ("itstool" ,itstool)
6660 ("pkg-config" ,pkg-config)
6661 ("python-pep8" ,python-pep8)
6662 ("xmllint" ,libxml2)
6663 ("xorg-server" ,xorg-server-for-tests)))
6664 (inputs
6665 `(("gobject-introspection" ,gobject-introspection)
6666 ("gtk+" ,gtk+)
6667 ("python" ,python-wrapper)
6668 ("hicolor-icon-theme" ,hicolor-icon-theme)
6669 ("python-pygobject" ,python-pygobject)))
6670 (home-page "https://wiki.gnome.org/Apps/DFeet")
6671 (synopsis "D-Bus debugger")
6672 (description
6673 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6674 of running programs and invoke methods on those interfaces.")
6675 (license license:gpl2+)))
6676
6677 (define-public yelp-xsl
6678 (package
6679 (name "yelp-xsl")
6680 (version "3.34.2")
6681 (source (origin
6682 (method url-fetch)
6683 (uri (string-append "mirror://gnome/sources/" name "/"
6684 (version-major+minor version) "/"
6685 name "-" version ".tar.xz"))
6686 (sha256
6687 (base32
6688 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6689 (build-system gnu-build-system)
6690 (native-inputs
6691 `(("gettext-minimal" ,gettext-minimal)
6692 ("itstool" ,itstool)
6693 ("xmllint" ,libxml2)))
6694 (home-page "https://wiki.gnome.org/Apps/Yelp")
6695 (synopsis "XSL stylesheets for Yelp")
6696 (description
6697 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
6698 to format Docbook and Mallard documents.")
6699 (license license:gpl2+)))
6700
6701 (define-public yelp
6702 (package
6703 (name "yelp")
6704 (version "3.32.2")
6705 (source (origin
6706 (method url-fetch)
6707 (uri (string-append "mirror://gnome/sources/" name "/"
6708 (version-major+minor version) "/"
6709 name "-" version ".tar.xz"))
6710 (sha256
6711 (base32
6712 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6713 (build-system glib-or-gtk-build-system)
6714 (native-inputs
6715 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6716 ("intltool" ,intltool)
6717 ("itstool" ,itstool)
6718 ("pkg-config" ,pkg-config)))
6719 (propagated-inputs
6720 `(("dconf" ,dconf)))
6721 (inputs
6722 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6723 ("libxslt" ,libxslt)
6724 ("sqlite" ,sqlite)
6725 ("webkitgtk" ,webkitgtk)
6726 ("yelp-xsl" ,yelp-xsl)))
6727 (home-page "https://wiki.gnome.org/Apps/Yelp")
6728 (synopsis "GNOME help browser")
6729 (description
6730 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6731 man, info, and HTML documents. It can locate documents according to the
6732 freedesktop.org help system specification.")
6733 (license license:gpl2+)))
6734
6735 (define-public yelp-tools
6736 (package
6737 (name "yelp-tools")
6738 (version "3.32.2")
6739 (source (origin
6740 (method url-fetch)
6741 (uri (string-append "mirror://gnome/sources/" name "/"
6742 (version-major+minor version) "/"
6743 name "-" version ".tar.xz"))
6744 (sha256
6745 (base32
6746 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6747 (build-system gnu-build-system)
6748 (native-inputs
6749 `(("pkg-config" ,pkg-config)))
6750 (propagated-inputs
6751 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6752 `(("itstool" ,itstool)
6753 ("xmllint" ,libxml2)
6754 ("xsltproc" ,libxslt)))
6755 (inputs
6756 `(("yelp-xsl" ,yelp-xsl)))
6757 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6758 (synopsis "Yelp documentation tools")
6759 (description
6760 "Yelp-tools is a collection of scripts and build utilities to help create,
6761 manage, and publish documentation for Yelp and the web. Most of the heavy
6762 lifting is done by packages like yelp-xsl and itstool. This package just
6763 wraps things up in a developer-friendly way.")
6764 (license license:gpl2+)))
6765
6766 (define-public libgee
6767 (package
6768 (name "libgee")
6769 (version "0.20.3")
6770 (source (origin
6771 (method url-fetch)
6772 (uri (string-append "mirror://gnome/sources/libgee/"
6773 (version-major+minor version) "/"
6774 "libgee-" version ".tar.xz"))
6775 (sha256
6776 (base32
6777 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6778 (build-system gnu-build-system)
6779 (arguments
6780 `(#:phases
6781 (modify-phases %standard-phases
6782 (add-after 'unpack 'fix-introspection-install-dir
6783 (lambda* (#:key outputs #:allow-other-keys)
6784 (let ((out (assoc-ref outputs "out")))
6785 (substitute* "gee/Makefile.in"
6786 (("@INTROSPECTION_GIRDIR@")
6787 (string-append out "/share/gir-1.0/"))
6788 (("@INTROSPECTION_TYPELIBDIR@")
6789 (string-append out "/lib/girepository-1.0/")))))))))
6790 (native-inputs
6791 `(("glib" ,glib "bin")
6792 ("pkg-config" ,pkg-config)))
6793 (inputs
6794 `(("glib" ,glib)
6795 ("gobject-introspection" ,gobject-introspection)))
6796 (home-page "https://wiki.gnome.org/Projects/Libgee")
6797 (synopsis "GObject collection library")
6798 (description
6799 "Libgee is a utility library providing GObject-based interfaces and
6800 classes for commonly used data structures.")
6801 (license license:lgpl2.1+)))
6802
6803 (define-public gexiv2
6804 (package
6805 (name "gexiv2")
6806 (version "0.12.1")
6807 (source (origin
6808 (method url-fetch)
6809 (uri (string-append "mirror://gnome/sources/" name "/"
6810 (version-major+minor version) "/"
6811 name "-" version ".tar.xz"))
6812 (sha256
6813 (base32
6814 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
6815 (build-system meson-build-system)
6816 (native-inputs
6817 `(("gcr" ,gcr)
6818 ("glib" ,glib "bin")
6819 ("pkg-config" ,pkg-config)
6820 ("vala" ,vala)))
6821 (propagated-inputs
6822 ;; Listed in "Requires" section of gexiv2.pc
6823 `(("exiv2" ,exiv2)))
6824 (inputs
6825 `(("glib" ,glib)
6826 ("gobject-introspection" ,gobject-introspection)))
6827 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6828 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6829 (description
6830 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6831 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6832 metadata in photo and video files of various formats.")
6833 (license license:gpl2+)))
6834
6835 (define-public shotwell
6836 (package
6837 (name "shotwell")
6838 (version "0.30.9")
6839 (source (origin
6840 (method url-fetch)
6841 (uri (string-append "mirror://gnome/sources/shotwell/"
6842 (version-major+minor version) "/"
6843 "shotwell-" version ".tar.xz"))
6844 (sha256
6845 (base32
6846 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
6847 (build-system meson-build-system)
6848 (arguments
6849 '(#:glib-or-gtk? #t
6850 #:phases
6851 (modify-phases %standard-phases
6852 (add-after 'unpack 'skip-gtk-update-icon-cache
6853 (lambda _
6854 (substitute* "build-aux/meson/postinstall.py"
6855 (("gtk-update-icon-cache") (which "true"))
6856 (("update-desktop-database") (which "true")))
6857 #t)))))
6858 (propagated-inputs
6859 `(("dconf" ,dconf)))
6860 (native-inputs
6861 `(("gettext" ,gettext-minimal)
6862 ("glib:bin" ,glib "bin")
6863 ("itstool" ,itstool)
6864 ("pkg-config" ,pkg-config)
6865 ("vala" ,vala)))
6866 (inputs
6867 `(("gcr" ,gcr)
6868 ("gexiv2" ,gexiv2)
6869 ("gst-plugins-base" ,gst-plugins-base)
6870 ("gstreamer" ,gstreamer)
6871 ("json-glib" ,json-glib)
6872 ("libgdata" ,libgdata)
6873 ("libgee" ,libgee)
6874 ("libgphoto2" ,libgphoto2)
6875 ("libgudev" ,libgudev)
6876 ("libraw" ,libraw)
6877 ("libsoup" ,libsoup)
6878 ("libxml2" ,libxml2)
6879 ("sqlite" ,sqlite)
6880 ("webkitgtk" ,webkitgtk)))
6881 (home-page "https://wiki.gnome.org/Apps/Shotwell")
6882 (synopsis "Photo manager for GNOME 3")
6883 (description
6884 "Shotwell is a digital photo manager designed for the GNOME desktop
6885 environment. It allows you to import photos from disk or camera, organize
6886 them by keywords and events, view them in full-window or fullscreen mode, and
6887 share them with others via social networking and more.")
6888 (license license:lgpl2.1+)))
6889
6890 (define-public file-roller
6891 (package
6892 (name "file-roller")
6893 (version "3.32.3")
6894 (source (origin
6895 (method url-fetch)
6896 (uri (string-append "mirror://gnome/sources/file-roller/"
6897 (version-major+minor version) "/"
6898 "file-roller-" version ".tar.xz"))
6899 (sha256
6900 (base32
6901 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
6902 (build-system meson-build-system)
6903 (native-inputs
6904 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6905 ("intltool" ,intltool)
6906 ("itstool" ,itstool)
6907 ("pkg-config" ,pkg-config)
6908 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6909 ("glib:bin" ,glib "bin")))
6910 ;; TODO: Add libnautilus.
6911 (inputs
6912 `(("gtk+" ,gtk+)
6913 ("gdk-pixbuf" ,gdk-pixbuf)
6914 ("json-glib" ,json-glib)
6915 ("libarchive" ,libarchive)
6916 ("libnotify" ,libnotify)
6917 ("nettle" ,nettle)
6918 ("libxml2" ,libxml2)))
6919 (synopsis "Graphical archive manager for GNOME")
6920 (description "File Roller is an archive manager for the GNOME desktop
6921 environment that allows users to view, unpack, and create compressed archives
6922 such as gzip tarballs.")
6923 (home-page "http://fileroller.sourceforge.net/")
6924 (license license:gpl2+)))
6925
6926 (define-public gnome-session
6927 (package
6928 (name "gnome-session")
6929 (version "3.34.2")
6930 (source (origin
6931 (method url-fetch)
6932 (uri (string-append "mirror://gnome/sources/" name "/"
6933 (version-major+minor version) "/"
6934 name "-" version ".tar.xz"))
6935 (sha256
6936 (base32
6937 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
6938 (arguments
6939 '(#:glib-or-gtk? #t
6940 #:phases
6941 (modify-phases %standard-phases
6942 (add-before 'configure 'pre-configure
6943 (lambda* (#:key outputs #:allow-other-keys)
6944 ;; Use elogind instead of systemd.
6945 (substitute* "meson.build"
6946 (("libsystemd-login") "libelogind")
6947 (("and libsystemd_daemon_dep.found.*") ","))
6948 (substitute* "gnome-session/gsm-systemd.c"
6949 (("#include <systemd/sd-login.h>")
6950 "#include <elogind/sd-login.h>"))
6951 ;; Remove uses of the systemd daemon.
6952 (substitute* "gnome-session/gsm-autostart-app.c"
6953 (("#ifdef HAVE_SYSTEMD") "#if 0"))
6954 #t))
6955 (add-after 'install 'wrap-gnome-session
6956 (lambda* (#:key inputs outputs #:allow-other-keys)
6957 ;; Make sure 'gnome-session' finds the 'gsettings' program.
6958 (let ((glib (assoc-ref inputs "glib:bin"))
6959 (out (assoc-ref outputs "out")))
6960 (wrap-program (string-append out "/bin/gnome-session")
6961 `("PATH" ":" prefix (,(string-append glib "/bin"))))
6962 #t))))
6963
6964 #:configure-flags
6965 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
6966 "-Dman=false" ; FIXME: disabled because of docbook validation error
6967 "-Dsystemd_journal=false")))
6968 (build-system meson-build-system)
6969 (native-inputs
6970 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6971 ("pkg-config" ,pkg-config)
6972 ("intltool" ,intltool)
6973 ("xsltproc" ,libxslt)
6974 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
6975 ("docbook-xsl" ,docbook-xsl)
6976 ("docbook-xml" ,docbook-xml)
6977 ("xmlto" ,xmlto)))
6978 (inputs
6979 `(("elogind" ,elogind)
6980 ("gnome-desktop" ,gnome-desktop)
6981 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6982 ("gtk+" ,gtk+)
6983 ("json-glib" ,json-glib)
6984 ("libsm" ,libsm)
6985 ("libxcomposite" ,libxcomposite)
6986 ("libxtst" ,libxtst)
6987 ("mesa" ,mesa)
6988 ("upower" ,upower)
6989 ("xtrans" ,xtrans)))
6990 (synopsis "Session manager for GNOME")
6991 (description
6992 "This package contains the GNOME session manager, as well as a
6993 configuration program to choose applications starting on login.")
6994 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
6995 (license license:gpl2+)))
6996
6997 (define-public gjs
6998 (package
6999 (name "gjs")
7000 (version "1.58.3")
7001 (source (origin
7002 (method url-fetch)
7003 (uri (string-append "mirror://gnome/sources/" name "/"
7004 (version-major+minor version) "/"
7005 name "-" version ".tar.xz"))
7006 (sha256
7007 (base32
7008 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
7009 (build-system gnu-build-system)
7010 (arguments
7011 '(#:phases
7012 (modify-phases %standard-phases
7013 (add-before
7014 'check 'pre-check
7015 (lambda _
7016 ;; The test suite requires a running X server.
7017 (system "Xvfb :1 &")
7018 (setenv "DISPLAY" ":1")
7019
7020 ;; For the missing /etc/machine-id.
7021 (setenv "DBUS_FATAL_WARNINGS" "0")
7022
7023 ;; Our mozjs-38 package does not compile the required Intl API
7024 ;; support for these failing tests.
7025 (substitute* "installed-tests/js/testLocale.js"
7026 ((".*toBeDefined.*") "")
7027 ((".*expect\\(datestr\\).*") ""))
7028 (substitute* "installed-tests/scripts/testCommandLine.sh"
7029 (("Valentín") "")
7030 (("☭") ""))
7031 #t)))))
7032 (native-inputs
7033 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
7034 ("pkg-config" ,pkg-config)
7035 ("xmllint" ,libxml2)
7036 ;; For testing
7037 ("dbus-launch" ,dbus)
7038 ("dconf" ,dconf) ; required to properly store settings
7039 ("uuidgen" ,util-linux)
7040 ("xvfb" ,xorg-server-for-tests)))
7041 (propagated-inputs
7042 ;; These are all in the Requires.private field of gjs-1.0.pc.
7043 `(("cairo" ,cairo)
7044 ("gobject-introspection" ,gobject-introspection)
7045 ("mozjs" ,mozjs-60)))
7046 (inputs
7047 `(("gtk+" ,gtk+)
7048 ("readline" ,readline)))
7049 (synopsis "Javascript bindings for GNOME")
7050 (home-page "https://live.gnome.org/Gjs")
7051 (description
7052 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7053 javascript engine and the GObject introspection framework.")
7054 (license license:gpl2+)))
7055
7056 (define-public gedit
7057 (package
7058 (name "gedit")
7059 (version "3.34.1")
7060 (source (origin
7061 (method url-fetch)
7062 (uri (string-append "mirror://gnome/sources/" name "/"
7063 (version-major+minor version) "/"
7064 name "-" version ".tar.xz"))
7065 (sha256
7066 (base32
7067 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7068 (build-system meson-build-system)
7069 (arguments
7070 `(#:glib-or-gtk? #t
7071 #:configure-flags
7072 ;; Otherwise, the RUNPATH will lack the final path component.
7073 (list (string-append "-Dc_link_args=-Wl,-rpath="
7074 (assoc-ref %outputs "out") "/lib/gedit"))
7075
7076 ;; XXX: Generated .h files are sometimes used before being built.
7077 #:parallel-build? #f
7078
7079 #:phases
7080 (modify-phases %standard-phases
7081 (add-after 'unpack 'skip-gtk-update-icon-cache
7082 ;; Don't create 'icon-theme.cache'.
7083 (lambda _
7084 (substitute* "build-aux/meson/post_install.py"
7085 (("gtk-update-icon-cache") (which "true")))
7086 #t))
7087 (add-after 'unpack 'patch-libgd-fetch
7088 (lambda* (#:key inputs #:allow-other-keys)
7089 (let ((libgd (assoc-ref inputs "libgd")))
7090 ;; Calling git is unnecessary because libgd is fetched as a
7091 ;; native input to this package.
7092 (substitute* "meson.build"
7093 ((".*git.*") ""))
7094 (copy-recursively libgd "subprojects/libgd")
7095 #t)))
7096 (add-after 'install 'wrap-gedit
7097 (lambda* (#:key inputs outputs #:allow-other-keys)
7098 (let ((out (assoc-ref outputs "out"))
7099 (gtksourceview (assoc-ref inputs "gtksourceview"))
7100 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7101 (python-path (getenv "PYTHONPATH")))
7102 (wrap-program (string-append out "/bin/gedit")
7103 ;; For plugins.
7104 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7105 `("PYTHONPATH" ":" prefix (,python-path))
7106 ;; For language-specs.
7107 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7108 "/share")))))
7109 #t)))))
7110 (propagated-inputs
7111 `(("dconf" ,dconf)))
7112 (native-inputs
7113 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7114 ("intltool" ,intltool)
7115 ("itstool" ,itstool)
7116 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7117 ("gobject-introspection" ,gobject-introspection)
7118 ("libgd"
7119 ,(origin
7120 (method git-fetch)
7121 (uri (git-reference
7122 (url "https://gitlab.gnome.org/GNOME/libgd")
7123 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7124 (file-name (git-file-name "libgd" version))
7125 (sha256
7126 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7127 ("pkg-config" ,pkg-config)))
7128 (inputs
7129 `(("glib" ,glib)
7130 ("gspell" ,gspell)
7131 ("gtk+" ,gtk+)
7132 ("gtksourceview" ,gtksourceview)
7133 ("libpeas" ,libpeas)
7134 ("libxml2" ,libxml2)
7135 ("iso-codes" ,iso-codes)
7136 ("python-pygobject" ,python-pygobject)
7137 ("python" ,python)
7138 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7139 ("libx11" ,libx11)
7140 ("vala" ,vala)
7141 ("adwaita-icon-theme" ,adwaita-icon-theme)
7142 ("libsoup" ,libsoup)
7143 ("gnome-desktop" ,gnome-desktop)))
7144 (home-page "https://wiki.gnome.org/Apps/Gedit")
7145 (synopsis "GNOME text editor")
7146 (description "While aiming at simplicity and ease of use, gedit is a
7147 powerful general purpose text editor.")
7148 (license license:gpl2+)))
7149
7150 (define-public zenity
7151 (package
7152 (name "zenity")
7153 (version "3.32.0")
7154 (source (origin
7155 (method url-fetch)
7156 (uri (string-append "mirror://gnome/sources/zenity/"
7157 (version-major+minor version) "/"
7158 "zenity-" version ".tar.xz"))
7159 (sha256
7160 (base32
7161 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7162 (build-system gnu-build-system)
7163 (native-inputs
7164 `(("gettext" ,gettext-minimal)
7165 ("itstool" ,itstool)
7166 ("pkg-config" ,pkg-config)))
7167 (inputs
7168 `(("libnotify" ,libnotify)
7169 ("webkitgtk" ,webkitgtk)))
7170 (synopsis "Display graphical dialog boxes from shell scripts")
7171 (home-page "https://www.gnome.org")
7172 (description
7173 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7174 to display dialog boxes from the commandline and shell scripts.")
7175 (license license:lgpl2.0+)))
7176
7177 (define-public mutter
7178 (package
7179 (name "mutter")
7180 (version "3.34.2")
7181 (source (origin
7182 (method url-fetch)
7183 (uri (string-append "mirror://gnome/sources/" name "/"
7184 (version-major+minor version) "/"
7185 name "-" version ".tar.xz"))
7186 (sha256
7187 (base32
7188 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
7189 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7190 ;; versions of cogl and clutter. As a result, many of the inputs,
7191 ;; propagated-inputs, and configure flags used in cogl and clutter are
7192 ;; needed here as well.
7193 (build-system meson-build-system)
7194 (arguments
7195 '(;; XXX: All mutter tests fail with the following error:
7196 ;; Settings schema 'org.gnome.mutter' is not installed
7197 #:tests? #f
7198 #:glib-or-gtk? #t
7199 #:configure-flags
7200 ;; TODO: Enable profiler when Sysprof is packaged.
7201 (list "-Dprofiler=false"
7202 ;; Otherwise, the RUNPATH will lack the final path component.
7203 (string-append "-Dc_link_args=-Wl,-rpath="
7204 (assoc-ref %outputs "out") "/lib:"
7205 (assoc-ref %outputs "out") "/lib/mutter-5")
7206
7207 ;; The following flags are needed for the bundled clutter
7208 (string-append "-Dxwayland_path="
7209 (assoc-ref %build-inputs "xorg-server-xwayland")
7210 "/bin/Xwayland")
7211
7212 ;; the remaining flags are needed for the bundled cogl
7213 (string-append "-Dopengl_libname="
7214 (assoc-ref %build-inputs "mesa")
7215 "/lib/libGL.so"))
7216 #:phases (modify-phases %standard-phases
7217 (add-after 'unpack 'fix-build-with-mesa-20
7218 (lambda _
7219 ;; Mimic upstream commit a444a4c5f58ea516ad for
7220 ;; compatibility with Mesa 20. Remove for 3.36.
7221 (substitute* '("src/backends/meta-egl-ext.h"
7222 "src/backends/meta-egl.c"
7223 "src/backends/meta-egl.h")
7224 (("#include <EGL/eglext\\.h>" all)
7225 (string-append all "\n#include <EGL/eglmesaext.h>")))
7226 (substitute* "cogl/cogl/meson.build"
7227 (("#include <EGL/eglext\\.h>" all)
7228 (string-append all "\\n#include <EGL/eglmesaext.h>")))
7229 #t)))))
7230 (native-inputs
7231 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7232 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7233 ("gobject-introspection" ,gobject-introspection)
7234 ("intltool" ,intltool)
7235 ("pkg-config" ,pkg-config)
7236 ("xorg-server" ,xorg-server-for-tests)
7237 ;; For git build
7238 ("autoconf" ,autoconf)
7239 ("automake" ,automake)
7240 ("libtool" ,libtool)))
7241 (propagated-inputs
7242 `(;; libmutter.pc refers to these:
7243 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7244 ("gtk+" ,gtk+)
7245 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7246 ("atk" ,atk)
7247 ("cairo" ,cairo)
7248 ("gdk-pixbuf" ,gdk-pixbuf)
7249 ("glib" ,glib)
7250 ("json-glib" ,json-glib)
7251 ("libinput" ,libinput)
7252 ("libx11" ,libx11)
7253 ("libxcomposite" ,libxcomposite)
7254 ("libxdamage" ,libxdamage)
7255 ("libxext" ,libxext)
7256 ("libxfixes" ,libxfixes)
7257 ("libxkbcommon" ,libxkbcommon)
7258 ("libxrandr" ,libxrandr)
7259 ("mesa" ,mesa)
7260 ("pango" ,pango)
7261 ("udev" ,eudev)
7262 ("xinput" ,xinput)))
7263 (inputs
7264 `(("elogind" ,elogind)
7265 ("gnome-desktop" ,gnome-desktop)
7266 ("gnome-settings-daemon" ,gnome-settings-daemon)
7267 ("libcanberra-gtk" ,libcanberra)
7268 ("libgudev" ,libgudev)
7269 ("libice" ,libice)
7270 ("libsm" ,libsm)
7271 ("libwacom" ,libwacom)
7272 ("libxkbfile" ,libxkbfile)
7273 ("libxrandr" ,libxrandr)
7274 ("libxtst" ,libxtst)
7275 ("pipewire" ,pipewire)
7276 ("startup-notification" ,startup-notification)
7277 ("upower-glib" ,upower)
7278 ("xkeyboard-config" ,xkeyboard-config)
7279 ("xorg-server-xwayland" ,xorg-server-xwayland)
7280 ("zenity" ,zenity)))
7281 (synopsis "Window and compositing manager")
7282 (home-page "https://www.gnome.org")
7283 (description
7284 "Mutter is a window and compositing manager that displays and manages your
7285 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7286 Clutter toolkit with solid window-management logic inherited from the Metacity
7287 window manager.")
7288 (license license:gpl2+)))
7289
7290 (define-public gnome-online-accounts
7291 (package
7292 (name "gnome-online-accounts")
7293 (version "3.36.0")
7294 (source (origin
7295 (method url-fetch)
7296 (uri (string-append "mirror://gnome/sources/" name "/"
7297 (version-major+minor version) "/"
7298 name "-" version ".tar.xz"))
7299 (sha256
7300 (base32
7301 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7302 (outputs '("out" "lib"))
7303 (build-system glib-or-gtk-build-system)
7304 (arguments
7305 `(#:configure-flags
7306 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7307 #:phases
7308 (modify-phases %standard-phases
7309 (add-before 'configure 'patch-libgoa-output
7310 (lambda* (#:key outputs #:allow-other-keys)
7311 (let ((lib (assoc-ref outputs "lib")))
7312 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7313 (("@prefix@") lib)
7314 (("@exec_prefix@") lib)
7315 (("@libdir@") (string-append lib "/lib"))
7316 (("@includedir@") (string-append lib "/include"))
7317 (("@datadir@") (string-append lib "/share")))
7318 ;; Make sure gobject-introspection knows about the output
7319 ;; too (see <https://bugs.gnu.org/36535>).
7320 (setenv "outputs" "out lib")
7321 #t))))))
7322 (native-inputs
7323 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7324 ("gobject-introspection" ,gobject-introspection)
7325 ("intltool" ,intltool)
7326 ("pkg-config" ,pkg-config)
7327 ("vala" ,vala)
7328 ("xsltproc" ,libxslt)))
7329 (propagated-inputs
7330 `(("glib" ,glib) ; required by goa-1.0.pc
7331 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7332 (inputs
7333 `(("docbook-xsl" ,docbook-xsl)
7334 ("json-glib" ,json-glib)
7335 ("libsecret" ,libsecret)
7336 ("rest" ,rest)
7337 ("webkitgtk" ,webkitgtk)))
7338 (synopsis "Single sign-on framework for GNOME")
7339 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7340 (description
7341 "GNOME Online Accounts provides interfaces so that applications and
7342 libraries in GNOME can access the user's online accounts. It has providers for
7343 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7344 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7345 (license license:lgpl2.0+)))
7346
7347 (define-public evolution-data-server
7348 (package
7349 (name "evolution-data-server")
7350 (version "3.34.2")
7351 (source (origin
7352 (method url-fetch)
7353 (uri (string-append "mirror://gnome/sources/" name "/"
7354 (version-major+minor version) "/"
7355 name "-" version ".tar.xz"))
7356 (patches (search-patches "evolution-data-server-locales.patch"
7357 "evolution-data-server-libical-compat.patch"))
7358 (sha256
7359 (base32
7360 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7361 (build-system cmake-build-system)
7362 (arguments
7363 '(#:configure-flags
7364 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7365 (runpaths (map (lambda (s)
7366 (string-append lib "/evolution-data-server/" s))
7367 '("addressbook-backends" "calendar-backends"
7368 "camel-providers" "credential-modules"
7369 "registry-modules"))))
7370 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7371 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7372 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7373 "-DENABLE_VALA_BINDINGS=ON"
7374 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7375 (string-append lib "/evolution-data-server;")
7376 (string-join runpaths ";"))
7377 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7378 #:phases
7379 (modify-phases %standard-phases
7380 (add-after 'unpack 'disable-failing-tests
7381 (lambda _
7382 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7383 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7384 (delete-file-recursively "tests/book-migration")
7385 (substitute* "tests/CMakeLists.txt"
7386 (("add_subdirectory\\(book-migration\\)") ""))
7387 #t))
7388 (add-after 'unpack 'patch-paths
7389 (lambda _
7390 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7391 "tests/libedata-book/data-test-utils.c"
7392 "tests/libedata-book/test-book-cache-utils.c"
7393 "tests/libedata-cal/test-cal-cache-utils.c")
7394 (("/bin/rm") (which "rm")))
7395 #t))
7396 (add-before 'configure 'dont-override-rpath
7397 (lambda _
7398 (substitute* "CMakeLists.txt"
7399 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7400 ;; Remove it so the configure flag is respected.
7401 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7402 #t)))))
7403 (native-inputs
7404 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7405 ("gobject-introspection" ,gobject-introspection)
7406 ("gperf" ,gperf)
7407 ("intltool" ,intltool)
7408 ("pkg-config" ,pkg-config)
7409 ("vala" ,vala)
7410 ("python" ,python-wrapper)))
7411 (propagated-inputs
7412 ;; These are all in the Requires field of .pc files.
7413 `(("gtk+" ,gtk+)
7414 ("libical" ,libical)
7415 ("libsecret" ,libsecret)
7416 ("libsoup" ,libsoup)
7417 ("nss" ,nss)
7418 ("sqlite" ,sqlite)))
7419 (inputs
7420 `(("bdb" ,bdb)
7421 ("gcr" ,gcr)
7422 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7423 ("json-glib" ,json-glib)
7424 ("libcanberra" ,libcanberra)
7425 ("libgweather" ,libgweather)
7426 ("mit-krb5" ,mit-krb5)
7427 ("openldap" ,openldap)
7428 ("webkitgtk" ,webkitgtk)))
7429 (synopsis "Store address books and calendars")
7430 (home-page "https://wiki.gnome.org/Apps/Evolution")
7431 (description
7432 "This package provides a unified backend for programs that work with
7433 contacts, tasks, and calendar information. It was originally developed for
7434 Evolution (hence the name), but is now used by other packages as well.")
7435 (license license:lgpl2.0)))
7436
7437 (define-public caribou
7438 (package
7439 (name "caribou")
7440 (version "0.4.21")
7441 (source (origin
7442 (method url-fetch)
7443 (uri (string-append "mirror://gnome/sources/" name "/"
7444 (version-major+minor version) "/"
7445 name "-" version ".tar.xz"))
7446 (sha256
7447 (base32
7448 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7449 (build-system glib-or-gtk-build-system)
7450 (arguments
7451 '(#:phases
7452 (modify-phases %standard-phases
7453 (add-before
7454 'build 'pre-build
7455 (lambda* (#:key outputs #:allow-other-keys)
7456 (let ((out (assoc-ref outputs "out")))
7457 ;; Use absolute shared library path in Caribou-1.0.typelib.
7458 (substitute* "libcaribou/Makefile"
7459 (("--shared-library=libcaribou.so")
7460 (string-append "--shared-library="
7461 out "/lib/libcaribou.so")))
7462 #t)))
7463 (add-after 'install 'wrap-programs
7464 (lambda* (#:key outputs #:allow-other-keys)
7465 (let* ((out (assoc-ref outputs "out"))
7466 (python-path (getenv "PYTHONPATH"))
7467 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7468 (for-each
7469 (lambda (prog)
7470 (wrap-program prog
7471 `("PYTHONPATH" ":" prefix (,python-path))
7472 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7473 (list (string-append out "/bin/caribou-preferences")
7474 (string-append out "/libexec/antler-keyboard"))))
7475 #t)))))
7476 (native-inputs
7477 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7478 ("gobject-introspection" ,gobject-introspection)
7479 ("intltool" ,intltool)
7480 ("pkg-config" ,pkg-config)
7481 ("python" ,python)
7482 ("vala" ,vala)
7483 ("xsltproc" ,libxslt)))
7484 (propagated-inputs
7485 ;; caribou-1.0.pc refers to all these.
7486 `(("libgee" ,libgee)
7487 ("libxklavier" ,libxklavier)
7488 ("libxtst" ,libxtst)
7489 ("gtk+" ,gtk+)))
7490 (inputs
7491 `(("clutter" ,clutter)
7492 ("dconf" ,dconf)
7493 ("gtk+-2" ,gtk+-2)
7494 ("python-pygobject" ,python-pygobject)))
7495 (synopsis "Text entry and UI navigation application")
7496 (home-page "https://wiki.gnome.org/Projects/Caribou")
7497 (description
7498 "Caribou is an input assistive technology intended for switch and pointer
7499 users.")
7500 (license license:lgpl2.1)))
7501
7502 (define-public network-manager
7503 (package
7504 (name "network-manager")
7505 (version "1.24.0")
7506 (source (origin
7507 (method url-fetch)
7508 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7509 (version-major+minor version) "/"
7510 "NetworkManager-" version ".tar.xz"))
7511 (patches (search-patches "network-manager-plugin-path.patch"))
7512 (sha256
7513 (base32
7514 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7515 (modules '((guix build utils)))
7516 (snippet
7517 '(begin
7518 (substitute* "src/devices/wwan/nm-modem-manager.c"
7519 (("systemd") "elogind"))
7520 #t))))
7521 (build-system meson-build-system)
7522 (outputs '("out"
7523 "doc")) ; 8 MiB of gtk-doc HTML
7524 (arguments
7525 `(#:configure-flags
7526 (let ((out (assoc-ref %outputs "out"))
7527 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7528 "/sbin/dhclient")))
7529 (list
7530 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7531 ;; component.
7532 (string-append "-Dc_link_args=-Wl,-rpath="
7533 out "/lib:"
7534 out "/lib/NetworkManager/" ,version)
7535 "-Dsystemd_journal=false"
7536 "-Dsession_tracking=elogind"
7537 "-Dsuspend_resume=elogind"
7538 "-Dsystemdsystemunitdir=no"
7539 "-Dsession_tracking_consolekit=false"
7540 "-Ddhcpcd=no"
7541 "-Ddhcpcanon=no"
7542 "-Dcrypto=gnutls"
7543 "-Diwd=true"
7544 "-Dlibaudit=yes"
7545 "-Dqt=false"
7546 "-Ddocs=true"
7547 "--sysconfdir=/etc"
7548 "--localstatedir=/var"
7549 (string-append "-Dudev_dir="
7550 out "/lib/udev")
7551 (string-append "-Ddbus_conf_dir="
7552 out "/etc/dbus-1/system.d")
7553
7554 (string-append "-Ddhclient=" dhclient)))
7555 #:phases
7556 (modify-phases %standard-phases
7557 (add-before 'configure 'pre-configure
7558 (lambda _
7559 ;; These tests try to test aspects of network-manager's
7560 ;; functionality within restricted containers, but they don't
7561 ;; cope with being already in the Guix build jail as that jail
7562 ;; lacks some features that they would like to proxy over (like
7563 ;; a /sys mount).
7564 (substitute* "src/platform/tests/meson.build"
7565 ((".*test-address-linux.*") "")
7566 ((".*test-cleanup-linux.*") "")
7567 ((".*test-link-linux.*") "")
7568 ((".*test-route-linux.*") ""))
7569 (substitute* "src/devices/tests/meson.build"
7570 ((".*test-acd.*") "")
7571 ((".*test-lldp.*") ""))
7572 #t))
7573 (add-after 'unpack 'patch-docbook-xml
7574 (lambda* (#:key inputs #:allow-other-keys)
7575 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7576 "/xml/dtd/docbook")))
7577 (substitute* (find-files "." ".*\\.(xsl|xml)")
7578 (("http://.*/docbookx\\.dtd")
7579 (string-append xmldoc "/docbookx.dtd")))
7580 #t)))
7581 (add-before 'check 'pre-check
7582 (lambda _
7583 ;; For the missing /etc/machine-id.
7584 (setenv "DBUS_FATAL_WARNINGS" "0")
7585 #t))
7586 (add-before 'install 'no-polkit-magic
7587 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7588 (lambda _
7589 (setenv "PKEXEC_UID" "something")
7590 #t))
7591 (add-after 'install 'move-doc
7592 (lambda* (#:key outputs #:allow-other-keys)
7593 (let ((out (assoc-ref outputs "out"))
7594 (doc (assoc-ref outputs "doc")))
7595 (mkdir-p (string-append doc "/share"))
7596 (for-each (lambda (directory)
7597 (copy-recursively (string-append out directory)
7598 (string-append doc directory))
7599 (delete-file-recursively
7600 (string-append out directory)))
7601 '("/share/doc" "/share/gtk-doc"))
7602 #t))))))
7603 (propagated-inputs
7604 `(("glib" ,glib)))
7605 (native-inputs
7606 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7607 ("gtk-doc" ,gtk-doc)
7608 ("gobject-introspection" ,gobject-introspection)
7609 ("docbook-xml" ,docbook-xml)
7610 ("docbook-xsl" ,docbook-xsl)
7611 ("intltool" ,intltool)
7612 ("libxslt" ,libxslt)
7613 ("libxml2" ,libxml2)
7614 ("pkg-config" ,pkg-config)
7615 ("vala" ,vala)
7616 ;; For testing.
7617 ("python" ,python-wrapper)
7618 ("python-dbus" ,python-dbus)
7619 ("python-pygobject" ,python-pygobject)))
7620 (inputs
7621 `(("curl" ,curl)
7622 ("cyrus-sasl" ,cyrus-sasl)
7623 ("dbus-glib" ,dbus-glib)
7624 ("dnsmasq" ,dnsmasq)
7625 ("eudev" ,eudev)
7626 ("gnutls" ,gnutls)
7627 ("iptables" ,iptables)
7628 ("isc-dhcp" ,isc-dhcp)
7629 ("iwd" ,iwd) ; wpa_supplicant alternative
7630 ("jansson" ,jansson)
7631 ("libaudit" ,audit)
7632 ("libgcrypt" ,libgcrypt)
7633 ("libgudev" ,libgudev)
7634 ("libndp" ,libndp)
7635 ("libnl" ,libnl)
7636 ("libsoup" ,libsoup)
7637 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7638 ("modem-manager" ,modem-manager)
7639 ("newt" ,newt) ;for the 'nmtui' console interface
7640 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7641 ("polkit" ,polkit)
7642 ("ppp" ,ppp)
7643 ("readline" ,readline)
7644 ("util-linux" ,util-linux)
7645 ("elogind" ,elogind)))
7646 (synopsis "Network connection manager")
7647 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7648 (description
7649 "NetworkManager is a system network service that manages your network
7650 devices and connections, attempting to keep active network connectivity when
7651 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7652 devices, and provides VPN integration with a variety of different VPN
7653 services.")
7654 ;; “This NetworkManager project consists of the daemon, client tools, and
7655 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7656 ;; GPL-2.0+.”
7657 (license (list license:gpl2+
7658 license:lgpl2.1+))
7659 (properties '((upstream-name . "NetworkManager")))))
7660
7661 (define-public network-manager-openvpn
7662 (package
7663 (name "network-manager-openvpn")
7664 (version "1.8.12")
7665 (source (origin
7666 (method url-fetch)
7667 (uri (string-append
7668 "mirror://gnome/sources/NetworkManager-openvpn/"
7669 (version-major+minor version)
7670 "/NetworkManager-openvpn-" version ".tar.xz"))
7671 (sha256
7672 (base32
7673 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7674 (build-system gnu-build-system)
7675 (arguments
7676 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7677 #:phases
7678 (modify-phases %standard-phases
7679 (add-after 'configure 'patch-path
7680 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7681 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7682 "/sbin/openvpn"))
7683 (modprobe (string-append (assoc-ref inputs "kmod")
7684 "/bin/modprobe"))
7685 (pretty-ovpn (string-append "\"" ovpn "\"")))
7686 (for-each
7687 (lambda (file)
7688 (substitute* file
7689 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7690 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7691 (("\"/sbin/openvpn\"") pretty-ovpn)
7692 (("/sbin/modprobe") modprobe)))
7693 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7694 #t)))))
7695 (native-inputs
7696 `(("pkg-config" ,pkg-config)
7697 ("intltool" ,intltool)))
7698 (inputs
7699 `(("gtk+" ,gtk+)
7700 ("kmod" ,kmod)
7701 ("openvpn" ,openvpn)
7702 ("network-manager" ,network-manager)
7703 ("libnma" ,libnma)
7704 ("libsecret" ,libsecret)))
7705 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7706 (synopsis "OpenVPN plug-in for NetworkManager")
7707 (description
7708 "This extension of NetworkManager allows it to take care of connections
7709 to virtual private networks (VPNs) via OpenVPN.")
7710 (license license:gpl2+)
7711 (properties `((upstream-name . "NetworkManager-openvpn")))))
7712
7713 (define-public network-manager-vpnc
7714 (package
7715 (name "network-manager-vpnc")
7716 (version "1.2.6")
7717 (source (origin
7718 (method url-fetch)
7719 (uri (string-append
7720 "mirror://gnome/sources/NetworkManager-vpnc/"
7721 (version-major+minor version)
7722 "/NetworkManager-vpnc-" version ".tar.xz"))
7723 (sha256
7724 (base32
7725 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7726 (build-system gnu-build-system)
7727 (arguments
7728 `(#:configure-flags '("--enable-absolute-paths"
7729 "--localstatedir=/var"
7730 ;; libnm-glib has been removed from network-manager
7731 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7732 "--with-libnm-glib=no")
7733 #:phases
7734 (modify-phases %standard-phases
7735 (add-after 'configure 'patch-path
7736 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7737 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7738 "/sbin/vpnc"))
7739 (modprobe (string-append (assoc-ref inputs "kmod")
7740 "/bin/modprobe"))
7741 (pretty-ovpn (string-append "\"" vpnc "\"")))
7742 (substitute* "src/nm-vpnc-service.c"
7743 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7744 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7745 (("\"/sbin/vpnc\"") pretty-ovpn)
7746 (("/sbin/modprobe") modprobe)))
7747 #t)))))
7748 (native-inputs
7749 `(("pkg-config" ,pkg-config)
7750 ("intltool" ,intltool)))
7751 (inputs
7752 `(("gtk+" ,gtk+)
7753 ("kmod" ,kmod)
7754 ("vpnc" ,vpnc)
7755 ("network-manager" ,network-manager)
7756 ("libnma" ,libnma)
7757 ("libsecret" ,libsecret)))
7758 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7759 (synopsis "VPNC plug-in for NetworkManager")
7760 (description
7761 "Support for configuring virtual private networks based on VPNC.
7762 Compatible with Cisco VPN concentrators configured to use IPsec.")
7763 (license license:gpl2+)
7764 (properties `((upstream-name . "NetworkManager-vpnc")))))
7765
7766 (define-public network-manager-openconnect
7767 (package
7768 (name "network-manager-openconnect")
7769 (version "1.2.6")
7770 (source (origin
7771 (method url-fetch)
7772 (uri (string-append
7773 "mirror://gnome/sources/NetworkManager-openconnect/"
7774 (version-major+minor version)
7775 "/NetworkManager-openconnect-" version ".tar.xz"))
7776 (sha256
7777 (base32
7778 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7779 (build-system gnu-build-system)
7780 (arguments
7781 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7782 #:phases
7783 (modify-phases %standard-phases
7784 (add-after 'configure 'patch-path
7785 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7786 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7787 "/sbin/openconnect"))
7788 (modprobe (string-append (assoc-ref inputs "kmod")
7789 "/bin/modprobe"))
7790 (pretty-ovpn (string-append "\"" openconnect "\"")))
7791 (substitute* "src/nm-openconnect-service.c"
7792 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7793 (("/sbin/modprobe") modprobe)))
7794 #t)))))
7795 (native-inputs
7796 `(("intltool" ,intltool)
7797 ("libnma" ,libnma)
7798 ("pkg-config" ,pkg-config)))
7799 (inputs
7800 `(("gcr" ,gcr)
7801 ("gtk+" ,gtk+)
7802 ("kmod" ,kmod)
7803 ("libsecret" ,libsecret)
7804 ("libxml2" ,libxml2)
7805 ("lz4" ,lz4)
7806 ("network-manager" ,network-manager)
7807 ("openconnect" ,openconnect)))
7808 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7809 (synopsis "OpenConnect plug-in for NetworkManager")
7810 (description
7811 "This extension of NetworkManager allows it to take care of connections
7812 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7813 Cisco's AnyConnect SSL VPN.")
7814 (license license:gpl2+)
7815 (properties `((upstream-name . "NetworkManager-openconnect")
7816
7817 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7818 ;; file refers to account "nm-openconnect". Specify it here
7819 ;; so that 'network-manager-service-type' creates it.
7820 (user-accounts . ("nm-openconnect"))))))
7821
7822 (define-public mobile-broadband-provider-info
7823 (package
7824 (name "mobile-broadband-provider-info")
7825 (version "20190116")
7826 (source (origin
7827 (method url-fetch)
7828 (uri (string-append
7829 "mirror://gnome/sources/"
7830 "mobile-broadband-provider-info/" version "/"
7831 "mobile-broadband-provider-info-" version ".tar.xz"))
7832 (sha256
7833 (base32
7834 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7835 (build-system gnu-build-system)
7836 (arguments
7837 `(#:tests? #f)) ; no tests
7838 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7839 (synopsis "Database of broadband connection configuration")
7840 (description "Database of broadband connection configuration.")
7841 (license license:public-domain)))
7842
7843 (define-public network-manager-applet
7844 (package
7845 (name "network-manager-applet")
7846 (version "1.16.0")
7847 (source (origin
7848 (method url-fetch)
7849 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7850 (version-major+minor version) "/"
7851 "network-manager-applet-" version ".tar.xz"))
7852 (sha256
7853 (base32
7854 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
7855 (build-system meson-build-system)
7856 (arguments
7857 '(#:glib-or-gtk? #t))
7858 (native-inputs
7859 `(("intltool" ,intltool)
7860 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
7861 ("gobject-introspection" ,gobject-introspection)
7862 ("gtk-doc" ,gtk-doc)
7863 ("pkg-config" ,pkg-config)))
7864 (propagated-inputs
7865 ;; libnm-gtk.pc refers to all these.
7866 `(("dbus-glib" ,dbus-glib)
7867 ("gtk+" ,gtk+)
7868 ("network-manager" ,network-manager)
7869 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7870 ("libnma" ,libnma)))
7871 (inputs
7872 `(("gcr" ,gcr)
7873 ("libgudev" ,libgudev)
7874 ("libnotify" ,libnotify)
7875 ("libsecret" ,libsecret)
7876 ("libselinux" ,libselinux)
7877 ("jansson" ,jansson) ; for team support
7878 ("modem-manager" ,modem-manager)))
7879 (synopsis "Applet for managing network connections")
7880 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7881 (description
7882 "This package contains a systray applet for NetworkManager. It displays
7883 the available networks and allows users to easily switch between them.")
7884 (license license:gpl2+)))
7885
7886 (define-public libxml++
7887 (package
7888 (name "libxml++")
7889 (version "3.0.1")
7890 (source (origin
7891 (method url-fetch)
7892 (uri (string-append "mirror://gnome/sources/" name "/"
7893 (version-major+minor version) "/"
7894 name "-" version ".tar.xz"))
7895 (sha256
7896 (base32
7897 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
7898 (build-system gnu-build-system)
7899 ;; libxml++-3.0.pc refers to all these.
7900 (propagated-inputs
7901 `(("libxml2" ,libxml2)
7902 ("glibmm" ,glibmm)))
7903 (native-inputs
7904 `(("perl" ,perl)
7905 ("pkg-config" ,pkg-config)))
7906 (home-page "http://libxmlplusplus.sourceforge.net/")
7907 (synopsis "C++ wrapper for XML parser library libxml2")
7908 (description
7909 "This package provides a C++ wrapper for the XML parser library
7910 libxml2.")
7911 (license license:lgpl2.1+)))
7912
7913 (define-public libxml++-2
7914 (package
7915 (inherit libxml++)
7916 (name "libxml++")
7917 (version "2.40.1")
7918 (source (origin
7919 (method url-fetch)
7920 (uri (string-append "mirror://gnome/sources/" name "/"
7921 (version-major+minor version) "/"
7922 name "-" version ".tar.xz"))
7923 (sha256
7924 (base32
7925 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
7926
7927 (define-public gdm
7928 (package
7929 (name "gdm")
7930 (version "3.34.1")
7931 (source (origin
7932 (method url-fetch)
7933 (uri (string-append "mirror://gnome/sources/" name "/"
7934 (version-major+minor version) "/"
7935 name "-" version ".tar.xz"))
7936 (sha256
7937 (base32
7938 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
7939 (patches (search-patches "gdm-default-session.patch"))))
7940 (build-system glib-or-gtk-build-system)
7941 (arguments
7942 '(#:configure-flags
7943 `("--without-plymouth"
7944 "--disable-systemd-journal"
7945
7946 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
7947 ;; instead of having to replace it (i.e., stopping the mingetty
7948 ;; service for TTY 1 before starting GDM).
7949 "--with-initial-vt=7"
7950
7951 ;; Use '/etc/environment' for locale settings instead of the
7952 ;; systemd-specific '/etc/locale.conf'.
7953 "--with-lang-file=/etc/environment"
7954
7955 ,(string-append "--with-udevdir="
7956 (assoc-ref %outputs "out") "/lib/udev")
7957
7958 "--localstatedir=/var"
7959 ,(string-append "--with-default-path="
7960 (string-join '("/run/setuid-programs"
7961 "/run/current-system/profile/bin"
7962 "/run/current-system/profile/sbin")
7963 ":"))
7964 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
7965 ;; XDG_DATA_DIRS so that it finds its schemas.
7966 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
7967 #:phases
7968 (modify-phases %standard-phases
7969 (add-before
7970 'configure 'pre-configure
7971 (lambda* (#:key inputs outputs #:allow-other-keys)
7972 ;; We don't have <systemd/sd-daemon.h>.
7973 (substitute* '("common/gdm-log.c"
7974 "daemon/gdm-server.c"
7975 "daemon/gdm-session-worker.c"
7976 "daemon/gdm-session-worker-job.c")
7977 (("#include <systemd/sd-daemon\\.h>") ""))
7978 ;; Use elogind for sd-login.
7979 (substitute* '("common/gdm-common.c"
7980 "daemon/gdm-local-display-factory.c"
7981 "daemon/gdm-manager.c"
7982 "libgdm/gdm-user-switching.c")
7983 (("#include <systemd/sd-login\\.h>")
7984 "#include <elogind/sd-login.h>"))
7985 ;; Check for elogind.
7986 (substitute* '("configure")
7987 (("libsystemd")
7988 "libelogind"))
7989 ;; Look for system-installed sessions in
7990 ;; /run/current-system/profile/share.
7991 (substitute* '("libgdm/gdm-sessions.c"
7992 "daemon/gdm-session.c"
7993 "daemon/gdm-display.c"
7994 "daemon/gdm-launch-environment.c")
7995 (("DATADIR \"/x")
7996 "\"/run/current-system/profile/share/x")
7997 (("DATADIR \"/wayland")
7998 "\"/run/current-system/profile/share/wayland")
7999 (("DATADIR \"/gnome")
8000 "\"/run/current-system/profile/share/gnome"))
8001 (let ((propagate '("GDM_CUSTOM_CONF"
8002 "GDM_DBUS_DAEMON"
8003 "GDM_X_SERVER"
8004 "GDM_X_SESSION"
8005 ;; XXX: Remove this once GNOME Shell is
8006 ;; a dependency of GDM.
8007 "XDG_DATA_DIRS")))
8008 (substitute* "daemon/gdm-session.c"
8009 (("set_up_session_environment \\(self\\);")
8010 (apply string-append
8011 "set_up_session_environment (self);\n"
8012 (map (lambda (name)
8013 (string-append
8014 "gdm_session_set_environment_variable "
8015 "(self, \"" name "\","
8016 "g_getenv (\"" name "\"));\n"))
8017 propagate)))))
8018 ;; Find the configuration file using an environment variable.
8019 (substitute* '("common/gdm-settings.c")
8020 (("GDM_CUSTOM_CONF")
8021 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8022 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8023 " : GDM_CUSTOM_CONF)")))
8024 ;; Use service-supplied path to X.
8025 (substitute* '("daemon/gdm-server.c")
8026 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8027 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8028 (substitute* '("daemon/gdm-wayland-session.c"
8029 "daemon/gdm-x-session.c")
8030 (("\"dbus-daemon\"")
8031 "g_getenv (\"GDM_DBUS_DAEMON\")")
8032 (("X_SERVER")
8033 "g_getenv (\"GDM_X_SERVER\")")
8034 (("GDMCONFDIR \"/Xsession\"")
8035 "g_getenv (\"GDM_X_SESSION\")"))
8036 ;; Use an absolute path for GNOME Session.
8037 (substitute* "daemon/gdm-launch-environment.c"
8038 (("\"gnome-session\"")
8039 (string-append "\"" (assoc-ref inputs "gnome-session")
8040 "/bin/gnome-session\"")))
8041 ;; Do not automatically select the placeholder session.
8042 (substitute* "daemon/gdm-session.c"
8043 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8044 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8045 "(g_strcmp0(search_dirs[i], \""
8046 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
8047 "\") == 0 && "
8048 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8049 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8050 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
8051 #t))
8052 ;; GDM requires that there be at least one desktop entry
8053 ;; file. This phase installs a hidden one that simply
8054 ;; fails. This enables users to use GDM with a
8055 ;; '~/.xsession' script with no other desktop entry files.
8056 ;; See <https://bugs.gnu.org/35068>.
8057 (add-after 'install 'install-placeholder-desktop-entry
8058 (lambda* (#:key inputs outputs #:allow-other-keys)
8059 (let* ((out (assoc-ref outputs "out"))
8060 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8061 (fail (string-append sessions "/fail.desktop")))
8062 (mkdir-p sessions)
8063 (with-output-to-file fail
8064 (lambda ()
8065 (for-each
8066 display
8067 '("[Desktop Entry]\n"
8068 "Encoding=UTF-8\n"
8069 "Type=Application\n"
8070 "Name=Fail\n"
8071 "Comment=This session fails immediately.\n"
8072 "NoDisplay=true\n"
8073 "Exec=false\n"))))
8074 #t)))
8075 ;; GDM needs GNOME Session to run these applications. We link
8076 ;; their autostart files in `share/gdm/greeter/autostart'
8077 ;; because GDM explicitly tells GNOME Session to look there.
8078 ;;
8079 ;; XXX: GNOME Shell should be linked here too, but currently
8080 ;; GNOME Shell depends on GDM.
8081 (add-after 'install 'link-autostart-files
8082 (lambda* (#:key inputs outputs #:allow-other-keys)
8083 (let* ((out (assoc-ref outputs "out"))
8084 (autostart (string-append out "/share/gdm/"
8085 "greeter/autostart"))
8086 (settings (assoc-ref inputs "gnome-settings-daemon")))
8087 (mkdir-p autostart)
8088 (with-directory-excursion autostart
8089 (for-each (lambda (desktop)
8090 (symlink desktop (basename desktop)))
8091 (find-files (string-append settings "/etc/xdg"))))
8092 #t))))))
8093 (native-inputs
8094 `(("dconf" ,dconf)
8095 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8096 ("gobject-introspection" ,gobject-introspection)
8097 ("intltool" ,intltool)
8098 ("itstool" ,itstool)
8099 ("pkg-config" ,pkg-config)
8100 ("xmllint" ,libxml2)))
8101 (inputs
8102 `(("accountsservice" ,accountsservice)
8103 ("check" ,check) ; for testing
8104 ("elogind" ,elogind)
8105 ("gnome-session" ,gnome-session)
8106 ("gnome-settings-daemon" ,gnome-settings-daemon)
8107 ("gtk+" ,gtk+)
8108 ("iso-codes" ,iso-codes)
8109 ("libcanberra" ,libcanberra)
8110 ("linux-pam" ,linux-pam)))
8111 (synopsis "Display manager for GNOME")
8112 (home-page "https://wiki.gnome.org/Projects/GDM/")
8113 (description
8114 "GNOME Display Manager is a system service that is responsible for
8115 providing graphical log-ins and managing local and remote displays.")
8116 (license license:gpl2+)))
8117
8118 (define-public libgtop
8119 (package
8120 (name "libgtop")
8121 (version "2.40.0")
8122 (source (origin
8123 (method url-fetch)
8124 (uri (string-append "mirror://gnome/sources/libgtop/"
8125 (version-major+minor version) "/"
8126 "libgtop-" version ".tar.xz"))
8127 (sha256
8128 (base32
8129 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8130 (build-system gnu-build-system)
8131 (native-inputs
8132 `(("gobject-introspection" ,gobject-introspection)
8133 ("intltool" ,intltool)
8134 ("perl" ,perl)
8135 ("pkg-config" ,pkg-config)))
8136 (propagated-inputs
8137 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8138 (synopsis "Portable system access library")
8139 (home-page "https://www.gnome.org/")
8140 (description
8141 "LibGTop is a library to get system specific data such as CPU and memory
8142 usage and information about running processes.")
8143 (license license:gpl2+)))
8144
8145 (define-public gnome-bluetooth
8146 (package
8147 (name "gnome-bluetooth")
8148 (version "3.34.2")
8149 (source (origin
8150 (method url-fetch)
8151 (uri (string-append "mirror://gnome/sources/" name "/"
8152 (version-major+minor version) "/"
8153 name "-" version ".tar.xz"))
8154 (sha256
8155 (base32
8156 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8157 (build-system meson-build-system)
8158 (native-inputs
8159 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8160 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8161 ("gobject-introspection" ,gobject-introspection)
8162 ("intltool" ,intltool)
8163 ("pkg-config" ,pkg-config)
8164 ("xmllint" ,libxml2)))
8165 (propagated-inputs
8166 ;; gnome-bluetooth-1.0.pc refers to all these.
8167 `(("glib" ,glib)
8168 ("gtk+" ,gtk+)))
8169 (inputs
8170 `(("eudev" ,eudev)
8171 ("libcanberra" ,libcanberra)
8172 ("libnotify" ,libnotify)))
8173 (synopsis "GNOME Bluetooth subsystem")
8174 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8175 (description
8176 "This package contains tools for managing and manipulating Bluetooth
8177 devices using the GNOME desktop.")
8178 (license license:lgpl2.1+)))
8179
8180 (define-public gnome-control-center
8181 (package
8182 (name "gnome-control-center")
8183 (version "3.34.2")
8184 (source (origin
8185 (method url-fetch)
8186 (uri (string-append "mirror://gnome/sources/" name "/"
8187 (version-major+minor version) "/"
8188 name "-" version ".tar.xz"))
8189 (sha256
8190 (base32
8191 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8192 (build-system meson-build-system)
8193 (arguments
8194 '(#:glib-or-gtk? #t
8195 #:configure-flags
8196 (list "-Dcheese=false"
8197 (string-append "-Dgnome_session_libexecdir="
8198 (assoc-ref %build-inputs "gnome-session")
8199 "/libexec"))
8200 #:phases
8201 (modify-phases %standard-phases
8202 (add-before 'configure 'patch-paths
8203 (lambda* (#:key inputs #:allow-other-keys)
8204 (let ((libc (assoc-ref inputs "libc"))
8205 (tzdata (assoc-ref inputs "tzdata"))
8206 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8207 (nm-applet (assoc-ref inputs "network-manager-applet"))
8208 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8209 (substitute* "panels/datetime/tz.h"
8210 (("/usr/share/zoneinfo/zone.tab")
8211 (string-append tzdata "/share/zoneinfo/zone.tab")))
8212 (substitute* "tests/datetime/test-endianess.c"
8213 (("/usr/share/locale")
8214 (string-append libc "/share/locale")))
8215 (substitute* "panels/region/cc-region-panel.c"
8216 (("\"gkbd-keyboard-display")
8217 (string-append "\"" libgnomekbd
8218 "/bin/gkbd-keyboard-display")))
8219 (substitute* '("panels/network/net-device-wifi.c"
8220 "panels/network/net-device.c"
8221 "panels/network/connection-editor/net-connection-editor.c")
8222 (("\"nm-connection-editor")
8223 (string-append "\"" nm-applet
8224 "/bin/nm-connection-editor")))
8225 (substitute* '("panels/user-accounts/run-passwd.c")
8226 (("/usr/bin/passwd")
8227 "/run/setuid-programs/passwd"))
8228 (substitute* "panels/info/cc-info-overview-panel.c"
8229 (("DATADIR \"/gnome/gnome-version.xml\"")
8230 (string-append "\"" gnome-desktop
8231 "/share/gnome/gnome-version.xml\"")))
8232 #t)))
8233 (add-after 'unpack 'skip-gtk-update-icon-cache
8234 ;; Don't create 'icon-theme.cache'.
8235 (lambda _
8236 (substitute* "build-aux/meson/meson_post_install.py"
8237 (("gtk-update-icon-cache") (which "true")))
8238 #t)))))
8239 (native-inputs
8240 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8241 ("intltool" ,intltool)
8242 ("pkg-config" ,pkg-config)
8243 ("xsltproc" ,libxslt)
8244 ;; For tests
8245 ("hicolor-icon-theme" ,hicolor-icon-theme)
8246 ("python-dbusmock" ,python-dbusmock)
8247 ("xorg-server" ,xorg-server-for-tests)))
8248 (inputs
8249 `(("accountsservice" ,accountsservice)
8250 ("clutter-gtk" ,clutter-gtk)
8251 ("colord-gtk" ,colord-gtk)
8252 ("cups" ,cups)
8253 ("dconf" ,dconf)
8254 ("docbook-xsl" ,docbook-xsl)
8255 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8256 ("gnome-bluetooth" ,gnome-bluetooth)
8257 ("gnome-desktop" ,gnome-desktop)
8258 ("gnome-online-accounts" ,gnome-online-accounts)
8259 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8260 ("gnome-session" ,gnome-session)
8261 ("gnome-settings-daemon" ,gnome-settings-daemon)
8262 ("grilo" ,grilo)
8263 ("gsound" ,gsound)
8264 ("ibus" ,ibus)
8265 ("libcanberra" ,libcanberra)
8266 ("libgnomekbd" ,libgnomekbd)
8267 ("libgudev" ,libgudev)
8268 ("libgtop" ,libgtop)
8269 ("libnma" ,libnma)
8270 ("libpwquality" ,libpwquality)
8271 ("libsecret" ,libsecret)
8272 ("libsoup" ,libsoup)
8273 ("libxml2" ,libxml2)
8274 ("libwacom" ,libwacom)
8275 ("mesa" ,mesa)
8276 ("mit-krb5" ,mit-krb5)
8277 ("modem-manager" ,modem-manager)
8278 ("network-manager-applet" ,network-manager-applet)
8279 ("polkit" ,polkit)
8280 ("pulseaudio" ,pulseaudio)
8281 ("smbclient" ,samba)
8282 ("tzdata" ,tzdata)
8283 ("udisks" ,udisks)
8284 ("upower" ,upower)))
8285 (synopsis "Utilities to configure the GNOME desktop")
8286 (home-page "https://www.gnome.org/")
8287 (description
8288 "This package contains configuration applets for the GNOME desktop,
8289 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8290 properties, sound setup, desktop theme and background, user interface
8291 properties, screen resolution, and other GNOME parameters.")
8292 (license license:gpl2+)))
8293
8294 (define-public gnome-shell
8295 (package
8296 (name "gnome-shell")
8297 (version "3.34.2")
8298 (source (origin
8299 (method url-fetch)
8300 (uri (string-append "mirror://gnome/sources/" name "/"
8301 (version-major+minor version) "/"
8302 name "-" version ".tar.xz"))
8303 (sha256
8304 (base32
8305 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
8306 (patches (search-patches "gnome-shell-theme.patch"
8307 "gnome-shell-disable-test.patch"))
8308 (modules '((guix build utils)))
8309 (snippet
8310 #~(begin
8311 ;; Copy images for use on the GDM log-in screen.
8312 (copy-file #$(file-append %artwork-repository
8313 "/slim/0.x/background.png")
8314 "data/theme/guix-background.png")
8315 (copy-file #$(file-append %artwork-repository
8316 "/logo/Guix-horizontal-white.svg")
8317 "data/theme/guix-logo.svg")
8318 #t))))
8319 (build-system meson-build-system)
8320 (arguments
8321 `(#:glib-or-gtk? #t
8322 #:disallowed-references ((,glib "bin")
8323 ,inkscape ,libxslt
8324 ,ruby-sass)
8325 #:configure-flags
8326 (list "-Dsystemd=false"
8327 ;; Otherwise, the RUNPATH will lack the final path component.
8328 (string-append "-Dc_link_args=-Wl,-rpath="
8329 (assoc-ref %outputs "out")
8330 "/lib/gnome-shell"))
8331
8332 #:modules ((guix build meson-build-system)
8333 (guix build utils)
8334 (srfi srfi-1))
8335
8336 #:phases
8337 (modify-phases %standard-phases
8338 (add-after 'unpack 'fix-keysdir
8339 (lambda* (#:key outputs #:allow-other-keys)
8340 (let* ((out (assoc-ref outputs "out"))
8341 (keysdir (string-append
8342 out "/share/gnome-control-center/keybindings")))
8343 (substitute* "meson.build"
8344 (("keysdir =.*")
8345 (string-append "keysdir = '" keysdir "'\n")))
8346 #t)))
8347 (add-before 'configure 'convert-logo-to-png
8348 (lambda* (#:key inputs #:allow-other-keys)
8349 ;; Convert the logo from SVG to PNG.
8350 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8351 "data/theme/guix-logo.svg")))
8352 (add-before 'configure 'record-absolute-file-names
8353 (lambda* (#:key inputs #:allow-other-keys)
8354 (substitute* "js/misc/ibusManager.js"
8355 (("'ibus-daemon'")
8356 (string-append "'" (assoc-ref inputs "ibus")
8357 "/bin/ibus-daemon'")))
8358 (substitute* "js/ui/status/keyboard.js"
8359 (("'gkbd-keyboard-display'")
8360 (string-append "'" (assoc-ref inputs "libgnomekbd")
8361 "/bin/gkbd-keyboard-display'")))
8362 #t))
8363 (add-before 'check 'pre-check
8364 (lambda* (#:key inputs #:allow-other-keys)
8365 ;; Tests require a running X server.
8366 (system "Xvfb :1 &")
8367 (setenv "DISPLAY" ":1")
8368 #t))
8369 (add-after 'install 'wrap-programs
8370 (lambda* (#:key inputs outputs #:allow-other-keys)
8371 (let ((out (assoc-ref outputs "out"))
8372 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8373 (python-path (getenv "PYTHONPATH")))
8374 (wrap-program (string-append out "/bin/gnome-shell")
8375 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8376 ;; FIXME: gnome-shell loads these libraries with unqualified
8377 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8378 ;; alternative might be to patch gnome-shell.
8379 `("LD_LIBRARY_PATH" ":" prefix
8380 ,(map (lambda (pkg)
8381 (string-append (assoc-ref inputs pkg) "/lib"))
8382 '("gdk-pixbuf"
8383 "gnome-bluetooth" "librsvg" "libgweather"))))
8384 (for-each
8385 (lambda (prog)
8386 (wrap-program (string-append out "/bin/" prog)
8387 `("PYTHONPATH" ":" prefix (,python-path))
8388 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8389 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8390 #t)))
8391 (replace 'glib-or-gtk-wrap
8392 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8393 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8394 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8395 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8396 ;; phase. Fix that since we don't need these.
8397 (wrap #:inputs (fold alist-delete inputs
8398 '("inkscape" "intltool" "glib:bin"))
8399 #:outputs outputs)))))))
8400 (native-inputs
8401 `(("asciidoc" ,asciidoc)
8402 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8403 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8404 ("gobject-introspection" ,gobject-introspection)
8405 ("inkscape" ,inkscape)
8406 ("intltool" ,intltool)
8407 ("pkg-config" ,pkg-config)
8408 ("python" ,python)
8409 ("ruby-sass" ,ruby-sass)
8410 ("sassc" ,sassc)
8411 ("xsltproc" ,libxslt)
8412 ;; For tests
8413 ("xorg-server" ,xorg-server-for-tests)))
8414 (inputs
8415 `(("accountsservice" ,accountsservice)
8416 ("caribou" ,caribou)
8417 ("docbook-xsl" ,docbook-xsl)
8418 ("evolution-data-server" ,evolution-data-server)
8419 ("gcr" ,gcr)
8420 ("gdm" ,gdm)
8421 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8422 ("gjs" ,gjs)
8423 ("gnome-autoar" ,gnome-autoar)
8424 ("gnome-bluetooth" ,gnome-bluetooth)
8425 ("gnome-desktop" ,gnome-desktop)
8426 ("gnome-settings-daemon" ,gnome-settings-daemon)
8427 ("gst-plugins-base" ,gst-plugins-base)
8428 ("ibus" ,ibus)
8429 ("libcanberra" ,libcanberra)
8430 ("libcroco" ,libcroco)
8431 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8432 ("libgweather" ,libgweather)
8433 ("libnma" ,libnma)
8434 ("libsoup" ,libsoup)
8435 ("mesa-headers" ,mesa-headers)
8436 ("mutter" ,mutter)
8437 ("network-manager-applet" ,network-manager-applet)
8438 ("polkit" ,polkit)
8439 ("pulseaudio" ,pulseaudio)
8440 ("python-pygobject" ,python-pygobject)
8441 ("startup-notification" ,startup-notification)
8442 ("telepathy-logger" ,telepathy-logger)
8443 ("upower" ,upower)
8444 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8445 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8446 ("librsvg" ,librsvg)
8447 ("geoclue" ,geoclue)))
8448 (synopsis "Desktop shell for GNOME")
8449 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8450 (description
8451 "GNOME Shell provides core user interface functions for the GNOME desktop,
8452 like switching to windows and launching applications.")
8453 (license license:gpl2+)))
8454
8455 (define-public gtk-vnc
8456 (package
8457 (name "gtk-vnc")
8458 (version "1.0.0")
8459 (source
8460 (origin
8461 (method url-fetch)
8462 (uri
8463 (string-append "mirror://gnome/sources/" name "/"
8464 (version-major+minor version) "/"
8465 name "-" version ".tar.xz"))
8466 (sha256
8467 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8468 (build-system meson-build-system)
8469 (arguments
8470 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8471 (native-inputs
8472 `(("gjs" ,gjs)
8473 ("glib:bin" ,glib "bin")
8474 ("gobject-introspection" ,gobject-introspection)
8475 ("intltool" ,intltool)
8476 ("node" ,node)
8477 ("perl" ,perl)
8478 ("pkg-config" ,pkg-config)
8479 ("python" ,python-wrapper)
8480 ("vala" ,vala)))
8481 (inputs
8482 `(("cairo" ,cairo)
8483 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8484 ("glib" ,glib)
8485 ("gnutls" ,gnutls)
8486 ("libgcrypt" ,libgcrypt)
8487 ("libsasl" ,cyrus-sasl)
8488 ("pulseaudio" ,pulseaudio)
8489 ("x11" ,libx11)
8490 ("zlib" ,zlib)))
8491 (propagated-inputs
8492 `(("gtk+" ,gtk+)))
8493 (synopsis "VNC client viewer widget for GTK+")
8494 (description "GTK-VNC is a project providing client side APIs for the RFB
8495 protocol / VNC remote desktop technology. It is built using coroutines allowing
8496 it to be completely asynchronous while remaining single threaded. It provides a
8497 core C library, and bindings for Python (PyGTK).")
8498 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8499 (license license:lgpl2.1+)))
8500
8501 (define-public gnome-autoar
8502 (package
8503 (name "gnome-autoar")
8504 (version "0.2.4")
8505 (source (origin
8506 (method url-fetch)
8507 (uri (string-append "mirror://gnome/sources/" name "/"
8508 (version-major+minor version) "/"
8509 name "-" version ".tar.xz"))
8510 (sha256
8511 (base32
8512 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
8513 (build-system glib-or-gtk-build-system)
8514 (native-inputs
8515 `(("gobject-introspection" ,gobject-introspection)
8516 ("pkg-config" ,pkg-config)))
8517 (propagated-inputs
8518 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8519 (inputs
8520 `(("gtk+" ,gtk+)))
8521 (synopsis "Archives integration support for GNOME")
8522 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8523 (description
8524 "GNOME Autoar is a library which makes creating and extracting archives
8525 easy, safe, and automatic.")
8526 (license license:lgpl2.1+)))
8527
8528 (define-public tracker
8529 (package
8530 (name "tracker")
8531 (version "2.3.5")
8532 (source (origin
8533 (method url-fetch)
8534 (uri (string-append "mirror://gnome/sources/tracker/"
8535 (version-major+minor version) "/"
8536 "tracker-" version ".tar.xz"))
8537 (sha256
8538 (base32
8539 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8540 (build-system meson-build-system)
8541 (arguments
8542 `(#:glib-or-gtk? #t
8543 #:configure-flags
8544 ;; Otherwise, the RUNPATH will lack the final path component.
8545 (list (string-append "-Dc_link_args=-Wl,-rpath="
8546 (assoc-ref %outputs "out") "/lib:"
8547 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8548 #:phases
8549 (modify-phases %standard-phases
8550 (add-before 'check 'pre-check
8551 (lambda _
8552 ;; Some tests expect to write to $HOME.
8553 (setenv "HOME" "/tmp")
8554 #t)))))
8555 (native-inputs
8556 `(("glib:bin" ,glib "bin")
8557 ("gobject-introspection" ,gobject-introspection)
8558 ("python-pygobject" ,python-pygobject)
8559 ("intltool" ,intltool)
8560 ("pkg-config" ,pkg-config)
8561 ("vala" ,vala)))
8562 (inputs
8563 `(("dbus" ,dbus)
8564 ("sqlite" ,sqlite)
8565 ("libxml2" ,libxml2)
8566 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8567 ("json-glib" ,json-glib)
8568 ("libsoup" ,libsoup)))
8569 (synopsis "Metadata database, indexer and search tool")
8570 (home-page "https://wiki.gnome.org/Projects/Tracker")
8571 (description
8572 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8573
8574 It is a middleware component aimed at desktop application developers who want
8575 their apps to browse and search user content. It's not designed to be used
8576 directly by desktop users, but it provides a commandline tool named
8577 @command{tracker} for the adventurous.
8578
8579 Tracker allows your application to instantly perform full-text searches across
8580 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8581 example. This is achieved by indexing the user's home directory in the
8582 background.
8583
8584 Tracker also allows your application to query and list content that the user
8585 has stored. For example, GNOME Music displays all the music files that are
8586 found by Tracker. This means that GNOME Music doesn't need to maintain a
8587 database of its own.
8588
8589 If you need to go beyond simple searches, Tracker is also a linked data
8590 endpoint and it understands SPARQL. ")
8591 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8592 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8593 ;; libstemmer is bsd-3 and the rest is gpl2+.
8594 (license (list license:gpl2+
8595 license:bsd-3
8596 license:lgpl2.1+))))
8597
8598 (define-public tracker-miners
8599 (package
8600 (name "tracker-miners")
8601 (version "2.3.4")
8602 (source (origin
8603 (method url-fetch)
8604 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8605 (version-major+minor version)
8606 "/tracker-miners-" version ".tar.xz"))
8607 (sha256
8608 (base32
8609 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8610 (build-system meson-build-system)
8611 (arguments
8612 `(#:glib-or-gtk? #t
8613 #:configure-flags
8614 (list "-Dminer_rss=false" ; libgrss is required.
8615 ;; Ensure the RUNPATH contains all installed library locations.
8616 (string-append "-Dc_link_args=-Wl,-rpath="
8617 (assoc-ref %outputs "out")
8618 "/lib/tracker-miners-2.0")
8619 ;; TODO: Enable functional tests. Currently, the following error
8620 ;; appears:
8621 ;; Exception: The functional tests require DConf to be the default
8622 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8623 "-Dfunctional_tests=false")))
8624 (native-inputs
8625 `(("dbus" ,dbus)
8626 ("intltool" ,intltool)
8627 ("glib:bin" ,glib "bin")
8628 ("gobject-introspection" ,gobject-introspection)
8629 ("pkg-config" ,pkg-config)
8630 ("python-pygobject" ,python-pygobject)))
8631 (inputs
8632 `(("exempi" ,exempi)
8633 ("ffmpeg" ,ffmpeg)
8634 ("flac" ,flac)
8635 ("giflib" ,giflib)
8636 ("glib" ,glib)
8637 ("gstreamer" ,gstreamer)
8638 ("icu4c" ,icu4c)
8639 ("libcue" ,libcue)
8640 ("libexif" ,libexif)
8641 ("libgsf" ,libgsf)
8642 ("libgxps" ,libgxps)
8643 ("libiptcdata" ,libiptcdata)
8644 ("libjpeg" ,libjpeg-turbo)
8645 ("libosinfo" ,libosinfo)
8646 ("libpng" ,libpng)
8647 ("libseccomp" ,libseccomp)
8648 ("libtiff" ,libtiff)
8649 ("libvorbis" ,libvorbis)
8650 ("libxml2" ,libxml2)
8651 ("poppler" ,poppler)
8652 ("taglib" ,taglib)
8653 ("totem-pl-parser" ,totem-pl-parser)
8654 ("tracker" ,tracker)
8655 ("upower" ,upower)
8656 ("zlib" ,zlib)))
8657 (synopsis "Metadata database, indexer and search tool")
8658 (home-page "https://wiki.gnome.org/Projects/Tracker")
8659 (description
8660 "Tracker is an advanced framework for first class objects with associated
8661 metadata and tags. It provides a one stop solution for all metadata, tags,
8662 shared object databases, search tools and indexing.")
8663 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8664 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8665 (license (list license:gpl2+
8666 license:lgpl2.1+
8667 license:lgpl2.0+))))
8668
8669 (define-public nautilus
8670 (package
8671 (name "nautilus")
8672 (version "3.34.2")
8673 (source (origin
8674 (method url-fetch)
8675 (uri (string-append "mirror://gnome/sources/" name "/"
8676 (version-major+minor version) "/"
8677 name "-" version ".tar.xz"))
8678 (sha256
8679 (base32
8680 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8681 (build-system meson-build-system)
8682 (arguments
8683 '(#:glib-or-gtk? #t
8684 #:phases
8685 (modify-phases %standard-phases
8686 (add-after 'unpack 'skip-gtk-update-icon-cache
8687 ;; Don't create 'icon-theme.cache'.
8688 (lambda _
8689 (substitute* "build-aux/meson/postinstall.py"
8690 (("gtk-update-icon-cache") "true"))
8691 #t)))
8692 ;; XXX: FAIL: check-nautilus
8693 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8694 #:tests? #f))
8695 (native-inputs
8696 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8697 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8698 ("gobject-introspection" ,gobject-introspection)
8699 ("intltool" ,intltool)
8700 ("pkg-config" ,pkg-config)))
8701 (inputs
8702 `(("dconf" ,dconf)
8703 ("gexiv2" ,gexiv2)
8704 ("gvfs" ,gvfs)
8705 ("exempi" ,exempi)
8706 ("gnome-desktop" ,gnome-desktop)
8707 ("gnome-autoar" ,gnome-autoar)
8708 ("gst-plugins-base" ,gst-plugins-base)
8709 ("libseccomp" ,libseccomp)
8710 ("libselinux" ,libselinux)
8711 ("tracker" ,tracker)
8712 ("tracker-miners" ,tracker-miners)
8713 ;; XXX: gtk+ is required by libnautilus-extension.pc
8714 ;;
8715 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8716 ;; package. See:
8717 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8718 ("gtk+" ,gtk+)
8719 ("libexif" ,libexif)
8720 ("libxml2" ,libxml2)))
8721 (synopsis "File manager for GNOME")
8722 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8723 (description
8724 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8725 design and behaviour, giving the user a simple way to navigate and manage its
8726 files.")
8727 (license license:gpl2+)))
8728
8729 (define-public baobab
8730 (package
8731 (name "baobab")
8732 (version "3.32.0")
8733 (source (origin
8734 (method url-fetch)
8735 (uri (string-append
8736 "mirror://gnome/sources/" name "/"
8737 (version-major+minor version) "/"
8738 name "-" version ".tar.xz"))
8739 (sha256
8740 (base32
8741 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
8742 (build-system meson-build-system)
8743 (arguments
8744 '(#:glib-or-gtk? #t))
8745 (native-inputs
8746 `(("intltool" ,intltool)
8747 ("pkg-config" ,pkg-config)
8748 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8749 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8750 ("itstool" ,itstool)
8751 ("xmllint" ,libxml2)
8752 ("glib" ,glib "bin")
8753 ("vala" ,vala)))
8754 (inputs
8755 `(("gtk+" ,gtk+)))
8756 (synopsis "Disk usage analyzer for GNOME")
8757 (description
8758 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8759 usage in the GNOME desktop environment. It can easily scan device volumes or
8760 a specific user-requested directory branch (local or remote). Once the scan
8761 is complete it provides a graphical representation of each selected folder.")
8762 (home-page "https://wiki.gnome.org/Apps/Baobab")
8763 (license license:gpl2+)))
8764
8765 (define-public gnome-backgrounds
8766 (package
8767 (name "gnome-backgrounds")
8768 (version "3.34.0")
8769 (source
8770 (origin
8771 (method url-fetch)
8772 (uri (string-append "mirror://gnome/sources/" name "/"
8773 (version-major+minor version) "/"
8774 name "-" version ".tar.xz"))
8775 (sha256
8776 (base32
8777 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8778 (build-system meson-build-system)
8779 (native-inputs
8780 `(("intltool" ,intltool)))
8781 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8782 (synopsis "Background images for the GNOME desktop")
8783 (description
8784 "GNOME backgrounds package contains a collection of graphics files which
8785 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8786 the package creates the proper framework and directory structure so that you
8787 can add your own files to the collection.")
8788 (license (list license:gpl2+
8789 license:cc-by2.0
8790 license:cc-by-sa2.0
8791 license:cc-by-sa3.0))))
8792
8793 (define-public gnome-screenshot
8794 (package
8795 (name "gnome-screenshot")
8796 (version "3.34.0")
8797 (source
8798 (origin
8799 (method url-fetch)
8800 (uri (string-append "mirror://gnome/sources/" name "/"
8801 (version-major+minor version) "/"
8802 name "-" version ".tar.xz"))
8803 (sha256
8804 (base32
8805 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8806 (build-system meson-build-system)
8807 (arguments
8808 '(#:phases
8809 (modify-phases %standard-phases
8810 (add-after 'unpack 'skip-gtk-update-icon-cache
8811 ;; Don't create 'icon-theme.cache'.
8812 (lambda _
8813 (substitute* "build-aux/postinstall.py"
8814 (("gtk-update-icon-cache") "true"))
8815 #t)))))
8816 (native-inputs
8817 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8818 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8819 ("intltool" ,intltool)
8820 ("appstream-glib" ,appstream-glib)
8821 ("pkg-config" ,pkg-config)))
8822 (inputs
8823 `(("gtk+" ,gtk+)
8824 ("libcanberra" ,libcanberra)
8825 ("libx11" ,libx11)
8826 ("libxext" ,libxext)))
8827 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8828 (synopsis "Take pictures of your screen")
8829 (description
8830 "GNOME Screenshot is a utility used for taking screenshots of the entire
8831 screen, a window or a user defined area of the screen, with optional
8832 beautifying border effects.")
8833 (license license:gpl2+)))
8834
8835 (define-public dconf-editor
8836 (package
8837 (name "dconf-editor")
8838 (version "3.34.2")
8839 (source
8840 (origin
8841 (method url-fetch)
8842 (uri (string-append "mirror://gnome/sources/" name "/"
8843 (version-major+minor version) "/"
8844 name "-" version ".tar.xz"))
8845 (sha256
8846 (base32
8847 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8848 (build-system meson-build-system)
8849 (native-inputs
8850 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8851 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8852 ("intltool" ,intltool)
8853 ("pkg-config" ,pkg-config)
8854 ("vala" ,vala)))
8855 (inputs
8856 `(("dconf" ,dconf)
8857 ("gtk+" ,gtk+)
8858 ("libxml2" ,libxml2)))
8859 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
8860 (synopsis "Graphical editor for GNOME's dconf configuration system")
8861 (description
8862 "Dconf-editor is a graphical tool for browsing and editing the dconf
8863 configuration system for GNOME. It allows users to configure desktop
8864 software that do not provide their own configuration interface.")
8865 (license license:lgpl2.1+)))
8866
8867 (define-public gnome-default-applications
8868 (package
8869 (name "gnome-default-applications")
8870 (version "0")
8871 (build-system trivial-build-system)
8872 (source #f)
8873 (propagated-inputs
8874 `(("nautilus" ,nautilus)
8875 ("evince" ,evince)))
8876 (arguments
8877 `(#:modules ((guix build utils))
8878 #:builder
8879 (begin
8880 (use-modules (guix build utils))
8881 (let* ((out (assoc-ref %outputs "out"))
8882 (apps (string-append out "/share/applications")))
8883 (mkdir-p apps)
8884 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
8885 (lambda (port)
8886 (format port "[Default Applications]\n")
8887 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
8888 (format port "application/pdf=evince.desktop\n")
8889 (format port "application/postscript=evince.desktop\n")))
8890 #t))))
8891 (synopsis "Default MIME type associations for the GNOME desktop")
8892 (description
8893 "Given many installed packages which might handle a given MIME type, a
8894 user running the GNOME desktop probably has some preferences: for example,
8895 that folders be opened by default by the Nautilus file manager, not the Baobab
8896 disk usage analyzer. This package establishes that set of default MIME type
8897 associations for GNOME.")
8898 (license license:gpl3+)
8899 (home-page #f)))
8900
8901 (define-public libgovirt
8902 (package
8903 (name "libgovirt")
8904 (version "0.3.6")
8905 (source (origin
8906 (method url-fetch)
8907 (uri (string-append "mirror://gnome/sources/" name "/"
8908 (version-major+minor version) "/"
8909 name "-" version ".tar.xz"))
8910 (sha256
8911 (base32
8912 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
8913 (build-system glib-or-gtk-build-system)
8914 (native-inputs
8915 `(("gettext" ,gettext-minimal)
8916 ("glib:bin" ,glib "bin")
8917 ("gobject-introspection" ,gobject-introspection)
8918 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8919 ("gtk+:bin" ,gtk+ "bin")
8920 ("pkg-config" ,pkg-config)))
8921 (inputs
8922 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
8923 ("librest" ,rest)))
8924 (synopsis "GoVirt Library")
8925 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
8926 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
8927 (license license:gpl2+)))
8928
8929 (define-public gnome-weather
8930 (package
8931 (name "gnome-weather")
8932 (version "3.34.0")
8933 (source (origin
8934 (method url-fetch)
8935 (uri (string-append "mirror://gnome/sources/" name "/"
8936 (version-major+minor version) "/"
8937 name "-" version ".tar.xz"))
8938 (sha256
8939 (base32
8940 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
8941 (build-system meson-build-system)
8942 (native-inputs
8943 `(("gettext" ,gettext-minimal)
8944 ("glib:bin" ,glib "bin")
8945 ("gobject-introspection" ,gobject-introspection)
8946 ("gtk+:bin" ,gtk+ "bin")
8947 ("pkg-config" ,pkg-config)))
8948 (inputs
8949 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
8950 ("appstream-glib" ,appstream-glib)
8951 ("geoclue" ,geoclue)
8952 ("gdk-pixbuf" ,gdk-pixbuf)
8953 ("gjs" ,gjs)
8954 ("gnome-desktop" ,gnome-desktop)
8955 ("libgweather" ,libgweather)))
8956 (arguments
8957 `(#:glib-or-gtk? #t
8958 #:phases
8959 (modify-phases %standard-phases
8960 (add-after 'install 'fix-desktop-file
8961 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
8962 ;; See https://issues.guix.gnu.org/issue/39324.
8963 (lambda* (#:key outputs #:allow-other-keys)
8964 (let* ((out (assoc-ref outputs "out"))
8965 (applications (string-append out "/share/applications")))
8966 (substitute* (string-append applications "/org.gnome.Weather.desktop")
8967 (("Exec=.*") "Exec=gnome-weather\n"))
8968 #t)))
8969 (add-after 'install 'wrap
8970 (lambda* (#:key inputs outputs #:allow-other-keys)
8971 (let ((out (assoc-ref outputs "out"))
8972 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8973 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
8974 (wrap-program (string-append out "/bin/gnome-weather")
8975 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
8976 #t))))))
8977 (synopsis "Weather monitoring for GNOME desktop")
8978 (description "GNOME Weather is a small application that allows you to
8979 monitor the current weather conditions for your city, or anywhere in the
8980 world.")
8981 (home-page "https://wiki.gnome.org/Apps/Weather")
8982 (license license:gpl2+)))
8983
8984 (define-public gnome
8985 (package
8986 (name "gnome")
8987 (version (package-version gnome-shell))
8988 (source #f)
8989 (build-system trivial-build-system)
8990 (arguments '(#:builder (begin (mkdir %output) #t)))
8991 (propagated-inputs
8992 ;; TODO: Add or remove packages according to:
8993 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
8994 `(
8995 ;; GNOME-Core-OS-Services
8996 ("accountsservice" ,accountsservice)
8997 ("network-manager" ,network-manager)
8998 ("packagekit" ,packagekit)
8999 ("upower" ,upower)
9000 ;; GNOME-Core-Shell
9001 ("adwaita-icon-theme" ,adwaita-icon-theme)
9002 ("gdm" ,gdm)
9003 ("glib-networking" ,glib-networking)
9004 ("gnome-backgrounds" ,gnome-backgrounds)
9005 ("gnome-bluetooth" ,gnome-bluetooth)
9006 ("gnome-color-manager" ,gnome-color-manager)
9007 ("gnome-control-center" ,gnome-control-center)
9008 ("gnome-desktop" ,gnome-desktop)
9009 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
9010 ("gnome-initial-setup" ,gnome-initial-setup)
9011 ("gnome-keyring" ,gnome-keyring)
9012 ("gnome-menus" ,gnome-menus)
9013 ("gnome-session" ,gnome-session)
9014 ("gnome-settings-daemon" ,gnome-settings-daemon)
9015 ("gnome-shell-extensions" ,gnome-shell-extensions)
9016 ("gnome-shell" ,gnome-shell)
9017 ("gnome-themes-extra" ,gnome-themes-extra)
9018 ("gnome-user-docs" ,gnome-user-docs)
9019 ("gnome-user-share" ,gnome-user-share)
9020 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9021 ("gvfs" ,gvfs)
9022 ("mutter" ,mutter)
9023 ("orca" ,orca)
9024 ("rygel" ,rygel)
9025 ("sushi" ,sushi)
9026 ;; GNOME-Core-Utilities
9027 ("baobab" ,baobab)
9028 ("cheese" ,cheese)
9029 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9030 ;; only works on x86_64, so exclude it on other architectures.
9031 ,@(if (string-prefix? "x86_64" (%current-system))
9032 `(("eog" ,eog))
9033 '())
9034 ("epiphany" ,epiphany)
9035 ("evince" ,evince)
9036 ("file-roller" ,file-roller)
9037 ("gedit" ,gedit)
9038 ("gnome-boxes" ,gnome-boxes)
9039 ("gnome-calculator" ,gnome-calculator)
9040 ("gnome-calendar" ,gnome-calendar)
9041 ("gnome-characters" ,gnome-characters)
9042 ("gnome-clocks" ,gnome-clocks)
9043 ("gnome-contacts" ,gnome-contacts)
9044 ("gnome-disk-utility" ,gnome-disk-utility)
9045 ("gnome-font-viewer" ,gnome-font-viewer)
9046 ("gnome-maps" ,gnome-maps)
9047 ; TODO: ("gnome-music" ,gnome-music)
9048 ; TODO: ("gnome-photos" ,gnome-photos)
9049 ("gnome-screenshot" ,gnome-screenshot)
9050 ("gnome-system-monitor" ,gnome-system-monitor)
9051 ("gnome-terminal" ,gnome-terminal)
9052 ("gnome-weather" ,gnome-weather)
9053 ("nautilus" ,nautilus)
9054 ("simple-scan" ,simple-scan)
9055 ("totem" ,totem)
9056 ("yelp" ,yelp)
9057 ;; Others
9058 ("hicolor-icon-theme" ,hicolor-icon-theme)
9059 ("gnome-online-accounts" ,gnome-online-accounts)
9060
9061 ;; Packages not part of GNOME proper but that are needed for a good
9062 ;; experience. See <https://bugs.gnu.org/39646>.
9063 ;; XXX: Find out exactly which ones are needed and why.
9064 ("font-cantarell" ,font-cantarell)
9065 ("font-dejavu" ,font-dejavu)
9066 ("at-spi2-core" ,at-spi2-core)
9067 ("dbus" ,dbus)
9068 ("dconf" ,dconf)
9069 ("desktop-file-utils" ,desktop-file-utils)
9070 ("gnome-default-applications" ,gnome-default-applications)
9071 ("gnome-themes-standard" ,gnome-themes-standard)
9072 ("gst-plugins-base" ,gst-plugins-base)
9073 ("gst-plugins-good" ,gst-plugins-good)
9074 ("gucharmap" ,gucharmap)
9075 ("pinentry-gnome3" ,pinentry-gnome3)
9076 ("pulseaudio" ,pulseaudio)
9077 ("shared-mime-info" ,shared-mime-info)
9078 ("system-config-printer" ,system-config-printer)
9079 ("xdg-user-dirs" ,xdg-user-dirs)
9080 ("yelp" ,yelp)
9081 ("zenity" ,zenity)))
9082 (synopsis "The GNU desktop environment")
9083 (home-page "https://www.gnome.org/")
9084 (description
9085 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9086 applications for browsing the web, editing text and images, creating
9087 documents and diagrams, playing media, scanning, and much more.")
9088 (license license:gpl2+)))
9089
9090 (define-public byzanz
9091 ;; The last stable release of Byzanz was in 2011, but there have been many
9092 ;; useful commits made to the Byzanz repository since then that it would be
9093 ;; silly to use such an old release.
9094 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9095 (package
9096 (name "byzanz")
9097 (version (string-append "0.2-1." (string-take commit 7)))
9098 (source (origin
9099 (method git-fetch)
9100 (uri (git-reference
9101 (url "https://git.gnome.org/browse/byzanz")
9102 (commit commit)))
9103 (file-name (string-append name "-" version "-checkout"))
9104 (sha256
9105 (base32
9106 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9107 (build-system glib-or-gtk-build-system)
9108 (arguments
9109 '(#:phases
9110 (modify-phases %standard-phases
9111 (add-before 'bootstrap 'build-without-Werror
9112 (lambda _
9113 ;; The build system cleverly detects that we're not building from
9114 ;; a release tarball and turns on -Werror for GCC.
9115 ;; Unsurprisingly, there is a warning during compilation that
9116 ;; causes the build to fail unnecessarily, so we remove the flag.
9117 (substitute* '("configure.ac")
9118 (("-Werror") ""))
9119 #t)))))
9120 (native-inputs
9121 `(("autoconf" ,autoconf)
9122 ("automake" ,automake)
9123 ("gnome-common" ,gnome-common)
9124 ("intltool" ,intltool)
9125 ("libtool" ,libtool)
9126 ("pkg-config" ,pkg-config)
9127 ("which" ,which)))
9128 (inputs
9129 `(("glib" ,glib)
9130 ("gstreamer" ,gstreamer)
9131 ("gst-plugins-base" ,gst-plugins-base)
9132 ("gtk+" ,gtk+)))
9133 (synopsis "Desktop recording program")
9134 (description "Byzanz is a simple desktop recording program with a
9135 command-line interface. It can record part or all of an X display for a
9136 specified duration and save it as a GIF encoded animated image file.")
9137 (home-page "https://git.gnome.org/browse/byzanz")
9138 (license license:gpl2+))))
9139
9140 (define-public authenticator
9141 (package
9142 (name "authenticator")
9143 (version "3.32.2")
9144 (source
9145 (origin
9146 (method git-fetch)
9147 (uri (git-reference
9148 (url "https://gitlab.gnome.org/World/Authenticator")
9149 (commit version)))
9150 (file-name (git-file-name name version))
9151 (sha256
9152 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9153 (build-system meson-build-system)
9154 (arguments
9155 `(#:glib-or-gtk? #t
9156 #:phases
9157 (modify-phases %standard-phases
9158 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9159 (lambda* (#:key inputs outputs #:allow-other-keys)
9160 (let ((prog (string-append (assoc-ref outputs "out")
9161 "/bin/authenticator"))
9162 (pylib (string-append (assoc-ref outputs "out")
9163 "/lib/python"
9164 ,(version-major+minor
9165 (package-version python))
9166 "/site-packages")))
9167 (wrap-program prog
9168 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
9169 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9170 #t))))))
9171 (native-inputs
9172 `(("desktop-file-utils" ,desktop-file-utils)
9173 ("gettext" ,gettext-minimal)
9174 ("glib:bin" ,glib "bin")
9175 ("gobject-introspection" ,gobject-introspection)
9176 ("gtk+:bin" ,gtk+ "bin")
9177 ("pkg-config" ,pkg-config)))
9178 (inputs
9179 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9180 ("gtk+" ,gtk+)
9181 ("libhandy" ,libhandy-0.0)
9182 ("libsecret" ,libsecret)
9183 ("python-beautifulsoup4" ,python-beautifulsoup4)
9184 ("python-pillow" ,python-pillow)
9185 ("python-pyfavicon" ,python-pyfavicon)
9186 ("python-pygobject" ,python-pygobject)
9187 ("python-pyotp" ,python-pyotp)
9188 ("python-pyzbar" ,python-pyzbar)
9189 ("yoyo-migrations" ,yoyo-migrations)
9190 ("zbar" ,zbar)))
9191 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9192 (synopsis "Two-factor authentication application built for GNOME")
9193 (description
9194 "Authenticator is a two-factor authentication (2FA) application built for
9195 the GNOME desktop environment.
9196
9197 Features:
9198
9199 @itemize
9200 @item QR code scanner
9201 @item Beautiful UI
9202 @item Huge database of more than 560 supported services
9203 @item Keep your PIN tokens secure by locking the application with a password
9204 @item Automatically fetch an image for services using their favicon
9205 @item The possibility to add new services
9206 @end itemize")
9207 (license license:gpl3+)))
9208
9209 (define-public gsound
9210 (package
9211 (name "gsound")
9212 (version "1.0.2")
9213 (source (origin
9214 (method url-fetch)
9215 (uri (string-append "mirror://gnome/sources/" name "/"
9216 (version-major+minor version) "/"
9217 name "-" version ".tar.xz"))
9218 (sha256
9219 (base32
9220 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9221 (build-system glib-or-gtk-build-system)
9222 (native-inputs
9223 `(("pkg-config" ,pkg-config)
9224 ("gobject-introspection" ,gobject-introspection)
9225 ("vala" ,vala)))
9226 (inputs
9227 `(("glib" ,glib)
9228 ("libcanberra" ,libcanberra)))
9229 (home-page "https://wiki.gnome.org/Projects/GSound")
9230 (synopsis "GObject wrapper for libcanberra")
9231 (description
9232 "GSound is a small library for playing system sounds. It's designed to be
9233 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9234 library.")
9235 (license license:lgpl2.1+)))
9236
9237 (define-public libzapojit
9238 (package
9239 (name "libzapojit")
9240 (version "0.0.3")
9241 (source (origin
9242 (method url-fetch)
9243 (uri (string-append "mirror://gnome/sources/" name "/"
9244 (version-major+minor version) "/"
9245 name "-" version ".tar.xz"))
9246 (sha256
9247 (base32
9248 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9249 (build-system gnu-build-system)
9250 (native-inputs
9251 `(("gobject-introspection" ,gobject-introspection)
9252 ("intltool" ,intltool)
9253 ("pkg-config" ,pkg-config)))
9254 (inputs
9255 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9256 ("json-glib" ,json-glib)
9257 ("rest" ,rest)))
9258 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9259 (synopsis "Library for accessing SkyDrive and Hotmail")
9260 (description
9261 "Libzapojit is a GLib-based library for accessing online service APIs of
9262 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9263 (license license:lgpl2.1+)))
9264
9265 (define-public gnome-clocks
9266 (package
9267 (name "gnome-clocks")
9268 (version "3.34.0")
9269 (source (origin
9270 (method url-fetch)
9271 (uri (string-append "mirror://gnome/sources/" name "/"
9272 (version-major+minor version) "/"
9273 name "-" version ".tar.xz"))
9274 (sha256
9275 (base32
9276 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9277 (build-system meson-build-system)
9278 (arguments
9279 '(#:glib-or-gtk? #t
9280 #:phases
9281 (modify-phases %standard-phases
9282 (add-after 'unpack 'skip-gtk-update-icon-cache
9283 ;; Don't create 'icon-theme.cache'.
9284 (lambda _
9285 (substitute* "build-aux/post-install.py"
9286 (("gtk-update-icon-cache") "true"))
9287 #t)))))
9288 (native-inputs
9289 `(("vala" ,vala)
9290 ("pkg-config" ,pkg-config)
9291 ("glib" ,glib "bin") ; for glib-compile-resources
9292 ("desktop-file-utils" ,desktop-file-utils)
9293 ("gettext" ,gettext-minimal)
9294 ("itstool" ,itstool)))
9295 (inputs
9296 `(("glib" ,glib)
9297 ("gtk+" ,gtk+)
9298 ("gsound" ,gsound)
9299 ("geoclue" ,geoclue)
9300 ("geocode-glib" ,geocode-glib)
9301 ("libgweather" ,libgweather)
9302 ("gnome-desktop" ,gnome-desktop)))
9303 (home-page "https://wiki.gnome.org/Apps/Clocks")
9304 (synopsis "GNOME's clock application")
9305 (description
9306 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9307 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9308 (license license:gpl3+)))
9309
9310 (define-public gnome-calendar
9311 (package
9312 (name "gnome-calendar")
9313 (version "3.34.2")
9314 (source (origin
9315 (method url-fetch)
9316 (uri (string-append "mirror://gnome/sources/" name "/"
9317 (version-major+minor version) "/"
9318 name "-" version ".tar.xz"))
9319 (sha256
9320 (base32
9321 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9322 (build-system meson-build-system)
9323 (arguments
9324 '(#:glib-or-gtk? #t
9325 ;; gnome-calendar has to be installed before the tests can be run
9326 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9327 #:tests? #f
9328 #:phases
9329 (modify-phases %standard-phases
9330 (add-after 'unpack 'skip-gtk-update-icon-cache
9331 ;; Don't create 'icon-theme.cache'.
9332 (lambda _
9333 (substitute* "build-aux/meson/meson_post_install.py"
9334 (("gtk-update-icon-cache") "true"))
9335 #t)))))
9336 (native-inputs
9337 `(("gettext" ,gettext-minimal)
9338 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9339 ("pkg-config" ,pkg-config)))
9340 (inputs
9341 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9342 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9343 ("libdazzle" ,libdazzle)
9344 ("libedataserverui" ,evolution-data-server)
9345 ("libgweather" ,libgweather)
9346 ("geoclue" ,geoclue)))
9347 (propagated-inputs
9348 `(("evolution-data-server" ,evolution-data-server)))
9349 (home-page "https://wiki.gnome.org/Apps/Calendar")
9350 (synopsis "GNOME's calendar application")
9351 (description
9352 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9353 desktop. It supports multiple calendars, month, week and year view.")
9354 (license license:gpl3+)))
9355
9356 (define-public gnome-todo
9357 (package
9358 (name "gnome-todo")
9359 (version "3.28.1")
9360 (source (origin
9361 (method url-fetch)
9362 (uri (string-append "mirror://gnome/sources/" name "/"
9363 (version-major+minor version) "/"
9364 name "-" version ".tar.xz"))
9365 (sha256
9366 (base32
9367 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9368 (patches
9369 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9370 (build-system meson-build-system)
9371 (arguments
9372 '(#:glib-or-gtk? #t
9373 #:phases (modify-phases %standard-phases
9374 (add-after
9375 'install 'wrap-gnome-todo
9376 (lambda* (#:key inputs outputs #:allow-other-keys)
9377 (let ((out (assoc-ref outputs "out"))
9378 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9379 (python-path (getenv "PYTHONPATH")))
9380 (wrap-program (string-append out "/bin/gnome-todo")
9381 ;; XXX: gi plugins are broken.
9382 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9383 ;; For plugins.
9384 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9385 `("PYTHONPATH" ":" prefix (,python-path))))
9386 #t)))))
9387 (native-inputs
9388 `(("gettext" ,gettext-minimal)
9389 ("gobject-introspection" ,gobject-introspection)
9390 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9391 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9392 ("pkg-config" ,pkg-config)))
9393 (inputs
9394 `(("rest" ,rest) ; For Todoist plugin
9395 ("json-glib" ,json-glib) ; For Todoist plugin
9396 ("libedataserverui" ,evolution-data-server)
9397 ("libical" ,libical)
9398 ("libpeas" ,libpeas)
9399 ("python-pygobject" ,python-pygobject)
9400 ("evolution-data-server" ,evolution-data-server)
9401 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9402 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9403 (home-page "https://wiki.gnome.org/Apps/Todo")
9404 (synopsis "GNOME's ToDo Application")
9405 (description
9406 "GNOME To Do is a simplistic personal task manager designed to perfectly
9407 fit the GNOME desktop.")
9408 (license license:gpl3+)))
9409
9410 (define-public gnome-dictionary
9411 (package
9412 (name "gnome-dictionary")
9413 (version "3.26.1")
9414 (source (origin
9415 (method url-fetch)
9416 (uri (string-append "mirror://gnome/sources/" name "/"
9417 (version-major+minor version) "/"
9418 name "-" version ".tar.xz"))
9419 (sha256
9420 (base32
9421 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9422 (build-system meson-build-system)
9423 (arguments '(#:glib-or-gtk? #t
9424 #:phases (modify-phases %standard-phases
9425 (add-after 'unpack 'patch-install-script
9426 (lambda _
9427 ;; This script attempts to compile glib schemas
9428 ;; and create an empty MIME database. We do
9429 ;; that elsewhere, so prevent it from running.
9430 (substitute* "build-aux/post-install.sh"
9431 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9432 #t)))))
9433 (native-inputs
9434 `(("glib:bin" ,glib "bin")
9435 ("gobject-introspection" ,gobject-introspection)
9436 ("intltool" ,intltool)
9437 ("itstool" ,itstool)
9438 ("pkg-config" ,pkg-config)
9439 ("xmllint" ,libxml2)))
9440 (inputs
9441 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9442 ("gtk+" ,gtk+)))
9443 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9444 (synopsis "Look up words in dictionary sources")
9445 (description
9446 "GNOME Dictionary can look for the definition or translation of a word in
9447 existing databases over the internet.")
9448 (license license:gpl3+)))
9449
9450 (define-public gnome-tweaks
9451 (package
9452 (name "gnome-tweaks")
9453 (version "3.34.0")
9454 (source (origin
9455 (method url-fetch)
9456 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9457 (version-major+minor version) "/"
9458 "gnome-tweaks-" version ".tar.xz"))
9459 (patches
9460 (list (search-patch "gnome-tweaks-search-paths.patch")))
9461 (sha256
9462 (base32
9463 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
9464 (build-system meson-build-system)
9465 (arguments
9466 `(#:glib-or-gtk? #t
9467 #:configure-flags '("-Dlocalstatedir=/tmp"
9468 "-Dsysconfdir=/tmp")
9469 #:imported-modules ((guix build python-build-system)
9470 ,@%meson-build-system-modules)
9471 #:phases
9472 (modify-phases %standard-phases
9473 (add-after 'unpack 'skip-gtk-update-icon-cache
9474 ;; Don't create 'icon-theme.cache'.
9475 (lambda _
9476 (substitute* "meson-postinstall.py"
9477 (("gtk-update-icon-cache") "true"))
9478 #t))
9479 (add-after 'install 'wrap
9480 (@@ (guix build python-build-system) wrap))
9481 (add-after 'wrap 'wrap-gi-typelib
9482 (lambda* (#:key inputs outputs #:allow-other-keys)
9483 (let ((out (assoc-ref outputs "out"))
9484 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9485 (wrap-program (string-append out "/bin/gnome-tweaks")
9486 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9487 #t)))))
9488 (native-inputs
9489 `(("intltool" ,intltool)
9490 ("pkg-config" ,pkg-config)))
9491 (inputs
9492 `(("gnome-desktop" ,gnome-desktop)
9493 ("gtk+" ,gtk+)
9494 ("gobject-introspection" ,gobject-introspection)
9495 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9496 ("libhandy" ,libhandy-0.0)
9497 ("libnotify" ,libnotify)
9498 ("libsoup" ,libsoup)
9499 ("nautilus" ,nautilus)
9500 ("python" ,python)
9501 ("python-pygobject" ,python-pygobject)))
9502 (synopsis "Customize advanced GNOME 3 options")
9503 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9504 (description
9505 "GNOME Tweaks allows adjusting advanced configuration settings in
9506 GNOME 3. This includes things like the fonts used in user interface elements,
9507 alternative user interface themes, changes in window management behavior,
9508 GNOME Shell appearance and extension, etc.")
9509 (license license:gpl3+)))
9510
9511 (define-public gnome-shell-extensions
9512 (package
9513 (name "gnome-shell-extensions")
9514 (version "3.34.2")
9515 (source (origin
9516 (method url-fetch)
9517 (uri (string-append "mirror://gnome/sources/" name "/"
9518 (version-major+minor version) "/"
9519 name "-" version ".tar.xz"))
9520 (sha256
9521 (base32
9522 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9523 (build-system meson-build-system)
9524 (arguments
9525 '(#:configure-flags '("-Dextension_set=all")))
9526 (native-inputs
9527 `(("glib:bin" ,glib "bin")
9528 ("intltool" ,intltool)
9529 ("pkg-config" ,pkg-config)))
9530 (propagated-inputs
9531 `(("glib" ,glib)))
9532 (synopsis "Extensions for GNOME Shell")
9533 (description "GNOME Shell extensions modify and extend GNOME Shell
9534 functionality and behavior.")
9535 (home-page "https://extensions.gnome.org/")
9536 (license license:gpl3+)))
9537
9538 (define-public arc-theme
9539 (package
9540 (name "arc-theme")
9541 (version "20190917")
9542 (source (origin
9543 (method git-fetch)
9544 (uri (git-reference
9545 (url "https://github.com/NicoHood/arc-theme")
9546 (commit version)))
9547 (file-name (git-file-name name version))
9548 (sha256
9549 (base32
9550 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
9551 (build-system gnu-build-system)
9552 (arguments
9553 '(#:phases
9554 (modify-phases %standard-phases
9555 ;; autogen.sh calls configure at the end of the script.
9556 (replace 'bootstrap
9557 (lambda _ (invoke "autoreconf" "-vfi")))
9558 (add-before 'build 'set-home ;placate Inkscape
9559 (lambda _
9560 (setenv "HOME" (getcwd))
9561 #t)))))
9562 (native-inputs
9563 `(("autoconf" ,autoconf)
9564 ("automake" ,automake)
9565 ("glib" ,glib "bin") ; for glib-compile-resources
9566 ("gnome-shell" ,gnome-shell)
9567 ("gtk+" ,gtk+)
9568 ("inkscape" ,inkscape)
9569 ("optipng" ,optipng)
9570 ("pkg-config" ,pkg-config)
9571 ("sassc" ,sassc/libsass-3.5)))
9572 (synopsis "A flat GTK+ theme with transparent elements")
9573 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
9574 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
9575 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
9576 (home-page "https://github.com/horst3180/arc-theme")
9577 ;; No "or later" language found.
9578 (license license:gpl3+)))
9579
9580 (define-public faba-icon-theme
9581 (package
9582 (name "faba-icon-theme")
9583 (version "4.3")
9584 (source
9585 (origin
9586 (method git-fetch)
9587 (uri (git-reference
9588 (url "https://github.com/snwh/faba-icon-theme")
9589 (commit (string-append "v" version))))
9590 (file-name (git-file-name name version))
9591 (sha256
9592 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
9593 (build-system meson-build-system)
9594 (arguments
9595 `(#:phases
9596 (modify-phases %standard-phases
9597 (add-before 'configure 'disable-post-install
9598 (lambda _
9599 (substitute* "meson.build"
9600 (("meson.add_install_script.*") "")))))))
9601 (native-inputs
9602 `(("autoconf" ,autoconf)
9603 ("automake" ,automake)))
9604 (synopsis "Faba icon theme")
9605 (description
9606 "Faba is a minimal icon set used as a basis for other themes such as
9607 Moka")
9608 (home-page "https://snwh.org/moka")
9609 (license (list license:lgpl3+
9610 license:cc-by-sa4.0))))
9611
9612 (define-public moka-icon-theme
9613 (package
9614 (inherit faba-icon-theme)
9615 (name "moka-icon-theme")
9616 (version "5.4.0")
9617 (source
9618 (origin
9619 (method git-fetch)
9620 (uri (git-reference
9621 (url "https://github.com/snwh/moka-icon-theme")
9622 (commit (string-append "v" version))))
9623 (file-name (git-file-name name version))
9624 (sha256
9625 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
9626 (propagated-inputs
9627 ;; Moka is based on Faba by using it as a fallback icon set instead of
9628 ;; bundling it, so we need to add it as a propagated input.
9629 `(("faba-icon-theme" ,faba-icon-theme)))
9630 (synopsis "Moka icon theme")
9631 (description "Moka is a stylized desktop icon set, designed to be clear,
9632 simple and consistent.")
9633 (license (list license:gpl3+
9634 license:cc-by-sa4.0))))
9635
9636 (define-public arc-icon-theme
9637 (package
9638 (name "arc-icon-theme")
9639 (version "20161122")
9640 (source
9641 (origin
9642 (method git-fetch)
9643 (uri (git-reference
9644 (url "https://github.com/horst3180/arc-icon-theme")
9645 (commit version)))
9646 (file-name (git-file-name name version))
9647 (sha256
9648 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
9649 (build-system gnu-build-system)
9650 (arguments
9651 `(#:phases
9652 (modify-phases %standard-phases
9653 (add-after 'unpack 'disable-configure-during-bootstrap
9654 (lambda _
9655 (substitute* "autogen.sh"
9656 (("^\"\\$srcdir/configure\".*") ""))
9657 #t)))))
9658 (native-inputs
9659 `(("autoconf" ,autoconf)
9660 ("automake" ,automake)))
9661 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
9662 (propagated-inputs
9663 `(("moka-icon-theme" ,moka-icon-theme)))
9664 (synopsis "Arc icon theme")
9665 (description "The Arc icon theme provides a set of icons matching the
9666 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
9667 the Moka icon theme.")
9668 (home-page "https://github.com/horst3180/arc-icon-theme")
9669 (license license:gpl3+)))
9670
9671 (define-public folks
9672 (package
9673 (name "folks")
9674 (version "0.13.1")
9675 (source (origin
9676 (method url-fetch)
9677 (uri (string-append
9678 "mirror://gnome/sources/folks/"
9679 (version-major+minor version) "/"
9680 "folks-" version ".tar.xz"))
9681 (sha256
9682 (base32
9683 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9684 (build-system meson-build-system)
9685 (arguments
9686 '(#:phases
9687 (modify-phases %standard-phases
9688 (add-after 'unpack 'skip-gtk-update-icon-cache
9689 ;; Don't create 'icon-theme.cache'.
9690 (lambda _
9691 (substitute* "meson_post_install.py"
9692 (("gtk-update-icon-cache") "true"))
9693 #t)))))
9694 (inputs
9695 `(("bdb" ,bdb)
9696 ("dbus-glib" ,dbus-glib)
9697 ("evolution-data-server" ,evolution-data-server)
9698 ("glib" ,glib)
9699 ("libgee" ,libgee)
9700 ("readline" ,readline)
9701 ("telepathy-glib" ,telepathy-glib)))
9702 (native-inputs
9703 `(("glib:bin" ,glib "bin")
9704 ("gobject-introspection" ,gobject-introspection)
9705 ("intltool" ,intltool)
9706 ("pkg-config" ,pkg-config)
9707 ("vala" ,vala)))
9708 (synopsis "Library to aggregate data about people")
9709 (description "Libfolks is a library that aggregates information about people
9710 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9711 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9712 etc.) to create metacontacts. It's written in Vala, which generates C code when
9713 compiled.")
9714 (home-page "https://wiki.gnome.org/Projects/Folks")
9715 (license license:lgpl2.1+)))
9716
9717 (define-public gfbgraph
9718 (package
9719 (name "gfbgraph")
9720 (version "0.2.4")
9721 (source (origin
9722 (method url-fetch)
9723 (uri (string-append
9724 "mirror://gnome/sources/gfbgraph/"
9725 (version-major+minor version) "/"
9726 "gfbgraph-" version ".tar.xz"))
9727 (sha256
9728 (base32
9729 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9730 (build-system glib-or-gtk-build-system)
9731 (arguments
9732 `(#:tests? #f ; tests appear to require the network
9733 #:configure-flags '("--disable-static"
9734 "--enable-gtk-doc"
9735 "--enable-introspection")))
9736 (native-inputs
9737 `(("gobject-introspection" ,gobject-introspection)
9738 ("gtk-doc" ,gtk-doc)
9739 ("pkg-config" ,pkg-config)
9740
9741 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9742 ("autoconf" ,autoconf)
9743 ("automake" ,automake)
9744 ("libtool" ,libtool)
9745 ("which" ,which)))
9746 (inputs
9747 `(("json-glib" ,json-glib)
9748 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9749 ("rest" ,rest)))
9750 (synopsis "GLib/GObject wrapper for the Facebook API")
9751 (description "This library allows you to use the Facebook API from
9752 GLib/GObject code.")
9753 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9754 (license license:lgpl2.1+)))
9755
9756 (define-public libgnomekbd
9757 (package
9758 (name "libgnomekbd")
9759 (version "3.26.1")
9760 (source (origin
9761 (method url-fetch)
9762 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9763 (version-major+minor version) "/"
9764 "libgnomekbd-" version ".tar.xz"))
9765 (sha256
9766 (base32
9767 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9768 (build-system gnu-build-system)
9769 (native-inputs
9770 `(("pkg-config" ,pkg-config)
9771 ("glib" ,glib "bin")
9772 ("intltool" ,intltool)))
9773 (propagated-inputs
9774 ;; Referred to in .h files and .pc.
9775 `(("glib" ,glib)
9776 ("gtk+" ,gtk+)
9777 ("libxklavier" ,libxklavier)))
9778 (home-page "https://www.gnome.org")
9779 (synopsis "GNOME keyboard configuration library")
9780 (description
9781 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9782 environment, which can notably display keyboard layouts.")
9783 (license license:lgpl2.0+)))
9784
9785 ;;; This package is no longer maintained:
9786 ;;; https://wiki.gnome.org/Attic/LibUnique
9787 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9788 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9789 (define-public libunique
9790 (package
9791 (name "libunique")
9792 (version "3.0.2")
9793 (source (origin
9794 (method url-fetch)
9795 (uri (string-append "mirror://gnome/sources/" name "/"
9796 (version-major+minor version) "/"
9797 name "-" version ".tar.xz"))
9798 (sha256
9799 (base32
9800 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9801 (build-system glib-or-gtk-build-system)
9802 (arguments
9803 `(#:configure-flags '("--disable-static"
9804 "--disable-dbus" ; use gdbus
9805 "--enable-introspection")))
9806 (native-inputs
9807 `(("pkg-config" ,pkg-config)
9808 ("gobject-introspection" ,gobject-introspection)
9809 ("glib:bin" ,glib "bin")
9810 ("gtk-doc" ,gtk-doc)))
9811 (propagated-inputs
9812 ;; Referred to in .h files and .pc.
9813 `(("gtk+" ,gtk+)))
9814 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9815 (synopsis "Library for writing single instance applications")
9816 (description
9817 "Libunique is a library for writing single instance applications. If you
9818 launch a single instance application twice, the second instance will either just
9819 quit or will send a message to the running instance. Libunique makes it easy to
9820 write this kind of application, by providing a base class, taking care of all
9821 the IPC machinery needed to send messages to a running instance, and also
9822 handling the startup notification side.")
9823 (license license:lgpl2.1+)))
9824
9825 (define-public gnome-calculator
9826 (package
9827 (name "gnome-calculator")
9828 (version "3.34.1")
9829 (source
9830 (origin
9831 (method url-fetch)
9832 (uri (string-append "mirror://gnome/sources/" name "/"
9833 (version-major+minor version) "/"
9834 name "-" version ".tar.xz"))
9835 (sha256
9836 (base32
9837 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9838 (build-system meson-build-system)
9839 (arguments '(#:glib-or-gtk? #t))
9840 (native-inputs
9841 `(("gettext" ,gettext-minimal)
9842 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9843 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9844 ("itstool" ,itstool)
9845 ("vala" ,vala)
9846 ("pkg-config" ,pkg-config)))
9847 (inputs
9848 `(("glib" ,glib)
9849 ("gtksourceview" ,gtksourceview)
9850 ("libgee" ,libgee)
9851 ("libsoup" ,libsoup)
9852 ("libxml2" ,libxml2)
9853 ("mpc" ,mpc)
9854 ("mpfr" ,mpfr)))
9855 (home-page "https://wiki.gnome.org/Apps/Calculator")
9856 (synopsis "Desktop calculator")
9857 (description
9858 "Calculator is an application that solves mathematical equations and
9859 is suitable as a default application in a Desktop environment.")
9860 (license license:gpl3)))
9861
9862 (define-public xpad
9863 (package
9864 (name "xpad")
9865 (version "5.1.0")
9866 (source
9867 (origin
9868 (method url-fetch)
9869 (uri (string-append "https://launchpad.net/xpad/trunk/"
9870 version "/+download/"
9871 name "-" version ".tar.bz2"))
9872 (sha256
9873 (base32
9874 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9875 (build-system gnu-build-system)
9876 (native-inputs
9877 `(("autoconf" ,autoconf)
9878 ("automake" ,automake)
9879 ("gtk+:bin" ,gtk+ "bin")
9880 ("intltool" ,intltool)
9881 ("pkg-config" ,pkg-config)))
9882 (inputs
9883 `(("gtksourceview" ,gtksourceview-3)
9884 ("libsm" ,libsm)))
9885 (home-page "https://wiki.gnome.org/Apps/Xpad")
9886 (synopsis "Virtual sticky note")
9887 (description
9888 "Xpad is a sticky note that strives to be simple, fault tolerant,
9889 and customizable. Xpad consists of independent pad windows, each is
9890 basically a text box in which notes can be written.")
9891 (license license:gpl3+)))
9892
9893 (define-public gucharmap
9894 (let ((unicode-files
9895 '(("Blocks.txt"
9896 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9897 ("DerivedAge.txt"
9898 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9899 ("NamesList.txt"
9900 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9901 ("Scripts.txt"
9902 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9903 ("UnicodeData.txt"
9904 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9905 ("Unihan.zip"
9906 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9907 (package
9908 (name "gucharmap")
9909 (version "12.0.1")
9910 (source
9911 (origin
9912 (method url-fetch)
9913 (uri (string-append "mirror://gnome/sources/" name "/"
9914 (version-major+minor version) "/"
9915 name "-" version ".tar.xz"))
9916 (sha256
9917 (base32
9918 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9919 (build-system glib-or-gtk-build-system)
9920 (arguments
9921 `(#:modules ((ice-9 match)
9922 (guix build glib-or-gtk-build-system)
9923 (guix build utils))
9924 #:configure-flags
9925 (list "--with-unicode-data=../unicode-data")
9926 #:phases
9927 (modify-phases %standard-phases
9928 (add-after 'unpack 'prepare-unicode-data
9929 (lambda* (#:key inputs #:allow-other-keys)
9930 (mkdir-p "../unicode-data")
9931 (with-directory-excursion "../unicode-data"
9932 (for-each (match-lambda
9933 ((file _)
9934 (install-file (assoc-ref inputs file) ".")))
9935 ',unicode-files))
9936 #t)))))
9937 (native-inputs
9938 `(("desktop-file-utils" ,desktop-file-utils)
9939 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9940 ("gobject-introspection" ,gobject-introspection)
9941 ("intltool" ,intltool)
9942 ("itstool" ,itstool)
9943 ("pkg-config" ,pkg-config)
9944 ,@(map (match-lambda
9945 ((file hash)
9946 `(,file
9947 ,(origin
9948 (method url-fetch)
9949 (uri (string-append
9950 "http://www.unicode.org/Public/12.0.0/ucd/"
9951 file))
9952 (sha256 (base32 hash))))))
9953 unicode-files)
9954 ("unzip" ,unzip)))
9955 (inputs
9956 `(("gtk+" ,gtk+)
9957 ("xmllint" ,libxml2)))
9958 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9959 (synopsis "Unicode character picker and font browser")
9960 (description
9961 "This program allows you to browse through all the available Unicode
9962 characters and categories for the installed fonts, and to examine their
9963 detailed properties. It is an easy way to find the character you might
9964 only know by its Unicode name or code point.")
9965 (license license:gpl3+))))
9966
9967 (define-public bluefish
9968 (package
9969 (name "bluefish")
9970 (version "2.2.11")
9971 (source
9972 (origin
9973 (method url-fetch)
9974 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
9975 "bluefish-" version ".tar.gz"))
9976 (sha256
9977 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
9978 (build-system gnu-build-system)
9979 (native-inputs
9980 `(("desktop-file-utils" ,desktop-file-utils)
9981 ("intltool" ,intltool)
9982 ("pkg-config" ,pkg-config)))
9983 (inputs
9984 `(("enchant" ,enchant)
9985 ("gtk+" ,gtk+)
9986 ("python" ,python-wrapper)
9987 ("xmllint" ,libxml2)
9988 ("gucharmap" ,gucharmap)))
9989 (home-page "http://bluefish.openoffice.nl")
9990 (synopsis "Web development studio")
9991 (description
9992 "Bluefish is an editor targeted towards programmers and web developers,
9993 with many options to write web sites, scripts and other code.
9994 Bluefish supports many programming and markup languages.")
9995 (license license:gpl3+)))
9996
9997 (define-public gnome-system-monitor
9998 (package
9999 (name "gnome-system-monitor")
10000 (version "3.32.1")
10001 (source
10002 (origin
10003 (method url-fetch)
10004 (uri (string-append "mirror://gnome/sources/" name "/"
10005 (version-major+minor version) "/"
10006 name "-" version ".tar.xz"))
10007 (sha256
10008 (base32
10009 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
10010 (build-system meson-build-system)
10011 (arguments
10012 '(#:glib-or-gtk? #t
10013 #:configure-flags '("-Dsystemd=false")))
10014 (native-inputs
10015 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
10016 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
10017 ("intltool" ,intltool)
10018 ("itstool" ,itstool)
10019 ("libgtop" ,libgtop)
10020 ("polkit" ,polkit)
10021 ("pkg-config" ,pkg-config)))
10022 (inputs
10023 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
10024 ("gtk+" ,gtk+)
10025 ("gtkmm" ,gtkmm)
10026 ("librsvg" ,librsvg)
10027 ("libxml2" ,libxml2)
10028 ("libwnck" ,libwnck)))
10029 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10030 (synopsis "Process viewer and system resource monitor for GNOME")
10031 (description
10032 "GNOME System Monitor is a GNOME process viewer and system monitor with
10033 an attractive, easy-to-use interface. It has features, such as a tree view
10034 for process dependencies, icons for processes, the ability to hide processes,
10035 graphical time histories of CPU/memory/swap usage and the ability to
10036 kill/reinice processes.")
10037 (license license:gpl2+)))
10038
10039 (define-public python-pyatspi
10040 (package
10041 (name "python-pyatspi")
10042 (version "2.34.0")
10043 (source (origin
10044 (method url-fetch)
10045 (uri (string-append
10046 "mirror://gnome/sources/pyatspi/"
10047 (version-major+minor version)
10048 "/pyatspi-" version ".tar.xz"))
10049 (sha256
10050 (base32
10051 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10052 (build-system gnu-build-system)
10053 (arguments
10054 `(#:phases
10055 (modify-phases %standard-phases
10056 (add-before 'build 'fix-atk-load
10057 (lambda _
10058 (substitute* "pyatspi/__init__.py"
10059 (("from gi.repository import Atspi")
10060 "gi.require_version('Gtk', '3.0')
10061 from gi.repository import Gtk
10062 from gi.repository import Atspi"))
10063 #t)))))
10064 (native-inputs
10065 `(("pkg-config" ,pkg-config)))
10066 (inputs
10067 `(("python" ,python)))
10068 (propagated-inputs
10069 `(("python-pygobject" ,python-pygobject)))
10070 (synopsis "Python client bindings for D-Bus AT-SPI")
10071 (home-page "https://wiki.linuxfoundation.org/accessibility\
10072 /atk/at-spi/at-spi_on_d-bus")
10073 (description
10074 "This package includes a python client library for the AT-SPI D-Bus
10075 accessibility infrastructure.")
10076 (license license:lgpl2.0)
10077 (properties '((upstream-name . "pyatspi")))))
10078
10079 (define-public python2-pyatspi
10080 (package
10081 (inherit python-pyatspi)
10082 (name "python2-pyatspi")
10083 (inputs
10084 `(("python" ,python-2)))
10085 (propagated-inputs
10086 `(("python-pygobject" ,python2-pygobject)))))
10087
10088 (define-public orca
10089 (package
10090 (name "orca")
10091 (version "3.34.1")
10092 (source (origin
10093 (method url-fetch)
10094 (uri (string-append
10095 "mirror://gnome/sources/" name "/"
10096 (version-major+minor version) "/"
10097 name "-" version ".tar.xz"))
10098 (sha256
10099 (base32
10100 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
10101 (build-system glib-or-gtk-build-system)
10102 (arguments
10103 '(#:phases
10104 (modify-phases %standard-phases
10105 (add-before 'configure 'qualify-xkbcomp
10106 (lambda* (#:key inputs #:allow-other-keys)
10107 (let ((xkbcomp (string-append
10108 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10109 (substitute* "src/orca/orca.py"
10110 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
10111 #t))
10112 (add-after 'install 'wrap-orca
10113 (lambda* (#:key outputs #:allow-other-keys)
10114 (let* ((out (assoc-ref outputs "out"))
10115 (prog (string-append out "/bin/orca")))
10116 (wrap-program prog
10117 `("GI_TYPELIB_PATH" ":" prefix
10118 (,(getenv "GI_TYPELIB_PATH")))
10119 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10120 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10121 `("PYTHONPATH" ":" prefix
10122 (,(getenv "PYTHONPATH")))))
10123 #t)))))
10124 (native-inputs
10125 `(("intltool" ,intltool)
10126 ("itstool" ,itstool)
10127 ("pkg-config" ,pkg-config)
10128 ("xmllint" ,libxml2)))
10129 (inputs
10130 `(("at-spi2-atk" ,at-spi2-atk)
10131 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10132 ("gstreamer" ,gstreamer)
10133 ("gst-plugins-base" ,gst-plugins-base)
10134 ("gst-plugins-good" ,gst-plugins-good)
10135 ("gtk+" ,gtk+)
10136 ("python" ,python)
10137 ("python-pygobject" ,python-pygobject)
10138 ("python-pyatspi" ,python-pyatspi)
10139 ("python-speechd" ,speech-dispatcher)
10140 ("xkbcomp" ,xkbcomp)))
10141 (synopsis
10142 "Screen reader for individuals who are blind or visually impaired")
10143 (home-page "https://wiki.gnome.org/Projects/Orca")
10144 (description
10145 "Orca is a screen reader that provides access to the graphical desktop
10146 via speech and refreshable braille. Orca works with applications and toolkits
10147 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10148 (license license:lgpl2.1+)))
10149
10150 (define-public gspell
10151 (package
10152 (name "gspell")
10153 (version "1.8.2")
10154 (source (origin
10155 (method url-fetch)
10156 (uri (string-append "mirror://gnome/sources/" name "/"
10157 (version-major+minor version) "/"
10158 name "-" version ".tar.xz"))
10159 (sha256
10160 (base32
10161 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10162 (patches (search-patches "gspell-dash-test.patch"))))
10163 (build-system glib-or-gtk-build-system)
10164 (arguments
10165 '(#:configure-flags (list "--enable-vala")
10166 #:phases
10167 (modify-phases %standard-phases
10168 (add-before 'check 'pre-check
10169 (lambda* (#:key inputs #:allow-other-keys)
10170 ;; Tests require a running X server.
10171 (system "Xvfb :1 &")
10172 (setenv "DISPLAY" ":1")
10173
10174 ;; For the missing /etc/machine-id.
10175 (setenv "DBUS_FATAL_WARNINGS" "0")
10176
10177 ;; Allow Enchant and its Aspell backend to find the en_US
10178 ;; dictionary.
10179 (setenv "ASPELL_DICT_DIR"
10180 (string-append (assoc-ref inputs "aspell-dict-en")
10181 "/lib/aspell"))
10182 #t)))))
10183 (inputs
10184 `(("gtk+" ,gtk+)
10185 ("glib" ,glib)
10186 ("iso-codes" ,iso-codes)))
10187 (native-inputs
10188 `(("glib" ,glib "bin")
10189 ("gobject-introspection" ,gobject-introspection)
10190 ("pkg-config" ,pkg-config)
10191 ("vala" ,vala) ;for VAPI, needed by Geary
10192 ("xmllint" ,libxml2)
10193
10194 ;; For tests.
10195 ("aspell-dict-en" ,aspell-dict-en)
10196 ("xorg-server" ,xorg-server-for-tests)))
10197 (propagated-inputs
10198 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
10199 (home-page "https://wiki.gnome.org/Projects/gspell")
10200 (synopsis "GNOME's alternative spell checker")
10201 (description
10202 "gspell provides a flexible API to add spell-checking to a GTK+
10203 application. It provides a GObject API, spell-checking to text entries and
10204 text views, and buttons to choose the language.")
10205 (license license:gpl2+)))
10206
10207 (define-public gnome-planner
10208 (package
10209 (name "gnome-planner")
10210 (version "0.14.6")
10211 (source (origin
10212 (method url-fetch)
10213 (uri (string-append "mirror://gnome/sources/planner/"
10214 (version-major+minor version) "/planner-"
10215 version ".tar.xz"))
10216 (sha256
10217 (base32
10218 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10219 (build-system glib-or-gtk-build-system)
10220 (arguments
10221 ;; Disable the Python bindings because the Planner program functions
10222 ;; without them, and (as of 2017-06-13) we have not packaged all of
10223 ;; packages that are necessary for building the Python bindings.
10224 `(#:configure-flags
10225 (list "--disable-python"
10226 ,@(if (string=? "aarch64-linux" (%current-system))
10227 '("--build=aarch64-unknown-linux-gnu")
10228 '()))))
10229 (inputs
10230 `(("libgnomecanvas" ,libgnomecanvas)
10231 ("libgnomeui" ,libgnomeui)
10232 ("libglade" ,libglade)
10233 ("gnome-vfs" ,gnome-vfs)
10234 ("gconf" ,gconf)
10235 ("libxml2" ,libxml2)
10236 ("libxslt" ,libxslt)
10237 ("gtk+" ,gtk+)
10238 ("glib" ,glib)))
10239 (native-inputs
10240 `(("intltool" ,intltool)
10241 ("scrollkeeper" ,scrollkeeper)
10242 ("pkg-config" ,pkg-config)))
10243 (home-page "https://wiki.gnome.org/Apps/Planner")
10244 (synopsis "Project management software for the GNOME desktop")
10245 (description
10246 "GNOME Planner is a project management tool based on the Work Breakdown
10247 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10248 the resources, tasks, and constraints that you define, Planner generates
10249 various views into a project. For example, Planner can show a Gantt chart of
10250 the project. It can show a detailed summary of tasks including their
10251 duration, cost, and current progress. It can also show a report of resource
10252 utilization that highlights under-utilized and over-utilized resources. These
10253 views can be printed as PDF or PostScript files, or exported to HTML.")
10254 (license license:gpl2+)))
10255
10256 (define-public lollypop
10257 (package
10258 (name "lollypop")
10259 (version "1.4.2")
10260 (source
10261 (origin
10262 (method url-fetch)
10263 (uri (string-append "https://adishatz.org/lollypop/"
10264 "lollypop-" version ".tar.xz"))
10265 (sha256
10266 (base32 "1hfl68gkvqy5kxlmrsalz78mw1bs1yvqvy2rhg7pzgwiazsdvwzz"))))
10267 (build-system meson-build-system)
10268 (arguments
10269 `(#:imported-modules
10270 (,@%meson-build-system-modules
10271 (guix build python-build-system))
10272 #:modules
10273 ((guix build meson-build-system)
10274 ((guix build python-build-system) #:prefix python:)
10275 (guix build utils))
10276 #:glib-or-gtk? #t
10277 #:tests? #f ; no test suite
10278 #:phases
10279 (modify-phases %standard-phases
10280 (add-after 'install 'wrap-program
10281 (lambda* (#:key outputs #:allow-other-keys)
10282 (let ((out (assoc-ref outputs "out"))
10283 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10284 (wrap-program (string-append out "/bin/lollypop")
10285 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10286 #t))
10287 (add-after 'install 'wrap-python
10288 (assoc-ref python:%standard-phases 'wrap)))))
10289 (native-inputs
10290 `(("intltool" ,intltool)
10291 ("itstool" ,itstool)
10292 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10293 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10294 ("pkg-config" ,pkg-config)))
10295 (inputs
10296 `(("gobject-introspection" ,gobject-introspection)
10297 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10298 ("gst-plugins-base" ,gst-plugins-base)
10299 ("libnotify" ,libnotify)
10300 ("libsecret" ,libsecret)
10301 ("libhandy" ,libhandy)
10302 ("libsoup" ,libsoup)
10303 ("python" ,python)
10304 ("python-beautifulsoup4" ,python-beautifulsoup4)
10305 ("python-gst" ,python-gst)
10306 ("python-pil" ,python-pillow)
10307 ("python-pycairo" ,python-pycairo)
10308 ("python-pygobject" ,python-pygobject)
10309 ("python-pylast" ,python-pylast)
10310 ("totem-pl-parser" ,totem-pl-parser)
10311 ("webkitgtk" ,webkitgtk)))
10312 (propagated-inputs
10313 `(;; gst-plugins-base is required to start Lollypop,
10314 ;; the others are required to play streaming.
10315 ("gst-plugins-good" ,gst-plugins-good)
10316 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10317 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10318 (synopsis "GNOME music playing application")
10319 (description
10320 "Lollypop is a music player designed to play well with GNOME desktop.
10321 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10322 from artists and tracks from the web. It also fetches cover artworks
10323 automatically and it can stream songs from online music services and charts.")
10324 (license license:gpl3+)))
10325
10326 (define-public gnome-video-effects
10327 (package
10328 (name "gnome-video-effects")
10329 (version "0.5.0")
10330 (source (origin
10331 (method url-fetch)
10332 (uri (string-append "mirror://gnome/sources/" name "/"
10333 (version-major+minor version) "/" name "-"
10334 version ".tar.xz"))
10335 (sha256
10336 (base32
10337 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10338 (build-system meson-build-system)
10339 (native-inputs
10340 `(("gettext" ,gettext-minimal)
10341 ("pkg-config" ,pkg-config)))
10342 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10343 (synopsis "Video effects for Cheese and other GNOME applications")
10344 (description
10345 "A collection of GStreamer video filters and effects to be used in
10346 photo-booth-like software, such as Cheese.")
10347 (license license:gpl2+)))
10348
10349 (define-public cheese
10350 (package
10351 (name "cheese")
10352 (version "3.38.0")
10353 (source (origin
10354 (method url-fetch)
10355 (uri (string-append "mirror://gnome/sources/" name "/"
10356 (version-major+minor version) "/" name "-"
10357 version ".tar.xz"))
10358 (sha256
10359 (base32
10360 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10361 (arguments
10362 `(#:glib-or-gtk? #t
10363 ;; Tests require GDK.
10364 #:tests? #f
10365 #:phases
10366 (modify-phases %standard-phases
10367 (add-after 'unpack 'skip-gtk-update-icon-cache
10368 (lambda _
10369 ;; Don't create 'icon-theme.cache'
10370 (substitute* "meson_post_install.py"
10371 (("gtk-update-icon-cache") (which "true")))
10372 #t))
10373 (add-after 'unpack 'patch-docbook-xml
10374 (lambda* (#:key inputs #:allow-other-keys)
10375 ;; Avoid a network connection attempt during the build.
10376 (substitute* '("docs/reference/cheese.xml"
10377 "docs/reference/cheese-docs.xml")
10378 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10379 (string-append (assoc-ref inputs "docbook-xml")
10380 "/xml/dtd/docbook/docbookx.dtd")))
10381 #t))
10382 (add-after 'install 'wrap-cheese
10383 (lambda* (#:key inputs outputs #:allow-other-keys)
10384 (let ((out (assoc-ref outputs "out"))
10385 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10386 (wrap-program (string-append out "/bin/cheese")
10387 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10388 #t)))))
10389 (build-system meson-build-system)
10390 (native-inputs
10391 `(("docbook-xsl" ,docbook-xsl)
10392 ("docbook-xml" ,docbook-xml-4.3)
10393 ("glib:bin" ,glib "bin")
10394 ("gtk-doc" ,gtk-doc)
10395 ("intltool" ,intltool)
10396 ("itstool" ,itstool)
10397 ("libxml2" ,libxml2)
10398 ("libxslt" ,libxslt)
10399 ("pkg-config" ,pkg-config)
10400 ("vala" ,vala)))
10401 (propagated-inputs
10402 `(("gnome-video-effects" ,gnome-video-effects)
10403 ("clutter" ,clutter)
10404 ("clutter-gst" ,clutter-gst)
10405 ("clutter-gtk" ,clutter-gtk)
10406 ("libcanberra" ,libcanberra)
10407 ("gdk-pixbuf" ,gdk-pixbuf)
10408 ("glib" ,glib)
10409 ("gstreamer" ,gstreamer)))
10410 (inputs
10411 `(("gnome-desktop" ,gnome-desktop)
10412 ("gobject-introspection" ,gobject-introspection)
10413 ("gst-plugins-base" ,gst-plugins-base)
10414 ("gst-plugins-bad" ,gst-plugins-bad)
10415 ("gtk+" ,gtk+)
10416 ("libx11" ,libx11)
10417 ("libxtst" ,libxtst)))
10418 (home-page "https://wiki.gnome.org/Apps/Cheese")
10419 (synopsis "Webcam photo booth software for GNOME")
10420 (description
10421 "Cheese uses your webcam to take photos and videos. Cheese can also
10422 apply fancy special effects and lets you share the fun with others.")
10423 (license license:gpl2+)))
10424
10425 (define-public passwordsafe
10426 (package
10427 (name "passwordsafe")
10428 (version "3.99.2")
10429 (source
10430 (origin
10431 (method git-fetch)
10432 (uri (git-reference
10433 (url "https://gitlab.gnome.org/World/PasswordSafe")
10434 (commit version)))
10435 (file-name (git-file-name name version))
10436 (sha256
10437 (base32 "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf"))))
10438 (build-system meson-build-system)
10439 (arguments
10440 `(#:glib-or-gtk? #t
10441 #:phases
10442 (modify-phases %standard-phases
10443 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10444 (lambda* (#:key outputs #:allow-other-keys)
10445 (let ((prog (string-append (assoc-ref outputs "out")
10446 "/bin/gnome-passwordsafe"))
10447 (pylib (string-append (assoc-ref outputs "out")
10448 "/lib/python"
10449 ,(version-major+minor
10450 (package-version python))
10451 "/site-packages")))
10452 (wrap-program prog
10453 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10454 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10455 #t))))))
10456 (native-inputs
10457 `(("desktop-file-utils" ,desktop-file-utils)
10458 ("gettext" ,gettext-minimal)
10459 ("glib:bin" ,glib "bin")
10460 ("gobject-introspection" ,gobject-introspection)
10461 ("gtk+:bin" ,gtk+ "bin")
10462 ("pkg-config" ,pkg-config)))
10463 (inputs
10464 `(("glib" ,glib)
10465 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10466 ("gtk+" ,gtk+)
10467 ("libhandy" ,libhandy-0.0)
10468 ("libpwquality" ,libpwquality)
10469 ("python-pygobject" ,python-pygobject)
10470 ("python-pykeepass" ,python-pykeepass)))
10471 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
10472 (synopsis "Password manager for the GNOME desktop")
10473 (description
10474 "Password Safe is a password manager which makes use of the KeePass v4
10475 format. It integrates perfectly with the GNOME desktop and provides an easy
10476 and uncluttered interface for the management of password databases.")
10477 (license license:gpl3+)))
10478
10479 (define-public sound-juicer
10480 (package
10481 (name "sound-juicer")
10482 (version "3.24.0")
10483 (source
10484 (origin
10485 (method url-fetch)
10486 (uri (string-append "mirror://gnome/sources/" name "/"
10487 (version-major+minor version) "/"
10488 name "-" version ".tar.xz"))
10489 (sha256
10490 (base32
10491 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10492 (build-system glib-or-gtk-build-system)
10493 (native-inputs
10494 `(("desktop-file-utils" ,desktop-file-utils)
10495 ("intltool" ,intltool)
10496 ("itstool" ,itstool)
10497 ("pkg-config" ,pkg-config)
10498 ("xmllint" ,libxml2)))
10499 (inputs
10500 `(("gtk+" ,gtk+)
10501 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10502 ("gstreamer" ,gstreamer)
10503 ("gst-plugins-base" ,gst-plugins-base)
10504 ("gst-plugins-good" ,gst-plugins-good)
10505 ("iso-codes" ,iso-codes)
10506 ("libbrasero-media3" ,brasero)
10507 ("libcanberra" ,libcanberra)
10508 ("libdiscid" ,libdiscid)
10509 ("libmusicbrainz" ,libmusicbrainz)
10510 ("neon" ,neon)))
10511 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10512 (synopsis "Audio music cd ripper")
10513 (description "Sound Juicer extracts audio from compact discs and convert it
10514 into audio files that a personal computer or digital audio player can play.
10515 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10516 mp3, Ogg Vorbis and FLAC")
10517 (license license:gpl2+)))
10518
10519 (define-public soundconverter
10520 (package
10521 (name "soundconverter")
10522 (version "3.0.2")
10523 (source
10524 (origin
10525 (method url-fetch)
10526 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10527 version "/+download/"
10528 "soundconverter-" version ".tar.xz"))
10529
10530 (sha256
10531 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10532 (build-system glib-or-gtk-build-system)
10533 (arguments
10534 `(#:imported-modules ((guix build python-build-system)
10535 (guix build glib-or-gtk-build-system)
10536 ,@%gnu-build-system-modules)
10537
10538 #:modules ((guix build glib-or-gtk-build-system)
10539 (guix build utils)
10540 ((guix build gnu-build-system) #:prefix gnu:)
10541 ((guix build python-build-system) #:prefix python:))
10542
10543 #:phases
10544 (modify-phases %standard-phases
10545 (add-after 'install 'wrap-soundconverter-for-python
10546 (assoc-ref python:%standard-phases 'wrap))
10547 (add-after 'install 'wrap-soundconverter
10548 (lambda* (#:key inputs outputs #:allow-other-keys)
10549 (let ((out (assoc-ref outputs "out"))
10550 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10551 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10552 (wrap-program (string-append out "/bin/soundconverter")
10553 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10554 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10555 #t)))))
10556 (native-inputs
10557 `(("intltool" ,intltool)
10558 ("pkg-config" ,pkg-config)
10559 ("glib:bin" ,glib "bin")))
10560 (inputs
10561 `(("gtk+" ,gtk+)
10562 ("python" ,python)
10563 ("python-pygobject" ,python-pygobject)
10564 ("gstreamer" ,gstreamer)
10565 ("gst-plugins-base" ,gst-plugins-base)))
10566 (home-page "https://soundconverter.org/")
10567 (synopsis "Convert between audio formats with a graphical interface")
10568 (description
10569 "SoundConverter supports converting between many audio formats including
10570 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10571 configurable file renaming. ")
10572 (license license:gpl3)))
10573
10574 (define-public workrave
10575 (package
10576 (name "workrave")
10577 (version "1.10.42")
10578 (source
10579 (origin
10580 (method git-fetch)
10581 (uri (git-reference
10582 (url "https://github.com/rcaelers/workrave")
10583 (commit (string-append "v" (string-map
10584 (match-lambda (#\. #\_) (chr chr))
10585 version)))))
10586 (file-name (git-file-name name version))
10587 (sha256
10588 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
10589 (build-system glib-or-gtk-build-system)
10590 (arguments
10591 ;; The only tests are maintainer tests (in po/), which fail.
10592 `(#:tests? #f))
10593 (inputs `(("glib" ,glib)
10594 ("gtk+" ,gtk+)
10595 ("gdk-pixbuf" ,gdk-pixbuf)
10596 ("gtkmm" ,gtkmm)
10597 ("glibmm" ,glibmm)
10598 ("libx11" ,libx11)
10599 ("libxtst" ,libxtst)
10600 ("dconf" ,dconf)
10601 ("libice" ,libice)
10602 ("libsm" ,libsm)
10603 ("libxscrnsaver" ,libxscrnsaver)))
10604 (native-inputs `(("boost" ,boost)
10605 ("pkg-config" ,pkg-config)
10606 ("gettext" ,gettext-minimal)
10607 ("autoconf" ,autoconf)
10608 ("autoconf-archive" , autoconf-archive)
10609 ("automake" ,automake)
10610 ("libtool" ,libtool)
10611 ("intltool" ,intltool)
10612 ("gobject-introspection" ,gobject-introspection)
10613 ("python3" ,python-3)
10614 ("python-jinja2" ,python-jinja2)))
10615 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10616 (description
10617 "Workrave is a program that assists in the recovery and prevention of
10618 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10619 micro-pauses and rest breaks, and restricts you to your daily limit.")
10620 (home-page "http://www.workrave.org")
10621 (license license:gpl3+)))
10622
10623 (define-public ghex
10624 (package
10625 (name "ghex")
10626 (version "3.18.4")
10627 (source (origin
10628 (method url-fetch)
10629 (uri (string-append "mirror://gnome/sources/ghex/"
10630 (version-major+minor version) "/"
10631 "ghex-" version ".tar.xz"))
10632 (sha256
10633 (base32
10634 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10635 (build-system meson-build-system)
10636 (arguments
10637 '(#:glib-or-gtk? #t
10638 #:phases
10639 (modify-phases %standard-phases
10640 (add-after 'unpack 'skip-gtk-update-icon-cache
10641 ;; Don't create 'icon-theme.cache'.
10642 (lambda _
10643 (substitute* "meson_post_install.py"
10644 (("gtk-update-icon-cache") (which "true")))
10645 #t)))))
10646 (native-inputs
10647 `(("pkg-config" ,pkg-config)
10648 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10649 ("gnome-common" ,gnome-common)
10650 ("which" ,which)
10651 ("intltool" ,intltool)
10652 ("yelp-tools" ,yelp-tools)
10653 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10654 (inputs
10655 `(("atk" ,atk)
10656 ("gtk" ,gtk+)))
10657 (synopsis "GNOME hexadecimal editor")
10658 (description "The GHex program can view and edit files in two ways:
10659 hexadecimal or ASCII. It is useful for editing binary files in general.")
10660 (home-page "https://wiki.gnome.org/Apps/Ghex")
10661 (license license:gpl2)))
10662
10663 (define-public libdazzle
10664 (package
10665 (name "libdazzle")
10666 (version "3.37.1")
10667 (source (origin
10668 (method url-fetch)
10669 (uri (string-append "mirror://gnome/sources/libdazzle/"
10670 (version-major+minor version) "/"
10671 "libdazzle-" version ".tar.xz"))
10672 (sha256
10673 (base32
10674 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10675 (build-system meson-build-system)
10676 (arguments
10677 `(#:phases
10678 (modify-phases %standard-phases
10679 (add-before 'check 'pre-check
10680 (lambda _
10681 ;; Tests require a running X server.
10682 (system "Xvfb :1 &")
10683 (setenv "DISPLAY" ":1")
10684 #t)))))
10685 (native-inputs
10686 `(("glib" ,glib "bin") ; glib-compile-resources
10687 ("pkg-config" ,pkg-config)
10688 ;; For tests.
10689 ("xorg-server" ,xorg-server-for-tests)))
10690 (inputs
10691 `(("glib" ,glib)
10692 ("gobject-introspection" ,gobject-introspection)
10693 ("gtk+" ,gtk+)
10694 ("vala" ,vala)))
10695 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10696 (synopsis "Companion library to GObject and Gtk+")
10697 (description "The libdazzle library is a companion library to GObject and
10698 Gtk+. It provides various features that the authors wish were in the
10699 underlying library but cannot for various reasons. In most cases, they are
10700 wildly out of scope for those libraries. In other cases, they are not quite
10701 generic enough to work for everyone.")
10702 (license license:gpl3+)))
10703
10704 (define-public evolution
10705 (package
10706 (name "evolution")
10707 (version "3.34.2")
10708 (source (origin
10709 (method url-fetch)
10710 (uri (string-append "mirror://gnome/sources/evolution/"
10711 (version-major+minor version) "/"
10712 "evolution-" version ".tar.xz"))
10713 (sha256
10714 (base32
10715 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
10716 (build-system cmake-build-system)
10717 (arguments
10718 `(#:imported-modules (,@%cmake-build-system-modules
10719 (guix build glib-or-gtk-build-system))
10720 #:modules ((guix build cmake-build-system)
10721 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10722 (guix build utils))
10723 #:configure-flags
10724 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10725 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10726 ; in four years and cannot be built.
10727 #:phases
10728 (modify-phases %standard-phases
10729 ;; The build system attempts to install user interface modules to the
10730 ;; output directory of the "evolution-data-server" package. This
10731 ;; change redirects that change.
10732 (add-after 'unpack 'patch-ui-module-dir
10733 (lambda* (#:key outputs #:allow-other-keys)
10734 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10735 (("\\$\\{edsuimoduledir\\}")
10736 (string-append (assoc-ref outputs "out")
10737 "/lib/evolution-data-server/ui-modules")))
10738 #t))
10739 (add-after 'install 'glib-or-gtk-compile-schemas
10740 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10741 (add-after 'install 'glib-or-gtk-wrap
10742 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10743 (native-inputs
10744 `(("glib" ,glib "bin") ; glib-mkenums
10745 ("pkg-config" ,pkg-config)
10746 ("intltool" ,intltool)
10747 ("itstool" ,itstool)))
10748 (inputs
10749 `(("enchant" ,enchant)
10750 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10751 ("gcr" ,gcr)
10752 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10753 ("gnome-autoar" ,gnome-autoar)
10754 ("gnome-desktop" ,gnome-desktop)
10755 ("gspell" ,gspell)
10756 ("highlight" ,highlight)
10757 ("libcanberra" ,libcanberra)
10758 ("libgweather" ,libgweather)
10759 ("libnotify" ,libnotify)
10760 ("libsoup" ,libsoup)
10761 ("nss" ,nss)
10762 ("openldap" ,openldap)
10763 ("webkitgtk" ,webkitgtk)
10764 ("ytnef" ,ytnef)))
10765 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10766 (synopsis "Manage your email, contacts and schedule")
10767 (description "Evolution is a personal information management application
10768 that provides integrated mail, calendaring and address book
10769 functionality.")
10770 ;; See COPYING for details.
10771 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10772 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10773 license:lgpl2.1+)))) ; smime/lib/*
10774
10775 (define-public gthumb
10776 (package
10777 (name "gthumb")
10778 (version "3.8.2")
10779 (source (origin
10780 (method url-fetch)
10781 (uri (string-append "mirror://gnome/sources/gthumb/"
10782 (version-major+minor version) "/"
10783 "gthumb-" version ".tar.xz"))
10784 (sha256
10785 (base32
10786 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
10787 (build-system meson-build-system)
10788 (arguments
10789 `(#:glib-or-gtk? #t
10790 #:configure-flags
10791 ;; Ensure the RUNPATH contains all installed library locations.
10792 (list (string-append "-Dc_link_args=-Wl,-rpath="
10793 (assoc-ref %outputs "out")
10794 "/lib/gthumb/extensions")
10795 (string-append "-Dcpp_link_args=-Wl,-rpath="
10796 (assoc-ref %outputs "out")
10797 "/lib/gthumb/extensions"))))
10798 (native-inputs
10799 `(("pkg-config" ,pkg-config)
10800 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10801 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10802 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10803 ("intltool" ,intltool)
10804 ("itstool" ,itstool)))
10805 (inputs
10806 `(("exiv2" ,exiv2)
10807 ("gtk" ,gtk+)
10808 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10809 ("gstreamer" ,gstreamer)
10810 ("clutter" ,clutter)
10811 ("clutter-gst" ,clutter-gst)
10812 ("clutter-gtk" ,clutter-gtk)
10813 ("libjpeg" ,libjpeg-turbo)
10814 ("libtiff" ,libtiff)
10815 ("libraw" ,libraw)))
10816 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10817 (synopsis "GNOME image viewer and browser")
10818 (description "GThumb is an image viewer, browser, organizer, editor and
10819 advanced image management tool")
10820 (license license:gpl2+)))
10821
10822 (define-public terminator
10823 (package
10824 (name "terminator")
10825 (version "1.91")
10826 (source (origin
10827 (method url-fetch)
10828 (uri (string-append "https://launchpad.net/" name "/"
10829 "gtk3/" version "/" "+download/"
10830 name "-" version ".tar.gz"))
10831 (sha256
10832 (base32
10833 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
10834 (build-system python-build-system)
10835 (native-inputs
10836 `(("intltool" ,intltool)
10837 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10838 ("gettext" ,gettext-minimal)
10839 ("pkg-config" ,pkg-config)))
10840 (inputs
10841 `(("cairo" ,cairo)
10842 ("gobject-introspection" ,gobject-introspection)
10843 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10844 ("python2-pycairo" ,python2-pycairo)
10845 ("python2-pygobject" ,python2-pygobject)
10846 ("python2-psutil" ,python2-psutil)
10847 ("vte" ,vte)))
10848 (arguments
10849 `(#:python ,python-2 ; Python 3 isn't supported
10850 #:imported-modules ((guix build glib-or-gtk-build-system)
10851 ,@%python-build-system-modules)
10852 #:modules ((guix build python-build-system)
10853 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10854 (guix build utils))
10855 #:phases
10856 (modify-phases %standard-phases
10857 (add-after
10858 'install 'wrap-program
10859 (lambda* (#:key outputs #:allow-other-keys)
10860 (let ((prog (string-append (assoc-ref outputs "out")
10861 "/bin/terminator")))
10862 (wrap-program prog
10863 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
10864 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10865 #t)))
10866 (add-after 'wrap-program 'glib-or-gtk-wrap
10867 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10868 (home-page "https://gnometerminator.blogspot.com/")
10869 (synopsis "Store and run multiple GNOME terminals in one window")
10870 (description
10871 "Terminator allows you to run multiple GNOME terminals in a grid and
10872 +tabs, and it supports drag and drop re-ordering of terminals.")
10873 (license license:gpl2)))
10874
10875 (define-public libhandy
10876 (package
10877 (name "libhandy")
10878 (version "1.0.0")
10879 (source
10880 (origin
10881 (method git-fetch)
10882 (uri (git-reference
10883 (url "https://gitlab.gnome.org/GNOME/libhandy")
10884 (commit version)))
10885 (file-name (git-file-name name version))
10886 (sha256
10887 (base32 "193y09yy0302x8fkyrnq591m805xp68bkd93fl5qggxi52k8pj0v"))))
10888 (build-system meson-build-system)
10889 (arguments
10890 `(#:configure-flags
10891 '("-Dglade_catalog=enabled"
10892 "-Dgtk_doc=true")
10893 #:phases
10894 (modify-phases %standard-phases
10895 (add-before 'check 'pre-check
10896 (lambda _
10897 ;; Tests require a running X server.
10898 (system "Xvfb :1 &")
10899 (setenv "DISPLAY" ":1")
10900 #t)))))
10901 (inputs
10902 `(("gtk+" ,gtk+)
10903 ("glade" ,glade3)
10904 ("libxml2" ,libxml2)))
10905 (native-inputs
10906 `(("glib:bin" ,glib "bin")
10907 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10908 ("vala" ,vala)
10909 ("gtk-doc" ,gtk-doc)
10910 ("pkg-config" ,pkg-config)
10911 ("gettext" ,gettext-minimal)
10912
10913 ;; Test suite dependencies.
10914 ("xorg-server" ,xorg-server-for-tests)
10915 ("hicolor-icon-theme" ,hicolor-icon-theme)))
10916 (home-page "https://source.puri.sm/Librem5/libhandy")
10917 (synopsis "Library full of GTK+ widgets for mobile phones")
10918 (description "The aim of the handy library is to help with developing user
10919 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10920 for usage on small and big screens.")
10921 (license license:lgpl2.1+)))
10922
10923 (define-public libhandy-0.0
10924 (package
10925 (inherit libhandy)
10926 (version "0.0.13")
10927 (source
10928 (origin
10929 (method git-fetch)
10930 (uri (git-reference
10931 (url "https://gitlab.gnome.org/GNOME/libhandy")
10932 (commit (string-append "v" version))))
10933 (file-name (git-file-name "libhandy" version))
10934 (sha256
10935 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
10936 (arguments
10937 (substitute-keyword-arguments (package-arguments libhandy)
10938 ((#:configure-flags flags)
10939 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
10940
10941 (define-public libgit2-glib
10942 (package
10943 (name "libgit2-glib")
10944 (version "0.99.0.1")
10945 (source (origin
10946 (method url-fetch)
10947 (uri (string-append "mirror://gnome/sources/" name "/"
10948 (version-major+minor version) "/"
10949 name "-" version ".tar.xz"))
10950 (sha256
10951 (base32
10952 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10953 (build-system meson-build-system)
10954 (native-inputs
10955 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
10956 ("gobject-introspection" ,gobject-introspection)
10957 ("pkg-config" ,pkg-config)
10958 ("python-pygobject" ,python-pygobject)
10959 ("python-wrapper" ,python-wrapper)
10960 ("vala" ,vala)))
10961 (inputs
10962 `(("glib" ,glib)
10963 ("libssh2" ,libssh2)))
10964 (propagated-inputs
10965 `(;; In Requires of libgit2-glib.pc.
10966 ("libgit2" ,libgit2)))
10967 (synopsis "GLib wrapper around the libgit2 Git access library")
10968 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
10969 access library. It only implements the core plumbing functions, not really the
10970 higher level porcelain stuff.")
10971 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
10972 (license license:gpl2+)))
10973
10974 (define-public gitg
10975 (package
10976 (name "gitg")
10977 (version "3.32.1")
10978 (source (origin
10979 (method url-fetch)
10980 (uri (string-append "mirror://gnome/sources/" name "/"
10981 (version-major+minor version) "/"
10982 name "-" version ".tar.xz"))
10983 (sha256
10984 (base32
10985 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
10986 (build-system meson-build-system)
10987 (arguments
10988 `(#:glib-or-gtk? #t
10989 #:phases
10990 (modify-phases %standard-phases
10991 (add-after 'unpack 'disable-post-install-partially
10992 (lambda _
10993 (substitute* "meson_post_install.py"
10994 (("'python'") ; there are no python sources to compile
10995 (string-append "'" (which "true") "'"))
10996 (("gtk-update-icon-cache") (which "true")))
10997 #t))
10998 (add-after 'unpack 'fix-test-sources
10999 (lambda _
11000 (substitute* "tests/libgitg/test-commit.vala"
11001 (("/bin/bash") (which "bash")))
11002 #t))
11003 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11004 (lambda* (#:key outputs #:allow-other-keys)
11005 (let ((prog (string-append (assoc-ref outputs "out")
11006 "/bin/gitg")))
11007 (wrap-program prog
11008 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11009 #t))))))
11010 (inputs
11011 `(("glib" ,glib)
11012 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11013 ("gtk+" ,gtk+)
11014 ("gtkspell3" ,gtkspell3)
11015 ("gtksourceview" ,gtksourceview-3)
11016 ("json-glib" ,json-glib)
11017 ("libdazzle" ,libdazzle)
11018 ("libgee" ,libgee)
11019 ("libgit2-glib" ,libgit2-glib)
11020 ("libpeas" ,libpeas)
11021 ("libsecret" ,libsecret)
11022 ("libsoup" ,libsoup)
11023 ("libxml2" ,libxml2)))
11024 (native-inputs
11025 `(("glib:bin" ,glib "bin")
11026 ("gtk+:bin" ,gtk+ "bin")
11027 ("gobject-introspection" ,gobject-introspection)
11028 ("intltool" ,intltool)
11029 ("pkg-config" ,pkg-config)
11030 ("vala" ,vala)))
11031 (synopsis "Graphical user interface for git")
11032 (description
11033 "gitg is a graphical user interface for git. It aims at being a small,
11034 fast and convenient tool to visualize the history of git repositories.
11035 Besides visualization, gitg also provides several utilities to manage your
11036 repository and commit your work.")
11037 (home-page "https://wiki.gnome.org/Apps/Gitg")
11038 (license license:gpl2+)))
11039
11040 (define-public gamin
11041 (package
11042 (name "gamin")
11043 (version "0.1.10")
11044 (source (origin
11045 (method url-fetch)
11046 (uri (string-append "mirror://gnome/sources/" name "/"
11047 (version-major+minor version) "/"
11048 name "-" version ".tar.bz2"))
11049 (sha256
11050 (base32
11051 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11052 (build-system gnu-build-system)
11053 (arguments
11054 `(#:phases
11055 (modify-phases %standard-phases
11056 (add-after 'unpack 'remove-deprecated-macro
11057 (lambda _
11058 (substitute* '("server/gam_node.c"
11059 "server/gam_subscription.h"
11060 "server/gam_node.h"
11061 "server/gam_subscription.c")
11062 (("G_CONST_RETURN") "const"))
11063 #t)))))
11064 (inputs
11065 `(("glib" ,glib)))
11066 (native-inputs
11067 `(("intltool" ,intltool)
11068 ("pkg-config" ,pkg-config)))
11069 (home-page "https://people.gnome.org/~veillard/gamin/")
11070 (synopsis "File alteration monitor")
11071 (description
11072 "Gamin is a file and directory monitoring system defined to be a subset
11073 of the FAM (File Alteration Monitor) system. This is a service provided by a
11074 library which detects when a file or a directory has been modified.")
11075 (license license:gpl2+)))
11076
11077 (define-public gnome-mahjongg
11078 (package
11079 (name "gnome-mahjongg")
11080 (version "3.35.1")
11081 (source (origin
11082 (method git-fetch)
11083 (uri (git-reference
11084 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
11085 (commit version)))
11086 (file-name (git-file-name name version))
11087 (sha256
11088 (base32
11089 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
11090 (build-system meson-build-system)
11091 (arguments
11092 `(#:glib-or-gtk? #t))
11093 (native-inputs
11094 `(("appstream-glib" ,appstream-glib)
11095 ("gettext" ,gettext-minimal)
11096 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11097 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11098 ("itstool" ,itstool)
11099 ("pkg-config" ,pkg-config)
11100 ("vala" ,vala)))
11101 (propagated-inputs
11102 `(("dconf" ,dconf)))
11103 (inputs
11104 `(("glib" ,glib)
11105 ("gtk+" ,gtk+)
11106 ("librsvg" ,librsvg)))
11107 (synopsis "Mahjongg tile-matching game")
11108 (description "GNOME Mahjongg is a game based on the classic Chinese
11109 tile-matching game Mahjong. It features multiple board layouts, tile themes,
11110 and a high score table.")
11111 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11112 (license license:gpl2+)))
11113
11114 (define-public gnome-themes-extra
11115 (package
11116 (name "gnome-themes-extra")
11117 (version "3.28")
11118 (source
11119 (origin
11120 (method url-fetch)
11121 (uri (string-append "mirror://gnome/sources/" name "/"
11122 (version-major+minor version) "/" name "-"
11123 version ".tar.xz"))
11124 (sha256
11125 (base32
11126 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11127 (build-system gnu-build-system)
11128 (arguments
11129 '(#:configure-flags
11130 ;; Don't create 'icon-theme.cache'.
11131 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11132 (true (string-append coreutils "/bin/true")))
11133 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11134 (native-inputs
11135 `(("glib:bin" ,glib "bin")
11136 ("intltool" ,intltool)
11137 ("pkg-config" ,pkg-config)))
11138 (inputs
11139 `(("glib" ,glib)
11140 ("gtk+" ,gtk+)
11141 ("gtk+-2" ,gtk+-2)
11142 ("librsvg" ,librsvg)
11143 ("libxml2" ,libxml2)))
11144 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11145 (synopsis "GNOME Extra Themes")
11146 (description "This package provides themes and related elements that don't
11147 really fit in other upstream packages. It offers legacy support for GTK+ 2
11148 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11149 index files needed for Adwaita to be used outside of GNOME.")
11150 (license license:lgpl2.1+)))
11151
11152 (define-public gnote
11153 (package
11154 (name "gnote")
11155 (version "3.38.0")
11156 (source
11157 (origin
11158 (method url-fetch)
11159 (uri (string-append "mirror://gnome/sources/" name "/"
11160 (version-major+minor version) "/"
11161 "gnote-" version ".tar.xz"))
11162 (sha256
11163 (base32 "1ingbaw4d8vpjn083xvzqw7kz8z0k2bx7msk78pbzd68bwgkadpx"))))
11164 (build-system glib-or-gtk-build-system)
11165 (native-inputs
11166 `(("desktop-file-utils" ,desktop-file-utils)
11167 ("glib:bin" ,glib "bin")
11168 ("gobject-introspection" ,gobject-introspection)
11169 ("intltool" ,intltool)
11170 ("itstool" ,itstool)
11171 ("pkg-config" ,pkg-config)
11172 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
11173 (inputs
11174 `(("glibmm" ,glibmm)
11175 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11176 ("gspell" ,gspell)
11177 ("gtk+" ,gtk+)
11178 ("gtkmm" ,gtkmm)
11179 ("libsecret" ,libsecret)
11180 ("libuuid" ,util-linux "lib")
11181 ("libxml2" ,libxml2)
11182 ("libxslt" ,libxslt)))
11183 (synopsis "Note-taking application for the GNOME desktop")
11184 (description
11185 "Gnote is a note-taking application written for the GNOME desktop
11186 environment.")
11187 (home-page "https://wiki.gnome.org/Apps/Gnote")
11188 (license license:gpl3+)))
11189
11190 (define-public polari
11191 (package
11192 (name "polari")
11193 (version "3.36.3")
11194 (source (origin
11195 (method url-fetch)
11196 (uri (string-append "mirror://gnome/sources/polari/"
11197 (version-major+minor version)
11198 "/polari-" version ".tar.xz"))
11199 (sha256
11200 (base32
11201 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11202 (build-system meson-build-system)
11203 (arguments
11204 `(#:glib-or-gtk? #t
11205 #:phases
11206 (modify-phases %standard-phases
11207 (add-after 'unpack 'skip-gtk-update-icon-cache
11208 (lambda _
11209 (substitute* "meson/meson-postinstall.sh"
11210 (("gtk-update-icon-cache") (which "true")))
11211 #t))
11212 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11213 (lambda* (#:key outputs #:allow-other-keys)
11214 (let ((prog (string-append (assoc-ref outputs "out")
11215 "/bin/polari")))
11216 (wrap-program prog
11217 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11218 #t))))))
11219 (inputs
11220 `(("glib" ,glib)
11221 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11222 ("gspell" ,gspell)
11223 ("gtk+" ,gtk+)
11224 ("gjs" ,gjs)
11225 ("libsecret" ,libsecret)
11226 ("libsoup" ,libsoup)
11227 ("telepathy-glib" ,telepathy-glib)
11228 ("telepathy-logger" ,telepathy-logger)))
11229 (native-inputs
11230 `(("glib:bin" ,glib "bin")
11231 ("gobject-introspection" ,gobject-introspection)
11232 ("intltool" ,intltool)
11233 ("pkg-config" ,pkg-config)
11234 ("yelp-tools" ,yelp-tools)))
11235 (propagated-inputs
11236 `(("telepathy-idle" ,telepathy-idle)
11237 ("telepathy-mission-control" ,telepathy-mission-control)))
11238 (synopsis "Simple IRC Client")
11239 (description
11240 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11241 integrate seamlessly with the GNOME desktop.")
11242 (home-page "https://wiki.gnome.org/Apps/Polari")
11243 (license license:gpl2+)))
11244
11245 (define-public gnome-boxes
11246 (package
11247 (name "gnome-boxes")
11248 (version "3.36.6")
11249 (source
11250 (origin
11251 (method url-fetch)
11252 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11253 (version-major+minor version) "/"
11254 "gnome-boxes-" version ".tar.xz"))
11255 (sha256
11256 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11257 (build-system meson-build-system)
11258 (arguments
11259 '(#:glib-or-gtk? #t
11260 #:configure-flags (list "-Drdp=false"
11261 (string-append "-Dc_link_args=-Wl,-rpath="
11262 (assoc-ref %outputs "out")
11263 "/lib/gnome-boxes"))))
11264 (native-inputs
11265 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11266 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11267 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11268 ("itstool" ,itstool)
11269 ("intltool" ,intltool)
11270 ("vala" ,vala)
11271 ("pkg-config" ,pkg-config)))
11272 (inputs
11273 `(("libarchive" ,libarchive)
11274 ("glib-networking" ,glib-networking) ;for TLS support
11275 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11276 ("gtk" ,gtk+)
11277 ("gtk-vnc" ,gtk-vnc)
11278 ("libosinfo" ,libosinfo)
11279 ("libsecret" ,libsecret)
11280 ("libsoup" ,libsoup)
11281 ("libusb" ,libusb)
11282 ("libvirt" ,libvirt)
11283 ("libvirt-glib" ,libvirt-glib)
11284 ("libxml" ,libxml2)
11285 ("spice-gtk" ,spice-gtk)
11286 ("sparql-query" ,sparql-query)
11287 ("vte" ,vte)
11288 ("webkitgtk" ,webkitgtk)
11289 ("tracker" ,tracker)
11290 ("libgudev" ,libgudev)))
11291 (home-page "https://wiki.gnome.org/Apps/Boxes")
11292 (synopsis "View, access, and manage remote and virtual systems")
11293 (description "GNOME Boxes is a simple application to view, access, and
11294 manage remote and virtual systems. Note that this application requires the
11295 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11296 @command{info '(guix) Virtualization Services'} to learn how to configure
11297 these services on the Guix System.")
11298 (license (list
11299 ;; For data/icons/empty-boxes.png.
11300 license:cc-by2.0
11301 ;; For all others.
11302 license:lgpl2.0+))))
11303
11304 (define-public geary
11305 (package
11306 (name "geary")
11307 (version "3.34.1")
11308 (source (origin
11309 (method git-fetch)
11310 (uri (git-reference
11311 (url "https://gitlab.gnome.org/GNOME/geary")
11312 (commit version)))
11313 (file-name (git-file-name name version))
11314 (sha256
11315 (base32
11316 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
11317 (build-system meson-build-system)
11318 (arguments
11319 `(#:glib-or-gtk? #t
11320 #:phases (modify-phases %standard-phases
11321 (add-after 'unpack 'disable-failing-tests
11322 (lambda _
11323 (substitute* "test/meson.build"
11324 (("test\\('client-tests', geary_test_client_bin\\)")
11325 ""))
11326 #t))
11327 (add-after 'unpack 'disable-postinstall-script
11328 (lambda _
11329 (substitute* "meson.build"
11330 (("meson.add_install_script\\(\
11331 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11332 ""))
11333 #t))
11334 (add-before 'check 'setup-xvfb
11335 (lambda _
11336 (system "Xvfb :1 &")
11337 (setenv "DISPLAY" ":1")
11338 #t)))))
11339 (inputs
11340 `(("enchant" ,enchant)
11341 ("folks" ,folks)
11342 ("gcr" ,gcr)
11343 ("glib" ,glib)
11344 ("gmime" ,gmime-2.6)
11345 ("gnome-online-accounts:lib"
11346 ,gnome-online-accounts "lib")
11347 ("gspell" ,gspell)
11348 ("gtk+" ,gtk+)
11349 ("iso-codes" ,iso-codes)
11350 ("json-glib" ,json-glib)
11351 ("libcanberra" ,libcanberra)
11352 ("libgee" ,libgee)
11353 ("libhandy" ,libhandy-0.0)
11354 ("libpeas" ,libpeas)
11355 ("libsecret" ,libsecret)
11356 ("libunwind" ,libunwind)
11357 ("sqlite" ,sqlite)
11358 ("webkitgtk" ,webkitgtk)
11359 ("ytnef" ,ytnef)))
11360 (native-inputs
11361 `(("appstream-glib" ,appstream-glib)
11362 ("cmake-minimal" ,cmake-minimal)
11363 ("desktop-file-utils" ,desktop-file-utils)
11364 ("gettext" ,gettext-minimal)
11365 ("glib:bin" ,glib "bin")
11366 ("gobject-introspection" ,gobject-introspection)
11367 ("itstool" ,itstool)
11368 ("libarchive" ,libarchive)
11369 ("libxml2" ,libxml2)
11370 ("pkg-config" ,pkg-config)
11371 ("vala" ,vala)
11372 ("xvfb" ,xorg-server-for-tests)))
11373 (synopsis "GNOME email application built around conversations")
11374 (description
11375 "Geary collects related messages together into conversations,
11376 making it easy to find and follow your discussions. Full-text and keyword
11377 search makes it easy to find the email you are looking for. Geary's
11378 full-featured composer lets you send rich, styled text with images, links, and
11379 lists, but also send lightweight, easy to read text messages. Geary
11380 automatically picks up your existing GNOME Online Accounts, and adding more is
11381 easy. Geary has a clean, fast, modern interface that works like you want it
11382 to.")
11383 (home-page "https://wiki.gnome.org/Apps/Geary")
11384 (license (list
11385 ;; geary
11386 license:lgpl2.1+
11387 ;; icons
11388 license:cc-by3.0
11389 license:cc-by-sa3.0
11390 license:public-domain
11391 ;; snowball
11392 license:bsd-2))))
11393
11394 (define-public glabels
11395 (package
11396 (name "glabels")
11397 (version "3.4.1")
11398 (source
11399 (origin
11400 (method url-fetch)
11401 (uri (string-append "mirror://gnome/sources/" name "/"
11402 (version-major+minor version) "/"
11403 "glabels-" version ".tar.xz"))
11404 (sha256
11405 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11406 (build-system glib-or-gtk-build-system)
11407 (native-inputs
11408 `(("gettext" ,gettext-minimal)
11409 ("glib:bin" ,glib "bin")
11410 ("intltool" ,intltool)
11411 ("itstool" ,itstool)
11412 ("pkg-config" ,pkg-config)))
11413 (inputs
11414 `(("gtk+" ,gtk+)
11415 ("librsvg" ,librsvg)
11416 ("libxml2" ,libxml2)))
11417 (home-page "https://glabels.org/")
11418 (synopsis "Program for creating labels and business cards")
11419 (description
11420 "gLabels is a program for creating labels and business cards. It is
11421 designed to work with various laser/ink-jet peel-off label and business
11422 card sheets that you’ll find at most office supply stores.")
11423 (license license:gpl3+)))
11424
11425 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11426 (define-public gnome-latex
11427 (package
11428 (name "gnome-latex")
11429 (version "3.36.0")
11430 (source
11431 (origin
11432 (method url-fetch)
11433 (uri (string-append "mirror://gnome/sources/" name "/"
11434 (version-major+minor version) "/"
11435 "gnome-latex-" version ".tar.xz"))
11436 (sha256
11437 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11438 (build-system glib-or-gtk-build-system)
11439 (native-inputs
11440 `(("gettext" ,gettext-minimal)
11441 ("glib:bin" ,glib "bin")
11442 ("gobject-introspection" ,gobject-introspection)
11443 ("gtk-doc" ,gtk-doc)
11444 ("intltool" ,intltool)
11445 ("itstool" ,itstool)
11446 ("pkg-config" ,pkg-config)
11447 ("vala" ,vala)))
11448 (inputs
11449 `(("amtk" ,amtk)
11450 ("dconf" ,dconf)
11451 ("glib" ,glib)
11452 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11453 ("gspell" ,gspell)
11454 ("gtk+" ,gtk+)
11455 ("gtksourceview" ,gtksourceview)
11456 ("libgee" ,libgee)
11457 ("tepl" ,tepl)
11458 ("uchardet" ,uchardet)))
11459 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11460 (synopsis "LaTeX editor for the GNOME desktop")
11461 (description
11462 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11463 such as build tools, completion of LaTeX commands, structure navigation,
11464 symbol tables, document templates, project management, spell-checking, menus
11465 and toolbars.")
11466 (license license:gpl3+)))
11467
11468 (define-public libratbag
11469 (package
11470 (name "libratbag")
11471 (version "0.14")
11472 (source
11473 (origin
11474 (method git-fetch)
11475 (uri (git-reference
11476 (url "https://github.com/libratbag/libratbag")
11477 (commit (string-append "v" version))))
11478 (file-name (git-file-name name version))
11479 (sha256
11480 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11481 (build-system meson-build-system)
11482 (arguments
11483 `(#:configure-flags
11484 (list "-Dsystemd=false"
11485 "-Dlogind-provider=elogind")
11486 #:phases
11487 (modify-phases %standard-phases
11488 (add-after 'install 'wrap
11489 (lambda* (#:key inputs outputs #:allow-other-keys)
11490 (let* ((out (assoc-ref outputs "out"))
11491 (site (string-append
11492 "/lib/python"
11493 ,(version-major+minor (package-version python))
11494 "/site-packages"))
11495 (evdev (string-append
11496 (assoc-ref inputs "python-evdev") site))
11497 (pygo (string-append
11498 (assoc-ref inputs "python-pygobject") site))
11499 (python-wrap
11500 `("PYTHONPATH" = (,evdev ,pygo))))
11501 (wrap-program (string-append out "/bin/" "ratbagctl")
11502 python-wrap)
11503 #t))))))
11504 (native-inputs
11505 `(("check" ,check)
11506 ("pkg-config" ,pkg-config)
11507 ("swig" ,swig)
11508 ("valgrind" ,valgrind)))
11509 (inputs
11510 `(("glib" ,glib)
11511 ("json-glib" ,json-glib)
11512 ("libevdev" ,libevdev)
11513 ("libsystemd" ,elogind)
11514 ("libunistring" ,libunistring)
11515 ("python-evdev" ,python-evdev)
11516 ("python-pygobject" ,python-pygobject)
11517 ("udev" ,eudev)))
11518 (home-page "https://github.com/libratbag/libratbag")
11519 (synopsis "DBus daemon and utility for configuring gaming mice")
11520 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11521 configure input devices, mainly gaming mice. The daemon provides a generic
11522 way to access the various features exposed by these mice and abstracts away
11523 hardware-specific and kernel-specific quirks. There is also the
11524 @command{ratbagctl} command line interface for configuring devices.
11525
11526 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11527 Steelseries.
11528
11529 The ratbagd DBus service can be enabled by adding the following service to
11530 your operating-system definition:
11531
11532 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11533 (license license:expat)))
11534
11535 (define-public piper
11536 (package
11537 (name "piper")
11538 (version "0.5.1")
11539 (source
11540 (origin
11541 (method git-fetch)
11542 (uri (git-reference
11543 (url "https://github.com/libratbag/piper")
11544 (commit version)))
11545 (sha256
11546 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11547 (file-name (git-file-name name version))))
11548 (build-system meson-build-system)
11549 (native-inputs
11550 `(("gettext" ,gettext-minimal)
11551 ("glib:bin" ,glib "bin")
11552 ("gobject-introspection" ,gobject-introspection)
11553 ("pkg-config" ,pkg-config)
11554 ("python-flake8" ,python-flake8)))
11555 (inputs
11556 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11557 ("gtk" ,gtk+)
11558 ("gtk:bin" ,gtk+ "bin")
11559 ("librsvg" ,librsvg)
11560 ("python-evdev" ,python-evdev)
11561 ("python-lxml" ,python-lxml)
11562 ("python-pycairo" ,python-pycairo)
11563 ("python-pygobject" ,python-pygobject)))
11564 (arguments
11565 `(#:imported-modules ((guix build python-build-system)
11566 ,@%meson-build-system-modules)
11567 #:modules (((guix build python-build-system) #:prefix python:)
11568 (guix build meson-build-system)
11569 (guix build utils))
11570 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11571 #:phases
11572 (modify-phases %standard-phases
11573 (add-after 'unpack 'dont-update-gtk-icon-cache
11574 (lambda _
11575 (substitute* "meson.build"
11576 (("meson.add_install_script('meson_install.sh')") ""))
11577 #t))
11578 ;; TODO: Switch to wrap-script when it is fixed.
11579 (add-after 'install 'wrap-python
11580 (assoc-ref python:%standard-phases 'wrap))
11581 (add-after 'wrap-python 'wrap
11582 (lambda* (#:key outputs #:allow-other-keys)
11583 (wrap-program
11584 (string-append (assoc-ref outputs "out" )"/bin/piper")
11585 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11586 #t)))))
11587 (home-page "https://github.com/libratbag/piper/")
11588 (synopsis "Configure bindings and LEDs on gaming mice")
11589 (description "Piper is a GTK+ application for configuring gaming mice with
11590 onboard configuration for key bindings via libratbag. Piper requires
11591 a @command{ratbagd} daemon running with root privileges. It can be run
11592 manually as root, but is preferably configured as a DBus service that can
11593 launch on demand. This can be configured by enabling the following service,
11594 provided there is a DBus service present:
11595
11596 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11597 (license license:gpl2)))
11598
11599 (define-public parlatype
11600 (package
11601 (name "parlatype")
11602 (version "2.1")
11603 (source
11604 (origin
11605 (method git-fetch)
11606 (uri (git-reference
11607 (url "https://github.com/gkarsay/parlatype.git")
11608 (commit (string-append "v" version))))
11609 (file-name (git-file-name name version))
11610 (sha256
11611 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11612 (build-system meson-build-system)
11613 (arguments
11614 `(#:glib-or-gtk? #t
11615 #:tests? #f ;require internet access
11616 #:phases
11617 (modify-phases %standard-phases
11618 (add-after 'install 'wrap-parlatype
11619 ;; Add gstreamer plugin provided in this package to system's
11620 ;; plugins.
11621 (lambda* (#:key outputs #:allow-other-keys)
11622 (let* ((out (assoc-ref outputs "out"))
11623 (gst-plugin-path (string-append
11624 out "/lib/gstreamer-1.0/"
11625 ":"
11626 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11627 (wrap-program (string-append out "/bin/parlatype")
11628 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11629 #t)))))
11630 (native-inputs
11631 `(("appstream-glib" ,appstream-glib)
11632 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11633 ("gettext" ,gettext-minimal)
11634 ("glib" ,glib "bin") ;for glib-compile-resources
11635 ("pkg-config" ,pkg-config)
11636 ("yelp-tools" ,yelp-tools)))
11637 (inputs
11638 `(("gst-plugins-base" ,gst-plugins-base)
11639 ("gst-plugins-good" ,gst-plugins-good)
11640 ("gstreamer" ,gstreamer)
11641 ("gtk+" ,gtk+)
11642 ("pocketsphinx" ,pocketsphinx)
11643 ("pulseaudio" ,pulseaudio)
11644 ("sphinxbase" ,sphinxbase)))
11645 (home-page "http://gkarsay.github.io/parlatype/")
11646 (synopsis "GNOME audio player for transcription")
11647 (description "Parlatype is an audio player for the GNOME desktop
11648 environment. Its main purpose is the manual transcription of spoken
11649 audio files.")
11650 (license license:gpl3+)))
11651
11652 (define-public jsonrpc-glib
11653 (package
11654 (name "jsonrpc-glib")
11655 (version "3.34.0")
11656 (source (origin
11657 (method url-fetch)
11658 (uri (string-append "mirror://gnome/sources/" name "/"
11659 (version-major+minor version) "/"
11660 name "-" version ".tar.xz"))
11661 (sha256
11662 (base32
11663 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11664 (build-system meson-build-system)
11665 (inputs
11666 `(("json-glib" ,json-glib)
11667 ("glib" ,glib)))
11668 (native-inputs
11669 `(("pkg-config" ,pkg-config)
11670 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11671 ("gobject-introspection" ,gobject-introspection)
11672 ("vala" ,vala)))
11673 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11674 (synopsis "JSON-RPC library for GLib")
11675 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11676 peers in either a synchronous or asynchronous fashion. It also allows
11677 communicating using the GVariant serialization format instead of JSON when
11678 both peers support it. You might want that when communicating on a single
11679 host to avoid parser overhead and memory-allocator fragmentation.")
11680 (license license:lgpl2.1+)))
11681
11682 (define-public feedbackd
11683 (package
11684 (name "feedbackd")
11685 (version "0.0.0+git20200527")
11686 (source (origin
11687 (method git-fetch)
11688 (uri (git-reference
11689 (url "https://source.puri.sm/Librem5/feedbackd.git")
11690 (commit (string-append "v" version))))
11691 (file-name (git-file-name name version))
11692 (sha256
11693 (base32
11694 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11695 (build-system meson-build-system)
11696 (native-inputs
11697 `(("glib:bin" ,glib "bin")
11698 ("gobject-introspection" ,gobject-introspection)
11699 ("pkg-config" ,pkg-config)
11700 ("vala" ,vala)))
11701 (inputs
11702 `(("dbus" ,dbus)
11703 ("gsound" ,gsound)
11704 ("json-glib" ,json-glib)
11705 ("libgudev" ,libgudev)))
11706 (propagated-inputs
11707 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11708 (synopsis "Haptic/visual/audio feedback via DBus")
11709 (description "Feedbackd provides a DBus daemon to act on events to provide
11710 haptic, visual and audio feedback. It offers the libfeedbackd library and
11711 GObject introspection bindings.")
11712 (home-page "https://source.puri.sm/Librem5/feedbackd")
11713 (license (list license:lgpl2.1+ ; libfeedbackd
11714 license:lgpl3+)))) ; the rest
11715
11716 (define-public sysprof
11717 (package
11718 (name "sysprof")
11719 (version "3.36.0")
11720 (source
11721 (origin
11722 (method url-fetch)
11723 (uri (string-append "mirror://gnome/sources/sysprof/"
11724 (version-major+minor version) "/"
11725 "sysprof-" version ".tar.xz"))
11726 (sha256
11727 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11728 (build-system meson-build-system)
11729 (arguments
11730 `(#:configure-flags
11731 (list (string-append "-Dsystemdunitdir="
11732 %output
11733 "/share/systemd"))
11734 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11735 #:phases
11736 (modify-phases %standard-phases
11737 (add-after 'unpack 'patch-install-script
11738 (lambda _
11739 (substitute* "build-aux/meson/post_install.sh"
11740 (("gtk-update-icon-cache") "true")
11741 (("update-desktop-database") "true"))
11742 #t)))))
11743 (inputs
11744 `(("glib" ,glib)
11745 ("gtk+" ,gtk+)
11746 ("libdazzle" ,libdazzle)
11747 ("polkit" ,polkit)))
11748 (native-inputs
11749 `(("gettext" ,gettext-minimal)
11750 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11751 ("itstool" ,itstool)
11752 ("pkg-config" ,pkg-config)
11753 ("xmllint" ,libxml2)))
11754 ;; This home page is so woefully out of date as to be essentially useless.
11755 ;; (home-page "http://www.sysprof.com")
11756 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11757 (synopsis "System-wide performance profiler for GNU/Linux")
11758 (description
11759 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11760 GNU/Linux system including the kernel and all user-space applications. This
11761 helps find the function(s) in which a program spends most of its time.
11762
11763 It uses the kernel's built-in @code{ptrace} feature and handles shared
11764 libraries. Applications do not need to be recompiled--or even restarted.")
11765 (license license:gpl3+)))
11766
11767 (define-public gnome-builder
11768 (package
11769 (name "gnome-builder")
11770 (version "3.36.1")
11771 (source (origin
11772 (method url-fetch)
11773 (uri (string-append "mirror://gnome/sources/" name "/"
11774 (version-major+minor version) "/"
11775 name "-" version ".tar.xz"))
11776 (sha256
11777 (base32
11778 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11779 (build-system meson-build-system)
11780 (arguments
11781 `(#:configure-flags (list "-Dnetwork_tests=false"
11782 ;; TODO: Enable all plugins...
11783 "-Dplugin_clang=false"
11784 "-Dplugin_flatpak=false"
11785 "-Dplugin_glade=false"
11786 ;; ... except this one.
11787 "-Dplugin_update_manager=false")
11788 #:phases
11789 (modify-phases %standard-phases
11790 (add-after 'unpack 'patch-meson
11791 (lambda* (#:key inputs #:allow-other-keys)
11792 (substitute* "build-aux/meson/post_install.py"
11793 (("gtk-update-icon-cache") "true")
11794 (("update-desktop-database") "true"))
11795 (substitute* "src/libide/meson.build"
11796 (("/usr/lib")
11797 (string-append (assoc-ref inputs "python-pygobject")
11798 "/lib")))
11799 #t))
11800 (add-before 'check 'pre-check
11801 (lambda _
11802 (system "Xvfb :1 &")
11803 (setenv "DISPLAY" ":1")
11804 #t)))))
11805 (inputs
11806 `(("devhelp" ,devhelp)
11807 ("gspell" ,gspell)
11808 ("gtk+" ,gtk+)
11809 ("json-glib" ,json-glib)
11810 ("jsonrpc-glib" ,jsonrpc-glib)
11811 ("libdazzle" ,libdazzle)
11812 ("libgit2-glib" ,libgit2-glib)
11813 ("libpeas" ,libpeas)
11814 ("python-pygobject" ,python-pygobject)
11815 ("sysprof" ,sysprof)
11816 ("template-glib" ,template-glib)
11817 ("vte" ,vte)
11818 ("webkitgtk" ,webkitgtk)))
11819 (propagated-inputs
11820 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11821 (native-inputs
11822 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11823 ("glib:bin" ,glib "bin")
11824 ("gettext" ,gettext-minimal)
11825 ("pkg-config" ,pkg-config)
11826 ("vala" ,vala)
11827 ("xorg-server" ,xorg-server-for-tests)))
11828 (home-page "https://wiki.gnome.org/Apps/Builder")
11829 (synopsis "Toolsmith for GNOME-based applications")
11830 (description "Builder aims to be an integrated development
11831 environment (IDE) for writing GNOME-based software. It features fuzzy search,
11832 auto-completion, a mini code map, documentation browsing, Git integration, an
11833 integrated profiler via Sysprof, debugging support, and more.")
11834 (license license:gpl3+)))
11835
11836 (define-public komikku
11837 (package
11838 (name "komikku")
11839 (version "0.21.1")
11840 (source
11841 (origin
11842 (method git-fetch)
11843 (uri (git-reference
11844 (url "https://gitlab.com/valos/Komikku/")
11845 (commit (string-append "v" version))))
11846 (file-name (git-file-name name version))
11847 (sha256
11848 (base32
11849 "17ss5k2hnymk6xyx1dy3q0y2pwcld78cw7d0cs9c0hnhskh5dirh"))))
11850 (build-system meson-build-system)
11851 (arguments
11852 `(#:glib-or-gtk? #t
11853 #:phases
11854 (modify-phases %standard-phases
11855 (add-after 'unpack 'patch-sources
11856 (lambda _
11857 (substitute* "komikku/utils.py"
11858 (("from komikku\\.servers import get_servers_list")
11859 ;; code following that line should migrate old databases
11860 ;; but the line itself results in an import error
11861 "return data_dir_path"))))
11862 (add-after 'unpack 'skip-gtk-update-icon-cache
11863 (lambda _
11864 (substitute* "meson_post_install.py"
11865 (("gtk-update-icon-cache") (which "true")))
11866 #t))
11867 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11868 (lambda* (#:key outputs #:allow-other-keys)
11869 (let ((prog (string-append (assoc-ref outputs "out")
11870 "/bin/komikku")))
11871 (wrap-program prog
11872 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
11873 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11874 #t))))))
11875 (inputs
11876 `(("gtk+" ,gtk+)
11877 ("libhandy" ,libhandy)
11878 ("libnotify" ,libnotify)
11879 ("libsecret" ,libsecret)
11880 ("python-beautifulsoup4" ,python-beautifulsoup4)
11881 ("python-cloudscraper" ,python-cloudscraper)
11882 ("python-dateparser" ,python-dateparser)
11883 ("python-keyring" ,python-keyring)
11884 ("python-lxml" ,python-lxml)
11885 ("python-magic" ,python-magic)
11886 ("python-pillow" ,python-pillow)
11887 ("python-pure-protobuf" ,python-pure-protobuf)
11888 ("python-pycairo" ,python-pycairo)
11889 ("python-pygobject" ,python-pygobject)
11890 ("python-unidecode" ,python-unidecode)))
11891 (native-inputs
11892 `(("desktop-file-utils" ,desktop-file-utils)
11893 ("gettext" ,gettext-minimal)
11894 ("glib:bin" ,glib "bin")
11895 ("gobject-introspection" ,gobject-introspection)
11896 ("pkg-config" ,pkg-config)))
11897 (home-page "https://gitlab.com/valos/Komikku")
11898 (synopsis "Manga reader for GNOME")
11899 (description "Komikku is an online/offline manga reader for GNOME,
11900 developed with the aim of being used with the Librem 5 phone.")
11901 (license license:gpl3+)))
11902
11903 (define-public libgda
11904 (package
11905 (name "libgda")
11906 (version "5.2.9")
11907 (source
11908 (origin
11909 (method git-fetch)
11910 (uri (git-reference
11911 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
11912 (commit "LIBGDA_5_2_9")))
11913 (file-name (git-file-name name version))
11914 (sha256
11915 (base32
11916 "122anbk15vj2dfxrw7s48b6zwlpp7cyppshxizynvf3zmc0ygw3j"))))
11917 (build-system gnu-build-system)
11918 (arguments
11919 `(#:configure-flags '("--enable-vala")
11920 ;; There's a race between check_cnc_lock and check_threaded_cnc
11921 ;; in tests/multi-threading.
11922 #:parallel-tests? #f
11923 #:phases
11924 (modify-phases %standard-phases
11925 (add-after 'unpack 'fix-glade-install
11926 (lambda _
11927 (substitute* "configure.ac"
11928 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
11929 "${datadir}/glade/catalogs")
11930 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
11931 "${datadir}/glade/pixmaps"))
11932 #t))
11933 (add-before 'check 'pre-check
11934 (lambda* (#:key inputs #:allow-other-keys)
11935 ;; Tests require a running X server.
11936 (system "Xvfb :1 &")
11937 (setenv "DISPLAY" ":1")
11938 #t))
11939 (add-after 'install 'symlink-glade-module
11940 (lambda* (#:key outputs #:allow-other-keys)
11941 (let* ((shlib "libgda-ui-5.0.so")
11942 (out (assoc-ref outputs "out"))
11943 (out/lib (string-append out "/lib"))
11944 (moduledir (string-append out/lib "/glade/modules")))
11945 (mkdir-p moduledir)
11946 (symlink (string-append out/lib "/" shlib)
11947 (string-append moduledir "/" shlib))
11948 #t))))))
11949 (propagated-inputs
11950 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
11951 (inputs
11952 `(("glib" ,glib)
11953 ("glade" ,glade3)
11954 ("gtk+" ,gtk+)
11955 ("libsecret" ,libsecret)
11956 ("libxslt" ,libxslt)
11957 ("openssl" ,openssl)
11958 ("vala" ,vala)))
11959 (native-inputs
11960 `(("autoconf" ,autoconf)
11961 ("automake" ,automake)
11962 ("glib:bin" ,glib "bin")
11963 ("gnome-common" ,gnome-common)
11964 ("gobject-introspection" ,gobject-introspection)
11965 ("gtk-doc" ,gtk-doc)
11966 ("intltool" ,intltool)
11967 ("libtool" ,libtool)
11968 ("pkg-config" ,pkg-config)
11969 ("vala" ,vala)
11970 ("which" ,which)
11971 ("xorg-server" ,xorg-server-for-tests)
11972 ("yelp-tools" ,yelp-tools)))
11973 (home-page "https://gitlab.gnome.org/GNOME/libgda")
11974 (synopsis "Uniform data access")
11975 (description
11976 "GNU Data Access (GDA) is an attempt to provide uniform access to
11977 different kinds of data sources (databases, information servers, mail spools,
11978 etc). It is a complete architecture that provides all you need to access
11979 your data.")
11980 (license license:lgpl2.1+)))
11981
11982 (define-public gtranslator
11983 (package
11984 (name "gtranslator")
11985 (version "3.36.0")
11986 (source (origin
11987 (method url-fetch)
11988 (uri (string-append "mirror://gnome/sources/" name "/"
11989 (version-major+minor version) "/"
11990 name "-" version ".tar.xz"))
11991 (sha256
11992 (base32
11993 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
11994 (build-system meson-build-system)
11995 (inputs
11996 `(("json-glib" ,json-glib)
11997 ("jsonrpc-glib" ,jsonrpc-glib)
11998 ("gettext" ,gettext-minimal)
11999 ("glib" ,glib)
12000 ("gtk+" ,gtk+)
12001 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12002 ("gspell" ,gspell)
12003 ("libdazzle" ,libdazzle)
12004 ("libgda" ,libgda)
12005 ("libsoup" ,libsoup)))
12006 (native-inputs
12007 `(("glib:bin" ,glib "bin")
12008 ("itstool" ,itstool)
12009 ("pkg-config" ,pkg-config)))
12010 (propagated-inputs
12011 `(("gtksourceview" ,gtksourceview))) ; required for source view
12012 (arguments
12013 `(#:build-type "release"
12014 #:phases
12015 (modify-phases %standard-phases
12016 (add-after 'unpack 'skip-gtk-update-icon-cache
12017 (lambda _
12018 (substitute* "build-aux/meson/meson_post_install.py"
12019 (("gtk-update-icon-cache") (which "true")))
12020 #t)))))
12021 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12022 (synopsis "Translation making program")
12023 (description
12024 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12025 for the GNOME 3.x platform with many features. It aims to be a very complete
12026 editing environment for translation issues within the GNU gettext/GNOME desktop
12027 world.")
12028 (license license:gpl3+)))