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>
59 ;;; This file is part of GNU Guix.
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.
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.
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/>.
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))
217 (define-public brasero
223 (uri (string-append "mirror://gnome/sources/brasero/"
224 (version-major+minor version) "/"
225 "brasero-" version ".tar.xz"))
228 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
229 (build-system glib-or-gtk-build-system)
231 `(#:configure-flags (list
232 (string-append "--with-girdir="
233 (assoc-ref %outputs "out")
235 (string-append "--with-typelibdir="
236 (assoc-ref %outputs "out")
237 "/lib/girepository-1.0"))
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"))))
246 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
248 `(("intltool" ,intltool)
250 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
251 ("gobject-introspection" ,gobject-introspection)
252 ("pkg-config" ,pkg-config)))
254 `(("dvd+rw-tools" ,dvd+rw-tools)
256 ("gnome-doc-utils" ,gnome-doc-utils)
257 ("gstreamer" ,gstreamer)
258 ("gst-plugins-base" ,gst-plugins-base)
260 ("libcanberra" ,libcanberra)
262 ("libnotify" ,libnotify)
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+)))
273 (define-public libcloudproviders
275 (name "libcloudproviders")
281 (string-append "mirror://gnome/sources/" name "/"
282 (version-major+minor version) "/"
283 name "-" version ".tar.xz"))
285 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
286 (build-system meson-build-system)
287 (outputs '("out" "doc"))
289 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
292 "-Denable-gtk-doc=true")
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"))
301 (string-append out "/share/gtk-doc")
302 (string-append doc "/share/gtk-doc"))
305 `(("glib:bin" ,glib "bin")
306 ("gobject-introspection" ,gobject-introspection)
308 ("pkg-config" ,pkg-config)
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
318 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
319 (license license:lgpl3+)))
321 (define-public libgrss
329 (string-append "mirror://gnome/sources/" name "/"
330 (version-major+minor version) "/"
331 name "-" version ".tar.xz"))
333 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
334 (build-system glib-or-gtk-build-system)
335 (outputs '("out" "doc"))
340 (string-append "--with-html-dir="
341 (assoc-ref %outputs "doc")
342 "/share/gtk-doc/html"))
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/"))))
354 `(("docbook-xml" ,docbook-xml-4.1.2)
355 ("gobject-introspection" ,gobject-introspection)
357 ("pkg-config" ,pkg-config)))
361 ("libxml2" ,libxml2)))
362 (synopsis "Glib library for feeds")
363 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
365 (home-page "https://wiki.gnome.org/Projects/Libgrss")
366 (license license:lgpl3+)))
368 (define-public gnome-js-common
370 (name "gnome-js-common")
376 (string-append "mirror://gnome/sources/" name "/"
377 (version-major+minor version) "/"
378 name "-" version ".tar.gz"))
380 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
381 (build-system glib-or-gtk-build-system)
385 "--disable-static")))
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
393 (home-page "https://wiki.gnome.org/Projects/Seed")
394 (license license:gpl3+)))
404 (string-append "mirror://gnome/sources/" name "/"
405 (version-major+minor version) "/"
406 name "-" version ".tar.xz"))
408 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
410 (search-patches "seed-webkit.patch"))))
411 (build-system glib-or-gtk-build-system)
412 (outputs '("out" "doc"))
417 "--enable-xorg-module"
418 (string-append "--with-html-dir="
419 (assoc-ref %outputs "doc")
420 "/share/gtk-doc/html")
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
428 (for-each delete-file
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")))
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/"))))
448 `(("autoconf" ,autoconf)
449 ("automake" ,automake)
450 ("docbook-xml" ,docbook-xml-4.1.2)
451 ("gettext" ,gettext-minimal)
452 ("gobject-introspection" ,gobject-introspection)
454 ("intltool" ,intltool)
456 ("pkg-config" ,pkg-config)))
460 ("dbus-glib" ,dbus-glib)
461 ("gnome-js-common" ,gnome-js-common)
467 ("readline" ,readline)
469 ("xscrnsaver" ,libxscrnsaver)))
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
479 (home-page "https://wiki.gnome.org/Projects/Seed")
480 (license license:lgpl2.0+)))
482 (define-public libdmapsharing
484 (name "libdmapsharing")
490 (string-append "https://www.flyn.org/projects/"
491 name "/" name "-" version ".tar.gz"))
493 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
494 (build-system glib-or-gtk-build-system)
495 (outputs '("out" "doc"))
497 `(#:tests? #f ; Tests require networking.
501 (string-append "--with-html-dir="
502 (assoc-ref %outputs "doc")
503 "/share/gtk-doc/html"))
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/"))))
516 ("docbook-xml" ,docbook-xml-4.3)
517 ("gobject-introspection" ,gobject-introspection)
518 ("pedansee" ,pedansee)
519 ("pkg-config" ,pkg-config)
523 ("gdk-pixbuf" ,gdk-pixbuf+svg)
525 ("gst-plugins-base" ,gst-plugins-base)
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+)))
547 (string-append "https://launchpad.net/gtx/trunk/"
548 version "/+download/gtx-" version ".tar.gz"))
550 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
551 (build-system glib-or-gtk-build-system)
552 (outputs '("out" "doc"))
558 (string-append "--with-html-dir="
559 (assoc-ref %outputs "doc")
560 "/share/gtk-doc/html"))))
562 `(("gobject-introspection" ,gobject-introspection)
564 ("pkg-config" ,pkg-config)))
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+)))
582 (string-append "https://launchpad.net/dee/1.0/"
583 version "/+download/dee-" version ".tar.gz"))
585 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
587 (search-patches "dee-vapi.patch"))))
588 (build-system glib-or-gtk-build-system)
589 (outputs '("out" "doc"))
593 "--disable-maintainer-flags"
594 (string-append "--with-pygi-overrides-dir="
595 (assoc-ref %outputs "out")
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"))
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/"))))
613 (add-after 'patch-docbook-xml 'disable-failing-tests
615 (substitute* "tests/test-icu.c"
616 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
618 (("setup, test_ascii_folder, teardown\\);")
621 (add-before 'check 'pre-check
623 ;; Tests require a running dbus-daemon.
624 (system "dbus-daemon &")
625 ;; For missing '/etc/machine-id'.
626 (setenv "DBUS_FATAL_WARNINGS" "0")
630 ("dbus-test-runner" ,dbus-test-runner)
631 ("docbook-xml" ,docbook-xml-4.3)
632 ("gobject-introspection" ,gobject-introspection)
634 ;; Would only be required by configure flag "--enable-extended-tests".
636 ("pkg-config" ,pkg-config)
637 ("pygobject" ,python-pygobject)
638 ("python" ,python-wrapper)
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")
656 (define-public zeitgeist
665 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
667 (string-append "v" version))))
669 (git-file-name name version))
671 (base32 "0ig3d3j1n0ghaxsgfww6g2hhcdwx8cljwwfmp9jk1nrvkxd6rnmv"))))
672 (build-system glib-or-gtk-build-system)
676 "--enable-explain-queries"
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/"))))
689 (add-after 'patch-docbook-xml 'disable-failing-tests
691 (substitute* "test/direct/Makefile.am"
694 (substitute* "test/c/Makefile.am"
698 (add-before 'bootstrap 'remove-autogen-script
700 ;; To honor `autoreconf -vif` by build-system.
701 (delete-file "autogen.sh")
704 `(("autoconf" ,autoconf)
705 ("automake" ,automake)
706 ("docbook-xml" ,docbook-xml-4.3)
707 ("gettext" ,gettext-minimal)
708 ("gobject-introspection" ,gobject-introspection)
711 ("pkg-config" ,pkg-config)
713 ("xorg-server-for-tests" ,xorg-server-for-tests)))
717 ("json-glib" ,json-glib)
719 ("telepathy-glib" ,telepathy-glib)
720 ("python" ,python-wrapper)
721 ("python-rdflib" ,python-rdflib)
722 ("xapian-config" ,xapian)))
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
731 (home-page "https://zeitgeist.freedesktop.org/")
738 (define-public gnome-photos
740 (name "gnome-photos")
746 (string-append "mirror://gnome/sources/" name "/"
747 (version-major+minor version) "/"
748 name "-" version ".tar.xz"))
751 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
752 (build-system meson-build-system)
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"))
761 (modify-phases %standard-phases
762 (add-after 'install 'wrap-gnome-photos
763 (lambda* (#:key inputs outputs #:allow-other-keys)
765 ((out (assoc-ref outputs "out")))
766 (wrap-program (string-append out "/bin/gnome-photos")
767 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
771 ("desktop-file-utils" ,desktop-file-utils)
772 ("gettext" ,gettext-minimal)
774 ("glib:bin" ,glib "bin")
775 ("gobject-introspection" ,gobject-introspection)
776 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
777 ("gtk+:bin" ,gtk+ "bin")
779 ("pkg-config" ,pkg-config)))
783 ("gdk-pixbuf" ,gdk-pixbuf+svg)
785 ("geocode-glib" ,geocode-glib)
787 ("gnome-online-accounts" ,gnome-online-accounts)
788 ("gnome-online-miners" ,gnome-online-miners)
790 ("grilo-plugins" ,grilo-plugins)
792 ("libdazzle" ,libdazzle)
793 ("libgdata" ,libgdata)
794 ("libgfbgraph" ,gfbgraph)
795 ("libjpeg" ,libjpeg-turbo)
798 ("pygobject" ,python-pygobject)
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+)))
808 (define-public gnome-music
816 (string-append "mirror://gnome/sources/" name "/"
817 (version-major+minor version) "/"
818 name "-" version ".tar.xz"))
821 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
822 (build-system meson-build-system)
826 (modify-phases %standard-phases
827 (add-after 'install 'wrap-gnome-music
828 (lambda* (#:key inputs outputs #:allow-other-keys)
830 ((out (assoc-ref outputs "out"))
831 (pylib (string-append out "/lib/python"
832 ,(version-major+minor
833 (package-version python))
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))))
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)))
850 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
852 ("grilo-plugins" ,grilo-plugins)
853 ("gst-plugins-base" ,gst-plugins-base)
854 ("gstreamer" ,gstreamer)
856 ("libdazzle" ,libdazzle)
857 ("libmediaart" ,libmediaart)
859 ("pycairo" ,python-pycairo)
860 ("pygobject" ,python-pygobject)
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+)))
870 (define-public portablexdr
878 (string-append "https://people.redhat.com/~rjones/" name "/files/"
879 name "-" version ".tar.gz"))
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/")
903 (string-append "mirror://gnome/sources/" name "/"
904 (version-major+minor version) "/"
905 name "-" version ".tar.xz"))
908 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
909 (build-system glib-or-gtk-build-system)
911 `(#:tests? #f)) ; FIX-ME: Requires gvfs
913 `(("gobject-introspection" ,gobject-introspection)
914 ("pkg-config" ,pkg-config)))
919 ("gtksourceview" ,gtksourceview)
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+)))
928 (define-public krb5-auth-dialog
930 (name "krb5-auth-dialog")
936 (string-append "mirror://gnome/sources/" name "/"
937 (version-major+minor version) "/"
938 name "-" version ".tar.xz"))
941 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
942 (build-system glib-or-gtk-build-system)
944 `(("intltool" ,intltool)
947 ("pkg-config" ,pkg-config)
948 ("python-wrapper" ,python-wrapper)))
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+)))
961 (define-public notification-daemon
963 (name "notification-daemon")
969 (string-append "mirror://gnome/sources/" name "/"
970 (version-major+minor version) "/"
971 name "-" version ".tar.xz"))
974 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
975 (build-system glib-or-gtk-build-system)
977 `(("intltool" ,intltool)
978 ("pkg-config" ,pkg-config)))
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+)))
989 (define-public mm-common
995 (uri (string-append "mirror://gnome/sources/mm-common/"
996 (version-major+minor version) "/"
997 "mm-common-" version ".tar.xz"))
1000 "07b4s5ckcz9q5gwx8vchim19mhfgl8wysqwi30pndks3m4zrzad2"))))
1001 (build-system meson-build-system)
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")
1010 (("cp") (string-append (assoc-ref inputs "coreutils")
1012 (("sed") (string-append (assoc-ref inputs "sed")
1014 (("cat") (string-append (assoc-ref inputs "coreutils")
1018 `(("coreutils" ,coreutils)
1019 ("gettext" ,gettext-minimal)
1020 ("pkg-config" ,pkg-config)
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+)))
1032 (define-public phodav
1038 (uri (string-append "mirror://gnome/sources/" name "/"
1039 (version-major+minor version) "/"
1040 name "-" version ".tar.xz"))
1043 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1044 (build-system meson-build-system)
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.
1053 (system "tests/virtual-dir-server &")
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)))
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+)))
1072 (define-public gnome-color-manager
1074 (name "gnome-color-manager")
1078 (uri (string-append "mirror://gnome/sources/" name "/"
1079 (version-major+minor version) "/"
1080 name "-" version ".tar.xz"))
1083 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1084 (build-system meson-build-system)
1088 (modify-phases %standard-phases
1092 ;; Tests require a running X server.
1093 (system "Xvfb :1 &")
1094 (setenv "DISPLAY" ":1")
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)))
1105 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1106 ("appstream-glib" ,appstream-glib)
1107 ("colord-gtk" ,colord-gtk)
1109 ("gnome-desktop" ,gnome-desktop)
1110 ("libcanberra" ,libcanberra)
1111 ("libexif" ,libexif)
1112 ("libtiff" ,libtiff)
1113 ("libxrandr" ,libxrandr)
1114 ("libxtst" ,libxtst)
1115 ("libxxf86vm" ,libxxf86vm)
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+)))
1125 (define-public gnome-online-miners
1127 (name "gnome-online-miners")
1131 (uri (string-append "mirror://gnome/sources/" name "/"
1132 (version-major+minor version) "/"
1133 name "-" version ".tar.xz"))
1136 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1137 (build-system glib-or-gtk-build-system)
1139 `(("gettext" ,gettext-minimal)
1140 ("glib:bin" ,glib "bin")
1141 ("gobject-introspection" ,gobject-introspection)
1142 ("gtk+:bin" ,gtk+ "bin")
1143 ("pkg-config" ,pkg-config)))
1145 `(("gnome-online-accounts" ,gnome-online-accounts)
1146 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1148 ("libgdata" ,libgdata)
1149 ("libgfbgraph" ,gfbgraph)
1150 ("libzapojit" ,libzapojit)
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+)))
1160 (define-public gssdp
1166 (uri (string-append "mirror://gnome/sources/" name "/"
1167 (version-major+minor version) "/"
1168 name "-" version ".tar.xz"))
1171 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1172 (build-system meson-build-system)
1174 `(("gettext" ,gettext-minimal)
1175 ("glib:bin" ,glib "bin")
1176 ("gobject-introspection" ,gobject-introspection)
1177 ("gtk-doc" ,gtk-doc)
1178 ("pkg-config" ,pkg-config)
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+)))
1191 (define-public gupnp
1197 (uri (string-append "mirror://gnome/sources/" name "/"
1198 (version-major+minor version) "/"
1199 name "-" version ".tar.xz"))
1202 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1203 (build-system meson-build-system)
1205 `(("gettext" ,gettext-minimal)
1206 ("glib:bin" ,glib "bin")
1207 ("gobject-introspection" ,gobject-introspection)
1208 ("gtk-doc" ,gtk-doc)
1209 ("pkg-config" ,pkg-config)
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+)))
1222 (define-public gupnp-dlna
1228 (uri (string-append "mirror://gnome/sources/" name "/"
1229 (version-major+minor version) "/"
1230 name "-" version ".tar.xz"))
1233 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1234 (build-system gnu-build-system)
1236 `(("gettext" ,gettext-minimal)
1237 ("glib:bin" ,glib "bin")
1238 ("gobject-introspection" ,gobject-introspection)
1239 ("gtk-doc" ,gtk-doc)
1241 ("pkg-config" ,pkg-config)
1244 `(("gstreamer" ,gstreamer)
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+)))
1256 (define-public gupnp-av
1262 (uri (string-append "mirror://gnome/sources/" name "/"
1263 (version-major+minor version) "/"
1264 name "-" version ".tar.xz"))
1267 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1268 (build-system gnu-build-system)
1270 `(("gettext" ,gettext-minimal)
1271 ("glib:bin" ,glib "bin")
1272 ("gobject-introspection" ,gobject-introspection)
1273 ("gtk-doc" ,gtk-doc)
1275 ("pkg-config" ,pkg-config)))
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+)))
1285 (define-public libmediaart
1287 (name "libmediaart")
1291 (uri (string-append "mirror://gnome/sources/" name "/"
1292 (version-major+minor version) "/"
1293 name "-" version ".tar.xz"))
1296 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
1297 (build-system gnu-build-system)
1299 `(("glib:bin" ,glib "bin")
1300 ("pkg-config" ,pkg-config)))
1302 `(("gdk-pixbuf" ,gdk-pixbuf)
1303 ("gettext" ,gettext-minimal)
1304 ("gobject-introspection" ,gobject-introspection)
1305 ("gtk+:doc" ,gtk+ "doc")
1307 (synopsis "Media art library for the GNOME desktop")
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+)))
1314 (define-public gnome-initial-setup
1316 (name "gnome-initial-setup")
1320 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1321 (version-major+minor version)
1322 "/gnome-initial-setup-" version ".tar.xz"))
1325 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1326 (build-system meson-build-system)
1328 '(#:configure-flags '(;; Enable camera support for user selfie.
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")))
1343 `(("gettext" ,gettext-minimal)
1344 ("glib:bin" ,glib "bin")
1345 ("gobject-introspection" ,gobject-introspection)
1346 ("gtk+:bin" ,gtk+ "bin")
1347 ("pkg-config" ,pkg-config)))
1349 `(("accountsservice" ,accountsservice)
1350 ;("adwaita-icon-theme" ,adwaita-icon-theme)
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)
1359 ("json-glib" ,json-glib)
1361 ("libgweather" ,libgweather)
1363 ("libsecret" ,libsecret)
1364 ("network-manager" ,network-manager)
1365 ("packagekit" ,packagekit)
1367 ("pwquality" ,libpwquality)
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)))
1379 (define-public gnome-user-share
1381 (name "gnome-user-share")
1385 (uri (string-append "mirror://gnome/sources/" name "/"
1386 (version-major+minor version) "/"
1387 name "-" version ".tar.xz"))
1390 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1391 (build-system meson-build-system)
1396 ;; Enable nautilus extension for file sharing.
1397 "-Dnautilus_extension=true")))
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)))
1407 ("gnome-bluetooth" ,gnome-bluetooth)
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+)))
1419 (define-public sushi
1425 (uri (string-append "mirror://gnome/sources/" name "/"
1426 (version-major+minor version) "/"
1427 name "-" version ".tar.xz"))
1430 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1431 (build-system meson-build-system)
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")
1440 ;; Put existing typelibs before sushi's deps, so as to correctly
1443 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1446 `(("glib:bin" ,glib "bin")
1447 ("gettext" ,gettext-minimal)
1448 ("gobject-introspection" ,gobject-introspection)
1449 ("pkg-config" ,pkg-config)))
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)
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)
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+)))
1473 (define-public rygel
1479 (uri (string-append "mirror://gnome/sources/" name "/"
1480 (version-major+minor version) "/"
1481 name "-" version ".tar.xz"))
1484 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1485 (build-system gnu-build-system)
1487 `(("gettext" ,gettext-minimal)
1488 ("gobject-introspection" ,gobject-introspection)
1489 ("gtk-doc" ,gtk-doc)
1490 ("pkg-config" ,pkg-config)
1493 `(("gdk-pixbuf" ,gdk-pixbuf)
1495 ("gstreamer" ,gstreamer)
1496 ("gst-plugins-base" ,gst-plugins-base)
1499 ("gupnp-av" ,gupnp-av)
1500 ("gupnp-dlna" ,gupnp-dlna)
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")
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.
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")
1518 ;; For logo (data/icons/*).
1521 license:lgpl2.1+))))
1523 (define-public libnma
1529 (uri (string-append "mirror://gnome/sources/" name "/"
1530 (version-major+minor version) "/"
1531 name "-" version ".tar.xz"))
1534 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1535 (build-system meson-build-system)
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")))
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)
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
1565 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1566 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1568 (license license:gpl2+)))
1570 (define-public gnome-menus
1572 (name "gnome-menus")
1576 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1577 (version-major+minor version) "/"
1578 name "-" version ".tar.xz"))
1581 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1582 (build-system gnu-build-system)
1584 `(("gettext" ,gettext-minimal)
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+)))
1593 (define-public deja-dup
1599 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1600 version "/deja-dup-" version ".tar.bz2"))
1603 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1604 (build-system meson-build-system)
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"))
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")
1621 (substitute* "libdeja/tests/runner.vala"
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))))
1634 (add-after 'unpack 'skip-gtk-update-icon-cache
1635 ;; Don't create 'icon-theme.cache'.
1637 (substitute* "data/post-install.sh"
1638 (("gtk-update-icon-cache") "true"))
1641 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1642 ("duplicity" ,duplicity)
1644 ("python-pygobject" ,python-pygobject)
1646 ("json-glib" ,json-glib)
1647 ("libnotify" ,libnotify)
1648 ("libgpg-error" ,libgpg-error)
1649 ("libsecret" ,libsecret)
1650 ("libsoup" ,libsoup)
1651 ("packagekit" ,packagekit)))
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)
1661 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1662 (synopsis "Simple backup tool, for regular encrypted backups")
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+)))
1669 (define-public gnome-commander
1671 (name "gnome-commander")
1676 (uri (string-append "mirror://gnome/sources/" name "/"
1677 (version-major+minor version) "/"
1678 "gnome-commander-" version ".tar.xz"))
1680 (base32 "0bis36awb73vhkncq8yr0qlnyaxynqkvmyqbg57ijqwd0m8hh4zg"))))
1681 (build-system glib-or-gtk-build-system)
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)))
1695 ("gnome-vfs" ,gnome-vfs)
1697 ("libxml2" ,libxml2)))
1698 (home-page "https://gcmd.github.io/")
1699 (synopsis "Two-pane graphical file manager for the GNOME desktop")
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+)))
1707 (define-public gnome-user-docs
1709 (name "gnome-user-docs")
1714 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1715 (version-major+minor version)
1716 "/gnome-user-docs-" version ".tar.xz"))
1718 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1719 (build-system gnu-build-system)
1721 `(("gettext" ,gettext-minimal)
1722 ("itstool" ,itstool)
1723 ("pkg-config" ,pkg-config)
1724 ("xmllint" ,libxml2)))
1725 (synopsis "User documentation for the GNOME desktop")
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)))
1733 (define-public gnome-getting-started-docs
1735 (name "gnome-getting-started-docs")
1740 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1741 (version-major+minor version)
1742 "/gnome-getting-started-docs-" version ".tar.xz"))
1744 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1745 (build-system gnu-build-system)
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")
1753 "The GNOME Getting Started Documentation contains GNOME's intuitive
1754 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
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)))
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
1766 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1770 (version (git-version "0.97.3" revision commit))
1774 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1776 (file-name (git-file-name name version))
1779 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1780 (build-system meson-build-system)
1782 `(("graphene" ,graphene)
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)))
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+))))
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
1812 (uri (string-append "mirror://gnome/sources/" name "/"
1813 (version-major+minor version) "/"
1814 name "-" version ".tar.xz"))
1817 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1818 (build-system gnu-build-system)
1821 (modify-phases %standard-phases
1822 (add-before 'check 'disable-failing-tests
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\\) ") ""))
1830 `(("glib:bin" ,glib "bin")
1831 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1832 ("intltool" ,intltool)
1833 ("pkg-config" ,pkg-config)
1834 ("uhttpmock" ,uhttpmock)))
1836 `(("cyrus-sasl" ,cyrus-sasl)
1837 ("glib-networking" ,glib-networking)))
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")
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+)))
1854 (define-public libgxps
1860 (uri (string-append "mirror://gnome/sources/" name "/"
1861 (version-major+minor version) "/"
1862 name "-" version ".tar.xz"))
1865 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1866 (build-system meson-build-system)
1868 `(("gobject-introspection" ,gobject-introspection)
1869 ("pkg-config" ,pkg-config)))
1872 ("libjpeg" ,libjpeg-turbo)
1874 ("libtiff" ,libtiff)))
1876 ;; In Requires of libgxps.pc.
1879 ("libarchive" ,libarchive)))
1880 (home-page "https://wiki.gnome.org/Projects/libgxps")
1881 (synopsis "GObject-based library for handling and rendering XPS documents")
1883 "libgxps is a GObject-based library for handling and rendering XPS
1884 documents. This package also contains binaries that can convert XPS documents
1886 (license license:lgpl2.1+)))
1888 (define-public gnome-characters
1890 (name "gnome-characters")
1895 (uri (string-append "mirror://gnome/sources/"
1896 "gnome-characters/" (version-major+minor version)
1897 "/gnome-characters-" version ".tar.xz"))
1900 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1901 (build-system meson-build-system)
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
1909 (wrap-program (string-append (assoc-ref outputs "out")
1910 "/bin/gnome-characters")
1911 `("GI_TYPELIB_PATH" ":" prefix
1912 (,(getenv "GI_TYPELIB_PATH"))))
1915 `(("gettext" ,gettext-minimal)
1916 ("glib:bin" ,glib "bin")
1917 ("gtk+:bin" ,gtk+ "bin")
1918 ("pkg-config" ,pkg-config)
1919 ("python" ,python-minimal)))
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)))
1932 (define-public gnome-common
1934 (name "gnome-common")
1939 (uri (string-append "mirror://gnome/sources/" name "/"
1940 (version-major+minor version) "/"
1941 name "-" version ".tar.xz"))
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+)))
1954 (define-public gnome-contacts
1956 (name "gnome-contacts")
1960 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1961 (version-major+minor version) "/"
1962 name "-" version ".tar.xz"))
1965 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1966 (build-system meson-build-system)
1968 `(#:configure-flags '("-Dcheese=false")
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
1975 (assoc-ref inputs "gnome-online-accounts:lib"))
1977 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1979 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1981 (add-after 'unpack 'skip-gtk-update-icon-cache
1982 ;; Don't create 'icon-theme.cache'.
1984 (substitute* "build-aux/meson_post_install.py"
1985 (("gtk-update-icon-cache") "true"))
1988 `(("glib:bin" ,glib "bin")
1989 ("pkg-config" ,pkg-config)))
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)
2001 ("libxslt" ,libxslt)
2002 ("telepathy-glib" ,telepathy-glib)
2006 ("telepathy-mission-control" ,telepathy-mission-control)))
2007 (synopsis "GNOME's integrated address book")
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+)))
2014 (define-public gnome-desktop
2016 (name "gnome-desktop")
2021 (uri (string-append "mirror://gnome/sources/" name "/"
2022 (version-major+minor version) "/"
2023 name "-" version ".tar.xz"))
2026 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2027 (build-system meson-build-system)
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"
2036 (string-append "\"" libc "/bin/locale\"")))
2038 (add-before 'configure 'patch-bubblewrap
2039 (lambda* (#:key inputs #:allow-other-keys)
2040 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2042 (string-append "\"" (which "bwrap") "\","))
2043 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2044 (string-append "\"--ro-bind\", \""
2049 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
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")
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)))
2070 ;; Required by gnome-desktop-3.0.pc.
2071 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2073 ("iso-codes" ,iso-codes)
2074 ("libseccomp" ,libseccomp)
2076 ("xkeyboard-config" ,xkeyboard-config)))
2078 `(("gdk-pixbuf" ,gdk-pixbuf)
2080 ("bubblewrap" ,bubblewrap)
2081 ("libxext" ,libxext)
2082 ("libxkbfile" ,libxkbfile)
2083 ("libxrandr" ,libxrandr)))
2084 (home-page "https://www.gnome.org/")
2086 "Libgnome-desktop, gnome-about, and desktop-wide documents")
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.
2093 The gnome-about program helps find which version of GNOME is installed.")
2094 ; Some bits under the LGPL.
2095 (license license:gpl2+)))
2097 (define-public gnome-doc-utils
2099 (name "gnome-doc-utils")
2104 (uri (string-append "mirror://gnome/sources/" name "/"
2105 (version-major+minor version) "/"
2106 name "-" version ".tar.xz"))
2109 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2110 (build-system gnu-build-system)
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")
2121 "Documentation utilities for the Gnome project")
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
2128 (define-public gnome-disk-utility
2130 (name "gnome-disk-utility")
2134 (uri (string-append "mirror://gnome/sources/" name "/"
2135 (version-major+minor version) "/"
2136 name "-" version ".tar.xz"))
2139 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2140 (build-system meson-build-system)
2142 '(#:configure-flags '("-Dlogind=libelogind")
2144 (modify-phases %standard-phases
2145 (add-after 'unpack 'skip-gtk-update-icon-cache
2146 ;; Don't create 'icon-theme.cache'.
2148 (substitute* "meson_post_install.py"
2149 (("gtk-update-icon-cache") "true"))
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)))
2160 `(("elogind" ,elogind)
2162 ("appstream-glib" ,appstream-glib)
2163 ("gnome-settings-daemon" ,gnome-settings-daemon)
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+)))
2176 (define-public gnome-font-viewer
2178 (name "gnome-font-viewer")
2182 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2183 (version-major+minor version)
2184 "/gnome-font-viewer-" version ".tar.xz"))
2187 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2188 (build-system meson-build-system)
2191 (modify-phases %standard-phases
2192 (add-after 'unpack 'patch-post-install-script
2194 (substitute* "meson-postinstall.sh"
2195 (("update-desktop-database") (which "true")))
2198 `(("gettext" ,gettext-minimal)
2199 ("glib:bin" ,glib "bin")
2200 ("pkg-config" ,pkg-config)))
2203 ("gnome-desktop" ,gnome-desktop)
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+)))
2218 (uri (string-append "mirror://gnome/sources/" name "/"
2219 (version-major+minor version) "/"
2220 name "-" version ".tar.xz"))
2223 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2224 (build-system gnu-build-system)
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
2232 (substitute* "Makefile.in"
2233 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2236 (add-before 'check 'pre-check
2238 ;; Some tests expect to write to $HOME.
2239 (setenv "HOME" "/tmp")
2243 ("gnupg" ,gnupg) ;called as a child process during tests
2244 ("libgcrypt" ,libgcrypt)))
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)
2253 ("xsltproc" ,libxslt)))
2254 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2256 `(("p11-kit" ,p11-kit)
2259 (home-page "https://www.gnome.org")
2260 (synopsis "Libraries for displaying certificates and accessing key stores")
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
2265 (license license:lgpl2.1+)))
2274 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2275 (commit (string-append "GDL_" (string-map (match-lambda
2279 (file-name (git-file-name name version))
2282 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2283 (build-system gnu-build-system)
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)
2295 `(("libxml2" ,libxml2)))
2297 ;; The gdl-3.0.pc file 'Requires' 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+)))
2304 ;;; A minimal variant used to break a cycle with Inkscape.
2305 (define-public gdl-minimal
2308 (name "gdl-minimal")
2311 (modify-phases %standard-phases
2312 (add-after 'unpack 'disable-doc-generation
2313 ;; XXX: There is no easy way to disable generating the
2316 (substitute* "configure.in"
2317 (("GTK_DOC_CHECK.*") "")
2319 (substitute* "Makefile.am"
2320 (("gdl docs po") "gdl po"))
2322 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2324 (define-public libgnome-keyring
2326 (name "libgnome-keyring")
2330 (uri (string-append "mirror://gnome/sources/" name "/"
2331 (version-major+minor version) "/"
2332 name "-" version ".tar.xz"))
2335 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2336 (build-system gnu-build-system)
2338 `(("libgcrypt" ,libgcrypt)
2341 `(("pkg-config" ,pkg-config)
2342 ("glib" ,glib "bin")
2343 ("intltool" ,intltool)))
2345 ;; Referred to in .h files and .pc.
2347 (home-page "https://www.gnome.org")
2348 (synopsis "Accessing passwords from the GNOME keyring")
2350 "Client library to access passwords from the GNOME keyring.")
2352 ;; Though a couple of files are LGPLv2.1+.
2353 (license license:lgpl2.0+)))
2355 (define-public gnome-keyring
2357 (name "gnome-keyring")
2361 (uri (string-append "mirror://gnome/sources/" name "/"
2362 (version-major+minor version) "/"
2363 name "-" version ".tar.xz"))
2366 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2367 (build-system gnu-build-system)
2369 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
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/"))
2378 (modify-phases %standard-phases
2379 (add-after 'unpack 'fix-/bin/sh-reference
2381 (substitute* "po/Makefile.in.in"
2382 (("/bin/sh") (which "sh")))
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'.
2401 (invoke "automake" "-ac"))))))
2403 `(("libgcrypt" ,libgcrypt)
2404 ("linux-pam" ,linux-pam)
2405 ("openssh" ,openssh)
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")
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.
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+)))
2431 (define-public evince
2437 (uri (string-append "mirror://gnome/sources/evince/"
2438 (version-major+minor version) "/"
2439 "evince-" version ".tar.xz"))
2442 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2443 (build-system glib-or-gtk-build-system)
2445 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2447 (modify-phases %standard-phases
2448 (add-before 'install 'skip-gtk-update-icon-cache
2449 ;; Don't create 'icon-theme.cache'.
2451 (substitute* "data/Makefile"
2452 (("gtk-update-icon-cache") "true"))
2455 `(("libarchive" ,libarchive)
2456 ("libgxps" ,libgxps)
2457 ("libspectre" ,libspectre)
2458 ("djvulibre" ,djvulibre)
2459 ("ghostscript" ,ghostscript)
2460 ("poppler" ,poppler)
2461 ("libtiff" ,libtiff)
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)
2468 ("libgnome-keyring" ,libgnome-keyring)
2469 ("adwaita-icon-theme" ,adwaita-icon-theme)
2470 ("gdk-pixbuf" ,gdk-pixbuf)
2475 ("libxml2" ,libxml2)
2478 ("shared-mime-info" ,shared-mime-info)
2480 ("libcanberra" ,libcanberra)
2481 ("libsecret" ,libsecret)
2484 ("dogtail" ,python2-dogtail)))
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")
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+)))
2501 (define-public gsettings-desktop-schemas
2503 (name "gsettings-desktop-schemas")
2508 (uri (string-append "mirror://gnome/sources/" name "/"
2509 (version-major+minor version) "/"
2510 name "-" version ".tar.xz"))
2513 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2514 (build-system meson-build-system)
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'"))
2531 ("gnome-backgrounds" ,gnome-backgrounds)))
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")
2539 "GNOME settings for various desktop components")
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+)))
2545 (define-public python-liblarch
2547 (name "python-liblarch")
2553 (url "https://github.com/getting-things-gnome/liblarch")
2554 (commit (string-append "v" version))))
2555 (file-name (git-file-name name version))
2557 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2558 (build-system python-build-system)
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")
2569 `(("xorg-server" ,xorg-server-for-tests)))
2573 `(("python-pygobject" ,python-pygobject)))
2574 (home-page "https://wiki.gnome.org/Projects/liblarch")
2575 (synopsis "Library to easily handle complex data structures")
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}.
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+)))
2594 (url "https://github.com/getting-things-gnome/gtg")
2595 (commit (string-append "v" version))))
2596 (file-name (git-file-name name version))
2598 (base32 "0r28vyr88rj3kd3cg4gj7sd29wadjchi92wzmbx67d4hlg25h8kk"))))
2599 (build-system meson-build-system)
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")
2608 (pylib (string-append (assoc-ref outputs "out")
2610 ,(version-major+minor
2611 (package-version python))
2614 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
2615 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
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)))
2625 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
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")
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+)))
2643 (define-public icon-naming-utils
2645 (name "icon-naming-utils")
2650 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2651 version ".tar.bz2"))
2654 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2655 (build-system gnu-build-system)
2658 ("perl-xml-simple" ,perl-xml-simple)))
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")))
2669 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2671 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2673 "Utility to implement the Freedesktop Icon Naming Specification")
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+)))
2680 (define-public gnome-icon-theme
2682 (name "gnome-icon-theme")
2687 (uri (string-append "mirror://gnome/sources/" name "/"
2688 (version-major+minor version) "/"
2689 name "-" version ".tar.xz"))
2692 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2693 (build-system gnu-build-system)
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)))))
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
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")
2716 (uri (string-append "mirror://gnome/sources/" name "/"
2717 (version-major+minor version) "/"
2718 name "-" version ".tar.xz"))
2721 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2723 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2725 (define-public tango-icon-theme
2727 (name "tango-icon-theme")
2731 (uri (string-append "http://tango.freedesktop.org/releases/"
2732 "tango-icon-theme-" version ".tar.bz2"))
2735 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2736 (build-system gnu-build-system)
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
2746 (license license:public-domain)))
2748 (define-public shared-mime-info
2750 (name "shared-mime-info")
2755 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2756 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2760 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2761 (build-system gnu-build-system)
2763 ;; The build system appears not to be parallel-safe.
2764 '(#:parallel-build? #f))
2767 ("libxml2" ,libxml2)))
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")
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+)))
2782 (define-public system-config-printer
2784 (name "system-config-printer")
2790 "https://github.com/OpenPrinting/system-config-printer/releases/"
2792 "/system-config-printer-" version ".tar.xz"))
2794 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
2795 (build-system glib-or-gtk-build-system)
2797 `(#:imported-modules ((guix build python-build-system)
2798 ,@%glib-or-gtk-build-system-modules)
2800 (modify-phases %standard-phases
2801 (add-after 'unpack 'patch-Makefile.am
2803 ;; The Makefile generates some scripts, so set a valid shebang
2804 (substitute* "Makefile.am"
2805 (("/bin/bash") (which "bash")))
2806 (delete-file "configure")
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/")))
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")))
2824 (wrap-program program
2825 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2827 (string-append out "/bin/" name))
2828 '("system-config-printer"
2829 "system-config-printer-applet"
2830 "install-printerdriver"
2831 "scp-dbus-service"))))
2834 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2835 ("gobject-introspection" ,gobject-introspection)
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)))
2847 `(("pkg-config" ,pkg-config)
2848 ("desktop-file-utils" ,desktop-file-utils)
2850 ("autoconf" ,autoconf)
2851 ("automake" ,automake)
2852 ("intltool" ,intltool)
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")
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
2863 (license license:gpl2+)))
2865 (define-public hicolor-icon-theme
2867 (name "hicolor-icon-theme")
2872 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2873 "hicolor-icon-theme-" version ".tar.xz"))
2876 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2877 (build-system gnu-build-system)
2879 `(#:tests? #f)) ; no check target
2880 (home-page "https://icon-theme.freedesktop.org/releases/")
2882 "Freedesktop icon theme")
2884 "Freedesktop icon theme.")
2885 (license license:gpl2)))
2887 (define-public libnotify
2894 (uri (string-append "mirror://gnome/sources/" name "/"
2895 (version-major+minor version) "/"
2896 name "-" version ".tar.xz"))
2899 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2900 (build-system gnu-build-system)
2902 `(#:configure-flags '("--disable-static")))
2904 `(;; In Requires of libnotify.pc.
2905 ("gdk-pixbuf" ,gdk-pixbuf)
2909 ("libpng" ,libpng)))
2911 `(("pkg-config" ,pkg-config)
2912 ("glib" ,glib "bin")
2913 ("gobject-introspection" ,gobject-introspection)))
2914 (home-page "https://developer-next.gnome.org/libnotify/")
2916 "GNOME desktop notification library")
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+)))
2924 (define-public libpeas
2931 (uri (string-append "mirror://gnome/sources/" name "/"
2932 (version-major+minor version) "/"
2933 name "-" version ".tar.xz"))
2936 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2937 (build-system meson-build-system)
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"))
2945 (setenv "DISPLAY" disp)
2946 ;; Tests require a running X server.
2947 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2953 ("python-pygobject" ,python-pygobject)))
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)))
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")
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
2971 (license license:lgpl2.0+)))
2973 (define-public gtkglext
2979 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2980 version "/gtkglext-" version ".tar.gz"))
2982 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2983 (patches (search-patches
2984 "gtkglext-disable-disable-deprecated.patch"))))
2985 (build-system gnu-build-system)
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
2993 (substitute* "gdk/gdkglshapes.c"
2994 ((" index") " triangle_index"))
2996 (inputs `(("gtk+" ,gtk+-2)
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+)))
3011 (define-public glade3
3017 (uri (string-append "mirror://gnome/sources/" name "/"
3018 (version-major+minor version) "/"
3019 name "-" version ".tar.xz"))
3022 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
3023 (build-system glib-or-gtk-build-system)
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")))
3036 (add-before 'check 'pre-check
3038 (setenv "HOME" "/tmp")
3039 ;; Tests require a running X server.
3040 (system "Xvfb :1 &")
3041 (setenv "DISPLAY" ":1")
3045 ("libxml2" ,libxml2)))
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")))))))
3069 (define-public libcroco
3075 (uri (string-append "mirror://gnome/sources/" name "/"
3076 (version-major+minor version) "/"
3077 name "-" version ".tar.xz"))
3080 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3081 (build-system gnu-build-system)
3083 `(("pkg-config" ,pkg-config)))
3086 ("libxml2" ,libxml2)
3088 (home-page "https://github.com/GNOME/libcroco")
3089 (synopsis "CSS2 parsing and manipulation library")
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.")
3097 (license license:lgpl2.1)))
3099 (define-public libgsf
3105 (uri (string-append "mirror://gnome/sources/" name "/"
3106 (version-major+minor version) "/"
3107 name "-" version ".tar.xz"))
3110 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3111 (build-system gnu-build-system)
3113 '(#:configure-flags '("--disable-static")))
3115 `(("pkg-config" ,pkg-config)
3116 ("gettext" ,gettext-minimal)
3120 ("perl-xml-parser" ,perl-xml-parser)))
3125 `(("gdk-pixbuf" ,gdk-pixbuf)
3127 ("libxml2" ,libxml2)))
3128 (home-page "https://www.gnome.org/projects/libgsf")
3129 (synopsis "GNOME's Structured File Library")
3131 "Libgsf aims to provide an efficient extensible I/O abstraction for
3132 dealing with different structured file formats.")
3135 (license license:lgpl2.1)))
3137 (define-public librsvg
3143 (uri (string-append "mirror://gnome/sources/" name "/"
3144 (version-major+minor version) "/"
3145 name "-" version ".tar.xz"))
3148 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3149 (build-system gnu-build-system)
3152 (list "--disable-static"
3153 "--enable-vala") ; needed for e.g. gnome-mines
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/"
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"))
3169 (add-before 'check 'remove-failing-tests
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")))
3181 `(("pkg-config" ,pkg-config)
3183 ("glib" ,glib "bin") ; glib-mkenums, etc.
3184 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
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)
3192 ("libxml2" ,libxml2)))
3194 ;; librsvg-2.0.pc refers to all of that.
3196 ("gdk-pixbuf" ,gdk-pixbuf)
3198 (home-page "https://wiki.gnome.org/LibRsvg")
3199 (synopsis "Render SVG files using Cairo")
3201 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3203 (license license:lgpl2.0+)))
3205 (define-public librsvg-next
3211 (uri (string-append "mirror://gnome/sources/librsvg/"
3212 (version-major+minor version) "/"
3213 "librsvg-" version ".tar.xz"))
3216 "02csvx2nzygh8kyal2qiy3y6xb7d52vszxxr37dzav704a9pkncv"))
3217 (modules '((guix build utils)))
3219 '(begin (delete-file-recursively "vendor")
3221 (build-system cargo-build-system)
3222 (outputs '("out" "doc"))
3225 ((guix build cargo-build-system)
3227 ((guix build gnu-build-system) #:prefix gnu:))
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))
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/"))))
3286 (add-after 'unpack 'prepare-for-build
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")
3295 (add-before 'configure 'pre-configure
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/"
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"))
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
3315 (list "--disable-static"
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"))
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
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)))
3355 ((assoc-ref gnu:%standard-phases 'check)
3356 #:test-target "check")))
3358 (assoc-ref gnu:%standard-phases 'install)))))
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)
3369 ("fontconfig" ,fontconfig)
3370 ("freetype" ,freetype)
3371 ("harfbuzz" ,harfbuzz)
3372 ("libcroco" ,libcroco)
3374 ("libxml2" ,libxml2)
3378 ("gdk-pixbuf" ,gdk-pixbuf)
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
3385 (home-page "https://wiki.gnome.org/LibRsvg")
3386 (license license:lgpl2.1+)))
3388 (define-public libidl
3394 (uri (string-append "mirror://gnome/sources/libIDL/"
3395 (version-major+minor version) "/"
3396 "libIDL-" version ".tar.bz2"))
3399 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3400 (build-system gnu-build-system)
3401 (inputs `(("glib" ,glib)))
3403 `(("pkg-config" ,pkg-config)
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+)))
3417 (define-public orbit2
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")))
3429 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3430 (build-system gnu-build-system)
3432 `(;; The "timeout-server" test hangs when run in parallel.
3433 #:parallel-tests? #f
3435 '(;; We don't need static libraries, plus they don't build reproducibly
3436 ;; (non-deterministic ordering of .o files in the archive.)
3439 ;; The programmer kindly gives us a hook to turn off deprecation
3441 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3442 ;; ... which they then completly ignore !!
3444 (modify-phases %standard-phases
3445 (add-before 'configure 'ignore-deprecations
3447 (substitute* "linc2/src/Makefile.in"
3448 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3450 (inputs `(("glib" ,glib)
3451 ("libidl" ,libidl)))
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")))))
3465 (define-public libbonobo
3471 (uri (string-append "mirror://gnome/sources/" name "/"
3472 (version-major+minor version)
3473 "/" name "-" version ".tar.bz2"))
3475 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3476 (patches (search-patches
3477 "libbonobo-activation-test-race.patch"))))
3478 (build-system gnu-build-system)
3480 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3482 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3483 ;; ... which they then completly ignore !!
3485 (modify-phases %standard-phases
3486 (add-before 'configure 'ignore-deprecations
3488 (substitute* "activation-server/Makefile.in"
3489 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
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
3503 ("orbit2" ,orbit2)))
3505 `(("intltool" ,intltool)
3506 ("pkg-config" ,pkg-config)
3507 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
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+)))
3520 (define-public gconf
3527 (let ((upstream-name "GConf"))
3528 (string-append "mirror://gnome/sources/" upstream-name "/"
3529 (version-major+minor version) "/"
3530 upstream-name "-" version ".tar.xz")))
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)))
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")))))
3550 (define-public gnome-mime-data
3552 (name "gnome-mime-data")
3556 (uri (string-append "mirror://gnome/sources/" name "/"
3557 (version-major+minor version) "/"
3558 name "-" version ".tar.bz2"))
3561 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3562 (build-system gnu-build-system)
3565 ("intltool" ,intltool)))
3567 '(#:phases (modify-phases %standard-phases
3568 (add-after 'configure 'use-our-intltool
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")))
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+)))
3585 (define-public gnome-vfs
3591 (uri (string-append "mirror://gnome/sources/" name "/"
3592 (version-major+minor version) "/"
3593 name "-" version ".tar.bz2"))
3596 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3597 (build-system gnu-build-system)
3600 (modify-phases %standard-phases
3601 (add-before 'configure 'ignore-deprecations
3603 (substitute* '("libgnomevfs/Makefile.in"
3604 "daemon/Makefile.in")
3605 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3607 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3609 (substitute* "test/test-async-cancel.c"
3610 (("EXIT_FAILURE") "77"))
3612 (inputs `(("libxml2" ,libxml2)
3613 ("dbus-glib" ,dbus-glib)
3615 ("gnome-mime-data" ,gnome-mime-data)
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")
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+)))
3631 (define-public libgnome
3637 (uri (string-append "mirror://gnome/sources/" name "/"
3638 (version-major+minor version) "/"
3639 name "-" version ".tar.bz2"))
3642 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3643 (patches (search-patches "libgnome-encoding.patch"))))
3644 (build-system gnu-build-system)
3647 (modify-phases %standard-phases
3648 (add-before 'configure 'enable-deprecated
3650 (substitute* "libgnome/Makefile.in"
3651 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3653 (inputs `(("libxml2" ,libxml2)))
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
3663 `(("libcanberra" ,libcanberra)
3664 ("libbonobo" ,libbonobo)
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+)))
3676 (define-public libart-lgpl
3678 (name "libart-lgpl")
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")))
3688 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3689 (build-system gnu-build-system)
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+)))
3700 (define-public libgnomecanvas
3702 (name "libgnomecanvas")
3706 (uri (string-append "mirror://gnome/sources/" name "/"
3707 (version-major+minor version) "/"
3708 name "-" version ".tar.gz"))
3711 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3712 (build-system gnu-build-system)
3713 ;; Mentioned as Required in the .pc file
3714 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
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+)))
3726 (define-public libgnomecanvasmm
3728 (name "libgnomecanvasmm")
3732 (uri (string-append "mirror://gnome/sources/" name "/"
3733 (version-major+minor version) "/"
3734 name "-" version ".tar.bz2"))
3737 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3738 (build-system gnu-build-system)
3739 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
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+)))
3748 (define-public libgnomeui
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"))
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)
3769 ("libbonobo" ,libbonobo)
3770 ("libxml2" ,libxml2)
3771 ("libglade" ,libglade)))
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
3781 (license license:lgpl2.0+)))
3783 (define-public libglade
3789 (uri (string-append "mirror://gnome/sources/" name "/"
3790 (version-major+minor version) "/"
3791 name "-" version ".tar.bz2"))
3794 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3795 (build-system gnu-build-system)
3797 `(("python" ,python))) ;; needed for the optional libglade-convert program
3799 `(("gtk+-2" ,gtk+-2)
3800 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
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
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>.
3814 (name "libgnomeprint")
3818 (uri (string-append "mirror://gnome/sources/" name "/"
3819 (version-major+minor version) "/"
3820 name "-" version ".tar.bz2"))
3823 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3824 (build-system gnu-build-system)
3827 ("libart-lgpl" ,libart-lgpl)
3829 ("libxml2" ,libxml2)))
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")
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+)))
3842 (define-public libgnomeprintui
3843 ;; Deprecated; see libgnomeprint.
3845 (name "libgnomeprintui")
3849 (uri (string-append "mirror://gnome/sources/" name "/"
3850 (version-major+minor version) "/"
3851 name "-" version ".tar.bz2"))
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)
3860 ("gnome-icon-theme" ,gnome-icon-theme)
3861 ("libgnomecanvas" ,libgnomecanvas)
3862 ("libxml2" ,libxml2)))
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+)))
3871 (define-public libbonoboui
3873 (name "libbonoboui")
3877 (uri (string-append "mirror://gnome/sources/" name "/"
3878 (version-major+minor version) "/"
3879 name "-" version ".tar.bz2"))
3882 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
3883 (build-system gnu-build-system)
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"))
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)))
3901 ("pangox-compat" ,pangox-compat)
3902 ("libgnome" ,libgnome)
3903 ("libgnomecanvas" ,libgnomecanvas)
3904 ("libglade" ,libglade)))
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+)))
3916 (define-public libwnck
3922 (uri (string-append "mirror://gnome/sources/" name "/"
3923 (version-major+minor version) "/"
3924 name "-" version ".tar.xz"))
3927 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3928 (build-system meson-build-system)
3930 `(("pkg-config" ,pkg-config)
3931 ("glib" ,glib "bin") ; for glib-mkenums
3932 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3933 ("intltool" ,intltool)))
3936 ("libxres" ,libxres)
3937 ("startup-notification" ,startup-notification)))
3938 (home-page "https://developer.gnome.org/libwnck/")
3939 (synopsis "Window Navigator Construction Kit")
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+)))
3947 ;; stable version for gtk2, required by xfwm4.
3948 (define-public libwnck-2
3949 (package (inherit libwnck)
3954 (uri (string-append "mirror://gnome/sources/" name "/"
3955 (version-major+minor version) "/"
3956 name "-" version ".tar.xz"))
3959 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
3960 (build-system gnu-build-system)
3962 `(("pkg-config" ,pkg-config)
3963 ("intltool" ,intltool)))
3966 ("libxres" ,libxres)
3967 ("startup-notification" ,startup-notification)))))
3969 (define-public goffice
3975 (uri (string-append "mirror://gnome/sources/goffice/"
3976 (version-major+minor version) "/"
3977 "goffice-" version ".tar.xz"))
3979 (base32 "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4"))))
3980 (build-system gnu-build-system)
3982 "doc")) ; 4.0 MiB of gtk-doc
3984 '(#:configure-flags (list (string-append "--with-html-dir="
3985 (assoc-ref %outputs "doc")
3986 "/share/gtk-doc/html"))))
3990 ("librsvg" ,librsvg)
3991 ("libxslt" ,libxslt)
3992 ("libxml2" ,libxml2)))
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.")
4001 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4003 (list license:gpl2 license:gpl3))))
4005 (define-public goffice-0.8
4006 (package (inherit goffice)
4010 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4011 (version-major+minor version) "/"
4012 (package-name goffice) "-" version ".tar.xz"))
4014 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4017 (modify-phases %standard-phases
4018 (add-after 'unpack 'fix-pcre-check
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)))
4025 ,@(package-arguments goffice)))
4027 ;; libgoffice-0.8.pc mentions libgsf-1
4028 `(("libgsf" ,libgsf)))
4031 ,@(alist-delete "gtk" (package-inputs goffice))))))
4033 (define-public gnumeric
4039 (uri (string-append "mirror://gnome/sources/gnumeric/"
4040 (version-major+minor version) "/"
4041 "gnumeric-" version ".tar.xz"))
4044 "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p"))))
4045 (build-system glib-or-gtk-build-system)
4047 `(;; The gnumeric developers don't worry much about failing tests.
4048 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4051 (modify-phases %standard-phases
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"))))))))
4067 ("goffice" ,goffice)
4069 ("librsvg" ,librsvg)
4070 ("libxml2" ,libxml2)
4071 ("libxslt" ,libxslt)
4073 ("python-pygobject" ,python-pygobject)
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")
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
4091 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4092 (list license:gpl2 license:gpl3))))
4094 (define-public gnome-themes-standard
4096 (name "gnome-themes-standard")
4101 (uri (string-append "mirror://gnome/sources/" name "/"
4102 (version-major+minor version) "/" name "-"
4106 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4107 (build-system gnu-build-system)
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)))))
4117 ("librsvg" ,librsvg)
4118 ("libxml2" ,libxml2)
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")
4127 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4128 (license license:lgpl2.1+)))
4130 (define-public seahorse
4137 (uri (string-append "mirror://gnome/sources/" name "/"
4138 (version-major+minor version) "/" name "-"
4141 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4142 (build-system meson-build-system)
4146 (modify-phases %standard-phases
4147 (add-after 'unpack 'skip-gtk-update-icon-cache
4148 ;; Don't create 'icon-theme.cache'.
4150 (substitute* "build-aux/meson_post_install.py"
4151 (("gtk-update-icon-cache") "true"))
4158 ("openldap" ,openldap)
4159 ("openssh" ,openssh)
4161 ("libhandy" ,libhandy-0.0)
4162 ("libpwquality" ,libpwquality)
4163 ("libsecret" ,libsecret)
4164 ("libsoup" ,libsoup)))
4166 `(("gettext" ,gettext-minimal)
4167 ("glib:bin" ,glib "bin")
4168 ("itstool" ,itstool)
4169 ("pkg-config" ,pkg-config)
4171 ("xmllint" ,libxml2)))
4172 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4173 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4175 "Seahorse is a GNOME application for managing encryption keys and
4176 passwords in the GNOME keyring.")
4177 (license license:gpl2+)))
4185 (uri (string-append "mirror://gnome/sources/" name "/"
4186 (version-major+minor version) "/"
4187 name "-" version ".tar.xz"))
4190 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4191 (build-system gnu-build-system)
4194 (modify-phases %standard-phases
4195 (add-before 'check 'pre-check
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")
4205 `(("pkg-config" ,pkg-config)
4208 ("xsltproc" ,libxslt)
4209 ("dbus" ,dbus) ; for dbus tests
4210 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4212 `(("graphviz" ,graphviz)))
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")
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+)))
4224 (define-public vala-0.48
4230 (uri (string-append "mirror://gnome/sources/vala/"
4231 (version-major+minor version) "/"
4232 "vala-" version ".tar.xz"))
4235 "1agyrvslv2yh9ikiw7k5nw6j6il1l2zrzfan0pzdpb9xpg9idslw"))))))
4243 (uri (string-append "mirror://gnome/sources/vte/"
4244 (version-major+minor version) "/"
4245 "vte-" version ".tar.xz"))
4248 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4249 (build-system meson-build-system)
4253 "-D_systemd=false")))
4255 `(("pkg-config" ,pkg-config)
4256 ("gettext" ,gettext-minimal)
4258 ("gobject-introspection" ,gobject-introspection)
4259 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4261 ("xmllint" ,libxml2)))
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")
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+)))
4275 (define-public vte-ng
4279 (version "0.58.2.a")
4280 (home-page "https://github.com/thestinger/vte-ng")
4283 (uri (git-reference (url home-page) (commit version)))
4284 (file-name (git-file-name name version))
4287 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4288 (build-system meson-build-system)
4290 `(("gtk-doc" ,gtk-doc)
4291 ,@(package-native-inputs vte)))
4293 `(#:configure-flags '("-Ddocs=true")))
4294 (synopsis "Enhanced VTE terminal widget")
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.")))
4300 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4301 (define-public vte/gtk+-2
4302 (package (inherit vte)
4307 (uri (string-append "mirror://gnome/sources/" name "/"
4308 (version-major+minor version) "/"
4309 name "-" version ".tar.xz"))
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)
4318 '(#:configure-flags '("--disable-python")))
4320 `(("pkg-config" ,pkg-config)
4321 ("intltool" ,intltool)
4322 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4324 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4325 ("ncurses" ,ncurses))))) ; required by libvte.la
4327 (define-public vinagre
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"))
4340 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4341 (build-system glib-or-gtk-build-system)
4343 ;; Disable -Werror and such, to avoid build failures on compilation
4345 '(#:configure-flags '("--enable-compile-warnings=minimum")
4347 (modify-phases %standard-phases
4348 (add-before 'install 'skip-gtk-update-icon-cache
4350 ;; Don't create 'icon-theme.cache'
4351 (substitute* (find-files "." "^Makefile$")
4352 (("gtk-update-icon-cache") (which "true")))
4354 (add-after 'unpack 'patch-configure
4356 (substitute* "configure"
4357 (("freerdp") "freerdp2"))
4360 `(("pkg-config" ,pkg-config)
4361 ("intltool" ,intltool)
4362 ("itstool" ,itstool)
4363 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4365 `(("libxml2" ,libxml2)
4366 ("gtk-vnc" ,gtk-vnc)
4367 ("gnome-keyring" ,gnome-keyring)
4368 ("libsecret" ,libsecret)
4369 ("freerdp" ,freerdp)
4371 ("spice-gtk" ,spice-gtk)
4372 ("telepathy-glib" ,telepathy-glib)
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+)))
4380 (define-public dconf
4387 "mirror://gnome/sources/" name "/"
4388 (version-major+minor version) "/"
4389 name "-" version ".tar.xz"))
4390 (patches (search-patches "dconf-meson-0.52.patch"))
4393 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
4394 (build-system meson-build-system)
4396 ;; In Requires of dconf.pc.
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)
4412 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
4413 ; or /etc/machine-id.
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+)))
4423 (define-public json-glib
4429 (uri (string-append "mirror://gnome/sources/" name "/"
4430 (version-major+minor version) "/"
4431 name "-" version ".tar.xz"))
4434 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4435 (build-system meson-build-system)
4437 `(("gettext" ,gettext-minimal)
4438 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4439 ("gobject-introspection" ,gobject-introspection)
4440 ("pkg-config" ,pkg-config)))
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")
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
4451 (license license:lgpl2.1+)))
4453 (define-public libxklavier
4455 (name "libxklavier")
4458 ;; Note: There's no tarball at ftp.gnome.org for this version.
4461 (url "https://anongit.freedesktop.org/git/libxklavier")
4462 (commit (string-append "libxklavier-" version))))
4465 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4466 (file-name (git-file-name name version))))
4467 (build-system gnu-build-system)
4470 (list (string-append "--with-xkb-base="
4471 (assoc-ref %build-inputs "xkeyboard-config")
4473 "--disable-xmodmap-support")))
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)
4481 ("autoconf" ,autoconf)
4482 ("automake" ,automake)
4483 ("libtool" ,libtool)))
4485 ;; Required by libxklavier.pc.
4487 ("libxml2" ,libxml2)))
4489 `(("iso-codes" ,iso-codes)
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")
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
4501 (license license:lgpl2.0+)))
4503 (define-public python2-rsvg
4504 ;; XXX: This is actually a subset of gnome-python-desktop.
4506 (name "python2-rsvg")
4512 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4513 version ".tar.bz2"))
4516 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4517 (build-system gnu-build-system)
4519 `(("pkg-config" ,pkg-config)))
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")
4527 "This package provides Python bindings to librsvg, the SVG rendering
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+)))
4534 (define-public glib-networking
4536 (name "glib-networking")
4540 (uri (string-append "mirror://gnome/sources/glib-networking/"
4541 (version-major+minor version) "/"
4542 "glib-networking-" version ".tar.xz"))
4545 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4546 (build-system meson-build-system)
4548 `(#:configure-flags '("-Dlibproxy_support=false")))
4550 `(("pkg-config" ,pkg-config)
4551 ("intltool" ,intltool)))
4555 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4556 (home-page "https://www.gnome.org")
4557 (synopsis "Network-related GIO modules")
4559 "This package contains various network related extensions for the GIO
4561 (license license:lgpl2.0+)))
4569 (uri (string-append "mirror://gnome/sources/rest/"
4570 (version-major+minor version) "/"
4571 name "-" version ".tar.xz"))
4574 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4575 (build-system gnu-build-system)
4577 '(#:tests? #f ; tests require internet connection
4579 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4581 `(("glib-mkenums" ,glib "bin")
4582 ("gobject-introspection" ,gobject-introspection)
4583 ("pkg-config" ,pkg-config)))
4585 ;; rest-0.7.pc refers to all these.
4587 ("libsoup" ,libsoup)
4588 ("libxml2" ,libxml2)))
4589 (home-page "https://www.gtk.org/")
4590 (synopsis "RESTful web api query library")
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+)))
4597 (define-public libsoup
4603 (uri (string-append "mirror://gnome/sources/libsoup/"
4604 (version-major+minor version) "/"
4605 "libsoup-" version ".tar.xz"))
4608 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
4609 (build-system meson-build-system)
4610 (outputs '("out" "doc"))
4612 `(#:modules ((guix build utils)
4613 (guix build meson-build-system)
4616 #:configure-flags '("-Dgtk_doc=true")
4618 (modify-phases %standard-phases
4619 (add-after 'unpack 'adjust-tests
4621 ;; This test fails due to missing /etc/nsswitch.conf
4622 ;; in the build environment.
4623 (substitute* "tests/socket-test.c"
4624 ((".*/sockets/unconnected.*") ""))
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.*") ""))
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:
4640 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
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)
4651 "Guix" ;Organizational unit name
4652 "GNU" ;Organization name
4654 "" ;State or province
4656 "" ;subject's domain component (DC)
4659 "-1" ;expiration time
4660 "N" ;belong to authority?
4661 "N" ;web client certificate?
4663 "Y" ;web server certificate?
4664 "localhost" ;dnsName of subject
4665 "" ;dnsName of subject (end)
4667 "127.0.0.1" ;IP address of subject
4669 "" ;encryption (RSA)?
4670 "" ;data encryption?
4671 "" ;sign OCSP requests?
4674 "" ;email protection?
4675 "" ;URI of the CRL distribution point
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"))
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)
4699 ("gnutls" ,gnutls) ;for 'certtool'
4702 ;; libsoup-2.4.pc refers to all these.
4703 `(("brotli" ,google-brotli)
4706 ("libxml2" ,libxml2)
4710 `(("glib-networking" ,glib-networking)
4711 ("mit-krb5" ,mit-krb5)))
4712 (home-page "https://live.gnome.org/LibSoup/")
4713 (synopsis "GLib-based HTTP Library")
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+)))
4720 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4721 (define-public libsoup-minimal
4724 (name "libsoup-minimal")
4725 (outputs (delete "doc" (package-outputs libsoup)))
4727 (substitute-keyword-arguments (package-arguments libsoup)
4728 ((#:configure-flags configure-flags)
4729 `(delete "-Dgtk_doc=true" ,configure-flags))
4731 `(modify-phases ,phases
4732 (delete 'move-doc)))))
4733 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4735 (define-public libsecret
4742 "mirror://gnome/sources/libsecret/"
4743 (version-major+minor version) "/"
4744 "libsecret-" version ".tar.xz"))
4747 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
4748 (build-system gnu-build-system)
4749 (outputs '("out" "doc"))
4751 `(#:tests? #f ; FIXME: Testing hangs.
4753 (list (string-append "--with-html-dir="
4754 (assoc-ref %outputs "doc")
4755 "/share/gtk-doc/html"))))
4757 `(("gettext" ,gettext-minimal)
4758 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4759 ("gobject-introspection" ,gobject-introspection)
4760 ("pkg-config" ,pkg-config)
4762 ("xsltproc" ,libxslt)))
4763 ;; These are needed for the tests.
4764 ;; FIXME: Add gjs once available.
4766 ;("python2" ,python-2)
4767 ;("python2-dbus" ,python2-dbus)
4768 ;("python2-pygobject" ,python2-pygobject)
4769 ;("python2-pygobject-2" ,python2-pygobject-2)))
4771 `(("glib" ,glib))) ; required by libsecret-1.pc
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")
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+)))
4783 (define-public five-or-more
4785 (name "five-or-more")
4790 (uri (string-append "mirror://gnome/sources/five-or-more/"
4791 (version-major+minor version) "/"
4792 "five-or-more-" version ".tar.xz"))
4794 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4795 (build-system meson-build-system)
4799 (modify-phases %standard-phases
4800 (add-after 'unpack 'skip-gtk-update-icon-cache
4802 (substitute* "meson_post_install.py"
4803 (("gtk-update-icon-cache") (which "true")))
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)
4813 ("xmllint" ,libxml2)))
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+)))
4826 (define-public gnome-mines
4828 (name "gnome-mines")
4833 (uri (string-append "mirror://gnome/sources/" name "/"
4834 (version-major+minor version) "/"
4835 name "-" version ".tar.xz"))
4837 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
4838 (build-system meson-build-system)
4842 (modify-phases %standard-phases
4843 (add-after 'unpack 'skip-gtk-update-icon-cache
4845 (substitute* "build-aux/meson_post_install.py"
4846 (("gtk-update-icon-cache") (which "true")))
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)
4856 ("appstream-glib" ,appstream-glib)))
4859 ("libgnome-games-support" ,libgnome-games-support)
4860 ("librsvg" ,librsvg)))
4861 (home-page "https://wiki.gnome.org/Apps/Mines")
4862 (synopsis "Minesweeper game")
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+)))
4868 (define-public gnome-multi-writer
4870 (name "gnome-multi-writer")
4875 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
4876 (version-major+minor version) "/"
4877 "gnome-multi-writer-" version ".tar.xz"))
4880 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
4881 (build-system meson-build-system)
4885 (modify-phases %standard-phases
4886 (add-after 'unpack 'skip-post-install
4888 (substitute* "meson.build"
4889 (("meson.add_install_script" &) (string-append "# " &)))
4892 `(("glib:bin" ,glib "bin")
4893 ("pkg-config" ,pkg-config)))
4896 ("glib" ,glib) ; for gio
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")
4905 "MultiWriter can be used to write an ISO file to multiple USB devices at
4907 (license license:gpl2+)))
4909 (define-public gnome-sudoku
4911 (name "gnome-sudoku")
4916 (uri (string-append "mirror://gnome/sources/" name "/"
4917 (version-major+minor version) "/"
4918 name "-" version ".tar.xz"))
4921 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
4922 (build-system meson-build-system)
4926 (modify-phases %standard-phases
4927 (add-after 'unpack 'skip-gtk-update-icon-cache
4929 (substitute* "build-aux/post_install.py"
4930 (("gtk-update-icon-cache") (which "true")))
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)
4939 ("xmllint" ,libxml2)))
4942 ("json-glib" ,json-glib)
4944 ("librsvg" ,librsvg)
4945 ("qqwing" ,qqwing)))
4946 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4947 (synopsis "Japanese logic game")
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
4953 (license license:gpl2+)))
4955 (define-public gnome-terminal
4957 (name "gnome-terminal")
4962 (uri (string-append "mirror://gnome/sources/" name "/"
4963 (version-major+minor version) "/"
4964 name "-" version ".tar.xz"))
4967 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
4968 (build-system glib-or-gtk-build-system)
4971 (list "--disable-migration" "--disable-search-provider"
4972 "--without-nautilus-extension")
4974 (modify-phases %standard-phases
4975 (add-before 'configure 'patch-/bin/true
4977 (substitute* "configure"
4978 (("/bin/true") (which "true"))))))))
4980 `(("pkg-config" ,pkg-config)
4981 ("desktop-file-utils" ,desktop-file-utils)
4982 ("intltool" ,intltool)
4983 ("itstool" ,itstool)
4984 ("xmllint" ,libxml2)))
4986 `(("dconf" ,dconf)))
4991 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4992 ("util-linux" ,util-linux "lib")
4994 (home-page "https://wiki.gnome.org/Apps/Terminal")
4995 (synopsis "Terminal emulator")
4997 "GNOME Terminal is a terminal emulator application for accessing a
4998 UNIX shell environment which can be used to run programs available on
5001 It supports several profiles, multiple tabs and implements several
5002 keyboard shortcuts.")
5003 (license license:gpl3+)))
5005 (define-public colord
5012 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5013 "colord-" version ".tar.xz"))
5015 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
5016 (build-system meson-build-system)
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
5024 #:configure-flags (list "-Dlocalstatedir=/var"
5025 ;; No dep on systemd.
5027 ;; Wants to install to global completion dir;
5029 "-Dbash_completion=false"
5030 "-Ddaemon_user=colord"
5033 ;; Requires spotread.
5034 "-Dargyllcms_sensor=false"
5035 ;; TODO: Requires docbook2x.
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'")))
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"
5052 (string-append "\"" sqlite "/bin/sqlite3\"")))
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)
5062 ;; colord.pc refers to all these.
5067 `(("dbus-glib" ,dbus-glib)
5069 ("libgudev" ,libgudev)
5072 ("python" ,python-wrapper)
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
5080 (license license:gpl2+)))
5082 (define-public geoclue
5090 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5091 version "/geoclue-" version ".tar.bz2"))
5093 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
5094 (patches (search-patches "geoclue-config.patch"))))
5095 (build-system meson-build-system)
5097 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
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)))
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+)))
5120 (define-public geocode-glib
5122 (name "geocode-glib")
5126 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5127 (version-major+minor version) "/"
5128 "geocode-glib-" version ".tar.xz"))
5131 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5132 (build-system meson-build-system)
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")
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)))
5152 ;; geocode-glib-1.0.pc refers to GIO.
5155 `(("libsoup" ,libsoup)))
5156 (home-page "https://github.com/GNOME/geocode-glib/")
5157 (synopsis "Geocoding and reverse-geocoding library")
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+)))
5165 (define-public upower
5171 (uri (string-append "https://upower.freedesktop.org/releases/"
5172 "upower-" version ".tar.xz"))
5175 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5176 (patches (search-patches "upower-builddir.patch"))
5177 (modules '((guix build utils)))
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
5186 (substitute* "src/Makefile.in"
5187 (("^dbusconfdir =.*$")
5188 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5190 (build-system glib-or-gtk-build-system)
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")
5198 (setenv "LD_LIBRARY_PATH" umockdev))
5200 #:configure-flags (list "--localstatedir=/var"
5201 (string-append "--with-udevrulesdir="
5202 (assoc-ref %outputs "out")
5203 "/lib/udev/rules.d"))))
5205 `(("gobject-introspection" ,gobject-introspection)
5206 ("pkg-config" ,pkg-config)
5207 ("intltool" ,intltool)
5211 ("python-dbus" ,python-dbus)
5212 ("python-dbusmock" ,python-dbusmock)
5213 ("python-pygobject" ,python-pygobject)
5214 ("umockdev" ,umockdev)
5217 ("libxslt" ,libxslt) ;for 'xsltproc'
5218 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5219 ("docbook-xsl" ,docbook-xsl)))
5221 `(("dbus-glib" ,dbus-glib)
5222 ("libgudev" ,libgudev)
5223 ("libusb" ,libusb)))
5225 ;; In Requires of upower-glib.pc.
5227 (home-page "https://upower.freedesktop.org/")
5228 (synopsis "System daemon for managing power devices")
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+)))
5236 (define-public libgweather
5238 (name "libgweather")
5242 (uri (string-append "mirror://gnome/sources/" name "/"
5243 (version-major+minor version) "/"
5244 name "-" version ".tar.xz"))
5247 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5248 (build-system meson-build-system)
5250 `(#:tests? #f ; one of two tests requires network access
5252 `(,(string-append "-Dzoneinfo_dir="
5253 (assoc-ref %build-inputs "tzdata")
5254 "/share/zoneinfo"))))
5256 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5257 ("gobject-introspection" ,gobject-introspection)
5258 ("pkg-config" ,pkg-config)
5260 ("intltool" ,intltool)))
5262 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5265 ("gdk-pixbuf" ,gdk-pixbuf)
5266 ("libxml2" ,libxml2)
5267 ("libsoup" ,libsoup)
5268 ("geocode-glib" ,geocode-glib)))
5270 `(("tzdata" ,tzdata)))
5271 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5272 (synopsis "Location, time zone, and weather library for GNOME")
5274 "libgweather is a library to access weather information from online
5275 services for numerous locations.")
5276 (license license:gpl2+)))
5278 (define-public gnome-settings-daemon
5280 (name "gnome-settings-daemon")
5285 (uri (string-append "mirror://gnome/sources/" name "/"
5286 (version-major+minor version) "/"
5287 name "-" version ".tar.xz"))
5290 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
5291 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5292 (build-system meson-build-system)
5296 (list (string-append "-Dudev_dir="
5297 (assoc-ref %outputs "out")
5298 "/lib/udev/rules.d/")
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"))
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
5319 ;; Color management test can't reach the colord system service.
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)))
5330 `(("alsa-lib" ,alsa-lib)
5333 ("libgudev" ,libgudev)
5336 ("pulseaudio" ,pulseaudio)
5337 ("libcanberra" ,libcanberra)
5339 ("libxtst" ,libxtst)
5341 ("libnotify" ,libnotify)
5342 ("geoclue" ,geoclue)
5343 ("geocode-glib" ,geocode-glib)
5344 ("libgweather" ,libgweather)
5345 ("gnome-desktop" ,gnome-desktop)
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)
5355 ("modem-manager" ,modem-manager)))
5356 (home-page "https://www.gnome.org")
5357 (synopsis "GNOME settings daemon")
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+)))
5365 (define-public totem-pl-parser
5367 (name "totem-pl-parser")
5371 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5372 (version-major+minor version) "/"
5373 "totem-pl-parser-" version ".tar.xz"))
5376 "132jihnf51zs98yjkc6jxyqib4f3dawpjm17g4bj4j78y93dww2k"))))
5377 (build-system meson-build-system)
5379 ;; FIXME: Tests require gvfs.
5382 `(("intltool" ,intltool)
5383 ("glib" ,glib "bin")
5384 ("gobject-introspection" ,gobject-introspection)
5385 ("pkg-config" ,pkg-config)))
5389 ("libarchive" ,libarchive)
5390 ("libgcrypt" ,libgcrypt)
5391 ("libxml2" ,libxml2)))
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+)))
5400 (define-public aisleriot
5406 (uri (string-append "mirror://gnome/sources/aisleriot/"
5407 (version-major+minor version) "/"
5408 "aisleriot-" version ".tar.xz"))
5411 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5412 (build-system glib-or-gtk-build-system)
5415 '("--with-platform=gtk-only"
5416 "--with-card-theme-formats=svg")))
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)))
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")
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+)))
5442 (uri (string-append "mirror://gnome/sources/amtk/"
5443 (version-major+minor version) "/"
5444 "amtk-" version ".tar.xz"))
5447 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5448 (build-system gnu-build-system)
5450 '(#:configure-flags '("--enable-gtk-doc")))
5452 `(("gobject-introspection" ,gobject-introspection)
5453 ("glib:bin" ,glib "bin") ; for glib-mkenums
5454 ("gtk-doc" ,gtk-doc)
5455 ("pkg-config" ,pkg-config)))
5459 (home-page "https://wiki.gnome.org/Projects/Amtk")
5460 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
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+)))
5467 (define-public devhelp
5473 (uri (string-append "mirror://gnome/sources/" name "/"
5474 (version-major+minor version) "/"
5475 name "-" version ".tar.xz"))
5478 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5479 (build-system meson-build-system)
5483 (modify-phases %standard-phases
5484 (add-after 'unpack 'skip-gtk-update-icon-cache
5485 ;; Don't create 'icon-theme.cache'.
5487 (substitute* "meson_post_install.py"
5488 (("gtk-update-icon-cache") "true"))
5491 `(("intltool" ,intltool)
5492 ("itstool" ,itstool)
5493 ("gobject-introspection" ,gobject-introspection)
5494 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5495 ("pkg-config" ,pkg-config)))
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")
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+)))
5515 (uri (string-append "mirror://gnome/sources/cogl/"
5516 (version-major+minor version) "/"
5517 "cogl-" version ".tar.xz"))
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)
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)))
5530 ("gdk-pixbuf" ,gdk-pixbuf)
5532 ("libxext" ,libxext)
5533 ("libxfixes" ,libxfixes)
5534 ("libxdamage" ,libxdamage)
5535 ("libxcomposite" ,libxcomposite)
5536 ("libxrandr" ,libxrandr)))
5541 ("gstreamer" ,gstreamer)
5542 ("gst-plugins-base" ,gst-plugins-base)
5543 ("wayland" ,wayland)))
5545 `(#:disallowed-references (,xorg-server-for-tests)
5546 #:configure-flags (list "--enable-cogl-gst"
5547 "--enable-wayland-egl-platform"
5548 "--enable-wayland-egl-server"
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")
5556 (modify-phases %standard-phases
5557 (add-after 'unpack 'fix-build-with-mesa-20
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")))
5568 (add-before 'check 'start-xorg-server
5569 (lambda* (#:key tests? inputs #:allow-other-keys)
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")
5577 (format #t "test suite not run~%"))
5579 (home-page "https://www.cogl3d.org")
5580 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
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/
5591 (define-public clutter
5598 (uri (string-append "mirror://gnome/sources/" name "/"
5599 (version-major+minor version) "/"
5600 name "-" version ".tar.xz"))
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)
5608 "doc")) ;9 MiB of gtk-doc HTML pages
5610 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5611 ("gobject-introspection" ,gobject-introspection)
5612 ("pkg-config" ,pkg-config)
5613 ("xsltproc" ,libxslt)))
5619 ("json-glib" ,json-glib)
5621 ("libxcomposite" ,libxcomposite)
5622 ("libxdamage" ,libxdamage)
5623 ("libxext" ,libxext)
5624 ("xinput" ,xinput)))
5626 `(("libxkbcommon" ,libxkbcommon)
5629 `(#:configure-flags (list "--enable-x11-backend=yes"
5631 ;; This produces share/doc/{clutter,cally}.
5632 (string-append "--with-html-dir="
5633 (assoc-ref %outputs "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.
5638 (home-page "http://www.clutter-project.org")
5639 (synopsis "OpenGL-based interactive canvas library")
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+)))
5646 (define-public clutter-gtk
5648 (name "clutter-gtk")
5653 (uri (string-append "mirror://gnome/sources/" name "/"
5654 (version-major+minor version) "/"
5655 name "-" version ".tar.xz"))
5658 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5659 (build-system gnu-build-system)
5661 `(("pkg-config" ,pkg-config)
5662 ("gobject-introspection" ,gobject-introspection)))
5664 ;; clutter-gtk.pc refers to all these.
5665 `(("clutter" ,clutter)
5667 (home-page "http://www.clutter-project.org")
5668 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
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+)))
5675 (define-public clutter-gst
5677 (name "clutter-gst")
5682 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5683 (version-major+minor version) "/"
5684 "clutter-gst-" version ".tar.xz"))
5686 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5687 (build-system gnu-build-system)
5689 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5690 ("pkg-config" ,pkg-config)
5691 ("gobject-introspection" ,gobject-introspection)))
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")
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+)))
5705 (define-public libchamplain
5707 (name "libchamplain")
5712 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5716 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5717 (build-system gnu-build-system)
5718 (arguments '(#:configure-flags '("--enable-vala")))
5720 `(("gobject-introspection" ,gobject-introspection)
5721 ("pkg-config" ,pkg-config)
5724 `(("libsoup" ,libsoup)
5726 ("clutter" ,clutter)
5727 ("clutter-gtk" ,clutter-gtk)
5728 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5732 (home-page "https://projects.gnome.org/libchamplain/")
5733 (synopsis "C library providing a ClutterActor to display maps")
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+)))
5748 (uri (string-append "mirror://gnome/sources/gom/"
5749 (version-major+minor version) "/"
5750 "gom-" version ".tar.xz"))
5753 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5754 (build-system gnu-build-system)
5756 `(("intltool" ,intltool)
5757 ("pkg-config" ,pkg-config)
5758 ("gobject-introspection" ,gobject-introspection)))
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")
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+)))
5773 (define-public libgnome-games-support
5775 (name "libgnome-games-support")
5779 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5780 (version-major+minor version) "/"
5781 "libgnome-games-support-" version ".tar.xz"))
5784 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5785 (build-system gnu-build-system)
5788 (modify-phases %standard-phases
5789 (add-before 'check 'pre-check
5791 ;; Tests require a writable HOME.
5792 (setenv "HOME" (getcwd))
5795 `(("intltool" ,intltool)
5796 ("pkg-config" ,pkg-config)
5799 ;; Required by libgnome-games-support-1.0.pc
5801 ("libgee" ,libgee)))
5802 (home-page "https://www.gnome.org/")
5803 (synopsis "Useful functionality shared among GNOME games")
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+)))
5809 (define-public gnome-klotski
5811 (name "gnome-klotski")
5815 (uri (string-append "mirror://gnome/sources/" name "/"
5816 (version-major+minor version) "/"
5817 name "-" version ".tar.xz"))
5820 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
5821 (build-system meson-build-system)
5825 (modify-phases %standard-phases
5826 (add-after 'unpack 'skip-gtk-update-icon-cache
5827 ;; Don't create 'icon-theme.cache'.
5829 (substitute* "build-aux/meson_post_install.py"
5830 (("gtk-update-icon-cache") (which "true")))
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)
5839 ("xmllint" ,libxml2)))
5842 ("libgnome-games-support" ,libgnome-games-support)
5843 ("librsvg" ,librsvg)))
5844 (home-page "https://wiki.gnome.org/Apps/Klotski")
5845 (synopsis "Sliding block puzzles")
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
5851 (license license:gpl2+)))
5853 (define-public grilo
5860 (uri (string-append "mirror://gnome/sources/grilo/"
5861 (version-major+minor version) "/"
5862 "grilo-" version ".tar.xz"))
5864 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
5865 (build-system meson-build-system)
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)
5874 `(("cyrus-sasl" ,cyrus-sasl)
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")
5889 "Grilo is a framework focused on making media discovery and browsing easy
5890 for application developers.")
5891 (license license:lgpl2.1+)))
5893 (define-public grilo-plugins
5895 (name "grilo-plugins")
5900 (uri (string-append "mirror://gnome/sources/" name "/"
5901 (version-major+minor version) "/"
5902 name "-" version ".tar.xz"))
5904 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
5905 (build-system meson-build-system)
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
5915 ;("gmime" ,gmime) ; unused
5916 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
5918 ;("gssdp" ,gssdp) ; unused
5919 ;("gupnp" ,gupnp) ; unused
5920 ;("gupnp-av" ,gupnp-av) ; unused
5921 ("json-glib" ,json-glib)
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
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")
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+)))
5941 (define-public totem
5948 (uri (string-append "mirror://gnome/sources/totem/"
5949 (version-major+minor version) "/"
5950 "totem-" version ".tar.xz"))
5953 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
5954 (build-system meson-build-system)
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)))
5965 `(("dconf" ,dconf)))
5968 ("gdk-pixbuf" ,gdk-pixbuf)
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)
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)
5991 ("python-pygobject" ,python-pygobject)
5992 ("totem-pl-parser" ,totem-pl-parser)
5994 ("grilo-plugins" ,grilo-plugins)
5999 ;; Disable automatic GStreamer plugin installation via PackageKit and
6001 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6003 ;; Do not build .a files for the plugins, it's
6004 ;; completely useless. This saves 2 MiB.
6005 "--default-library" "shared")
6007 (modify-phases %standard-phases
6008 (add-after 'unpack 'skip-gtk-update-icon-cache
6009 ;; Don't create 'icon-theme.cache'.
6011 (substitute* "meson_post_install.py"
6012 (("gtk-update-icon-cache") "true"))
6015 'install 'disable-cache-generation
6017 (setenv "DESTDIR" "/")
6022 ;; Tests require a running X server.
6023 (system "Xvfb :1 &")
6024 (setenv "DISPLAY" ":1")
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))))
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+)))
6047 (define-public rhythmbox
6053 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6054 (version-major+minor version) "/"
6055 "rhythmbox-" version ".tar.xz"))
6058 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6059 (build-system glib-or-gtk-build-system)
6062 (list "--enable-lirc"
6069 (modify-phases %standard-phases
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))))
6085 `(("dconf" ,dconf)))
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)))
6095 `(("json-glib" ,json-glib)
6097 ("gnome-desktop" ,gnome-desktop)
6099 ("python-pygobject" ,python2-pygobject)
6102 ("adwaita-icon-theme" ,adwaita-icon-theme)
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)
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)
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+)))
6140 (uri (string-append "mirror://gnome/sources/" name "/"
6141 (version-major+minor version) "/"
6142 name "-" version ".tar.xz"))
6145 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
6146 (build-system meson-build-system)
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"))
6153 (modify-phases %standard-phases
6154 (add-after 'unpack 'skip-gtk-update-icon-cache
6155 ;; Don't create 'icon-theme.cache'.
6157 (substitute* "meson_post_install.py"
6158 (("gtk-update-icon-cache") "true"))
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))))
6168 `(("dconf" ,dconf)))
6170 `(("intltool" ,intltool)
6171 ("itstool" ,itstool)
6172 ("glib" ,glib "bin")
6173 ("gobject-introspection" ,gobject-introspection)
6174 ("pkg-config" ,pkg-config)
6175 ("xmllint" ,libxml2)))
6177 `(("gnome-desktop" ,gnome-desktop)
6178 ("shared-mime-info" ,shared-mime-info)
6179 ("adwaita-icon-theme" ,adwaita-icon-theme)
6182 ("libexif" ,libexif)
6183 ("libpeas" ,libpeas)
6184 ("libjpeg" ,libjpeg-turbo)
6185 ("librsvg" ,librsvg-next)
6186 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
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+)))
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.
6200 (name "eog-plugins")
6204 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6205 (version-major+minor version) "/"
6206 "eog-plugins-" version ".tar.xz"))
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")
6214 `(("pkg-config" ,pkg-config)
6215 ("gettext" ,gettext-minimal)))
6220 ("libpeas" ,libpeas)
6221 ("libexif" ,libexif)
6222 ("libchamplain" ,libchamplain)))
6224 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
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
6231 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
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+)))
6239 (define-public libgudev
6245 (uri (string-append "mirror://gnome/sources/" name "/"
6246 version "/" name "-" version ".tar.xz"))
6249 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
6250 (build-system gnu-build-system)
6253 ;; umockdev depends on libgudev.
6254 (list "--disable-umockdev")))
6256 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6257 ("gobject-introspection" ,gobject-introspection)
6258 ("pkg-config" ,pkg-config)))
6260 `(("glib" ,glib))) ; required by gudev-1.0.pc
6263 (home-page "https://wiki.gnome.org/Projects/libgudev")
6264 (synopsis "GObject bindings for libudev")
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+)))
6276 (uri (string-append "mirror://gnome/sources/gvfs/"
6277 (version-major+minor version) "/"
6278 "gvfs-" version ".tar.xz"))
6281 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
6282 ;; This patch may be removed when upgrading to version 1.46.x.
6284 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6285 (build-system meson-build-system)
6289 (list "-Dsystemduserunitdir=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"))))
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)))
6302 ("docbook-xml" ,docbook-xml-4.2)
6303 ("docbook-xsl" ,docbook-xsl)
6305 ("elogind" ,elogind)
6309 ("gnome-online-accounts" ,gnome-online-accounts)
6310 ("libarchive" ,libarchive)
6311 ("libbluray" ,libbluray)
6313 ("libcdio-paranoia" ,libcdio-paranoia)
6314 ("libgcrypt" ,libgcrypt)
6315 ("libgdata" ,libgdata)
6316 ("libgphoto2" ,libgphoto2)
6317 ("libgudev" ,libgudev)
6318 ("libimobiledevice" ,libimobiledevice)
6321 ("libsecret" ,libsecret)
6322 ("libsmbclient" ,samba)
6323 ("libsoup" ,libsoup)
6324 ("libxml2" ,libxml2)
6325 ("openssh" ,openssh)
6327 ("udisks" ,udisks)))
6328 (home-page "https://wiki.gnome.org/gvfs/")
6329 (synopsis "Userspace virtual file system for GIO")
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.
6336 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6338 (license license:lgpl2.0+)))
6347 (url "https://github.com/hughsie/libgusb")
6349 (file-name (git-file-name name version))
6352 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
6353 (build-system meson-build-system)
6355 `(("gobject-introspection" ,gobject-introspection)
6356 ("pkg-config" ,pkg-config)
6358 ("gtk-doc" ,gtk-doc)))
6360 ;; Both of these are required by gusb.pc.
6362 ("libusb" ,libusb)))
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")
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+)))
6374 (define-public simple-scan
6376 (name "simple-scan")
6381 (uri (string-append "mirror://gnome/sources/simple-scan/"
6382 (version-major+minor version) "/"
6383 "simple-scan-" version ".tar.xz"))
6385 (base32 "0x9hzqnji5l966yy2k5gppl8hqasn3sd5an4sr8srjmncxcs80ys"))))
6386 (build-system meson-build-system)
6387 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6389 '(#:glib-or-gtk? #t))
6395 ("gdk-pixbuf" ,gdk-pixbuf)
6397 ("libsane" ,sane-backends)))
6399 `(("gettext" ,gettext-minimal)
6400 ("itstool" ,itstool)
6401 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6402 ("pkg-config" ,pkg-config)
6404 ("xmllint" ,libxml2)))
6405 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6406 (synopsis "Document and image scanner")
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+)))
6414 (define-public eolie
6417 (version "0.9.98.1")
6420 (uri (string-append "https://adishatz.org/eolie/eolie-"
6424 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
6425 (build-system meson-build-system)
6429 (modify-phases %standard-phases
6430 (add-after 'unpack 'skip-gtk-update-icon-cache
6431 ;; Don't create 'icon-theme.cache'.
6433 (substitute* "meson_post_install.py"
6434 (("gtk-update-icon-cache") "true"))
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"))
6445 (string-append (assoc-ref inputs lib) "/lib"))
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")))))
6454 `(("intltool" ,intltool)
6455 ("itstool" ,itstool)
6456 ("pkg-config" ,pkg-config)
6458 ("glib:bin" ,glib "bin")))
6460 `(("gobject-introspection" ,gobject-introspection)
6461 ("glib-networking" ,glib-networking)
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")
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+)))
6482 (define-public epiphany
6488 (uri (string-append "mirror://gnome/sources/epiphany/"
6489 (version-major+minor version) "/"
6490 "epiphany-" version ".tar.xz"))
6493 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6495 (build-system meson-build-system)
6499 (modify-phases %standard-phases
6500 (add-after 'unpack 'skip-gtk-update-icon-cache
6501 ;; Don't create 'icon-theme.cache'.
6503 (substitute* "post_install.py"
6504 (("gtk-update-icon-cache") "true"))
6506 (add-after 'unpack 'disable-failing-tests
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'],"))
6515 (add-before 'check 'pre-check
6517 ;; Tests require a running X server.
6518 (system "Xvfb :1 &")
6519 (setenv "DISPLAY" ":1")
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"))))
6526 `(("dconf" ,dconf)))
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)))
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
6550 ("webkitgtk" ,webkitgtk)))
6551 (home-page "https://wiki.gnome.org/Apps/Web")
6552 (synopsis "GNOME web browser")
6554 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6555 principles are simplicity and standards compliance.")
6556 (license license:gpl2+)))
6558 (define-public d-feet
6564 (uri (string-append "mirror://gnome/sources/" name "/"
6565 (version-major+minor version) "/"
6566 name "-" version ".tar.xz"))
6569 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6570 (build-system glib-or-gtk-build-system)
6572 '(#:out-of-source? #f ; tests need to run in the source directory.
6574 (modify-phases %standard-phases
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"))
6589 'install 'wrap-program
6590 (lambda* (#:key outputs #:allow-other-keys)
6591 (let ((prog (string-append (assoc-ref outputs "out")
6594 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6595 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
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)))
6605 `(("gobject-introspection" ,gobject-introspection)
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")
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+)))
6617 (define-public yelp-xsl
6623 (uri (string-append "mirror://gnome/sources/" name "/"
6624 (version-major+minor version) "/"
6625 name "-" version ".tar.xz"))
6628 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6629 (build-system gnu-build-system)
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")
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+)))
6647 (uri (string-append "mirror://gnome/sources/" name "/"
6648 (version-major+minor version) "/"
6649 name "-" version ".tar.xz"))
6652 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6653 (build-system glib-or-gtk-build-system)
6655 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6656 ("intltool" ,intltool)
6657 ("itstool" ,itstool)
6658 ("pkg-config" ,pkg-config)))
6660 `(("dconf" ,dconf)))
6662 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6663 ("libxslt" ,libxslt)
6665 ("webkitgtk" ,webkitgtk)
6666 ("yelp-xsl" ,yelp-xsl)))
6667 (home-page "https://wiki.gnome.org/Apps/Yelp")
6668 (synopsis "GNOME help browser")
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+)))
6675 (define-public yelp-tools
6681 (uri (string-append "mirror://gnome/sources/" name "/"
6682 (version-major+minor version) "/"
6683 name "-" version ".tar.xz"))
6686 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6687 (build-system gnu-build-system)
6689 `(("pkg-config" ,pkg-config)))
6691 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6692 `(("itstool" ,itstool)
6693 ("xmllint" ,libxml2)
6694 ("xsltproc" ,libxslt)))
6696 `(("yelp-xsl" ,yelp-xsl)))
6697 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6698 (synopsis "Yelp documentation tools")
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+)))
6706 (define-public libgee
6712 (uri (string-append "mirror://gnome/sources/libgee/"
6713 (version-major+minor version) "/"
6714 "libgee-" version ".tar.xz"))
6717 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6718 (build-system gnu-build-system)
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/")))))))))
6731 `(("glib" ,glib "bin")
6732 ("pkg-config" ,pkg-config)))
6735 ("gobject-introspection" ,gobject-introspection)))
6736 (home-page "https://wiki.gnome.org/Projects/Libgee")
6737 (synopsis "GObject collection library")
6739 "Libgee is a utility library providing GObject-based interfaces and
6740 classes for commonly used data structures.")
6741 (license license:lgpl2.1+)))
6743 (define-public gexiv2
6749 (uri (string-append "mirror://gnome/sources/" name "/"
6750 (version-major+minor version) "/"
6751 name "-" version ".tar.xz"))
6754 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
6755 (build-system meson-build-system)
6758 ("glib" ,glib "bin")
6759 ("pkg-config" ,pkg-config)
6762 ;; Listed in "Requires" section of gexiv2.pc
6763 `(("exiv2" ,exiv2)))
6766 ("gobject-introspection" ,gobject-introspection)))
6767 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6768 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
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+)))
6775 (define-public shotwell
6781 (uri (string-append "mirror://gnome/sources/shotwell/"
6782 (version-major+minor version) "/"
6783 "shotwell-" version ".tar.xz"))
6786 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
6787 (build-system meson-build-system)
6791 (modify-phases %standard-phases
6792 (add-after 'unpack 'skip-gtk-update-icon-cache
6794 (substitute* "build-aux/meson/postinstall.py"
6795 (("gtk-update-icon-cache") (which "true"))
6796 (("update-desktop-database") (which "true")))
6799 `(("dconf" ,dconf)))
6801 `(("gettext" ,gettext-minimal)
6802 ("glib:bin" ,glib "bin")
6803 ("itstool" ,itstool)
6804 ("pkg-config" ,pkg-config)
6809 ("gst-plugins-base" ,gst-plugins-base)
6810 ("gstreamer" ,gstreamer)
6811 ("json-glib" ,json-glib)
6812 ("libgdata" ,libgdata)
6814 ("libgphoto2" ,libgphoto2)
6815 ("libgudev" ,libgudev)
6817 ("libsoup" ,libsoup)
6818 ("libxml2" ,libxml2)
6820 ("webkitgtk" ,webkitgtk)))
6821 (home-page "https://wiki.gnome.org/Apps/Shotwell")
6822 (synopsis "Photo manager for GNOME 3")
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+)))
6830 (define-public file-roller
6832 (name "file-roller")
6836 (uri (string-append "mirror://gnome/sources/file-roller/"
6837 (version-major+minor version) "/"
6838 "file-roller-" version ".tar.xz"))
6841 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
6842 (build-system meson-build-system)
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.
6853 ("gdk-pixbuf" ,gdk-pixbuf)
6854 ("json-glib" ,json-glib)
6855 ("libarchive" ,libarchive)
6856 ("libnotify" ,libnotify)
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+)))
6866 (define-public gnome-session
6868 (name "gnome-session")
6872 (uri (string-append "mirror://gnome/sources/" name "/"
6873 (version-major+minor version) "/"
6874 name "-" version ".tar.xz"))
6877 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
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"))
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"))))
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)
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)
6919 `(("elogind" ,elogind)
6920 ("gnome-desktop" ,gnome-desktop)
6921 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6923 ("json-glib" ,json-glib)
6925 ("libxcomposite" ,libxcomposite)
6926 ("libxtst" ,libxtst)
6929 ("xtrans" ,xtrans)))
6930 (synopsis "Session manager for GNOME")
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+)))
6943 (uri (string-append "mirror://gnome/sources/" name "/"
6944 (version-major+minor version) "/"
6945 name "-" version ".tar.xz"))
6948 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
6949 (build-system gnu-build-system)
6952 (modify-phases %standard-phases
6956 ;; The test suite requires a running X server.
6957 (system "Xvfb :1 &")
6958 (setenv "DISPLAY" ":1")
6960 ;; For the missing /etc/machine-id.
6961 (setenv "DBUS_FATAL_WARNINGS" "0")
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"
6973 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
6974 ("pkg-config" ,pkg-config)
6975 ("xmllint" ,libxml2)
6977 ("dbus-launch" ,dbus)
6978 ("dconf" ,dconf) ; required to properly store settings
6979 ("uuidgen" ,util-linux)
6980 ("xvfb" ,xorg-server-for-tests)))
6982 ;; These are all in the Requires.private field of gjs-1.0.pc.
6984 ("gobject-introspection" ,gobject-introspection)
6985 ("mozjs" ,mozjs-60)))
6988 ("readline" ,readline)))
6989 (synopsis "Javascript bindings for GNOME")
6990 (home-page "https://live.gnome.org/Gjs")
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+)))
6996 (define-public gedit
7002 (uri (string-append "mirror://gnome/sources/" name "/"
7003 (version-major+minor version) "/"
7004 name "-" version ".tar.xz"))
7007 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7008 (build-system meson-build-system)
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"))
7016 ;; XXX: Generated .h files are sometimes used before being built.
7017 #:parallel-build? #f
7020 (modify-phases %standard-phases
7021 (add-after 'unpack 'skip-gtk-update-icon-cache
7022 ;; Don't create 'icon-theme.cache'.
7024 (substitute* "build-aux/meson/post_install.py"
7025 (("gtk-update-icon-cache") (which "true")))
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"
7034 (copy-recursively libgd "subprojects/libgd")
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")
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
7051 `(("dconf" ,dconf)))
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)
7062 (url "https://gitlab.gnome.org/GNOME/libgd")
7063 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7064 (file-name (git-file-name "libgd" version))
7066 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7067 ("pkg-config" ,pkg-config)))
7072 ("gtksourceview" ,gtksourceview)
7073 ("libpeas" ,libpeas)
7074 ("libxml2" ,libxml2)
7075 ("iso-codes" ,iso-codes)
7076 ("python-pygobject" ,python-pygobject)
7078 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
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+)))
7090 (define-public zenity
7096 (uri (string-append "mirror://gnome/sources/zenity/"
7097 (version-major+minor version) "/"
7098 "zenity-" version ".tar.xz"))
7101 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7102 (build-system gnu-build-system)
7104 `(("gettext" ,gettext-minimal)
7105 ("itstool" ,itstool)
7106 ("pkg-config" ,pkg-config)))
7108 `(("libnotify" ,libnotify)
7109 ("webkitgtk" ,webkitgtk)))
7110 (synopsis "Display graphical dialog boxes from shell scripts")
7111 (home-page "https://www.gnome.org")
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+)))
7117 (define-public mutter
7123 (uri (string-append "mirror://gnome/sources/" name "/"
7124 (version-major+minor version) "/"
7125 name "-" version ".tar.xz"))
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)
7135 '(;; XXX: All mutter tests fail with the following error:
7136 ;; Settings schema 'org.gnome.mutter' is not installed
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")
7147 ;; The following flags are needed for the bundled clutter
7148 (string-append "-Dxwayland_path="
7149 (assoc-ref %build-inputs "xorg-server-xwayland")
7152 ;; the remaining flags are needed for the bundled cogl
7153 (string-append "-Dopengl_libname="
7154 (assoc-ref %build-inputs "mesa")
7156 #:phases (modify-phases %standard-phases
7157 (add-after 'unpack 'fix-build-with-mesa-20
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>")))
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)
7178 ("autoconf" ,autoconf)
7179 ("automake" ,automake)
7180 ("libtool" ,libtool)))
7182 `(;; libmutter.pc refers to these:
7183 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7185 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7188 ("gdk-pixbuf" ,gdk-pixbuf)
7190 ("json-glib" ,json-glib)
7191 ("libinput" ,libinput)
7193 ("libxcomposite" ,libxcomposite)
7194 ("libxdamage" ,libxdamage)
7195 ("libxext" ,libxext)
7196 ("libxfixes" ,libxfixes)
7197 ("libxkbcommon" ,libxkbcommon)
7198 ("libxrandr" ,libxrandr)
7202 ("xinput" ,xinput)))
7204 `(("elogind" ,elogind)
7205 ("gnome-desktop" ,gnome-desktop)
7206 ("gnome-settings-daemon" ,gnome-settings-daemon)
7207 ("libcanberra-gtk" ,libcanberra)
7208 ("libgudev" ,libgudev)
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")
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
7228 (license license:gpl2+)))
7230 (define-public gnome-online-accounts
7232 (name "gnome-online-accounts")
7236 (uri (string-append "mirror://gnome/sources/" name "/"
7237 (version-major+minor version) "/"
7238 name "-" version ".tar.xz"))
7241 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7242 (outputs '("out" "lib"))
7243 (build-system glib-or-gtk-build-system)
7246 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
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")
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")
7263 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7264 ("gobject-introspection" ,gobject-introspection)
7265 ("intltool" ,intltool)
7266 ("pkg-config" ,pkg-config)
7268 ("xsltproc" ,libxslt)))
7270 `(("glib" ,glib) ; required by goa-1.0.pc
7271 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7273 `(("docbook-xsl" ,docbook-xsl)
7274 ("json-glib" ,json-glib)
7275 ("libsecret" ,libsecret)
7277 ("webkitgtk" ,webkitgtk)))
7278 (synopsis "Single sign-on framework for GNOME")
7279 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
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+)))
7287 (define-public evolution-data-server
7289 (name "evolution-data-server")
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"))
7300 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7301 (build-system cmake-build-system)
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
7319 (modify-phases %standard-phases
7320 (add-after 'unpack 'disable-failing-tests
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\\)") ""))
7328 (add-after 'unpack 'patch-paths
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")))
7336 (add-before 'configure 'dont-override-rpath
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 .*") ""))
7344 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7345 ("gobject-introspection" ,gobject-introspection)
7347 ("intltool" ,intltool)
7348 ("pkg-config" ,pkg-config)
7350 ("python" ,python-wrapper)))
7352 ;; These are all in the Requires field of .pc files.
7354 ("libical" ,libical)
7355 ("libsecret" ,libsecret)
7356 ("libsoup" ,libsoup)
7358 ("sqlite" ,sqlite)))
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")
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)))
7377 (define-public caribou
7383 (uri (string-append "mirror://gnome/sources/" name "/"
7384 (version-major+minor version) "/"
7385 name "-" version ".tar.xz"))
7388 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7389 (build-system glib-or-gtk-build-system)
7392 (modify-phases %standard-phases
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")))
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")))
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"))))
7417 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7418 ("gobject-introspection" ,gobject-introspection)
7419 ("intltool" ,intltool)
7420 ("pkg-config" ,pkg-config)
7423 ("xsltproc" ,libxslt)))
7425 ;; caribou-1.0.pc refers to all these.
7426 `(("libgee" ,libgee)
7427 ("libxklavier" ,libxklavier)
7428 ("libxtst" ,libxtst)
7431 `(("clutter" ,clutter)
7434 ("python-pygobject" ,python-pygobject)))
7435 (synopsis "Text entry and UI navigation application")
7436 (home-page "https://wiki.gnome.org/Projects/Caribou")
7438 "Caribou is an input assistive technology intended for switch and pointer
7440 (license license:lgpl2.1)))
7442 (define-public network-manager
7444 (name "network-manager")
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"))
7454 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7455 (modules '((guix build utils)))
7458 (substitute* "src/devices/wwan/nm-modem-manager.c"
7459 (("systemd") "elogind"))
7461 (build-system meson-build-system)
7463 "doc")) ; 8 MiB of gtk-doc HTML
7466 (let ((out (assoc-ref %outputs "out"))
7467 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7470 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7472 (string-append "-Dc_link_args=-Wl,-rpath="
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"
7488 "--localstatedir=/var"
7489 (string-append "-Dudev_dir="
7491 (string-append "-Ddbus_conf_dir="
7492 out "/etc/dbus-1/system.d")
7494 (string-append "-Ddhclient=" dhclient)))
7496 (modify-phases %standard-phases
7497 (add-before 'configure 'pre-configure
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
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.*") ""))
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")))
7521 (add-before 'check 'pre-check
7523 ;; For the missing /etc/machine-id.
7524 (setenv "DBUS_FATAL_WARNINGS" "0")
7526 (add-before 'install 'no-polkit-magic
7527 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7529 (setenv "PKEXEC_UID" "something")
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"))
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)
7557 ("python" ,python-wrapper)
7558 ("python-dbus" ,python-dbus)
7559 ("python-pygobject" ,python-pygobject)))
7562 ("cyrus-sasl" ,cyrus-sasl)
7563 ("dbus-glib" ,dbus-glib)
7564 ("dnsmasq" ,dnsmasq)
7567 ("iptables" ,iptables)
7568 ("isc-dhcp" ,isc-dhcp)
7569 ("iwd" ,iwd) ; wpa_supplicant alternative
7570 ("jansson" ,jansson)
7572 ("libgcrypt" ,libgcrypt)
7573 ("libgudev" ,libgudev)
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
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")
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
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
7597 (license (list license:gpl2+
7599 (properties '((upstream-name . "NetworkManager")))))
7601 (define-public network-manager-openvpn
7603 (name "network-manager-openvpn")
7608 "mirror://gnome/sources/NetworkManager-openvpn/"
7609 (version-major+minor version)
7610 "/NetworkManager-openvpn-" version ".tar.xz"))
7613 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7614 (build-system gnu-build-system)
7616 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
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")
7623 (modprobe (string-append (assoc-ref inputs "kmod")
7625 (pretty-ovpn (string-append "\"" ovpn "\"")))
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")))
7636 `(("pkg-config" ,pkg-config)
7637 ("intltool" ,intltool)))
7641 ("openvpn" ,openvpn)
7642 ("network-manager" ,network-manager)
7644 ("libsecret" ,libsecret)))
7645 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7646 (synopsis "OpenVPN plug-in for NetworkManager")
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")))))
7653 (define-public network-manager-vpnc
7655 (name "network-manager-vpnc")
7660 "mirror://gnome/sources/NetworkManager-vpnc/"
7661 (version-major+minor version)
7662 "/NetworkManager-vpnc-" version ".tar.xz"))
7665 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7666 (build-system gnu-build-system)
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")
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")
7679 (modprobe (string-append (assoc-ref inputs "kmod")
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)))
7689 `(("pkg-config" ,pkg-config)
7690 ("intltool" ,intltool)))
7695 ("network-manager" ,network-manager)
7697 ("libsecret" ,libsecret)))
7698 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7699 (synopsis "VPNC plug-in for NetworkManager")
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")))))
7706 (define-public network-manager-openconnect
7708 (name "network-manager-openconnect")
7713 "mirror://gnome/sources/NetworkManager-openconnect/"
7714 (version-major+minor version)
7715 "/NetworkManager-openconnect-" version ".tar.xz"))
7718 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7719 (build-system gnu-build-system)
7721 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
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")
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)))
7736 `(("intltool" ,intltool)
7738 ("pkg-config" ,pkg-config)))
7743 ("libsecret" ,libsecret)
7744 ("libxml2" ,libxml2)
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")
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")
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"))))))
7762 (define-public mobile-broadband-provider-info
7764 (name "mobile-broadband-provider-info")
7765 (version "20190116")
7769 "mirror://gnome/sources/"
7770 "mobile-broadband-provider-info/" version "/"
7771 "mobile-broadband-provider-info-" version ".tar.xz"))
7774 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7775 (build-system gnu-build-system)
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)))
7783 (define-public network-manager-applet
7785 (name "network-manager-applet")
7789 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7790 (version-major+minor version) "/"
7791 "network-manager-applet-" version ".tar.xz"))
7794 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
7795 (build-system meson-build-system)
7797 '(#:glib-or-gtk? #t))
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)))
7805 ;; libnm-gtk.pc refers to all these.
7806 `(("dbus-glib" ,dbus-glib)
7808 ("network-manager" ,network-manager)
7809 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7810 ("libnma" ,libnma)))
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")
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+)))
7826 (define-public libxml++
7832 (uri (string-append "mirror://gnome/sources/" name "/"
7833 (version-major+minor version) "/"
7834 name "-" version ".tar.xz"))
7837 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
7838 (build-system gnu-build-system)
7839 ;; libxml++-3.0.pc refers to all these.
7841 `(("libxml2" ,libxml2)
7842 ("glibmm" ,glibmm)))
7845 ("pkg-config" ,pkg-config)))
7846 (home-page "http://libxmlplusplus.sourceforge.net/")
7847 (synopsis "C++ wrapper for XML parser library libxml2")
7849 "This package provides a C++ wrapper for the XML parser library
7851 (license license:lgpl2.1+)))
7853 (define-public libxml++-2
7860 (uri (string-append "mirror://gnome/sources/" name "/"
7861 (version-major+minor version) "/"
7862 name "-" version ".tar.xz"))
7865 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
7873 (uri (string-append "mirror://gnome/sources/" name "/"
7874 (version-major+minor version) "/"
7875 name "-" version ".tar.xz"))
7878 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
7879 (patches (search-patches "gdm-default-session.patch"))))
7880 (build-system glib-or-gtk-build-system)
7883 `("--without-plymouth"
7884 "--disable-systemd-journal"
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"
7891 ;; Use '/etc/environment' for locale settings instead of the
7892 ;; systemd-specific '/etc/locale.conf'.
7893 "--with-lang-file=/etc/environment"
7895 ,(string-append "--with-udevdir="
7896 (assoc-ref %outputs "out") "/lib/udev")
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")
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"))
7908 (modify-phases %standard-phases
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")
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")
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"
7945 ;; XXX: Remove this once GNOME Shell is
7946 ;; a dependency of GDM.
7948 (substitute* "daemon/gdm-session.c"
7949 (("set_up_session_environment \\(self\\);")
7950 (apply string-append
7951 "set_up_session_environment (self);\n"
7954 "gdm_session_set_environment_variable "
7955 "(self, \"" name "\","
7956 "g_getenv (\"" name "\"));\n"))
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\")")
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/"
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; }"))
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")))
8003 (with-output-to-file fail
8007 '("[Desktop Entry]\n"
8009 "Type=Application\n"
8011 "Comment=This session fails immediately.\n"
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.
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")))
8028 (with-directory-excursion autostart
8029 (for-each (lambda (desktop)
8030 (symlink desktop (basename desktop)))
8031 (find-files (string-append settings "/etc/xdg"))))
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)))
8042 `(("accountsservice" ,accountsservice)
8043 ("check" ,check) ; for testing
8044 ("elogind" ,elogind)
8045 ("gnome-session" ,gnome-session)
8046 ("gnome-settings-daemon" ,gnome-settings-daemon)
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/")
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+)))
8058 (define-public libgtop
8064 (uri (string-append "mirror://gnome/sources/libgtop/"
8065 (version-major+minor version) "/"
8066 "libgtop-" version ".tar.xz"))
8069 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8070 (build-system gnu-build-system)
8072 `(("gobject-introspection" ,gobject-introspection)
8073 ("intltool" ,intltool)
8075 ("pkg-config" ,pkg-config)))
8077 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8078 (synopsis "Portable system access library")
8079 (home-page "https://www.gnome.org/")
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+)))
8085 (define-public gnome-bluetooth
8087 (name "gnome-bluetooth")
8091 (uri (string-append "mirror://gnome/sources/" name "/"
8092 (version-major+minor version) "/"
8093 name "-" version ".tar.xz"))
8096 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8097 (build-system meson-build-system)
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)))
8106 ;; gnome-bluetooth-1.0.pc refers to all these.
8111 ("libcanberra" ,libcanberra)
8112 ("libnotify" ,libnotify)))
8113 (synopsis "GNOME Bluetooth subsystem")
8114 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8116 "This package contains tools for managing and manipulating Bluetooth
8117 devices using the GNOME desktop.")
8118 (license license:lgpl2.1+)))
8120 (define-public gnome-control-center
8122 (name "gnome-control-center")
8126 (uri (string-append "mirror://gnome/sources/" name "/"
8127 (version-major+minor version) "/"
8128 name "-" version ".tar.xz"))
8131 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8132 (build-system meson-build-system)
8136 (list "-Dcheese=false"
8137 (string-append "-Dgnome_session_libexecdir="
8138 (assoc-ref %build-inputs "gnome-session")
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\"")))
8173 (add-after 'unpack 'skip-gtk-update-icon-cache
8174 ;; Don't create 'icon-theme.cache'.
8176 (substitute* "build-aux/meson/meson_post_install.py"
8177 (("gtk-update-icon-cache") (which "true")))
8180 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8181 ("intltool" ,intltool)
8182 ("pkg-config" ,pkg-config)
8183 ("xsltproc" ,libxslt)
8185 ("hicolor-icon-theme" ,hicolor-icon-theme)
8186 ("python-dbusmock" ,python-dbusmock)
8187 ("xorg-server" ,xorg-server-for-tests)))
8189 `(("accountsservice" ,accountsservice)
8190 ("clutter-gtk" ,clutter-gtk)
8191 ("colord-gtk" ,colord-gtk)
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)
8205 ("libcanberra" ,libcanberra)
8206 ("libgnomekbd" ,libgnomekbd)
8207 ("libgudev" ,libgudev)
8208 ("libgtop" ,libgtop)
8210 ("libpwquality" ,libpwquality)
8211 ("libsecret" ,libsecret)
8212 ("libsoup" ,libsoup)
8213 ("libxml2" ,libxml2)
8214 ("libwacom" ,libwacom)
8216 ("mit-krb5" ,mit-krb5)
8217 ("modem-manager" ,modem-manager)
8218 ("network-manager-applet" ,network-manager-applet)
8220 ("pulseaudio" ,pulseaudio)
8221 ("smbclient" ,samba)
8224 ("upower" ,upower)))
8225 (synopsis "Utilities to configure the GNOME desktop")
8226 (home-page "https://www.gnome.org/")
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+)))
8234 (define-public gnome-shell
8236 (name "gnome-shell")
8240 (uri (string-append "mirror://gnome/sources/" name "/"
8241 (version-major+minor version) "/"
8242 name "-" version ".tar.xz"))
8245 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
8246 (patches (search-patches "gnome-shell-theme.patch"
8247 "gnome-shell-disable-test.patch"))
8248 (modules '((guix build utils)))
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")
8259 (build-system meson-build-system)
8262 #:disallowed-references ((,glib "bin")
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"))
8272 #:modules ((guix build meson-build-system)
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"
8285 (string-append "keysdir = '" keysdir "'\n")))
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"
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'")))
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")
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
8321 (string-append (assoc-ref inputs pkg) "/lib"))
8323 "gnome-bluetooth" "librsvg" "libgweather"))))
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"))
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)))))))
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)
8349 ("ruby-sass" ,ruby-sass)
8351 ("xsltproc" ,libxslt)
8353 ("xorg-server" ,xorg-server-for-tests)))
8355 `(("accountsservice" ,accountsservice)
8356 ("caribou" ,caribou)
8357 ("docbook-xsl" ,docbook-xsl)
8358 ("evolution-data-server" ,evolution-data-server)
8361 ("gdk-pixbuf" ,gdk-pixbuf+svg)
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)
8369 ("libcanberra" ,libcanberra)
8370 ("libcroco" ,libcroco)
8371 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8372 ("libgweather" ,libgweather)
8374 ("libsoup" ,libsoup)
8375 ("mesa-headers" ,mesa-headers)
8377 ("network-manager-applet" ,network-manager-applet)
8379 ("pulseaudio" ,pulseaudio)
8380 ("python-pygobject" ,python-pygobject)
8381 ("startup-notification" ,startup-notification)
8382 ("telepathy-logger" ,telepathy-logger)
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")
8391 "GNOME Shell provides core user interface functions for the GNOME desktop,
8392 like switching to windows and launching applications.")
8393 (license license:gpl2+)))
8395 (define-public gtk-vnc
8403 (string-append "mirror://gnome/sources/" name "/"
8404 (version-major+minor version) "/"
8405 name "-" version ".tar.xz"))
8407 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8408 (build-system meson-build-system)
8410 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8413 ("glib:bin" ,glib "bin")
8414 ("gobject-introspection" ,gobject-introspection)
8415 ("intltool" ,intltool)
8418 ("pkg-config" ,pkg-config)
8419 ("python" ,python-wrapper)
8423 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8426 ("libgcrypt" ,libgcrypt)
8427 ("libsasl" ,cyrus-sasl)
8428 ("pulseaudio" ,pulseaudio)
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+)))
8441 (define-public gnome-autoar
8443 (name "gnome-autoar")
8447 (uri (string-append "mirror://gnome/sources/" name "/"
8448 (version-major+minor version) "/"
8449 name "-" version ".tar.xz"))
8452 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
8453 (build-system glib-or-gtk-build-system)
8455 `(("gobject-introspection" ,gobject-introspection)
8456 ("pkg-config" ,pkg-config)))
8458 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8461 (synopsis "Archives integration support for GNOME")
8462 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8464 "GNOME Autoar is a library which makes creating and extracting archives
8465 easy, safe, and automatic.")
8466 (license license:lgpl2.1+)))
8468 (define-public tracker
8474 (uri (string-append "mirror://gnome/sources/tracker/"
8475 (version-major+minor version) "/"
8476 "tracker-" version ".tar.xz"))
8479 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8480 (build-system meson-build-system)
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"))
8489 (modify-phases %standard-phases
8490 (add-before 'check 'pre-check
8492 ;; Some tests expect to write to $HOME.
8493 (setenv "HOME" "/tmp")
8496 `(("glib:bin" ,glib "bin")
8497 ("gobject-introspection" ,gobject-introspection)
8498 ("python-pygobject" ,python-pygobject)
8499 ("intltool" ,intltool)
8500 ("pkg-config" ,pkg-config)
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")
8512 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
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.
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
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.
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+
8536 license:lgpl2.1+))))
8538 (define-public tracker-miners
8540 (name "tracker-miners")
8544 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8545 (version-major+minor version)
8546 "/tracker-miners-" version ".tar.xz"))
8549 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8550 (build-system meson-build-system)
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
8561 ;; Exception: The functional tests require DConf to be the default
8562 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8563 "-Dfunctional_tests=false")))
8566 ("intltool" ,intltool)
8567 ("glib:bin" ,glib "bin")
8568 ("gobject-introspection" ,gobject-introspection)
8569 ("pkg-config" ,pkg-config)
8570 ("python-pygobject" ,python-pygobject)))
8572 `(("exempi" ,exempi)
8577 ("gstreamer" ,gstreamer)
8580 ("libexif" ,libexif)
8582 ("libgxps" ,libgxps)
8583 ("libiptcdata" ,libiptcdata)
8584 ("libjpeg" ,libjpeg-turbo)
8585 ("libosinfo" ,libosinfo)
8587 ("libseccomp" ,libseccomp)
8588 ("libtiff" ,libtiff)
8589 ("libvorbis" ,libvorbis)
8590 ("libxml2" ,libxml2)
8591 ("poppler" ,poppler)
8593 ("totem-pl-parser" ,totem-pl-parser)
8594 ("tracker" ,tracker)
8597 (synopsis "Metadata database, indexer and search tool")
8598 (home-page "https://wiki.gnome.org/Projects/Tracker")
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+
8607 license:lgpl2.0+))))
8609 (define-public nautilus
8615 (uri (string-append "mirror://gnome/sources/" name "/"
8616 (version-major+minor version) "/"
8617 name "-" version ".tar.xz"))
8620 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8621 (build-system meson-build-system)
8625 (modify-phases %standard-phases
8626 (add-after 'unpack 'skip-gtk-update-icon-cache
8627 ;; Don't create 'icon-theme.cache'.
8629 (substitute* "build-aux/meson/postinstall.py"
8630 (("gtk-update-icon-cache") "true"))
8632 ;; XXX: FAIL: check-nautilus
8633 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
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)))
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
8655 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8657 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8659 ("libexif" ,libexif)
8660 ("libxml2" ,libxml2)))
8661 (synopsis "File manager for GNOME")
8662 (home-page "https://wiki.gnome.org/Apps/Nautilus")
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
8667 (license license:gpl2+)))
8669 (define-public baobab
8676 "mirror://gnome/sources/" name "/"
8677 (version-major+minor version) "/"
8678 name "-" version ".tar.xz"))
8681 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
8682 (build-system meson-build-system)
8684 '(#:glib-or-gtk? #t))
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")
8696 (synopsis "Disk usage analyzer for GNOME")
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+)))
8705 (define-public gnome-backgrounds
8707 (name "gnome-backgrounds")
8712 (uri (string-append "mirror://gnome/sources/" name "/"
8713 (version-major+minor version) "/"
8714 name "-" version ".tar.xz"))
8717 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8718 (build-system meson-build-system)
8720 `(("intltool" ,intltool)))
8721 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8722 (synopsis "Background images for the GNOME desktop")
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+
8731 license:cc-by-sa3.0))))
8733 (define-public gnome-screenshot
8735 (name "gnome-screenshot")
8740 (uri (string-append "mirror://gnome/sources/" name "/"
8741 (version-major+minor version) "/"
8742 name "-" version ".tar.xz"))
8745 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8746 (build-system meson-build-system)
8749 (modify-phases %standard-phases
8750 (add-after 'unpack 'skip-gtk-update-icon-cache
8751 ;; Don't create 'icon-theme.cache'.
8753 (substitute* "build-aux/postinstall.py"
8754 (("gtk-update-icon-cache") "true"))
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)))
8764 ("libcanberra" ,libcanberra)
8766 ("libxext" ,libxext)))
8767 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8768 (synopsis "Take pictures of your screen")
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+)))
8775 (define-public dconf-editor
8777 (name "dconf-editor")
8782 (uri (string-append "mirror://gnome/sources/" name "/"
8783 (version-major+minor version) "/"
8784 name "-" version ".tar.xz"))
8787 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8788 (build-system meson-build-system)
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)
8798 ("libxml2" ,libxml2)))
8799 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
8800 (synopsis "Graphical editor for GNOME's dconf configuration system")
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+)))
8807 (define-public gnome-default-applications
8809 (name "gnome-default-applications")
8811 (build-system trivial-build-system)
8814 `(("nautilus" ,nautilus)
8815 ("evince" ,evince)))
8817 `(#:modules ((guix build utils))
8820 (use-modules (guix build utils))
8821 (let* ((out (assoc-ref %outputs "out"))
8822 (apps (string-append out "/share/applications")))
8824 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
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")))
8831 (synopsis "Default MIME type associations for the GNOME desktop")
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+)
8841 (define-public libgovirt
8847 (uri (string-append "mirror://gnome/sources/" name "/"
8848 (version-major+minor version) "/"
8849 name "-" version ".tar.xz"))
8852 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
8853 (build-system glib-or-gtk-build-system)
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)))
8862 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
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+)))
8869 (define-public gnome-weather
8871 (name "gnome-weather")
8875 (uri (string-append "mirror://gnome/sources/" name "/"
8876 (version-major+minor version) "/"
8877 name "-" version ".tar.xz"))
8880 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
8881 (build-system meson-build-system)
8883 `(("gettext" ,gettext-minimal)
8884 ("glib:bin" ,glib "bin")
8885 ("gobject-introspection" ,gobject-introspection)
8886 ("gtk+:bin" ,gtk+ "bin")
8887 ("pkg-config" ,pkg-config)))
8889 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
8890 ("appstream-glib" ,appstream-glib)
8891 ("geoclue" ,geoclue)
8892 ("gdk-pixbuf" ,gdk-pixbuf)
8894 ("gnome-desktop" ,gnome-desktop)
8895 ("libgweather" ,libgweather)))
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"))
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)))
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
8921 (home-page "https://wiki.gnome.org/Apps/Weather")
8922 (license license:gpl2+)))
8924 (define-public gnome
8927 (version (package-version gnome-shell))
8929 (build-system trivial-build-system)
8930 (arguments '(#:builder (begin (mkdir %output) #t)))
8932 ;; TODO: Add or remove packages according to:
8933 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
8935 ;; GNOME-Core-OS-Services
8936 ("accountsservice" ,accountsservice)
8937 ("network-manager" ,network-manager)
8938 ("packagekit" ,packagekit)
8941 ("adwaita-icon-theme" ,adwaita-icon-theme)
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)
8966 ;; GNOME-Core-Utilities
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))
8974 ("epiphany" ,epiphany)
8976 ("file-roller" ,file-roller)
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)
8998 ("hicolor-icon-theme" ,hicolor-icon-theme)
8999 ("gnome-online-accounts" ,gnome-online-accounts)
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)
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)
9021 ("zenity" ,zenity)))
9022 (synopsis "The GNU desktop environment")
9023 (home-page "https://www.gnome.org/")
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+)))
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"))
9037 (version (string-append "0.2-1." (string-take commit 7)))
9041 (url "https://git.gnome.org/browse/byzanz")
9043 (file-name (string-append name "-" version "-checkout"))
9046 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9047 (build-system glib-or-gtk-build-system)
9050 (modify-phases %standard-phases
9051 (add-before 'bootstrap 'build-without-Werror
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")
9061 `(("autoconf" ,autoconf)
9062 ("automake" ,automake)
9063 ("gnome-common" ,gnome-common)
9064 ("intltool" ,intltool)
9065 ("libtool" ,libtool)
9066 ("pkg-config" ,pkg-config)
9070 ("gstreamer" ,gstreamer)
9071 ("gst-plugins-base" ,gst-plugins-base)
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+))))
9080 (define-public gsound
9086 (uri (string-append "mirror://gnome/sources/" name "/"
9087 (version-major+minor version) "/"
9088 name "-" version ".tar.xz"))
9091 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9092 (build-system glib-or-gtk-build-system)
9094 `(("pkg-config" ,pkg-config)
9095 ("gobject-introspection" ,gobject-introspection)
9099 ("libcanberra" ,libcanberra)))
9100 (home-page "https://wiki.gnome.org/Projects/GSound")
9101 (synopsis "GObject wrapper for libcanberra")
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
9106 (license license:lgpl2.1+)))
9108 (define-public libzapojit
9114 (uri (string-append "mirror://gnome/sources/" name "/"
9115 (version-major+minor version) "/"
9116 name "-" version ".tar.xz"))
9119 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9120 (build-system gnu-build-system)
9122 `(("gobject-introspection" ,gobject-introspection)
9123 ("intltool" ,intltool)
9124 ("pkg-config" ,pkg-config)))
9126 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9127 ("json-glib" ,json-glib)
9129 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9130 (synopsis "Library for accessing SkyDrive and Hotmail")
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+)))
9136 (define-public gnome-clocks
9138 (name "gnome-clocks")
9142 (uri (string-append "mirror://gnome/sources/" name "/"
9143 (version-major+minor version) "/"
9144 name "-" version ".tar.xz"))
9147 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9148 (build-system meson-build-system)
9152 (modify-phases %standard-phases
9153 (add-after 'unpack 'skip-gtk-update-icon-cache
9154 ;; Don't create 'icon-theme.cache'.
9156 (substitute* "build-aux/post-install.py"
9157 (("gtk-update-icon-cache") "true"))
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)))
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")
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+)))
9181 (define-public gnome-calendar
9183 (name "gnome-calendar")
9187 (uri (string-append "mirror://gnome/sources/" name "/"
9188 (version-major+minor version) "/"
9189 name "-" version ".tar.xz"))
9192 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9193 (build-system meson-build-system)
9196 ;; gnome-calendar has to be installed before the tests can be run
9197 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9200 (modify-phases %standard-phases
9201 (add-after 'unpack 'skip-gtk-update-icon-cache
9202 ;; Don't create 'icon-theme.cache'.
9204 (substitute* "build-aux/meson/meson_post_install.py"
9205 (("gtk-update-icon-cache") "true"))
9208 `(("gettext" ,gettext-minimal)
9209 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9210 ("pkg-config" ,pkg-config)))
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)))
9219 `(("evolution-data-server" ,evolution-data-server)))
9220 (home-page "https://wiki.gnome.org/Apps/Calendar")
9221 (synopsis "GNOME's calendar application")
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+)))
9227 (define-public gnome-todo
9233 (uri (string-append "mirror://gnome/sources/" name "/"
9234 (version-major+minor version) "/"
9235 name "-" version ".tar.xz"))
9238 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9240 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9241 (build-system meson-build-system)
9244 #:phases (modify-phases %standard-phases
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
9255 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9256 `("PYTHONPATH" ":" prefix (,python-path))))
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)))
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")
9277 "GNOME To Do is a simplistic personal task manager designed to perfectly
9278 fit the GNOME desktop.")
9279 (license license:gpl3+)))
9281 (define-public gnome-dictionary
9283 (name "gnome-dictionary")
9287 (uri (string-append "mirror://gnome/sources/" name "/"
9288 (version-major+minor version) "/"
9289 name "-" version ".tar.xz"))
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
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"))
9305 `(("glib:bin" ,glib "bin")
9306 ("gobject-introspection" ,gobject-introspection)
9307 ("intltool" ,intltool)
9308 ("itstool" ,itstool)
9309 ("pkg-config" ,pkg-config)
9310 ("xmllint" ,libxml2)))
9312 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9314 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9315 (synopsis "Look up words in dictionary sources")
9317 "GNOME Dictionary can look for the definition or translation of a word in
9318 existing databases over the internet.")
9319 (license license:gpl3+)))
9321 (define-public gnome-tweaks
9323 (name "gnome-tweaks")
9327 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9328 (version-major+minor version) "/"
9329 "gnome-tweaks-" version ".tar.xz"))
9331 (list (search-patch "gnome-tweaks-search-paths.patch")))
9334 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
9335 (build-system meson-build-system)
9338 #:configure-flags '("-Dlocalstatedir=/tmp"
9339 "-Dsysconfdir=/tmp")
9340 #:imported-modules ((guix build python-build-system)
9341 ,@%meson-build-system-modules)
9343 (modify-phases %standard-phases
9344 (add-after 'unpack 'skip-gtk-update-icon-cache
9345 ;; Don't create 'icon-theme.cache'.
9347 (substitute* "meson-postinstall.py"
9348 (("gtk-update-icon-cache") "true"))
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))))
9360 `(("intltool" ,intltool)
9361 ("pkg-config" ,pkg-config)))
9363 `(("gnome-desktop" ,gnome-desktop)
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)
9372 ("python-pygobject" ,python-pygobject)))
9373 (synopsis "Customize advanced GNOME 3 options")
9374 (home-page "https://wiki.gnome.org/Apps/Tweaks")
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+)))
9382 (define-public gnome-shell-extensions
9384 (name "gnome-shell-extensions")
9388 (uri (string-append "mirror://gnome/sources/" name "/"
9389 (version-major+minor version) "/"
9390 name "-" version ".tar.xz"))
9393 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9394 (build-system meson-build-system)
9396 '(#:configure-flags '("-Dextension_set=all")))
9398 `(("glib:bin" ,glib "bin")
9399 ("intltool" ,intltool)
9400 ("pkg-config" ,pkg-config)))
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+)))
9409 (define-public arc-theme
9412 (version "20190917")
9416 (url "https://github.com/NicoHood/arc-theme")
9418 (file-name (git-file-name name version))
9421 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
9422 (build-system gnu-build-system)
9425 (modify-phases %standard-phases
9426 ;; autogen.sh calls configure at the end of the script.
9428 (lambda _ (invoke "autoreconf" "-vfi")))
9429 (add-before 'build 'set-home ;placate Inkscape
9431 (setenv "HOME" (getcwd))
9434 `(("autoconf" ,autoconf)
9435 ("automake" ,automake)
9436 ("glib" ,glib "bin") ; for glib-compile-resources
9437 ("gnome-shell" ,gnome-shell)
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+)))
9451 (define-public faba-icon-theme
9453 (name "faba-icon-theme")
9459 (url "https://github.com/snwh/faba-icon-theme")
9460 (commit (string-append "v" version))))
9461 (file-name (git-file-name name version))
9463 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
9464 (build-system meson-build-system)
9467 (modify-phases %standard-phases
9468 (add-before 'configure 'disable-post-install
9470 (substitute* "meson.build"
9471 (("meson.add_install_script.*") "")))))))
9473 `(("autoconf" ,autoconf)
9474 ("automake" ,automake)))
9475 (synopsis "Faba icon theme")
9477 "Faba is a minimal icon set used as a basis for other themes such as
9479 (home-page "https://snwh.org/moka")
9480 (license (list license:lgpl3+
9481 license:cc-by-sa4.0))))
9483 (define-public moka-icon-theme
9485 (inherit faba-icon-theme)
9486 (name "moka-icon-theme")
9492 (url "https://github.com/snwh/moka-icon-theme")
9493 (commit (string-append "v" version))))
9494 (file-name (git-file-name name version))
9496 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
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))))
9507 (define-public arc-icon-theme
9509 (name "arc-icon-theme")
9510 (version "20161122")
9515 (url "https://github.com/horst3180/arc-icon-theme")
9517 (file-name (git-file-name name version))
9519 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
9520 (build-system gnu-build-system)
9523 (modify-phases %standard-phases
9524 (add-after 'unpack 'disable-configure-during-bootstrap
9526 (substitute* "autogen.sh"
9527 (("^\"\\$srcdir/configure\".*") ""))
9530 `(("autoconf" ,autoconf)
9531 ("automake" ,automake)))
9532 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
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+)))
9542 (define-public folks
9549 "mirror://gnome/sources/folks/"
9550 (version-major+minor version) "/"
9551 "folks-" version ".tar.xz"))
9554 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9555 (build-system meson-build-system)
9558 (modify-phases %standard-phases
9559 (add-after 'unpack 'skip-gtk-update-icon-cache
9560 ;; Don't create 'icon-theme.cache'.
9562 (substitute* "meson_post_install.py"
9563 (("gtk-update-icon-cache") "true"))
9567 ("dbus-glib" ,dbus-glib)
9568 ("evolution-data-server" ,evolution-data-server)
9571 ("readline" ,readline)
9572 ("telepathy-glib" ,telepathy-glib)))
9574 `(("glib:bin" ,glib "bin")
9575 ("gobject-introspection" ,gobject-introspection)
9576 ("intltool" ,intltool)
9577 ("pkg-config" ,pkg-config)
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
9585 (home-page "https://wiki.gnome.org/Projects/Folks")
9586 (license license:lgpl2.1+)))
9588 (define-public gfbgraph
9595 "mirror://gnome/sources/gfbgraph/"
9596 (version-major+minor version) "/"
9597 "gfbgraph-" version ".tar.xz"))
9600 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9601 (build-system glib-or-gtk-build-system)
9603 `(#:tests? #f ; tests appear to require the network
9604 #:configure-flags '("--disable-static"
9606 "--enable-introspection")))
9608 `(("gobject-introspection" ,gobject-introspection)
9609 ("gtk-doc" ,gtk-doc)
9610 ("pkg-config" ,pkg-config)
9612 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9613 ("autoconf" ,autoconf)
9614 ("automake" ,automake)
9615 ("libtool" ,libtool)
9618 `(("json-glib" ,json-glib)
9619 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
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+)))
9627 (define-public libgnomekbd
9629 (name "libgnomekbd")
9633 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9634 (version-major+minor version) "/"
9635 "libgnomekbd-" version ".tar.xz"))
9638 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9639 (build-system gnu-build-system)
9641 `(("pkg-config" ,pkg-config)
9642 ("glib" ,glib "bin")
9643 ("intltool" ,intltool)))
9645 ;; Referred to in .h files and .pc.
9648 ("libxklavier" ,libxklavier)))
9649 (home-page "https://www.gnome.org")
9650 (synopsis "GNOME keyboard configuration library")
9652 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9653 environment, which can notably display keyboard layouts.")
9654 (license license:lgpl2.0+)))
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
9666 (uri (string-append "mirror://gnome/sources/" name "/"
9667 (version-major+minor version) "/"
9668 name "-" version ".tar.xz"))
9671 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9672 (build-system glib-or-gtk-build-system)
9674 `(#:configure-flags '("--disable-static"
9675 "--disable-dbus" ; use gdbus
9676 "--enable-introspection")))
9678 `(("pkg-config" ,pkg-config)
9679 ("gobject-introspection" ,gobject-introspection)
9680 ("glib:bin" ,glib "bin")
9681 ("gtk-doc" ,gtk-doc)))
9683 ;; Referred to in .h files and .pc.
9685 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9686 (synopsis "Library for writing single instance applications")
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+)))
9696 (define-public gnome-calculator
9698 (name "gnome-calculator")
9703 (uri (string-append "mirror://gnome/sources/" name "/"
9704 (version-major+minor version) "/"
9705 name "-" version ".tar.xz"))
9708 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9709 (build-system meson-build-system)
9710 (arguments '(#:glib-or-gtk? #t))
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)
9717 ("pkg-config" ,pkg-config)))
9720 ("gtksourceview" ,gtksourceview)
9722 ("libsoup" ,libsoup)
9723 ("libxml2" ,libxml2)
9726 (home-page "https://wiki.gnome.org/Apps/Calculator")
9727 (synopsis "Desktop calculator")
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)))
9740 (uri (string-append "https://launchpad.net/xpad/trunk/"
9741 version "/+download/"
9742 name "-" version ".tar.bz2"))
9745 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9746 (build-system gnu-build-system)
9748 `(("autoconf" ,autoconf)
9749 ("automake" ,automake)
9750 ("gtk+:bin" ,gtk+ "bin")
9751 ("intltool" ,intltool)
9752 ("pkg-config" ,pkg-config)))
9754 `(("gtksourceview" ,gtksourceview-3)
9756 (home-page "https://wiki.gnome.org/Apps/Xpad")
9757 (synopsis "Virtual sticky note")
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+)))
9764 (define-public gucharmap
9765 (let ((unicode-files
9767 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9769 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9771 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9773 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9775 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9777 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9784 (uri (string-append "mirror://gnome/sources/" name "/"
9785 (version-major+minor version) "/"
9786 name "-" version ".tar.xz"))
9789 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9790 (build-system glib-or-gtk-build-system)
9792 `(#:modules ((ice-9 match)
9793 (guix build glib-or-gtk-build-system)
9796 (list "--with-unicode-data=../unicode-data")
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
9805 (install-file (assoc-ref inputs file) ".")))
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
9821 "http://www.unicode.org/Public/12.0.0/ucd/"
9823 (sha256 (base32 hash))))))
9828 ("xmllint" ,libxml2)))
9829 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9830 (synopsis "Unicode character picker and font browser")
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+))))
9838 (define-public bluefish
9845 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
9846 "bluefish-" version ".tar.gz"))
9848 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
9849 (build-system gnu-build-system)
9851 `(("desktop-file-utils" ,desktop-file-utils)
9852 ("intltool" ,intltool)
9853 ("pkg-config" ,pkg-config)))
9855 `(("enchant" ,enchant)
9857 ("python" ,python-wrapper)
9858 ("xmllint" ,libxml2)
9859 ("gucharmap" ,gucharmap)))
9860 (home-page "http://bluefish.openoffice.nl")
9861 (synopsis "Web development studio")
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+)))
9868 (define-public gnome-system-monitor
9870 (name "gnome-system-monitor")
9875 (uri (string-append "mirror://gnome/sources/" name "/"
9876 (version-major+minor version) "/"
9877 name "-" version ".tar.xz"))
9880 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
9881 (build-system meson-build-system)
9884 #:configure-flags '("-Dsystemd=false")))
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)
9892 ("pkg-config" ,pkg-config)))
9894 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
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")
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+)))
9910 (define-public python-pyatspi
9912 (name "python-pyatspi")
9917 "mirror://gnome/sources/pyatspi/"
9918 (version-major+minor version)
9919 "/pyatspi-" version ".tar.xz"))
9922 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
9923 (build-system gnu-build-system)
9926 (modify-phases %standard-phases
9927 (add-before 'build 'fix-atk-load
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"))
9936 `(("pkg-config" ,pkg-config)))
9938 `(("python" ,python)))
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")
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")))))
9950 (define-public python2-pyatspi
9952 (inherit python-pyatspi)
9953 (name "python2-pyatspi")
9955 `(("python" ,python-2)))
9957 `(("python-pygobject" ,python2-pygobject)))))
9966 "mirror://gnome/sources/" name "/"
9967 (version-major+minor version) "/"
9968 name "-" version ".tar.xz"))
9971 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
9972 (build-system glib-or-gtk-build-system)
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))))
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")))
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")))))
9996 `(("intltool" ,intltool)
9997 ("itstool" ,itstool)
9998 ("pkg-config" ,pkg-config)
9999 ("xmllint" ,libxml2)))
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)
10008 ("python-pygobject" ,python-pygobject)
10009 ("python-pyatspi" ,python-pyatspi)
10010 ("python-speechd" ,speech-dispatcher)
10011 ("xkbcomp" ,xkbcomp)))
10013 "Screen reader for individuals who are blind or visually impaired")
10014 (home-page "https://wiki.gnome.org/Projects/Orca")
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+)))
10021 (define-public gspell
10027 (uri (string-append "mirror://gnome/sources/" name "/"
10028 (version-major+minor version) "/"
10029 name "-" version ".tar.xz"))
10032 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10033 (patches (search-patches "gspell-dash-test.patch"))))
10034 (build-system glib-or-gtk-build-system)
10036 '(#:configure-flags (list "--enable-vala")
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")
10045 ;; For the missing /etc/machine-id.
10046 (setenv "DBUS_FATAL_WARNINGS" "0")
10048 ;; Allow Enchant and its Aspell backend to find the en_US
10050 (setenv "ASPELL_DICT_DIR"
10051 (string-append (assoc-ref inputs "aspell-dict-en")
10057 ("iso-codes" ,iso-codes)))
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)
10066 ("aspell-dict-en" ,aspell-dict-en)
10067 ("xorg-server" ,xorg-server-for-tests)))
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")
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+)))
10078 (define-public gnome-planner
10080 (name "gnome-planner")
10084 (uri (string-append "mirror://gnome/sources/planner/"
10085 (version-major+minor version) "/planner-"
10086 version ".tar.xz"))
10089 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10090 (build-system glib-or-gtk-build-system)
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")
10101 `(("libgnomecanvas" ,libgnomecanvas)
10102 ("libgnomeui" ,libgnomeui)
10103 ("libglade" ,libglade)
10104 ("gnome-vfs" ,gnome-vfs)
10106 ("libxml2" ,libxml2)
10107 ("libxslt" ,libxslt)
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")
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+)))
10127 (define-public lollypop
10134 (uri (string-append "https://adishatz.org/lollypop/"
10135 "lollypop-" version ".tar.xz"))
10137 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
10138 (build-system meson-build-system)
10140 `(#:imported-modules
10141 (,@%meson-build-system-modules
10142 (guix build python-build-system))
10144 ((guix build meson-build-system)
10145 ((guix build python-build-system) #:prefix python:)
10146 (guix build utils))
10148 #:tests? #f ; no test suite
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))))
10158 (add-after 'install 'wrap-python
10159 (assoc-ref python:%standard-phases 'wrap)))))
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)))
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)
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)))
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")
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+)))
10196 (define-public gnome-video-effects
10198 (name "gnome-video-effects")
10202 (uri (string-append "mirror://gnome/sources/" name "/"
10203 (version-major+minor version) "/" name "-"
10204 version ".tar.xz"))
10207 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10208 (build-system meson-build-system)
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")
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+)))
10219 (define-public cheese
10225 (uri (string-append "mirror://gnome/sources/" name "/"
10226 (version-major+minor version) "/" name "-"
10227 version ".tar.xz"))
10230 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10232 `(#:glib-or-gtk? #t
10233 ;; Tests require GDK.
10236 (modify-phases %standard-phases
10237 (add-after 'unpack 'skip-gtk-update-icon-cache
10239 ;; Don't create 'icon-theme.cache'
10240 (substitute* "meson_post_install.py"
10241 (("gtk-update-icon-cache") (which "true")))
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")))
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))))
10259 (build-system meson-build-system)
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)
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)
10279 ("gstreamer" ,gstreamer)))
10281 `(("gnome-desktop" ,gnome-desktop)
10282 ("gobject-introspection" ,gobject-introspection)
10283 ("gst-plugins-base" ,gst-plugins-base)
10284 ("gst-plugins-bad" ,gst-plugins-bad)
10287 ("libxtst" ,libxtst)))
10288 (home-page "https://wiki.gnome.org/Apps/Cheese")
10289 (synopsis "Webcam photo booth software for GNOME")
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+)))
10295 (define-public sound-juicer
10297 (name "sound-juicer")
10302 (uri (string-append "mirror://gnome/sources/" name "/"
10303 (version-major+minor version) "/"
10304 name "-" version ".tar.xz"))
10307 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10308 (build-system glib-or-gtk-build-system)
10310 `(("desktop-file-utils" ,desktop-file-utils)
10311 ("intltool" ,intltool)
10312 ("itstool" ,itstool)
10313 ("pkg-config" ,pkg-config)
10314 ("xmllint" ,libxml2)))
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)
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+)))
10335 (define-public soundconverter
10337 (name "soundconverter")
10342 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10343 version "/+download/"
10344 "soundconverter-" version ".tar.xz"))
10347 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10348 (build-system glib-or-gtk-build-system)
10350 `(#:imported-modules ((guix build python-build-system)
10351 (guix build glib-or-gtk-build-system)
10352 ,@%gnu-build-system-modules)
10354 #:modules ((guix build glib-or-gtk-build-system)
10356 ((guix build gnu-build-system) #:prefix gnu:)
10357 ((guix build python-build-system) #:prefix python:))
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))))
10373 `(("intltool" ,intltool)
10374 ("pkg-config" ,pkg-config)
10375 ("glib:bin" ,glib "bin")))
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")
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)))
10390 (define-public workrave
10393 (version "1.10.42")
10397 (uri (git-reference
10398 (url "https://github.com/rcaelers/workrave")
10399 (commit (string-append "v" (string-map
10400 (match-lambda (#\. #\_) (chr chr))
10402 (file-name (git-file-name name version))
10404 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
10405 (build-system glib-or-gtk-build-system)
10407 ;; The only tests are maintainer tests (in po/), which fail.
10409 (inputs `(("glib" ,glib)
10411 ("gdk-pixbuf" ,gdk-pixbuf)
10415 ("libxtst" ,libxtst)
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)")
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+)))
10439 (define-public ghex
10445 (uri (string-append "mirror://gnome/sources/ghex/"
10446 (version-major+minor version) "/"
10447 "ghex-" version ".tar.xz"))
10450 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10451 (build-system meson-build-system)
10453 '(#:glib-or-gtk? #t
10455 (modify-phases %standard-phases
10456 (add-after 'unpack 'skip-gtk-update-icon-cache
10457 ;; Don't create 'icon-theme.cache'.
10459 (substitute* "meson_post_install.py"
10460 (("gtk-update-icon-cache") (which "true")))
10463 `(("pkg-config" ,pkg-config)
10464 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10465 ("gnome-common" ,gnome-common)
10467 ("intltool" ,intltool)
10468 ("yelp-tools" ,yelp-tools)
10469 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
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)))
10479 (define-public libdazzle
10485 (uri (string-append "mirror://gnome/sources/libdazzle/"
10486 (version-major+minor version) "/"
10487 "libdazzle-" version ".tar.xz"))
10490 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10491 (build-system meson-build-system)
10494 (modify-phases %standard-phases
10495 (add-before 'check 'pre-check
10497 ;; Tests require a running X server.
10498 (system "Xvfb :1 &")
10499 (setenv "DISPLAY" ":1")
10502 `(("glib" ,glib "bin") ; glib-compile-resources
10503 ("pkg-config" ,pkg-config)
10505 ("xorg-server" ,xorg-server-for-tests)))
10508 ("gobject-introspection" ,gobject-introspection)
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+)))
10520 (define-public evolution
10526 (uri (string-append "mirror://gnome/sources/evolution/"
10527 (version-major+minor version) "/"
10528 "evolution-" version ".tar.xz"))
10531 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
10532 (build-system cmake-build-system)
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))
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.
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")))
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)))))
10560 `(("glib" ,glib "bin") ; glib-mkenums
10561 ("pkg-config" ,pkg-config)
10562 ("intltool" ,intltool)
10563 ("itstool" ,itstool)))
10565 `(("enchant" ,enchant)
10566 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10568 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10569 ("gnome-autoar" ,gnome-autoar)
10570 ("gnome-desktop" ,gnome-desktop)
10572 ("highlight" ,highlight)
10573 ("libcanberra" ,libcanberra)
10574 ("libgweather" ,libgweather)
10575 ("libnotify" ,libnotify)
10576 ("libsoup" ,libsoup)
10578 ("openldap" ,openldap)
10579 ("webkitgtk" ,webkitgtk)
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
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/*
10591 (define-public gthumb
10597 (uri (string-append "mirror://gnome/sources/gthumb/"
10598 (version-major+minor version) "/"
10599 "gthumb-" version ".tar.xz"))
10602 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
10603 (build-system meson-build-system)
10605 `(#:glib-or-gtk? #t
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"))))
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)))
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+)))
10638 (define-public terminator
10640 (name "terminator")
10644 (uri (string-append "https://launchpad.net/" name "/"
10645 "gtk3/" version "/" "+download/"
10646 name "-" version ".tar.gz"))
10649 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
10650 (build-system python-build-system)
10652 `(("intltool" ,intltool)
10653 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10654 ("gettext" ,gettext-minimal)
10655 ("pkg-config" ,pkg-config)))
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)
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))
10672 (modify-phases %standard-phases
10674 'install 'wrap-program
10675 (lambda* (#:key outputs #:allow-other-keys)
10676 (let ((prog (string-append (assoc-ref outputs "out")
10677 "/bin/terminator")))
10679 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
10680 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
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")
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)))
10691 (define-public libhandy
10698 (uri (git-reference
10699 (url "https://gitlab.gnome.org/GNOME/libhandy")
10701 (file-name (git-file-name name version))
10703 (base32 "193y09yy0302x8fkyrnq591m805xp68bkd93fl5qggxi52k8pj0v"))))
10704 (build-system meson-build-system)
10706 `(#:configure-flags
10707 '("-Dglade_catalog=enabled"
10710 (modify-phases %standard-phases
10711 (add-before 'check 'pre-check
10713 ;; Tests require a running X server.
10714 (system "Xvfb :1 &")
10715 (setenv "DISPLAY" ":1")
10720 ("libxml2" ,libxml2)))
10722 `(("glib:bin" ,glib "bin")
10723 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10725 ("gtk-doc" ,gtk-doc)
10726 ("pkg-config" ,pkg-config)
10727 ("gettext" ,gettext-minimal)
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+)))
10739 (define-public libhandy-0.0
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))
10751 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
10753 (substitute-keyword-arguments (package-arguments libhandy)
10754 ((#:configure-flags flags)
10755 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
10757 (define-public libgit2-glib
10759 (name "libgit2-glib")
10760 (version "0.99.0.1")
10763 (uri (string-append "mirror://gnome/sources/" name "/"
10764 (version-major+minor version) "/"
10765 name "-" version ".tar.xz"))
10768 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10769 (build-system meson-build-system)
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)
10779 ("libssh2" ,libssh2)))
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+)))
10790 (define-public gitg
10796 (uri (string-append "mirror://gnome/sources/" name "/"
10797 (version-major+minor version) "/"
10798 name "-" version ".tar.xz"))
10801 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
10802 (build-system meson-build-system)
10804 `(#:glib-or-gtk? #t
10806 (modify-phases %standard-phases
10807 (add-after 'unpack 'disable-post-install-partially
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")))
10814 (add-after 'unpack 'fix-test-sources
10816 (substitute* "tests/libgitg/test-commit.vala"
10817 (("/bin/bash") (which "bash")))
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")
10824 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10828 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10830 ("gtkspell3" ,gtkspell3)
10831 ("gtksourceview" ,gtksourceview-3)
10832 ("json-glib" ,json-glib)
10833 ("libdazzle" ,libdazzle)
10835 ("libgit2-glib" ,libgit2-glib)
10836 ("libpeas" ,libpeas)
10837 ("libsecret" ,libsecret)
10838 ("libsoup" ,libsoup)
10839 ("libxml2" ,libxml2)))
10841 `(("glib:bin" ,glib "bin")
10842 ("gtk+:bin" ,gtk+ "bin")
10843 ("gobject-introspection" ,gobject-introspection)
10844 ("intltool" ,intltool)
10845 ("pkg-config" ,pkg-config)
10847 (synopsis "Graphical user interface for git")
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+)))
10856 (define-public gamin
10862 (uri (string-append "mirror://gnome/sources/" name "/"
10863 (version-major+minor version) "/"
10864 name "-" version ".tar.bz2"))
10867 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
10868 (build-system gnu-build-system)
10871 (modify-phases %standard-phases
10872 (add-after 'unpack 'remove-deprecated-macro
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"))
10883 `(("intltool" ,intltool)
10884 ("pkg-config" ,pkg-config)))
10885 (home-page "https://people.gnome.org/~veillard/gamin/")
10886 (synopsis "File alteration monitor")
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+)))
10893 (define-public gnome-mahjongg
10895 (name "gnome-mahjongg")
10899 (uri (git-reference
10900 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
10902 (file-name (git-file-name name version))
10905 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
10906 (build-system meson-build-system)
10908 `(#:glib-or-gtk? #t))
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)
10918 `(("dconf" ,dconf)))
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+)))
10930 (define-public gnome-themes-extra
10932 (name "gnome-themes-extra")
10937 (uri (string-append "mirror://gnome/sources/" name "/"
10938 (version-major+minor version) "/" name "-"
10939 version ".tar.xz"))
10942 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
10943 (build-system gnu-build-system)
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)))))
10951 `(("glib:bin" ,glib "bin")
10952 ("intltool" ,intltool)
10953 ("pkg-config" ,pkg-config)))
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+)))
10968 (define-public gnote
10975 (uri (string-append "mirror://gnome/sources/" name "/"
10976 (version-major+minor version) "/"
10977 "gnote-" version ".tar.xz"))
10979 (base32 "1ingbaw4d8vpjn083xvzqw7kz8z0k2bx7msk78pbzd68bwgkadpx"))))
10980 (build-system glib-or-gtk-build-system)
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
10990 `(("glibmm" ,glibmm)
10991 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10995 ("libsecret" ,libsecret)
10996 ("libuuid" ,util-linux "lib")
10997 ("libxml2" ,libxml2)
10998 ("libxslt" ,libxslt)))
10999 (synopsis "Note-taking application for the GNOME desktop")
11001 "Gnote is a note-taking application written for the GNOME desktop
11003 (home-page "https://wiki.gnome.org/Apps/Gnote")
11004 (license license:gpl3+)))
11006 (define-public polari
11012 (uri (string-append "mirror://gnome/sources/polari/"
11013 (version-major+minor version)
11014 "/polari-" version ".tar.xz"))
11017 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11018 (build-system meson-build-system)
11020 `(#:glib-or-gtk? #t
11022 (modify-phases %standard-phases
11023 (add-after 'unpack 'skip-gtk-update-icon-cache
11025 (substitute* "meson/meson-postinstall.sh"
11026 (("gtk-update-icon-cache") (which "true")))
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")
11033 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11037 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11041 ("libsecret" ,libsecret)
11042 ("libsoup" ,libsoup)
11043 ("telepathy-glib" ,telepathy-glib)
11044 ("telepathy-logger" ,telepathy-logger)))
11046 `(("glib:bin" ,glib "bin")
11047 ("gobject-introspection" ,gobject-introspection)
11048 ("intltool" ,intltool)
11049 ("pkg-config" ,pkg-config)
11050 ("yelp-tools" ,yelp-tools)))
11052 `(("telepathy-idle" ,telepathy-idle)
11053 ("telepathy-mission-control" ,telepathy-mission-control)))
11054 (synopsis "Simple IRC Client")
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+)))
11061 (define-public gnome-boxes
11063 (name "gnome-boxes")
11068 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11069 (version-major+minor version) "/"
11070 "gnome-boxes-" version ".tar.xz"))
11072 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11073 (build-system meson-build-system)
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"))))
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)
11087 ("pkg-config" ,pkg-config)))
11089 `(("libarchive" ,libarchive)
11090 ("glib-networking" ,glib-networking) ;for TLS support
11091 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11093 ("gtk-vnc" ,gtk-vnc)
11094 ("libosinfo" ,libosinfo)
11095 ("libsecret" ,libsecret)
11096 ("libsoup" ,libsoup)
11098 ("libvirt" ,libvirt)
11099 ("libvirt-glib" ,libvirt-glib)
11100 ("libxml" ,libxml2)
11101 ("spice-gtk" ,spice-gtk)
11102 ("sparql-query" ,sparql-query)
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.")
11115 ;; For data/icons/empty-boxes.png.
11118 license:lgpl2.0+))))
11120 (define-public geary
11126 (uri (git-reference
11127 (url "https://gitlab.gnome.org/GNOME/geary")
11129 (file-name (git-file-name name version))
11132 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
11133 (build-system meson-build-system)
11135 `(#:glib-or-gtk? #t
11136 #:phases (modify-phases %standard-phases
11137 (add-after 'unpack 'disable-failing-tests
11139 (substitute* "test/meson.build"
11140 (("test\\('client-tests', geary_test_client_bin\\)")
11143 (add-after 'unpack 'disable-postinstall-script
11145 (substitute* "meson.build"
11146 (("meson.add_install_script\\(\
11147 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11150 (add-before 'check 'setup-xvfb
11152 (system "Xvfb :1 &")
11153 (setenv "DISPLAY" ":1")
11156 `(("enchant" ,enchant)
11160 ("gmime" ,gmime-2.6)
11161 ("gnome-online-accounts:lib"
11162 ,gnome-online-accounts "lib")
11165 ("iso-codes" ,iso-codes)
11166 ("json-glib" ,json-glib)
11167 ("libcanberra" ,libcanberra)
11169 ("libhandy" ,libhandy-0.0)
11170 ("libpeas" ,libpeas)
11171 ("libsecret" ,libsecret)
11172 ("libunwind" ,libunwind)
11174 ("webkitgtk" ,webkitgtk)
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)
11188 ("xvfb" ,xorg-server-for-tests)))
11189 (synopsis "GNOME email application built around conversations")
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
11199 (home-page "https://wiki.gnome.org/Apps/Geary")
11205 license:cc-by-sa3.0
11206 license:public-domain
11210 (define-public glabels
11217 (uri (string-append "mirror://gnome/sources/" name "/"
11218 (version-major+minor version) "/"
11219 "glabels-" version ".tar.xz"))
11221 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11222 (build-system glib-or-gtk-build-system)
11224 `(("gettext" ,gettext-minimal)
11225 ("glib:bin" ,glib "bin")
11226 ("intltool" ,intltool)
11227 ("itstool" ,itstool)
11228 ("pkg-config" ,pkg-config)))
11231 ("librsvg" ,librsvg)
11232 ("libxml2" ,libxml2)))
11233 (home-page "https://glabels.org/")
11234 (synopsis "Program for creating labels and business cards")
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+)))
11241 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11242 (define-public gnome-latex
11244 (name "gnome-latex")
11249 (uri (string-append "mirror://gnome/sources/" name "/"
11250 (version-major+minor version) "/"
11251 "gnome-latex-" version ".tar.xz"))
11253 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11254 (build-system glib-or-gtk-build-system)
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)
11268 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11271 ("gtksourceview" ,gtksourceview)
11274 ("uchardet" ,uchardet)))
11275 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11276 (synopsis "LaTeX editor for the GNOME desktop")
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
11282 (license license:gpl3+)))
11284 (define-public libratbag
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))
11296 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11297 (build-system meson-build-system)
11299 `(#:configure-flags
11300 (list "-Dsystemd=false"
11301 "-Dlogind-provider=elogind")
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
11309 ,(version-major+minor (package-version python))
11311 (evdev (string-append
11312 (assoc-ref inputs "python-evdev") site))
11313 (pygo (string-append
11314 (assoc-ref inputs "python-pygobject") site))
11316 `("PYTHONPATH" = (,evdev ,pygo))))
11317 (wrap-program (string-append out "/bin/" "ratbagctl")
11322 ("pkg-config" ,pkg-config)
11324 ("valgrind" ,valgrind)))
11327 ("json-glib" ,json-glib)
11328 ("libevdev" ,libevdev)
11329 ("libsystemd" ,elogind)
11330 ("libunistring" ,libunistring)
11331 ("python-evdev" ,python-evdev)
11332 ("python-pygobject" ,python-pygobject)
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.
11342 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11345 The ratbagd DBus service can be enabled by adding the following service to
11346 your operating-system definition:
11348 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11349 (license license:expat)))
11351 (define-public piper
11358 (uri (git-reference
11359 (url "https://github.com/libratbag/piper")
11362 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11363 (file-name (git-file-name name version))))
11364 (build-system meson-build-system)
11366 `(("gettext" ,gettext-minimal)
11367 ("glib:bin" ,glib "bin")
11368 ("gobject-introspection" ,gobject-introspection)
11369 ("pkg-config" ,pkg-config)
11370 ("python-flake8" ,python-flake8)))
11372 `(("adwaita-icon-theme" ,adwaita-icon-theme)
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)))
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.
11388 (modify-phases %standard-phases
11389 (add-after 'unpack 'dont-update-gtk-icon-cache
11391 (substitute* "meson.build"
11392 (("meson.add_install_script('meson_install.sh')") ""))
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)
11400 (string-append (assoc-ref outputs "out" )"/bin/piper")
11401 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
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:
11412 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11413 (license license:gpl2)))
11415 (define-public parlatype
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))
11427 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11428 (build-system meson-build-system)
11430 `(#:glib-or-gtk? #t
11431 #:tests? #f ;require internet access
11433 (modify-phases %standard-phases
11434 (add-after 'install 'wrap-parlatype
11435 ;; Add gstreamer plugin provided in this package to system's
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/"
11442 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11443 (wrap-program (string-append out "/bin/parlatype")
11444 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
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)))
11454 `(("gst-plugins-base" ,gst-plugins-base)
11455 ("gst-plugins-good" ,gst-plugins-good)
11456 ("gstreamer" ,gstreamer)
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
11466 (license license:gpl3+)))
11468 (define-public jsonrpc-glib
11470 (name "jsonrpc-glib")
11474 (uri (string-append "mirror://gnome/sources/" name "/"
11475 (version-major+minor version) "/"
11476 name "-" version ".tar.xz"))
11479 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11480 (build-system meson-build-system)
11482 `(("json-glib" ,json-glib)
11485 `(("pkg-config" ,pkg-config)
11486 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11487 ("gobject-introspection" ,gobject-introspection)
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+)))
11498 (define-public feedbackd
11501 (version "0.0.0+git20200527")
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))
11510 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11511 (build-system meson-build-system)
11513 `(("glib:bin" ,glib "bin")
11514 ("gobject-introspection" ,gobject-introspection)
11515 ("pkg-config" ,pkg-config)
11520 ("json-glib" ,json-glib)
11521 ("libgudev" ,libgudev)))
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
11532 (define-public sysprof
11539 (uri (string-append "mirror://gnome/sources/sysprof/"
11540 (version-major+minor version) "/"
11541 "sysprof-" version ".tar.xz"))
11543 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11544 (build-system meson-build-system)
11546 `(#:configure-flags
11547 (list (string-append "-Dsystemdunitdir="
11550 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11552 (modify-phases %standard-phases
11553 (add-after 'unpack 'patch-install-script
11555 (substitute* "build-aux/meson/post_install.sh"
11556 (("gtk-update-icon-cache") "true")
11557 (("update-desktop-database") "true"))
11562 ("libdazzle" ,libdazzle)
11563 ("polkit" ,polkit)))
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")
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.
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+)))
11583 (define-public gnome-builder
11585 (name "gnome-builder")
11589 (uri (string-append "mirror://gnome/sources/" name "/"
11590 (version-major+minor version) "/"
11591 name "-" version ".tar.xz"))
11594 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11595 (build-system meson-build-system)
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")
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"
11613 (string-append (assoc-ref inputs "python-pygobject")
11616 (add-before 'check 'pre-check
11618 (system "Xvfb :1 &")
11619 (setenv "DISPLAY" ":1")
11622 `(("devhelp" ,devhelp)
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)
11634 ("webkitgtk" ,webkitgtk)))
11636 `(("gtksourceview" ,gtksourceview))) ;needed for settings
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)
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+)))
11652 (define-public komikku
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))
11665 "17ss5k2hnymk6xyx1dy3q0y2pwcld78cw7d0cs9c0hnhskh5dirh"))))
11666 (build-system meson-build-system)
11668 `(#:glib-or-gtk? #t
11670 (modify-phases %standard-phases
11671 (add-after 'unpack 'patch-sources
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
11680 (substitute* "meson_post_install.py"
11681 (("gtk-update-icon-cache") (which "true")))
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")
11688 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
11689 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
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)))
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+)))
11719 (define-public libgda
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))
11732 "122anbk15vj2dfxrw7s48b6zwlpp7cyppshxizynvf3zmc0ygw3j"))))
11733 (build-system gnu-build-system)
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
11740 (modify-phases %standard-phases
11741 (add-after 'unpack 'fix-glade-install
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"))
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")
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))
11766 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
11771 ("libsecret" ,libsecret)
11772 ("libxslt" ,libxslt)
11773 ("openssl" ,openssl)
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)
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")
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
11796 (license license:lgpl2.1+)))
11798 (define-public gtranslator
11800 (name "gtranslator")
11804 (uri (string-append "mirror://gnome/sources/" name "/"
11805 (version-major+minor version) "/"
11806 name "-" version ".tar.xz"))
11809 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
11810 (build-system meson-build-system)
11812 `(("json-glib" ,json-glib)
11813 ("jsonrpc-glib" ,jsonrpc-glib)
11814 ("gettext" ,gettext-minimal)
11817 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11819 ("libdazzle" ,libdazzle)
11821 ("libsoup" ,libsoup)))
11823 `(("glib:bin" ,glib "bin")
11824 ("itstool" ,itstool)
11825 ("pkg-config" ,pkg-config)))
11827 `(("gtksourceview" ,gtksourceview))) ; required for source view
11829 `(#:build-type "release"
11831 (modify-phases %standard-phases
11832 (add-after 'unpack 'skip-gtk-update-icon-cache
11834 (substitute* "build-aux/meson/meson_post_install.py"
11835 (("gtk-update-icon-cache") (which "true")))
11837 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
11838 (synopsis "Translation making program")
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
11844 (license license:gpl3+)))