gnu: goffice: Update to 0.10.49.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016, 2020 Eric Bavier <bavier@posteo.net>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017, 2020 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
54 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
58 ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
59 ;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org>
60 ;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org>
61 ;;;
62 ;;; This file is part of GNU Guix.
63 ;;;
64 ;;; GNU Guix is free software; you can redistribute it and/or modify it
65 ;;; under the terms of the GNU General Public License as published by
66 ;;; the Free Software Foundation; either version 3 of the License, or (at
67 ;;; your option) any later version.
68 ;;;
69 ;;; GNU Guix is distributed in the hope that it will be useful, but
70 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
71 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
72 ;;; GNU General Public License for more details.
73 ;;;
74 ;;; You should have received a copy of the GNU General Public License
75 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
76
77 (define-module (gnu packages gnome)
78 #:use-module (gnu packages)
79 #:use-module (gnu packages admin)
80 #:use-module (gnu packages aidc)
81 #:use-module (gnu packages aspell)
82 #:use-module (gnu packages autotools)
83 #:use-module (gnu packages avahi)
84 #:use-module (gnu packages backup)
85 #:use-module (gnu packages base)
86 #:use-module (gnu packages bash)
87 #:use-module (gnu packages bison)
88 #:use-module (gnu packages boost)
89 #:use-module (gnu packages build-tools)
90 #:use-module (gnu packages calendar)
91 #:use-module (gnu packages cdrom)
92 #:use-module (gnu packages check)
93 #:use-module (gnu packages cmake)
94 #:use-module (gnu packages compression)
95 #:use-module (gnu packages crates-io)
96 #:use-module (gnu packages crates-graphics)
97 #:use-module (gnu packages crates-gtk)
98 #:use-module (gnu packages cups)
99 #:use-module (gnu packages curl)
100 #:use-module (gnu packages cyrus-sasl)
101 #:use-module (gnu packages databases)
102 #:use-module (gnu packages dbm)
103 #:use-module (gnu packages djvu)
104 #:use-module (gnu packages dns)
105 #:use-module (gnu packages docbook)
106 #:use-module (gnu packages documentation)
107 #:use-module (gnu packages enchant)
108 #:use-module (gnu packages flex)
109 #:use-module (gnu packages fonts)
110 #:use-module (gnu packages file-systems)
111 #:use-module (gnu packages fontutils)
112 #:use-module (gnu packages freedesktop)
113 #:use-module (gnu packages game-development)
114 #:use-module (gnu packages gcc)
115 #:use-module (gnu packages gettext)
116 #:use-module (gnu packages ghostscript)
117 #:use-module (gnu packages gimp)
118 #:use-module (gnu packages gl)
119 #:use-module (gnu packages glib)
120 #:use-module (gnu packages gnupg)
121 #:use-module (gnu packages gnuzilla)
122 #:use-module (gnu packages geo)
123 #:use-module (gnu packages gperf)
124 #:use-module (gnu packages graphviz)
125 #:use-module (gnu packages gstreamer)
126 #:use-module (gnu packages gtk)
127 #:use-module (gnu packages guile)
128 #:use-module (gnu packages ibus)
129 #:use-module (gnu packages icu4c)
130 #:use-module (gnu packages image)
131 #:use-module (gnu packages imagemagick)
132 #:use-module (gnu packages inkscape)
133 #:use-module (gnu packages iso-codes)
134 #:use-module (gnu packages kerberos)
135 #:use-module (gnu packages libcanberra)
136 #:use-module (gnu packages libffi)
137 #:use-module (gnu packages libunistring)
138 #:use-module (gnu packages libunwind)
139 #:use-module (gnu packages libusb)
140 #:use-module (gnu packages linux)
141 #:use-module (gnu packages lirc)
142 #:use-module (gnu packages lua)
143 #:use-module (gnu packages mail)
144 #:use-module (gnu packages mp3)
145 #:use-module (gnu packages multiprecision)
146 #:use-module (gnu packages music)
147 #:use-module (gnu packages ncurses)
148 #:use-module (gnu packages nettle)
149 #:use-module (gnu packages networking)
150 #:use-module (gnu packages ninja)
151 #:use-module (gnu packages node)
152 #:use-module (gnu packages nss)
153 #:use-module (gnu packages ocr)
154 #:use-module (gnu packages openldap)
155 #:use-module (gnu packages package-management)
156 #:use-module (gnu packages password-utils)
157 #:use-module (gnu packages pcre)
158 #:use-module (gnu packages pdf)
159 #:use-module (gnu packages perl)
160 #:use-module (gnu packages photo)
161 #:use-module (gnu packages php)
162 #:use-module (gnu packages pkg-config)
163 #:use-module (gnu packages polkit)
164 #:use-module (gnu packages popt)
165 #:use-module (gnu packages pretty-print)
166 #:use-module (gnu packages protobuf)
167 #:use-module (gnu packages pulseaudio)
168 #:use-module (gnu packages python)
169 #:use-module (gnu packages python-compression)
170 #:use-module (gnu packages python-crypto)
171 #:use-module (gnu packages python-web)
172 #:use-module (gnu packages python-xyz)
173 #:use-module (gnu packages rdesktop)
174 #:use-module (gnu packages rdf)
175 #:use-module (gnu packages readline)
176 #:use-module (gnu packages ruby)
177 #:use-module (gnu packages rust)
178 #:use-module (gnu packages samba)
179 #:use-module (gnu packages scanner)
180 #:use-module (gnu packages sdl)
181 #:use-module (gnu packages search)
182 #:use-module (gnu packages selinux)
183 #:use-module (gnu packages slang)
184 #:use-module (gnu packages speech)
185 #:use-module (gnu packages spice)
186 #:use-module (gnu packages sqlite)
187 #:use-module (gnu packages ssh)
188 #:use-module (gnu packages swig)
189 #:use-module (gnu packages tex)
190 #:use-module (gnu packages time)
191 #:use-module (gnu packages tls)
192 #:use-module (gnu packages valgrind)
193 #:use-module (gnu packages version-control)
194 #:use-module (gnu packages video)
195 #:use-module (gnu packages virtualization)
196 #:use-module (gnu packages vpn)
197 #:use-module (gnu packages web)
198 #:use-module (gnu packages webkit)
199 #:use-module (gnu packages xdisorg)
200 #:use-module (gnu packages xiph)
201 #:use-module (gnu packages xml)
202 #:use-module (gnu packages xorg)
203 #:use-module (gnu artwork)
204 #:use-module ((guix build utils) #:select (modify-phases))
205 #:use-module (guix build-system cargo)
206 #:use-module (guix build-system cmake)
207 #:use-module (guix build-system glib-or-gtk)
208 #:use-module (guix build-system gnu)
209 #:use-module (guix build-system meson)
210 #:use-module (guix build-system python)
211 #:use-module (guix build-system trivial)
212 #:use-module (guix download)
213 #:use-module (guix git-download)
214 #:use-module ((guix licenses) #:prefix license:)
215 #:use-module (guix packages)
216 #:use-module (guix utils)
217 #:use-module (guix gexp)
218 #:use-module (guix monads)
219 #:use-module (guix store)
220 #:use-module (ice-9 match)
221 #:use-module (srfi srfi-1))
222
223 (define-public gupnp-igd
224 (package
225 (name "gupnp-igd")
226 (version "1.2.0")
227 (source
228 (origin
229 (method url-fetch)
230 (uri
231 (string-append "mirror://gnome/sources/" name "/"
232 (version-major+minor version) "/"
233 name "-" version ".tar.xz"))
234 (sha256
235 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
236 (build-system meson-build-system)
237 (outputs '("out" "doc"))
238 (arguments
239 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
240 #:configure-flags (list "-Dgtk_doc=true")
241 #:phases
242 (modify-phases %standard-phases
243 (add-after 'unpack 'patch-docbook-xml
244 (lambda* (#:key inputs #:allow-other-keys)
245 (with-directory-excursion "doc"
246 (substitute* "gupnp-igd-docs.xml"
247 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
248 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
249 "/xml/dtd/docbook/"))))
250 #t))
251 (add-after 'install 'move-doc
252 (lambda* (#:key outputs #:allow-other-keys)
253 (let* ((out (assoc-ref outputs "out"))
254 (doc (assoc-ref outputs "doc")))
255 (mkdir-p (string-append doc "/share"))
256 (rename-file
257 (string-append out "/share/gtk-doc")
258 (string-append doc "/share/gtk-doc"))
259 #t))))))
260 (native-inputs
261 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
262 ("docbook-xsl" ,docbook-xsl)
263 ("glib:bin" ,glib "bin")
264 ("gobject-introspection" ,gobject-introspection)
265 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
266 ("gtk-doc" ,gtk-doc)
267 ("pkg-config" ,pkg-config)))
268 (propagated-inputs
269 `(("glib" ,glib)
270 ("glib-networking" ,glib-networking)
271 ("gssdp" ,gssdp)
272 ("gupnp" ,gupnp)
273 ("libsoup" ,libsoup)))
274 (synopsis "UPnP IGD for GNOME")
275 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
276 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
277 (license license:lgpl2.1+)))
278
279 (define-public brasero
280 (package
281 (name "brasero")
282 (version "3.12.2")
283 (source (origin
284 (method url-fetch)
285 (uri (string-append "mirror://gnome/sources/brasero/"
286 (version-major+minor version) "/"
287 "brasero-" version ".tar.xz"))
288 (sha256
289 (base32
290 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
291 (build-system glib-or-gtk-build-system)
292 (arguments
293 `(#:configure-flags (list
294 (string-append "--with-girdir="
295 (assoc-ref %outputs "out")
296 "/share/gir-1.0")
297 (string-append "--with-typelibdir="
298 (assoc-ref %outputs "out")
299 "/lib/girepository-1.0"))
300 #:phases
301 (modify-phases %standard-phases
302 (add-before 'configure 'embed-growisofs
303 (lambda* (#:key inputs #:allow-other-keys)
304 (substitute* "plugins/growisofs/burn-growisofs.c"
305 (("\"growisofs") (string-append "\"" (which "growisofs"))))
306 #t)))))
307 (propagated-inputs
308 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
309 (native-inputs
310 `(("intltool" ,intltool)
311 ("itstool" ,itstool)
312 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
313 ("gobject-introspection" ,gobject-introspection)
314 ("pkg-config" ,pkg-config)))
315 (inputs
316 `(("dvd+rw-tools" ,dvd+rw-tools)
317 ("glib" ,glib)
318 ("gnome-doc-utils" ,gnome-doc-utils)
319 ("gstreamer" ,gstreamer)
320 ("gst-plugins-base" ,gst-plugins-base)
321 ("gtk+" ,gtk+)
322 ("libcanberra" ,libcanberra)
323 ("libice" ,libice)
324 ("libnotify" ,libnotify)
325 ("libsm" ,libsm)
326 ("libxml2" ,libxml2)
327 ("totem-pl-parser" ,totem-pl-parser)))
328 (home-page "https://wiki.gnome.org/Apps/Brasero")
329 (synopsis "CD/DVD burning tool for Gnome")
330 (description "Brasero is an application to burn CD/DVD for the Gnome
331 Desktop. It is designed to be as simple as possible and has some unique
332 features to enable users to create their discs easily and quickly.")
333 (license license:gpl2+)))
334
335 (define-public libcloudproviders
336 (package
337 (name "libcloudproviders")
338 (version "0.3.1")
339 (source
340 (origin
341 (method url-fetch)
342 (uri
343 (string-append "mirror://gnome/sources/" name "/"
344 (version-major+minor version) "/"
345 name "-" version ".tar.xz"))
346 (sha256
347 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
348 (build-system meson-build-system)
349 (outputs '("out" "doc"))
350 (arguments
351 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
352 #:configure-flags
353 (list
354 "-Denable-gtk-doc=true")
355 #:phases
356 (modify-phases %standard-phases
357 (add-after 'install 'move-doc
358 (lambda* (#:key outputs #:allow-other-keys)
359 (let* ((out (assoc-ref outputs "out"))
360 (doc (assoc-ref outputs "doc")))
361 (mkdir-p (string-append doc "/share"))
362 (rename-file
363 (string-append out "/share/gtk-doc")
364 (string-append doc "/share/gtk-doc"))
365 #t))))))
366 (native-inputs
367 `(("glib:bin" ,glib "bin")
368 ("gobject-introspection" ,gobject-introspection)
369 ("gtk-doc" ,gtk-doc)
370 ("pkg-config" ,pkg-config)
371 ("vala" ,vala)))
372 (inputs
373 `(("glib" ,glib)
374 ("glib-networking" ,glib-networking)))
375 (synopsis "Cloudproviders Integration API")
376 (description "Libcloudproviders is a DBus API that allows cloud storage sync
377 clients to expose their services. Clients such as file managers and desktop
378 environments can then provide integrated access to the cloud providers
379 services.")
380 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
381 (license license:lgpl3+)))
382
383 (define-public libgrss
384 (package
385 (name "libgrss")
386 (version "0.7.0")
387 (source
388 (origin
389 (method url-fetch)
390 (uri
391 (string-append "mirror://gnome/sources/" name "/"
392 (version-major+minor version) "/"
393 name "-" version ".tar.xz"))
394 (sha256
395 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
396 (build-system glib-or-gtk-build-system)
397 (outputs '("out" "doc"))
398 (arguments
399 `(#:configure-flags
400 (list
401 "--enable-gtk-doc"
402 (string-append "--with-html-dir="
403 (assoc-ref %outputs "doc")
404 "/share/gtk-doc/html"))
405 #:phases
406 (modify-phases %standard-phases
407 (add-after 'unpack 'patch-docbook-xml
408 (lambda* (#:key inputs #:allow-other-keys)
409 (with-directory-excursion "doc/reference"
410 (substitute* "libgrss-docs.sgml"
411 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
412 (string-append (assoc-ref inputs "docbook-xml")
413 "/xml/dtd/docbook/"))))
414 #t)))))
415 (native-inputs
416 `(("docbook-xml" ,docbook-xml-4.1.2)
417 ("gobject-introspection" ,gobject-introspection)
418 ("gtk-doc" ,gtk-doc)
419 ("pkg-config" ,pkg-config)))
420 (propagated-inputs
421 `(("glib" ,glib)
422 ("libsoup" ,libsoup)
423 ("libxml2" ,libxml2)))
424 (synopsis "Glib library for feeds")
425 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
426 and other formats.")
427 (home-page "https://wiki.gnome.org/Projects/Libgrss")
428 (license license:lgpl3+)))
429
430 (define-public gnome-js-common
431 (package
432 (name "gnome-js-common")
433 (version "0.1.2")
434 (source
435 (origin
436 (method url-fetch)
437 (uri
438 (string-append "mirror://gnome/sources/" name "/"
439 (version-major+minor version) "/"
440 name "-" version ".tar.gz"))
441 (sha256
442 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
443 (build-system glib-or-gtk-build-system)
444 (arguments
445 `(#:configure-flags
446 (list
447 "--disable-static")))
448 (native-inputs
449 `(("gettext" ,gettext-minimal)
450 ("intltool" ,intltool)
451 ("pkg-config" ,pkg-config)))
452 (synopsis "Common JS Modules")
453 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
454 bindings.")
455 (home-page "https://wiki.gnome.org/Projects/Seed")
456 (license license:gpl3+)))
457
458 (define-public seed
459 (package
460 (name "seed")
461 (version "3.8.1")
462 (source
463 (origin
464 (method url-fetch)
465 (uri
466 (string-append "mirror://gnome/sources/" name "/"
467 (version-major+minor version) "/"
468 name "-" version ".tar.xz"))
469 (sha256
470 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
471 (patches
472 (search-patches "seed-webkit.patch"))))
473 (build-system glib-or-gtk-build-system)
474 (outputs '("out" "doc"))
475 (arguments
476 `(#:configure-flags
477 (list
478 "--disable-static"
479 "--enable-xorg-module"
480 (string-append "--with-html-dir="
481 (assoc-ref %outputs "doc")
482 "/share/gtk-doc/html")
483 "--with-webkit=4.0")
484 #:phases
485 (modify-phases %standard-phases
486 ;; The seed-webkit.patch patches configure.ac.
487 ;; So the source files need to be re-bootstrapped.
488 (add-after 'unpack 'trigger-bootstrap
489 (lambda _
490 (for-each delete-file
491 (list
492 "configure"
493 "Makefile.in"))
494 #t))
495 (add-after 'unpack 'patch-tests
496 (lambda* (#:key outputs #:allow-other-keys)
497 (substitute* (find-files "." "\\.js$")
498 (("#!/usr/bin/env seed")
499 (string-append "#!" (getcwd) "/src/seed")))
500 #t))
501 (add-before 'build 'patch-docbook-xml
502 (lambda* (#:key inputs #:allow-other-keys)
503 (with-directory-excursion "doc"
504 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
505 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
506 (string-append (assoc-ref inputs "docbook-xml")
507 "/xml/dtd/docbook/"))))
508 #t)))))
509 (native-inputs
510 `(("autoconf" ,autoconf)
511 ("automake" ,automake)
512 ("docbook-xml" ,docbook-xml-4.1.2)
513 ("gettext" ,gettext-minimal)
514 ("gobject-introspection" ,gobject-introspection)
515 ("gtk-doc" ,gtk-doc)
516 ("intltool" ,intltool)
517 ("libtool" ,libtool)
518 ("pkg-config" ,pkg-config)))
519 (inputs
520 `(("cairo" ,cairo)
521 ("dbus" ,dbus)
522 ("dbus-glib" ,dbus-glib)
523 ("gnome-js-common" ,gnome-js-common)
524 ("gtk+" ,gtk+)
525 ("gtk+-2" ,gtk+-2)
526 ("libffi" ,libffi)
527 ("libxml2" ,libxml2)
528 ("mpfr" ,mpfr)
529 ("readline" ,readline)
530 ("sqlite" ,sqlite)
531 ("xscrnsaver" ,libxscrnsaver)))
532 (propagated-inputs
533 `(("glib" ,glib)
534 ("webkit" ,webkitgtk)))
535 (synopsis "GObject JavaScriptCore bridge")
536 (description "Seed is a library and interpreter, dynamically bridging
537 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
538 GNOME platform. It serves as something which enables you to write standalone
539 applications in JavaScript, or easily enable your application to be extensible
540 in JavaScript.")
541 (home-page "https://wiki.gnome.org/Projects/Seed")
542 (license license:lgpl2.0+)))
543
544 (define-public libdmapsharing
545 (package
546 (name "libdmapsharing")
547 (version "3.9.10")
548 (source
549 (origin
550 (method url-fetch)
551 (uri
552 (string-append "https://www.flyn.org/projects/"
553 name "/" name "-" version ".tar.gz"))
554 (sha256
555 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
556 (build-system glib-or-gtk-build-system)
557 (outputs '("out" "doc"))
558 (arguments
559 `(#:tests? #f ; Tests require networking.
560 #:configure-flags
561 (list
562 "--disable-static"
563 (string-append "--with-html-dir="
564 (assoc-ref %outputs "doc")
565 "/share/gtk-doc/html"))
566 #:phases
567 (modify-phases %standard-phases
568 (add-after 'unpack 'patch-docbook-xml
569 (lambda* (#:key inputs #:allow-other-keys)
570 (with-directory-excursion "doc"
571 (substitute* "libdmapsharing-4.0-docs.xml"
572 (("http://www.oasis-open.org/docbook/xml/4.3/")
573 (string-append (assoc-ref inputs "docbook-xml")
574 "/xml/dtd/docbook/"))))
575 #t)))))
576 (native-inputs
577 `(("check" ,check)
578 ("docbook-xml" ,docbook-xml-4.3)
579 ("gobject-introspection" ,gobject-introspection)
580 ("pedansee" ,pedansee)
581 ("pkg-config" ,pkg-config)
582 ("vala" ,vala)))
583 (inputs
584 `(("avahi" ,avahi)
585 ("gdk-pixbuf" ,gdk-pixbuf+svg)
586 ("gee" ,libgee)
587 ("gst-plugins-base" ,gst-plugins-base)
588 ("gtk+" ,gtk+)))
589 (propagated-inputs
590 `(("glib" ,glib)
591 ("glib-networking" ,glib-networking)
592 ("gstreamer" ,gstreamer)
593 ("libsoup" ,libsoup)))
594 (synopsis "Media management library")
595 (description "Libdmapsharing is a library which allows programs to access,
596 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
597 It is written in C using GObject and libsoup.")
598 (home-page "https://launchpad.net/gtx")
599 (license license:lgpl2.1+)))
600
601 (define-public gtx
602 (package
603 (name "gtx")
604 (version "0.2.2")
605 (source
606 (origin
607 (method url-fetch)
608 (uri
609 (string-append "https://launchpad.net/gtx/trunk/"
610 version "/+download/gtx-" version ".tar.gz"))
611 (sha256
612 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
613 (build-system glib-or-gtk-build-system)
614 (outputs '("out" "doc"))
615 (arguments
616 `(#:configure-flags
617 (list
618 "--disable-static"
619 "--enable-gtk-doc"
620 (string-append "--with-html-dir="
621 (assoc-ref %outputs "doc")
622 "/share/gtk-doc/html"))))
623 (native-inputs
624 `(("gobject-introspection" ,gobject-introspection)
625 ("gtk-doc" ,gtk-doc)
626 ("pkg-config" ,pkg-config)))
627 (propagated-inputs
628 `(("glib" ,glib)))
629 (synopsis "GLib Testing Framework")
630 (description "GTX is a small collection of convenience functions intended to
631 enhance the GLib testing framework. With specific emphasis on easing the pain
632 of writing test cases for asynchronous interactions.")
633 (home-page "https://launchpad.net/gtx")
634 (license license:lgpl2.1+)))
635
636 (define-public dee
637 (package
638 (name "dee")
639 (version "1.2.7")
640 (source
641 (origin
642 (method url-fetch)
643 (uri
644 (string-append "https://launchpad.net/dee/1.0/"
645 version "/+download/dee-" version ".tar.gz"))
646 (sha256
647 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
648 (patches
649 (search-patches "dee-vapi.patch"))))
650 (build-system glib-or-gtk-build-system)
651 (outputs '("out" "doc"))
652 (arguments
653 `(#:configure-flags
654 (list
655 "--disable-maintainer-flags"
656 (string-append "--with-pygi-overrides-dir="
657 (assoc-ref %outputs "out")
658 "/lib/python"
659 ,(version-major+minor
660 (package-version python))
661 "/site-packages/gi/overrides")
662 (string-append "--with-html-dir="
663 (assoc-ref %outputs "doc")
664 "/share/gtk-doc/html"))
665 #:phases
666 (modify-phases %standard-phases
667 (add-after 'unpack 'patch-docbook-xml
668 (lambda* (#:key inputs #:allow-other-keys)
669 (with-directory-excursion "doc/reference/dee-1.0"
670 (substitute* "dee-1.0-docs.sgml"
671 (("http://www.oasis-open.org/docbook/xml/4.3/")
672 (string-append (assoc-ref inputs "docbook-xml")
673 "/xml/dtd/docbook/"))))
674 #t))
675 (add-after 'patch-docbook-xml 'disable-failing-tests
676 (lambda _
677 (substitute* "tests/test-icu.c"
678 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
679 "")
680 (("setup, test_ascii_folder, teardown\\);")
681 ""))
682 #t))
683 (add-before 'check 'pre-check
684 (lambda _
685 ;; Tests require a running dbus-daemon.
686 (system "dbus-daemon &")
687 ;; For missing '/etc/machine-id'.
688 (setenv "DBUS_FATAL_WARNINGS" "0")
689 #t)))))
690 (native-inputs
691 `(("dbus" ,dbus)
692 ("dbus-test-runner" ,dbus-test-runner)
693 ("docbook-xml" ,docbook-xml-4.3)
694 ("gobject-introspection" ,gobject-introspection)
695 ("gtk-doc" ,gtk-doc)
696 ;; Would only be required by configure flag "--enable-extended-tests".
697 ;("gtx" ,gtx)
698 ("pkg-config" ,pkg-config)
699 ("pygobject" ,python-pygobject)
700 ("python" ,python-wrapper)
701 ("vala" ,vala)))
702 (inputs
703 `(("icu" ,icu4c)))
704 (propagated-inputs
705 `(("glib" ,glib)))
706 (synopsis "Model to synchronize multiple instances over DBus")
707 (description "Dee is a library that uses DBus to provide objects allowing
708 you to create Model-View-Controller type programs across DBus. It also consists
709 of utility objects which extend DBus allowing for peer-to-peer discoverability
710 of known objects without needing a central registrar.")
711 (home-page "https://launchpad.net/dee")
712 (license
713 ;; Dual-licensed
714 (list
715 license:lgpl3+
716 license:gpl3+))))
717
718 (define-public zeitgeist
719 (package
720 (name "zeitgeist")
721 (version "1.0.3")
722 (source
723 (origin
724 (method git-fetch)
725 (uri
726 (git-reference
727 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
728 (commit
729 (string-append "v" version))))
730 (file-name
731 (git-file-name name version))
732 (sha256
733 (base32 "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp"))))
734 (build-system glib-or-gtk-build-system)
735 (arguments
736 `(#:configure-flags
737 (list
738 "--enable-explain-queries"
739 "--enable-fts"
740 "--enable-docs")
741 #:phases
742 (modify-phases %standard-phases
743 (add-after 'unpack 'patch-docbook-xml
744 (lambda* (#:key inputs #:allow-other-keys)
745 (with-directory-excursion "doc/libzeitgeist"
746 (substitute* "zeitgeist-gtkdoc-index.sgml"
747 (("http://www.oasis-open.org/docbook/xml/4.3/")
748 (string-append (assoc-ref inputs "docbook-xml")
749 "/xml/dtd/docbook/"))))
750 #t))
751 (add-after 'patch-docbook-xml 'disable-failing-tests
752 (lambda _
753 (substitute* "test/direct/Makefile.am"
754 ((" log-test ")
755 ""))
756 (substitute* "test/c/Makefile.am"
757 ((" test-log ")
758 ""))
759 #t))
760 (add-before 'bootstrap 'remove-autogen-script
761 (lambda _
762 ;; To honor `autoreconf -vif` by build-system.
763 (delete-file "autogen.sh")
764 #t)))))
765 (native-inputs
766 `(("autoconf" ,autoconf)
767 ("automake" ,automake)
768 ("docbook-xml" ,docbook-xml-4.3)
769 ("gettext" ,gettext-minimal)
770 ("gobject-introspection" ,gobject-introspection)
771 ("gtk-doc" ,gtk-doc)
772 ("libtool" ,libtool)
773 ("pkg-config" ,pkg-config)
774 ("vala" ,vala)
775 ("xorg-server-for-tests" ,xorg-server-for-tests)))
776 (inputs
777 `(("dee-icu" ,dee)
778 ("gtk+" ,gtk+)
779 ("json-glib" ,json-glib)
780 ("sqlite" ,sqlite)
781 ("telepathy-glib" ,telepathy-glib)
782 ("python" ,python-wrapper)
783 ("python-rdflib" ,python-rdflib)
784 ("xapian-config" ,xapian)))
785 (propagated-inputs
786 `(("glib" ,glib)))
787 (synopsis "Desktop Activity Logging")
788 (description "Zeitgeist is a service which logs the users’s activities and
789 events, anywhere from files opened to websites visited and conversations. It
790 makes this information readily available for other applications to use. It is
791 able to establish relationships between items based on similarity and usage
792 patterns.")
793 (home-page "https://zeitgeist.freedesktop.org/")
794 (license
795 ;; Dual-licensed
796 (list
797 license:lgpl2.1+
798 license:gpl2+))))
799
800 (define-public gnome-recipes
801 (package
802 (name "gnome-recipes")
803 (version "2.0.4")
804 (source (origin
805 (method git-fetch)
806 (uri (git-reference
807 (url "https://gitlab.gnome.org/GNOME/recipes")
808 (commit version)))
809 (file-name (git-file-name name version))
810 (sha256
811 (base32
812 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
813 (build-system meson-build-system)
814 (arguments
815 `(#:glib-or-gtk? #t
816 #:phases
817 (modify-phases %standard-phases
818 (add-after 'unpack 'skip-gtk-update-icon-cache
819 (lambda _
820 (substitute* "meson_post_install.py"
821 (("gtk-update-icon-cache") (which "true")))
822 #t))
823 (add-after 'unpack 'unpack-libgd
824 (lambda* (#:key inputs #:allow-other-keys)
825 (let ((libgd (assoc-ref inputs "libgd")))
826 (copy-recursively libgd "subprojects/libgd")
827 #t))))))
828 (inputs
829 `(("glib" ,glib)
830 ("gnome-autoar" ,gnome-autoar)
831 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
832 ("gspell" ,gspell)
833 ("gtk+" ,gtk+)
834 ("json-glib" ,json-glib)
835 ("libcanberra" ,libcanberra)
836 ("libsoup" ,libsoup)
837 ("rest" ,rest)))
838 (native-inputs
839 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
840 ("gettext" ,gettext-minimal)
841 ("glib:bin" ,glib "bin")
842 ("itstool" ,itstool)
843 ("libgd"
844 ,(origin
845 (method git-fetch)
846 (uri (git-reference
847 (url "https://gitlab.gnome.org/GNOME/libgd")
848 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
849 (file-name (git-file-name "libgd" version))
850 (sha256
851 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
852 ("pkg-config" ,pkg-config)))
853 (home-page "https://wiki.gnome.org/Apps/Recipes")
854 (synopsis "Discover recipes for preparing food")
855 (description "GNOME Recipes helps you discover what to cook today,
856 tomorrow, the rest of the week and for special occasions.")
857 (license license:gpl3+)))
858
859 (define-public gnome-photos
860 (package
861 (name "gnome-photos")
862 (version "3.34.2")
863 (source
864 (origin
865 (method url-fetch)
866 (uri
867 (string-append "mirror://gnome/sources/" name "/"
868 (version-major+minor version) "/"
869 name "-" version ".tar.xz"))
870 (sha256
871 (base32
872 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
873 (build-system meson-build-system)
874 (arguments
875 `(#:glib-or-gtk? #t
876 #:configure-flags
877 (list "-Ddogtail=false" ; Not available
878 ;; Required for RUNPATH validation.
879 (string-append "-Dc_link_args=-Wl,-rpath="
880 (assoc-ref %outputs "out") "/lib/gnome-photos"))
881 #:phases
882 (modify-phases %standard-phases
883 (add-after 'install 'wrap-gnome-photos
884 (lambda* (#:key inputs outputs #:allow-other-keys)
885 (let*
886 ((out (assoc-ref outputs "out")))
887 (wrap-program (string-append out "/bin/gnome-photos")
888 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
889 #t)))))
890 (native-inputs
891 `(("dbus" ,dbus)
892 ("desktop-file-utils" ,desktop-file-utils)
893 ("gettext" ,gettext-minimal)
894 ("git" ,git-minimal)
895 ("glib:bin" ,glib "bin")
896 ("gobject-introspection" ,gobject-introspection)
897 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
898 ("gtk+:bin" ,gtk+ "bin")
899 ("itstool" ,itstool)
900 ("pkg-config" ,pkg-config)))
901 (inputs
902 `(("babl" ,babl)
903 ("cairo" ,cairo)
904 ("gdk-pixbuf" ,gdk-pixbuf+svg)
905 ("gegl" ,gegl)
906 ("geocode-glib" ,geocode-glib)
907 ("gexiv2" ,gexiv2)
908 ("gnome-online-accounts" ,gnome-online-accounts)
909 ("gnome-online-miners" ,gnome-online-miners)
910 ("grilo" ,grilo)
911 ("grilo-plugins" ,grilo-plugins)
912 ("gtk+" ,gtk+)
913 ("libdazzle" ,libdazzle)
914 ("libgdata" ,libgdata)
915 ("libgfbgraph" ,gfbgraph)
916 ("libjpeg" ,libjpeg-turbo)
917 ("libpng" ,libpng)
918 ("librest" ,rest)
919 ("pygobject" ,python-pygobject)
920 ("tracker" ,tracker)
921 ("tracker-miners" ,tracker-miners)))
922 (synopsis "Access, organize and share your photos on GNOME desktop")
923 (description "GNOME Photos is a simple and elegant replacement for using a
924 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
925 cloud integration is offered through GNOME Online Accounts.")
926 (home-page "https://wiki.gnome.org/Apps/Photos")
927 (license license:gpl3+)))
928
929 (define-public gnome-music
930 (package
931 (name "gnome-music")
932 (version "3.34.5")
933 (source
934 (origin
935 (method url-fetch)
936 (uri
937 (string-append "mirror://gnome/sources/" name "/"
938 (version-major+minor version) "/"
939 name "-" version ".tar.xz"))
940 (sha256
941 (base32
942 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
943 (build-system meson-build-system)
944 (arguments
945 `(#:glib-or-gtk? #t
946 #:phases
947 (modify-phases %standard-phases
948 (add-after 'install 'wrap-gnome-music
949 (lambda* (#:key inputs outputs #:allow-other-keys)
950 (let*
951 ((out (assoc-ref outputs "out"))
952 (pylib (string-append out "/lib/python"
953 ,(version-major+minor
954 (package-version python))
955 "/site-packages")))
956 (wrap-program (string-append out "/bin/gnome-music")
957 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
958 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
959 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
960 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
961 #t)))))
962 (native-inputs
963 `(("desktop-file-utils" ,desktop-file-utils)
964 ("gettext" ,gettext-minimal)
965 ("glib:bin" ,glib "bin")
966 ("gobject-introspection" ,gobject-introspection)
967 ("gtk+:bin" ,gtk+ "bin")
968 ("itstools" ,itstool)
969 ("pkg-config" ,pkg-config)))
970 (inputs
971 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
972 ("grilo" ,grilo)
973 ("grilo-plugins" ,grilo-plugins)
974 ("gst-plugins-base" ,gst-plugins-base)
975 ("gstreamer" ,gstreamer)
976 ("gvfs" ,gvfs)
977 ("libdazzle" ,libdazzle)
978 ("libmediaart" ,libmediaart)
979 ("libsoup" ,libsoup)
980 ("pycairo" ,python-pycairo)
981 ("pygobject" ,python-pygobject)
982 ("tracker" ,tracker)
983 ("tracker-miners" ,tracker-miners)))
984 (synopsis "Simple music player for GNOME desktop")
985 (description "GNOME Music is the new GNOME music playing application that
986 aims to combine an elegant and immersive browsing experience with simple
987 and straightforward controls.")
988 (home-page "https://wiki.gnome.org/Apps/Music")
989 (license license:gpl2+)))
990
991 (define-public portablexdr
992 (package
993 (name "portablexdr")
994 (version "4.9.1")
995 (source
996 (origin
997 (method url-fetch)
998 (uri
999 (string-append "https://people.redhat.com/~rjones/" name "/files/"
1000 name "-" version ".tar.gz"))
1001 (sha256
1002 (base32
1003 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1004 (build-system gnu-build-system)
1005 (synopsis "External Data Representation Library")
1006 (description "PortableXDR is an implementation of External Data
1007 Representation (XDR) Library. It is a standard data serialization format, for
1008 uses such as computer network protocols. It allows data to be transferred
1009 between different kinds of computer systems.")
1010 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1011 (license
1012 (list
1013 license:gpl2+
1014 license:lgpl2.1+))))
1015
1016 (define-public tepl
1017 (package
1018 (name "tepl")
1019 (version "4.4.0")
1020 (source
1021 (origin
1022 (method url-fetch)
1023 (uri
1024 (string-append "mirror://gnome/sources/" name "/"
1025 (version-major+minor version) "/"
1026 name "-" version ".tar.xz"))
1027 (sha256
1028 (base32
1029 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
1030 (build-system glib-or-gtk-build-system)
1031 (arguments
1032 `(#:tests? #f)) ; FIX-ME: Requires gvfs
1033 (native-inputs
1034 `(("gobject-introspection" ,gobject-introspection)
1035 ("pkg-config" ,pkg-config)))
1036 (inputs
1037 `(("amtk" ,amtk)
1038 ("glib" ,glib)
1039 ("gtk+" ,gtk+)
1040 ("gtksourceview" ,gtksourceview)
1041 ("libxml2" ,libxml2)
1042 ("uchardet" ,uchardet)))
1043 (synopsis "Text editor product line")
1044 (description "Tepl is a library that eases the development of
1045 GtkSourceView-based text editors and IDEs.")
1046 (home-page "https://wiki.gnome.org/Projects/Tepl")
1047 (license license:lgpl2.1+)))
1048
1049 (define-public krb5-auth-dialog
1050 (package
1051 (name "krb5-auth-dialog")
1052 (version "3.26.1")
1053 (source
1054 (origin
1055 (method url-fetch)
1056 (uri
1057 (string-append "mirror://gnome/sources/" name "/"
1058 (version-major+minor version) "/"
1059 name "-" version ".tar.xz"))
1060 (sha256
1061 (base32
1062 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1063 (build-system glib-or-gtk-build-system)
1064 (native-inputs
1065 `(("intltool" ,intltool)
1066 ("itstool" ,itstool)
1067 ("libxml2" ,libxml2)
1068 ("pkg-config" ,pkg-config)
1069 ("python-wrapper" ,python-wrapper)))
1070 (inputs
1071 `(("glib" ,glib)
1072 ("gtk+" ,gtk+)
1073 ("libnotify" ,libnotify)
1074 ("mit-krb5" ,mit-krb5)
1075 ("network-manager" ,network-manager)))
1076 (synopsis "Popup dialogs for Kerberos 5")
1077 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1078 tickets, and pops up a dialog when they are about to expire.")
1079 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1080 (license license:gpl2+)))
1081
1082 (define-public notification-daemon
1083 (package
1084 (name "notification-daemon")
1085 (version "3.20.0")
1086 (source
1087 (origin
1088 (method url-fetch)
1089 (uri
1090 (string-append "mirror://gnome/sources/" name "/"
1091 (version-major+minor version) "/"
1092 name "-" version ".tar.xz"))
1093 (sha256
1094 (base32
1095 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1096 (build-system glib-or-gtk-build-system)
1097 (native-inputs
1098 `(("intltool" ,intltool)
1099 ("pkg-config" ,pkg-config)))
1100 (inputs
1101 `(("glib" ,glib)
1102 ("gtk+" ,gtk+)
1103 ("x11" ,libx11)))
1104 (synopsis "Notification Daemon for GNOME Desktop")
1105 (description "Notification-Daemon is the server implementation of the
1106 freedesktop.org desktop notification specification.")
1107 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1108 (license license:gpl2+)))
1109
1110 (define-public mm-common
1111 (package
1112 (name "mm-common")
1113 (version "1.0.2")
1114 (source (origin
1115 (method url-fetch)
1116 (uri (string-append "mirror://gnome/sources/mm-common/"
1117 (version-major+minor version) "/"
1118 "mm-common-" version ".tar.xz"))
1119 (sha256
1120 (base32
1121 "07b4s5ckcz9q5gwx8vchim19mhfgl8wysqwi30pndks3m4zrzad2"))))
1122 (build-system meson-build-system)
1123 (arguments
1124 `(#:phases
1125 (modify-phases %standard-phases
1126 (add-after 'unpack 'patch
1127 (lambda* (#:key inputs #:allow-other-keys)
1128 (substitute* "util/mm-common-prepare.in"
1129 (("ln") (string-append (assoc-ref inputs "coreutils")
1130 "/bin/ln"))
1131 (("cp") (string-append (assoc-ref inputs "coreutils")
1132 "/bin/cp"))
1133 (("sed") (string-append (assoc-ref inputs "sed")
1134 "/bin/sed"))
1135 (("cat") (string-append (assoc-ref inputs "coreutils")
1136 "/bin/cat")))
1137 #t)))))
1138 (native-inputs
1139 `(("coreutils" ,coreutils)
1140 ("gettext" ,gettext-minimal)
1141 ("pkg-config" ,pkg-config)
1142 ("sed" ,sed)))
1143 (inputs
1144 `(("python" ,python)))
1145 (synopsis "Module of GNOME C++ bindings")
1146 (description "The mm-common module provides the build infrastructure
1147 and utilities shared among the GNOME C++ binding libraries. Release
1148 archives of mm-common include the Doxygen tag file for the GNU C++
1149 Library reference documentation.")
1150 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1151 (license license:gpl2+)))
1152
1153 (define-public phodav
1154 (package
1155 (name "phodav")
1156 (version "2.5")
1157 (source (origin
1158 (method url-fetch)
1159 (uri (string-append "mirror://gnome/sources/" name "/"
1160 (version-major+minor version) "/"
1161 name "-" version ".tar.xz"))
1162 (sha256
1163 (base32
1164 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1165 (build-system meson-build-system)
1166 (arguments
1167 `(#:phases
1168 (modify-phases %standard-phases
1169 (add-before 'check 'start-virtual-dir-server
1170 ;; The same server when started by tests/virtual-dir returns an
1171 ;; unexpected status (4 instead of 200) and fails a test. It is
1172 ;; unclear why starting it manually here makes it pass.
1173 (lambda _
1174 (system "tests/virtual-dir-server &")
1175 #t)))))
1176 (native-inputs
1177 `(("docbook-xml" ,docbook-xml-4.3)
1178 ("gettext" ,gettext-minimal)
1179 ("glib:bin" ,glib "bin")
1180 ("gtk-doc" ,gtk-doc)
1181 ("pkg-config" ,pkg-config)))
1182 (inputs
1183 `(("avahi" ,avahi)
1184 ("libgudev" ,libgudev)
1185 ("libsoup" ,libsoup)))
1186 (synopsis "WebDav server implementation using libsoup")
1187 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1188 but it is generic enough to be reused in other projects,
1189 in particular in the GNOME desktop.")
1190 (home-page "https://wiki.gnome.org/phodav")
1191 (license license:lgpl2.1+)))
1192
1193 (define-public gnome-color-manager
1194 (package
1195 (name "gnome-color-manager")
1196 (version "3.32.0")
1197 (source (origin
1198 (method url-fetch)
1199 (uri (string-append "mirror://gnome/sources/" name "/"
1200 (version-major+minor version) "/"
1201 name "-" version ".tar.xz"))
1202 (sha256
1203 (base32
1204 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1205 (build-system meson-build-system)
1206 (arguments
1207 `(#:glib-or-gtk? #t
1208 #:phases
1209 (modify-phases %standard-phases
1210 (add-before
1211 'check 'pre-check
1212 (lambda _
1213 ;; Tests require a running X server.
1214 (system "Xvfb :1 &")
1215 (setenv "DISPLAY" ":1")
1216 #t)))))
1217 (native-inputs
1218 `(("desktop-file-utils" ,desktop-file-utils)
1219 ("gettext" ,gettext-minimal)
1220 ("glib:bin" ,glib "bin")
1221 ("gtk+:bin" ,gtk+ "bin")
1222 ("itstool" ,itstool)
1223 ("pkg-config" ,pkg-config)
1224 ("xorg-server" ,xorg-server-for-tests)))
1225 (inputs
1226 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1227 ("appstream-glib" ,appstream-glib)
1228 ("colord-gtk" ,colord-gtk)
1229 ("exiv2" ,exiv2)
1230 ("gnome-desktop" ,gnome-desktop)
1231 ("libcanberra" ,libcanberra)
1232 ("libexif" ,libexif)
1233 ("libtiff" ,libtiff)
1234 ("libxrandr" ,libxrandr)
1235 ("libxtst" ,libxtst)
1236 ("libxxf86vm" ,libxxf86vm)
1237 ("vte" ,vte)
1238 ("xorgproto" ,xorgproto)))
1239 (synopsis "Color profile manager for the GNOME desktop")
1240 (description "GNOME Color Manager is a session framework that makes
1241 it easy to manage, install and generate color profiles
1242 in the GNOME desktop.")
1243 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1244 (license license:gpl2+)))
1245
1246 (define-public gnome-online-miners
1247 (package
1248 (name "gnome-online-miners")
1249 (version "3.34.0")
1250 (source (origin
1251 (method url-fetch)
1252 (uri (string-append "mirror://gnome/sources/" name "/"
1253 (version-major+minor version) "/"
1254 name "-" version ".tar.xz"))
1255 (sha256
1256 (base32
1257 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1258 (build-system glib-or-gtk-build-system)
1259 (native-inputs
1260 `(("gettext" ,gettext-minimal)
1261 ("glib:bin" ,glib "bin")
1262 ("gobject-introspection" ,gobject-introspection)
1263 ("gtk+:bin" ,gtk+ "bin")
1264 ("pkg-config" ,pkg-config)))
1265 (inputs
1266 `(("gnome-online-accounts" ,gnome-online-accounts)
1267 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1268 ("grilo" ,grilo)
1269 ("libgdata" ,libgdata)
1270 ("libgfbgraph" ,gfbgraph)
1271 ("libzapojit" ,libzapojit)
1272 ("rest" ,rest)
1273 ("tracker" ,tracker)))
1274 (synopsis "Web Crawlers for GNOME")
1275 (description "GNOME Online Miners provides a set of crawlers that
1276 go through your online content and index them locally in Tracker.
1277 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1278 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1279 (license license:gpl2+)))
1280
1281 (define-public gssdp
1282 (package
1283 (name "gssdp")
1284 (version "1.2.3")
1285 (source (origin
1286 (method url-fetch)
1287 (uri (string-append "mirror://gnome/sources/" name "/"
1288 (version-major+minor version) "/"
1289 name "-" version ".tar.xz"))
1290 (sha256
1291 (base32
1292 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1293 (build-system meson-build-system)
1294 (native-inputs
1295 `(("gettext" ,gettext-minimal)
1296 ("glib:bin" ,glib "bin")
1297 ("gobject-introspection" ,gobject-introspection)
1298 ("gtk-doc" ,gtk-doc)
1299 ("pkg-config" ,pkg-config)
1300 ("vala" ,vala)))
1301 (inputs
1302 `(("gtk+" ,gtk+)
1303 ("libsoup" ,libsoup)))
1304 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1305 Protocol} for GNOME")
1306 (description "This package provides a library to handle resource discovery
1307 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1308 a debugging tool, @command{gssdp-device-sniffer}.")
1309 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1310 (license license:lgpl2.0+)))
1311
1312 (define-public gupnp
1313 (package
1314 (name "gupnp")
1315 (version "1.2.4")
1316 (source (origin
1317 (method url-fetch)
1318 (uri (string-append "mirror://gnome/sources/" name "/"
1319 (version-major+minor version) "/"
1320 name "-" version ".tar.xz"))
1321 (sha256
1322 (base32
1323 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1324 (build-system meson-build-system)
1325 (native-inputs
1326 `(("gettext" ,gettext-minimal)
1327 ("glib:bin" ,glib "bin")
1328 ("gobject-introspection" ,gobject-introspection)
1329 ("gtk-doc" ,gtk-doc)
1330 ("pkg-config" ,pkg-config)
1331 ("vala" ,vala)))
1332 (inputs
1333 `(("gssdp" ,gssdp)
1334 ("gtk+" ,gtk+)
1335 ("libsoup" ,libsoup)))
1336 (synopsis "PnP API for GNOME")
1337 (description "This package provides GUPnP, an object-oriented framework
1338 for creating UPnP devices and control points, written in C using
1339 @code{GObject} and @code{libsoup}.")
1340 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1341 (license license:lgpl2.0+)))
1342
1343 (define-public gupnp-dlna
1344 (package
1345 (name "gupnp-dlna")
1346 (version "0.10.5")
1347 (source (origin
1348 (method url-fetch)
1349 (uri (string-append "mirror://gnome/sources/" name "/"
1350 (version-major+minor version) "/"
1351 name "-" version ".tar.xz"))
1352 (sha256
1353 (base32
1354 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1355 (build-system gnu-build-system)
1356 (native-inputs
1357 `(("gettext" ,gettext-minimal)
1358 ("glib:bin" ,glib "bin")
1359 ("gobject-introspection" ,gobject-introspection)
1360 ("gtk-doc" ,gtk-doc)
1361 ("libxml" ,libxml2)
1362 ("pkg-config" ,pkg-config)
1363 ("vala" ,vala)))
1364 (inputs
1365 `(("gstreamer" ,gstreamer)
1366 ("gupnp" ,gupnp)))
1367 (propagated-inputs
1368 `(("gst-plugins-base" ,gst-plugins-base)
1369 ("gst-plugins-good" ,gst-plugins-good)))
1370 (synopsis "GUPnP DLNA for GNOME")
1371 (description "This package provides a small utility library to
1372 support DLNA-related tasks such as media profile guessing, transcoding to a
1373 given profile, etc. DLNA is a subset of UPnP A/V.")
1374 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1375 (license license:lgpl2.0+)))
1376
1377 (define-public gupnp-av
1378 (package
1379 (name "gupnp-av")
1380 (version "0.12.11")
1381 (source (origin
1382 (method url-fetch)
1383 (uri (string-append "mirror://gnome/sources/" name "/"
1384 (version-major+minor version) "/"
1385 name "-" version ".tar.xz"))
1386 (sha256
1387 (base32
1388 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1389 (build-system gnu-build-system)
1390 (native-inputs
1391 `(("gettext" ,gettext-minimal)
1392 ("glib:bin" ,glib "bin")
1393 ("gobject-introspection" ,gobject-introspection)
1394 ("gtk-doc" ,gtk-doc)
1395 ("libxml" ,libxml2)
1396 ("pkg-config" ,pkg-config)))
1397 (inputs
1398 `(("gtk+" ,gtk+)
1399 ("gupnp" ,gupnp)))
1400 (synopsis "GUPnP A/V for GNOME")
1401 (description "This package provides a small library for handling
1402 and implementation of UPnP A/V profiles.")
1403 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1404 (license license:lgpl2.0+)))
1405
1406 (define-public libmediaart
1407 (package
1408 (name "libmediaart")
1409 (version "1.9.4")
1410 (source (origin
1411 (method url-fetch)
1412 (uri (string-append "mirror://gnome/sources/" name "/"
1413 (version-major+minor version) "/"
1414 name "-" version ".tar.xz"))
1415 (sha256
1416 (base32
1417 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
1418 (build-system gnu-build-system)
1419 (native-inputs
1420 `(("glib:bin" ,glib "bin")
1421 ("pkg-config" ,pkg-config)))
1422 (inputs
1423 `(("gdk-pixbuf" ,gdk-pixbuf)
1424 ("gettext" ,gettext-minimal)
1425 ("gobject-introspection" ,gobject-introspection)
1426 ("gtk+:doc" ,gtk+ "doc")
1427 ("vala" ,vala)))
1428 (synopsis "Media art library for the GNOME desktop")
1429 (description
1430 "The libmediaart library is the foundation for media art caching,
1431 extraction, and lookup for applications on the desktop.")
1432 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1433 (license license:lgpl2.1+)))
1434
1435 (define-public gnome-initial-setup
1436 (package
1437 (name "gnome-initial-setup")
1438 (version "3.32.1")
1439 (source (origin
1440 (method url-fetch)
1441 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1442 (version-major+minor version)
1443 "/gnome-initial-setup-" version ".tar.xz"))
1444 (sha256
1445 (base32
1446 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1447 (build-system meson-build-system)
1448 (arguments
1449 '(#:configure-flags '(;; Enable camera support for user selfie.
1450 "-Dcheese=auto"
1451 "-Dsystemd=false")
1452 #:phases (modify-phases %standard-phases
1453 (add-after 'unpack 'set-gkbd-file-name
1454 (lambda* (#:key inputs #:allow-other-keys)
1455 ;; Allow the "Preview" button in the keyboard layout
1456 ;; selection dialog to display the layout.
1457 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1458 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1459 (("\"gkbd-keyboard-display")
1460 (string-append "\"" libgnomekbd
1461 "/bin/gkbd-keyboard-display")))
1462 #t))))))
1463 (native-inputs
1464 `(("gettext" ,gettext-minimal)
1465 ("glib:bin" ,glib "bin")
1466 ("gobject-introspection" ,gobject-introspection)
1467 ("gtk+:bin" ,gtk+ "bin")
1468 ("pkg-config" ,pkg-config)))
1469 (inputs
1470 `(("accountsservice" ,accountsservice)
1471 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1472 ("gdm" ,gdm)
1473 ("geoclue" ,geoclue)
1474 ("gnome-desktop" ,gnome-desktop)
1475 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1476 ("gnome-online-accounts" ,gnome-online-accounts)
1477 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1478 ("gstreamer" ,gstreamer)
1479 ("ibus" ,ibus)
1480 ("json-glib" ,json-glib)
1481 ("krb5" ,mit-krb5)
1482 ("libgweather" ,libgweather)
1483 ("libnma" ,libnma)
1484 ("libsecret" ,libsecret)
1485 ("network-manager" ,network-manager)
1486 ("packagekit" ,packagekit)
1487 ("polkit" ,polkit)
1488 ("pwquality" ,libpwquality)
1489 ("rest" ,rest)
1490 ("upower" ,upower)
1491 ("webkitgtk" ,webkitgtk)
1492 ("libgnomekbd" ,libgnomekbd)))
1493 (synopsis "Initial setup wizard for GNOME desktop")
1494 (description "This package provides a set-up wizard when a
1495 user logs into GNOME for the first time. It typically provides a
1496 tour of all gnome components and allows the user to set them up.")
1497 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1498 (license license:gpl2)))
1499
1500 (define-public gnome-user-share
1501 (package
1502 (name "gnome-user-share")
1503 (version "3.33.1")
1504 (source (origin
1505 (method url-fetch)
1506 (uri (string-append "mirror://gnome/sources/" name "/"
1507 (version-major+minor version) "/"
1508 name "-" version ".tar.xz"))
1509 (sha256
1510 (base32
1511 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1512 (build-system meson-build-system)
1513 (arguments
1514 `(#:glib-or-gtk? #t
1515 #:configure-flags
1516 `("-Dsystemd=false"
1517 ;; Enable nautilus extension for file sharing.
1518 "-Dnautilus_extension=true")))
1519 (native-inputs
1520 `(("gettext" ,gettext-minimal)
1521 ("glib:bin" ,glib "bin")
1522 ("gobject-introspection" ,gobject-introspection)
1523 ("gtk+:bin" ,gtk+ "bin")
1524 ("pkg-config" ,pkg-config)
1525 ("yelp-tools" ,yelp-tools)))
1526 (inputs
1527 `(("glib" ,glib)
1528 ("gnome-bluetooth" ,gnome-bluetooth)
1529 ("gtk+" ,gtk+)
1530 ("libcanberra" ,libcanberra)
1531 ("libnotify" ,libnotify)
1532 ("nautilus" ,nautilus))) ; For nautilus extension.
1533 (synopsis "File sharing for GNOME desktop")
1534 (description "GNOME User Share is a small package that binds together
1535 various free software projects to bring easy to use user-level file
1536 sharing to the masses.")
1537 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1538 (license license:gpl2+)))
1539
1540 (define-public sushi
1541 (package
1542 (name "sushi")
1543 (version "3.32.1")
1544 (source (origin
1545 (method url-fetch)
1546 (uri (string-append "mirror://gnome/sources/" name "/"
1547 (version-major+minor version) "/"
1548 name "-" version ".tar.xz"))
1549 (sha256
1550 (base32
1551 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1552 (build-system meson-build-system)
1553 (arguments
1554 `(#:glib-or-gtk? #t
1555 #:phases
1556 (modify-phases %standard-phases
1557 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1558 (lambda* (#:key outputs #:allow-other-keys)
1559 (let ((prog (string-append (assoc-ref outputs "out")
1560 "/bin/sushi")))
1561 ;; Put existing typelibs before sushi's deps, so as to correctly
1562 ;; infer gdk-pixbuf
1563 (wrap-program prog
1564 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1565 #t))))))
1566 (native-inputs
1567 `(("glib:bin" ,glib "bin")
1568 ("gettext" ,gettext-minimal)
1569 ("gobject-introspection" ,gobject-introspection)
1570 ("pkg-config" ,pkg-config)))
1571 (inputs
1572 `(("clutter" ,clutter)
1573 ("clutter-gst" ,clutter-gst)
1574 ("clutter-gtk" ,clutter-gtk)
1575 ("evince" ,evince) ; For file previewing.
1576 ("freetype" ,freetype)
1577 ("gdk-pixbuf" ,gdk-pixbuf)
1578 ("gjs" ,gjs)
1579 ("gst-plugins-base" ,gst-plugins-base)
1580 ("gstreamer" ,gstreamer)
1581 ("gtksourceview" ,gtksourceview-3)
1582 ("harfbuzz" ,harfbuzz)
1583 ("libepoxy" ,libepoxy)
1584 ("libmusicbrainz" ,libmusicbrainz)
1585 ("libxml2" ,libxml2)
1586 ("neon" ,neon)
1587 ("webkitgtk" ,webkitgtk)))
1588 (synopsis "File previewer for the GNOME desktop")
1589 (description "Sushi is a DBus-activated service that allows applications to
1590 preview files on the GNOME desktop.")
1591 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1592 (license license:gpl2+)))
1593
1594 (define-public rygel
1595 (package
1596 (name "rygel")
1597 (version "0.38.3")
1598 (source (origin
1599 (method url-fetch)
1600 (uri (string-append "mirror://gnome/sources/" name "/"
1601 (version-major+minor version) "/"
1602 name "-" version ".tar.xz"))
1603 (sha256
1604 (base32
1605 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1606 (build-system gnu-build-system)
1607 (native-inputs
1608 `(("gettext" ,gettext-minimal)
1609 ("gobject-introspection" ,gobject-introspection)
1610 ("gtk-doc" ,gtk-doc)
1611 ("pkg-config" ,pkg-config)
1612 ("vala" ,vala)))
1613 (inputs
1614 `(("gdk-pixbuf" ,gdk-pixbuf)
1615 ("gssdp" ,gssdp)
1616 ("gstreamer" ,gstreamer)
1617 ("gst-plugins-base" ,gst-plugins-base)
1618 ("gtk+" ,gtk+)
1619 ("gupnp" ,gupnp)
1620 ("gupnp-av" ,gupnp-av)
1621 ("gupnp-dlna" ,gupnp-dlna)
1622 ("libgee" ,libgee)
1623 ("libmediaart" ,libmediaart)
1624 ("libsoup" ,libsoup)
1625 ("libxslt" ,libxslt)
1626 ("libunistring" ,libunistring)
1627 ("tracker" ,tracker)))
1628 (synopsis "Share audio, video, and pictures with other devices")
1629 (description
1630 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1631 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1632 pictures, and to control a media player on your home network.
1633
1634 Rygel achieves interoperability with other devices by trying to conform to the
1635 strict requirements of DLNA and by converting media on-the-fly to formats that
1636 client devices can handle.")
1637 (home-page "https://wiki.gnome.org/Projects/Rygel")
1638 (license (list
1639 ;; For logo (data/icons/*).
1640 license:cc-by-sa3.0
1641 ;; For all others.
1642 license:lgpl2.1+))))
1643
1644 (define-public libnma
1645 (package
1646 (name "libnma")
1647 (version "1.8.28")
1648 (source (origin
1649 (method url-fetch)
1650 (uri (string-append "mirror://gnome/sources/" name "/"
1651 (version-major+minor version) "/"
1652 name "-" version ".tar.xz"))
1653 (sha256
1654 (base32
1655 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1656 (build-system meson-build-system)
1657 (arguments
1658 `(#:phases
1659 (modify-phases %standard-phases
1660 (add-after 'unpack 'patch-docbook-xml
1661 (lambda* (#:key inputs #:allow-other-keys)
1662 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1663 "/xml/dtd/docbook")))
1664 (substitute* "libnma-docs.xml"
1665 (("http://.*/docbookx\\.dtd")
1666 (string-append xmldoc "/docbookx.dtd")))
1667 #t))))))
1668 (native-inputs
1669 `(("docbook-xml" ,docbook-xml-4.3)
1670 ("gettext" ,gettext-minimal)
1671 ("glib:bin" ,glib "bin")
1672 ("gtk-doc" ,gtk-doc)
1673 ("gobject-introspection" ,gobject-introspection)
1674 ("pkg-config" ,pkg-config)
1675 ("vala" ,vala)))
1676 (inputs
1677 `(("gcr" ,gcr)
1678 ("gtk+" ,gtk+)
1679 ("iso-codes" ,iso-codes)
1680 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1681 ("network-manager" ,network-manager)))
1682 (synopsis "Network Manager's applet library")
1683 (description "Libnma is an applet library for Network Manager. It was
1684 initially part of network-manager-applet and has now become a separate
1685 project.")
1686 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1687 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1688 ;; "LGPL-2.1+".
1689 (license license:gpl2+)))
1690
1691 (define-public gnome-menus
1692 (package
1693 (name "gnome-menus")
1694 (version "3.32.0")
1695 (source (origin
1696 (method url-fetch)
1697 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1698 (version-major+minor version) "/"
1699 name "-" version ".tar.xz"))
1700 (sha256
1701 (base32
1702 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1703 (build-system gnu-build-system)
1704 (native-inputs
1705 `(("gettext" ,gettext-minimal)
1706 ("glib" ,glib)
1707 ("pkg-config" ,pkg-config)))
1708 (synopsis "Menu support for GNOME desktop")
1709 (description "GNOME Menus contains the libgnome-menu library, the layout
1710 configuration files for the GNOME menu, as well as a simple menu editor.")
1711 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1712 (license license:lgpl2.0+)))
1713
1714 (define-public deja-dup
1715 (package
1716 (name "deja-dup")
1717 (version "40.6")
1718 (source (origin
1719 (method url-fetch)
1720 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1721 version "/deja-dup-" version ".tar.bz2"))
1722 (sha256
1723 (base32
1724 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1725 (build-system meson-build-system)
1726 (arguments
1727 `(#:glib-or-gtk? #t
1728 #:configure-flags
1729 (list
1730 ;; Otherwise, the RUNPATH will lack the final path component.
1731 (string-append "-Dc_link_args=-Wl,-rpath="
1732 (assoc-ref %outputs "out") "/lib/deja-dup"))
1733 #:phases
1734 (modify-phases %standard-phases
1735 (add-after 'unpack 'patch-paths
1736 (lambda* (#:key inputs #:allow-other-keys)
1737 (let ((python (assoc-ref inputs "python")))
1738 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1739 "libdeja/tests/scripts/instance-error.test")
1740 (("/bin/rm")
1741 (which "rm")))
1742 (substitute* "libdeja/tests/runner.vala"
1743 (("/bin/sh")
1744 (which "sh")))
1745 (substitute* "libdeja/tests/scripts/instance-error.test"
1746 (("`which python3`")
1747 (string-append python "/bin/python3"))))))
1748 (add-after 'unpack 'patch-libgpg-error
1749 (lambda* (#:key inputs #:allow-other-keys)
1750 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1751 (substitute* "meson.build"
1752 (("(gpgerror_libs = ).*" _ var)
1753 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1754 #t))
1755 (add-after 'unpack 'skip-gtk-update-icon-cache
1756 ;; Don't create 'icon-theme.cache'.
1757 (lambda _
1758 (substitute* "data/post-install.sh"
1759 (("gtk-update-icon-cache") "true"))
1760 #t)))))
1761 (inputs
1762 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1763 ("duplicity" ,duplicity)
1764 ("python" ,python)
1765 ("python-pygobject" ,python-pygobject)
1766 ("gtk+" ,gtk+)
1767 ("json-glib" ,json-glib)
1768 ("libnotify" ,libnotify)
1769 ("libgpg-error" ,libgpg-error)
1770 ("libsecret" ,libsecret)
1771 ("libsoup" ,libsoup)
1772 ("packagekit" ,packagekit)))
1773 (native-inputs
1774 `(("appstream-glib" ,appstream-glib)
1775 ("desktop-file-utils" ,desktop-file-utils)
1776 ("gettext" ,gettext-minimal)
1777 ("glib" ,glib "bin") ; for glib-compile-schemas.
1778 ("gobject-introspection" ,gobject-introspection)
1779 ("itstool" ,itstool)
1780 ("pkg-config" ,pkg-config)
1781 ("vala" ,vala)))
1782 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1783 (synopsis "Simple backup tool, for regular encrypted backups")
1784 (description
1785 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1786 uses duplicity as the backend, which supports incremental backups and storage
1787 either on a local, or remote machine via a number of methods.")
1788 (license license:gpl3+)))
1789
1790 (define-public gnome-commander
1791 (package
1792 (name "gnome-commander")
1793 (version "1.10.3")
1794 (source
1795 (origin
1796 (method url-fetch)
1797 (uri (string-append "mirror://gnome/sources/" name "/"
1798 (version-major+minor version) "/"
1799 "gnome-commander-" version ".tar.xz"))
1800 (sha256
1801 (base32 "0bis36awb73vhkncq8yr0qlnyaxynqkvmyqbg57ijqwd0m8hh4zg"))))
1802 (build-system glib-or-gtk-build-system)
1803 (native-inputs
1804 `(("desktop-file-utils" ,desktop-file-utils)
1805 ("gcc" ,gcc-8) ;required for -Wcast-function-type
1806 ("gettext" ,gettext-minimal)
1807 ("glib:bin" ,glib "bin")
1808 ("gobject-introspection" ,gobject-introspection)
1809 ("googletest" ,googletest)
1810 ("intltool" ,intltool)
1811 ("itstool" ,itstool)
1812 ("libtool" ,libtool)
1813 ("pkg-config" ,pkg-config)))
1814 (inputs
1815 `(("gconf" ,gconf)
1816 ("gnome-vfs" ,gnome-vfs)
1817 ("gtk+" ,gtk+-2)
1818 ("libxml2" ,libxml2)))
1819 (home-page "https://gcmd.github.io/")
1820 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1821 (description
1822 "GNOME Commander is a two-pane graphical file manager using GNOME
1823 libraries. It aims to fulfill the demands of more advanced users who
1824 like to focus on file management, their work through special applications
1825 and running smart commands.")
1826 (license license:gpl2+)))
1827
1828 (define-public gnome-user-docs
1829 (package
1830 (name "gnome-user-docs")
1831 (version "3.32.3")
1832 (source
1833 (origin
1834 (method url-fetch)
1835 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1836 (version-major+minor version)
1837 "/gnome-user-docs-" version ".tar.xz"))
1838 (sha256
1839 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1840 (build-system gnu-build-system)
1841 (native-inputs
1842 `(("gettext" ,gettext-minimal)
1843 ("itstool" ,itstool)
1844 ("pkg-config" ,pkg-config)
1845 ("xmllint" ,libxml2)))
1846 (synopsis "User documentation for the GNOME desktop")
1847 (description
1848 "The GNOME User Documentation explains how to use the GNOME desktop and its
1849 components. It covers usage and setup of the core GNOME programs by end-users
1850 and system administrators.")
1851 (home-page "https://live.gnome.org/DocumentationProject")
1852 (license license:cc-by3.0)))
1853
1854 (define-public gnome-getting-started-docs
1855 (package
1856 (name "gnome-getting-started-docs")
1857 (version "3.32.2")
1858 (source
1859 (origin
1860 (method url-fetch)
1861 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1862 (version-major+minor version)
1863 "/gnome-getting-started-docs-" version ".tar.xz"))
1864 (sha256
1865 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1866 (build-system gnu-build-system)
1867 (native-inputs
1868 `(("gettext" ,gettext-minimal)
1869 ("itstool" ,itstool)
1870 ("pkg-config" ,pkg-config)
1871 ("xmllint" ,libxml2)))
1872 (synopsis "Help to get new users started with the GNOME desktop")
1873 (description
1874 "The GNOME Getting Started Documentation contains GNOME's intuitive
1875 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1876
1877 It is normally used together with @command{gnome-initial-setup}, but is also
1878 useful as a tutorial and users' guide for new or less experienced users.")
1879 (home-page "https://live.gnome.org/DocumentationProject")
1880 (license license:cc-by-sa3.0)))
1881
1882 (define-public dia
1883 ;; This version from GNOME's repository includes fixes for compiling with
1884 ;; recent versions of the build tools. The latest activity on the
1885 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1886 ;; fixes since.
1887 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1888 (revision "2"))
1889 (package
1890 (name "dia")
1891 (version (git-version "0.97.3" revision commit))
1892 (source (origin
1893 (method git-fetch)
1894 (uri (git-reference
1895 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1896 (commit commit)))
1897 (file-name (git-file-name name version))
1898 (sha256
1899 (base32
1900 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1901 (build-system meson-build-system)
1902 (inputs
1903 `(("graphene" ,graphene)
1904 ("gtk+" ,gtk+-2)
1905 ("libxml2" ,libxml2)
1906 ("libxslt" ,libxslt)
1907 ("poppler" ,poppler)
1908 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1909 ;; ERROR: Unknown method "dependency" in object.
1910 ("python-2" ,python-2)))
1911 (native-inputs
1912 `(("appstream-glib" ,appstream-glib)
1913 ("docbook-xsl" ,docbook-xsl)
1914 ("glib" ,glib "bin")
1915 ("intltool" ,intltool)
1916 ("pkg-config" ,pkg-config)))
1917 (home-page "https://wiki.gnome.org/Apps/Dia")
1918 (synopsis "Diagram creation for GNOME")
1919 (description "Dia can be used to draw different types of diagrams, and
1920 includes support for UML static structure diagrams (class diagrams), entity
1921 relationship modeling, and network diagrams. The program supports various file
1922 formats like PNG, SVG, PDF and EPS.")
1923 (license license:gpl2+))))
1924
1925 ;; This is the unstable release, but it is required for the current stable
1926 ;; release of gvfs (1.38.1).
1927 (define-public libgdata
1928 (package
1929 (name "libgdata")
1930 (version "0.17.9")
1931 (source (origin
1932 (method url-fetch)
1933 (uri (string-append "mirror://gnome/sources/" name "/"
1934 (version-major+minor version) "/"
1935 name "-" version ".tar.xz"))
1936 (sha256
1937 (base32
1938 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1939 (build-system gnu-build-system)
1940 (arguments
1941 '(#:phases
1942 (modify-phases %standard-phases
1943 (add-before 'check 'disable-failing-tests
1944 (lambda _
1945 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1946 ;; They have been removed in libgdata 0.17.6, so just do the same.
1947 (substitute* "gdata/tests/Makefile"
1948 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1949 #t)))))
1950 (native-inputs
1951 `(("glib:bin" ,glib "bin")
1952 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1953 ("intltool" ,intltool)
1954 ("pkg-config" ,pkg-config)
1955 ("uhttpmock" ,uhttpmock)))
1956 (inputs
1957 `(("cyrus-sasl" ,cyrus-sasl)
1958 ("glib-networking" ,glib-networking)))
1959 (propagated-inputs
1960 `(("gcr" ,gcr)
1961 ("glib" ,glib)
1962 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1963 ("json-glib" ,json-glib)
1964 ("liboauth" ,liboauth)
1965 ("libsoup" ,libsoup)
1966 ("libxml2" ,libxml2)))
1967 (home-page "https://wiki.gnome.org/Projects/libgdata")
1968 (synopsis "Library for accessing online service APIs")
1969 (description
1970 "libgdata is a GLib-based library for accessing online service APIs using
1971 the GData protocol — most notably, Google's services. It provides APIs to
1972 access the common Google services, and has full asynchronous support.")
1973 (license license:lgpl2.1+)))
1974
1975 (define-public libgxps
1976 (package
1977 (name "libgxps")
1978 (version "0.3.2")
1979 (source (origin
1980 (method url-fetch)
1981 (uri (string-append "mirror://gnome/sources/" name "/"
1982 (version-major+minor version) "/"
1983 name "-" version ".tar.xz"))
1984 (sha256
1985 (base32
1986 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
1987 (build-system meson-build-system)
1988 (native-inputs
1989 `(("gobject-introspection" ,gobject-introspection)
1990 ("pkg-config" ,pkg-config)))
1991 (inputs
1992 `(("gtk+" ,gtk+)
1993 ("libjpeg" ,libjpeg-turbo)
1994 ("lcms" ,lcms)
1995 ("libtiff" ,libtiff)))
1996 (propagated-inputs
1997 ;; In Requires of libgxps.pc.
1998 `(("cairo" ,cairo)
1999 ("glib" ,glib)
2000 ("libarchive" ,libarchive)))
2001 (home-page "https://wiki.gnome.org/Projects/libgxps")
2002 (synopsis "GObject-based library for handling and rendering XPS documents")
2003 (description
2004 "libgxps is a GObject-based library for handling and rendering XPS
2005 documents. This package also contains binaries that can convert XPS documents
2006 to other formats.")
2007 (license license:lgpl2.1+)))
2008
2009 (define-public gnome-characters
2010 (package
2011 (name "gnome-characters")
2012 (version "3.30.0")
2013 (source
2014 (origin
2015 (method url-fetch)
2016 (uri (string-append "mirror://gnome/sources/"
2017 "gnome-characters/" (version-major+minor version)
2018 "/gnome-characters-" version ".tar.xz"))
2019 (sha256
2020 (base32
2021 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
2022 (build-system meson-build-system)
2023 (arguments
2024 `(#:glib-or-gtk? #t
2025 #:phases (modify-phases %standard-phases
2026 (add-after 'install 'wrap
2027 (lambda* (#:key outputs #:allow-other-keys)
2028 ;; GNOME Characters needs Typelib files from GTK and
2029 ;; gnome-desktop.
2030 (wrap-program (string-append (assoc-ref outputs "out")
2031 "/bin/gnome-characters")
2032 `("GI_TYPELIB_PATH" ":" prefix
2033 (,(getenv "GI_TYPELIB_PATH"))))
2034 #t)))))
2035 (native-inputs
2036 `(("gettext" ,gettext-minimal)
2037 ("glib:bin" ,glib "bin")
2038 ("gtk+:bin" ,gtk+ "bin")
2039 ("pkg-config" ,pkg-config)
2040 ("python" ,python-minimal)))
2041 (inputs
2042 `(("gjs" ,gjs)
2043 ("gtk+" ,gtk+)
2044 ("libunistring" ,libunistring)
2045 ("gnome-desktop" ,gnome-desktop)))
2046 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2047 (synopsis "Find and insert unusual characters")
2048 (description "Characters is a simple utility application to find
2049 and insert unusual characters. It allows you to quickly find the
2050 character you are looking for by searching for keywords.")
2051 (license license:bsd-3)))
2052
2053 (define-public gnome-common
2054 (package
2055 (name "gnome-common")
2056 (version "3.18.0")
2057 (source
2058 (origin
2059 (method url-fetch)
2060 (uri (string-append "mirror://gnome/sources/" name "/"
2061 (version-major+minor version) "/"
2062 name "-" version ".tar.xz"))
2063 (sha256
2064 (base32
2065 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2066 (build-system gnu-build-system)
2067 (home-page "https://www.gnome.org/")
2068 (synopsis "Bootstrap GNOME modules built from Git")
2069 (description "gnome-common contains various files needed to bootstrap
2070 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2071 can be used to configure a source directory checked out from Git and some
2072 commonly used macros.")
2073 (license license:gpl2+)))
2074
2075 (define-public gnome-contacts
2076 (package
2077 (name "gnome-contacts")
2078 (version "3.34")
2079 (source (origin
2080 (method url-fetch)
2081 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2082 (version-major+minor version) "/"
2083 name "-" version ".tar.xz"))
2084 (sha256
2085 (base32
2086 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
2087 (build-system meson-build-system)
2088 (arguments
2089 `(#:configure-flags '("-Dcheese=false")
2090 #:phases
2091 (modify-phases %standard-phases
2092 (add-after 'unpack 'generate-vapis
2093 (lambda* (#:key inputs #:allow-other-keys)
2094 ;; To generate goa's missing .vapi file
2095 (define goa
2096 (assoc-ref inputs "gnome-online-accounts:lib"))
2097
2098 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
2099 "--library=goa-1.0"
2100 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
2101 #t))
2102 (add-after 'unpack 'skip-gtk-update-icon-cache
2103 ;; Don't create 'icon-theme.cache'.
2104 (lambda _
2105 (substitute* "build-aux/meson_post_install.py"
2106 (("gtk-update-icon-cache") "true"))
2107 #t)))))
2108 (native-inputs
2109 `(("glib:bin" ,glib "bin")
2110 ("pkg-config" ,pkg-config)))
2111 (inputs
2112 `(("docbook-xml" ,docbook-xml)
2113 ("dockbook-xsl" ,docbook-xsl)
2114 ("evolution-data-server" ,evolution-data-server)
2115 ("gettext" ,gettext-minimal)
2116 ("gnome-desktop" ,gnome-desktop)
2117 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
2118 ("gobject-introspection" ,gobject-introspection)
2119 ("gst-plugins-base" ,gst-plugins-base)
2120 ("gtk+" ,gtk+)
2121 ("libgee" ,libgee)
2122 ("libxslt" ,libxslt)
2123 ("telepathy-glib" ,telepathy-glib)
2124 ("vala" ,vala)))
2125 (propagated-inputs
2126 `(("folks" ,folks)
2127 ("telepathy-mission-control" ,telepathy-mission-control)))
2128 (synopsis "GNOME's integrated address book")
2129 (description
2130 "GNOME Contacts organizes your contact information from online and
2131 offline sources, providing a centralized place for managing your contacts.")
2132 (home-page "https://wiki.gnome.org/Apps/Contacts")
2133 (license license:gpl2+)))
2134
2135 (define-public gnome-desktop
2136 (package
2137 (name "gnome-desktop")
2138 (version "3.34.2")
2139 (source
2140 (origin
2141 (method url-fetch)
2142 (uri (string-append "mirror://gnome/sources/" name "/"
2143 (version-major+minor version) "/"
2144 name "-" version ".tar.xz"))
2145 (sha256
2146 (base32
2147 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2148 (build-system meson-build-system)
2149 (arguments
2150 '(#:phases
2151 (modify-phases %standard-phases
2152 (add-before 'configure 'patch-path
2153 (lambda* (#:key inputs #:allow-other-keys)
2154 (let ((libc (assoc-ref inputs "libc")))
2155 (substitute* "libgnome-desktop/gnome-languages.c"
2156 (("\"locale\"")
2157 (string-append "\"" libc "/bin/locale\"")))
2158 #t)))
2159 (add-before 'configure 'patch-bubblewrap
2160 (lambda* (#:key inputs #:allow-other-keys)
2161 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2162 (("\"bwrap\",")
2163 (string-append "\"" (which "bwrap") "\","))
2164 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2165 (string-append "\"--ro-bind\", \""
2166 (%store-directory)
2167 "\", \""
2168 (%store-directory)
2169 "\","))
2170 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2171 #t))
2172 (add-before 'check 'pre-check
2173 (lambda* (#:key inputs #:allow-other-keys)
2174 ;; Tests require a running X server and locales.
2175 (system "Xvfb :1 &")
2176 (setenv "DISPLAY" ":1")
2177 (setenv "GUIX_LOCPATH"
2178 (string-append (assoc-ref inputs "glibc-locales")
2179 "/lib/locale"))
2180 #t)))))
2181 (native-inputs
2182 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2183 ("glibc-locales" ,glibc-locales) ; for tests
2184 ("gobject-introspection" ,gobject-introspection)
2185 ("itstool" ,itstool)
2186 ("intltool" ,intltool)
2187 ("pkg-config" ,pkg-config)
2188 ("xmllint" ,libxml2)
2189 ("xorg-server" ,xorg-server-for-tests)))
2190 (propagated-inputs
2191 ;; Required by gnome-desktop-3.0.pc.
2192 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2193 ("gtk+" ,gtk+)
2194 ("iso-codes" ,iso-codes)
2195 ("libseccomp" ,libseccomp)
2196 ("libx11" ,libx11)
2197 ("xkeyboard-config" ,xkeyboard-config)))
2198 (inputs
2199 `(("gdk-pixbuf" ,gdk-pixbuf)
2200 ("glib" ,glib)
2201 ("bubblewrap" ,bubblewrap)
2202 ("libxext" ,libxext)
2203 ("libxkbfile" ,libxkbfile)
2204 ("libxrandr" ,libxrandr)))
2205 (home-page "https://www.gnome.org/")
2206 (synopsis
2207 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2208 (description
2209 "The libgnome-desktop library provides API shared by several applications
2210 on the desktop, but that cannot live in the platform for various reasons.
2211 There is no API or ABI guarantee, although we are doing our best to provide
2212 stability. Documentation for the API is available with gtk-doc.
2213
2214 The gnome-about program helps find which version of GNOME is installed.")
2215 ; Some bits under the LGPL.
2216 (license license:gpl2+)))
2217
2218 (define-public gnome-doc-utils
2219 (package
2220 (name "gnome-doc-utils")
2221 (version "0.20.10")
2222 (source
2223 (origin
2224 (method url-fetch)
2225 (uri (string-append "mirror://gnome/sources/" name "/"
2226 (version-major+minor version) "/"
2227 name "-" version ".tar.xz"))
2228 (sha256
2229 (base32
2230 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2231 (build-system gnu-build-system)
2232 (native-inputs
2233 `(("intltool" ,intltool)
2234 ("docbook-xml" ,docbook-xml-4.4)
2235 ("python2-libxml2" ,python2-libxml2)
2236 ("libxml2" ,libxml2)
2237 ("libxslt" ,libxslt)
2238 ("pkg-config" ,pkg-config)
2239 ("python-2" ,python-2)))
2240 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2241 (synopsis
2242 "Documentation utilities for the Gnome project")
2243 (description
2244 "Gnome-doc-utils is a collection of documentation utilities for the
2245 Gnome project. It includes xml2po tool which makes it easier to translate
2246 and keep up to date translations of documentation.")
2247 (license license:gpl2+))) ; xslt under lgpl
2248
2249 (define-public gnome-disk-utility
2250 (package
2251 (name "gnome-disk-utility")
2252 (version "3.34.0")
2253 (source (origin
2254 (method url-fetch)
2255 (uri (string-append "mirror://gnome/sources/" name "/"
2256 (version-major+minor version) "/"
2257 name "-" version ".tar.xz"))
2258 (sha256
2259 (base32
2260 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2261 (build-system meson-build-system)
2262 (arguments
2263 '(#:configure-flags '("-Dlogind=libelogind")
2264 #:phases
2265 (modify-phases %standard-phases
2266 (add-after 'unpack 'skip-gtk-update-icon-cache
2267 ;; Don't create 'icon-theme.cache'.
2268 (lambda _
2269 (substitute* "meson_post_install.py"
2270 (("gtk-update-icon-cache") "true"))
2271 #t)))))
2272 (native-inputs
2273 `(("glib:bin" ,glib "bin")
2274 ("intltool" ,intltool)
2275 ("pkg-config" ,pkg-config)
2276 ("docbook-xml" ,docbook-xml)
2277 ("docbook-xsl" ,docbook-xsl)
2278 ("libxml2" ,libxml2)
2279 ("libxslt" ,libxslt)))
2280 (inputs
2281 `(("elogind" ,elogind)
2282 ("glib" ,glib)
2283 ("appstream-glib" ,appstream-glib)
2284 ("gnome-settings-daemon" ,gnome-settings-daemon)
2285 ("gtk+" ,gtk+)
2286 ("libcanberra" ,libcanberra)
2287 ("libdvdread" ,libdvdread)
2288 ("libnotify" ,libnotify)
2289 ("libpwquality" ,libpwquality)
2290 ("libsecret" ,libsecret)
2291 ("udisks" ,udisks)))
2292 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2293 (synopsis "Disk management utility for GNOME")
2294 (description "Disk management utility for GNOME.")
2295 (license license:gpl2+)))
2296
2297 (define-public gnome-font-viewer
2298 (package
2299 (name "gnome-font-viewer")
2300 (version "3.30.0")
2301 (source (origin
2302 (method url-fetch)
2303 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2304 (version-major+minor version)
2305 "/gnome-font-viewer-" version ".tar.xz"))
2306 (sha256
2307 (base32
2308 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2309 (build-system meson-build-system)
2310 (arguments
2311 '(#:phases
2312 (modify-phases %standard-phases
2313 (add-after 'unpack 'patch-post-install-script
2314 (lambda _
2315 (substitute* "meson-postinstall.sh"
2316 (("update-desktop-database") (which "true")))
2317 #t))
2318 (add-after 'install 'patch-thumbnailer
2319 (lambda* (#:key outputs #:allow-other-keys)
2320 (let ((out (assoc-ref outputs "out")))
2321 (substitute*
2322 (string-append
2323 out
2324 "/share/thumbnailers/gnome-font-viewer.thumbnailer")
2325 (("gnome-thumbnail-font")
2326 (string-append out "/bin/gnome-thumbnail-font"))))
2327 #t)))))
2328 (native-inputs
2329 `(("gettext" ,gettext-minimal)
2330 ("glib:bin" ,glib "bin")
2331 ("pkg-config" ,pkg-config)))
2332 (inputs
2333 `(("glib" ,glib)
2334 ("gnome-desktop" ,gnome-desktop)
2335 ("gtk+" ,gtk+)))
2336 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2337 (synopsis "GNOME Fonts")
2338 (description "Application to show you the fonts installed on your computer
2339 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2340 the font would look under various sizes.")
2341 (license license:gpl2+)))
2342
2343 (define-public gcr
2344 (package
2345 (name "gcr")
2346 (version "3.34.0")
2347 (source (origin
2348 (method url-fetch)
2349 (uri (string-append "mirror://gnome/sources/" name "/"
2350 (version-major+minor version) "/"
2351 name "-" version ".tar.xz"))
2352 (sha256
2353 (base32
2354 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2355 (build-system gnu-build-system)
2356 (arguments
2357 '(#:phases
2358 (modify-phases %standard-phases
2359 ;; These fail because /var/lib/dbus/machine-id is not present in the
2360 ;; build environment.
2361 (add-after 'unpack 'disable-failing-tests
2362 (lambda _
2363 (substitute* "Makefile.in"
2364 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2365 ""))
2366 #t))
2367 (add-before 'check 'pre-check
2368 (lambda _
2369 ;; Some tests expect to write to $HOME.
2370 (setenv "HOME" "/tmp")
2371 #t)))))
2372 (inputs
2373 `(("dbus" ,dbus)
2374 ("gnupg" ,gnupg) ;called as a child process during tests
2375 ("libgcrypt" ,libgcrypt)))
2376 (native-inputs
2377 `(("python" ,python-wrapper) ;for tests
2378 ("pkg-config" ,pkg-config)
2379 ("gettext" ,gettext-minimal)
2380 ("glib" ,glib "bin")
2381 ("gobject-introspection" ,gobject-introspection)
2382 ("libxml2" ,libxml2)
2383 ("vala" ,vala)
2384 ("xsltproc" ,libxslt)))
2385 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2386 (propagated-inputs
2387 `(("p11-kit" ,p11-kit)
2388 ("glib" ,glib)
2389 ("gtk+" ,gtk+)))
2390 (home-page "https://www.gnome.org")
2391 (synopsis "Libraries for displaying certificates and accessing key stores")
2392 (description
2393 "The GCR package contains libraries used for displaying certificates and
2394 accessing key stores. It also provides the viewer for crypto files on the
2395 GNOME Desktop.")
2396 (license license:lgpl2.1+)))
2397
2398 (define-public gdl
2399 (package
2400 (name "gdl")
2401 (version "3.34.0")
2402 (source (origin
2403 (method git-fetch)
2404 (uri (git-reference
2405 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2406 (commit (string-append "GDL_" (string-map (match-lambda
2407 (#\. #\_)
2408 (c c))
2409 version)))))
2410 (file-name (git-file-name name version))
2411 (sha256
2412 (base32
2413 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2414 (build-system gnu-build-system)
2415 (native-inputs
2416 `(("autoconf" ,autoconf)
2417 ("automake" ,automake)
2418 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2419 ("gnome-common" ,gnome-common)
2420 ("gtk-doc" ,gtk-doc)
2421 ("intltool" ,intltool)
2422 ("pkg-config" ,pkg-config)
2423 ("libtool" ,libtool)
2424 ("which" ,which)))
2425 (inputs
2426 `(("libxml2" ,libxml2)))
2427 (propagated-inputs
2428 ;; The gdl-3.0.pc file 'Requires' GTK+.
2429 `(("gtk+" ,gtk+)))
2430 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2431 (synopsis "GNOME docking library")
2432 (description "This library provides docking features for gtk+.")
2433 (license license:lgpl2.1+)))
2434
2435 ;;; A minimal variant used to break a cycle with Inkscape.
2436 (define-public gdl-minimal
2437 (package/inherit gdl
2438 (name "gdl-minimal")
2439 (arguments
2440 '(#:phases
2441 (modify-phases %standard-phases
2442 (add-after 'unpack 'disable-doc-generation
2443 ;; XXX: There is no easy way to disable generating the
2444 ;; documentation.
2445 (lambda _
2446 (substitute* "configure.in"
2447 (("GTK_DOC_CHECK.*") "")
2448 (("docs/.*") ""))
2449 (substitute* "Makefile.am"
2450 (("gdl docs po") "gdl po"))
2451 #t)))))
2452 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2453
2454 (define-public libgnome-keyring
2455 (package
2456 (name "libgnome-keyring")
2457 (version "3.12.0")
2458 (source (origin
2459 (method url-fetch)
2460 (uri (string-append "mirror://gnome/sources/" name "/"
2461 (version-major+minor version) "/"
2462 name "-" version ".tar.xz"))
2463 (sha256
2464 (base32
2465 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2466 (build-system gnu-build-system)
2467 (inputs
2468 `(("libgcrypt" ,libgcrypt)
2469 ("dbus" ,dbus)))
2470 (native-inputs
2471 `(("pkg-config" ,pkg-config)
2472 ("glib" ,glib "bin")
2473 ("intltool" ,intltool)))
2474 (propagated-inputs
2475 ;; Referred to in .h files and .pc.
2476 `(("glib" ,glib)))
2477 (home-page "https://www.gnome.org")
2478 (synopsis "Accessing passwords from the GNOME keyring")
2479 (description
2480 "Client library to access passwords from the GNOME keyring.")
2481
2482 ;; Though a couple of files are LGPLv2.1+.
2483 (license license:lgpl2.0+)))
2484
2485 (define-public gnome-keyring
2486 (package
2487 (name "gnome-keyring")
2488 (version "3.34.0")
2489 (source (origin
2490 (method url-fetch)
2491 (uri (string-append "mirror://gnome/sources/" name "/"
2492 (version-major+minor version) "/"
2493 name "-" version ".tar.xz"))
2494 (sha256
2495 (base32
2496 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2497 (build-system gnu-build-system)
2498 (arguments
2499 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2500 ;not exist
2501 #:configure-flags
2502 (list
2503 (string-append "--with-pkcs11-config="
2504 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2505 (string-append "--with-pkcs11-modules="
2506 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2507 #:phases
2508 (modify-phases %standard-phases
2509 (add-after 'unpack 'fix-/bin/sh-reference
2510 (lambda _
2511 (substitute* "po/Makefile.in.in"
2512 (("/bin/sh") (which "sh")))
2513 #t))
2514 (add-after 'unpack 'fix-docbook
2515 (lambda* (#:key inputs #:allow-other-keys)
2516 (substitute* "docs/Makefile.am"
2517 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2518 (string-append (assoc-ref inputs "docbook-xsl")
2519 "/xml/xsl/docbook-xsl-"
2520 ,(package-version docbook-xsl)
2521 "/manpages/docbook.xsl")))
2522 (setenv "XML_CATALOG_FILES"
2523 (string-append (assoc-ref inputs "docbook-xml")
2524 "/xml/dtd/docbook/catalog.xml"))
2525 ;; Rerun the whole thing to avoid version mismatch ("This is
2526 ;; Automake 1.15.1, but the definition used by this
2527 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2528 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2529 (invoke "autoconf")
2530 (invoke "aclocal")
2531 (invoke "automake" "-ac"))))))
2532 (inputs
2533 `(("libgcrypt" ,libgcrypt)
2534 ("linux-pam" ,linux-pam)
2535 ("openssh" ,openssh)
2536 ("dbus" ,dbus)
2537 ("gcr" ,gcr)))
2538 (native-inputs
2539 `(("pkg-config" ,pkg-config)
2540 ("glib" ,glib "bin")
2541 ("glib" ,glib) ; for m4 macros
2542 ("python" ,python-2) ;for tests
2543 ("intltool" ,intltool)
2544 ("autoconf" ,autoconf)
2545 ("automake" ,automake)
2546 ("libxslt" ,libxslt) ;for documentation
2547 ("docbook-xml" ,docbook-xml-4.2)
2548 ("docbook-xsl" ,docbook-xsl)))
2549 (propagated-inputs
2550 `(("gcr" ,gcr)))
2551 (home-page "https://www.gnome.org")
2552 (synopsis "Daemon to store passwords and encryption keys")
2553 (description
2554 "gnome-keyring is a program that keeps passwords and other secrets for
2555 users. It is run as a daemon in the session, similar to ssh-agent, and other
2556 applications locate it via an environment variable or D-Bus.
2557
2558 The program can manage several keyrings, each with its own master password,
2559 and there is also a session keyring which is never stored to disk, but
2560 forgotten when the session ends.")
2561 (license license:lgpl2.1+)))
2562
2563 (define-public evince
2564 (package
2565 (name "evince")
2566 (version "3.36.5")
2567 (source (origin
2568 (method url-fetch)
2569 (uri (string-append "mirror://gnome/sources/evince/"
2570 (version-major+minor version) "/"
2571 "evince-" version ".tar.xz"))
2572 (sha256
2573 (base32
2574 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2575 (build-system glib-or-gtk-build-system)
2576 (arguments
2577 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2578 #:phases
2579 (modify-phases %standard-phases
2580 (add-before 'install 'skip-gtk-update-icon-cache
2581 ;; Don't create 'icon-theme.cache'.
2582 (lambda _
2583 (substitute* "data/Makefile"
2584 (("gtk-update-icon-cache") "true"))
2585 #t)))))
2586 (inputs
2587 `(("libarchive" ,libarchive)
2588 ("libgxps" ,libgxps)
2589 ("libspectre" ,libspectre)
2590 ("djvulibre" ,djvulibre)
2591 ("ghostscript" ,ghostscript)
2592 ("poppler" ,poppler)
2593 ("libtiff" ,libtiff)
2594 ;; TODO:
2595 ;; Build libkpathsea as a shared library for DVI support.
2596 ;; ("libkpathsea" ,texlive-bin)
2597 ("gnome-desktop" ,gnome-desktop)
2598 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2599 ("gspell" ,gspell)
2600 ("libgnome-keyring" ,libgnome-keyring)
2601 ("adwaita-icon-theme" ,adwaita-icon-theme)
2602 ("gdk-pixbuf" ,gdk-pixbuf)
2603 ("atk" ,atk)
2604 ("pango" ,pango)
2605 ("gtk+" ,gtk+)
2606 ("glib" ,glib)
2607 ("libxml2" ,libxml2)
2608 ("libsm" ,libsm)
2609 ("libice" ,libice)
2610 ("shared-mime-info" ,shared-mime-info)
2611 ("dconf" ,dconf)
2612 ("libcanberra" ,libcanberra)
2613 ("libsecret" ,libsecret)
2614
2615 ;; For tests.
2616 ("dogtail" ,python2-dogtail)))
2617 (native-inputs
2618 `(("itstool" ,itstool)
2619 ("intltool" ,intltool)
2620 ("glib" ,glib "bin")
2621 ("gobject-introspection" ,gobject-introspection)
2622 ("pkg-config" ,pkg-config)
2623 ("xmllint" ,libxml2)))
2624 (home-page "https://www.gnome.org/projects/evince/")
2625 (synopsis "GNOME's document viewer")
2626 (description
2627 "Evince is a document viewer for multiple document formats. It
2628 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2629 of Evince is to replace the multiple document viewers that exist
2630 on the GNOME Desktop with a single simple application.")
2631 (license license:gpl2+)))
2632
2633 (define-public gsettings-desktop-schemas
2634 (package
2635 (name "gsettings-desktop-schemas")
2636 (version "3.34.0")
2637 (source
2638 (origin
2639 (method url-fetch)
2640 (uri (string-append "mirror://gnome/sources/" name "/"
2641 (version-major+minor version) "/"
2642 name "-" version ".tar.xz"))
2643 (sha256
2644 (base32
2645 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2646 (build-system meson-build-system)
2647 (arguments
2648 '(#:phases (modify-phases %standard-phases
2649 (add-after 'unpack 'patch-schemas
2650 (lambda* (#:key inputs #:allow-other-keys)
2651 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2652 (substitute* (find-files "schemas"
2653 "\\.gschema\\.xml\\.in$")
2654 ;; Provide the correct file name of the default GNOME
2655 ;; background, 'adwaita-timed.xml'.
2656 (("@datadir@/backgrounds/gnome")
2657 (string-append theme "/share/backgrounds/gnome"))
2658 ;; Do not reference fonts, that may not exist.
2659 (("'Source Code Pro 10'") "'Monospace 11'"))
2660 #t))))))
2661 (inputs
2662 `(("glib" ,glib)
2663 ("gnome-backgrounds" ,gnome-backgrounds)))
2664 (native-inputs
2665 `(("intltool" ,intltool)
2666 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2667 ("gobject-introspection" ,gobject-introspection)
2668 ("pkg-config" ,pkg-config)))
2669 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2670 (synopsis
2671 "GNOME settings for various desktop components")
2672 (description
2673 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2674 for settings shared by various components of the GNOME desktop.")
2675 (license license:lgpl2.1+)))
2676
2677 (define-public python-liblarch
2678 (package
2679 (name "python-liblarch")
2680 (version "3.0.1")
2681 (source
2682 (origin
2683 (method git-fetch)
2684 (uri (git-reference
2685 (url "https://github.com/getting-things-gnome/liblarch")
2686 (commit (string-append "v" version))))
2687 (file-name (git-file-name name version))
2688 (sha256
2689 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2690 (build-system python-build-system)
2691 (arguments
2692 `(#:phases
2693 (modify-phases %standard-phases
2694 (add-before 'check 'start-xserver
2695 (lambda* (#:key inputs #:allow-other-keys)
2696 (system (format #f "~a/bin/Xvfb :1 &"
2697 (assoc-ref inputs "xorg-server")))
2698 (setenv "DISPLAY" ":1")
2699 #t)))))
2700 (native-inputs
2701 `(("xorg-server" ,xorg-server-for-tests)))
2702 (inputs
2703 `(("gtk+" ,gtk+)))
2704 (propagated-inputs
2705 `(("python-pygobject" ,python-pygobject)))
2706 (home-page "https://wiki.gnome.org/Projects/liblarch")
2707 (synopsis "Library to easily handle complex data structures")
2708 (description
2709 "Liblarch is a Python library built to easily handle data structures such
2710 as lists, trees and acyclic graphs. There's also a GTK binding that will
2711 allow you to use your data structure in a @code{Gtk.Treeview}.
2712
2713 Liblarch support multiple views of one data structure and complex filtering.
2714 That way, you have a clear separation between your data themselves (Model)
2715 and how they are displayed (View).")
2716 (license license:lgpl3+)))
2717
2718 (define-public gtg
2719 (package
2720 (name "gtg")
2721 (version "0.4")
2722 (source
2723 (origin
2724 (method git-fetch)
2725 (uri (git-reference
2726 (url "https://github.com/getting-things-gnome/gtg")
2727 (commit (string-append "v" version))))
2728 (file-name (git-file-name name version))
2729 (sha256
2730 (base32 "0r28vyr88rj3kd3cg4gj7sd29wadjchi92wzmbx67d4hlg25h8kk"))))
2731 (build-system meson-build-system)
2732 (arguments
2733 `(#:glib-or-gtk? #t
2734 #:phases
2735 (modify-phases %standard-phases
2736 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2737 (lambda* (#:key outputs #:allow-other-keys)
2738 (let ((prog (string-append (assoc-ref outputs "out")
2739 "/bin/gtg"))
2740 (pylib (string-append (assoc-ref outputs "out")
2741 "/lib/python"
2742 ,(version-major+minor
2743 (package-version python))
2744 "/site-packages")))
2745 (wrap-program prog
2746 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
2747 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2748 #t))))))
2749 (native-inputs
2750 `(("desktop-file-utils" ,desktop-file-utils)
2751 ("gettext" ,gettext-minimal)
2752 ("glib:bin" ,glib "bin")
2753 ("gobject-introspection" ,gobject-introspection)
2754 ("gtk+:bin" ,gtk+ "bin")
2755 ("pkg-config" ,pkg-config)))
2756 (inputs
2757 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2758 ("gtk+" ,gtk+)
2759 ("python-dbus" ,python-dbus)
2760 ("python-liblarch" ,python-liblarch)
2761 ("python-pycairo" ,python-pycairo)
2762 ("python-pygobject" ,python-pygobject)
2763 ("python-pyxdg" ,python-pyxdg)))
2764 (home-page "https://wiki.gnome.org/Apps/GTG")
2765 (synopsis "Personal organizer for the GNOME desktop")
2766 (description
2767 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2768 organizer for the GNOME desktop environment inspired by the Getting Things
2769 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2770 and ease of use in mind so it can be used as more than just GTD software.
2771 GTG is intended to help you track everything you need to do and need to
2772 know, from small tasks to large projects.")
2773 (license license:gpl3+)))
2774
2775 (define-public icon-naming-utils
2776 (package
2777 (name "icon-naming-utils")
2778 (version "0.8.90")
2779 (source
2780 (origin
2781 (method url-fetch)
2782 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2783 version ".tar.bz2"))
2784 (sha256
2785 (base32
2786 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2787 (build-system gnu-build-system)
2788 (inputs
2789 `(("perl" ,perl)
2790 ("perl-xml-simple" ,perl-xml-simple)))
2791 (arguments
2792 '(#:phases
2793 (modify-phases %standard-phases
2794 (add-after 'install 'set-load-paths
2795 ;; Tell 'icon-name-mapping' where XML::Simple is.
2796 (lambda* (#:key outputs #:allow-other-keys)
2797 (let* ((out (assoc-ref outputs "out"))
2798 (prog (string-append out "/libexec/icon-name-mapping")))
2799 (wrap-program
2800 prog
2801 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2802 #t)))))
2803 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2804 (synopsis
2805 "Utility to implement the Freedesktop Icon Naming Specification")
2806 (description
2807 "To help with the transition to the Freedesktop Icon Naming
2808 Specification, the icon naming utility maps the icon names used by the
2809 GNOME and KDE desktops to the icon names proposed in the specification.")
2810 (license license:lgpl2.1+)))
2811
2812 (define-public gnome-icon-theme
2813 (package
2814 (name "gnome-icon-theme")
2815 (version "3.12.0")
2816 (source
2817 (origin
2818 (method url-fetch)
2819 (uri (string-append "mirror://gnome/sources/" name "/"
2820 (version-major+minor version) "/"
2821 name "-" version ".tar.xz"))
2822 (sha256
2823 (base32
2824 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2825 (build-system gnu-build-system)
2826 (arguments
2827 '(#:configure-flags
2828 ;; Don't create 'icon-theme.cache'.
2829 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2830 (true (string-append coreutils "/bin/true")))
2831 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2832 (native-inputs
2833 `(("icon-naming-utils" ,icon-naming-utils)
2834 ("intltool" ,intltool)
2835 ("pkg-config" ,pkg-config)))
2836 (home-page "https://wiki.gnome.org/Personalization")
2837 (synopsis "GNOME icon theme")
2838 (description "Icons for the GNOME desktop.")
2839 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2840
2841 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2842 (define-public adwaita-icon-theme
2843 (package (inherit gnome-icon-theme)
2844 (name "adwaita-icon-theme")
2845 (version "3.34.3")
2846 (source (origin
2847 (method url-fetch)
2848 (uri (string-append "mirror://gnome/sources/" name "/"
2849 (version-major+minor version) "/"
2850 name "-" version ".tar.xz"))
2851 (sha256
2852 (base32
2853 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2854 (native-inputs
2855 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2856
2857 (define-public tango-icon-theme
2858 (package
2859 (name "tango-icon-theme")
2860 (version "0.8.90")
2861 (source (origin
2862 (method url-fetch)
2863 (uri (string-append "http://tango.freedesktop.org/releases/"
2864 "tango-icon-theme-" version ".tar.bz2"))
2865 (sha256
2866 (base32
2867 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2868 (build-system gnu-build-system)
2869 (native-inputs
2870 `(("icon-naming-utils" ,icon-naming-utils)
2871 ("intltool" ,intltool)
2872 ("imagemagick" ,imagemagick)
2873 ("pkg-config" ,pkg-config)))
2874 (home-page "http://tango-project.org/")
2875 (synopsis "Tango icon theme")
2876 (description "This is an icon theme that follows the Tango visual
2877 guidelines.")
2878 (license license:public-domain)))
2879
2880 (define-public shared-mime-info
2881 (package
2882 (name "shared-mime-info")
2883 (version "1.15")
2884 (source (origin
2885 (method url-fetch)
2886 (uri (string-append
2887 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2888 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2889 ".tar.xz"))
2890 (sha256
2891 (base32
2892 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2893 (build-system gnu-build-system)
2894 (arguments
2895 ;; The build system appears not to be parallel-safe.
2896 '(#:parallel-build? #f))
2897 (inputs
2898 `(("glib" ,glib)
2899 ("libxml2" ,libxml2)))
2900 (native-inputs
2901 `(("gettext" ,gettext-minimal)
2902 ("itstool" ,itstool)
2903 ("pkg-config" ,pkg-config)))
2904 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2905 (synopsis "Database of common MIME types")
2906 (description
2907 "The shared-mime-info package contains the core database of common types
2908 and the update-mime-database command used to extend it. It requires glib2 to
2909 be installed for building the update command. Additionally, it uses intltool
2910 for translations, though this is only a dependency for the maintainers. This
2911 database is translated at Transifex.")
2912 (license license:gpl2+)))
2913
2914 (define-public system-config-printer
2915 (package
2916 (name "system-config-printer")
2917 (version "1.5.15")
2918 (source
2919 (origin
2920 (method url-fetch)
2921 (uri (string-append
2922 "https://github.com/OpenPrinting/system-config-printer/releases/"
2923 "download/v" version
2924 "/system-config-printer-" version ".tar.xz"))
2925 (sha256
2926 (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv"))))
2927 (build-system glib-or-gtk-build-system)
2928 (arguments
2929 `(#:imported-modules ((guix build python-build-system)
2930 ,@%glib-or-gtk-build-system-modules)
2931 #:phases
2932 (modify-phases %standard-phases
2933 (add-after 'unpack 'patch-Makefile.am
2934 (lambda _
2935 ;; The Makefile generates some scripts, so set a valid shebang
2936 (substitute* "Makefile.am"
2937 (("/bin/bash") (which "bash")))
2938 (delete-file "configure")
2939 #t))
2940 (add-after 'unpack 'patch-docbook-xml
2941 (lambda* (#:key inputs #:allow-other-keys)
2942 ;; Modify the man XML otherwise xmlto tries to access the network
2943 (substitute* "man/system-config-printer.xml"
2944 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2945 (string-append (assoc-ref inputs "docbook-xml")
2946 "/xml/dtd/docbook/")))
2947 #t))
2948 (add-after 'install 'wrap-for-python
2949 (@@ (guix build python-build-system) wrap))
2950 (add-after 'install 'wrap
2951 (lambda* (#:key outputs #:allow-other-keys)
2952 (let ((out (assoc-ref outputs "out"))
2953 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2954 (for-each
2955 (lambda (program)
2956 (wrap-program program
2957 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2958 (map (lambda (name)
2959 (string-append out "/bin/" name))
2960 '("system-config-printer"
2961 "system-config-printer-applet"
2962 "install-printerdriver"
2963 "scp-dbus-service"))))
2964 #t)))))
2965 (inputs
2966 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2967 ("gobject-introspection" ,gobject-introspection)
2968 ("python" ,python)
2969 ("cups" ,cups)
2970 ("gtk+" ,gtk+)
2971 ("python-dbus" ,python-dbus)
2972 ("python-pygobject" ,python-pygobject)
2973 ("python-pycups" ,python-pycups)
2974 ("python-requests" ,python-requests)
2975 ("python-pycairo" ,python-pycairo)
2976 ("libnotify" ,libnotify)
2977 ("packagekit" ,packagekit)))
2978 (native-inputs
2979 `(("pkg-config" ,pkg-config)
2980 ("desktop-file-utils" ,desktop-file-utils)
2981 ("glib" ,glib)
2982 ("autoconf" ,autoconf)
2983 ("automake" ,automake)
2984 ("intltool" ,intltool)
2985 ("xmlto" ,xmlto)
2986 ("docbook-xml" ,docbook-xml-4.1.2)
2987 ("docbook-xsl" ,docbook-xsl)
2988 ("libxml2" ,libxml2)))
2989 (home-page "https://github.com/zdohnal/system-config-printer")
2990 (synopsis "CUPS administration tool")
2991 (description
2992 "system-config-printer is a CUPS administration tool. It's written in
2993 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2994 configuring CUPS.")
2995 (license license:gpl2+)))
2996
2997 (define-public hicolor-icon-theme
2998 (package
2999 (name "hicolor-icon-theme")
3000 (version "0.17")
3001 (source
3002 (origin
3003 (method url-fetch)
3004 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3005 "hicolor-icon-theme-" version ".tar.xz"))
3006 (sha256
3007 (base32
3008 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3009 (build-system gnu-build-system)
3010 (arguments
3011 `(#:tests? #f)) ; no check target
3012 (home-page "https://icon-theme.freedesktop.org/releases/")
3013 (synopsis
3014 "Freedesktop icon theme")
3015 (description
3016 "Freedesktop icon theme.")
3017 (license license:gpl2)))
3018
3019 (define-public libnotify
3020 (package
3021 (name "libnotify")
3022 (version "0.7.9")
3023 (source
3024 (origin
3025 (method url-fetch)
3026 (uri (string-append "mirror://gnome/sources/" name "/"
3027 (version-major+minor version) "/"
3028 name "-" version ".tar.xz"))
3029 (sha256
3030 (base32
3031 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3032 (build-system meson-build-system)
3033 (arguments
3034 `(#:phases
3035 (modify-phases %standard-phases
3036 (add-after 'unpack 'fix-docbook
3037 (lambda* (#:key inputs #:allow-other-keys)
3038 ;; Don't attempt to download XSL schema.
3039 (substitute* "meson.build"
3040 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3041 /manpages/docbook.xsl")
3042 (string-append (assoc-ref inputs "docbook-xsl")
3043 "/xml/xsl/docbook-xsl-"
3044 ,(package-version docbook-xsl)
3045 "/manpages/docbook.xsl")))
3046 #t)))))
3047 (propagated-inputs
3048 `(;; In Requires of libnotify.pc.
3049 ("gdk-pixbuf" ,gdk-pixbuf)
3050 ("glib" ,glib)))
3051 (inputs
3052 `(("gtk+" ,gtk+)
3053 ("libpng" ,libpng)))
3054 (native-inputs
3055 `(("pkg-config" ,pkg-config)
3056 ("glib" ,glib "bin")
3057 ("gobject-introspection" ,gobject-introspection)
3058
3059 ;; For the documentation.
3060 ("gtk-doc" ,gtk-doc)
3061 ("xsltproc" ,libxslt)
3062 ("docbook-xsl" ,docbook-xsl)))
3063 (home-page "https://developer-next.gnome.org/libnotify/")
3064 (synopsis
3065 "GNOME desktop notification library")
3066 (description
3067 "Libnotify is a library that sends desktop notifications to a
3068 notification daemon, as defined in the Desktop Notifications spec. These
3069 notifications can be used to inform the user about an event or display
3070 some form of information without getting in the user's way.")
3071 (license license:lgpl2.1+)))
3072
3073 (define-public libpeas
3074 (package
3075 (name "libpeas")
3076 (version "1.28.0")
3077 (source
3078 (origin
3079 (method url-fetch)
3080 (uri (string-append "mirror://gnome/sources/" name "/"
3081 (version-major+minor version) "/"
3082 name "-" version ".tar.xz"))
3083 (sha256
3084 (base32
3085 "05cb7drn6arc4gi02wgsvzibigi2riz5gnfnmlb0zmbfnj9ikna2"))))
3086 (build-system meson-build-system)
3087 (arguments
3088 '(#:phases
3089 (modify-phases %standard-phases
3090 (add-before 'check 'start-xserver
3091 (lambda* (#:key inputs #:allow-other-keys)
3092 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3093 (disp ":1"))
3094 (setenv "DISPLAY" disp)
3095 ;; Tests require a running X server.
3096 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3097 #t))))))
3098 (inputs
3099 `(("gtk+" ,gtk+)
3100 ("glade" ,glade3)
3101 ("python" ,python)
3102 ("python-pygobject" ,python-pygobject)))
3103 (native-inputs
3104 `(("pkg-config" ,pkg-config)
3105 ("gettext" ,gettext-minimal)
3106 ("glib:bin" ,glib "bin")
3107 ("gobject-introspection" ,gobject-introspection)
3108 ("xorg-server" ,xorg-server-for-tests)))
3109 (propagated-inputs
3110 ;; The .pc file "Requires" gobject-introspection.
3111 `(("gobject-introspection" ,gobject-introspection)))
3112 (home-page "https://wiki.gnome.org/Libpeas")
3113 (synopsis "GObject plugin system")
3114 (description
3115 "Libpeas is a gobject-based plugin engine, targeted at giving every
3116 application the chance to assume its own extensibility. It also has a set of
3117 features including, but not limited to: multiple extension points; on-demand
3118 (lazy) programming language support for C, Python and JS; simplicity of the
3119 API.")
3120 (license license:lgpl2.0+)))
3121
3122 (define-public gtkglext
3123 (package
3124 (name "gtkglext")
3125 (version "1.2.0")
3126 (source (origin
3127 (method url-fetch)
3128 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3129 version "/gtkglext-" version ".tar.gz"))
3130 (sha256
3131 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3132 (patches (search-patches
3133 "gtkglext-disable-disable-deprecated.patch"))))
3134 (build-system gnu-build-system)
3135 (arguments
3136 `(#:phases
3137 (modify-phases %standard-phases
3138 ;; Fix a collision between a local variable and a definition from
3139 ;; glibc's string.h.
3140 (add-after 'unpack 'fix-collision
3141 (lambda _
3142 (substitute* "gdk/gdkglshapes.c"
3143 ((" index") " triangle_index"))
3144 #t)))))
3145 (inputs `(("gtk+" ,gtk+-2)
3146 ("mesa" ,mesa)
3147 ("glu" ,glu)
3148 ("libx11" ,libx11)
3149 ("libxt" ,libxt)))
3150 (native-inputs `(("pkg-config" ,pkg-config)
3151 ("glib" ,glib "bin")))
3152 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
3153 (home-page "https://projects.gnome.org/gtkglext")
3154 (synopsis "OpenGL extension to GTK+")
3155 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3156 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3157 API add-ons to make GTK+ widgets OpenGL-capable.")
3158 (license license:lgpl2.1+)))
3159
3160 (define-public glade3
3161 (package
3162 (name "glade")
3163 (version "3.36.0")
3164 (source (origin
3165 (method url-fetch)
3166 (uri (string-append "mirror://gnome/sources/" name "/"
3167 (version-major+minor version) "/"
3168 name "-" version ".tar.xz"))
3169 (sha256
3170 (base32
3171 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
3172 (build-system glib-or-gtk-build-system)
3173 (arguments
3174 `(#:phases
3175 (modify-phases %standard-phases
3176 (add-before 'configure 'fix-docbook
3177 (lambda* (#:key inputs #:allow-other-keys)
3178 (substitute* "man/Makefile.in"
3179 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
3180 (string-append (assoc-ref inputs "docbook-xsl")
3181 "/xml/xsl/docbook-xsl-"
3182 ,(package-version docbook-xsl)
3183 "/manpages/docbook.xsl")))
3184 #t))
3185 (add-before 'check 'pre-check
3186 (lambda _
3187 (setenv "HOME" "/tmp")
3188 ;; Tests require a running X server.
3189 (system "Xvfb :1 &")
3190 (setenv "DISPLAY" ":1")
3191 #t)))))
3192 (inputs
3193 `(("gtk+" ,gtk+)
3194 ("libxml2" ,libxml2)))
3195 (native-inputs
3196 `(("hicolor-icon-theme" ,hicolor-icon-theme)
3197 ("intltool" ,intltool)
3198 ("itstool" ,itstool)
3199 ("libxslt" ,libxslt) ;for xsltproc
3200 ("docbook-xml" ,docbook-xml-4.2)
3201 ("docbook-xsl" ,docbook-xsl)
3202 ("python" ,python-2)
3203 ("pkg-config" ,pkg-config)
3204 ("xorg-server" ,xorg-server-for-tests)))
3205 (home-page "https://glade.gnome.org")
3206 (synopsis "GTK+ rapid application development tool")
3207 (description "Glade is a rapid application development (RAD) tool to
3208 enable quick & easy development of user interfaces for the GTK+ toolkit and
3209 the GNOME desktop environment.")
3210 (license license:lgpl2.0+)
3211 (native-search-paths (list (search-path-specification
3212 (variable "GLADE_CATALOG_SEARCH_PATH")
3213 (files '("share/glade/catalogs")))
3214 (search-path-specification
3215 (variable "GLADE_MODULE_SEARCH_PATH")
3216 (files '("lib/glade/modules")))))))
3217
3218 (define-public libcroco
3219 (package
3220 (name "libcroco")
3221 (version "0.6.13")
3222 (source (origin
3223 (method url-fetch)
3224 (uri (string-append "mirror://gnome/sources/" name "/"
3225 (version-major+minor version) "/"
3226 name "-" version ".tar.xz"))
3227 (sha256
3228 (base32
3229 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3230 (replacement libcroco/fixed)
3231 (build-system gnu-build-system)
3232 (native-inputs
3233 `(("pkg-config" ,pkg-config)))
3234 (inputs
3235 `(("glib" ,glib)
3236 ("libxml2" ,libxml2)
3237 ("zlib" ,zlib)))
3238 (home-page "https://github.com/GNOME/libcroco")
3239 (synopsis "CSS2 parsing and manipulation library")
3240 (description
3241 "Libcroco is a standalone CSS2 parsing and manipulation library.
3242 The parser provides a low level event driven SAC-like API and a CSS object
3243 model like API. Libcroco provides a CSS2 selection engine and an experimental
3244 XML/CSS rendering engine.")
3245
3246 ;; LGPLv2.1-only.
3247 (license license:lgpl2.1)))
3248
3249 (define libcroco/fixed
3250 (package
3251 (inherit libcroco)
3252 (name "libcroco")
3253 (version "0.6.13")
3254 (source (origin
3255 (method url-fetch)
3256 (uri (string-append "mirror://gnome/sources/" name "/"
3257 (version-major+minor version) "/"
3258 name "-" version ".tar.xz"))
3259 (sha256
3260 (base32
3261 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))
3262 (patches (search-patches "libcroco-CVE-2020-12825.patch"))))))
3263
3264 (define-public libgsf
3265 (package
3266 (name "libgsf")
3267 (version "1.14.47")
3268 (source (origin
3269 (method url-fetch)
3270 (uri (string-append "mirror://gnome/sources/" name "/"
3271 (version-major+minor version) "/"
3272 name "-" version ".tar.xz"))
3273 (sha256
3274 (base32
3275 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3276 (build-system gnu-build-system)
3277 (arguments
3278 '(#:configure-flags '("--disable-static")))
3279 (native-inputs
3280 `(("pkg-config" ,pkg-config)
3281 ("gettext" ,gettext-minimal)
3282
3283 ;; For tests.
3284 ("perl" ,perl)
3285 ("perl-xml-parser" ,perl-xml-parser)))
3286 (inputs
3287 `(("zlib" ,zlib)
3288 ("bzip2" ,bzip2)))
3289 (propagated-inputs
3290 `(("gdk-pixbuf" ,gdk-pixbuf)
3291 ("glib" ,glib)
3292 ("libxml2" ,libxml2)))
3293 (home-page "https://www.gnome.org/projects/libgsf")
3294 (synopsis "GNOME's Structured File Library")
3295 (description
3296 "Libgsf aims to provide an efficient extensible I/O abstraction for
3297 dealing with different structured file formats.")
3298
3299 ;; LGPLv2.1-only.
3300 (license license:lgpl2.1)))
3301
3302 (define-public librsvg
3303 (package
3304 (name "librsvg")
3305 (version "2.40.21")
3306 (source (origin
3307 (method url-fetch)
3308 (uri (string-append "mirror://gnome/sources/" name "/"
3309 (version-major+minor version) "/"
3310 name "-" version ".tar.xz"))
3311 (sha256
3312 (base32
3313 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3314 (build-system gnu-build-system)
3315 (arguments
3316 `(#:configure-flags
3317 (list "--disable-static"
3318 "--enable-vala") ; needed for e.g. gnome-mines
3319 #:phases
3320 (modify-phases %standard-phases
3321 (add-before 'configure 'pre-configure
3322 (lambda* (#:key inputs #:allow-other-keys)
3323 (substitute* "gdk-pixbuf-loader/Makefile.in"
3324 ;; By default the gdk-pixbuf loader is installed under
3325 ;; gdk-pixbuf's prefix. Work around that.
3326 (("gdk_pixbuf_moduledir = .*$")
3327 (string-append "gdk_pixbuf_moduledir = "
3328 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3329 "loaders\n"))
3330 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3331 (("gdk_pixbuf_cache_file = .*$")
3332 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3333 #t))
3334 (add-before 'check 'remove-failing-tests
3335 (lambda _
3336 (with-directory-excursion "tests/fixtures/reftests"
3337 (for-each delete-file
3338 '(;; This test fails on i686:
3339 "svg1.1/masking-path-04-b.svg"
3340 ;; This test fails on armhf:
3341 "svg1.1/masking-mask-01-b.svg"
3342 ;; This test fails on aarch64:
3343 "bugs/777834-empty-text-children.svg")))
3344 #t)))))
3345 (native-inputs
3346 `(("pkg-config" ,pkg-config)
3347 ("vala" ,vala)
3348 ("glib" ,glib "bin") ; glib-mkenums, etc.
3349 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3350 (inputs
3351 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3352 ;; this ancient version of librsvg.
3353 ("pango" ,pango-1.42)
3354 ("libcroco" ,libcroco)
3355 ("bzip2" ,bzip2)
3356 ("libgsf" ,libgsf)
3357 ("libxml2" ,libxml2)))
3358 (propagated-inputs
3359 ;; librsvg-2.0.pc refers to all of that.
3360 `(("cairo" ,cairo)
3361 ("gdk-pixbuf" ,gdk-pixbuf)
3362 ("glib" ,glib)))
3363 (home-page "https://wiki.gnome.org/LibRsvg")
3364 (synopsis "Render SVG files using Cairo")
3365 (description
3366 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3367 library.")
3368 (license license:lgpl2.0+)))
3369
3370 (define-public librsvg-next
3371 (package
3372 (name "librsvg")
3373 (version "2.50.2")
3374 (source (origin
3375 (method url-fetch)
3376 (uri (string-append "mirror://gnome/sources/librsvg/"
3377 (version-major+minor version) "/"
3378 "librsvg-" version ".tar.xz"))
3379 (sha256
3380 (base32
3381 "1lsnl08b5pjf01q3agixjd53islw5rqkc38r31rlmm2crrqz44b2"))
3382 (modules '((guix build utils)))
3383 (snippet
3384 '(begin (delete-file-recursively "vendor")
3385 #t))))
3386 (build-system cargo-build-system)
3387 (outputs '("out" "doc"))
3388 (arguments
3389 `(#:install-source? #f
3390 #:modules
3391 ((guix build cargo-build-system)
3392 (guix build utils)
3393 ((guix build gnu-build-system) #:prefix gnu:))
3394 #:cargo-inputs
3395 (("rust-bitflags" ,rust-bitflags-1)
3396 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3397 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3398 ("rust-cast" ,rust-cast-0.2)
3399 ("rust-cssparser" ,rust-cssparser-0.27)
3400 ("rust-data-url" ,rust-data-url-0.1)
3401 ("rust-encoding" ,rust-encoding-0.2)
3402 ("rust-float-cmp" ,rust-float-cmp-0.8)
3403 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3404 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3405 ("rust-gio" ,rust-gio-0.8)
3406 ("rust-gio-sys" ,rust-gio-sys-0.9)
3407 ("rust-glib" ,rust-glib-0.9)
3408 ("rust-glib-sys" ,rust-glib-sys-0.9)
3409 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3410 ("rust-itertools" ,rust-itertools-0.9)
3411 ("rust-language-tags" ,rust-language-tags-0.2)
3412 ("rust-libc" ,rust-libc-0.2)
3413 ("rust-locale-config" ,rust-locale-config-0.3)
3414 ("rust-markup5ever" ,rust-markup5ever-0.10)
3415 ("rust-nalgebra" ,rust-nalgebra-0.21)
3416 ("rust-num-traits" ,rust-num-traits-0.2)
3417 ("rust-once-cell" ,rust-once-cell-1)
3418 ("rust-pkg-config" ,rust-pkg-config-0.3)
3419 ("rust-pango" ,rust-pango-0.8)
3420 ("rust-pango-sys" ,rust-pango-sys-0.9)
3421 ("rust-pangocairo" ,rust-pangocairo-0.9)
3422 ("rust-rayon" ,rust-rayon-1)
3423 ("rust-rctree" ,rust-rctree-0.3)
3424 ("rust-rgb" ,rust-rgb-0.8)
3425 ("rust-regex" ,rust-regex-1)
3426 ("rust-selectors" ,rust-selectors-0.22)
3427 ("rust-string-cache" ,rust-string-cache-0.8)
3428 ("rust-tinyvec" ,rust-tinyvec-0.3)
3429 ("rust-url" ,rust-url-2)
3430 ("rust-xml5ever" ,rust-xml5ever-0.16))
3431 #:cargo-development-inputs
3432 (("rust-assert-cmd" ,rust-assert-cmd-1)
3433 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3434 ("rust-chrono" ,rust-chrono-0.4)
3435 ("rust-criterion" ,rust-criterion-0.3)
3436 ("rust-float-cmp" ,rust-float-cmp-0.8)
3437 ("rust-lopdf" ,rust-lopdf-0.25)
3438 ("rust-png" ,rust-png-0.16)
3439 ("rust-predicates" ,rust-predicates-1)
3440 ("rust-tempfile" ,rust-tempfile-3))
3441 #:phases
3442 (modify-phases %standard-phases
3443 (add-after 'unpack 'patch-docbook-xml
3444 (lambda* (#:key inputs #:allow-other-keys)
3445 (with-directory-excursion "doc"
3446 (substitute* "rsvg-docs.xml"
3447 (("http://www.oasis-open.org/docbook/xml/4.3/")
3448 (string-append (assoc-ref inputs "docbook-xml")
3449 "/xml/dtd/docbook/"))))
3450 #t))
3451 (add-after 'unpack 'prepare-for-build
3452 (lambda _
3453 ;; In lieu of #:make-flags
3454 (setenv "CC" ,(cc-for-target))
3455 ;; Something about the build environment resists building
3456 ;; successfully with the '--locked' flag.
3457 (substitute* '("Makefile.am" "Makefile.in")
3458 (("--locked") ""))
3459 #t))
3460 (add-before 'configure 'pre-configure
3461 (lambda _
3462 (substitute* "gdk-pixbuf-loader/Makefile.in"
3463 ;; By default the gdk-pixbuf loader is installed under
3464 ;; gdk-pixbuf's prefix. Work around that.
3465 (("gdk_pixbuf_moduledir = .*$")
3466 (string-append "gdk_pixbuf_moduledir = "
3467 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3468 "loaders\n"))
3469 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3470 (("gdk_pixbuf_cache_file = .*$")
3471 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3472 #t))
3473 (add-after 'configure 'gnu-configure
3474 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3475 ((assoc-ref gnu:%standard-phases 'configure)
3476 #:native-inputs native-inputs
3477 #:inputs inputs
3478 #:outputs outputs
3479 #:configure-flags
3480 (list "--disable-static"
3481 "--enable-vala"
3482 (string-append "--with-html-dir="
3483 (assoc-ref %outputs "doc")
3484 "/share/gtk-doc/html")))))
3485 (add-after 'configure 'dont-vendor-self
3486 (lambda* (#:key vendor-dir #:allow-other-keys)
3487 ;; Don't keep the whole tarball in the vendor directory
3488 (delete-file-recursively
3489 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3490 #t))
3491 (replace 'build
3492 (assoc-ref gnu:%standard-phases 'build))
3493 (add-before 'check 'ignore-failing-tests
3494 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3495 (lambda _
3496 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3497 (("fn background_color_option_invalid_color_yields_error" all)
3498 (string-append "#[ignore] " all))
3499 (("fn empty_input_yields_error" all)
3500 (string-append "#[ignore] " all))
3501 (("fn empty_svg_yields_error" all)
3502 (string-append "#[ignore] " all))
3503 (("fn env_source_data_epoch_empty" all)
3504 (string-append "#[ignore] " all))
3505 (("fn env_source_data_epoch_no_digits" all)
3506 (string-append "#[ignore] " all))
3507 (("fn env_source_data_epoch_trailing_garbage" all)
3508 (string-append "#[ignore] " all))
3509 (("fn export_id_option_error" all)
3510 (string-append "#[ignore] " all))
3511 (("fn huge_zoom_factor_yields_error" all)
3512 (string-append "#[ignore] " all))
3513 (("fn multiple_input_files_not_allowed_for_png_output" all)
3514 (string-append "#[ignore] " all))
3515 (("fn stylesheet_option_error" all)
3516 (string-append "#[ignore] " all)))
3517 #t))
3518 (replace 'check
3519 (lambda* args
3520 ((assoc-ref gnu:%standard-phases 'check)
3521 #:test-target "check")))
3522 (replace 'install
3523 (assoc-ref gnu:%standard-phases 'install)))))
3524 (native-inputs
3525 `(("docbook-xml" ,docbook-xml-4.3)
3526 ("glib" ,glib "bin")
3527 ("gobject-introspection" ,gobject-introspection)
3528 ("pkg-config" ,pkg-config)
3529 ("python" ,python-wrapper)
3530 ("ruby" ,ruby)
3531 ("vala" ,vala)))
3532 (inputs
3533 `(("bzip2" ,bzip2)
3534 ("fontconfig" ,fontconfig)
3535 ("freetype" ,freetype)
3536 ("harfbuzz" ,harfbuzz)
3537 ("libcroco" ,libcroco)
3538 ("libgsf" ,libgsf)
3539 ("libxml2" ,libxml2)
3540 ("pango" ,pango)))
3541 (propagated-inputs
3542 `(("cairo" ,cairo)
3543 ("gdk-pixbuf" ,gdk-pixbuf)
3544 ("glib" ,glib)))
3545 (synopsis "SVG rendering library")
3546 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3547 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3548 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3549 diagrams.")
3550 (home-page "https://wiki.gnome.org/LibRsvg")
3551 (license license:lgpl2.1+)))
3552
3553 (define-public libidl
3554 (package
3555 (name "libidl")
3556 (version "0.8.14")
3557 (source (origin
3558 (method url-fetch)
3559 (uri (string-append "mirror://gnome/sources/libIDL/"
3560 (version-major+minor version) "/"
3561 "libIDL-" version ".tar.bz2"))
3562 (sha256
3563 (base32
3564 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3565 (build-system gnu-build-system)
3566 (inputs `(("glib" ,glib)))
3567 (native-inputs
3568 `(("pkg-config" ,pkg-config)
3569 ("flex" ,flex)
3570 ("bison" ,bison)))
3571 (home-page "http://freecode.com/projects/libidl")
3572 (synopsis "Create trees of CORBA Interface Definition Language files")
3573 (description "Libidl is a library for creating trees of CORBA Interface
3574 Definition Language (idl) files, which is a specification for defining
3575 portable interfaces. libidl was initially written for orbit (the orb from the
3576 GNOME project, and the primary means of libidl distribution). However, the
3577 functionality was designed to be as reusable and portable as possible.")
3578 (properties `((upstream-name . "libIDL")))
3579 (license license:lgpl2.0+)))
3580
3581
3582 (define-public orbit2
3583 (package
3584 (name "orbit2")
3585 (version "2.14.19")
3586 (source (origin
3587 (method url-fetch)
3588 (uri (let ((upstream-name "ORBit2"))
3589 (string-append "mirror://gnome/sources/" upstream-name "/"
3590 (version-major+minor version) "/"
3591 upstream-name "-" version ".tar.bz2")))
3592 (sha256
3593 (base32
3594 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3595 (build-system gnu-build-system)
3596 (arguments
3597 `(;; The "timeout-server" test hangs when run in parallel.
3598 #:parallel-tests? #f
3599 #:configure-flags
3600 '(;; We don't need static libraries, plus they don't build reproducibly
3601 ;; (non-deterministic ordering of .o files in the archive.)
3602 "--disable-static"
3603
3604 ;; The programmer kindly gives us a hook to turn off deprecation
3605 ;; warnings ...
3606 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3607 ;; ... which they then completly ignore !!
3608 #:phases
3609 (modify-phases %standard-phases
3610 (add-before 'configure 'ignore-deprecations
3611 (lambda _
3612 (substitute* "linc2/src/Makefile.in"
3613 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3614 #t)))))
3615 (inputs `(("glib" ,glib)
3616 ("libidl" ,libidl)))
3617 (native-inputs
3618 `(("pkg-config" ,pkg-config)))
3619 (home-page "https://projects.gnome.org/orbit2/")
3620 (synopsis "CORBA 2.4-compliant Object Request Broker")
3621 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3622 featuring mature C, C++ and Python bindings.")
3623 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3624 ;; a version. SOME of the code files have licence notices for GPLv2+.
3625 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3626 (license license:gpl2+)
3627 (properties `((upstream-name . "ORBit2")))))
3628
3629
3630 (define-public libbonobo
3631 (package
3632 (name "libbonobo")
3633 (version "2.32.1")
3634 (source (origin
3635 (method url-fetch)
3636 (uri (string-append "mirror://gnome/sources/" name "/"
3637 (version-major+minor version)
3638 "/" name "-" version ".tar.bz2"))
3639 (sha256
3640 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3641 (patches (search-patches
3642 "libbonobo-activation-test-race.patch"))))
3643 (build-system gnu-build-system)
3644 (arguments
3645 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3646 `(#:configure-flags
3647 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3648 ;; ... which they then completly ignore !!
3649 #:phases
3650 (modify-phases %standard-phases
3651 (add-before 'configure 'ignore-deprecations
3652 (lambda _
3653 (substitute* "activation-server/Makefile.in"
3654 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3655 #t)))
3656
3657 ;; There's apparently a race condition between the server stub
3658 ;; generation and linking of the example under 'samples/echo' that can
3659 ;; lead do undefined references when building in parallel, as reported
3660 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3661 ;; Thus, disable parallel builds.
3662 #:parallel-build? #f))
3663 (inputs `(("popt" ,popt)
3664 ("libxml2" ,libxml2)))
3665 ;; The following are Required by the .pc file
3666 (propagated-inputs
3667 `(("glib" ,glib)
3668 ("orbit2" ,orbit2)))
3669 (native-inputs
3670 `(("intltool" ,intltool)
3671 ("pkg-config" ,pkg-config)
3672 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3673 ("flex" ,flex)
3674 ("bison" ,bison)))
3675 (home-page "https://developer.gnome.org/libbonobo/")
3676 (synopsis "Framework for creating reusable components for use in GNOME applications")
3677 (description "Bonobo is a framework for creating reusable components for
3678 use in GNOME applications, built on top of CORBA.")
3679 ;; Licence not explicitly stated. Source files contain no licence notices.
3680 ;; Tarball contains text of both GPLv2 and LGPLv2
3681 ;; GPLv2 covers both conditions
3682 (license license:gpl2+)))
3683
3684
3685 (define-public gconf
3686 (package
3687 (name "gconf")
3688 (version "3.2.6")
3689 (source (origin
3690 (method url-fetch)
3691 (uri
3692 (let ((upstream-name "GConf"))
3693 (string-append "mirror://gnome/sources/" upstream-name "/"
3694 (version-major+minor version) "/"
3695 upstream-name "-" version ".tar.xz")))
3696 (sha256
3697 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3698 (build-system gnu-build-system)
3699 (inputs `(("dbus-glib" ,dbus-glib)
3700 ("libxml2" ,libxml2)))
3701 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3702 ("orbit2" ,orbit2)))
3703 (native-inputs
3704 `(("intltool" ,intltool)
3705 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3706 ("pkg-config" ,pkg-config)))
3707 (home-page "https://projects.gnome.org/gconf/")
3708 (synopsis "Store application preferences")
3709 (description "Gconf is a system for storing application preferences. It
3710 is intended for user preferences; not arbitrary data storage.")
3711 (license license:lgpl2.0+)
3712 (properties '((upstream-name . "GConf")))))
3713
3714
3715 (define-public gnome-mime-data
3716 (package
3717 (name "gnome-mime-data")
3718 (version "2.18.0")
3719 (source (origin
3720 (method url-fetch)
3721 (uri (string-append "mirror://gnome/sources/" name "/"
3722 (version-major+minor version) "/"
3723 name "-" version ".tar.bz2"))
3724 (sha256
3725 (base32
3726 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3727 (build-system gnu-build-system)
3728 (native-inputs
3729 `(("perl" ,perl)
3730 ("intltool" ,intltool)))
3731 (arguments
3732 '(#:phases (modify-phases %standard-phases
3733 (add-after 'configure 'use-our-intltool
3734 (lambda _
3735 ;; Do not use the bundled intltool commands, which lack
3736 ;; the "dotless @INC" fixes of our 'intltool' package.
3737 (substitute* (find-files "." "^Makefile$")
3738 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3739 (string-append "INTLTOOL_" tool " = intltool-"
3740 (string-downcase tool) "\n")))
3741 #t)))))
3742 (home-page "https://www.gnome.org")
3743 (synopsis "Base MIME and Application database for GNOME")
3744 (description "GNOME Mime Data is a module which contains the base MIME
3745 and Application database for GNOME. The data stored by this module is
3746 designed to be accessed through the MIME functions in GnomeVFS.")
3747 (license license:gpl2+)))
3748
3749
3750 (define-public gnome-vfs
3751 (package
3752 (name "gnome-vfs")
3753 (version "2.24.4")
3754 (source (origin
3755 (method url-fetch)
3756 (uri (string-append "mirror://gnome/sources/" name "/"
3757 (version-major+minor version) "/"
3758 name "-" version ".tar.bz2"))
3759 (sha256
3760 (base32
3761 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3762 (build-system gnu-build-system)
3763 (arguments
3764 `(#:phases
3765 (modify-phases %standard-phases
3766 (add-before 'configure 'ignore-deprecations
3767 (lambda _
3768 (substitute* '("libgnomevfs/Makefile.in"
3769 "daemon/Makefile.in")
3770 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3771 #t))
3772 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3773 (lambda _
3774 (substitute* "test/test-async-cancel.c"
3775 (("EXIT_FAILURE") "77"))
3776 #t)))))
3777 (inputs `(("libxml2" ,libxml2)
3778 ("dbus-glib" ,dbus-glib)
3779 ("gconf" ,gconf)
3780 ("gnome-mime-data" ,gnome-mime-data)
3781 ("zlib" ,zlib)))
3782 (native-inputs
3783 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3784 ("intltool" ,intltool)
3785 ("pkg-config" ,pkg-config)))
3786 (home-page "https://developer.gnome.org/gnome-vfs/")
3787 (synopsis "Access files and folders in GNOME applications")
3788 (description
3789 "GnomeVFS is the core library used to access files and folders in GNOME
3790 applications. It provides a file system abstraction which allows applications
3791 to access local and remote files with a single consistent API.")
3792 (license license:lgpl2.0+)))
3793
3794
3795
3796 (define-public libgnome
3797 (package
3798 (name "libgnome")
3799 (version "2.32.1")
3800 (source (origin
3801 (method url-fetch)
3802 (uri (string-append "mirror://gnome/sources/" name "/"
3803 (version-major+minor version) "/"
3804 name "-" version ".tar.bz2"))
3805 (sha256
3806 (base32
3807 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3808 (patches (search-patches "libgnome-encoding.patch"))))
3809 (build-system gnu-build-system)
3810 (arguments
3811 `(#:phases
3812 (modify-phases %standard-phases
3813 (add-before 'configure 'enable-deprecated
3814 (lambda _
3815 (substitute* "libgnome/Makefile.in"
3816 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3817 #t)))))
3818 (inputs `(("libxml2" ,libxml2)))
3819 (native-inputs
3820 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3821 ("intltool" ,intltool)
3822 ("pkg-config" ,pkg-config)))
3823 ;; The following are listed as Required in the .pc file
3824 ;; (except for libcanberra -- which seems to be oversight on the part
3825 ;; of the upstream developers -- anything that links against libgnome,
3826 ;; must also link against libcanberra
3827 (propagated-inputs
3828 `(("libcanberra" ,libcanberra)
3829 ("libbonobo" ,libbonobo)
3830 ("gconf" ,gconf)
3831 ("gnome-vfs" ,gnome-vfs)
3832 ("popt" ,popt))) ;gnome-program.h includes popt.h
3833 (home-page "https://developer.gnome.org/libgnome/")
3834 (synopsis "Useful routines for building applications")
3835 (description "The libgnome library provides a number of useful routines
3836 for building modern applications, including session management, activation of
3837 files and URIs, and displaying help.")
3838 (license license:lgpl2.0+)))
3839
3840
3841 (define-public libart-lgpl
3842 (package
3843 (name "libart-lgpl")
3844 (version "2.3.21")
3845 (source (origin
3846 (method url-fetch)
3847 (uri (let ((upstream-name "libart_lgpl"))
3848 (string-append "mirror://gnome/sources/" upstream-name "/"
3849 (version-major+minor version) "/"
3850 upstream-name "-" version ".tar.bz2")))
3851 (sha256
3852 (base32
3853 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3854 (build-system gnu-build-system)
3855 (native-inputs
3856 `(("pkg-config" ,pkg-config)))
3857 (home-page "https://people.gnome.org/~mathieu/libart")
3858 (synopsis "2D drawing library")
3859 (description "Libart is a 2D drawing library intended as a
3860 high-quality vector-based 2D library with antialiasing and alpha composition.")
3861 (license license:lgpl2.0+)))
3862
3863
3864
3865 (define-public libgnomecanvas
3866 (package
3867 (name "libgnomecanvas")
3868 (version "2.30.3")
3869 (source (origin
3870 (method url-fetch)
3871 (uri (string-append "mirror://gnome/sources/" name "/"
3872 (version-major+minor version) "/"
3873 name "-" version ".tar.gz"))
3874 (sha256
3875 (base32
3876 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3877 (build-system gnu-build-system)
3878 ;; Mentioned as Required in the .pc file
3879 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3880 ("gtk+" ,gtk+-2)))
3881 (native-inputs
3882 `(("intltool" ,intltool)
3883 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3884 ("pkg-config" ,pkg-config)))
3885 (home-page "https://developer.gnome.org/libgnomecanvas/")
3886 (synopsis "Flexible widget for creating interactive structured graphics")
3887 (description "The GnomeCanvas widget provides a flexible widget for
3888 creating interactive structured graphics.")
3889 (license license:lgpl2.0+)))
3890
3891 (define-public libgnomecanvasmm
3892 (package
3893 (name "libgnomecanvasmm")
3894 (version "2.26.0")
3895 (source (origin
3896 (method url-fetch)
3897 (uri (string-append "mirror://gnome/sources/" name "/"
3898 (version-major+minor version) "/"
3899 name "-" version ".tar.bz2"))
3900 (sha256
3901 (base32
3902 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3903 (build-system gnu-build-system)
3904 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3905 (native-inputs
3906 `(("gtkmm-2" ,gtkmm-2)
3907 ("pkg-config" ,pkg-config)))
3908 (home-page "https://gtkmm.org")
3909 (synopsis "C++ bindings to the GNOME Canvas library")
3910 (description "C++ bindings to the GNOME Canvas library.")
3911 (license license:lgpl2.0+)))
3912
3913 (define-public libgnomeui
3914 (package
3915 (name "libgnomeui")
3916 (version "2.24.5")
3917 (source (origin
3918 (method url-fetch)
3919 (uri (string-append "mirror://gnome/sources/" name "/"
3920 (version-major+minor version) "/"
3921 name "-" version ".tar.bz2"))
3922 (patches (search-patches "libgnomeui-utf8.patch"))
3923 (sha256
3924 (base32
3925 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3926 (build-system gnu-build-system)
3927 ;; Mentioned as Required in the .pc file
3928 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3929 ("libgnome" ,libgnome)
3930 ("libgnomecanvas" ,libgnomecanvas)
3931 ("libgnome-keyring" ,libgnome-keyring)))
3932 (inputs `(("libjpeg" ,libjpeg-turbo)
3933 ("popt" ,popt)
3934 ("libbonobo" ,libbonobo)
3935 ("libxml2" ,libxml2)
3936 ("libglade" ,libglade)))
3937 (native-inputs
3938 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3939 ("intltool" ,intltool)
3940 ("pkg-config" ,pkg-config)))
3941 (home-page "https://developer.gnome.org/libgnomeui/")
3942 (synopsis "Additional widgets for applications")
3943 (description "The libgnomeui library provides additional widgets for
3944 applications. Many of the widgets from libgnomeui have already been
3945 ported to GTK+.")
3946 (license license:lgpl2.0+)))
3947
3948 (define-public libglade
3949 (package
3950 (name "libglade")
3951 (version "2.6.4")
3952 (source (origin
3953 (method url-fetch)
3954 (uri (string-append "mirror://gnome/sources/" name "/"
3955 (version-major+minor version) "/"
3956 name "-" version ".tar.bz2"))
3957 (sha256
3958 (base32
3959 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3960 (build-system gnu-build-system)
3961 (inputs
3962 `(("python" ,python))) ;; needed for the optional libglade-convert program
3963 (propagated-inputs
3964 `(("gtk+-2" ,gtk+-2)
3965 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3966 (native-inputs
3967 `(("pkg-config" ,pkg-config)))
3968 (home-page "https://developer.gnome.org/libglade")
3969 (synopsis "Load glade interfaces and access the glade built widgets")
3970 (description "Libglade is a library that provides interfaces for loading
3971 graphical interfaces described in glade files and for accessing the
3972 widgets built in the loading process.")
3973 (license license:gpl2+))) ; This is correct. GPL not LGPL
3974
3975 (define-public libgnomeprint
3976 ;; This library has been deprecated since 2006; see
3977 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3978 (package
3979 (name "libgnomeprint")
3980 (version "2.18.8")
3981 (source (origin
3982 (method url-fetch)
3983 (uri (string-append "mirror://gnome/sources/" name "/"
3984 (version-major+minor version) "/"
3985 name "-" version ".tar.bz2"))
3986 (sha256
3987 (base32
3988 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3989 (build-system gnu-build-system)
3990 (inputs
3991 `(("popt" ,popt)
3992 ("libart-lgpl" ,libart-lgpl)
3993 ("gtk+" ,gtk+-2)
3994 ("libxml2" ,libxml2)))
3995 (native-inputs
3996 `(("intltool" ,intltool)
3997 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3998 ("pkg-config" ,pkg-config)))
3999 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
4000 (synopsis "Printing framework for GNOME")
4001 (description
4002 "GNOME-print was a printing framework for GNOME. It has been deprecated
4003 since ca. 2006, when GTK+ itself incorporated printing support.")
4004 (license license:lgpl2.0+)))
4005
4006
4007 (define-public libgnomeprintui
4008 ;; Deprecated; see libgnomeprint.
4009 (package
4010 (name "libgnomeprintui")
4011 (version "2.18.6")
4012 (source (origin
4013 (method url-fetch)
4014 (uri (string-append "mirror://gnome/sources/" name "/"
4015 (version-major+minor version) "/"
4016 name "-" version ".tar.bz2"))
4017 (sha256
4018 (base32
4019 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
4020 (build-system gnu-build-system)
4021 ;; Mentioned as Required in the .pc file
4022 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
4023 (inputs `(("gtk+" ,gtk+-2)
4024 ("glib" ,glib)
4025 ("gnome-icon-theme" ,gnome-icon-theme)
4026 ("libgnomecanvas" ,libgnomecanvas)
4027 ("libxml2" ,libxml2)))
4028 (native-inputs
4029 `(("intltool" ,intltool)
4030 ("pkg-config" ,pkg-config)))
4031 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
4032 (synopsis "Printing framework for GNOME")
4033 (description (package-description libgnomeprint))
4034 (license license:lgpl2.0+)))
4035
4036 (define-public libbonoboui
4037 (package
4038 (name "libbonoboui")
4039 (version "2.24.5")
4040 (source (origin
4041 (method url-fetch)
4042 (uri (string-append "mirror://gnome/sources/" name "/"
4043 (version-major+minor version) "/"
4044 name "-" version ".tar.bz2"))
4045 (sha256
4046 (base32
4047 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4048 (build-system gnu-build-system)
4049 (arguments
4050 `(#:phases
4051 (modify-phases %standard-phases
4052 (add-before 'check 'start-xserver
4053 (lambda* (#:key inputs #:allow-other-keys)
4054 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4055 (disp ":1"))
4056
4057 (setenv "HOME" (getcwd))
4058 (setenv "DISPLAY" disp)
4059 ;; There must be a running X server and make check doesn't start one.
4060 ;; Therefore we must do it.
4061 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4062 ;; Mentioned as Required by the .pc file
4063 (propagated-inputs `(("libxml2" ,libxml2)))
4064 (inputs
4065 `(("popt" ,popt)
4066 ("pangox-compat" ,pangox-compat)
4067 ("libgnome" ,libgnome)
4068 ("libgnomecanvas" ,libgnomecanvas)
4069 ("libglade" ,libglade)))
4070 (native-inputs
4071 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
4072 ("intltool" ,intltool)
4073 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
4074 ("pkg-config" ,pkg-config)))
4075 (home-page "https://developer.gnome.org/libbonoboui/")
4076 (synopsis "Some user interface controls using Bonobo")
4077 (description "The Bonobo UI library provides a number of user interface
4078 controls using the Bonobo component framework.")
4079 (license license:lgpl2.0+)))
4080
4081 (define-public libwnck
4082 (package
4083 (name "libwnck")
4084 (version "3.32.0")
4085 (source (origin
4086 (method url-fetch)
4087 (uri (string-append "mirror://gnome/sources/" name "/"
4088 (version-major+minor version) "/"
4089 name "-" version ".tar.xz"))
4090 (sha256
4091 (base32
4092 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4093 (build-system meson-build-system)
4094 (native-inputs
4095 `(("pkg-config" ,pkg-config)
4096 ("glib" ,glib "bin") ; for glib-mkenums
4097 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
4098 ("intltool" ,intltool)))
4099 (propagated-inputs
4100 `(("gtk+" ,gtk+)
4101 ("libxres" ,libxres)
4102 ("startup-notification" ,startup-notification)))
4103 (home-page "https://developer.gnome.org/libwnck/")
4104 (synopsis "Window Navigator Construction Kit")
4105 (description
4106 "Libwnck is the Window Navigator Construction Kit, a library for use in
4107 writing pagers, tasklists, and more generally applications that are dealing
4108 with window management. It tries hard to respect the Extended Window Manager
4109 Hints specification (EWMH).")
4110 (license license:lgpl2.0+)))
4111
4112 ;; stable version for gtk2, required by xfwm4.
4113 (define-public libwnck-2
4114 (package (inherit libwnck)
4115 (name "libwnck")
4116 (version "2.30.7")
4117 (source (origin
4118 (method url-fetch)
4119 (uri (string-append "mirror://gnome/sources/" name "/"
4120 (version-major+minor version) "/"
4121 name "-" version ".tar.xz"))
4122 (sha256
4123 (base32
4124 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4125 (build-system gnu-build-system)
4126 (native-inputs
4127 `(("pkg-config" ,pkg-config)
4128 ("intltool" ,intltool)))
4129 (propagated-inputs
4130 `(("gtk+" ,gtk+-2)
4131 ("libxres" ,libxres)
4132 ("startup-notification" ,startup-notification)))))
4133
4134 (define-public goffice
4135 (package
4136 (name "goffice")
4137 (version "0.10.49")
4138 (source (origin
4139 (method url-fetch)
4140 (uri (string-append "mirror://gnome/sources/goffice/"
4141 (version-major+minor version) "/"
4142 "goffice-" version ".tar.xz"))
4143 (sha256
4144 (base32 "1s87ngs3g3nfvcn96aq4lgzx5cscbfg4n9f6ns2zpvc5ngdiiz2z"))))
4145 (build-system gnu-build-system)
4146 (outputs '("out"
4147 "doc")) ; 4.0 MiB of gtk-doc
4148 (arguments
4149 '(#:configure-flags (list (string-append "--with-html-dir="
4150 (assoc-ref %outputs "doc")
4151 "/share/gtk-doc/html"))))
4152 (inputs
4153 `(("gtk+" ,gtk+)
4154 ("libgsf" ,libgsf)
4155 ("librsvg" ,librsvg)
4156 ("libxslt" ,libxslt)
4157 ("libxml2" ,libxml2)))
4158 (native-inputs
4159 `(("intltool" ,intltool)
4160 ("glib" ,glib "bin")
4161 ("pkg-config" ,pkg-config)))
4162 (home-page "https://developer.gnome.org/goffice/")
4163 (synopsis "Document-centric objects and utilities")
4164 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4165 (license
4166 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4167 ;; Note: NOT LGPL
4168 (list license:gpl2 license:gpl3))))
4169
4170 (define-public goffice-0.8
4171 (package (inherit goffice)
4172 (version "0.8.17")
4173 (source (origin
4174 (method url-fetch)
4175 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4176 (version-major+minor version) "/"
4177 (package-name goffice) "-" version ".tar.xz"))
4178 (sha256
4179 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4180 (arguments
4181 `(#:phases
4182 (modify-phases %standard-phases
4183 (add-after 'unpack 'fix-pcre-check
4184 (lambda _
4185 ;; Only glib.h can be included directly. See
4186 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4187 (substitute* "configure"
4188 (("glib/gregex\\.h") "glib.h")) #t)))
4189
4190 ,@(package-arguments goffice)))
4191 (propagated-inputs
4192 ;; libgoffice-0.8.pc mentions libgsf-1
4193 `(("libgsf" ,libgsf)))
4194 (inputs
4195 `(("gtk" ,gtk+-2)
4196 ,@(alist-delete "gtk" (package-inputs goffice))))))
4197
4198 (define-public gnumeric
4199 (package
4200 (name "gnumeric")
4201 (version "1.12.48")
4202 (source (origin
4203 (method url-fetch)
4204 (uri (string-append "mirror://gnome/sources/gnumeric/"
4205 (version-major+minor version) "/"
4206 "gnumeric-" version ".tar.xz"))
4207 (sha256
4208 (base32
4209 "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p"))))
4210 (build-system glib-or-gtk-build-system)
4211 (arguments
4212 `(;; The gnumeric developers don't worry much about failing tests.
4213 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4214 #:tests? #f
4215 #:phases
4216 (modify-phases %standard-phases
4217 (add-before
4218 'configure 'pre-conf
4219 (lambda* (#:key outputs #:allow-other-keys)
4220 ;; Make install tries to write into the directory of goffice
4221 ;; I am informed that this only affects the possibility to embed a
4222 ;; spreadsheet inside an Abiword document. So presumably when we
4223 ;; package Abiword we'll have to refer it to this directory.
4224 (substitute* "configure"
4225 (("^GOFFICE_PLUGINS_DIR=.*")
4226 (string-append "GOFFICE_PLUGINS_DIR="
4227 (assoc-ref outputs "out")
4228 "/goffice/plugins"))))))))
4229 (inputs
4230 `(("glib" ,glib)
4231 ("gtk+" ,gtk+)
4232 ("goffice" ,goffice)
4233 ("libgsf" ,libgsf)
4234 ("librsvg" ,librsvg)
4235 ("libxml2" ,libxml2)
4236 ("libxslt" ,libxslt)
4237 ("python" ,python)
4238 ("python-pygobject" ,python-pygobject)
4239 ("zlib" ,zlib)))
4240 (native-inputs
4241 `(("bison" ,bison)
4242 ("docbook-xml" ,docbook-xml)
4243 ("intltool" ,intltool)
4244 ("itstool" ,itstool)
4245 ("glib:bin" ,glib "bin")
4246 ("pkg-config" ,pkg-config)))
4247 (home-page "http://www.gnumeric.org")
4248 (synopsis "Spreadsheet application")
4249 (description
4250 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4251 interoperable with other spreadsheet applications. It has a vast array of
4252 features beyond typical spreadsheet functionality, such as support for linear
4253 and non-linear solvers, statistical analysis, and telecommunication
4254 engineering.")
4255 (license
4256 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4257 (list license:gpl2 license:gpl3))))
4258
4259 (define-public gnome-themes-standard
4260 (package
4261 (name "gnome-themes-standard")
4262 (version "3.22.3")
4263 (source
4264 (origin
4265 (method url-fetch)
4266 (uri (string-append "mirror://gnome/sources/" name "/"
4267 (version-major+minor version) "/" name "-"
4268 version ".tar.xz"))
4269 (sha256
4270 (base32
4271 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4272 (build-system gnu-build-system)
4273 (arguments
4274 '(#:configure-flags
4275 ;; Don't create 'icon-theme.cache'.
4276 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4277 (true (string-append coreutils "/bin/true")))
4278 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4279 (inputs
4280 `(("gtk+" ,gtk+)
4281 ("gtk+-2" ,gtk+-2)
4282 ("librsvg" ,librsvg)
4283 ("libxml2" ,libxml2)
4284 ("glib" ,glib)))
4285 (native-inputs
4286 `(("intltool" ,intltool)
4287 ("glib:bin" ,glib "bin")
4288 ("pkg-config" ,pkg-config)))
4289 (home-page "https://launchpad.net/gnome-themes-standard")
4290 (synopsis "Default GNOME 3 themes")
4291 (description
4292 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4293 (license license:lgpl2.1+)))
4294
4295 (define-public seahorse
4296 (package
4297 (name "seahorse")
4298 (version "3.36.2")
4299 (source
4300 (origin
4301 (method url-fetch)
4302 (uri (string-append "mirror://gnome/sources/" name "/"
4303 (version-major+minor version) "/" name "-"
4304 version ".tar.xz"))
4305 (sha256
4306 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4307 (build-system meson-build-system)
4308 (arguments
4309 '(#:glib-or-gtk? #t
4310 #:phases
4311 (modify-phases %standard-phases
4312 (add-after 'unpack 'skip-gtk-update-icon-cache
4313 ;; Don't create 'icon-theme.cache'.
4314 (lambda _
4315 (substitute* "build-aux/meson_post_install.py"
4316 (("gtk-update-icon-cache") "true"))
4317 #t)))))
4318 (inputs
4319 `(("gtk+" ,gtk+)
4320 ("gcr" ,gcr)
4321 ("gnupg" ,gnupg)
4322 ("gpgme" ,gpgme)
4323 ("openldap" ,openldap)
4324 ("openssh" ,openssh)
4325 ("avahi" ,avahi)
4326 ("libhandy" ,libhandy-0.0)
4327 ("libpwquality" ,libpwquality)
4328 ("libsecret" ,libsecret)
4329 ("libsoup" ,libsoup)))
4330 (native-inputs
4331 `(("gettext" ,gettext-minimal)
4332 ("glib:bin" ,glib "bin")
4333 ("itstool" ,itstool)
4334 ("pkg-config" ,pkg-config)
4335 ("vala" ,vala)
4336 ("xmllint" ,libxml2)))
4337 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4338 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4339 (description
4340 "Seahorse is a GNOME application for managing encryption keys and
4341 passwords in the GNOME keyring.")
4342 (license license:gpl2+)))
4343
4344 (define-public vala
4345 (package
4346 (name "vala")
4347 (version "0.46.5")
4348 (source (origin
4349 (method url-fetch)
4350 (uri (string-append "mirror://gnome/sources/" name "/"
4351 (version-major+minor version) "/"
4352 name "-" version ".tar.xz"))
4353 (sha256
4354 (base32
4355 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4356 (build-system gnu-build-system)
4357 (arguments
4358 '(#:phases
4359 (modify-phases %standard-phases
4360 (add-before 'check 'pre-check
4361 (lambda _
4362 (setenv "CC" "gcc")
4363 (substitute* "valadoc/tests/testrunner.sh"
4364 (("export PKG_CONFIG_PATH=" m)
4365 (string-append m "$PKG_CONFIG_PATH:")))
4366 ;; For missing '/etc/machine-id'.
4367 (setenv "DBUS_FATAL_WARNINGS" "0")
4368 #t)))))
4369 (native-inputs
4370 `(("pkg-config" ,pkg-config)
4371 ("flex" ,flex)
4372 ("bison" ,bison)
4373 ("xsltproc" ,libxslt)
4374 ("dbus" ,dbus) ; for dbus tests
4375 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4376 (inputs
4377 `(("graphviz" ,graphviz)))
4378 (propagated-inputs
4379 `(("glib" ,glib))) ; required by libvala-0.40.pc
4380 (home-page "https://wiki.gnome.org/Projects/Vala/")
4381 (synopsis "Compiler for the GObject type system")
4382 (description
4383 "Vala is a programming language that aims to bring modern programming
4384 language features to GNOME developers without imposing any additional runtime
4385 requirements and without using a different ABI compared to applications and
4386 libraries written in C.")
4387 (license license:lgpl2.1+)))
4388
4389 (define-public vala-0.50
4390 (package
4391 (inherit vala)
4392 (version "0.50.2")
4393 (source (origin
4394 (method url-fetch)
4395 (uri (string-append "mirror://gnome/sources/vala/"
4396 (version-major+minor version) "/"
4397 "vala-" version ".tar.xz"))
4398 (sha256
4399 (base32
4400 "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c"))))))
4401
4402 (define-public vte
4403 (package
4404 (name "vte")
4405 (version "0.60.3")
4406 (source (origin
4407 (method url-fetch)
4408 (uri (string-append "mirror://gnome/sources/vte/"
4409 (version-major+minor version) "/"
4410 "vte-" version ".tar.xz"))
4411 (sha256
4412 (base32
4413 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4414 (build-system meson-build-system)
4415 (arguments
4416 `(#:configure-flags
4417 '("-Dvapi=true"
4418 "-D_systemd=false")))
4419 (native-inputs
4420 `(("pkg-config" ,pkg-config)
4421 ("gettext" ,gettext-minimal)
4422 ("vala" ,vala)
4423 ("gobject-introspection" ,gobject-introspection)
4424 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4425 ("gperf" ,gperf)
4426 ("xmllint" ,libxml2)))
4427 (propagated-inputs
4428 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4429 ("gnutls" ,gnutls) ; ditto
4430 ("pcre2" ,pcre2))) ; ditto
4431 (home-page "https://www.gnome.org/")
4432 (synopsis "Virtual Terminal Emulator")
4433 (description
4434 "VTE is a library (libvte) implementing a terminal emulator widget for
4435 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4436 gnome-terminal, but can also be used to embed a console/terminal in games,
4437 editors, IDEs, etc.")
4438 (license license:lgpl2.1+)))
4439
4440 (define-public vte-ng
4441 (package
4442 (inherit vte)
4443 (name "vte-ng")
4444 (version "0.58.2.a")
4445 (home-page "https://github.com/thestinger/vte-ng")
4446 (source (origin
4447 (method git-fetch)
4448 (uri (git-reference (url home-page) (commit version)))
4449 (file-name (git-file-name name version))
4450 (sha256
4451 (base32
4452 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4453 (build-system meson-build-system)
4454 (native-inputs
4455 `(("gtk-doc" ,gtk-doc)
4456 ,@(package-native-inputs vte)))
4457 (arguments
4458 `(#:configure-flags '("-Ddocs=true")))
4459 (synopsis "Enhanced VTE terminal widget")
4460 (description
4461 "VTE is a library (libvte) implementing a terminal emulator widget for
4462 GTK+, this fork provides additional functions exposed for keyboard text
4463 selection and URL hints.")))
4464
4465 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4466 (define-public vte/gtk+-2
4467 (package (inherit vte)
4468 (name "vte")
4469 (version "0.28.2")
4470 (source (origin
4471 (method url-fetch)
4472 (uri (string-append "mirror://gnome/sources/" name "/"
4473 (version-major+minor version) "/"
4474 name "-" version ".tar.xz"))
4475 (sha256
4476 (base32
4477 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4478 (patches (search-patches
4479 "vte-CVE-2012-2738-pt1.patch"
4480 "vte-CVE-2012-2738-pt2.patch"))))
4481 (build-system gnu-build-system)
4482 (arguments
4483 '(#:configure-flags '("--disable-python")))
4484 (native-inputs
4485 `(("pkg-config" ,pkg-config)
4486 ("intltool" ,intltool)
4487 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4488 (propagated-inputs
4489 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4490 ("ncurses" ,ncurses))))) ; required by libvte.la
4491
4492 (define-public vinagre
4493 (package
4494 (name "vinagre")
4495 (version "3.22.0")
4496 (source (origin
4497 (method url-fetch)
4498 (uri (string-append "mirror://gnome/sources/" name "/"
4499 (version-major+minor version) "/"
4500 name "-" version ".tar.xz"))
4501 (patches (search-patches "vinagre-newer-freerdp.patch"
4502 "vinagre-newer-rdp-parameters.patch"))
4503 (sha256
4504 (base32
4505 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4506 (build-system glib-or-gtk-build-system)
4507 (arguments
4508 ;; Disable -Werror and such, to avoid build failures on compilation
4509 ;; warnings.
4510 '(#:configure-flags '("--enable-compile-warnings=minimum")
4511 #:phases
4512 (modify-phases %standard-phases
4513 (add-before 'install 'skip-gtk-update-icon-cache
4514 (lambda _
4515 ;; Don't create 'icon-theme.cache'
4516 (substitute* (find-files "." "^Makefile$")
4517 (("gtk-update-icon-cache") (which "true")))
4518 #t))
4519 (add-after 'unpack 'patch-configure
4520 (lambda _
4521 (substitute* "configure"
4522 (("freerdp") "freerdp2"))
4523 #t)))))
4524 (native-inputs
4525 `(("pkg-config" ,pkg-config)
4526 ("intltool" ,intltool)
4527 ("itstool" ,itstool)
4528 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4529 (inputs
4530 `(("libxml2" ,libxml2)
4531 ("gtk-vnc" ,gtk-vnc)
4532 ("gnome-keyring" ,gnome-keyring)
4533 ("libsecret" ,libsecret)
4534 ("freerdp" ,freerdp)
4535 ("spice" ,spice)
4536 ("spice-gtk" ,spice-gtk)
4537 ("telepathy-glib" ,telepathy-glib)
4538 ("vte" ,vte)))
4539 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4540 (synopsis "Remote desktop viewer for GNOME")
4541 (description "Vinagre is a remote display client supporting the VNC, SPICE
4542 and RDP protocols.")
4543 (license license:gpl3+)))
4544
4545 (define-public dconf
4546 (package
4547 (name "dconf")
4548 (version "0.36.0")
4549 (source (origin
4550 (method url-fetch)
4551 (uri (string-append
4552 "mirror://gnome/sources/" name "/"
4553 (version-major+minor version) "/"
4554 name "-" version ".tar.xz"))
4555 (sha256
4556 (base32
4557 "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
4558 (build-system meson-build-system)
4559 (propagated-inputs
4560 ;; In Requires of dconf.pc.
4561 `(("glib" ,glib)))
4562 (inputs
4563 `(("gtk+" ,gtk+)
4564 ("dbus" ,dbus)))
4565 (native-inputs
4566 `(("bash-completion" ,bash-completion)
4567 ("libxslt" ,libxslt) ;for xsltproc
4568 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4569 ("docbook-xml" ,docbook-xml-4.2)
4570 ("docbook-xsl" ,docbook-xsl)
4571 ("glib:bin" ,glib "bin")
4572 ("gtk-doc" ,gtk-doc)
4573 ("pkg-config" ,pkg-config)
4574 ("vala" ,vala)))
4575 (arguments
4576 `(#:glib-or-gtk? #t
4577 #:configure-flags '("-Denable-gtk-doc=true")
4578 #:phases (modify-phases %standard-phases
4579 (add-after 'unpack 'increase-test-timeout
4580 (lambda _
4581 ;; On big-memory systems, the engine test may take
4582 ;; much longer than the default of 30 seconds.
4583 (substitute* "tests/meson.build"
4584 (("test\\(unit_test\\[0\\], exe" all)
4585 (string-append all ", timeout : 90")))
4586 #t)))))
4587 (home-page "https://developer.gnome.org/dconf/")
4588 (synopsis "Low-level GNOME configuration system")
4589 (description "Dconf is a low-level configuration system. Its main purpose
4590 is to provide a backend to GSettings on platforms that don't already have
4591 configuration storage systems.")
4592 (license license:lgpl2.1+)))
4593
4594 (define-public json-glib
4595 (package
4596 (name "json-glib")
4597 (version "1.4.4")
4598 (source (origin
4599 (method url-fetch)
4600 (uri (string-append "mirror://gnome/sources/" name "/"
4601 (version-major+minor version) "/"
4602 name "-" version ".tar.xz"))
4603 (sha256
4604 (base32
4605 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4606 (build-system meson-build-system)
4607 (native-inputs
4608 `(("gettext" ,gettext-minimal)
4609 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4610 ("gobject-introspection" ,gobject-introspection)
4611 ("pkg-config" ,pkg-config)))
4612 (propagated-inputs
4613 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4614 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4615 (synopsis "Compiler for the GObject type system")
4616 (description
4617 "JSON-GLib is a C library based on GLib providing serialization and
4618 deserialization support for the JavaScript Object Notation (JSON) format
4619 described by RFC 4627. It provides parser and generator GObject classes and
4620 various wrappers for the complex data types employed by JSON, such as arrays
4621 and objects.")
4622 (license license:lgpl2.1+)))
4623
4624 (define-public libxklavier
4625 (package
4626 (name "libxklavier")
4627 (version "5.4")
4628 (source (origin
4629 ;; Note: There's no tarball at ftp.gnome.org for this version.
4630 (method git-fetch)
4631 (uri (git-reference
4632 (url "https://anongit.freedesktop.org/git/libxklavier")
4633 (commit (string-append "libxklavier-" version))))
4634 (sha256
4635 (base32
4636 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4637 (file-name (git-file-name name version))))
4638 (build-system gnu-build-system)
4639 (arguments
4640 '(#:configure-flags
4641 (list (string-append "--with-xkb-base="
4642 (assoc-ref %build-inputs "xkeyboard-config")
4643 "/share/X11/xkb")
4644 "--disable-xmodmap-support")))
4645 (native-inputs
4646 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4647 ("gobject-introspection" ,gobject-introspection)
4648 ("pkg-config" ,pkg-config)
4649 ("gtk-doc" ,gtk-doc)
4650 ("intltool" ,intltool)
4651 ("which" ,which)
4652 ("autoconf" ,autoconf)
4653 ("automake" ,automake)
4654 ("libtool" ,libtool)))
4655 (propagated-inputs
4656 ;; Required by libxklavier.pc.
4657 `(("glib" ,glib)
4658 ("libxml2" ,libxml2)))
4659 (inputs
4660 `(("iso-codes" ,iso-codes)
4661 ("libxi" ,libxi)
4662 ("libxkbfile" ,libxkbfile)
4663 ("xkbcomp" ,xkbcomp)
4664 ("xkeyboard-config" ,xkeyboard-config)))
4665 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4666 (synopsis "High-level API for X Keyboard Extension")
4667 (description
4668 "LibXklavier is a library providing high-level API for X Keyboard
4669 Extension known as XKB. This library is intended to support XFree86 and other
4670 commercial X servers. It is useful for creating XKB-related software (layout
4671 indicators etc).")
4672 (license license:lgpl2.0+)))
4673
4674 (define-public python2-rsvg
4675 ;; XXX: This is actually a subset of gnome-python-desktop.
4676 (package
4677 (name "python2-rsvg")
4678 (version "2.32.0")
4679 (source
4680 (origin
4681 (method url-fetch)
4682 (uri (string-append
4683 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4684 version ".tar.bz2"))
4685 (sha256
4686 (base32
4687 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4688 (build-system gnu-build-system)
4689 (native-inputs
4690 `(("pkg-config" ,pkg-config)))
4691 (inputs
4692 `(("python" ,python-2)
4693 ("python2-pygtk" ,python2-pygtk)
4694 ("librsvg" ,librsvg)))
4695 (home-page "https://www.gnome.org")
4696 (synopsis "Python bindings to librsvg")
4697 (description
4698 "This package provides Python bindings to librsvg, the SVG rendering
4699 library.")
4700
4701 ;; This is the license of the rsvg bindings. The license of each module
4702 ;; of gnome-python-desktop is given in 'COPYING'.
4703 (license license:lgpl2.1+)))
4704
4705 (define-public glib-networking
4706 (package
4707 (name "glib-networking")
4708 (version "2.62.2")
4709 (source (origin
4710 (method url-fetch)
4711 (uri (string-append "mirror://gnome/sources/glib-networking/"
4712 (version-major+minor version) "/"
4713 "glib-networking-" version ".tar.xz"))
4714 (sha256
4715 (base32
4716 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4717 (build-system meson-build-system)
4718 (arguments
4719 `(#:configure-flags '("-Dlibproxy_support=false")))
4720 (native-inputs
4721 `(("pkg-config" ,pkg-config)
4722 ("intltool" ,intltool)))
4723 (inputs
4724 `(("glib" ,glib)
4725 ("gnutls" ,gnutls)
4726 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4727 (home-page "https://www.gnome.org")
4728 (synopsis "Network-related GIO modules")
4729 (description
4730 "This package contains various network related extensions for the GIO
4731 library.")
4732 (license license:lgpl2.0+)))
4733
4734 (define-public rest
4735 (package
4736 (name "rest")
4737 (version "0.8.1")
4738 (source (origin
4739 (method url-fetch)
4740 (uri (string-append "mirror://gnome/sources/rest/"
4741 (version-major+minor version) "/"
4742 name "-" version ".tar.xz"))
4743 (sha256
4744 (base32
4745 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4746 (build-system gnu-build-system)
4747 (arguments
4748 '(#:tests? #f ; tests require internet connection
4749 #:configure-flags
4750 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4751 (native-inputs
4752 `(("glib-mkenums" ,glib "bin")
4753 ("gobject-introspection" ,gobject-introspection)
4754 ("pkg-config" ,pkg-config)))
4755 (propagated-inputs
4756 ;; rest-0.7.pc refers to all these.
4757 `(("glib" ,glib)
4758 ("libsoup" ,libsoup)
4759 ("libxml2" ,libxml2)))
4760 (home-page "https://www.gtk.org/")
4761 (synopsis "RESTful web api query library")
4762 (description
4763 "This library was designed to make it easier to access web services that
4764 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4765 libxml to ease remote use of the RESTful API.")
4766 (license license:lgpl2.1+)))
4767
4768 (define-public libsoup
4769 (package
4770 (name "libsoup")
4771 (version "2.72.0")
4772 (source (origin
4773 (method url-fetch)
4774 (uri (string-append "mirror://gnome/sources/libsoup/"
4775 (version-major+minor version) "/"
4776 "libsoup-" version ".tar.xz"))
4777 (sha256
4778 (base32
4779 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
4780 (build-system meson-build-system)
4781 (outputs '("out" "doc"))
4782 (arguments
4783 `(#:modules ((guix build utils)
4784 (guix build meson-build-system)
4785 (ice-9 popen))
4786
4787 #:configure-flags '("-Dgtk_doc=true")
4788 #:phases
4789 (modify-phases %standard-phases
4790 (add-after 'unpack 'patch-docbook-xml
4791 (lambda* (#:key inputs #:allow-other-keys)
4792 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
4793 "/xml/dtd/docbook")))
4794 (substitute* (find-files "docs/reference")
4795 (("http://.*/docbookx\\.dtd")
4796 (string-append xmldoc "/docbookx.dtd")))
4797 #t)))
4798 (add-after 'unpack 'adjust-tests
4799 (lambda _
4800 ;; This test fails due to missing /etc/nsswitch.conf
4801 ;; in the build environment.
4802 (substitute* "tests/socket-test.c"
4803 ((".*/sockets/unconnected.*") ""))
4804
4805 ;; These fail because "subdomain.localhost" does not resolve in
4806 ;; the build environment.
4807 (substitute* "tests/hsts-test.c"
4808 ((".*/hsts/basic.*") "")
4809 ((".*/hsts/subdomains.*") "")
4810 ((".*/hsts/superdomain.*") "")
4811 ((".*/hsts/utf8-address.*") ""))
4812 (substitute* "tests/hsts-db-test.c"
4813 ((".*/hsts-db/subdomains.*") ""))
4814
4815 ;; Generate a self-signed certificate that has "localhost" as its
4816 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4817 ;; 3.5.12, tests such as "ssl-tests" fail:
4818 ;;
4819 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4820 ;;
4821 ;; 'certtool' is interactive so we have to pipe it the answers.
4822 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4823 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4824 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4825 (for-each (lambda (line)
4826 (display line pipe)
4827 (newline pipe))
4828 '("" ;Common name
4829 "" ;UID
4830 "Guix" ;Organizational unit name
4831 "GNU" ;Organization name
4832 "" ;Locality name
4833 "" ;State or province
4834 "" ;Country
4835 "" ;subject's domain component (DC)
4836 "" ;E-mail
4837 "" ;serial number
4838 "-1" ;expiration time
4839 "N" ;belong to authority?
4840 "N" ;web client certificate?
4841 "N" ;IPsec IKE?
4842 "Y" ;web server certificate?
4843 "localhost" ;dnsName of subject
4844 "" ;dnsName of subject (end)
4845 "" ;URI of subject
4846 "127.0.0.1" ;IP address of subject
4847 "" ;signing?
4848 "" ;encryption (RSA)?
4849 "" ;data encryption?
4850 "" ;sign OCSP requests?
4851 "" ;sign code?
4852 "" ;time stamping?
4853 "" ;email protection?
4854 "" ;URI of the CRL distribution point
4855 "y" ;above info OK?
4856 ))
4857 (close-pipe pipe))
4858 #t))
4859 (add-after 'install 'move-doc
4860 (lambda* (#:key outputs #:allow-other-keys)
4861 (let ((out (assoc-ref outputs "out"))
4862 (doc (assoc-ref outputs "doc")))
4863 (mkdir-p (string-append doc "/share"))
4864 (copy-recursively (string-append out "/share/gtk-doc")
4865 (string-append doc "/share/gtk-doc"))
4866 (delete-file-recursively (string-append out "/share/gtk-doc"))
4867 #t))))))
4868 (native-inputs
4869 `(("docbook-xml" ,docbook-xml-4.1.2)
4870 ("glib:bin" ,glib "bin") ; for glib-mkenums
4871 ("gobject-introspection" ,gobject-introspection)
4872 ("gtk-doc" ,gtk-doc)
4873 ("intltool" ,intltool)
4874 ("pkg-config" ,pkg-config)
4875 ("python" ,python-wrapper)
4876 ("vala" ,vala)
4877 ("php" ,php)
4878 ("curl" ,curl)
4879 ("gnutls" ,gnutls) ;for 'certtool'
4880 ("httpd" ,httpd)))
4881 (propagated-inputs
4882 ;; libsoup-2.4.pc refers to all these.
4883 `(("brotli" ,google-brotli)
4884 ("glib" ,glib)
4885 ("libpsl" ,libpsl)
4886 ("libxml2" ,libxml2)
4887 ("sqlite" ,sqlite)
4888 ("zlib" ,zlib)))
4889 (inputs
4890 `(("glib-networking" ,glib-networking)
4891 ("mit-krb5" ,mit-krb5)))
4892 (home-page "https://live.gnome.org/LibSoup/")
4893 (synopsis "GLib-based HTTP Library")
4894 (description
4895 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4896 and the GLib main loop, to integrate well with GNOME applications.")
4897 (license license:lgpl2.0+)))
4898
4899
4900 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4901 (define-public libsoup-minimal
4902 (package/inherit libsoup
4903 (name "libsoup-minimal")
4904 (outputs (delete "doc" (package-outputs libsoup)))
4905 (arguments
4906 (substitute-keyword-arguments (package-arguments libsoup)
4907 ((#:configure-flags configure-flags)
4908 `(delete "-Dgtk_doc=true" ,configure-flags))
4909 ((#:phases phases)
4910 `(modify-phases ,phases
4911 (delete 'move-doc)))))
4912 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4913
4914 (define-public libsecret
4915 (package
4916 (name "libsecret")
4917 (version "0.20.4")
4918 (source (origin
4919 (method url-fetch)
4920 (uri (string-append
4921 "mirror://gnome/sources/libsecret/"
4922 (version-major+minor version) "/"
4923 "libsecret-" version ".tar.xz"))
4924 (sha256
4925 (base32
4926 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
4927 (build-system gnu-build-system)
4928 (outputs '("out" "doc"))
4929 (arguments
4930 `(#:tests? #f ; FIXME: Testing hangs.
4931 #:configure-flags
4932 (list (string-append "--with-html-dir="
4933 (assoc-ref %outputs "doc")
4934 "/share/gtk-doc/html"))))
4935 (native-inputs
4936 `(("gettext" ,gettext-minimal)
4937 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4938 ("gobject-introspection" ,gobject-introspection)
4939 ("pkg-config" ,pkg-config)
4940 ("vala" ,vala)
4941 ("xsltproc" ,libxslt)))
4942 ;; These are needed for the tests.
4943 ;; FIXME: Add gjs once available.
4944 ;("dbus" ,dbus)
4945 ;("python2" ,python-2)
4946 ;("python2-dbus" ,python2-dbus)
4947 ;("python2-pygobject" ,python2-pygobject)
4948 ;("python2-pygobject-2" ,python2-pygobject-2)))
4949 (propagated-inputs
4950 `(("glib" ,glib))) ; required by libsecret-1.pc
4951 (inputs
4952 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
4953 ;; doesn't seem to affect the build result.
4954 `(("docbook-xsl" ,docbook-xsl)
4955 ("libgcrypt" ,libgcrypt)
4956 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4957 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4958 (synopsis "GObject bindings for \"Secret Service\" API")
4959 (description
4960 "Libsecret is a GObject based library for storing and retrieving passwords
4961 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4962 (license license:lgpl2.1+)))
4963
4964 (define-public five-or-more
4965 (package
4966 (name "five-or-more")
4967 (version "3.32.2")
4968 (source
4969 (origin
4970 (method url-fetch)
4971 (uri (string-append "mirror://gnome/sources/five-or-more/"
4972 (version-major+minor version) "/"
4973 "five-or-more-" version ".tar.xz"))
4974 (sha256
4975 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4976 (build-system meson-build-system)
4977 (arguments
4978 '(#:glib-or-gtk? #t
4979 #:phases
4980 (modify-phases %standard-phases
4981 (add-after 'unpack 'skip-gtk-update-icon-cache
4982 (lambda _
4983 (substitute* "meson_post_install.py"
4984 (("gtk-update-icon-cache") (which "true")))
4985 #t)))))
4986 (native-inputs
4987 `(("pkg-config" ,pkg-config)
4988 ("appstream-glib" ,appstream-glib)
4989 ("desktop-file-utils" ,desktop-file-utils)
4990 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4991 ("intltool" ,intltool)
4992 ("itstool" ,itstool)
4993 ("vala" ,vala)
4994 ("xmllint" ,libxml2)))
4995 (inputs
4996 `(("gtk+" ,gtk+)
4997 ("libgnome-games-support" ,libgnome-games-support)
4998 ("librsvg" ,librsvg)))
4999 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
5000 (synopsis "Logic puzzle game")
5001 (description "Five or More is a game where you try to align
5002 five or more objects of the same color and shape causing them to disappear.
5003 On every turn more objects will appear, until the board is full.
5004 Try to last as long as possible.")
5005 (license license:gpl2+)))
5006
5007 (define-public gnome-mines
5008 (package
5009 (name "gnome-mines")
5010 (version "3.36.1")
5011 (source
5012 (origin
5013 (method url-fetch)
5014 (uri (string-append "mirror://gnome/sources/" name "/"
5015 (version-major+minor version) "/"
5016 name "-" version ".tar.xz"))
5017 (sha256
5018 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
5019 (build-system meson-build-system)
5020 (arguments
5021 '(#:glib-or-gtk? #t
5022 #:phases
5023 (modify-phases %standard-phases
5024 (add-after 'unpack 'skip-gtk-update-icon-cache
5025 (lambda _
5026 (substitute* "build-aux/meson_post_install.py"
5027 (("gtk-update-icon-cache") (which "true")))
5028 #t)))))
5029 (native-inputs
5030 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5031 ("pkg-config" ,pkg-config)
5032 ("desktop-file-utils" ,desktop-file-utils)
5033 ("intltool" ,intltool)
5034 ("itstool" ,itstool)
5035 ("vala" ,vala)
5036 ("yelp" ,yelp)
5037 ("appstream-glib" ,appstream-glib)))
5038 (inputs
5039 `(("gtk+" ,gtk+)
5040 ("libgnome-games-support" ,libgnome-games-support)
5041 ("librsvg" ,librsvg)))
5042 (home-page "https://wiki.gnome.org/Apps/Mines")
5043 (synopsis "Minesweeper game")
5044 (description
5045 "Mines (previously gnomine) is a puzzle game where you locate mines
5046 floating in an ocean using only your brain and a little bit of luck.")
5047 (license license:gpl2+)))
5048
5049 (define-public gnome-multi-writer
5050 (package
5051 (name "gnome-multi-writer")
5052 (version "3.35.90")
5053 (source
5054 (origin
5055 (method url-fetch)
5056 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5057 (version-major+minor version) "/"
5058 "gnome-multi-writer-" version ".tar.xz"))
5059 (sha256
5060 (base32
5061 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5062 (build-system meson-build-system)
5063 (arguments
5064 '(#:glib-or-gtk? #t
5065 #:phases
5066 (modify-phases %standard-phases
5067 (add-after 'unpack 'skip-post-install
5068 (lambda _
5069 (substitute* "meson.build"
5070 (("meson.add_install_script" &) (string-append "# " &)))
5071 #t)))))
5072 (native-inputs
5073 `(("glib:bin" ,glib "bin")
5074 ("pkg-config" ,pkg-config)))
5075 (inputs
5076 `(("gtk+" ,gtk+)
5077 ("glib" ,glib) ; for gio
5078 ("gusb" ,gusb)
5079 ("udisks" ,udisks)
5080 ("libgudev" ,libgudev)
5081 ("libcanberra" ,libcanberra)
5082 ("polkit" ,polkit)))
5083 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5084 (synopsis "Write to multiple USB devices at once")
5085 (description
5086 "MultiWriter can be used to write an ISO file to multiple USB devices at
5087 once.")
5088 (license license:gpl2+)))
5089
5090 (define-public gnome-sudoku
5091 (package
5092 (name "gnome-sudoku")
5093 (version "3.34.1")
5094 (source
5095 (origin
5096 (method url-fetch)
5097 (uri (string-append "mirror://gnome/sources/" name "/"
5098 (version-major+minor version) "/"
5099 name "-" version ".tar.xz"))
5100 (sha256
5101 (base32
5102 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
5103 (build-system meson-build-system)
5104 (arguments
5105 '(#:glib-or-gtk? #t
5106 #:phases
5107 (modify-phases %standard-phases
5108 (add-after 'unpack 'skip-gtk-update-icon-cache
5109 (lambda _
5110 (substitute* "build-aux/post_install.py"
5111 (("gtk-update-icon-cache") (which "true")))
5112 #t)))))
5113 (native-inputs
5114 `(("pkg-config" ,pkg-config)
5115 ("desktop-file-utils" ,desktop-file-utils)
5116 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5117 ("intltool" ,intltool)
5118 ("itstool" ,itstool)
5119 ("vala" ,vala)
5120 ("xmllint" ,libxml2)))
5121 (inputs
5122 `(("gtk+" ,gtk+)
5123 ("json-glib" ,json-glib)
5124 ("libgee" ,libgee)
5125 ("librsvg" ,librsvg)
5126 ("qqwing" ,qqwing)))
5127 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5128 (synopsis "Japanese logic game")
5129 (description
5130 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5131 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5132 possible while still providing features that make playing difficult Sudoku
5133 more fun.")
5134 (license license:gpl2+)))
5135
5136 (define-public gnome-terminal
5137 (package
5138 (name "gnome-terminal")
5139 (version "3.34.2")
5140 (source
5141 (origin
5142 (method url-fetch)
5143 (uri (string-append "mirror://gnome/sources/" name "/"
5144 (version-major+minor version) "/"
5145 name "-" version ".tar.xz"))
5146 (sha256
5147 (base32
5148 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
5149 (build-system glib-or-gtk-build-system)
5150 (arguments
5151 '(#:configure-flags
5152 (list "--disable-migration" "--disable-search-provider"
5153 "--without-nautilus-extension")
5154 #:phases
5155 (modify-phases %standard-phases
5156 (add-before 'configure 'patch-/bin/true
5157 (lambda _
5158 (substitute* "configure"
5159 (("/bin/true") (which "true"))))))))
5160 (native-inputs
5161 `(("pkg-config" ,pkg-config)
5162 ("desktop-file-utils" ,desktop-file-utils)
5163 ("intltool" ,intltool)
5164 ("itstool" ,itstool)
5165 ("xmllint" ,libxml2)))
5166 (propagated-inputs
5167 `(("dconf" ,dconf)))
5168 (inputs
5169 `(("gtk+" ,gtk+)
5170 ("vte" ,vte)
5171 ("gnutls" ,gnutls)
5172 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5173 ("util-linux" ,util-linux "lib")
5174 ("vala" ,vala)))
5175 (home-page "https://wiki.gnome.org/Apps/Terminal")
5176 (synopsis "Terminal emulator")
5177 (description
5178 "GNOME Terminal is a terminal emulator application for accessing a
5179 UNIX shell environment which can be used to run programs available on
5180 your system.
5181
5182 It supports several profiles, multiple tabs and implements several
5183 keyboard shortcuts.")
5184 (license license:gpl3+)))
5185
5186 (define-public colord
5187 (package
5188 (name "colord")
5189 (version "1.4.5")
5190 (source
5191 (origin
5192 (method url-fetch)
5193 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5194 "colord-" version ".tar.xz"))
5195 (sha256
5196 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5197 (build-system meson-build-system)
5198 (arguments
5199 '(;; FIXME: One test fails:
5200 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5201 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5202 ;; application/x-zerosize
5203 #:tests? #f
5204 #:glib-or-gtk? #t
5205 #:configure-flags (list "-Dlocalstatedir=/var"
5206 ;; No dep on systemd.
5207 "-Dsystemd=false"
5208 ;; Wants to install to global completion dir;
5209 ;; punt.
5210 "-Dbash_completion=false"
5211 "-Ddaemon_user=colord"
5212 "-Dsane=true"
5213 "-Dvapi=true"
5214 ;; Requires spotread.
5215 "-Dargyllcms_sensor=false"
5216 ;; TODO: Requires docbook2x.
5217 "-Dman=false")
5218 #:phases
5219 (modify-phases %standard-phases
5220 (add-before 'configure 'patch-build-system
5221 (lambda* (#:key outputs #:allow-other-keys)
5222 (substitute* "rules/meson.build"
5223 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5224 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
5225 #t))
5226 (add-before 'configure 'set-sqlite3-file-name
5227 (lambda* (#:key inputs #:allow-other-keys)
5228 ;; "colormgr dump" works by invoking the "sqlite3" command.
5229 ;; Record its absolute file name.
5230 (let ((sqlite (assoc-ref inputs "sqlite")))
5231 (substitute* "client/cd-util.c"
5232 (("\"sqlite3\"")
5233 (string-append "\"" sqlite "/bin/sqlite3\"")))
5234 #t))))))
5235 (native-inputs
5236 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5237 ("gettext" ,gettext-minimal)
5238 ("gobject-introspection" ,gobject-introspection)
5239 ("gtk-doc" ,gtk-doc)
5240 ("pkg-config" ,pkg-config)
5241 ("vala" ,vala)))
5242 (propagated-inputs
5243 ;; colord.pc refers to all these.
5244 `(("glib" ,glib)
5245 ("lcms" ,lcms)
5246 ("udev" ,eudev)))
5247 (inputs
5248 `(("dbus-glib" ,dbus-glib)
5249 ("gusb" ,gusb)
5250 ("libgudev" ,libgudev)
5251 ("libusb" ,libusb)
5252 ("polkit" ,polkit)
5253 ("python" ,python-wrapper)
5254 ("sqlite" ,sqlite)
5255 ("sane-backends" ,sane-backends)))
5256 (home-page "https://www.freedesktop.org/software/colord/")
5257 (synopsis "Color management service")
5258 (description "Colord is a system service that makes it easy to manage,
5259 install and generate color profiles to accurately color manage input and
5260 output devices.")
5261 (license license:gpl2+)))
5262
5263 (define-public geoclue
5264 (package
5265 (name "geoclue")
5266 (version "2.5.7")
5267 (source
5268 (origin
5269 (method url-fetch)
5270 (uri
5271 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5272 version "/geoclue-" version ".tar.bz2"))
5273 (sha256
5274 (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
5275 (patches (search-patches "geoclue-config.patch"))))
5276 (build-system meson-build-system)
5277 (arguments
5278 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
5279 (native-inputs
5280 `(("pkg-config" ,pkg-config)
5281 ("gobject-introspection" ,gobject-introspection)
5282 ("modem-manager" ,modem-manager)
5283 ("libnotify" ,libnotify)
5284 ("gtk-doc" ,gtk-doc)
5285 ("intltool" ,intltool)))
5286 (inputs
5287 `(("avahi" ,avahi)
5288 ("glib:bin" ,glib "bin")
5289 ("glib-networking" ,glib-networking)
5290 ("json-glib" ,json-glib)
5291 ("libsoup" ,libsoup)))
5292 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5293 (synopsis "Geolocation service")
5294 (description "Geoclue is a D-Bus service that provides location
5295 information. The primary goal of the Geoclue project is to make creating
5296 location-aware applications as simple as possible, while the secondary goal is
5297 to ensure that no application can access location information without explicit
5298 permission from user.")
5299 (license license:gpl2+)))
5300
5301 (define-public geocode-glib
5302 (package
5303 (name "geocode-glib")
5304 (version "3.26.2")
5305 (source (origin
5306 (method url-fetch)
5307 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5308 (version-major+minor version) "/"
5309 "geocode-glib-" version ".tar.xz"))
5310 (sha256
5311 (base32
5312 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5313 (build-system meson-build-system)
5314 (arguments
5315 `(#:phases
5316 (modify-phases %standard-phases
5317 ;; The tests require a bunch of locales.
5318 (add-before 'check 'set-locales
5319 (lambda* (#:key inputs #:allow-other-keys)
5320 (setenv "GUIX_LOCPATH"
5321 (string-append (assoc-ref inputs "glibc-locales")
5322 "/lib/locale"))
5323 #t)))))
5324 (native-inputs
5325 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5326 ("glibc-locales" ,glibc-locales) ; for tests
5327 ("gettext" ,gettext-minimal)
5328 ("gobject-introspection" ,gobject-introspection)
5329 ("gtk-doc" ,gtk-doc)
5330 ("pkg-config" ,pkg-config)
5331 ("json-glib" ,json-glib)))
5332 (propagated-inputs
5333 ;; geocode-glib-1.0.pc refers to GIO.
5334 `(("glib" ,glib)))
5335 (inputs
5336 `(("libsoup" ,libsoup)))
5337 (home-page "https://github.com/GNOME/geocode-glib/")
5338 (synopsis "Geocoding and reverse-geocoding library")
5339 (description
5340 "geocode-glib is a convenience library for geocoding (finding longitude,
5341 and latitude from an address) and reverse geocoding (finding an address from
5342 coordinates) using the Nominatim service. geocode-glib caches requests for
5343 faster results and to avoid unnecessary server load.")
5344 (license license:lgpl2.0+)))
5345
5346 (define-public upower
5347 (package
5348 (name "upower")
5349 (version "0.99.11")
5350 (source (origin
5351 (method url-fetch)
5352 (uri (string-append "https://upower.freedesktop.org/releases/"
5353 "upower-" version ".tar.xz"))
5354 (sha256
5355 (base32
5356 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5357 (patches (search-patches "upower-builddir.patch"))
5358 (modules '((guix build utils)))
5359 (snippet
5360 '(begin
5361 ;; Upstream commit
5362 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5363 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5364 ;; 'dbus-configuration-directory' in (gnu services dbus)
5365 ;; expects it in etc/. Thus, move it back to its previous
5366 ;; location.
5367 (substitute* "src/Makefile.in"
5368 (("^dbusconfdir =.*$")
5369 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5370 #t))))
5371 (build-system glib-or-gtk-build-system)
5372 (arguments
5373 '(#:phases
5374 (modify-phases %standard-phases
5375 (add-before 'check 'pre-check
5376 (lambda* (#:key inputs #:allow-other-keys)
5377 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5378 "/lib")))
5379 (setenv "LD_LIBRARY_PATH" umockdev))
5380 #t)))
5381 #:configure-flags (list "--localstatedir=/var"
5382 (string-append "--with-udevrulesdir="
5383 (assoc-ref %outputs "out")
5384 "/lib/udev/rules.d"))))
5385 (native-inputs
5386 `(("gobject-introspection" ,gobject-introspection)
5387 ("pkg-config" ,pkg-config)
5388 ("intltool" ,intltool)
5389 ("python" ,python)
5390
5391 ;; For tests.
5392 ("python-dbus" ,python-dbus)
5393 ("python-dbusmock" ,python-dbusmock)
5394 ("python-pygobject" ,python-pygobject)
5395 ("umockdev" ,umockdev)
5396
5397 ;; For man pages.
5398 ("libxslt" ,libxslt) ;for 'xsltproc'
5399 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5400 ("docbook-xsl" ,docbook-xsl)))
5401 (inputs
5402 `(("dbus-glib" ,dbus-glib)
5403 ("libgudev" ,libgudev)
5404 ("libusb" ,libusb)))
5405 (propagated-inputs
5406 ;; In Requires of upower-glib.pc.
5407 `(("glib" ,glib)))
5408 (home-page "https://upower.freedesktop.org/")
5409 (synopsis "System daemon for managing power devices")
5410 (description
5411 "UPower is an abstraction for enumerating power devices,
5412 listening to device events and querying history and statistics. Any
5413 application or service on the system can access the org.freedesktop.UPower
5414 service via the system message bus.")
5415 (license license:gpl2+)))
5416
5417 (define-public libgweather
5418 (package
5419 (name "libgweather")
5420 (version "3.34.0")
5421 (source (origin
5422 (method url-fetch)
5423 (uri (string-append "mirror://gnome/sources/" name "/"
5424 (version-major+minor version) "/"
5425 name "-" version ".tar.xz"))
5426 (sha256
5427 (base32
5428 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5429 (build-system meson-build-system)
5430 (arguments
5431 `(#:tests? #f ; one of two tests requires network access
5432 #:configure-flags
5433 `(,(string-append "-Dzoneinfo_dir="
5434 (assoc-ref %build-inputs "tzdata")
5435 "/share/zoneinfo"))))
5436 (native-inputs
5437 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5438 ("gobject-introspection" ,gobject-introspection)
5439 ("pkg-config" ,pkg-config)
5440 ("vala" ,vala)
5441 ("intltool" ,intltool)))
5442 (propagated-inputs
5443 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5444 ;; libsoup.
5445 `(("gtk+" ,gtk+)
5446 ("gdk-pixbuf" ,gdk-pixbuf)
5447 ("libxml2" ,libxml2)
5448 ("libsoup" ,libsoup)
5449 ("geocode-glib" ,geocode-glib)))
5450 (inputs
5451 `(("tzdata" ,tzdata)))
5452 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5453 (synopsis "Location, time zone, and weather library for GNOME")
5454 (description
5455 "libgweather is a library to access weather information from online
5456 services for numerous locations.")
5457 (license license:gpl2+)))
5458
5459 (define-public gnome-settings-daemon
5460 (package
5461 (name "gnome-settings-daemon")
5462 (version "3.34.1")
5463 (source
5464 (origin
5465 (method url-fetch)
5466 (uri (string-append "mirror://gnome/sources/" name "/"
5467 (version-major+minor version) "/"
5468 name "-" version ".tar.xz"))
5469 (sha256
5470 (base32
5471 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
5472 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5473 (build-system meson-build-system)
5474 (arguments
5475 `(#:glib-or-gtk? #t
5476 #:configure-flags
5477 (list (string-append "-Dudev_dir="
5478 (assoc-ref %outputs "out")
5479 "/lib/udev/rules.d/")
5480 "-Dsystemd=false"
5481 ;; Otherwise, the RUNPATH will lack the final path component.
5482 (string-append "-Dc_link_args=-Wl,-rpath="
5483 (assoc-ref %outputs "out")
5484 "/lib/gnome-settings-daemon-3.0"))
5485
5486 #:phases (modify-phases %standard-phases
5487 (add-before 'configure 'set-baobab-file-name
5488 (lambda* (#:key inputs #:allow-other-keys)
5489 ;; Hard-code the file name of Baobab instead of looking
5490 ;; it up in $PATH. This ensures users get the "Examine"
5491 ;; button in the low disk space notification of GDM even
5492 ;; if they don't have GNOME in their main profile.
5493 (let ((baobab (assoc-ref inputs "baobab")))
5494 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5495 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5496 (string-append "g_strdup (\"" baobab
5497 "/bin/baobab\")")))
5498 #t))))
5499
5500 ;; Color management test can't reach the colord system service.
5501 #:tests? #f))
5502 (native-inputs
5503 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5504 ("pkg-config" ,pkg-config)
5505 ("intltool" ,intltool)
5506 ("xsltproc" ,libxslt)
5507 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5508 ("docbook-xml" ,docbook-xml-4.2)
5509 ("docbook-xsl" ,docbook-xsl)))
5510 (inputs
5511 `(("alsa-lib" ,alsa-lib)
5512 ("baobab" ,baobab)
5513 ("colord" ,colord)
5514 ("libgudev" ,libgudev)
5515 ("upower" ,upower)
5516 ("polkit" ,polkit)
5517 ("pulseaudio" ,pulseaudio)
5518 ("libcanberra" ,libcanberra)
5519 ("libx11" ,libx11)
5520 ("libxtst" ,libxtst)
5521 ("lcms" ,lcms)
5522 ("libnotify" ,libnotify)
5523 ("geoclue" ,geoclue)
5524 ("geocode-glib" ,geocode-glib)
5525 ("libgweather" ,libgweather)
5526 ("gnome-desktop" ,gnome-desktop)
5527 ("nss" ,nss)
5528 ("cups" ,cups)
5529 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5530 ("libwacom" ,libwacom)
5531 ("librsvg" ,librsvg)
5532 ("xf86-input-wacom" ,xf86-input-wacom)
5533 ("wayland" ,wayland)
5534 ("network-manager" ,network-manager)
5535 ("gcr" ,gcr)
5536 ("modem-manager" ,modem-manager)))
5537 (home-page "https://www.gnome.org")
5538 (synopsis "GNOME settings daemon")
5539 (description
5540 "This package contains the daemon responsible for setting the various
5541 parameters of a GNOME session and the applications that run under it. It
5542 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5543 settings, themes, mouse settings, and startup of other daemons.")
5544 (license license:gpl2+)))
5545
5546 (define-public totem-pl-parser
5547 (package
5548 (name "totem-pl-parser")
5549 (version "3.26.5")
5550 (source (origin
5551 (method url-fetch)
5552 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5553 (version-major+minor version) "/"
5554 "totem-pl-parser-" version ".tar.xz"))
5555 (sha256
5556 (base32
5557 "132jihnf51zs98yjkc6jxyqib4f3dawpjm17g4bj4j78y93dww2k"))))
5558 (build-system meson-build-system)
5559 (arguments
5560 ;; FIXME: Tests require gvfs.
5561 `(#:tests? #f))
5562 (native-inputs
5563 `(("intltool" ,intltool)
5564 ("glib" ,glib "bin")
5565 ("gobject-introspection" ,gobject-introspection)
5566 ("pkg-config" ,pkg-config)))
5567 (propagated-inputs
5568 `(("glib" ,glib)
5569 ("gmime" ,gmime)
5570 ("libarchive" ,libarchive)
5571 ("libgcrypt" ,libgcrypt)
5572 ("libxml2" ,libxml2)))
5573 (inputs
5574 `(("libsoup" ,libsoup)))
5575 (home-page "https://projects.gnome.org/totem")
5576 (synopsis "Library to parse and save media playlists for GNOME")
5577 (description "Totem-pl-parser is a GObjects-based library to parse and save
5578 playlists in a variety of formats.")
5579 (license license:lgpl2.0+)))
5580
5581 (define-public aisleriot
5582 (package
5583 (name "aisleriot")
5584 (version "3.22.9")
5585 (source (origin
5586 (method url-fetch)
5587 (uri (string-append "mirror://gnome/sources/aisleriot/"
5588 (version-major+minor version) "/"
5589 "aisleriot-" version ".tar.xz"))
5590 (sha256
5591 (base32
5592 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5593 (build-system glib-or-gtk-build-system)
5594 (arguments
5595 '(#:configure-flags
5596 '("--with-platform=gtk-only"
5597 "--with-card-theme-formats=svg")))
5598 (native-inputs
5599 `(("desktop-file-utils" ,desktop-file-utils)
5600 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5601 ("intltool" ,intltool)
5602 ("itstool" ,itstool)
5603 ("pkg-config" ,pkg-config)
5604 ("xmllint" ,libxml2)))
5605 (inputs
5606 `(("gtk+" ,gtk+)
5607 ("guile" ,guile-2.2)
5608 ("libcanberra" ,libcanberra)
5609 ("librsvg" ,librsvg)))
5610 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5611 (synopsis "Solitaire card games")
5612 (description
5613 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5614 which are easy to play with the aid of a mouse.")
5615 (license license:gpl3+)))
5616
5617 (define-public amtk
5618 (package
5619 (name "amtk")
5620 (version "5.0.2")
5621 (source (origin
5622 (method url-fetch)
5623 (uri (string-append "mirror://gnome/sources/amtk/"
5624 (version-major+minor version) "/"
5625 "amtk-" version ".tar.xz"))
5626 (sha256
5627 (base32
5628 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5629 (build-system gnu-build-system)
5630 (arguments
5631 '(#:configure-flags '("--enable-gtk-doc")))
5632 (native-inputs
5633 `(("gobject-introspection" ,gobject-introspection)
5634 ("glib:bin" ,glib "bin") ; for glib-mkenums
5635 ("gtk-doc" ,gtk-doc)
5636 ("pkg-config" ,pkg-config)))
5637 (inputs
5638 `(("glib" ,glib)
5639 ("gtk+" ,gtk+)))
5640 (home-page "https://wiki.gnome.org/Projects/Amtk")
5641 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5642 (description
5643 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5644 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5645 both a traditional UI or a modern UI with a GtkHeaderBar.")
5646 (license license:lgpl2.1+)))
5647
5648 (define-public devhelp
5649 (package
5650 (name "devhelp")
5651 (version "3.34.0")
5652 (source (origin
5653 (method url-fetch)
5654 (uri (string-append "mirror://gnome/sources/" name "/"
5655 (version-major+minor version) "/"
5656 name "-" version ".tar.xz"))
5657 (sha256
5658 (base32
5659 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5660 (build-system meson-build-system)
5661 (arguments
5662 '(#:glib-or-gtk? #t
5663 #:phases
5664 (modify-phases %standard-phases
5665 (add-after 'unpack 'skip-gtk-update-icon-cache
5666 ;; Don't create 'icon-theme.cache'.
5667 (lambda _
5668 (substitute* "meson_post_install.py"
5669 (("gtk-update-icon-cache") "true"))
5670 #t)))))
5671 (native-inputs
5672 `(("intltool" ,intltool)
5673 ("itstool" ,itstool)
5674 ("gobject-introspection" ,gobject-introspection)
5675 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5676 ("pkg-config" ,pkg-config)))
5677 (inputs
5678 `(("amtk" ,amtk)
5679 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5680 ("webkitgtk" ,webkitgtk)))
5681 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5682 (synopsis "API documentation browser for GNOME")
5683 (description
5684 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5685 natively with GTK-Doc (the API reference system developed for GTK+ and used
5686 throughout GNOME for API documentation).")
5687 (license license:gpl2+)))
5688
5689 (define-public cogl
5690 (package
5691 (name "cogl")
5692 (version "1.22.8")
5693 (source
5694 (origin
5695 (method url-fetch)
5696 (uri (string-append "mirror://gnome/sources/cogl/"
5697 (version-major+minor version) "/"
5698 "cogl-" version ".tar.xz"))
5699 (sha256
5700 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5701 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5702 ;; cogl, corresponding changes may be appropriate in mutter as well.
5703 (build-system gnu-build-system)
5704 (native-inputs
5705 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5706 ("gobject-introspection" ,gobject-introspection)
5707 ("xorg-server" ,xorg-server-for-tests)
5708 ("pkg-config" ,pkg-config)))
5709 (propagated-inputs
5710 `(("glib" ,glib)
5711 ("gdk-pixbuf" ,gdk-pixbuf)
5712 ("libx11" ,libx11)
5713 ("libxext" ,libxext)
5714 ("libxfixes" ,libxfixes)
5715 ("libxdamage" ,libxdamage)
5716 ("libxcomposite" ,libxcomposite)
5717 ("libxrandr" ,libxrandr)))
5718 (inputs
5719 `(("mesa" ,mesa)
5720 ("cairo" ,cairo)
5721 ("pango" ,pango)
5722 ("gstreamer" ,gstreamer)
5723 ("gst-plugins-base" ,gst-plugins-base)
5724 ("wayland" ,wayland)))
5725 (arguments
5726 `(#:disallowed-references (,xorg-server-for-tests)
5727 #:configure-flags (list "--enable-cogl-gst"
5728 "--enable-wayland-egl-platform"
5729 "--enable-wayland-egl-server"
5730
5731 ;; Arrange to pass an absolute file name to
5732 ;; dlopen for libGL.so.
5733 (string-append "--with-gl-libname="
5734 (assoc-ref %build-inputs "mesa")
5735 "/lib/libGL.so"))
5736 #:phases
5737 (modify-phases %standard-phases
5738 (add-after 'unpack 'fix-build-with-mesa-20
5739 (lambda _
5740 ;; Work around a problem with Mesa 20 where some macros used by
5741 ;; Cogl went missing from eglext.h. This can likely be removed
5742 ;; for newer versions of Cogl or Mesa.
5743 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5744 (substitute* '("configure"
5745 "cogl/winsys/cogl-winsys-egl-kms.c")
5746 (("#include <EGL/eglext.h>" all)
5747 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5748 #t))
5749 (add-before 'check 'start-xorg-server
5750 (lambda* (#:key tests? inputs #:allow-other-keys)
5751 (if tests?
5752 (begin
5753 ;; The test suite requires a running X server.
5754 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5755 (assoc-ref inputs "xorg-server")))
5756 (setenv "DISPLAY" ":1")
5757 #t)
5758 (format #t "test suite not run~%"))
5759 #t)))))
5760 (home-page "https://www.cogl3d.org")
5761 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5762 (description
5763 "Cogl is a small library for using 3D graphics hardware to draw pretty
5764 pictures. The API departs from the flat state machine style of OpenGL and is
5765 designed to make it easy to write orthogonal components that can render
5766 without stepping on each others toes.")
5767 (license (list license:expat ; most of the code
5768 license:bsd-3 ; cogl/cogl-point-in-poly.c
5769 license:sgifreeb2.0 ; cogl-path/tesselator/
5770 license:asl2.0)))) ; examples/android/
5771
5772 (define-public clutter
5773 (package
5774 (name "clutter")
5775 (version "1.26.2")
5776 (source
5777 (origin
5778 (method url-fetch)
5779 (uri (string-append "mirror://gnome/sources/" name "/"
5780 (version-major+minor version) "/"
5781 name "-" version ".tar.xz"))
5782 (sha256
5783 (base32
5784 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5785 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5786 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5787 (build-system gnu-build-system)
5788 (outputs '("out"
5789 "doc")) ;9 MiB of gtk-doc HTML pages
5790 (native-inputs
5791 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5792 ("gobject-introspection" ,gobject-introspection)
5793 ("pkg-config" ,pkg-config)
5794 ("xsltproc" ,libxslt)))
5795 (propagated-inputs
5796 `(("cogl" ,cogl)
5797 ("cairo" ,cairo)
5798 ("atk" ,atk)
5799 ("gtk+" ,gtk+)
5800 ("json-glib" ,json-glib)
5801 ("glib" ,glib)
5802 ("libxcomposite" ,libxcomposite)
5803 ("libxdamage" ,libxdamage)
5804 ("libxext" ,libxext)
5805 ("xinput" ,xinput)))
5806 (inputs
5807 `(("libxkbcommon" ,libxkbcommon)
5808 ("udev" ,eudev)))
5809 (arguments
5810 `(#:configure-flags (list "--enable-x11-backend=yes"
5811
5812 ;; This produces share/doc/{clutter,cally}.
5813 (string-append "--with-html-dir="
5814 (assoc-ref %outputs "doc")
5815 "/share/doc"))
5816 ;; XXX FIXME: Get test suite working. It would probably fail in the
5817 ;; same way the cogl tests fail, since clutter is based on cogl.
5818 #:tests? #f))
5819 (home-page "http://www.clutter-project.org")
5820 (synopsis "OpenGL-based interactive canvas library")
5821 (description
5822 "Clutter is an OpenGL-based interactive canvas library, designed for
5823 creating fast, mainly 2D single window applications such as media box UIs,
5824 presentations, kiosk style applications and so on.")
5825 (license license:lgpl2.0+)))
5826
5827 (define-public clutter-gtk
5828 (package
5829 (name "clutter-gtk")
5830 (version "1.8.4")
5831 (source
5832 (origin
5833 (method url-fetch)
5834 (uri (string-append "mirror://gnome/sources/" name "/"
5835 (version-major+minor version) "/"
5836 name "-" version ".tar.xz"))
5837 (sha256
5838 (base32
5839 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5840 (build-system gnu-build-system)
5841 (native-inputs
5842 `(("pkg-config" ,pkg-config)
5843 ("gobject-introspection" ,gobject-introspection)))
5844 (propagated-inputs
5845 ;; clutter-gtk.pc refers to all these.
5846 `(("clutter" ,clutter)
5847 ("gtk+" ,gtk+)))
5848 (home-page "http://www.clutter-project.org")
5849 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5850 (description
5851 "Clutter is an OpenGL-based interactive canvas library, designed for
5852 creating fast, mainly 2D single window applications such as media box UIs,
5853 presentations, kiosk style applications and so on.")
5854 (license license:lgpl2.0+)))
5855
5856 (define-public clutter-gst
5857 (package
5858 (name "clutter-gst")
5859 (version "3.0.27")
5860 (source
5861 (origin
5862 (method url-fetch)
5863 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5864 (version-major+minor version) "/"
5865 "clutter-gst-" version ".tar.xz"))
5866 (sha256
5867 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5868 (build-system gnu-build-system)
5869 (native-inputs
5870 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5871 ("pkg-config" ,pkg-config)
5872 ("gobject-introspection" ,gobject-introspection)))
5873 (inputs
5874 `(("clutter" ,clutter)
5875 ("gstreamer" ,gstreamer)
5876 ("gst-plugins-base" ,gst-plugins-base)))
5877 (home-page "http://www.clutter-project.org")
5878 (synopsis "Integration library for using GStreamer with Clutter")
5879 (description
5880 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5881 It provides a GStreamer sink to upload frames to GL and an actor that
5882 implements the ClutterGstPlayer interface using playbin. Clutter is an
5883 OpenGL-based interactive canvas library.")
5884 (license license:lgpl2.0+)))
5885
5886 (define-public libchamplain
5887 (package
5888 (name "libchamplain")
5889 (version "0.12.16")
5890 (source (origin
5891 (method url-fetch)
5892 (uri (string-append
5893 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5894 version ".tar.xz"))
5895 (sha256
5896 (base32
5897 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5898 (build-system gnu-build-system)
5899 (arguments '(#:configure-flags '("--enable-vala")))
5900 (native-inputs
5901 `(("gobject-introspection" ,gobject-introspection)
5902 ("pkg-config" ,pkg-config)
5903 ("vala" ,vala)))
5904 (propagated-inputs
5905 `(("libsoup" ,libsoup)
5906 ("sqlite" ,sqlite)
5907 ("clutter" ,clutter)
5908 ("clutter-gtk" ,clutter-gtk)
5909 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5910 ("cairo" ,cairo)
5911 ("gtk+3" ,gtk+)
5912 ("glib" ,glib)))
5913 (home-page "https://projects.gnome.org/libchamplain/")
5914 (synopsis "C library providing a ClutterActor to display maps")
5915 (description
5916 "libchamplain is a C library providing a ClutterActor to display maps.
5917 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5918 and Perl bindings are also available. It supports numerous free map sources
5919 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5920 (license license:lgpl2.1+)))
5921
5922 (define-public gom
5923 (package
5924 (name "gom")
5925 (version "0.3.2")
5926 (source
5927 (origin
5928 (method url-fetch)
5929 (uri (string-append "mirror://gnome/sources/gom/"
5930 (version-major+minor version) "/"
5931 "gom-" version ".tar.xz"))
5932 (sha256
5933 (base32
5934 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5935 (build-system gnu-build-system)
5936 (native-inputs
5937 `(("intltool" ,intltool)
5938 ("pkg-config" ,pkg-config)
5939 ("gobject-introspection" ,gobject-introspection)))
5940 (inputs
5941 `(("glib" ,glib)
5942 ("gdk-pixbuf" ,gdk-pixbuf)
5943 ("sqlite" ,sqlite)))
5944 ;; XXX TODO: Figure out how to run the test suite.
5945 (arguments `(#:tests? #f))
5946 (home-page "https://wiki.gnome.org/Projects/Gom")
5947 (synopsis "Object mapper from GObjects to SQLite")
5948 (description
5949 "Gom provides an object mapper from GObjects to SQLite. It helps you
5950 write applications that need to store structured data as well as make complex
5951 queries upon that data.")
5952 (license license:lgpl2.1+)))
5953
5954 (define-public libgnome-games-support
5955 (package
5956 (name "libgnome-games-support")
5957 (version "1.4.4")
5958 (source (origin
5959 (method url-fetch)
5960 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5961 (version-major+minor version) "/"
5962 "libgnome-games-support-" version ".tar.xz"))
5963 (sha256
5964 (base32
5965 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5966 (build-system gnu-build-system)
5967 (arguments
5968 '(#:phases
5969 (modify-phases %standard-phases
5970 (add-before 'check 'pre-check
5971 (lambda _
5972 ;; Tests require a writable HOME.
5973 (setenv "HOME" (getcwd))
5974 #t)))))
5975 (native-inputs
5976 `(("intltool" ,intltool)
5977 ("pkg-config" ,pkg-config)
5978 ("vala" ,vala)))
5979 (propagated-inputs
5980 ;; Required by libgnome-games-support-1.0.pc
5981 `(("gtk+" ,gtk+)
5982 ("libgee" ,libgee)))
5983 (home-page "https://www.gnome.org/")
5984 (synopsis "Useful functionality shared among GNOME games")
5985 (description
5986 "libgnome-games-support is a small library intended for internal use by
5987 GNOME Games, but it may be used by others.")
5988 (license license:lgpl3+)))
5989
5990 (define-public gnome-klotski
5991 (package
5992 (name "gnome-klotski")
5993 (version "3.34.0")
5994 (source (origin
5995 (method url-fetch)
5996 (uri (string-append "mirror://gnome/sources/" name "/"
5997 (version-major+minor version) "/"
5998 name "-" version ".tar.xz"))
5999 (sha256
6000 (base32
6001 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
6002 (build-system meson-build-system)
6003 (arguments
6004 '(#:glib-or-gtk? #t
6005 #:phases
6006 (modify-phases %standard-phases
6007 (add-after 'unpack 'skip-gtk-update-icon-cache
6008 ;; Don't create 'icon-theme.cache'.
6009 (lambda _
6010 (substitute* "build-aux/meson_post_install.py"
6011 (("gtk-update-icon-cache") (which "true")))
6012 #t)))))
6013 (native-inputs
6014 `(("desktop-file-utils" ,desktop-file-utils)
6015 ("glib:bin" ,glib "bin") ; for glib-compile-resources
6016 ("intltool" ,intltool)
6017 ("itstool" ,itstool)
6018 ("pkg-config" ,pkg-config)
6019 ("vala" ,vala)
6020 ("xmllint" ,libxml2)))
6021 (inputs
6022 `(("gtk+" ,gtk+)
6023 ("libgnome-games-support" ,libgnome-games-support)
6024 ("librsvg" ,librsvg)))
6025 (home-page "https://wiki.gnome.org/Apps/Klotski")
6026 (synopsis "Sliding block puzzles")
6027 (description
6028 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6029 the patterned block to the area bordered by green markers. To do so, you will
6030 need to slide other blocks out of the way. Complete each puzzle in as few moves
6031 as possible!")
6032 (license license:gpl2+)))
6033
6034 (define-public grilo
6035 (package
6036 (name "grilo")
6037 (version "0.3.12")
6038 (source
6039 (origin
6040 (method url-fetch)
6041 (uri (string-append "mirror://gnome/sources/grilo/"
6042 (version-major+minor version) "/"
6043 "grilo-" version ".tar.xz"))
6044 (sha256
6045 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
6046 (build-system meson-build-system)
6047 (native-inputs
6048 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
6049 ("intltool" ,intltool)
6050 ("pkg-config" ,pkg-config)
6051 ("gobject-introspection" ,gobject-introspection)
6052 ("gtk-doc" ,gtk-doc)
6053 ("vala" ,vala)))
6054 (inputs
6055 `(("cyrus-sasl" ,cyrus-sasl)
6056 ("glib" ,glib)
6057 ("gtk+" ,gtk+)
6058 ("libxml2" ,libxml2)
6059 ("liboauth" ,liboauth)
6060 ("libsoup" ,libsoup)
6061 ("totem-pl-parser" ,totem-pl-parser)))
6062 (native-search-paths
6063 (list (search-path-specification
6064 (variable "GRL_PLUGIN_PATH")
6065 (files (list (string-append "lib/grilo-"
6066 (version-major+minor version)))))))
6067 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6068 (synopsis "Framework for discovering and browsing media")
6069 (description
6070 "Grilo is a framework focused on making media discovery and browsing easy
6071 for application developers.")
6072 (license license:lgpl2.1+)))
6073
6074 (define-public grilo-plugins
6075 (package
6076 (name "grilo-plugins")
6077 (version "0.3.11")
6078 (source
6079 (origin
6080 (method url-fetch)
6081 (uri (string-append "mirror://gnome/sources/" name "/"
6082 (version-major+minor version) "/"
6083 name "-" version ".tar.xz"))
6084 (sha256
6085 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
6086 (build-system meson-build-system)
6087 (native-inputs
6088 `(("gettext" ,gettext-minimal)
6089 ("glib:bin" ,glib "bin")
6090 ("gtk+:bin" ,gtk+ "bin")
6091 ("itstool" ,itstool)
6092 ("pkg-config" ,pkg-config)))
6093 ;; TODO: ahavi, gstreamer
6094 (inputs
6095 `(("grilo" ,grilo)
6096 ;("gmime" ,gmime) ; unused
6097 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6098 ("gom" ,gom)
6099 ;("gssdp" ,gssdp) ; unused
6100 ;("gupnp" ,gupnp) ; unused
6101 ;("gupnp-av" ,gupnp-av) ; unused
6102 ("json-glib" ,json-glib)
6103 ("avahi" ,avahi)
6104 ("libgdata" ,libgdata)
6105 ("libmediaart" ,libmediaart)
6106 ;("librest" ,rest) ; unused
6107 ("libsoup" ,libsoup)
6108 ("totam-pl-parser" ,totem-pl-parser)
6109 ("tracker" ,tracker))) ; unused because it's too old
6110 (arguments
6111 `(#:glib-or-gtk? #t
6112 ;;Disable lua-factory as it needs missing dependencies
6113 #:configure-flags '("-Denable-lua-factory=no")))
6114 (home-page "https://live.gnome.org/Grilo")
6115 (synopsis "Plugins for the Grilo media discovery library")
6116 (description
6117 "Grilo is a framework focused on making media discovery and browsing easy
6118 for application developers. This package provides plugins for common media
6119 discovery protocols.")
6120 (license license:lgpl2.1+)))
6121
6122 (define-public totem
6123 (package
6124 (name "totem")
6125 (version "3.38.0")
6126 (source
6127 (origin
6128 (method url-fetch)
6129 (uri (string-append "mirror://gnome/sources/totem/"
6130 (version-major+minor version) "/"
6131 "totem-" version ".tar.xz"))
6132 (sha256
6133 (base32
6134 "0bs33ijvxbr2prb9yj4dxglsszslsn9k258n311sld84masz4ad8"))))
6135 (build-system meson-build-system)
6136 (native-inputs
6137 `(("pkg-config" ,pkg-config)
6138 ("desktop-file-utils" ,desktop-file-utils)
6139 ("gettext" ,gettext-minimal)
6140 ("gobject-introspection" ,gobject-introspection)
6141 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
6142 ("itstool" ,itstool)
6143 ("xmllint" ,libxml2)
6144 ("xorg-server" ,xorg-server-for-tests)))
6145 (propagated-inputs
6146 `(("dconf" ,dconf)))
6147 (inputs
6148 `(("gtk+" ,gtk+)
6149 ("gdk-pixbuf" ,gdk-pixbuf)
6150 ("atk" ,atk)
6151 ("cairo" ,cairo)
6152 ("dbus-glib" ,dbus-glib)
6153 ("clutter" ,clutter)
6154 ("clutter-gtk" ,clutter-gtk)
6155 ("clutter-gst" ,clutter-gst)
6156 ("xorgproto" ,xorgproto)
6157 ("libxxf86vm" ,libxxf86vm)
6158 ("libxtst" ,libxtst)
6159 ("libxrandr" ,libxrandr)
6160 ("libxml2" ,libxml2)
6161 ("libsoup" ,libsoup)
6162 ("libpeas" ,libpeas)
6163 ("librsvg" ,librsvg)
6164 ("lirc" ,lirc)
6165 ("gnome-desktop" ,gnome-desktop)
6166 ("gstreamer" ,gstreamer)
6167 ("gst-plugins-base" ,gst-plugins-base)
6168 ("gst-plugins-good" ,gst-plugins-good)
6169 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6170 ("adwaita-icon-theme" ,adwaita-icon-theme)
6171 ("python" ,python)
6172 ("python-pygobject" ,python-pygobject)
6173 ("totem-pl-parser" ,totem-pl-parser)
6174 ("grilo" ,grilo)
6175 ("grilo-plugins" ,grilo-plugins)
6176 ("vala" ,vala)))
6177 (arguments
6178 `(#:glib-or-gtk? #t
6179
6180 ;; Disable automatic GStreamer plugin installation via PackageKit and
6181 ;; all that.
6182 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6183
6184 ;; Do not build .a files for the plugins, it's
6185 ;; completely useless. This saves 2 MiB.
6186 "--default-library" "shared")
6187 #:phases
6188 (modify-phases %standard-phases
6189 (add-after 'unpack 'skip-gtk-update-icon-cache
6190 ;; Don't create 'icon-theme.cache'.
6191 (lambda _
6192 (substitute* "meson_post_install.py"
6193 (("gtk-update-icon-cache") "true"))
6194 #t))
6195 (add-after 'unpack 'patch-failing-test
6196 (lambda _
6197 ;; Work around test failure with GStreamer 1.18, because the test
6198 ;; relies on "und" not being mapped to a particular language:
6199 ;; https://gitlab.gnome.org/GNOME/totem/-/issues/450
6200 (substitute* "src/test-totem.c"
6201 (("und") "nosuchlang"))
6202 #t))
6203 (add-before
6204 'install 'disable-cache-generation
6205 (lambda _
6206 (setenv "DESTDIR" "/")
6207 #t))
6208 (add-before
6209 'check 'pre-check
6210 (lambda _
6211 ;; Tests require a running X server.
6212 (system "Xvfb :1 &")
6213 (setenv "DISPLAY" ":1")
6214 #t))
6215 (add-after
6216 'install 'wrap-totem
6217 (lambda* (#:key inputs outputs #:allow-other-keys)
6218 (let ((out (assoc-ref outputs "out"))
6219 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6220 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6221 (wrap-program (string-append out "/bin/totem")
6222 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6223 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6224 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6225 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
6226 #t)))))
6227 (home-page "https://wiki.gnome.org/Apps/Videos")
6228 (synopsis "Simple media player for GNOME based on GStreamer")
6229 (description "Totem is a simple yet featureful media player for GNOME
6230 which can read a large number of file formats.")
6231 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6232 ;; to be used and distributed together with GStreamer and Totem. See
6233 ;; file://COPYING in the source distribution for details.
6234 (license license:gpl2+)))
6235
6236 (define-public rhythmbox
6237 (package
6238 (name "rhythmbox")
6239 (version "3.4.4")
6240 (source (origin
6241 (method url-fetch)
6242 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6243 (version-major+minor version) "/"
6244 "rhythmbox-" version ".tar.xz"))
6245 (sha256
6246 (base32
6247 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6248 (build-system glib-or-gtk-build-system)
6249 (arguments
6250 `(#:configure-flags
6251 (list "--enable-lirc"
6252 "--enable-python"
6253 "--enable-vala"
6254 "--with-brasero"
6255 "--with-gudev"
6256 "--with-libsecret")
6257 #:phases
6258 (modify-phases %standard-phases
6259 (add-after
6260 'install 'wrap-rhythmbox
6261 (lambda* (#:key inputs outputs #:allow-other-keys)
6262 (let ((out (assoc-ref outputs "out"))
6263 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6264 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6265 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6266 (python-path (getenv "PYTHONPATH")))
6267 (wrap-program (string-append out "/bin/rhythmbox")
6268 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6269 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6270 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6271 `("PYTHONPATH" ":" prefix (,python-path))))
6272 #t)))))
6273 (propagated-inputs
6274 `(("dconf" ,dconf)))
6275 (native-inputs
6276 `(("itstool" ,itstool)
6277 ("intltool" ,intltool)
6278 ("glib" ,glib "bin")
6279 ("gobject-introspection" ,gobject-introspection)
6280 ("desktop-file-utils" ,desktop-file-utils)
6281 ("pkg-config" ,pkg-config)
6282 ("xmllint" ,libxml2)))
6283 (inputs
6284 `(("json-glib" ,json-glib)
6285 ("tdb" ,tdb)
6286 ("gnome-desktop" ,gnome-desktop)
6287 ("python" ,python)
6288 ("python-pygobject" ,python2-pygobject)
6289 ("vala" ,vala)
6290 ("gmime" ,gmime)
6291 ("adwaita-icon-theme" ,adwaita-icon-theme)
6292 ("grilo" ,grilo)
6293 ("grilo-plugins" ,grilo-plugins)
6294 ("gstreamer" ,gstreamer)
6295 ("gst-plugins-base" ,gst-plugins-base)
6296 ("gst-plugins-good" ,gst-plugins-good)
6297 ("totem-pl-parser" ,totem-pl-parser)
6298 ("libgudev" ,libgudev)
6299 ;;("libmtp" ,libmtp) FIXME: Not detected
6300 ("libsecret" ,libsecret)
6301 ("libsoup" ,libsoup)
6302 ("libnotify" ,libnotify)
6303 ("libpeas" ,libpeas)
6304 ("lirc" ,lirc)
6305 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6306 ;;("clutter" ,clutter)
6307 ;;("clutter-gtk" ,clutter-gtk)
6308 ;;("clutter-gst" ,clutter-gst)
6309 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6310 ("atk" ,atk)
6311 ("pango" ,pango)
6312 ("gtk+" ,gtk+)
6313 ;; TODO:
6314 ;; * libgpod
6315 ;; * mx
6316 ("brasero" ,brasero)))
6317 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6318 (synopsis "Music player for GNOME")
6319 (description "Rhythmbox is a music playing application for GNOME. It
6320 supports playlists, song ratings, and any codecs installed through gstreamer.")
6321 (license license:gpl2+)))
6322
6323 (define-public eog
6324 (package
6325 (name "eog")
6326 (version "3.34.1")
6327 (source (origin
6328 (method url-fetch)
6329 (uri (string-append "mirror://gnome/sources/" name "/"
6330 (version-major+minor version) "/"
6331 name "-" version ".tar.xz"))
6332 (sha256
6333 (base32
6334 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
6335 (build-system meson-build-system)
6336 (arguments
6337 `(#:configure-flags
6338 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6339 (list (string-append "-Dc_link_args=-Wl,-rpath="
6340 (assoc-ref %outputs "out") "/lib/eog"))
6341 #:phases
6342 (modify-phases %standard-phases
6343 (add-after 'unpack 'skip-gtk-update-icon-cache
6344 ;; Don't create 'icon-theme.cache'.
6345 (lambda _
6346 (substitute* "meson_post_install.py"
6347 (("gtk-update-icon-cache") "true"))
6348 #t))
6349 (add-after 'install 'wrap-eog
6350 (lambda* (#:key outputs #:allow-other-keys)
6351 (let ((out (assoc-ref outputs "out"))
6352 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6353 (wrap-program (string-append out "/bin/eog")
6354 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6355 #t)))))
6356 (propagated-inputs
6357 `(("dconf" ,dconf)))
6358 (native-inputs
6359 `(("intltool" ,intltool)
6360 ("itstool" ,itstool)
6361 ("glib" ,glib "bin")
6362 ("gobject-introspection" ,gobject-introspection)
6363 ("pkg-config" ,pkg-config)
6364 ("xmllint" ,libxml2)))
6365 (inputs
6366 `(("gnome-desktop" ,gnome-desktop)
6367 ("shared-mime-info" ,shared-mime-info)
6368 ("adwaita-icon-theme" ,adwaita-icon-theme)
6369 ("exempi" ,exempi)
6370 ("lcms" ,lcms)
6371 ("libexif" ,libexif)
6372 ("libpeas" ,libpeas)
6373 ("libjpeg" ,libjpeg-turbo)
6374 ("librsvg" ,librsvg-next)
6375 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6376 ("gtk+" ,gtk+)))
6377 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6378 (synopsis "GNOME image viewer")
6379 (description "Eye of GNOME is the GNOME image viewer. It
6380 supports image conversion, rotation, and slideshows.")
6381 (license license:gpl2+)))
6382
6383 (define-public eog-plugins
6384 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6385 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6386 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6387 ;; 'XDG_DATA_DIRS' appropriately set.
6388 (package
6389 (name "eog-plugins")
6390 (version "3.26.4")
6391 (source (origin
6392 (method url-fetch)
6393 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6394 (version-major+minor version) "/"
6395 "eog-plugins-" version ".tar.xz"))
6396 (sha256
6397 (base32
6398 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6399 (build-system gnu-build-system)
6400 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6401 (synopsis "Extensions for the Eye of GNOME image viewer")
6402 (native-inputs
6403 `(("pkg-config" ,pkg-config)
6404 ("gettext" ,gettext-minimal)))
6405 (inputs
6406 `(("eog" ,eog)
6407 ("glib" ,glib)
6408 ("gtk+" ,gtk+)
6409 ("libpeas" ,libpeas)
6410 ("libexif" ,libexif)
6411 ("libchamplain" ,libchamplain)))
6412 (description
6413 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6414 notably:
6415
6416 @itemize
6417 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6418 @item @dfn{Map}, which displays a map of where the picture was taken on the
6419 side panel;
6420 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6421 @end itemize\n")
6422
6423 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6424 ;; long suspicious byte stream that goes to a
6425 ;; ".gresource.eog_postasa_plugin" ELF section.
6426 (license license:gpl2+)))
6427
6428 (define-public libgudev
6429 (package
6430 (name "libgudev")
6431 (version "232")
6432 (source (origin
6433 (method url-fetch)
6434 (uri (string-append "mirror://gnome/sources/" name "/"
6435 version "/" name "-" version ".tar.xz"))
6436 (sha256
6437 (base32
6438 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
6439 (build-system gnu-build-system)
6440 (arguments
6441 '(#:configure-flags
6442 ;; umockdev depends on libgudev.
6443 (list "--disable-umockdev")))
6444 (native-inputs
6445 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6446 ("gobject-introspection" ,gobject-introspection)
6447 ("pkg-config" ,pkg-config)))
6448 (propagated-inputs
6449 `(("glib" ,glib))) ; required by gudev-1.0.pc
6450 (inputs
6451 `(("udev" ,eudev)))
6452 (home-page "https://wiki.gnome.org/Projects/libgudev")
6453 (synopsis "GObject bindings for libudev")
6454 (description
6455 "This library provides GObject bindings for libudev. It was originally
6456 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6457 (license license:lgpl2.1+)))
6458
6459 (define-public gvfs
6460 (package
6461 (name "gvfs")
6462 (version "1.40.2")
6463 (source (origin
6464 (method url-fetch)
6465 (uri (string-append "mirror://gnome/sources/gvfs/"
6466 (version-major+minor version) "/"
6467 "gvfs-" version ".tar.xz"))
6468 (sha256
6469 (base32
6470 "07lpcfric3h0302n9b1pwa38mjb76r9s98kg2867y2d1qvzfivxx"))
6471 ;; This patch may be removed when upgrading to version 1.46.x.
6472 (patches
6473 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6474 (build-system meson-build-system)
6475 (arguments
6476 '(#:glib-or-gtk? #t
6477 #:configure-flags
6478 (list "-Dsystemduserunitdir=no"
6479 "-Dtmpfilesdir=no"
6480 ;; Otherwise, the RUNPATH will lack the final path component.
6481 (string-append "-Dc_link_args=-Wl,-rpath="
6482 (assoc-ref %outputs "out") "/lib/gvfs"))))
6483 (native-inputs
6484 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6485 ("gettext" ,gettext-minimal)
6486 ("gtk-doc" ,gtk-doc)
6487 ("pkg-config" ,pkg-config)
6488 ("xsltproc" ,libxslt)))
6489 (inputs
6490 `(("avahi" ,avahi)
6491 ("docbook-xml" ,docbook-xml-4.2)
6492 ("docbook-xsl" ,docbook-xsl)
6493 ("dbus" ,dbus)
6494 ("elogind" ,elogind)
6495 ("fuse" ,fuse)
6496 ("gcr" ,gcr)
6497 ("glib" ,glib)
6498 ("gnome-online-accounts" ,gnome-online-accounts)
6499 ("libarchive" ,libarchive)
6500 ("libbluray" ,libbluray)
6501 ("libcap" ,libcap)
6502 ("libcdio-paranoia" ,libcdio-paranoia)
6503 ("libgcrypt" ,libgcrypt)
6504 ("libgdata" ,libgdata)
6505 ("libgphoto2" ,libgphoto2)
6506 ("libgudev" ,libgudev)
6507 ("libimobiledevice" ,libimobiledevice)
6508 ("libmtp" ,libmtp)
6509 ("libnfs" ,libnfs)
6510 ("libsecret" ,libsecret)
6511 ("libsmbclient" ,samba)
6512 ("libsoup" ,libsoup)
6513 ("libxml2" ,libxml2)
6514 ("openssh" ,openssh)
6515 ("polkit" ,polkit)
6516 ("udisks" ,udisks)))
6517 ;; CVE-2019-{12447,12448,12449} are fixed in the 1.40.2 release.
6518 (properties '((lint-hidden-cve . ("CVE-2019-12447"
6519 "CVE-2019-12448"
6520 "CVE-2019-12449"))))
6521 (home-page "https://wiki.gnome.org/gvfs/")
6522 (synopsis "Userspace virtual file system for GIO")
6523 (description
6524 "GVFS is a userspace virtual file system designed to work with the I/O
6525 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6526 to all applications using the GIO API. It also supports exposing the GVFS
6527 mounts to non-GIO applications using FUSE.
6528
6529 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6530 DAV, and others.")
6531 (license license:lgpl2.0+)))
6532
6533 (define-public gusb
6534 (package
6535 (name "gusb")
6536 (version "0.3.5")
6537 (source (origin
6538 (method git-fetch)
6539 (uri (git-reference
6540 (url "https://github.com/hughsie/libgusb")
6541 (commit version)))
6542 (file-name (git-file-name name version))
6543 (sha256
6544 (base32
6545 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6546 (build-system meson-build-system)
6547 (native-inputs
6548 `(("gobject-introspection" ,gobject-introspection)
6549 ("pkg-config" ,pkg-config)
6550 ("vala" ,vala)
6551 ("gtk-doc" ,gtk-doc)))
6552 (propagated-inputs
6553 ;; Both of these are required by gusb.pc.
6554 `(("glib" ,glib)
6555 ("libusb" ,libusb)))
6556 (arguments
6557 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6558 (home-page "https://github.com/hughsie/libgusb")
6559 (synopsis "GLib binding for libusb1")
6560 (description
6561 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6562 asynchronous control, bulk and interrupt transfers with proper cancellation
6563 and integration into a mainloop. This makes it easy to integrate low level
6564 USB transfers with your high-level application or system daemon.")
6565 (license license:lgpl2.1+)))
6566
6567 (define-public simple-scan
6568 (package
6569 (name "simple-scan")
6570 (version "3.38.2")
6571 (source
6572 (origin
6573 (method url-fetch)
6574 (uri (string-append "mirror://gnome/sources/simple-scan/"
6575 (version-major+minor version) "/"
6576 "simple-scan-" version ".tar.xz"))
6577 (sha256
6578 (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8"))))
6579 (build-system meson-build-system)
6580 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6581 (arguments
6582 '(#:glib-or-gtk? #t))
6583 (inputs
6584 `(("gtk" ,gtk+)
6585 ("zlib" ,zlib)
6586 ("cairo" ,cairo)
6587 ("colord" ,colord)
6588 ("gdk-pixbuf" ,gdk-pixbuf)
6589 ("gusb" ,gusb)
6590 ("libsane" ,sane-backends)))
6591 (native-inputs
6592 `(("gettext" ,gettext-minimal)
6593 ("itstool" ,itstool)
6594 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6595 ("pkg-config" ,pkg-config)
6596 ("vala" ,vala)
6597 ("xmllint" ,libxml2)))
6598 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6599 (synopsis "Document and image scanner")
6600 (description
6601 "Document Scanner is an easy-to-use application that lets you connect your
6602 scanner and quickly capture images and documents in an appropriate format. It
6603 supports any scanner for which a suitable SANE driver is available, which is
6604 almost all of them.")
6605 (license license:gpl3+)))
6606
6607 (define-public eolie
6608 (package
6609 (name "eolie")
6610 (version "0.9.101")
6611 (source (origin
6612 (method url-fetch)
6613 (uri (string-append "https://adishatz.org/eolie/eolie-"
6614 version ".tar.xz"))
6615 (sha256
6616 (base32
6617 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6618 (build-system meson-build-system)
6619 (arguments
6620 `(#:glib-or-gtk? #t
6621 #:phases
6622 (modify-phases %standard-phases
6623 (add-after 'unpack 'skip-gtk-update-icon-cache
6624 ;; Don't create 'icon-theme.cache'.
6625 (lambda _
6626 (substitute* "meson_post_install.py"
6627 (("gtk-update-icon-cache") "true"))
6628 #t))
6629 (add-after 'wrap 'wrap-more
6630 (lambda* (#:key inputs outputs #:allow-other-keys)
6631 (let* ((out (assoc-ref outputs "out"))
6632 ;; These libraries must be on LD_LIBRARY_PATH.
6633 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6634 "atk" "gtk+" "gsettings-desktop-schemas"
6635 "gobject-introspection"))
6636 (path (string-join
6637 (map (lambda (lib)
6638 (string-append (assoc-ref inputs lib) "/lib"))
6639 libs)
6640 ":")))
6641 (wrap-program (string-append out "/bin/eolie")
6642 `("LD_LIBRARY_PATH" ":" prefix (,path))
6643 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6644 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6645 #t)))))
6646 (native-inputs
6647 `(("intltool" ,intltool)
6648 ("itstool" ,itstool)
6649 ("pkg-config" ,pkg-config)
6650 ("python" ,python)
6651 ("glib:bin" ,glib "bin")))
6652 (inputs
6653 `(("gobject-introspection" ,gobject-introspection)
6654 ("glib-networking" ,glib-networking)
6655 ("cairo" ,cairo)
6656 ("gtk+" ,gtk+)
6657 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6658 ("python" ,python-wrapper)
6659 ("python-dateutil" ,python-dateutil)
6660 ("python-pyfxa" ,python-pyfxa)
6661 ("python-pygobject" ,python-pygobject)
6662 ("python-pycairo" ,python-pycairo)
6663 ("python-pycrypto" ,python-pycrypto)
6664 ("libsecret" ,libsecret)
6665 ("gtkspell3" ,gtkspell3)
6666 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6667 ("webkitgtk" ,webkitgtk)))
6668 (home-page "https://wiki.gnome.org/Apps/Eolie")
6669 (synopsis "Web browser for GNOME")
6670 (description
6671 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6672 a secret password store, an adblocker, and a modern UI.")
6673 (license license:gpl3+)))
6674
6675 (define-public epiphany
6676 (package
6677 (name "epiphany")
6678 (version "3.34.4")
6679 (source (origin
6680 (method url-fetch)
6681 (uri (string-append "mirror://gnome/sources/epiphany/"
6682 (version-major+minor version) "/"
6683 "epiphany-" version ".tar.xz"))
6684 (sha256
6685 (base32
6686 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6687
6688 (build-system meson-build-system)
6689 (arguments
6690 '(#:glib-or-gtk? #t
6691 #:phases
6692 (modify-phases %standard-phases
6693 (add-after 'unpack 'skip-gtk-update-icon-cache
6694 ;; Don't create 'icon-theme.cache'.
6695 (lambda _
6696 (substitute* "post_install.py"
6697 (("gtk-update-icon-cache") "true"))
6698 #t))
6699 (add-after 'unpack 'disable-failing-tests
6700 (lambda _
6701 (substitute* "tests/meson.build"
6702 ;; embed_shell fails, because webkitgtk apparently no longer supports
6703 ;; overriding the ftp schema
6704 ;; web_app_utils fails due to missing network access
6705 (("(embed_shell|web_app_utils)_test,")
6706 "find_program('sh'), args: ['-c', 'exit 77'],"))
6707 #t))
6708 (add-before 'check 'pre-check
6709 (lambda _
6710 ;; Tests require a running X server.
6711 (system "Xvfb :1 &")
6712 (setenv "DISPLAY" ":1")
6713 #t)))
6714 #:configure-flags
6715 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6716 (list (string-append "-Dc_link_args=-Wl,-rpath="
6717 (assoc-ref %outputs "out") "/lib/epiphany"))))
6718 (propagated-inputs
6719 `(("dconf" ,dconf)))
6720 (native-inputs
6721 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6722 ("glib:bin" ,glib "bin") ; for glib-mkenums
6723 ("intltool" ,intltool)
6724 ("itstool" ,itstool)
6725 ("pkg-config" ,pkg-config)
6726 ("xmllint" ,libxml2)
6727 ("xorg-server" ,xorg-server-for-tests)))
6728 (inputs
6729 `(("avahi" ,avahi)
6730 ("gcr" ,gcr)
6731 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6732 ("glib-networking" ,glib-networking)
6733 ("gnome-desktop" ,gnome-desktop)
6734 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6735 ("json-glib" ,json-glib)
6736 ("iso-codes" ,iso-codes)
6737 ("libdazzle" ,libdazzle)
6738 ("libnotify" ,libnotify)
6739 ("libsecret" ,libsecret)
6740 ("libxslt" ,libxslt)
6741 ("nettle" ,nettle) ; for hogweed
6742 ("sqlite" ,sqlite)
6743 ("webkitgtk" ,webkitgtk)))
6744 (home-page "https://wiki.gnome.org/Apps/Web")
6745 (synopsis "GNOME web browser")
6746 (description
6747 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6748 principles are simplicity and standards compliance.")
6749 (license license:gpl2+)))
6750
6751 (define-public d-feet
6752 (package
6753 (name "d-feet")
6754 (version "0.3.14")
6755 (source (origin
6756 (method url-fetch)
6757 (uri (string-append "mirror://gnome/sources/" name "/"
6758 (version-major+minor version) "/"
6759 name "-" version ".tar.xz"))
6760 (sha256
6761 (base32
6762 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6763 (build-system glib-or-gtk-build-system)
6764 (arguments
6765 '(#:out-of-source? #f ; tests need to run in the source directory.
6766 #:phases
6767 (modify-phases %standard-phases
6768 (add-before
6769 'check 'pre-check
6770 (lambda _
6771 ;; The test suite requires a running X server.
6772 (system "Xvfb :1 &")
6773 (setenv "DISPLAY" ":1")
6774 ;; Don't fail on missing '/etc/machine-id'.
6775 (setenv "DBUS_FATAL_WARNINGS" "0")
6776 ;; tests.py and window.py don't meet E402:
6777 ;; E402 module level import not at top of file
6778 (substitute* "src/tests/Makefile"
6779 (("--ignore=E123") "--ignore=E123,E402"))
6780 #t))
6781 (add-after
6782 'install 'wrap-program
6783 (lambda* (#:key outputs #:allow-other-keys)
6784 (let ((prog (string-append (assoc-ref outputs "out")
6785 "/bin/d-feet")))
6786 (wrap-program prog
6787 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6788 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6789 #t))))))
6790 (native-inputs
6791 `(("intltool" ,intltool)
6792 ("itstool" ,itstool)
6793 ("pkg-config" ,pkg-config)
6794 ("python-pep8" ,python-pep8)
6795 ("xmllint" ,libxml2)
6796 ("xorg-server" ,xorg-server-for-tests)))
6797 (inputs
6798 `(("gobject-introspection" ,gobject-introspection)
6799 ("gtk+" ,gtk+)
6800 ("python" ,python-wrapper)
6801 ("hicolor-icon-theme" ,hicolor-icon-theme)
6802 ("python-pygobject" ,python-pygobject)))
6803 (home-page "https://wiki.gnome.org/Apps/DFeet")
6804 (synopsis "D-Bus debugger")
6805 (description
6806 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6807 of running programs and invoke methods on those interfaces.")
6808 (license license:gpl2+)))
6809
6810 (define-public yelp-xsl
6811 (package
6812 (name "yelp-xsl")
6813 (version "3.34.2")
6814 (source
6815 (origin
6816 (method url-fetch)
6817 (uri
6818 (string-append "mirror://gnome/sources/" name "/"
6819 (version-major+minor version) "/"
6820 name "-" version ".tar.xz"))
6821 (sha256
6822 (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6823 (build-system gnu-build-system)
6824 (native-inputs
6825 `(("gettext-minimal" ,gettext-minimal)
6826 ("itstool" ,itstool)
6827 ("xmllint" ,libxml2)))
6828 (synopsis "XSL stylesheets for Yelp")
6829 (description "Yelp-XSL is a collection of programs and data files to help
6830 you build, maintain, and distribute documentation. It provides XSLT stylesheets
6831 that can be built upon for help viewers and publishing systems. These
6832 stylesheets output JavaScript and CSS content, and reference images
6833 provided by yelp-xsl. It also redistributes copies of the jQuery and
6834 jQuery.Syntax JavaScript libraries.")
6835 (home-page "https://wiki.gnome.org/Apps/Yelp")
6836 (license
6837 (list
6838 ;; XSLT
6839 license:gpl2+
6840 ;; Images
6841 license:lgpl2.1+
6842 ;; JavaScript
6843 license:expat))))
6844
6845 (define-public yelp
6846 (package
6847 (name "yelp")
6848 (version "3.32.2")
6849 (source (origin
6850 (method url-fetch)
6851 (uri (string-append "mirror://gnome/sources/" name "/"
6852 (version-major+minor version) "/"
6853 name "-" version ".tar.xz"))
6854 (sha256
6855 (base32
6856 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6857 (build-system glib-or-gtk-build-system)
6858 (native-inputs
6859 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6860 ("intltool" ,intltool)
6861 ("itstool" ,itstool)
6862 ("pkg-config" ,pkg-config)))
6863 (propagated-inputs
6864 `(("dconf" ,dconf)))
6865 (inputs
6866 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6867 ("libxslt" ,libxslt)
6868 ("sqlite" ,sqlite)
6869 ("webkitgtk" ,webkitgtk)
6870 ("yelp-xsl" ,yelp-xsl)))
6871 (home-page "https://wiki.gnome.org/Apps/Yelp")
6872 (synopsis "GNOME help browser")
6873 (description
6874 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6875 man, info, and HTML documents. It can locate documents according to the
6876 freedesktop.org help system specification.")
6877 (license license:gpl2+)))
6878
6879 (define-public yelp-tools
6880 (package
6881 (name "yelp-tools")
6882 (version "3.32.2")
6883 (source
6884 (origin
6885 (method url-fetch)
6886 (uri
6887 (string-append "mirror://gnome/sources/" name "/"
6888 (version-major+minor version) "/"
6889 name "-" version ".tar.xz"))
6890 (sha256
6891 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6892 (build-system gnu-build-system)
6893 (native-inputs
6894 `(("pkg-config" ,pkg-config)))
6895 (inputs
6896 `(("yelp-xsl" ,yelp-xsl)))
6897 (propagated-inputs
6898 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6899 `(("itstool" ,itstool)
6900 ("xmllint" ,libxml2)
6901 ("xsltproc" ,libxslt)))
6902 (synopsis "Yelp documentation tools")
6903 (description
6904 "Yelp-tools is a collection of scripts and build utilities to help create,
6905 manage, and publish documentation for Yelp and the web. Most of the heavy
6906 lifting is done by packages like yelp-xsl and itstool. This package just
6907 wraps things up in a developer-friendly way.")
6908 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6909 (license license:gpl2+)))
6910
6911 (define-public libgee
6912 (package
6913 (name "libgee")
6914 (version "0.20.3")
6915 (source (origin
6916 (method url-fetch)
6917 (uri (string-append "mirror://gnome/sources/libgee/"
6918 (version-major+minor version) "/"
6919 "libgee-" version ".tar.xz"))
6920 (sha256
6921 (base32
6922 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6923 (build-system gnu-build-system)
6924 (arguments
6925 `(#:phases
6926 (modify-phases %standard-phases
6927 (add-after 'unpack 'fix-introspection-install-dir
6928 (lambda* (#:key outputs #:allow-other-keys)
6929 (let ((out (assoc-ref outputs "out")))
6930 (substitute* "gee/Makefile.in"
6931 (("@INTROSPECTION_GIRDIR@")
6932 (string-append out "/share/gir-1.0/"))
6933 (("@INTROSPECTION_TYPELIBDIR@")
6934 (string-append out "/lib/girepository-1.0/")))))))))
6935 (native-inputs
6936 `(("glib" ,glib "bin")
6937 ("pkg-config" ,pkg-config)))
6938 (inputs
6939 `(("glib" ,glib)
6940 ("gobject-introspection" ,gobject-introspection)))
6941 (home-page "https://wiki.gnome.org/Projects/Libgee")
6942 (synopsis "GObject collection library")
6943 (description
6944 "Libgee is a utility library providing GObject-based interfaces and
6945 classes for commonly used data structures.")
6946 (license license:lgpl2.1+)))
6947
6948 (define-public gexiv2
6949 (package
6950 (name "gexiv2")
6951 (version "0.12.2")
6952 (source (origin
6953 (method url-fetch)
6954 (uri (string-append "mirror://gnome/sources/" name "/"
6955 (version-major+minor version) "/"
6956 name "-" version ".tar.xz"))
6957 (sha256
6958 (base32
6959 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
6960 (build-system meson-build-system)
6961 (native-inputs
6962 `(("gcr" ,gcr)
6963 ("glib" ,glib "bin")
6964 ("pkg-config" ,pkg-config)
6965 ("vala" ,vala)))
6966 (propagated-inputs
6967 ;; Listed in "Requires" section of gexiv2.pc
6968 `(("exiv2" ,exiv2)))
6969 (inputs
6970 `(("glib" ,glib)
6971 ("gobject-introspection" ,gobject-introspection)))
6972 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6973 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6974 (description
6975 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6976 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6977 metadata in photo and video files of various formats.")
6978 (license license:gpl2+)))
6979
6980 (define-public shotwell
6981 (package
6982 (name "shotwell")
6983 (version "0.30.11")
6984 (source (origin
6985 (method url-fetch)
6986 (uri (string-append "mirror://gnome/sources/shotwell/"
6987 (version-major+minor version) "/"
6988 "shotwell-" version ".tar.xz"))
6989 (sha256
6990 (base32
6991 "12d26y40kjlv5x8f5g04wff33vh7mdjb8c41ydqbrwdip0jwy2n2"))))
6992 (build-system meson-build-system)
6993 (arguments
6994 '(#:glib-or-gtk? #t
6995 #:phases
6996 (modify-phases %standard-phases
6997 (add-after 'unpack 'skip-gtk-update-icon-cache
6998 (lambda _
6999 (substitute* "build-aux/meson/postinstall.py"
7000 (("gtk-update-icon-cache") (which "true"))
7001 (("update-desktop-database") (which "true")))
7002 #t)))))
7003 (propagated-inputs
7004 `(("dconf" ,dconf)))
7005 (native-inputs
7006 `(("gettext" ,gettext-minimal)
7007 ("glib:bin" ,glib "bin")
7008 ("itstool" ,itstool)
7009 ("pkg-config" ,pkg-config)
7010 ("vala" ,vala)))
7011 (inputs
7012 `(("gcr" ,gcr)
7013 ("gexiv2" ,gexiv2)
7014 ("gst-plugins-base" ,gst-plugins-base)
7015 ("gstreamer" ,gstreamer)
7016 ("json-glib" ,json-glib)
7017 ("libgdata" ,libgdata)
7018 ("libgee" ,libgee)
7019 ("libgphoto2" ,libgphoto2)
7020 ("libgudev" ,libgudev)
7021 ("libraw" ,libraw)
7022 ("libsoup" ,libsoup)
7023 ("libxml2" ,libxml2)
7024 ("sqlite" ,sqlite)
7025 ("webkitgtk" ,webkitgtk)))
7026 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7027 (synopsis "Photo manager for GNOME 3")
7028 (description
7029 "Shotwell is a digital photo manager designed for the GNOME desktop
7030 environment. It allows you to import photos from disk or camera, organize
7031 them by keywords and events, view them in full-window or fullscreen mode, and
7032 share them with others via social networking and more.")
7033 (license license:lgpl2.1+)))
7034
7035 (define-public file-roller
7036 (package
7037 (name "file-roller")
7038 (version "3.38.0")
7039 (source (origin
7040 (method url-fetch)
7041 (uri (string-append "mirror://gnome/sources/file-roller/"
7042 (version-major+minor version) "/"
7043 "file-roller-" version ".tar.xz"))
7044 (sha256
7045 (base32
7046 "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj"))))
7047 (build-system meson-build-system)
7048 (native-inputs
7049 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7050 ("intltool" ,intltool)
7051 ("itstool" ,itstool)
7052 ("pkg-config" ,pkg-config)
7053 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7054 ("glib:bin" ,glib "bin")))
7055 ;; TODO: Add libnautilus.
7056 (inputs
7057 `(("gtk+" ,gtk+)
7058 ("gdk-pixbuf" ,gdk-pixbuf)
7059 ("json-glib" ,json-glib)
7060 ("libarchive" ,libarchive)
7061 ("libnotify" ,libnotify)
7062 ("nettle" ,nettle)
7063 ("libxml2" ,libxml2)))
7064 (synopsis "Graphical archive manager for GNOME")
7065 (description "File Roller is an archive manager for the GNOME desktop
7066 environment that allows users to view, unpack, and create compressed archives
7067 such as gzip tarballs.")
7068 (home-page "http://fileroller.sourceforge.net/")
7069 (license license:gpl2+)))
7070
7071 (define-public gnome-session
7072 (package
7073 (name "gnome-session")
7074 (version "3.34.2")
7075 (source (origin
7076 (method url-fetch)
7077 (uri (string-append "mirror://gnome/sources/" name "/"
7078 (version-major+minor version) "/"
7079 name "-" version ".tar.xz"))
7080 (sha256
7081 (base32
7082 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
7083 (arguments
7084 '(#:glib-or-gtk? #t
7085 #:phases
7086 (modify-phases %standard-phases
7087 (add-before 'configure 'pre-configure
7088 (lambda* (#:key outputs #:allow-other-keys)
7089 ;; Use elogind instead of systemd.
7090 (substitute* "meson.build"
7091 (("libsystemd-login") "libelogind")
7092 (("and libsystemd_daemon_dep.found.*") ","))
7093 (substitute* "gnome-session/gsm-systemd.c"
7094 (("#include <systemd/sd-login.h>")
7095 "#include <elogind/sd-login.h>"))
7096 ;; Remove uses of the systemd daemon.
7097 (substitute* "gnome-session/gsm-autostart-app.c"
7098 (("#ifdef HAVE_SYSTEMD") "#if 0"))
7099 #t))
7100 (add-after 'install 'wrap-gnome-session
7101 (lambda* (#:key inputs outputs #:allow-other-keys)
7102 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7103 (let ((glib (assoc-ref inputs "glib:bin"))
7104 (out (assoc-ref outputs "out")))
7105 (wrap-program (string-append out "/bin/gnome-session")
7106 `("PATH" ":" prefix (,(string-append glib "/bin"))))
7107 #t))))
7108
7109 #:configure-flags
7110 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7111 "-Dman=false" ; FIXME: disabled because of docbook validation error
7112 "-Dsystemd_journal=false")))
7113 (build-system meson-build-system)
7114 (native-inputs
7115 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7116 ("pkg-config" ,pkg-config)
7117 ("intltool" ,intltool)
7118 ("xsltproc" ,libxslt)
7119 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
7120 ("docbook-xsl" ,docbook-xsl)
7121 ("docbook-xml" ,docbook-xml)
7122 ("xmlto" ,xmlto)))
7123 (inputs
7124 `(("elogind" ,elogind)
7125 ("gnome-desktop" ,gnome-desktop)
7126 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7127 ("gtk+" ,gtk+)
7128 ("json-glib" ,json-glib)
7129 ("libsm" ,libsm)
7130 ("libxcomposite" ,libxcomposite)
7131 ("libxtst" ,libxtst)
7132 ("mesa" ,mesa)
7133 ("upower" ,upower)
7134 ("xtrans" ,xtrans)))
7135 (synopsis "Session manager for GNOME")
7136 (description
7137 "This package contains the GNOME session manager, as well as a
7138 configuration program to choose applications starting on login.")
7139 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7140 (license license:gpl2+)))
7141
7142 (define-public gjs
7143 (package
7144 (name "gjs")
7145 (version "1.58.3")
7146 (source (origin
7147 (method url-fetch)
7148 (uri (string-append "mirror://gnome/sources/" name "/"
7149 (version-major+minor version) "/"
7150 name "-" version ".tar.xz"))
7151 (sha256
7152 (base32
7153 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
7154 (build-system gnu-build-system)
7155 (arguments
7156 '(#:phases
7157 (modify-phases %standard-phases
7158 (add-before
7159 'check 'pre-check
7160 (lambda _
7161 ;; The test suite requires a running X server.
7162 (system "Xvfb :1 &")
7163 (setenv "DISPLAY" ":1")
7164
7165 ;; For the missing /etc/machine-id.
7166 (setenv "DBUS_FATAL_WARNINGS" "0")
7167
7168 ;; Our mozjs-38 package does not compile the required Intl API
7169 ;; support for these failing tests.
7170 (substitute* "installed-tests/js/testLocale.js"
7171 ((".*toBeDefined.*") "")
7172 ((".*expect\\(datestr\\).*") ""))
7173 (substitute* "installed-tests/scripts/testCommandLine.sh"
7174 (("Valentín") "")
7175 (("☭") ""))
7176 #t)))))
7177 (native-inputs
7178 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
7179 ("pkg-config" ,pkg-config)
7180 ("xmllint" ,libxml2)
7181 ;; For testing
7182 ("dbus-launch" ,dbus)
7183 ("dconf" ,dconf) ; required to properly store settings
7184 ("uuidgen" ,util-linux)
7185 ("xvfb" ,xorg-server-for-tests)))
7186 (propagated-inputs
7187 ;; These are all in the Requires.private field of gjs-1.0.pc.
7188 `(("cairo" ,cairo)
7189 ("gobject-introspection" ,gobject-introspection)
7190 ("mozjs" ,mozjs-60)))
7191 (inputs
7192 `(("gtk+" ,gtk+)
7193 ("readline" ,readline)))
7194 (synopsis "Javascript bindings for GNOME")
7195 (home-page "https://live.gnome.org/Gjs")
7196 (description
7197 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7198 javascript engine and the GObject introspection framework.")
7199 (license license:gpl2+)))
7200
7201 (define-public gedit
7202 (package
7203 (name "gedit")
7204 (version "3.34.1")
7205 (source (origin
7206 (method url-fetch)
7207 (uri (string-append "mirror://gnome/sources/" name "/"
7208 (version-major+minor version) "/"
7209 name "-" version ".tar.xz"))
7210 (sha256
7211 (base32
7212 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7213 (build-system meson-build-system)
7214 (arguments
7215 `(#:glib-or-gtk? #t
7216 #:configure-flags
7217 ;; Otherwise, the RUNPATH will lack the final path component.
7218 (list (string-append "-Dc_link_args=-Wl,-rpath="
7219 (assoc-ref %outputs "out") "/lib/gedit"))
7220
7221 ;; XXX: Generated .h files are sometimes used before being built.
7222 #:parallel-build? #f
7223
7224 #:phases
7225 (modify-phases %standard-phases
7226 (add-after 'unpack 'skip-gtk-update-icon-cache
7227 ;; Don't create 'icon-theme.cache'.
7228 (lambda _
7229 (substitute* "build-aux/meson/post_install.py"
7230 (("gtk-update-icon-cache") (which "true")))
7231 #t))
7232 (add-after 'unpack 'patch-libgd-fetch
7233 (lambda* (#:key inputs #:allow-other-keys)
7234 (let ((libgd (assoc-ref inputs "libgd")))
7235 ;; Calling git is unnecessary because libgd is fetched as a
7236 ;; native input to this package.
7237 (substitute* "meson.build"
7238 ((".*git.*") ""))
7239 (copy-recursively libgd "subprojects/libgd")
7240 #t)))
7241 (add-after 'install 'wrap-gedit
7242 (lambda* (#:key inputs outputs #:allow-other-keys)
7243 (let ((out (assoc-ref outputs "out"))
7244 (gtksourceview (assoc-ref inputs "gtksourceview"))
7245 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7246 (python-path (getenv "PYTHONPATH")))
7247 (wrap-program (string-append out "/bin/gedit")
7248 ;; For plugins.
7249 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7250 `("PYTHONPATH" ":" prefix (,python-path))
7251 ;; For language-specs.
7252 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7253 "/share")))))
7254 #t)))))
7255 (propagated-inputs
7256 `(("dconf" ,dconf)))
7257 (native-inputs
7258 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7259 ("intltool" ,intltool)
7260 ("itstool" ,itstool)
7261 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7262 ("gobject-introspection" ,gobject-introspection)
7263 ("libgd"
7264 ,(origin
7265 (method git-fetch)
7266 (uri (git-reference
7267 (url "https://gitlab.gnome.org/GNOME/libgd")
7268 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7269 (file-name (git-file-name "libgd" version))
7270 (sha256
7271 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7272 ("pkg-config" ,pkg-config)))
7273 (inputs
7274 `(("glib" ,glib)
7275 ("gspell" ,gspell)
7276 ("gtk+" ,gtk+)
7277 ("gtksourceview" ,gtksourceview)
7278 ("libpeas" ,libpeas)
7279 ("libxml2" ,libxml2)
7280 ("iso-codes" ,iso-codes)
7281 ("python-pygobject" ,python-pygobject)
7282 ("python" ,python)
7283 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7284 ("libx11" ,libx11)
7285 ("vala" ,vala)
7286 ("adwaita-icon-theme" ,adwaita-icon-theme)
7287 ("libsoup" ,libsoup)
7288 ("gnome-desktop" ,gnome-desktop)))
7289 (home-page "https://wiki.gnome.org/Apps/Gedit")
7290 (synopsis "GNOME text editor")
7291 (description "While aiming at simplicity and ease of use, gedit is a
7292 powerful general purpose text editor.")
7293 (license license:gpl2+)))
7294
7295 (define-public zenity
7296 (package
7297 (name "zenity")
7298 (version "3.32.0")
7299 (source (origin
7300 (method url-fetch)
7301 (uri (string-append "mirror://gnome/sources/zenity/"
7302 (version-major+minor version) "/"
7303 "zenity-" version ".tar.xz"))
7304 (sha256
7305 (base32
7306 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7307 (build-system gnu-build-system)
7308 (native-inputs
7309 `(("gettext" ,gettext-minimal)
7310 ("itstool" ,itstool)
7311 ("pkg-config" ,pkg-config)))
7312 (inputs
7313 `(("libnotify" ,libnotify)
7314 ("webkitgtk" ,webkitgtk)))
7315 (synopsis "Display graphical dialog boxes from shell scripts")
7316 (home-page "https://www.gnome.org")
7317 (description
7318 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7319 to display dialog boxes from the commandline and shell scripts.")
7320 (license license:lgpl2.0+)))
7321
7322 (define-public mutter
7323 (package
7324 (name "mutter")
7325 (version "3.34.2")
7326 (source (origin
7327 (method url-fetch)
7328 (uri (string-append "mirror://gnome/sources/" name "/"
7329 (version-major+minor version) "/"
7330 name "-" version ".tar.xz"))
7331 (sha256
7332 (base32
7333 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
7334 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7335 ;; versions of cogl and clutter. As a result, many of the inputs,
7336 ;; propagated-inputs, and configure flags used in cogl and clutter are
7337 ;; needed here as well.
7338 (build-system meson-build-system)
7339 (arguments
7340 '(;; XXX: All mutter tests fail with the following error:
7341 ;; Settings schema 'org.gnome.mutter' is not installed
7342 #:tests? #f
7343 #:glib-or-gtk? #t
7344 #:configure-flags
7345 ;; TODO: Enable profiler when Sysprof is packaged.
7346 (list "-Dprofiler=false"
7347 ;; Otherwise, the RUNPATH will lack the final path component.
7348 (string-append "-Dc_link_args=-Wl,-rpath="
7349 (assoc-ref %outputs "out") "/lib:"
7350 (assoc-ref %outputs "out") "/lib/mutter-5")
7351
7352 ;; The following flags are needed for the bundled clutter
7353 (string-append "-Dxwayland_path="
7354 (assoc-ref %build-inputs "xorg-server-xwayland")
7355 "/bin/Xwayland")
7356
7357 ;; the remaining flags are needed for the bundled cogl
7358 (string-append "-Dopengl_libname="
7359 (assoc-ref %build-inputs "mesa")
7360 "/lib/libGL.so"))
7361 #:phases (modify-phases %standard-phases
7362 (add-after 'unpack 'fix-build-with-mesa-20
7363 (lambda _
7364 ;; Mimic upstream commit a444a4c5f58ea516ad for
7365 ;; compatibility with Mesa 20. Remove for 3.36.
7366 (substitute* '("src/backends/meta-egl-ext.h"
7367 "src/backends/meta-egl.c"
7368 "src/backends/meta-egl.h")
7369 (("#include <EGL/eglext\\.h>" all)
7370 (string-append all "\n#include <EGL/eglmesaext.h>")))
7371 (substitute* "cogl/cogl/meson.build"
7372 (("#include <EGL/eglext\\.h>" all)
7373 (string-append all "\\n#include <EGL/eglmesaext.h>")))
7374 #t)))))
7375 (native-inputs
7376 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7377 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7378 ("gobject-introspection" ,gobject-introspection)
7379 ("intltool" ,intltool)
7380 ("pkg-config" ,pkg-config)
7381 ("xorg-server" ,xorg-server-for-tests)
7382 ;; For git build
7383 ("autoconf" ,autoconf)
7384 ("automake" ,automake)
7385 ("libtool" ,libtool)))
7386 (propagated-inputs
7387 `(;; libmutter.pc refers to these:
7388 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7389 ("gtk+" ,gtk+)
7390 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7391 ("atk" ,atk)
7392 ("cairo" ,cairo)
7393 ("gdk-pixbuf" ,gdk-pixbuf)
7394 ("glib" ,glib)
7395 ("json-glib" ,json-glib)
7396 ("libinput" ,libinput)
7397 ("libx11" ,libx11)
7398 ("libxcomposite" ,libxcomposite)
7399 ("libxdamage" ,libxdamage)
7400 ("libxext" ,libxext)
7401 ("libxfixes" ,libxfixes)
7402 ("libxkbcommon" ,libxkbcommon)
7403 ("libxrandr" ,libxrandr)
7404 ("mesa" ,mesa)
7405 ("pango" ,pango)
7406 ("udev" ,eudev)
7407 ("xinput" ,xinput)))
7408 (inputs
7409 `(("elogind" ,elogind)
7410 ("gnome-desktop" ,gnome-desktop)
7411 ("gnome-settings-daemon" ,gnome-settings-daemon)
7412 ("libcanberra-gtk" ,libcanberra)
7413 ("libgudev" ,libgudev)
7414 ("libice" ,libice)
7415 ("libsm" ,libsm)
7416 ("libwacom" ,libwacom)
7417 ("libxkbfile" ,libxkbfile)
7418 ("libxrandr" ,libxrandr)
7419 ("libxtst" ,libxtst)
7420 ("pipewire" ,pipewire)
7421 ("startup-notification" ,startup-notification)
7422 ("upower-glib" ,upower)
7423 ("xkeyboard-config" ,xkeyboard-config)
7424 ("xorg-server-xwayland" ,xorg-server-xwayland)
7425 ("zenity" ,zenity)))
7426 (synopsis "Window and compositing manager")
7427 (home-page "https://www.gnome.org")
7428 (description
7429 "Mutter is a window and compositing manager that displays and manages your
7430 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7431 Clutter toolkit with solid window-management logic inherited from the Metacity
7432 window manager.")
7433 (license license:gpl2+)))
7434
7435 (define-public gnome-online-accounts
7436 (package
7437 (name "gnome-online-accounts")
7438 (version "3.36.0")
7439 (source (origin
7440 (method url-fetch)
7441 (uri (string-append "mirror://gnome/sources/" name "/"
7442 (version-major+minor version) "/"
7443 name "-" version ".tar.xz"))
7444 (sha256
7445 (base32
7446 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7447 (outputs '("out" "lib"))
7448 (build-system glib-or-gtk-build-system)
7449 (arguments
7450 `(#:configure-flags
7451 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7452 #:phases
7453 (modify-phases %standard-phases
7454 (add-before 'configure 'patch-libgoa-output
7455 (lambda* (#:key outputs #:allow-other-keys)
7456 (let ((lib (assoc-ref outputs "lib")))
7457 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7458 (("@prefix@") lib)
7459 (("@exec_prefix@") lib)
7460 (("@libdir@") (string-append lib "/lib"))
7461 (("@includedir@") (string-append lib "/include"))
7462 (("@datadir@") (string-append lib "/share")))
7463 ;; Make sure gobject-introspection knows about the output
7464 ;; too (see <https://bugs.gnu.org/36535>).
7465 (setenv "outputs" "out lib")
7466 #t))))))
7467 (native-inputs
7468 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7469 ("gobject-introspection" ,gobject-introspection)
7470 ("intltool" ,intltool)
7471 ("pkg-config" ,pkg-config)
7472 ("vala" ,vala)
7473 ("xsltproc" ,libxslt)))
7474 (propagated-inputs
7475 `(("glib" ,glib) ; required by goa-1.0.pc
7476 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7477 (inputs
7478 `(("docbook-xsl" ,docbook-xsl)
7479 ("json-glib" ,json-glib)
7480 ("libsecret" ,libsecret)
7481 ("rest" ,rest)
7482 ("webkitgtk" ,webkitgtk)))
7483 (synopsis "Single sign-on framework for GNOME")
7484 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7485 (description
7486 "GNOME Online Accounts provides interfaces so that applications and
7487 libraries in GNOME can access the user's online accounts. It has providers for
7488 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7489 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7490 (license license:lgpl2.0+)))
7491
7492 (define-public evolution-data-server
7493 (package
7494 (name "evolution-data-server")
7495 (version "3.34.2")
7496 (source (origin
7497 (method url-fetch)
7498 (uri (string-append "mirror://gnome/sources/" name "/"
7499 (version-major+minor version) "/"
7500 name "-" version ".tar.xz"))
7501 (patches (search-patches "evolution-data-server-locales.patch"
7502 "evolution-data-server-libical-compat.patch"
7503 "evolution-data-server-CVE-2020-14928.patch"
7504 "evolution-data-server-CVE-2020-16117.patch"))
7505 (sha256
7506 (base32
7507 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7508 (build-system cmake-build-system)
7509 (arguments
7510 '(#:configure-flags
7511 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7512 (runpaths (map (lambda (s)
7513 (string-append lib "/evolution-data-server/" s))
7514 '("addressbook-backends" "calendar-backends"
7515 "camel-providers" "credential-modules"
7516 "registry-modules"))))
7517 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7518 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7519 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7520 "-DENABLE_VALA_BINDINGS=ON"
7521 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7522 (string-append lib "/evolution-data-server;")
7523 (string-join runpaths ";"))
7524 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7525 #:phases
7526 (modify-phases %standard-phases
7527 (add-after 'unpack 'disable-failing-tests
7528 (lambda _
7529 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7530 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7531 (delete-file-recursively "tests/book-migration")
7532 (substitute* "tests/CMakeLists.txt"
7533 (("add_subdirectory\\(book-migration\\)") ""))
7534 #t))
7535 (add-after 'unpack 'patch-paths
7536 (lambda _
7537 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7538 "tests/libedata-book/data-test-utils.c"
7539 "tests/libedata-book/test-book-cache-utils.c"
7540 "tests/libedata-cal/test-cal-cache-utils.c")
7541 (("/bin/rm") (which "rm")))
7542 #t))
7543 (add-before 'configure 'dont-override-rpath
7544 (lambda _
7545 (substitute* "CMakeLists.txt"
7546 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7547 ;; Remove it so the configure flag is respected.
7548 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7549 #t)))))
7550 (native-inputs
7551 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7552 ("gobject-introspection" ,gobject-introspection)
7553 ("gperf" ,gperf)
7554 ("intltool" ,intltool)
7555 ("pkg-config" ,pkg-config)
7556 ("vala" ,vala)
7557 ("python" ,python-wrapper)))
7558 (propagated-inputs
7559 ;; These are all in the Requires field of .pc files.
7560 `(("gtk+" ,gtk+)
7561 ("libical" ,libical)
7562 ("libsecret" ,libsecret)
7563 ("libsoup" ,libsoup)
7564 ("nss" ,nss)
7565 ("sqlite" ,sqlite)))
7566 (inputs
7567 `(("bdb" ,bdb)
7568 ("gcr" ,gcr)
7569 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7570 ("json-glib" ,json-glib)
7571 ("libcanberra" ,libcanberra)
7572 ("libgweather" ,libgweather)
7573 ("mit-krb5" ,mit-krb5)
7574 ("openldap" ,openldap)
7575 ("webkitgtk" ,webkitgtk)))
7576 (synopsis "Store address books and calendars")
7577 (home-page "https://wiki.gnome.org/Apps/Evolution")
7578 (description
7579 "This package provides a unified backend for programs that work with
7580 contacts, tasks, and calendar information. It was originally developed for
7581 Evolution (hence the name), but is now used by other packages as well.")
7582 (license license:lgpl2.0)))
7583
7584 (define-public caribou
7585 (package
7586 (name "caribou")
7587 (version "0.4.21")
7588 (source (origin
7589 (method url-fetch)
7590 (uri (string-append "mirror://gnome/sources/" name "/"
7591 (version-major+minor version) "/"
7592 name "-" version ".tar.xz"))
7593 (sha256
7594 (base32
7595 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7596 (build-system glib-or-gtk-build-system)
7597 (arguments
7598 '(#:phases
7599 (modify-phases %standard-phases
7600 (add-before
7601 'build 'pre-build
7602 (lambda* (#:key outputs #:allow-other-keys)
7603 (let ((out (assoc-ref outputs "out")))
7604 ;; Use absolute shared library path in Caribou-1.0.typelib.
7605 (substitute* "libcaribou/Makefile"
7606 (("--shared-library=libcaribou.so")
7607 (string-append "--shared-library="
7608 out "/lib/libcaribou.so")))
7609 #t)))
7610 (add-after 'install 'wrap-programs
7611 (lambda* (#:key outputs #:allow-other-keys)
7612 (let* ((out (assoc-ref outputs "out"))
7613 (python-path (getenv "PYTHONPATH"))
7614 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7615 (for-each
7616 (lambda (prog)
7617 (wrap-program prog
7618 `("PYTHONPATH" ":" prefix (,python-path))
7619 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7620 (list (string-append out "/bin/caribou-preferences")
7621 (string-append out "/libexec/antler-keyboard"))))
7622 #t)))))
7623 (native-inputs
7624 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7625 ("gobject-introspection" ,gobject-introspection)
7626 ("intltool" ,intltool)
7627 ("pkg-config" ,pkg-config)
7628 ("python" ,python)
7629 ("vala" ,vala)
7630 ("xsltproc" ,libxslt)))
7631 (propagated-inputs
7632 ;; caribou-1.0.pc refers to all these.
7633 `(("libgee" ,libgee)
7634 ("libxklavier" ,libxklavier)
7635 ("libxtst" ,libxtst)
7636 ("gtk+" ,gtk+)))
7637 (inputs
7638 `(("clutter" ,clutter)
7639 ("dconf" ,dconf)
7640 ("gtk+-2" ,gtk+-2)
7641 ("python-pygobject" ,python-pygobject)))
7642 (synopsis "Text entry and UI navigation application")
7643 (home-page "https://wiki.gnome.org/Projects/Caribou")
7644 (description
7645 "Caribou is an input assistive technology intended for switch and pointer
7646 users.")
7647 (license license:lgpl2.1)))
7648
7649 (define-public network-manager
7650 (package
7651 (name "network-manager")
7652 (version "1.24.0")
7653 (source (origin
7654 (method url-fetch)
7655 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7656 (version-major+minor version) "/"
7657 "NetworkManager-" version ".tar.xz"))
7658 (patches (search-patches "network-manager-plugin-path.patch"))
7659 (sha256
7660 (base32
7661 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7662 (modules '((guix build utils)))
7663 (snippet
7664 '(begin
7665 (substitute* "src/devices/wwan/nm-modem-manager.c"
7666 (("systemd") "elogind"))
7667 #t))))
7668 (build-system meson-build-system)
7669 (outputs '("out"
7670 "doc")) ; 8 MiB of gtk-doc HTML
7671 (arguments
7672 `(#:configure-flags
7673 (let ((out (assoc-ref %outputs "out"))
7674 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7675 "/sbin/dhclient")))
7676 (list
7677 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7678 ;; component.
7679 (string-append "-Dc_link_args=-Wl,-rpath="
7680 out "/lib:"
7681 out "/lib/NetworkManager/" ,version)
7682 "-Dsystemd_journal=false"
7683 "-Dsession_tracking=elogind"
7684 "-Dsuspend_resume=elogind"
7685 "-Dsystemdsystemunitdir=no"
7686 "-Dsession_tracking_consolekit=false"
7687 "-Ddhcpcd=no"
7688 "-Ddhcpcanon=no"
7689 "-Dcrypto=gnutls"
7690 "-Diwd=true"
7691 "-Dlibaudit=yes"
7692 "-Dqt=false"
7693 "-Ddocs=true"
7694 "--sysconfdir=/etc"
7695 "--localstatedir=/var"
7696 (string-append "-Dudev_dir="
7697 out "/lib/udev")
7698 (string-append "-Ddbus_conf_dir="
7699 out "/etc/dbus-1/system.d")
7700
7701 (string-append "-Ddhclient=" dhclient)))
7702 #:phases
7703 (modify-phases %standard-phases
7704 (add-before 'configure 'pre-configure
7705 (lambda _
7706 ;; These tests try to test aspects of network-manager's
7707 ;; functionality within restricted containers, but they don't
7708 ;; cope with being already in the Guix build jail as that jail
7709 ;; lacks some features that they would like to proxy over (like
7710 ;; a /sys mount).
7711 (substitute* "src/platform/tests/meson.build"
7712 ((".*test-address-linux.*") "")
7713 ((".*test-cleanup-linux.*") "")
7714 ((".*test-link-linux.*") "")
7715 ((".*test-route-linux.*") ""))
7716 (substitute* "src/devices/tests/meson.build"
7717 ((".*test-acd.*") "")
7718 ((".*test-lldp.*") ""))
7719 #t))
7720 (add-after 'unpack 'patch-docbook-xml
7721 (lambda* (#:key inputs #:allow-other-keys)
7722 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7723 "/xml/dtd/docbook")))
7724 (substitute* (find-files "." ".*\\.(xsl|xml)")
7725 (("http://.*/docbookx\\.dtd")
7726 (string-append xmldoc "/docbookx.dtd")))
7727 #t)))
7728 (add-before 'check 'pre-check
7729 (lambda _
7730 ;; For the missing /etc/machine-id.
7731 (setenv "DBUS_FATAL_WARNINGS" "0")
7732 #t))
7733 (add-before 'install 'no-polkit-magic
7734 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7735 (lambda _
7736 (setenv "PKEXEC_UID" "something")
7737 #t))
7738 (add-after 'install 'move-doc
7739 (lambda* (#:key outputs #:allow-other-keys)
7740 (let ((out (assoc-ref outputs "out"))
7741 (doc (assoc-ref outputs "doc")))
7742 (mkdir-p (string-append doc "/share"))
7743 (for-each (lambda (directory)
7744 (copy-recursively (string-append out directory)
7745 (string-append doc directory))
7746 (delete-file-recursively
7747 (string-append out directory)))
7748 '("/share/doc" "/share/gtk-doc"))
7749 #t))))))
7750 (propagated-inputs
7751 `(("glib" ,glib)))
7752 (native-inputs
7753 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7754 ("gtk-doc" ,gtk-doc)
7755 ("gobject-introspection" ,gobject-introspection)
7756 ("docbook-xml" ,docbook-xml)
7757 ("docbook-xsl" ,docbook-xsl)
7758 ("intltool" ,intltool)
7759 ("libxslt" ,libxslt)
7760 ("libxml2" ,libxml2)
7761 ("pkg-config" ,pkg-config)
7762 ("vala" ,vala)
7763 ;; For testing.
7764 ("python" ,python-wrapper)
7765 ("python-dbus" ,python-dbus)
7766 ("python-pygobject" ,python-pygobject)))
7767 (inputs
7768 `(("curl" ,curl)
7769 ("cyrus-sasl" ,cyrus-sasl)
7770 ("dbus-glib" ,dbus-glib)
7771 ("dnsmasq" ,dnsmasq)
7772 ("eudev" ,eudev)
7773 ("gnutls" ,gnutls)
7774 ("iptables" ,iptables)
7775 ("isc-dhcp" ,isc-dhcp)
7776 ("iwd" ,iwd) ; wpa_supplicant alternative
7777 ("jansson" ,jansson)
7778 ("libaudit" ,audit)
7779 ("libgcrypt" ,libgcrypt)
7780 ("libgudev" ,libgudev)
7781 ("libndp" ,libndp)
7782 ("libnl" ,libnl)
7783 ("libsoup" ,libsoup)
7784 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7785 ("modem-manager" ,modem-manager)
7786 ("newt" ,newt) ;for the 'nmtui' console interface
7787 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7788 ("polkit" ,polkit)
7789 ("ppp" ,ppp)
7790 ("readline" ,readline)
7791 ("util-linux" ,util-linux)
7792 ("elogind" ,elogind)))
7793 (synopsis "Network connection manager")
7794 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7795 (description
7796 "NetworkManager is a system network service that manages your network
7797 devices and connections, attempting to keep active network connectivity when
7798 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7799 devices, and provides VPN integration with a variety of different VPN
7800 services.")
7801 ;; “This NetworkManager project consists of the daemon, client tools, and
7802 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7803 ;; GPL-2.0+.”
7804 (license (list license:gpl2+
7805 license:lgpl2.1+))
7806 (properties '((upstream-name . "NetworkManager")))))
7807
7808 (define-public network-manager-openvpn
7809 (package
7810 (name "network-manager-openvpn")
7811 (version "1.8.12")
7812 (source (origin
7813 (method url-fetch)
7814 (uri (string-append
7815 "mirror://gnome/sources/NetworkManager-openvpn/"
7816 (version-major+minor version)
7817 "/NetworkManager-openvpn-" version ".tar.xz"))
7818 (sha256
7819 (base32
7820 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7821 (build-system gnu-build-system)
7822 (arguments
7823 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7824 #:phases
7825 (modify-phases %standard-phases
7826 (add-after 'configure 'patch-path
7827 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7828 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7829 "/sbin/openvpn"))
7830 (modprobe (string-append (assoc-ref inputs "kmod")
7831 "/bin/modprobe"))
7832 (pretty-ovpn (string-append "\"" ovpn "\"")))
7833 (for-each
7834 (lambda (file)
7835 (substitute* file
7836 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7837 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7838 (("\"/sbin/openvpn\"") pretty-ovpn)
7839 (("/sbin/modprobe") modprobe)))
7840 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7841 #t)))))
7842 (native-inputs
7843 `(("pkg-config" ,pkg-config)
7844 ("intltool" ,intltool)))
7845 (inputs
7846 `(("gtk+" ,gtk+)
7847 ("kmod" ,kmod)
7848 ("openvpn" ,openvpn)
7849 ("network-manager" ,network-manager)
7850 ("libnma" ,libnma)
7851 ("libsecret" ,libsecret)))
7852 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7853 (synopsis "OpenVPN plug-in for NetworkManager")
7854 (description
7855 "This extension of NetworkManager allows it to take care of connections
7856 to virtual private networks (VPNs) via OpenVPN.")
7857 (license license:gpl2+)
7858 (properties `((upstream-name . "NetworkManager-openvpn")))))
7859
7860 (define-public network-manager-vpnc
7861 (package
7862 (name "network-manager-vpnc")
7863 (version "1.2.6")
7864 (source (origin
7865 (method url-fetch)
7866 (uri (string-append
7867 "mirror://gnome/sources/NetworkManager-vpnc/"
7868 (version-major+minor version)
7869 "/NetworkManager-vpnc-" version ".tar.xz"))
7870 (sha256
7871 (base32
7872 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7873 (build-system gnu-build-system)
7874 (arguments
7875 `(#:configure-flags '("--enable-absolute-paths"
7876 "--localstatedir=/var"
7877 ;; libnm-glib has been removed from network-manager
7878 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7879 "--with-libnm-glib=no")
7880 #:phases
7881 (modify-phases %standard-phases
7882 (add-after 'configure 'patch-path
7883 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7884 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7885 "/sbin/vpnc"))
7886 (modprobe (string-append (assoc-ref inputs "kmod")
7887 "/bin/modprobe"))
7888 (pretty-ovpn (string-append "\"" vpnc "\"")))
7889 (substitute* "src/nm-vpnc-service.c"
7890 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7891 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7892 (("\"/sbin/vpnc\"") pretty-ovpn)
7893 (("/sbin/modprobe") modprobe)))
7894 #t)))))
7895 (native-inputs
7896 `(("pkg-config" ,pkg-config)
7897 ("intltool" ,intltool)))
7898 (inputs
7899 `(("gtk+" ,gtk+)
7900 ("kmod" ,kmod)
7901 ("vpnc" ,vpnc)
7902 ("network-manager" ,network-manager)
7903 ("libnma" ,libnma)
7904 ("libsecret" ,libsecret)))
7905 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7906 (synopsis "VPNC plug-in for NetworkManager")
7907 (description
7908 "Support for configuring virtual private networks based on VPNC.
7909 Compatible with Cisco VPN concentrators configured to use IPsec.")
7910 (license license:gpl2+)
7911 (properties `((upstream-name . "NetworkManager-vpnc")))))
7912
7913 (define-public network-manager-openconnect
7914 (package
7915 (name "network-manager-openconnect")
7916 (version "1.2.6")
7917 (source (origin
7918 (method url-fetch)
7919 (uri (string-append
7920 "mirror://gnome/sources/NetworkManager-openconnect/"
7921 (version-major+minor version)
7922 "/NetworkManager-openconnect-" version ".tar.xz"))
7923 (sha256
7924 (base32
7925 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7926 (build-system gnu-build-system)
7927 (arguments
7928 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7929 #:phases
7930 (modify-phases %standard-phases
7931 (add-after 'configure 'patch-path
7932 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7933 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7934 "/sbin/openconnect"))
7935 (modprobe (string-append (assoc-ref inputs "kmod")
7936 "/bin/modprobe"))
7937 (pretty-ovpn (string-append "\"" openconnect "\"")))
7938 (substitute* "src/nm-openconnect-service.c"
7939 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7940 (("/sbin/modprobe") modprobe)))
7941 #t)))))
7942 (native-inputs
7943 `(("intltool" ,intltool)
7944 ("libnma" ,libnma)
7945 ("pkg-config" ,pkg-config)))
7946 (inputs
7947 `(("gcr" ,gcr)
7948 ("gtk+" ,gtk+)
7949 ("kmod" ,kmod)
7950 ("libsecret" ,libsecret)
7951 ("libxml2" ,libxml2)
7952 ("lz4" ,lz4)
7953 ("network-manager" ,network-manager)
7954 ("openconnect" ,openconnect)))
7955 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7956 (synopsis "OpenConnect plug-in for NetworkManager")
7957 (description
7958 "This extension of NetworkManager allows it to take care of connections
7959 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7960 Cisco's AnyConnect SSL VPN.")
7961 (license license:gpl2+)
7962 (properties `((upstream-name . "NetworkManager-openconnect")
7963
7964 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7965 ;; file refers to account "nm-openconnect". Specify it here
7966 ;; so that 'network-manager-service-type' creates it.
7967 (user-accounts . ("nm-openconnect"))))))
7968
7969 (define-public mobile-broadband-provider-info
7970 (package
7971 (name "mobile-broadband-provider-info")
7972 (version "20190116")
7973 (source (origin
7974 (method url-fetch)
7975 (uri (string-append
7976 "mirror://gnome/sources/"
7977 "mobile-broadband-provider-info/" version "/"
7978 "mobile-broadband-provider-info-" version ".tar.xz"))
7979 (sha256
7980 (base32
7981 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7982 (build-system gnu-build-system)
7983 (arguments
7984 `(#:tests? #f)) ; no tests
7985 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7986 (synopsis "Database of broadband connection configuration")
7987 (description "Database of broadband connection configuration.")
7988 (license license:public-domain)))
7989
7990 (define-public network-manager-applet
7991 (package
7992 (name "network-manager-applet")
7993 (version "1.20.0")
7994 (source (origin
7995 (method url-fetch)
7996 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7997 (version-major+minor version) "/"
7998 "network-manager-applet-" version ".tar.xz"))
7999 (sha256
8000 (base32
8001 "0lsjkbv66hn7acl2pg9h6hz4b700zzv4cjwrwjvy7043blw0bcla"))))
8002 (build-system meson-build-system)
8003 (arguments
8004 '(#:glib-or-gtk? #t
8005 #:configure-flags
8006 '("-Dappindicator=yes")))
8007 (native-inputs
8008 `(("intltool" ,intltool)
8009 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
8010 ("gobject-introspection" ,gobject-introspection)
8011 ("gtk-doc" ,gtk-doc)
8012 ("pkg-config" ,pkg-config)))
8013 (propagated-inputs
8014 ;; libnm-gtk.pc refers to all these.
8015 `(("dbus-glib" ,dbus-glib)
8016 ("gtk+" ,gtk+)
8017 ("network-manager" ,network-manager)
8018 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8019 ("libnma" ,libnma)))
8020 (inputs
8021 `(("gcr" ,gcr)
8022 ("libappindicator" ,libappindicator)
8023 ("libgudev" ,libgudev)
8024 ("libnotify" ,libnotify)
8025 ("libsecret" ,libsecret)
8026 ("libselinux" ,libselinux)
8027 ("jansson" ,jansson) ; for team support
8028 ("modem-manager" ,modem-manager)))
8029 (synopsis "Applet for managing network connections")
8030 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8031 (description
8032 "This package contains a systray applet for NetworkManager. It displays
8033 the available networks and allows users to easily switch between them.")
8034 (license license:gpl2+)))
8035
8036 (define-public libxml++
8037 (package
8038 (name "libxml++")
8039 (version "3.0.1")
8040 (source (origin
8041 (method url-fetch)
8042 (uri (string-append "mirror://gnome/sources/" name "/"
8043 (version-major+minor version) "/"
8044 name "-" version ".tar.xz"))
8045 (sha256
8046 (base32
8047 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
8048 (build-system gnu-build-system)
8049 ;; libxml++-3.0.pc refers to all these.
8050 (propagated-inputs
8051 `(("libxml2" ,libxml2)
8052 ("glibmm" ,glibmm)))
8053 (native-inputs
8054 `(("perl" ,perl)
8055 ("pkg-config" ,pkg-config)))
8056 (home-page "http://libxmlplusplus.sourceforge.net/")
8057 (synopsis "C++ wrapper for XML parser library libxml2")
8058 (description
8059 "This package provides a C++ wrapper for the XML parser library
8060 libxml2.")
8061 (license license:lgpl2.1+)))
8062
8063 (define-public libxml++-2
8064 (package
8065 (inherit libxml++)
8066 (name "libxml++")
8067 (version "2.40.1")
8068 (source (origin
8069 (method url-fetch)
8070 (uri (string-append "mirror://gnome/sources/" name "/"
8071 (version-major+minor version) "/"
8072 name "-" version ".tar.xz"))
8073 (sha256
8074 (base32
8075 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
8076
8077 (define-public gdm
8078 (package
8079 (name "gdm")
8080 (version "3.34.1")
8081 (source (origin
8082 (method url-fetch)
8083 (uri (string-append "mirror://gnome/sources/" name "/"
8084 (version-major+minor version) "/"
8085 name "-" version ".tar.xz"))
8086 (sha256
8087 (base32
8088 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
8089 (patches (search-patches "gdm-default-session.patch"))))
8090 (build-system glib-or-gtk-build-system)
8091 (arguments
8092 '(#:configure-flags
8093 `("--without-plymouth"
8094 "--disable-systemd-journal"
8095
8096 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8097 ;; instead of having to replace it (i.e., stopping the mingetty
8098 ;; service for TTY 1 before starting GDM).
8099 "--with-initial-vt=7"
8100
8101 ;; Use '/etc/environment' for locale settings instead of the
8102 ;; systemd-specific '/etc/locale.conf'.
8103 "--with-lang-file=/etc/environment"
8104
8105 ,(string-append "--with-udevdir="
8106 (assoc-ref %outputs "out") "/lib/udev")
8107
8108 "--localstatedir=/var"
8109 ,(string-append "--with-default-path="
8110 (string-join '("/run/setuid-programs"
8111 "/run/current-system/profile/bin"
8112 "/run/current-system/profile/sbin")
8113 ":"))
8114 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8115 ;; XDG_DATA_DIRS so that it finds its schemas.
8116 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
8117 #:phases
8118 (modify-phases %standard-phases
8119 (add-before
8120 'configure 'pre-configure
8121 (lambda* (#:key inputs outputs #:allow-other-keys)
8122 ;; We don't have <systemd/sd-daemon.h>.
8123 (substitute* '("common/gdm-log.c"
8124 "daemon/gdm-server.c"
8125 "daemon/gdm-session-worker.c"
8126 "daemon/gdm-session-worker-job.c")
8127 (("#include <systemd/sd-daemon\\.h>") ""))
8128 ;; Use elogind for sd-login.
8129 (substitute* '("common/gdm-common.c"
8130 "daemon/gdm-local-display-factory.c"
8131 "daemon/gdm-manager.c"
8132 "libgdm/gdm-user-switching.c")
8133 (("#include <systemd/sd-login\\.h>")
8134 "#include <elogind/sd-login.h>"))
8135 ;; Check for elogind.
8136 (substitute* '("configure")
8137 (("libsystemd")
8138 "libelogind"))
8139 ;; Look for system-installed sessions in
8140 ;; /run/current-system/profile/share.
8141 (substitute* '("libgdm/gdm-sessions.c"
8142 "daemon/gdm-session.c"
8143 "daemon/gdm-display.c"
8144 "daemon/gdm-launch-environment.c")
8145 (("DATADIR \"/x")
8146 "\"/run/current-system/profile/share/x")
8147 (("DATADIR \"/wayland")
8148 "\"/run/current-system/profile/share/wayland")
8149 (("DATADIR \"/gnome")
8150 "\"/run/current-system/profile/share/gnome"))
8151 (let ((propagate '("GDM_CUSTOM_CONF"
8152 "GDM_DBUS_DAEMON"
8153 "GDM_X_SERVER"
8154 "GDM_X_SESSION"
8155 ;; XXX: Remove this once GNOME Shell is
8156 ;; a dependency of GDM.
8157 "XDG_DATA_DIRS")))
8158 (substitute* "daemon/gdm-session.c"
8159 (("set_up_session_environment \\(self\\);")
8160 (apply string-append
8161 "set_up_session_environment (self);\n"
8162 (map (lambda (name)
8163 (string-append
8164 "gdm_session_set_environment_variable "
8165 "(self, \"" name "\","
8166 "g_getenv (\"" name "\"));\n"))
8167 propagate)))))
8168 ;; Find the configuration file using an environment variable.
8169 (substitute* '("common/gdm-settings.c")
8170 (("GDM_CUSTOM_CONF")
8171 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8172 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8173 " : GDM_CUSTOM_CONF)")))
8174 ;; Use service-supplied path to X.
8175 (substitute* '("daemon/gdm-server.c")
8176 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8177 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8178 (substitute* '("daemon/gdm-wayland-session.c"
8179 "daemon/gdm-x-session.c")
8180 (("\"dbus-daemon\"")
8181 "g_getenv (\"GDM_DBUS_DAEMON\")")
8182 (("X_SERVER")
8183 "g_getenv (\"GDM_X_SERVER\")")
8184 (("GDMCONFDIR \"/Xsession\"")
8185 "g_getenv (\"GDM_X_SESSION\")"))
8186 ;; Use an absolute path for GNOME Session.
8187 (substitute* "daemon/gdm-launch-environment.c"
8188 (("\"gnome-session\"")
8189 (string-append "\"" (assoc-ref inputs "gnome-session")
8190 "/bin/gnome-session\"")))
8191 ;; Do not automatically select the placeholder session.
8192 (substitute* "daemon/gdm-session.c"
8193 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8194 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8195 "(g_strcmp0(search_dirs[i], \""
8196 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
8197 "\") == 0 && "
8198 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8199 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8200 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
8201 #t))
8202 ;; GDM requires that there be at least one desktop entry
8203 ;; file. This phase installs a hidden one that simply
8204 ;; fails. This enables users to use GDM with a
8205 ;; '~/.xsession' script with no other desktop entry files.
8206 ;; See <https://bugs.gnu.org/35068>.
8207 (add-after 'install 'install-placeholder-desktop-entry
8208 (lambda* (#:key inputs outputs #:allow-other-keys)
8209 (let* ((out (assoc-ref outputs "out"))
8210 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8211 (fail (string-append sessions "/fail.desktop")))
8212 (mkdir-p sessions)
8213 (with-output-to-file fail
8214 (lambda ()
8215 (for-each
8216 display
8217 '("[Desktop Entry]\n"
8218 "Encoding=UTF-8\n"
8219 "Type=Application\n"
8220 "Name=Fail\n"
8221 "Comment=This session fails immediately.\n"
8222 "NoDisplay=true\n"
8223 "Exec=false\n"))))
8224 #t)))
8225 ;; GDM needs GNOME Session to run these applications. We link
8226 ;; their autostart files in `share/gdm/greeter/autostart'
8227 ;; because GDM explicitly tells GNOME Session to look there.
8228 ;;
8229 ;; XXX: GNOME Shell should be linked here too, but currently
8230 ;; GNOME Shell depends on GDM.
8231 (add-after 'install 'link-autostart-files
8232 (lambda* (#:key inputs outputs #:allow-other-keys)
8233 (let* ((out (assoc-ref outputs "out"))
8234 (autostart (string-append out "/share/gdm/"
8235 "greeter/autostart"))
8236 (settings (assoc-ref inputs "gnome-settings-daemon")))
8237 (mkdir-p autostart)
8238 (with-directory-excursion autostart
8239 (for-each (lambda (desktop)
8240 (symlink desktop (basename desktop)))
8241 (find-files (string-append settings "/etc/xdg"))))
8242 #t))))))
8243 (native-inputs
8244 `(("dconf" ,dconf)
8245 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8246 ("gobject-introspection" ,gobject-introspection)
8247 ("intltool" ,intltool)
8248 ("itstool" ,itstool)
8249 ("pkg-config" ,pkg-config)
8250 ("xmllint" ,libxml2)))
8251 (inputs
8252 `(("accountsservice" ,accountsservice)
8253 ("check" ,check-0.14) ;for testing
8254 ("elogind" ,elogind)
8255 ("gnome-session" ,gnome-session)
8256 ("gnome-settings-daemon" ,gnome-settings-daemon)
8257 ("gtk+" ,gtk+)
8258 ("iso-codes" ,iso-codes)
8259 ("libcanberra" ,libcanberra)
8260 ("linux-pam" ,linux-pam)))
8261 (synopsis "Display manager for GNOME")
8262 (home-page "https://wiki.gnome.org/Projects/GDM/")
8263 (description
8264 "GNOME Display Manager is a system service that is responsible for
8265 providing graphical log-ins and managing local and remote displays.")
8266 (license license:gpl2+)))
8267
8268 (define-public libgtop
8269 (package
8270 (name "libgtop")
8271 (version "2.40.0")
8272 (source (origin
8273 (method url-fetch)
8274 (uri (string-append "mirror://gnome/sources/libgtop/"
8275 (version-major+minor version) "/"
8276 "libgtop-" version ".tar.xz"))
8277 (sha256
8278 (base32
8279 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8280 (build-system gnu-build-system)
8281 (native-inputs
8282 `(("gobject-introspection" ,gobject-introspection)
8283 ("intltool" ,intltool)
8284 ("perl" ,perl)
8285 ("pkg-config" ,pkg-config)))
8286 (propagated-inputs
8287 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8288 (synopsis "Portable system access library")
8289 (home-page "https://www.gnome.org/")
8290 (description
8291 "LibGTop is a library to get system specific data such as CPU and memory
8292 usage and information about running processes.")
8293 (license license:gpl2+)))
8294
8295 (define-public gnome-bluetooth
8296 (package
8297 (name "gnome-bluetooth")
8298 (version "3.34.2")
8299 (source (origin
8300 (method url-fetch)
8301 (uri (string-append "mirror://gnome/sources/" name "/"
8302 (version-major+minor version) "/"
8303 name "-" version ".tar.xz"))
8304 (sha256
8305 (base32
8306 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8307 (build-system meson-build-system)
8308 (native-inputs
8309 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8310 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8311 ("gobject-introspection" ,gobject-introspection)
8312 ("intltool" ,intltool)
8313 ("pkg-config" ,pkg-config)
8314 ("xmllint" ,libxml2)))
8315 (propagated-inputs
8316 ;; gnome-bluetooth-1.0.pc refers to all these.
8317 `(("glib" ,glib)
8318 ("gtk+" ,gtk+)))
8319 (inputs
8320 `(("eudev" ,eudev)
8321 ("libcanberra" ,libcanberra)
8322 ("libnotify" ,libnotify)))
8323 (synopsis "GNOME Bluetooth subsystem")
8324 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8325 (description
8326 "This package contains tools for managing and manipulating Bluetooth
8327 devices using the GNOME desktop.")
8328 (license license:lgpl2.1+)))
8329
8330 (define-public gnome-control-center
8331 (package
8332 (name "gnome-control-center")
8333 (version "3.34.2")
8334 (source (origin
8335 (method url-fetch)
8336 (uri (string-append "mirror://gnome/sources/" name "/"
8337 (version-major+minor version) "/"
8338 name "-" version ".tar.xz"))
8339 (sha256
8340 (base32
8341 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8342 (build-system meson-build-system)
8343 (arguments
8344 '(#:glib-or-gtk? #t
8345 #:configure-flags
8346 (list "-Dcheese=false"
8347 (string-append "-Dgnome_session_libexecdir="
8348 (assoc-ref %build-inputs "gnome-session")
8349 "/libexec"))
8350 #:phases
8351 (modify-phases %standard-phases
8352 (add-before 'configure 'patch-paths
8353 (lambda* (#:key inputs #:allow-other-keys)
8354 (let ((libc (assoc-ref inputs "libc"))
8355 (tzdata (assoc-ref inputs "tzdata"))
8356 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8357 (nm-applet (assoc-ref inputs "network-manager-applet"))
8358 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8359 (substitute* "panels/datetime/tz.h"
8360 (("/usr/share/zoneinfo/zone.tab")
8361 (string-append tzdata "/share/zoneinfo/zone.tab")))
8362 (substitute* "tests/datetime/test-endianess.c"
8363 (("/usr/share/locale")
8364 (string-append libc "/share/locale")))
8365 (substitute* "panels/region/cc-region-panel.c"
8366 (("\"gkbd-keyboard-display")
8367 (string-append "\"" libgnomekbd
8368 "/bin/gkbd-keyboard-display")))
8369 (substitute* '("panels/network/net-device-wifi.c"
8370 "panels/network/net-device.c"
8371 "panels/network/connection-editor/net-connection-editor.c")
8372 (("\"nm-connection-editor")
8373 (string-append "\"" nm-applet
8374 "/bin/nm-connection-editor")))
8375 (substitute* '("panels/user-accounts/run-passwd.c")
8376 (("/usr/bin/passwd")
8377 "/run/setuid-programs/passwd"))
8378 (substitute* "panels/info/cc-info-overview-panel.c"
8379 (("DATADIR \"/gnome/gnome-version.xml\"")
8380 (string-append "\"" gnome-desktop
8381 "/share/gnome/gnome-version.xml\"")))
8382 #t)))
8383 (add-after 'unpack 'skip-gtk-update-icon-cache
8384 ;; Don't create 'icon-theme.cache'.
8385 (lambda _
8386 (substitute* "build-aux/meson/meson_post_install.py"
8387 (("gtk-update-icon-cache") (which "true")))
8388 #t)))))
8389 (native-inputs
8390 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8391 ("intltool" ,intltool)
8392 ("pkg-config" ,pkg-config)
8393 ("xsltproc" ,libxslt)
8394 ;; For tests
8395 ("hicolor-icon-theme" ,hicolor-icon-theme)
8396 ("python-dbusmock" ,python-dbusmock)
8397 ("xorg-server" ,xorg-server-for-tests)))
8398 (inputs
8399 `(("accountsservice" ,accountsservice)
8400 ("clutter-gtk" ,clutter-gtk)
8401 ("colord-gtk" ,colord-gtk)
8402 ("cups" ,cups)
8403 ("dconf" ,dconf)
8404 ("docbook-xsl" ,docbook-xsl)
8405 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8406 ("gnome-bluetooth" ,gnome-bluetooth)
8407 ("gnome-desktop" ,gnome-desktop)
8408 ("gnome-online-accounts" ,gnome-online-accounts)
8409 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8410 ("gnome-session" ,gnome-session)
8411 ("gnome-settings-daemon" ,gnome-settings-daemon)
8412 ("grilo" ,grilo)
8413 ("gsound" ,gsound)
8414 ("ibus" ,ibus)
8415 ("libcanberra" ,libcanberra)
8416 ("libgnomekbd" ,libgnomekbd)
8417 ("libgudev" ,libgudev)
8418 ("libgtop" ,libgtop)
8419 ("libnma" ,libnma)
8420 ("libpwquality" ,libpwquality)
8421 ("libsecret" ,libsecret)
8422 ("libsoup" ,libsoup)
8423 ("libxml2" ,libxml2)
8424 ("libwacom" ,libwacom)
8425 ("mesa" ,mesa)
8426 ("mit-krb5" ,mit-krb5)
8427 ("modem-manager" ,modem-manager)
8428 ("network-manager-applet" ,network-manager-applet)
8429 ("polkit" ,polkit)
8430 ("pulseaudio" ,pulseaudio)
8431 ("smbclient" ,samba)
8432 ("tzdata" ,tzdata)
8433 ("udisks" ,udisks)
8434 ("upower" ,upower)))
8435 (synopsis "Utilities to configure the GNOME desktop")
8436 (home-page "https://www.gnome.org/")
8437 (description
8438 "This package contains configuration applets for the GNOME desktop,
8439 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8440 properties, sound setup, desktop theme and background, user interface
8441 properties, screen resolution, and other GNOME parameters.")
8442 (license license:gpl2+)))
8443
8444 (define-public gnome-shell
8445 (package
8446 (name "gnome-shell")
8447 (version "3.34.5")
8448 (source (origin
8449 (method url-fetch)
8450 (uri (string-append "mirror://gnome/sources/" name "/"
8451 (version-major+minor version) "/"
8452 name "-" version ".tar.xz"))
8453 (sha256
8454 (base32
8455 "0l3mdn7g2c22mdhrqkxvvc1pk2w0v32f2v4a6n1phvaalwcg75nj"))
8456 (patches (search-patches "gnome-shell-CVE-2020-17489.patch"
8457 "gnome-shell-theme.patch"
8458 "gnome-shell-disable-test.patch"))
8459 (modules '((guix build utils)))
8460 (snippet
8461 #~(begin
8462 ;; Copy images for use on the GDM log-in screen.
8463 (copy-file #$(file-append %artwork-repository
8464 "/slim/0.x/background.png")
8465 "data/theme/guix-background.png")
8466 (copy-file #$(file-append %artwork-repository
8467 "/logo/Guix-horizontal-white.svg")
8468 "data/theme/guix-logo.svg")
8469 #t))))
8470 (build-system meson-build-system)
8471 (arguments
8472 `(#:glib-or-gtk? #t
8473 #:disallowed-references ((,glib "bin")
8474 ,inkscape ,libxslt
8475 ,ruby-sass)
8476 #:configure-flags
8477 (list "-Dsystemd=false"
8478 ;; Otherwise, the RUNPATH will lack the final path component.
8479 (string-append "-Dc_link_args=-Wl,-rpath="
8480 (assoc-ref %outputs "out")
8481 "/lib/gnome-shell"))
8482
8483 #:modules ((guix build meson-build-system)
8484 (guix build utils)
8485 (srfi srfi-1))
8486
8487 #:phases
8488 (modify-phases %standard-phases
8489 (add-after 'unpack 'fix-keysdir
8490 (lambda* (#:key outputs #:allow-other-keys)
8491 (let* ((out (assoc-ref outputs "out"))
8492 (keysdir (string-append
8493 out "/share/gnome-control-center/keybindings")))
8494 (substitute* "meson.build"
8495 (("keysdir =.*")
8496 (string-append "keysdir = '" keysdir "'\n")))
8497 #t)))
8498 (add-before 'configure 'convert-logo-to-png
8499 (lambda* (#:key inputs #:allow-other-keys)
8500 ;; Convert the logo from SVG to PNG.
8501 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8502 "data/theme/guix-logo.svg")))
8503 (add-before 'configure 'record-absolute-file-names
8504 (lambda* (#:key inputs #:allow-other-keys)
8505 (substitute* "js/misc/ibusManager.js"
8506 (("'ibus-daemon'")
8507 (string-append "'" (assoc-ref inputs "ibus")
8508 "/bin/ibus-daemon'")))
8509 (substitute* "js/ui/status/keyboard.js"
8510 (("'gkbd-keyboard-display'")
8511 (string-append "'" (assoc-ref inputs "libgnomekbd")
8512 "/bin/gkbd-keyboard-display'")))
8513 #t))
8514 (add-before 'check 'pre-check
8515 (lambda* (#:key inputs #:allow-other-keys)
8516 ;; Tests require a running X server.
8517 (system "Xvfb :1 &")
8518 (setenv "DISPLAY" ":1")
8519 #t))
8520 (add-after 'install 'wrap-programs
8521 (lambda* (#:key inputs outputs #:allow-other-keys)
8522 (let ((out (assoc-ref outputs "out"))
8523 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8524 (python-path (getenv "PYTHONPATH")))
8525 (wrap-program (string-append out "/bin/gnome-shell")
8526 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8527 ;; FIXME: gnome-shell loads these libraries with unqualified
8528 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8529 ;; alternative might be to patch gnome-shell.
8530 `("LD_LIBRARY_PATH" ":" prefix
8531 ,(map (lambda (pkg)
8532 (string-append (assoc-ref inputs pkg) "/lib"))
8533 '("gdk-pixbuf"
8534 "gnome-bluetooth" "librsvg" "libgweather"))))
8535 (for-each
8536 (lambda (prog)
8537 (wrap-program (string-append out "/bin/" prog)
8538 `("PYTHONPATH" ":" prefix (,python-path))
8539 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8540 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8541 #t)))
8542 (replace 'glib-or-gtk-wrap
8543 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8544 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8545 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8546 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8547 ;; phase. Fix that since we don't need these.
8548 (wrap #:inputs (fold alist-delete inputs
8549 '("inkscape" "intltool" "glib:bin"))
8550 #:outputs outputs)))))))
8551 (native-inputs
8552 `(("asciidoc" ,asciidoc)
8553 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8554 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8555 ("gobject-introspection" ,gobject-introspection)
8556 ("inkscape" ,inkscape)
8557 ("intltool" ,intltool)
8558 ("pkg-config" ,pkg-config)
8559 ("python" ,python)
8560 ("ruby-sass" ,ruby-sass)
8561 ("sassc" ,sassc)
8562 ("xsltproc" ,libxslt)
8563 ;; For tests
8564 ("xorg-server" ,xorg-server-for-tests)))
8565 (inputs
8566 `(("accountsservice" ,accountsservice)
8567 ("caribou" ,caribou)
8568 ("docbook-xsl" ,docbook-xsl)
8569 ("evolution-data-server" ,evolution-data-server)
8570 ("gcr" ,gcr)
8571 ("gdm" ,gdm)
8572 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8573 ("gjs" ,gjs)
8574 ("gnome-autoar" ,gnome-autoar)
8575 ("gnome-bluetooth" ,gnome-bluetooth)
8576 ("gnome-desktop" ,gnome-desktop)
8577 ("gnome-settings-daemon" ,gnome-settings-daemon)
8578 ("gst-plugins-base" ,gst-plugins-base)
8579 ("ibus" ,ibus)
8580 ("libcanberra" ,libcanberra)
8581 ("libcroco" ,libcroco)
8582 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8583 ("libgweather" ,libgweather)
8584 ("libnma" ,libnma)
8585 ("libsoup" ,libsoup)
8586 ("mesa-headers" ,mesa-headers)
8587 ("mutter" ,mutter)
8588 ("network-manager-applet" ,network-manager-applet)
8589 ("polkit" ,polkit)
8590 ("pulseaudio" ,pulseaudio)
8591 ("python-pygobject" ,python-pygobject)
8592 ("startup-notification" ,startup-notification)
8593 ("telepathy-logger" ,telepathy-logger)
8594 ("upower" ,upower)
8595 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8596 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8597 ("librsvg" ,librsvg)
8598 ("geoclue" ,geoclue)))
8599 ;; CVE-2019-3820 was fixed before GNOME 3.34 was released, in upstream
8600 ;; commit f0a7395b3006360905ccdc642982f9fc67378927.
8601 (properties '((lint-hidden-cve . ("CVE-2019-3820"))))
8602 (synopsis "Desktop shell for GNOME")
8603 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8604 (description
8605 "GNOME Shell provides core user interface functions for the GNOME desktop,
8606 like switching to windows and launching applications.")
8607 (license license:gpl2+)))
8608
8609 (define-public gtk-vnc
8610 (package
8611 (name "gtk-vnc")
8612 (version "1.0.0")
8613 (source
8614 (origin
8615 (method url-fetch)
8616 (uri
8617 (string-append "mirror://gnome/sources/" name "/"
8618 (version-major+minor version) "/"
8619 name "-" version ".tar.xz"))
8620 (sha256
8621 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8622 (build-system meson-build-system)
8623 (arguments
8624 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8625 (native-inputs
8626 `(("gjs" ,gjs)
8627 ("glib:bin" ,glib "bin")
8628 ("gobject-introspection" ,gobject-introspection)
8629 ("intltool" ,intltool)
8630 ("node" ,node)
8631 ("perl" ,perl)
8632 ("pkg-config" ,pkg-config)
8633 ("python" ,python-wrapper)
8634 ("vala" ,vala)))
8635 (inputs
8636 `(("cairo" ,cairo)
8637 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8638 ("glib" ,glib)
8639 ("gnutls" ,gnutls)
8640 ("libgcrypt" ,libgcrypt)
8641 ("libsasl" ,cyrus-sasl)
8642 ("pulseaudio" ,pulseaudio)
8643 ("x11" ,libx11)
8644 ("zlib" ,zlib)))
8645 (propagated-inputs
8646 `(("gtk+" ,gtk+)))
8647 (synopsis "VNC client viewer widget for GTK+")
8648 (description "GTK-VNC is a project providing client side APIs for the RFB
8649 protocol / VNC remote desktop technology. It is built using coroutines allowing
8650 it to be completely asynchronous while remaining single threaded. It provides a
8651 core C library, and bindings for Python (PyGTK).")
8652 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8653 (license license:lgpl2.1+)))
8654
8655 (define-public gnome-autoar
8656 (package
8657 (name "gnome-autoar")
8658 (version "0.3.1")
8659 (source (origin
8660 (method url-fetch)
8661 (uri (string-append "mirror://gnome/sources/" name "/"
8662 (version-major+minor version) "/"
8663 name "-" version ".tar.xz"))
8664 (sha256
8665 (base32
8666 "1y6hh5dldhdq7mpbmd571zl0yadfackvifhnxvykkqqddwz72y0f"))))
8667 (build-system glib-or-gtk-build-system)
8668 (native-inputs
8669 `(("gobject-introspection" ,gobject-introspection)
8670 ("pkg-config" ,pkg-config)))
8671 (propagated-inputs
8672 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8673 (inputs
8674 `(("gtk+" ,gtk+)))
8675 (synopsis "Archives integration support for GNOME")
8676 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8677 (description
8678 "GNOME Autoar is a library which makes creating and extracting archives
8679 easy, safe, and automatic.")
8680 (license license:lgpl2.1+)))
8681
8682 (define-public tracker
8683 (package
8684 (name "tracker")
8685 (version "2.3.5")
8686 (source (origin
8687 (method url-fetch)
8688 (uri (string-append "mirror://gnome/sources/tracker/"
8689 (version-major+minor version) "/"
8690 "tracker-" version ".tar.xz"))
8691 (sha256
8692 (base32
8693 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8694 (build-system meson-build-system)
8695 (arguments
8696 `(#:glib-or-gtk? #t
8697 #:configure-flags
8698 ;; Otherwise, the RUNPATH will lack the final path component.
8699 (list (string-append "-Dc_link_args=-Wl,-rpath="
8700 (assoc-ref %outputs "out") "/lib:"
8701 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8702 #:phases
8703 (modify-phases %standard-phases
8704 (add-before 'check 'pre-check
8705 (lambda _
8706 ;; Some tests expect to write to $HOME.
8707 (setenv "HOME" "/tmp")
8708 #t)))))
8709 (native-inputs
8710 `(("glib:bin" ,glib "bin")
8711 ("gobject-introspection" ,gobject-introspection)
8712 ("python-pygobject" ,python-pygobject)
8713 ("intltool" ,intltool)
8714 ("pkg-config" ,pkg-config)
8715 ("vala" ,vala)))
8716 (inputs
8717 `(("dbus" ,dbus)
8718 ("sqlite" ,sqlite)
8719 ("libxml2" ,libxml2)
8720 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8721 ("json-glib" ,json-glib)
8722 ("libsoup" ,libsoup)))
8723 (synopsis "Metadata database, indexer and search tool")
8724 (home-page "https://wiki.gnome.org/Projects/Tracker")
8725 (description
8726 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8727
8728 It is a middleware component aimed at desktop application developers who want
8729 their apps to browse and search user content. It's not designed to be used
8730 directly by desktop users, but it provides a commandline tool named
8731 @command{tracker} for the adventurous.
8732
8733 Tracker allows your application to instantly perform full-text searches across
8734 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8735 example. This is achieved by indexing the user's home directory in the
8736 background.
8737
8738 Tracker also allows your application to query and list content that the user
8739 has stored. For example, GNOME Music displays all the music files that are
8740 found by Tracker. This means that GNOME Music doesn't need to maintain a
8741 database of its own.
8742
8743 If you need to go beyond simple searches, Tracker is also a linked data
8744 endpoint and it understands SPARQL. ")
8745 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8746 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8747 ;; libstemmer is bsd-3 and the rest is gpl2+.
8748 (license (list license:gpl2+
8749 license:bsd-3
8750 license:lgpl2.1+))))
8751
8752 (define-public tracker-miners
8753 (package
8754 (name "tracker-miners")
8755 (version "2.3.4")
8756 (source (origin
8757 (method url-fetch)
8758 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8759 (version-major+minor version)
8760 "/tracker-miners-" version ".tar.xz"))
8761 (sha256
8762 (base32
8763 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8764 (build-system meson-build-system)
8765 (arguments
8766 `(#:glib-or-gtk? #t
8767 #:configure-flags
8768 (list "-Dminer_rss=false" ; libgrss is required.
8769 ;; Ensure the RUNPATH contains all installed library locations.
8770 (string-append "-Dc_link_args=-Wl,-rpath="
8771 (assoc-ref %outputs "out")
8772 "/lib/tracker-miners-2.0")
8773 ;; TODO: Enable functional tests. Currently, the following error
8774 ;; appears:
8775 ;; Exception: The functional tests require DConf to be the default
8776 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8777 "-Dfunctional_tests=false")))
8778 (native-inputs
8779 `(("dbus" ,dbus)
8780 ("intltool" ,intltool)
8781 ("glib:bin" ,glib "bin")
8782 ("gobject-introspection" ,gobject-introspection)
8783 ("pkg-config" ,pkg-config)
8784 ("python-pygobject" ,python-pygobject)))
8785 (inputs
8786 `(("exempi" ,exempi)
8787 ("ffmpeg" ,ffmpeg)
8788 ("flac" ,flac)
8789 ("giflib" ,giflib)
8790 ("glib" ,glib)
8791 ("gstreamer" ,gstreamer)
8792 ("icu4c" ,icu4c)
8793 ("libcue" ,libcue)
8794 ("libexif" ,libexif)
8795 ("libgsf" ,libgsf)
8796 ("libgxps" ,libgxps)
8797 ("libiptcdata" ,libiptcdata)
8798 ("libjpeg" ,libjpeg-turbo)
8799 ("libosinfo" ,libosinfo)
8800 ("libpng" ,libpng)
8801 ("libseccomp" ,libseccomp)
8802 ("libtiff" ,libtiff)
8803 ("libvorbis" ,libvorbis)
8804 ("libxml2" ,libxml2)
8805 ("poppler" ,poppler)
8806 ("taglib" ,taglib)
8807 ("totem-pl-parser" ,totem-pl-parser)
8808 ("tracker" ,tracker)
8809 ("upower" ,upower)
8810 ("zlib" ,zlib)))
8811 (synopsis "Metadata database, indexer and search tool")
8812 (home-page "https://wiki.gnome.org/Projects/Tracker")
8813 (description
8814 "Tracker is an advanced framework for first class objects with associated
8815 metadata and tags. It provides a one stop solution for all metadata, tags,
8816 shared object databases, search tools and indexing.")
8817 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8818 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8819 (license (list license:gpl2+
8820 license:lgpl2.1+
8821 license:lgpl2.0+))))
8822
8823 (define-public nautilus
8824 (package
8825 (name "nautilus")
8826 (version "3.34.2")
8827 (source (origin
8828 (method url-fetch)
8829 (uri (string-append "mirror://gnome/sources/" name "/"
8830 (version-major+minor version) "/"
8831 name "-" version ".tar.xz"))
8832 (sha256
8833 (base32
8834 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8835 (build-system meson-build-system)
8836 (arguments
8837 '(#:glib-or-gtk? #t
8838 #:phases
8839 (modify-phases %standard-phases
8840 (add-after 'unpack 'skip-gtk-update-icon-cache
8841 ;; Don't create 'icon-theme.cache'.
8842 (lambda _
8843 (substitute* "build-aux/meson/postinstall.py"
8844 (("gtk-update-icon-cache") "true"))
8845 #t)))
8846 ;; XXX: FAIL: check-nautilus
8847 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8848 #:tests? #f))
8849 (native-inputs
8850 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8851 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8852 ("gobject-introspection" ,gobject-introspection)
8853 ("intltool" ,intltool)
8854 ("pkg-config" ,pkg-config)))
8855 (inputs
8856 `(("dconf" ,dconf)
8857 ("gexiv2" ,gexiv2)
8858 ("gvfs" ,gvfs)
8859 ("exempi" ,exempi)
8860 ("gnome-desktop" ,gnome-desktop)
8861 ("gnome-autoar" ,gnome-autoar)
8862 ("gst-plugins-base" ,gst-plugins-base)
8863 ("libseccomp" ,libseccomp)
8864 ("libselinux" ,libselinux)
8865 ("tracker" ,tracker)
8866 ("tracker-miners" ,tracker-miners)
8867 ;; XXX: gtk+ is required by libnautilus-extension.pc
8868 ;;
8869 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8870 ;; package. See:
8871 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8872 ("gtk+" ,gtk+)
8873 ("libexif" ,libexif)
8874 ("libxml2" ,libxml2)))
8875 (synopsis "File manager for GNOME")
8876 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8877 (description
8878 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8879 design and behaviour, giving the user a simple way to navigate and manage its
8880 files.")
8881 (license license:gpl2+)))
8882
8883 (define-public baobab
8884 (package
8885 (name "baobab")
8886 (version "3.38.0")
8887 (source (origin
8888 (method url-fetch)
8889 (uri (string-append
8890 "mirror://gnome/sources/" name "/"
8891 (version-major+minor version) "/"
8892 name "-" version ".tar.xz"))
8893 (sha256
8894 (base32
8895 "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104"))))
8896 (build-system meson-build-system)
8897 (arguments
8898 '(#:glib-or-gtk? #t))
8899 (native-inputs
8900 `(("intltool" ,intltool)
8901 ("pkg-config" ,pkg-config)
8902 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8903 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8904 ("itstool" ,itstool)
8905 ("xmllint" ,libxml2)
8906 ("glib" ,glib "bin")
8907 ("vala" ,vala)))
8908 (inputs
8909 `(("gtk+" ,gtk+)))
8910 (synopsis "Disk usage analyzer for GNOME")
8911 (description
8912 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8913 usage in the GNOME desktop environment. It can easily scan device volumes or
8914 a specific user-requested directory branch (local or remote). Once the scan
8915 is complete it provides a graphical representation of each selected folder.")
8916 (home-page "https://wiki.gnome.org/Apps/Baobab")
8917 (license license:gpl2+)))
8918
8919 (define-public gnome-backgrounds
8920 (package
8921 (name "gnome-backgrounds")
8922 (version "3.34.0")
8923 (source
8924 (origin
8925 (method url-fetch)
8926 (uri (string-append "mirror://gnome/sources/" name "/"
8927 (version-major+minor version) "/"
8928 name "-" version ".tar.xz"))
8929 (sha256
8930 (base32
8931 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8932 (build-system meson-build-system)
8933 (native-inputs
8934 `(("intltool" ,intltool)))
8935 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8936 (synopsis "Background images for the GNOME desktop")
8937 (description
8938 "GNOME backgrounds package contains a collection of graphics files which
8939 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8940 the package creates the proper framework and directory structure so that you
8941 can add your own files to the collection.")
8942 (license (list license:gpl2+
8943 license:cc-by2.0
8944 license:cc-by-sa2.0
8945 license:cc-by-sa3.0))))
8946
8947 (define-public gnome-screenshot
8948 (package
8949 (name "gnome-screenshot")
8950 (version "3.34.0")
8951 (source
8952 (origin
8953 (method url-fetch)
8954 (uri (string-append "mirror://gnome/sources/" name "/"
8955 (version-major+minor version) "/"
8956 name "-" version ".tar.xz"))
8957 (sha256
8958 (base32
8959 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8960 (build-system meson-build-system)
8961 (arguments
8962 '(#:phases
8963 (modify-phases %standard-phases
8964 (add-after 'unpack 'skip-gtk-update-icon-cache
8965 ;; Don't create 'icon-theme.cache'.
8966 (lambda _
8967 (substitute* "build-aux/postinstall.py"
8968 (("gtk-update-icon-cache") "true"))
8969 #t)))))
8970 (native-inputs
8971 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8972 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8973 ("intltool" ,intltool)
8974 ("appstream-glib" ,appstream-glib)
8975 ("pkg-config" ,pkg-config)))
8976 (inputs
8977 `(("gtk+" ,gtk+)
8978 ("libcanberra" ,libcanberra)
8979 ("libx11" ,libx11)
8980 ("libxext" ,libxext)))
8981 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8982 (synopsis "Take pictures of your screen")
8983 (description
8984 "GNOME Screenshot is a utility used for taking screenshots of the entire
8985 screen, a window or a user defined area of the screen, with optional
8986 beautifying border effects.")
8987 (license license:gpl2+)))
8988
8989 (define-public dconf-editor
8990 (package
8991 (name "dconf-editor")
8992 (version "3.34.2")
8993 (source
8994 (origin
8995 (method url-fetch)
8996 (uri (string-append "mirror://gnome/sources/" name "/"
8997 (version-major+minor version) "/"
8998 name "-" version ".tar.xz"))
8999 (sha256
9000 (base32
9001 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
9002 (build-system meson-build-system)
9003 (native-inputs
9004 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9005 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9006 ("intltool" ,intltool)
9007 ("pkg-config" ,pkg-config)
9008 ("vala" ,vala)))
9009 (inputs
9010 `(("dconf" ,dconf)
9011 ("gtk+" ,gtk+)
9012 ("libxml2" ,libxml2)))
9013 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9014 (synopsis "Graphical editor for GNOME's dconf configuration system")
9015 (description
9016 "Dconf-editor is a graphical tool for browsing and editing the dconf
9017 configuration system for GNOME. It allows users to configure desktop
9018 software that do not provide their own configuration interface.")
9019 (license license:lgpl2.1+)))
9020
9021 (define-public gnome-default-applications
9022 (package
9023 (name "gnome-default-applications")
9024 (version "0")
9025 (build-system trivial-build-system)
9026 (source #f)
9027 (propagated-inputs
9028 `(("nautilus" ,nautilus)
9029 ("evince" ,evince)))
9030 (arguments
9031 `(#:modules ((guix build utils))
9032 #:builder
9033 (begin
9034 (use-modules (guix build utils))
9035 (let* ((out (assoc-ref %outputs "out"))
9036 (apps (string-append out "/share/applications")))
9037 (mkdir-p apps)
9038 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9039 (lambda (port)
9040 (format port "[Default Applications]\n")
9041 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9042 (format port "application/pdf=evince.desktop\n")
9043 (format port "application/postscript=evince.desktop\n")))
9044 #t))))
9045 (synopsis "Default MIME type associations for the GNOME desktop")
9046 (description
9047 "Given many installed packages which might handle a given MIME type, a
9048 user running the GNOME desktop probably has some preferences: for example,
9049 that folders be opened by default by the Nautilus file manager, not the Baobab
9050 disk usage analyzer. This package establishes that set of default MIME type
9051 associations for GNOME.")
9052 (license license:gpl3+)
9053 (home-page #f)))
9054
9055 (define-public libgovirt
9056 (package
9057 (name "libgovirt")
9058 (version "0.3.8")
9059 (source (origin
9060 (method url-fetch)
9061 (uri (string-append "mirror://gnome/sources/" name "/"
9062 (version-major+minor version) "/"
9063 name "-" version ".tar.xz"))
9064 (sha256
9065 (base32
9066 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9067 (build-system glib-or-gtk-build-system)
9068 (native-inputs
9069 `(("gettext" ,gettext-minimal)
9070 ("glib:bin" ,glib "bin")
9071 ("gobject-introspection" ,gobject-introspection)
9072 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9073 ("gtk+:bin" ,gtk+ "bin")
9074 ("pkg-config" ,pkg-config)))
9075 (inputs
9076 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
9077 ("librest" ,rest)))
9078 (synopsis "GoVirt Library")
9079 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9080 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9081 (license license:gpl2+)))
9082
9083 (define-public gnome-weather
9084 (package
9085 (name "gnome-weather")
9086 (version "3.34.0")
9087 (source (origin
9088 (method url-fetch)
9089 (uri (string-append "mirror://gnome/sources/" name "/"
9090 (version-major+minor version) "/"
9091 name "-" version ".tar.xz"))
9092 (sha256
9093 (base32
9094 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
9095 (build-system meson-build-system)
9096 (native-inputs
9097 `(("gettext" ,gettext-minimal)
9098 ("glib:bin" ,glib "bin")
9099 ("gobject-introspection" ,gobject-introspection)
9100 ("gtk+:bin" ,gtk+ "bin")
9101 ("pkg-config" ,pkg-config)))
9102 (inputs
9103 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
9104 ("appstream-glib" ,appstream-glib)
9105 ("geoclue" ,geoclue)
9106 ("gdk-pixbuf" ,gdk-pixbuf)
9107 ("gjs" ,gjs)
9108 ("gnome-desktop" ,gnome-desktop)
9109 ("libgweather" ,libgweather)))
9110 (arguments
9111 `(#:glib-or-gtk? #t
9112 #:phases
9113 (modify-phases %standard-phases
9114 (add-after 'install 'fix-desktop-file
9115 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
9116 ;; See https://issues.guix.gnu.org/issue/39324.
9117 (lambda* (#:key outputs #:allow-other-keys)
9118 (let* ((out (assoc-ref outputs "out"))
9119 (applications (string-append out "/share/applications")))
9120 (substitute* (string-append applications "/org.gnome.Weather.desktop")
9121 (("Exec=.*") "Exec=gnome-weather\n"))
9122 #t)))
9123 (add-after 'install 'wrap
9124 (lambda* (#:key inputs outputs #:allow-other-keys)
9125 (let ((out (assoc-ref outputs "out"))
9126 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9127 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
9128 (wrap-program (string-append out "/bin/gnome-weather")
9129 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
9130 #t))))))
9131 (synopsis "Weather monitoring for GNOME desktop")
9132 (description "GNOME Weather is a small application that allows you to
9133 monitor the current weather conditions for your city, or anywhere in the
9134 world.")
9135 (home-page "https://wiki.gnome.org/Apps/Weather")
9136 (license license:gpl2+)))
9137
9138 (define-public gnome
9139 (package
9140 (name "gnome")
9141 (version (package-version gnome-shell))
9142 (source #f)
9143 (build-system trivial-build-system)
9144 (arguments '(#:builder (begin (mkdir %output) #t)))
9145 (propagated-inputs
9146 ;; TODO: Add or remove packages according to:
9147 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
9148 `(
9149 ;; GNOME-Core-OS-Services
9150 ("accountsservice" ,accountsservice)
9151 ("network-manager" ,network-manager)
9152 ("packagekit" ,packagekit)
9153 ("upower" ,upower)
9154 ;; GNOME-Core-Shell
9155 ("adwaita-icon-theme" ,adwaita-icon-theme)
9156 ("gdm" ,gdm)
9157 ("glib-networking" ,glib-networking)
9158 ("gnome-backgrounds" ,gnome-backgrounds)
9159 ("gnome-bluetooth" ,gnome-bluetooth)
9160 ("gnome-color-manager" ,gnome-color-manager)
9161 ("gnome-control-center" ,gnome-control-center)
9162 ("gnome-desktop" ,gnome-desktop)
9163 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
9164 ("gnome-initial-setup" ,gnome-initial-setup)
9165 ("gnome-keyring" ,gnome-keyring)
9166 ("gnome-menus" ,gnome-menus)
9167 ("gnome-session" ,gnome-session)
9168 ("gnome-settings-daemon" ,gnome-settings-daemon)
9169 ("gnome-shell-extensions" ,gnome-shell-extensions)
9170 ("gnome-shell" ,gnome-shell)
9171 ("gnome-themes-extra" ,gnome-themes-extra)
9172 ("gnome-user-docs" ,gnome-user-docs)
9173 ("gnome-user-share" ,gnome-user-share)
9174 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9175 ("gvfs" ,gvfs)
9176 ("mutter" ,mutter)
9177 ("orca" ,orca)
9178 ("rygel" ,rygel)
9179 ("sushi" ,sushi)
9180 ;; GNOME-Core-Utilities
9181 ("baobab" ,baobab)
9182 ("cheese" ,cheese)
9183 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9184 ;; only works on x86_64, so exclude it on other architectures.
9185 ,@(if (string-prefix? "x86_64" (%current-system))
9186 `(("eog" ,eog))
9187 '())
9188 ("epiphany" ,epiphany)
9189 ("evince" ,evince)
9190 ("file-roller" ,file-roller)
9191 ("gedit" ,gedit)
9192 ("gnome-boxes" ,gnome-boxes)
9193 ("gnome-calculator" ,gnome-calculator)
9194 ("gnome-calendar" ,gnome-calendar)
9195 ("gnome-characters" ,gnome-characters)
9196 ("gnome-clocks" ,gnome-clocks)
9197 ("gnome-contacts" ,gnome-contacts)
9198 ("gnome-disk-utility" ,gnome-disk-utility)
9199 ("gnome-font-viewer" ,gnome-font-viewer)
9200 ("gnome-maps" ,gnome-maps)
9201 ; TODO: ("gnome-music" ,gnome-music)
9202 ; TODO: ("gnome-photos" ,gnome-photos)
9203 ("gnome-screenshot" ,gnome-screenshot)
9204 ("gnome-system-monitor" ,gnome-system-monitor)
9205 ("gnome-terminal" ,gnome-terminal)
9206 ("gnome-weather" ,gnome-weather)
9207 ("nautilus" ,nautilus)
9208 ("simple-scan" ,simple-scan)
9209 ("totem" ,totem)
9210 ("yelp" ,yelp)
9211 ;; Others
9212 ("hicolor-icon-theme" ,hicolor-icon-theme)
9213 ("gnome-online-accounts" ,gnome-online-accounts)
9214
9215 ;; Packages not part of GNOME proper but that are needed for a good
9216 ;; experience. See <https://bugs.gnu.org/39646>.
9217 ;; XXX: Find out exactly which ones are needed and why.
9218 ("font-cantarell" ,font-cantarell)
9219 ("font-dejavu" ,font-dejavu)
9220 ("at-spi2-core" ,at-spi2-core)
9221 ("dbus" ,dbus)
9222 ("dconf" ,dconf)
9223 ("desktop-file-utils" ,desktop-file-utils)
9224 ("gnome-default-applications" ,gnome-default-applications)
9225 ("gnome-themes-standard" ,gnome-themes-standard)
9226 ("gst-plugins-base" ,gst-plugins-base)
9227 ("gst-plugins-good" ,gst-plugins-good)
9228 ("gucharmap" ,gucharmap)
9229 ("pinentry-gnome3" ,pinentry-gnome3)
9230 ("pulseaudio" ,pulseaudio)
9231 ("shared-mime-info" ,shared-mime-info)
9232 ("system-config-printer" ,system-config-printer)
9233 ("xdg-user-dirs" ,xdg-user-dirs)
9234 ("yelp" ,yelp)
9235 ("zenity" ,zenity)))
9236 (synopsis "The GNU desktop environment")
9237 (home-page "https://www.gnome.org/")
9238 (description
9239 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9240 applications for browsing the web, editing text and images, creating
9241 documents and diagrams, playing media, scanning, and much more.")
9242 (license license:gpl2+)))
9243
9244 (define-public byzanz
9245 ;; The last stable release of Byzanz was in 2011, but there have been many
9246 ;; useful commits made to the Byzanz repository since then that it would be
9247 ;; silly to use such an old release.
9248 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9249 (package
9250 (name "byzanz")
9251 (version (string-append "0.2-1." (string-take commit 7)))
9252 (source (origin
9253 (method git-fetch)
9254 (uri (git-reference
9255 (url "https://git.gnome.org/browse/byzanz")
9256 (commit commit)))
9257 (file-name (string-append name "-" version "-checkout"))
9258 (sha256
9259 (base32
9260 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9261 (build-system glib-or-gtk-build-system)
9262 (arguments
9263 '(#:phases
9264 (modify-phases %standard-phases
9265 (add-before 'bootstrap 'build-without-Werror
9266 (lambda _
9267 ;; The build system cleverly detects that we're not building from
9268 ;; a release tarball and turns on -Werror for GCC.
9269 ;; Unsurprisingly, there is a warning during compilation that
9270 ;; causes the build to fail unnecessarily, so we remove the flag.
9271 (substitute* '("configure.ac")
9272 (("-Werror") ""))
9273 #t)))))
9274 (native-inputs
9275 `(("autoconf" ,autoconf)
9276 ("automake" ,automake)
9277 ("gnome-common" ,gnome-common)
9278 ("intltool" ,intltool)
9279 ("libtool" ,libtool)
9280 ("pkg-config" ,pkg-config)
9281 ("which" ,which)))
9282 (inputs
9283 `(("glib" ,glib)
9284 ("gstreamer" ,gstreamer)
9285 ("gst-plugins-base" ,gst-plugins-base)
9286 ("gtk+" ,gtk+)))
9287 (synopsis "Desktop recording program")
9288 (description "Byzanz is a simple desktop recording program with a
9289 command-line interface. It can record part or all of an X display for a
9290 specified duration and save it as a GIF encoded animated image file.")
9291 (home-page "https://git.gnome.org/browse/byzanz")
9292 (license license:gpl2+))))
9293
9294 (define-public authenticator
9295 (package
9296 (name "authenticator")
9297 (version "3.32.2")
9298 (source
9299 (origin
9300 (method git-fetch)
9301 (uri (git-reference
9302 (url "https://gitlab.gnome.org/World/Authenticator")
9303 (commit version)))
9304 (file-name (git-file-name name version))
9305 (sha256
9306 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9307 (build-system meson-build-system)
9308 (arguments
9309 `(#:glib-or-gtk? #t
9310 #:phases
9311 (modify-phases %standard-phases
9312 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9313 (lambda* (#:key inputs outputs #:allow-other-keys)
9314 (let ((prog (string-append (assoc-ref outputs "out")
9315 "/bin/authenticator"))
9316 (pylib (string-append (assoc-ref outputs "out")
9317 "/lib/python"
9318 ,(version-major+minor
9319 (package-version python))
9320 "/site-packages")))
9321 (wrap-program prog
9322 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
9323 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9324 #t))))))
9325 (native-inputs
9326 `(("desktop-file-utils" ,desktop-file-utils)
9327 ("gettext" ,gettext-minimal)
9328 ("glib:bin" ,glib "bin")
9329 ("gobject-introspection" ,gobject-introspection)
9330 ("gtk+:bin" ,gtk+ "bin")
9331 ("pkg-config" ,pkg-config)))
9332 (inputs
9333 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9334 ("gtk+" ,gtk+)
9335 ("libhandy" ,libhandy-0.0)
9336 ("libsecret" ,libsecret)
9337 ("python-beautifulsoup4" ,python-beautifulsoup4)
9338 ("python-pillow" ,python-pillow)
9339 ("python-pyfavicon" ,python-pyfavicon)
9340 ("python-pygobject" ,python-pygobject)
9341 ("python-pyotp" ,python-pyotp)
9342 ("python-pyzbar" ,python-pyzbar)
9343 ("yoyo-migrations" ,yoyo-migrations)
9344 ("zbar" ,zbar)))
9345 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9346 (synopsis "Two-factor authentication application built for GNOME")
9347 (description
9348 "Authenticator is a two-factor authentication (2FA) application built for
9349 the GNOME desktop environment.
9350
9351 Features:
9352
9353 @itemize
9354 @item QR code scanner
9355 @item Beautiful UI
9356 @item Huge database of more than 560 supported services
9357 @item Keep your PIN tokens secure by locking the application with a password
9358 @item Automatically fetch an image for services using their favicon
9359 @item The possibility to add new services
9360 @end itemize")
9361 (license license:gpl3+)))
9362
9363 (define-public gsound
9364 (package
9365 (name "gsound")
9366 (version "1.0.2")
9367 (source (origin
9368 (method url-fetch)
9369 (uri (string-append "mirror://gnome/sources/" name "/"
9370 (version-major+minor version) "/"
9371 name "-" version ".tar.xz"))
9372 (sha256
9373 (base32
9374 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9375 (build-system glib-or-gtk-build-system)
9376 (native-inputs
9377 `(("pkg-config" ,pkg-config)
9378 ("gobject-introspection" ,gobject-introspection)
9379 ("vala" ,vala)))
9380 (inputs
9381 `(("glib" ,glib)
9382 ("libcanberra" ,libcanberra)))
9383 (home-page "https://wiki.gnome.org/Projects/GSound")
9384 (synopsis "GObject wrapper for libcanberra")
9385 (description
9386 "GSound is a small library for playing system sounds. It's designed to be
9387 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9388 library.")
9389 (license license:lgpl2.1+)))
9390
9391 (define-public libzapojit
9392 (package
9393 (name "libzapojit")
9394 (version "0.0.3")
9395 (source (origin
9396 (method url-fetch)
9397 (uri (string-append "mirror://gnome/sources/" name "/"
9398 (version-major+minor version) "/"
9399 name "-" version ".tar.xz"))
9400 (sha256
9401 (base32
9402 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9403 (build-system gnu-build-system)
9404 (native-inputs
9405 `(("gobject-introspection" ,gobject-introspection)
9406 ("intltool" ,intltool)
9407 ("pkg-config" ,pkg-config)))
9408 (inputs
9409 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9410 ("json-glib" ,json-glib)
9411 ("rest" ,rest)))
9412 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9413 (synopsis "Library for accessing SkyDrive and Hotmail")
9414 (description
9415 "Libzapojit is a GLib-based library for accessing online service APIs of
9416 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9417 (license license:lgpl2.1+)))
9418
9419 (define-public gnome-clocks
9420 (package
9421 (name "gnome-clocks")
9422 (version "3.34.0")
9423 (source (origin
9424 (method url-fetch)
9425 (uri (string-append "mirror://gnome/sources/" name "/"
9426 (version-major+minor version) "/"
9427 name "-" version ".tar.xz"))
9428 (sha256
9429 (base32
9430 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9431 (build-system meson-build-system)
9432 (arguments
9433 '(#:glib-or-gtk? #t
9434 #:phases
9435 (modify-phases %standard-phases
9436 (add-after 'unpack 'skip-gtk-update-icon-cache
9437 ;; Don't create 'icon-theme.cache'.
9438 (lambda _
9439 (substitute* "build-aux/post-install.py"
9440 (("gtk-update-icon-cache") "true"))
9441 #t)))))
9442 (native-inputs
9443 `(("vala" ,vala)
9444 ("pkg-config" ,pkg-config)
9445 ("glib" ,glib "bin") ; for glib-compile-resources
9446 ("desktop-file-utils" ,desktop-file-utils)
9447 ("gettext" ,gettext-minimal)
9448 ("itstool" ,itstool)))
9449 (inputs
9450 `(("glib" ,glib)
9451 ("gtk+" ,gtk+)
9452 ("gsound" ,gsound)
9453 ("geoclue" ,geoclue)
9454 ("geocode-glib" ,geocode-glib)
9455 ("libgweather" ,libgweather)
9456 ("gnome-desktop" ,gnome-desktop)))
9457 (home-page "https://wiki.gnome.org/Apps/Clocks")
9458 (synopsis "GNOME's clock application")
9459 (description
9460 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9461 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9462 (license license:gpl3+)))
9463
9464 (define-public gnome-calendar
9465 (package
9466 (name "gnome-calendar")
9467 (version "3.34.2")
9468 (source (origin
9469 (method url-fetch)
9470 (uri (string-append "mirror://gnome/sources/" name "/"
9471 (version-major+minor version) "/"
9472 name "-" version ".tar.xz"))
9473 (sha256
9474 (base32
9475 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9476 (build-system meson-build-system)
9477 (arguments
9478 '(#:glib-or-gtk? #t
9479 ;; gnome-calendar has to be installed before the tests can be run
9480 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9481 #:tests? #f
9482 #:phases
9483 (modify-phases %standard-phases
9484 (add-after 'unpack 'skip-gtk-update-icon-cache
9485 ;; Don't create 'icon-theme.cache'.
9486 (lambda _
9487 (substitute* "build-aux/meson/meson_post_install.py"
9488 (("gtk-update-icon-cache") "true"))
9489 #t)))))
9490 (native-inputs
9491 `(("gettext" ,gettext-minimal)
9492 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9493 ("pkg-config" ,pkg-config)))
9494 (inputs
9495 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9496 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9497 ("libdazzle" ,libdazzle)
9498 ("libedataserverui" ,evolution-data-server)
9499 ("libgweather" ,libgweather)
9500 ("geoclue" ,geoclue)))
9501 (propagated-inputs
9502 `(("evolution-data-server" ,evolution-data-server)))
9503 (home-page "https://wiki.gnome.org/Apps/Calendar")
9504 (synopsis "GNOME's calendar application")
9505 (description
9506 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9507 desktop. It supports multiple calendars, month, week and year view.")
9508 (license license:gpl3+)))
9509
9510 (define-public gnome-todo
9511 (package
9512 (name "gnome-todo")
9513 (version "3.28.1")
9514 (source (origin
9515 (method url-fetch)
9516 (uri (string-append "mirror://gnome/sources/" name "/"
9517 (version-major+minor version) "/"
9518 name "-" version ".tar.xz"))
9519 (sha256
9520 (base32
9521 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9522 (patches
9523 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9524 (build-system meson-build-system)
9525 (arguments
9526 '(#:glib-or-gtk? #t
9527 #:phases (modify-phases %standard-phases
9528 (add-after
9529 'install 'wrap-gnome-todo
9530 (lambda* (#:key inputs outputs #:allow-other-keys)
9531 (let ((out (assoc-ref outputs "out"))
9532 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9533 (python-path (getenv "PYTHONPATH")))
9534 (wrap-program (string-append out "/bin/gnome-todo")
9535 ;; XXX: gi plugins are broken.
9536 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9537 ;; For plugins.
9538 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9539 `("PYTHONPATH" ":" prefix (,python-path))))
9540 #t)))))
9541 (native-inputs
9542 `(("gettext" ,gettext-minimal)
9543 ("gobject-introspection" ,gobject-introspection)
9544 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9545 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9546 ("pkg-config" ,pkg-config)))
9547 (inputs
9548 `(("rest" ,rest) ; For Todoist plugin
9549 ("json-glib" ,json-glib) ; For Todoist plugin
9550 ("libedataserverui" ,evolution-data-server)
9551 ("libical" ,libical)
9552 ("libpeas" ,libpeas)
9553 ("python-pygobject" ,python-pygobject)
9554 ("evolution-data-server" ,evolution-data-server)
9555 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9556 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9557 (home-page "https://wiki.gnome.org/Apps/Todo")
9558 (synopsis "GNOME's ToDo Application")
9559 (description
9560 "GNOME To Do is a simplistic personal task manager designed to perfectly
9561 fit the GNOME desktop.")
9562 (license license:gpl3+)))
9563
9564 (define-public gnome-dictionary
9565 (package
9566 (name "gnome-dictionary")
9567 (version "3.26.1")
9568 (source (origin
9569 (method url-fetch)
9570 (uri (string-append "mirror://gnome/sources/" name "/"
9571 (version-major+minor version) "/"
9572 name "-" version ".tar.xz"))
9573 (sha256
9574 (base32
9575 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9576 (build-system meson-build-system)
9577 (arguments '(#:glib-or-gtk? #t
9578 #:phases (modify-phases %standard-phases
9579 (add-after 'unpack 'patch-install-script
9580 (lambda _
9581 ;; This script attempts to compile glib schemas
9582 ;; and create an empty MIME database. We do
9583 ;; that elsewhere, so prevent it from running.
9584 (substitute* "build-aux/post-install.sh"
9585 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9586 #t)))))
9587 (native-inputs
9588 `(("glib:bin" ,glib "bin")
9589 ("gobject-introspection" ,gobject-introspection)
9590 ("intltool" ,intltool)
9591 ("itstool" ,itstool)
9592 ("pkg-config" ,pkg-config)
9593 ("xmllint" ,libxml2)))
9594 (inputs
9595 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9596 ("gtk+" ,gtk+)))
9597 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9598 (synopsis "Look up words in dictionary sources")
9599 (description
9600 "GNOME Dictionary can look for the definition or translation of a word in
9601 existing databases over the internet.")
9602 (license license:gpl3+)))
9603
9604 (define-public gnome-tweaks
9605 (package
9606 (name "gnome-tweaks")
9607 (version "3.34.1")
9608 (source (origin
9609 (method url-fetch)
9610 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9611 (version-major+minor version) "/"
9612 "gnome-tweaks-" version ".tar.xz"))
9613 (patches
9614 (list (search-patch "gnome-tweaks-search-paths.patch")))
9615 (sha256
9616 (base32
9617 "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq"))))
9618 (build-system meson-build-system)
9619 (arguments
9620 `(#:glib-or-gtk? #t
9621 #:configure-flags '("-Dlocalstatedir=/tmp"
9622 "-Dsysconfdir=/tmp")
9623 #:imported-modules ((guix build python-build-system)
9624 ,@%meson-build-system-modules)
9625 #:phases
9626 (modify-phases %standard-phases
9627 (add-after 'unpack 'skip-gtk-update-icon-cache
9628 ;; Don't create 'icon-theme.cache'.
9629 (lambda _
9630 (substitute* "meson-postinstall.py"
9631 (("gtk-update-icon-cache") "true"))
9632 #t))
9633 (add-after 'install 'wrap
9634 (@@ (guix build python-build-system) wrap))
9635 (add-after 'wrap 'wrap-gi-typelib
9636 (lambda* (#:key inputs outputs #:allow-other-keys)
9637 (let ((out (assoc-ref outputs "out"))
9638 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9639 (wrap-program (string-append out "/bin/gnome-tweaks")
9640 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9641 #t)))))
9642 (native-inputs
9643 `(("intltool" ,intltool)
9644 ("pkg-config" ,pkg-config)))
9645 (inputs
9646 `(("gnome-desktop" ,gnome-desktop)
9647 ("gtk+" ,gtk+)
9648 ("gobject-introspection" ,gobject-introspection)
9649 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9650 ("libhandy" ,libhandy-0.0)
9651 ("libnotify" ,libnotify)
9652 ("libsoup" ,libsoup)
9653 ("nautilus" ,nautilus)
9654 ("python" ,python)
9655 ("python-pygobject" ,python-pygobject)))
9656 (synopsis "Customize advanced GNOME 3 options")
9657 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9658 (description
9659 "GNOME Tweaks allows adjusting advanced configuration settings in
9660 GNOME 3. This includes things like the fonts used in user interface elements,
9661 alternative user interface themes, changes in window management behavior,
9662 GNOME Shell appearance and extension, etc.")
9663 (license license:gpl3+)))
9664
9665 (define-public gnome-shell-extensions
9666 (package
9667 (name "gnome-shell-extensions")
9668 (version "3.34.2")
9669 (source (origin
9670 (method url-fetch)
9671 (uri (string-append "mirror://gnome/sources/" name "/"
9672 (version-major+minor version) "/"
9673 name "-" version ".tar.xz"))
9674 (sha256
9675 (base32
9676 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9677 (build-system meson-build-system)
9678 (arguments
9679 '(#:configure-flags '("-Dextension_set=all")))
9680 (native-inputs
9681 `(("glib:bin" ,glib "bin")
9682 ("intltool" ,intltool)
9683 ("pkg-config" ,pkg-config)))
9684 (propagated-inputs
9685 `(("glib" ,glib)))
9686 (synopsis "Extensions for GNOME Shell")
9687 (description "GNOME Shell extensions modify and extend GNOME Shell
9688 functionality and behavior.")
9689 (home-page "https://extensions.gnome.org/")
9690 (license license:gpl3+)))
9691
9692 (define-public folks
9693 (package
9694 (name "folks")
9695 (version "0.13.1")
9696 (source (origin
9697 (method url-fetch)
9698 (uri (string-append
9699 "mirror://gnome/sources/folks/"
9700 (version-major+minor version) "/"
9701 "folks-" version ".tar.xz"))
9702 (sha256
9703 (base32
9704 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9705 (build-system meson-build-system)
9706 (arguments
9707 '(#:phases
9708 (modify-phases %standard-phases
9709 (add-after 'unpack 'skip-gtk-update-icon-cache
9710 ;; Don't create 'icon-theme.cache'.
9711 (lambda _
9712 (substitute* "meson_post_install.py"
9713 (("gtk-update-icon-cache") "true"))
9714 #t)))))
9715 (inputs
9716 `(("bdb" ,bdb)
9717 ("dbus-glib" ,dbus-glib)
9718 ("evolution-data-server" ,evolution-data-server)
9719 ("glib" ,glib)
9720 ("libgee" ,libgee)
9721 ("readline" ,readline)
9722 ("telepathy-glib" ,telepathy-glib)))
9723 (native-inputs
9724 `(("glib:bin" ,glib "bin")
9725 ("gobject-introspection" ,gobject-introspection)
9726 ("intltool" ,intltool)
9727 ("pkg-config" ,pkg-config)
9728 ("vala" ,vala)))
9729 (synopsis "Library to aggregate data about people")
9730 (description "Libfolks is a library that aggregates information about people
9731 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9732 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9733 etc.) to create metacontacts. It's written in Vala, which generates C code when
9734 compiled.")
9735 (home-page "https://wiki.gnome.org/Projects/Folks")
9736 (license license:lgpl2.1+)))
9737
9738 (define-public gfbgraph
9739 (package
9740 (name "gfbgraph")
9741 (version "0.2.4")
9742 (source (origin
9743 (method url-fetch)
9744 (uri (string-append
9745 "mirror://gnome/sources/gfbgraph/"
9746 (version-major+minor version) "/"
9747 "gfbgraph-" version ".tar.xz"))
9748 (sha256
9749 (base32
9750 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9751 (build-system glib-or-gtk-build-system)
9752 (arguments
9753 `(#:tests? #f ; tests appear to require the network
9754 #:configure-flags '("--disable-static"
9755 "--enable-gtk-doc"
9756 "--enable-introspection")))
9757 (native-inputs
9758 `(("gobject-introspection" ,gobject-introspection)
9759 ("gtk-doc" ,gtk-doc)
9760 ("pkg-config" ,pkg-config)
9761
9762 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9763 ("autoconf" ,autoconf)
9764 ("automake" ,automake)
9765 ("libtool" ,libtool)
9766 ("which" ,which)))
9767 (inputs
9768 `(("json-glib" ,json-glib)
9769 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9770 ("rest" ,rest)))
9771 (synopsis "GLib/GObject wrapper for the Facebook API")
9772 (description "This library allows you to use the Facebook API from
9773 GLib/GObject code.")
9774 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9775 (license license:lgpl2.1+)))
9776
9777 (define-public libgnomekbd
9778 (package
9779 (name "libgnomekbd")
9780 (version "3.26.1")
9781 (source (origin
9782 (method url-fetch)
9783 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9784 (version-major+minor version) "/"
9785 "libgnomekbd-" version ".tar.xz"))
9786 (sha256
9787 (base32
9788 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9789 (build-system gnu-build-system)
9790 (native-inputs
9791 `(("pkg-config" ,pkg-config)
9792 ("glib" ,glib "bin")
9793 ("intltool" ,intltool)))
9794 (propagated-inputs
9795 ;; Referred to in .h files and .pc.
9796 `(("glib" ,glib)
9797 ("gtk+" ,gtk+)
9798 ("libxklavier" ,libxklavier)))
9799 (home-page "https://www.gnome.org")
9800 (synopsis "GNOME keyboard configuration library")
9801 (description
9802 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9803 environment, which can notably display keyboard layouts.")
9804 (license license:lgpl2.0+)))
9805
9806 ;;; This package is no longer maintained:
9807 ;;; https://wiki.gnome.org/Attic/LibUnique
9808 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9809 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9810 (define-public libunique
9811 (package
9812 (name "libunique")
9813 (version "3.0.2")
9814 (source (origin
9815 (method url-fetch)
9816 (uri (string-append "mirror://gnome/sources/" name "/"
9817 (version-major+minor version) "/"
9818 name "-" version ".tar.xz"))
9819 (sha256
9820 (base32
9821 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9822 (build-system glib-or-gtk-build-system)
9823 (arguments
9824 `(#:configure-flags '("--disable-static"
9825 "--disable-dbus" ; use gdbus
9826 "--enable-introspection")))
9827 (native-inputs
9828 `(("pkg-config" ,pkg-config)
9829 ("gobject-introspection" ,gobject-introspection)
9830 ("glib:bin" ,glib "bin")
9831 ("gtk-doc" ,gtk-doc)))
9832 (propagated-inputs
9833 ;; Referred to in .h files and .pc.
9834 `(("gtk+" ,gtk+)))
9835 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9836 (synopsis "Library for writing single instance applications")
9837 (description
9838 "Libunique is a library for writing single instance applications. If you
9839 launch a single instance application twice, the second instance will either just
9840 quit or will send a message to the running instance. Libunique makes it easy to
9841 write this kind of application, by providing a base class, taking care of all
9842 the IPC machinery needed to send messages to a running instance, and also
9843 handling the startup notification side.")
9844 (license license:lgpl2.1+)))
9845
9846 (define-public gnome-calculator
9847 (package
9848 (name "gnome-calculator")
9849 (version "3.34.1")
9850 (source
9851 (origin
9852 (method url-fetch)
9853 (uri (string-append "mirror://gnome/sources/" name "/"
9854 (version-major+minor version) "/"
9855 name "-" version ".tar.xz"))
9856 (sha256
9857 (base32
9858 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9859 (build-system meson-build-system)
9860 (arguments '(#:glib-or-gtk? #t))
9861 (native-inputs
9862 `(("gettext" ,gettext-minimal)
9863 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9864 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9865 ("itstool" ,itstool)
9866 ("vala" ,vala)
9867 ("pkg-config" ,pkg-config)))
9868 (inputs
9869 `(("glib" ,glib)
9870 ("gtksourceview" ,gtksourceview)
9871 ("libgee" ,libgee)
9872 ("libsoup" ,libsoup)
9873 ("libxml2" ,libxml2)
9874 ("mpc" ,mpc)
9875 ("mpfr" ,mpfr)))
9876 (home-page "https://wiki.gnome.org/Apps/Calculator")
9877 (synopsis "Desktop calculator")
9878 (description
9879 "Calculator is an application that solves mathematical equations and
9880 is suitable as a default application in a Desktop environment.")
9881 (license license:gpl3)))
9882
9883 (define-public xpad
9884 (package
9885 (name "xpad")
9886 (version "5.1.0")
9887 (source
9888 (origin
9889 (method url-fetch)
9890 (uri (string-append "https://launchpad.net/xpad/trunk/"
9891 version "/+download/"
9892 name "-" version ".tar.bz2"))
9893 (sha256
9894 (base32
9895 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9896 (build-system gnu-build-system)
9897 (native-inputs
9898 `(("autoconf" ,autoconf)
9899 ("automake" ,automake)
9900 ("gtk+:bin" ,gtk+ "bin")
9901 ("intltool" ,intltool)
9902 ("pkg-config" ,pkg-config)))
9903 (inputs
9904 `(("gtksourceview" ,gtksourceview-3)
9905 ("libsm" ,libsm)))
9906 (home-page "https://wiki.gnome.org/Apps/Xpad")
9907 (synopsis "Virtual sticky note")
9908 (description
9909 "Xpad is a sticky note that strives to be simple, fault tolerant,
9910 and customizable. Xpad consists of independent pad windows, each is
9911 basically a text box in which notes can be written.")
9912 (license license:gpl3+)))
9913
9914 (define-public gucharmap
9915 (let ((unicode-files
9916 '(("Blocks.txt"
9917 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9918 ("DerivedAge.txt"
9919 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9920 ("NamesList.txt"
9921 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9922 ("Scripts.txt"
9923 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9924 ("UnicodeData.txt"
9925 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9926 ("Unihan.zip"
9927 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9928 (package
9929 (name "gucharmap")
9930 (version "12.0.1")
9931 (source
9932 (origin
9933 (method url-fetch)
9934 (uri (string-append "mirror://gnome/sources/" name "/"
9935 (version-major+minor version) "/"
9936 name "-" version ".tar.xz"))
9937 (sha256
9938 (base32
9939 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9940 (build-system glib-or-gtk-build-system)
9941 (arguments
9942 `(#:modules ((ice-9 match)
9943 (guix build glib-or-gtk-build-system)
9944 (guix build utils))
9945 #:configure-flags
9946 (list "--with-unicode-data=../unicode-data")
9947 #:phases
9948 (modify-phases %standard-phases
9949 (add-after 'unpack 'prepare-unicode-data
9950 (lambda* (#:key inputs #:allow-other-keys)
9951 (mkdir-p "../unicode-data")
9952 (with-directory-excursion "../unicode-data"
9953 (for-each (match-lambda
9954 ((file _)
9955 (install-file (assoc-ref inputs file) ".")))
9956 ',unicode-files))
9957 #t)))))
9958 (native-inputs
9959 `(("desktop-file-utils" ,desktop-file-utils)
9960 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9961 ("gobject-introspection" ,gobject-introspection)
9962 ("intltool" ,intltool)
9963 ("itstool" ,itstool)
9964 ("pkg-config" ,pkg-config)
9965 ,@(map (match-lambda
9966 ((file hash)
9967 `(,file
9968 ,(origin
9969 (method url-fetch)
9970 (uri (string-append
9971 "http://www.unicode.org/Public/12.0.0/ucd/"
9972 file))
9973 (sha256 (base32 hash))))))
9974 unicode-files)
9975 ("unzip" ,unzip)))
9976 (inputs
9977 `(("gtk+" ,gtk+)
9978 ("xmllint" ,libxml2)))
9979 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9980 (synopsis "Unicode character picker and font browser")
9981 (description
9982 "This program allows you to browse through all the available Unicode
9983 characters and categories for the installed fonts, and to examine their
9984 detailed properties. It is an easy way to find the character you might
9985 only know by its Unicode name or code point.")
9986 (license license:gpl3+))))
9987
9988 (define-public bluefish
9989 (package
9990 (name "bluefish")
9991 (version "2.2.12")
9992 (source
9993 (origin
9994 (method url-fetch)
9995 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
9996 "bluefish-" version ".tar.gz"))
9997 (sha256
9998 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
9999 (build-system gnu-build-system)
10000 (native-inputs
10001 `(("desktop-file-utils" ,desktop-file-utils)
10002 ("intltool" ,intltool)
10003 ("pkg-config" ,pkg-config)))
10004 (inputs
10005 `(("enchant" ,enchant)
10006 ("gtk+" ,gtk+)
10007 ("python" ,python-wrapper)
10008 ("xmllint" ,libxml2)
10009 ("gucharmap" ,gucharmap)))
10010 (home-page "http://bluefish.openoffice.nl")
10011 (synopsis "Web development studio")
10012 (description
10013 "Bluefish is an editor aimed at programmers and web developers,
10014 with many options to write web sites, scripts and other code.
10015 Bluefish supports many programming and markup languages.")
10016 (license license:gpl3+)))
10017
10018 (define-public gnome-system-monitor
10019 (package
10020 (name "gnome-system-monitor")
10021 (version "3.32.1")
10022 (source
10023 (origin
10024 (method url-fetch)
10025 (uri (string-append "mirror://gnome/sources/" name "/"
10026 (version-major+minor version) "/"
10027 name "-" version ".tar.xz"))
10028 (sha256
10029 (base32
10030 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
10031 (build-system meson-build-system)
10032 (arguments
10033 '(#:glib-or-gtk? #t
10034 #:configure-flags '("-Dsystemd=false")))
10035 (native-inputs
10036 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
10037 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
10038 ("intltool" ,intltool)
10039 ("itstool" ,itstool)
10040 ("libgtop" ,libgtop)
10041 ("polkit" ,polkit)
10042 ("pkg-config" ,pkg-config)))
10043 (inputs
10044 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
10045 ("gtk+" ,gtk+)
10046 ("gtkmm" ,gtkmm)
10047 ("librsvg" ,librsvg)
10048 ("libxml2" ,libxml2)
10049 ("libwnck" ,libwnck)))
10050 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10051 (synopsis "Process viewer and system resource monitor for GNOME")
10052 (description
10053 "GNOME System Monitor is a GNOME process viewer and system monitor with
10054 an attractive, easy-to-use interface. It has features, such as a tree view
10055 for process dependencies, icons for processes, the ability to hide processes,
10056 graphical time histories of CPU/memory/swap usage and the ability to
10057 kill/reinice processes.")
10058 (license license:gpl2+)))
10059
10060 (define-public python-pyatspi
10061 (package
10062 (name "python-pyatspi")
10063 (version "2.34.0")
10064 (source (origin
10065 (method url-fetch)
10066 (uri (string-append
10067 "mirror://gnome/sources/pyatspi/"
10068 (version-major+minor version)
10069 "/pyatspi-" version ".tar.xz"))
10070 (sha256
10071 (base32
10072 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10073 (build-system gnu-build-system)
10074 (arguments
10075 `(#:phases
10076 (modify-phases %standard-phases
10077 (add-before 'build 'fix-atk-load
10078 (lambda _
10079 (substitute* "pyatspi/__init__.py"
10080 (("from gi.repository import Atspi")
10081 "gi.require_version('Gtk', '3.0')
10082 from gi.repository import Gtk
10083 from gi.repository import Atspi"))
10084 #t)))))
10085 (native-inputs
10086 `(("pkg-config" ,pkg-config)))
10087 (inputs
10088 `(("python" ,python)))
10089 (propagated-inputs
10090 `(("python-pygobject" ,python-pygobject)))
10091 (synopsis "Python client bindings for D-Bus AT-SPI")
10092 (home-page "https://wiki.linuxfoundation.org/accessibility\
10093 /atk/at-spi/at-spi_on_d-bus")
10094 (description
10095 "This package includes a python client library for the AT-SPI D-Bus
10096 accessibility infrastructure.")
10097 (license license:lgpl2.0)
10098 (properties '((upstream-name . "pyatspi")))))
10099
10100 (define-public python2-pyatspi
10101 (package/inherit python-pyatspi
10102 (name "python2-pyatspi")
10103 (inputs
10104 `(("python" ,python-2)))
10105 (propagated-inputs
10106 `(("python-pygobject" ,python2-pygobject)))))
10107
10108 (define-public orca
10109 (package
10110 (name "orca")
10111 (version "3.34.1")
10112 (source (origin
10113 (method url-fetch)
10114 (uri (string-append
10115 "mirror://gnome/sources/" name "/"
10116 (version-major+minor version) "/"
10117 name "-" version ".tar.xz"))
10118 (sha256
10119 (base32
10120 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
10121 (build-system glib-or-gtk-build-system)
10122 (arguments
10123 '(#:phases
10124 (modify-phases %standard-phases
10125 (add-before 'configure 'qualify-xkbcomp
10126 (lambda* (#:key inputs #:allow-other-keys)
10127 (let ((xkbcomp (string-append
10128 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10129 (substitute* "src/orca/orca.py"
10130 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
10131 #t))
10132 (add-after 'install 'wrap-orca
10133 (lambda* (#:key outputs #:allow-other-keys)
10134 (let* ((out (assoc-ref outputs "out"))
10135 (prog (string-append out "/bin/orca")))
10136 (wrap-program prog
10137 `("GI_TYPELIB_PATH" ":" prefix
10138 (,(getenv "GI_TYPELIB_PATH")))
10139 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10140 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10141 `("PYTHONPATH" ":" prefix
10142 (,(getenv "PYTHONPATH")))))
10143 #t)))))
10144 (native-inputs
10145 `(("intltool" ,intltool)
10146 ("itstool" ,itstool)
10147 ("pkg-config" ,pkg-config)
10148 ("xmllint" ,libxml2)))
10149 (inputs
10150 `(("at-spi2-atk" ,at-spi2-atk)
10151 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10152 ("gstreamer" ,gstreamer)
10153 ("gst-plugins-base" ,gst-plugins-base)
10154 ("gst-plugins-good" ,gst-plugins-good)
10155 ("gtk+" ,gtk+)
10156 ("python" ,python)
10157 ("python-pygobject" ,python-pygobject)
10158 ("python-pyatspi" ,python-pyatspi)
10159 ("python-speechd" ,speech-dispatcher)
10160 ("xkbcomp" ,xkbcomp)))
10161 (synopsis
10162 "Screen reader for individuals who are blind or visually impaired")
10163 (home-page "https://wiki.gnome.org/Projects/Orca")
10164 (description
10165 "Orca is a screen reader that provides access to the graphical desktop
10166 via speech and refreshable braille. Orca works with applications and toolkits
10167 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10168 (license license:lgpl2.1+)))
10169
10170 (define-public gspell
10171 (package
10172 (name "gspell")
10173 (version "1.8.2")
10174 (source (origin
10175 (method url-fetch)
10176 (uri (string-append "mirror://gnome/sources/" name "/"
10177 (version-major+minor version) "/"
10178 name "-" version ".tar.xz"))
10179 (sha256
10180 (base32
10181 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10182 (patches (search-patches "gspell-dash-test.patch"))))
10183 (build-system glib-or-gtk-build-system)
10184 (arguments
10185 '(#:configure-flags (list "--enable-vala")
10186 #:phases
10187 (modify-phases %standard-phases
10188 (add-before 'check 'pre-check
10189 (lambda* (#:key inputs #:allow-other-keys)
10190 ;; Tests require a running X server.
10191 (system "Xvfb :1 &")
10192 (setenv "DISPLAY" ":1")
10193
10194 ;; For the missing /etc/machine-id.
10195 (setenv "DBUS_FATAL_WARNINGS" "0")
10196
10197 ;; Allow Enchant and its Aspell backend to find the en_US
10198 ;; dictionary.
10199 (setenv "ASPELL_DICT_DIR"
10200 (string-append (assoc-ref inputs "aspell-dict-en")
10201 "/lib/aspell"))
10202 #t)))))
10203 (inputs
10204 `(("gtk+" ,gtk+)
10205 ("glib" ,glib)
10206 ("iso-codes" ,iso-codes)))
10207 (native-inputs
10208 `(("glib" ,glib "bin")
10209 ("gobject-introspection" ,gobject-introspection)
10210 ("pkg-config" ,pkg-config)
10211 ("vala" ,vala) ;for VAPI, needed by Geary
10212 ("xmllint" ,libxml2)
10213
10214 ;; For tests.
10215 ("aspell-dict-en" ,aspell-dict-en)
10216 ("xorg-server" ,xorg-server-for-tests)))
10217 (propagated-inputs
10218 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
10219 (home-page "https://wiki.gnome.org/Projects/gspell")
10220 (synopsis "GNOME's alternative spell checker")
10221 (description
10222 "gspell provides a flexible API to add spell-checking to a GTK+
10223 application. It provides a GObject API, spell-checking to text entries and
10224 text views, and buttons to choose the language.")
10225 (license license:gpl2+)))
10226
10227 (define-public gnome-planner
10228 (package
10229 (name "gnome-planner")
10230 (version "0.14.6")
10231 (source (origin
10232 (method url-fetch)
10233 (uri (string-append "mirror://gnome/sources/planner/"
10234 (version-major+minor version) "/planner-"
10235 version ".tar.xz"))
10236 (sha256
10237 (base32
10238 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10239 (build-system glib-or-gtk-build-system)
10240 (arguments
10241 ;; Disable the Python bindings because the Planner program functions
10242 ;; without them, and (as of 2017-06-13) we have not packaged all of
10243 ;; packages that are necessary for building the Python bindings.
10244 `(#:configure-flags
10245 (list "--disable-python"
10246 ,@(if (string=? "aarch64-linux" (%current-system))
10247 '("--build=aarch64-unknown-linux-gnu")
10248 '()))))
10249 (inputs
10250 `(("libgnomecanvas" ,libgnomecanvas)
10251 ("libgnomeui" ,libgnomeui)
10252 ("libglade" ,libglade)
10253 ("gnome-vfs" ,gnome-vfs)
10254 ("gconf" ,gconf)
10255 ("libxml2" ,libxml2)
10256 ("libxslt" ,libxslt)
10257 ("gtk+" ,gtk+)
10258 ("glib" ,glib)))
10259 (native-inputs
10260 `(("intltool" ,intltool)
10261 ("scrollkeeper" ,scrollkeeper)
10262 ("pkg-config" ,pkg-config)))
10263 (home-page "https://wiki.gnome.org/Apps/Planner")
10264 (synopsis "Project management software for the GNOME desktop")
10265 (description
10266 "GNOME Planner is a project management tool based on the Work Breakdown
10267 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10268 the resources, tasks, and constraints that you define, Planner generates
10269 various views into a project. For example, Planner can show a Gantt chart of
10270 the project. It can show a detailed summary of tasks including their
10271 duration, cost, and current progress. It can also show a report of resource
10272 utilization that highlights under-utilized and over-utilized resources. These
10273 views can be printed as PDF or PostScript files, or exported to HTML.")
10274 (license license:gpl2+)))
10275
10276 (define-public lollypop
10277 (package
10278 (name "lollypop")
10279 (version "1.4.6")
10280 (source
10281 (origin
10282 (method url-fetch)
10283 (uri (string-append "https://adishatz.org/lollypop/"
10284 "lollypop-" version ".tar.xz"))
10285 (sha256
10286 (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
10287 (build-system meson-build-system)
10288 (arguments
10289 `(#:imported-modules
10290 (,@%meson-build-system-modules
10291 (guix build python-build-system))
10292 #:modules
10293 ((guix build meson-build-system)
10294 ((guix build python-build-system) #:prefix python:)
10295 (guix build utils))
10296 #:glib-or-gtk? #t
10297 #:tests? #f ; no test suite
10298 #:phases
10299 (modify-phases %standard-phases
10300 (add-after 'install 'wrap-program
10301 (lambda* (#:key outputs #:allow-other-keys)
10302 (let ((out (assoc-ref outputs "out"))
10303 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10304 (wrap-program (string-append out "/bin/lollypop")
10305 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10306 #t))
10307 (add-after 'install 'wrap-python
10308 (assoc-ref python:%standard-phases 'wrap)))))
10309 (native-inputs
10310 `(("intltool" ,intltool)
10311 ("itstool" ,itstool)
10312 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10313 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10314 ("pkg-config" ,pkg-config)))
10315 (inputs
10316 `(("glib-networking" ,glib-networking)
10317 ("gobject-introspection" ,gobject-introspection)
10318 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10319 ("gst-plugins-base" ,gst-plugins-base)
10320 ("libnotify" ,libnotify)
10321 ("libsecret" ,libsecret)
10322 ("libhandy" ,libhandy)
10323 ("libsoup" ,libsoup)
10324 ("python" ,python)
10325 ("python-beautifulsoup4" ,python-beautifulsoup4)
10326 ("python-gst" ,python-gst)
10327 ("python-pil" ,python-pillow)
10328 ("python-pycairo" ,python-pycairo)
10329 ("python-pygobject" ,python-pygobject)
10330 ("python-pylast" ,python-pylast)
10331 ("totem-pl-parser" ,totem-pl-parser)
10332 ("webkitgtk" ,webkitgtk)))
10333 (propagated-inputs
10334 `(;; gst-plugins-base is required to start Lollypop,
10335 ;; the others are required to play streaming.
10336 ("gst-plugins-good" ,gst-plugins-good)
10337 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10338 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10339 (synopsis "GNOME music playing application")
10340 (description
10341 "Lollypop is a music player designed to play well with GNOME desktop.
10342 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10343 from artists and tracks from the web. It also fetches cover artworks
10344 automatically and it can stream songs from online music services and charts.")
10345 (license license:gpl3+)))
10346
10347 (define-public gnome-video-effects
10348 (package
10349 (name "gnome-video-effects")
10350 (version "0.5.0")
10351 (source (origin
10352 (method url-fetch)
10353 (uri (string-append "mirror://gnome/sources/" name "/"
10354 (version-major+minor version) "/" name "-"
10355 version ".tar.xz"))
10356 (sha256
10357 (base32
10358 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10359 (build-system meson-build-system)
10360 (native-inputs
10361 `(("gettext" ,gettext-minimal)
10362 ("pkg-config" ,pkg-config)))
10363 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10364 (synopsis "Video effects for Cheese and other GNOME applications")
10365 (description
10366 "A collection of GStreamer video filters and effects to be used in
10367 photo-booth-like software, such as Cheese.")
10368 (license license:gpl2+)))
10369
10370 (define-public cheese
10371 (package
10372 (name "cheese")
10373 (version "3.38.0")
10374 (source (origin
10375 (method url-fetch)
10376 (uri (string-append "mirror://gnome/sources/" name "/"
10377 (version-major+minor version) "/" name "-"
10378 version ".tar.xz"))
10379 (sha256
10380 (base32
10381 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10382 (arguments
10383 `(#:glib-or-gtk? #t
10384 ;; Tests require GDK.
10385 #:tests? #f
10386 #:phases
10387 (modify-phases %standard-phases
10388 (add-after 'unpack 'skip-gtk-update-icon-cache
10389 (lambda _
10390 ;; Don't create 'icon-theme.cache'
10391 (substitute* "meson_post_install.py"
10392 (("gtk-update-icon-cache") (which "true")))
10393 #t))
10394 (add-after 'unpack 'patch-docbook-xml
10395 (lambda* (#:key inputs #:allow-other-keys)
10396 ;; Avoid a network connection attempt during the build.
10397 (substitute* '("docs/reference/cheese.xml"
10398 "docs/reference/cheese-docs.xml")
10399 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10400 (string-append (assoc-ref inputs "docbook-xml")
10401 "/xml/dtd/docbook/docbookx.dtd")))
10402 #t))
10403 (add-after 'install 'wrap-cheese
10404 (lambda* (#:key inputs outputs #:allow-other-keys)
10405 (let ((out (assoc-ref outputs "out"))
10406 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10407 (wrap-program (string-append out "/bin/cheese")
10408 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10409 #t)))))
10410 (build-system meson-build-system)
10411 (native-inputs
10412 `(("docbook-xsl" ,docbook-xsl)
10413 ("docbook-xml" ,docbook-xml-4.3)
10414 ("gettext" ,gettext-minimal)
10415 ("glib:bin" ,glib "bin")
10416 ("gtk-doc" ,gtk-doc)
10417 ("itstool" ,itstool)
10418 ("libxml2" ,libxml2)
10419 ("libxslt" ,libxslt)
10420 ("pkg-config" ,pkg-config)
10421 ("vala" ,vala)))
10422 (propagated-inputs
10423 `(("gnome-video-effects" ,gnome-video-effects)
10424 ("clutter" ,clutter)
10425 ("clutter-gst" ,clutter-gst)
10426 ("clutter-gtk" ,clutter-gtk)
10427 ("libcanberra" ,libcanberra)
10428 ("gdk-pixbuf" ,gdk-pixbuf)
10429 ("glib" ,glib)
10430 ("gstreamer" ,gstreamer)))
10431 (inputs
10432 `(("gnome-desktop" ,gnome-desktop)
10433 ("gobject-introspection" ,gobject-introspection)
10434 ("gst-plugins-base" ,gst-plugins-base)
10435 ("gst-plugins-good" ,gst-plugins-good)
10436 ("gst-plugins-bad" ,gst-plugins-bad)
10437 ("gtk+" ,gtk+)
10438 ("libx11" ,libx11)
10439 ("libxtst" ,libxtst)))
10440 (home-page "https://wiki.gnome.org/Apps/Cheese")
10441 (synopsis "Webcam photo booth software for GNOME")
10442 (description
10443 "Cheese uses your webcam to take photos and videos. Cheese can also
10444 apply fancy special effects and lets you share the fun with others.")
10445 (license license:gpl2+)))
10446
10447 (define-public passwordsafe
10448 (package
10449 (name "passwordsafe")
10450 (version "3.99.2")
10451 (source
10452 (origin
10453 (method git-fetch)
10454 (uri (git-reference
10455 (url "https://gitlab.gnome.org/World/PasswordSafe")
10456 (commit version)))
10457 (file-name (git-file-name name version))
10458 (sha256
10459 (base32 "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf"))))
10460 (build-system meson-build-system)
10461 (arguments
10462 `(#:glib-or-gtk? #t
10463 #:phases
10464 (modify-phases %standard-phases
10465 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10466 (lambda* (#:key outputs #:allow-other-keys)
10467 (let ((prog (string-append (assoc-ref outputs "out")
10468 "/bin/gnome-passwordsafe"))
10469 (pylib (string-append (assoc-ref outputs "out")
10470 "/lib/python"
10471 ,(version-major+minor
10472 (package-version python))
10473 "/site-packages")))
10474 (wrap-program prog
10475 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10476 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10477 #t))))))
10478 (native-inputs
10479 `(("desktop-file-utils" ,desktop-file-utils)
10480 ("gettext" ,gettext-minimal)
10481 ("glib:bin" ,glib "bin")
10482 ("gobject-introspection" ,gobject-introspection)
10483 ("gtk+:bin" ,gtk+ "bin")
10484 ("pkg-config" ,pkg-config)))
10485 (inputs
10486 `(("glib" ,glib)
10487 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10488 ("gtk+" ,gtk+)
10489 ("libhandy" ,libhandy-0.0)
10490 ("libpwquality" ,libpwquality)
10491 ("python-pygobject" ,python-pygobject)
10492 ("python-pykeepass" ,python-pykeepass)))
10493 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
10494 (synopsis "Password manager for the GNOME desktop")
10495 (description
10496 "Password Safe is a password manager which makes use of the KeePass v4
10497 format. It integrates perfectly with the GNOME desktop and provides an easy
10498 and uncluttered interface for the management of password databases.")
10499 (license license:gpl3+)))
10500
10501 (define-public sound-juicer
10502 (package
10503 (name "sound-juicer")
10504 (version "3.24.0")
10505 (source
10506 (origin
10507 (method url-fetch)
10508 (uri (string-append "mirror://gnome/sources/" name "/"
10509 (version-major+minor version) "/"
10510 name "-" version ".tar.xz"))
10511 (sha256
10512 (base32
10513 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10514 (build-system glib-or-gtk-build-system)
10515 (native-inputs
10516 `(("desktop-file-utils" ,desktop-file-utils)
10517 ("intltool" ,intltool)
10518 ("itstool" ,itstool)
10519 ("pkg-config" ,pkg-config)
10520 ("xmllint" ,libxml2)))
10521 (inputs
10522 `(("gtk+" ,gtk+)
10523 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10524 ("gstreamer" ,gstreamer)
10525 ("gst-plugins-base" ,gst-plugins-base)
10526 ("gst-plugins-good" ,gst-plugins-good)
10527 ("iso-codes" ,iso-codes)
10528 ("libbrasero-media3" ,brasero)
10529 ("libcanberra" ,libcanberra)
10530 ("libdiscid" ,libdiscid)
10531 ("libmusicbrainz" ,libmusicbrainz)
10532 ("neon" ,neon)))
10533 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10534 (synopsis "Audio music cd ripper")
10535 (description "Sound Juicer extracts audio from compact discs and convert it
10536 into audio files that a personal computer or digital audio player can play.
10537 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10538 mp3, Ogg Vorbis and FLAC")
10539 (license license:gpl2+)))
10540
10541 (define-public soundconverter
10542 (package
10543 (name "soundconverter")
10544 (version "3.0.2")
10545 (source
10546 (origin
10547 (method url-fetch)
10548 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10549 version "/+download/"
10550 "soundconverter-" version ".tar.xz"))
10551
10552 (sha256
10553 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10554 (build-system glib-or-gtk-build-system)
10555 (arguments
10556 `(#:imported-modules ((guix build python-build-system)
10557 (guix build glib-or-gtk-build-system)
10558 ,@%gnu-build-system-modules)
10559
10560 #:modules ((guix build glib-or-gtk-build-system)
10561 (guix build utils)
10562 ((guix build gnu-build-system) #:prefix gnu:)
10563 ((guix build python-build-system) #:prefix python:))
10564
10565 #:phases
10566 (modify-phases %standard-phases
10567 (add-after 'install 'wrap-soundconverter-for-python
10568 (assoc-ref python:%standard-phases 'wrap))
10569 (add-after 'install 'wrap-soundconverter
10570 (lambda* (#:key inputs outputs #:allow-other-keys)
10571 (let ((out (assoc-ref outputs "out"))
10572 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10573 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10574 (wrap-program (string-append out "/bin/soundconverter")
10575 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10576 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10577 #t)))))
10578 (native-inputs
10579 `(("intltool" ,intltool)
10580 ("pkg-config" ,pkg-config)
10581 ("glib:bin" ,glib "bin")))
10582 (inputs
10583 `(("gtk+" ,gtk+)
10584 ("python" ,python)
10585 ("python-pygobject" ,python-pygobject)
10586 ("gstreamer" ,gstreamer)
10587 ("gst-plugins-base" ,gst-plugins-base)))
10588 (home-page "https://soundconverter.org/")
10589 (synopsis "Convert between audio formats with a graphical interface")
10590 (description
10591 "SoundConverter supports converting between many audio formats including
10592 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10593 configurable file renaming. ")
10594 (license license:gpl3)))
10595
10596 (define-public workrave
10597 (package
10598 (name "workrave")
10599 (version "1.10.42")
10600 (source
10601 (origin
10602 (method git-fetch)
10603 (uri (git-reference
10604 (url "https://github.com/rcaelers/workrave")
10605 (commit (string-append "v" (string-map
10606 (match-lambda (#\. #\_) (chr chr))
10607 version)))))
10608 (file-name (git-file-name name version))
10609 (sha256
10610 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
10611 (build-system glib-or-gtk-build-system)
10612 (arguments
10613 ;; The only tests are maintainer tests (in po/), which fail.
10614 `(#:tests? #f))
10615 (inputs `(("glib" ,glib)
10616 ("gtk+" ,gtk+)
10617 ("gdk-pixbuf" ,gdk-pixbuf)
10618 ("gtkmm" ,gtkmm)
10619 ("glibmm" ,glibmm)
10620 ("libx11" ,libx11)
10621 ("libxtst" ,libxtst)
10622 ("dconf" ,dconf)
10623 ("libice" ,libice)
10624 ("libsm" ,libsm)
10625 ("libxscrnsaver" ,libxscrnsaver)))
10626 (native-inputs `(("boost" ,boost)
10627 ("pkg-config" ,pkg-config)
10628 ("gettext" ,gettext-minimal)
10629 ("autoconf" ,autoconf)
10630 ("autoconf-archive" , autoconf-archive)
10631 ("automake" ,automake)
10632 ("libtool" ,libtool)
10633 ("intltool" ,intltool)
10634 ("gobject-introspection" ,gobject-introspection)
10635 ("python3" ,python-3)
10636 ("python-jinja2" ,python-jinja2)))
10637 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10638 (description
10639 "Workrave is a program that assists in the recovery and prevention of
10640 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10641 micro-pauses and rest breaks, and restricts you to your daily limit.")
10642 (home-page "http://www.workrave.org")
10643 (license license:gpl3+)))
10644
10645 (define-public ghex
10646 (package
10647 (name "ghex")
10648 (version "3.18.4")
10649 (source (origin
10650 (method url-fetch)
10651 (uri (string-append "mirror://gnome/sources/ghex/"
10652 (version-major+minor version) "/"
10653 "ghex-" version ".tar.xz"))
10654 (sha256
10655 (base32
10656 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10657 (build-system meson-build-system)
10658 (arguments
10659 '(#:glib-or-gtk? #t
10660 #:phases
10661 (modify-phases %standard-phases
10662 (add-after 'unpack 'skip-gtk-update-icon-cache
10663 ;; Don't create 'icon-theme.cache'.
10664 (lambda _
10665 (substitute* "meson_post_install.py"
10666 (("gtk-update-icon-cache") (which "true")))
10667 #t)))))
10668 (native-inputs
10669 `(("pkg-config" ,pkg-config)
10670 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10671 ("gnome-common" ,gnome-common)
10672 ("which" ,which)
10673 ("intltool" ,intltool)
10674 ("yelp-tools" ,yelp-tools)
10675 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10676 (inputs
10677 `(("atk" ,atk)
10678 ("gtk" ,gtk+)))
10679 (synopsis "GNOME hexadecimal editor")
10680 (description "The GHex program can view and edit files in two ways:
10681 hexadecimal or ASCII. It is useful for editing binary files in general.")
10682 (home-page "https://wiki.gnome.org/Apps/Ghex")
10683 (license license:gpl2)))
10684
10685 (define-public libdazzle
10686 (package
10687 (name "libdazzle")
10688 (version "3.37.1")
10689 (source (origin
10690 (method url-fetch)
10691 (uri (string-append "mirror://gnome/sources/libdazzle/"
10692 (version-major+minor version) "/"
10693 "libdazzle-" version ".tar.xz"))
10694 (sha256
10695 (base32
10696 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10697 (build-system meson-build-system)
10698 (arguments
10699 `(#:phases
10700 (modify-phases %standard-phases
10701 (add-before 'check 'pre-check
10702 (lambda _
10703 ;; Tests require a running X server.
10704 (system "Xvfb :1 &")
10705 (setenv "DISPLAY" ":1")
10706 #t)))))
10707 (native-inputs
10708 `(("glib" ,glib "bin") ; glib-compile-resources
10709 ("pkg-config" ,pkg-config)
10710 ;; For tests.
10711 ("xorg-server" ,xorg-server-for-tests)))
10712 (inputs
10713 `(("glib" ,glib)
10714 ("gobject-introspection" ,gobject-introspection)
10715 ("gtk+" ,gtk+)
10716 ("vala" ,vala)))
10717 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10718 (synopsis "Companion library to GObject and Gtk+")
10719 (description "The libdazzle library is a companion library to GObject and
10720 Gtk+. It provides various features that the authors wish were in the
10721 underlying library but cannot for various reasons. In most cases, they are
10722 wildly out of scope for those libraries. In other cases, they are not quite
10723 generic enough to work for everyone.")
10724 (license license:gpl3+)))
10725
10726 (define-public evolution
10727 (package
10728 (name "evolution")
10729 (version "3.34.2")
10730 (source (origin
10731 (method url-fetch)
10732 (uri (string-append "mirror://gnome/sources/evolution/"
10733 (version-major+minor version) "/"
10734 "evolution-" version ".tar.xz"))
10735 (sha256
10736 (base32
10737 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))
10738 (patches (search-patches "evolution-CVE-2020-11879.patch"))))
10739 (build-system cmake-build-system)
10740 (arguments
10741 `(#:imported-modules (,@%cmake-build-system-modules
10742 (guix build glib-or-gtk-build-system))
10743 #:modules ((guix build cmake-build-system)
10744 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10745 (guix build utils))
10746 #:configure-flags
10747 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10748 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10749 ; in four years and cannot be built.
10750 #:phases
10751 (modify-phases %standard-phases
10752 ;; The build system attempts to install user interface modules to the
10753 ;; output directory of the "evolution-data-server" package. This
10754 ;; change redirects that change.
10755 (add-after 'unpack 'patch-ui-module-dir
10756 (lambda* (#:key outputs #:allow-other-keys)
10757 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10758 (("\\$\\{edsuimoduledir\\}")
10759 (string-append (assoc-ref outputs "out")
10760 "/lib/evolution-data-server/ui-modules")))
10761 #t))
10762 (add-after 'install 'glib-or-gtk-compile-schemas
10763 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10764 (add-after 'install 'glib-or-gtk-wrap
10765 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10766 (native-inputs
10767 `(("glib" ,glib "bin") ; glib-mkenums
10768 ("pkg-config" ,pkg-config)
10769 ("intltool" ,intltool)
10770 ("itstool" ,itstool)))
10771 (inputs
10772 `(("enchant" ,enchant)
10773 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10774 ("gcr" ,gcr)
10775 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10776 ("gnome-autoar" ,gnome-autoar)
10777 ("gnome-desktop" ,gnome-desktop)
10778 ("gspell" ,gspell)
10779 ("highlight" ,highlight)
10780 ("libcanberra" ,libcanberra)
10781 ("libgweather" ,libgweather)
10782 ("libnotify" ,libnotify)
10783 ("libsoup" ,libsoup)
10784 ("nss" ,nss)
10785 ("openldap" ,openldap)
10786 ("webkitgtk" ,webkitgtk)
10787 ("ytnef" ,ytnef)))
10788 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10789 (synopsis "Manage your email, contacts and schedule")
10790 (description "Evolution is a personal information management application
10791 that provides integrated mail, calendaring and address book
10792 functionality.")
10793 ;; See COPYING for details.
10794 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10795 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10796 license:lgpl2.1+)))) ; smime/lib/*
10797
10798 (define-public gthumb
10799 (package
10800 (name "gthumb")
10801 (version "3.10.2")
10802 (source (origin
10803 (method url-fetch)
10804 (uri (string-append "mirror://gnome/sources/gthumb/"
10805 (version-major+minor version) "/"
10806 "gthumb-" version ".tar.xz"))
10807 (sha256
10808 (base32
10809 "14sw8d37g1lkp44dwsgyxjjsgh5pnpp4wq00mcy9p3rp30lf9spx"))))
10810 (build-system meson-build-system)
10811 (arguments
10812 `(#:glib-or-gtk? #t
10813 #:configure-flags
10814 ;; Ensure the RUNPATH contains all installed library locations.
10815 (list (string-append "-Dc_link_args=-Wl,-rpath="
10816 (assoc-ref %outputs "out")
10817 "/lib/gthumb/extensions")
10818 (string-append "-Dcpp_link_args=-Wl,-rpath="
10819 (assoc-ref %outputs "out")
10820 "/lib/gthumb/extensions"))))
10821 (native-inputs
10822 `(("pkg-config" ,pkg-config)
10823 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10824 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10825 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10826 ("intltool" ,intltool)
10827 ("itstool" ,itstool)))
10828 (inputs
10829 `(("exiv2" ,exiv2)
10830 ("gtk" ,gtk+)
10831 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10832 ("gstreamer" ,gstreamer)
10833 ("clutter" ,clutter)
10834 ("clutter-gst" ,clutter-gst)
10835 ("clutter-gtk" ,clutter-gtk)
10836 ("libjpeg" ,libjpeg-turbo)
10837 ("libtiff" ,libtiff)
10838 ("libraw" ,libraw)))
10839 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10840 (synopsis "GNOME image viewer and browser")
10841 (description "GThumb is an image viewer, browser, organizer, editor and
10842 advanced image management tool")
10843 (license license:gpl2+)))
10844
10845 (define-public terminator
10846 (package
10847 (name "terminator")
10848 (version "2.1.0")
10849 (source
10850 (origin
10851 (method url-fetch)
10852 (uri (string-append "https://github.com/gnome-terminator/terminator/"
10853 "releases/download/v" version "/"
10854 name "-" version ".tar.gz"))
10855 (sha256
10856 (base32
10857 "1vap4li2i24l1iz2q4b8wvhj8flamarf18xcmzq5ik2vzcrisbjy"))))
10858 (build-system python-build-system)
10859 (native-inputs
10860 `(("gettext" ,gettext-minimal)
10861 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10862 ("gobject-introspection" ,gobject-introspection)
10863 ("intltool" ,intltool)
10864 ("pkg-config" ,pkg-config)
10865 ("python-psutil" ,python-psutil)
10866 ("python-pytest-runner" ,python-pytest-runner)
10867 ("python-pytest" ,python-pytest)))
10868 (inputs
10869 `(("cairo" ,cairo)
10870 ("dbus-glib" ,dbus-glib)
10871 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10872 ("gtk+" ,gtk+)
10873 ("python" ,python-wrapper)
10874 ("python-dbus" ,python-dbus)
10875 ("python-notify2" ,python-notify2)
10876 ("python-pycairo" ,python-pycairo)
10877 ("python-pygobject" ,python-pygobject)
10878 ("vte" ,vte)))
10879 (propagated-inputs
10880 `(("python-configobj" ,python-configobj)))
10881 (arguments
10882 ;; One test out of 28 fails due to dbus-python and python-notify; skip
10883 ;; tests.
10884 `(#:tests? #f
10885 #:imported-modules ((guix build glib-or-gtk-build-system)
10886 ,@%python-build-system-modules)
10887 #:modules ((guix build python-build-system)
10888 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10889 (guix build utils))
10890 #:phases
10891 (modify-phases %standard-phases
10892 (add-after 'unpack 'handle-dbus-python
10893 (lambda _
10894 ;; python-dbus cannot be found but it's really there. See
10895 ;; https://github.com/SpotlightKid/jack-select/issues/2
10896 (substitute* "setup.py"
10897 (("'dbus-python',") ""))
10898 #t))
10899 (add-after 'install 'wrap-program
10900 (lambda* (#:key outputs #:allow-other-keys)
10901 (let ((prog (string-append (assoc-ref outputs "out")
10902 "/bin/terminator"))
10903 (pylib (string-append (assoc-ref outputs "out")
10904 "/lib/python"
10905 ,(version-major+minor
10906 (package-version python))
10907 "/site-packages")))
10908 (wrap-program prog
10909 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10910 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10911 #t)))
10912 (add-after 'wrap-program 'glib-or-gtk-wrap
10913 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10914 (home-page "https://gnome-terminator.org/")
10915 (synopsis "Store and run multiple GNOME terminals in one window")
10916 (description
10917 "Terminator allows you to run multiple GNOME terminals in a grid and
10918 tabs, and it supports drag and drop re-ordering of terminals.")
10919 (license license:gpl2)))
10920
10921 (define-public libhandy
10922 (package
10923 (name "libhandy")
10924 (version "1.2.0")
10925 (source
10926 (origin
10927 (method git-fetch)
10928 (uri (git-reference
10929 (url "https://gitlab.gnome.org/GNOME/libhandy")
10930 (commit version)))
10931 (file-name (git-file-name name version))
10932 (sha256
10933 (base32 "1a8wfgm2jd3gcbk1nzhq6f2xq7vkxdc9qky8p9k0za9gqi7xfg4v"))))
10934 (build-system meson-build-system)
10935 (arguments
10936 `(#:configure-flags
10937 '("-Dglade_catalog=enabled"
10938 "-Dgtk_doc=true")
10939 #:phases
10940 (modify-phases %standard-phases
10941 (add-before 'check 'pre-check
10942 (lambda _
10943 ;; Tests require a running X server.
10944 (system "Xvfb :1 &")
10945 (setenv "DISPLAY" ":1")
10946 #t)))))
10947 (inputs
10948 `(("gtk+" ,gtk+)
10949 ("glade" ,glade3)
10950 ("libxml2" ,libxml2)))
10951 (native-inputs
10952 `(("glib:bin" ,glib "bin")
10953 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10954 ("vala" ,vala)
10955 ("gtk-doc" ,gtk-doc)
10956 ("pkg-config" ,pkg-config)
10957 ("gettext" ,gettext-minimal)
10958
10959 ;; Test suite dependencies.
10960 ("xorg-server" ,xorg-server-for-tests)
10961 ("hicolor-icon-theme" ,hicolor-icon-theme)))
10962 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
10963 (synopsis "Library full of GTK+ widgets for mobile phones")
10964 (description "The aim of the handy library is to help with developing user
10965 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10966 for usage on small and big screens.")
10967 (license license:lgpl2.1+)))
10968
10969 (define-public libhandy-0.0
10970 (package
10971 (inherit libhandy)
10972 (version "0.0.13")
10973 (source
10974 (origin
10975 (method git-fetch)
10976 (uri (git-reference
10977 (url "https://gitlab.gnome.org/GNOME/libhandy")
10978 (commit (string-append "v" version))))
10979 (file-name (git-file-name "libhandy" version))
10980 (sha256
10981 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
10982 (arguments
10983 (substitute-keyword-arguments (package-arguments libhandy)
10984 ((#:configure-flags flags)
10985 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
10986
10987 (define-public libgit2-glib
10988 (package
10989 (name "libgit2-glib")
10990 (version "0.99.0.1")
10991 (source (origin
10992 (method url-fetch)
10993 (uri (string-append "mirror://gnome/sources/" name "/"
10994 (version-major+minor version) "/"
10995 name "-" version ".tar.xz"))
10996 (sha256
10997 (base32
10998 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10999 (build-system meson-build-system)
11000 (native-inputs
11001 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
11002 ("gobject-introspection" ,gobject-introspection)
11003 ("pkg-config" ,pkg-config)
11004 ("python-pygobject" ,python-pygobject)
11005 ("python-wrapper" ,python-wrapper)
11006 ("vala" ,vala)))
11007 (inputs
11008 `(("glib" ,glib)
11009 ("libssh2" ,libssh2)))
11010 (propagated-inputs
11011 `(;; In Requires of libgit2-glib.pc.
11012 ("libgit2" ,libgit2)))
11013 (synopsis "GLib wrapper around the libgit2 Git access library")
11014 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11015 access library. It only implements the core plumbing functions, not really the
11016 higher level porcelain stuff.")
11017 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11018 (license license:gpl2+)))
11019
11020 (define-public gitg
11021 (package
11022 (name "gitg")
11023 (version "3.32.1")
11024 (source (origin
11025 (method url-fetch)
11026 (uri (string-append "mirror://gnome/sources/" name "/"
11027 (version-major+minor version) "/"
11028 name "-" version ".tar.xz"))
11029 (sha256
11030 (base32
11031 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
11032 (build-system meson-build-system)
11033 (arguments
11034 `(#:glib-or-gtk? #t
11035 #:phases
11036 (modify-phases %standard-phases
11037 (add-after 'unpack 'disable-post-install-partially
11038 (lambda _
11039 (substitute* "meson_post_install.py"
11040 (("'python'") ; there are no python sources to compile
11041 (string-append "'" (which "true") "'"))
11042 (("gtk-update-icon-cache") (which "true")))
11043 #t))
11044 (add-after 'unpack 'fix-test-sources
11045 (lambda _
11046 (substitute* "tests/libgitg/test-commit.vala"
11047 (("/bin/bash") (which "bash")))
11048 #t))
11049 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11050 (lambda* (#:key outputs #:allow-other-keys)
11051 (let ((prog (string-append (assoc-ref outputs "out")
11052 "/bin/gitg")))
11053 (wrap-program prog
11054 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11055 #t))))))
11056 (inputs
11057 `(("glib" ,glib)
11058 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11059 ("gtk+" ,gtk+)
11060 ("gtkspell3" ,gtkspell3)
11061 ("gtksourceview" ,gtksourceview-3)
11062 ("json-glib" ,json-glib)
11063 ("libdazzle" ,libdazzle)
11064 ("libgee" ,libgee)
11065 ("libgit2-glib" ,libgit2-glib)
11066 ("libpeas" ,libpeas)
11067 ("libsecret" ,libsecret)
11068 ("libsoup" ,libsoup)
11069 ("libxml2" ,libxml2)))
11070 (native-inputs
11071 `(("glib:bin" ,glib "bin")
11072 ("gtk+:bin" ,gtk+ "bin")
11073 ("gobject-introspection" ,gobject-introspection)
11074 ("intltool" ,intltool)
11075 ("pkg-config" ,pkg-config)
11076 ("vala" ,vala)))
11077 (synopsis "Graphical user interface for git")
11078 (description
11079 "gitg is a graphical user interface for git. It aims at being a small,
11080 fast and convenient tool to visualize the history of git repositories.
11081 Besides visualization, gitg also provides several utilities to manage your
11082 repository and commit your work.")
11083 (home-page "https://wiki.gnome.org/Apps/Gitg")
11084 (license license:gpl2+)))
11085
11086 (define-public gamin
11087 (package
11088 (name "gamin")
11089 (version "0.1.10")
11090 (source (origin
11091 (method url-fetch)
11092 (uri (string-append "mirror://gnome/sources/" name "/"
11093 (version-major+minor version) "/"
11094 name "-" version ".tar.bz2"))
11095 (sha256
11096 (base32
11097 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11098 (build-system gnu-build-system)
11099 (arguments
11100 `(#:phases
11101 (modify-phases %standard-phases
11102 (add-after 'unpack 'remove-deprecated-macro
11103 (lambda _
11104 (substitute* '("server/gam_node.c"
11105 "server/gam_subscription.h"
11106 "server/gam_node.h"
11107 "server/gam_subscription.c")
11108 (("G_CONST_RETURN") "const"))
11109 #t)))))
11110 (inputs
11111 `(("glib" ,glib)))
11112 (native-inputs
11113 `(("intltool" ,intltool)
11114 ("pkg-config" ,pkg-config)))
11115 (home-page "https://people.gnome.org/~veillard/gamin/")
11116 (synopsis "File alteration monitor")
11117 (description
11118 "Gamin is a file and directory monitoring system defined to be a subset
11119 of the FAM (File Alteration Monitor) system. This is a service provided by a
11120 library which detects when a file or a directory has been modified.")
11121 (license license:gpl2+)))
11122
11123 (define-public gnome-mahjongg
11124 (package
11125 (name "gnome-mahjongg")
11126 (version "3.35.1")
11127 (source (origin
11128 (method git-fetch)
11129 (uri (git-reference
11130 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
11131 (commit version)))
11132 (file-name (git-file-name name version))
11133 (sha256
11134 (base32
11135 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
11136 (build-system meson-build-system)
11137 (arguments
11138 `(#:glib-or-gtk? #t))
11139 (native-inputs
11140 `(("appstream-glib" ,appstream-glib)
11141 ("gettext" ,gettext-minimal)
11142 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11143 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11144 ("itstool" ,itstool)
11145 ("pkg-config" ,pkg-config)
11146 ("vala" ,vala)))
11147 (propagated-inputs
11148 `(("dconf" ,dconf)))
11149 (inputs
11150 `(("glib" ,glib)
11151 ("gtk+" ,gtk+)
11152 ("librsvg" ,librsvg)))
11153 (synopsis "Mahjongg tile-matching game")
11154 (description "GNOME Mahjongg is a game based on the classic Chinese
11155 tile-matching game Mahjong. It features multiple board layouts, tile themes,
11156 and a high score table.")
11157 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11158 (license license:gpl2+)))
11159
11160 (define-public gnome-themes-extra
11161 (package
11162 (name "gnome-themes-extra")
11163 (version "3.28")
11164 (source
11165 (origin
11166 (method url-fetch)
11167 (uri (string-append "mirror://gnome/sources/" name "/"
11168 (version-major+minor version) "/" name "-"
11169 version ".tar.xz"))
11170 (sha256
11171 (base32
11172 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11173 (build-system gnu-build-system)
11174 (arguments
11175 '(#:configure-flags
11176 ;; Don't create 'icon-theme.cache'.
11177 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11178 (true (string-append coreutils "/bin/true")))
11179 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11180 (native-inputs
11181 `(("glib:bin" ,glib "bin")
11182 ("intltool" ,intltool)
11183 ("pkg-config" ,pkg-config)))
11184 (inputs
11185 `(("glib" ,glib)
11186 ("gtk+" ,gtk+)
11187 ("gtk+-2" ,gtk+-2)
11188 ("librsvg" ,librsvg)
11189 ("libxml2" ,libxml2)))
11190 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11191 (synopsis "GNOME Extra Themes")
11192 (description "This package provides themes and related elements that don't
11193 really fit in other upstream packages. It offers legacy support for GTK+ 2
11194 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11195 index files needed for Adwaita to be used outside of GNOME.")
11196 (license license:lgpl2.1+)))
11197
11198 (define-public gnote
11199 (package
11200 (name "gnote")
11201 (version "3.38.1")
11202 (source
11203 (origin
11204 (method url-fetch)
11205 (uri (string-append "mirror://gnome/sources/" name "/"
11206 (version-major+minor version) "/"
11207 "gnote-" version ".tar.xz"))
11208 (sha256
11209 (base32 "1adjfjhmsm2d33999khjyzvli6kiz1jlzavn77jhd49kfzhxa9y4"))))
11210 (build-system glib-or-gtk-build-system)
11211 (native-inputs
11212 `(("desktop-file-utils" ,desktop-file-utils)
11213 ("glib:bin" ,glib "bin")
11214 ("gobject-introspection" ,gobject-introspection)
11215 ("intltool" ,intltool)
11216 ("itstool" ,itstool)
11217 ("pkg-config" ,pkg-config)
11218 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
11219 (inputs
11220 `(("glibmm" ,glibmm)
11221 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11222 ("gspell" ,gspell)
11223 ("gtk+" ,gtk+)
11224 ("gtkmm" ,gtkmm)
11225 ("libsecret" ,libsecret)
11226 ("libuuid" ,util-linux "lib")
11227 ("libxml2" ,libxml2)
11228 ("libxslt" ,libxslt)))
11229 (synopsis "Note-taking application for the GNOME desktop")
11230 (description
11231 "Gnote is a note-taking application written for the GNOME desktop
11232 environment.")
11233 (home-page "https://wiki.gnome.org/Apps/Gnote")
11234 (license license:gpl3+)))
11235
11236 (define-public polari
11237 (package
11238 (name "polari")
11239 (version "3.36.3")
11240 (source (origin
11241 (method url-fetch)
11242 (uri (string-append "mirror://gnome/sources/polari/"
11243 (version-major+minor version)
11244 "/polari-" version ".tar.xz"))
11245 (sha256
11246 (base32
11247 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11248 (build-system meson-build-system)
11249 (arguments
11250 `(#:glib-or-gtk? #t
11251 #:phases
11252 (modify-phases %standard-phases
11253 (add-after 'unpack 'skip-gtk-update-icon-cache
11254 (lambda _
11255 (substitute* "meson/meson-postinstall.sh"
11256 (("gtk-update-icon-cache") (which "true")))
11257 #t))
11258 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11259 (lambda* (#:key outputs #:allow-other-keys)
11260 (let ((prog (string-append (assoc-ref outputs "out")
11261 "/bin/polari")))
11262 (wrap-program prog
11263 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11264 #t))))))
11265 (inputs
11266 `(("glib" ,glib)
11267 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11268 ("gspell" ,gspell)
11269 ("gtk+" ,gtk+)
11270 ("gjs" ,gjs)
11271 ("libsecret" ,libsecret)
11272 ("libsoup" ,libsoup)
11273 ("telepathy-glib" ,telepathy-glib)
11274 ("telepathy-logger" ,telepathy-logger)))
11275 (native-inputs
11276 `(("glib:bin" ,glib "bin")
11277 ("gobject-introspection" ,gobject-introspection)
11278 ("intltool" ,intltool)
11279 ("pkg-config" ,pkg-config)
11280 ("yelp-tools" ,yelp-tools)))
11281 (propagated-inputs
11282 `(("telepathy-idle" ,telepathy-idle)
11283 ("telepathy-mission-control" ,telepathy-mission-control)))
11284 (synopsis "Simple IRC Client")
11285 (description
11286 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11287 integrate seamlessly with the GNOME desktop.")
11288 (home-page "https://wiki.gnome.org/Apps/Polari")
11289 (license license:gpl2+)))
11290
11291 (define-public gnome-boxes
11292 (package
11293 (name "gnome-boxes")
11294 (version "3.36.6")
11295 (source
11296 (origin
11297 (method url-fetch)
11298 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11299 (version-major+minor version) "/"
11300 "gnome-boxes-" version ".tar.xz"))
11301 (sha256
11302 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11303 (build-system meson-build-system)
11304 (arguments
11305 '(#:glib-or-gtk? #t
11306 #:configure-flags (list "-Drdp=false"
11307 (string-append "-Dc_link_args=-Wl,-rpath="
11308 (assoc-ref %outputs "out")
11309 "/lib/gnome-boxes"))))
11310 (native-inputs
11311 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11312 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11313 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11314 ("itstool" ,itstool)
11315 ("intltool" ,intltool)
11316 ("vala" ,vala)
11317 ("pkg-config" ,pkg-config)))
11318 (inputs
11319 `(("libarchive" ,libarchive)
11320 ("glib-networking" ,glib-networking) ;for TLS support
11321 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11322 ("gtk" ,gtk+)
11323 ("gtk-vnc" ,gtk-vnc)
11324 ("libosinfo" ,libosinfo)
11325 ("libsecret" ,libsecret)
11326 ("libsoup" ,libsoup)
11327 ("libusb" ,libusb)
11328 ("libvirt" ,libvirt)
11329 ("libvirt-glib" ,libvirt-glib)
11330 ("libxml" ,libxml2)
11331 ("spice-gtk" ,spice-gtk)
11332 ("sparql-query" ,sparql-query)
11333 ("vte" ,vte)
11334 ("webkitgtk" ,webkitgtk)
11335 ("tracker" ,tracker)
11336 ("libgudev" ,libgudev)))
11337 (home-page "https://wiki.gnome.org/Apps/Boxes")
11338 (synopsis "View, access, and manage remote and virtual systems")
11339 (description "GNOME Boxes is a simple application to view, access, and
11340 manage remote and virtual systems. Note that this application requires the
11341 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11342 @command{info '(guix) Virtualization Services'} to learn how to configure
11343 these services on the Guix System.")
11344 (license (list
11345 ;; For data/icons/empty-boxes.png.
11346 license:cc-by2.0
11347 ;; For all others.
11348 license:lgpl2.0+))))
11349
11350 (define-public geary
11351 (package
11352 (name "geary")
11353 (version "3.34.1")
11354 (source (origin
11355 (method git-fetch)
11356 (uri (git-reference
11357 (url "https://gitlab.gnome.org/GNOME/geary")
11358 (commit version)))
11359 (file-name (git-file-name name version))
11360 (sha256
11361 (base32
11362 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))
11363 (patches (search-patches "geary-CVE-2020-24661.patch"))))
11364 (build-system meson-build-system)
11365 (arguments
11366 `(#:glib-or-gtk? #t
11367 #:phases (modify-phases %standard-phases
11368 (add-after 'unpack 'disable-failing-tests
11369 (lambda _
11370 (substitute* "test/meson.build"
11371 (("test\\('client-tests', geary_test_client_bin\\)")
11372 ""))
11373 #t))
11374 (add-after 'unpack 'disable-postinstall-script
11375 (lambda _
11376 (substitute* "meson.build"
11377 (("meson.add_install_script\\(\
11378 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11379 ""))
11380 #t))
11381 (add-before 'check 'setup-xvfb
11382 (lambda _
11383 (system "Xvfb :1 &")
11384 (setenv "DISPLAY" ":1")
11385 #t)))))
11386 (inputs
11387 `(("enchant" ,enchant)
11388 ("folks" ,folks)
11389 ("gcr" ,gcr)
11390 ("glib" ,glib)
11391 ("gmime" ,gmime-2.6)
11392 ("gnome-online-accounts:lib"
11393 ,gnome-online-accounts "lib")
11394 ("gspell" ,gspell)
11395 ("gtk+" ,gtk+)
11396 ("iso-codes" ,iso-codes)
11397 ("json-glib" ,json-glib)
11398 ("libcanberra" ,libcanberra)
11399 ("libgee" ,libgee)
11400 ("libhandy" ,libhandy-0.0)
11401 ("libpeas" ,libpeas)
11402 ("libsecret" ,libsecret)
11403 ("libunwind" ,libunwind)
11404 ("sqlite" ,sqlite)
11405 ("webkitgtk" ,webkitgtk)
11406 ("ytnef" ,ytnef)))
11407 (native-inputs
11408 `(("appstream-glib" ,appstream-glib)
11409 ("cmake-minimal" ,cmake-minimal)
11410 ("desktop-file-utils" ,desktop-file-utils)
11411 ("gettext" ,gettext-minimal)
11412 ("glib:bin" ,glib "bin")
11413 ("gobject-introspection" ,gobject-introspection)
11414 ("itstool" ,itstool)
11415 ("libarchive" ,libarchive)
11416 ("libxml2" ,libxml2)
11417 ("pkg-config" ,pkg-config)
11418 ("vala" ,vala)
11419 ("xvfb" ,xorg-server-for-tests)))
11420 (synopsis "GNOME email application built around conversations")
11421 (description
11422 "Geary collects related messages together into conversations,
11423 making it easy to find and follow your discussions. Full-text and keyword
11424 search makes it easy to find the email you are looking for. Geary's
11425 full-featured composer lets you send rich, styled text with images, links, and
11426 lists, but also send lightweight, easy to read text messages. Geary
11427 automatically picks up your existing GNOME Online Accounts, and adding more is
11428 easy. Geary has a clean, fast, modern interface that works like you want it
11429 to.")
11430 (home-page "https://wiki.gnome.org/Apps/Geary")
11431 (license (list
11432 ;; geary
11433 license:lgpl2.1+
11434 ;; icons
11435 license:cc-by3.0
11436 license:cc-by-sa3.0
11437 license:public-domain
11438 ;; snowball
11439 license:bsd-2))))
11440
11441 (define-public glabels
11442 (package
11443 (name "glabels")
11444 (version "3.4.1")
11445 (source
11446 (origin
11447 (method url-fetch)
11448 (uri (string-append "mirror://gnome/sources/" name "/"
11449 (version-major+minor version) "/"
11450 "glabels-" version ".tar.xz"))
11451 (sha256
11452 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11453 (build-system glib-or-gtk-build-system)
11454 (native-inputs
11455 `(("gettext" ,gettext-minimal)
11456 ("glib:bin" ,glib "bin")
11457 ("intltool" ,intltool)
11458 ("itstool" ,itstool)
11459 ("pkg-config" ,pkg-config)))
11460 (inputs
11461 `(("gtk+" ,gtk+)
11462 ("librsvg" ,librsvg)
11463 ("libxml2" ,libxml2)))
11464 (home-page "https://glabels.org/")
11465 (synopsis "Program for creating labels and business cards")
11466 (description
11467 "gLabels is a program for creating labels and business cards. It is
11468 designed to work with various laser/ink-jet peel-off label and business
11469 card sheets that you’ll find at most office supply stores.")
11470 (license license:gpl3+)))
11471
11472 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11473 (define-public gnome-latex
11474 (package
11475 (name "gnome-latex")
11476 (version "3.36.0")
11477 (source
11478 (origin
11479 (method url-fetch)
11480 (uri (string-append "mirror://gnome/sources/" name "/"
11481 (version-major+minor version) "/"
11482 "gnome-latex-" version ".tar.xz"))
11483 (sha256
11484 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11485 (build-system glib-or-gtk-build-system)
11486 (native-inputs
11487 `(("gettext" ,gettext-minimal)
11488 ("glib:bin" ,glib "bin")
11489 ("gobject-introspection" ,gobject-introspection)
11490 ("gtk-doc" ,gtk-doc)
11491 ("intltool" ,intltool)
11492 ("itstool" ,itstool)
11493 ("pkg-config" ,pkg-config)
11494 ("vala" ,vala)))
11495 (inputs
11496 `(("amtk" ,amtk)
11497 ("dconf" ,dconf)
11498 ("glib" ,glib)
11499 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11500 ("gspell" ,gspell)
11501 ("gtk+" ,gtk+)
11502 ("gtksourceview" ,gtksourceview)
11503 ("libgee" ,libgee)
11504 ("tepl" ,tepl)
11505 ("uchardet" ,uchardet)))
11506 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11507 (synopsis "LaTeX editor for the GNOME desktop")
11508 (description
11509 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11510 such as build tools, completion of LaTeX commands, structure navigation,
11511 symbol tables, document templates, project management, spell-checking, menus
11512 and toolbars.")
11513 (license license:gpl3+)))
11514
11515 (define-public setzer
11516 (package
11517 (name "setzer")
11518 (version "0.4.1")
11519 (source
11520 (origin
11521 (method git-fetch)
11522 (uri (git-reference
11523 (url "https://github.com/cvfosammmm/Setzer")
11524 (commit (string-append "v" version))))
11525 (file-name (git-file-name name version))
11526 (sha256
11527 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
11528 (build-system meson-build-system)
11529 (arguments
11530 `(#:glib-or-gtk? #t
11531 #:phases
11532 (modify-phases %standard-phases
11533 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11534 (lambda* (#:key outputs #:allow-other-keys)
11535 (let ((prog (string-append (assoc-ref outputs "out")
11536 "/bin/setzer"))
11537 (pylib (string-append (assoc-ref outputs "out")
11538 "/lib/python"
11539 ,(version-major+minor
11540 (package-version python))
11541 "/site-packages")))
11542 (wrap-program prog
11543 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
11544 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11545 #t))))))
11546 (native-inputs
11547 `(("desktop-file-utils" ,desktop-file-utils)
11548 ("gettext" ,gettext-minimal)
11549 ("glib:bin" ,glib "bin")
11550 ("gobject-introspection" ,gobject-introspection)
11551 ("gtk+:bin" ,gtk+ "bin")))
11552 (inputs
11553 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11554 ("gspell" ,gspell)
11555 ("gtk+" ,gtk+)
11556 ("gtksourceview" ,gtksourceview)
11557 ("pango" ,pango)
11558 ("poppler" ,poppler)
11559 ("python-pdfminer" ,python-pdfminer-six)
11560 ("python-pycairo" ,python-pycairo)
11561 ("python-pygobject" ,python-pygobject)
11562 ("python-pyxdg" ,python-pyxdg)
11563 ("webkitgtk" ,webkitgtk)
11564 ("xdg-utils" ,xdg-utils)))
11565 (home-page "https://www.cvfosammmm.org/setzer/")
11566 (synopsis "LaTeX editor written in Python with GTK+")
11567 (description
11568 "Setzer is a simple yet full-featured LaTeX editor written in Python with
11569 GTK+. It integrates well with the GNOME desktop environment.")
11570 (license license:gpl3+)))
11571
11572 (define-public libratbag
11573 (package
11574 (name "libratbag")
11575 (version "0.14")
11576 (source
11577 (origin
11578 (method git-fetch)
11579 (uri (git-reference
11580 (url "https://github.com/libratbag/libratbag")
11581 (commit (string-append "v" version))))
11582 (file-name (git-file-name name version))
11583 (sha256
11584 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11585 (build-system meson-build-system)
11586 (arguments
11587 `(#:configure-flags
11588 (list "-Dsystemd=false"
11589 "-Dlogind-provider=elogind")
11590 #:phases
11591 (modify-phases %standard-phases
11592 (add-after 'install 'wrap
11593 (lambda* (#:key inputs outputs #:allow-other-keys)
11594 (let* ((out (assoc-ref outputs "out"))
11595 (site (string-append
11596 "/lib/python"
11597 ,(version-major+minor (package-version python))
11598 "/site-packages"))
11599 (evdev (string-append
11600 (assoc-ref inputs "python-evdev") site))
11601 (pygo (string-append
11602 (assoc-ref inputs "python-pygobject") site))
11603 (python-wrap
11604 `("PYTHONPATH" = (,evdev ,pygo))))
11605 (wrap-program (string-append out "/bin/" "ratbagctl")
11606 python-wrap)
11607 #t))))))
11608 (native-inputs
11609 `(("check" ,check)
11610 ("pkg-config" ,pkg-config)
11611 ("swig" ,swig)
11612 ("valgrind" ,valgrind)))
11613 (inputs
11614 `(("glib" ,glib)
11615 ("json-glib" ,json-glib)
11616 ("libevdev" ,libevdev)
11617 ("libsystemd" ,elogind)
11618 ("libunistring" ,libunistring)
11619 ("python-evdev" ,python-evdev)
11620 ("python-pygobject" ,python-pygobject)
11621 ("udev" ,eudev)))
11622 (home-page "https://github.com/libratbag/libratbag")
11623 (synopsis "DBus daemon and utility for configuring gaming mice")
11624 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11625 configure input devices, mainly gaming mice. The daemon provides a generic
11626 way to access the various features exposed by these mice and abstracts away
11627 hardware-specific and kernel-specific quirks. There is also the
11628 @command{ratbagctl} command line interface for configuring devices.
11629
11630 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11631 Steelseries.
11632
11633 The ratbagd DBus service can be enabled by adding the following service to
11634 your operating-system definition:
11635
11636 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11637 (license license:expat)))
11638
11639 (define-public piper
11640 (package
11641 (name "piper")
11642 (version "0.5.1")
11643 (source
11644 (origin
11645 (method git-fetch)
11646 (uri (git-reference
11647 (url "https://github.com/libratbag/piper")
11648 (commit version)))
11649 (sha256
11650 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11651 (file-name (git-file-name name version))))
11652 (build-system meson-build-system)
11653 (native-inputs
11654 `(("gettext" ,gettext-minimal)
11655 ("glib:bin" ,glib "bin")
11656 ("gobject-introspection" ,gobject-introspection)
11657 ("pkg-config" ,pkg-config)
11658 ("python-flake8" ,python-flake8)))
11659 (inputs
11660 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11661 ("gtk" ,gtk+)
11662 ("gtk:bin" ,gtk+ "bin")
11663 ("librsvg" ,librsvg)
11664 ("python-evdev" ,python-evdev)
11665 ("python-lxml" ,python-lxml)
11666 ("python-pycairo" ,python-pycairo)
11667 ("python-pygobject" ,python-pygobject)))
11668 (arguments
11669 `(#:imported-modules ((guix build python-build-system)
11670 ,@%meson-build-system-modules)
11671 #:modules (((guix build python-build-system) #:prefix python:)
11672 (guix build meson-build-system)
11673 (guix build utils))
11674 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11675 #:phases
11676 (modify-phases %standard-phases
11677 (add-after 'unpack 'dont-update-gtk-icon-cache
11678 (lambda _
11679 (substitute* "meson.build"
11680 (("meson.add_install_script('meson_install.sh')") ""))
11681 #t))
11682 ;; TODO: Switch to wrap-script when it is fixed.
11683 (add-after 'install 'wrap-python
11684 (assoc-ref python:%standard-phases 'wrap))
11685 (add-after 'wrap-python 'wrap
11686 (lambda* (#:key outputs #:allow-other-keys)
11687 (wrap-program
11688 (string-append (assoc-ref outputs "out" )"/bin/piper")
11689 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11690 #t)))))
11691 (home-page "https://github.com/libratbag/piper/")
11692 (synopsis "Configure bindings and LEDs on gaming mice")
11693 (description "Piper is a GTK+ application for configuring gaming mice with
11694 onboard configuration for key bindings via libratbag. Piper requires
11695 a @command{ratbagd} daemon running with root privileges. It can be run
11696 manually as root, but is preferably configured as a DBus service that can
11697 launch on demand. This can be configured by enabling the following service,
11698 provided there is a DBus service present:
11699
11700 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11701 (license license:gpl2)))
11702
11703 (define-public parlatype
11704 (package
11705 (name "parlatype")
11706 (version "2.1")
11707 (source
11708 (origin
11709 (method git-fetch)
11710 (uri (git-reference
11711 (url "https://github.com/gkarsay/parlatype")
11712 (commit (string-append "v" version))))
11713 (file-name (git-file-name name version))
11714 (sha256
11715 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11716 (build-system meson-build-system)
11717 (arguments
11718 `(#:glib-or-gtk? #t
11719 #:tests? #f ;require internet access
11720 #:phases
11721 (modify-phases %standard-phases
11722 (add-after 'install 'wrap-parlatype
11723 ;; Add gstreamer plugin provided in this package to system's
11724 ;; plugins.
11725 (lambda* (#:key outputs #:allow-other-keys)
11726 (let* ((out (assoc-ref outputs "out"))
11727 (gst-plugin-path (string-append
11728 out "/lib/gstreamer-1.0/"
11729 ":"
11730 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11731 (wrap-program (string-append out "/bin/parlatype")
11732 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11733 #t)))))
11734 (native-inputs
11735 `(("appstream-glib" ,appstream-glib)
11736 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11737 ("gettext" ,gettext-minimal)
11738 ("glib" ,glib "bin") ;for glib-compile-resources
11739 ("pkg-config" ,pkg-config)
11740 ("yelp-tools" ,yelp-tools)))
11741 (inputs
11742 `(("gst-plugins-base" ,gst-plugins-base)
11743 ("gst-plugins-good" ,gst-plugins-good)
11744 ("gstreamer" ,gstreamer)
11745 ("gtk+" ,gtk+)
11746 ("pocketsphinx" ,pocketsphinx)
11747 ("pulseaudio" ,pulseaudio)
11748 ("sphinxbase" ,sphinxbase)))
11749 (home-page "http://gkarsay.github.io/parlatype/")
11750 (synopsis "GNOME audio player for transcription")
11751 (description "Parlatype is an audio player for the GNOME desktop
11752 environment. Its main purpose is the manual transcription of spoken
11753 audio files.")
11754 (license license:gpl3+)))
11755
11756 (define-public jsonrpc-glib
11757 (package
11758 (name "jsonrpc-glib")
11759 (version "3.34.0")
11760 (source (origin
11761 (method url-fetch)
11762 (uri (string-append "mirror://gnome/sources/" name "/"
11763 (version-major+minor version) "/"
11764 name "-" version ".tar.xz"))
11765 (sha256
11766 (base32
11767 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11768 (build-system meson-build-system)
11769 (inputs
11770 `(("json-glib" ,json-glib)
11771 ("glib" ,glib)))
11772 (native-inputs
11773 `(("pkg-config" ,pkg-config)
11774 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11775 ("gobject-introspection" ,gobject-introspection)
11776 ("vala" ,vala)))
11777 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11778 (synopsis "JSON-RPC library for GLib")
11779 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11780 peers in either a synchronous or asynchronous fashion. It also allows
11781 communicating using the GVariant serialization format instead of JSON when
11782 both peers support it. You might want that when communicating on a single
11783 host to avoid parser overhead and memory-allocator fragmentation.")
11784 (license license:lgpl2.1+)))
11785
11786 (define-public feedbackd
11787 (package
11788 (name "feedbackd")
11789 (version "0.0.0+git20200527")
11790 (source (origin
11791 (method git-fetch)
11792 (uri (git-reference
11793 (url "https://source.puri.sm/Librem5/feedbackd.git")
11794 (commit (string-append "v" version))))
11795 (file-name (git-file-name name version))
11796 (sha256
11797 (base32
11798 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11799 (build-system meson-build-system)
11800 (native-inputs
11801 `(("glib:bin" ,glib "bin")
11802 ("gobject-introspection" ,gobject-introspection)
11803 ("pkg-config" ,pkg-config)
11804 ("vala" ,vala)))
11805 (inputs
11806 `(("dbus" ,dbus)
11807 ("gsound" ,gsound)
11808 ("json-glib" ,json-glib)
11809 ("libgudev" ,libgudev)))
11810 (propagated-inputs
11811 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11812 (synopsis "Haptic/visual/audio feedback via DBus")
11813 (description "Feedbackd provides a DBus daemon to act on events to provide
11814 haptic, visual and audio feedback. It offers the libfeedbackd library and
11815 GObject introspection bindings.")
11816 (home-page "https://source.puri.sm/Librem5/feedbackd")
11817 (license (list license:lgpl2.1+ ; libfeedbackd
11818 license:lgpl3+)))) ; the rest
11819
11820 (define-public sysprof
11821 (package
11822 (name "sysprof")
11823 (version "3.36.0")
11824 (source
11825 (origin
11826 (method url-fetch)
11827 (uri (string-append "mirror://gnome/sources/sysprof/"
11828 (version-major+minor version) "/"
11829 "sysprof-" version ".tar.xz"))
11830 (sha256
11831 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11832 (build-system meson-build-system)
11833 (arguments
11834 `(#:configure-flags
11835 (list (string-append "-Dsystemdunitdir="
11836 %output
11837 "/share/systemd"))
11838 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11839 #:phases
11840 (modify-phases %standard-phases
11841 (add-after 'unpack 'patch-install-script
11842 (lambda _
11843 (substitute* "build-aux/meson/post_install.sh"
11844 (("gtk-update-icon-cache") "true")
11845 (("update-desktop-database") "true"))
11846 #t)))))
11847 (inputs
11848 `(("glib" ,glib)
11849 ("gtk+" ,gtk+)
11850 ("libdazzle" ,libdazzle)
11851 ("polkit" ,polkit)))
11852 (native-inputs
11853 `(("gettext" ,gettext-minimal)
11854 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11855 ("itstool" ,itstool)
11856 ("pkg-config" ,pkg-config)
11857 ("xmllint" ,libxml2)))
11858 ;; This home page is so woefully out of date as to be essentially useless.
11859 ;; (home-page "http://www.sysprof.com")
11860 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11861 (synopsis "System-wide performance profiler for GNU/Linux")
11862 (description
11863 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11864 GNU/Linux system including the kernel and all user-space applications. This
11865 helps find the function(s) in which a program spends most of its time.
11866
11867 It uses the kernel's built-in @code{ptrace} feature and handles shared
11868 libraries. Applications do not need to be recompiled--or even restarted.")
11869 (license license:gpl3+)))
11870
11871 (define-public gnome-builder
11872 (package
11873 (name "gnome-builder")
11874 (version "3.36.1")
11875 (source (origin
11876 (method url-fetch)
11877 (uri (string-append "mirror://gnome/sources/" name "/"
11878 (version-major+minor version) "/"
11879 name "-" version ".tar.xz"))
11880 (sha256
11881 (base32
11882 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11883 (build-system meson-build-system)
11884 (arguments
11885 `(#:configure-flags (list "-Dnetwork_tests=false"
11886 ;; TODO: Enable all plugins...
11887 "-Dplugin_clang=false"
11888 "-Dplugin_flatpak=false"
11889 "-Dplugin_glade=false"
11890 ;; XXX: This one has been shown not to work in
11891 ;; <https://issues.guix.gnu.org/45272>
11892 "-Dplugin_jedi=false"
11893 ;; ... except this one.
11894 "-Dplugin_update_manager=false")
11895 #:phases
11896 (modify-phases %standard-phases
11897 (add-after 'unpack 'patch-meson
11898 (lambda* (#:key inputs #:allow-other-keys)
11899 (substitute* "build-aux/meson/post_install.py"
11900 (("gtk-update-icon-cache") "true")
11901 (("update-desktop-database") "true"))
11902 (substitute* "src/libide/meson.build"
11903 (("/usr/lib")
11904 (string-append (assoc-ref inputs "python-pygobject")
11905 "/lib")))
11906 #t))
11907 (add-after 'configure 'fix-ninja
11908 (lambda _
11909 ;; #43296: meson(?) incorrectly assumes we want to link
11910 ;; this PIE against a static libselinux.
11911 (substitute* "build.ninja"
11912 (("libselinux\\.a") "libselinux.so"))
11913 #t))
11914 (add-before 'check 'pre-check
11915 (lambda _
11916 (system "Xvfb :1 &")
11917 (setenv "DISPLAY" ":1")
11918 #t)))))
11919 (inputs
11920 `(("devhelp" ,devhelp)
11921 ("gspell" ,gspell)
11922 ("gtk+" ,gtk+)
11923 ("json-glib" ,json-glib)
11924 ("jsonrpc-glib" ,jsonrpc-glib)
11925 ("libdazzle" ,libdazzle)
11926 ("libgit2-glib" ,libgit2-glib)
11927 ("libpeas" ,libpeas)
11928 ("python-pygobject" ,python-pygobject)
11929 ("sysprof" ,sysprof)
11930 ("template-glib" ,template-glib)
11931 ("vte" ,vte)
11932 ("webkitgtk" ,webkitgtk)))
11933 (propagated-inputs
11934 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11935 (native-inputs
11936 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11937 ("glib:bin" ,glib "bin")
11938 ("gettext" ,gettext-minimal)
11939 ("pkg-config" ,pkg-config)
11940 ("vala" ,vala)
11941 ("xorg-server" ,xorg-server-for-tests)))
11942 (home-page "https://wiki.gnome.org/Apps/Builder")
11943 (synopsis "Toolsmith for GNOME-based applications")
11944 (description "Builder aims to be an integrated development
11945 environment (IDE) for writing GNOME-based software. It features fuzzy search,
11946 auto-completion, a mini code map, documentation browsing, Git integration, an
11947 integrated profiler via Sysprof, debugging support, and more.")
11948 (license license:gpl3+)))
11949
11950 (define-public komikku
11951 (package
11952 (name "komikku")
11953 (version "0.27.0")
11954 (source
11955 (origin
11956 (method git-fetch)
11957 (uri (git-reference
11958 (url "https://gitlab.com/valos/Komikku/")
11959 (commit (string-append "v" version))))
11960 (file-name (git-file-name name version))
11961 (sha256
11962 (base32
11963 "0mj4bsy7jp9wjj1dqz9zdq5aj0ib813wkz5k1481k80jp9dnlqnv"))))
11964 (build-system meson-build-system)
11965 (arguments
11966 `(#:glib-or-gtk? #t
11967 #:phases
11968 (modify-phases %standard-phases
11969 (add-after 'unpack 'patch-sources
11970 (lambda _
11971 (substitute* "komikku/utils.py"
11972 (("from komikku\\.servers import get_servers_list")
11973 ;; code following that line should migrate old databases
11974 ;; but the line itself results in an import error
11975 "return data_dir_path"))))
11976 (add-after 'unpack 'skip-gtk-update-icon-cache
11977 (lambda _
11978 (substitute* "meson_post_install.py"
11979 (("gtk-update-icon-cache") (which "true")))
11980 #t))
11981 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11982 (lambda* (#:key outputs #:allow-other-keys)
11983 (let ((prog (string-append (assoc-ref outputs "out")
11984 "/bin/komikku")))
11985 (wrap-program prog
11986 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
11987 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11988 #t))))))
11989 (inputs
11990 `(("gtk+" ,gtk+)
11991 ("libhandy" ,libhandy)
11992 ("libnotify" ,libnotify)
11993 ("libsecret" ,libsecret)
11994 ("python-beautifulsoup4" ,python-beautifulsoup4)
11995 ("python-brotli" ,python-brotli)
11996 ("python-dateparser" ,python-dateparser)
11997 ("python-keyring" ,python-keyring)
11998 ("python-lxml" ,python-lxml)
11999 ("python-magic" ,python-magic)
12000 ("python-pillow" ,python-pillow)
12001 ("python-pure-protobuf" ,python-pure-protobuf)
12002 ("python-pycairo" ,python-pycairo)
12003 ("python-pygobject" ,python-pygobject)
12004 ("python-requests" ,python-requests)
12005 ("python-unidecode" ,python-unidecode)
12006 ("webkitgtk" ,webkitgtk)))
12007 (native-inputs
12008 `(("desktop-file-utils" ,desktop-file-utils)
12009 ("gettext" ,gettext-minimal)
12010 ("glib:bin" ,glib "bin")
12011 ("gobject-introspection" ,gobject-introspection)
12012 ("pkg-config" ,pkg-config)))
12013 (home-page "https://gitlab.com/valos/Komikku")
12014 (synopsis "Manga reader for GNOME")
12015 (description "Komikku is an online/offline manga reader for GNOME,
12016 developed with the aim of being used with the Librem 5 phone.")
12017 (license license:gpl3+)))
12018
12019 (define-public libgda
12020 (package
12021 (name "libgda")
12022 (version "5.2.10")
12023 (source
12024 (origin
12025 (method git-fetch)
12026 (uri (git-reference
12027 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
12028 (commit (string-append "LIBGDA_" (string-replace-substring
12029 version "." "_")))))
12030 (file-name (git-file-name name version))
12031 (sha256
12032 (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
12033 (build-system gnu-build-system)
12034 (arguments
12035 `(#:configure-flags '("--enable-vala")
12036 ;; There's a race between check_cnc_lock and check_threaded_cnc
12037 ;; in tests/multi-threading.
12038 #:parallel-tests? #f
12039 #:phases
12040 (modify-phases %standard-phases
12041 (add-after 'unpack 'fix-glade-install
12042 (lambda _
12043 (substitute* "configure.ac"
12044 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
12045 "${datadir}/glade/catalogs")
12046 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
12047 "${datadir}/glade/pixmaps"))
12048 #t))
12049 (add-before 'check 'pre-check
12050 (lambda* (#:key inputs #:allow-other-keys)
12051 ;; Tests require a running X server.
12052 (system "Xvfb :1 &")
12053 (setenv "DISPLAY" ":1")
12054 #t))
12055 (add-after 'install 'symlink-glade-module
12056 (lambda* (#:key outputs #:allow-other-keys)
12057 (let* ((shlib "libgda-ui-5.0.so")
12058 (out (assoc-ref outputs "out"))
12059 (out/lib (string-append out "/lib"))
12060 (moduledir (string-append out/lib "/glade/modules")))
12061 (mkdir-p moduledir)
12062 (symlink (string-append out/lib "/" shlib)
12063 (string-append moduledir "/" shlib))
12064 #t))))))
12065 (propagated-inputs
12066 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
12067 (inputs
12068 `(("glib" ,glib)
12069 ("glade" ,glade3)
12070 ("gtk+" ,gtk+)
12071 ("libsecret" ,libsecret)
12072 ("libxslt" ,libxslt)
12073 ("openssl" ,openssl)
12074 ("vala" ,vala)))
12075 (native-inputs
12076 `(("autoconf" ,autoconf)
12077 ("autoconf-archive" ,autoconf-archive)
12078 ("automake" ,automake)
12079 ("glib:bin" ,glib "bin")
12080 ("gnome-common" ,gnome-common)
12081 ("gobject-introspection" ,gobject-introspection)
12082 ("gtk-doc" ,gtk-doc)
12083 ("intltool" ,intltool)
12084 ("libtool" ,libtool)
12085 ("pkg-config" ,pkg-config)
12086 ("vala" ,vala)
12087 ("which" ,which)
12088 ("xorg-server" ,xorg-server-for-tests)
12089 ("yelp-tools" ,yelp-tools)))
12090 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12091 (synopsis "Uniform data access")
12092 (description
12093 "GNU Data Access (GDA) is an attempt to provide uniform access to
12094 different kinds of data sources (databases, information servers, mail spools,
12095 etc). It is a complete architecture that provides all you need to access
12096 your data.")
12097 (license license:lgpl2.1+)))
12098
12099 (define-public gtranslator
12100 (package
12101 (name "gtranslator")
12102 (version "3.36.0")
12103 (source (origin
12104 (method url-fetch)
12105 (uri (string-append "mirror://gnome/sources/" name "/"
12106 (version-major+minor version) "/"
12107 name "-" version ".tar.xz"))
12108 (sha256
12109 (base32
12110 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
12111 (build-system meson-build-system)
12112 (inputs
12113 `(("json-glib" ,json-glib)
12114 ("jsonrpc-glib" ,jsonrpc-glib)
12115 ("gettext" ,gettext-minimal)
12116 ("glib" ,glib)
12117 ("gtk+" ,gtk+)
12118 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12119 ("gspell" ,gspell)
12120 ("libdazzle" ,libdazzle)
12121 ("libgda" ,libgda)
12122 ("libsoup" ,libsoup)))
12123 (native-inputs
12124 `(("glib:bin" ,glib "bin")
12125 ("itstool" ,itstool)
12126 ("pkg-config" ,pkg-config)))
12127 (propagated-inputs
12128 `(("gtksourceview" ,gtksourceview))) ; required for source view
12129 (arguments
12130 `(#:build-type "release"
12131 #:glib-or-gtk? #t
12132 #:phases
12133 (modify-phases %standard-phases
12134 (add-after 'unpack 'skip-gtk-update-icon-cache
12135 (lambda _
12136 (substitute* "build-aux/meson/meson_post_install.py"
12137 (("gtk-update-icon-cache") (which "true")))
12138 #t)))))
12139 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12140 (synopsis "Translation making program")
12141 (description
12142 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12143 for the GNOME 3.x platform with many features. It aims to be a very complete
12144 editing environment for translation issues within the GNU gettext/GNOME desktop
12145 world.")
12146 (license license:gpl3+)))
12147
12148
12149 (define-public ocrfeeder
12150 (package
12151 (name "ocrfeeder")
12152 (version "0.8.3")
12153 (source (origin
12154 (method url-fetch)
12155 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12156 (version-major+minor version) "/"
12157 "ocrfeeder-" version ".tar.xz"))
12158 (sha256
12159 (base32
12160 "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529"))))
12161 (build-system gnu-build-system)
12162 (arguments
12163 `(#:phases
12164 (modify-phases %standard-phases
12165 (add-after
12166 'install 'wrap-program
12167 (lambda* (#:key outputs #:allow-other-keys)
12168 (let ((prog (string-append (assoc-ref outputs "out")
12169 "/bin/" "ocrfeeder"))
12170 (pylib (string-append (assoc-ref outputs "out")
12171 "/lib/python"
12172 ,(version-major+minor
12173 (package-version python))
12174 "/site-packages")))
12175 (wrap-program prog
12176 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
12177 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12178 #t))))))
12179 (native-inputs
12180 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12181 ("gobject-introspection" ,gobject-introspection)
12182 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12183 ("intltool" ,intltool)
12184 ("itstool" ,itstool)
12185 ("pkg-config" ,pkg-config)
12186 ("xmllint" ,libxml2)))
12187 (inputs
12188 `(("enchant" ,enchant)
12189 ("glib" ,glib)
12190 ("goocanvas" ,goocanvas)
12191 ("gtk" ,gtk+)
12192 ("gtkspell3" ,gtkspell3)
12193 ("libjpeg" ,libjpeg-turbo)
12194 ("libtiff" ,libtiff)
12195 ("libraw" ,libraw)
12196 ("ocrad" ,ocrad)
12197 ("python" ,python-wrapper)
12198 ("python-pygobject" ,python-pygobject)
12199 ("python-odfpy" ,python-odfpy)
12200 ("python-pillow" ,python-pillow)
12201 ("python-pyenchant" ,python-pyenchant)
12202 ("python-reportlab" ,python-reportlab)
12203 ("python-sane" ,python-sane)
12204 ("sane-backends" ,sane-backends)
12205 ("tesseract-ocr" ,tesseract-ocr)))
12206 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12207 (synopsis "Complete OCR Suite")
12208 (description "OCRFeeder is a complete Optical Character Recognition and
12209 Document Analysis and Recognition program.")
12210 (license license:gpl3+)))