gnu: gnumeric: Update to 1.12.48.
[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 ;;;
59 ;;; This file is part of GNU Guix.
60 ;;;
61 ;;; GNU Guix is free software; you can redistribute it and/or modify it
62 ;;; under the terms of the GNU General Public License as published by
63 ;;; the Free Software Foundation; either version 3 of the License, or (at
64 ;;; your option) any later version.
65 ;;;
66 ;;; GNU Guix is distributed in the hope that it will be useful, but
67 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
68 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
69 ;;; GNU General Public License for more details.
70 ;;;
71 ;;; You should have received a copy of the GNU General Public License
72 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
73
74 (define-module (gnu packages gnome)
75 #:use-module (gnu packages)
76 #:use-module (gnu packages admin)
77 #:use-module (gnu packages aspell)
78 #:use-module (gnu packages autotools)
79 #:use-module (gnu packages avahi)
80 #:use-module (gnu packages backup)
81 #:use-module (gnu packages base)
82 #:use-module (gnu packages bash)
83 #:use-module (gnu packages bison)
84 #:use-module (gnu packages boost)
85 #:use-module (gnu packages build-tools)
86 #:use-module (gnu packages calendar)
87 #:use-module (gnu packages cdrom)
88 #:use-module (gnu packages check)
89 #:use-module (gnu packages cmake)
90 #:use-module (gnu packages compression)
91 #:use-module (gnu packages crates-io)
92 #:use-module (gnu packages crates-graphics)
93 #:use-module (gnu packages crates-gtk)
94 #:use-module (gnu packages cups)
95 #:use-module (gnu packages curl)
96 #:use-module (gnu packages cyrus-sasl)
97 #:use-module (gnu packages databases)
98 #:use-module (gnu packages dbm)
99 #:use-module (gnu packages djvu)
100 #:use-module (gnu packages dns)
101 #:use-module (gnu packages docbook)
102 #:use-module (gnu packages documentation)
103 #:use-module (gnu packages enchant)
104 #:use-module (gnu packages flex)
105 #:use-module (gnu packages fonts)
106 #:use-module (gnu packages file-systems)
107 #:use-module (gnu packages fontutils)
108 #:use-module (gnu packages freedesktop)
109 #:use-module (gnu packages game-development)
110 #:use-module (gnu packages gcc)
111 #:use-module (gnu packages gettext)
112 #:use-module (gnu packages ghostscript)
113 #:use-module (gnu packages gimp)
114 #:use-module (gnu packages gl)
115 #:use-module (gnu packages glib)
116 #:use-module (gnu packages gnupg)
117 #:use-module (gnu packages gnuzilla)
118 #:use-module (gnu packages geo)
119 #:use-module (gnu packages gperf)
120 #:use-module (gnu packages graphviz)
121 #:use-module (gnu packages gstreamer)
122 #:use-module (gnu packages gtk)
123 #:use-module (gnu packages guile)
124 #:use-module (gnu packages ibus)
125 #:use-module (gnu packages icu4c)
126 #:use-module (gnu packages image)
127 #:use-module (gnu packages imagemagick)
128 #:use-module (gnu packages inkscape)
129 #:use-module (gnu packages iso-codes)
130 #:use-module (gnu packages kerberos)
131 #:use-module (gnu packages libcanberra)
132 #:use-module (gnu packages libffi)
133 #:use-module (gnu packages libunistring)
134 #:use-module (gnu packages libunwind)
135 #:use-module (gnu packages libusb)
136 #:use-module (gnu packages linux)
137 #:use-module (gnu packages lirc)
138 #:use-module (gnu packages lua)
139 #:use-module (gnu packages mail)
140 #:use-module (gnu packages mp3)
141 #:use-module (gnu packages multiprecision)
142 #:use-module (gnu packages music)
143 #:use-module (gnu packages ncurses)
144 #:use-module (gnu packages nettle)
145 #:use-module (gnu packages networking)
146 #:use-module (gnu packages ninja)
147 #:use-module (gnu packages node)
148 #:use-module (gnu packages nss)
149 #:use-module (gnu packages openldap)
150 #:use-module (gnu packages package-management)
151 #:use-module (gnu packages password-utils)
152 #:use-module (gnu packages pcre)
153 #:use-module (gnu packages pdf)
154 #:use-module (gnu packages perl)
155 #:use-module (gnu packages photo)
156 #:use-module (gnu packages php)
157 #:use-module (gnu packages pkg-config)
158 #:use-module (gnu packages polkit)
159 #:use-module (gnu packages popt)
160 #:use-module (gnu packages pretty-print)
161 #:use-module (gnu packages protobuf)
162 #:use-module (gnu packages pulseaudio)
163 #:use-module (gnu packages python)
164 #:use-module (gnu packages python-crypto)
165 #:use-module (gnu packages python-web)
166 #:use-module (gnu packages python-xyz)
167 #:use-module (gnu packages rdesktop)
168 #:use-module (gnu packages rdf)
169 #:use-module (gnu packages readline)
170 #:use-module (gnu packages ruby)
171 #:use-module (gnu packages rust)
172 #:use-module (gnu packages samba)
173 #:use-module (gnu packages scanner)
174 #:use-module (gnu packages sdl)
175 #:use-module (gnu packages search)
176 #:use-module (gnu packages selinux)
177 #:use-module (gnu packages slang)
178 #:use-module (gnu packages speech)
179 #:use-module (gnu packages spice)
180 #:use-module (gnu packages sqlite)
181 #:use-module (gnu packages ssh)
182 #:use-module (gnu packages swig)
183 #:use-module (gnu packages tex)
184 #:use-module (gnu packages time)
185 #:use-module (gnu packages tls)
186 #:use-module (gnu packages valgrind)
187 #:use-module (gnu packages version-control)
188 #:use-module (gnu packages video)
189 #:use-module (gnu packages virtualization)
190 #:use-module (gnu packages vpn)
191 #:use-module (gnu packages web)
192 #:use-module (gnu packages webkit)
193 #:use-module (gnu packages xdisorg)
194 #:use-module (gnu packages xiph)
195 #:use-module (gnu packages xml)
196 #:use-module (gnu packages xorg)
197 #:use-module (gnu artwork)
198 #:use-module ((guix build utils) #:select (modify-phases))
199 #:use-module (guix build-system cargo)
200 #:use-module (guix build-system cmake)
201 #:use-module (guix build-system glib-or-gtk)
202 #:use-module (guix build-system gnu)
203 #:use-module (guix build-system meson)
204 #:use-module (guix build-system python)
205 #:use-module (guix build-system trivial)
206 #:use-module (guix download)
207 #:use-module (guix git-download)
208 #:use-module ((guix licenses) #:prefix license:)
209 #:use-module (guix packages)
210 #:use-module (guix utils)
211 #:use-module (guix gexp)
212 #:use-module (guix monads)
213 #:use-module (guix store)
214 #:use-module (ice-9 match)
215 #:use-module (srfi srfi-1))
216
217 (define-public brasero
218 (package
219 (name "brasero")
220 (version "3.12.2")
221 (source (origin
222 (method url-fetch)
223 (uri (string-append "mirror://gnome/sources/brasero/"
224 (version-major+minor version) "/"
225 "brasero-" version ".tar.xz"))
226 (sha256
227 (base32
228 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
229 (build-system glib-or-gtk-build-system)
230 (arguments
231 `(#:configure-flags (list
232 (string-append "--with-girdir="
233 (assoc-ref %outputs "out")
234 "/share/gir-1.0")
235 (string-append "--with-typelibdir="
236 (assoc-ref %outputs "out")
237 "/lib/girepository-1.0"))
238 #:phases
239 (modify-phases %standard-phases
240 (add-before 'configure 'embed-growisofs
241 (lambda* (#:key inputs #:allow-other-keys)
242 (substitute* "plugins/growisofs/burn-growisofs.c"
243 (("\"growisofs") (string-append "\"" (which "growisofs"))))
244 #t)))))
245 (propagated-inputs
246 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
247 (native-inputs
248 `(("intltool" ,intltool)
249 ("itstool" ,itstool)
250 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
251 ("gobject-introspection" ,gobject-introspection)
252 ("pkg-config" ,pkg-config)))
253 (inputs
254 `(("dvd+rw-tools" ,dvd+rw-tools)
255 ("glib" ,glib)
256 ("gnome-doc-utils" ,gnome-doc-utils)
257 ("gstreamer" ,gstreamer)
258 ("gst-plugins-base" ,gst-plugins-base)
259 ("gtk+" ,gtk+)
260 ("libcanberra" ,libcanberra)
261 ("libice" ,libice)
262 ("libnotify" ,libnotify)
263 ("libsm" ,libsm)
264 ("libxml2" ,libxml2)
265 ("totem-pl-parser" ,totem-pl-parser)))
266 (home-page "https://wiki.gnome.org/Apps/Brasero")
267 (synopsis "CD/DVD burning tool for Gnome")
268 (description "Brasero is an application to burn CD/DVD for the Gnome
269 Desktop. It is designed to be as simple as possible and has some unique
270 features to enable users to create their discs easily and quickly.")
271 (license license:gpl2+)))
272
273 (define-public libcloudproviders
274 (package
275 (name "libcloudproviders")
276 (version "0.3.1")
277 (source
278 (origin
279 (method url-fetch)
280 (uri
281 (string-append "mirror://gnome/sources/" name "/"
282 (version-major+minor version) "/"
283 name "-" version ".tar.xz"))
284 (sha256
285 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
286 (build-system meson-build-system)
287 (outputs '("out" "doc"))
288 (arguments
289 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
290 #:configure-flags
291 (list
292 "-Denable-gtk-doc=true")
293 #:phases
294 (modify-phases %standard-phases
295 (add-after 'install 'move-doc
296 (lambda* (#:key outputs #:allow-other-keys)
297 (let* ((out (assoc-ref outputs "out"))
298 (doc (assoc-ref outputs "doc")))
299 (mkdir-p (string-append doc "/share"))
300 (rename-file
301 (string-append out "/share/gtk-doc")
302 (string-append doc "/share/gtk-doc"))
303 #t))))))
304 (native-inputs
305 `(("glib:bin" ,glib "bin")
306 ("gobject-introspection" ,gobject-introspection)
307 ("gtk-doc" ,gtk-doc)
308 ("pkg-config" ,pkg-config)
309 ("vala" ,vala)))
310 (inputs
311 `(("glib" ,glib)
312 ("glib-networking" ,glib-networking)))
313 (synopsis "Cloudproviders Integration API")
314 (description "Libcloudproviders is a DBus API that allows cloud storage sync
315 clients to expose their services. Clients such as file managers and desktop
316 environments can then provide integrated access to the cloud providers
317 services.")
318 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
319 (license license:lgpl3+)))
320
321 (define-public libgrss
322 (package
323 (name "libgrss")
324 (version "0.7.0")
325 (source
326 (origin
327 (method url-fetch)
328 (uri
329 (string-append "mirror://gnome/sources/" name "/"
330 (version-major+minor version) "/"
331 name "-" version ".tar.xz"))
332 (sha256
333 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
334 (build-system glib-or-gtk-build-system)
335 (outputs '("out" "doc"))
336 (arguments
337 `(#:configure-flags
338 (list
339 "--enable-gtk-doc"
340 (string-append "--with-html-dir="
341 (assoc-ref %outputs "doc")
342 "/share/gtk-doc/html"))
343 #:phases
344 (modify-phases %standard-phases
345 (add-after 'unpack 'patch-docbook-xml
346 (lambda* (#:key inputs #:allow-other-keys)
347 (with-directory-excursion "doc/reference"
348 (substitute* "libgrss-docs.sgml"
349 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
350 (string-append (assoc-ref inputs "docbook-xml")
351 "/xml/dtd/docbook/"))))
352 #t)))))
353 (native-inputs
354 `(("docbook-xml" ,docbook-xml-4.1.2)
355 ("gobject-introspection" ,gobject-introspection)
356 ("gtk-doc" ,gtk-doc)
357 ("pkg-config" ,pkg-config)))
358 (propagated-inputs
359 `(("glib" ,glib)
360 ("libsoup" ,libsoup)
361 ("libxml2" ,libxml2)))
362 (synopsis "Glib library for feeds")
363 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
364 and other formats.")
365 (home-page "https://wiki.gnome.org/Projects/Libgrss")
366 (license license:lgpl3+)))
367
368 (define-public gnome-js-common
369 (package
370 (name "gnome-js-common")
371 (version "0.1.2")
372 (source
373 (origin
374 (method url-fetch)
375 (uri
376 (string-append "mirror://gnome/sources/" name "/"
377 (version-major+minor version) "/"
378 name "-" version ".tar.gz"))
379 (sha256
380 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
381 (build-system glib-or-gtk-build-system)
382 (arguments
383 `(#:configure-flags
384 (list
385 "--disable-static")))
386 (native-inputs
387 `(("gettext" ,gettext-minimal)
388 ("intltool" ,intltool)
389 ("pkg-config" ,pkg-config)))
390 (synopsis "Common JS Modules")
391 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
392 bindings.")
393 (home-page "https://wiki.gnome.org/Projects/Seed")
394 (license license:gpl3+)))
395
396 (define-public seed
397 (package
398 (name "seed")
399 (version "3.8.1")
400 (source
401 (origin
402 (method url-fetch)
403 (uri
404 (string-append "mirror://gnome/sources/" name "/"
405 (version-major+minor version) "/"
406 name "-" version ".tar.xz"))
407 (sha256
408 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
409 (patches
410 (search-patches "seed-webkit.patch"))))
411 (build-system glib-or-gtk-build-system)
412 (outputs '("out" "doc"))
413 (arguments
414 `(#:configure-flags
415 (list
416 "--disable-static"
417 "--enable-xorg-module"
418 (string-append "--with-html-dir="
419 (assoc-ref %outputs "doc")
420 "/share/gtk-doc/html")
421 "--with-webkit=4.0")
422 #:phases
423 (modify-phases %standard-phases
424 ;; The seed-webkit.patch patches configure.ac.
425 ;; So the source files need to be re-bootstrapped.
426 (add-after 'unpack 'trigger-bootstrap
427 (lambda _
428 (for-each delete-file
429 (list
430 "configure"
431 "Makefile.in"))
432 #t))
433 (add-after 'unpack 'patch-tests
434 (lambda* (#:key outputs #:allow-other-keys)
435 (substitute* (find-files "." "\\.js$")
436 (("#!/usr/bin/env seed")
437 (string-append "#!" (getcwd) "/src/seed")))
438 #t))
439 (add-before 'build 'patch-docbook-xml
440 (lambda* (#:key inputs #:allow-other-keys)
441 (with-directory-excursion "doc"
442 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
443 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
444 (string-append (assoc-ref inputs "docbook-xml")
445 "/xml/dtd/docbook/"))))
446 #t)))))
447 (native-inputs
448 `(("autoconf" ,autoconf)
449 ("automake" ,automake)
450 ("docbook-xml" ,docbook-xml-4.1.2)
451 ("gettext" ,gettext-minimal)
452 ("gobject-introspection" ,gobject-introspection)
453 ("gtk-doc" ,gtk-doc)
454 ("intltool" ,intltool)
455 ("libtool" ,libtool)
456 ("pkg-config" ,pkg-config)))
457 (inputs
458 `(("cairo" ,cairo)
459 ("dbus" ,dbus)
460 ("dbus-glib" ,dbus-glib)
461 ("gnome-js-common" ,gnome-js-common)
462 ("gtk+" ,gtk+)
463 ("gtk+-2" ,gtk+-2)
464 ("libffi" ,libffi)
465 ("libxml2" ,libxml2)
466 ("mpfr" ,mpfr)
467 ("readline" ,readline)
468 ("sqlite" ,sqlite)
469 ("xscrnsaver" ,libxscrnsaver)))
470 (propagated-inputs
471 `(("glib" ,glib)
472 ("webkit" ,webkitgtk)))
473 (synopsis "GObject JavaScriptCore bridge")
474 (description "Seed is a library and interpreter, dynamically bridging
475 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
476 GNOME platform. It serves as something which enables you to write standalone
477 applications in JavaScript, or easily enable your application to be extensible
478 in JavaScript.")
479 (home-page "https://wiki.gnome.org/Projects/Seed")
480 (license license:lgpl2.0+)))
481
482 (define-public libdmapsharing
483 (package
484 (name "libdmapsharing")
485 (version "3.9.10")
486 (source
487 (origin
488 (method url-fetch)
489 (uri
490 (string-append "https://www.flyn.org/projects/"
491 name "/" name "-" version ".tar.gz"))
492 (sha256
493 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
494 (build-system glib-or-gtk-build-system)
495 (outputs '("out" "doc"))
496 (arguments
497 `(#:tests? #f ; Tests require networking.
498 #:configure-flags
499 (list
500 "--disable-static"
501 (string-append "--with-html-dir="
502 (assoc-ref %outputs "doc")
503 "/share/gtk-doc/html"))
504 #:phases
505 (modify-phases %standard-phases
506 (add-after 'unpack 'patch-docbook-xml
507 (lambda* (#:key inputs #:allow-other-keys)
508 (with-directory-excursion "doc"
509 (substitute* "libdmapsharing-4.0-docs.xml"
510 (("http://www.oasis-open.org/docbook/xml/4.3/")
511 (string-append (assoc-ref inputs "docbook-xml")
512 "/xml/dtd/docbook/"))))
513 #t)))))
514 (native-inputs
515 `(("check" ,check)
516 ("docbook-xml" ,docbook-xml-4.3)
517 ("gobject-introspection" ,gobject-introspection)
518 ("pedansee" ,pedansee)
519 ("pkg-config" ,pkg-config)
520 ("vala" ,vala)))
521 (inputs
522 `(("avahi" ,avahi)
523 ("gdk-pixbuf" ,gdk-pixbuf+svg)
524 ("gee" ,libgee)
525 ("gst-plugins-base" ,gst-plugins-base)
526 ("gtk+" ,gtk+)))
527 (propagated-inputs
528 `(("glib" ,glib)
529 ("glib-networking" ,glib-networking)
530 ("gstreamer" ,gstreamer)
531 ("libsoup" ,libsoup)))
532 (synopsis "Media management library")
533 (description "Libdmapsharing is a library which allows programs to access,
534 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
535 It is written in C using GObject and libsoup.")
536 (home-page "https://launchpad.net/gtx")
537 (license license:lgpl2.1+)))
538
539 (define-public gtx
540 (package
541 (name "gtx")
542 (version "0.2.2")
543 (source
544 (origin
545 (method url-fetch)
546 (uri
547 (string-append "https://launchpad.net/gtx/trunk/"
548 version "/+download/gtx-" version ".tar.gz"))
549 (sha256
550 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
551 (build-system glib-or-gtk-build-system)
552 (outputs '("out" "doc"))
553 (arguments
554 `(#:configure-flags
555 (list
556 "--disable-static"
557 "--enable-gtk-doc"
558 (string-append "--with-html-dir="
559 (assoc-ref %outputs "doc")
560 "/share/gtk-doc/html"))))
561 (native-inputs
562 `(("gobject-introspection" ,gobject-introspection)
563 ("gtk-doc" ,gtk-doc)
564 ("pkg-config" ,pkg-config)))
565 (propagated-inputs
566 `(("glib" ,glib)))
567 (synopsis "GLib Testing Framework")
568 (description "GTX is a small collection of convenience functions intended to
569 enhance the GLib testing framework. With specific emphasis on easing the pain
570 of writing test cases for asynchronous interactions.")
571 (home-page "https://launchpad.net/gtx")
572 (license license:lgpl2.1+)))
573
574 (define-public dee
575 (package
576 (name "dee")
577 (version "1.2.7")
578 (source
579 (origin
580 (method url-fetch)
581 (uri
582 (string-append "https://launchpad.net/dee/1.0/"
583 version "/+download/dee-" version ".tar.gz"))
584 (sha256
585 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
586 (patches
587 (search-patches "dee-vapi.patch"))))
588 (build-system glib-or-gtk-build-system)
589 (outputs '("out" "doc"))
590 (arguments
591 `(#:configure-flags
592 (list
593 "--disable-maintainer-flags"
594 (string-append "--with-pygi-overrides-dir="
595 (assoc-ref %outputs "out")
596 "/lib/python"
597 ,(version-major+minor
598 (package-version python))
599 "/site-packages/gi/overrides")
600 (string-append "--with-html-dir="
601 (assoc-ref %outputs "doc")
602 "/share/gtk-doc/html"))
603 #:phases
604 (modify-phases %standard-phases
605 (add-after 'unpack 'patch-docbook-xml
606 (lambda* (#:key inputs #:allow-other-keys)
607 (with-directory-excursion "doc/reference/dee-1.0"
608 (substitute* "dee-1.0-docs.sgml"
609 (("http://www.oasis-open.org/docbook/xml/4.3/")
610 (string-append (assoc-ref inputs "docbook-xml")
611 "/xml/dtd/docbook/"))))
612 #t))
613 (add-after 'patch-docbook-xml 'disable-failing-tests
614 (lambda _
615 (substitute* "tests/test-icu.c"
616 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
617 "")
618 (("setup, test_ascii_folder, teardown\\);")
619 ""))
620 #t))
621 (add-before 'check 'pre-check
622 (lambda _
623 ;; Tests require a running dbus-daemon.
624 (system "dbus-daemon &")
625 ;; For missing '/etc/machine-id'.
626 (setenv "DBUS_FATAL_WARNINGS" "0")
627 #t)))))
628 (native-inputs
629 `(("dbus" ,dbus)
630 ("dbus-test-runner" ,dbus-test-runner)
631 ("docbook-xml" ,docbook-xml-4.3)
632 ("gobject-introspection" ,gobject-introspection)
633 ("gtk-doc" ,gtk-doc)
634 ;; Would only be required by configure flag "--enable-extended-tests".
635 ;("gtx" ,gtx)
636 ("pkg-config" ,pkg-config)
637 ("pygobject" ,python-pygobject)
638 ("python" ,python-wrapper)
639 ("vala" ,vala)))
640 (inputs
641 `(("icu" ,icu4c)))
642 (propagated-inputs
643 `(("glib" ,glib)))
644 (synopsis "Model to synchronize multiple instances over DBus")
645 (description "Dee is a library that uses DBus to provide objects allowing
646 you to create Model-View-Controller type programs across DBus. It also consists
647 of utility objects which extend DBus allowing for peer-to-peer discoverability
648 of known objects without needing a central registrar.")
649 (home-page "https://launchpad.net/dee")
650 (license
651 ;; Dual-licensed
652 (list
653 license:lgpl3+
654 license:gpl3+))))
655
656 (define-public zeitgeist
657 (package
658 (name "zeitgeist")
659 (version "1.0.2")
660 (source
661 (origin
662 (method git-fetch)
663 (uri
664 (git-reference
665 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
666 (commit
667 (string-append "v" version))))
668 (file-name
669 (git-file-name name version))
670 (sha256
671 (base32 "0ig3d3j1n0ghaxsgfww6g2hhcdwx8cljwwfmp9jk1nrvkxd6rnmv"))))
672 (build-system glib-or-gtk-build-system)
673 (arguments
674 `(#:configure-flags
675 (list
676 "--enable-explain-queries"
677 "--enable-fts"
678 "--enable-docs")
679 #:phases
680 (modify-phases %standard-phases
681 (add-after 'unpack 'patch-docbook-xml
682 (lambda* (#:key inputs #:allow-other-keys)
683 (with-directory-excursion "doc/libzeitgeist"
684 (substitute* "zeitgeist-gtkdoc-index.sgml"
685 (("http://www.oasis-open.org/docbook/xml/4.3/")
686 (string-append (assoc-ref inputs "docbook-xml")
687 "/xml/dtd/docbook/"))))
688 #t))
689 (add-after 'patch-docbook-xml 'disable-failing-tests
690 (lambda _
691 (substitute* "test/direct/Makefile.am"
692 ((" log-test ")
693 ""))
694 (substitute* "test/c/Makefile.am"
695 ((" test-log ")
696 ""))
697 #t))
698 (add-before 'bootstrap 'remove-autogen-script
699 (lambda _
700 ;; To honor `autoreconf -vif` by build-system.
701 (delete-file "autogen.sh")
702 #t)))))
703 (native-inputs
704 `(("autoconf" ,autoconf)
705 ("automake" ,automake)
706 ("docbook-xml" ,docbook-xml-4.3)
707 ("gettext" ,gettext-minimal)
708 ("gobject-introspection" ,gobject-introspection)
709 ("gtk-doc" ,gtk-doc)
710 ("libtool" ,libtool)
711 ("pkg-config" ,pkg-config)
712 ("vala" ,vala)
713 ("xorg-server-for-tests" ,xorg-server-for-tests)))
714 (inputs
715 `(("dee-icu" ,dee)
716 ("gtk+" ,gtk+)
717 ("json-glib" ,json-glib)
718 ("sqlite" ,sqlite)
719 ("telepathy-glib" ,telepathy-glib)
720 ("python" ,python-wrapper)
721 ("python-rdflib" ,python-rdflib)
722 ("xapian-config" ,xapian)))
723 (propagated-inputs
724 `(("glib" ,glib)))
725 (synopsis "Desktop Activity Logging")
726 (description "Zeitgeist is a service which logs the users’s activities and
727 events, anywhere from files opened to websites visited and conversations. It
728 makes this information readily available for other applications to use. It is
729 able to establish relationships between items based on similarity and usage
730 patterns.")
731 (home-page "https://zeitgeist.freedesktop.org/")
732 (license
733 ;; Dual-licensed
734 (list
735 license:lgpl2.1+
736 license:gpl2+))))
737
738 (define-public gnome-photos
739 (package
740 (name "gnome-photos")
741 (version "3.34.2")
742 (source
743 (origin
744 (method url-fetch)
745 (uri
746 (string-append "mirror://gnome/sources/" name "/"
747 (version-major+minor version) "/"
748 name "-" version ".tar.xz"))
749 (sha256
750 (base32
751 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
752 (build-system meson-build-system)
753 (arguments
754 `(#:glib-or-gtk? #t
755 #:configure-flags
756 (list "-Ddogtail=false" ; Not available
757 ;; Required for RUNPATH validation.
758 (string-append "-Dc_link_args=-Wl,-rpath="
759 (assoc-ref %outputs "out") "/lib/gnome-photos"))
760 #:phases
761 (modify-phases %standard-phases
762 (add-after 'install 'wrap-gnome-photos
763 (lambda* (#:key inputs outputs #:allow-other-keys)
764 (let*
765 ((out (assoc-ref outputs "out")))
766 (wrap-program (string-append out "/bin/gnome-photos")
767 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
768 #t)))))
769 (native-inputs
770 `(("dbus" ,dbus)
771 ("desktop-file-utils" ,desktop-file-utils)
772 ("gettext" ,gettext-minimal)
773 ("git" ,git-minimal)
774 ("glib:bin" ,glib "bin")
775 ("gobject-introspection" ,gobject-introspection)
776 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
777 ("gtk+:bin" ,gtk+ "bin")
778 ("itstool" ,itstool)
779 ("pkg-config" ,pkg-config)))
780 (inputs
781 `(("babl" ,babl)
782 ("cairo" ,cairo)
783 ("gdk-pixbuf" ,gdk-pixbuf+svg)
784 ("gegl" ,gegl)
785 ("geocode-glib" ,geocode-glib)
786 ("gexiv2" ,gexiv2)
787 ("gnome-online-accounts" ,gnome-online-accounts)
788 ("gnome-online-miners" ,gnome-online-miners)
789 ("grilo" ,grilo)
790 ("grilo-plugins" ,grilo-plugins)
791 ("gtk+" ,gtk+)
792 ("libdazzle" ,libdazzle)
793 ("libgdata" ,libgdata)
794 ("libgfbgraph" ,gfbgraph)
795 ("libjpeg" ,libjpeg-turbo)
796 ("libpng" ,libpng)
797 ("librest" ,rest)
798 ("pygobject" ,python-pygobject)
799 ("tracker" ,tracker)
800 ("tracker-miners" ,tracker-miners)))
801 (synopsis "Access, organize and share your photos on GNOME desktop")
802 (description "GNOME Photos is a simple and elegant replacement for using a
803 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
804 cloud integration is offered through GNOME Online Accounts.")
805 (home-page "https://wiki.gnome.org/Apps/Photos")
806 (license license:gpl3+)))
807
808 (define-public gnome-music
809 (package
810 (name "gnome-music")
811 (version "3.34.5")
812 (source
813 (origin
814 (method url-fetch)
815 (uri
816 (string-append "mirror://gnome/sources/" name "/"
817 (version-major+minor version) "/"
818 name "-" version ".tar.xz"))
819 (sha256
820 (base32
821 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
822 (build-system meson-build-system)
823 (arguments
824 `(#:glib-or-gtk? #t
825 #:phases
826 (modify-phases %standard-phases
827 (add-after 'install 'wrap-gnome-music
828 (lambda* (#:key inputs outputs #:allow-other-keys)
829 (let*
830 ((out (assoc-ref outputs "out"))
831 (pylib (string-append out "/lib/python"
832 ,(version-major+minor
833 (package-version python))
834 "/site-packages")))
835 (wrap-program (string-append out "/bin/gnome-music")
836 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
837 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
838 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
839 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
840 #t)))))
841 (native-inputs
842 `(("desktop-file-utils" ,desktop-file-utils)
843 ("gettext" ,gettext-minimal)
844 ("glib:bin" ,glib "bin")
845 ("gobject-introspection" ,gobject-introspection)
846 ("gtk+:bin" ,gtk+ "bin")
847 ("itstools" ,itstool)
848 ("pkg-config" ,pkg-config)))
849 (inputs
850 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
851 ("grilo" ,grilo)
852 ("grilo-plugins" ,grilo-plugins)
853 ("gst-plugins-base" ,gst-plugins-base)
854 ("gstreamer" ,gstreamer)
855 ("gvfs" ,gvfs)
856 ("libdazzle" ,libdazzle)
857 ("libmediaart" ,libmediaart)
858 ("libsoup" ,libsoup)
859 ("pycairo" ,python-pycairo)
860 ("pygobject" ,python-pygobject)
861 ("tracker" ,tracker)
862 ("tracker-miners" ,tracker-miners)))
863 (synopsis "Simple music player for GNOME desktop")
864 (description "GNOME Music is the new GNOME music playing application that
865 aims to combine an elegant and immersive browsing experience with simple
866 and straightforward controls.")
867 (home-page "https://wiki.gnome.org/Apps/Music")
868 (license license:gpl2+)))
869
870 (define-public portablexdr
871 (package
872 (name "portablexdr")
873 (version "4.9.1")
874 (source
875 (origin
876 (method url-fetch)
877 (uri
878 (string-append "https://people.redhat.com/~rjones/" name "/files/"
879 name "-" version ".tar.gz"))
880 (sha256
881 (base32
882 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
883 (build-system gnu-build-system)
884 (synopsis "External Data Representation Library")
885 (description "PortableXDR is an implementation of External Data
886 Representation (XDR) Library. It is a standard data serialization format, for
887 uses such as computer network protocols. It allows data to be transferred
888 between different kinds of computer systems.")
889 (home-page "https://people.redhat.com/~rjones/portablexdr/")
890 (license
891 (list
892 license:gpl2+
893 license:lgpl2.1+))))
894
895 (define-public tepl
896 (package
897 (name "tepl")
898 (version "4.4.0")
899 (source
900 (origin
901 (method url-fetch)
902 (uri
903 (string-append "mirror://gnome/sources/" name "/"
904 (version-major+minor version) "/"
905 name "-" version ".tar.xz"))
906 (sha256
907 (base32
908 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
909 (build-system glib-or-gtk-build-system)
910 (arguments
911 `(#:tests? #f)) ; FIX-ME: Requires gvfs
912 (native-inputs
913 `(("gobject-introspection" ,gobject-introspection)
914 ("pkg-config" ,pkg-config)))
915 (inputs
916 `(("amtk" ,amtk)
917 ("glib" ,glib)
918 ("gtk+" ,gtk+)
919 ("gtksourceview" ,gtksourceview)
920 ("libxml2" ,libxml2)
921 ("uchardet" ,uchardet)))
922 (synopsis "Text editor product line")
923 (description "Tepl is a library that eases the development of
924 GtkSourceView-based text editors and IDEs.")
925 (home-page "https://wiki.gnome.org/Projects/Tepl")
926 (license license:lgpl2.1+)))
927
928 (define-public krb5-auth-dialog
929 (package
930 (name "krb5-auth-dialog")
931 (version "3.26.1")
932 (source
933 (origin
934 (method url-fetch)
935 (uri
936 (string-append "mirror://gnome/sources/" name "/"
937 (version-major+minor version) "/"
938 name "-" version ".tar.xz"))
939 (sha256
940 (base32
941 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
942 (build-system glib-or-gtk-build-system)
943 (native-inputs
944 `(("intltool" ,intltool)
945 ("itstool" ,itstool)
946 ("libxml2" ,libxml2)
947 ("pkg-config" ,pkg-config)
948 ("python-wrapper" ,python-wrapper)))
949 (inputs
950 `(("glib" ,glib)
951 ("gtk+" ,gtk+)
952 ("libnotify" ,libnotify)
953 ("mit-krb5" ,mit-krb5)
954 ("network-manager" ,network-manager)))
955 (synopsis "Popup dialogs for Kerberos 5")
956 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
957 tickets, and pops up a dialog when they are about to expire.")
958 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
959 (license license:gpl2+)))
960
961 (define-public notification-daemon
962 (package
963 (name "notification-daemon")
964 (version "3.20.0")
965 (source
966 (origin
967 (method url-fetch)
968 (uri
969 (string-append "mirror://gnome/sources/" name "/"
970 (version-major+minor version) "/"
971 name "-" version ".tar.xz"))
972 (sha256
973 (base32
974 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
975 (build-system glib-or-gtk-build-system)
976 (native-inputs
977 `(("intltool" ,intltool)
978 ("pkg-config" ,pkg-config)))
979 (inputs
980 `(("glib" ,glib)
981 ("gtk+" ,gtk+)
982 ("x11" ,libx11)))
983 (synopsis "Notification Daemon for GNOME Desktop")
984 (description "Notification-Daemon is the server implementation of the
985 freedesktop.org desktop notification specification.")
986 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
987 (license license:gpl2+)))
988
989 (define-public mm-common
990 (package
991 (name "mm-common")
992 (version "1.0.2")
993 (source (origin
994 (method url-fetch)
995 (uri (string-append "mirror://gnome/sources/mm-common/"
996 (version-major+minor version) "/"
997 "mm-common-" version ".tar.xz"))
998 (sha256
999 (base32
1000 "07b4s5ckcz9q5gwx8vchim19mhfgl8wysqwi30pndks3m4zrzad2"))))
1001 (build-system meson-build-system)
1002 (arguments
1003 `(#:phases
1004 (modify-phases %standard-phases
1005 (add-after 'unpack 'patch
1006 (lambda* (#:key inputs #:allow-other-keys)
1007 (substitute* "util/mm-common-prepare.in"
1008 (("ln") (string-append (assoc-ref inputs "coreutils")
1009 "/bin/ln"))
1010 (("cp") (string-append (assoc-ref inputs "coreutils")
1011 "/bin/cp"))
1012 (("sed") (string-append (assoc-ref inputs "sed")
1013 "/bin/sed"))
1014 (("cat") (string-append (assoc-ref inputs "coreutils")
1015 "/bin/cat")))
1016 #t)))))
1017 (native-inputs
1018 `(("coreutils" ,coreutils)
1019 ("gettext" ,gettext-minimal)
1020 ("pkg-config" ,pkg-config)
1021 ("sed" ,sed)))
1022 (inputs
1023 `(("python" ,python)))
1024 (synopsis "Module of GNOME C++ bindings")
1025 (description "The mm-common module provides the build infrastructure
1026 and utilities shared among the GNOME C++ binding libraries. Release
1027 archives of mm-common include the Doxygen tag file for the GNU C++
1028 Library reference documentation.")
1029 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1030 (license license:gpl2+)))
1031
1032 (define-public phodav
1033 (package
1034 (name "phodav")
1035 (version "2.5")
1036 (source (origin
1037 (method url-fetch)
1038 (uri (string-append "mirror://gnome/sources/" name "/"
1039 (version-major+minor version) "/"
1040 name "-" version ".tar.xz"))
1041 (sha256
1042 (base32
1043 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1044 (build-system meson-build-system)
1045 (arguments
1046 `(#:phases
1047 (modify-phases %standard-phases
1048 (add-before 'check 'start-virtual-dir-server
1049 ;; The same server when started by tests/virtual-dir returns an
1050 ;; unexpected status (4 instead of 200) and fails a test. It is
1051 ;; unclear why starting it manually here makes it pass.
1052 (lambda _
1053 (system "tests/virtual-dir-server &")
1054 #t)))))
1055 (native-inputs
1056 `(("docbook-xml" ,docbook-xml-4.3)
1057 ("gettext" ,gettext-minimal)
1058 ("glib:bin" ,glib "bin")
1059 ("gtk-doc" ,gtk-doc)
1060 ("pkg-config" ,pkg-config)))
1061 (inputs
1062 `(("avahi" ,avahi)
1063 ("libgudev" ,libgudev)
1064 ("libsoup" ,libsoup)))
1065 (synopsis "WebDav server implementation using libsoup")
1066 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1067 but it is generic enough to be reused in other projects,
1068 in particular in the GNOME desktop.")
1069 (home-page "https://wiki.gnome.org/phodav")
1070 (license license:lgpl2.1+)))
1071
1072 (define-public gnome-color-manager
1073 (package
1074 (name "gnome-color-manager")
1075 (version "3.32.0")
1076 (source (origin
1077 (method url-fetch)
1078 (uri (string-append "mirror://gnome/sources/" name "/"
1079 (version-major+minor version) "/"
1080 name "-" version ".tar.xz"))
1081 (sha256
1082 (base32
1083 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1084 (build-system meson-build-system)
1085 (arguments
1086 `(#:glib-or-gtk? #t
1087 #:phases
1088 (modify-phases %standard-phases
1089 (add-before
1090 'check 'pre-check
1091 (lambda _
1092 ;; Tests require a running X server.
1093 (system "Xvfb :1 &")
1094 (setenv "DISPLAY" ":1")
1095 #t)))))
1096 (native-inputs
1097 `(("desktop-file-utils" ,desktop-file-utils)
1098 ("gettext" ,gettext-minimal)
1099 ("glib:bin" ,glib "bin")
1100 ("gtk+:bin" ,gtk+ "bin")
1101 ("itstool" ,itstool)
1102 ("pkg-config" ,pkg-config)
1103 ("xorg-server" ,xorg-server-for-tests)))
1104 (inputs
1105 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1106 ("appstream-glib" ,appstream-glib)
1107 ("colord-gtk" ,colord-gtk)
1108 ("exiv2" ,exiv2)
1109 ("gnome-desktop" ,gnome-desktop)
1110 ("libcanberra" ,libcanberra)
1111 ("libexif" ,libexif)
1112 ("libtiff" ,libtiff)
1113 ("libxrandr" ,libxrandr)
1114 ("libxtst" ,libxtst)
1115 ("libxxf86vm" ,libxxf86vm)
1116 ("vte" ,vte)
1117 ("xorgproto" ,xorgproto)))
1118 (synopsis "Color profile manager for the GNOME desktop")
1119 (description "GNOME Color Manager is a session framework that makes
1120 it easy to manage, install and generate color profiles
1121 in the GNOME desktop.")
1122 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1123 (license license:gpl2+)))
1124
1125 (define-public gnome-online-miners
1126 (package
1127 (name "gnome-online-miners")
1128 (version "3.34.0")
1129 (source (origin
1130 (method url-fetch)
1131 (uri (string-append "mirror://gnome/sources/" name "/"
1132 (version-major+minor version) "/"
1133 name "-" version ".tar.xz"))
1134 (sha256
1135 (base32
1136 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1137 (build-system glib-or-gtk-build-system)
1138 (native-inputs
1139 `(("gettext" ,gettext-minimal)
1140 ("glib:bin" ,glib "bin")
1141 ("gobject-introspection" ,gobject-introspection)
1142 ("gtk+:bin" ,gtk+ "bin")
1143 ("pkg-config" ,pkg-config)))
1144 (inputs
1145 `(("gnome-online-accounts" ,gnome-online-accounts)
1146 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1147 ("grilo" ,grilo)
1148 ("libgdata" ,libgdata)
1149 ("libgfbgraph" ,gfbgraph)
1150 ("libzapojit" ,libzapojit)
1151 ("rest" ,rest)
1152 ("tracker" ,tracker)))
1153 (synopsis "Web Crawlers for GNOME")
1154 (description "GNOME Online Miners provides a set of crawlers that
1155 go through your online content and index them locally in Tracker.
1156 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1157 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1158 (license license:gpl2+)))
1159
1160 (define-public gssdp
1161 (package
1162 (name "gssdp")
1163 (version "1.2.3")
1164 (source (origin
1165 (method url-fetch)
1166 (uri (string-append "mirror://gnome/sources/" name "/"
1167 (version-major+minor version) "/"
1168 name "-" version ".tar.xz"))
1169 (sha256
1170 (base32
1171 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1172 (build-system meson-build-system)
1173 (native-inputs
1174 `(("gettext" ,gettext-minimal)
1175 ("glib:bin" ,glib "bin")
1176 ("gobject-introspection" ,gobject-introspection)
1177 ("gtk-doc" ,gtk-doc)
1178 ("pkg-config" ,pkg-config)
1179 ("vala" ,vala)))
1180 (inputs
1181 `(("gtk+" ,gtk+)
1182 ("libsoup" ,libsoup)))
1183 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1184 Protocol} for GNOME")
1185 (description "This package provides a library to handle resource discovery
1186 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1187 a debugging tool, @command{gssdp-device-sniffer}.")
1188 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1189 (license license:lgpl2.0+)))
1190
1191 (define-public gupnp
1192 (package
1193 (name "gupnp")
1194 (version "1.2.4")
1195 (source (origin
1196 (method url-fetch)
1197 (uri (string-append "mirror://gnome/sources/" name "/"
1198 (version-major+minor version) "/"
1199 name "-" version ".tar.xz"))
1200 (sha256
1201 (base32
1202 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1203 (build-system meson-build-system)
1204 (native-inputs
1205 `(("gettext" ,gettext-minimal)
1206 ("glib:bin" ,glib "bin")
1207 ("gobject-introspection" ,gobject-introspection)
1208 ("gtk-doc" ,gtk-doc)
1209 ("pkg-config" ,pkg-config)
1210 ("vala" ,vala)))
1211 (inputs
1212 `(("gssdp" ,gssdp)
1213 ("gtk+" ,gtk+)
1214 ("libsoup" ,libsoup)))
1215 (synopsis "PnP API for GNOME")
1216 (description "This package provides GUPnP, an object-oriented framework
1217 for creating UPnP devices and control points, written in C using
1218 @code{GObject} and @code{libsoup}.")
1219 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1220 (license license:lgpl2.0+)))
1221
1222 (define-public gupnp-dlna
1223 (package
1224 (name "gupnp-dlna")
1225 (version "0.10.5")
1226 (source (origin
1227 (method url-fetch)
1228 (uri (string-append "mirror://gnome/sources/" name "/"
1229 (version-major+minor version) "/"
1230 name "-" version ".tar.xz"))
1231 (sha256
1232 (base32
1233 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1234 (build-system gnu-build-system)
1235 (native-inputs
1236 `(("gettext" ,gettext-minimal)
1237 ("glib:bin" ,glib "bin")
1238 ("gobject-introspection" ,gobject-introspection)
1239 ("gtk-doc" ,gtk-doc)
1240 ("libxml" ,libxml2)
1241 ("pkg-config" ,pkg-config)
1242 ("vala" ,vala)))
1243 (inputs
1244 `(("gstreamer" ,gstreamer)
1245 ("gupnp" ,gupnp)))
1246 (propagated-inputs
1247 `(("gst-plugins-base" ,gst-plugins-base)
1248 ("gst-plugins-good" ,gst-plugins-good)))
1249 (synopsis "GUPnP DLNA for GNOME")
1250 (description "This package provides a small utility library to
1251 support DLNA-related tasks such as media profile guessing, transcoding to a
1252 given profile, etc. DLNA is a subset of UPnP A/V.")
1253 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1254 (license license:lgpl2.0+)))
1255
1256 (define-public gupnp-av
1257 (package
1258 (name "gupnp-av")
1259 (version "0.12.11")
1260 (source (origin
1261 (method url-fetch)
1262 (uri (string-append "mirror://gnome/sources/" name "/"
1263 (version-major+minor version) "/"
1264 name "-" version ".tar.xz"))
1265 (sha256
1266 (base32
1267 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1268 (build-system gnu-build-system)
1269 (native-inputs
1270 `(("gettext" ,gettext-minimal)
1271 ("glib:bin" ,glib "bin")
1272 ("gobject-introspection" ,gobject-introspection)
1273 ("gtk-doc" ,gtk-doc)
1274 ("libxml" ,libxml2)
1275 ("pkg-config" ,pkg-config)))
1276 (inputs
1277 `(("gtk+" ,gtk+)
1278 ("gupnp" ,gupnp)))
1279 (synopsis "GUPnP A/V for GNOME")
1280 (description "This package provides a small library for handling
1281 and implementation of UPnP A/V profiles.")
1282 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1283 (license license:lgpl2.0+)))
1284
1285 (define-public libmediaart
1286 (package
1287 (name "libmediaart")
1288 (version "1.9.4")
1289 (source (origin
1290 (method url-fetch)
1291 (uri (string-append "mirror://gnome/sources/" name "/"
1292 (version-major+minor version) "/"
1293 name "-" version ".tar.xz"))
1294 (sha256
1295 (base32
1296 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
1297 (build-system gnu-build-system)
1298 (native-inputs
1299 `(("glib:bin" ,glib "bin")
1300 ("pkg-config" ,pkg-config)))
1301 (inputs
1302 `(("gdk-pixbuf" ,gdk-pixbuf)
1303 ("gettext" ,gettext-minimal)
1304 ("gobject-introspection" ,gobject-introspection)
1305 ("gtk+:doc" ,gtk+ "doc")
1306 ("vala" ,vala)))
1307 (synopsis "Media art library for the GNOME desktop")
1308 (description
1309 "The libmediaart library is the foundation for media art caching,
1310 extraction, and lookup for applications on the desktop.")
1311 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1312 (license license:lgpl2.1+)))
1313
1314 (define-public gnome-initial-setup
1315 (package
1316 (name "gnome-initial-setup")
1317 (version "3.32.1")
1318 (source (origin
1319 (method url-fetch)
1320 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1321 (version-major+minor version)
1322 "/gnome-initial-setup-" version ".tar.xz"))
1323 (sha256
1324 (base32
1325 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1326 (build-system meson-build-system)
1327 (arguments
1328 '(#:configure-flags '(;; Enable camera support for user selfie.
1329 "-Dcheese=auto"
1330 "-Dsystemd=false")
1331 #:phases (modify-phases %standard-phases
1332 (add-after 'unpack 'set-gkbd-file-name
1333 (lambda* (#:key inputs #:allow-other-keys)
1334 ;; Allow the "Preview" button in the keyboard layout
1335 ;; selection dialog to display the layout.
1336 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1337 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1338 (("\"gkbd-keyboard-display")
1339 (string-append "\"" libgnomekbd
1340 "/bin/gkbd-keyboard-display")))
1341 #t))))))
1342 (native-inputs
1343 `(("gettext" ,gettext-minimal)
1344 ("glib:bin" ,glib "bin")
1345 ("gobject-introspection" ,gobject-introspection)
1346 ("gtk+:bin" ,gtk+ "bin")
1347 ("pkg-config" ,pkg-config)))
1348 (inputs
1349 `(("accountsservice" ,accountsservice)
1350 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1351 ("gdm" ,gdm)
1352 ("geoclue" ,geoclue)
1353 ("gnome-desktop" ,gnome-desktop)
1354 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1355 ("gnome-online-accounts" ,gnome-online-accounts)
1356 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1357 ("gstreamer" ,gstreamer)
1358 ("ibus" ,ibus)
1359 ("json-glib" ,json-glib)
1360 ("krb5" ,mit-krb5)
1361 ("libgweather" ,libgweather)
1362 ("libnma" ,libnma)
1363 ("libsecret" ,libsecret)
1364 ("network-manager" ,network-manager)
1365 ("packagekit" ,packagekit)
1366 ("polkit" ,polkit)
1367 ("pwquality" ,libpwquality)
1368 ("rest" ,rest)
1369 ("upower" ,upower)
1370 ("webkitgtk" ,webkitgtk)
1371 ("libgnomekbd" ,libgnomekbd)))
1372 (synopsis "Initial setup wizard for GNOME desktop")
1373 (description "This package provides a set-up wizard when a
1374 user logs into GNOME for the first time. It typically provides a
1375 tour of all gnome components and allows the user to set them up.")
1376 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1377 (license license:gpl2)))
1378
1379 (define-public gnome-user-share
1380 (package
1381 (name "gnome-user-share")
1382 (version "3.33.1")
1383 (source (origin
1384 (method url-fetch)
1385 (uri (string-append "mirror://gnome/sources/" name "/"
1386 (version-major+minor version) "/"
1387 name "-" version ".tar.xz"))
1388 (sha256
1389 (base32
1390 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1391 (build-system meson-build-system)
1392 (arguments
1393 `(#:glib-or-gtk? #t
1394 #:configure-flags
1395 `("-Dsystemd=false"
1396 ;; Enable nautilus extension for file sharing.
1397 "-Dnautilus_extension=true")))
1398 (native-inputs
1399 `(("gettext" ,gettext-minimal)
1400 ("glib:bin" ,glib "bin")
1401 ("gobject-introspection" ,gobject-introspection)
1402 ("gtk+:bin" ,gtk+ "bin")
1403 ("pkg-config" ,pkg-config)
1404 ("yelp-tools" ,yelp-tools)))
1405 (inputs
1406 `(("glib" ,glib)
1407 ("gnome-bluetooth" ,gnome-bluetooth)
1408 ("gtk+" ,gtk+)
1409 ("libcanberra" ,libcanberra)
1410 ("libnotify" ,libnotify)
1411 ("nautilus" ,nautilus))) ; For nautilus extension.
1412 (synopsis "File sharing for GNOME desktop")
1413 (description "GNOME User Share is a small package that binds together
1414 various free software projects to bring easy to use user-level file
1415 sharing to the masses.")
1416 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1417 (license license:gpl2+)))
1418
1419 (define-public sushi
1420 (package
1421 (name "sushi")
1422 (version "3.32.1")
1423 (source (origin
1424 (method url-fetch)
1425 (uri (string-append "mirror://gnome/sources/" name "/"
1426 (version-major+minor version) "/"
1427 name "-" version ".tar.xz"))
1428 (sha256
1429 (base32
1430 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1431 (build-system meson-build-system)
1432 (arguments
1433 `(#:glib-or-gtk? #t
1434 #:phases
1435 (modify-phases %standard-phases
1436 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1437 (lambda* (#:key outputs #:allow-other-keys)
1438 (let ((prog (string-append (assoc-ref outputs "out")
1439 "/bin/sushi")))
1440 ;; Put existing typelibs before sushi's deps, so as to correctly
1441 ;; infer gdk-pixbuf
1442 (wrap-program prog
1443 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1444 #t))))))
1445 (native-inputs
1446 `(("glib:bin" ,glib "bin")
1447 ("gettext" ,gettext-minimal)
1448 ("gobject-introspection" ,gobject-introspection)
1449 ("pkg-config" ,pkg-config)))
1450 (inputs
1451 `(("clutter" ,clutter)
1452 ("clutter-gst" ,clutter-gst)
1453 ("clutter-gtk" ,clutter-gtk)
1454 ("evince" ,evince) ; For file previewing.
1455 ("freetype" ,freetype)
1456 ("gdk-pixbuf" ,gdk-pixbuf)
1457 ("gjs" ,gjs)
1458 ("gst-plugins-base" ,gst-plugins-base)
1459 ("gstreamer" ,gstreamer)
1460 ("gtksourceview" ,gtksourceview-3)
1461 ("harfbuzz" ,harfbuzz)
1462 ("libepoxy" ,libepoxy)
1463 ("libmusicbrainz" ,libmusicbrainz)
1464 ("libxml2" ,libxml2)
1465 ("neon" ,neon)
1466 ("webkitgtk" ,webkitgtk)))
1467 (synopsis "File previewer for the GNOME desktop")
1468 (description "Sushi is a DBus-activated service that allows applications to
1469 preview files on the GNOME desktop.")
1470 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1471 (license license:gpl2+)))
1472
1473 (define-public rygel
1474 (package
1475 (name "rygel")
1476 (version "0.38.3")
1477 (source (origin
1478 (method url-fetch)
1479 (uri (string-append "mirror://gnome/sources/" name "/"
1480 (version-major+minor version) "/"
1481 name "-" version ".tar.xz"))
1482 (sha256
1483 (base32
1484 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1485 (build-system gnu-build-system)
1486 (native-inputs
1487 `(("gettext" ,gettext-minimal)
1488 ("gobject-introspection" ,gobject-introspection)
1489 ("gtk-doc" ,gtk-doc)
1490 ("pkg-config" ,pkg-config)
1491 ("vala" ,vala)))
1492 (inputs
1493 `(("gdk-pixbuf" ,gdk-pixbuf)
1494 ("gssdp" ,gssdp)
1495 ("gstreamer" ,gstreamer)
1496 ("gst-plugins-base" ,gst-plugins-base)
1497 ("gtk+" ,gtk+)
1498 ("gupnp" ,gupnp)
1499 ("gupnp-av" ,gupnp-av)
1500 ("gupnp-dlna" ,gupnp-dlna)
1501 ("libgee" ,libgee)
1502 ("libmediaart" ,libmediaart)
1503 ("libsoup" ,libsoup)
1504 ("libxslt" ,libxslt)
1505 ("libunistring" ,libunistring)
1506 ("tracker" ,tracker)))
1507 (synopsis "Share audio, video, and pictures with other devices")
1508 (description
1509 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1510 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1511 pictures, and to control a media player on your home network.
1512
1513 Rygel achieves interoperability with other devices by trying to conform to the
1514 strict requirements of DLNA and by converting media on-the-fly to formats that
1515 client devices can handle.")
1516 (home-page "https://wiki.gnome.org/Projects/Rygel")
1517 (license (list
1518 ;; For logo (data/icons/*).
1519 license:cc-by-sa3.0
1520 ;; For all others.
1521 license:lgpl2.1+))))
1522
1523 (define-public libnma
1524 (package
1525 (name "libnma")
1526 (version "1.8.28")
1527 (source (origin
1528 (method url-fetch)
1529 (uri (string-append "mirror://gnome/sources/" name "/"
1530 (version-major+minor version) "/"
1531 name "-" version ".tar.xz"))
1532 (sha256
1533 (base32
1534 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1535 (build-system meson-build-system)
1536 (arguments
1537 `(#:phases
1538 (modify-phases %standard-phases
1539 (add-after 'unpack 'patch-docbook-xml
1540 (lambda* (#:key inputs #:allow-other-keys)
1541 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1542 "/xml/dtd/docbook")))
1543 (substitute* "libnma-docs.xml"
1544 (("http://.*/docbookx\\.dtd")
1545 (string-append xmldoc "/docbookx.dtd")))
1546 #t))))))
1547 (native-inputs
1548 `(("docbook-xml" ,docbook-xml-4.3)
1549 ("gettext" ,gettext-minimal)
1550 ("glib:bin" ,glib "bin")
1551 ("gtk-doc" ,gtk-doc)
1552 ("gobject-introspection" ,gobject-introspection)
1553 ("pkg-config" ,pkg-config)
1554 ("vala" ,vala)))
1555 (inputs
1556 `(("gcr" ,gcr)
1557 ("gtk+" ,gtk+)
1558 ("iso-codes" ,iso-codes)
1559 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1560 ("network-manager" ,network-manager)))
1561 (synopsis "Network Manager's applet library")
1562 (description "Libnma is an applet library for Network Manager. It was
1563 initially part of network-manager-applet and has now become a separate
1564 project.")
1565 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1566 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1567 ;; "LGPL-2.1+".
1568 (license license:gpl2+)))
1569
1570 (define-public gnome-menus
1571 (package
1572 (name "gnome-menus")
1573 (version "3.32.0")
1574 (source (origin
1575 (method url-fetch)
1576 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1577 (version-major+minor version) "/"
1578 name "-" version ".tar.xz"))
1579 (sha256
1580 (base32
1581 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1582 (build-system gnu-build-system)
1583 (native-inputs
1584 `(("gettext" ,gettext-minimal)
1585 ("glib" ,glib)
1586 ("pkg-config" ,pkg-config)))
1587 (synopsis "Menu support for GNOME desktop")
1588 (description "GNOME Menus contains the libgnome-menu library, the layout
1589 configuration files for the GNOME menu, as well as a simple menu editor.")
1590 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1591 (license license:lgpl2.0+)))
1592
1593 (define-public deja-dup
1594 (package
1595 (name "deja-dup")
1596 (version "40.6")
1597 (source (origin
1598 (method url-fetch)
1599 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1600 version "/deja-dup-" version ".tar.bz2"))
1601 (sha256
1602 (base32
1603 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1604 (build-system meson-build-system)
1605 (arguments
1606 `(#:glib-or-gtk? #t
1607 #:configure-flags
1608 (list
1609 ;; Otherwise, the RUNPATH will lack the final path component.
1610 (string-append "-Dc_link_args=-Wl,-rpath="
1611 (assoc-ref %outputs "out") "/lib/deja-dup"))
1612 #:phases
1613 (modify-phases %standard-phases
1614 (add-after 'unpack 'patch-paths
1615 (lambda* (#:key inputs #:allow-other-keys)
1616 (let ((python (assoc-ref inputs "python")))
1617 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1618 "libdeja/tests/scripts/instance-error.test")
1619 (("/bin/rm")
1620 (which "rm")))
1621 (substitute* "libdeja/tests/runner.vala"
1622 (("/bin/sh")
1623 (which "sh")))
1624 (substitute* "libdeja/tests/scripts/instance-error.test"
1625 (("`which python3`")
1626 (string-append python "/bin/python3"))))))
1627 (add-after 'unpack 'patch-libgpg-error
1628 (lambda* (#:key inputs #:allow-other-keys)
1629 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1630 (substitute* "meson.build"
1631 (("(gpgerror_libs = ).*" _ var)
1632 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1633 #t))
1634 (add-after 'unpack 'skip-gtk-update-icon-cache
1635 ;; Don't create 'icon-theme.cache'.
1636 (lambda _
1637 (substitute* "data/post-install.sh"
1638 (("gtk-update-icon-cache") "true"))
1639 #t)))))
1640 (inputs
1641 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1642 ("duplicity" ,duplicity)
1643 ("python" ,python)
1644 ("python-pygobject" ,python-pygobject)
1645 ("gtk+" ,gtk+)
1646 ("json-glib" ,json-glib)
1647 ("libnotify" ,libnotify)
1648 ("libgpg-error" ,libgpg-error)
1649 ("libsecret" ,libsecret)
1650 ("libsoup" ,libsoup)
1651 ("packagekit" ,packagekit)))
1652 (native-inputs
1653 `(("appstream-glib" ,appstream-glib)
1654 ("desktop-file-utils" ,desktop-file-utils)
1655 ("gettext" ,gettext-minimal)
1656 ("glib" ,glib "bin") ; for glib-compile-schemas.
1657 ("gobject-introspection" ,gobject-introspection)
1658 ("itstool" ,itstool)
1659 ("pkg-config" ,pkg-config)
1660 ("vala" ,vala)))
1661 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1662 (synopsis "Simple backup tool, for regular encrypted backups")
1663 (description
1664 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1665 uses duplicity as the backend, which supports incremental backups and storage
1666 either on a local, or remote machine via a number of methods.")
1667 (license license:gpl3+)))
1668
1669 (define-public gnome-commander
1670 (package
1671 (name "gnome-commander")
1672 (version "1.10.3")
1673 (source
1674 (origin
1675 (method url-fetch)
1676 (uri (string-append "mirror://gnome/sources/" name "/"
1677 (version-major+minor version) "/"
1678 "gnome-commander-" version ".tar.xz"))
1679 (sha256
1680 (base32 "0bis36awb73vhkncq8yr0qlnyaxynqkvmyqbg57ijqwd0m8hh4zg"))))
1681 (build-system glib-or-gtk-build-system)
1682 (native-inputs
1683 `(("desktop-file-utils" ,desktop-file-utils)
1684 ("gcc" ,gcc-8) ;required for -Wcast-function-type
1685 ("gettext" ,gettext-minimal)
1686 ("glib:bin" ,glib "bin")
1687 ("gobject-introspection" ,gobject-introspection)
1688 ("googletest" ,googletest)
1689 ("intltool" ,intltool)
1690 ("itstool" ,itstool)
1691 ("libtool" ,libtool)
1692 ("pkg-config" ,pkg-config)))
1693 (inputs
1694 `(("gconf" ,gconf)
1695 ("gnome-vfs" ,gnome-vfs)
1696 ("gtk+" ,gtk+-2)
1697 ("libxml2" ,libxml2)))
1698 (home-page "https://gcmd.github.io/")
1699 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1700 (description
1701 "GNOME Commander is a two-pane graphical file manager using GNOME
1702 libraries. It aims to fulfill the demands of more advanced users who
1703 like to focus on file management, their work through special applications
1704 and running smart commands.")
1705 (license license:gpl2+)))
1706
1707 (define-public gnome-user-docs
1708 (package
1709 (name "gnome-user-docs")
1710 (version "3.32.3")
1711 (source
1712 (origin
1713 (method url-fetch)
1714 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1715 (version-major+minor version)
1716 "/gnome-user-docs-" version ".tar.xz"))
1717 (sha256
1718 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1719 (build-system gnu-build-system)
1720 (native-inputs
1721 `(("gettext" ,gettext-minimal)
1722 ("itstool" ,itstool)
1723 ("pkg-config" ,pkg-config)
1724 ("xmllint" ,libxml2)))
1725 (synopsis "User documentation for the GNOME desktop")
1726 (description
1727 "The GNOME User Documentation explains how to use the GNOME desktop and its
1728 components. It covers usage and setup of the core GNOME programs by end-users
1729 and system administrators.")
1730 (home-page "https://live.gnome.org/DocumentationProject")
1731 (license license:cc-by3.0)))
1732
1733 (define-public gnome-getting-started-docs
1734 (package
1735 (name "gnome-getting-started-docs")
1736 (version "3.32.2")
1737 (source
1738 (origin
1739 (method url-fetch)
1740 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1741 (version-major+minor version)
1742 "/gnome-getting-started-docs-" version ".tar.xz"))
1743 (sha256
1744 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1745 (build-system gnu-build-system)
1746 (native-inputs
1747 `(("gettext" ,gettext-minimal)
1748 ("itstool" ,itstool)
1749 ("pkg-config" ,pkg-config)
1750 ("xmllint" ,libxml2)))
1751 (synopsis "Help to get new users started with the GNOME desktop")
1752 (description
1753 "The GNOME Getting Started Documentation contains GNOME's intuitive
1754 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1755
1756 It is normally used together with @command{gnome-initial-setup}, but is also
1757 useful as a tutorial and users' guide for new or less experienced users.")
1758 (home-page "https://live.gnome.org/DocumentationProject")
1759 (license license:cc-by-sa3.0)))
1760
1761 (define-public dia
1762 ;; This version from GNOME's repository includes fixes for compiling with
1763 ;; recent versions of the build tools. The latest activity on the
1764 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1765 ;; fixes since.
1766 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1767 (revision "2"))
1768 (package
1769 (name "dia")
1770 (version (git-version "0.97.3" revision commit))
1771 (source (origin
1772 (method git-fetch)
1773 (uri (git-reference
1774 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1775 (commit commit)))
1776 (file-name (git-file-name name version))
1777 (sha256
1778 (base32
1779 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1780 (build-system meson-build-system)
1781 (inputs
1782 `(("graphene" ,graphene)
1783 ("gtk+" ,gtk+-2)
1784 ("libxml2" ,libxml2)
1785 ("libxslt" ,libxslt)
1786 ("poppler" ,poppler)
1787 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1788 ;; ERROR: Unknown method "dependency" in object.
1789 ("python-2" ,python-2)))
1790 (native-inputs
1791 `(("appstream-glib" ,appstream-glib)
1792 ("docbook-xsl" ,docbook-xsl)
1793 ("glib" ,glib "bin")
1794 ("intltool" ,intltool)
1795 ("pkg-config" ,pkg-config)))
1796 (home-page "https://wiki.gnome.org/Apps/Dia")
1797 (synopsis "Diagram creation for GNOME")
1798 (description "Dia can be used to draw different types of diagrams, and
1799 includes support for UML static structure diagrams (class diagrams), entity
1800 relationship modeling, and network diagrams. The program supports various file
1801 formats like PNG, SVG, PDF and EPS.")
1802 (license license:gpl2+))))
1803
1804 ;; This is the unstable release, but it is required for the current stable
1805 ;; release of gvfs (1.38.1).
1806 (define-public libgdata
1807 (package
1808 (name "libgdata")
1809 (version "0.17.9")
1810 (source (origin
1811 (method url-fetch)
1812 (uri (string-append "mirror://gnome/sources/" name "/"
1813 (version-major+minor version) "/"
1814 name "-" version ".tar.xz"))
1815 (sha256
1816 (base32
1817 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1818 (build-system gnu-build-system)
1819 (arguments
1820 '(#:phases
1821 (modify-phases %standard-phases
1822 (add-before 'check 'disable-failing-tests
1823 (lambda _
1824 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1825 ;; They have been removed in libgdata 0.17.6, so just do the same.
1826 (substitute* "gdata/tests/Makefile"
1827 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1828 #t)))))
1829 (native-inputs
1830 `(("glib:bin" ,glib "bin")
1831 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1832 ("intltool" ,intltool)
1833 ("pkg-config" ,pkg-config)
1834 ("uhttpmock" ,uhttpmock)))
1835 (inputs
1836 `(("cyrus-sasl" ,cyrus-sasl)
1837 ("glib-networking" ,glib-networking)))
1838 (propagated-inputs
1839 `(("gcr" ,gcr)
1840 ("glib" ,glib)
1841 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1842 ("json-glib" ,json-glib)
1843 ("liboauth" ,liboauth)
1844 ("libsoup" ,libsoup)
1845 ("libxml2" ,libxml2)))
1846 (home-page "https://wiki.gnome.org/Projects/libgdata")
1847 (synopsis "Library for accessing online service APIs")
1848 (description
1849 "libgdata is a GLib-based library for accessing online service APIs using
1850 the GData protocol — most notably, Google's services. It provides APIs to
1851 access the common Google services, and has full asynchronous support.")
1852 (license license:lgpl2.1+)))
1853
1854 (define-public libgxps
1855 (package
1856 (name "libgxps")
1857 (version "0.3.1")
1858 (source (origin
1859 (method url-fetch)
1860 (uri (string-append "mirror://gnome/sources/" name "/"
1861 (version-major+minor version) "/"
1862 name "-" version ".tar.xz"))
1863 (sha256
1864 (base32
1865 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1866 (build-system meson-build-system)
1867 (native-inputs
1868 `(("gobject-introspection" ,gobject-introspection)
1869 ("pkg-config" ,pkg-config)))
1870 (inputs
1871 `(("gtk+" ,gtk+)
1872 ("libjpeg" ,libjpeg-turbo)
1873 ("lcms" ,lcms)
1874 ("libtiff" ,libtiff)))
1875 (propagated-inputs
1876 ;; In Requires of libgxps.pc.
1877 `(("cairo" ,cairo)
1878 ("glib" ,glib)
1879 ("libarchive" ,libarchive)))
1880 (home-page "https://wiki.gnome.org/Projects/libgxps")
1881 (synopsis "GObject-based library for handling and rendering XPS documents")
1882 (description
1883 "libgxps is a GObject-based library for handling and rendering XPS
1884 documents. This package also contains binaries that can convert XPS documents
1885 to other formats.")
1886 (license license:lgpl2.1+)))
1887
1888 (define-public gnome-characters
1889 (package
1890 (name "gnome-characters")
1891 (version "3.30.0")
1892 (source
1893 (origin
1894 (method url-fetch)
1895 (uri (string-append "mirror://gnome/sources/"
1896 "gnome-characters/" (version-major+minor version)
1897 "/gnome-characters-" version ".tar.xz"))
1898 (sha256
1899 (base32
1900 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1901 (build-system meson-build-system)
1902 (arguments
1903 `(#:glib-or-gtk? #t
1904 #:phases (modify-phases %standard-phases
1905 (add-after 'install 'wrap
1906 (lambda* (#:key outputs #:allow-other-keys)
1907 ;; GNOME Characters needs Typelib files from GTK and
1908 ;; gnome-desktop.
1909 (wrap-program (string-append (assoc-ref outputs "out")
1910 "/bin/gnome-characters")
1911 `("GI_TYPELIB_PATH" ":" prefix
1912 (,(getenv "GI_TYPELIB_PATH"))))
1913 #t)))))
1914 (native-inputs
1915 `(("gettext" ,gettext-minimal)
1916 ("glib:bin" ,glib "bin")
1917 ("gtk+:bin" ,gtk+ "bin")
1918 ("pkg-config" ,pkg-config)
1919 ("python" ,python-minimal)))
1920 (inputs
1921 `(("gjs" ,gjs)
1922 ("gtk+" ,gtk+)
1923 ("libunistring" ,libunistring)
1924 ("gnome-desktop" ,gnome-desktop)))
1925 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1926 (synopsis "Find and insert unusual characters")
1927 (description "Characters is a simple utility application to find
1928 and insert unusual characters. It allows you to quickly find the
1929 character you are looking for by searching for keywords.")
1930 (license license:bsd-3)))
1931
1932 (define-public gnome-common
1933 (package
1934 (name "gnome-common")
1935 (version "3.18.0")
1936 (source
1937 (origin
1938 (method url-fetch)
1939 (uri (string-append "mirror://gnome/sources/" name "/"
1940 (version-major+minor version) "/"
1941 name "-" version ".tar.xz"))
1942 (sha256
1943 (base32
1944 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1945 (build-system gnu-build-system)
1946 (home-page "https://www.gnome.org/")
1947 (synopsis "Bootstrap GNOME modules built from Git")
1948 (description "gnome-common contains various files needed to bootstrap
1949 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1950 can be used to configure a source directory checked out from Git and some
1951 commonly used macros.")
1952 (license license:gpl2+)))
1953
1954 (define-public gnome-contacts
1955 (package
1956 (name "gnome-contacts")
1957 (version "3.34")
1958 (source (origin
1959 (method url-fetch)
1960 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1961 (version-major+minor version) "/"
1962 name "-" version ".tar.xz"))
1963 (sha256
1964 (base32
1965 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1966 (build-system meson-build-system)
1967 (arguments
1968 `(#:configure-flags '("-Dcheese=false")
1969 #:phases
1970 (modify-phases %standard-phases
1971 (add-after 'unpack 'generate-vapis
1972 (lambda* (#:key inputs #:allow-other-keys)
1973 ;; To generate goa's missing .vapi file
1974 (define goa
1975 (assoc-ref inputs "gnome-online-accounts:lib"))
1976
1977 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1978 "--library=goa-1.0"
1979 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1980 #t))
1981 (add-after 'unpack 'skip-gtk-update-icon-cache
1982 ;; Don't create 'icon-theme.cache'.
1983 (lambda _
1984 (substitute* "build-aux/meson_post_install.py"
1985 (("gtk-update-icon-cache") "true"))
1986 #t)))))
1987 (native-inputs
1988 `(("glib:bin" ,glib "bin")
1989 ("pkg-config" ,pkg-config)))
1990 (inputs
1991 `(("docbook-xml" ,docbook-xml)
1992 ("dockbook-xsl" ,docbook-xsl)
1993 ("evolution-data-server" ,evolution-data-server)
1994 ("gettext" ,gettext-minimal)
1995 ("gnome-desktop" ,gnome-desktop)
1996 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1997 ("gobject-introspection" ,gobject-introspection)
1998 ("gst-plugins-base" ,gst-plugins-base)
1999 ("gtk+" ,gtk+)
2000 ("libgee" ,libgee)
2001 ("libxslt" ,libxslt)
2002 ("telepathy-glib" ,telepathy-glib)
2003 ("vala" ,vala)))
2004 (propagated-inputs
2005 `(("folks" ,folks)
2006 ("telepathy-mission-control" ,telepathy-mission-control)))
2007 (synopsis "GNOME's integrated address book")
2008 (description
2009 "GNOME Contacts organizes your contact information from online and
2010 offline sources, providing a centralized place for managing your contacts.")
2011 (home-page "https://wiki.gnome.org/Apps/Contacts")
2012 (license license:gpl2+)))
2013
2014 (define-public gnome-desktop
2015 (package
2016 (name "gnome-desktop")
2017 (version "3.34.2")
2018 (source
2019 (origin
2020 (method url-fetch)
2021 (uri (string-append "mirror://gnome/sources/" name "/"
2022 (version-major+minor version) "/"
2023 name "-" version ".tar.xz"))
2024 (sha256
2025 (base32
2026 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2027 (build-system meson-build-system)
2028 (arguments
2029 '(#:phases
2030 (modify-phases %standard-phases
2031 (add-before 'configure 'patch-path
2032 (lambda* (#:key inputs #:allow-other-keys)
2033 (let ((libc (assoc-ref inputs "libc")))
2034 (substitute* "libgnome-desktop/gnome-languages.c"
2035 (("\"locale\"")
2036 (string-append "\"" libc "/bin/locale\"")))
2037 #t)))
2038 (add-before 'configure 'patch-bubblewrap
2039 (lambda* (#:key inputs #:allow-other-keys)
2040 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2041 (("\"bwrap\",")
2042 (string-append "\"" (which "bwrap") "\","))
2043 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2044 (string-append "\"--ro-bind\", \""
2045 (%store-directory)
2046 "\", \""
2047 (%store-directory)
2048 "\","))
2049 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2050 #t))
2051 (add-before 'check 'pre-check
2052 (lambda* (#:key inputs #:allow-other-keys)
2053 ;; Tests require a running X server and locales.
2054 (system "Xvfb :1 &")
2055 (setenv "DISPLAY" ":1")
2056 (setenv "GUIX_LOCPATH"
2057 (string-append (assoc-ref inputs "glibc-locales")
2058 "/lib/locale"))
2059 #t)))))
2060 (native-inputs
2061 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2062 ("glibc-locales" ,glibc-locales) ; for tests
2063 ("gobject-introspection" ,gobject-introspection)
2064 ("itstool" ,itstool)
2065 ("intltool" ,intltool)
2066 ("pkg-config" ,pkg-config)
2067 ("xmllint" ,libxml2)
2068 ("xorg-server" ,xorg-server-for-tests)))
2069 (propagated-inputs
2070 ;; Required by gnome-desktop-3.0.pc.
2071 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2072 ("gtk+" ,gtk+)
2073 ("iso-codes" ,iso-codes)
2074 ("libseccomp" ,libseccomp)
2075 ("libx11" ,libx11)
2076 ("xkeyboard-config" ,xkeyboard-config)))
2077 (inputs
2078 `(("gdk-pixbuf" ,gdk-pixbuf)
2079 ("glib" ,glib)
2080 ("bubblewrap" ,bubblewrap)
2081 ("libxext" ,libxext)
2082 ("libxkbfile" ,libxkbfile)
2083 ("libxrandr" ,libxrandr)))
2084 (home-page "https://www.gnome.org/")
2085 (synopsis
2086 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2087 (description
2088 "The libgnome-desktop library provides API shared by several applications
2089 on the desktop, but that cannot live in the platform for various reasons.
2090 There is no API or ABI guarantee, although we are doing our best to provide
2091 stability. Documentation for the API is available with gtk-doc.
2092
2093 The gnome-about program helps find which version of GNOME is installed.")
2094 ; Some bits under the LGPL.
2095 (license license:gpl2+)))
2096
2097 (define-public gnome-doc-utils
2098 (package
2099 (name "gnome-doc-utils")
2100 (version "0.20.10")
2101 (source
2102 (origin
2103 (method url-fetch)
2104 (uri (string-append "mirror://gnome/sources/" name "/"
2105 (version-major+minor version) "/"
2106 name "-" version ".tar.xz"))
2107 (sha256
2108 (base32
2109 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2110 (build-system gnu-build-system)
2111 (native-inputs
2112 `(("intltool" ,intltool)
2113 ("docbook-xml" ,docbook-xml-4.4)
2114 ("python2-libxml2" ,python2-libxml2)
2115 ("libxml2" ,libxml2)
2116 ("libxslt" ,libxslt)
2117 ("pkg-config" ,pkg-config)
2118 ("python-2" ,python-2)))
2119 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2120 (synopsis
2121 "Documentation utilities for the Gnome project")
2122 (description
2123 "Gnome-doc-utils is a collection of documentation utilities for the
2124 Gnome project. It includes xml2po tool which makes it easier to translate
2125 and keep up to date translations of documentation.")
2126 (license license:gpl2+))) ; xslt under lgpl
2127
2128 (define-public gnome-disk-utility
2129 (package
2130 (name "gnome-disk-utility")
2131 (version "3.34.0")
2132 (source (origin
2133 (method url-fetch)
2134 (uri (string-append "mirror://gnome/sources/" name "/"
2135 (version-major+minor version) "/"
2136 name "-" version ".tar.xz"))
2137 (sha256
2138 (base32
2139 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2140 (build-system meson-build-system)
2141 (arguments
2142 '(#:configure-flags '("-Dlogind=libelogind")
2143 #:phases
2144 (modify-phases %standard-phases
2145 (add-after 'unpack 'skip-gtk-update-icon-cache
2146 ;; Don't create 'icon-theme.cache'.
2147 (lambda _
2148 (substitute* "meson_post_install.py"
2149 (("gtk-update-icon-cache") "true"))
2150 #t)))))
2151 (native-inputs
2152 `(("glib:bin" ,glib "bin")
2153 ("intltool" ,intltool)
2154 ("pkg-config" ,pkg-config)
2155 ("docbook-xml" ,docbook-xml)
2156 ("docbook-xsl" ,docbook-xsl)
2157 ("libxml2" ,libxml2)
2158 ("libxslt" ,libxslt)))
2159 (inputs
2160 `(("elogind" ,elogind)
2161 ("glib" ,glib)
2162 ("appstream-glib" ,appstream-glib)
2163 ("gnome-settings-daemon" ,gnome-settings-daemon)
2164 ("gtk+" ,gtk+)
2165 ("libcanberra" ,libcanberra)
2166 ("libdvdread" ,libdvdread)
2167 ("libnotify" ,libnotify)
2168 ("libpwquality" ,libpwquality)
2169 ("libsecret" ,libsecret)
2170 ("udisks" ,udisks)))
2171 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2172 (synopsis "Disk management utility for GNOME")
2173 (description "Disk management utility for GNOME.")
2174 (license license:gpl2+)))
2175
2176 (define-public gnome-font-viewer
2177 (package
2178 (name "gnome-font-viewer")
2179 (version "3.30.0")
2180 (source (origin
2181 (method url-fetch)
2182 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2183 (version-major+minor version)
2184 "/gnome-font-viewer-" version ".tar.xz"))
2185 (sha256
2186 (base32
2187 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2188 (build-system meson-build-system)
2189 (arguments
2190 '(#:phases
2191 (modify-phases %standard-phases
2192 (add-after 'unpack 'patch-post-install-script
2193 (lambda _
2194 (substitute* "meson-postinstall.sh"
2195 (("update-desktop-database") (which "true")))
2196 #t)))))
2197 (native-inputs
2198 `(("gettext" ,gettext-minimal)
2199 ("glib:bin" ,glib "bin")
2200 ("pkg-config" ,pkg-config)))
2201 (inputs
2202 `(("glib" ,glib)
2203 ("gnome-desktop" ,gnome-desktop)
2204 ("gtk+" ,gtk+)))
2205 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2206 (synopsis "GNOME Fonts")
2207 (description "Application to show you the fonts installed on your computer
2208 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2209 the font would look under various sizes.")
2210 (license license:gpl2+)))
2211
2212 (define-public gcr
2213 (package
2214 (name "gcr")
2215 (version "3.34.0")
2216 (source (origin
2217 (method url-fetch)
2218 (uri (string-append "mirror://gnome/sources/" name "/"
2219 (version-major+minor version) "/"
2220 name "-" version ".tar.xz"))
2221 (sha256
2222 (base32
2223 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2224 (build-system gnu-build-system)
2225 (arguments
2226 '(#:phases
2227 (modify-phases %standard-phases
2228 ;; These fail because /var/lib/dbus/machine-id is not present in the
2229 ;; build environment.
2230 (add-after 'unpack 'disable-failing-tests
2231 (lambda _
2232 (substitute* "Makefile.in"
2233 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2234 ""))
2235 #t))
2236 (add-before 'check 'pre-check
2237 (lambda _
2238 ;; Some tests expect to write to $HOME.
2239 (setenv "HOME" "/tmp")
2240 #t)))))
2241 (inputs
2242 `(("dbus" ,dbus)
2243 ("gnupg" ,gnupg) ;called as a child process during tests
2244 ("libgcrypt" ,libgcrypt)))
2245 (native-inputs
2246 `(("python" ,python-wrapper) ;for tests
2247 ("pkg-config" ,pkg-config)
2248 ("gettext" ,gettext-minimal)
2249 ("glib" ,glib "bin")
2250 ("gobject-introspection" ,gobject-introspection)
2251 ("libxml2" ,libxml2)
2252 ("vala" ,vala)
2253 ("xsltproc" ,libxslt)))
2254 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2255 (propagated-inputs
2256 `(("p11-kit" ,p11-kit)
2257 ("glib" ,glib)
2258 ("gtk+" ,gtk+)))
2259 (home-page "https://www.gnome.org")
2260 (synopsis "Libraries for displaying certificates and accessing key stores")
2261 (description
2262 "The GCR package contains libraries used for displaying certificates and
2263 accessing key stores. It also provides the viewer for crypto files on the
2264 GNOME Desktop.")
2265 (license license:lgpl2.1+)))
2266
2267 (define-public gdl
2268 (package
2269 (name "gdl")
2270 (version "3.34.0")
2271 (source (origin
2272 (method git-fetch)
2273 (uri (git-reference
2274 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2275 (commit (string-append "GDL_" (string-map (match-lambda
2276 (#\. #\_)
2277 (c c))
2278 version)))))
2279 (file-name (git-file-name name version))
2280 (sha256
2281 (base32
2282 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2283 (build-system gnu-build-system)
2284 (native-inputs
2285 `(("autoconf" ,autoconf)
2286 ("automake" ,automake)
2287 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2288 ("gnome-common" ,gnome-common)
2289 ("gtk-doc" ,gtk-doc)
2290 ("intltool" ,intltool)
2291 ("pkg-config" ,pkg-config)
2292 ("libtool" ,libtool)
2293 ("which" ,which)))
2294 (inputs
2295 `(("libxml2" ,libxml2)))
2296 (propagated-inputs
2297 ;; The gdl-3.0.pc file 'Requires' GTK+.
2298 `(("gtk+" ,gtk+)))
2299 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2300 (synopsis "GNOME docking library")
2301 (description "This library provides docking features for gtk+.")
2302 (license license:lgpl2.1+)))
2303
2304 ;;; A minimal variant used to break a cycle with Inkscape.
2305 (define-public gdl-minimal
2306 (package
2307 (inherit gdl)
2308 (name "gdl-minimal")
2309 (arguments
2310 '(#:phases
2311 (modify-phases %standard-phases
2312 (add-after 'unpack 'disable-doc-generation
2313 ;; XXX: There is no easy way to disable generating the
2314 ;; documentation.
2315 (lambda _
2316 (substitute* "configure.in"
2317 (("GTK_DOC_CHECK.*") "")
2318 (("docs/.*") ""))
2319 (substitute* "Makefile.am"
2320 (("gdl docs po") "gdl po"))
2321 #t)))))
2322 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2323
2324 (define-public libgnome-keyring
2325 (package
2326 (name "libgnome-keyring")
2327 (version "3.12.0")
2328 (source (origin
2329 (method url-fetch)
2330 (uri (string-append "mirror://gnome/sources/" name "/"
2331 (version-major+minor version) "/"
2332 name "-" version ".tar.xz"))
2333 (sha256
2334 (base32
2335 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2336 (build-system gnu-build-system)
2337 (inputs
2338 `(("libgcrypt" ,libgcrypt)
2339 ("dbus" ,dbus)))
2340 (native-inputs
2341 `(("pkg-config" ,pkg-config)
2342 ("glib" ,glib "bin")
2343 ("intltool" ,intltool)))
2344 (propagated-inputs
2345 ;; Referred to in .h files and .pc.
2346 `(("glib" ,glib)))
2347 (home-page "https://www.gnome.org")
2348 (synopsis "Accessing passwords from the GNOME keyring")
2349 (description
2350 "Client library to access passwords from the GNOME keyring.")
2351
2352 ;; Though a couple of files are LGPLv2.1+.
2353 (license license:lgpl2.0+)))
2354
2355 (define-public gnome-keyring
2356 (package
2357 (name "gnome-keyring")
2358 (version "3.34.0")
2359 (source (origin
2360 (method url-fetch)
2361 (uri (string-append "mirror://gnome/sources/" name "/"
2362 (version-major+minor version) "/"
2363 name "-" version ".tar.xz"))
2364 (sha256
2365 (base32
2366 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2367 (build-system gnu-build-system)
2368 (arguments
2369 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2370 ;not exist
2371 #:configure-flags
2372 (list
2373 (string-append "--with-pkcs11-config="
2374 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2375 (string-append "--with-pkcs11-modules="
2376 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2377 #:phases
2378 (modify-phases %standard-phases
2379 (add-after 'unpack 'fix-/bin/sh-reference
2380 (lambda _
2381 (substitute* "po/Makefile.in.in"
2382 (("/bin/sh") (which "sh")))
2383 #t))
2384 (add-after 'unpack 'fix-docbook
2385 (lambda* (#:key inputs #:allow-other-keys)
2386 (substitute* "docs/Makefile.am"
2387 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2388 (string-append (assoc-ref inputs "docbook-xsl")
2389 "/xml/xsl/docbook-xsl-"
2390 ,(package-version docbook-xsl)
2391 "/manpages/docbook.xsl")))
2392 (setenv "XML_CATALOG_FILES"
2393 (string-append (assoc-ref inputs "docbook-xml")
2394 "/xml/dtd/docbook/catalog.xml"))
2395 ;; Rerun the whole thing to avoid version mismatch ("This is
2396 ;; Automake 1.15.1, but the definition used by this
2397 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2398 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2399 (invoke "autoconf")
2400 (invoke "aclocal")
2401 (invoke "automake" "-ac"))))))
2402 (inputs
2403 `(("libgcrypt" ,libgcrypt)
2404 ("linux-pam" ,linux-pam)
2405 ("openssh" ,openssh)
2406 ("dbus" ,dbus)
2407 ("gcr" ,gcr)))
2408 (native-inputs
2409 `(("pkg-config" ,pkg-config)
2410 ("glib" ,glib "bin")
2411 ("glib" ,glib) ; for m4 macros
2412 ("python" ,python-2) ;for tests
2413 ("intltool" ,intltool)
2414 ("autoconf" ,autoconf)
2415 ("automake" ,automake)
2416 ("libxslt" ,libxslt) ;for documentation
2417 ("docbook-xml" ,docbook-xml-4.2)
2418 ("docbook-xsl" ,docbook-xsl)))
2419 (home-page "https://www.gnome.org")
2420 (synopsis "Daemon to store passwords and encryption keys")
2421 (description
2422 "gnome-keyring is a program that keeps passwords and other secrets for
2423 users. It is run as a daemon in the session, similar to ssh-agent, and other
2424 applications locate it via an environment variable or D-Bus.
2425
2426 The program can manage several keyrings, each with its own master password,
2427 and there is also a session keyring which is never stored to disk, but
2428 forgotten when the session ends.")
2429 (license license:lgpl2.1+)))
2430
2431 (define-public evince
2432 (package
2433 (name "evince")
2434 (version "3.36.5")
2435 (source (origin
2436 (method url-fetch)
2437 (uri (string-append "mirror://gnome/sources/evince/"
2438 (version-major+minor version) "/"
2439 "evince-" version ".tar.xz"))
2440 (sha256
2441 (base32
2442 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2443 (build-system glib-or-gtk-build-system)
2444 (arguments
2445 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2446 #:phases
2447 (modify-phases %standard-phases
2448 (add-before 'install 'skip-gtk-update-icon-cache
2449 ;; Don't create 'icon-theme.cache'.
2450 (lambda _
2451 (substitute* "data/Makefile"
2452 (("gtk-update-icon-cache") "true"))
2453 #t)))))
2454 (inputs
2455 `(("libarchive" ,libarchive)
2456 ("libgxps" ,libgxps)
2457 ("libspectre" ,libspectre)
2458 ("djvulibre" ,djvulibre)
2459 ("ghostscript" ,ghostscript)
2460 ("poppler" ,poppler)
2461 ("libtiff" ,libtiff)
2462 ;; TODO:
2463 ;; Build libkpathsea as a shared library for DVI support.
2464 ;; ("libkpathsea" ,texlive-bin)
2465 ("gnome-desktop" ,gnome-desktop)
2466 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2467 ("gspell" ,gspell)
2468 ("libgnome-keyring" ,libgnome-keyring)
2469 ("adwaita-icon-theme" ,adwaita-icon-theme)
2470 ("gdk-pixbuf" ,gdk-pixbuf)
2471 ("atk" ,atk)
2472 ("pango" ,pango)
2473 ("gtk+" ,gtk+)
2474 ("glib" ,glib)
2475 ("libxml2" ,libxml2)
2476 ("libsm" ,libsm)
2477 ("libice" ,libice)
2478 ("shared-mime-info" ,shared-mime-info)
2479 ("dconf" ,dconf)
2480 ("libcanberra" ,libcanberra)
2481 ("libsecret" ,libsecret)
2482
2483 ;; For tests.
2484 ("dogtail" ,python2-dogtail)))
2485 (native-inputs
2486 `(("itstool" ,itstool)
2487 ("intltool" ,intltool)
2488 ("glib" ,glib "bin")
2489 ("gobject-introspection" ,gobject-introspection)
2490 ("pkg-config" ,pkg-config)
2491 ("xmllint" ,libxml2)))
2492 (home-page "https://www.gnome.org/projects/evince/")
2493 (synopsis "GNOME's document viewer")
2494 (description
2495 "Evince is a document viewer for multiple document formats. It
2496 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2497 of Evince is to replace the multiple document viewers that exist
2498 on the GNOME Desktop with a single simple application.")
2499 (license license:gpl2+)))
2500
2501 (define-public gsettings-desktop-schemas
2502 (package
2503 (name "gsettings-desktop-schemas")
2504 (version "3.34.0")
2505 (source
2506 (origin
2507 (method url-fetch)
2508 (uri (string-append "mirror://gnome/sources/" name "/"
2509 (version-major+minor version) "/"
2510 name "-" version ".tar.xz"))
2511 (sha256
2512 (base32
2513 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2514 (build-system meson-build-system)
2515 (arguments
2516 '(#:phases (modify-phases %standard-phases
2517 (add-after 'unpack 'patch-schemas
2518 (lambda* (#:key inputs #:allow-other-keys)
2519 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2520 (substitute* (find-files "schemas"
2521 "\\.gschema\\.xml\\.in$")
2522 ;; Provide the correct file name of the default GNOME
2523 ;; background, 'adwaita-timed.xml'.
2524 (("@datadir@/backgrounds/gnome")
2525 (string-append theme "/share/backgrounds/gnome"))
2526 ;; Do not reference fonts, that may not exist.
2527 (("'Source Code Pro 10'") "'Monospace 11'"))
2528 #t))))))
2529 (inputs
2530 `(("glib" ,glib)
2531 ("gnome-backgrounds" ,gnome-backgrounds)))
2532 (native-inputs
2533 `(("intltool" ,intltool)
2534 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2535 ("gobject-introspection" ,gobject-introspection)
2536 ("pkg-config" ,pkg-config)))
2537 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2538 (synopsis
2539 "GNOME settings for various desktop components")
2540 (description
2541 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2542 for settings shared by various components of the GNOME desktop.")
2543 (license license:lgpl2.1+)))
2544
2545 (define-public python-liblarch
2546 (package
2547 (name "python-liblarch")
2548 (version "3.0.1")
2549 (source
2550 (origin
2551 (method git-fetch)
2552 (uri (git-reference
2553 (url "https://github.com/getting-things-gnome/liblarch")
2554 (commit (string-append "v" version))))
2555 (file-name (git-file-name name version))
2556 (sha256
2557 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2558 (build-system python-build-system)
2559 (arguments
2560 `(#:phases
2561 (modify-phases %standard-phases
2562 (add-before 'check 'start-xserver
2563 (lambda* (#:key inputs #:allow-other-keys)
2564 (system (format #f "~a/bin/Xvfb :1 &"
2565 (assoc-ref inputs "xorg-server")))
2566 (setenv "DISPLAY" ":1")
2567 #t)))))
2568 (native-inputs
2569 `(("xorg-server" ,xorg-server-for-tests)))
2570 (inputs
2571 `(("gtk+" ,gtk+)))
2572 (propagated-inputs
2573 `(("python-pygobject" ,python-pygobject)))
2574 (home-page "https://wiki.gnome.org/Projects/liblarch")
2575 (synopsis "Library to easily handle complex data structures")
2576 (description
2577 "Liblarch is a Python library built to easily handle data structures such
2578 as lists, trees and acyclic graphs. There's also a GTK binding that will
2579 allow you to use your data structure in a @code{Gtk.Treeview}.
2580
2581 Liblarch support multiple views of one data structure and complex filtering.
2582 That way, you have a clear separation between your data themselves (Model)
2583 and how they are displayed (View).")
2584 (license license:lgpl3+)))
2585
2586 (define-public gtg
2587 (package
2588 (name "gtg")
2589 (version "0.4")
2590 (source
2591 (origin
2592 (method git-fetch)
2593 (uri (git-reference
2594 (url "https://github.com/getting-things-gnome/gtg")
2595 (commit (string-append "v" version))))
2596 (file-name (git-file-name name version))
2597 (sha256
2598 (base32 "0r28vyr88rj3kd3cg4gj7sd29wadjchi92wzmbx67d4hlg25h8kk"))))
2599 (build-system meson-build-system)
2600 (arguments
2601 `(#:glib-or-gtk? #t
2602 #:phases
2603 (modify-phases %standard-phases
2604 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2605 (lambda* (#:key outputs #:allow-other-keys)
2606 (let ((prog (string-append (assoc-ref outputs "out")
2607 "/bin/gtg"))
2608 (pylib (string-append (assoc-ref outputs "out")
2609 "/lib/python"
2610 ,(version-major+minor
2611 (package-version python))
2612 "/site-packages")))
2613 (wrap-program prog
2614 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
2615 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2616 #t))))))
2617 (native-inputs
2618 `(("desktop-file-utils" ,desktop-file-utils)
2619 ("gettext" ,gettext-minimal)
2620 ("glib:bin" ,glib "bin")
2621 ("gobject-introspection" ,gobject-introspection)
2622 ("gtk+:bin" ,gtk+ "bin")
2623 ("pkg-config" ,pkg-config)))
2624 (inputs
2625 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2626 ("gtk+" ,gtk+)
2627 ("python-dbus" ,python-dbus)
2628 ("python-liblarch" ,python-liblarch)
2629 ("python-pycairo" ,python-pycairo)
2630 ("python-pygobject" ,python-pygobject)
2631 ("python-pyxdg" ,python-pyxdg)))
2632 (home-page "https://wiki.gnome.org/Apps/GTG")
2633 (synopsis "Personal organizer for the GNOME desktop")
2634 (description
2635 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2636 organizer for the GNOME desktop environment inspired by the Getting Things
2637 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2638 and ease of use in mind so it can be used as more than just GTD software.
2639 GTG is intended to help you track everything you need to do and need to
2640 know, from small tasks to large projects.")
2641 (license license:gpl3+)))
2642
2643 (define-public icon-naming-utils
2644 (package
2645 (name "icon-naming-utils")
2646 (version "0.8.90")
2647 (source
2648 (origin
2649 (method url-fetch)
2650 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2651 version ".tar.bz2"))
2652 (sha256
2653 (base32
2654 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2655 (build-system gnu-build-system)
2656 (inputs
2657 `(("perl" ,perl)
2658 ("perl-xml-simple" ,perl-xml-simple)))
2659 (arguments
2660 '(#:phases
2661 (modify-phases %standard-phases
2662 (add-after 'install 'set-load-paths
2663 ;; Tell 'icon-name-mapping' where XML::Simple is.
2664 (lambda* (#:key outputs #:allow-other-keys)
2665 (let* ((out (assoc-ref outputs "out"))
2666 (prog (string-append out "/libexec/icon-name-mapping")))
2667 (wrap-program
2668 prog
2669 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2670 #t)))))
2671 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2672 (synopsis
2673 "Utility to implement the Freedesktop Icon Naming Specification")
2674 (description
2675 "To help with the transition to the Freedesktop Icon Naming
2676 Specification, the icon naming utility maps the icon names used by the
2677 GNOME and KDE desktops to the icon names proposed in the specification.")
2678 (license license:lgpl2.1+)))
2679
2680 (define-public gnome-icon-theme
2681 (package
2682 (name "gnome-icon-theme")
2683 (version "3.12.0")
2684 (source
2685 (origin
2686 (method url-fetch)
2687 (uri (string-append "mirror://gnome/sources/" name "/"
2688 (version-major+minor version) "/"
2689 name "-" version ".tar.xz"))
2690 (sha256
2691 (base32
2692 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2693 (build-system gnu-build-system)
2694 (arguments
2695 '(#:configure-flags
2696 ;; Don't create 'icon-theme.cache'.
2697 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2698 (true (string-append coreutils "/bin/true")))
2699 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2700 (native-inputs
2701 `(("icon-naming-utils" ,icon-naming-utils)
2702 ("intltool" ,intltool)
2703 ("pkg-config" ,pkg-config)))
2704 (home-page "https://wiki.gnome.org/Personalization")
2705 (synopsis "GNOME icon theme")
2706 (description "Icons for the GNOME desktop.")
2707 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2708
2709 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2710 (define-public adwaita-icon-theme
2711 (package (inherit gnome-icon-theme)
2712 (name "adwaita-icon-theme")
2713 (version "3.34.3")
2714 (source (origin
2715 (method url-fetch)
2716 (uri (string-append "mirror://gnome/sources/" name "/"
2717 (version-major+minor version) "/"
2718 name "-" version ".tar.xz"))
2719 (sha256
2720 (base32
2721 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2722 (native-inputs
2723 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2724
2725 (define-public tango-icon-theme
2726 (package
2727 (name "tango-icon-theme")
2728 (version "0.8.90")
2729 (source (origin
2730 (method url-fetch)
2731 (uri (string-append "http://tango.freedesktop.org/releases/"
2732 "tango-icon-theme-" version ".tar.bz2"))
2733 (sha256
2734 (base32
2735 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2736 (build-system gnu-build-system)
2737 (native-inputs
2738 `(("icon-naming-utils" ,icon-naming-utils)
2739 ("intltool" ,intltool)
2740 ("imagemagick" ,imagemagick)
2741 ("pkg-config" ,pkg-config)))
2742 (home-page "http://tango-project.org/")
2743 (synopsis "Tango icon theme")
2744 (description "This is an icon theme that follows the Tango visual
2745 guidelines.")
2746 (license license:public-domain)))
2747
2748 (define-public shared-mime-info
2749 (package
2750 (name "shared-mime-info")
2751 (version "1.15")
2752 (source (origin
2753 (method url-fetch)
2754 (uri (string-append
2755 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2756 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2757 ".tar.xz"))
2758 (sha256
2759 (base32
2760 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2761 (build-system gnu-build-system)
2762 (arguments
2763 ;; The build system appears not to be parallel-safe.
2764 '(#:parallel-build? #f))
2765 (inputs
2766 `(("glib" ,glib)
2767 ("libxml2" ,libxml2)))
2768 (native-inputs
2769 `(("gettext" ,gettext-minimal)
2770 ("itstool" ,itstool)
2771 ("pkg-config" ,pkg-config)))
2772 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2773 (synopsis "Database of common MIME types")
2774 (description
2775 "The shared-mime-info package contains the core database of common types
2776 and the update-mime-database command used to extend it. It requires glib2 to
2777 be installed for building the update command. Additionally, it uses intltool
2778 for translations, though this is only a dependency for the maintainers. This
2779 database is translated at Transifex.")
2780 (license license:gpl2+)))
2781
2782 (define-public system-config-printer
2783 (package
2784 (name "system-config-printer")
2785 (version "1.5.12")
2786 (source
2787 (origin
2788 (method url-fetch)
2789 (uri (string-append
2790 "https://github.com/OpenPrinting/system-config-printer/releases/"
2791 "download/" version
2792 "/system-config-printer-" version ".tar.xz"))
2793 (sha256
2794 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
2795 (build-system glib-or-gtk-build-system)
2796 (arguments
2797 `(#:imported-modules ((guix build python-build-system)
2798 ,@%glib-or-gtk-build-system-modules)
2799 #:phases
2800 (modify-phases %standard-phases
2801 (add-after 'unpack 'patch-Makefile.am
2802 (lambda _
2803 ;; The Makefile generates some scripts, so set a valid shebang
2804 (substitute* "Makefile.am"
2805 (("/bin/bash") (which "bash")))
2806 (delete-file "configure")
2807 #t))
2808 (add-after 'unpack 'patch-docbook-xml
2809 (lambda* (#:key inputs #:allow-other-keys)
2810 ;; Modify the man XML otherwise xmlto tries to access the network
2811 (substitute* "man/system-config-printer.xml"
2812 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2813 (string-append (assoc-ref inputs "docbook-xml")
2814 "/xml/dtd/docbook/")))
2815 #t))
2816 (add-after 'install 'wrap-for-python
2817 (@@ (guix build python-build-system) wrap))
2818 (add-after 'install 'wrap
2819 (lambda* (#:key outputs #:allow-other-keys)
2820 (let ((out (assoc-ref outputs "out"))
2821 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2822 (for-each
2823 (lambda (program)
2824 (wrap-program program
2825 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2826 (map (lambda (name)
2827 (string-append out "/bin/" name))
2828 '("system-config-printer"
2829 "system-config-printer-applet"
2830 "install-printerdriver"
2831 "scp-dbus-service"))))
2832 #t)))))
2833 (inputs
2834 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2835 ("gobject-introspection" ,gobject-introspection)
2836 ("python" ,python)
2837 ("cups" ,cups)
2838 ("gtk+" ,gtk+)
2839 ("python-dbus" ,python-dbus)
2840 ("python-pygobject" ,python-pygobject)
2841 ("python-pycups" ,python-pycups)
2842 ("python-requests" ,python-requests)
2843 ("python-pycairo" ,python-pycairo)
2844 ("libnotify" ,libnotify)
2845 ("packagekit" ,packagekit)))
2846 (native-inputs
2847 `(("pkg-config" ,pkg-config)
2848 ("desktop-file-utils" ,desktop-file-utils)
2849 ("glib" ,glib)
2850 ("autoconf" ,autoconf)
2851 ("automake" ,automake)
2852 ("intltool" ,intltool)
2853 ("xmlto" ,xmlto)
2854 ("docbook-xml" ,docbook-xml-4.1.2)
2855 ("docbook-xsl" ,docbook-xsl)
2856 ("libxml2" ,libxml2)))
2857 (home-page "https://github.com/zdohnal/system-config-printer")
2858 (synopsis "CUPS administration tool")
2859 (description
2860 "system-config-printer is a CUPS administration tool. It's written in
2861 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2862 configuring CUPS.")
2863 (license license:gpl2+)))
2864
2865 (define-public hicolor-icon-theme
2866 (package
2867 (name "hicolor-icon-theme")
2868 (version "0.17")
2869 (source
2870 (origin
2871 (method url-fetch)
2872 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2873 "hicolor-icon-theme-" version ".tar.xz"))
2874 (sha256
2875 (base32
2876 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2877 (build-system gnu-build-system)
2878 (arguments
2879 `(#:tests? #f)) ; no check target
2880 (home-page "https://icon-theme.freedesktop.org/releases/")
2881 (synopsis
2882 "Freedesktop icon theme")
2883 (description
2884 "Freedesktop icon theme.")
2885 (license license:gpl2)))
2886
2887 (define-public libnotify
2888 (package
2889 (name "libnotify")
2890 (version "0.7.7")
2891 (source
2892 (origin
2893 (method url-fetch)
2894 (uri (string-append "mirror://gnome/sources/" name "/"
2895 (version-major+minor version) "/"
2896 name "-" version ".tar.xz"))
2897 (sha256
2898 (base32
2899 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2900 (build-system gnu-build-system)
2901 (arguments
2902 `(#:configure-flags '("--disable-static")))
2903 (propagated-inputs
2904 `(;; In Requires of libnotify.pc.
2905 ("gdk-pixbuf" ,gdk-pixbuf)
2906 ("glib" ,glib)))
2907 (inputs
2908 `(("gtk+" ,gtk+)
2909 ("libpng" ,libpng)))
2910 (native-inputs
2911 `(("pkg-config" ,pkg-config)
2912 ("glib" ,glib "bin")
2913 ("gobject-introspection" ,gobject-introspection)))
2914 (home-page "https://developer-next.gnome.org/libnotify/")
2915 (synopsis
2916 "GNOME desktop notification library")
2917 (description
2918 "Libnotify is a library that sends desktop notifications to a
2919 notification daemon, as defined in the Desktop Notifications spec. These
2920 notifications can be used to inform the user about an event or display
2921 some form of information without getting in the user's way.")
2922 (license license:lgpl2.1+)))
2923
2924 (define-public libpeas
2925 (package
2926 (name "libpeas")
2927 (version "1.24.1")
2928 (source
2929 (origin
2930 (method url-fetch)
2931 (uri (string-append "mirror://gnome/sources/" name "/"
2932 (version-major+minor version) "/"
2933 name "-" version ".tar.xz"))
2934 (sha256
2935 (base32
2936 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2937 (build-system meson-build-system)
2938 (arguments
2939 '(#:phases
2940 (modify-phases %standard-phases
2941 (add-before 'check 'start-xserver
2942 (lambda* (#:key inputs #:allow-other-keys)
2943 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2944 (disp ":1"))
2945 (setenv "DISPLAY" disp)
2946 ;; Tests require a running X server.
2947 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2948 #t))))))
2949 (inputs
2950 `(("gtk+" ,gtk+)
2951 ("glade" ,glade3)
2952 ("python" ,python)
2953 ("python-pygobject" ,python-pygobject)))
2954 (native-inputs
2955 `(("pkg-config" ,pkg-config)
2956 ("gettext" ,gettext-minimal)
2957 ("glib:bin" ,glib "bin")
2958 ("gobject-introspection" ,gobject-introspection)
2959 ("xorg-server" ,xorg-server-for-tests)))
2960 (propagated-inputs
2961 ;; The .pc file "Requires" gobject-introspection.
2962 `(("gobject-introspection" ,gobject-introspection)))
2963 (home-page "https://wiki.gnome.org/Libpeas")
2964 (synopsis "GObject plugin system")
2965 (description
2966 "Libpeas is a gobject-based plugin engine, targeted at giving every
2967 application the chance to assume its own extensibility. It also has a set of
2968 features including, but not limited to: multiple extension points; on-demand
2969 (lazy) programming language support for C, Python and JS; simplicity of the
2970 API.")
2971 (license license:lgpl2.0+)))
2972
2973 (define-public gtkglext
2974 (package
2975 (name "gtkglext")
2976 (version "1.2.0")
2977 (source (origin
2978 (method url-fetch)
2979 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2980 version "/gtkglext-" version ".tar.gz"))
2981 (sha256
2982 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2983 (patches (search-patches
2984 "gtkglext-disable-disable-deprecated.patch"))))
2985 (build-system gnu-build-system)
2986 (arguments
2987 `(#:phases
2988 (modify-phases %standard-phases
2989 ;; Fix a collision between a local variable and a definition from
2990 ;; glibc's string.h.
2991 (add-after 'unpack 'fix-collision
2992 (lambda _
2993 (substitute* "gdk/gdkglshapes.c"
2994 ((" index") " triangle_index"))
2995 #t)))))
2996 (inputs `(("gtk+" ,gtk+-2)
2997 ("mesa" ,mesa)
2998 ("glu" ,glu)
2999 ("libx11" ,libx11)
3000 ("libxt" ,libxt)))
3001 (native-inputs `(("pkg-config" ,pkg-config)
3002 ("glib" ,glib "bin")))
3003 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
3004 (home-page "https://projects.gnome.org/gtkglext")
3005 (synopsis "OpenGL extension to GTK+")
3006 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3007 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3008 API add-ons to make GTK+ widgets OpenGL-capable.")
3009 (license license:lgpl2.1+)))
3010
3011 (define-public glade3
3012 (package
3013 (name "glade")
3014 (version "3.36.0")
3015 (source (origin
3016 (method url-fetch)
3017 (uri (string-append "mirror://gnome/sources/" name "/"
3018 (version-major+minor version) "/"
3019 name "-" version ".tar.xz"))
3020 (sha256
3021 (base32
3022 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
3023 (build-system glib-or-gtk-build-system)
3024 (arguments
3025 `(#:phases
3026 (modify-phases %standard-phases
3027 (add-before 'configure 'fix-docbook
3028 (lambda* (#:key inputs #:allow-other-keys)
3029 (substitute* "man/Makefile.in"
3030 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
3031 (string-append (assoc-ref inputs "docbook-xsl")
3032 "/xml/xsl/docbook-xsl-"
3033 ,(package-version docbook-xsl)
3034 "/manpages/docbook.xsl")))
3035 #t))
3036 (add-before 'check 'pre-check
3037 (lambda _
3038 (setenv "HOME" "/tmp")
3039 ;; Tests require a running X server.
3040 (system "Xvfb :1 &")
3041 (setenv "DISPLAY" ":1")
3042 #t)))))
3043 (inputs
3044 `(("gtk+" ,gtk+)
3045 ("libxml2" ,libxml2)))
3046 (native-inputs
3047 `(("hicolor-icon-theme" ,hicolor-icon-theme)
3048 ("intltool" ,intltool)
3049 ("itstool" ,itstool)
3050 ("libxslt" ,libxslt) ;for xsltproc
3051 ("docbook-xml" ,docbook-xml-4.2)
3052 ("docbook-xsl" ,docbook-xsl)
3053 ("python" ,python-2)
3054 ("pkg-config" ,pkg-config)
3055 ("xorg-server" ,xorg-server-for-tests)))
3056 (home-page "https://glade.gnome.org")
3057 (synopsis "GTK+ rapid application development tool")
3058 (description "Glade is a rapid application development (RAD) tool to
3059 enable quick & easy development of user interfaces for the GTK+ toolkit and
3060 the GNOME desktop environment.")
3061 (license license:lgpl2.0+)
3062 (native-search-paths (list (search-path-specification
3063 (variable "GLADE_CATALOG_SEARCH_PATH")
3064 (files '("share/glade/catalogs")))
3065 (search-path-specification
3066 (variable "GLADE_MODULE_SEARCH_PATH")
3067 (files '("lib/glade/modules")))))))
3068
3069 (define-public libcroco
3070 (package
3071 (name "libcroco")
3072 (version "0.6.13")
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 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3081 (build-system gnu-build-system)
3082 (native-inputs
3083 `(("pkg-config" ,pkg-config)))
3084 (inputs
3085 `(("glib" ,glib)
3086 ("libxml2" ,libxml2)
3087 ("zlib" ,zlib)))
3088 (home-page "https://github.com/GNOME/libcroco")
3089 (synopsis "CSS2 parsing and manipulation library")
3090 (description
3091 "Libcroco is a standalone CSS2 parsing and manipulation library.
3092 The parser provides a low level event driven SAC-like API and a CSS object
3093 model like API. Libcroco provides a CSS2 selection engine and an experimental
3094 XML/CSS rendering engine.")
3095
3096 ;; LGPLv2.1-only.
3097 (license license:lgpl2.1)))
3098
3099 (define-public libgsf
3100 (package
3101 (name "libgsf")
3102 (version "1.14.47")
3103 (source (origin
3104 (method url-fetch)
3105 (uri (string-append "mirror://gnome/sources/" name "/"
3106 (version-major+minor version) "/"
3107 name "-" version ".tar.xz"))
3108 (sha256
3109 (base32
3110 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3111 (build-system gnu-build-system)
3112 (arguments
3113 '(#:configure-flags '("--disable-static")))
3114 (native-inputs
3115 `(("pkg-config" ,pkg-config)
3116 ("gettext" ,gettext-minimal)
3117
3118 ;; For tests.
3119 ("perl" ,perl)
3120 ("perl-xml-parser" ,perl-xml-parser)))
3121 (inputs
3122 `(("zlib" ,zlib)
3123 ("bzip2" ,bzip2)))
3124 (propagated-inputs
3125 `(("gdk-pixbuf" ,gdk-pixbuf)
3126 ("glib" ,glib)
3127 ("libxml2" ,libxml2)))
3128 (home-page "https://www.gnome.org/projects/libgsf")
3129 (synopsis "GNOME's Structured File Library")
3130 (description
3131 "Libgsf aims to provide an efficient extensible I/O abstraction for
3132 dealing with different structured file formats.")
3133
3134 ;; LGPLv2.1-only.
3135 (license license:lgpl2.1)))
3136
3137 (define-public librsvg
3138 (package
3139 (name "librsvg")
3140 (version "2.40.21")
3141 (source (origin
3142 (method url-fetch)
3143 (uri (string-append "mirror://gnome/sources/" name "/"
3144 (version-major+minor version) "/"
3145 name "-" version ".tar.xz"))
3146 (sha256
3147 (base32
3148 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3149 (build-system gnu-build-system)
3150 (arguments
3151 `(#:configure-flags
3152 (list "--disable-static"
3153 "--enable-vala") ; needed for e.g. gnome-mines
3154 #:phases
3155 (modify-phases %standard-phases
3156 (add-before 'configure 'pre-configure
3157 (lambda* (#:key inputs #:allow-other-keys)
3158 (substitute* "gdk-pixbuf-loader/Makefile.in"
3159 ;; By default the gdk-pixbuf loader is installed under
3160 ;; gdk-pixbuf's prefix. Work around that.
3161 (("gdk_pixbuf_moduledir = .*$")
3162 (string-append "gdk_pixbuf_moduledir = "
3163 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3164 "loaders\n"))
3165 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3166 (("gdk_pixbuf_cache_file = .*$")
3167 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3168 #t))
3169 (add-before 'check 'remove-failing-tests
3170 (lambda _
3171 (with-directory-excursion "tests/fixtures/reftests"
3172 (for-each delete-file
3173 '(;; This test fails on i686:
3174 "svg1.1/masking-path-04-b.svg"
3175 ;; This test fails on armhf:
3176 "svg1.1/masking-mask-01-b.svg"
3177 ;; This test fails on aarch64:
3178 "bugs/777834-empty-text-children.svg")))
3179 #t)))))
3180 (native-inputs
3181 `(("pkg-config" ,pkg-config)
3182 ("vala" ,vala)
3183 ("glib" ,glib "bin") ; glib-mkenums, etc.
3184 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3185 (inputs
3186 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3187 ;; this ancient version of librsvg.
3188 ("pango" ,pango-1.42)
3189 ("libcroco" ,libcroco)
3190 ("bzip2" ,bzip2)
3191 ("libgsf" ,libgsf)
3192 ("libxml2" ,libxml2)))
3193 (propagated-inputs
3194 ;; librsvg-2.0.pc refers to all of that.
3195 `(("cairo" ,cairo)
3196 ("gdk-pixbuf" ,gdk-pixbuf)
3197 ("glib" ,glib)))
3198 (home-page "https://wiki.gnome.org/LibRsvg")
3199 (synopsis "Render SVG files using Cairo")
3200 (description
3201 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3202 library.")
3203 (license license:lgpl2.0+)))
3204
3205 (define-public librsvg-next
3206 (package
3207 (name "librsvg")
3208 (version "2.50.1")
3209 (source (origin
3210 (method url-fetch)
3211 (uri (string-append "mirror://gnome/sources/librsvg/"
3212 (version-major+minor version) "/"
3213 "librsvg-" version ".tar.xz"))
3214 (sha256
3215 (base32
3216 "02csvx2nzygh8kyal2qiy3y6xb7d52vszxxr37dzav704a9pkncv"))
3217 (modules '((guix build utils)))
3218 (snippet
3219 '(begin (delete-file-recursively "vendor")
3220 #t))))
3221 (build-system cargo-build-system)
3222 (outputs '("out" "doc"))
3223 (arguments
3224 `(#:modules
3225 ((guix build cargo-build-system)
3226 (guix build utils)
3227 ((guix build gnu-build-system) #:prefix gnu:))
3228 #:rust ,rust-1.40
3229 #:cargo-inputs
3230 (("rust-bitflags" ,rust-bitflags-1)
3231 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3232 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3233 ("rust-cast" ,rust-cast-0.2)
3234 ("rust-cssparser" ,rust-cssparser-0.27)
3235 ("rust-data-url" ,rust-data-url-0.1)
3236 ("rust-encoding" ,rust-encoding-0.2)
3237 ("rust-float-cmp" ,rust-float-cmp-0.8)
3238 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3239 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3240 ("rust-gio" ,rust-gio-0.8)
3241 ("rust-gio-sys" ,rust-gio-sys-0.9)
3242 ("rust-glib" ,rust-glib-0.9)
3243 ("rust-glib-sys" ,rust-glib-sys-0.9)
3244 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3245 ("rust-itertools" ,rust-itertools-0.9)
3246 ("rust-language-tags" ,rust-language-tags-0.2)
3247 ("rust-libc" ,rust-libc-0.2)
3248 ("rust-locale-config" ,rust-locale-config-0.3)
3249 ("rust-markup5ever" ,rust-markup5ever-0.10)
3250 ("rust-nalgebra" ,rust-nalgebra-0.21)
3251 ("rust-num-traits" ,rust-num-traits-0.2)
3252 ("rust-once-cell" ,rust-once-cell-1)
3253 ("rust-pkg-config" ,rust-pkg-config-0.3)
3254 ("rust-pango" ,rust-pango-0.8)
3255 ("rust-pango-sys" ,rust-pango-sys-0.9)
3256 ("rust-pangocairo" ,rust-pangocairo-0.9)
3257 ("rust-rayon" ,rust-rayon-1)
3258 ("rust-rctree" ,rust-rctree-0.3)
3259 ("rust-rgb" ,rust-rgb-0.8)
3260 ("rust-regex" ,rust-regex-1)
3261 ("rust-selectors" ,rust-selectors-0.22)
3262 ("rust-string-cache" ,rust-string-cache-0.8)
3263 ("rust-tinyvec" ,rust-tinyvec-0.3)
3264 ("rust-url" ,rust-url-2.1)
3265 ("rust-xml5ever" ,rust-xml5ever-0.16))
3266 #:cargo-development-inputs
3267 (("rust-assert-cmd" ,rust-assert-cmd-1)
3268 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3269 ("rust-chrono" ,rust-chrono-0.4)
3270 ("rust-criterion" ,rust-criterion-0.3)
3271 ("rust-float-cmp" ,rust-float-cmp-0.8)
3272 ("rust-lopdf" ,rust-lopdf-0.25)
3273 ("rust-png" ,rust-png-0.16)
3274 ("rust-predicates" ,rust-predicates-1)
3275 ("rust-tempfile" ,rust-tempfile-3))
3276 #:phases
3277 (modify-phases %standard-phases
3278 (add-after 'unpack 'patch-docbook-xml
3279 (lambda* (#:key inputs #:allow-other-keys)
3280 (with-directory-excursion "doc"
3281 (substitute* "rsvg-docs.xml"
3282 (("http://www.oasis-open.org/docbook/xml/4.3/")
3283 (string-append (assoc-ref inputs "docbook-xml")
3284 "/xml/dtd/docbook/"))))
3285 #t))
3286 (add-after 'unpack 'prepare-for-build
3287 (lambda _
3288 ;; In lieu of #:make-flags
3289 (setenv "CC" ,(cc-for-target))
3290 ;; Something about the build environment resists building
3291 ;; successfully with the '--locked' flag.
3292 (substitute* '("Makefile.am" "Makefile.in")
3293 (("--locked") ""))
3294 #t))
3295 (add-before 'configure 'pre-configure
3296 (lambda _
3297 (substitute* "gdk-pixbuf-loader/Makefile.in"
3298 ;; By default the gdk-pixbuf loader is installed under
3299 ;; gdk-pixbuf's prefix. Work around that.
3300 (("gdk_pixbuf_moduledir = .*$")
3301 (string-append "gdk_pixbuf_moduledir = "
3302 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3303 "loaders\n"))
3304 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3305 (("gdk_pixbuf_cache_file = .*$")
3306 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3307 #t))
3308 (add-after 'configure 'gnu-configure
3309 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3310 ((assoc-ref gnu:%standard-phases 'configure)
3311 #:native-inputs native-inputs
3312 #:inputs inputs
3313 #:outputs outputs
3314 #:configure-flags
3315 (list "--disable-static"
3316 "--enable-vala"
3317 (string-append "--with-html-dir="
3318 (assoc-ref %outputs "doc")
3319 "/share/gtk-doc/html")))))
3320 (add-after 'configure 'dont-vendor-self
3321 (lambda* (#:key vendor-dir #:allow-other-keys)
3322 ;; Don't keep the whole tarball in the vendor directory
3323 (delete-file-recursively
3324 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3325 #t))
3326 (replace 'build
3327 (assoc-ref gnu:%standard-phases 'build))
3328 (add-before 'check 'ignore-failing-tests
3329 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3330 (lambda _
3331 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3332 (("fn background_color_option_invalid_color_yields_error" all)
3333 (string-append "#[ignore] " all))
3334 (("fn empty_input_yields_error" all)
3335 (string-append "#[ignore] " all))
3336 (("fn empty_svg_yields_error" all)
3337 (string-append "#[ignore] " all))
3338 (("fn env_source_data_epoch_empty" all)
3339 (string-append "#[ignore] " all))
3340 (("fn env_source_data_epoch_no_digits" all)
3341 (string-append "#[ignore] " all))
3342 (("fn env_source_data_epoch_trailing_garbage" all)
3343 (string-append "#[ignore] " all))
3344 (("fn export_id_option_error" all)
3345 (string-append "#[ignore] " all))
3346 (("fn huge_zoom_factor_yields_error" all)
3347 (string-append "#[ignore] " all))
3348 (("fn multiple_input_files_not_allowed_for_png_output" all)
3349 (string-append "#[ignore] " all))
3350 (("fn stylesheet_option_error" all)
3351 (string-append "#[ignore] " all)))
3352 #t))
3353 (replace 'check
3354 (lambda* args
3355 ((assoc-ref gnu:%standard-phases 'check)
3356 #:test-target "check")))
3357 (replace 'install
3358 (assoc-ref gnu:%standard-phases 'install)))))
3359 (native-inputs
3360 `(("docbook-xml" ,docbook-xml-4.3)
3361 ("glib" ,glib "bin")
3362 ("gobject-introspection" ,gobject-introspection)
3363 ("pkg-config" ,pkg-config)
3364 ("python" ,python-wrapper)
3365 ("ruby" ,ruby)
3366 ("vala" ,vala)))
3367 (inputs
3368 `(("bzip2" ,bzip2)
3369 ("fontconfig" ,fontconfig)
3370 ("freetype" ,freetype)
3371 ("harfbuzz" ,harfbuzz)
3372 ("libcroco" ,libcroco)
3373 ("libgsf" ,libgsf)
3374 ("libxml2" ,libxml2)
3375 ("pango" ,pango)))
3376 (propagated-inputs
3377 `(("cairo" ,cairo)
3378 ("gdk-pixbuf" ,gdk-pixbuf)
3379 ("glib" ,glib)))
3380 (synopsis "SVG rendering library")
3381 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3382 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3383 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3384 diagrams.")
3385 (home-page "https://wiki.gnome.org/LibRsvg")
3386 (license license:lgpl2.1+)))
3387
3388 (define-public libidl
3389 (package
3390 (name "libidl")
3391 (version "0.8.14")
3392 (source (origin
3393 (method url-fetch)
3394 (uri (string-append "mirror://gnome/sources/libIDL/"
3395 (version-major+minor version) "/"
3396 "libIDL-" version ".tar.bz2"))
3397 (sha256
3398 (base32
3399 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3400 (build-system gnu-build-system)
3401 (inputs `(("glib" ,glib)))
3402 (native-inputs
3403 `(("pkg-config" ,pkg-config)
3404 ("flex" ,flex)
3405 ("bison" ,bison)))
3406 (home-page "http://freecode.com/projects/libidl")
3407 (synopsis "Create trees of CORBA Interface Definition Language files")
3408 (description "Libidl is a library for creating trees of CORBA Interface
3409 Definition Language (idl) files, which is a specification for defining
3410 portable interfaces. libidl was initially written for orbit (the orb from the
3411 GNOME project, and the primary means of libidl distribution). However, the
3412 functionality was designed to be as reusable and portable as possible.")
3413 (properties `((upstream-name . "libIDL")))
3414 (license license:lgpl2.0+)))
3415
3416
3417 (define-public orbit2
3418 (package
3419 (name "orbit2")
3420 (version "2.14.19")
3421 (source (origin
3422 (method url-fetch)
3423 (uri (let ((upstream-name "ORBit2"))
3424 (string-append "mirror://gnome/sources/" upstream-name "/"
3425 (version-major+minor version) "/"
3426 upstream-name "-" version ".tar.bz2")))
3427 (sha256
3428 (base32
3429 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3430 (build-system gnu-build-system)
3431 (arguments
3432 `(;; The "timeout-server" test hangs when run in parallel.
3433 #:parallel-tests? #f
3434 #:configure-flags
3435 '(;; We don't need static libraries, plus they don't build reproducibly
3436 ;; (non-deterministic ordering of .o files in the archive.)
3437 "--disable-static"
3438
3439 ;; The programmer kindly gives us a hook to turn off deprecation
3440 ;; warnings ...
3441 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3442 ;; ... which they then completly ignore !!
3443 #:phases
3444 (modify-phases %standard-phases
3445 (add-before 'configure 'ignore-deprecations
3446 (lambda _
3447 (substitute* "linc2/src/Makefile.in"
3448 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3449 #t)))))
3450 (inputs `(("glib" ,glib)
3451 ("libidl" ,libidl)))
3452 (native-inputs
3453 `(("pkg-config" ,pkg-config)))
3454 (home-page "https://projects.gnome.org/orbit2/")
3455 (synopsis "CORBA 2.4-compliant Object Request Broker")
3456 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3457 featuring mature C, C++ and Python bindings.")
3458 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3459 ;; a version. SOME of the code files have licence notices for GPLv2+.
3460 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3461 (license license:gpl2+)
3462 (properties `((upstream-name . "ORBit2")))))
3463
3464
3465 (define-public libbonobo
3466 (package
3467 (name "libbonobo")
3468 (version "2.32.1")
3469 (source (origin
3470 (method url-fetch)
3471 (uri (string-append "mirror://gnome/sources/" name "/"
3472 (version-major+minor version)
3473 "/" name "-" version ".tar.bz2"))
3474 (sha256
3475 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3476 (patches (search-patches
3477 "libbonobo-activation-test-race.patch"))))
3478 (build-system gnu-build-system)
3479 (arguments
3480 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3481 `(#:configure-flags
3482 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3483 ;; ... which they then completly ignore !!
3484 #:phases
3485 (modify-phases %standard-phases
3486 (add-before 'configure 'ignore-deprecations
3487 (lambda _
3488 (substitute* "activation-server/Makefile.in"
3489 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3490 #t)))
3491
3492 ;; There's apparently a race condition between the server stub
3493 ;; generation and linking of the example under 'samples/echo' that can
3494 ;; lead do undefined references when building in parallel, as reported
3495 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3496 ;; Thus, disable parallel builds.
3497 #:parallel-build? #f))
3498 (inputs `(("popt" ,popt)
3499 ("libxml2" ,libxml2)))
3500 ;; The following are Required by the .pc file
3501 (propagated-inputs
3502 `(("glib" ,glib)
3503 ("orbit2" ,orbit2)))
3504 (native-inputs
3505 `(("intltool" ,intltool)
3506 ("pkg-config" ,pkg-config)
3507 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3508 ("flex" ,flex)
3509 ("bison" ,bison)))
3510 (home-page "https://developer.gnome.org/libbonobo/")
3511 (synopsis "Framework for creating reusable components for use in GNOME applications")
3512 (description "Bonobo is a framework for creating reusable components for
3513 use in GNOME applications, built on top of CORBA.")
3514 ;; Licence not explicitly stated. Source files contain no licence notices.
3515 ;; Tarball contains text of both GPLv2 and LGPLv2
3516 ;; GPLv2 covers both conditions
3517 (license license:gpl2+)))
3518
3519
3520 (define-public gconf
3521 (package
3522 (name "gconf")
3523 (version "3.2.6")
3524 (source (origin
3525 (method url-fetch)
3526 (uri
3527 (let ((upstream-name "GConf"))
3528 (string-append "mirror://gnome/sources/" upstream-name "/"
3529 (version-major+minor version) "/"
3530 upstream-name "-" version ".tar.xz")))
3531 (sha256
3532 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3533 (build-system gnu-build-system)
3534 (inputs `(("dbus-glib" ,dbus-glib)
3535 ("libxml2" ,libxml2)))
3536 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3537 ("orbit2" ,orbit2)))
3538 (native-inputs
3539 `(("intltool" ,intltool)
3540 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3541 ("pkg-config" ,pkg-config)))
3542 (home-page "https://projects.gnome.org/gconf/")
3543 (synopsis "Store application preferences")
3544 (description "Gconf is a system for storing application preferences. It
3545 is intended for user preferences; not arbitrary data storage.")
3546 (license license:lgpl2.0+)
3547 (properties '((upstream-name . "GConf")))))
3548
3549
3550 (define-public gnome-mime-data
3551 (package
3552 (name "gnome-mime-data")
3553 (version "2.18.0")
3554 (source (origin
3555 (method url-fetch)
3556 (uri (string-append "mirror://gnome/sources/" name "/"
3557 (version-major+minor version) "/"
3558 name "-" version ".tar.bz2"))
3559 (sha256
3560 (base32
3561 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3562 (build-system gnu-build-system)
3563 (native-inputs
3564 `(("perl" ,perl)
3565 ("intltool" ,intltool)))
3566 (arguments
3567 '(#:phases (modify-phases %standard-phases
3568 (add-after 'configure 'use-our-intltool
3569 (lambda _
3570 ;; Do not use the bundled intltool commands, which lack
3571 ;; the "dotless @INC" fixes of our 'intltool' package.
3572 (substitute* (find-files "." "^Makefile$")
3573 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3574 (string-append "INTLTOOL_" tool " = intltool-"
3575 (string-downcase tool) "\n")))
3576 #t)))))
3577 (home-page "https://www.gnome.org")
3578 (synopsis "Base MIME and Application database for GNOME")
3579 (description "GNOME Mime Data is a module which contains the base MIME
3580 and Application database for GNOME. The data stored by this module is
3581 designed to be accessed through the MIME functions in GnomeVFS.")
3582 (license license:gpl2+)))
3583
3584
3585 (define-public gnome-vfs
3586 (package
3587 (name "gnome-vfs")
3588 (version "2.24.4")
3589 (source (origin
3590 (method url-fetch)
3591 (uri (string-append "mirror://gnome/sources/" name "/"
3592 (version-major+minor version) "/"
3593 name "-" version ".tar.bz2"))
3594 (sha256
3595 (base32
3596 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3597 (build-system gnu-build-system)
3598 (arguments
3599 `(#:phases
3600 (modify-phases %standard-phases
3601 (add-before 'configure 'ignore-deprecations
3602 (lambda _
3603 (substitute* '("libgnomevfs/Makefile.in"
3604 "daemon/Makefile.in")
3605 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3606 #t))
3607 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3608 (lambda _
3609 (substitute* "test/test-async-cancel.c"
3610 (("EXIT_FAILURE") "77"))
3611 #t)))))
3612 (inputs `(("libxml2" ,libxml2)
3613 ("dbus-glib" ,dbus-glib)
3614 ("gconf" ,gconf)
3615 ("gnome-mime-data" ,gnome-mime-data)
3616 ("zlib" ,zlib)))
3617 (native-inputs
3618 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3619 ("intltool" ,intltool)
3620 ("pkg-config" ,pkg-config)))
3621 (home-page "https://developer.gnome.org/gnome-vfs/")
3622 (synopsis "Access files and folders in GNOME applications")
3623 (description
3624 "GnomeVFS is the core library used to access files and folders in GNOME
3625 applications. It provides a file system abstraction which allows applications
3626 to access local and remote files with a single consistent API.")
3627 (license license:lgpl2.0+)))
3628
3629
3630
3631 (define-public libgnome
3632 (package
3633 (name "libgnome")
3634 (version "2.32.1")
3635 (source (origin
3636 (method url-fetch)
3637 (uri (string-append "mirror://gnome/sources/" name "/"
3638 (version-major+minor version) "/"
3639 name "-" version ".tar.bz2"))
3640 (sha256
3641 (base32
3642 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3643 (patches (search-patches "libgnome-encoding.patch"))))
3644 (build-system gnu-build-system)
3645 (arguments
3646 `(#:phases
3647 (modify-phases %standard-phases
3648 (add-before 'configure 'enable-deprecated
3649 (lambda _
3650 (substitute* "libgnome/Makefile.in"
3651 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3652 #t)))))
3653 (inputs `(("libxml2" ,libxml2)))
3654 (native-inputs
3655 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3656 ("intltool" ,intltool)
3657 ("pkg-config" ,pkg-config)))
3658 ;; The following are listed as Required in the .pc file
3659 ;; (except for libcanberra -- which seems to be oversight on the part
3660 ;; of the upstream developers -- anything that links against libgnome,
3661 ;; must also link against libcanberra
3662 (propagated-inputs
3663 `(("libcanberra" ,libcanberra)
3664 ("libbonobo" ,libbonobo)
3665 ("gconf" ,gconf)
3666 ("gnome-vfs" ,gnome-vfs)
3667 ("popt" ,popt))) ;gnome-program.h includes popt.h
3668 (home-page "https://developer.gnome.org/libgnome/")
3669 (synopsis "Useful routines for building applications")
3670 (description "The libgnome library provides a number of useful routines
3671 for building modern applications, including session management, activation of
3672 files and URIs, and displaying help.")
3673 (license license:lgpl2.0+)))
3674
3675
3676 (define-public libart-lgpl
3677 (package
3678 (name "libart-lgpl")
3679 (version "2.3.21")
3680 (source (origin
3681 (method url-fetch)
3682 (uri (let ((upstream-name "libart_lgpl"))
3683 (string-append "mirror://gnome/sources/" upstream-name "/"
3684 (version-major+minor version) "/"
3685 upstream-name "-" version ".tar.bz2")))
3686 (sha256
3687 (base32
3688 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3689 (build-system gnu-build-system)
3690 (native-inputs
3691 `(("pkg-config" ,pkg-config)))
3692 (home-page "https://people.gnome.org/~mathieu/libart")
3693 (synopsis "2D drawing library")
3694 (description "Libart is a 2D drawing library intended as a
3695 high-quality vector-based 2D library with antialiasing and alpha composition.")
3696 (license license:lgpl2.0+)))
3697
3698
3699
3700 (define-public libgnomecanvas
3701 (package
3702 (name "libgnomecanvas")
3703 (version "2.30.3")
3704 (source (origin
3705 (method url-fetch)
3706 (uri (string-append "mirror://gnome/sources/" name "/"
3707 (version-major+minor version) "/"
3708 name "-" version ".tar.gz"))
3709 (sha256
3710 (base32
3711 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3712 (build-system gnu-build-system)
3713 ;; Mentioned as Required in the .pc file
3714 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3715 ("gtk+" ,gtk+-2)))
3716 (native-inputs
3717 `(("intltool" ,intltool)
3718 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3719 ("pkg-config" ,pkg-config)))
3720 (home-page "https://developer.gnome.org/libgnomecanvas/")
3721 (synopsis "Flexible widget for creating interactive structured graphics")
3722 (description "The GnomeCanvas widget provides a flexible widget for
3723 creating interactive structured graphics.")
3724 (license license:lgpl2.0+)))
3725
3726 (define-public libgnomecanvasmm
3727 (package
3728 (name "libgnomecanvasmm")
3729 (version "2.26.0")
3730 (source (origin
3731 (method url-fetch)
3732 (uri (string-append "mirror://gnome/sources/" name "/"
3733 (version-major+minor version) "/"
3734 name "-" version ".tar.bz2"))
3735 (sha256
3736 (base32
3737 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3738 (build-system gnu-build-system)
3739 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3740 (native-inputs
3741 `(("gtkmm-2" ,gtkmm-2)
3742 ("pkg-config" ,pkg-config)))
3743 (home-page "https://gtkmm.org")
3744 (synopsis "C++ bindings to the GNOME Canvas library")
3745 (description "C++ bindings to the GNOME Canvas library.")
3746 (license license:lgpl2.0+)))
3747
3748 (define-public libgnomeui
3749 (package
3750 (name "libgnomeui")
3751 (version "2.24.5")
3752 (source (origin
3753 (method url-fetch)
3754 (uri (string-append "mirror://gnome/sources/" name "/"
3755 (version-major+minor version) "/"
3756 name "-" version ".tar.bz2"))
3757 (patches (search-patches "libgnomeui-utf8.patch"))
3758 (sha256
3759 (base32
3760 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3761 (build-system gnu-build-system)
3762 ;; Mentioned as Required in the .pc file
3763 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3764 ("libgnome" ,libgnome)
3765 ("libgnomecanvas" ,libgnomecanvas)
3766 ("libgnome-keyring" ,libgnome-keyring)))
3767 (inputs `(("libjpeg" ,libjpeg-turbo)
3768 ("popt" ,popt)
3769 ("libbonobo" ,libbonobo)
3770 ("libxml2" ,libxml2)
3771 ("libglade" ,libglade)))
3772 (native-inputs
3773 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3774 ("intltool" ,intltool)
3775 ("pkg-config" ,pkg-config)))
3776 (home-page "https://developer.gnome.org/libgnomeui/")
3777 (synopsis "Additional widgets for applications")
3778 (description "The libgnomeui library provides additional widgets for
3779 applications. Many of the widgets from libgnomeui have already been
3780 ported to GTK+.")
3781 (license license:lgpl2.0+)))
3782
3783 (define-public libglade
3784 (package
3785 (name "libglade")
3786 (version "2.6.4")
3787 (source (origin
3788 (method url-fetch)
3789 (uri (string-append "mirror://gnome/sources/" name "/"
3790 (version-major+minor version) "/"
3791 name "-" version ".tar.bz2"))
3792 (sha256
3793 (base32
3794 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3795 (build-system gnu-build-system)
3796 (inputs
3797 `(("python" ,python))) ;; needed for the optional libglade-convert program
3798 (propagated-inputs
3799 `(("gtk+-2" ,gtk+-2)
3800 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3801 (native-inputs
3802 `(("pkg-config" ,pkg-config)))
3803 (home-page "https://developer.gnome.org/libglade")
3804 (synopsis "Load glade interfaces and access the glade built widgets")
3805 (description "Libglade is a library that provides interfaces for loading
3806 graphical interfaces described in glade files and for accessing the
3807 widgets built in the loading process.")
3808 (license license:gpl2+))) ; This is correct. GPL not LGPL
3809
3810 (define-public libgnomeprint
3811 ;; This library has been deprecated since 2006; see
3812 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3813 (package
3814 (name "libgnomeprint")
3815 (version "2.18.8")
3816 (source (origin
3817 (method url-fetch)
3818 (uri (string-append "mirror://gnome/sources/" name "/"
3819 (version-major+minor version) "/"
3820 name "-" version ".tar.bz2"))
3821 (sha256
3822 (base32
3823 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3824 (build-system gnu-build-system)
3825 (inputs
3826 `(("popt" ,popt)
3827 ("libart-lgpl" ,libart-lgpl)
3828 ("gtk+" ,gtk+-2)
3829 ("libxml2" ,libxml2)))
3830 (native-inputs
3831 `(("intltool" ,intltool)
3832 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3833 ("pkg-config" ,pkg-config)))
3834 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3835 (synopsis "Printing framework for GNOME")
3836 (description
3837 "GNOME-print was a printing framework for GNOME. It has been deprecated
3838 since ca. 2006, when GTK+ itself incorporated printing support.")
3839 (license license:lgpl2.0+)))
3840
3841
3842 (define-public libgnomeprintui
3843 ;; Deprecated; see libgnomeprint.
3844 (package
3845 (name "libgnomeprintui")
3846 (version "2.18.6")
3847 (source (origin
3848 (method url-fetch)
3849 (uri (string-append "mirror://gnome/sources/" name "/"
3850 (version-major+minor version) "/"
3851 name "-" version ".tar.bz2"))
3852 (sha256
3853 (base32
3854 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
3855 (build-system gnu-build-system)
3856 ;; Mentioned as Required in the .pc file
3857 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
3858 (inputs `(("gtk+" ,gtk+-2)
3859 ("glib" ,glib)
3860 ("gnome-icon-theme" ,gnome-icon-theme)
3861 ("libgnomecanvas" ,libgnomecanvas)
3862 ("libxml2" ,libxml2)))
3863 (native-inputs
3864 `(("intltool" ,intltool)
3865 ("pkg-config" ,pkg-config)))
3866 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3867 (synopsis "Printing framework for GNOME")
3868 (description (package-description libgnomeprint))
3869 (license license:lgpl2.0+)))
3870
3871 (define-public libbonoboui
3872 (package
3873 (name "libbonoboui")
3874 (version "2.24.5")
3875 (source (origin
3876 (method url-fetch)
3877 (uri (string-append "mirror://gnome/sources/" name "/"
3878 (version-major+minor version) "/"
3879 name "-" version ".tar.bz2"))
3880 (sha256
3881 (base32
3882 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
3883 (build-system gnu-build-system)
3884 (arguments
3885 `(#:phases
3886 (modify-phases %standard-phases
3887 (add-before 'check 'start-xserver
3888 (lambda* (#:key inputs #:allow-other-keys)
3889 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3890 (disp ":1"))
3891
3892 (setenv "HOME" (getcwd))
3893 (setenv "DISPLAY" disp)
3894 ;; There must be a running X server and make check doesn't start one.
3895 ;; Therefore we must do it.
3896 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
3897 ;; Mentioned as Required by the .pc file
3898 (propagated-inputs `(("libxml2" ,libxml2)))
3899 (inputs
3900 `(("popt" ,popt)
3901 ("pangox-compat" ,pangox-compat)
3902 ("libgnome" ,libgnome)
3903 ("libgnomecanvas" ,libgnomecanvas)
3904 ("libglade" ,libglade)))
3905 (native-inputs
3906 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3907 ("intltool" ,intltool)
3908 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
3909 ("pkg-config" ,pkg-config)))
3910 (home-page "https://developer.gnome.org/libbonoboui/")
3911 (synopsis "Some user interface controls using Bonobo")
3912 (description "The Bonobo UI library provides a number of user interface
3913 controls using the Bonobo component framework.")
3914 (license license:lgpl2.0+)))
3915
3916 (define-public libwnck
3917 (package
3918 (name "libwnck")
3919 (version "3.32.0")
3920 (source (origin
3921 (method url-fetch)
3922 (uri (string-append "mirror://gnome/sources/" name "/"
3923 (version-major+minor version) "/"
3924 name "-" version ".tar.xz"))
3925 (sha256
3926 (base32
3927 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3928 (build-system meson-build-system)
3929 (native-inputs
3930 `(("pkg-config" ,pkg-config)
3931 ("glib" ,glib "bin") ; for glib-mkenums
3932 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3933 ("intltool" ,intltool)))
3934 (propagated-inputs
3935 `(("gtk+" ,gtk+)
3936 ("libxres" ,libxres)
3937 ("startup-notification" ,startup-notification)))
3938 (home-page "https://developer.gnome.org/libwnck/")
3939 (synopsis "Window Navigator Construction Kit")
3940 (description
3941 "Libwnck is the Window Navigator Construction Kit, a library for use in
3942 writing pagers, tasklists, and more generally applications that are dealing
3943 with window management. It tries hard to respect the Extended Window Manager
3944 Hints specification (EWMH).")
3945 (license license:lgpl2.0+)))
3946
3947 ;; stable version for gtk2, required by xfwm4.
3948 (define-public libwnck-2
3949 (package (inherit libwnck)
3950 (name "libwnck")
3951 (version "2.30.7")
3952 (source (origin
3953 (method url-fetch)
3954 (uri (string-append "mirror://gnome/sources/" name "/"
3955 (version-major+minor version) "/"
3956 name "-" version ".tar.xz"))
3957 (sha256
3958 (base32
3959 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
3960 (build-system gnu-build-system)
3961 (native-inputs
3962 `(("pkg-config" ,pkg-config)
3963 ("intltool" ,intltool)))
3964 (propagated-inputs
3965 `(("gtk+" ,gtk+-2)
3966 ("libxres" ,libxres)
3967 ("startup-notification" ,startup-notification)))))
3968
3969 (define-public goffice
3970 (package
3971 (name "goffice")
3972 (version "0.10.48")
3973 (source (origin
3974 (method url-fetch)
3975 (uri (string-append "mirror://gnome/sources/goffice/"
3976 (version-major+minor version) "/"
3977 "goffice-" version ".tar.xz"))
3978 (sha256
3979 (base32 "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4"))))
3980 (build-system gnu-build-system)
3981 (outputs '("out"
3982 "doc")) ; 4.0 MiB of gtk-doc
3983 (arguments
3984 '(#:configure-flags (list (string-append "--with-html-dir="
3985 (assoc-ref %outputs "doc")
3986 "/share/gtk-doc/html"))))
3987 (inputs
3988 `(("gtk+" ,gtk+)
3989 ("libgsf" ,libgsf)
3990 ("librsvg" ,librsvg)
3991 ("libxslt" ,libxslt)
3992 ("libxml2" ,libxml2)))
3993 (native-inputs
3994 `(("intltool" ,intltool)
3995 ("glib" ,glib "bin")
3996 ("pkg-config" ,pkg-config)))
3997 (home-page "https://developer.gnome.org/goffice/")
3998 (synopsis "Document-centric objects and utilities")
3999 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4000 (license
4001 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4002 ;; Note: NOT LGPL
4003 (list license:gpl2 license:gpl3))))
4004
4005 (define-public goffice-0.8
4006 (package (inherit goffice)
4007 (version "0.8.17")
4008 (source (origin
4009 (method url-fetch)
4010 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4011 (version-major+minor version) "/"
4012 (package-name goffice) "-" version ".tar.xz"))
4013 (sha256
4014 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4015 (arguments
4016 `(#:phases
4017 (modify-phases %standard-phases
4018 (add-after 'unpack 'fix-pcre-check
4019 (lambda _
4020 ;; Only glib.h can be included directly. See
4021 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4022 (substitute* "configure"
4023 (("glib/gregex\\.h") "glib.h")) #t)))
4024
4025 ,@(package-arguments goffice)))
4026 (propagated-inputs
4027 ;; libgoffice-0.8.pc mentions libgsf-1
4028 `(("libgsf" ,libgsf)))
4029 (inputs
4030 `(("gtk" ,gtk+-2)
4031 ,@(alist-delete "gtk" (package-inputs goffice))))))
4032
4033 (define-public gnumeric
4034 (package
4035 (name "gnumeric")
4036 (version "1.12.48")
4037 (source (origin
4038 (method url-fetch)
4039 (uri (string-append "mirror://gnome/sources/gnumeric/"
4040 (version-major+minor version) "/"
4041 "gnumeric-" version ".tar.xz"))
4042 (sha256
4043 (base32
4044 "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p"))))
4045 (build-system glib-or-gtk-build-system)
4046 (arguments
4047 `(;; The gnumeric developers don't worry much about failing tests.
4048 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4049 #:tests? #f
4050 #:phases
4051 (modify-phases %standard-phases
4052 (add-before
4053 'configure 'pre-conf
4054 (lambda* (#:key outputs #:allow-other-keys)
4055 ;; Make install tries to write into the directory of goffice
4056 ;; I am informed that this only affects the possibility to embed a
4057 ;; spreadsheet inside an Abiword document. So presumably when we
4058 ;; package Abiword we'll have to refer it to this directory.
4059 (substitute* "configure"
4060 (("^GOFFICE_PLUGINS_DIR=.*")
4061 (string-append "GOFFICE_PLUGINS_DIR="
4062 (assoc-ref outputs "out")
4063 "/goffice/plugins"))))))))
4064 (inputs
4065 `(("glib" ,glib)
4066 ("gtk+" ,gtk+)
4067 ("goffice" ,goffice)
4068 ("libgsf" ,libgsf)
4069 ("librsvg" ,librsvg)
4070 ("libxml2" ,libxml2)
4071 ("libxslt" ,libxslt)
4072 ("python" ,python)
4073 ("python-pygobject" ,python-pygobject)
4074 ("zlib" ,zlib)))
4075 (native-inputs
4076 `(("bison" ,bison)
4077 ("docbook-xml" ,docbook-xml)
4078 ("intltool" ,intltool)
4079 ("itstool" ,itstool)
4080 ("glib:bin" ,glib "bin")
4081 ("pkg-config" ,pkg-config)))
4082 (home-page "http://www.gnumeric.org")
4083 (synopsis "Spreadsheet application")
4084 (description
4085 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4086 interoperable with other spreadsheet applications. It has a vast array of
4087 features beyond typical spreadsheet functionality, such as support for linear
4088 and non-linear solvers, statistical analysis, and telecommunication
4089 engineering.")
4090 (license
4091 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4092 (list license:gpl2 license:gpl3))))
4093
4094 (define-public gnome-themes-standard
4095 (package
4096 (name "gnome-themes-standard")
4097 (version "3.22.3")
4098 (source
4099 (origin
4100 (method url-fetch)
4101 (uri (string-append "mirror://gnome/sources/" name "/"
4102 (version-major+minor version) "/" name "-"
4103 version ".tar.xz"))
4104 (sha256
4105 (base32
4106 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4107 (build-system gnu-build-system)
4108 (arguments
4109 '(#:configure-flags
4110 ;; Don't create 'icon-theme.cache'.
4111 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4112 (true (string-append coreutils "/bin/true")))
4113 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4114 (inputs
4115 `(("gtk+" ,gtk+)
4116 ("gtk+-2" ,gtk+-2)
4117 ("librsvg" ,librsvg)
4118 ("libxml2" ,libxml2)
4119 ("glib" ,glib)))
4120 (native-inputs
4121 `(("intltool" ,intltool)
4122 ("glib:bin" ,glib "bin")
4123 ("pkg-config" ,pkg-config)))
4124 (home-page "https://launchpad.net/gnome-themes-standard")
4125 (synopsis "Default GNOME 3 themes")
4126 (description
4127 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4128 (license license:lgpl2.1+)))
4129
4130 (define-public seahorse
4131 (package
4132 (name "seahorse")
4133 (version "3.36.2")
4134 (source
4135 (origin
4136 (method url-fetch)
4137 (uri (string-append "mirror://gnome/sources/" name "/"
4138 (version-major+minor version) "/" name "-"
4139 version ".tar.xz"))
4140 (sha256
4141 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4142 (build-system meson-build-system)
4143 (arguments
4144 '(#:glib-or-gtk? #t
4145 #:phases
4146 (modify-phases %standard-phases
4147 (add-after 'unpack 'skip-gtk-update-icon-cache
4148 ;; Don't create 'icon-theme.cache'.
4149 (lambda _
4150 (substitute* "build-aux/meson_post_install.py"
4151 (("gtk-update-icon-cache") "true"))
4152 #t)))))
4153 (inputs
4154 `(("gtk+" ,gtk+)
4155 ("gcr" ,gcr)
4156 ("gnupg" ,gnupg)
4157 ("gpgme" ,gpgme)
4158 ("openldap" ,openldap)
4159 ("openssh" ,openssh)
4160 ("avahi" ,avahi)
4161 ("libhandy" ,libhandy-0.0)
4162 ("libpwquality" ,libpwquality)
4163 ("libsecret" ,libsecret)
4164 ("libsoup" ,libsoup)))
4165 (native-inputs
4166 `(("gettext" ,gettext-minimal)
4167 ("glib:bin" ,glib "bin")
4168 ("itstool" ,itstool)
4169 ("pkg-config" ,pkg-config)
4170 ("vala" ,vala)
4171 ("xmllint" ,libxml2)))
4172 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4173 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4174 (description
4175 "Seahorse is a GNOME application for managing encryption keys and
4176 passwords in the GNOME keyring.")
4177 (license license:gpl2+)))
4178
4179 (define-public vala
4180 (package
4181 (name "vala")
4182 (version "0.46.5")
4183 (source (origin
4184 (method url-fetch)
4185 (uri (string-append "mirror://gnome/sources/" name "/"
4186 (version-major+minor version) "/"
4187 name "-" version ".tar.xz"))
4188 (sha256
4189 (base32
4190 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4191 (build-system gnu-build-system)
4192 (arguments
4193 '(#:phases
4194 (modify-phases %standard-phases
4195 (add-before 'check 'pre-check
4196 (lambda _
4197 (setenv "CC" "gcc")
4198 (substitute* "valadoc/tests/testrunner.sh"
4199 (("export PKG_CONFIG_PATH=" m)
4200 (string-append m "$PKG_CONFIG_PATH:")))
4201 ;; For missing '/etc/machine-id'.
4202 (setenv "DBUS_FATAL_WARNINGS" "0")
4203 #t)))))
4204 (native-inputs
4205 `(("pkg-config" ,pkg-config)
4206 ("flex" ,flex)
4207 ("bison" ,bison)
4208 ("xsltproc" ,libxslt)
4209 ("dbus" ,dbus) ; for dbus tests
4210 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4211 (inputs
4212 `(("graphviz" ,graphviz)))
4213 (propagated-inputs
4214 `(("glib" ,glib))) ; required by libvala-0.40.pc
4215 (home-page "https://live.gnome.org/Vala/")
4216 (synopsis "Compiler for the GObject type system")
4217 (description
4218 "Vala is a programming language that aims to bring modern programming
4219 language features to GNOME developers without imposing any additional runtime
4220 requirements and without using a different ABI compared to applications and
4221 libraries written in C.")
4222 (license license:lgpl2.1+)))
4223
4224 (define-public vala-0.48
4225 (package
4226 (inherit vala)
4227 (version "0.48.9")
4228 (source (origin
4229 (method url-fetch)
4230 (uri (string-append "mirror://gnome/sources/vala/"
4231 (version-major+minor version) "/"
4232 "vala-" version ".tar.xz"))
4233 (sha256
4234 (base32
4235 "1agyrvslv2yh9ikiw7k5nw6j6il1l2zrzfan0pzdpb9xpg9idslw"))))))
4236
4237 (define-public vte
4238 (package
4239 (name "vte")
4240 (version "0.60.3")
4241 (source (origin
4242 (method url-fetch)
4243 (uri (string-append "mirror://gnome/sources/vte/"
4244 (version-major+minor version) "/"
4245 "vte-" version ".tar.xz"))
4246 (sha256
4247 (base32
4248 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4249 (build-system meson-build-system)
4250 (arguments
4251 `(#:configure-flags
4252 '("-Dvapi=true"
4253 "-D_systemd=false")))
4254 (native-inputs
4255 `(("pkg-config" ,pkg-config)
4256 ("gettext" ,gettext-minimal)
4257 ("vala" ,vala)
4258 ("gobject-introspection" ,gobject-introspection)
4259 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4260 ("gperf" ,gperf)
4261 ("xmllint" ,libxml2)))
4262 (propagated-inputs
4263 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4264 ("gnutls" ,gnutls) ; ditto
4265 ("pcre2" ,pcre2))) ; ditto
4266 (home-page "https://www.gnome.org/")
4267 (synopsis "Virtual Terminal Emulator")
4268 (description
4269 "VTE is a library (libvte) implementing a terminal emulator widget for
4270 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4271 gnome-terminal, but can also be used to embed a console/terminal in games,
4272 editors, IDEs, etc.")
4273 (license license:lgpl2.1+)))
4274
4275 (define-public vte-ng
4276 (package
4277 (inherit vte)
4278 (name "vte-ng")
4279 (version "0.58.2.a")
4280 (home-page "https://github.com/thestinger/vte-ng")
4281 (source (origin
4282 (method git-fetch)
4283 (uri (git-reference (url home-page) (commit version)))
4284 (file-name (git-file-name name version))
4285 (sha256
4286 (base32
4287 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4288 (build-system meson-build-system)
4289 (native-inputs
4290 `(("gtk-doc" ,gtk-doc)
4291 ,@(package-native-inputs vte)))
4292 (arguments
4293 `(#:configure-flags '("-Ddocs=true")))
4294 (synopsis "Enhanced VTE terminal widget")
4295 (description
4296 "VTE is a library (libvte) implementing a terminal emulator widget for
4297 GTK+, this fork provides additional functions exposed for keyboard text
4298 selection and URL hints.")))
4299
4300 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4301 (define-public vte/gtk+-2
4302 (package (inherit vte)
4303 (name "vte")
4304 (version "0.28.2")
4305 (source (origin
4306 (method url-fetch)
4307 (uri (string-append "mirror://gnome/sources/" name "/"
4308 (version-major+minor version) "/"
4309 name "-" version ".tar.xz"))
4310 (sha256
4311 (base32
4312 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4313 (patches (search-patches
4314 "vte-CVE-2012-2738-pt1.patch"
4315 "vte-CVE-2012-2738-pt2.patch"))))
4316 (build-system gnu-build-system)
4317 (arguments
4318 '(#:configure-flags '("--disable-python")))
4319 (native-inputs
4320 `(("pkg-config" ,pkg-config)
4321 ("intltool" ,intltool)
4322 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4323 (propagated-inputs
4324 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4325 ("ncurses" ,ncurses))))) ; required by libvte.la
4326
4327 (define-public vinagre
4328 (package
4329 (name "vinagre")
4330 (version "3.22.0")
4331 (source (origin
4332 (method url-fetch)
4333 (uri (string-append "mirror://gnome/sources/" name "/"
4334 (version-major+minor version) "/"
4335 name "-" version ".tar.xz"))
4336 (patches (search-patches "vinagre-newer-freerdp.patch"
4337 "vinagre-newer-rdp-parameters.patch"))
4338 (sha256
4339 (base32
4340 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4341 (build-system glib-or-gtk-build-system)
4342 (arguments
4343 ;; Disable -Werror and such, to avoid build failures on compilation
4344 ;; warnings.
4345 '(#:configure-flags '("--enable-compile-warnings=minimum")
4346 #:phases
4347 (modify-phases %standard-phases
4348 (add-before 'install 'skip-gtk-update-icon-cache
4349 (lambda _
4350 ;; Don't create 'icon-theme.cache'
4351 (substitute* (find-files "." "^Makefile$")
4352 (("gtk-update-icon-cache") (which "true")))
4353 #t))
4354 (add-after 'unpack 'patch-configure
4355 (lambda _
4356 (substitute* "configure"
4357 (("freerdp") "freerdp2"))
4358 #t)))))
4359 (native-inputs
4360 `(("pkg-config" ,pkg-config)
4361 ("intltool" ,intltool)
4362 ("itstool" ,itstool)
4363 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4364 (inputs
4365 `(("libxml2" ,libxml2)
4366 ("gtk-vnc" ,gtk-vnc)
4367 ("gnome-keyring" ,gnome-keyring)
4368 ("libsecret" ,libsecret)
4369 ("freerdp" ,freerdp)
4370 ("spice" ,spice)
4371 ("spice-gtk" ,spice-gtk)
4372 ("telepathy-glib" ,telepathy-glib)
4373 ("vte" ,vte)))
4374 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4375 (synopsis "Remote desktop viewer for GNOME")
4376 (description "Vinagre is a remote display client supporting the VNC, SPICE
4377 and RDP protocols.")
4378 (license license:gpl3+)))
4379
4380 (define-public dconf
4381 (package
4382 (name "dconf")
4383 (version "0.34.0")
4384 (source (origin
4385 (method url-fetch)
4386 (uri (string-append
4387 "mirror://gnome/sources/" name "/"
4388 (version-major+minor version) "/"
4389 name "-" version ".tar.xz"))
4390 (patches (search-patches "dconf-meson-0.52.patch"))
4391 (sha256
4392 (base32
4393 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
4394 (build-system meson-build-system)
4395 (propagated-inputs
4396 ;; In Requires of dconf.pc.
4397 `(("glib" ,glib)))
4398 (inputs
4399 `(("gtk+" ,gtk+)
4400 ("dbus" ,dbus)))
4401 (native-inputs
4402 `(("bash-completion" ,bash-completion)
4403 ("libxslt" ,libxslt) ;for xsltproc
4404 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4405 ("docbook-xml" ,docbook-xml-4.2)
4406 ("docbook-xsl" ,docbook-xsl)
4407 ("glib:bin" ,glib "bin")
4408 ("gtk-doc" ,gtk-doc)
4409 ("pkg-config" ,pkg-config)
4410 ("vala" ,vala)))
4411 (arguments
4412 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
4413 ; or /etc/machine-id.
4414 #:glib-or-gtk? #t
4415 #:configure-flags '("-Denable-gtk-doc=true")))
4416 (home-page "https://developer.gnome.org/dconf/")
4417 (synopsis "Low-level GNOME configuration system")
4418 (description "Dconf is a low-level configuration system. Its main purpose
4419 is to provide a backend to GSettings on platforms that don't already have
4420 configuration storage systems.")
4421 (license license:lgpl2.1+)))
4422
4423 (define-public json-glib
4424 (package
4425 (name "json-glib")
4426 (version "1.4.4")
4427 (source (origin
4428 (method url-fetch)
4429 (uri (string-append "mirror://gnome/sources/" name "/"
4430 (version-major+minor version) "/"
4431 name "-" version ".tar.xz"))
4432 (sha256
4433 (base32
4434 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4435 (build-system meson-build-system)
4436 (native-inputs
4437 `(("gettext" ,gettext-minimal)
4438 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4439 ("gobject-introspection" ,gobject-introspection)
4440 ("pkg-config" ,pkg-config)))
4441 (propagated-inputs
4442 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4443 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4444 (synopsis "Compiler for the GObject type system")
4445 (description
4446 "JSON-GLib is a C library based on GLib providing serialization and
4447 deserialization support for the JavaScript Object Notation (JSON) format
4448 described by RFC 4627. It provides parser and generator GObject classes and
4449 various wrappers for the complex data types employed by JSON, such as arrays
4450 and objects.")
4451 (license license:lgpl2.1+)))
4452
4453 (define-public libxklavier
4454 (package
4455 (name "libxklavier")
4456 (version "5.4")
4457 (source (origin
4458 ;; Note: There's no tarball at ftp.gnome.org for this version.
4459 (method git-fetch)
4460 (uri (git-reference
4461 (url "https://anongit.freedesktop.org/git/libxklavier")
4462 (commit (string-append "libxklavier-" version))))
4463 (sha256
4464 (base32
4465 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4466 (file-name (git-file-name name version))))
4467 (build-system gnu-build-system)
4468 (arguments
4469 '(#:configure-flags
4470 (list (string-append "--with-xkb-base="
4471 (assoc-ref %build-inputs "xkeyboard-config")
4472 "/share/X11/xkb")
4473 "--disable-xmodmap-support")))
4474 (native-inputs
4475 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4476 ("gobject-introspection" ,gobject-introspection)
4477 ("pkg-config" ,pkg-config)
4478 ("gtk-doc" ,gtk-doc)
4479 ("intltool" ,intltool)
4480 ("which" ,which)
4481 ("autoconf" ,autoconf)
4482 ("automake" ,automake)
4483 ("libtool" ,libtool)))
4484 (propagated-inputs
4485 ;; Required by libxklavier.pc.
4486 `(("glib" ,glib)
4487 ("libxml2" ,libxml2)))
4488 (inputs
4489 `(("iso-codes" ,iso-codes)
4490 ("libxi" ,libxi)
4491 ("libxkbfile" ,libxkbfile)
4492 ("xkbcomp" ,xkbcomp)
4493 ("xkeyboard-config" ,xkeyboard-config)))
4494 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4495 (synopsis "High-level API for X Keyboard Extension")
4496 (description
4497 "LibXklavier is a library providing high-level API for X Keyboard
4498 Extension known as XKB. This library is intended to support XFree86 and other
4499 commercial X servers. It is useful for creating XKB-related software (layout
4500 indicators etc).")
4501 (license license:lgpl2.0+)))
4502
4503 (define-public python2-rsvg
4504 ;; XXX: This is actually a subset of gnome-python-desktop.
4505 (package
4506 (name "python2-rsvg")
4507 (version "2.32.0")
4508 (source
4509 (origin
4510 (method url-fetch)
4511 (uri (string-append
4512 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4513 version ".tar.bz2"))
4514 (sha256
4515 (base32
4516 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4517 (build-system gnu-build-system)
4518 (native-inputs
4519 `(("pkg-config" ,pkg-config)))
4520 (inputs
4521 `(("python" ,python-2)
4522 ("python2-pygtk" ,python2-pygtk)
4523 ("librsvg" ,librsvg)))
4524 (home-page "https://www.gnome.org")
4525 (synopsis "Python bindings to librsvg")
4526 (description
4527 "This package provides Python bindings to librsvg, the SVG rendering
4528 library.")
4529
4530 ;; This is the license of the rsvg bindings. The license of each module
4531 ;; of gnome-python-desktop is given in 'COPYING'.
4532 (license license:lgpl2.1+)))
4533
4534 (define-public glib-networking
4535 (package
4536 (name "glib-networking")
4537 (version "2.62.2")
4538 (source (origin
4539 (method url-fetch)
4540 (uri (string-append "mirror://gnome/sources/glib-networking/"
4541 (version-major+minor version) "/"
4542 "glib-networking-" version ".tar.xz"))
4543 (sha256
4544 (base32
4545 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4546 (build-system meson-build-system)
4547 (arguments
4548 `(#:configure-flags '("-Dlibproxy_support=false")))
4549 (native-inputs
4550 `(("pkg-config" ,pkg-config)
4551 ("intltool" ,intltool)))
4552 (inputs
4553 `(("glib" ,glib)
4554 ("gnutls" ,gnutls)
4555 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4556 (home-page "https://www.gnome.org")
4557 (synopsis "Network-related GIO modules")
4558 (description
4559 "This package contains various network related extensions for the GIO
4560 library.")
4561 (license license:lgpl2.0+)))
4562
4563 (define-public rest
4564 (package
4565 (name "rest")
4566 (version "0.8.1")
4567 (source (origin
4568 (method url-fetch)
4569 (uri (string-append "mirror://gnome/sources/rest/"
4570 (version-major+minor version) "/"
4571 name "-" version ".tar.xz"))
4572 (sha256
4573 (base32
4574 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4575 (build-system gnu-build-system)
4576 (arguments
4577 '(#:tests? #f ; tests require internet connection
4578 #:configure-flags
4579 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4580 (native-inputs
4581 `(("glib-mkenums" ,glib "bin")
4582 ("gobject-introspection" ,gobject-introspection)
4583 ("pkg-config" ,pkg-config)))
4584 (propagated-inputs
4585 ;; rest-0.7.pc refers to all these.
4586 `(("glib" ,glib)
4587 ("libsoup" ,libsoup)
4588 ("libxml2" ,libxml2)))
4589 (home-page "https://www.gtk.org/")
4590 (synopsis "RESTful web api query library")
4591 (description
4592 "This library was designed to make it easier to access web services that
4593 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4594 libxml to ease remote use of the RESTful API.")
4595 (license license:lgpl2.1+)))
4596
4597 (define-public libsoup
4598 (package
4599 (name "libsoup")
4600 (version "2.70.0")
4601 (source (origin
4602 (method url-fetch)
4603 (uri (string-append "mirror://gnome/sources/libsoup/"
4604 (version-major+minor version) "/"
4605 "libsoup-" version ".tar.xz"))
4606 (sha256
4607 (base32
4608 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
4609 (build-system meson-build-system)
4610 (outputs '("out" "doc"))
4611 (arguments
4612 `(#:modules ((guix build utils)
4613 (guix build meson-build-system)
4614 (ice-9 popen))
4615
4616 #:configure-flags '("-Dgtk_doc=true")
4617 #:phases
4618 (modify-phases %standard-phases
4619 (add-after 'unpack 'adjust-tests
4620 (lambda _
4621 ;; This test fails due to missing /etc/nsswitch.conf
4622 ;; in the build environment.
4623 (substitute* "tests/socket-test.c"
4624 ((".*/sockets/unconnected.*") ""))
4625
4626 ;; These fail because "subdomain.localhost" does not resolve in
4627 ;; the build environment.
4628 (substitute* "tests/hsts-test.c"
4629 ((".*/hsts/basic.*") "")
4630 ((".*/hsts/subdomains.*") "")
4631 ((".*/hsts/superdomain.*") "")
4632 ((".*/hsts/utf8-address.*") ""))
4633 (substitute* "tests/hsts-db-test.c"
4634 ((".*/hsts-db/subdomains.*") ""))
4635
4636 ;; Generate a self-signed certificate that has "localhost" as its
4637 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4638 ;; 3.5.12, tests such as "ssl-tests" fail:
4639 ;;
4640 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4641 ;;
4642 ;; 'certtool' is interactive so we have to pipe it the answers.
4643 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4644 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4645 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4646 (for-each (lambda (line)
4647 (display line pipe)
4648 (newline pipe))
4649 '("" ;Common name
4650 "" ;UID
4651 "Guix" ;Organizational unit name
4652 "GNU" ;Organization name
4653 "" ;Locality name
4654 "" ;State or province
4655 "" ;Country
4656 "" ;subject's domain component (DC)
4657 "" ;E-mail
4658 "" ;serial number
4659 "-1" ;expiration time
4660 "N" ;belong to authority?
4661 "N" ;web client certificate?
4662 "N" ;IPsec IKE?
4663 "Y" ;web server certificate?
4664 "localhost" ;dnsName of subject
4665 "" ;dnsName of subject (end)
4666 "" ;URI of subject
4667 "127.0.0.1" ;IP address of subject
4668 "" ;signing?
4669 "" ;encryption (RSA)?
4670 "" ;data encryption?
4671 "" ;sign OCSP requests?
4672 "" ;sign code?
4673 "" ;time stamping?
4674 "" ;email protection?
4675 "" ;URI of the CRL distribution point
4676 "y" ;above info OK?
4677 ))
4678 (close-pipe pipe))
4679 #t))
4680 (add-after 'install 'move-doc
4681 (lambda* (#:key outputs #:allow-other-keys)
4682 (let ((out (assoc-ref outputs "out"))
4683 (doc (assoc-ref outputs "doc")))
4684 (mkdir-p (string-append doc "/share"))
4685 (copy-recursively (string-append out "/share/gtk-doc")
4686 (string-append doc "/share/gtk-doc"))
4687 (delete-file-recursively (string-append out "/share/gtk-doc"))
4688 #t))))))
4689 (native-inputs
4690 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4691 ("gobject-introspection" ,gobject-introspection)
4692 ("gtk-doc" ,gtk-doc)
4693 ("intltool" ,intltool)
4694 ("pkg-config" ,pkg-config)
4695 ("python" ,python-wrapper)
4696 ("vala" ,vala)
4697 ("php" ,php)
4698 ("curl" ,curl)
4699 ("gnutls" ,gnutls) ;for 'certtool'
4700 ("httpd" ,httpd)))
4701 (propagated-inputs
4702 ;; libsoup-2.4.pc refers to all these.
4703 `(("brotli" ,google-brotli)
4704 ("glib" ,glib)
4705 ("libpsl" ,libpsl)
4706 ("libxml2" ,libxml2)
4707 ("sqlite" ,sqlite)
4708 ("zlib" ,zlib)))
4709 (inputs
4710 `(("glib-networking" ,glib-networking)
4711 ("mit-krb5" ,mit-krb5)))
4712 (home-page "https://live.gnome.org/LibSoup/")
4713 (synopsis "GLib-based HTTP Library")
4714 (description
4715 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4716 and the GLib main loop, to integrate well with GNOME applications.")
4717 (license license:lgpl2.0+)))
4718
4719
4720 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4721 (define-public libsoup-minimal
4722 (package
4723 (inherit libsoup)
4724 (name "libsoup-minimal")
4725 (outputs (delete "doc" (package-outputs libsoup)))
4726 (arguments
4727 (substitute-keyword-arguments (package-arguments libsoup)
4728 ((#:configure-flags configure-flags)
4729 `(delete "-Dgtk_doc=true" ,configure-flags))
4730 ((#:phases phases)
4731 `(modify-phases ,phases
4732 (delete 'move-doc)))))
4733 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4734
4735 (define-public libsecret
4736 (package
4737 (name "libsecret")
4738 (version "0.20.3")
4739 (source (origin
4740 (method url-fetch)
4741 (uri (string-append
4742 "mirror://gnome/sources/libsecret/"
4743 (version-major+minor version) "/"
4744 "libsecret-" version ".tar.xz"))
4745 (sha256
4746 (base32
4747 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
4748 (build-system gnu-build-system)
4749 (outputs '("out" "doc"))
4750 (arguments
4751 `(#:tests? #f ; FIXME: Testing hangs.
4752 #:configure-flags
4753 (list (string-append "--with-html-dir="
4754 (assoc-ref %outputs "doc")
4755 "/share/gtk-doc/html"))))
4756 (native-inputs
4757 `(("gettext" ,gettext-minimal)
4758 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4759 ("gobject-introspection" ,gobject-introspection)
4760 ("pkg-config" ,pkg-config)
4761 ("vala" ,vala)
4762 ("xsltproc" ,libxslt)))
4763 ;; These are needed for the tests.
4764 ;; FIXME: Add gjs once available.
4765 ;("dbus" ,dbus)
4766 ;("python2" ,python-2)
4767 ;("python2-dbus" ,python2-dbus)
4768 ;("python2-pygobject" ,python2-pygobject)
4769 ;("python2-pygobject-2" ,python2-pygobject-2)))
4770 (propagated-inputs
4771 `(("glib" ,glib))) ; required by libsecret-1.pc
4772 (inputs
4773 `(("docbook-xsl" ,docbook-xsl)
4774 ("libgcrypt" ,libgcrypt)
4775 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4776 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4777 (synopsis "GObject bindings for \"Secret Service\" API")
4778 (description
4779 "Libsecret is a GObject based library for storing and retrieving passwords
4780 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4781 (license license:lgpl2.1+)))
4782
4783 (define-public five-or-more
4784 (package
4785 (name "five-or-more")
4786 (version "3.32.2")
4787 (source
4788 (origin
4789 (method url-fetch)
4790 (uri (string-append "mirror://gnome/sources/five-or-more/"
4791 (version-major+minor version) "/"
4792 "five-or-more-" version ".tar.xz"))
4793 (sha256
4794 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4795 (build-system meson-build-system)
4796 (arguments
4797 '(#:glib-or-gtk? #t
4798 #:phases
4799 (modify-phases %standard-phases
4800 (add-after 'unpack 'skip-gtk-update-icon-cache
4801 (lambda _
4802 (substitute* "meson_post_install.py"
4803 (("gtk-update-icon-cache") (which "true")))
4804 #t)))))
4805 (native-inputs
4806 `(("pkg-config" ,pkg-config)
4807 ("appstream-glib" ,appstream-glib)
4808 ("desktop-file-utils" ,desktop-file-utils)
4809 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4810 ("intltool" ,intltool)
4811 ("itstool" ,itstool)
4812 ("vala" ,vala)
4813 ("xmllint" ,libxml2)))
4814 (inputs
4815 `(("gtk+" ,gtk+)
4816 ("libgnome-games-support" ,libgnome-games-support)
4817 ("librsvg" ,librsvg)))
4818 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
4819 (synopsis "Logic puzzle game")
4820 (description "Five or More is a game where you try to align
4821 five or more objects of the same color and shape causing them to disappear.
4822 On every turn more objects will appear, until the board is full.
4823 Try to last as long as possible.")
4824 (license license:gpl2+)))
4825
4826 (define-public gnome-mines
4827 (package
4828 (name "gnome-mines")
4829 (version "3.36.1")
4830 (source
4831 (origin
4832 (method url-fetch)
4833 (uri (string-append "mirror://gnome/sources/" name "/"
4834 (version-major+minor version) "/"
4835 name "-" version ".tar.xz"))
4836 (sha256
4837 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
4838 (build-system meson-build-system)
4839 (arguments
4840 '(#:glib-or-gtk? #t
4841 #:phases
4842 (modify-phases %standard-phases
4843 (add-after 'unpack 'skip-gtk-update-icon-cache
4844 (lambda _
4845 (substitute* "build-aux/meson_post_install.py"
4846 (("gtk-update-icon-cache") (which "true")))
4847 #t)))))
4848 (native-inputs
4849 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
4850 ("pkg-config" ,pkg-config)
4851 ("desktop-file-utils" ,desktop-file-utils)
4852 ("intltool" ,intltool)
4853 ("itstool" ,itstool)
4854 ("vala" ,vala)
4855 ("yelp" ,yelp)
4856 ("appstream-glib" ,appstream-glib)))
4857 (inputs
4858 `(("gtk+" ,gtk+)
4859 ("libgnome-games-support" ,libgnome-games-support)
4860 ("librsvg" ,librsvg)))
4861 (home-page "https://wiki.gnome.org/Apps/Mines")
4862 (synopsis "Minesweeper game")
4863 (description
4864 "Mines (previously gnomine) is a puzzle game where you locate mines
4865 floating in an ocean using only your brain and a little bit of luck.")
4866 (license license:gpl2+)))
4867
4868 (define-public gnome-multi-writer
4869 (package
4870 (name "gnome-multi-writer")
4871 (version "3.35.90")
4872 (source
4873 (origin
4874 (method url-fetch)
4875 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
4876 (version-major+minor version) "/"
4877 "gnome-multi-writer-" version ".tar.xz"))
4878 (sha256
4879 (base32
4880 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
4881 (build-system meson-build-system)
4882 (arguments
4883 '(#:glib-or-gtk? #t
4884 #:phases
4885 (modify-phases %standard-phases
4886 (add-after 'unpack 'skip-post-install
4887 (lambda _
4888 (substitute* "meson.build"
4889 (("meson.add_install_script" &) (string-append "# " &)))
4890 #t)))))
4891 (native-inputs
4892 `(("glib:bin" ,glib "bin")
4893 ("pkg-config" ,pkg-config)))
4894 (inputs
4895 `(("gtk+" ,gtk+)
4896 ("glib" ,glib) ; for gio
4897 ("gusb" ,gusb)
4898 ("udisks" ,udisks)
4899 ("libgudev" ,libgudev)
4900 ("libcanberra" ,libcanberra)
4901 ("polkit" ,polkit)))
4902 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
4903 (synopsis "Write to multiple USB devices at once")
4904 (description
4905 "MultiWriter can be used to write an ISO file to multiple USB devices at
4906 once.")
4907 (license license:gpl2+)))
4908
4909 (define-public gnome-sudoku
4910 (package
4911 (name "gnome-sudoku")
4912 (version "3.34.1")
4913 (source
4914 (origin
4915 (method url-fetch)
4916 (uri (string-append "mirror://gnome/sources/" name "/"
4917 (version-major+minor version) "/"
4918 name "-" version ".tar.xz"))
4919 (sha256
4920 (base32
4921 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
4922 (build-system meson-build-system)
4923 (arguments
4924 '(#:glib-or-gtk? #t
4925 #:phases
4926 (modify-phases %standard-phases
4927 (add-after 'unpack 'skip-gtk-update-icon-cache
4928 (lambda _
4929 (substitute* "build-aux/post_install.py"
4930 (("gtk-update-icon-cache") (which "true")))
4931 #t)))))
4932 (native-inputs
4933 `(("pkg-config" ,pkg-config)
4934 ("desktop-file-utils" ,desktop-file-utils)
4935 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4936 ("intltool" ,intltool)
4937 ("itstool" ,itstool)
4938 ("vala" ,vala)
4939 ("xmllint" ,libxml2)))
4940 (inputs
4941 `(("gtk+" ,gtk+)
4942 ("json-glib" ,json-glib)
4943 ("libgee" ,libgee)
4944 ("librsvg" ,librsvg)
4945 ("qqwing" ,qqwing)))
4946 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4947 (synopsis "Japanese logic game")
4948 (description
4949 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4950 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4951 possible while still providing features that make playing difficult Sudoku
4952 more fun.")
4953 (license license:gpl2+)))
4954
4955 (define-public gnome-terminal
4956 (package
4957 (name "gnome-terminal")
4958 (version "3.34.2")
4959 (source
4960 (origin
4961 (method url-fetch)
4962 (uri (string-append "mirror://gnome/sources/" name "/"
4963 (version-major+minor version) "/"
4964 name "-" version ".tar.xz"))
4965 (sha256
4966 (base32
4967 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
4968 (build-system glib-or-gtk-build-system)
4969 (arguments
4970 '(#:configure-flags
4971 (list "--disable-migration" "--disable-search-provider"
4972 "--without-nautilus-extension")
4973 #:phases
4974 (modify-phases %standard-phases
4975 (add-before 'configure 'patch-/bin/true
4976 (lambda _
4977 (substitute* "configure"
4978 (("/bin/true") (which "true"))))))))
4979 (native-inputs
4980 `(("pkg-config" ,pkg-config)
4981 ("desktop-file-utils" ,desktop-file-utils)
4982 ("intltool" ,intltool)
4983 ("itstool" ,itstool)
4984 ("xmllint" ,libxml2)))
4985 (propagated-inputs
4986 `(("dconf" ,dconf)))
4987 (inputs
4988 `(("gtk+" ,gtk+)
4989 ("vte" ,vte)
4990 ("gnutls" ,gnutls)
4991 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4992 ("util-linux" ,util-linux "lib")
4993 ("vala" ,vala)))
4994 (home-page "https://wiki.gnome.org/Apps/Terminal")
4995 (synopsis "Terminal emulator")
4996 (description
4997 "GNOME Terminal is a terminal emulator application for accessing a
4998 UNIX shell environment which can be used to run programs available on
4999 your system.
5000
5001 It supports several profiles, multiple tabs and implements several
5002 keyboard shortcuts.")
5003 (license license:gpl3+)))
5004
5005 (define-public colord
5006 (package
5007 (name "colord")
5008 (version "1.4.4")
5009 (source
5010 (origin
5011 (method url-fetch)
5012 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5013 "colord-" version ".tar.xz"))
5014 (sha256
5015 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
5016 (build-system meson-build-system)
5017 (arguments
5018 '(;; FIXME: One test fails:
5019 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5020 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5021 ;; application/x-zerosize
5022 #:tests? #f
5023 #:glib-or-gtk? #t
5024 #:configure-flags (list "-Dlocalstatedir=/var"
5025 ;; No dep on systemd.
5026 "-Dsystemd=false"
5027 ;; Wants to install to global completion dir;
5028 ;; punt.
5029 "-Dbash_completion=false"
5030 "-Ddaemon_user=colord"
5031 "-Dsane=true"
5032 "-Dvapi=true"
5033 ;; Requires spotread.
5034 "-Dargyllcms_sensor=false"
5035 ;; TODO: Requires docbook2x.
5036 "-Dman=false")
5037 #:phases
5038 (modify-phases %standard-phases
5039 (add-before 'configure 'patch-build-system
5040 (lambda* (#:key outputs #:allow-other-keys)
5041 (substitute* "rules/meson.build"
5042 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5043 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
5044 #t))
5045 (add-before 'configure 'set-sqlite3-file-name
5046 (lambda* (#:key inputs #:allow-other-keys)
5047 ;; "colormgr dump" works by invoking the "sqlite3" command.
5048 ;; Record its absolute file name.
5049 (let ((sqlite (assoc-ref inputs "sqlite")))
5050 (substitute* "client/cd-util.c"
5051 (("\"sqlite3\"")
5052 (string-append "\"" sqlite "/bin/sqlite3\"")))
5053 #t))))))
5054 (native-inputs
5055 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5056 ("gettext" ,gettext-minimal)
5057 ("gobject-introspection" ,gobject-introspection)
5058 ("gtk-doc" ,gtk-doc)
5059 ("pkg-config" ,pkg-config)
5060 ("vala" ,vala)))
5061 (propagated-inputs
5062 ;; colord.pc refers to all these.
5063 `(("glib" ,glib)
5064 ("lcms" ,lcms)
5065 ("udev" ,eudev)))
5066 (inputs
5067 `(("dbus-glib" ,dbus-glib)
5068 ("gusb" ,gusb)
5069 ("libgudev" ,libgudev)
5070 ("libusb" ,libusb)
5071 ("polkit" ,polkit)
5072 ("python" ,python-wrapper)
5073 ("sqlite" ,sqlite)
5074 ("sane-backends" ,sane-backends)))
5075 (home-page "https://www.freedesktop.org/software/colord/")
5076 (synopsis "Color management service")
5077 (description "Colord is a system service that makes it easy to manage,
5078 install and generate color profiles to accurately color manage input and
5079 output devices.")
5080 (license license:gpl2+)))
5081
5082 (define-public geoclue
5083 (package
5084 (name "geoclue")
5085 (version "2.5.6")
5086 (source
5087 (origin
5088 (method url-fetch)
5089 (uri
5090 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5091 version "/geoclue-" version ".tar.bz2"))
5092 (sha256
5093 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
5094 (patches (search-patches "geoclue-config.patch"))))
5095 (build-system meson-build-system)
5096 (arguments
5097 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
5098 (native-inputs
5099 `(("pkg-config" ,pkg-config)
5100 ("gobject-introspection" ,gobject-introspection)
5101 ("modem-manager" ,modem-manager)
5102 ("libnotify" ,libnotify)
5103 ("gtk-doc" ,gtk-doc)
5104 ("intltool" ,intltool)))
5105 (inputs
5106 `(("avahi" ,avahi)
5107 ("glib:bin" ,glib "bin")
5108 ("glib-networking" ,glib-networking)
5109 ("json-glib" ,json-glib)
5110 ("libsoup" ,libsoup)))
5111 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5112 (synopsis "Geolocation service")
5113 (description "Geoclue is a D-Bus service that provides location
5114 information. The primary goal of the Geoclue project is to make creating
5115 location-aware applications as simple as possible, while the secondary goal is
5116 to ensure that no application can access location information without explicit
5117 permission from user.")
5118 (license license:gpl2+)))
5119
5120 (define-public geocode-glib
5121 (package
5122 (name "geocode-glib")
5123 (version "3.26.2")
5124 (source (origin
5125 (method url-fetch)
5126 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5127 (version-major+minor version) "/"
5128 "geocode-glib-" version ".tar.xz"))
5129 (sha256
5130 (base32
5131 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5132 (build-system meson-build-system)
5133 (arguments
5134 `(#:phases
5135 (modify-phases %standard-phases
5136 ;; The tests require a bunch of locales.
5137 (add-before 'check 'set-locales
5138 (lambda* (#:key inputs #:allow-other-keys)
5139 (setenv "GUIX_LOCPATH"
5140 (string-append (assoc-ref inputs "glibc-locales")
5141 "/lib/locale"))
5142 #t)))))
5143 (native-inputs
5144 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5145 ("glibc-locales" ,glibc-locales) ; for tests
5146 ("gettext" ,gettext-minimal)
5147 ("gobject-introspection" ,gobject-introspection)
5148 ("gtk-doc" ,gtk-doc)
5149 ("pkg-config" ,pkg-config)
5150 ("json-glib" ,json-glib)))
5151 (propagated-inputs
5152 ;; geocode-glib-1.0.pc refers to GIO.
5153 `(("glib" ,glib)))
5154 (inputs
5155 `(("libsoup" ,libsoup)))
5156 (home-page "https://github.com/GNOME/geocode-glib/")
5157 (synopsis "Geocoding and reverse-geocoding library")
5158 (description
5159 "geocode-glib is a convenience library for geocoding (finding longitude,
5160 and latitude from an address) and reverse geocoding (finding an address from
5161 coordinates) using the Nominatim service. geocode-glib caches requests for
5162 faster results and to avoid unnecessary server load.")
5163 (license license:lgpl2.0+)))
5164
5165 (define-public upower
5166 (package
5167 (name "upower")
5168 (version "0.99.11")
5169 (source (origin
5170 (method url-fetch)
5171 (uri (string-append "https://upower.freedesktop.org/releases/"
5172 "upower-" version ".tar.xz"))
5173 (sha256
5174 (base32
5175 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5176 (patches (search-patches "upower-builddir.patch"))
5177 (modules '((guix build utils)))
5178 (snippet
5179 '(begin
5180 ;; Upstream commit
5181 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5182 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5183 ;; 'dbus-configuration-directory' in (gnu services dbus)
5184 ;; expects it in etc/. Thus, move it back to its previous
5185 ;; location.
5186 (substitute* "src/Makefile.in"
5187 (("^dbusconfdir =.*$")
5188 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5189 #t))))
5190 (build-system glib-or-gtk-build-system)
5191 (arguments
5192 '(#:phases
5193 (modify-phases %standard-phases
5194 (add-before 'check 'pre-check
5195 (lambda* (#:key inputs #:allow-other-keys)
5196 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5197 "/lib")))
5198 (setenv "LD_LIBRARY_PATH" umockdev))
5199 #t)))
5200 #:configure-flags (list "--localstatedir=/var"
5201 (string-append "--with-udevrulesdir="
5202 (assoc-ref %outputs "out")
5203 "/lib/udev/rules.d"))))
5204 (native-inputs
5205 `(("gobject-introspection" ,gobject-introspection)
5206 ("pkg-config" ,pkg-config)
5207 ("intltool" ,intltool)
5208 ("python" ,python)
5209
5210 ;; For tests.
5211 ("python-dbus" ,python-dbus)
5212 ("python-dbusmock" ,python-dbusmock)
5213 ("python-pygobject" ,python-pygobject)
5214 ("umockdev" ,umockdev)
5215
5216 ;; For man pages.
5217 ("libxslt" ,libxslt) ;for 'xsltproc'
5218 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5219 ("docbook-xsl" ,docbook-xsl)))
5220 (inputs
5221 `(("dbus-glib" ,dbus-glib)
5222 ("libgudev" ,libgudev)
5223 ("libusb" ,libusb)))
5224 (propagated-inputs
5225 ;; In Requires of upower-glib.pc.
5226 `(("glib" ,glib)))
5227 (home-page "https://upower.freedesktop.org/")
5228 (synopsis "System daemon for managing power devices")
5229 (description
5230 "UPower is an abstraction for enumerating power devices,
5231 listening to device events and querying history and statistics. Any
5232 application or service on the system can access the org.freedesktop.UPower
5233 service via the system message bus.")
5234 (license license:gpl2+)))
5235
5236 (define-public libgweather
5237 (package
5238 (name "libgweather")
5239 (version "3.34.0")
5240 (source (origin
5241 (method url-fetch)
5242 (uri (string-append "mirror://gnome/sources/" name "/"
5243 (version-major+minor version) "/"
5244 name "-" version ".tar.xz"))
5245 (sha256
5246 (base32
5247 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5248 (build-system meson-build-system)
5249 (arguments
5250 `(#:tests? #f ; one of two tests requires network access
5251 #:configure-flags
5252 `(,(string-append "-Dzoneinfo_dir="
5253 (assoc-ref %build-inputs "tzdata")
5254 "/share/zoneinfo"))))
5255 (native-inputs
5256 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5257 ("gobject-introspection" ,gobject-introspection)
5258 ("pkg-config" ,pkg-config)
5259 ("vala" ,vala)
5260 ("intltool" ,intltool)))
5261 (propagated-inputs
5262 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5263 ;; libsoup.
5264 `(("gtk+" ,gtk+)
5265 ("gdk-pixbuf" ,gdk-pixbuf)
5266 ("libxml2" ,libxml2)
5267 ("libsoup" ,libsoup)
5268 ("geocode-glib" ,geocode-glib)))
5269 (inputs
5270 `(("tzdata" ,tzdata)))
5271 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5272 (synopsis "Location, time zone, and weather library for GNOME")
5273 (description
5274 "libgweather is a library to access weather information from online
5275 services for numerous locations.")
5276 (license license:gpl2+)))
5277
5278 (define-public gnome-settings-daemon
5279 (package
5280 (name "gnome-settings-daemon")
5281 (version "3.34.1")
5282 (source
5283 (origin
5284 (method url-fetch)
5285 (uri (string-append "mirror://gnome/sources/" name "/"
5286 (version-major+minor version) "/"
5287 name "-" version ".tar.xz"))
5288 (sha256
5289 (base32
5290 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
5291 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5292 (build-system meson-build-system)
5293 (arguments
5294 `(#:glib-or-gtk? #t
5295 #:configure-flags
5296 (list (string-append "-Dudev_dir="
5297 (assoc-ref %outputs "out")
5298 "/lib/udev/rules.d/")
5299 "-Dsystemd=false"
5300 ;; Otherwise, the RUNPATH will lack the final path component.
5301 (string-append "-Dc_link_args=-Wl,-rpath="
5302 (assoc-ref %outputs "out")
5303 "/lib/gnome-settings-daemon-3.0"))
5304
5305 #:phases (modify-phases %standard-phases
5306 (add-before 'configure 'set-baobab-file-name
5307 (lambda* (#:key inputs #:allow-other-keys)
5308 ;; Hard-code the file name of Baobab instead of looking
5309 ;; it up in $PATH. This ensures users get the "Examine"
5310 ;; button in the low disk space notification of GDM even
5311 ;; if they don't have GNOME in their main profile.
5312 (let ((baobab (assoc-ref inputs "baobab")))
5313 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5314 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5315 (string-append "g_strdup (\"" baobab
5316 "/bin/baobab\")")))
5317 #t))))
5318
5319 ;; Color management test can't reach the colord system service.
5320 #:tests? #f))
5321 (native-inputs
5322 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5323 ("pkg-config" ,pkg-config)
5324 ("intltool" ,intltool)
5325 ("xsltproc" ,libxslt)
5326 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5327 ("docbook-xml" ,docbook-xml-4.2)
5328 ("docbook-xsl" ,docbook-xsl)))
5329 (inputs
5330 `(("alsa-lib" ,alsa-lib)
5331 ("baobab" ,baobab)
5332 ("colord" ,colord)
5333 ("libgudev" ,libgudev)
5334 ("upower" ,upower)
5335 ("polkit" ,polkit)
5336 ("pulseaudio" ,pulseaudio)
5337 ("libcanberra" ,libcanberra)
5338 ("libx11" ,libx11)
5339 ("libxtst" ,libxtst)
5340 ("lcms" ,lcms)
5341 ("libnotify" ,libnotify)
5342 ("geoclue" ,geoclue)
5343 ("geocode-glib" ,geocode-glib)
5344 ("libgweather" ,libgweather)
5345 ("gnome-desktop" ,gnome-desktop)
5346 ("nss" ,nss)
5347 ("cups" ,cups)
5348 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5349 ("libwacom" ,libwacom)
5350 ("librsvg" ,librsvg)
5351 ("xf86-input-wacom" ,xf86-input-wacom)
5352 ("wayland" ,wayland)
5353 ("network-manager" ,network-manager)
5354 ("gcr" ,gcr)
5355 ("modem-manager" ,modem-manager)))
5356 (home-page "https://www.gnome.org")
5357 (synopsis "GNOME settings daemon")
5358 (description
5359 "This package contains the daemon responsible for setting the various
5360 parameters of a GNOME session and the applications that run under it. It
5361 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5362 settings, themes, mouse settings, and startup of other daemons.")
5363 (license license:gpl2+)))
5364
5365 (define-public totem-pl-parser
5366 (package
5367 (name "totem-pl-parser")
5368 (version "3.26.5")
5369 (source (origin
5370 (method url-fetch)
5371 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5372 (version-major+minor version) "/"
5373 "totem-pl-parser-" version ".tar.xz"))
5374 (sha256
5375 (base32
5376 "132jihnf51zs98yjkc6jxyqib4f3dawpjm17g4bj4j78y93dww2k"))))
5377 (build-system meson-build-system)
5378 (arguments
5379 ;; FIXME: Tests require gvfs.
5380 `(#:tests? #f))
5381 (native-inputs
5382 `(("intltool" ,intltool)
5383 ("glib" ,glib "bin")
5384 ("gobject-introspection" ,gobject-introspection)
5385 ("pkg-config" ,pkg-config)))
5386 (propagated-inputs
5387 `(("glib" ,glib)
5388 ("gmime" ,gmime)
5389 ("libarchive" ,libarchive)
5390 ("libgcrypt" ,libgcrypt)
5391 ("libxml2" ,libxml2)))
5392 (inputs
5393 `(("libsoup" ,libsoup)))
5394 (home-page "https://projects.gnome.org/totem")
5395 (synopsis "Library to parse and save media playlists for GNOME")
5396 (description "Totem-pl-parser is a GObjects-based library to parse and save
5397 playlists in a variety of formats.")
5398 (license license:lgpl2.0+)))
5399
5400 (define-public aisleriot
5401 (package
5402 (name "aisleriot")
5403 (version "3.22.9")
5404 (source (origin
5405 (method url-fetch)
5406 (uri (string-append "mirror://gnome/sources/aisleriot/"
5407 (version-major+minor version) "/"
5408 "aisleriot-" version ".tar.xz"))
5409 (sha256
5410 (base32
5411 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5412 (build-system glib-or-gtk-build-system)
5413 (arguments
5414 '(#:configure-flags
5415 '("--with-platform=gtk-only"
5416 "--with-card-theme-formats=svg")))
5417 (native-inputs
5418 `(("desktop-file-utils" ,desktop-file-utils)
5419 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5420 ("intltool" ,intltool)
5421 ("itstool" ,itstool)
5422 ("pkg-config" ,pkg-config)
5423 ("xmllint" ,libxml2)))
5424 (inputs
5425 `(("gtk+" ,gtk+)
5426 ("guile" ,guile-2.2)
5427 ("libcanberra" ,libcanberra)
5428 ("librsvg" ,librsvg)))
5429 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5430 (synopsis "Solitaire card games")
5431 (description
5432 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5433 which are easy to play with the aid of a mouse.")
5434 (license license:gpl3+)))
5435
5436 (define-public amtk
5437 (package
5438 (name "amtk")
5439 (version "5.0.2")
5440 (source (origin
5441 (method url-fetch)
5442 (uri (string-append "mirror://gnome/sources/amtk/"
5443 (version-major+minor version) "/"
5444 "amtk-" version ".tar.xz"))
5445 (sha256
5446 (base32
5447 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5448 (build-system gnu-build-system)
5449 (arguments
5450 '(#:configure-flags '("--enable-gtk-doc")))
5451 (native-inputs
5452 `(("gobject-introspection" ,gobject-introspection)
5453 ("glib:bin" ,glib "bin") ; for glib-mkenums
5454 ("gtk-doc" ,gtk-doc)
5455 ("pkg-config" ,pkg-config)))
5456 (inputs
5457 `(("glib" ,glib)
5458 ("gtk+" ,gtk+)))
5459 (home-page "https://wiki.gnome.org/Projects/Amtk")
5460 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5461 (description
5462 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5463 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5464 both a traditional UI or a modern UI with a GtkHeaderBar.")
5465 (license license:lgpl2.1+)))
5466
5467 (define-public devhelp
5468 (package
5469 (name "devhelp")
5470 (version "3.34.0")
5471 (source (origin
5472 (method url-fetch)
5473 (uri (string-append "mirror://gnome/sources/" name "/"
5474 (version-major+minor version) "/"
5475 name "-" version ".tar.xz"))
5476 (sha256
5477 (base32
5478 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5479 (build-system meson-build-system)
5480 (arguments
5481 '(#:glib-or-gtk? #t
5482 #:phases
5483 (modify-phases %standard-phases
5484 (add-after 'unpack 'skip-gtk-update-icon-cache
5485 ;; Don't create 'icon-theme.cache'.
5486 (lambda _
5487 (substitute* "meson_post_install.py"
5488 (("gtk-update-icon-cache") "true"))
5489 #t)))))
5490 (native-inputs
5491 `(("intltool" ,intltool)
5492 ("itstool" ,itstool)
5493 ("gobject-introspection" ,gobject-introspection)
5494 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5495 ("pkg-config" ,pkg-config)))
5496 (inputs
5497 `(("amtk" ,amtk)
5498 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5499 ("webkitgtk" ,webkitgtk)))
5500 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5501 (synopsis "API documentation browser for GNOME")
5502 (description
5503 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5504 natively with GTK-Doc (the API reference system developed for GTK+ and used
5505 throughout GNOME for API documentation).")
5506 (license license:gpl2+)))
5507
5508 (define-public cogl
5509 (package
5510 (name "cogl")
5511 (version "1.22.8")
5512 (source
5513 (origin
5514 (method url-fetch)
5515 (uri (string-append "mirror://gnome/sources/cogl/"
5516 (version-major+minor version) "/"
5517 "cogl-" version ".tar.xz"))
5518 (sha256
5519 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5520 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5521 ;; cogl, corresponding changes may be appropriate in mutter as well.
5522 (build-system gnu-build-system)
5523 (native-inputs
5524 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5525 ("gobject-introspection" ,gobject-introspection)
5526 ("xorg-server" ,xorg-server-for-tests)
5527 ("pkg-config" ,pkg-config)))
5528 (propagated-inputs
5529 `(("glib" ,glib)
5530 ("gdk-pixbuf" ,gdk-pixbuf)
5531 ("libx11" ,libx11)
5532 ("libxext" ,libxext)
5533 ("libxfixes" ,libxfixes)
5534 ("libxdamage" ,libxdamage)
5535 ("libxcomposite" ,libxcomposite)
5536 ("libxrandr" ,libxrandr)))
5537 (inputs
5538 `(("mesa" ,mesa)
5539 ("cairo" ,cairo)
5540 ("pango" ,pango)
5541 ("gstreamer" ,gstreamer)
5542 ("gst-plugins-base" ,gst-plugins-base)
5543 ("wayland" ,wayland)))
5544 (arguments
5545 `(#:disallowed-references (,xorg-server-for-tests)
5546 #:configure-flags (list "--enable-cogl-gst"
5547 "--enable-wayland-egl-platform"
5548 "--enable-wayland-egl-server"
5549
5550 ;; Arrange to pass an absolute file name to
5551 ;; dlopen for libGL.so.
5552 (string-append "--with-gl-libname="
5553 (assoc-ref %build-inputs "mesa")
5554 "/lib/libGL.so"))
5555 #:phases
5556 (modify-phases %standard-phases
5557 (add-after 'unpack 'fix-build-with-mesa-20
5558 (lambda _
5559 ;; Work around a problem with Mesa 20 where some macros used by
5560 ;; Cogl went missing from eglext.h. This can likely be removed
5561 ;; for newer versions of Cogl or Mesa.
5562 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5563 (substitute* '("configure"
5564 "cogl/winsys/cogl-winsys-egl-kms.c")
5565 (("#include <EGL/eglext.h>" all)
5566 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5567 #t))
5568 (add-before 'check 'start-xorg-server
5569 (lambda* (#:key tests? inputs #:allow-other-keys)
5570 (if tests?
5571 (begin
5572 ;; The test suite requires a running X server.
5573 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5574 (assoc-ref inputs "xorg-server")))
5575 (setenv "DISPLAY" ":1")
5576 #t)
5577 (format #t "test suite not run~%"))
5578 #t)))))
5579 (home-page "https://www.cogl3d.org")
5580 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5581 (description
5582 "Cogl is a small library for using 3D graphics hardware to draw pretty
5583 pictures. The API departs from the flat state machine style of OpenGL and is
5584 designed to make it easy to write orthogonal components that can render
5585 without stepping on each others toes.")
5586 (license (list license:expat ; most of the code
5587 license:bsd-3 ; cogl/cogl-point-in-poly.c
5588 license:sgifreeb2.0 ; cogl-path/tesselator/
5589 license:asl2.0)))) ; examples/android/
5590
5591 (define-public clutter
5592 (package
5593 (name "clutter")
5594 (version "1.26.2")
5595 (source
5596 (origin
5597 (method url-fetch)
5598 (uri (string-append "mirror://gnome/sources/" name "/"
5599 (version-major+minor version) "/"
5600 name "-" version ".tar.xz"))
5601 (sha256
5602 (base32
5603 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5604 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5605 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5606 (build-system gnu-build-system)
5607 (outputs '("out"
5608 "doc")) ;9 MiB of gtk-doc HTML pages
5609 (native-inputs
5610 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5611 ("gobject-introspection" ,gobject-introspection)
5612 ("pkg-config" ,pkg-config)
5613 ("xsltproc" ,libxslt)))
5614 (propagated-inputs
5615 `(("cogl" ,cogl)
5616 ("cairo" ,cairo)
5617 ("atk" ,atk)
5618 ("gtk+" ,gtk+)
5619 ("json-glib" ,json-glib)
5620 ("glib" ,glib)
5621 ("libxcomposite" ,libxcomposite)
5622 ("libxdamage" ,libxdamage)
5623 ("libxext" ,libxext)
5624 ("xinput" ,xinput)))
5625 (inputs
5626 `(("libxkbcommon" ,libxkbcommon)
5627 ("udev" ,eudev)))
5628 (arguments
5629 `(#:configure-flags (list "--enable-x11-backend=yes"
5630
5631 ;; This produces share/doc/{clutter,cally}.
5632 (string-append "--with-html-dir="
5633 (assoc-ref %outputs "doc")
5634 "/share/doc"))
5635 ;; XXX FIXME: Get test suite working. It would probably fail in the
5636 ;; same way the cogl tests fail, since clutter is based on cogl.
5637 #:tests? #f))
5638 (home-page "http://www.clutter-project.org")
5639 (synopsis "OpenGL-based interactive canvas library")
5640 (description
5641 "Clutter is an OpenGL-based interactive canvas library, designed for
5642 creating fast, mainly 2D single window applications such as media box UIs,
5643 presentations, kiosk style applications and so on.")
5644 (license license:lgpl2.0+)))
5645
5646 (define-public clutter-gtk
5647 (package
5648 (name "clutter-gtk")
5649 (version "1.8.4")
5650 (source
5651 (origin
5652 (method url-fetch)
5653 (uri (string-append "mirror://gnome/sources/" name "/"
5654 (version-major+minor version) "/"
5655 name "-" version ".tar.xz"))
5656 (sha256
5657 (base32
5658 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5659 (build-system gnu-build-system)
5660 (native-inputs
5661 `(("pkg-config" ,pkg-config)
5662 ("gobject-introspection" ,gobject-introspection)))
5663 (propagated-inputs
5664 ;; clutter-gtk.pc refers to all these.
5665 `(("clutter" ,clutter)
5666 ("gtk+" ,gtk+)))
5667 (home-page "http://www.clutter-project.org")
5668 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5669 (description
5670 "Clutter is an OpenGL-based interactive canvas library, designed for
5671 creating fast, mainly 2D single window applications such as media box UIs,
5672 presentations, kiosk style applications and so on.")
5673 (license license:lgpl2.0+)))
5674
5675 (define-public clutter-gst
5676 (package
5677 (name "clutter-gst")
5678 (version "3.0.27")
5679 (source
5680 (origin
5681 (method url-fetch)
5682 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5683 (version-major+minor version) "/"
5684 "clutter-gst-" version ".tar.xz"))
5685 (sha256
5686 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5687 (build-system gnu-build-system)
5688 (native-inputs
5689 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5690 ("pkg-config" ,pkg-config)
5691 ("gobject-introspection" ,gobject-introspection)))
5692 (inputs
5693 `(("clutter" ,clutter)
5694 ("gstreamer" ,gstreamer)
5695 ("gst-plugins-base" ,gst-plugins-base)))
5696 (home-page "http://www.clutter-project.org")
5697 (synopsis "Integration library for using GStreamer with Clutter")
5698 (description
5699 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5700 It provides a GStreamer sink to upload frames to GL and an actor that
5701 implements the ClutterGstPlayer interface using playbin. Clutter is an
5702 OpenGL-based interactive canvas library.")
5703 (license license:lgpl2.0+)))
5704
5705 (define-public libchamplain
5706 (package
5707 (name "libchamplain")
5708 (version "0.12.16")
5709 (source (origin
5710 (method url-fetch)
5711 (uri (string-append
5712 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5713 version ".tar.xz"))
5714 (sha256
5715 (base32
5716 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5717 (build-system gnu-build-system)
5718 (arguments '(#:configure-flags '("--enable-vala")))
5719 (native-inputs
5720 `(("gobject-introspection" ,gobject-introspection)
5721 ("pkg-config" ,pkg-config)
5722 ("vala" ,vala)))
5723 (propagated-inputs
5724 `(("libsoup" ,libsoup)
5725 ("sqlite" ,sqlite)
5726 ("clutter" ,clutter)
5727 ("clutter-gtk" ,clutter-gtk)
5728 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5729 ("cairo" ,cairo)
5730 ("gtk+3" ,gtk+)
5731 ("glib" ,glib)))
5732 (home-page "https://projects.gnome.org/libchamplain/")
5733 (synopsis "C library providing a ClutterActor to display maps")
5734 (description
5735 "libchamplain is a C library providing a ClutterActor to display maps.
5736 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5737 and Perl bindings are also available. It supports numerous free map sources
5738 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5739 (license license:lgpl2.1+)))
5740
5741 (define-public gom
5742 (package
5743 (name "gom")
5744 (version "0.3.2")
5745 (source
5746 (origin
5747 (method url-fetch)
5748 (uri (string-append "mirror://gnome/sources/gom/"
5749 (version-major+minor version) "/"
5750 "gom-" version ".tar.xz"))
5751 (sha256
5752 (base32
5753 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5754 (build-system gnu-build-system)
5755 (native-inputs
5756 `(("intltool" ,intltool)
5757 ("pkg-config" ,pkg-config)
5758 ("gobject-introspection" ,gobject-introspection)))
5759 (inputs
5760 `(("glib" ,glib)
5761 ("gdk-pixbuf" ,gdk-pixbuf)
5762 ("sqlite" ,sqlite)))
5763 ;; XXX TODO: Figure out how to run the test suite.
5764 (arguments `(#:tests? #f))
5765 (home-page "https://wiki.gnome.org/Projects/Gom")
5766 (synopsis "Object mapper from GObjects to SQLite")
5767 (description
5768 "Gom provides an object mapper from GObjects to SQLite. It helps you
5769 write applications that need to store structured data as well as make complex
5770 queries upon that data.")
5771 (license license:lgpl2.1+)))
5772
5773 (define-public libgnome-games-support
5774 (package
5775 (name "libgnome-games-support")
5776 (version "1.4.4")
5777 (source (origin
5778 (method url-fetch)
5779 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5780 (version-major+minor version) "/"
5781 "libgnome-games-support-" version ".tar.xz"))
5782 (sha256
5783 (base32
5784 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5785 (build-system gnu-build-system)
5786 (arguments
5787 '(#:phases
5788 (modify-phases %standard-phases
5789 (add-before 'check 'pre-check
5790 (lambda _
5791 ;; Tests require a writable HOME.
5792 (setenv "HOME" (getcwd))
5793 #t)))))
5794 (native-inputs
5795 `(("intltool" ,intltool)
5796 ("pkg-config" ,pkg-config)
5797 ("vala" ,vala)))
5798 (propagated-inputs
5799 ;; Required by libgnome-games-support-1.0.pc
5800 `(("gtk+" ,gtk+)
5801 ("libgee" ,libgee)))
5802 (home-page "https://www.gnome.org/")
5803 (synopsis "Useful functionality shared among GNOME games")
5804 (description
5805 "libgnome-games-support is a small library intended for internal use by
5806 GNOME Games, but it may be used by others.")
5807 (license license:lgpl3+)))
5808
5809 (define-public gnome-klotski
5810 (package
5811 (name "gnome-klotski")
5812 (version "3.34.0")
5813 (source (origin
5814 (method url-fetch)
5815 (uri (string-append "mirror://gnome/sources/" name "/"
5816 (version-major+minor version) "/"
5817 name "-" version ".tar.xz"))
5818 (sha256
5819 (base32
5820 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
5821 (build-system meson-build-system)
5822 (arguments
5823 '(#:glib-or-gtk? #t
5824 #:phases
5825 (modify-phases %standard-phases
5826 (add-after 'unpack 'skip-gtk-update-icon-cache
5827 ;; Don't create 'icon-theme.cache'.
5828 (lambda _
5829 (substitute* "build-aux/meson_post_install.py"
5830 (("gtk-update-icon-cache") (which "true")))
5831 #t)))))
5832 (native-inputs
5833 `(("desktop-file-utils" ,desktop-file-utils)
5834 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5835 ("intltool" ,intltool)
5836 ("itstool" ,itstool)
5837 ("pkg-config" ,pkg-config)
5838 ("vala" ,vala)
5839 ("xmllint" ,libxml2)))
5840 (inputs
5841 `(("gtk+" ,gtk+)
5842 ("libgnome-games-support" ,libgnome-games-support)
5843 ("librsvg" ,librsvg)))
5844 (home-page "https://wiki.gnome.org/Apps/Klotski")
5845 (synopsis "Sliding block puzzles")
5846 (description
5847 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
5848 the patterned block to the area bordered by green markers. To do so, you will
5849 need to slide other blocks out of the way. Complete each puzzle in as few moves
5850 as possible!")
5851 (license license:gpl2+)))
5852
5853 (define-public grilo
5854 (package
5855 (name "grilo")
5856 (version "0.3.12")
5857 (source
5858 (origin
5859 (method url-fetch)
5860 (uri (string-append "mirror://gnome/sources/grilo/"
5861 (version-major+minor version) "/"
5862 "grilo-" version ".tar.xz"))
5863 (sha256
5864 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
5865 (build-system meson-build-system)
5866 (native-inputs
5867 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
5868 ("intltool" ,intltool)
5869 ("pkg-config" ,pkg-config)
5870 ("gobject-introspection" ,gobject-introspection)
5871 ("gtk-doc" ,gtk-doc)
5872 ("vala" ,vala)))
5873 (inputs
5874 `(("cyrus-sasl" ,cyrus-sasl)
5875 ("glib" ,glib)
5876 ("gtk+" ,gtk+)
5877 ("libxml2" ,libxml2)
5878 ("liboauth" ,liboauth)
5879 ("libsoup" ,libsoup)
5880 ("totem-pl-parser" ,totem-pl-parser)))
5881 (native-search-paths
5882 (list (search-path-specification
5883 (variable "GRL_PLUGIN_PATH")
5884 (files (list (string-append "lib/grilo-"
5885 (version-major+minor version)))))))
5886 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
5887 (synopsis "Framework for discovering and browsing media")
5888 (description
5889 "Grilo is a framework focused on making media discovery and browsing easy
5890 for application developers.")
5891 (license license:lgpl2.1+)))
5892
5893 (define-public grilo-plugins
5894 (package
5895 (name "grilo-plugins")
5896 (version "0.3.11")
5897 (source
5898 (origin
5899 (method url-fetch)
5900 (uri (string-append "mirror://gnome/sources/" name "/"
5901 (version-major+minor version) "/"
5902 name "-" version ".tar.xz"))
5903 (sha256
5904 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
5905 (build-system meson-build-system)
5906 (native-inputs
5907 `(("gettext" ,gettext-minimal)
5908 ("glib:bin" ,glib "bin")
5909 ("gtk+:bin" ,gtk+ "bin")
5910 ("itstool" ,itstool)
5911 ("pkg-config" ,pkg-config)))
5912 ;; TODO: ahavi, gstreamer
5913 (inputs
5914 `(("grilo" ,grilo)
5915 ;("gmime" ,gmime) ; unused
5916 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
5917 ("gom" ,gom)
5918 ;("gssdp" ,gssdp) ; unused
5919 ;("gupnp" ,gupnp) ; unused
5920 ;("gupnp-av" ,gupnp-av) ; unused
5921 ("json-glib" ,json-glib)
5922 ("avahi" ,avahi)
5923 ("libgdata" ,libgdata)
5924 ("libmediaart" ,libmediaart)
5925 ;("librest" ,rest) ; unused
5926 ("libsoup" ,libsoup)
5927 ("totam-pl-parser" ,totem-pl-parser)
5928 ("tracker" ,tracker))) ; unused because it's too old
5929 (arguments
5930 `(#:glib-or-gtk? #t
5931 ;;Disable lua-factory as it needs missing dependencies
5932 #:configure-flags '("-Denable-lua-factory=no")))
5933 (home-page "https://live.gnome.org/Grilo")
5934 (synopsis "Plugins for the Grilo media discovery library")
5935 (description
5936 "Grilo is a framework focused on making media discovery and browsing easy
5937 for application developers. This package provides plugins for common media
5938 discovery protocols.")
5939 (license license:lgpl2.1+)))
5940
5941 (define-public totem
5942 (package
5943 (name "totem")
5944 (version "3.34.1")
5945 (source
5946 (origin
5947 (method url-fetch)
5948 (uri (string-append "mirror://gnome/sources/totem/"
5949 (version-major+minor version) "/"
5950 "totem-" version ".tar.xz"))
5951 (sha256
5952 (base32
5953 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
5954 (build-system meson-build-system)
5955 (native-inputs
5956 `(("pkg-config" ,pkg-config)
5957 ("desktop-file-utils" ,desktop-file-utils)
5958 ("gobject-introspection" ,gobject-introspection)
5959 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
5960 ("intltool" ,intltool)
5961 ("itstool" ,itstool)
5962 ("xmllint" ,libxml2)
5963 ("xorg-server" ,xorg-server-for-tests)))
5964 (propagated-inputs
5965 `(("dconf" ,dconf)))
5966 (inputs
5967 `(("gtk+" ,gtk+)
5968 ("gdk-pixbuf" ,gdk-pixbuf)
5969 ("atk" ,atk)
5970 ("cairo" ,cairo)
5971 ("dbus-glib" ,dbus-glib)
5972 ("clutter" ,clutter)
5973 ("clutter-gtk" ,clutter-gtk)
5974 ("clutter-gst" ,clutter-gst)
5975 ("xorgproto" ,xorgproto)
5976 ("libxxf86vm" ,libxxf86vm)
5977 ("libxtst" ,libxtst)
5978 ("libxrandr" ,libxrandr)
5979 ("libxml2" ,libxml2)
5980 ("libsoup" ,libsoup)
5981 ("libpeas" ,libpeas)
5982 ("librsvg" ,librsvg)
5983 ("lirc" ,lirc)
5984 ("gnome-desktop" ,gnome-desktop)
5985 ("gstreamer" ,gstreamer)
5986 ("gst-plugins-base" ,gst-plugins-base)
5987 ("gst-plugins-good" ,gst-plugins-good)
5988 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5989 ("adwaita-icon-theme" ,adwaita-icon-theme)
5990 ("python" ,python)
5991 ("python-pygobject" ,python-pygobject)
5992 ("totem-pl-parser" ,totem-pl-parser)
5993 ("grilo" ,grilo)
5994 ("grilo-plugins" ,grilo-plugins)
5995 ("vala" ,vala)))
5996 (arguments
5997 `(#:glib-or-gtk? #t
5998
5999 ;; Disable automatic GStreamer plugin installation via PackageKit and
6000 ;; all that.
6001 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6002
6003 ;; Do not build .a files for the plugins, it's
6004 ;; completely useless. This saves 2 MiB.
6005 "--default-library" "shared")
6006 #:phases
6007 (modify-phases %standard-phases
6008 (add-after 'unpack 'skip-gtk-update-icon-cache
6009 ;; Don't create 'icon-theme.cache'.
6010 (lambda _
6011 (substitute* "meson_post_install.py"
6012 (("gtk-update-icon-cache") "true"))
6013 #t))
6014 (add-before
6015 'install 'disable-cache-generation
6016 (lambda _
6017 (setenv "DESTDIR" "/")
6018 #t))
6019 (add-before
6020 'check 'pre-check
6021 (lambda _
6022 ;; Tests require a running X server.
6023 (system "Xvfb :1 &")
6024 (setenv "DISPLAY" ":1")
6025 #t))
6026 (add-after
6027 'install 'wrap-totem
6028 (lambda* (#:key inputs outputs #:allow-other-keys)
6029 (let ((out (assoc-ref outputs "out"))
6030 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6031 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6032 (wrap-program (string-append out "/bin/totem")
6033 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6034 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6035 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6036 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
6037 #t)))))
6038 (home-page "https://wiki.gnome.org/Apps/Videos")
6039 (synopsis "Simple media player for GNOME based on GStreamer")
6040 (description "Totem is a simple yet featureful media player for GNOME
6041 which can read a large number of file formats.")
6042 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6043 ;; to be used and distributed together with GStreamer and Totem. See
6044 ;; file://COPYING in the source distribution for details.
6045 (license license:gpl2+)))
6046
6047 (define-public rhythmbox
6048 (package
6049 (name "rhythmbox")
6050 (version "3.4.4")
6051 (source (origin
6052 (method url-fetch)
6053 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6054 (version-major+minor version) "/"
6055 "rhythmbox-" version ".tar.xz"))
6056 (sha256
6057 (base32
6058 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6059 (build-system glib-or-gtk-build-system)
6060 (arguments
6061 `(#:configure-flags
6062 (list "--enable-lirc"
6063 "--enable-python"
6064 "--enable-vala"
6065 "--with-brasero"
6066 "--with-gudev"
6067 "--with-libsecret")
6068 #:phases
6069 (modify-phases %standard-phases
6070 (add-after
6071 'install 'wrap-rhythmbox
6072 (lambda* (#:key inputs outputs #:allow-other-keys)
6073 (let ((out (assoc-ref outputs "out"))
6074 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6075 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6076 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6077 (python-path (getenv "PYTHONPATH")))
6078 (wrap-program (string-append out "/bin/rhythmbox")
6079 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6080 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6081 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6082 `("PYTHONPATH" ":" prefix (,python-path))))
6083 #t)))))
6084 (propagated-inputs
6085 `(("dconf" ,dconf)))
6086 (native-inputs
6087 `(("itstool" ,itstool)
6088 ("intltool" ,intltool)
6089 ("glib" ,glib "bin")
6090 ("gobject-introspection" ,gobject-introspection)
6091 ("desktop-file-utils" ,desktop-file-utils)
6092 ("pkg-config" ,pkg-config)
6093 ("xmllint" ,libxml2)))
6094 (inputs
6095 `(("json-glib" ,json-glib)
6096 ("tdb" ,tdb)
6097 ("gnome-desktop" ,gnome-desktop)
6098 ("python" ,python)
6099 ("python-pygobject" ,python2-pygobject)
6100 ("vala" ,vala)
6101 ("gmime" ,gmime)
6102 ("adwaita-icon-theme" ,adwaita-icon-theme)
6103 ("grilo" ,grilo)
6104 ("grilo-plugins" ,grilo-plugins)
6105 ("gstreamer" ,gstreamer)
6106 ("gst-plugins-base" ,gst-plugins-base)
6107 ("gst-plugins-good" ,gst-plugins-good)
6108 ("totem-pl-parser" ,totem-pl-parser)
6109 ("libgudev" ,libgudev)
6110 ;;("libmtp" ,libmtp) FIXME: Not detected
6111 ("libsecret" ,libsecret)
6112 ("libsoup" ,libsoup)
6113 ("libnotify" ,libnotify)
6114 ("libpeas" ,libpeas)
6115 ("lirc" ,lirc)
6116 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6117 ;;("clutter" ,clutter)
6118 ;;("clutter-gtk" ,clutter-gtk)
6119 ;;("clutter-gst" ,clutter-gst)
6120 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6121 ("atk" ,atk)
6122 ("pango" ,pango)
6123 ("gtk+" ,gtk+)
6124 ;; TODO:
6125 ;; * libgpod
6126 ;; * mx
6127 ("brasero" ,brasero)))
6128 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6129 (synopsis "Music player for GNOME")
6130 (description "Rhythmbox is a music playing application for GNOME. It
6131 supports playlists, song ratings, and any codecs installed through gstreamer.")
6132 (license license:gpl2+)))
6133
6134 (define-public eog
6135 (package
6136 (name "eog")
6137 (version "3.34.1")
6138 (source (origin
6139 (method url-fetch)
6140 (uri (string-append "mirror://gnome/sources/" name "/"
6141 (version-major+minor version) "/"
6142 name "-" version ".tar.xz"))
6143 (sha256
6144 (base32
6145 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
6146 (build-system meson-build-system)
6147 (arguments
6148 `(#:configure-flags
6149 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6150 (list (string-append "-Dc_link_args=-Wl,-rpath="
6151 (assoc-ref %outputs "out") "/lib/eog"))
6152 #:phases
6153 (modify-phases %standard-phases
6154 (add-after 'unpack 'skip-gtk-update-icon-cache
6155 ;; Don't create 'icon-theme.cache'.
6156 (lambda _
6157 (substitute* "meson_post_install.py"
6158 (("gtk-update-icon-cache") "true"))
6159 #t))
6160 (add-after 'install 'wrap-eog
6161 (lambda* (#:key outputs #:allow-other-keys)
6162 (let ((out (assoc-ref outputs "out"))
6163 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6164 (wrap-program (string-append out "/bin/eog")
6165 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6166 #t)))))
6167 (propagated-inputs
6168 `(("dconf" ,dconf)))
6169 (native-inputs
6170 `(("intltool" ,intltool)
6171 ("itstool" ,itstool)
6172 ("glib" ,glib "bin")
6173 ("gobject-introspection" ,gobject-introspection)
6174 ("pkg-config" ,pkg-config)
6175 ("xmllint" ,libxml2)))
6176 (inputs
6177 `(("gnome-desktop" ,gnome-desktop)
6178 ("shared-mime-info" ,shared-mime-info)
6179 ("adwaita-icon-theme" ,adwaita-icon-theme)
6180 ("exempi" ,exempi)
6181 ("lcms" ,lcms)
6182 ("libexif" ,libexif)
6183 ("libpeas" ,libpeas)
6184 ("libjpeg" ,libjpeg-turbo)
6185 ("librsvg" ,librsvg-next)
6186 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6187 ("gtk+" ,gtk+)))
6188 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6189 (synopsis "GNOME image viewer")
6190 (description "Eye of GNOME is the GNOME image viewer. It
6191 supports image conversion, rotation, and slideshows.")
6192 (license license:gpl2+)))
6193
6194 (define-public eog-plugins
6195 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6196 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6197 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6198 ;; 'XDG_DATA_DIRS' appropriately set.
6199 (package
6200 (name "eog-plugins")
6201 (version "3.26.4")
6202 (source (origin
6203 (method url-fetch)
6204 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6205 (version-major+minor version) "/"
6206 "eog-plugins-" version ".tar.xz"))
6207 (sha256
6208 (base32
6209 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6210 (build-system gnu-build-system)
6211 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6212 (synopsis "Extensions for the Eye of GNOME image viewer")
6213 (native-inputs
6214 `(("pkg-config" ,pkg-config)
6215 ("gettext" ,gettext-minimal)))
6216 (inputs
6217 `(("eog" ,eog)
6218 ("glib" ,glib)
6219 ("gtk+" ,gtk+)
6220 ("libpeas" ,libpeas)
6221 ("libexif" ,libexif)
6222 ("libchamplain" ,libchamplain)))
6223 (description
6224 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6225 notably:
6226
6227 @itemize
6228 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6229 @item @dfn{Map}, which displays a map of where the picture was taken on the
6230 side panel;
6231 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6232 @end itemize\n")
6233
6234 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6235 ;; long suspicious byte stream that goes to a
6236 ;; ".gresource.eog_postasa_plugin" ELF section.
6237 (license license:gpl2+)))
6238
6239 (define-public libgudev
6240 (package
6241 (name "libgudev")
6242 (version "232")
6243 (source (origin
6244 (method url-fetch)
6245 (uri (string-append "mirror://gnome/sources/" name "/"
6246 version "/" name "-" version ".tar.xz"))
6247 (sha256
6248 (base32
6249 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
6250 (build-system gnu-build-system)
6251 (arguments
6252 '(#:configure-flags
6253 ;; umockdev depends on libgudev.
6254 (list "--disable-umockdev")))
6255 (native-inputs
6256 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6257 ("gobject-introspection" ,gobject-introspection)
6258 ("pkg-config" ,pkg-config)))
6259 (propagated-inputs
6260 `(("glib" ,glib))) ; required by gudev-1.0.pc
6261 (inputs
6262 `(("udev" ,eudev)))
6263 (home-page "https://wiki.gnome.org/Projects/libgudev")
6264 (synopsis "GObject bindings for libudev")
6265 (description
6266 "This library provides GObject bindings for libudev. It was originally
6267 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6268 (license license:lgpl2.1+)))
6269
6270 (define-public gvfs
6271 (package
6272 (name "gvfs")
6273 (version "1.40.1")
6274 (source (origin
6275 (method url-fetch)
6276 (uri (string-append "mirror://gnome/sources/gvfs/"
6277 (version-major+minor version) "/"
6278 "gvfs-" version ".tar.xz"))
6279 (sha256
6280 (base32
6281 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
6282 ;; This patch may be removed when upgrading to version 1.46.x.
6283 (patches
6284 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6285 (build-system meson-build-system)
6286 (arguments
6287 '(#:glib-or-gtk? #t
6288 #:configure-flags
6289 (list "-Dsystemduserunitdir=no"
6290 "-Dtmpfilesdir=no"
6291 ;; Otherwise, the RUNPATH will lack the final path component.
6292 (string-append "-Dc_link_args=-Wl,-rpath="
6293 (assoc-ref %outputs "out") "/lib/gvfs"))))
6294 (native-inputs
6295 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6296 ("gettext" ,gettext-minimal)
6297 ("gtk-doc" ,gtk-doc)
6298 ("pkg-config" ,pkg-config)
6299 ("xsltproc" ,libxslt)))
6300 (inputs
6301 `(("avahi" ,avahi)
6302 ("docbook-xml" ,docbook-xml-4.2)
6303 ("docbook-xsl" ,docbook-xsl)
6304 ("dbus" ,dbus)
6305 ("elogind" ,elogind)
6306 ("fuse" ,fuse)
6307 ("gcr" ,gcr)
6308 ("glib" ,glib)
6309 ("gnome-online-accounts" ,gnome-online-accounts)
6310 ("libarchive" ,libarchive)
6311 ("libbluray" ,libbluray)
6312 ("libcap" ,libcap)
6313 ("libcdio-paranoia" ,libcdio-paranoia)
6314 ("libgcrypt" ,libgcrypt)
6315 ("libgdata" ,libgdata)
6316 ("libgphoto2" ,libgphoto2)
6317 ("libgudev" ,libgudev)
6318 ("libimobiledevice" ,libimobiledevice)
6319 ("libmtp" ,libmtp)
6320 ("libnfs" ,libnfs)
6321 ("libsecret" ,libsecret)
6322 ("libsmbclient" ,samba)
6323 ("libsoup" ,libsoup)
6324 ("libxml2" ,libxml2)
6325 ("openssh" ,openssh)
6326 ("polkit" ,polkit)
6327 ("udisks" ,udisks)))
6328 (home-page "https://wiki.gnome.org/gvfs/")
6329 (synopsis "Userspace virtual file system for GIO")
6330 (description
6331 "GVFS is a userspace virtual file system designed to work with the I/O
6332 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6333 to all applications using the GIO API. It also supports exposing the GVFS
6334 mounts to non-GIO applications using FUSE.
6335
6336 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6337 DAV, and others.")
6338 (license license:lgpl2.0+)))
6339
6340 (define-public gusb
6341 (package
6342 (name "gusb")
6343 (version "0.3.0")
6344 (source (origin
6345 (method git-fetch)
6346 (uri (git-reference
6347 (url "https://github.com/hughsie/libgusb")
6348 (commit version)))
6349 (file-name (git-file-name name version))
6350 (sha256
6351 (base32
6352 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
6353 (build-system meson-build-system)
6354 (native-inputs
6355 `(("gobject-introspection" ,gobject-introspection)
6356 ("pkg-config" ,pkg-config)
6357 ("vala" ,vala)
6358 ("gtk-doc" ,gtk-doc)))
6359 (propagated-inputs
6360 ;; Both of these are required by gusb.pc.
6361 `(("glib" ,glib)
6362 ("libusb" ,libusb)))
6363 (arguments
6364 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6365 (home-page "https://github.com/hughsie/libgusb")
6366 (synopsis "GLib binding for libusb1")
6367 (description
6368 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6369 asynchronous control, bulk and interrupt transfers with proper cancellation
6370 and integration into a mainloop. This makes it easy to integrate low level
6371 USB transfers with your high-level application or system daemon.")
6372 (license license:lgpl2.1+)))
6373
6374 (define-public simple-scan
6375 (package
6376 (name "simple-scan")
6377 (version "3.36.6")
6378 (source
6379 (origin
6380 (method url-fetch)
6381 (uri (string-append "mirror://gnome/sources/simple-scan/"
6382 (version-major+minor version) "/"
6383 "simple-scan-" version ".tar.xz"))
6384 (sha256
6385 (base32 "0x9hzqnji5l966yy2k5gppl8hqasn3sd5an4sr8srjmncxcs80ys"))))
6386 (build-system meson-build-system)
6387 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6388 (arguments
6389 '(#:glib-or-gtk? #t))
6390 (inputs
6391 `(("gtk" ,gtk+)
6392 ("zlib" ,zlib)
6393 ("cairo" ,cairo)
6394 ("colord" ,colord)
6395 ("gdk-pixbuf" ,gdk-pixbuf)
6396 ("gusb" ,gusb)
6397 ("libsane" ,sane-backends)))
6398 (native-inputs
6399 `(("gettext" ,gettext-minimal)
6400 ("itstool" ,itstool)
6401 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6402 ("pkg-config" ,pkg-config)
6403 ("vala" ,vala)
6404 ("xmllint" ,libxml2)))
6405 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6406 (synopsis "Document and image scanner")
6407 (description
6408 "Document Scanner is an easy-to-use application that lets you connect your
6409 scanner and quickly capture images and documents in an appropriate format. It
6410 supports any scanner for which a suitable SANE driver is available, which is
6411 almost all of them.")
6412 (license license:gpl3+)))
6413
6414 (define-public eolie
6415 (package
6416 (name "eolie")
6417 (version "0.9.98.1")
6418 (source (origin
6419 (method url-fetch)
6420 (uri (string-append "https://adishatz.org/eolie/eolie-"
6421 version ".tar.xz"))
6422 (sha256
6423 (base32
6424 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
6425 (build-system meson-build-system)
6426 (arguments
6427 `(#:glib-or-gtk? #t
6428 #:phases
6429 (modify-phases %standard-phases
6430 (add-after 'unpack 'skip-gtk-update-icon-cache
6431 ;; Don't create 'icon-theme.cache'.
6432 (lambda _
6433 (substitute* "meson_post_install.py"
6434 (("gtk-update-icon-cache") "true"))
6435 #t))
6436 (add-after 'wrap 'wrap-more
6437 (lambda* (#:key inputs outputs #:allow-other-keys)
6438 (let* ((out (assoc-ref outputs "out"))
6439 ;; These libraries must be on LD_LIBRARY_PATH.
6440 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6441 "atk" "gtk+" "gsettings-desktop-schemas"
6442 "gobject-introspection"))
6443 (path (string-join
6444 (map (lambda (lib)
6445 (string-append (assoc-ref inputs lib) "/lib"))
6446 libs)
6447 ":")))
6448 (wrap-program (string-append out "/bin/eolie")
6449 `("LD_LIBRARY_PATH" ":" prefix (,path))
6450 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6451 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6452 #t)))))
6453 (native-inputs
6454 `(("intltool" ,intltool)
6455 ("itstool" ,itstool)
6456 ("pkg-config" ,pkg-config)
6457 ("python" ,python)
6458 ("glib:bin" ,glib "bin")))
6459 (inputs
6460 `(("gobject-introspection" ,gobject-introspection)
6461 ("glib-networking" ,glib-networking)
6462 ("cairo" ,cairo)
6463 ("gtk+" ,gtk+)
6464 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6465 ("python" ,python-wrapper)
6466 ("python-dateutil" ,python-dateutil)
6467 ("python-pyfxa" ,python-pyfxa)
6468 ("python-pygobject" ,python-pygobject)
6469 ("python-pycairo" ,python-pycairo)
6470 ("python-pycrypto" ,python-pycrypto)
6471 ("libsecret" ,libsecret)
6472 ("gtkspell3" ,gtkspell3)
6473 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6474 ("webkitgtk" ,webkitgtk)))
6475 (home-page "https://wiki.gnome.org/Apps/Eolie")
6476 (synopsis "Web browser for GNOME")
6477 (description
6478 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6479 a secret password store, an adblocker, and a modern UI.")
6480 (license license:gpl3+)))
6481
6482 (define-public epiphany
6483 (package
6484 (name "epiphany")
6485 (version "3.34.4")
6486 (source (origin
6487 (method url-fetch)
6488 (uri (string-append "mirror://gnome/sources/epiphany/"
6489 (version-major+minor version) "/"
6490 "epiphany-" version ".tar.xz"))
6491 (sha256
6492 (base32
6493 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6494
6495 (build-system meson-build-system)
6496 (arguments
6497 '(#:glib-or-gtk? #t
6498 #:phases
6499 (modify-phases %standard-phases
6500 (add-after 'unpack 'skip-gtk-update-icon-cache
6501 ;; Don't create 'icon-theme.cache'.
6502 (lambda _
6503 (substitute* "post_install.py"
6504 (("gtk-update-icon-cache") "true"))
6505 #t))
6506 (add-after 'unpack 'disable-failing-tests
6507 (lambda _
6508 (substitute* "tests/meson.build"
6509 ;; embed_shell fails, because webkitgtk apparently no longer supports
6510 ;; overriding the ftp schema
6511 ;; web_app_utils fails due to missing network access
6512 (("(embed_shell|web_app_utils)_test,")
6513 "find_program('sh'), args: ['-c', 'exit 77'],"))
6514 #t))
6515 (add-before 'check 'pre-check
6516 (lambda _
6517 ;; Tests require a running X server.
6518 (system "Xvfb :1 &")
6519 (setenv "DISPLAY" ":1")
6520 #t)))
6521 #:configure-flags
6522 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6523 (list (string-append "-Dc_link_args=-Wl,-rpath="
6524 (assoc-ref %outputs "out") "/lib/epiphany"))))
6525 (propagated-inputs
6526 `(("dconf" ,dconf)))
6527 (native-inputs
6528 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6529 ("glib:bin" ,glib "bin") ; for glib-mkenums
6530 ("intltool" ,intltool)
6531 ("itstool" ,itstool)
6532 ("pkg-config" ,pkg-config)
6533 ("xmllint" ,libxml2)
6534 ("xorg-server" ,xorg-server-for-tests)))
6535 (inputs
6536 `(("avahi" ,avahi)
6537 ("gcr" ,gcr)
6538 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6539 ("glib-networking" ,glib-networking)
6540 ("gnome-desktop" ,gnome-desktop)
6541 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6542 ("json-glib" ,json-glib)
6543 ("iso-codes" ,iso-codes)
6544 ("libdazzle" ,libdazzle)
6545 ("libnotify" ,libnotify)
6546 ("libsecret" ,libsecret)
6547 ("libxslt" ,libxslt)
6548 ("nettle" ,nettle) ; for hogweed
6549 ("sqlite" ,sqlite)
6550 ("webkitgtk" ,webkitgtk)))
6551 (home-page "https://wiki.gnome.org/Apps/Web")
6552 (synopsis "GNOME web browser")
6553 (description
6554 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6555 principles are simplicity and standards compliance.")
6556 (license license:gpl2+)))
6557
6558 (define-public d-feet
6559 (package
6560 (name "d-feet")
6561 (version "0.3.14")
6562 (source (origin
6563 (method url-fetch)
6564 (uri (string-append "mirror://gnome/sources/" name "/"
6565 (version-major+minor version) "/"
6566 name "-" version ".tar.xz"))
6567 (sha256
6568 (base32
6569 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6570 (build-system glib-or-gtk-build-system)
6571 (arguments
6572 '(#:out-of-source? #f ; tests need to run in the source directory.
6573 #:phases
6574 (modify-phases %standard-phases
6575 (add-before
6576 'check 'pre-check
6577 (lambda _
6578 ;; The test suite requires a running X server.
6579 (system "Xvfb :1 &")
6580 (setenv "DISPLAY" ":1")
6581 ;; Don't fail on missing '/etc/machine-id'.
6582 (setenv "DBUS_FATAL_WARNINGS" "0")
6583 ;; tests.py and window.py don't meet E402:
6584 ;; E402 module level import not at top of file
6585 (substitute* "src/tests/Makefile"
6586 (("--ignore=E123") "--ignore=E123,E402"))
6587 #t))
6588 (add-after
6589 'install 'wrap-program
6590 (lambda* (#:key outputs #:allow-other-keys)
6591 (let ((prog (string-append (assoc-ref outputs "out")
6592 "/bin/d-feet")))
6593 (wrap-program prog
6594 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6595 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6596 #t))))))
6597 (native-inputs
6598 `(("intltool" ,intltool)
6599 ("itstool" ,itstool)
6600 ("pkg-config" ,pkg-config)
6601 ("python-pep8" ,python-pep8)
6602 ("xmllint" ,libxml2)
6603 ("xorg-server" ,xorg-server-for-tests)))
6604 (inputs
6605 `(("gobject-introspection" ,gobject-introspection)
6606 ("gtk+" ,gtk+)
6607 ("python" ,python-wrapper)
6608 ("hicolor-icon-theme" ,hicolor-icon-theme)
6609 ("python-pygobject" ,python-pygobject)))
6610 (home-page "https://wiki.gnome.org/Apps/DFeet")
6611 (synopsis "D-Bus debugger")
6612 (description
6613 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6614 of running programs and invoke methods on those interfaces.")
6615 (license license:gpl2+)))
6616
6617 (define-public yelp-xsl
6618 (package
6619 (name "yelp-xsl")
6620 (version "3.34.2")
6621 (source (origin
6622 (method url-fetch)
6623 (uri (string-append "mirror://gnome/sources/" name "/"
6624 (version-major+minor version) "/"
6625 name "-" version ".tar.xz"))
6626 (sha256
6627 (base32
6628 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6629 (build-system gnu-build-system)
6630 (native-inputs
6631 `(("gettext-minimal" ,gettext-minimal)
6632 ("itstool" ,itstool)
6633 ("xmllint" ,libxml2)))
6634 (home-page "https://wiki.gnome.org/Apps/Yelp")
6635 (synopsis "XSL stylesheets for Yelp")
6636 (description
6637 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
6638 to format Docbook and Mallard documents.")
6639 (license license:gpl2+)))
6640
6641 (define-public yelp
6642 (package
6643 (name "yelp")
6644 (version "3.32.2")
6645 (source (origin
6646 (method url-fetch)
6647 (uri (string-append "mirror://gnome/sources/" name "/"
6648 (version-major+minor version) "/"
6649 name "-" version ".tar.xz"))
6650 (sha256
6651 (base32
6652 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6653 (build-system glib-or-gtk-build-system)
6654 (native-inputs
6655 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6656 ("intltool" ,intltool)
6657 ("itstool" ,itstool)
6658 ("pkg-config" ,pkg-config)))
6659 (propagated-inputs
6660 `(("dconf" ,dconf)))
6661 (inputs
6662 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6663 ("libxslt" ,libxslt)
6664 ("sqlite" ,sqlite)
6665 ("webkitgtk" ,webkitgtk)
6666 ("yelp-xsl" ,yelp-xsl)))
6667 (home-page "https://wiki.gnome.org/Apps/Yelp")
6668 (synopsis "GNOME help browser")
6669 (description
6670 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6671 man, info, and HTML documents. It can locate documents according to the
6672 freedesktop.org help system specification.")
6673 (license license:gpl2+)))
6674
6675 (define-public yelp-tools
6676 (package
6677 (name "yelp-tools")
6678 (version "3.32.2")
6679 (source (origin
6680 (method url-fetch)
6681 (uri (string-append "mirror://gnome/sources/" name "/"
6682 (version-major+minor version) "/"
6683 name "-" version ".tar.xz"))
6684 (sha256
6685 (base32
6686 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6687 (build-system gnu-build-system)
6688 (native-inputs
6689 `(("pkg-config" ,pkg-config)))
6690 (propagated-inputs
6691 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6692 `(("itstool" ,itstool)
6693 ("xmllint" ,libxml2)
6694 ("xsltproc" ,libxslt)))
6695 (inputs
6696 `(("yelp-xsl" ,yelp-xsl)))
6697 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6698 (synopsis "Yelp documentation tools")
6699 (description
6700 "Yelp-tools is a collection of scripts and build utilities to help create,
6701 manage, and publish documentation for Yelp and the web. Most of the heavy
6702 lifting is done by packages like yelp-xsl and itstool. This package just
6703 wraps things up in a developer-friendly way.")
6704 (license license:gpl2+)))
6705
6706 (define-public libgee
6707 (package
6708 (name "libgee")
6709 (version "0.20.3")
6710 (source (origin
6711 (method url-fetch)
6712 (uri (string-append "mirror://gnome/sources/libgee/"
6713 (version-major+minor version) "/"
6714 "libgee-" version ".tar.xz"))
6715 (sha256
6716 (base32
6717 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6718 (build-system gnu-build-system)
6719 (arguments
6720 `(#:phases
6721 (modify-phases %standard-phases
6722 (add-after 'unpack 'fix-introspection-install-dir
6723 (lambda* (#:key outputs #:allow-other-keys)
6724 (let ((out (assoc-ref outputs "out")))
6725 (substitute* "gee/Makefile.in"
6726 (("@INTROSPECTION_GIRDIR@")
6727 (string-append out "/share/gir-1.0/"))
6728 (("@INTROSPECTION_TYPELIBDIR@")
6729 (string-append out "/lib/girepository-1.0/")))))))))
6730 (native-inputs
6731 `(("glib" ,glib "bin")
6732 ("pkg-config" ,pkg-config)))
6733 (inputs
6734 `(("glib" ,glib)
6735 ("gobject-introspection" ,gobject-introspection)))
6736 (home-page "https://wiki.gnome.org/Projects/Libgee")
6737 (synopsis "GObject collection library")
6738 (description
6739 "Libgee is a utility library providing GObject-based interfaces and
6740 classes for commonly used data structures.")
6741 (license license:lgpl2.1+)))
6742
6743 (define-public gexiv2
6744 (package
6745 (name "gexiv2")
6746 (version "0.12.1")
6747 (source (origin
6748 (method url-fetch)
6749 (uri (string-append "mirror://gnome/sources/" name "/"
6750 (version-major+minor version) "/"
6751 name "-" version ".tar.xz"))
6752 (sha256
6753 (base32
6754 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
6755 (build-system meson-build-system)
6756 (native-inputs
6757 `(("gcr" ,gcr)
6758 ("glib" ,glib "bin")
6759 ("pkg-config" ,pkg-config)
6760 ("vala" ,vala)))
6761 (propagated-inputs
6762 ;; Listed in "Requires" section of gexiv2.pc
6763 `(("exiv2" ,exiv2)))
6764 (inputs
6765 `(("glib" ,glib)
6766 ("gobject-introspection" ,gobject-introspection)))
6767 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6768 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6769 (description
6770 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6771 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6772 metadata in photo and video files of various formats.")
6773 (license license:gpl2+)))
6774
6775 (define-public shotwell
6776 (package
6777 (name "shotwell")
6778 (version "0.30.9")
6779 (source (origin
6780 (method url-fetch)
6781 (uri (string-append "mirror://gnome/sources/shotwell/"
6782 (version-major+minor version) "/"
6783 "shotwell-" version ".tar.xz"))
6784 (sha256
6785 (base32
6786 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
6787 (build-system meson-build-system)
6788 (arguments
6789 '(#:glib-or-gtk? #t
6790 #:phases
6791 (modify-phases %standard-phases
6792 (add-after 'unpack 'skip-gtk-update-icon-cache
6793 (lambda _
6794 (substitute* "build-aux/meson/postinstall.py"
6795 (("gtk-update-icon-cache") (which "true"))
6796 (("update-desktop-database") (which "true")))
6797 #t)))))
6798 (propagated-inputs
6799 `(("dconf" ,dconf)))
6800 (native-inputs
6801 `(("gettext" ,gettext-minimal)
6802 ("glib:bin" ,glib "bin")
6803 ("itstool" ,itstool)
6804 ("pkg-config" ,pkg-config)
6805 ("vala" ,vala)))
6806 (inputs
6807 `(("gcr" ,gcr)
6808 ("gexiv2" ,gexiv2)
6809 ("gst-plugins-base" ,gst-plugins-base)
6810 ("gstreamer" ,gstreamer)
6811 ("json-glib" ,json-glib)
6812 ("libgdata" ,libgdata)
6813 ("libgee" ,libgee)
6814 ("libgphoto2" ,libgphoto2)
6815 ("libgudev" ,libgudev)
6816 ("libraw" ,libraw)
6817 ("libsoup" ,libsoup)
6818 ("libxml2" ,libxml2)
6819 ("sqlite" ,sqlite)
6820 ("webkitgtk" ,webkitgtk)))
6821 (home-page "https://wiki.gnome.org/Apps/Shotwell")
6822 (synopsis "Photo manager for GNOME 3")
6823 (description
6824 "Shotwell is a digital photo manager designed for the GNOME desktop
6825 environment. It allows you to import photos from disk or camera, organize
6826 them by keywords and events, view them in full-window or fullscreen mode, and
6827 share them with others via social networking and more.")
6828 (license license:lgpl2.1+)))
6829
6830 (define-public file-roller
6831 (package
6832 (name "file-roller")
6833 (version "3.32.3")
6834 (source (origin
6835 (method url-fetch)
6836 (uri (string-append "mirror://gnome/sources/file-roller/"
6837 (version-major+minor version) "/"
6838 "file-roller-" version ".tar.xz"))
6839 (sha256
6840 (base32
6841 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
6842 (build-system meson-build-system)
6843 (native-inputs
6844 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6845 ("intltool" ,intltool)
6846 ("itstool" ,itstool)
6847 ("pkg-config" ,pkg-config)
6848 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6849 ("glib:bin" ,glib "bin")))
6850 ;; TODO: Add libnautilus.
6851 (inputs
6852 `(("gtk+" ,gtk+)
6853 ("gdk-pixbuf" ,gdk-pixbuf)
6854 ("json-glib" ,json-glib)
6855 ("libarchive" ,libarchive)
6856 ("libnotify" ,libnotify)
6857 ("nettle" ,nettle)
6858 ("libxml2" ,libxml2)))
6859 (synopsis "Graphical archive manager for GNOME")
6860 (description "File Roller is an archive manager for the GNOME desktop
6861 environment that allows users to view, unpack, and create compressed archives
6862 such as gzip tarballs.")
6863 (home-page "http://fileroller.sourceforge.net/")
6864 (license license:gpl2+)))
6865
6866 (define-public gnome-session
6867 (package
6868 (name "gnome-session")
6869 (version "3.34.2")
6870 (source (origin
6871 (method url-fetch)
6872 (uri (string-append "mirror://gnome/sources/" name "/"
6873 (version-major+minor version) "/"
6874 name "-" version ".tar.xz"))
6875 (sha256
6876 (base32
6877 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
6878 (arguments
6879 '(#:glib-or-gtk? #t
6880 #:phases
6881 (modify-phases %standard-phases
6882 (add-before 'configure 'pre-configure
6883 (lambda* (#:key outputs #:allow-other-keys)
6884 ;; Use elogind instead of systemd.
6885 (substitute* "meson.build"
6886 (("libsystemd-login") "libelogind")
6887 (("and libsystemd_daemon_dep.found.*") ","))
6888 (substitute* "gnome-session/gsm-systemd.c"
6889 (("#include <systemd/sd-login.h>")
6890 "#include <elogind/sd-login.h>"))
6891 ;; Remove uses of the systemd daemon.
6892 (substitute* "gnome-session/gsm-autostart-app.c"
6893 (("#ifdef HAVE_SYSTEMD") "#if 0"))
6894 #t))
6895 (add-after 'install 'wrap-gnome-session
6896 (lambda* (#:key inputs outputs #:allow-other-keys)
6897 ;; Make sure 'gnome-session' finds the 'gsettings' program.
6898 (let ((glib (assoc-ref inputs "glib:bin"))
6899 (out (assoc-ref outputs "out")))
6900 (wrap-program (string-append out "/bin/gnome-session")
6901 `("PATH" ":" prefix (,(string-append glib "/bin"))))
6902 #t))))
6903
6904 #:configure-flags
6905 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
6906 "-Dman=false" ; FIXME: disabled because of docbook validation error
6907 "-Dsystemd_journal=false")))
6908 (build-system meson-build-system)
6909 (native-inputs
6910 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6911 ("pkg-config" ,pkg-config)
6912 ("intltool" ,intltool)
6913 ("xsltproc" ,libxslt)
6914 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
6915 ("docbook-xsl" ,docbook-xsl)
6916 ("docbook-xml" ,docbook-xml)
6917 ("xmlto" ,xmlto)))
6918 (inputs
6919 `(("elogind" ,elogind)
6920 ("gnome-desktop" ,gnome-desktop)
6921 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6922 ("gtk+" ,gtk+)
6923 ("json-glib" ,json-glib)
6924 ("libsm" ,libsm)
6925 ("libxcomposite" ,libxcomposite)
6926 ("libxtst" ,libxtst)
6927 ("mesa" ,mesa)
6928 ("upower" ,upower)
6929 ("xtrans" ,xtrans)))
6930 (synopsis "Session manager for GNOME")
6931 (description
6932 "This package contains the GNOME session manager, as well as a
6933 configuration program to choose applications starting on login.")
6934 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
6935 (license license:gpl2+)))
6936
6937 (define-public gjs
6938 (package
6939 (name "gjs")
6940 (version "1.58.3")
6941 (source (origin
6942 (method url-fetch)
6943 (uri (string-append "mirror://gnome/sources/" name "/"
6944 (version-major+minor version) "/"
6945 name "-" version ".tar.xz"))
6946 (sha256
6947 (base32
6948 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
6949 (build-system gnu-build-system)
6950 (arguments
6951 '(#:phases
6952 (modify-phases %standard-phases
6953 (add-before
6954 'check 'pre-check
6955 (lambda _
6956 ;; The test suite requires a running X server.
6957 (system "Xvfb :1 &")
6958 (setenv "DISPLAY" ":1")
6959
6960 ;; For the missing /etc/machine-id.
6961 (setenv "DBUS_FATAL_WARNINGS" "0")
6962
6963 ;; Our mozjs-38 package does not compile the required Intl API
6964 ;; support for these failing tests.
6965 (substitute* "installed-tests/js/testLocale.js"
6966 ((".*toBeDefined.*") "")
6967 ((".*expect\\(datestr\\).*") ""))
6968 (substitute* "installed-tests/scripts/testCommandLine.sh"
6969 (("Valentín") "")
6970 (("☭") ""))
6971 #t)))))
6972 (native-inputs
6973 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
6974 ("pkg-config" ,pkg-config)
6975 ("xmllint" ,libxml2)
6976 ;; For testing
6977 ("dbus-launch" ,dbus)
6978 ("dconf" ,dconf) ; required to properly store settings
6979 ("uuidgen" ,util-linux)
6980 ("xvfb" ,xorg-server-for-tests)))
6981 (propagated-inputs
6982 ;; These are all in the Requires.private field of gjs-1.0.pc.
6983 `(("cairo" ,cairo)
6984 ("gobject-introspection" ,gobject-introspection)
6985 ("mozjs" ,mozjs-60)))
6986 (inputs
6987 `(("gtk+" ,gtk+)
6988 ("readline" ,readline)))
6989 (synopsis "Javascript bindings for GNOME")
6990 (home-page "https://live.gnome.org/Gjs")
6991 (description
6992 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6993 javascript engine and the GObject introspection framework.")
6994 (license license:gpl2+)))
6995
6996 (define-public gedit
6997 (package
6998 (name "gedit")
6999 (version "3.34.1")
7000 (source (origin
7001 (method url-fetch)
7002 (uri (string-append "mirror://gnome/sources/" name "/"
7003 (version-major+minor version) "/"
7004 name "-" version ".tar.xz"))
7005 (sha256
7006 (base32
7007 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7008 (build-system meson-build-system)
7009 (arguments
7010 `(#:glib-or-gtk? #t
7011 #:configure-flags
7012 ;; Otherwise, the RUNPATH will lack the final path component.
7013 (list (string-append "-Dc_link_args=-Wl,-rpath="
7014 (assoc-ref %outputs "out") "/lib/gedit"))
7015
7016 ;; XXX: Generated .h files are sometimes used before being built.
7017 #:parallel-build? #f
7018
7019 #:phases
7020 (modify-phases %standard-phases
7021 (add-after 'unpack 'skip-gtk-update-icon-cache
7022 ;; Don't create 'icon-theme.cache'.
7023 (lambda _
7024 (substitute* "build-aux/meson/post_install.py"
7025 (("gtk-update-icon-cache") (which "true")))
7026 #t))
7027 (add-after 'unpack 'patch-libgd-fetch
7028 (lambda* (#:key inputs #:allow-other-keys)
7029 (let ((libgd (assoc-ref inputs "libgd")))
7030 ;; Calling git is unnecessary because libgd is fetched as a
7031 ;; native input to this package.
7032 (substitute* "meson.build"
7033 ((".*git.*") ""))
7034 (copy-recursively libgd "subprojects/libgd")
7035 #t)))
7036 (add-after 'install 'wrap-gedit
7037 (lambda* (#:key inputs outputs #:allow-other-keys)
7038 (let ((out (assoc-ref outputs "out"))
7039 (gtksourceview (assoc-ref inputs "gtksourceview"))
7040 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7041 (python-path (getenv "PYTHONPATH")))
7042 (wrap-program (string-append out "/bin/gedit")
7043 ;; For plugins.
7044 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7045 `("PYTHONPATH" ":" prefix (,python-path))
7046 ;; For language-specs.
7047 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7048 "/share")))))
7049 #t)))))
7050 (propagated-inputs
7051 `(("dconf" ,dconf)))
7052 (native-inputs
7053 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7054 ("intltool" ,intltool)
7055 ("itstool" ,itstool)
7056 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7057 ("gobject-introspection" ,gobject-introspection)
7058 ("libgd"
7059 ,(origin
7060 (method git-fetch)
7061 (uri (git-reference
7062 (url "https://gitlab.gnome.org/GNOME/libgd")
7063 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7064 (file-name (git-file-name "libgd" version))
7065 (sha256
7066 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7067 ("pkg-config" ,pkg-config)))
7068 (inputs
7069 `(("glib" ,glib)
7070 ("gspell" ,gspell)
7071 ("gtk+" ,gtk+)
7072 ("gtksourceview" ,gtksourceview)
7073 ("libpeas" ,libpeas)
7074 ("libxml2" ,libxml2)
7075 ("iso-codes" ,iso-codes)
7076 ("python-pygobject" ,python-pygobject)
7077 ("python" ,python)
7078 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7079 ("libx11" ,libx11)
7080 ("vala" ,vala)
7081 ("adwaita-icon-theme" ,adwaita-icon-theme)
7082 ("libsoup" ,libsoup)
7083 ("gnome-desktop" ,gnome-desktop)))
7084 (home-page "https://wiki.gnome.org/Apps/Gedit")
7085 (synopsis "GNOME text editor")
7086 (description "While aiming at simplicity and ease of use, gedit is a
7087 powerful general purpose text editor.")
7088 (license license:gpl2+)))
7089
7090 (define-public zenity
7091 (package
7092 (name "zenity")
7093 (version "3.32.0")
7094 (source (origin
7095 (method url-fetch)
7096 (uri (string-append "mirror://gnome/sources/zenity/"
7097 (version-major+minor version) "/"
7098 "zenity-" version ".tar.xz"))
7099 (sha256
7100 (base32
7101 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7102 (build-system gnu-build-system)
7103 (native-inputs
7104 `(("gettext" ,gettext-minimal)
7105 ("itstool" ,itstool)
7106 ("pkg-config" ,pkg-config)))
7107 (inputs
7108 `(("libnotify" ,libnotify)
7109 ("webkitgtk" ,webkitgtk)))
7110 (synopsis "Display graphical dialog boxes from shell scripts")
7111 (home-page "https://www.gnome.org")
7112 (description
7113 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7114 to display dialog boxes from the commandline and shell scripts.")
7115 (license license:lgpl2.0+)))
7116
7117 (define-public mutter
7118 (package
7119 (name "mutter")
7120 (version "3.34.2")
7121 (source (origin
7122 (method url-fetch)
7123 (uri (string-append "mirror://gnome/sources/" name "/"
7124 (version-major+minor version) "/"
7125 name "-" version ".tar.xz"))
7126 (sha256
7127 (base32
7128 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
7129 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7130 ;; versions of cogl and clutter. As a result, many of the inputs,
7131 ;; propagated-inputs, and configure flags used in cogl and clutter are
7132 ;; needed here as well.
7133 (build-system meson-build-system)
7134 (arguments
7135 '(;; XXX: All mutter tests fail with the following error:
7136 ;; Settings schema 'org.gnome.mutter' is not installed
7137 #:tests? #f
7138 #:glib-or-gtk? #t
7139 #:configure-flags
7140 ;; TODO: Enable profiler when Sysprof is packaged.
7141 (list "-Dprofiler=false"
7142 ;; Otherwise, the RUNPATH will lack the final path component.
7143 (string-append "-Dc_link_args=-Wl,-rpath="
7144 (assoc-ref %outputs "out") "/lib:"
7145 (assoc-ref %outputs "out") "/lib/mutter-5")
7146
7147 ;; The following flags are needed for the bundled clutter
7148 (string-append "-Dxwayland_path="
7149 (assoc-ref %build-inputs "xorg-server-xwayland")
7150 "/bin/Xwayland")
7151
7152 ;; the remaining flags are needed for the bundled cogl
7153 (string-append "-Dopengl_libname="
7154 (assoc-ref %build-inputs "mesa")
7155 "/lib/libGL.so"))
7156 #:phases (modify-phases %standard-phases
7157 (add-after 'unpack 'fix-build-with-mesa-20
7158 (lambda _
7159 ;; Mimic upstream commit a444a4c5f58ea516ad for
7160 ;; compatibility with Mesa 20. Remove for 3.36.
7161 (substitute* '("src/backends/meta-egl-ext.h"
7162 "src/backends/meta-egl.c"
7163 "src/backends/meta-egl.h")
7164 (("#include <EGL/eglext\\.h>" all)
7165 (string-append all "\n#include <EGL/eglmesaext.h>")))
7166 (substitute* "cogl/cogl/meson.build"
7167 (("#include <EGL/eglext\\.h>" all)
7168 (string-append all "\\n#include <EGL/eglmesaext.h>")))
7169 #t)))))
7170 (native-inputs
7171 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7172 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7173 ("gobject-introspection" ,gobject-introspection)
7174 ("intltool" ,intltool)
7175 ("pkg-config" ,pkg-config)
7176 ("xorg-server" ,xorg-server-for-tests)
7177 ;; For git build
7178 ("autoconf" ,autoconf)
7179 ("automake" ,automake)
7180 ("libtool" ,libtool)))
7181 (propagated-inputs
7182 `(;; libmutter.pc refers to these:
7183 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7184 ("gtk+" ,gtk+)
7185 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7186 ("atk" ,atk)
7187 ("cairo" ,cairo)
7188 ("gdk-pixbuf" ,gdk-pixbuf)
7189 ("glib" ,glib)
7190 ("json-glib" ,json-glib)
7191 ("libinput" ,libinput)
7192 ("libx11" ,libx11)
7193 ("libxcomposite" ,libxcomposite)
7194 ("libxdamage" ,libxdamage)
7195 ("libxext" ,libxext)
7196 ("libxfixes" ,libxfixes)
7197 ("libxkbcommon" ,libxkbcommon)
7198 ("libxrandr" ,libxrandr)
7199 ("mesa" ,mesa)
7200 ("pango" ,pango)
7201 ("udev" ,eudev)
7202 ("xinput" ,xinput)))
7203 (inputs
7204 `(("elogind" ,elogind)
7205 ("gnome-desktop" ,gnome-desktop)
7206 ("gnome-settings-daemon" ,gnome-settings-daemon)
7207 ("libcanberra-gtk" ,libcanberra)
7208 ("libgudev" ,libgudev)
7209 ("libice" ,libice)
7210 ("libsm" ,libsm)
7211 ("libwacom" ,libwacom)
7212 ("libxkbfile" ,libxkbfile)
7213 ("libxrandr" ,libxrandr)
7214 ("libxtst" ,libxtst)
7215 ("pipewire" ,pipewire)
7216 ("startup-notification" ,startup-notification)
7217 ("upower-glib" ,upower)
7218 ("xkeyboard-config" ,xkeyboard-config)
7219 ("xorg-server-xwayland" ,xorg-server-xwayland)
7220 ("zenity" ,zenity)))
7221 (synopsis "Window and compositing manager")
7222 (home-page "https://www.gnome.org")
7223 (description
7224 "Mutter is a window and compositing manager that displays and manages your
7225 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7226 Clutter toolkit with solid window-management logic inherited from the Metacity
7227 window manager.")
7228 (license license:gpl2+)))
7229
7230 (define-public gnome-online-accounts
7231 (package
7232 (name "gnome-online-accounts")
7233 (version "3.36.0")
7234 (source (origin
7235 (method url-fetch)
7236 (uri (string-append "mirror://gnome/sources/" name "/"
7237 (version-major+minor version) "/"
7238 name "-" version ".tar.xz"))
7239 (sha256
7240 (base32
7241 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7242 (outputs '("out" "lib"))
7243 (build-system glib-or-gtk-build-system)
7244 (arguments
7245 `(#:configure-flags
7246 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7247 #:phases
7248 (modify-phases %standard-phases
7249 (add-before 'configure 'patch-libgoa-output
7250 (lambda* (#:key outputs #:allow-other-keys)
7251 (let ((lib (assoc-ref outputs "lib")))
7252 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7253 (("@prefix@") lib)
7254 (("@exec_prefix@") lib)
7255 (("@libdir@") (string-append lib "/lib"))
7256 (("@includedir@") (string-append lib "/include"))
7257 (("@datadir@") (string-append lib "/share")))
7258 ;; Make sure gobject-introspection knows about the output
7259 ;; too (see <https://bugs.gnu.org/36535>).
7260 (setenv "outputs" "out lib")
7261 #t))))))
7262 (native-inputs
7263 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7264 ("gobject-introspection" ,gobject-introspection)
7265 ("intltool" ,intltool)
7266 ("pkg-config" ,pkg-config)
7267 ("vala" ,vala)
7268 ("xsltproc" ,libxslt)))
7269 (propagated-inputs
7270 `(("glib" ,glib) ; required by goa-1.0.pc
7271 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7272 (inputs
7273 `(("docbook-xsl" ,docbook-xsl)
7274 ("json-glib" ,json-glib)
7275 ("libsecret" ,libsecret)
7276 ("rest" ,rest)
7277 ("webkitgtk" ,webkitgtk)))
7278 (synopsis "Single sign-on framework for GNOME")
7279 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7280 (description
7281 "GNOME Online Accounts provides interfaces so that applications and
7282 libraries in GNOME can access the user's online accounts. It has providers for
7283 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7284 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7285 (license license:lgpl2.0+)))
7286
7287 (define-public evolution-data-server
7288 (package
7289 (name "evolution-data-server")
7290 (version "3.34.2")
7291 (source (origin
7292 (method url-fetch)
7293 (uri (string-append "mirror://gnome/sources/" name "/"
7294 (version-major+minor version) "/"
7295 name "-" version ".tar.xz"))
7296 (patches (search-patches "evolution-data-server-locales.patch"
7297 "evolution-data-server-libical-compat.patch"))
7298 (sha256
7299 (base32
7300 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7301 (build-system cmake-build-system)
7302 (arguments
7303 '(#:configure-flags
7304 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7305 (runpaths (map (lambda (s)
7306 (string-append lib "/evolution-data-server/" s))
7307 '("addressbook-backends" "calendar-backends"
7308 "camel-providers" "credential-modules"
7309 "registry-modules"))))
7310 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7311 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7312 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7313 "-DENABLE_VALA_BINDINGS=ON"
7314 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7315 (string-append lib "/evolution-data-server;")
7316 (string-join runpaths ";"))
7317 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7318 #:phases
7319 (modify-phases %standard-phases
7320 (add-after 'unpack 'disable-failing-tests
7321 (lambda _
7322 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7323 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7324 (delete-file-recursively "tests/book-migration")
7325 (substitute* "tests/CMakeLists.txt"
7326 (("add_subdirectory\\(book-migration\\)") ""))
7327 #t))
7328 (add-after 'unpack 'patch-paths
7329 (lambda _
7330 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7331 "tests/libedata-book/data-test-utils.c"
7332 "tests/libedata-book/test-book-cache-utils.c"
7333 "tests/libedata-cal/test-cal-cache-utils.c")
7334 (("/bin/rm") (which "rm")))
7335 #t))
7336 (add-before 'configure 'dont-override-rpath
7337 (lambda _
7338 (substitute* "CMakeLists.txt"
7339 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7340 ;; Remove it so the configure flag is respected.
7341 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7342 #t)))))
7343 (native-inputs
7344 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7345 ("gobject-introspection" ,gobject-introspection)
7346 ("gperf" ,gperf)
7347 ("intltool" ,intltool)
7348 ("pkg-config" ,pkg-config)
7349 ("vala" ,vala)
7350 ("python" ,python-wrapper)))
7351 (propagated-inputs
7352 ;; These are all in the Requires field of .pc files.
7353 `(("gtk+" ,gtk+)
7354 ("libical" ,libical)
7355 ("libsecret" ,libsecret)
7356 ("libsoup" ,libsoup)
7357 ("nss" ,nss)
7358 ("sqlite" ,sqlite)))
7359 (inputs
7360 `(("bdb" ,bdb)
7361 ("gcr" ,gcr)
7362 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7363 ("json-glib" ,json-glib)
7364 ("libcanberra" ,libcanberra)
7365 ("libgweather" ,libgweather)
7366 ("mit-krb5" ,mit-krb5)
7367 ("openldap" ,openldap)
7368 ("webkitgtk" ,webkitgtk)))
7369 (synopsis "Store address books and calendars")
7370 (home-page "https://wiki.gnome.org/Apps/Evolution")
7371 (description
7372 "This package provides a unified backend for programs that work with
7373 contacts, tasks, and calendar information. It was originally developed for
7374 Evolution (hence the name), but is now used by other packages as well.")
7375 (license license:lgpl2.0)))
7376
7377 (define-public caribou
7378 (package
7379 (name "caribou")
7380 (version "0.4.21")
7381 (source (origin
7382 (method url-fetch)
7383 (uri (string-append "mirror://gnome/sources/" name "/"
7384 (version-major+minor version) "/"
7385 name "-" version ".tar.xz"))
7386 (sha256
7387 (base32
7388 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7389 (build-system glib-or-gtk-build-system)
7390 (arguments
7391 '(#:phases
7392 (modify-phases %standard-phases
7393 (add-before
7394 'build 'pre-build
7395 (lambda* (#:key outputs #:allow-other-keys)
7396 (let ((out (assoc-ref outputs "out")))
7397 ;; Use absolute shared library path in Caribou-1.0.typelib.
7398 (substitute* "libcaribou/Makefile"
7399 (("--shared-library=libcaribou.so")
7400 (string-append "--shared-library="
7401 out "/lib/libcaribou.so")))
7402 #t)))
7403 (add-after 'install 'wrap-programs
7404 (lambda* (#:key outputs #:allow-other-keys)
7405 (let* ((out (assoc-ref outputs "out"))
7406 (python-path (getenv "PYTHONPATH"))
7407 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7408 (for-each
7409 (lambda (prog)
7410 (wrap-program prog
7411 `("PYTHONPATH" ":" prefix (,python-path))
7412 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7413 (list (string-append out "/bin/caribou-preferences")
7414 (string-append out "/libexec/antler-keyboard"))))
7415 #t)))))
7416 (native-inputs
7417 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7418 ("gobject-introspection" ,gobject-introspection)
7419 ("intltool" ,intltool)
7420 ("pkg-config" ,pkg-config)
7421 ("python" ,python)
7422 ("vala" ,vala)
7423 ("xsltproc" ,libxslt)))
7424 (propagated-inputs
7425 ;; caribou-1.0.pc refers to all these.
7426 `(("libgee" ,libgee)
7427 ("libxklavier" ,libxklavier)
7428 ("libxtst" ,libxtst)
7429 ("gtk+" ,gtk+)))
7430 (inputs
7431 `(("clutter" ,clutter)
7432 ("dconf" ,dconf)
7433 ("gtk+-2" ,gtk+-2)
7434 ("python-pygobject" ,python-pygobject)))
7435 (synopsis "Text entry and UI navigation application")
7436 (home-page "https://wiki.gnome.org/Projects/Caribou")
7437 (description
7438 "Caribou is an input assistive technology intended for switch and pointer
7439 users.")
7440 (license license:lgpl2.1)))
7441
7442 (define-public network-manager
7443 (package
7444 (name "network-manager")
7445 (version "1.24.0")
7446 (source (origin
7447 (method url-fetch)
7448 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7449 (version-major+minor version) "/"
7450 "NetworkManager-" version ".tar.xz"))
7451 (patches (search-patches "network-manager-plugin-path.patch"))
7452 (sha256
7453 (base32
7454 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7455 (modules '((guix build utils)))
7456 (snippet
7457 '(begin
7458 (substitute* "src/devices/wwan/nm-modem-manager.c"
7459 (("systemd") "elogind"))
7460 #t))))
7461 (build-system meson-build-system)
7462 (outputs '("out"
7463 "doc")) ; 8 MiB of gtk-doc HTML
7464 (arguments
7465 `(#:configure-flags
7466 (let ((out (assoc-ref %outputs "out"))
7467 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7468 "/sbin/dhclient")))
7469 (list
7470 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7471 ;; component.
7472 (string-append "-Dc_link_args=-Wl,-rpath="
7473 out "/lib:"
7474 out "/lib/NetworkManager/" ,version)
7475 "-Dsystemd_journal=false"
7476 "-Dsession_tracking=elogind"
7477 "-Dsuspend_resume=elogind"
7478 "-Dsystemdsystemunitdir=no"
7479 "-Dsession_tracking_consolekit=false"
7480 "-Ddhcpcd=no"
7481 "-Ddhcpcanon=no"
7482 "-Dcrypto=gnutls"
7483 "-Diwd=true"
7484 "-Dlibaudit=yes"
7485 "-Dqt=false"
7486 "-Ddocs=true"
7487 "--sysconfdir=/etc"
7488 "--localstatedir=/var"
7489 (string-append "-Dudev_dir="
7490 out "/lib/udev")
7491 (string-append "-Ddbus_conf_dir="
7492 out "/etc/dbus-1/system.d")
7493
7494 (string-append "-Ddhclient=" dhclient)))
7495 #:phases
7496 (modify-phases %standard-phases
7497 (add-before 'configure 'pre-configure
7498 (lambda _
7499 ;; These tests try to test aspects of network-manager's
7500 ;; functionality within restricted containers, but they don't
7501 ;; cope with being already in the Guix build jail as that jail
7502 ;; lacks some features that they would like to proxy over (like
7503 ;; a /sys mount).
7504 (substitute* "src/platform/tests/meson.build"
7505 ((".*test-address-linux.*") "")
7506 ((".*test-cleanup-linux.*") "")
7507 ((".*test-link-linux.*") "")
7508 ((".*test-route-linux.*") ""))
7509 (substitute* "src/devices/tests/meson.build"
7510 ((".*test-acd.*") "")
7511 ((".*test-lldp.*") ""))
7512 #t))
7513 (add-after 'unpack 'patch-docbook-xml
7514 (lambda* (#:key inputs #:allow-other-keys)
7515 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7516 "/xml/dtd/docbook")))
7517 (substitute* (find-files "." ".*\\.(xsl|xml)")
7518 (("http://.*/docbookx\\.dtd")
7519 (string-append xmldoc "/docbookx.dtd")))
7520 #t)))
7521 (add-before 'check 'pre-check
7522 (lambda _
7523 ;; For the missing /etc/machine-id.
7524 (setenv "DBUS_FATAL_WARNINGS" "0")
7525 #t))
7526 (add-before 'install 'no-polkit-magic
7527 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7528 (lambda _
7529 (setenv "PKEXEC_UID" "something")
7530 #t))
7531 (add-after 'install 'move-doc
7532 (lambda* (#:key outputs #:allow-other-keys)
7533 (let ((out (assoc-ref outputs "out"))
7534 (doc (assoc-ref outputs "doc")))
7535 (mkdir-p (string-append doc "/share"))
7536 (for-each (lambda (directory)
7537 (copy-recursively (string-append out directory)
7538 (string-append doc directory))
7539 (delete-file-recursively
7540 (string-append out directory)))
7541 '("/share/doc" "/share/gtk-doc"))
7542 #t))))))
7543 (propagated-inputs
7544 `(("glib" ,glib)))
7545 (native-inputs
7546 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7547 ("gtk-doc" ,gtk-doc)
7548 ("gobject-introspection" ,gobject-introspection)
7549 ("docbook-xml" ,docbook-xml)
7550 ("docbook-xsl" ,docbook-xsl)
7551 ("intltool" ,intltool)
7552 ("libxslt" ,libxslt)
7553 ("libxml2" ,libxml2)
7554 ("pkg-config" ,pkg-config)
7555 ("vala" ,vala)
7556 ;; For testing.
7557 ("python" ,python-wrapper)
7558 ("python-dbus" ,python-dbus)
7559 ("python-pygobject" ,python-pygobject)))
7560 (inputs
7561 `(("curl" ,curl)
7562 ("cyrus-sasl" ,cyrus-sasl)
7563 ("dbus-glib" ,dbus-glib)
7564 ("dnsmasq" ,dnsmasq)
7565 ("eudev" ,eudev)
7566 ("gnutls" ,gnutls)
7567 ("iptables" ,iptables)
7568 ("isc-dhcp" ,isc-dhcp)
7569 ("iwd" ,iwd) ; wpa_supplicant alternative
7570 ("jansson" ,jansson)
7571 ("libaudit" ,audit)
7572 ("libgcrypt" ,libgcrypt)
7573 ("libgudev" ,libgudev)
7574 ("libndp" ,libndp)
7575 ("libnl" ,libnl)
7576 ("libsoup" ,libsoup)
7577 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7578 ("modem-manager" ,modem-manager)
7579 ("newt" ,newt) ;for the 'nmtui' console interface
7580 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7581 ("polkit" ,polkit)
7582 ("ppp" ,ppp)
7583 ("readline" ,readline)
7584 ("util-linux" ,util-linux)
7585 ("elogind" ,elogind)))
7586 (synopsis "Network connection manager")
7587 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7588 (description
7589 "NetworkManager is a system network service that manages your network
7590 devices and connections, attempting to keep active network connectivity when
7591 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7592 devices, and provides VPN integration with a variety of different VPN
7593 services.")
7594 ;; “This NetworkManager project consists of the daemon, client tools, and
7595 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7596 ;; GPL-2.0+.”
7597 (license (list license:gpl2+
7598 license:lgpl2.1+))
7599 (properties '((upstream-name . "NetworkManager")))))
7600
7601 (define-public network-manager-openvpn
7602 (package
7603 (name "network-manager-openvpn")
7604 (version "1.8.12")
7605 (source (origin
7606 (method url-fetch)
7607 (uri (string-append
7608 "mirror://gnome/sources/NetworkManager-openvpn/"
7609 (version-major+minor version)
7610 "/NetworkManager-openvpn-" version ".tar.xz"))
7611 (sha256
7612 (base32
7613 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7614 (build-system gnu-build-system)
7615 (arguments
7616 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7617 #:phases
7618 (modify-phases %standard-phases
7619 (add-after 'configure 'patch-path
7620 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7621 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7622 "/sbin/openvpn"))
7623 (modprobe (string-append (assoc-ref inputs "kmod")
7624 "/bin/modprobe"))
7625 (pretty-ovpn (string-append "\"" ovpn "\"")))
7626 (for-each
7627 (lambda (file)
7628 (substitute* file
7629 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7630 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7631 (("\"/sbin/openvpn\"") pretty-ovpn)
7632 (("/sbin/modprobe") modprobe)))
7633 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7634 #t)))))
7635 (native-inputs
7636 `(("pkg-config" ,pkg-config)
7637 ("intltool" ,intltool)))
7638 (inputs
7639 `(("gtk+" ,gtk+)
7640 ("kmod" ,kmod)
7641 ("openvpn" ,openvpn)
7642 ("network-manager" ,network-manager)
7643 ("libnma" ,libnma)
7644 ("libsecret" ,libsecret)))
7645 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7646 (synopsis "OpenVPN plug-in for NetworkManager")
7647 (description
7648 "This extension of NetworkManager allows it to take care of connections
7649 to virtual private networks (VPNs) via OpenVPN.")
7650 (license license:gpl2+)
7651 (properties `((upstream-name . "NetworkManager-openvpn")))))
7652
7653 (define-public network-manager-vpnc
7654 (package
7655 (name "network-manager-vpnc")
7656 (version "1.2.6")
7657 (source (origin
7658 (method url-fetch)
7659 (uri (string-append
7660 "mirror://gnome/sources/NetworkManager-vpnc/"
7661 (version-major+minor version)
7662 "/NetworkManager-vpnc-" version ".tar.xz"))
7663 (sha256
7664 (base32
7665 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7666 (build-system gnu-build-system)
7667 (arguments
7668 `(#:configure-flags '("--enable-absolute-paths"
7669 "--localstatedir=/var"
7670 ;; libnm-glib has been removed from network-manager
7671 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7672 "--with-libnm-glib=no")
7673 #:phases
7674 (modify-phases %standard-phases
7675 (add-after 'configure 'patch-path
7676 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7677 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7678 "/sbin/vpnc"))
7679 (modprobe (string-append (assoc-ref inputs "kmod")
7680 "/bin/modprobe"))
7681 (pretty-ovpn (string-append "\"" vpnc "\"")))
7682 (substitute* "src/nm-vpnc-service.c"
7683 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7684 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7685 (("\"/sbin/vpnc\"") pretty-ovpn)
7686 (("/sbin/modprobe") modprobe)))
7687 #t)))))
7688 (native-inputs
7689 `(("pkg-config" ,pkg-config)
7690 ("intltool" ,intltool)))
7691 (inputs
7692 `(("gtk+" ,gtk+)
7693 ("kmod" ,kmod)
7694 ("vpnc" ,vpnc)
7695 ("network-manager" ,network-manager)
7696 ("libnma" ,libnma)
7697 ("libsecret" ,libsecret)))
7698 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7699 (synopsis "VPNC plug-in for NetworkManager")
7700 (description
7701 "Support for configuring virtual private networks based on VPNC.
7702 Compatible with Cisco VPN concentrators configured to use IPsec.")
7703 (license license:gpl2+)
7704 (properties `((upstream-name . "NetworkManager-vpnc")))))
7705
7706 (define-public network-manager-openconnect
7707 (package
7708 (name "network-manager-openconnect")
7709 (version "1.2.6")
7710 (source (origin
7711 (method url-fetch)
7712 (uri (string-append
7713 "mirror://gnome/sources/NetworkManager-openconnect/"
7714 (version-major+minor version)
7715 "/NetworkManager-openconnect-" version ".tar.xz"))
7716 (sha256
7717 (base32
7718 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7719 (build-system gnu-build-system)
7720 (arguments
7721 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7722 #:phases
7723 (modify-phases %standard-phases
7724 (add-after 'configure 'patch-path
7725 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7726 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7727 "/sbin/openconnect"))
7728 (modprobe (string-append (assoc-ref inputs "kmod")
7729 "/bin/modprobe"))
7730 (pretty-ovpn (string-append "\"" openconnect "\"")))
7731 (substitute* "src/nm-openconnect-service.c"
7732 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7733 (("/sbin/modprobe") modprobe)))
7734 #t)))))
7735 (native-inputs
7736 `(("intltool" ,intltool)
7737 ("libnma" ,libnma)
7738 ("pkg-config" ,pkg-config)))
7739 (inputs
7740 `(("gcr" ,gcr)
7741 ("gtk+" ,gtk+)
7742 ("kmod" ,kmod)
7743 ("libsecret" ,libsecret)
7744 ("libxml2" ,libxml2)
7745 ("lz4" ,lz4)
7746 ("network-manager" ,network-manager)
7747 ("openconnect" ,openconnect)))
7748 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7749 (synopsis "OpenConnect plug-in for NetworkManager")
7750 (description
7751 "This extension of NetworkManager allows it to take care of connections
7752 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7753 Cisco's AnyConnect SSL VPN.")
7754 (license license:gpl2+)
7755 (properties `((upstream-name . "NetworkManager-openconnect")
7756
7757 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7758 ;; file refers to account "nm-openconnect". Specify it here
7759 ;; so that 'network-manager-service-type' creates it.
7760 (user-accounts . ("nm-openconnect"))))))
7761
7762 (define-public mobile-broadband-provider-info
7763 (package
7764 (name "mobile-broadband-provider-info")
7765 (version "20190116")
7766 (source (origin
7767 (method url-fetch)
7768 (uri (string-append
7769 "mirror://gnome/sources/"
7770 "mobile-broadband-provider-info/" version "/"
7771 "mobile-broadband-provider-info-" version ".tar.xz"))
7772 (sha256
7773 (base32
7774 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7775 (build-system gnu-build-system)
7776 (arguments
7777 `(#:tests? #f)) ; no tests
7778 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7779 (synopsis "Database of broadband connection configuration")
7780 (description "Database of broadband connection configuration.")
7781 (license license:public-domain)))
7782
7783 (define-public network-manager-applet
7784 (package
7785 (name "network-manager-applet")
7786 (version "1.16.0")
7787 (source (origin
7788 (method url-fetch)
7789 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7790 (version-major+minor version) "/"
7791 "network-manager-applet-" version ".tar.xz"))
7792 (sha256
7793 (base32
7794 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
7795 (build-system meson-build-system)
7796 (arguments
7797 '(#:glib-or-gtk? #t))
7798 (native-inputs
7799 `(("intltool" ,intltool)
7800 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
7801 ("gobject-introspection" ,gobject-introspection)
7802 ("gtk-doc" ,gtk-doc)
7803 ("pkg-config" ,pkg-config)))
7804 (propagated-inputs
7805 ;; libnm-gtk.pc refers to all these.
7806 `(("dbus-glib" ,dbus-glib)
7807 ("gtk+" ,gtk+)
7808 ("network-manager" ,network-manager)
7809 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7810 ("libnma" ,libnma)))
7811 (inputs
7812 `(("gcr" ,gcr)
7813 ("libgudev" ,libgudev)
7814 ("libnotify" ,libnotify)
7815 ("libsecret" ,libsecret)
7816 ("libselinux" ,libselinux)
7817 ("jansson" ,jansson) ; for team support
7818 ("modem-manager" ,modem-manager)))
7819 (synopsis "Applet for managing network connections")
7820 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7821 (description
7822 "This package contains a systray applet for NetworkManager. It displays
7823 the available networks and allows users to easily switch between them.")
7824 (license license:gpl2+)))
7825
7826 (define-public libxml++
7827 (package
7828 (name "libxml++")
7829 (version "3.0.1")
7830 (source (origin
7831 (method url-fetch)
7832 (uri (string-append "mirror://gnome/sources/" name "/"
7833 (version-major+minor version) "/"
7834 name "-" version ".tar.xz"))
7835 (sha256
7836 (base32
7837 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
7838 (build-system gnu-build-system)
7839 ;; libxml++-3.0.pc refers to all these.
7840 (propagated-inputs
7841 `(("libxml2" ,libxml2)
7842 ("glibmm" ,glibmm)))
7843 (native-inputs
7844 `(("perl" ,perl)
7845 ("pkg-config" ,pkg-config)))
7846 (home-page "http://libxmlplusplus.sourceforge.net/")
7847 (synopsis "C++ wrapper for XML parser library libxml2")
7848 (description
7849 "This package provides a C++ wrapper for the XML parser library
7850 libxml2.")
7851 (license license:lgpl2.1+)))
7852
7853 (define-public libxml++-2
7854 (package
7855 (inherit libxml++)
7856 (name "libxml++")
7857 (version "2.40.1")
7858 (source (origin
7859 (method url-fetch)
7860 (uri (string-append "mirror://gnome/sources/" name "/"
7861 (version-major+minor version) "/"
7862 name "-" version ".tar.xz"))
7863 (sha256
7864 (base32
7865 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
7866
7867 (define-public gdm
7868 (package
7869 (name "gdm")
7870 (version "3.34.1")
7871 (source (origin
7872 (method url-fetch)
7873 (uri (string-append "mirror://gnome/sources/" name "/"
7874 (version-major+minor version) "/"
7875 name "-" version ".tar.xz"))
7876 (sha256
7877 (base32
7878 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
7879 (patches (search-patches "gdm-default-session.patch"))))
7880 (build-system glib-or-gtk-build-system)
7881 (arguments
7882 '(#:configure-flags
7883 `("--without-plymouth"
7884 "--disable-systemd-journal"
7885
7886 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
7887 ;; instead of having to replace it (i.e., stopping the mingetty
7888 ;; service for TTY 1 before starting GDM).
7889 "--with-initial-vt=7"
7890
7891 ;; Use '/etc/environment' for locale settings instead of the
7892 ;; systemd-specific '/etc/locale.conf'.
7893 "--with-lang-file=/etc/environment"
7894
7895 ,(string-append "--with-udevdir="
7896 (assoc-ref %outputs "out") "/lib/udev")
7897
7898 "--localstatedir=/var"
7899 ,(string-append "--with-default-path="
7900 (string-join '("/run/setuid-programs"
7901 "/run/current-system/profile/bin"
7902 "/run/current-system/profile/sbin")
7903 ":"))
7904 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
7905 ;; XDG_DATA_DIRS so that it finds its schemas.
7906 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
7907 #:phases
7908 (modify-phases %standard-phases
7909 (add-before
7910 'configure 'pre-configure
7911 (lambda* (#:key inputs outputs #:allow-other-keys)
7912 ;; We don't have <systemd/sd-daemon.h>.
7913 (substitute* '("common/gdm-log.c"
7914 "daemon/gdm-server.c"
7915 "daemon/gdm-session-worker.c"
7916 "daemon/gdm-session-worker-job.c")
7917 (("#include <systemd/sd-daemon\\.h>") ""))
7918 ;; Use elogind for sd-login.
7919 (substitute* '("common/gdm-common.c"
7920 "daemon/gdm-local-display-factory.c"
7921 "daemon/gdm-manager.c"
7922 "libgdm/gdm-user-switching.c")
7923 (("#include <systemd/sd-login\\.h>")
7924 "#include <elogind/sd-login.h>"))
7925 ;; Check for elogind.
7926 (substitute* '("configure")
7927 (("libsystemd")
7928 "libelogind"))
7929 ;; Look for system-installed sessions in
7930 ;; /run/current-system/profile/share.
7931 (substitute* '("libgdm/gdm-sessions.c"
7932 "daemon/gdm-session.c"
7933 "daemon/gdm-display.c"
7934 "daemon/gdm-launch-environment.c")
7935 (("DATADIR \"/x")
7936 "\"/run/current-system/profile/share/x")
7937 (("DATADIR \"/wayland")
7938 "\"/run/current-system/profile/share/wayland")
7939 (("DATADIR \"/gnome")
7940 "\"/run/current-system/profile/share/gnome"))
7941 (let ((propagate '("GDM_CUSTOM_CONF"
7942 "GDM_DBUS_DAEMON"
7943 "GDM_X_SERVER"
7944 "GDM_X_SESSION"
7945 ;; XXX: Remove this once GNOME Shell is
7946 ;; a dependency of GDM.
7947 "XDG_DATA_DIRS")))
7948 (substitute* "daemon/gdm-session.c"
7949 (("set_up_session_environment \\(self\\);")
7950 (apply string-append
7951 "set_up_session_environment (self);\n"
7952 (map (lambda (name)
7953 (string-append
7954 "gdm_session_set_environment_variable "
7955 "(self, \"" name "\","
7956 "g_getenv (\"" name "\"));\n"))
7957 propagate)))))
7958 ;; Find the configuration file using an environment variable.
7959 (substitute* '("common/gdm-settings.c")
7960 (("GDM_CUSTOM_CONF")
7961 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7962 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7963 " : GDM_CUSTOM_CONF)")))
7964 ;; Use service-supplied path to X.
7965 (substitute* '("daemon/gdm-server.c")
7966 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7967 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
7968 (substitute* '("daemon/gdm-wayland-session.c"
7969 "daemon/gdm-x-session.c")
7970 (("\"dbus-daemon\"")
7971 "g_getenv (\"GDM_DBUS_DAEMON\")")
7972 (("X_SERVER")
7973 "g_getenv (\"GDM_X_SERVER\")")
7974 (("GDMCONFDIR \"/Xsession\"")
7975 "g_getenv (\"GDM_X_SESSION\")"))
7976 ;; Use an absolute path for GNOME Session.
7977 (substitute* "daemon/gdm-launch-environment.c"
7978 (("\"gnome-session\"")
7979 (string-append "\"" (assoc-ref inputs "gnome-session")
7980 "/bin/gnome-session\"")))
7981 ;; Do not automatically select the placeholder session.
7982 (substitute* "daemon/gdm-session.c"
7983 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7984 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7985 "(g_strcmp0(search_dirs[i], \""
7986 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7987 "\") == 0 && "
7988 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7989 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
7990 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
7991 #t))
7992 ;; GDM requires that there be at least one desktop entry
7993 ;; file. This phase installs a hidden one that simply
7994 ;; fails. This enables users to use GDM with a
7995 ;; '~/.xsession' script with no other desktop entry files.
7996 ;; See <https://bugs.gnu.org/35068>.
7997 (add-after 'install 'install-placeholder-desktop-entry
7998 (lambda* (#:key inputs outputs #:allow-other-keys)
7999 (let* ((out (assoc-ref outputs "out"))
8000 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8001 (fail (string-append sessions "/fail.desktop")))
8002 (mkdir-p sessions)
8003 (with-output-to-file fail
8004 (lambda ()
8005 (for-each
8006 display
8007 '("[Desktop Entry]\n"
8008 "Encoding=UTF-8\n"
8009 "Type=Application\n"
8010 "Name=Fail\n"
8011 "Comment=This session fails immediately.\n"
8012 "NoDisplay=true\n"
8013 "Exec=false\n"))))
8014 #t)))
8015 ;; GDM needs GNOME Session to run these applications. We link
8016 ;; their autostart files in `share/gdm/greeter/autostart'
8017 ;; because GDM explicitly tells GNOME Session to look there.
8018 ;;
8019 ;; XXX: GNOME Shell should be linked here too, but currently
8020 ;; GNOME Shell depends on GDM.
8021 (add-after 'install 'link-autostart-files
8022 (lambda* (#:key inputs outputs #:allow-other-keys)
8023 (let* ((out (assoc-ref outputs "out"))
8024 (autostart (string-append out "/share/gdm/"
8025 "greeter/autostart"))
8026 (settings (assoc-ref inputs "gnome-settings-daemon")))
8027 (mkdir-p autostart)
8028 (with-directory-excursion autostart
8029 (for-each (lambda (desktop)
8030 (symlink desktop (basename desktop)))
8031 (find-files (string-append settings "/etc/xdg"))))
8032 #t))))))
8033 (native-inputs
8034 `(("dconf" ,dconf)
8035 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8036 ("gobject-introspection" ,gobject-introspection)
8037 ("intltool" ,intltool)
8038 ("itstool" ,itstool)
8039 ("pkg-config" ,pkg-config)
8040 ("xmllint" ,libxml2)))
8041 (inputs
8042 `(("accountsservice" ,accountsservice)
8043 ("check" ,check) ; for testing
8044 ("elogind" ,elogind)
8045 ("gnome-session" ,gnome-session)
8046 ("gnome-settings-daemon" ,gnome-settings-daemon)
8047 ("gtk+" ,gtk+)
8048 ("iso-codes" ,iso-codes)
8049 ("libcanberra" ,libcanberra)
8050 ("linux-pam" ,linux-pam)))
8051 (synopsis "Display manager for GNOME")
8052 (home-page "https://wiki.gnome.org/Projects/GDM/")
8053 (description
8054 "GNOME Display Manager is a system service that is responsible for
8055 providing graphical log-ins and managing local and remote displays.")
8056 (license license:gpl2+)))
8057
8058 (define-public libgtop
8059 (package
8060 (name "libgtop")
8061 (version "2.40.0")
8062 (source (origin
8063 (method url-fetch)
8064 (uri (string-append "mirror://gnome/sources/libgtop/"
8065 (version-major+minor version) "/"
8066 "libgtop-" version ".tar.xz"))
8067 (sha256
8068 (base32
8069 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8070 (build-system gnu-build-system)
8071 (native-inputs
8072 `(("gobject-introspection" ,gobject-introspection)
8073 ("intltool" ,intltool)
8074 ("perl" ,perl)
8075 ("pkg-config" ,pkg-config)))
8076 (propagated-inputs
8077 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8078 (synopsis "Portable system access library")
8079 (home-page "https://www.gnome.org/")
8080 (description
8081 "LibGTop is a library to get system specific data such as CPU and memory
8082 usage and information about running processes.")
8083 (license license:gpl2+)))
8084
8085 (define-public gnome-bluetooth
8086 (package
8087 (name "gnome-bluetooth")
8088 (version "3.34.2")
8089 (source (origin
8090 (method url-fetch)
8091 (uri (string-append "mirror://gnome/sources/" name "/"
8092 (version-major+minor version) "/"
8093 name "-" version ".tar.xz"))
8094 (sha256
8095 (base32
8096 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8097 (build-system meson-build-system)
8098 (native-inputs
8099 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8100 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8101 ("gobject-introspection" ,gobject-introspection)
8102 ("intltool" ,intltool)
8103 ("pkg-config" ,pkg-config)
8104 ("xmllint" ,libxml2)))
8105 (propagated-inputs
8106 ;; gnome-bluetooth-1.0.pc refers to all these.
8107 `(("glib" ,glib)
8108 ("gtk+" ,gtk+)))
8109 (inputs
8110 `(("eudev" ,eudev)
8111 ("libcanberra" ,libcanberra)
8112 ("libnotify" ,libnotify)))
8113 (synopsis "GNOME Bluetooth subsystem")
8114 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8115 (description
8116 "This package contains tools for managing and manipulating Bluetooth
8117 devices using the GNOME desktop.")
8118 (license license:lgpl2.1+)))
8119
8120 (define-public gnome-control-center
8121 (package
8122 (name "gnome-control-center")
8123 (version "3.34.2")
8124 (source (origin
8125 (method url-fetch)
8126 (uri (string-append "mirror://gnome/sources/" name "/"
8127 (version-major+minor version) "/"
8128 name "-" version ".tar.xz"))
8129 (sha256
8130 (base32
8131 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8132 (build-system meson-build-system)
8133 (arguments
8134 '(#:glib-or-gtk? #t
8135 #:configure-flags
8136 (list "-Dcheese=false"
8137 (string-append "-Dgnome_session_libexecdir="
8138 (assoc-ref %build-inputs "gnome-session")
8139 "/libexec"))
8140 #:phases
8141 (modify-phases %standard-phases
8142 (add-before 'configure 'patch-paths
8143 (lambda* (#:key inputs #:allow-other-keys)
8144 (let ((libc (assoc-ref inputs "libc"))
8145 (tzdata (assoc-ref inputs "tzdata"))
8146 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8147 (nm-applet (assoc-ref inputs "network-manager-applet"))
8148 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8149 (substitute* "panels/datetime/tz.h"
8150 (("/usr/share/zoneinfo/zone.tab")
8151 (string-append tzdata "/share/zoneinfo/zone.tab")))
8152 (substitute* "tests/datetime/test-endianess.c"
8153 (("/usr/share/locale")
8154 (string-append libc "/share/locale")))
8155 (substitute* "panels/region/cc-region-panel.c"
8156 (("\"gkbd-keyboard-display")
8157 (string-append "\"" libgnomekbd
8158 "/bin/gkbd-keyboard-display")))
8159 (substitute* '("panels/network/net-device-wifi.c"
8160 "panels/network/net-device.c"
8161 "panels/network/connection-editor/net-connection-editor.c")
8162 (("\"nm-connection-editor")
8163 (string-append "\"" nm-applet
8164 "/bin/nm-connection-editor")))
8165 (substitute* '("panels/user-accounts/run-passwd.c")
8166 (("/usr/bin/passwd")
8167 "/run/setuid-programs/passwd"))
8168 (substitute* "panels/info/cc-info-overview-panel.c"
8169 (("DATADIR \"/gnome/gnome-version.xml\"")
8170 (string-append "\"" gnome-desktop
8171 "/share/gnome/gnome-version.xml\"")))
8172 #t)))
8173 (add-after 'unpack 'skip-gtk-update-icon-cache
8174 ;; Don't create 'icon-theme.cache'.
8175 (lambda _
8176 (substitute* "build-aux/meson/meson_post_install.py"
8177 (("gtk-update-icon-cache") (which "true")))
8178 #t)))))
8179 (native-inputs
8180 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8181 ("intltool" ,intltool)
8182 ("pkg-config" ,pkg-config)
8183 ("xsltproc" ,libxslt)
8184 ;; For tests
8185 ("hicolor-icon-theme" ,hicolor-icon-theme)
8186 ("python-dbusmock" ,python-dbusmock)
8187 ("xorg-server" ,xorg-server-for-tests)))
8188 (inputs
8189 `(("accountsservice" ,accountsservice)
8190 ("clutter-gtk" ,clutter-gtk)
8191 ("colord-gtk" ,colord-gtk)
8192 ("cups" ,cups)
8193 ("dconf" ,dconf)
8194 ("docbook-xsl" ,docbook-xsl)
8195 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8196 ("gnome-bluetooth" ,gnome-bluetooth)
8197 ("gnome-desktop" ,gnome-desktop)
8198 ("gnome-online-accounts" ,gnome-online-accounts)
8199 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8200 ("gnome-session" ,gnome-session)
8201 ("gnome-settings-daemon" ,gnome-settings-daemon)
8202 ("grilo" ,grilo)
8203 ("gsound" ,gsound)
8204 ("ibus" ,ibus)
8205 ("libcanberra" ,libcanberra)
8206 ("libgnomekbd" ,libgnomekbd)
8207 ("libgudev" ,libgudev)
8208 ("libgtop" ,libgtop)
8209 ("libnma" ,libnma)
8210 ("libpwquality" ,libpwquality)
8211 ("libsecret" ,libsecret)
8212 ("libsoup" ,libsoup)
8213 ("libxml2" ,libxml2)
8214 ("libwacom" ,libwacom)
8215 ("mesa" ,mesa)
8216 ("mit-krb5" ,mit-krb5)
8217 ("modem-manager" ,modem-manager)
8218 ("network-manager-applet" ,network-manager-applet)
8219 ("polkit" ,polkit)
8220 ("pulseaudio" ,pulseaudio)
8221 ("smbclient" ,samba)
8222 ("tzdata" ,tzdata)
8223 ("udisks" ,udisks)
8224 ("upower" ,upower)))
8225 (synopsis "Utilities to configure the GNOME desktop")
8226 (home-page "https://www.gnome.org/")
8227 (description
8228 "This package contains configuration applets for the GNOME desktop,
8229 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8230 properties, sound setup, desktop theme and background, user interface
8231 properties, screen resolution, and other GNOME parameters.")
8232 (license license:gpl2+)))
8233
8234 (define-public gnome-shell
8235 (package
8236 (name "gnome-shell")
8237 (version "3.34.2")
8238 (source (origin
8239 (method url-fetch)
8240 (uri (string-append "mirror://gnome/sources/" name "/"
8241 (version-major+minor version) "/"
8242 name "-" version ".tar.xz"))
8243 (sha256
8244 (base32
8245 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
8246 (patches (search-patches "gnome-shell-theme.patch"
8247 "gnome-shell-disable-test.patch"))
8248 (modules '((guix build utils)))
8249 (snippet
8250 #~(begin
8251 ;; Copy images for use on the GDM log-in screen.
8252 (copy-file #$(file-append %artwork-repository
8253 "/slim/0.x/background.png")
8254 "data/theme/guix-background.png")
8255 (copy-file #$(file-append %artwork-repository
8256 "/logo/Guix-horizontal-white.svg")
8257 "data/theme/guix-logo.svg")
8258 #t))))
8259 (build-system meson-build-system)
8260 (arguments
8261 `(#:glib-or-gtk? #t
8262 #:disallowed-references ((,glib "bin")
8263 ,inkscape ,libxslt
8264 ,ruby-sass)
8265 #:configure-flags
8266 (list "-Dsystemd=false"
8267 ;; Otherwise, the RUNPATH will lack the final path component.
8268 (string-append "-Dc_link_args=-Wl,-rpath="
8269 (assoc-ref %outputs "out")
8270 "/lib/gnome-shell"))
8271
8272 #:modules ((guix build meson-build-system)
8273 (guix build utils)
8274 (srfi srfi-1))
8275
8276 #:phases
8277 (modify-phases %standard-phases
8278 (add-after 'unpack 'fix-keysdir
8279 (lambda* (#:key outputs #:allow-other-keys)
8280 (let* ((out (assoc-ref outputs "out"))
8281 (keysdir (string-append
8282 out "/share/gnome-control-center/keybindings")))
8283 (substitute* "meson.build"
8284 (("keysdir =.*")
8285 (string-append "keysdir = '" keysdir "'\n")))
8286 #t)))
8287 (add-before 'configure 'convert-logo-to-png
8288 (lambda* (#:key inputs #:allow-other-keys)
8289 ;; Convert the logo from SVG to PNG.
8290 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8291 "data/theme/guix-logo.svg")))
8292 (add-before 'configure 'record-absolute-file-names
8293 (lambda* (#:key inputs #:allow-other-keys)
8294 (substitute* "js/misc/ibusManager.js"
8295 (("'ibus-daemon'")
8296 (string-append "'" (assoc-ref inputs "ibus")
8297 "/bin/ibus-daemon'")))
8298 (substitute* "js/ui/status/keyboard.js"
8299 (("'gkbd-keyboard-display'")
8300 (string-append "'" (assoc-ref inputs "libgnomekbd")
8301 "/bin/gkbd-keyboard-display'")))
8302 #t))
8303 (add-before 'check 'pre-check
8304 (lambda* (#:key inputs #:allow-other-keys)
8305 ;; Tests require a running X server.
8306 (system "Xvfb :1 &")
8307 (setenv "DISPLAY" ":1")
8308 #t))
8309 (add-after 'install 'wrap-programs
8310 (lambda* (#:key inputs outputs #:allow-other-keys)
8311 (let ((out (assoc-ref outputs "out"))
8312 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8313 (python-path (getenv "PYTHONPATH")))
8314 (wrap-program (string-append out "/bin/gnome-shell")
8315 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8316 ;; FIXME: gnome-shell loads these libraries with unqualified
8317 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8318 ;; alternative might be to patch gnome-shell.
8319 `("LD_LIBRARY_PATH" ":" prefix
8320 ,(map (lambda (pkg)
8321 (string-append (assoc-ref inputs pkg) "/lib"))
8322 '("gdk-pixbuf"
8323 "gnome-bluetooth" "librsvg" "libgweather"))))
8324 (for-each
8325 (lambda (prog)
8326 (wrap-program (string-append out "/bin/" prog)
8327 `("PYTHONPATH" ":" prefix (,python-path))
8328 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8329 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8330 #t)))
8331 (replace 'glib-or-gtk-wrap
8332 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8333 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8334 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8335 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8336 ;; phase. Fix that since we don't need these.
8337 (wrap #:inputs (fold alist-delete inputs
8338 '("inkscape" "intltool" "glib:bin"))
8339 #:outputs outputs)))))))
8340 (native-inputs
8341 `(("asciidoc" ,asciidoc)
8342 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8343 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8344 ("gobject-introspection" ,gobject-introspection)
8345 ("inkscape" ,inkscape)
8346 ("intltool" ,intltool)
8347 ("pkg-config" ,pkg-config)
8348 ("python" ,python)
8349 ("ruby-sass" ,ruby-sass)
8350 ("sassc" ,sassc)
8351 ("xsltproc" ,libxslt)
8352 ;; For tests
8353 ("xorg-server" ,xorg-server-for-tests)))
8354 (inputs
8355 `(("accountsservice" ,accountsservice)
8356 ("caribou" ,caribou)
8357 ("docbook-xsl" ,docbook-xsl)
8358 ("evolution-data-server" ,evolution-data-server)
8359 ("gcr" ,gcr)
8360 ("gdm" ,gdm)
8361 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8362 ("gjs" ,gjs)
8363 ("gnome-autoar" ,gnome-autoar)
8364 ("gnome-bluetooth" ,gnome-bluetooth)
8365 ("gnome-desktop" ,gnome-desktop)
8366 ("gnome-settings-daemon" ,gnome-settings-daemon)
8367 ("gst-plugins-base" ,gst-plugins-base)
8368 ("ibus" ,ibus)
8369 ("libcanberra" ,libcanberra)
8370 ("libcroco" ,libcroco)
8371 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8372 ("libgweather" ,libgweather)
8373 ("libnma" ,libnma)
8374 ("libsoup" ,libsoup)
8375 ("mesa-headers" ,mesa-headers)
8376 ("mutter" ,mutter)
8377 ("network-manager-applet" ,network-manager-applet)
8378 ("polkit" ,polkit)
8379 ("pulseaudio" ,pulseaudio)
8380 ("python-pygobject" ,python-pygobject)
8381 ("startup-notification" ,startup-notification)
8382 ("telepathy-logger" ,telepathy-logger)
8383 ("upower" ,upower)
8384 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8385 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8386 ("librsvg" ,librsvg)
8387 ("geoclue" ,geoclue)))
8388 (synopsis "Desktop shell for GNOME")
8389 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8390 (description
8391 "GNOME Shell provides core user interface functions for the GNOME desktop,
8392 like switching to windows and launching applications.")
8393 (license license:gpl2+)))
8394
8395 (define-public gtk-vnc
8396 (package
8397 (name "gtk-vnc")
8398 (version "1.0.0")
8399 (source
8400 (origin
8401 (method url-fetch)
8402 (uri
8403 (string-append "mirror://gnome/sources/" name "/"
8404 (version-major+minor version) "/"
8405 name "-" version ".tar.xz"))
8406 (sha256
8407 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8408 (build-system meson-build-system)
8409 (arguments
8410 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8411 (native-inputs
8412 `(("gjs" ,gjs)
8413 ("glib:bin" ,glib "bin")
8414 ("gobject-introspection" ,gobject-introspection)
8415 ("intltool" ,intltool)
8416 ("node" ,node)
8417 ("perl" ,perl)
8418 ("pkg-config" ,pkg-config)
8419 ("python" ,python-wrapper)
8420 ("vala" ,vala)))
8421 (inputs
8422 `(("cairo" ,cairo)
8423 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8424 ("glib" ,glib)
8425 ("gnutls" ,gnutls)
8426 ("libgcrypt" ,libgcrypt)
8427 ("libsasl" ,cyrus-sasl)
8428 ("pulseaudio" ,pulseaudio)
8429 ("x11" ,libx11)
8430 ("zlib" ,zlib)))
8431 (propagated-inputs
8432 `(("gtk+" ,gtk+)))
8433 (synopsis "VNC client viewer widget for GTK+")
8434 (description "GTK-VNC is a project providing client side APIs for the RFB
8435 protocol / VNC remote desktop technology. It is built using coroutines allowing
8436 it to be completely asynchronous while remaining single threaded. It provides a
8437 core C library, and bindings for Python (PyGTK).")
8438 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8439 (license license:lgpl2.1+)))
8440
8441 (define-public gnome-autoar
8442 (package
8443 (name "gnome-autoar")
8444 (version "0.2.4")
8445 (source (origin
8446 (method url-fetch)
8447 (uri (string-append "mirror://gnome/sources/" name "/"
8448 (version-major+minor version) "/"
8449 name "-" version ".tar.xz"))
8450 (sha256
8451 (base32
8452 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
8453 (build-system glib-or-gtk-build-system)
8454 (native-inputs
8455 `(("gobject-introspection" ,gobject-introspection)
8456 ("pkg-config" ,pkg-config)))
8457 (propagated-inputs
8458 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8459 (inputs
8460 `(("gtk+" ,gtk+)))
8461 (synopsis "Archives integration support for GNOME")
8462 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8463 (description
8464 "GNOME Autoar is a library which makes creating and extracting archives
8465 easy, safe, and automatic.")
8466 (license license:lgpl2.1+)))
8467
8468 (define-public tracker
8469 (package
8470 (name "tracker")
8471 (version "2.3.5")
8472 (source (origin
8473 (method url-fetch)
8474 (uri (string-append "mirror://gnome/sources/tracker/"
8475 (version-major+minor version) "/"
8476 "tracker-" version ".tar.xz"))
8477 (sha256
8478 (base32
8479 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8480 (build-system meson-build-system)
8481 (arguments
8482 `(#:glib-or-gtk? #t
8483 #:configure-flags
8484 ;; Otherwise, the RUNPATH will lack the final path component.
8485 (list (string-append "-Dc_link_args=-Wl,-rpath="
8486 (assoc-ref %outputs "out") "/lib:"
8487 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8488 #:phases
8489 (modify-phases %standard-phases
8490 (add-before 'check 'pre-check
8491 (lambda _
8492 ;; Some tests expect to write to $HOME.
8493 (setenv "HOME" "/tmp")
8494 #t)))))
8495 (native-inputs
8496 `(("glib:bin" ,glib "bin")
8497 ("gobject-introspection" ,gobject-introspection)
8498 ("python-pygobject" ,python-pygobject)
8499 ("intltool" ,intltool)
8500 ("pkg-config" ,pkg-config)
8501 ("vala" ,vala)))
8502 (inputs
8503 `(("dbus" ,dbus)
8504 ("sqlite" ,sqlite)
8505 ("libxml2" ,libxml2)
8506 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8507 ("json-glib" ,json-glib)
8508 ("libsoup" ,libsoup)))
8509 (synopsis "Metadata database, indexer and search tool")
8510 (home-page "https://wiki.gnome.org/Projects/Tracker")
8511 (description
8512 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8513
8514 It is a middleware component aimed at desktop application developers who want
8515 their apps to browse and search user content. It's not designed to be used
8516 directly by desktop users, but it provides a commandline tool named
8517 @command{tracker} for the adventurous.
8518
8519 Tracker allows your application to instantly perform full-text searches across
8520 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8521 example. This is achieved by indexing the user's home directory in the
8522 background.
8523
8524 Tracker also allows your application to query and list content that the user
8525 has stored. For example, GNOME Music displays all the music files that are
8526 found by Tracker. This means that GNOME Music doesn't need to maintain a
8527 database of its own.
8528
8529 If you need to go beyond simple searches, Tracker is also a linked data
8530 endpoint and it understands SPARQL. ")
8531 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8532 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8533 ;; libstemmer is bsd-3 and the rest is gpl2+.
8534 (license (list license:gpl2+
8535 license:bsd-3
8536 license:lgpl2.1+))))
8537
8538 (define-public tracker-miners
8539 (package
8540 (name "tracker-miners")
8541 (version "2.3.4")
8542 (source (origin
8543 (method url-fetch)
8544 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8545 (version-major+minor version)
8546 "/tracker-miners-" version ".tar.xz"))
8547 (sha256
8548 (base32
8549 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8550 (build-system meson-build-system)
8551 (arguments
8552 `(#:glib-or-gtk? #t
8553 #:configure-flags
8554 (list "-Dminer_rss=false" ; libgrss is required.
8555 ;; Ensure the RUNPATH contains all installed library locations.
8556 (string-append "-Dc_link_args=-Wl,-rpath="
8557 (assoc-ref %outputs "out")
8558 "/lib/tracker-miners-2.0")
8559 ;; TODO: Enable functional tests. Currently, the following error
8560 ;; appears:
8561 ;; Exception: The functional tests require DConf to be the default
8562 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8563 "-Dfunctional_tests=false")))
8564 (native-inputs
8565 `(("dbus" ,dbus)
8566 ("intltool" ,intltool)
8567 ("glib:bin" ,glib "bin")
8568 ("gobject-introspection" ,gobject-introspection)
8569 ("pkg-config" ,pkg-config)
8570 ("python-pygobject" ,python-pygobject)))
8571 (inputs
8572 `(("exempi" ,exempi)
8573 ("ffmpeg" ,ffmpeg)
8574 ("flac" ,flac)
8575 ("giflib" ,giflib)
8576 ("glib" ,glib)
8577 ("gstreamer" ,gstreamer)
8578 ("icu4c" ,icu4c)
8579 ("libcue" ,libcue)
8580 ("libexif" ,libexif)
8581 ("libgsf" ,libgsf)
8582 ("libgxps" ,libgxps)
8583 ("libiptcdata" ,libiptcdata)
8584 ("libjpeg" ,libjpeg-turbo)
8585 ("libosinfo" ,libosinfo)
8586 ("libpng" ,libpng)
8587 ("libseccomp" ,libseccomp)
8588 ("libtiff" ,libtiff)
8589 ("libvorbis" ,libvorbis)
8590 ("libxml2" ,libxml2)
8591 ("poppler" ,poppler)
8592 ("taglib" ,taglib)
8593 ("totem-pl-parser" ,totem-pl-parser)
8594 ("tracker" ,tracker)
8595 ("upower" ,upower)
8596 ("zlib" ,zlib)))
8597 (synopsis "Metadata database, indexer and search tool")
8598 (home-page "https://wiki.gnome.org/Projects/Tracker")
8599 (description
8600 "Tracker is an advanced framework for first class objects with associated
8601 metadata and tags. It provides a one stop solution for all metadata, tags,
8602 shared object databases, search tools and indexing.")
8603 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8604 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8605 (license (list license:gpl2+
8606 license:lgpl2.1+
8607 license:lgpl2.0+))))
8608
8609 (define-public nautilus
8610 (package
8611 (name "nautilus")
8612 (version "3.34.2")
8613 (source (origin
8614 (method url-fetch)
8615 (uri (string-append "mirror://gnome/sources/" name "/"
8616 (version-major+minor version) "/"
8617 name "-" version ".tar.xz"))
8618 (sha256
8619 (base32
8620 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8621 (build-system meson-build-system)
8622 (arguments
8623 '(#:glib-or-gtk? #t
8624 #:phases
8625 (modify-phases %standard-phases
8626 (add-after 'unpack 'skip-gtk-update-icon-cache
8627 ;; Don't create 'icon-theme.cache'.
8628 (lambda _
8629 (substitute* "build-aux/meson/postinstall.py"
8630 (("gtk-update-icon-cache") "true"))
8631 #t)))
8632 ;; XXX: FAIL: check-nautilus
8633 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8634 #:tests? #f))
8635 (native-inputs
8636 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8637 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8638 ("gobject-introspection" ,gobject-introspection)
8639 ("intltool" ,intltool)
8640 ("pkg-config" ,pkg-config)))
8641 (inputs
8642 `(("dconf" ,dconf)
8643 ("gexiv2" ,gexiv2)
8644 ("gvfs" ,gvfs)
8645 ("exempi" ,exempi)
8646 ("gnome-desktop" ,gnome-desktop)
8647 ("gnome-autoar" ,gnome-autoar)
8648 ("gst-plugins-base" ,gst-plugins-base)
8649 ("libseccomp" ,libseccomp)
8650 ("libselinux" ,libselinux)
8651 ("tracker" ,tracker)
8652 ("tracker-miners" ,tracker-miners)
8653 ;; XXX: gtk+ is required by libnautilus-extension.pc
8654 ;;
8655 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8656 ;; package. See:
8657 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8658 ("gtk+" ,gtk+)
8659 ("libexif" ,libexif)
8660 ("libxml2" ,libxml2)))
8661 (synopsis "File manager for GNOME")
8662 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8663 (description
8664 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8665 design and behaviour, giving the user a simple way to navigate and manage its
8666 files.")
8667 (license license:gpl2+)))
8668
8669 (define-public baobab
8670 (package
8671 (name "baobab")
8672 (version "3.32.0")
8673 (source (origin
8674 (method url-fetch)
8675 (uri (string-append
8676 "mirror://gnome/sources/" name "/"
8677 (version-major+minor version) "/"
8678 name "-" version ".tar.xz"))
8679 (sha256
8680 (base32
8681 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
8682 (build-system meson-build-system)
8683 (arguments
8684 '(#:glib-or-gtk? #t))
8685 (native-inputs
8686 `(("intltool" ,intltool)
8687 ("pkg-config" ,pkg-config)
8688 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8689 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8690 ("itstool" ,itstool)
8691 ("xmllint" ,libxml2)
8692 ("glib" ,glib "bin")
8693 ("vala" ,vala)))
8694 (inputs
8695 `(("gtk+" ,gtk+)))
8696 (synopsis "Disk usage analyzer for GNOME")
8697 (description
8698 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8699 usage in the GNOME desktop environment. It can easily scan device volumes or
8700 a specific user-requested directory branch (local or remote). Once the scan
8701 is complete it provides a graphical representation of each selected folder.")
8702 (home-page "https://wiki.gnome.org/Apps/Baobab")
8703 (license license:gpl2+)))
8704
8705 (define-public gnome-backgrounds
8706 (package
8707 (name "gnome-backgrounds")
8708 (version "3.34.0")
8709 (source
8710 (origin
8711 (method url-fetch)
8712 (uri (string-append "mirror://gnome/sources/" name "/"
8713 (version-major+minor version) "/"
8714 name "-" version ".tar.xz"))
8715 (sha256
8716 (base32
8717 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8718 (build-system meson-build-system)
8719 (native-inputs
8720 `(("intltool" ,intltool)))
8721 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8722 (synopsis "Background images for the GNOME desktop")
8723 (description
8724 "GNOME backgrounds package contains a collection of graphics files which
8725 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8726 the package creates the proper framework and directory structure so that you
8727 can add your own files to the collection.")
8728 (license (list license:gpl2+
8729 license:cc-by2.0
8730 license:cc-by-sa2.0
8731 license:cc-by-sa3.0))))
8732
8733 (define-public gnome-screenshot
8734 (package
8735 (name "gnome-screenshot")
8736 (version "3.34.0")
8737 (source
8738 (origin
8739 (method url-fetch)
8740 (uri (string-append "mirror://gnome/sources/" name "/"
8741 (version-major+minor version) "/"
8742 name "-" version ".tar.xz"))
8743 (sha256
8744 (base32
8745 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8746 (build-system meson-build-system)
8747 (arguments
8748 '(#:phases
8749 (modify-phases %standard-phases
8750 (add-after 'unpack 'skip-gtk-update-icon-cache
8751 ;; Don't create 'icon-theme.cache'.
8752 (lambda _
8753 (substitute* "build-aux/postinstall.py"
8754 (("gtk-update-icon-cache") "true"))
8755 #t)))))
8756 (native-inputs
8757 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8758 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8759 ("intltool" ,intltool)
8760 ("appstream-glib" ,appstream-glib)
8761 ("pkg-config" ,pkg-config)))
8762 (inputs
8763 `(("gtk+" ,gtk+)
8764 ("libcanberra" ,libcanberra)
8765 ("libx11" ,libx11)
8766 ("libxext" ,libxext)))
8767 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8768 (synopsis "Take pictures of your screen")
8769 (description
8770 "GNOME Screenshot is a utility used for taking screenshots of the entire
8771 screen, a window or a user defined area of the screen, with optional
8772 beautifying border effects.")
8773 (license license:gpl2+)))
8774
8775 (define-public dconf-editor
8776 (package
8777 (name "dconf-editor")
8778 (version "3.34.2")
8779 (source
8780 (origin
8781 (method url-fetch)
8782 (uri (string-append "mirror://gnome/sources/" name "/"
8783 (version-major+minor version) "/"
8784 name "-" version ".tar.xz"))
8785 (sha256
8786 (base32
8787 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8788 (build-system meson-build-system)
8789 (native-inputs
8790 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8791 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8792 ("intltool" ,intltool)
8793 ("pkg-config" ,pkg-config)
8794 ("vala" ,vala)))
8795 (inputs
8796 `(("dconf" ,dconf)
8797 ("gtk+" ,gtk+)
8798 ("libxml2" ,libxml2)))
8799 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
8800 (synopsis "Graphical editor for GNOME's dconf configuration system")
8801 (description
8802 "Dconf-editor is a graphical tool for browsing and editing the dconf
8803 configuration system for GNOME. It allows users to configure desktop
8804 software that do not provide their own configuration interface.")
8805 (license license:lgpl2.1+)))
8806
8807 (define-public gnome-default-applications
8808 (package
8809 (name "gnome-default-applications")
8810 (version "0")
8811 (build-system trivial-build-system)
8812 (source #f)
8813 (propagated-inputs
8814 `(("nautilus" ,nautilus)
8815 ("evince" ,evince)))
8816 (arguments
8817 `(#:modules ((guix build utils))
8818 #:builder
8819 (begin
8820 (use-modules (guix build utils))
8821 (let* ((out (assoc-ref %outputs "out"))
8822 (apps (string-append out "/share/applications")))
8823 (mkdir-p apps)
8824 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
8825 (lambda (port)
8826 (format port "[Default Applications]\n")
8827 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
8828 (format port "application/pdf=evince.desktop\n")
8829 (format port "application/postscript=evince.desktop\n")))
8830 #t))))
8831 (synopsis "Default MIME type associations for the GNOME desktop")
8832 (description
8833 "Given many installed packages which might handle a given MIME type, a
8834 user running the GNOME desktop probably has some preferences: for example,
8835 that folders be opened by default by the Nautilus file manager, not the Baobab
8836 disk usage analyzer. This package establishes that set of default MIME type
8837 associations for GNOME.")
8838 (license license:gpl3+)
8839 (home-page #f)))
8840
8841 (define-public libgovirt
8842 (package
8843 (name "libgovirt")
8844 (version "0.3.6")
8845 (source (origin
8846 (method url-fetch)
8847 (uri (string-append "mirror://gnome/sources/" name "/"
8848 (version-major+minor version) "/"
8849 name "-" version ".tar.xz"))
8850 (sha256
8851 (base32
8852 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
8853 (build-system glib-or-gtk-build-system)
8854 (native-inputs
8855 `(("gettext" ,gettext-minimal)
8856 ("glib:bin" ,glib "bin")
8857 ("gobject-introspection" ,gobject-introspection)
8858 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8859 ("gtk+:bin" ,gtk+ "bin")
8860 ("pkg-config" ,pkg-config)))
8861 (inputs
8862 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
8863 ("librest" ,rest)))
8864 (synopsis "GoVirt Library")
8865 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
8866 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
8867 (license license:gpl2+)))
8868
8869 (define-public gnome-weather
8870 (package
8871 (name "gnome-weather")
8872 (version "3.34.0")
8873 (source (origin
8874 (method url-fetch)
8875 (uri (string-append "mirror://gnome/sources/" name "/"
8876 (version-major+minor version) "/"
8877 name "-" version ".tar.xz"))
8878 (sha256
8879 (base32
8880 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
8881 (build-system meson-build-system)
8882 (native-inputs
8883 `(("gettext" ,gettext-minimal)
8884 ("glib:bin" ,glib "bin")
8885 ("gobject-introspection" ,gobject-introspection)
8886 ("gtk+:bin" ,gtk+ "bin")
8887 ("pkg-config" ,pkg-config)))
8888 (inputs
8889 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
8890 ("appstream-glib" ,appstream-glib)
8891 ("geoclue" ,geoclue)
8892 ("gdk-pixbuf" ,gdk-pixbuf)
8893 ("gjs" ,gjs)
8894 ("gnome-desktop" ,gnome-desktop)
8895 ("libgweather" ,libgweather)))
8896 (arguments
8897 `(#:glib-or-gtk? #t
8898 #:phases
8899 (modify-phases %standard-phases
8900 (add-after 'install 'fix-desktop-file
8901 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
8902 ;; See https://issues.guix.gnu.org/issue/39324.
8903 (lambda* (#:key outputs #:allow-other-keys)
8904 (let* ((out (assoc-ref outputs "out"))
8905 (applications (string-append out "/share/applications")))
8906 (substitute* (string-append applications "/org.gnome.Weather.desktop")
8907 (("Exec=.*") "Exec=gnome-weather\n"))
8908 #t)))
8909 (add-after 'install 'wrap
8910 (lambda* (#:key inputs outputs #:allow-other-keys)
8911 (let ((out (assoc-ref outputs "out"))
8912 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8913 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
8914 (wrap-program (string-append out "/bin/gnome-weather")
8915 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
8916 #t))))))
8917 (synopsis "Weather monitoring for GNOME desktop")
8918 (description "GNOME Weather is a small application that allows you to
8919 monitor the current weather conditions for your city, or anywhere in the
8920 world.")
8921 (home-page "https://wiki.gnome.org/Apps/Weather")
8922 (license license:gpl2+)))
8923
8924 (define-public gnome
8925 (package
8926 (name "gnome")
8927 (version (package-version gnome-shell))
8928 (source #f)
8929 (build-system trivial-build-system)
8930 (arguments '(#:builder (begin (mkdir %output) #t)))
8931 (propagated-inputs
8932 ;; TODO: Add or remove packages according to:
8933 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
8934 `(
8935 ;; GNOME-Core-OS-Services
8936 ("accountsservice" ,accountsservice)
8937 ("network-manager" ,network-manager)
8938 ("packagekit" ,packagekit)
8939 ("upower" ,upower)
8940 ;; GNOME-Core-Shell
8941 ("adwaita-icon-theme" ,adwaita-icon-theme)
8942 ("gdm" ,gdm)
8943 ("glib-networking" ,glib-networking)
8944 ("gnome-backgrounds" ,gnome-backgrounds)
8945 ("gnome-bluetooth" ,gnome-bluetooth)
8946 ("gnome-color-manager" ,gnome-color-manager)
8947 ("gnome-control-center" ,gnome-control-center)
8948 ("gnome-desktop" ,gnome-desktop)
8949 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8950 ("gnome-initial-setup" ,gnome-initial-setup)
8951 ("gnome-keyring" ,gnome-keyring)
8952 ("gnome-menus" ,gnome-menus)
8953 ("gnome-session" ,gnome-session)
8954 ("gnome-settings-daemon" ,gnome-settings-daemon)
8955 ("gnome-shell-extensions" ,gnome-shell-extensions)
8956 ("gnome-shell" ,gnome-shell)
8957 ("gnome-themes-extra" ,gnome-themes-extra)
8958 ("gnome-user-docs" ,gnome-user-docs)
8959 ("gnome-user-share" ,gnome-user-share)
8960 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8961 ("gvfs" ,gvfs)
8962 ("mutter" ,mutter)
8963 ("orca" ,orca)
8964 ("rygel" ,rygel)
8965 ("sushi" ,sushi)
8966 ;; GNOME-Core-Utilities
8967 ("baobab" ,baobab)
8968 ("cheese" ,cheese)
8969 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8970 ;; only works on x86_64, so exclude it on other architectures.
8971 ,@(if (string-prefix? "x86_64" (%current-system))
8972 `(("eog" ,eog))
8973 '())
8974 ("epiphany" ,epiphany)
8975 ("evince" ,evince)
8976 ("file-roller" ,file-roller)
8977 ("gedit" ,gedit)
8978 ("gnome-boxes" ,gnome-boxes)
8979 ("gnome-calculator" ,gnome-calculator)
8980 ("gnome-calendar" ,gnome-calendar)
8981 ("gnome-characters" ,gnome-characters)
8982 ("gnome-clocks" ,gnome-clocks)
8983 ("gnome-contacts" ,gnome-contacts)
8984 ("gnome-disk-utility" ,gnome-disk-utility)
8985 ("gnome-font-viewer" ,gnome-font-viewer)
8986 ("gnome-maps" ,gnome-maps)
8987 ; TODO: ("gnome-music" ,gnome-music)
8988 ; TODO: ("gnome-photos" ,gnome-photos)
8989 ("gnome-screenshot" ,gnome-screenshot)
8990 ("gnome-system-monitor" ,gnome-system-monitor)
8991 ("gnome-terminal" ,gnome-terminal)
8992 ("gnome-weather" ,gnome-weather)
8993 ("nautilus" ,nautilus)
8994 ("simple-scan" ,simple-scan)
8995 ("totem" ,totem)
8996 ("yelp" ,yelp)
8997 ;; Others
8998 ("hicolor-icon-theme" ,hicolor-icon-theme)
8999 ("gnome-online-accounts" ,gnome-online-accounts)
9000
9001 ;; Packages not part of GNOME proper but that are needed for a good
9002 ;; experience. See <https://bugs.gnu.org/39646>.
9003 ;; XXX: Find out exactly which ones are needed and why.
9004 ("font-cantarell" ,font-cantarell)
9005 ("font-dejavu" ,font-dejavu)
9006 ("at-spi2-core" ,at-spi2-core)
9007 ("dbus" ,dbus)
9008 ("dconf" ,dconf)
9009 ("desktop-file-utils" ,desktop-file-utils)
9010 ("gnome-default-applications" ,gnome-default-applications)
9011 ("gnome-themes-standard" ,gnome-themes-standard)
9012 ("gst-plugins-base" ,gst-plugins-base)
9013 ("gst-plugins-good" ,gst-plugins-good)
9014 ("gucharmap" ,gucharmap)
9015 ("pinentry-gnome3" ,pinentry-gnome3)
9016 ("pulseaudio" ,pulseaudio)
9017 ("shared-mime-info" ,shared-mime-info)
9018 ("system-config-printer" ,system-config-printer)
9019 ("xdg-user-dirs" ,xdg-user-dirs)
9020 ("yelp" ,yelp)
9021 ("zenity" ,zenity)))
9022 (synopsis "The GNU desktop environment")
9023 (home-page "https://www.gnome.org/")
9024 (description
9025 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9026 applications for browsing the web, editing text and images, creating
9027 documents and diagrams, playing media, scanning, and much more.")
9028 (license license:gpl2+)))
9029
9030 (define-public byzanz
9031 ;; The last stable release of Byzanz was in 2011, but there have been many
9032 ;; useful commits made to the Byzanz repository since then that it would be
9033 ;; silly to use such an old release.
9034 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9035 (package
9036 (name "byzanz")
9037 (version (string-append "0.2-1." (string-take commit 7)))
9038 (source (origin
9039 (method git-fetch)
9040 (uri (git-reference
9041 (url "https://git.gnome.org/browse/byzanz")
9042 (commit commit)))
9043 (file-name (string-append name "-" version "-checkout"))
9044 (sha256
9045 (base32
9046 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9047 (build-system glib-or-gtk-build-system)
9048 (arguments
9049 '(#:phases
9050 (modify-phases %standard-phases
9051 (add-before 'bootstrap 'build-without-Werror
9052 (lambda _
9053 ;; The build system cleverly detects that we're not building from
9054 ;; a release tarball and turns on -Werror for GCC.
9055 ;; Unsurprisingly, there is a warning during compilation that
9056 ;; causes the build to fail unnecessarily, so we remove the flag.
9057 (substitute* '("configure.ac")
9058 (("-Werror") ""))
9059 #t)))))
9060 (native-inputs
9061 `(("autoconf" ,autoconf)
9062 ("automake" ,automake)
9063 ("gnome-common" ,gnome-common)
9064 ("intltool" ,intltool)
9065 ("libtool" ,libtool)
9066 ("pkg-config" ,pkg-config)
9067 ("which" ,which)))
9068 (inputs
9069 `(("glib" ,glib)
9070 ("gstreamer" ,gstreamer)
9071 ("gst-plugins-base" ,gst-plugins-base)
9072 ("gtk+" ,gtk+)))
9073 (synopsis "Desktop recording program")
9074 (description "Byzanz is a simple desktop recording program with a
9075 command-line interface. It can record part or all of an X display for a
9076 specified duration and save it as a GIF encoded animated image file.")
9077 (home-page "https://git.gnome.org/browse/byzanz")
9078 (license license:gpl2+))))
9079
9080 (define-public gsound
9081 (package
9082 (name "gsound")
9083 (version "1.0.2")
9084 (source (origin
9085 (method url-fetch)
9086 (uri (string-append "mirror://gnome/sources/" name "/"
9087 (version-major+minor version) "/"
9088 name "-" version ".tar.xz"))
9089 (sha256
9090 (base32
9091 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9092 (build-system glib-or-gtk-build-system)
9093 (native-inputs
9094 `(("pkg-config" ,pkg-config)
9095 ("gobject-introspection" ,gobject-introspection)
9096 ("vala" ,vala)))
9097 (inputs
9098 `(("glib" ,glib)
9099 ("libcanberra" ,libcanberra)))
9100 (home-page "https://wiki.gnome.org/Projects/GSound")
9101 (synopsis "GObject wrapper for libcanberra")
9102 (description
9103 "GSound is a small library for playing system sounds. It's designed to be
9104 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9105 library.")
9106 (license license:lgpl2.1+)))
9107
9108 (define-public libzapojit
9109 (package
9110 (name "libzapojit")
9111 (version "0.0.3")
9112 (source (origin
9113 (method url-fetch)
9114 (uri (string-append "mirror://gnome/sources/" name "/"
9115 (version-major+minor version) "/"
9116 name "-" version ".tar.xz"))
9117 (sha256
9118 (base32
9119 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9120 (build-system gnu-build-system)
9121 (native-inputs
9122 `(("gobject-introspection" ,gobject-introspection)
9123 ("intltool" ,intltool)
9124 ("pkg-config" ,pkg-config)))
9125 (inputs
9126 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9127 ("json-glib" ,json-glib)
9128 ("rest" ,rest)))
9129 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9130 (synopsis "Library for accessing SkyDrive and Hotmail")
9131 (description
9132 "Libzapojit is a GLib-based library for accessing online service APIs of
9133 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9134 (license license:lgpl2.1+)))
9135
9136 (define-public gnome-clocks
9137 (package
9138 (name "gnome-clocks")
9139 (version "3.34.0")
9140 (source (origin
9141 (method url-fetch)
9142 (uri (string-append "mirror://gnome/sources/" name "/"
9143 (version-major+minor version) "/"
9144 name "-" version ".tar.xz"))
9145 (sha256
9146 (base32
9147 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9148 (build-system meson-build-system)
9149 (arguments
9150 '(#:glib-or-gtk? #t
9151 #:phases
9152 (modify-phases %standard-phases
9153 (add-after 'unpack 'skip-gtk-update-icon-cache
9154 ;; Don't create 'icon-theme.cache'.
9155 (lambda _
9156 (substitute* "build-aux/post-install.py"
9157 (("gtk-update-icon-cache") "true"))
9158 #t)))))
9159 (native-inputs
9160 `(("vala" ,vala)
9161 ("pkg-config" ,pkg-config)
9162 ("glib" ,glib "bin") ; for glib-compile-resources
9163 ("desktop-file-utils" ,desktop-file-utils)
9164 ("gettext" ,gettext-minimal)
9165 ("itstool" ,itstool)))
9166 (inputs
9167 `(("glib" ,glib)
9168 ("gtk+" ,gtk+)
9169 ("gsound" ,gsound)
9170 ("geoclue" ,geoclue)
9171 ("geocode-glib" ,geocode-glib)
9172 ("libgweather" ,libgweather)
9173 ("gnome-desktop" ,gnome-desktop)))
9174 (home-page "https://wiki.gnome.org/Apps/Clocks")
9175 (synopsis "GNOME's clock application")
9176 (description
9177 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9178 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9179 (license license:gpl3+)))
9180
9181 (define-public gnome-calendar
9182 (package
9183 (name "gnome-calendar")
9184 (version "3.34.2")
9185 (source (origin
9186 (method url-fetch)
9187 (uri (string-append "mirror://gnome/sources/" name "/"
9188 (version-major+minor version) "/"
9189 name "-" version ".tar.xz"))
9190 (sha256
9191 (base32
9192 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9193 (build-system meson-build-system)
9194 (arguments
9195 '(#:glib-or-gtk? #t
9196 ;; gnome-calendar has to be installed before the tests can be run
9197 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9198 #:tests? #f
9199 #:phases
9200 (modify-phases %standard-phases
9201 (add-after 'unpack 'skip-gtk-update-icon-cache
9202 ;; Don't create 'icon-theme.cache'.
9203 (lambda _
9204 (substitute* "build-aux/meson/meson_post_install.py"
9205 (("gtk-update-icon-cache") "true"))
9206 #t)))))
9207 (native-inputs
9208 `(("gettext" ,gettext-minimal)
9209 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9210 ("pkg-config" ,pkg-config)))
9211 (inputs
9212 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9213 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9214 ("libdazzle" ,libdazzle)
9215 ("libedataserverui" ,evolution-data-server)
9216 ("libgweather" ,libgweather)
9217 ("geoclue" ,geoclue)))
9218 (propagated-inputs
9219 `(("evolution-data-server" ,evolution-data-server)))
9220 (home-page "https://wiki.gnome.org/Apps/Calendar")
9221 (synopsis "GNOME's calendar application")
9222 (description
9223 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9224 desktop. It supports multiple calendars, month, week and year view.")
9225 (license license:gpl3+)))
9226
9227 (define-public gnome-todo
9228 (package
9229 (name "gnome-todo")
9230 (version "3.28.1")
9231 (source (origin
9232 (method url-fetch)
9233 (uri (string-append "mirror://gnome/sources/" name "/"
9234 (version-major+minor version) "/"
9235 name "-" version ".tar.xz"))
9236 (sha256
9237 (base32
9238 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9239 (patches
9240 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9241 (build-system meson-build-system)
9242 (arguments
9243 '(#:glib-or-gtk? #t
9244 #:phases (modify-phases %standard-phases
9245 (add-after
9246 'install 'wrap-gnome-todo
9247 (lambda* (#:key inputs outputs #:allow-other-keys)
9248 (let ((out (assoc-ref outputs "out"))
9249 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9250 (python-path (getenv "PYTHONPATH")))
9251 (wrap-program (string-append out "/bin/gnome-todo")
9252 ;; XXX: gi plugins are broken.
9253 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9254 ;; For plugins.
9255 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9256 `("PYTHONPATH" ":" prefix (,python-path))))
9257 #t)))))
9258 (native-inputs
9259 `(("gettext" ,gettext-minimal)
9260 ("gobject-introspection" ,gobject-introspection)
9261 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9262 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9263 ("pkg-config" ,pkg-config)))
9264 (inputs
9265 `(("rest" ,rest) ; For Todoist plugin
9266 ("json-glib" ,json-glib) ; For Todoist plugin
9267 ("libedataserverui" ,evolution-data-server)
9268 ("libical" ,libical)
9269 ("libpeas" ,libpeas)
9270 ("python-pygobject" ,python-pygobject)
9271 ("evolution-data-server" ,evolution-data-server)
9272 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9273 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9274 (home-page "https://wiki.gnome.org/Apps/Todo")
9275 (synopsis "GNOME's ToDo Application")
9276 (description
9277 "GNOME To Do is a simplistic personal task manager designed to perfectly
9278 fit the GNOME desktop.")
9279 (license license:gpl3+)))
9280
9281 (define-public gnome-dictionary
9282 (package
9283 (name "gnome-dictionary")
9284 (version "3.26.1")
9285 (source (origin
9286 (method url-fetch)
9287 (uri (string-append "mirror://gnome/sources/" name "/"
9288 (version-major+minor version) "/"
9289 name "-" version ".tar.xz"))
9290 (sha256
9291 (base32
9292 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9293 (build-system meson-build-system)
9294 (arguments '(#:glib-or-gtk? #t
9295 #:phases (modify-phases %standard-phases
9296 (add-after 'unpack 'patch-install-script
9297 (lambda _
9298 ;; This script attempts to compile glib schemas
9299 ;; and create an empty MIME database. We do
9300 ;; that elsewhere, so prevent it from running.
9301 (substitute* "build-aux/post-install.sh"
9302 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9303 #t)))))
9304 (native-inputs
9305 `(("glib:bin" ,glib "bin")
9306 ("gobject-introspection" ,gobject-introspection)
9307 ("intltool" ,intltool)
9308 ("itstool" ,itstool)
9309 ("pkg-config" ,pkg-config)
9310 ("xmllint" ,libxml2)))
9311 (inputs
9312 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9313 ("gtk+" ,gtk+)))
9314 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9315 (synopsis "Look up words in dictionary sources")
9316 (description
9317 "GNOME Dictionary can look for the definition or translation of a word in
9318 existing databases over the internet.")
9319 (license license:gpl3+)))
9320
9321 (define-public gnome-tweaks
9322 (package
9323 (name "gnome-tweaks")
9324 (version "3.34.0")
9325 (source (origin
9326 (method url-fetch)
9327 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9328 (version-major+minor version) "/"
9329 "gnome-tweaks-" version ".tar.xz"))
9330 (patches
9331 (list (search-patch "gnome-tweaks-search-paths.patch")))
9332 (sha256
9333 (base32
9334 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
9335 (build-system meson-build-system)
9336 (arguments
9337 `(#:glib-or-gtk? #t
9338 #:configure-flags '("-Dlocalstatedir=/tmp"
9339 "-Dsysconfdir=/tmp")
9340 #:imported-modules ((guix build python-build-system)
9341 ,@%meson-build-system-modules)
9342 #:phases
9343 (modify-phases %standard-phases
9344 (add-after 'unpack 'skip-gtk-update-icon-cache
9345 ;; Don't create 'icon-theme.cache'.
9346 (lambda _
9347 (substitute* "meson-postinstall.py"
9348 (("gtk-update-icon-cache") "true"))
9349 #t))
9350 (add-after 'install 'wrap
9351 (@@ (guix build python-build-system) wrap))
9352 (add-after 'wrap 'wrap-gi-typelib
9353 (lambda* (#:key inputs outputs #:allow-other-keys)
9354 (let ((out (assoc-ref outputs "out"))
9355 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9356 (wrap-program (string-append out "/bin/gnome-tweaks")
9357 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9358 #t)))))
9359 (native-inputs
9360 `(("intltool" ,intltool)
9361 ("pkg-config" ,pkg-config)))
9362 (inputs
9363 `(("gnome-desktop" ,gnome-desktop)
9364 ("gtk+" ,gtk+)
9365 ("gobject-introspection" ,gobject-introspection)
9366 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9367 ("libhandy" ,libhandy-0.0)
9368 ("libnotify" ,libnotify)
9369 ("libsoup" ,libsoup)
9370 ("nautilus" ,nautilus)
9371 ("python" ,python)
9372 ("python-pygobject" ,python-pygobject)))
9373 (synopsis "Customize advanced GNOME 3 options")
9374 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9375 (description
9376 "GNOME Tweaks allows adjusting advanced configuration settings in
9377 GNOME 3. This includes things like the fonts used in user interface elements,
9378 alternative user interface themes, changes in window management behavior,
9379 GNOME Shell appearance and extension, etc.")
9380 (license license:gpl3+)))
9381
9382 (define-public gnome-shell-extensions
9383 (package
9384 (name "gnome-shell-extensions")
9385 (version "3.34.2")
9386 (source (origin
9387 (method url-fetch)
9388 (uri (string-append "mirror://gnome/sources/" name "/"
9389 (version-major+minor version) "/"
9390 name "-" version ".tar.xz"))
9391 (sha256
9392 (base32
9393 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9394 (build-system meson-build-system)
9395 (arguments
9396 '(#:configure-flags '("-Dextension_set=all")))
9397 (native-inputs
9398 `(("glib:bin" ,glib "bin")
9399 ("intltool" ,intltool)
9400 ("pkg-config" ,pkg-config)))
9401 (propagated-inputs
9402 `(("glib" ,glib)))
9403 (synopsis "Extensions for GNOME Shell")
9404 (description "GNOME Shell extensions modify and extend GNOME Shell
9405 functionality and behavior.")
9406 (home-page "https://extensions.gnome.org/")
9407 (license license:gpl3+)))
9408
9409 (define-public arc-theme
9410 (package
9411 (name "arc-theme")
9412 (version "20190917")
9413 (source (origin
9414 (method git-fetch)
9415 (uri (git-reference
9416 (url "https://github.com/NicoHood/arc-theme")
9417 (commit version)))
9418 (file-name (git-file-name name version))
9419 (sha256
9420 (base32
9421 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
9422 (build-system gnu-build-system)
9423 (arguments
9424 '(#:phases
9425 (modify-phases %standard-phases
9426 ;; autogen.sh calls configure at the end of the script.
9427 (replace 'bootstrap
9428 (lambda _ (invoke "autoreconf" "-vfi")))
9429 (add-before 'build 'set-home ;placate Inkscape
9430 (lambda _
9431 (setenv "HOME" (getcwd))
9432 #t)))))
9433 (native-inputs
9434 `(("autoconf" ,autoconf)
9435 ("automake" ,automake)
9436 ("glib" ,glib "bin") ; for glib-compile-resources
9437 ("gnome-shell" ,gnome-shell)
9438 ("gtk+" ,gtk+)
9439 ("inkscape" ,inkscape)
9440 ("optipng" ,optipng)
9441 ("pkg-config" ,pkg-config)
9442 ("sassc" ,sassc/libsass-3.5)))
9443 (synopsis "A flat GTK+ theme with transparent elements")
9444 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
9445 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
9446 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
9447 (home-page "https://github.com/horst3180/arc-theme")
9448 ;; No "or later" language found.
9449 (license license:gpl3+)))
9450
9451 (define-public faba-icon-theme
9452 (package
9453 (name "faba-icon-theme")
9454 (version "4.3")
9455 (source
9456 (origin
9457 (method git-fetch)
9458 (uri (git-reference
9459 (url "https://github.com/snwh/faba-icon-theme")
9460 (commit (string-append "v" version))))
9461 (file-name (git-file-name name version))
9462 (sha256
9463 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
9464 (build-system meson-build-system)
9465 (arguments
9466 `(#:phases
9467 (modify-phases %standard-phases
9468 (add-before 'configure 'disable-post-install
9469 (lambda _
9470 (substitute* "meson.build"
9471 (("meson.add_install_script.*") "")))))))
9472 (native-inputs
9473 `(("autoconf" ,autoconf)
9474 ("automake" ,automake)))
9475 (synopsis "Faba icon theme")
9476 (description
9477 "Faba is a minimal icon set used as a basis for other themes such as
9478 Moka")
9479 (home-page "https://snwh.org/moka")
9480 (license (list license:lgpl3+
9481 license:cc-by-sa4.0))))
9482
9483 (define-public moka-icon-theme
9484 (package
9485 (inherit faba-icon-theme)
9486 (name "moka-icon-theme")
9487 (version "5.4.0")
9488 (source
9489 (origin
9490 (method git-fetch)
9491 (uri (git-reference
9492 (url "https://github.com/snwh/moka-icon-theme")
9493 (commit (string-append "v" version))))
9494 (file-name (git-file-name name version))
9495 (sha256
9496 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
9497 (propagated-inputs
9498 ;; Moka is based on Faba by using it as a fallback icon set instead of
9499 ;; bundling it, so we need to add it as a propagated input.
9500 `(("faba-icon-theme" ,faba-icon-theme)))
9501 (synopsis "Moka icon theme")
9502 (description "Moka is a stylized desktop icon set, designed to be clear,
9503 simple and consistent.")
9504 (license (list license:gpl3+
9505 license:cc-by-sa4.0))))
9506
9507 (define-public arc-icon-theme
9508 (package
9509 (name "arc-icon-theme")
9510 (version "20161122")
9511 (source
9512 (origin
9513 (method git-fetch)
9514 (uri (git-reference
9515 (url "https://github.com/horst3180/arc-icon-theme")
9516 (commit version)))
9517 (file-name (git-file-name name version))
9518 (sha256
9519 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
9520 (build-system gnu-build-system)
9521 (arguments
9522 `(#:phases
9523 (modify-phases %standard-phases
9524 (add-after 'unpack 'disable-configure-during-bootstrap
9525 (lambda _
9526 (substitute* "autogen.sh"
9527 (("^\"\\$srcdir/configure\".*") ""))
9528 #t)))))
9529 (native-inputs
9530 `(("autoconf" ,autoconf)
9531 ("automake" ,automake)))
9532 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
9533 (propagated-inputs
9534 `(("moka-icon-theme" ,moka-icon-theme)))
9535 (synopsis "Arc icon theme")
9536 (description "The Arc icon theme provides a set of icons matching the
9537 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
9538 the Moka icon theme.")
9539 (home-page "https://github.com/horst3180/arc-icon-theme")
9540 (license license:gpl3+)))
9541
9542 (define-public folks
9543 (package
9544 (name "folks")
9545 (version "0.13.1")
9546 (source (origin
9547 (method url-fetch)
9548 (uri (string-append
9549 "mirror://gnome/sources/folks/"
9550 (version-major+minor version) "/"
9551 "folks-" version ".tar.xz"))
9552 (sha256
9553 (base32
9554 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9555 (build-system meson-build-system)
9556 (arguments
9557 '(#:phases
9558 (modify-phases %standard-phases
9559 (add-after 'unpack 'skip-gtk-update-icon-cache
9560 ;; Don't create 'icon-theme.cache'.
9561 (lambda _
9562 (substitute* "meson_post_install.py"
9563 (("gtk-update-icon-cache") "true"))
9564 #t)))))
9565 (inputs
9566 `(("bdb" ,bdb)
9567 ("dbus-glib" ,dbus-glib)
9568 ("evolution-data-server" ,evolution-data-server)
9569 ("glib" ,glib)
9570 ("libgee" ,libgee)
9571 ("readline" ,readline)
9572 ("telepathy-glib" ,telepathy-glib)))
9573 (native-inputs
9574 `(("glib:bin" ,glib "bin")
9575 ("gobject-introspection" ,gobject-introspection)
9576 ("intltool" ,intltool)
9577 ("pkg-config" ,pkg-config)
9578 ("vala" ,vala)))
9579 (synopsis "Library to aggregate data about people")
9580 (description "Libfolks is a library that aggregates information about people
9581 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9582 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9583 etc.) to create metacontacts. It's written in Vala, which generates C code when
9584 compiled.")
9585 (home-page "https://wiki.gnome.org/Projects/Folks")
9586 (license license:lgpl2.1+)))
9587
9588 (define-public gfbgraph
9589 (package
9590 (name "gfbgraph")
9591 (version "0.2.4")
9592 (source (origin
9593 (method url-fetch)
9594 (uri (string-append
9595 "mirror://gnome/sources/gfbgraph/"
9596 (version-major+minor version) "/"
9597 "gfbgraph-" version ".tar.xz"))
9598 (sha256
9599 (base32
9600 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9601 (build-system glib-or-gtk-build-system)
9602 (arguments
9603 `(#:tests? #f ; tests appear to require the network
9604 #:configure-flags '("--disable-static"
9605 "--enable-gtk-doc"
9606 "--enable-introspection")))
9607 (native-inputs
9608 `(("gobject-introspection" ,gobject-introspection)
9609 ("gtk-doc" ,gtk-doc)
9610 ("pkg-config" ,pkg-config)
9611
9612 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9613 ("autoconf" ,autoconf)
9614 ("automake" ,automake)
9615 ("libtool" ,libtool)
9616 ("which" ,which)))
9617 (inputs
9618 `(("json-glib" ,json-glib)
9619 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9620 ("rest" ,rest)))
9621 (synopsis "GLib/GObject wrapper for the Facebook API")
9622 (description "This library allows you to use the Facebook API from
9623 GLib/GObject code.")
9624 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9625 (license license:lgpl2.1+)))
9626
9627 (define-public libgnomekbd
9628 (package
9629 (name "libgnomekbd")
9630 (version "3.26.1")
9631 (source (origin
9632 (method url-fetch)
9633 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9634 (version-major+minor version) "/"
9635 "libgnomekbd-" version ".tar.xz"))
9636 (sha256
9637 (base32
9638 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9639 (build-system gnu-build-system)
9640 (native-inputs
9641 `(("pkg-config" ,pkg-config)
9642 ("glib" ,glib "bin")
9643 ("intltool" ,intltool)))
9644 (propagated-inputs
9645 ;; Referred to in .h files and .pc.
9646 `(("glib" ,glib)
9647 ("gtk+" ,gtk+)
9648 ("libxklavier" ,libxklavier)))
9649 (home-page "https://www.gnome.org")
9650 (synopsis "GNOME keyboard configuration library")
9651 (description
9652 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9653 environment, which can notably display keyboard layouts.")
9654 (license license:lgpl2.0+)))
9655
9656 ;;; This package is no longer maintained:
9657 ;;; https://wiki.gnome.org/Attic/LibUnique
9658 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9659 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9660 (define-public libunique
9661 (package
9662 (name "libunique")
9663 (version "3.0.2")
9664 (source (origin
9665 (method url-fetch)
9666 (uri (string-append "mirror://gnome/sources/" name "/"
9667 (version-major+minor version) "/"
9668 name "-" version ".tar.xz"))
9669 (sha256
9670 (base32
9671 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9672 (build-system glib-or-gtk-build-system)
9673 (arguments
9674 `(#:configure-flags '("--disable-static"
9675 "--disable-dbus" ; use gdbus
9676 "--enable-introspection")))
9677 (native-inputs
9678 `(("pkg-config" ,pkg-config)
9679 ("gobject-introspection" ,gobject-introspection)
9680 ("glib:bin" ,glib "bin")
9681 ("gtk-doc" ,gtk-doc)))
9682 (propagated-inputs
9683 ;; Referred to in .h files and .pc.
9684 `(("gtk+" ,gtk+)))
9685 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9686 (synopsis "Library for writing single instance applications")
9687 (description
9688 "Libunique is a library for writing single instance applications. If you
9689 launch a single instance application twice, the second instance will either just
9690 quit or will send a message to the running instance. Libunique makes it easy to
9691 write this kind of application, by providing a base class, taking care of all
9692 the IPC machinery needed to send messages to a running instance, and also
9693 handling the startup notification side.")
9694 (license license:lgpl2.1+)))
9695
9696 (define-public gnome-calculator
9697 (package
9698 (name "gnome-calculator")
9699 (version "3.34.1")
9700 (source
9701 (origin
9702 (method url-fetch)
9703 (uri (string-append "mirror://gnome/sources/" name "/"
9704 (version-major+minor version) "/"
9705 name "-" version ".tar.xz"))
9706 (sha256
9707 (base32
9708 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9709 (build-system meson-build-system)
9710 (arguments '(#:glib-or-gtk? #t))
9711 (native-inputs
9712 `(("gettext" ,gettext-minimal)
9713 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9714 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9715 ("itstool" ,itstool)
9716 ("vala" ,vala)
9717 ("pkg-config" ,pkg-config)))
9718 (inputs
9719 `(("glib" ,glib)
9720 ("gtksourceview" ,gtksourceview)
9721 ("libgee" ,libgee)
9722 ("libsoup" ,libsoup)
9723 ("libxml2" ,libxml2)
9724 ("mpc" ,mpc)
9725 ("mpfr" ,mpfr)))
9726 (home-page "https://wiki.gnome.org/Apps/Calculator")
9727 (synopsis "Desktop calculator")
9728 (description
9729 "Calculator is an application that solves mathematical equations and
9730 is suitable as a default application in a Desktop environment.")
9731 (license license:gpl3)))
9732
9733 (define-public xpad
9734 (package
9735 (name "xpad")
9736 (version "5.1.0")
9737 (source
9738 (origin
9739 (method url-fetch)
9740 (uri (string-append "https://launchpad.net/xpad/trunk/"
9741 version "/+download/"
9742 name "-" version ".tar.bz2"))
9743 (sha256
9744 (base32
9745 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9746 (build-system gnu-build-system)
9747 (native-inputs
9748 `(("autoconf" ,autoconf)
9749 ("automake" ,automake)
9750 ("gtk+:bin" ,gtk+ "bin")
9751 ("intltool" ,intltool)
9752 ("pkg-config" ,pkg-config)))
9753 (inputs
9754 `(("gtksourceview" ,gtksourceview-3)
9755 ("libsm" ,libsm)))
9756 (home-page "https://wiki.gnome.org/Apps/Xpad")
9757 (synopsis "Virtual sticky note")
9758 (description
9759 "Xpad is a sticky note that strives to be simple, fault tolerant,
9760 and customizable. Xpad consists of independent pad windows, each is
9761 basically a text box in which notes can be written.")
9762 (license license:gpl3+)))
9763
9764 (define-public gucharmap
9765 (let ((unicode-files
9766 '(("Blocks.txt"
9767 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9768 ("DerivedAge.txt"
9769 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9770 ("NamesList.txt"
9771 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9772 ("Scripts.txt"
9773 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9774 ("UnicodeData.txt"
9775 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9776 ("Unihan.zip"
9777 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9778 (package
9779 (name "gucharmap")
9780 (version "12.0.1")
9781 (source
9782 (origin
9783 (method url-fetch)
9784 (uri (string-append "mirror://gnome/sources/" name "/"
9785 (version-major+minor version) "/"
9786 name "-" version ".tar.xz"))
9787 (sha256
9788 (base32
9789 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9790 (build-system glib-or-gtk-build-system)
9791 (arguments
9792 `(#:modules ((ice-9 match)
9793 (guix build glib-or-gtk-build-system)
9794 (guix build utils))
9795 #:configure-flags
9796 (list "--with-unicode-data=../unicode-data")
9797 #:phases
9798 (modify-phases %standard-phases
9799 (add-after 'unpack 'prepare-unicode-data
9800 (lambda* (#:key inputs #:allow-other-keys)
9801 (mkdir-p "../unicode-data")
9802 (with-directory-excursion "../unicode-data"
9803 (for-each (match-lambda
9804 ((file _)
9805 (install-file (assoc-ref inputs file) ".")))
9806 ',unicode-files))
9807 #t)))))
9808 (native-inputs
9809 `(("desktop-file-utils" ,desktop-file-utils)
9810 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9811 ("gobject-introspection" ,gobject-introspection)
9812 ("intltool" ,intltool)
9813 ("itstool" ,itstool)
9814 ("pkg-config" ,pkg-config)
9815 ,@(map (match-lambda
9816 ((file hash)
9817 `(,file
9818 ,(origin
9819 (method url-fetch)
9820 (uri (string-append
9821 "http://www.unicode.org/Public/12.0.0/ucd/"
9822 file))
9823 (sha256 (base32 hash))))))
9824 unicode-files)
9825 ("unzip" ,unzip)))
9826 (inputs
9827 `(("gtk+" ,gtk+)
9828 ("xmllint" ,libxml2)))
9829 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9830 (synopsis "Unicode character picker and font browser")
9831 (description
9832 "This program allows you to browse through all the available Unicode
9833 characters and categories for the installed fonts, and to examine their
9834 detailed properties. It is an easy way to find the character you might
9835 only know by its Unicode name or code point.")
9836 (license license:gpl3+))))
9837
9838 (define-public bluefish
9839 (package
9840 (name "bluefish")
9841 (version "2.2.11")
9842 (source
9843 (origin
9844 (method url-fetch)
9845 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
9846 "bluefish-" version ".tar.gz"))
9847 (sha256
9848 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
9849 (build-system gnu-build-system)
9850 (native-inputs
9851 `(("desktop-file-utils" ,desktop-file-utils)
9852 ("intltool" ,intltool)
9853 ("pkg-config" ,pkg-config)))
9854 (inputs
9855 `(("enchant" ,enchant)
9856 ("gtk+" ,gtk+)
9857 ("python" ,python-wrapper)
9858 ("xmllint" ,libxml2)
9859 ("gucharmap" ,gucharmap)))
9860 (home-page "http://bluefish.openoffice.nl")
9861 (synopsis "Web development studio")
9862 (description
9863 "Bluefish is an editor targeted towards programmers and web developers,
9864 with many options to write web sites, scripts and other code.
9865 Bluefish supports many programming and markup languages.")
9866 (license license:gpl3+)))
9867
9868 (define-public gnome-system-monitor
9869 (package
9870 (name "gnome-system-monitor")
9871 (version "3.32.1")
9872 (source
9873 (origin
9874 (method url-fetch)
9875 (uri (string-append "mirror://gnome/sources/" name "/"
9876 (version-major+minor version) "/"
9877 name "-" version ".tar.xz"))
9878 (sha256
9879 (base32
9880 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
9881 (build-system meson-build-system)
9882 (arguments
9883 '(#:glib-or-gtk? #t
9884 #:configure-flags '("-Dsystemd=false")))
9885 (native-inputs
9886 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
9887 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
9888 ("intltool" ,intltool)
9889 ("itstool" ,itstool)
9890 ("libgtop" ,libgtop)
9891 ("polkit" ,polkit)
9892 ("pkg-config" ,pkg-config)))
9893 (inputs
9894 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
9895 ("gtk+" ,gtk+)
9896 ("gtkmm" ,gtkmm)
9897 ("librsvg" ,librsvg)
9898 ("libxml2" ,libxml2)
9899 ("libwnck" ,libwnck)))
9900 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
9901 (synopsis "Process viewer and system resource monitor for GNOME")
9902 (description
9903 "GNOME System Monitor is a GNOME process viewer and system monitor with
9904 an attractive, easy-to-use interface. It has features, such as a tree view
9905 for process dependencies, icons for processes, the ability to hide processes,
9906 graphical time histories of CPU/memory/swap usage and the ability to
9907 kill/reinice processes.")
9908 (license license:gpl2+)))
9909
9910 (define-public python-pyatspi
9911 (package
9912 (name "python-pyatspi")
9913 (version "2.34.0")
9914 (source (origin
9915 (method url-fetch)
9916 (uri (string-append
9917 "mirror://gnome/sources/pyatspi/"
9918 (version-major+minor version)
9919 "/pyatspi-" version ".tar.xz"))
9920 (sha256
9921 (base32
9922 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
9923 (build-system gnu-build-system)
9924 (arguments
9925 `(#:phases
9926 (modify-phases %standard-phases
9927 (add-before 'build 'fix-atk-load
9928 (lambda _
9929 (substitute* "pyatspi/__init__.py"
9930 (("from gi.repository import Atspi")
9931 "gi.require_version('Gtk', '3.0')
9932 from gi.repository import Gtk
9933 from gi.repository import Atspi"))
9934 #t)))))
9935 (native-inputs
9936 `(("pkg-config" ,pkg-config)))
9937 (inputs
9938 `(("python" ,python)))
9939 (propagated-inputs
9940 `(("python-pygobject" ,python-pygobject)))
9941 (synopsis "Python client bindings for D-Bus AT-SPI")
9942 (home-page "https://wiki.linuxfoundation.org/accessibility\
9943 /atk/at-spi/at-spi_on_d-bus")
9944 (description
9945 "This package includes a python client library for the AT-SPI D-Bus
9946 accessibility infrastructure.")
9947 (license license:lgpl2.0)
9948 (properties '((upstream-name . "pyatspi")))))
9949
9950 (define-public python2-pyatspi
9951 (package
9952 (inherit python-pyatspi)
9953 (name "python2-pyatspi")
9954 (inputs
9955 `(("python" ,python-2)))
9956 (propagated-inputs
9957 `(("python-pygobject" ,python2-pygobject)))))
9958
9959 (define-public orca
9960 (package
9961 (name "orca")
9962 (version "3.34.1")
9963 (source (origin
9964 (method url-fetch)
9965 (uri (string-append
9966 "mirror://gnome/sources/" name "/"
9967 (version-major+minor version) "/"
9968 name "-" version ".tar.xz"))
9969 (sha256
9970 (base32
9971 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
9972 (build-system glib-or-gtk-build-system)
9973 (arguments
9974 '(#:phases
9975 (modify-phases %standard-phases
9976 (add-before 'configure 'qualify-xkbcomp
9977 (lambda* (#:key inputs #:allow-other-keys)
9978 (let ((xkbcomp (string-append
9979 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9980 (substitute* "src/orca/orca.py"
9981 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9982 #t))
9983 (add-after 'install 'wrap-orca
9984 (lambda* (#:key outputs #:allow-other-keys)
9985 (let* ((out (assoc-ref outputs "out"))
9986 (prog (string-append out "/bin/orca")))
9987 (wrap-program prog
9988 `("GI_TYPELIB_PATH" ":" prefix
9989 (,(getenv "GI_TYPELIB_PATH")))
9990 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9991 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9992 `("PYTHONPATH" ":" prefix
9993 (,(getenv "PYTHONPATH")))))
9994 #t)))))
9995 (native-inputs
9996 `(("intltool" ,intltool)
9997 ("itstool" ,itstool)
9998 ("pkg-config" ,pkg-config)
9999 ("xmllint" ,libxml2)))
10000 (inputs
10001 `(("at-spi2-atk" ,at-spi2-atk)
10002 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10003 ("gstreamer" ,gstreamer)
10004 ("gst-plugins-base" ,gst-plugins-base)
10005 ("gst-plugins-good" ,gst-plugins-good)
10006 ("gtk+" ,gtk+)
10007 ("python" ,python)
10008 ("python-pygobject" ,python-pygobject)
10009 ("python-pyatspi" ,python-pyatspi)
10010 ("python-speechd" ,speech-dispatcher)
10011 ("xkbcomp" ,xkbcomp)))
10012 (synopsis
10013 "Screen reader for individuals who are blind or visually impaired")
10014 (home-page "https://wiki.gnome.org/Projects/Orca")
10015 (description
10016 "Orca is a screen reader that provides access to the graphical desktop
10017 via speech and refreshable braille. Orca works with applications and toolkits
10018 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10019 (license license:lgpl2.1+)))
10020
10021 (define-public gspell
10022 (package
10023 (name "gspell")
10024 (version "1.8.2")
10025 (source (origin
10026 (method url-fetch)
10027 (uri (string-append "mirror://gnome/sources/" name "/"
10028 (version-major+minor version) "/"
10029 name "-" version ".tar.xz"))
10030 (sha256
10031 (base32
10032 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10033 (patches (search-patches "gspell-dash-test.patch"))))
10034 (build-system glib-or-gtk-build-system)
10035 (arguments
10036 '(#:configure-flags (list "--enable-vala")
10037 #:phases
10038 (modify-phases %standard-phases
10039 (add-before 'check 'pre-check
10040 (lambda* (#:key inputs #:allow-other-keys)
10041 ;; Tests require a running X server.
10042 (system "Xvfb :1 &")
10043 (setenv "DISPLAY" ":1")
10044
10045 ;; For the missing /etc/machine-id.
10046 (setenv "DBUS_FATAL_WARNINGS" "0")
10047
10048 ;; Allow Enchant and its Aspell backend to find the en_US
10049 ;; dictionary.
10050 (setenv "ASPELL_DICT_DIR"
10051 (string-append (assoc-ref inputs "aspell-dict-en")
10052 "/lib/aspell"))
10053 #t)))))
10054 (inputs
10055 `(("gtk+" ,gtk+)
10056 ("glib" ,glib)
10057 ("iso-codes" ,iso-codes)))
10058 (native-inputs
10059 `(("glib" ,glib "bin")
10060 ("gobject-introspection" ,gobject-introspection)
10061 ("pkg-config" ,pkg-config)
10062 ("vala" ,vala) ;for VAPI, needed by Geary
10063 ("xmllint" ,libxml2)
10064
10065 ;; For tests.
10066 ("aspell-dict-en" ,aspell-dict-en)
10067 ("xorg-server" ,xorg-server-for-tests)))
10068 (propagated-inputs
10069 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
10070 (home-page "https://wiki.gnome.org/Projects/gspell")
10071 (synopsis "GNOME's alternative spell checker")
10072 (description
10073 "gspell provides a flexible API to add spell-checking to a GTK+
10074 application. It provides a GObject API, spell-checking to text entries and
10075 text views, and buttons to choose the language.")
10076 (license license:gpl2+)))
10077
10078 (define-public gnome-planner
10079 (package
10080 (name "gnome-planner")
10081 (version "0.14.6")
10082 (source (origin
10083 (method url-fetch)
10084 (uri (string-append "mirror://gnome/sources/planner/"
10085 (version-major+minor version) "/planner-"
10086 version ".tar.xz"))
10087 (sha256
10088 (base32
10089 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10090 (build-system glib-or-gtk-build-system)
10091 (arguments
10092 ;; Disable the Python bindings because the Planner program functions
10093 ;; without them, and (as of 2017-06-13) we have not packaged all of
10094 ;; packages that are necessary for building the Python bindings.
10095 `(#:configure-flags
10096 (list "--disable-python"
10097 ,@(if (string=? "aarch64-linux" (%current-system))
10098 '("--build=aarch64-unknown-linux-gnu")
10099 '()))))
10100 (inputs
10101 `(("libgnomecanvas" ,libgnomecanvas)
10102 ("libgnomeui" ,libgnomeui)
10103 ("libglade" ,libglade)
10104 ("gnome-vfs" ,gnome-vfs)
10105 ("gconf" ,gconf)
10106 ("libxml2" ,libxml2)
10107 ("libxslt" ,libxslt)
10108 ("gtk+" ,gtk+)
10109 ("glib" ,glib)))
10110 (native-inputs
10111 `(("intltool" ,intltool)
10112 ("scrollkeeper" ,scrollkeeper)
10113 ("pkg-config" ,pkg-config)))
10114 (home-page "https://wiki.gnome.org/Apps/Planner")
10115 (synopsis "Project management software for the GNOME desktop")
10116 (description
10117 "GNOME Planner is a project management tool based on the Work Breakdown
10118 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10119 the resources, tasks, and constraints that you define, Planner generates
10120 various views into a project. For example, Planner can show a Gantt chart of
10121 the project. It can show a detailed summary of tasks including their
10122 duration, cost, and current progress. It can also show a report of resource
10123 utilization that highlights under-utilized and over-utilized resources. These
10124 views can be printed as PDF or PostScript files, or exported to HTML.")
10125 (license license:gpl2+)))
10126
10127 (define-public lollypop
10128 (package
10129 (name "lollypop")
10130 (version "1.2.32")
10131 (source
10132 (origin
10133 (method url-fetch)
10134 (uri (string-append "https://adishatz.org/lollypop/"
10135 "lollypop-" version ".tar.xz"))
10136 (sha256
10137 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
10138 (build-system meson-build-system)
10139 (arguments
10140 `(#:imported-modules
10141 (,@%meson-build-system-modules
10142 (guix build python-build-system))
10143 #:modules
10144 ((guix build meson-build-system)
10145 ((guix build python-build-system) #:prefix python:)
10146 (guix build utils))
10147 #:glib-or-gtk? #t
10148 #:tests? #f ; no test suite
10149 #:phases
10150 (modify-phases %standard-phases
10151 (add-after 'install 'wrap-program
10152 (lambda* (#:key outputs #:allow-other-keys)
10153 (let ((out (assoc-ref outputs "out"))
10154 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10155 (wrap-program (string-append out "/bin/lollypop")
10156 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10157 #t))
10158 (add-after 'install 'wrap-python
10159 (assoc-ref python:%standard-phases 'wrap)))))
10160 (native-inputs
10161 `(("intltool" ,intltool)
10162 ("itstool" ,itstool)
10163 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10164 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10165 ("pkg-config" ,pkg-config)))
10166 (inputs
10167 `(("gobject-introspection" ,gobject-introspection)
10168 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10169 ("gst-plugins-base" ,gst-plugins-base)
10170 ("libnotify" ,libnotify)
10171 ("libsecret" ,libsecret)
10172 ("libsoup" ,libsoup)
10173 ("python" ,python)
10174 ("python-beautifulsoup4" ,python-beautifulsoup4)
10175 ("python-gst" ,python-gst)
10176 ("python-pil" ,python-pillow)
10177 ("python-pycairo" ,python-pycairo)
10178 ("python-pygobject" ,python-pygobject)
10179 ("python-pylast" ,python-pylast)
10180 ("totem-pl-parser" ,totem-pl-parser)
10181 ("webkitgtk" ,webkitgtk)))
10182 (propagated-inputs
10183 `(;; gst-plugins-base is required to start Lollypop,
10184 ;; the others are required to play streaming.
10185 ("gst-plugins-good" ,gst-plugins-good)
10186 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10187 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10188 (synopsis "GNOME music playing application")
10189 (description
10190 "Lollypop is a music player designed to play well with GNOME desktop.
10191 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10192 from artists and tracks from the web. It also fetches cover artworks
10193 automatically and it can stream songs from online music services and charts.")
10194 (license license:gpl3+)))
10195
10196 (define-public gnome-video-effects
10197 (package
10198 (name "gnome-video-effects")
10199 (version "0.5.0")
10200 (source (origin
10201 (method url-fetch)
10202 (uri (string-append "mirror://gnome/sources/" name "/"
10203 (version-major+minor version) "/" name "-"
10204 version ".tar.xz"))
10205 (sha256
10206 (base32
10207 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10208 (build-system meson-build-system)
10209 (native-inputs
10210 `(("gettext" ,gettext-minimal)
10211 ("pkg-config" ,pkg-config)))
10212 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10213 (synopsis "Video effects for Cheese and other GNOME applications")
10214 (description
10215 "A collection of GStreamer video filters and effects to be used in
10216 photo-booth-like software, such as Cheese.")
10217 (license license:gpl2+)))
10218
10219 (define-public cheese
10220 (package
10221 (name "cheese")
10222 (version "3.38.0")
10223 (source (origin
10224 (method url-fetch)
10225 (uri (string-append "mirror://gnome/sources/" name "/"
10226 (version-major+minor version) "/" name "-"
10227 version ".tar.xz"))
10228 (sha256
10229 (base32
10230 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10231 (arguments
10232 `(#:glib-or-gtk? #t
10233 ;; Tests require GDK.
10234 #:tests? #f
10235 #:phases
10236 (modify-phases %standard-phases
10237 (add-after 'unpack 'skip-gtk-update-icon-cache
10238 (lambda _
10239 ;; Don't create 'icon-theme.cache'
10240 (substitute* "meson_post_install.py"
10241 (("gtk-update-icon-cache") (which "true")))
10242 #t))
10243 (add-after 'unpack 'patch-docbook-xml
10244 (lambda* (#:key inputs #:allow-other-keys)
10245 ;; Avoid a network connection attempt during the build.
10246 (substitute* '("docs/reference/cheese.xml"
10247 "docs/reference/cheese-docs.xml")
10248 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10249 (string-append (assoc-ref inputs "docbook-xml")
10250 "/xml/dtd/docbook/docbookx.dtd")))
10251 #t))
10252 (add-after 'install 'wrap-cheese
10253 (lambda* (#:key inputs outputs #:allow-other-keys)
10254 (let ((out (assoc-ref outputs "out"))
10255 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10256 (wrap-program (string-append out "/bin/cheese")
10257 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10258 #t)))))
10259 (build-system meson-build-system)
10260 (native-inputs
10261 `(("docbook-xsl" ,docbook-xsl)
10262 ("docbook-xml" ,docbook-xml-4.3)
10263 ("glib:bin" ,glib "bin")
10264 ("gtk-doc" ,gtk-doc)
10265 ("intltool" ,intltool)
10266 ("itstool" ,itstool)
10267 ("libxml2" ,libxml2)
10268 ("libxslt" ,libxslt)
10269 ("pkg-config" ,pkg-config)
10270 ("vala" ,vala)))
10271 (propagated-inputs
10272 `(("gnome-video-effects" ,gnome-video-effects)
10273 ("clutter" ,clutter)
10274 ("clutter-gst" ,clutter-gst)
10275 ("clutter-gtk" ,clutter-gtk)
10276 ("libcanberra" ,libcanberra)
10277 ("gdk-pixbuf" ,gdk-pixbuf)
10278 ("glib" ,glib)
10279 ("gstreamer" ,gstreamer)))
10280 (inputs
10281 `(("gnome-desktop" ,gnome-desktop)
10282 ("gobject-introspection" ,gobject-introspection)
10283 ("gst-plugins-base" ,gst-plugins-base)
10284 ("gst-plugins-bad" ,gst-plugins-bad)
10285 ("gtk+" ,gtk+)
10286 ("libx11" ,libx11)
10287 ("libxtst" ,libxtst)))
10288 (home-page "https://wiki.gnome.org/Apps/Cheese")
10289 (synopsis "Webcam photo booth software for GNOME")
10290 (description
10291 "Cheese uses your webcam to take photos and videos. Cheese can also
10292 apply fancy special effects and lets you share the fun with others.")
10293 (license license:gpl2+)))
10294
10295 (define-public sound-juicer
10296 (package
10297 (name "sound-juicer")
10298 (version "3.24.0")
10299 (source
10300 (origin
10301 (method url-fetch)
10302 (uri (string-append "mirror://gnome/sources/" name "/"
10303 (version-major+minor version) "/"
10304 name "-" version ".tar.xz"))
10305 (sha256
10306 (base32
10307 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10308 (build-system glib-or-gtk-build-system)
10309 (native-inputs
10310 `(("desktop-file-utils" ,desktop-file-utils)
10311 ("intltool" ,intltool)
10312 ("itstool" ,itstool)
10313 ("pkg-config" ,pkg-config)
10314 ("xmllint" ,libxml2)))
10315 (inputs
10316 `(("gtk+" ,gtk+)
10317 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10318 ("gstreamer" ,gstreamer)
10319 ("gst-plugins-base" ,gst-plugins-base)
10320 ("gst-plugins-good" ,gst-plugins-good)
10321 ("iso-codes" ,iso-codes)
10322 ("libbrasero-media3" ,brasero)
10323 ("libcanberra" ,libcanberra)
10324 ("libdiscid" ,libdiscid)
10325 ("libmusicbrainz" ,libmusicbrainz)
10326 ("neon" ,neon)))
10327 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10328 (synopsis "Audio music cd ripper")
10329 (description "Sound Juicer extracts audio from compact discs and convert it
10330 into audio files that a personal computer or digital audio player can play.
10331 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10332 mp3, Ogg Vorbis and FLAC")
10333 (license license:gpl2+)))
10334
10335 (define-public soundconverter
10336 (package
10337 (name "soundconverter")
10338 (version "3.0.2")
10339 (source
10340 (origin
10341 (method url-fetch)
10342 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10343 version "/+download/"
10344 "soundconverter-" version ".tar.xz"))
10345
10346 (sha256
10347 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10348 (build-system glib-or-gtk-build-system)
10349 (arguments
10350 `(#:imported-modules ((guix build python-build-system)
10351 (guix build glib-or-gtk-build-system)
10352 ,@%gnu-build-system-modules)
10353
10354 #:modules ((guix build glib-or-gtk-build-system)
10355 (guix build utils)
10356 ((guix build gnu-build-system) #:prefix gnu:)
10357 ((guix build python-build-system) #:prefix python:))
10358
10359 #:phases
10360 (modify-phases %standard-phases
10361 (add-after 'install 'wrap-soundconverter-for-python
10362 (assoc-ref python:%standard-phases 'wrap))
10363 (add-after 'install 'wrap-soundconverter
10364 (lambda* (#:key inputs outputs #:allow-other-keys)
10365 (let ((out (assoc-ref outputs "out"))
10366 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10367 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10368 (wrap-program (string-append out "/bin/soundconverter")
10369 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10370 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10371 #t)))))
10372 (native-inputs
10373 `(("intltool" ,intltool)
10374 ("pkg-config" ,pkg-config)
10375 ("glib:bin" ,glib "bin")))
10376 (inputs
10377 `(("gtk+" ,gtk+)
10378 ("python" ,python)
10379 ("python-pygobject" ,python-pygobject)
10380 ("gstreamer" ,gstreamer)
10381 ("gst-plugins-base" ,gst-plugins-base)))
10382 (home-page "https://soundconverter.org/")
10383 (synopsis "Convert between audio formats with a graphical interface")
10384 (description
10385 "SoundConverter supports converting between many audio formats including
10386 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10387 configurable file renaming. ")
10388 (license license:gpl3)))
10389
10390 (define-public workrave
10391 (package
10392 (name "workrave")
10393 (version "1.10.42")
10394 (source
10395 (origin
10396 (method git-fetch)
10397 (uri (git-reference
10398 (url "https://github.com/rcaelers/workrave")
10399 (commit (string-append "v" (string-map
10400 (match-lambda (#\. #\_) (chr chr))
10401 version)))))
10402 (file-name (git-file-name name version))
10403 (sha256
10404 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
10405 (build-system glib-or-gtk-build-system)
10406 (arguments
10407 ;; The only tests are maintainer tests (in po/), which fail.
10408 `(#:tests? #f))
10409 (inputs `(("glib" ,glib)
10410 ("gtk+" ,gtk+)
10411 ("gdk-pixbuf" ,gdk-pixbuf)
10412 ("gtkmm" ,gtkmm)
10413 ("glibmm" ,glibmm)
10414 ("libx11" ,libx11)
10415 ("libxtst" ,libxtst)
10416 ("dconf" ,dconf)
10417 ("libice" ,libice)
10418 ("libsm" ,libsm)
10419 ("libxscrnsaver" ,libxscrnsaver)))
10420 (native-inputs `(("boost" ,boost)
10421 ("pkg-config" ,pkg-config)
10422 ("gettext" ,gettext-minimal)
10423 ("autoconf" ,autoconf)
10424 ("autoconf-archive" , autoconf-archive)
10425 ("automake" ,automake)
10426 ("libtool" ,libtool)
10427 ("intltool" ,intltool)
10428 ("gobject-introspection" ,gobject-introspection)
10429 ("python3" ,python-3)
10430 ("python-jinja2" ,python-jinja2)))
10431 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10432 (description
10433 "Workrave is a program that assists in the recovery and prevention of
10434 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10435 micro-pauses and rest breaks, and restricts you to your daily limit.")
10436 (home-page "http://www.workrave.org")
10437 (license license:gpl3+)))
10438
10439 (define-public ghex
10440 (package
10441 (name "ghex")
10442 (version "3.18.4")
10443 (source (origin
10444 (method url-fetch)
10445 (uri (string-append "mirror://gnome/sources/ghex/"
10446 (version-major+minor version) "/"
10447 "ghex-" version ".tar.xz"))
10448 (sha256
10449 (base32
10450 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10451 (build-system meson-build-system)
10452 (arguments
10453 '(#:glib-or-gtk? #t
10454 #:phases
10455 (modify-phases %standard-phases
10456 (add-after 'unpack 'skip-gtk-update-icon-cache
10457 ;; Don't create 'icon-theme.cache'.
10458 (lambda _
10459 (substitute* "meson_post_install.py"
10460 (("gtk-update-icon-cache") (which "true")))
10461 #t)))))
10462 (native-inputs
10463 `(("pkg-config" ,pkg-config)
10464 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10465 ("gnome-common" ,gnome-common)
10466 ("which" ,which)
10467 ("intltool" ,intltool)
10468 ("yelp-tools" ,yelp-tools)
10469 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10470 (inputs
10471 `(("atk" ,atk)
10472 ("gtk" ,gtk+)))
10473 (synopsis "GNOME hexadecimal editor")
10474 (description "The GHex program can view and edit files in two ways:
10475 hexadecimal or ASCII. It is useful for editing binary files in general.")
10476 (home-page "https://wiki.gnome.org/Apps/Ghex")
10477 (license license:gpl2)))
10478
10479 (define-public libdazzle
10480 (package
10481 (name "libdazzle")
10482 (version "3.37.1")
10483 (source (origin
10484 (method url-fetch)
10485 (uri (string-append "mirror://gnome/sources/libdazzle/"
10486 (version-major+minor version) "/"
10487 "libdazzle-" version ".tar.xz"))
10488 (sha256
10489 (base32
10490 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10491 (build-system meson-build-system)
10492 (arguments
10493 `(#:phases
10494 (modify-phases %standard-phases
10495 (add-before 'check 'pre-check
10496 (lambda _
10497 ;; Tests require a running X server.
10498 (system "Xvfb :1 &")
10499 (setenv "DISPLAY" ":1")
10500 #t)))))
10501 (native-inputs
10502 `(("glib" ,glib "bin") ; glib-compile-resources
10503 ("pkg-config" ,pkg-config)
10504 ;; For tests.
10505 ("xorg-server" ,xorg-server-for-tests)))
10506 (inputs
10507 `(("glib" ,glib)
10508 ("gobject-introspection" ,gobject-introspection)
10509 ("gtk+" ,gtk+)
10510 ("vala" ,vala)))
10511 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10512 (synopsis "Companion library to GObject and Gtk+")
10513 (description "The libdazzle library is a companion library to GObject and
10514 Gtk+. It provides various features that the authors wish were in the
10515 underlying library but cannot for various reasons. In most cases, they are
10516 wildly out of scope for those libraries. In other cases, they are not quite
10517 generic enough to work for everyone.")
10518 (license license:gpl3+)))
10519
10520 (define-public evolution
10521 (package
10522 (name "evolution")
10523 (version "3.34.2")
10524 (source (origin
10525 (method url-fetch)
10526 (uri (string-append "mirror://gnome/sources/evolution/"
10527 (version-major+minor version) "/"
10528 "evolution-" version ".tar.xz"))
10529 (sha256
10530 (base32
10531 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
10532 (build-system cmake-build-system)
10533 (arguments
10534 `(#:imported-modules (,@%cmake-build-system-modules
10535 (guix build glib-or-gtk-build-system))
10536 #:modules ((guix build cmake-build-system)
10537 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10538 (guix build utils))
10539 #:configure-flags
10540 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10541 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10542 ; in four years and cannot be built.
10543 #:phases
10544 (modify-phases %standard-phases
10545 ;; The build system attempts to install user interface modules to the
10546 ;; output directory of the "evolution-data-server" package. This
10547 ;; change redirects that change.
10548 (add-after 'unpack 'patch-ui-module-dir
10549 (lambda* (#:key outputs #:allow-other-keys)
10550 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10551 (("\\$\\{edsuimoduledir\\}")
10552 (string-append (assoc-ref outputs "out")
10553 "/lib/evolution-data-server/ui-modules")))
10554 #t))
10555 (add-after 'install 'glib-or-gtk-compile-schemas
10556 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10557 (add-after 'install 'glib-or-gtk-wrap
10558 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10559 (native-inputs
10560 `(("glib" ,glib "bin") ; glib-mkenums
10561 ("pkg-config" ,pkg-config)
10562 ("intltool" ,intltool)
10563 ("itstool" ,itstool)))
10564 (inputs
10565 `(("enchant" ,enchant)
10566 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10567 ("gcr" ,gcr)
10568 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10569 ("gnome-autoar" ,gnome-autoar)
10570 ("gnome-desktop" ,gnome-desktop)
10571 ("gspell" ,gspell)
10572 ("highlight" ,highlight)
10573 ("libcanberra" ,libcanberra)
10574 ("libgweather" ,libgweather)
10575 ("libnotify" ,libnotify)
10576 ("libsoup" ,libsoup)
10577 ("nss" ,nss)
10578 ("openldap" ,openldap)
10579 ("webkitgtk" ,webkitgtk)
10580 ("ytnef" ,ytnef)))
10581 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10582 (synopsis "Manage your email, contacts and schedule")
10583 (description "Evolution is a personal information management application
10584 that provides integrated mail, calendaring and address book
10585 functionality.")
10586 ;; See COPYING for details.
10587 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10588 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10589 license:lgpl2.1+)))) ; smime/lib/*
10590
10591 (define-public gthumb
10592 (package
10593 (name "gthumb")
10594 (version "3.8.2")
10595 (source (origin
10596 (method url-fetch)
10597 (uri (string-append "mirror://gnome/sources/gthumb/"
10598 (version-major+minor version) "/"
10599 "gthumb-" version ".tar.xz"))
10600 (sha256
10601 (base32
10602 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
10603 (build-system meson-build-system)
10604 (arguments
10605 `(#:glib-or-gtk? #t
10606 #:configure-flags
10607 ;; Ensure the RUNPATH contains all installed library locations.
10608 (list (string-append "-Dc_link_args=-Wl,-rpath="
10609 (assoc-ref %outputs "out")
10610 "/lib/gthumb/extensions")
10611 (string-append "-Dcpp_link_args=-Wl,-rpath="
10612 (assoc-ref %outputs "out")
10613 "/lib/gthumb/extensions"))))
10614 (native-inputs
10615 `(("pkg-config" ,pkg-config)
10616 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10617 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10618 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10619 ("intltool" ,intltool)
10620 ("itstool" ,itstool)))
10621 (inputs
10622 `(("exiv2" ,exiv2)
10623 ("gtk" ,gtk+)
10624 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10625 ("gstreamer" ,gstreamer)
10626 ("clutter" ,clutter)
10627 ("clutter-gst" ,clutter-gst)
10628 ("clutter-gtk" ,clutter-gtk)
10629 ("libjpeg" ,libjpeg-turbo)
10630 ("libtiff" ,libtiff)
10631 ("libraw" ,libraw)))
10632 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10633 (synopsis "GNOME image viewer and browser")
10634 (description "GThumb is an image viewer, browser, organizer, editor and
10635 advanced image management tool")
10636 (license license:gpl2+)))
10637
10638 (define-public terminator
10639 (package
10640 (name "terminator")
10641 (version "1.91")
10642 (source (origin
10643 (method url-fetch)
10644 (uri (string-append "https://launchpad.net/" name "/"
10645 "gtk3/" version "/" "+download/"
10646 name "-" version ".tar.gz"))
10647 (sha256
10648 (base32
10649 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
10650 (build-system python-build-system)
10651 (native-inputs
10652 `(("intltool" ,intltool)
10653 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10654 ("gettext" ,gettext-minimal)
10655 ("pkg-config" ,pkg-config)))
10656 (inputs
10657 `(("cairo" ,cairo)
10658 ("gobject-introspection" ,gobject-introspection)
10659 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10660 ("python2-pycairo" ,python2-pycairo)
10661 ("python2-pygobject" ,python2-pygobject)
10662 ("python2-psutil" ,python2-psutil)
10663 ("vte" ,vte)))
10664 (arguments
10665 `(#:python ,python-2 ; Python 3 isn't supported
10666 #:imported-modules ((guix build glib-or-gtk-build-system)
10667 ,@%python-build-system-modules)
10668 #:modules ((guix build python-build-system)
10669 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10670 (guix build utils))
10671 #:phases
10672 (modify-phases %standard-phases
10673 (add-after
10674 'install 'wrap-program
10675 (lambda* (#:key outputs #:allow-other-keys)
10676 (let ((prog (string-append (assoc-ref outputs "out")
10677 "/bin/terminator")))
10678 (wrap-program prog
10679 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
10680 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10681 #t)))
10682 (add-after 'wrap-program 'glib-or-gtk-wrap
10683 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10684 (home-page "https://gnometerminator.blogspot.com/")
10685 (synopsis "Store and run multiple GNOME terminals in one window")
10686 (description
10687 "Terminator allows you to run multiple GNOME terminals in a grid and
10688 +tabs, and it supports drag and drop re-ordering of terminals.")
10689 (license license:gpl2)))
10690
10691 (define-public libhandy
10692 (package
10693 (name "libhandy")
10694 (version "1.0.0")
10695 (source
10696 (origin
10697 (method git-fetch)
10698 (uri (git-reference
10699 (url "https://gitlab.gnome.org/GNOME/libhandy")
10700 (commit version)))
10701 (file-name (git-file-name name version))
10702 (sha256
10703 (base32 "193y09yy0302x8fkyrnq591m805xp68bkd93fl5qggxi52k8pj0v"))))
10704 (build-system meson-build-system)
10705 (arguments
10706 `(#:configure-flags
10707 '("-Dglade_catalog=enabled"
10708 "-Dgtk_doc=true")
10709 #:phases
10710 (modify-phases %standard-phases
10711 (add-before 'check 'pre-check
10712 (lambda _
10713 ;; Tests require a running X server.
10714 (system "Xvfb :1 &")
10715 (setenv "DISPLAY" ":1")
10716 #t)))))
10717 (inputs
10718 `(("gtk+" ,gtk+)
10719 ("glade" ,glade3)
10720 ("libxml2" ,libxml2)))
10721 (native-inputs
10722 `(("glib:bin" ,glib "bin")
10723 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10724 ("vala" ,vala)
10725 ("gtk-doc" ,gtk-doc)
10726 ("pkg-config" ,pkg-config)
10727 ("gettext" ,gettext-minimal)
10728
10729 ;; Test suite dependencies.
10730 ("xorg-server" ,xorg-server-for-tests)
10731 ("hicolor-icon-theme" ,hicolor-icon-theme)))
10732 (home-page "https://source.puri.sm/Librem5/libhandy")
10733 (synopsis "Library full of GTK+ widgets for mobile phones")
10734 (description "The aim of the handy library is to help with developing user
10735 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10736 for usage on small and big screens.")
10737 (license license:lgpl2.1+)))
10738
10739 (define-public libhandy-0.0
10740 (package
10741 (inherit libhandy)
10742 (version "0.0.13")
10743 (source
10744 (origin
10745 (method git-fetch)
10746 (uri (git-reference
10747 (url "https://gitlab.gnome.org/GNOME/libhandy")
10748 (commit (string-append "v" version))))
10749 (file-name (git-file-name "libhandy" version))
10750 (sha256
10751 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
10752 (arguments
10753 (substitute-keyword-arguments (package-arguments libhandy)
10754 ((#:configure-flags flags)
10755 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
10756
10757 (define-public libgit2-glib
10758 (package
10759 (name "libgit2-glib")
10760 (version "0.99.0.1")
10761 (source (origin
10762 (method url-fetch)
10763 (uri (string-append "mirror://gnome/sources/" name "/"
10764 (version-major+minor version) "/"
10765 name "-" version ".tar.xz"))
10766 (sha256
10767 (base32
10768 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10769 (build-system meson-build-system)
10770 (native-inputs
10771 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
10772 ("gobject-introspection" ,gobject-introspection)
10773 ("pkg-config" ,pkg-config)
10774 ("python-pygobject" ,python-pygobject)
10775 ("python-wrapper" ,python-wrapper)
10776 ("vala" ,vala)))
10777 (inputs
10778 `(("glib" ,glib)
10779 ("libssh2" ,libssh2)))
10780 (propagated-inputs
10781 `(;; In Requires of libgit2-glib.pc.
10782 ("libgit2" ,libgit2)))
10783 (synopsis "GLib wrapper around the libgit2 Git access library")
10784 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
10785 access library. It only implements the core plumbing functions, not really the
10786 higher level porcelain stuff.")
10787 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
10788 (license license:gpl2+)))
10789
10790 (define-public gitg
10791 (package
10792 (name "gitg")
10793 (version "3.32.1")
10794 (source (origin
10795 (method url-fetch)
10796 (uri (string-append "mirror://gnome/sources/" name "/"
10797 (version-major+minor version) "/"
10798 name "-" version ".tar.xz"))
10799 (sha256
10800 (base32
10801 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
10802 (build-system meson-build-system)
10803 (arguments
10804 `(#:glib-or-gtk? #t
10805 #:phases
10806 (modify-phases %standard-phases
10807 (add-after 'unpack 'disable-post-install-partially
10808 (lambda _
10809 (substitute* "meson_post_install.py"
10810 (("'python'") ; there are no python sources to compile
10811 (string-append "'" (which "true") "'"))
10812 (("gtk-update-icon-cache") (which "true")))
10813 #t))
10814 (add-after 'unpack 'fix-test-sources
10815 (lambda _
10816 (substitute* "tests/libgitg/test-commit.vala"
10817 (("/bin/bash") (which "bash")))
10818 #t))
10819 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10820 (lambda* (#:key outputs #:allow-other-keys)
10821 (let ((prog (string-append (assoc-ref outputs "out")
10822 "/bin/gitg")))
10823 (wrap-program prog
10824 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10825 #t))))))
10826 (inputs
10827 `(("glib" ,glib)
10828 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10829 ("gtk+" ,gtk+)
10830 ("gtkspell3" ,gtkspell3)
10831 ("gtksourceview" ,gtksourceview-3)
10832 ("json-glib" ,json-glib)
10833 ("libdazzle" ,libdazzle)
10834 ("libgee" ,libgee)
10835 ("libgit2-glib" ,libgit2-glib)
10836 ("libpeas" ,libpeas)
10837 ("libsecret" ,libsecret)
10838 ("libsoup" ,libsoup)
10839 ("libxml2" ,libxml2)))
10840 (native-inputs
10841 `(("glib:bin" ,glib "bin")
10842 ("gtk+:bin" ,gtk+ "bin")
10843 ("gobject-introspection" ,gobject-introspection)
10844 ("intltool" ,intltool)
10845 ("pkg-config" ,pkg-config)
10846 ("vala" ,vala)))
10847 (synopsis "Graphical user interface for git")
10848 (description
10849 "gitg is a graphical user interface for git. It aims at being a small,
10850 fast and convenient tool to visualize the history of git repositories.
10851 Besides visualization, gitg also provides several utilities to manage your
10852 repository and commit your work.")
10853 (home-page "https://wiki.gnome.org/Apps/Gitg")
10854 (license license:gpl2+)))
10855
10856 (define-public gamin
10857 (package
10858 (name "gamin")
10859 (version "0.1.10")
10860 (source (origin
10861 (method url-fetch)
10862 (uri (string-append "mirror://gnome/sources/" name "/"
10863 (version-major+minor version) "/"
10864 name "-" version ".tar.bz2"))
10865 (sha256
10866 (base32
10867 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
10868 (build-system gnu-build-system)
10869 (arguments
10870 `(#:phases
10871 (modify-phases %standard-phases
10872 (add-after 'unpack 'remove-deprecated-macro
10873 (lambda _
10874 (substitute* '("server/gam_node.c"
10875 "server/gam_subscription.h"
10876 "server/gam_node.h"
10877 "server/gam_subscription.c")
10878 (("G_CONST_RETURN") "const"))
10879 #t)))))
10880 (inputs
10881 `(("glib" ,glib)))
10882 (native-inputs
10883 `(("intltool" ,intltool)
10884 ("pkg-config" ,pkg-config)))
10885 (home-page "https://people.gnome.org/~veillard/gamin/")
10886 (synopsis "File alteration monitor")
10887 (description
10888 "Gamin is a file and directory monitoring system defined to be a subset
10889 of the FAM (File Alteration Monitor) system. This is a service provided by a
10890 library which detects when a file or a directory has been modified.")
10891 (license license:gpl2+)))
10892
10893 (define-public gnome-mahjongg
10894 (package
10895 (name "gnome-mahjongg")
10896 (version "3.35.1")
10897 (source (origin
10898 (method git-fetch)
10899 (uri (git-reference
10900 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
10901 (commit version)))
10902 (file-name (git-file-name name version))
10903 (sha256
10904 (base32
10905 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
10906 (build-system meson-build-system)
10907 (arguments
10908 `(#:glib-or-gtk? #t))
10909 (native-inputs
10910 `(("appstream-glib" ,appstream-glib)
10911 ("gettext" ,gettext-minimal)
10912 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
10913 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
10914 ("itstool" ,itstool)
10915 ("pkg-config" ,pkg-config)
10916 ("vala" ,vala)))
10917 (propagated-inputs
10918 `(("dconf" ,dconf)))
10919 (inputs
10920 `(("glib" ,glib)
10921 ("gtk+" ,gtk+)
10922 ("librsvg" ,librsvg)))
10923 (synopsis "Mahjongg tile-matching game")
10924 (description "GNOME Mahjongg is a game based on the classic Chinese
10925 tile-matching game Mahjong. It features multiple board layouts, tile themes,
10926 and a high score table.")
10927 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
10928 (license license:gpl2+)))
10929
10930 (define-public gnome-themes-extra
10931 (package
10932 (name "gnome-themes-extra")
10933 (version "3.28")
10934 (source
10935 (origin
10936 (method url-fetch)
10937 (uri (string-append "mirror://gnome/sources/" name "/"
10938 (version-major+minor version) "/" name "-"
10939 version ".tar.xz"))
10940 (sha256
10941 (base32
10942 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
10943 (build-system gnu-build-system)
10944 (arguments
10945 '(#:configure-flags
10946 ;; Don't create 'icon-theme.cache'.
10947 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
10948 (true (string-append coreutils "/bin/true")))
10949 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
10950 (native-inputs
10951 `(("glib:bin" ,glib "bin")
10952 ("intltool" ,intltool)
10953 ("pkg-config" ,pkg-config)))
10954 (inputs
10955 `(("glib" ,glib)
10956 ("gtk+" ,gtk+)
10957 ("gtk+-2" ,gtk+-2)
10958 ("librsvg" ,librsvg)
10959 ("libxml2" ,libxml2)))
10960 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
10961 (synopsis "GNOME Extra Themes")
10962 (description "This package provides themes and related elements that don't
10963 really fit in other upstream packages. It offers legacy support for GTK+ 2
10964 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
10965 index files needed for Adwaita to be used outside of GNOME.")
10966 (license license:lgpl2.1+)))
10967
10968 (define-public gnote
10969 (package
10970 (name "gnote")
10971 (version "3.38.0")
10972 (source
10973 (origin
10974 (method url-fetch)
10975 (uri (string-append "mirror://gnome/sources/" name "/"
10976 (version-major+minor version) "/"
10977 "gnote-" version ".tar.xz"))
10978 (sha256
10979 (base32 "1ingbaw4d8vpjn083xvzqw7kz8z0k2bx7msk78pbzd68bwgkadpx"))))
10980 (build-system glib-or-gtk-build-system)
10981 (native-inputs
10982 `(("desktop-file-utils" ,desktop-file-utils)
10983 ("glib:bin" ,glib "bin")
10984 ("gobject-introspection" ,gobject-introspection)
10985 ("intltool" ,intltool)
10986 ("itstool" ,itstool)
10987 ("pkg-config" ,pkg-config)
10988 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
10989 (inputs
10990 `(("glibmm" ,glibmm)
10991 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10992 ("gspell" ,gspell)
10993 ("gtk+" ,gtk+)
10994 ("gtkmm" ,gtkmm)
10995 ("libsecret" ,libsecret)
10996 ("libuuid" ,util-linux "lib")
10997 ("libxml2" ,libxml2)
10998 ("libxslt" ,libxslt)))
10999 (synopsis "Note-taking application for the GNOME desktop")
11000 (description
11001 "Gnote is a note-taking application written for the GNOME desktop
11002 environment.")
11003 (home-page "https://wiki.gnome.org/Apps/Gnote")
11004 (license license:gpl3+)))
11005
11006 (define-public polari
11007 (package
11008 (name "polari")
11009 (version "3.36.3")
11010 (source (origin
11011 (method url-fetch)
11012 (uri (string-append "mirror://gnome/sources/polari/"
11013 (version-major+minor version)
11014 "/polari-" version ".tar.xz"))
11015 (sha256
11016 (base32
11017 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11018 (build-system meson-build-system)
11019 (arguments
11020 `(#:glib-or-gtk? #t
11021 #:phases
11022 (modify-phases %standard-phases
11023 (add-after 'unpack 'skip-gtk-update-icon-cache
11024 (lambda _
11025 (substitute* "meson/meson-postinstall.sh"
11026 (("gtk-update-icon-cache") (which "true")))
11027 #t))
11028 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11029 (lambda* (#:key outputs #:allow-other-keys)
11030 (let ((prog (string-append (assoc-ref outputs "out")
11031 "/bin/polari")))
11032 (wrap-program prog
11033 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11034 #t))))))
11035 (inputs
11036 `(("glib" ,glib)
11037 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11038 ("gspell" ,gspell)
11039 ("gtk+" ,gtk+)
11040 ("gjs" ,gjs)
11041 ("libsecret" ,libsecret)
11042 ("libsoup" ,libsoup)
11043 ("telepathy-glib" ,telepathy-glib)
11044 ("telepathy-logger" ,telepathy-logger)))
11045 (native-inputs
11046 `(("glib:bin" ,glib "bin")
11047 ("gobject-introspection" ,gobject-introspection)
11048 ("intltool" ,intltool)
11049 ("pkg-config" ,pkg-config)
11050 ("yelp-tools" ,yelp-tools)))
11051 (propagated-inputs
11052 `(("telepathy-idle" ,telepathy-idle)
11053 ("telepathy-mission-control" ,telepathy-mission-control)))
11054 (synopsis "Simple IRC Client")
11055 (description
11056 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11057 integrate seamlessly with the GNOME desktop.")
11058 (home-page "https://wiki.gnome.org/Apps/Polari")
11059 (license license:gpl2+)))
11060
11061 (define-public gnome-boxes
11062 (package
11063 (name "gnome-boxes")
11064 (version "3.36.6")
11065 (source
11066 (origin
11067 (method url-fetch)
11068 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11069 (version-major+minor version) "/"
11070 "gnome-boxes-" version ".tar.xz"))
11071 (sha256
11072 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11073 (build-system meson-build-system)
11074 (arguments
11075 '(#:glib-or-gtk? #t
11076 #:configure-flags (list "-Drdp=false"
11077 (string-append "-Dc_link_args=-Wl,-rpath="
11078 (assoc-ref %outputs "out")
11079 "/lib/gnome-boxes"))))
11080 (native-inputs
11081 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11082 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11083 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11084 ("itstool" ,itstool)
11085 ("intltool" ,intltool)
11086 ("vala" ,vala)
11087 ("pkg-config" ,pkg-config)))
11088 (inputs
11089 `(("libarchive" ,libarchive)
11090 ("glib-networking" ,glib-networking) ;for TLS support
11091 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11092 ("gtk" ,gtk+)
11093 ("gtk-vnc" ,gtk-vnc)
11094 ("libosinfo" ,libosinfo)
11095 ("libsecret" ,libsecret)
11096 ("libsoup" ,libsoup)
11097 ("libusb" ,libusb)
11098 ("libvirt" ,libvirt)
11099 ("libvirt-glib" ,libvirt-glib)
11100 ("libxml" ,libxml2)
11101 ("spice-gtk" ,spice-gtk)
11102 ("sparql-query" ,sparql-query)
11103 ("vte" ,vte)
11104 ("webkitgtk" ,webkitgtk)
11105 ("tracker" ,tracker)
11106 ("libgudev" ,libgudev)))
11107 (home-page "https://wiki.gnome.org/Apps/Boxes")
11108 (synopsis "View, access, and manage remote and virtual systems")
11109 (description "GNOME Boxes is a simple application to view, access, and
11110 manage remote and virtual systems. Note that this application requires the
11111 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11112 @command{info '(guix) Virtualization Services'} to learn how to configure
11113 these services on the Guix System.")
11114 (license (list
11115 ;; For data/icons/empty-boxes.png.
11116 license:cc-by2.0
11117 ;; For all others.
11118 license:lgpl2.0+))))
11119
11120 (define-public geary
11121 (package
11122 (name "geary")
11123 (version "3.34.1")
11124 (source (origin
11125 (method git-fetch)
11126 (uri (git-reference
11127 (url "https://gitlab.gnome.org/GNOME/geary")
11128 (commit version)))
11129 (file-name (git-file-name name version))
11130 (sha256
11131 (base32
11132 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
11133 (build-system meson-build-system)
11134 (arguments
11135 `(#:glib-or-gtk? #t
11136 #:phases (modify-phases %standard-phases
11137 (add-after 'unpack 'disable-failing-tests
11138 (lambda _
11139 (substitute* "test/meson.build"
11140 (("test\\('client-tests', geary_test_client_bin\\)")
11141 ""))
11142 #t))
11143 (add-after 'unpack 'disable-postinstall-script
11144 (lambda _
11145 (substitute* "meson.build"
11146 (("meson.add_install_script\\(\
11147 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11148 ""))
11149 #t))
11150 (add-before 'check 'setup-xvfb
11151 (lambda _
11152 (system "Xvfb :1 &")
11153 (setenv "DISPLAY" ":1")
11154 #t)))))
11155 (inputs
11156 `(("enchant" ,enchant)
11157 ("folks" ,folks)
11158 ("gcr" ,gcr)
11159 ("glib" ,glib)
11160 ("gmime" ,gmime-2.6)
11161 ("gnome-online-accounts:lib"
11162 ,gnome-online-accounts "lib")
11163 ("gspell" ,gspell)
11164 ("gtk+" ,gtk+)
11165 ("iso-codes" ,iso-codes)
11166 ("json-glib" ,json-glib)
11167 ("libcanberra" ,libcanberra)
11168 ("libgee" ,libgee)
11169 ("libhandy" ,libhandy-0.0)
11170 ("libpeas" ,libpeas)
11171 ("libsecret" ,libsecret)
11172 ("libunwind" ,libunwind)
11173 ("sqlite" ,sqlite)
11174 ("webkitgtk" ,webkitgtk)
11175 ("ytnef" ,ytnef)))
11176 (native-inputs
11177 `(("appstream-glib" ,appstream-glib)
11178 ("cmake-minimal" ,cmake-minimal)
11179 ("desktop-file-utils" ,desktop-file-utils)
11180 ("gettext" ,gettext-minimal)
11181 ("glib:bin" ,glib "bin")
11182 ("gobject-introspection" ,gobject-introspection)
11183 ("itstool" ,itstool)
11184 ("libarchive" ,libarchive)
11185 ("libxml2" ,libxml2)
11186 ("pkg-config" ,pkg-config)
11187 ("vala" ,vala)
11188 ("xvfb" ,xorg-server-for-tests)))
11189 (synopsis "GNOME email application built around conversations")
11190 (description
11191 "Geary collects related messages together into conversations,
11192 making it easy to find and follow your discussions. Full-text and keyword
11193 search makes it easy to find the email you are looking for. Geary's
11194 full-featured composer lets you send rich, styled text with images, links, and
11195 lists, but also send lightweight, easy to read text messages. Geary
11196 automatically picks up your existing GNOME Online Accounts, and adding more is
11197 easy. Geary has a clean, fast, modern interface that works like you want it
11198 to.")
11199 (home-page "https://wiki.gnome.org/Apps/Geary")
11200 (license (list
11201 ;; geary
11202 license:lgpl2.1+
11203 ;; icons
11204 license:cc-by3.0
11205 license:cc-by-sa3.0
11206 license:public-domain
11207 ;; snowball
11208 license:bsd-2))))
11209
11210 (define-public glabels
11211 (package
11212 (name "glabels")
11213 (version "3.4.1")
11214 (source
11215 (origin
11216 (method url-fetch)
11217 (uri (string-append "mirror://gnome/sources/" name "/"
11218 (version-major+minor version) "/"
11219 "glabels-" version ".tar.xz"))
11220 (sha256
11221 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11222 (build-system glib-or-gtk-build-system)
11223 (native-inputs
11224 `(("gettext" ,gettext-minimal)
11225 ("glib:bin" ,glib "bin")
11226 ("intltool" ,intltool)
11227 ("itstool" ,itstool)
11228 ("pkg-config" ,pkg-config)))
11229 (inputs
11230 `(("gtk+" ,gtk+)
11231 ("librsvg" ,librsvg)
11232 ("libxml2" ,libxml2)))
11233 (home-page "https://glabels.org/")
11234 (synopsis "Program for creating labels and business cards")
11235 (description
11236 "gLabels is a program for creating labels and business cards. It is
11237 designed to work with various laser/ink-jet peel-off label and business
11238 card sheets that you’ll find at most office supply stores.")
11239 (license license:gpl3+)))
11240
11241 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11242 (define-public gnome-latex
11243 (package
11244 (name "gnome-latex")
11245 (version "3.36.0")
11246 (source
11247 (origin
11248 (method url-fetch)
11249 (uri (string-append "mirror://gnome/sources/" name "/"
11250 (version-major+minor version) "/"
11251 "gnome-latex-" version ".tar.xz"))
11252 (sha256
11253 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11254 (build-system glib-or-gtk-build-system)
11255 (native-inputs
11256 `(("gettext" ,gettext-minimal)
11257 ("glib:bin" ,glib "bin")
11258 ("gobject-introspection" ,gobject-introspection)
11259 ("gtk-doc" ,gtk-doc)
11260 ("intltool" ,intltool)
11261 ("itstool" ,itstool)
11262 ("pkg-config" ,pkg-config)
11263 ("vala" ,vala)))
11264 (inputs
11265 `(("amtk" ,amtk)
11266 ("dconf" ,dconf)
11267 ("glib" ,glib)
11268 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11269 ("gspell" ,gspell)
11270 ("gtk+" ,gtk+)
11271 ("gtksourceview" ,gtksourceview)
11272 ("libgee" ,libgee)
11273 ("tepl" ,tepl)
11274 ("uchardet" ,uchardet)))
11275 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11276 (synopsis "LaTeX editor for the GNOME desktop")
11277 (description
11278 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11279 such as build tools, completion of LaTeX commands, structure navigation,
11280 symbol tables, document templates, project management, spell-checking, menus
11281 and toolbars.")
11282 (license license:gpl3+)))
11283
11284 (define-public libratbag
11285 (package
11286 (name "libratbag")
11287 (version "0.14")
11288 (source
11289 (origin
11290 (method git-fetch)
11291 (uri (git-reference
11292 (url "https://github.com/libratbag/libratbag")
11293 (commit (string-append "v" version))))
11294 (file-name (git-file-name name version))
11295 (sha256
11296 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11297 (build-system meson-build-system)
11298 (arguments
11299 `(#:configure-flags
11300 (list "-Dsystemd=false"
11301 "-Dlogind-provider=elogind")
11302 #:phases
11303 (modify-phases %standard-phases
11304 (add-after 'install 'wrap
11305 (lambda* (#:key inputs outputs #:allow-other-keys)
11306 (let* ((out (assoc-ref outputs "out"))
11307 (site (string-append
11308 "/lib/python"
11309 ,(version-major+minor (package-version python))
11310 "/site-packages"))
11311 (evdev (string-append
11312 (assoc-ref inputs "python-evdev") site))
11313 (pygo (string-append
11314 (assoc-ref inputs "python-pygobject") site))
11315 (python-wrap
11316 `("PYTHONPATH" = (,evdev ,pygo))))
11317 (wrap-program (string-append out "/bin/" "ratbagctl")
11318 python-wrap)
11319 #t))))))
11320 (native-inputs
11321 `(("check" ,check)
11322 ("pkg-config" ,pkg-config)
11323 ("swig" ,swig)
11324 ("valgrind" ,valgrind)))
11325 (inputs
11326 `(("glib" ,glib)
11327 ("json-glib" ,json-glib)
11328 ("libevdev" ,libevdev)
11329 ("libsystemd" ,elogind)
11330 ("libunistring" ,libunistring)
11331 ("python-evdev" ,python-evdev)
11332 ("python-pygobject" ,python-pygobject)
11333 ("udev" ,eudev)))
11334 (home-page "https://github.com/libratbag/libratbag")
11335 (synopsis "DBus daemon and utility for configuring gaming mice")
11336 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11337 configure input devices, mainly gaming mice. The daemon provides a generic
11338 way to access the various features exposed by these mice and abstracts away
11339 hardware-specific and kernel-specific quirks. There is also the
11340 @command{ratbagctl} command line interface for configuring devices.
11341
11342 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11343 Steelseries.
11344
11345 The ratbagd DBus service can be enabled by adding the following service to
11346 your operating-system definition:
11347
11348 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11349 (license license:expat)))
11350
11351 (define-public piper
11352 (package
11353 (name "piper")
11354 (version "0.5.1")
11355 (source
11356 (origin
11357 (method git-fetch)
11358 (uri (git-reference
11359 (url "https://github.com/libratbag/piper")
11360 (commit version)))
11361 (sha256
11362 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11363 (file-name (git-file-name name version))))
11364 (build-system meson-build-system)
11365 (native-inputs
11366 `(("gettext" ,gettext-minimal)
11367 ("glib:bin" ,glib "bin")
11368 ("gobject-introspection" ,gobject-introspection)
11369 ("pkg-config" ,pkg-config)
11370 ("python-flake8" ,python-flake8)))
11371 (inputs
11372 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11373 ("gtk" ,gtk+)
11374 ("gtk:bin" ,gtk+ "bin")
11375 ("librsvg" ,librsvg)
11376 ("python-evdev" ,python-evdev)
11377 ("python-lxml" ,python-lxml)
11378 ("python-pycairo" ,python-pycairo)
11379 ("python-pygobject" ,python-pygobject)))
11380 (arguments
11381 `(#:imported-modules ((guix build python-build-system)
11382 ,@%meson-build-system-modules)
11383 #:modules (((guix build python-build-system) #:prefix python:)
11384 (guix build meson-build-system)
11385 (guix build utils))
11386 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11387 #:phases
11388 (modify-phases %standard-phases
11389 (add-after 'unpack 'dont-update-gtk-icon-cache
11390 (lambda _
11391 (substitute* "meson.build"
11392 (("meson.add_install_script('meson_install.sh')") ""))
11393 #t))
11394 ;; TODO: Switch to wrap-script when it is fixed.
11395 (add-after 'install 'wrap-python
11396 (assoc-ref python:%standard-phases 'wrap))
11397 (add-after 'wrap-python 'wrap
11398 (lambda* (#:key outputs #:allow-other-keys)
11399 (wrap-program
11400 (string-append (assoc-ref outputs "out" )"/bin/piper")
11401 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11402 #t)))))
11403 (home-page "https://github.com/libratbag/piper/")
11404 (synopsis "Configure bindings and LEDs on gaming mice")
11405 (description "Piper is a GTK+ application for configuring gaming mice with
11406 onboard configuration for key bindings via libratbag. Piper requires
11407 a @command{ratbagd} daemon running with root privileges. It can be run
11408 manually as root, but is preferably configured as a DBus service that can
11409 launch on demand. This can be configured by enabling the following service,
11410 provided there is a DBus service present:
11411
11412 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11413 (license license:gpl2)))
11414
11415 (define-public parlatype
11416 (package
11417 (name "parlatype")
11418 (version "2.1")
11419 (source
11420 (origin
11421 (method git-fetch)
11422 (uri (git-reference
11423 (url "https://github.com/gkarsay/parlatype.git")
11424 (commit (string-append "v" version))))
11425 (file-name (git-file-name name version))
11426 (sha256
11427 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11428 (build-system meson-build-system)
11429 (arguments
11430 `(#:glib-or-gtk? #t
11431 #:tests? #f ;require internet access
11432 #:phases
11433 (modify-phases %standard-phases
11434 (add-after 'install 'wrap-parlatype
11435 ;; Add gstreamer plugin provided in this package to system's
11436 ;; plugins.
11437 (lambda* (#:key outputs #:allow-other-keys)
11438 (let* ((out (assoc-ref outputs "out"))
11439 (gst-plugin-path (string-append
11440 out "/lib/gstreamer-1.0/"
11441 ":"
11442 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11443 (wrap-program (string-append out "/bin/parlatype")
11444 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11445 #t)))))
11446 (native-inputs
11447 `(("appstream-glib" ,appstream-glib)
11448 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11449 ("gettext" ,gettext-minimal)
11450 ("glib" ,glib "bin") ;for glib-compile-resources
11451 ("pkg-config" ,pkg-config)
11452 ("yelp-tools" ,yelp-tools)))
11453 (inputs
11454 `(("gst-plugins-base" ,gst-plugins-base)
11455 ("gst-plugins-good" ,gst-plugins-good)
11456 ("gstreamer" ,gstreamer)
11457 ("gtk+" ,gtk+)
11458 ("pocketsphinx" ,pocketsphinx)
11459 ("pulseaudio" ,pulseaudio)
11460 ("sphinxbase" ,sphinxbase)))
11461 (home-page "http://gkarsay.github.io/parlatype/")
11462 (synopsis "GNOME audio player for transcription")
11463 (description "Parlatype is an audio player for the GNOME desktop
11464 environment. Its main purpose is the manual transcription of spoken
11465 audio files.")
11466 (license license:gpl3+)))
11467
11468 (define-public jsonrpc-glib
11469 (package
11470 (name "jsonrpc-glib")
11471 (version "3.34.0")
11472 (source (origin
11473 (method url-fetch)
11474 (uri (string-append "mirror://gnome/sources/" name "/"
11475 (version-major+minor version) "/"
11476 name "-" version ".tar.xz"))
11477 (sha256
11478 (base32
11479 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11480 (build-system meson-build-system)
11481 (inputs
11482 `(("json-glib" ,json-glib)
11483 ("glib" ,glib)))
11484 (native-inputs
11485 `(("pkg-config" ,pkg-config)
11486 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11487 ("gobject-introspection" ,gobject-introspection)
11488 ("vala" ,vala)))
11489 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11490 (synopsis "JSON-RPC library for GLib")
11491 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11492 peers in either a synchronous or asynchronous fashion. It also allows
11493 communicating using the GVariant serialization format instead of JSON when
11494 both peers support it. You might want that when communicating on a single
11495 host to avoid parser overhead and memory-allocator fragmentation.")
11496 (license license:lgpl2.1+)))
11497
11498 (define-public feedbackd
11499 (package
11500 (name "feedbackd")
11501 (version "0.0.0+git20200527")
11502 (source (origin
11503 (method git-fetch)
11504 (uri (git-reference
11505 (url "https://source.puri.sm/Librem5/feedbackd.git")
11506 (commit (string-append "v" version))))
11507 (file-name (git-file-name name version))
11508 (sha256
11509 (base32
11510 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11511 (build-system meson-build-system)
11512 (native-inputs
11513 `(("glib:bin" ,glib "bin")
11514 ("gobject-introspection" ,gobject-introspection)
11515 ("pkg-config" ,pkg-config)
11516 ("vala" ,vala)))
11517 (inputs
11518 `(("dbus" ,dbus)
11519 ("gsound" ,gsound)
11520 ("json-glib" ,json-glib)
11521 ("libgudev" ,libgudev)))
11522 (propagated-inputs
11523 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11524 (synopsis "Haptic/visual/audio feedback via DBus")
11525 (description "Feedbackd provides a DBus daemon to act on events to provide
11526 haptic, visual and audio feedback. It offers the libfeedbackd library and
11527 GObject introspection bindings.")
11528 (home-page "https://source.puri.sm/Librem5/feedbackd")
11529 (license (list license:lgpl2.1+ ; libfeedbackd
11530 license:lgpl3+)))) ; the rest
11531
11532 (define-public sysprof
11533 (package
11534 (name "sysprof")
11535 (version "3.36.0")
11536 (source
11537 (origin
11538 (method url-fetch)
11539 (uri (string-append "mirror://gnome/sources/sysprof/"
11540 (version-major+minor version) "/"
11541 "sysprof-" version ".tar.xz"))
11542 (sha256
11543 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11544 (build-system meson-build-system)
11545 (arguments
11546 `(#:configure-flags
11547 (list (string-append "-Dsystemdunitdir="
11548 %output
11549 "/share/systemd"))
11550 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11551 #:phases
11552 (modify-phases %standard-phases
11553 (add-after 'unpack 'patch-install-script
11554 (lambda _
11555 (substitute* "build-aux/meson/post_install.sh"
11556 (("gtk-update-icon-cache") "true")
11557 (("update-desktop-database") "true"))
11558 #t)))))
11559 (inputs
11560 `(("glib" ,glib)
11561 ("gtk+" ,gtk+)
11562 ("libdazzle" ,libdazzle)
11563 ("polkit" ,polkit)))
11564 (native-inputs
11565 `(("gettext" ,gettext-minimal)
11566 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11567 ("itstool" ,itstool)
11568 ("pkg-config" ,pkg-config)
11569 ("xmllint" ,libxml2)))
11570 ;; This home page is so woefully out of date as to be essentially useless.
11571 ;; (home-page "http://www.sysprof.com")
11572 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11573 (synopsis "System-wide performance profiler for GNU/Linux")
11574 (description
11575 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11576 GNU/Linux system including the kernel and all user-space applications. This
11577 helps find the function(s) in which a program spends most of its time.
11578
11579 It uses the kernel's built-in @code{ptrace} feature and handles shared
11580 libraries. Applications do not need to be recompiled--or even restarted.")
11581 (license license:gpl3+)))
11582
11583 (define-public gnome-builder
11584 (package
11585 (name "gnome-builder")
11586 (version "3.36.1")
11587 (source (origin
11588 (method url-fetch)
11589 (uri (string-append "mirror://gnome/sources/" name "/"
11590 (version-major+minor version) "/"
11591 name "-" version ".tar.xz"))
11592 (sha256
11593 (base32
11594 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11595 (build-system meson-build-system)
11596 (arguments
11597 `(#:configure-flags (list "-Dnetwork_tests=false"
11598 ;; TODO: Enable all plugins...
11599 "-Dplugin_clang=false"
11600 "-Dplugin_flatpak=false"
11601 "-Dplugin_glade=false"
11602 ;; ... except this one.
11603 "-Dplugin_update_manager=false")
11604 #:phases
11605 (modify-phases %standard-phases
11606 (add-after 'unpack 'patch-meson
11607 (lambda* (#:key inputs #:allow-other-keys)
11608 (substitute* "build-aux/meson/post_install.py"
11609 (("gtk-update-icon-cache") "true")
11610 (("update-desktop-database") "true"))
11611 (substitute* "src/libide/meson.build"
11612 (("/usr/lib")
11613 (string-append (assoc-ref inputs "python-pygobject")
11614 "/lib")))
11615 #t))
11616 (add-before 'check 'pre-check
11617 (lambda _
11618 (system "Xvfb :1 &")
11619 (setenv "DISPLAY" ":1")
11620 #t)))))
11621 (inputs
11622 `(("devhelp" ,devhelp)
11623 ("gspell" ,gspell)
11624 ("gtk+" ,gtk+)
11625 ("json-glib" ,json-glib)
11626 ("jsonrpc-glib" ,jsonrpc-glib)
11627 ("libdazzle" ,libdazzle)
11628 ("libgit2-glib" ,libgit2-glib)
11629 ("libpeas" ,libpeas)
11630 ("python-pygobject" ,python-pygobject)
11631 ("sysprof" ,sysprof)
11632 ("template-glib" ,template-glib)
11633 ("vte" ,vte)
11634 ("webkitgtk" ,webkitgtk)))
11635 (propagated-inputs
11636 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11637 (native-inputs
11638 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11639 ("glib:bin" ,glib "bin")
11640 ("gettext" ,gettext-minimal)
11641 ("pkg-config" ,pkg-config)
11642 ("vala" ,vala)
11643 ("xorg-server" ,xorg-server-for-tests)))
11644 (home-page "https://wiki.gnome.org/Apps/Builder")
11645 (synopsis "Toolsmith for GNOME-based applications")
11646 (description "Builder aims to be an integrated development
11647 environment (IDE) for writing GNOME-based software. It features fuzzy search,
11648 auto-completion, a mini code map, documentation browsing, Git integration, an
11649 integrated profiler via Sysprof, debugging support, and more.")
11650 (license license:gpl3+)))
11651
11652 (define-public komikku
11653 (package
11654 (name "komikku")
11655 (version "0.21.1")
11656 (source
11657 (origin
11658 (method git-fetch)
11659 (uri (git-reference
11660 (url "https://gitlab.com/valos/Komikku/")
11661 (commit (string-append "v" version))))
11662 (file-name (git-file-name name version))
11663 (sha256
11664 (base32
11665 "17ss5k2hnymk6xyx1dy3q0y2pwcld78cw7d0cs9c0hnhskh5dirh"))))
11666 (build-system meson-build-system)
11667 (arguments
11668 `(#:glib-or-gtk? #t
11669 #:phases
11670 (modify-phases %standard-phases
11671 (add-after 'unpack 'patch-sources
11672 (lambda _
11673 (substitute* "komikku/utils.py"
11674 (("from komikku\\.servers import get_servers_list")
11675 ;; code following that line should migrate old databases
11676 ;; but the line itself results in an import error
11677 "return data_dir_path"))))
11678 (add-after 'unpack 'skip-gtk-update-icon-cache
11679 (lambda _
11680 (substitute* "meson_post_install.py"
11681 (("gtk-update-icon-cache") (which "true")))
11682 #t))
11683 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11684 (lambda* (#:key outputs #:allow-other-keys)
11685 (let ((prog (string-append (assoc-ref outputs "out")
11686 "/bin/komikku")))
11687 (wrap-program prog
11688 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
11689 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11690 #t))))))
11691 (inputs
11692 `(("gtk+" ,gtk+)
11693 ("libhandy" ,libhandy)
11694 ("libnotify" ,libnotify)
11695 ("libsecret" ,libsecret)
11696 ("python-beautifulsoup4" ,python-beautifulsoup4)
11697 ("python-cloudscraper" ,python-cloudscraper)
11698 ("python-dateparser" ,python-dateparser)
11699 ("python-keyring" ,python-keyring)
11700 ("python-lxml" ,python-lxml)
11701 ("python-magic" ,python-magic)
11702 ("python-pillow" ,python-pillow)
11703 ("python-pure-protobuf" ,python-pure-protobuf)
11704 ("python-pycairo" ,python-pycairo)
11705 ("python-pygobject" ,python-pygobject)
11706 ("python-unidecode" ,python-unidecode)))
11707 (native-inputs
11708 `(("desktop-file-utils" ,desktop-file-utils)
11709 ("gettext" ,gettext-minimal)
11710 ("glib:bin" ,glib "bin")
11711 ("gobject-introspection" ,gobject-introspection)
11712 ("pkg-config" ,pkg-config)))
11713 (home-page "https://gitlab.com/valos/Komikku")
11714 (synopsis "Manga reader for GNOME")
11715 (description "Komikku is an online/offline manga reader for GNOME,
11716 developed with the aim of being used with the Librem 5 phone.")
11717 (license license:gpl3+)))
11718
11719 (define-public libgda
11720 (package
11721 (name "libgda")
11722 (version "5.2.9")
11723 (source
11724 (origin
11725 (method git-fetch)
11726 (uri (git-reference
11727 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
11728 (commit "LIBGDA_5_2_9")))
11729 (file-name (git-file-name name version))
11730 (sha256
11731 (base32
11732 "122anbk15vj2dfxrw7s48b6zwlpp7cyppshxizynvf3zmc0ygw3j"))))
11733 (build-system gnu-build-system)
11734 (arguments
11735 `(#:configure-flags '("--enable-vala")
11736 ;; There's a race between check_cnc_lock and check_threaded_cnc
11737 ;; in tests/multi-threading.
11738 #:parallel-tests? #f
11739 #:phases
11740 (modify-phases %standard-phases
11741 (add-after 'unpack 'fix-glade-install
11742 (lambda _
11743 (substitute* "configure.ac"
11744 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
11745 "${datadir}/glade/catalogs")
11746 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
11747 "${datadir}/glade/pixmaps"))
11748 #t))
11749 (add-before 'check 'pre-check
11750 (lambda* (#:key inputs #:allow-other-keys)
11751 ;; Tests require a running X server.
11752 (system "Xvfb :1 &")
11753 (setenv "DISPLAY" ":1")
11754 #t))
11755 (add-after 'install 'symlink-glade-module
11756 (lambda* (#:key outputs #:allow-other-keys)
11757 (let* ((shlib "libgda-ui-5.0.so")
11758 (out (assoc-ref outputs "out"))
11759 (out/lib (string-append out "/lib"))
11760 (moduledir (string-append out/lib "/glade/modules")))
11761 (mkdir-p moduledir)
11762 (symlink (string-append out/lib "/" shlib)
11763 (string-append moduledir "/" shlib))
11764 #t))))))
11765 (propagated-inputs
11766 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
11767 (inputs
11768 `(("glib" ,glib)
11769 ("glade" ,glade3)
11770 ("gtk+" ,gtk+)
11771 ("libsecret" ,libsecret)
11772 ("libxslt" ,libxslt)
11773 ("openssl" ,openssl)
11774 ("vala" ,vala)))
11775 (native-inputs
11776 `(("autoconf" ,autoconf)
11777 ("automake" ,automake)
11778 ("glib:bin" ,glib "bin")
11779 ("gnome-common" ,gnome-common)
11780 ("gobject-introspection" ,gobject-introspection)
11781 ("gtk-doc" ,gtk-doc)
11782 ("intltool" ,intltool)
11783 ("libtool" ,libtool)
11784 ("pkg-config" ,pkg-config)
11785 ("vala" ,vala)
11786 ("which" ,which)
11787 ("xorg-server" ,xorg-server-for-tests)
11788 ("yelp-tools" ,yelp-tools)))
11789 (home-page "https://gitlab.gnome.org/GNOME/libgda")
11790 (synopsis "Uniform data access")
11791 (description
11792 "GNU Data Access (GDA) is an attempt to provide uniform access to
11793 different kinds of data sources (databases, information servers, mail spools,
11794 etc). It is a complete architecture that provides all you need to access
11795 your data.")
11796 (license license:lgpl2.1+)))
11797
11798 (define-public gtranslator
11799 (package
11800 (name "gtranslator")
11801 (version "3.36.0")
11802 (source (origin
11803 (method url-fetch)
11804 (uri (string-append "mirror://gnome/sources/" name "/"
11805 (version-major+minor version) "/"
11806 name "-" version ".tar.xz"))
11807 (sha256
11808 (base32
11809 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
11810 (build-system meson-build-system)
11811 (inputs
11812 `(("json-glib" ,json-glib)
11813 ("jsonrpc-glib" ,jsonrpc-glib)
11814 ("gettext" ,gettext-minimal)
11815 ("glib" ,glib)
11816 ("gtk+" ,gtk+)
11817 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11818 ("gspell" ,gspell)
11819 ("libdazzle" ,libdazzle)
11820 ("libgda" ,libgda)
11821 ("libsoup" ,libsoup)))
11822 (native-inputs
11823 `(("glib:bin" ,glib "bin")
11824 ("itstool" ,itstool)
11825 ("pkg-config" ,pkg-config)))
11826 (propagated-inputs
11827 `(("gtksourceview" ,gtksourceview))) ; required for source view
11828 (arguments
11829 `(#:build-type "release"
11830 #:phases
11831 (modify-phases %standard-phases
11832 (add-after 'unpack 'skip-gtk-update-icon-cache
11833 (lambda _
11834 (substitute* "build-aux/meson/meson_post_install.py"
11835 (("gtk-update-icon-cache") (which "true")))
11836 #t)))))
11837 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
11838 (synopsis "Translation making program")
11839 (description
11840 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
11841 for the GNOME 3.x platform with many features. It aims to be a very complete
11842 editing environment for translation issues within the GNU gettext/GNOME desktop
11843 world.")
11844 (license license:gpl3+)))