gnu: gnome-autoar: Update to 0.3.0 [fixes CVE-2020-36241].
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016, 2020 Eric Bavier <bavier@posteo.net>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 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-crypto)
170 #:use-module (gnu packages python-web)
171 #:use-module (gnu packages python-xyz)
172 #:use-module (gnu packages rdesktop)
173 #:use-module (gnu packages rdf)
174 #:use-module (gnu packages readline)
175 #:use-module (gnu packages ruby)
176 #:use-module (gnu packages rust)
177 #:use-module (gnu packages samba)
178 #:use-module (gnu packages scanner)
179 #:use-module (gnu packages sdl)
180 #:use-module (gnu packages search)
181 #:use-module (gnu packages selinux)
182 #:use-module (gnu packages slang)
183 #:use-module (gnu packages speech)
184 #:use-module (gnu packages spice)
185 #:use-module (gnu packages sqlite)
186 #:use-module (gnu packages ssh)
187 #:use-module (gnu packages swig)
188 #:use-module (gnu packages tex)
189 #:use-module (gnu packages time)
190 #:use-module (gnu packages tls)
191 #:use-module (gnu packages valgrind)
192 #:use-module (gnu packages version-control)
193 #:use-module (gnu packages video)
194 #:use-module (gnu packages virtualization)
195 #:use-module (gnu packages vpn)
196 #:use-module (gnu packages web)
197 #:use-module (gnu packages webkit)
198 #:use-module (gnu packages xdisorg)
199 #:use-module (gnu packages xiph)
200 #:use-module (gnu packages xml)
201 #:use-module (gnu packages xorg)
202 #:use-module (gnu artwork)
203 #:use-module ((guix build utils) #:select (modify-phases))
204 #:use-module (guix build-system cargo)
205 #:use-module (guix build-system cmake)
206 #:use-module (guix build-system glib-or-gtk)
207 #:use-module (guix build-system gnu)
208 #:use-module (guix build-system meson)
209 #:use-module (guix build-system python)
210 #:use-module (guix build-system trivial)
211 #:use-module (guix download)
212 #:use-module (guix git-download)
213 #:use-module ((guix licenses) #:prefix license:)
214 #:use-module (guix packages)
215 #:use-module (guix utils)
216 #:use-module (guix gexp)
217 #:use-module (guix monads)
218 #:use-module (guix store)
219 #:use-module (ice-9 match)
220 #:use-module (srfi srfi-1))
221
222 (define-public gupnp-igd
223 (package
224 (name "gupnp-igd")
225 (version "1.2.0")
226 (source
227 (origin
228 (method url-fetch)
229 (uri
230 (string-append "mirror://gnome/sources/" name "/"
231 (version-major+minor version) "/"
232 name "-" version ".tar.xz"))
233 (sha256
234 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
235 (build-system meson-build-system)
236 (outputs '("out" "doc"))
237 (arguments
238 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
239 #:configure-flags (list "-Dgtk_doc=true")
240 #:phases
241 (modify-phases %standard-phases
242 (add-after 'unpack 'patch-docbook-xml
243 (lambda* (#:key inputs #:allow-other-keys)
244 (with-directory-excursion "doc"
245 (substitute* "gupnp-igd-docs.xml"
246 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
247 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
248 "/xml/dtd/docbook/"))))
249 #t))
250 (add-after 'install 'move-doc
251 (lambda* (#:key outputs #:allow-other-keys)
252 (let* ((out (assoc-ref outputs "out"))
253 (doc (assoc-ref outputs "doc")))
254 (mkdir-p (string-append doc "/share"))
255 (rename-file
256 (string-append out "/share/gtk-doc")
257 (string-append doc "/share/gtk-doc"))
258 #t))))))
259 (native-inputs
260 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
261 ("docbook-xsl" ,docbook-xsl)
262 ("glib:bin" ,glib "bin")
263 ("gobject-introspection" ,gobject-introspection)
264 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
265 ("gtk-doc" ,gtk-doc)
266 ("pkg-config" ,pkg-config)))
267 (propagated-inputs
268 `(("glib" ,glib)
269 ("glib-networking" ,glib-networking)
270 ("gssdp" ,gssdp)
271 ("gupnp" ,gupnp)
272 ("libsoup" ,libsoup)))
273 (synopsis "UPnP IGD for GNOME")
274 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
275 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
276 (license license:lgpl2.1+)))
277
278 (define-public brasero
279 (package
280 (name "brasero")
281 (version "3.12.2")
282 (source (origin
283 (method url-fetch)
284 (uri (string-append "mirror://gnome/sources/brasero/"
285 (version-major+minor version) "/"
286 "brasero-" version ".tar.xz"))
287 (sha256
288 (base32
289 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
290 (build-system glib-or-gtk-build-system)
291 (arguments
292 `(#:configure-flags (list
293 (string-append "--with-girdir="
294 (assoc-ref %outputs "out")
295 "/share/gir-1.0")
296 (string-append "--with-typelibdir="
297 (assoc-ref %outputs "out")
298 "/lib/girepository-1.0"))
299 #:phases
300 (modify-phases %standard-phases
301 (add-before 'configure 'embed-growisofs
302 (lambda* (#:key inputs #:allow-other-keys)
303 (substitute* "plugins/growisofs/burn-growisofs.c"
304 (("\"growisofs") (string-append "\"" (which "growisofs"))))
305 #t)))))
306 (propagated-inputs
307 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
308 (native-inputs
309 `(("intltool" ,intltool)
310 ("itstool" ,itstool)
311 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
312 ("gobject-introspection" ,gobject-introspection)
313 ("pkg-config" ,pkg-config)))
314 (inputs
315 `(("dvd+rw-tools" ,dvd+rw-tools)
316 ("glib" ,glib)
317 ("gnome-doc-utils" ,gnome-doc-utils)
318 ("gstreamer" ,gstreamer)
319 ("gst-plugins-base" ,gst-plugins-base)
320 ("gtk+" ,gtk+)
321 ("libcanberra" ,libcanberra)
322 ("libice" ,libice)
323 ("libnotify" ,libnotify)
324 ("libsm" ,libsm)
325 ("libxml2" ,libxml2)
326 ("totem-pl-parser" ,totem-pl-parser)))
327 (home-page "https://wiki.gnome.org/Apps/Brasero")
328 (synopsis "CD/DVD burning tool for Gnome")
329 (description "Brasero is an application to burn CD/DVD for the Gnome
330 Desktop. It is designed to be as simple as possible and has some unique
331 features to enable users to create their discs easily and quickly.")
332 (license license:gpl2+)))
333
334 (define-public libcloudproviders
335 (package
336 (name "libcloudproviders")
337 (version "0.3.1")
338 (source
339 (origin
340 (method url-fetch)
341 (uri
342 (string-append "mirror://gnome/sources/" name "/"
343 (version-major+minor version) "/"
344 name "-" version ".tar.xz"))
345 (sha256
346 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
347 (build-system meson-build-system)
348 (outputs '("out" "doc"))
349 (arguments
350 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
351 #:configure-flags
352 (list
353 "-Denable-gtk-doc=true")
354 #:phases
355 (modify-phases %standard-phases
356 (add-after 'install 'move-doc
357 (lambda* (#:key outputs #:allow-other-keys)
358 (let* ((out (assoc-ref outputs "out"))
359 (doc (assoc-ref outputs "doc")))
360 (mkdir-p (string-append doc "/share"))
361 (rename-file
362 (string-append out "/share/gtk-doc")
363 (string-append doc "/share/gtk-doc"))
364 #t))))))
365 (native-inputs
366 `(("glib:bin" ,glib "bin")
367 ("gobject-introspection" ,gobject-introspection)
368 ("gtk-doc" ,gtk-doc)
369 ("pkg-config" ,pkg-config)
370 ("vala" ,vala)))
371 (inputs
372 `(("glib" ,glib)
373 ("glib-networking" ,glib-networking)))
374 (synopsis "Cloudproviders Integration API")
375 (description "Libcloudproviders is a DBus API that allows cloud storage sync
376 clients to expose their services. Clients such as file managers and desktop
377 environments can then provide integrated access to the cloud providers
378 services.")
379 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
380 (license license:lgpl3+)))
381
382 (define-public libgrss
383 (package
384 (name "libgrss")
385 (version "0.7.0")
386 (source
387 (origin
388 (method url-fetch)
389 (uri
390 (string-append "mirror://gnome/sources/" name "/"
391 (version-major+minor version) "/"
392 name "-" version ".tar.xz"))
393 (sha256
394 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
395 (build-system glib-or-gtk-build-system)
396 (outputs '("out" "doc"))
397 (arguments
398 `(#:configure-flags
399 (list
400 "--enable-gtk-doc"
401 (string-append "--with-html-dir="
402 (assoc-ref %outputs "doc")
403 "/share/gtk-doc/html"))
404 #:phases
405 (modify-phases %standard-phases
406 (add-after 'unpack 'patch-docbook-xml
407 (lambda* (#:key inputs #:allow-other-keys)
408 (with-directory-excursion "doc/reference"
409 (substitute* "libgrss-docs.sgml"
410 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
411 (string-append (assoc-ref inputs "docbook-xml")
412 "/xml/dtd/docbook/"))))
413 #t)))))
414 (native-inputs
415 `(("docbook-xml" ,docbook-xml-4.1.2)
416 ("gobject-introspection" ,gobject-introspection)
417 ("gtk-doc" ,gtk-doc)
418 ("pkg-config" ,pkg-config)))
419 (propagated-inputs
420 `(("glib" ,glib)
421 ("libsoup" ,libsoup)
422 ("libxml2" ,libxml2)))
423 (synopsis "Glib library for feeds")
424 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
425 and other formats.")
426 (home-page "https://wiki.gnome.org/Projects/Libgrss")
427 (license license:lgpl3+)))
428
429 (define-public gnome-js-common
430 (package
431 (name "gnome-js-common")
432 (version "0.1.2")
433 (source
434 (origin
435 (method url-fetch)
436 (uri
437 (string-append "mirror://gnome/sources/" name "/"
438 (version-major+minor version) "/"
439 name "-" version ".tar.gz"))
440 (sha256
441 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
442 (build-system glib-or-gtk-build-system)
443 (arguments
444 `(#:configure-flags
445 (list
446 "--disable-static")))
447 (native-inputs
448 `(("gettext" ,gettext-minimal)
449 ("intltool" ,intltool)
450 ("pkg-config" ,pkg-config)))
451 (synopsis "Common JS Modules")
452 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
453 bindings.")
454 (home-page "https://wiki.gnome.org/Projects/Seed")
455 (license license:gpl3+)))
456
457 (define-public seed
458 (package
459 (name "seed")
460 (version "3.8.1")
461 (source
462 (origin
463 (method url-fetch)
464 (uri
465 (string-append "mirror://gnome/sources/" name "/"
466 (version-major+minor version) "/"
467 name "-" version ".tar.xz"))
468 (sha256
469 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
470 (patches
471 (search-patches "seed-webkit.patch"))))
472 (build-system glib-or-gtk-build-system)
473 (outputs '("out" "doc"))
474 (arguments
475 `(#:configure-flags
476 (list
477 "--disable-static"
478 "--enable-xorg-module"
479 (string-append "--with-html-dir="
480 (assoc-ref %outputs "doc")
481 "/share/gtk-doc/html")
482 "--with-webkit=4.0")
483 #:phases
484 (modify-phases %standard-phases
485 ;; The seed-webkit.patch patches configure.ac.
486 ;; So the source files need to be re-bootstrapped.
487 (add-after 'unpack 'trigger-bootstrap
488 (lambda _
489 (for-each delete-file
490 (list
491 "configure"
492 "Makefile.in"))
493 #t))
494 (add-after 'unpack 'patch-tests
495 (lambda* (#:key outputs #:allow-other-keys)
496 (substitute* (find-files "." "\\.js$")
497 (("#!/usr/bin/env seed")
498 (string-append "#!" (getcwd) "/src/seed")))
499 #t))
500 (add-before 'build 'patch-docbook-xml
501 (lambda* (#:key inputs #:allow-other-keys)
502 (with-directory-excursion "doc"
503 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
504 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
505 (string-append (assoc-ref inputs "docbook-xml")
506 "/xml/dtd/docbook/"))))
507 #t)))))
508 (native-inputs
509 `(("autoconf" ,autoconf)
510 ("automake" ,automake)
511 ("docbook-xml" ,docbook-xml-4.1.2)
512 ("gettext" ,gettext-minimal)
513 ("gobject-introspection" ,gobject-introspection)
514 ("gtk-doc" ,gtk-doc)
515 ("intltool" ,intltool)
516 ("libtool" ,libtool)
517 ("pkg-config" ,pkg-config)))
518 (inputs
519 `(("cairo" ,cairo)
520 ("dbus" ,dbus)
521 ("dbus-glib" ,dbus-glib)
522 ("gnome-js-common" ,gnome-js-common)
523 ("gtk+" ,gtk+)
524 ("gtk+-2" ,gtk+-2)
525 ("libffi" ,libffi)
526 ("libxml2" ,libxml2)
527 ("mpfr" ,mpfr)
528 ("readline" ,readline)
529 ("sqlite" ,sqlite)
530 ("xscrnsaver" ,libxscrnsaver)))
531 (propagated-inputs
532 `(("glib" ,glib)
533 ("webkit" ,webkitgtk)))
534 (synopsis "GObject JavaScriptCore bridge")
535 (description "Seed is a library and interpreter, dynamically bridging
536 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
537 GNOME platform. It serves as something which enables you to write standalone
538 applications in JavaScript, or easily enable your application to be extensible
539 in JavaScript.")
540 (home-page "https://wiki.gnome.org/Projects/Seed")
541 (license license:lgpl2.0+)))
542
543 (define-public libdmapsharing
544 (package
545 (name "libdmapsharing")
546 (version "3.9.10")
547 (source
548 (origin
549 (method url-fetch)
550 (uri
551 (string-append "https://www.flyn.org/projects/"
552 name "/" name "-" version ".tar.gz"))
553 (sha256
554 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
555 (build-system glib-or-gtk-build-system)
556 (outputs '("out" "doc"))
557 (arguments
558 `(#:tests? #f ; Tests require networking.
559 #:configure-flags
560 (list
561 "--disable-static"
562 (string-append "--with-html-dir="
563 (assoc-ref %outputs "doc")
564 "/share/gtk-doc/html"))
565 #:phases
566 (modify-phases %standard-phases
567 (add-after 'unpack 'patch-docbook-xml
568 (lambda* (#:key inputs #:allow-other-keys)
569 (with-directory-excursion "doc"
570 (substitute* "libdmapsharing-4.0-docs.xml"
571 (("http://www.oasis-open.org/docbook/xml/4.3/")
572 (string-append (assoc-ref inputs "docbook-xml")
573 "/xml/dtd/docbook/"))))
574 #t)))))
575 (native-inputs
576 `(("check" ,check)
577 ("docbook-xml" ,docbook-xml-4.3)
578 ("gobject-introspection" ,gobject-introspection)
579 ("pedansee" ,pedansee)
580 ("pkg-config" ,pkg-config)
581 ("vala" ,vala)))
582 (inputs
583 `(("avahi" ,avahi)
584 ("gdk-pixbuf" ,gdk-pixbuf+svg)
585 ("gee" ,libgee)
586 ("gst-plugins-base" ,gst-plugins-base)
587 ("gtk+" ,gtk+)))
588 (propagated-inputs
589 `(("glib" ,glib)
590 ("glib-networking" ,glib-networking)
591 ("gstreamer" ,gstreamer)
592 ("libsoup" ,libsoup)))
593 (synopsis "Media management library")
594 (description "Libdmapsharing is a library which allows programs to access,
595 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
596 It is written in C using GObject and libsoup.")
597 (home-page "https://launchpad.net/gtx")
598 (license license:lgpl2.1+)))
599
600 (define-public gtx
601 (package
602 (name "gtx")
603 (version "0.2.2")
604 (source
605 (origin
606 (method url-fetch)
607 (uri
608 (string-append "https://launchpad.net/gtx/trunk/"
609 version "/+download/gtx-" version ".tar.gz"))
610 (sha256
611 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
612 (build-system glib-or-gtk-build-system)
613 (outputs '("out" "doc"))
614 (arguments
615 `(#:configure-flags
616 (list
617 "--disable-static"
618 "--enable-gtk-doc"
619 (string-append "--with-html-dir="
620 (assoc-ref %outputs "doc")
621 "/share/gtk-doc/html"))))
622 (native-inputs
623 `(("gobject-introspection" ,gobject-introspection)
624 ("gtk-doc" ,gtk-doc)
625 ("pkg-config" ,pkg-config)))
626 (propagated-inputs
627 `(("glib" ,glib)))
628 (synopsis "GLib Testing Framework")
629 (description "GTX is a small collection of convenience functions intended to
630 enhance the GLib testing framework. With specific emphasis on easing the pain
631 of writing test cases for asynchronous interactions.")
632 (home-page "https://launchpad.net/gtx")
633 (license license:lgpl2.1+)))
634
635 (define-public dee
636 (package
637 (name "dee")
638 (version "1.2.7")
639 (source
640 (origin
641 (method url-fetch)
642 (uri
643 (string-append "https://launchpad.net/dee/1.0/"
644 version "/+download/dee-" version ".tar.gz"))
645 (sha256
646 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
647 (patches
648 (search-patches "dee-vapi.patch"))))
649 (build-system glib-or-gtk-build-system)
650 (outputs '("out" "doc"))
651 (arguments
652 `(#:configure-flags
653 (list
654 "--disable-maintainer-flags"
655 (string-append "--with-pygi-overrides-dir="
656 (assoc-ref %outputs "out")
657 "/lib/python"
658 ,(version-major+minor
659 (package-version python))
660 "/site-packages/gi/overrides")
661 (string-append "--with-html-dir="
662 (assoc-ref %outputs "doc")
663 "/share/gtk-doc/html"))
664 #:phases
665 (modify-phases %standard-phases
666 (add-after 'unpack 'patch-docbook-xml
667 (lambda* (#:key inputs #:allow-other-keys)
668 (with-directory-excursion "doc/reference/dee-1.0"
669 (substitute* "dee-1.0-docs.sgml"
670 (("http://www.oasis-open.org/docbook/xml/4.3/")
671 (string-append (assoc-ref inputs "docbook-xml")
672 "/xml/dtd/docbook/"))))
673 #t))
674 (add-after 'patch-docbook-xml 'disable-failing-tests
675 (lambda _
676 (substitute* "tests/test-icu.c"
677 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
678 "")
679 (("setup, test_ascii_folder, teardown\\);")
680 ""))
681 #t))
682 (add-before 'check 'pre-check
683 (lambda _
684 ;; Tests require a running dbus-daemon.
685 (system "dbus-daemon &")
686 ;; For missing '/etc/machine-id'.
687 (setenv "DBUS_FATAL_WARNINGS" "0")
688 #t)))))
689 (native-inputs
690 `(("dbus" ,dbus)
691 ("dbus-test-runner" ,dbus-test-runner)
692 ("docbook-xml" ,docbook-xml-4.3)
693 ("gobject-introspection" ,gobject-introspection)
694 ("gtk-doc" ,gtk-doc)
695 ;; Would only be required by configure flag "--enable-extended-tests".
696 ;("gtx" ,gtx)
697 ("pkg-config" ,pkg-config)
698 ("pygobject" ,python-pygobject)
699 ("python" ,python-wrapper)
700 ("vala" ,vala)))
701 (inputs
702 `(("icu" ,icu4c)))
703 (propagated-inputs
704 `(("glib" ,glib)))
705 (synopsis "Model to synchronize multiple instances over DBus")
706 (description "Dee is a library that uses DBus to provide objects allowing
707 you to create Model-View-Controller type programs across DBus. It also consists
708 of utility objects which extend DBus allowing for peer-to-peer discoverability
709 of known objects without needing a central registrar.")
710 (home-page "https://launchpad.net/dee")
711 (license
712 ;; Dual-licensed
713 (list
714 license:lgpl3+
715 license:gpl3+))))
716
717 (define-public zeitgeist
718 (package
719 (name "zeitgeist")
720 (version "1.0.3")
721 (source
722 (origin
723 (method git-fetch)
724 (uri
725 (git-reference
726 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
727 (commit
728 (string-append "v" version))))
729 (file-name
730 (git-file-name name version))
731 (sha256
732 (base32 "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp"))))
733 (build-system glib-or-gtk-build-system)
734 (arguments
735 `(#:configure-flags
736 (list
737 "--enable-explain-queries"
738 "--enable-fts"
739 "--enable-docs")
740 #:phases
741 (modify-phases %standard-phases
742 (add-after 'unpack 'patch-docbook-xml
743 (lambda* (#:key inputs #:allow-other-keys)
744 (with-directory-excursion "doc/libzeitgeist"
745 (substitute* "zeitgeist-gtkdoc-index.sgml"
746 (("http://www.oasis-open.org/docbook/xml/4.3/")
747 (string-append (assoc-ref inputs "docbook-xml")
748 "/xml/dtd/docbook/"))))
749 #t))
750 (add-after 'patch-docbook-xml 'disable-failing-tests
751 (lambda _
752 (substitute* "test/direct/Makefile.am"
753 ((" log-test ")
754 ""))
755 (substitute* "test/c/Makefile.am"
756 ((" test-log ")
757 ""))
758 #t))
759 (add-before 'bootstrap 'remove-autogen-script
760 (lambda _
761 ;; To honor `autoreconf -vif` by build-system.
762 (delete-file "autogen.sh")
763 #t)))))
764 (native-inputs
765 `(("autoconf" ,autoconf)
766 ("automake" ,automake)
767 ("docbook-xml" ,docbook-xml-4.3)
768 ("gettext" ,gettext-minimal)
769 ("gobject-introspection" ,gobject-introspection)
770 ("gtk-doc" ,gtk-doc)
771 ("libtool" ,libtool)
772 ("pkg-config" ,pkg-config)
773 ("vala" ,vala)
774 ("xorg-server-for-tests" ,xorg-server-for-tests)))
775 (inputs
776 `(("dee-icu" ,dee)
777 ("gtk+" ,gtk+)
778 ("json-glib" ,json-glib)
779 ("sqlite" ,sqlite)
780 ("telepathy-glib" ,telepathy-glib)
781 ("python" ,python-wrapper)
782 ("python-rdflib" ,python-rdflib)
783 ("xapian-config" ,xapian)))
784 (propagated-inputs
785 `(("glib" ,glib)))
786 (synopsis "Desktop Activity Logging")
787 (description "Zeitgeist is a service which logs the users’s activities and
788 events, anywhere from files opened to websites visited and conversations. It
789 makes this information readily available for other applications to use. It is
790 able to establish relationships between items based on similarity and usage
791 patterns.")
792 (home-page "https://zeitgeist.freedesktop.org/")
793 (license
794 ;; Dual-licensed
795 (list
796 license:lgpl2.1+
797 license:gpl2+))))
798
799 (define-public gnome-recipes
800 (package
801 (name "gnome-recipes")
802 (version "2.0.4")
803 (source (origin
804 (method git-fetch)
805 (uri (git-reference
806 (url "https://gitlab.gnome.org/GNOME/recipes")
807 (commit version)))
808 (file-name (git-file-name name version))
809 (sha256
810 (base32
811 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
812 (build-system meson-build-system)
813 (arguments
814 `(#:glib-or-gtk? #t
815 #:phases
816 (modify-phases %standard-phases
817 (add-after 'unpack 'skip-gtk-update-icon-cache
818 (lambda _
819 (substitute* "meson_post_install.py"
820 (("gtk-update-icon-cache") (which "true")))
821 #t))
822 (add-after 'unpack 'unpack-libgd
823 (lambda* (#:key inputs #:allow-other-keys)
824 (let ((libgd (assoc-ref inputs "libgd")))
825 (copy-recursively libgd "subprojects/libgd")
826 #t))))))
827 (inputs
828 `(("glib" ,glib)
829 ("gnome-autoar" ,gnome-autoar)
830 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
831 ("gspell" ,gspell)
832 ("gtk+" ,gtk+)
833 ("json-glib" ,json-glib)
834 ("libcanberra" ,libcanberra)
835 ("libsoup" ,libsoup)
836 ("rest" ,rest)))
837 (native-inputs
838 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
839 ("gettext" ,gettext-minimal)
840 ("glib:bin" ,glib "bin")
841 ("itstool" ,itstool)
842 ("libgd"
843 ,(origin
844 (method git-fetch)
845 (uri (git-reference
846 (url "https://gitlab.gnome.org/GNOME/libgd")
847 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
848 (file-name (git-file-name "libgd" version))
849 (sha256
850 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
851 ("pkg-config" ,pkg-config)))
852 (home-page "https://wiki.gnome.org/Apps/Recipes")
853 (synopsis "Discover recipes for preparing food")
854 (description "GNOME Recipes helps you discover what to cook today,
855 tomorrow, the rest of the week and for special occasions.")
856 (license license:gpl3+)))
857
858 (define-public gnome-photos
859 (package
860 (name "gnome-photos")
861 (version "3.34.2")
862 (source
863 (origin
864 (method url-fetch)
865 (uri
866 (string-append "mirror://gnome/sources/" name "/"
867 (version-major+minor version) "/"
868 name "-" version ".tar.xz"))
869 (sha256
870 (base32
871 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
872 (build-system meson-build-system)
873 (arguments
874 `(#:glib-or-gtk? #t
875 #:configure-flags
876 (list "-Ddogtail=false" ; Not available
877 ;; Required for RUNPATH validation.
878 (string-append "-Dc_link_args=-Wl,-rpath="
879 (assoc-ref %outputs "out") "/lib/gnome-photos"))
880 #:phases
881 (modify-phases %standard-phases
882 (add-after 'install 'wrap-gnome-photos
883 (lambda* (#:key inputs outputs #:allow-other-keys)
884 (let*
885 ((out (assoc-ref outputs "out")))
886 (wrap-program (string-append out "/bin/gnome-photos")
887 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
888 #t)))))
889 (native-inputs
890 `(("dbus" ,dbus)
891 ("desktop-file-utils" ,desktop-file-utils)
892 ("gettext" ,gettext-minimal)
893 ("git" ,git-minimal)
894 ("glib:bin" ,glib "bin")
895 ("gobject-introspection" ,gobject-introspection)
896 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
897 ("gtk+:bin" ,gtk+ "bin")
898 ("itstool" ,itstool)
899 ("pkg-config" ,pkg-config)))
900 (inputs
901 `(("babl" ,babl)
902 ("cairo" ,cairo)
903 ("gdk-pixbuf" ,gdk-pixbuf+svg)
904 ("gegl" ,gegl)
905 ("geocode-glib" ,geocode-glib)
906 ("gexiv2" ,gexiv2)
907 ("gnome-online-accounts" ,gnome-online-accounts)
908 ("gnome-online-miners" ,gnome-online-miners)
909 ("grilo" ,grilo)
910 ("grilo-plugins" ,grilo-plugins)
911 ("gtk+" ,gtk+)
912 ("libdazzle" ,libdazzle)
913 ("libgdata" ,libgdata)
914 ("libgfbgraph" ,gfbgraph)
915 ("libjpeg" ,libjpeg-turbo)
916 ("libpng" ,libpng)
917 ("librest" ,rest)
918 ("pygobject" ,python-pygobject)
919 ("tracker" ,tracker)
920 ("tracker-miners" ,tracker-miners)))
921 (synopsis "Access, organize and share your photos on GNOME desktop")
922 (description "GNOME Photos is a simple and elegant replacement for using a
923 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
924 cloud integration is offered through GNOME Online Accounts.")
925 (home-page "https://wiki.gnome.org/Apps/Photos")
926 (license license:gpl3+)))
927
928 (define-public gnome-music
929 (package
930 (name "gnome-music")
931 (version "3.34.5")
932 (source
933 (origin
934 (method url-fetch)
935 (uri
936 (string-append "mirror://gnome/sources/" name "/"
937 (version-major+minor version) "/"
938 name "-" version ".tar.xz"))
939 (sha256
940 (base32
941 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
942 (build-system meson-build-system)
943 (arguments
944 `(#:glib-or-gtk? #t
945 #:phases
946 (modify-phases %standard-phases
947 (add-after 'install 'wrap-gnome-music
948 (lambda* (#:key inputs outputs #:allow-other-keys)
949 (let*
950 ((out (assoc-ref outputs "out"))
951 (pylib (string-append out "/lib/python"
952 ,(version-major+minor
953 (package-version python))
954 "/site-packages")))
955 (wrap-program (string-append out "/bin/gnome-music")
956 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
957 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
958 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
959 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
960 #t)))))
961 (native-inputs
962 `(("desktop-file-utils" ,desktop-file-utils)
963 ("gettext" ,gettext-minimal)
964 ("glib:bin" ,glib "bin")
965 ("gobject-introspection" ,gobject-introspection)
966 ("gtk+:bin" ,gtk+ "bin")
967 ("itstools" ,itstool)
968 ("pkg-config" ,pkg-config)))
969 (inputs
970 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
971 ("grilo" ,grilo)
972 ("grilo-plugins" ,grilo-plugins)
973 ("gst-plugins-base" ,gst-plugins-base)
974 ("gstreamer" ,gstreamer)
975 ("gvfs" ,gvfs)
976 ("libdazzle" ,libdazzle)
977 ("libmediaart" ,libmediaart)
978 ("libsoup" ,libsoup)
979 ("pycairo" ,python-pycairo)
980 ("pygobject" ,python-pygobject)
981 ("tracker" ,tracker)
982 ("tracker-miners" ,tracker-miners)))
983 (synopsis "Simple music player for GNOME desktop")
984 (description "GNOME Music is the new GNOME music playing application that
985 aims to combine an elegant and immersive browsing experience with simple
986 and straightforward controls.")
987 (home-page "https://wiki.gnome.org/Apps/Music")
988 (license license:gpl2+)))
989
990 (define-public portablexdr
991 (package
992 (name "portablexdr")
993 (version "4.9.1")
994 (source
995 (origin
996 (method url-fetch)
997 (uri
998 (string-append "https://people.redhat.com/~rjones/" name "/files/"
999 name "-" version ".tar.gz"))
1000 (sha256
1001 (base32
1002 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1003 (build-system gnu-build-system)
1004 (synopsis "External Data Representation Library")
1005 (description "PortableXDR is an implementation of External Data
1006 Representation (XDR) Library. It is a standard data serialization format, for
1007 uses such as computer network protocols. It allows data to be transferred
1008 between different kinds of computer systems.")
1009 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1010 (license
1011 (list
1012 license:gpl2+
1013 license:lgpl2.1+))))
1014
1015 (define-public tepl
1016 (package
1017 (name "tepl")
1018 (version "4.4.0")
1019 (source
1020 (origin
1021 (method url-fetch)
1022 (uri
1023 (string-append "mirror://gnome/sources/" name "/"
1024 (version-major+minor version) "/"
1025 name "-" version ".tar.xz"))
1026 (sha256
1027 (base32
1028 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
1029 (build-system glib-or-gtk-build-system)
1030 (arguments
1031 `(#:tests? #f)) ; FIX-ME: Requires gvfs
1032 (native-inputs
1033 `(("gobject-introspection" ,gobject-introspection)
1034 ("pkg-config" ,pkg-config)))
1035 (inputs
1036 `(("amtk" ,amtk)
1037 ("glib" ,glib)
1038 ("gtk+" ,gtk+)
1039 ("gtksourceview" ,gtksourceview)
1040 ("libxml2" ,libxml2)
1041 ("uchardet" ,uchardet)))
1042 (synopsis "Text editor product line")
1043 (description "Tepl is a library that eases the development of
1044 GtkSourceView-based text editors and IDEs.")
1045 (home-page "https://wiki.gnome.org/Projects/Tepl")
1046 (license license:lgpl2.1+)))
1047
1048 (define-public krb5-auth-dialog
1049 (package
1050 (name "krb5-auth-dialog")
1051 (version "3.26.1")
1052 (source
1053 (origin
1054 (method url-fetch)
1055 (uri
1056 (string-append "mirror://gnome/sources/" name "/"
1057 (version-major+minor version) "/"
1058 name "-" version ".tar.xz"))
1059 (sha256
1060 (base32
1061 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1062 (build-system glib-or-gtk-build-system)
1063 (native-inputs
1064 `(("intltool" ,intltool)
1065 ("itstool" ,itstool)
1066 ("libxml2" ,libxml2)
1067 ("pkg-config" ,pkg-config)
1068 ("python-wrapper" ,python-wrapper)))
1069 (inputs
1070 `(("glib" ,glib)
1071 ("gtk+" ,gtk+)
1072 ("libnotify" ,libnotify)
1073 ("mit-krb5" ,mit-krb5)
1074 ("network-manager" ,network-manager)))
1075 (synopsis "Popup dialogs for Kerberos 5")
1076 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1077 tickets, and pops up a dialog when they are about to expire.")
1078 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1079 (license license:gpl2+)))
1080
1081 (define-public notification-daemon
1082 (package
1083 (name "notification-daemon")
1084 (version "3.20.0")
1085 (source
1086 (origin
1087 (method url-fetch)
1088 (uri
1089 (string-append "mirror://gnome/sources/" name "/"
1090 (version-major+minor version) "/"
1091 name "-" version ".tar.xz"))
1092 (sha256
1093 (base32
1094 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1095 (build-system glib-or-gtk-build-system)
1096 (native-inputs
1097 `(("intltool" ,intltool)
1098 ("pkg-config" ,pkg-config)))
1099 (inputs
1100 `(("glib" ,glib)
1101 ("gtk+" ,gtk+)
1102 ("x11" ,libx11)))
1103 (synopsis "Notification Daemon for GNOME Desktop")
1104 (description "Notification-Daemon is the server implementation of the
1105 freedesktop.org desktop notification specification.")
1106 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1107 (license license:gpl2+)))
1108
1109 (define-public mm-common
1110 (package
1111 (name "mm-common")
1112 (version "1.0.2")
1113 (source (origin
1114 (method url-fetch)
1115 (uri (string-append "mirror://gnome/sources/mm-common/"
1116 (version-major+minor version) "/"
1117 "mm-common-" version ".tar.xz"))
1118 (sha256
1119 (base32
1120 "07b4s5ckcz9q5gwx8vchim19mhfgl8wysqwi30pndks3m4zrzad2"))))
1121 (build-system meson-build-system)
1122 (arguments
1123 `(#:phases
1124 (modify-phases %standard-phases
1125 (add-after 'unpack 'patch
1126 (lambda* (#:key inputs #:allow-other-keys)
1127 (substitute* "util/mm-common-prepare.in"
1128 (("ln") (string-append (assoc-ref inputs "coreutils")
1129 "/bin/ln"))
1130 (("cp") (string-append (assoc-ref inputs "coreutils")
1131 "/bin/cp"))
1132 (("sed") (string-append (assoc-ref inputs "sed")
1133 "/bin/sed"))
1134 (("cat") (string-append (assoc-ref inputs "coreutils")
1135 "/bin/cat")))
1136 #t)))))
1137 (native-inputs
1138 `(("coreutils" ,coreutils)
1139 ("gettext" ,gettext-minimal)
1140 ("pkg-config" ,pkg-config)
1141 ("sed" ,sed)))
1142 (inputs
1143 `(("python" ,python)))
1144 (synopsis "Module of GNOME C++ bindings")
1145 (description "The mm-common module provides the build infrastructure
1146 and utilities shared among the GNOME C++ binding libraries. Release
1147 archives of mm-common include the Doxygen tag file for the GNU C++
1148 Library reference documentation.")
1149 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1150 (license license:gpl2+)))
1151
1152 (define-public phodav
1153 (package
1154 (name "phodav")
1155 (version "2.5")
1156 (source (origin
1157 (method url-fetch)
1158 (uri (string-append "mirror://gnome/sources/" name "/"
1159 (version-major+minor version) "/"
1160 name "-" version ".tar.xz"))
1161 (sha256
1162 (base32
1163 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1164 (build-system meson-build-system)
1165 (arguments
1166 `(#:phases
1167 (modify-phases %standard-phases
1168 (add-before 'check 'start-virtual-dir-server
1169 ;; The same server when started by tests/virtual-dir returns an
1170 ;; unexpected status (4 instead of 200) and fails a test. It is
1171 ;; unclear why starting it manually here makes it pass.
1172 (lambda _
1173 (system "tests/virtual-dir-server &")
1174 #t)))))
1175 (native-inputs
1176 `(("docbook-xml" ,docbook-xml-4.3)
1177 ("gettext" ,gettext-minimal)
1178 ("glib:bin" ,glib "bin")
1179 ("gtk-doc" ,gtk-doc)
1180 ("pkg-config" ,pkg-config)))
1181 (inputs
1182 `(("avahi" ,avahi)
1183 ("libgudev" ,libgudev)
1184 ("libsoup" ,libsoup)))
1185 (synopsis "WebDav server implementation using libsoup")
1186 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1187 but it is generic enough to be reused in other projects,
1188 in particular in the GNOME desktop.")
1189 (home-page "https://wiki.gnome.org/phodav")
1190 (license license:lgpl2.1+)))
1191
1192 (define-public gnome-color-manager
1193 (package
1194 (name "gnome-color-manager")
1195 (version "3.32.0")
1196 (source (origin
1197 (method url-fetch)
1198 (uri (string-append "mirror://gnome/sources/" name "/"
1199 (version-major+minor version) "/"
1200 name "-" version ".tar.xz"))
1201 (sha256
1202 (base32
1203 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1204 (build-system meson-build-system)
1205 (arguments
1206 `(#:glib-or-gtk? #t
1207 #:phases
1208 (modify-phases %standard-phases
1209 (add-before
1210 'check 'pre-check
1211 (lambda _
1212 ;; Tests require a running X server.
1213 (system "Xvfb :1 &")
1214 (setenv "DISPLAY" ":1")
1215 #t)))))
1216 (native-inputs
1217 `(("desktop-file-utils" ,desktop-file-utils)
1218 ("gettext" ,gettext-minimal)
1219 ("glib:bin" ,glib "bin")
1220 ("gtk+:bin" ,gtk+ "bin")
1221 ("itstool" ,itstool)
1222 ("pkg-config" ,pkg-config)
1223 ("xorg-server" ,xorg-server-for-tests)))
1224 (inputs
1225 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1226 ("appstream-glib" ,appstream-glib)
1227 ("colord-gtk" ,colord-gtk)
1228 ("exiv2" ,exiv2)
1229 ("gnome-desktop" ,gnome-desktop)
1230 ("libcanberra" ,libcanberra)
1231 ("libexif" ,libexif)
1232 ("libtiff" ,libtiff)
1233 ("libxrandr" ,libxrandr)
1234 ("libxtst" ,libxtst)
1235 ("libxxf86vm" ,libxxf86vm)
1236 ("vte" ,vte)
1237 ("xorgproto" ,xorgproto)))
1238 (synopsis "Color profile manager for the GNOME desktop")
1239 (description "GNOME Color Manager is a session framework that makes
1240 it easy to manage, install and generate color profiles
1241 in the GNOME desktop.")
1242 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1243 (license license:gpl2+)))
1244
1245 (define-public gnome-online-miners
1246 (package
1247 (name "gnome-online-miners")
1248 (version "3.34.0")
1249 (source (origin
1250 (method url-fetch)
1251 (uri (string-append "mirror://gnome/sources/" name "/"
1252 (version-major+minor version) "/"
1253 name "-" version ".tar.xz"))
1254 (sha256
1255 (base32
1256 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1257 (build-system glib-or-gtk-build-system)
1258 (native-inputs
1259 `(("gettext" ,gettext-minimal)
1260 ("glib:bin" ,glib "bin")
1261 ("gobject-introspection" ,gobject-introspection)
1262 ("gtk+:bin" ,gtk+ "bin")
1263 ("pkg-config" ,pkg-config)))
1264 (inputs
1265 `(("gnome-online-accounts" ,gnome-online-accounts)
1266 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1267 ("grilo" ,grilo)
1268 ("libgdata" ,libgdata)
1269 ("libgfbgraph" ,gfbgraph)
1270 ("libzapojit" ,libzapojit)
1271 ("rest" ,rest)
1272 ("tracker" ,tracker)))
1273 (synopsis "Web Crawlers for GNOME")
1274 (description "GNOME Online Miners provides a set of crawlers that
1275 go through your online content and index them locally in Tracker.
1276 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1277 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1278 (license license:gpl2+)))
1279
1280 (define-public gssdp
1281 (package
1282 (name "gssdp")
1283 (version "1.2.3")
1284 (source (origin
1285 (method url-fetch)
1286 (uri (string-append "mirror://gnome/sources/" name "/"
1287 (version-major+minor version) "/"
1288 name "-" version ".tar.xz"))
1289 (sha256
1290 (base32
1291 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1292 (build-system meson-build-system)
1293 (native-inputs
1294 `(("gettext" ,gettext-minimal)
1295 ("glib:bin" ,glib "bin")
1296 ("gobject-introspection" ,gobject-introspection)
1297 ("gtk-doc" ,gtk-doc)
1298 ("pkg-config" ,pkg-config)
1299 ("vala" ,vala)))
1300 (inputs
1301 `(("gtk+" ,gtk+)
1302 ("libsoup" ,libsoup)))
1303 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1304 Protocol} for GNOME")
1305 (description "This package provides a library to handle resource discovery
1306 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1307 a debugging tool, @command{gssdp-device-sniffer}.")
1308 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1309 (license license:lgpl2.0+)))
1310
1311 (define-public gupnp
1312 (package
1313 (name "gupnp")
1314 (version "1.2.4")
1315 (source (origin
1316 (method url-fetch)
1317 (uri (string-append "mirror://gnome/sources/" name "/"
1318 (version-major+minor version) "/"
1319 name "-" version ".tar.xz"))
1320 (sha256
1321 (base32
1322 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1323 (build-system meson-build-system)
1324 (native-inputs
1325 `(("gettext" ,gettext-minimal)
1326 ("glib:bin" ,glib "bin")
1327 ("gobject-introspection" ,gobject-introspection)
1328 ("gtk-doc" ,gtk-doc)
1329 ("pkg-config" ,pkg-config)
1330 ("vala" ,vala)))
1331 (inputs
1332 `(("gssdp" ,gssdp)
1333 ("gtk+" ,gtk+)
1334 ("libsoup" ,libsoup)))
1335 (synopsis "PnP API for GNOME")
1336 (description "This package provides GUPnP, an object-oriented framework
1337 for creating UPnP devices and control points, written in C using
1338 @code{GObject} and @code{libsoup}.")
1339 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1340 (license license:lgpl2.0+)))
1341
1342 (define-public gupnp-dlna
1343 (package
1344 (name "gupnp-dlna")
1345 (version "0.10.5")
1346 (source (origin
1347 (method url-fetch)
1348 (uri (string-append "mirror://gnome/sources/" name "/"
1349 (version-major+minor version) "/"
1350 name "-" version ".tar.xz"))
1351 (sha256
1352 (base32
1353 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1354 (build-system gnu-build-system)
1355 (native-inputs
1356 `(("gettext" ,gettext-minimal)
1357 ("glib:bin" ,glib "bin")
1358 ("gobject-introspection" ,gobject-introspection)
1359 ("gtk-doc" ,gtk-doc)
1360 ("libxml" ,libxml2)
1361 ("pkg-config" ,pkg-config)
1362 ("vala" ,vala)))
1363 (inputs
1364 `(("gstreamer" ,gstreamer)
1365 ("gupnp" ,gupnp)))
1366 (propagated-inputs
1367 `(("gst-plugins-base" ,gst-plugins-base)
1368 ("gst-plugins-good" ,gst-plugins-good)))
1369 (synopsis "GUPnP DLNA for GNOME")
1370 (description "This package provides a small utility library to
1371 support DLNA-related tasks such as media profile guessing, transcoding to a
1372 given profile, etc. DLNA is a subset of UPnP A/V.")
1373 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1374 (license license:lgpl2.0+)))
1375
1376 (define-public gupnp-av
1377 (package
1378 (name "gupnp-av")
1379 (version "0.12.11")
1380 (source (origin
1381 (method url-fetch)
1382 (uri (string-append "mirror://gnome/sources/" name "/"
1383 (version-major+minor version) "/"
1384 name "-" version ".tar.xz"))
1385 (sha256
1386 (base32
1387 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1388 (build-system gnu-build-system)
1389 (native-inputs
1390 `(("gettext" ,gettext-minimal)
1391 ("glib:bin" ,glib "bin")
1392 ("gobject-introspection" ,gobject-introspection)
1393 ("gtk-doc" ,gtk-doc)
1394 ("libxml" ,libxml2)
1395 ("pkg-config" ,pkg-config)))
1396 (inputs
1397 `(("gtk+" ,gtk+)
1398 ("gupnp" ,gupnp)))
1399 (synopsis "GUPnP A/V for GNOME")
1400 (description "This package provides a small library for handling
1401 and implementation of UPnP A/V profiles.")
1402 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1403 (license license:lgpl2.0+)))
1404
1405 (define-public libmediaart
1406 (package
1407 (name "libmediaart")
1408 (version "1.9.4")
1409 (source (origin
1410 (method url-fetch)
1411 (uri (string-append "mirror://gnome/sources/" name "/"
1412 (version-major+minor version) "/"
1413 name "-" version ".tar.xz"))
1414 (sha256
1415 (base32
1416 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
1417 (build-system gnu-build-system)
1418 (native-inputs
1419 `(("glib:bin" ,glib "bin")
1420 ("pkg-config" ,pkg-config)))
1421 (inputs
1422 `(("gdk-pixbuf" ,gdk-pixbuf)
1423 ("gettext" ,gettext-minimal)
1424 ("gobject-introspection" ,gobject-introspection)
1425 ("gtk+:doc" ,gtk+ "doc")
1426 ("vala" ,vala)))
1427 (synopsis "Media art library for the GNOME desktop")
1428 (description
1429 "The libmediaart library is the foundation for media art caching,
1430 extraction, and lookup for applications on the desktop.")
1431 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1432 (license license:lgpl2.1+)))
1433
1434 (define-public gnome-initial-setup
1435 (package
1436 (name "gnome-initial-setup")
1437 (version "3.32.1")
1438 (source (origin
1439 (method url-fetch)
1440 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1441 (version-major+minor version)
1442 "/gnome-initial-setup-" version ".tar.xz"))
1443 (sha256
1444 (base32
1445 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1446 (build-system meson-build-system)
1447 (arguments
1448 '(#:configure-flags '(;; Enable camera support for user selfie.
1449 "-Dcheese=auto"
1450 "-Dsystemd=false")
1451 #:phases (modify-phases %standard-phases
1452 (add-after 'unpack 'set-gkbd-file-name
1453 (lambda* (#:key inputs #:allow-other-keys)
1454 ;; Allow the "Preview" button in the keyboard layout
1455 ;; selection dialog to display the layout.
1456 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1457 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1458 (("\"gkbd-keyboard-display")
1459 (string-append "\"" libgnomekbd
1460 "/bin/gkbd-keyboard-display")))
1461 #t))))))
1462 (native-inputs
1463 `(("gettext" ,gettext-minimal)
1464 ("glib:bin" ,glib "bin")
1465 ("gobject-introspection" ,gobject-introspection)
1466 ("gtk+:bin" ,gtk+ "bin")
1467 ("pkg-config" ,pkg-config)))
1468 (inputs
1469 `(("accountsservice" ,accountsservice)
1470 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1471 ("gdm" ,gdm)
1472 ("geoclue" ,geoclue)
1473 ("gnome-desktop" ,gnome-desktop)
1474 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1475 ("gnome-online-accounts" ,gnome-online-accounts)
1476 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1477 ("gstreamer" ,gstreamer)
1478 ("ibus" ,ibus)
1479 ("json-glib" ,json-glib)
1480 ("krb5" ,mit-krb5)
1481 ("libgweather" ,libgweather)
1482 ("libnma" ,libnma)
1483 ("libsecret" ,libsecret)
1484 ("network-manager" ,network-manager)
1485 ("packagekit" ,packagekit)
1486 ("polkit" ,polkit)
1487 ("pwquality" ,libpwquality)
1488 ("rest" ,rest)
1489 ("upower" ,upower)
1490 ("webkitgtk" ,webkitgtk)
1491 ("libgnomekbd" ,libgnomekbd)))
1492 (synopsis "Initial setup wizard for GNOME desktop")
1493 (description "This package provides a set-up wizard when a
1494 user logs into GNOME for the first time. It typically provides a
1495 tour of all gnome components and allows the user to set them up.")
1496 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1497 (license license:gpl2)))
1498
1499 (define-public gnome-user-share
1500 (package
1501 (name "gnome-user-share")
1502 (version "3.33.1")
1503 (source (origin
1504 (method url-fetch)
1505 (uri (string-append "mirror://gnome/sources/" name "/"
1506 (version-major+minor version) "/"
1507 name "-" version ".tar.xz"))
1508 (sha256
1509 (base32
1510 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1511 (build-system meson-build-system)
1512 (arguments
1513 `(#:glib-or-gtk? #t
1514 #:configure-flags
1515 `("-Dsystemd=false"
1516 ;; Enable nautilus extension for file sharing.
1517 "-Dnautilus_extension=true")))
1518 (native-inputs
1519 `(("gettext" ,gettext-minimal)
1520 ("glib:bin" ,glib "bin")
1521 ("gobject-introspection" ,gobject-introspection)
1522 ("gtk+:bin" ,gtk+ "bin")
1523 ("pkg-config" ,pkg-config)
1524 ("yelp-tools" ,yelp-tools)))
1525 (inputs
1526 `(("glib" ,glib)
1527 ("gnome-bluetooth" ,gnome-bluetooth)
1528 ("gtk+" ,gtk+)
1529 ("libcanberra" ,libcanberra)
1530 ("libnotify" ,libnotify)
1531 ("nautilus" ,nautilus))) ; For nautilus extension.
1532 (synopsis "File sharing for GNOME desktop")
1533 (description "GNOME User Share is a small package that binds together
1534 various free software projects to bring easy to use user-level file
1535 sharing to the masses.")
1536 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1537 (license license:gpl2+)))
1538
1539 (define-public sushi
1540 (package
1541 (name "sushi")
1542 (version "3.32.1")
1543 (source (origin
1544 (method url-fetch)
1545 (uri (string-append "mirror://gnome/sources/" name "/"
1546 (version-major+minor version) "/"
1547 name "-" version ".tar.xz"))
1548 (sha256
1549 (base32
1550 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1551 (build-system meson-build-system)
1552 (arguments
1553 `(#:glib-or-gtk? #t
1554 #:phases
1555 (modify-phases %standard-phases
1556 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1557 (lambda* (#:key outputs #:allow-other-keys)
1558 (let ((prog (string-append (assoc-ref outputs "out")
1559 "/bin/sushi")))
1560 ;; Put existing typelibs before sushi's deps, so as to correctly
1561 ;; infer gdk-pixbuf
1562 (wrap-program prog
1563 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1564 #t))))))
1565 (native-inputs
1566 `(("glib:bin" ,glib "bin")
1567 ("gettext" ,gettext-minimal)
1568 ("gobject-introspection" ,gobject-introspection)
1569 ("pkg-config" ,pkg-config)))
1570 (inputs
1571 `(("clutter" ,clutter)
1572 ("clutter-gst" ,clutter-gst)
1573 ("clutter-gtk" ,clutter-gtk)
1574 ("evince" ,evince) ; For file previewing.
1575 ("freetype" ,freetype)
1576 ("gdk-pixbuf" ,gdk-pixbuf)
1577 ("gjs" ,gjs)
1578 ("gst-plugins-base" ,gst-plugins-base)
1579 ("gstreamer" ,gstreamer)
1580 ("gtksourceview" ,gtksourceview-3)
1581 ("harfbuzz" ,harfbuzz)
1582 ("libepoxy" ,libepoxy)
1583 ("libmusicbrainz" ,libmusicbrainz)
1584 ("libxml2" ,libxml2)
1585 ("neon" ,neon)
1586 ("webkitgtk" ,webkitgtk)))
1587 (synopsis "File previewer for the GNOME desktop")
1588 (description "Sushi is a DBus-activated service that allows applications to
1589 preview files on the GNOME desktop.")
1590 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1591 (license license:gpl2+)))
1592
1593 (define-public rygel
1594 (package
1595 (name "rygel")
1596 (version "0.38.3")
1597 (source (origin
1598 (method url-fetch)
1599 (uri (string-append "mirror://gnome/sources/" name "/"
1600 (version-major+minor version) "/"
1601 name "-" version ".tar.xz"))
1602 (sha256
1603 (base32
1604 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1605 (build-system gnu-build-system)
1606 (native-inputs
1607 `(("gettext" ,gettext-minimal)
1608 ("gobject-introspection" ,gobject-introspection)
1609 ("gtk-doc" ,gtk-doc)
1610 ("pkg-config" ,pkg-config)
1611 ("vala" ,vala)))
1612 (inputs
1613 `(("gdk-pixbuf" ,gdk-pixbuf)
1614 ("gssdp" ,gssdp)
1615 ("gstreamer" ,gstreamer)
1616 ("gst-plugins-base" ,gst-plugins-base)
1617 ("gtk+" ,gtk+)
1618 ("gupnp" ,gupnp)
1619 ("gupnp-av" ,gupnp-av)
1620 ("gupnp-dlna" ,gupnp-dlna)
1621 ("libgee" ,libgee)
1622 ("libmediaart" ,libmediaart)
1623 ("libsoup" ,libsoup)
1624 ("libxslt" ,libxslt)
1625 ("libunistring" ,libunistring)
1626 ("tracker" ,tracker)))
1627 (synopsis "Share audio, video, and pictures with other devices")
1628 (description
1629 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1630 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1631 pictures, and to control a media player on your home network.
1632
1633 Rygel achieves interoperability with other devices by trying to conform to the
1634 strict requirements of DLNA and by converting media on-the-fly to formats that
1635 client devices can handle.")
1636 (home-page "https://wiki.gnome.org/Projects/Rygel")
1637 (license (list
1638 ;; For logo (data/icons/*).
1639 license:cc-by-sa3.0
1640 ;; For all others.
1641 license:lgpl2.1+))))
1642
1643 (define-public libnma
1644 (package
1645 (name "libnma")
1646 (version "1.8.28")
1647 (source (origin
1648 (method url-fetch)
1649 (uri (string-append "mirror://gnome/sources/" name "/"
1650 (version-major+minor version) "/"
1651 name "-" version ".tar.xz"))
1652 (sha256
1653 (base32
1654 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1655 (build-system meson-build-system)
1656 (arguments
1657 `(#:phases
1658 (modify-phases %standard-phases
1659 (add-after 'unpack 'patch-docbook-xml
1660 (lambda* (#:key inputs #:allow-other-keys)
1661 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1662 "/xml/dtd/docbook")))
1663 (substitute* "libnma-docs.xml"
1664 (("http://.*/docbookx\\.dtd")
1665 (string-append xmldoc "/docbookx.dtd")))
1666 #t))))))
1667 (native-inputs
1668 `(("docbook-xml" ,docbook-xml-4.3)
1669 ("gettext" ,gettext-minimal)
1670 ("glib:bin" ,glib "bin")
1671 ("gtk-doc" ,gtk-doc)
1672 ("gobject-introspection" ,gobject-introspection)
1673 ("pkg-config" ,pkg-config)
1674 ("vala" ,vala)))
1675 (inputs
1676 `(("gcr" ,gcr)
1677 ("gtk+" ,gtk+)
1678 ("iso-codes" ,iso-codes)
1679 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1680 ("network-manager" ,network-manager)))
1681 (synopsis "Network Manager's applet library")
1682 (description "Libnma is an applet library for Network Manager. It was
1683 initially part of network-manager-applet and has now become a separate
1684 project.")
1685 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1686 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1687 ;; "LGPL-2.1+".
1688 (license license:gpl2+)))
1689
1690 (define-public gnome-menus
1691 (package
1692 (name "gnome-menus")
1693 (version "3.32.0")
1694 (source (origin
1695 (method url-fetch)
1696 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1697 (version-major+minor version) "/"
1698 name "-" version ".tar.xz"))
1699 (sha256
1700 (base32
1701 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1702 (build-system gnu-build-system)
1703 (native-inputs
1704 `(("gettext" ,gettext-minimal)
1705 ("glib" ,glib)
1706 ("pkg-config" ,pkg-config)))
1707 (synopsis "Menu support for GNOME desktop")
1708 (description "GNOME Menus contains the libgnome-menu library, the layout
1709 configuration files for the GNOME menu, as well as a simple menu editor.")
1710 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1711 (license license:lgpl2.0+)))
1712
1713 (define-public deja-dup
1714 (package
1715 (name "deja-dup")
1716 (version "40.6")
1717 (source (origin
1718 (method url-fetch)
1719 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1720 version "/deja-dup-" version ".tar.bz2"))
1721 (sha256
1722 (base32
1723 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1724 (build-system meson-build-system)
1725 (arguments
1726 `(#:glib-or-gtk? #t
1727 #:configure-flags
1728 (list
1729 ;; Otherwise, the RUNPATH will lack the final path component.
1730 (string-append "-Dc_link_args=-Wl,-rpath="
1731 (assoc-ref %outputs "out") "/lib/deja-dup"))
1732 #:phases
1733 (modify-phases %standard-phases
1734 (add-after 'unpack 'patch-paths
1735 (lambda* (#:key inputs #:allow-other-keys)
1736 (let ((python (assoc-ref inputs "python")))
1737 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1738 "libdeja/tests/scripts/instance-error.test")
1739 (("/bin/rm")
1740 (which "rm")))
1741 (substitute* "libdeja/tests/runner.vala"
1742 (("/bin/sh")
1743 (which "sh")))
1744 (substitute* "libdeja/tests/scripts/instance-error.test"
1745 (("`which python3`")
1746 (string-append python "/bin/python3"))))))
1747 (add-after 'unpack 'patch-libgpg-error
1748 (lambda* (#:key inputs #:allow-other-keys)
1749 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1750 (substitute* "meson.build"
1751 (("(gpgerror_libs = ).*" _ var)
1752 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1753 #t))
1754 (add-after 'unpack 'skip-gtk-update-icon-cache
1755 ;; Don't create 'icon-theme.cache'.
1756 (lambda _
1757 (substitute* "data/post-install.sh"
1758 (("gtk-update-icon-cache") "true"))
1759 #t)))))
1760 (inputs
1761 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1762 ("duplicity" ,duplicity)
1763 ("python" ,python)
1764 ("python-pygobject" ,python-pygobject)
1765 ("gtk+" ,gtk+)
1766 ("json-glib" ,json-glib)
1767 ("libnotify" ,libnotify)
1768 ("libgpg-error" ,libgpg-error)
1769 ("libsecret" ,libsecret)
1770 ("libsoup" ,libsoup)
1771 ("packagekit" ,packagekit)))
1772 (native-inputs
1773 `(("appstream-glib" ,appstream-glib)
1774 ("desktop-file-utils" ,desktop-file-utils)
1775 ("gettext" ,gettext-minimal)
1776 ("glib" ,glib "bin") ; for glib-compile-schemas.
1777 ("gobject-introspection" ,gobject-introspection)
1778 ("itstool" ,itstool)
1779 ("pkg-config" ,pkg-config)
1780 ("vala" ,vala)))
1781 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1782 (synopsis "Simple backup tool, for regular encrypted backups")
1783 (description
1784 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1785 uses duplicity as the backend, which supports incremental backups and storage
1786 either on a local, or remote machine via a number of methods.")
1787 (license license:gpl3+)))
1788
1789 (define-public gnome-commander
1790 (package
1791 (name "gnome-commander")
1792 (version "1.10.3")
1793 (source
1794 (origin
1795 (method url-fetch)
1796 (uri (string-append "mirror://gnome/sources/" name "/"
1797 (version-major+minor version) "/"
1798 "gnome-commander-" version ".tar.xz"))
1799 (sha256
1800 (base32 "0bis36awb73vhkncq8yr0qlnyaxynqkvmyqbg57ijqwd0m8hh4zg"))))
1801 (build-system glib-or-gtk-build-system)
1802 (native-inputs
1803 `(("desktop-file-utils" ,desktop-file-utils)
1804 ("gcc" ,gcc-8) ;required for -Wcast-function-type
1805 ("gettext" ,gettext-minimal)
1806 ("glib:bin" ,glib "bin")
1807 ("gobject-introspection" ,gobject-introspection)
1808 ("googletest" ,googletest)
1809 ("intltool" ,intltool)
1810 ("itstool" ,itstool)
1811 ("libtool" ,libtool)
1812 ("pkg-config" ,pkg-config)))
1813 (inputs
1814 `(("gconf" ,gconf)
1815 ("gnome-vfs" ,gnome-vfs)
1816 ("gtk+" ,gtk+-2)
1817 ("libxml2" ,libxml2)))
1818 (home-page "https://gcmd.github.io/")
1819 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1820 (description
1821 "GNOME Commander is a two-pane graphical file manager using GNOME
1822 libraries. It aims to fulfill the demands of more advanced users who
1823 like to focus on file management, their work through special applications
1824 and running smart commands.")
1825 (license license:gpl2+)))
1826
1827 (define-public gnome-user-docs
1828 (package
1829 (name "gnome-user-docs")
1830 (version "3.32.3")
1831 (source
1832 (origin
1833 (method url-fetch)
1834 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1835 (version-major+minor version)
1836 "/gnome-user-docs-" version ".tar.xz"))
1837 (sha256
1838 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1839 (build-system gnu-build-system)
1840 (native-inputs
1841 `(("gettext" ,gettext-minimal)
1842 ("itstool" ,itstool)
1843 ("pkg-config" ,pkg-config)
1844 ("xmllint" ,libxml2)))
1845 (synopsis "User documentation for the GNOME desktop")
1846 (description
1847 "The GNOME User Documentation explains how to use the GNOME desktop and its
1848 components. It covers usage and setup of the core GNOME programs by end-users
1849 and system administrators.")
1850 (home-page "https://live.gnome.org/DocumentationProject")
1851 (license license:cc-by3.0)))
1852
1853 (define-public gnome-getting-started-docs
1854 (package
1855 (name "gnome-getting-started-docs")
1856 (version "3.32.2")
1857 (source
1858 (origin
1859 (method url-fetch)
1860 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1861 (version-major+minor version)
1862 "/gnome-getting-started-docs-" version ".tar.xz"))
1863 (sha256
1864 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1865 (build-system gnu-build-system)
1866 (native-inputs
1867 `(("gettext" ,gettext-minimal)
1868 ("itstool" ,itstool)
1869 ("pkg-config" ,pkg-config)
1870 ("xmllint" ,libxml2)))
1871 (synopsis "Help to get new users started with the GNOME desktop")
1872 (description
1873 "The GNOME Getting Started Documentation contains GNOME's intuitive
1874 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1875
1876 It is normally used together with @command{gnome-initial-setup}, but is also
1877 useful as a tutorial and users' guide for new or less experienced users.")
1878 (home-page "https://live.gnome.org/DocumentationProject")
1879 (license license:cc-by-sa3.0)))
1880
1881 (define-public dia
1882 ;; This version from GNOME's repository includes fixes for compiling with
1883 ;; recent versions of the build tools. The latest activity on the
1884 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1885 ;; fixes since.
1886 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1887 (revision "2"))
1888 (package
1889 (name "dia")
1890 (version (git-version "0.97.3" revision commit))
1891 (source (origin
1892 (method git-fetch)
1893 (uri (git-reference
1894 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1895 (commit commit)))
1896 (file-name (git-file-name name version))
1897 (sha256
1898 (base32
1899 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1900 (build-system meson-build-system)
1901 (inputs
1902 `(("graphene" ,graphene)
1903 ("gtk+" ,gtk+-2)
1904 ("libxml2" ,libxml2)
1905 ("libxslt" ,libxslt)
1906 ("poppler" ,poppler)
1907 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1908 ;; ERROR: Unknown method "dependency" in object.
1909 ("python-2" ,python-2)))
1910 (native-inputs
1911 `(("appstream-glib" ,appstream-glib)
1912 ("docbook-xsl" ,docbook-xsl)
1913 ("glib" ,glib "bin")
1914 ("intltool" ,intltool)
1915 ("pkg-config" ,pkg-config)))
1916 (home-page "https://wiki.gnome.org/Apps/Dia")
1917 (synopsis "Diagram creation for GNOME")
1918 (description "Dia can be used to draw different types of diagrams, and
1919 includes support for UML static structure diagrams (class diagrams), entity
1920 relationship modeling, and network diagrams. The program supports various file
1921 formats like PNG, SVG, PDF and EPS.")
1922 (license license:gpl2+))))
1923
1924 ;; This is the unstable release, but it is required for the current stable
1925 ;; release of gvfs (1.38.1).
1926 (define-public libgdata
1927 (package
1928 (name "libgdata")
1929 (version "0.17.9")
1930 (source (origin
1931 (method url-fetch)
1932 (uri (string-append "mirror://gnome/sources/" name "/"
1933 (version-major+minor version) "/"
1934 name "-" version ".tar.xz"))
1935 (sha256
1936 (base32
1937 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1938 (build-system gnu-build-system)
1939 (arguments
1940 '(#:phases
1941 (modify-phases %standard-phases
1942 (add-before 'check 'disable-failing-tests
1943 (lambda _
1944 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1945 ;; They have been removed in libgdata 0.17.6, so just do the same.
1946 (substitute* "gdata/tests/Makefile"
1947 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1948 #t)))))
1949 (native-inputs
1950 `(("glib:bin" ,glib "bin")
1951 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1952 ("intltool" ,intltool)
1953 ("pkg-config" ,pkg-config)
1954 ("uhttpmock" ,uhttpmock)))
1955 (inputs
1956 `(("cyrus-sasl" ,cyrus-sasl)
1957 ("glib-networking" ,glib-networking)))
1958 (propagated-inputs
1959 `(("gcr" ,gcr)
1960 ("glib" ,glib)
1961 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1962 ("json-glib" ,json-glib)
1963 ("liboauth" ,liboauth)
1964 ("libsoup" ,libsoup)
1965 ("libxml2" ,libxml2)))
1966 (home-page "https://wiki.gnome.org/Projects/libgdata")
1967 (synopsis "Library for accessing online service APIs")
1968 (description
1969 "libgdata is a GLib-based library for accessing online service APIs using
1970 the GData protocol — most notably, Google's services. It provides APIs to
1971 access the common Google services, and has full asynchronous support.")
1972 (license license:lgpl2.1+)))
1973
1974 (define-public libgxps
1975 (package
1976 (name "libgxps")
1977 (version "0.3.2")
1978 (source (origin
1979 (method url-fetch)
1980 (uri (string-append "mirror://gnome/sources/" name "/"
1981 (version-major+minor version) "/"
1982 name "-" version ".tar.xz"))
1983 (sha256
1984 (base32
1985 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
1986 (build-system meson-build-system)
1987 (native-inputs
1988 `(("gobject-introspection" ,gobject-introspection)
1989 ("pkg-config" ,pkg-config)))
1990 (inputs
1991 `(("gtk+" ,gtk+)
1992 ("libjpeg" ,libjpeg-turbo)
1993 ("lcms" ,lcms)
1994 ("libtiff" ,libtiff)))
1995 (propagated-inputs
1996 ;; In Requires of libgxps.pc.
1997 `(("cairo" ,cairo)
1998 ("glib" ,glib)
1999 ("libarchive" ,libarchive)))
2000 (home-page "https://wiki.gnome.org/Projects/libgxps")
2001 (synopsis "GObject-based library for handling and rendering XPS documents")
2002 (description
2003 "libgxps is a GObject-based library for handling and rendering XPS
2004 documents. This package also contains binaries that can convert XPS documents
2005 to other formats.")
2006 (license license:lgpl2.1+)))
2007
2008 (define-public gnome-characters
2009 (package
2010 (name "gnome-characters")
2011 (version "3.30.0")
2012 (source
2013 (origin
2014 (method url-fetch)
2015 (uri (string-append "mirror://gnome/sources/"
2016 "gnome-characters/" (version-major+minor version)
2017 "/gnome-characters-" version ".tar.xz"))
2018 (sha256
2019 (base32
2020 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
2021 (build-system meson-build-system)
2022 (arguments
2023 `(#:glib-or-gtk? #t
2024 #:phases (modify-phases %standard-phases
2025 (add-after 'install 'wrap
2026 (lambda* (#:key outputs #:allow-other-keys)
2027 ;; GNOME Characters needs Typelib files from GTK and
2028 ;; gnome-desktop.
2029 (wrap-program (string-append (assoc-ref outputs "out")
2030 "/bin/gnome-characters")
2031 `("GI_TYPELIB_PATH" ":" prefix
2032 (,(getenv "GI_TYPELIB_PATH"))))
2033 #t)))))
2034 (native-inputs
2035 `(("gettext" ,gettext-minimal)
2036 ("glib:bin" ,glib "bin")
2037 ("gtk+:bin" ,gtk+ "bin")
2038 ("pkg-config" ,pkg-config)
2039 ("python" ,python-minimal)))
2040 (inputs
2041 `(("gjs" ,gjs)
2042 ("gtk+" ,gtk+)
2043 ("libunistring" ,libunistring)
2044 ("gnome-desktop" ,gnome-desktop)))
2045 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2046 (synopsis "Find and insert unusual characters")
2047 (description "Characters is a simple utility application to find
2048 and insert unusual characters. It allows you to quickly find the
2049 character you are looking for by searching for keywords.")
2050 (license license:bsd-3)))
2051
2052 (define-public gnome-common
2053 (package
2054 (name "gnome-common")
2055 (version "3.18.0")
2056 (source
2057 (origin
2058 (method url-fetch)
2059 (uri (string-append "mirror://gnome/sources/" name "/"
2060 (version-major+minor version) "/"
2061 name "-" version ".tar.xz"))
2062 (sha256
2063 (base32
2064 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2065 (build-system gnu-build-system)
2066 (home-page "https://www.gnome.org/")
2067 (synopsis "Bootstrap GNOME modules built from Git")
2068 (description "gnome-common contains various files needed to bootstrap
2069 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2070 can be used to configure a source directory checked out from Git and some
2071 commonly used macros.")
2072 (license license:gpl2+)))
2073
2074 (define-public gnome-contacts
2075 (package
2076 (name "gnome-contacts")
2077 (version "3.34")
2078 (source (origin
2079 (method url-fetch)
2080 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2081 (version-major+minor version) "/"
2082 name "-" version ".tar.xz"))
2083 (sha256
2084 (base32
2085 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
2086 (build-system meson-build-system)
2087 (arguments
2088 `(#:configure-flags '("-Dcheese=false")
2089 #:phases
2090 (modify-phases %standard-phases
2091 (add-after 'unpack 'generate-vapis
2092 (lambda* (#:key inputs #:allow-other-keys)
2093 ;; To generate goa's missing .vapi file
2094 (define goa
2095 (assoc-ref inputs "gnome-online-accounts:lib"))
2096
2097 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
2098 "--library=goa-1.0"
2099 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
2100 #t))
2101 (add-after 'unpack 'skip-gtk-update-icon-cache
2102 ;; Don't create 'icon-theme.cache'.
2103 (lambda _
2104 (substitute* "build-aux/meson_post_install.py"
2105 (("gtk-update-icon-cache") "true"))
2106 #t)))))
2107 (native-inputs
2108 `(("glib:bin" ,glib "bin")
2109 ("pkg-config" ,pkg-config)))
2110 (inputs
2111 `(("docbook-xml" ,docbook-xml)
2112 ("dockbook-xsl" ,docbook-xsl)
2113 ("evolution-data-server" ,evolution-data-server)
2114 ("gettext" ,gettext-minimal)
2115 ("gnome-desktop" ,gnome-desktop)
2116 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
2117 ("gobject-introspection" ,gobject-introspection)
2118 ("gst-plugins-base" ,gst-plugins-base)
2119 ("gtk+" ,gtk+)
2120 ("libgee" ,libgee)
2121 ("libxslt" ,libxslt)
2122 ("telepathy-glib" ,telepathy-glib)
2123 ("vala" ,vala)))
2124 (propagated-inputs
2125 `(("folks" ,folks)
2126 ("telepathy-mission-control" ,telepathy-mission-control)))
2127 (synopsis "GNOME's integrated address book")
2128 (description
2129 "GNOME Contacts organizes your contact information from online and
2130 offline sources, providing a centralized place for managing your contacts.")
2131 (home-page "https://wiki.gnome.org/Apps/Contacts")
2132 (license license:gpl2+)))
2133
2134 (define-public gnome-desktop
2135 (package
2136 (name "gnome-desktop")
2137 (version "3.34.2")
2138 (source
2139 (origin
2140 (method url-fetch)
2141 (uri (string-append "mirror://gnome/sources/" name "/"
2142 (version-major+minor version) "/"
2143 name "-" version ".tar.xz"))
2144 (sha256
2145 (base32
2146 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2147 (build-system meson-build-system)
2148 (arguments
2149 '(#:phases
2150 (modify-phases %standard-phases
2151 (add-before 'configure 'patch-path
2152 (lambda* (#:key inputs #:allow-other-keys)
2153 (let ((libc (assoc-ref inputs "libc")))
2154 (substitute* "libgnome-desktop/gnome-languages.c"
2155 (("\"locale\"")
2156 (string-append "\"" libc "/bin/locale\"")))
2157 #t)))
2158 (add-before 'configure 'patch-bubblewrap
2159 (lambda* (#:key inputs #:allow-other-keys)
2160 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2161 (("\"bwrap\",")
2162 (string-append "\"" (which "bwrap") "\","))
2163 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2164 (string-append "\"--ro-bind\", \""
2165 (%store-directory)
2166 "\", \""
2167 (%store-directory)
2168 "\","))
2169 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2170 #t))
2171 (add-before 'check 'pre-check
2172 (lambda* (#:key inputs #:allow-other-keys)
2173 ;; Tests require a running X server and locales.
2174 (system "Xvfb :1 &")
2175 (setenv "DISPLAY" ":1")
2176 (setenv "GUIX_LOCPATH"
2177 (string-append (assoc-ref inputs "glibc-locales")
2178 "/lib/locale"))
2179 #t)))))
2180 (native-inputs
2181 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2182 ("glibc-locales" ,glibc-locales) ; for tests
2183 ("gobject-introspection" ,gobject-introspection)
2184 ("itstool" ,itstool)
2185 ("intltool" ,intltool)
2186 ("pkg-config" ,pkg-config)
2187 ("xmllint" ,libxml2)
2188 ("xorg-server" ,xorg-server-for-tests)))
2189 (propagated-inputs
2190 ;; Required by gnome-desktop-3.0.pc.
2191 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2192 ("gtk+" ,gtk+)
2193 ("iso-codes" ,iso-codes)
2194 ("libseccomp" ,libseccomp)
2195 ("libx11" ,libx11)
2196 ("xkeyboard-config" ,xkeyboard-config)))
2197 (inputs
2198 `(("gdk-pixbuf" ,gdk-pixbuf)
2199 ("glib" ,glib)
2200 ("bubblewrap" ,bubblewrap)
2201 ("libxext" ,libxext)
2202 ("libxkbfile" ,libxkbfile)
2203 ("libxrandr" ,libxrandr)))
2204 (home-page "https://www.gnome.org/")
2205 (synopsis
2206 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2207 (description
2208 "The libgnome-desktop library provides API shared by several applications
2209 on the desktop, but that cannot live in the platform for various reasons.
2210 There is no API or ABI guarantee, although we are doing our best to provide
2211 stability. Documentation for the API is available with gtk-doc.
2212
2213 The gnome-about program helps find which version of GNOME is installed.")
2214 ; Some bits under the LGPL.
2215 (license license:gpl2+)))
2216
2217 (define-public gnome-doc-utils
2218 (package
2219 (name "gnome-doc-utils")
2220 (version "0.20.10")
2221 (source
2222 (origin
2223 (method url-fetch)
2224 (uri (string-append "mirror://gnome/sources/" name "/"
2225 (version-major+minor version) "/"
2226 name "-" version ".tar.xz"))
2227 (sha256
2228 (base32
2229 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2230 (build-system gnu-build-system)
2231 (native-inputs
2232 `(("intltool" ,intltool)
2233 ("docbook-xml" ,docbook-xml-4.4)
2234 ("python2-libxml2" ,python2-libxml2)
2235 ("libxml2" ,libxml2)
2236 ("libxslt" ,libxslt)
2237 ("pkg-config" ,pkg-config)
2238 ("python-2" ,python-2)))
2239 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2240 (synopsis
2241 "Documentation utilities for the Gnome project")
2242 (description
2243 "Gnome-doc-utils is a collection of documentation utilities for the
2244 Gnome project. It includes xml2po tool which makes it easier to translate
2245 and keep up to date translations of documentation.")
2246 (license license:gpl2+))) ; xslt under lgpl
2247
2248 (define-public gnome-disk-utility
2249 (package
2250 (name "gnome-disk-utility")
2251 (version "3.34.0")
2252 (source (origin
2253 (method url-fetch)
2254 (uri (string-append "mirror://gnome/sources/" name "/"
2255 (version-major+minor version) "/"
2256 name "-" version ".tar.xz"))
2257 (sha256
2258 (base32
2259 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2260 (build-system meson-build-system)
2261 (arguments
2262 '(#:configure-flags '("-Dlogind=libelogind")
2263 #:phases
2264 (modify-phases %standard-phases
2265 (add-after 'unpack 'skip-gtk-update-icon-cache
2266 ;; Don't create 'icon-theme.cache'.
2267 (lambda _
2268 (substitute* "meson_post_install.py"
2269 (("gtk-update-icon-cache") "true"))
2270 #t)))))
2271 (native-inputs
2272 `(("glib:bin" ,glib "bin")
2273 ("intltool" ,intltool)
2274 ("pkg-config" ,pkg-config)
2275 ("docbook-xml" ,docbook-xml)
2276 ("docbook-xsl" ,docbook-xsl)
2277 ("libxml2" ,libxml2)
2278 ("libxslt" ,libxslt)))
2279 (inputs
2280 `(("elogind" ,elogind)
2281 ("glib" ,glib)
2282 ("appstream-glib" ,appstream-glib)
2283 ("gnome-settings-daemon" ,gnome-settings-daemon)
2284 ("gtk+" ,gtk+)
2285 ("libcanberra" ,libcanberra)
2286 ("libdvdread" ,libdvdread)
2287 ("libnotify" ,libnotify)
2288 ("libpwquality" ,libpwquality)
2289 ("libsecret" ,libsecret)
2290 ("udisks" ,udisks)))
2291 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2292 (synopsis "Disk management utility for GNOME")
2293 (description "Disk management utility for GNOME.")
2294 (license license:gpl2+)))
2295
2296 (define-public gnome-font-viewer
2297 (package
2298 (name "gnome-font-viewer")
2299 (version "3.30.0")
2300 (source (origin
2301 (method url-fetch)
2302 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2303 (version-major+minor version)
2304 "/gnome-font-viewer-" version ".tar.xz"))
2305 (sha256
2306 (base32
2307 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2308 (build-system meson-build-system)
2309 (arguments
2310 '(#:phases
2311 (modify-phases %standard-phases
2312 (add-after 'unpack 'patch-post-install-script
2313 (lambda _
2314 (substitute* "meson-postinstall.sh"
2315 (("update-desktop-database") (which "true")))
2316 #t))
2317 (add-after 'install 'patch-thumbnailer
2318 (lambda* (#:key outputs #:allow-other-keys)
2319 (let ((out (assoc-ref outputs "out")))
2320 (substitute*
2321 (string-append
2322 out
2323 "/share/thumbnailers/gnome-font-viewer.thumbnailer")
2324 (("gnome-thumbnail-font")
2325 (string-append out "/bin/gnome-thumbnail-font"))))
2326 #t)))))
2327 (native-inputs
2328 `(("gettext" ,gettext-minimal)
2329 ("glib:bin" ,glib "bin")
2330 ("pkg-config" ,pkg-config)))
2331 (inputs
2332 `(("glib" ,glib)
2333 ("gnome-desktop" ,gnome-desktop)
2334 ("gtk+" ,gtk+)))
2335 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2336 (synopsis "GNOME Fonts")
2337 (description "Application to show you the fonts installed on your computer
2338 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2339 the font would look under various sizes.")
2340 (license license:gpl2+)))
2341
2342 (define-public gcr
2343 (package
2344 (name "gcr")
2345 (version "3.34.0")
2346 (source (origin
2347 (method url-fetch)
2348 (uri (string-append "mirror://gnome/sources/" name "/"
2349 (version-major+minor version) "/"
2350 name "-" version ".tar.xz"))
2351 (sha256
2352 (base32
2353 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2354 (build-system gnu-build-system)
2355 (arguments
2356 '(#:phases
2357 (modify-phases %standard-phases
2358 ;; These fail because /var/lib/dbus/machine-id is not present in the
2359 ;; build environment.
2360 (add-after 'unpack 'disable-failing-tests
2361 (lambda _
2362 (substitute* "Makefile.in"
2363 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2364 ""))
2365 #t))
2366 (add-before 'check 'pre-check
2367 (lambda _
2368 ;; Some tests expect to write to $HOME.
2369 (setenv "HOME" "/tmp")
2370 #t)))))
2371 (inputs
2372 `(("dbus" ,dbus)
2373 ("gnupg" ,gnupg) ;called as a child process during tests
2374 ("libgcrypt" ,libgcrypt)))
2375 (native-inputs
2376 `(("python" ,python-wrapper) ;for tests
2377 ("pkg-config" ,pkg-config)
2378 ("gettext" ,gettext-minimal)
2379 ("glib" ,glib "bin")
2380 ("gobject-introspection" ,gobject-introspection)
2381 ("libxml2" ,libxml2)
2382 ("vala" ,vala)
2383 ("xsltproc" ,libxslt)))
2384 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2385 (propagated-inputs
2386 `(("p11-kit" ,p11-kit)
2387 ("glib" ,glib)
2388 ("gtk+" ,gtk+)))
2389 (home-page "https://www.gnome.org")
2390 (synopsis "Libraries for displaying certificates and accessing key stores")
2391 (description
2392 "The GCR package contains libraries used for displaying certificates and
2393 accessing key stores. It also provides the viewer for crypto files on the
2394 GNOME Desktop.")
2395 (license license:lgpl2.1+)))
2396
2397 (define-public gdl
2398 (package
2399 (name "gdl")
2400 (version "3.34.0")
2401 (source (origin
2402 (method git-fetch)
2403 (uri (git-reference
2404 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2405 (commit (string-append "GDL_" (string-map (match-lambda
2406 (#\. #\_)
2407 (c c))
2408 version)))))
2409 (file-name (git-file-name name version))
2410 (sha256
2411 (base32
2412 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2413 (build-system gnu-build-system)
2414 (native-inputs
2415 `(("autoconf" ,autoconf)
2416 ("automake" ,automake)
2417 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2418 ("gnome-common" ,gnome-common)
2419 ("gtk-doc" ,gtk-doc)
2420 ("intltool" ,intltool)
2421 ("pkg-config" ,pkg-config)
2422 ("libtool" ,libtool)
2423 ("which" ,which)))
2424 (inputs
2425 `(("libxml2" ,libxml2)))
2426 (propagated-inputs
2427 ;; The gdl-3.0.pc file 'Requires' GTK+.
2428 `(("gtk+" ,gtk+)))
2429 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2430 (synopsis "GNOME docking library")
2431 (description "This library provides docking features for gtk+.")
2432 (license license:lgpl2.1+)))
2433
2434 ;;; A minimal variant used to break a cycle with Inkscape.
2435 (define-public gdl-minimal
2436 (package
2437 (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-public 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 `(#:modules
3390 ((guix build cargo-build-system)
3391 (guix build utils)
3392 ((guix build gnu-build-system) #:prefix gnu:))
3393 #:cargo-inputs
3394 (("rust-bitflags" ,rust-bitflags-1)
3395 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3396 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3397 ("rust-cast" ,rust-cast-0.2)
3398 ("rust-cssparser" ,rust-cssparser-0.27)
3399 ("rust-data-url" ,rust-data-url-0.1)
3400 ("rust-encoding" ,rust-encoding-0.2)
3401 ("rust-float-cmp" ,rust-float-cmp-0.8)
3402 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3403 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3404 ("rust-gio" ,rust-gio-0.8)
3405 ("rust-gio-sys" ,rust-gio-sys-0.9)
3406 ("rust-glib" ,rust-glib-0.9)
3407 ("rust-glib-sys" ,rust-glib-sys-0.9)
3408 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3409 ("rust-itertools" ,rust-itertools-0.9)
3410 ("rust-language-tags" ,rust-language-tags-0.2)
3411 ("rust-libc" ,rust-libc-0.2)
3412 ("rust-locale-config" ,rust-locale-config-0.3)
3413 ("rust-markup5ever" ,rust-markup5ever-0.10)
3414 ("rust-nalgebra" ,rust-nalgebra-0.21)
3415 ("rust-num-traits" ,rust-num-traits-0.2)
3416 ("rust-once-cell" ,rust-once-cell-1)
3417 ("rust-pkg-config" ,rust-pkg-config-0.3)
3418 ("rust-pango" ,rust-pango-0.8)
3419 ("rust-pango-sys" ,rust-pango-sys-0.9)
3420 ("rust-pangocairo" ,rust-pangocairo-0.9)
3421 ("rust-rayon" ,rust-rayon-1)
3422 ("rust-rctree" ,rust-rctree-0.3)
3423 ("rust-rgb" ,rust-rgb-0.8)
3424 ("rust-regex" ,rust-regex-1)
3425 ("rust-selectors" ,rust-selectors-0.22)
3426 ("rust-string-cache" ,rust-string-cache-0.8)
3427 ("rust-tinyvec" ,rust-tinyvec-0.3)
3428 ("rust-url" ,rust-url-2)
3429 ("rust-xml5ever" ,rust-xml5ever-0.16))
3430 #:cargo-development-inputs
3431 (("rust-assert-cmd" ,rust-assert-cmd-1)
3432 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3433 ("rust-chrono" ,rust-chrono-0.4)
3434 ("rust-criterion" ,rust-criterion-0.3)
3435 ("rust-float-cmp" ,rust-float-cmp-0.8)
3436 ("rust-lopdf" ,rust-lopdf-0.25)
3437 ("rust-png" ,rust-png-0.16)
3438 ("rust-predicates" ,rust-predicates-1)
3439 ("rust-tempfile" ,rust-tempfile-3))
3440 #:phases
3441 (modify-phases %standard-phases
3442 (add-after 'unpack 'patch-docbook-xml
3443 (lambda* (#:key inputs #:allow-other-keys)
3444 (with-directory-excursion "doc"
3445 (substitute* "rsvg-docs.xml"
3446 (("http://www.oasis-open.org/docbook/xml/4.3/")
3447 (string-append (assoc-ref inputs "docbook-xml")
3448 "/xml/dtd/docbook/"))))
3449 #t))
3450 (add-after 'unpack 'prepare-for-build
3451 (lambda _
3452 ;; In lieu of #:make-flags
3453 (setenv "CC" ,(cc-for-target))
3454 ;; Something about the build environment resists building
3455 ;; successfully with the '--locked' flag.
3456 (substitute* '("Makefile.am" "Makefile.in")
3457 (("--locked") ""))
3458 #t))
3459 (add-before 'configure 'pre-configure
3460 (lambda _
3461 (substitute* "gdk-pixbuf-loader/Makefile.in"
3462 ;; By default the gdk-pixbuf loader is installed under
3463 ;; gdk-pixbuf's prefix. Work around that.
3464 (("gdk_pixbuf_moduledir = .*$")
3465 (string-append "gdk_pixbuf_moduledir = "
3466 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3467 "loaders\n"))
3468 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3469 (("gdk_pixbuf_cache_file = .*$")
3470 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3471 #t))
3472 (add-after 'configure 'gnu-configure
3473 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3474 ((assoc-ref gnu:%standard-phases 'configure)
3475 #:native-inputs native-inputs
3476 #:inputs inputs
3477 #:outputs outputs
3478 #:configure-flags
3479 (list "--disable-static"
3480 "--enable-vala"
3481 (string-append "--with-html-dir="
3482 (assoc-ref %outputs "doc")
3483 "/share/gtk-doc/html")))))
3484 (add-after 'configure 'dont-vendor-self
3485 (lambda* (#:key vendor-dir #:allow-other-keys)
3486 ;; Don't keep the whole tarball in the vendor directory
3487 (delete-file-recursively
3488 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3489 #t))
3490 (replace 'build
3491 (assoc-ref gnu:%standard-phases 'build))
3492 (add-before 'check 'ignore-failing-tests
3493 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3494 (lambda _
3495 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3496 (("fn background_color_option_invalid_color_yields_error" all)
3497 (string-append "#[ignore] " all))
3498 (("fn empty_input_yields_error" all)
3499 (string-append "#[ignore] " all))
3500 (("fn empty_svg_yields_error" all)
3501 (string-append "#[ignore] " all))
3502 (("fn env_source_data_epoch_empty" all)
3503 (string-append "#[ignore] " all))
3504 (("fn env_source_data_epoch_no_digits" all)
3505 (string-append "#[ignore] " all))
3506 (("fn env_source_data_epoch_trailing_garbage" all)
3507 (string-append "#[ignore] " all))
3508 (("fn export_id_option_error" all)
3509 (string-append "#[ignore] " all))
3510 (("fn huge_zoom_factor_yields_error" all)
3511 (string-append "#[ignore] " all))
3512 (("fn multiple_input_files_not_allowed_for_png_output" all)
3513 (string-append "#[ignore] " all))
3514 (("fn stylesheet_option_error" all)
3515 (string-append "#[ignore] " all)))
3516 #t))
3517 (replace 'check
3518 (lambda* args
3519 ((assoc-ref gnu:%standard-phases 'check)
3520 #:test-target "check")))
3521 (replace 'install
3522 (assoc-ref gnu:%standard-phases 'install)))))
3523 (native-inputs
3524 `(("docbook-xml" ,docbook-xml-4.3)
3525 ("glib" ,glib "bin")
3526 ("gobject-introspection" ,gobject-introspection)
3527 ("pkg-config" ,pkg-config)
3528 ("python" ,python-wrapper)
3529 ("ruby" ,ruby)
3530 ("vala" ,vala)))
3531 (inputs
3532 `(("bzip2" ,bzip2)
3533 ("fontconfig" ,fontconfig)
3534 ("freetype" ,freetype)
3535 ("harfbuzz" ,harfbuzz)
3536 ("libcroco" ,libcroco)
3537 ("libgsf" ,libgsf)
3538 ("libxml2" ,libxml2)
3539 ("pango" ,pango)))
3540 (propagated-inputs
3541 `(("cairo" ,cairo)
3542 ("gdk-pixbuf" ,gdk-pixbuf)
3543 ("glib" ,glib)))
3544 (synopsis "SVG rendering library")
3545 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3546 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3547 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3548 diagrams.")
3549 (home-page "https://wiki.gnome.org/LibRsvg")
3550 (license license:lgpl2.1+)))
3551
3552 (define-public libidl
3553 (package
3554 (name "libidl")
3555 (version "0.8.14")
3556 (source (origin
3557 (method url-fetch)
3558 (uri (string-append "mirror://gnome/sources/libIDL/"
3559 (version-major+minor version) "/"
3560 "libIDL-" version ".tar.bz2"))
3561 (sha256
3562 (base32
3563 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3564 (build-system gnu-build-system)
3565 (inputs `(("glib" ,glib)))
3566 (native-inputs
3567 `(("pkg-config" ,pkg-config)
3568 ("flex" ,flex)
3569 ("bison" ,bison)))
3570 (home-page "http://freecode.com/projects/libidl")
3571 (synopsis "Create trees of CORBA Interface Definition Language files")
3572 (description "Libidl is a library for creating trees of CORBA Interface
3573 Definition Language (idl) files, which is a specification for defining
3574 portable interfaces. libidl was initially written for orbit (the orb from the
3575 GNOME project, and the primary means of libidl distribution). However, the
3576 functionality was designed to be as reusable and portable as possible.")
3577 (properties `((upstream-name . "libIDL")))
3578 (license license:lgpl2.0+)))
3579
3580
3581 (define-public orbit2
3582 (package
3583 (name "orbit2")
3584 (version "2.14.19")
3585 (source (origin
3586 (method url-fetch)
3587 (uri (let ((upstream-name "ORBit2"))
3588 (string-append "mirror://gnome/sources/" upstream-name "/"
3589 (version-major+minor version) "/"
3590 upstream-name "-" version ".tar.bz2")))
3591 (sha256
3592 (base32
3593 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3594 (build-system gnu-build-system)
3595 (arguments
3596 `(;; The "timeout-server" test hangs when run in parallel.
3597 #:parallel-tests? #f
3598 #:configure-flags
3599 '(;; We don't need static libraries, plus they don't build reproducibly
3600 ;; (non-deterministic ordering of .o files in the archive.)
3601 "--disable-static"
3602
3603 ;; The programmer kindly gives us a hook to turn off deprecation
3604 ;; warnings ...
3605 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3606 ;; ... which they then completly ignore !!
3607 #:phases
3608 (modify-phases %standard-phases
3609 (add-before 'configure 'ignore-deprecations
3610 (lambda _
3611 (substitute* "linc2/src/Makefile.in"
3612 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3613 #t)))))
3614 (inputs `(("glib" ,glib)
3615 ("libidl" ,libidl)))
3616 (native-inputs
3617 `(("pkg-config" ,pkg-config)))
3618 (home-page "https://projects.gnome.org/orbit2/")
3619 (synopsis "CORBA 2.4-compliant Object Request Broker")
3620 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3621 featuring mature C, C++ and Python bindings.")
3622 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3623 ;; a version. SOME of the code files have licence notices for GPLv2+.
3624 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3625 (license license:gpl2+)
3626 (properties `((upstream-name . "ORBit2")))))
3627
3628
3629 (define-public libbonobo
3630 (package
3631 (name "libbonobo")
3632 (version "2.32.1")
3633 (source (origin
3634 (method url-fetch)
3635 (uri (string-append "mirror://gnome/sources/" name "/"
3636 (version-major+minor version)
3637 "/" name "-" version ".tar.bz2"))
3638 (sha256
3639 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3640 (patches (search-patches
3641 "libbonobo-activation-test-race.patch"))))
3642 (build-system gnu-build-system)
3643 (arguments
3644 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3645 `(#:configure-flags
3646 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3647 ;; ... which they then completly ignore !!
3648 #:phases
3649 (modify-phases %standard-phases
3650 (add-before 'configure 'ignore-deprecations
3651 (lambda _
3652 (substitute* "activation-server/Makefile.in"
3653 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3654 #t)))
3655
3656 ;; There's apparently a race condition between the server stub
3657 ;; generation and linking of the example under 'samples/echo' that can
3658 ;; lead do undefined references when building in parallel, as reported
3659 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3660 ;; Thus, disable parallel builds.
3661 #:parallel-build? #f))
3662 (inputs `(("popt" ,popt)
3663 ("libxml2" ,libxml2)))
3664 ;; The following are Required by the .pc file
3665 (propagated-inputs
3666 `(("glib" ,glib)
3667 ("orbit2" ,orbit2)))
3668 (native-inputs
3669 `(("intltool" ,intltool)
3670 ("pkg-config" ,pkg-config)
3671 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3672 ("flex" ,flex)
3673 ("bison" ,bison)))
3674 (home-page "https://developer.gnome.org/libbonobo/")
3675 (synopsis "Framework for creating reusable components for use in GNOME applications")
3676 (description "Bonobo is a framework for creating reusable components for
3677 use in GNOME applications, built on top of CORBA.")
3678 ;; Licence not explicitly stated. Source files contain no licence notices.
3679 ;; Tarball contains text of both GPLv2 and LGPLv2
3680 ;; GPLv2 covers both conditions
3681 (license license:gpl2+)))
3682
3683
3684 (define-public gconf
3685 (package
3686 (name "gconf")
3687 (version "3.2.6")
3688 (source (origin
3689 (method url-fetch)
3690 (uri
3691 (let ((upstream-name "GConf"))
3692 (string-append "mirror://gnome/sources/" upstream-name "/"
3693 (version-major+minor version) "/"
3694 upstream-name "-" version ".tar.xz")))
3695 (sha256
3696 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3697 (build-system gnu-build-system)
3698 (inputs `(("dbus-glib" ,dbus-glib)
3699 ("libxml2" ,libxml2)))
3700 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3701 ("orbit2" ,orbit2)))
3702 (native-inputs
3703 `(("intltool" ,intltool)
3704 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3705 ("pkg-config" ,pkg-config)))
3706 (home-page "https://projects.gnome.org/gconf/")
3707 (synopsis "Store application preferences")
3708 (description "Gconf is a system for storing application preferences. It
3709 is intended for user preferences; not arbitrary data storage.")
3710 (license license:lgpl2.0+)
3711 (properties '((upstream-name . "GConf")))))
3712
3713
3714 (define-public gnome-mime-data
3715 (package
3716 (name "gnome-mime-data")
3717 (version "2.18.0")
3718 (source (origin
3719 (method url-fetch)
3720 (uri (string-append "mirror://gnome/sources/" name "/"
3721 (version-major+minor version) "/"
3722 name "-" version ".tar.bz2"))
3723 (sha256
3724 (base32
3725 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3726 (build-system gnu-build-system)
3727 (native-inputs
3728 `(("perl" ,perl)
3729 ("intltool" ,intltool)))
3730 (arguments
3731 '(#:phases (modify-phases %standard-phases
3732 (add-after 'configure 'use-our-intltool
3733 (lambda _
3734 ;; Do not use the bundled intltool commands, which lack
3735 ;; the "dotless @INC" fixes of our 'intltool' package.
3736 (substitute* (find-files "." "^Makefile$")
3737 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3738 (string-append "INTLTOOL_" tool " = intltool-"
3739 (string-downcase tool) "\n")))
3740 #t)))))
3741 (home-page "https://www.gnome.org")
3742 (synopsis "Base MIME and Application database for GNOME")
3743 (description "GNOME Mime Data is a module which contains the base MIME
3744 and Application database for GNOME. The data stored by this module is
3745 designed to be accessed through the MIME functions in GnomeVFS.")
3746 (license license:gpl2+)))
3747
3748
3749 (define-public gnome-vfs
3750 (package
3751 (name "gnome-vfs")
3752 (version "2.24.4")
3753 (source (origin
3754 (method url-fetch)
3755 (uri (string-append "mirror://gnome/sources/" name "/"
3756 (version-major+minor version) "/"
3757 name "-" version ".tar.bz2"))
3758 (sha256
3759 (base32
3760 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3761 (build-system gnu-build-system)
3762 (arguments
3763 `(#:phases
3764 (modify-phases %standard-phases
3765 (add-before 'configure 'ignore-deprecations
3766 (lambda _
3767 (substitute* '("libgnomevfs/Makefile.in"
3768 "daemon/Makefile.in")
3769 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3770 #t))
3771 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3772 (lambda _
3773 (substitute* "test/test-async-cancel.c"
3774 (("EXIT_FAILURE") "77"))
3775 #t)))))
3776 (inputs `(("libxml2" ,libxml2)
3777 ("dbus-glib" ,dbus-glib)
3778 ("gconf" ,gconf)
3779 ("gnome-mime-data" ,gnome-mime-data)
3780 ("zlib" ,zlib)))
3781 (native-inputs
3782 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3783 ("intltool" ,intltool)
3784 ("pkg-config" ,pkg-config)))
3785 (home-page "https://developer.gnome.org/gnome-vfs/")
3786 (synopsis "Access files and folders in GNOME applications")
3787 (description
3788 "GnomeVFS is the core library used to access files and folders in GNOME
3789 applications. It provides a file system abstraction which allows applications
3790 to access local and remote files with a single consistent API.")
3791 (license license:lgpl2.0+)))
3792
3793
3794
3795 (define-public libgnome
3796 (package
3797 (name "libgnome")
3798 (version "2.32.1")
3799 (source (origin
3800 (method url-fetch)
3801 (uri (string-append "mirror://gnome/sources/" name "/"
3802 (version-major+minor version) "/"
3803 name "-" version ".tar.bz2"))
3804 (sha256
3805 (base32
3806 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3807 (patches (search-patches "libgnome-encoding.patch"))))
3808 (build-system gnu-build-system)
3809 (arguments
3810 `(#:phases
3811 (modify-phases %standard-phases
3812 (add-before 'configure 'enable-deprecated
3813 (lambda _
3814 (substitute* "libgnome/Makefile.in"
3815 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3816 #t)))))
3817 (inputs `(("libxml2" ,libxml2)))
3818 (native-inputs
3819 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3820 ("intltool" ,intltool)
3821 ("pkg-config" ,pkg-config)))
3822 ;; The following are listed as Required in the .pc file
3823 ;; (except for libcanberra -- which seems to be oversight on the part
3824 ;; of the upstream developers -- anything that links against libgnome,
3825 ;; must also link against libcanberra
3826 (propagated-inputs
3827 `(("libcanberra" ,libcanberra)
3828 ("libbonobo" ,libbonobo)
3829 ("gconf" ,gconf)
3830 ("gnome-vfs" ,gnome-vfs)
3831 ("popt" ,popt))) ;gnome-program.h includes popt.h
3832 (home-page "https://developer.gnome.org/libgnome/")
3833 (synopsis "Useful routines for building applications")
3834 (description "The libgnome library provides a number of useful routines
3835 for building modern applications, including session management, activation of
3836 files and URIs, and displaying help.")
3837 (license license:lgpl2.0+)))
3838
3839
3840 (define-public libart-lgpl
3841 (package
3842 (name "libart-lgpl")
3843 (version "2.3.21")
3844 (source (origin
3845 (method url-fetch)
3846 (uri (let ((upstream-name "libart_lgpl"))
3847 (string-append "mirror://gnome/sources/" upstream-name "/"
3848 (version-major+minor version) "/"
3849 upstream-name "-" version ".tar.bz2")))
3850 (sha256
3851 (base32
3852 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3853 (build-system gnu-build-system)
3854 (native-inputs
3855 `(("pkg-config" ,pkg-config)))
3856 (home-page "https://people.gnome.org/~mathieu/libart")
3857 (synopsis "2D drawing library")
3858 (description "Libart is a 2D drawing library intended as a
3859 high-quality vector-based 2D library with antialiasing and alpha composition.")
3860 (license license:lgpl2.0+)))
3861
3862
3863
3864 (define-public libgnomecanvas
3865 (package
3866 (name "libgnomecanvas")
3867 (version "2.30.3")
3868 (source (origin
3869 (method url-fetch)
3870 (uri (string-append "mirror://gnome/sources/" name "/"
3871 (version-major+minor version) "/"
3872 name "-" version ".tar.gz"))
3873 (sha256
3874 (base32
3875 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3876 (build-system gnu-build-system)
3877 ;; Mentioned as Required in the .pc file
3878 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3879 ("gtk+" ,gtk+-2)))
3880 (native-inputs
3881 `(("intltool" ,intltool)
3882 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3883 ("pkg-config" ,pkg-config)))
3884 (home-page "https://developer.gnome.org/libgnomecanvas/")
3885 (synopsis "Flexible widget for creating interactive structured graphics")
3886 (description "The GnomeCanvas widget provides a flexible widget for
3887 creating interactive structured graphics.")
3888 (license license:lgpl2.0+)))
3889
3890 (define-public libgnomecanvasmm
3891 (package
3892 (name "libgnomecanvasmm")
3893 (version "2.26.0")
3894 (source (origin
3895 (method url-fetch)
3896 (uri (string-append "mirror://gnome/sources/" name "/"
3897 (version-major+minor version) "/"
3898 name "-" version ".tar.bz2"))
3899 (sha256
3900 (base32
3901 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3902 (build-system gnu-build-system)
3903 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3904 (native-inputs
3905 `(("gtkmm-2" ,gtkmm-2)
3906 ("pkg-config" ,pkg-config)))
3907 (home-page "https://gtkmm.org")
3908 (synopsis "C++ bindings to the GNOME Canvas library")
3909 (description "C++ bindings to the GNOME Canvas library.")
3910 (license license:lgpl2.0+)))
3911
3912 (define-public libgnomeui
3913 (package
3914 (name "libgnomeui")
3915 (version "2.24.5")
3916 (source (origin
3917 (method url-fetch)
3918 (uri (string-append "mirror://gnome/sources/" name "/"
3919 (version-major+minor version) "/"
3920 name "-" version ".tar.bz2"))
3921 (patches (search-patches "libgnomeui-utf8.patch"))
3922 (sha256
3923 (base32
3924 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3925 (build-system gnu-build-system)
3926 ;; Mentioned as Required in the .pc file
3927 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3928 ("libgnome" ,libgnome)
3929 ("libgnomecanvas" ,libgnomecanvas)
3930 ("libgnome-keyring" ,libgnome-keyring)))
3931 (inputs `(("libjpeg" ,libjpeg-turbo)
3932 ("popt" ,popt)
3933 ("libbonobo" ,libbonobo)
3934 ("libxml2" ,libxml2)
3935 ("libglade" ,libglade)))
3936 (native-inputs
3937 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3938 ("intltool" ,intltool)
3939 ("pkg-config" ,pkg-config)))
3940 (home-page "https://developer.gnome.org/libgnomeui/")
3941 (synopsis "Additional widgets for applications")
3942 (description "The libgnomeui library provides additional widgets for
3943 applications. Many of the widgets from libgnomeui have already been
3944 ported to GTK+.")
3945 (license license:lgpl2.0+)))
3946
3947 (define-public libglade
3948 (package
3949 (name "libglade")
3950 (version "2.6.4")
3951 (source (origin
3952 (method url-fetch)
3953 (uri (string-append "mirror://gnome/sources/" name "/"
3954 (version-major+minor version) "/"
3955 name "-" version ".tar.bz2"))
3956 (sha256
3957 (base32
3958 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3959 (build-system gnu-build-system)
3960 (inputs
3961 `(("python" ,python))) ;; needed for the optional libglade-convert program
3962 (propagated-inputs
3963 `(("gtk+-2" ,gtk+-2)
3964 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3965 (native-inputs
3966 `(("pkg-config" ,pkg-config)))
3967 (home-page "https://developer.gnome.org/libglade")
3968 (synopsis "Load glade interfaces and access the glade built widgets")
3969 (description "Libglade is a library that provides interfaces for loading
3970 graphical interfaces described in glade files and for accessing the
3971 widgets built in the loading process.")
3972 (license license:gpl2+))) ; This is correct. GPL not LGPL
3973
3974 (define-public libgnomeprint
3975 ;; This library has been deprecated since 2006; see
3976 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3977 (package
3978 (name "libgnomeprint")
3979 (version "2.18.8")
3980 (source (origin
3981 (method url-fetch)
3982 (uri (string-append "mirror://gnome/sources/" name "/"
3983 (version-major+minor version) "/"
3984 name "-" version ".tar.bz2"))
3985 (sha256
3986 (base32
3987 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3988 (build-system gnu-build-system)
3989 (inputs
3990 `(("popt" ,popt)
3991 ("libart-lgpl" ,libart-lgpl)
3992 ("gtk+" ,gtk+-2)
3993 ("libxml2" ,libxml2)))
3994 (native-inputs
3995 `(("intltool" ,intltool)
3996 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3997 ("pkg-config" ,pkg-config)))
3998 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3999 (synopsis "Printing framework for GNOME")
4000 (description
4001 "GNOME-print was a printing framework for GNOME. It has been deprecated
4002 since ca. 2006, when GTK+ itself incorporated printing support.")
4003 (license license:lgpl2.0+)))
4004
4005
4006 (define-public libgnomeprintui
4007 ;; Deprecated; see libgnomeprint.
4008 (package
4009 (name "libgnomeprintui")
4010 (version "2.18.6")
4011 (source (origin
4012 (method url-fetch)
4013 (uri (string-append "mirror://gnome/sources/" name "/"
4014 (version-major+minor version) "/"
4015 name "-" version ".tar.bz2"))
4016 (sha256
4017 (base32
4018 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
4019 (build-system gnu-build-system)
4020 ;; Mentioned as Required in the .pc file
4021 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
4022 (inputs `(("gtk+" ,gtk+-2)
4023 ("glib" ,glib)
4024 ("gnome-icon-theme" ,gnome-icon-theme)
4025 ("libgnomecanvas" ,libgnomecanvas)
4026 ("libxml2" ,libxml2)))
4027 (native-inputs
4028 `(("intltool" ,intltool)
4029 ("pkg-config" ,pkg-config)))
4030 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
4031 (synopsis "Printing framework for GNOME")
4032 (description (package-description libgnomeprint))
4033 (license license:lgpl2.0+)))
4034
4035 (define-public libbonoboui
4036 (package
4037 (name "libbonoboui")
4038 (version "2.24.5")
4039 (source (origin
4040 (method url-fetch)
4041 (uri (string-append "mirror://gnome/sources/" name "/"
4042 (version-major+minor version) "/"
4043 name "-" version ".tar.bz2"))
4044 (sha256
4045 (base32
4046 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4047 (build-system gnu-build-system)
4048 (arguments
4049 `(#:phases
4050 (modify-phases %standard-phases
4051 (add-before 'check 'start-xserver
4052 (lambda* (#:key inputs #:allow-other-keys)
4053 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4054 (disp ":1"))
4055
4056 (setenv "HOME" (getcwd))
4057 (setenv "DISPLAY" disp)
4058 ;; There must be a running X server and make check doesn't start one.
4059 ;; Therefore we must do it.
4060 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4061 ;; Mentioned as Required by the .pc file
4062 (propagated-inputs `(("libxml2" ,libxml2)))
4063 (inputs
4064 `(("popt" ,popt)
4065 ("pangox-compat" ,pangox-compat)
4066 ("libgnome" ,libgnome)
4067 ("libgnomecanvas" ,libgnomecanvas)
4068 ("libglade" ,libglade)))
4069 (native-inputs
4070 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
4071 ("intltool" ,intltool)
4072 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
4073 ("pkg-config" ,pkg-config)))
4074 (home-page "https://developer.gnome.org/libbonoboui/")
4075 (synopsis "Some user interface controls using Bonobo")
4076 (description "The Bonobo UI library provides a number of user interface
4077 controls using the Bonobo component framework.")
4078 (license license:lgpl2.0+)))
4079
4080 (define-public libwnck
4081 (package
4082 (name "libwnck")
4083 (version "3.32.0")
4084 (source (origin
4085 (method url-fetch)
4086 (uri (string-append "mirror://gnome/sources/" name "/"
4087 (version-major+minor version) "/"
4088 name "-" version ".tar.xz"))
4089 (sha256
4090 (base32
4091 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4092 (build-system meson-build-system)
4093 (native-inputs
4094 `(("pkg-config" ,pkg-config)
4095 ("glib" ,glib "bin") ; for glib-mkenums
4096 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
4097 ("intltool" ,intltool)))
4098 (propagated-inputs
4099 `(("gtk+" ,gtk+)
4100 ("libxres" ,libxres)
4101 ("startup-notification" ,startup-notification)))
4102 (home-page "https://developer.gnome.org/libwnck/")
4103 (synopsis "Window Navigator Construction Kit")
4104 (description
4105 "Libwnck is the Window Navigator Construction Kit, a library for use in
4106 writing pagers, tasklists, and more generally applications that are dealing
4107 with window management. It tries hard to respect the Extended Window Manager
4108 Hints specification (EWMH).")
4109 (license license:lgpl2.0+)))
4110
4111 ;; stable version for gtk2, required by xfwm4.
4112 (define-public libwnck-2
4113 (package (inherit libwnck)
4114 (name "libwnck")
4115 (version "2.30.7")
4116 (source (origin
4117 (method url-fetch)
4118 (uri (string-append "mirror://gnome/sources/" name "/"
4119 (version-major+minor version) "/"
4120 name "-" version ".tar.xz"))
4121 (sha256
4122 (base32
4123 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4124 (build-system gnu-build-system)
4125 (native-inputs
4126 `(("pkg-config" ,pkg-config)
4127 ("intltool" ,intltool)))
4128 (propagated-inputs
4129 `(("gtk+" ,gtk+-2)
4130 ("libxres" ,libxres)
4131 ("startup-notification" ,startup-notification)))))
4132
4133 (define-public goffice
4134 (package
4135 (name "goffice")
4136 (version "0.10.48")
4137 (source (origin
4138 (method url-fetch)
4139 (uri (string-append "mirror://gnome/sources/goffice/"
4140 (version-major+minor version) "/"
4141 "goffice-" version ".tar.xz"))
4142 (sha256
4143 (base32 "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4"))))
4144 (build-system gnu-build-system)
4145 (outputs '("out"
4146 "doc")) ; 4.0 MiB of gtk-doc
4147 (arguments
4148 '(#:configure-flags (list (string-append "--with-html-dir="
4149 (assoc-ref %outputs "doc")
4150 "/share/gtk-doc/html"))))
4151 (inputs
4152 `(("gtk+" ,gtk+)
4153 ("libgsf" ,libgsf)
4154 ("librsvg" ,librsvg)
4155 ("libxslt" ,libxslt)
4156 ("libxml2" ,libxml2)))
4157 (native-inputs
4158 `(("intltool" ,intltool)
4159 ("glib" ,glib "bin")
4160 ("pkg-config" ,pkg-config)))
4161 (home-page "https://developer.gnome.org/goffice/")
4162 (synopsis "Document-centric objects and utilities")
4163 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4164 (license
4165 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4166 ;; Note: NOT LGPL
4167 (list license:gpl2 license:gpl3))))
4168
4169 (define-public goffice-0.8
4170 (package (inherit goffice)
4171 (version "0.8.17")
4172 (source (origin
4173 (method url-fetch)
4174 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4175 (version-major+minor version) "/"
4176 (package-name goffice) "-" version ".tar.xz"))
4177 (sha256
4178 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4179 (arguments
4180 `(#:phases
4181 (modify-phases %standard-phases
4182 (add-after 'unpack 'fix-pcre-check
4183 (lambda _
4184 ;; Only glib.h can be included directly. See
4185 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4186 (substitute* "configure"
4187 (("glib/gregex\\.h") "glib.h")) #t)))
4188
4189 ,@(package-arguments goffice)))
4190 (propagated-inputs
4191 ;; libgoffice-0.8.pc mentions libgsf-1
4192 `(("libgsf" ,libgsf)))
4193 (inputs
4194 `(("gtk" ,gtk+-2)
4195 ,@(alist-delete "gtk" (package-inputs goffice))))))
4196
4197 (define-public gnumeric
4198 (package
4199 (name "gnumeric")
4200 (version "1.12.48")
4201 (source (origin
4202 (method url-fetch)
4203 (uri (string-append "mirror://gnome/sources/gnumeric/"
4204 (version-major+minor version) "/"
4205 "gnumeric-" version ".tar.xz"))
4206 (sha256
4207 (base32
4208 "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p"))))
4209 (build-system glib-or-gtk-build-system)
4210 (arguments
4211 `(;; The gnumeric developers don't worry much about failing tests.
4212 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4213 #:tests? #f
4214 #:phases
4215 (modify-phases %standard-phases
4216 (add-before
4217 'configure 'pre-conf
4218 (lambda* (#:key outputs #:allow-other-keys)
4219 ;; Make install tries to write into the directory of goffice
4220 ;; I am informed that this only affects the possibility to embed a
4221 ;; spreadsheet inside an Abiword document. So presumably when we
4222 ;; package Abiword we'll have to refer it to this directory.
4223 (substitute* "configure"
4224 (("^GOFFICE_PLUGINS_DIR=.*")
4225 (string-append "GOFFICE_PLUGINS_DIR="
4226 (assoc-ref outputs "out")
4227 "/goffice/plugins"))))))))
4228 (inputs
4229 `(("glib" ,glib)
4230 ("gtk+" ,gtk+)
4231 ("goffice" ,goffice)
4232 ("libgsf" ,libgsf)
4233 ("librsvg" ,librsvg)
4234 ("libxml2" ,libxml2)
4235 ("libxslt" ,libxslt)
4236 ("python" ,python)
4237 ("python-pygobject" ,python-pygobject)
4238 ("zlib" ,zlib)))
4239 (native-inputs
4240 `(("bison" ,bison)
4241 ("docbook-xml" ,docbook-xml)
4242 ("intltool" ,intltool)
4243 ("itstool" ,itstool)
4244 ("glib:bin" ,glib "bin")
4245 ("pkg-config" ,pkg-config)))
4246 (home-page "http://www.gnumeric.org")
4247 (synopsis "Spreadsheet application")
4248 (description
4249 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4250 interoperable with other spreadsheet applications. It has a vast array of
4251 features beyond typical spreadsheet functionality, such as support for linear
4252 and non-linear solvers, statistical analysis, and telecommunication
4253 engineering.")
4254 (license
4255 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4256 (list license:gpl2 license:gpl3))))
4257
4258 (define-public gnome-themes-standard
4259 (package
4260 (name "gnome-themes-standard")
4261 (version "3.22.3")
4262 (source
4263 (origin
4264 (method url-fetch)
4265 (uri (string-append "mirror://gnome/sources/" name "/"
4266 (version-major+minor version) "/" name "-"
4267 version ".tar.xz"))
4268 (sha256
4269 (base32
4270 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4271 (build-system gnu-build-system)
4272 (arguments
4273 '(#:configure-flags
4274 ;; Don't create 'icon-theme.cache'.
4275 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4276 (true (string-append coreutils "/bin/true")))
4277 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4278 (inputs
4279 `(("gtk+" ,gtk+)
4280 ("gtk+-2" ,gtk+-2)
4281 ("librsvg" ,librsvg)
4282 ("libxml2" ,libxml2)
4283 ("glib" ,glib)))
4284 (native-inputs
4285 `(("intltool" ,intltool)
4286 ("glib:bin" ,glib "bin")
4287 ("pkg-config" ,pkg-config)))
4288 (home-page "https://launchpad.net/gnome-themes-standard")
4289 (synopsis "Default GNOME 3 themes")
4290 (description
4291 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4292 (license license:lgpl2.1+)))
4293
4294 (define-public seahorse
4295 (package
4296 (name "seahorse")
4297 (version "3.36.2")
4298 (source
4299 (origin
4300 (method url-fetch)
4301 (uri (string-append "mirror://gnome/sources/" name "/"
4302 (version-major+minor version) "/" name "-"
4303 version ".tar.xz"))
4304 (sha256
4305 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4306 (build-system meson-build-system)
4307 (arguments
4308 '(#:glib-or-gtk? #t
4309 #:phases
4310 (modify-phases %standard-phases
4311 (add-after 'unpack 'skip-gtk-update-icon-cache
4312 ;; Don't create 'icon-theme.cache'.
4313 (lambda _
4314 (substitute* "build-aux/meson_post_install.py"
4315 (("gtk-update-icon-cache") "true"))
4316 #t)))))
4317 (inputs
4318 `(("gtk+" ,gtk+)
4319 ("gcr" ,gcr)
4320 ("gnupg" ,gnupg)
4321 ("gpgme" ,gpgme)
4322 ("openldap" ,openldap)
4323 ("openssh" ,openssh)
4324 ("avahi" ,avahi)
4325 ("libhandy" ,libhandy-0.0)
4326 ("libpwquality" ,libpwquality)
4327 ("libsecret" ,libsecret)
4328 ("libsoup" ,libsoup)))
4329 (native-inputs
4330 `(("gettext" ,gettext-minimal)
4331 ("glib:bin" ,glib "bin")
4332 ("itstool" ,itstool)
4333 ("pkg-config" ,pkg-config)
4334 ("vala" ,vala)
4335 ("xmllint" ,libxml2)))
4336 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4337 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4338 (description
4339 "Seahorse is a GNOME application for managing encryption keys and
4340 passwords in the GNOME keyring.")
4341 (license license:gpl2+)))
4342
4343 (define-public vala
4344 (package
4345 (name "vala")
4346 (version "0.46.5")
4347 (source (origin
4348 (method url-fetch)
4349 (uri (string-append "mirror://gnome/sources/" name "/"
4350 (version-major+minor version) "/"
4351 name "-" version ".tar.xz"))
4352 (sha256
4353 (base32
4354 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4355 (build-system gnu-build-system)
4356 (arguments
4357 '(#:phases
4358 (modify-phases %standard-phases
4359 (add-before 'check 'pre-check
4360 (lambda _
4361 (setenv "CC" "gcc")
4362 (substitute* "valadoc/tests/testrunner.sh"
4363 (("export PKG_CONFIG_PATH=" m)
4364 (string-append m "$PKG_CONFIG_PATH:")))
4365 ;; For missing '/etc/machine-id'.
4366 (setenv "DBUS_FATAL_WARNINGS" "0")
4367 #t)))))
4368 (native-inputs
4369 `(("pkg-config" ,pkg-config)
4370 ("flex" ,flex)
4371 ("bison" ,bison)
4372 ("xsltproc" ,libxslt)
4373 ("dbus" ,dbus) ; for dbus tests
4374 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4375 (inputs
4376 `(("graphviz" ,graphviz)))
4377 (propagated-inputs
4378 `(("glib" ,glib))) ; required by libvala-0.40.pc
4379 (home-page "https://wiki.gnome.org/Projects/Vala/")
4380 (synopsis "Compiler for the GObject type system")
4381 (description
4382 "Vala is a programming language that aims to bring modern programming
4383 language features to GNOME developers without imposing any additional runtime
4384 requirements and without using a different ABI compared to applications and
4385 libraries written in C.")
4386 (license license:lgpl2.1+)))
4387
4388 (define-public vala-0.50
4389 (package
4390 (inherit vala)
4391 (version "0.50.2")
4392 (source (origin
4393 (method url-fetch)
4394 (uri (string-append "mirror://gnome/sources/vala/"
4395 (version-major+minor version) "/"
4396 "vala-" version ".tar.xz"))
4397 (sha256
4398 (base32
4399 "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c"))))))
4400
4401 (define-public vte
4402 (package
4403 (name "vte")
4404 (version "0.60.3")
4405 (source (origin
4406 (method url-fetch)
4407 (uri (string-append "mirror://gnome/sources/vte/"
4408 (version-major+minor version) "/"
4409 "vte-" version ".tar.xz"))
4410 (sha256
4411 (base32
4412 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4413 (build-system meson-build-system)
4414 (arguments
4415 `(#:configure-flags
4416 '("-Dvapi=true"
4417 "-D_systemd=false")))
4418 (native-inputs
4419 `(("pkg-config" ,pkg-config)
4420 ("gettext" ,gettext-minimal)
4421 ("vala" ,vala)
4422 ("gobject-introspection" ,gobject-introspection)
4423 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4424 ("gperf" ,gperf)
4425 ("xmllint" ,libxml2)))
4426 (propagated-inputs
4427 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4428 ("gnutls" ,gnutls) ; ditto
4429 ("pcre2" ,pcre2))) ; ditto
4430 (home-page "https://www.gnome.org/")
4431 (synopsis "Virtual Terminal Emulator")
4432 (description
4433 "VTE is a library (libvte) implementing a terminal emulator widget for
4434 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4435 gnome-terminal, but can also be used to embed a console/terminal in games,
4436 editors, IDEs, etc.")
4437 (license license:lgpl2.1+)))
4438
4439 (define-public vte-ng
4440 (package
4441 (inherit vte)
4442 (name "vte-ng")
4443 (version "0.58.2.a")
4444 (home-page "https://github.com/thestinger/vte-ng")
4445 (source (origin
4446 (method git-fetch)
4447 (uri (git-reference (url home-page) (commit version)))
4448 (file-name (git-file-name name version))
4449 (sha256
4450 (base32
4451 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4452 (build-system meson-build-system)
4453 (native-inputs
4454 `(("gtk-doc" ,gtk-doc)
4455 ,@(package-native-inputs vte)))
4456 (arguments
4457 `(#:configure-flags '("-Ddocs=true")))
4458 (synopsis "Enhanced VTE terminal widget")
4459 (description
4460 "VTE is a library (libvte) implementing a terminal emulator widget for
4461 GTK+, this fork provides additional functions exposed for keyboard text
4462 selection and URL hints.")))
4463
4464 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4465 (define-public vte/gtk+-2
4466 (package (inherit vte)
4467 (name "vte")
4468 (version "0.28.2")
4469 (source (origin
4470 (method url-fetch)
4471 (uri (string-append "mirror://gnome/sources/" name "/"
4472 (version-major+minor version) "/"
4473 name "-" version ".tar.xz"))
4474 (sha256
4475 (base32
4476 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4477 (patches (search-patches
4478 "vte-CVE-2012-2738-pt1.patch"
4479 "vte-CVE-2012-2738-pt2.patch"))))
4480 (build-system gnu-build-system)
4481 (arguments
4482 '(#:configure-flags '("--disable-python")))
4483 (native-inputs
4484 `(("pkg-config" ,pkg-config)
4485 ("intltool" ,intltool)
4486 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4487 (propagated-inputs
4488 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4489 ("ncurses" ,ncurses))))) ; required by libvte.la
4490
4491 (define-public vinagre
4492 (package
4493 (name "vinagre")
4494 (version "3.22.0")
4495 (source (origin
4496 (method url-fetch)
4497 (uri (string-append "mirror://gnome/sources/" name "/"
4498 (version-major+minor version) "/"
4499 name "-" version ".tar.xz"))
4500 (patches (search-patches "vinagre-newer-freerdp.patch"
4501 "vinagre-newer-rdp-parameters.patch"))
4502 (sha256
4503 (base32
4504 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4505 (build-system glib-or-gtk-build-system)
4506 (arguments
4507 ;; Disable -Werror and such, to avoid build failures on compilation
4508 ;; warnings.
4509 '(#:configure-flags '("--enable-compile-warnings=minimum")
4510 #:phases
4511 (modify-phases %standard-phases
4512 (add-before 'install 'skip-gtk-update-icon-cache
4513 (lambda _
4514 ;; Don't create 'icon-theme.cache'
4515 (substitute* (find-files "." "^Makefile$")
4516 (("gtk-update-icon-cache") (which "true")))
4517 #t))
4518 (add-after 'unpack 'patch-configure
4519 (lambda _
4520 (substitute* "configure"
4521 (("freerdp") "freerdp2"))
4522 #t)))))
4523 (native-inputs
4524 `(("pkg-config" ,pkg-config)
4525 ("intltool" ,intltool)
4526 ("itstool" ,itstool)
4527 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4528 (inputs
4529 `(("libxml2" ,libxml2)
4530 ("gtk-vnc" ,gtk-vnc)
4531 ("gnome-keyring" ,gnome-keyring)
4532 ("libsecret" ,libsecret)
4533 ("freerdp" ,freerdp)
4534 ("spice" ,spice)
4535 ("spice-gtk" ,spice-gtk)
4536 ("telepathy-glib" ,telepathy-glib)
4537 ("vte" ,vte)))
4538 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4539 (synopsis "Remote desktop viewer for GNOME")
4540 (description "Vinagre is a remote display client supporting the VNC, SPICE
4541 and RDP protocols.")
4542 (license license:gpl3+)))
4543
4544 (define-public dconf
4545 (package
4546 (name "dconf")
4547 (version "0.36.0")
4548 (source (origin
4549 (method url-fetch)
4550 (uri (string-append
4551 "mirror://gnome/sources/" name "/"
4552 (version-major+minor version) "/"
4553 name "-" version ".tar.xz"))
4554 (sha256
4555 (base32
4556 "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
4557 (build-system meson-build-system)
4558 (propagated-inputs
4559 ;; In Requires of dconf.pc.
4560 `(("glib" ,glib)))
4561 (inputs
4562 `(("gtk+" ,gtk+)
4563 ("dbus" ,dbus)))
4564 (native-inputs
4565 `(("bash-completion" ,bash-completion)
4566 ("libxslt" ,libxslt) ;for xsltproc
4567 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4568 ("docbook-xml" ,docbook-xml-4.2)
4569 ("docbook-xsl" ,docbook-xsl)
4570 ("glib:bin" ,glib "bin")
4571 ("gtk-doc" ,gtk-doc)
4572 ("pkg-config" ,pkg-config)
4573 ("vala" ,vala)))
4574 (arguments
4575 `(#:glib-or-gtk? #t
4576 #:configure-flags '("-Denable-gtk-doc=true")
4577 #:phases (modify-phases %standard-phases
4578 (add-after 'unpack 'increase-test-timeout
4579 (lambda _
4580 ;; On big-memory systems, the engine test may take
4581 ;; much longer than the default of 30 seconds.
4582 (substitute* "tests/meson.build"
4583 (("test\\(unit_test\\[0\\], exe" all)
4584 (string-append all ", timeout : 90")))
4585 #t)))))
4586 (home-page "https://developer.gnome.org/dconf/")
4587 (synopsis "Low-level GNOME configuration system")
4588 (description "Dconf is a low-level configuration system. Its main purpose
4589 is to provide a backend to GSettings on platforms that don't already have
4590 configuration storage systems.")
4591 (license license:lgpl2.1+)))
4592
4593 (define-public json-glib
4594 (package
4595 (name "json-glib")
4596 (version "1.4.4")
4597 (source (origin
4598 (method url-fetch)
4599 (uri (string-append "mirror://gnome/sources/" name "/"
4600 (version-major+minor version) "/"
4601 name "-" version ".tar.xz"))
4602 (sha256
4603 (base32
4604 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4605 (build-system meson-build-system)
4606 (native-inputs
4607 `(("gettext" ,gettext-minimal)
4608 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4609 ("gobject-introspection" ,gobject-introspection)
4610 ("pkg-config" ,pkg-config)))
4611 (propagated-inputs
4612 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4613 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4614 (synopsis "Compiler for the GObject type system")
4615 (description
4616 "JSON-GLib is a C library based on GLib providing serialization and
4617 deserialization support for the JavaScript Object Notation (JSON) format
4618 described by RFC 4627. It provides parser and generator GObject classes and
4619 various wrappers for the complex data types employed by JSON, such as arrays
4620 and objects.")
4621 (license license:lgpl2.1+)))
4622
4623 (define-public libxklavier
4624 (package
4625 (name "libxklavier")
4626 (version "5.4")
4627 (source (origin
4628 ;; Note: There's no tarball at ftp.gnome.org for this version.
4629 (method git-fetch)
4630 (uri (git-reference
4631 (url "https://anongit.freedesktop.org/git/libxklavier")
4632 (commit (string-append "libxklavier-" version))))
4633 (sha256
4634 (base32
4635 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4636 (file-name (git-file-name name version))))
4637 (build-system gnu-build-system)
4638 (arguments
4639 '(#:configure-flags
4640 (list (string-append "--with-xkb-base="
4641 (assoc-ref %build-inputs "xkeyboard-config")
4642 "/share/X11/xkb")
4643 "--disable-xmodmap-support")))
4644 (native-inputs
4645 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4646 ("gobject-introspection" ,gobject-introspection)
4647 ("pkg-config" ,pkg-config)
4648 ("gtk-doc" ,gtk-doc)
4649 ("intltool" ,intltool)
4650 ("which" ,which)
4651 ("autoconf" ,autoconf)
4652 ("automake" ,automake)
4653 ("libtool" ,libtool)))
4654 (propagated-inputs
4655 ;; Required by libxklavier.pc.
4656 `(("glib" ,glib)
4657 ("libxml2" ,libxml2)))
4658 (inputs
4659 `(("iso-codes" ,iso-codes)
4660 ("libxi" ,libxi)
4661 ("libxkbfile" ,libxkbfile)
4662 ("xkbcomp" ,xkbcomp)
4663 ("xkeyboard-config" ,xkeyboard-config)))
4664 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4665 (synopsis "High-level API for X Keyboard Extension")
4666 (description
4667 "LibXklavier is a library providing high-level API for X Keyboard
4668 Extension known as XKB. This library is intended to support XFree86 and other
4669 commercial X servers. It is useful for creating XKB-related software (layout
4670 indicators etc).")
4671 (license license:lgpl2.0+)))
4672
4673 (define-public python2-rsvg
4674 ;; XXX: This is actually a subset of gnome-python-desktop.
4675 (package
4676 (name "python2-rsvg")
4677 (version "2.32.0")
4678 (source
4679 (origin
4680 (method url-fetch)
4681 (uri (string-append
4682 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4683 version ".tar.bz2"))
4684 (sha256
4685 (base32
4686 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4687 (build-system gnu-build-system)
4688 (native-inputs
4689 `(("pkg-config" ,pkg-config)))
4690 (inputs
4691 `(("python" ,python-2)
4692 ("python2-pygtk" ,python2-pygtk)
4693 ("librsvg" ,librsvg)))
4694 (home-page "https://www.gnome.org")
4695 (synopsis "Python bindings to librsvg")
4696 (description
4697 "This package provides Python bindings to librsvg, the SVG rendering
4698 library.")
4699
4700 ;; This is the license of the rsvg bindings. The license of each module
4701 ;; of gnome-python-desktop is given in 'COPYING'.
4702 (license license:lgpl2.1+)))
4703
4704 (define-public glib-networking
4705 (package
4706 (name "glib-networking")
4707 (version "2.62.2")
4708 (source (origin
4709 (method url-fetch)
4710 (uri (string-append "mirror://gnome/sources/glib-networking/"
4711 (version-major+minor version) "/"
4712 "glib-networking-" version ".tar.xz"))
4713 (sha256
4714 (base32
4715 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4716 (build-system meson-build-system)
4717 (arguments
4718 `(#:configure-flags '("-Dlibproxy_support=false")))
4719 (native-inputs
4720 `(("pkg-config" ,pkg-config)
4721 ("intltool" ,intltool)))
4722 (inputs
4723 `(("glib" ,glib)
4724 ("gnutls" ,gnutls)
4725 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4726 (home-page "https://www.gnome.org")
4727 (synopsis "Network-related GIO modules")
4728 (description
4729 "This package contains various network related extensions for the GIO
4730 library.")
4731 (license license:lgpl2.0+)))
4732
4733 (define-public rest
4734 (package
4735 (name "rest")
4736 (version "0.8.1")
4737 (source (origin
4738 (method url-fetch)
4739 (uri (string-append "mirror://gnome/sources/rest/"
4740 (version-major+minor version) "/"
4741 name "-" version ".tar.xz"))
4742 (sha256
4743 (base32
4744 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4745 (build-system gnu-build-system)
4746 (arguments
4747 '(#:tests? #f ; tests require internet connection
4748 #:configure-flags
4749 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4750 (native-inputs
4751 `(("glib-mkenums" ,glib "bin")
4752 ("gobject-introspection" ,gobject-introspection)
4753 ("pkg-config" ,pkg-config)))
4754 (propagated-inputs
4755 ;; rest-0.7.pc refers to all these.
4756 `(("glib" ,glib)
4757 ("libsoup" ,libsoup)
4758 ("libxml2" ,libxml2)))
4759 (home-page "https://www.gtk.org/")
4760 (synopsis "RESTful web api query library")
4761 (description
4762 "This library was designed to make it easier to access web services that
4763 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4764 libxml to ease remote use of the RESTful API.")
4765 (license license:lgpl2.1+)))
4766
4767 (define-public libsoup
4768 (package
4769 (name "libsoup")
4770 (version "2.72.0")
4771 (source (origin
4772 (method url-fetch)
4773 (uri (string-append "mirror://gnome/sources/libsoup/"
4774 (version-major+minor version) "/"
4775 "libsoup-" version ".tar.xz"))
4776 (sha256
4777 (base32
4778 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
4779 (build-system meson-build-system)
4780 (outputs '("out" "doc"))
4781 (arguments
4782 `(#:modules ((guix build utils)
4783 (guix build meson-build-system)
4784 (ice-9 popen))
4785
4786 #:configure-flags '("-Dgtk_doc=true")
4787 #:phases
4788 (modify-phases %standard-phases
4789 (add-after 'unpack 'patch-docbook-xml
4790 (lambda* (#:key inputs #:allow-other-keys)
4791 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
4792 "/xml/dtd/docbook")))
4793 (substitute* (find-files "docs/reference")
4794 (("http://.*/docbookx\\.dtd")
4795 (string-append xmldoc "/docbookx.dtd")))
4796 #t)))
4797 (add-after 'unpack 'adjust-tests
4798 (lambda _
4799 ;; This test fails due to missing /etc/nsswitch.conf
4800 ;; in the build environment.
4801 (substitute* "tests/socket-test.c"
4802 ((".*/sockets/unconnected.*") ""))
4803
4804 ;; These fail because "subdomain.localhost" does not resolve in
4805 ;; the build environment.
4806 (substitute* "tests/hsts-test.c"
4807 ((".*/hsts/basic.*") "")
4808 ((".*/hsts/subdomains.*") "")
4809 ((".*/hsts/superdomain.*") "")
4810 ((".*/hsts/utf8-address.*") ""))
4811 (substitute* "tests/hsts-db-test.c"
4812 ((".*/hsts-db/subdomains.*") ""))
4813
4814 ;; Generate a self-signed certificate that has "localhost" as its
4815 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4816 ;; 3.5.12, tests such as "ssl-tests" fail:
4817 ;;
4818 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4819 ;;
4820 ;; 'certtool' is interactive so we have to pipe it the answers.
4821 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4822 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4823 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4824 (for-each (lambda (line)
4825 (display line pipe)
4826 (newline pipe))
4827 '("" ;Common name
4828 "" ;UID
4829 "Guix" ;Organizational unit name
4830 "GNU" ;Organization name
4831 "" ;Locality name
4832 "" ;State or province
4833 "" ;Country
4834 "" ;subject's domain component (DC)
4835 "" ;E-mail
4836 "" ;serial number
4837 "-1" ;expiration time
4838 "N" ;belong to authority?
4839 "N" ;web client certificate?
4840 "N" ;IPsec IKE?
4841 "Y" ;web server certificate?
4842 "localhost" ;dnsName of subject
4843 "" ;dnsName of subject (end)
4844 "" ;URI of subject
4845 "127.0.0.1" ;IP address of subject
4846 "" ;signing?
4847 "" ;encryption (RSA)?
4848 "" ;data encryption?
4849 "" ;sign OCSP requests?
4850 "" ;sign code?
4851 "" ;time stamping?
4852 "" ;email protection?
4853 "" ;URI of the CRL distribution point
4854 "y" ;above info OK?
4855 ))
4856 (close-pipe pipe))
4857 #t))
4858 (add-after 'install 'move-doc
4859 (lambda* (#:key outputs #:allow-other-keys)
4860 (let ((out (assoc-ref outputs "out"))
4861 (doc (assoc-ref outputs "doc")))
4862 (mkdir-p (string-append doc "/share"))
4863 (copy-recursively (string-append out "/share/gtk-doc")
4864 (string-append doc "/share/gtk-doc"))
4865 (delete-file-recursively (string-append out "/share/gtk-doc"))
4866 #t))))))
4867 (native-inputs
4868 `(("docbook-xml" ,docbook-xml-4.1.2)
4869 ("glib:bin" ,glib "bin") ; for glib-mkenums
4870 ("gobject-introspection" ,gobject-introspection)
4871 ("gtk-doc" ,gtk-doc)
4872 ("intltool" ,intltool)
4873 ("pkg-config" ,pkg-config)
4874 ("python" ,python-wrapper)
4875 ("vala" ,vala)
4876 ("php" ,php)
4877 ("curl" ,curl)
4878 ("gnutls" ,gnutls) ;for 'certtool'
4879 ("httpd" ,httpd)))
4880 (propagated-inputs
4881 ;; libsoup-2.4.pc refers to all these.
4882 `(("brotli" ,google-brotli)
4883 ("glib" ,glib)
4884 ("libpsl" ,libpsl)
4885 ("libxml2" ,libxml2)
4886 ("sqlite" ,sqlite)
4887 ("zlib" ,zlib)))
4888 (inputs
4889 `(("glib-networking" ,glib-networking)
4890 ("mit-krb5" ,mit-krb5)))
4891 (home-page "https://live.gnome.org/LibSoup/")
4892 (synopsis "GLib-based HTTP Library")
4893 (description
4894 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4895 and the GLib main loop, to integrate well with GNOME applications.")
4896 (license license:lgpl2.0+)))
4897
4898
4899 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4900 (define-public libsoup-minimal
4901 (package
4902 (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.1")
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 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
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 (home-page "https://wiki.gnome.org/gvfs/")
6518 (synopsis "Userspace virtual file system for GIO")
6519 (description
6520 "GVFS is a userspace virtual file system designed to work with the I/O
6521 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6522 to all applications using the GIO API. It also supports exposing the GVFS
6523 mounts to non-GIO applications using FUSE.
6524
6525 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6526 DAV, and others.")
6527 (license license:lgpl2.0+)))
6528
6529 (define-public gusb
6530 (package
6531 (name "gusb")
6532 (version "0.3.5")
6533 (source (origin
6534 (method git-fetch)
6535 (uri (git-reference
6536 (url "https://github.com/hughsie/libgusb")
6537 (commit version)))
6538 (file-name (git-file-name name version))
6539 (sha256
6540 (base32
6541 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6542 (build-system meson-build-system)
6543 (native-inputs
6544 `(("gobject-introspection" ,gobject-introspection)
6545 ("pkg-config" ,pkg-config)
6546 ("vala" ,vala)
6547 ("gtk-doc" ,gtk-doc)))
6548 (propagated-inputs
6549 ;; Both of these are required by gusb.pc.
6550 `(("glib" ,glib)
6551 ("libusb" ,libusb)))
6552 (arguments
6553 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6554 (home-page "https://github.com/hughsie/libgusb")
6555 (synopsis "GLib binding for libusb1")
6556 (description
6557 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6558 asynchronous control, bulk and interrupt transfers with proper cancellation
6559 and integration into a mainloop. This makes it easy to integrate low level
6560 USB transfers with your high-level application or system daemon.")
6561 (license license:lgpl2.1+)))
6562
6563 (define-public simple-scan
6564 (package
6565 (name "simple-scan")
6566 (version "3.38.2")
6567 (source
6568 (origin
6569 (method url-fetch)
6570 (uri (string-append "mirror://gnome/sources/simple-scan/"
6571 (version-major+minor version) "/"
6572 "simple-scan-" version ".tar.xz"))
6573 (sha256
6574 (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8"))))
6575 (build-system meson-build-system)
6576 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6577 (arguments
6578 '(#:glib-or-gtk? #t))
6579 (inputs
6580 `(("gtk" ,gtk+)
6581 ("zlib" ,zlib)
6582 ("cairo" ,cairo)
6583 ("colord" ,colord)
6584 ("gdk-pixbuf" ,gdk-pixbuf)
6585 ("gusb" ,gusb)
6586 ("libsane" ,sane-backends)))
6587 (native-inputs
6588 `(("gettext" ,gettext-minimal)
6589 ("itstool" ,itstool)
6590 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6591 ("pkg-config" ,pkg-config)
6592 ("vala" ,vala)
6593 ("xmllint" ,libxml2)))
6594 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6595 (synopsis "Document and image scanner")
6596 (description
6597 "Document Scanner is an easy-to-use application that lets you connect your
6598 scanner and quickly capture images and documents in an appropriate format. It
6599 supports any scanner for which a suitable SANE driver is available, which is
6600 almost all of them.")
6601 (license license:gpl3+)))
6602
6603 (define-public eolie
6604 (package
6605 (name "eolie")
6606 (version "0.9.101")
6607 (source (origin
6608 (method url-fetch)
6609 (uri (string-append "https://adishatz.org/eolie/eolie-"
6610 version ".tar.xz"))
6611 (sha256
6612 (base32
6613 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6614 (build-system meson-build-system)
6615 (arguments
6616 `(#:glib-or-gtk? #t
6617 #:phases
6618 (modify-phases %standard-phases
6619 (add-after 'unpack 'skip-gtk-update-icon-cache
6620 ;; Don't create 'icon-theme.cache'.
6621 (lambda _
6622 (substitute* "meson_post_install.py"
6623 (("gtk-update-icon-cache") "true"))
6624 #t))
6625 (add-after 'wrap 'wrap-more
6626 (lambda* (#:key inputs outputs #:allow-other-keys)
6627 (let* ((out (assoc-ref outputs "out"))
6628 ;; These libraries must be on LD_LIBRARY_PATH.
6629 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6630 "atk" "gtk+" "gsettings-desktop-schemas"
6631 "gobject-introspection"))
6632 (path (string-join
6633 (map (lambda (lib)
6634 (string-append (assoc-ref inputs lib) "/lib"))
6635 libs)
6636 ":")))
6637 (wrap-program (string-append out "/bin/eolie")
6638 `("LD_LIBRARY_PATH" ":" prefix (,path))
6639 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6640 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6641 #t)))))
6642 (native-inputs
6643 `(("intltool" ,intltool)
6644 ("itstool" ,itstool)
6645 ("pkg-config" ,pkg-config)
6646 ("python" ,python)
6647 ("glib:bin" ,glib "bin")))
6648 (inputs
6649 `(("gobject-introspection" ,gobject-introspection)
6650 ("glib-networking" ,glib-networking)
6651 ("cairo" ,cairo)
6652 ("gtk+" ,gtk+)
6653 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6654 ("python" ,python-wrapper)
6655 ("python-dateutil" ,python-dateutil)
6656 ("python-pyfxa" ,python-pyfxa)
6657 ("python-pygobject" ,python-pygobject)
6658 ("python-pycairo" ,python-pycairo)
6659 ("python-pycrypto" ,python-pycrypto)
6660 ("libsecret" ,libsecret)
6661 ("gtkspell3" ,gtkspell3)
6662 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6663 ("webkitgtk" ,webkitgtk)))
6664 (home-page "https://wiki.gnome.org/Apps/Eolie")
6665 (synopsis "Web browser for GNOME")
6666 (description
6667 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6668 a secret password store, an adblocker, and a modern UI.")
6669 (license license:gpl3+)))
6670
6671 (define-public epiphany
6672 (package
6673 (name "epiphany")
6674 (version "3.34.4")
6675 (source (origin
6676 (method url-fetch)
6677 (uri (string-append "mirror://gnome/sources/epiphany/"
6678 (version-major+minor version) "/"
6679 "epiphany-" version ".tar.xz"))
6680 (sha256
6681 (base32
6682 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6683
6684 (build-system meson-build-system)
6685 (arguments
6686 '(#:glib-or-gtk? #t
6687 #:phases
6688 (modify-phases %standard-phases
6689 (add-after 'unpack 'skip-gtk-update-icon-cache
6690 ;; Don't create 'icon-theme.cache'.
6691 (lambda _
6692 (substitute* "post_install.py"
6693 (("gtk-update-icon-cache") "true"))
6694 #t))
6695 (add-after 'unpack 'disable-failing-tests
6696 (lambda _
6697 (substitute* "tests/meson.build"
6698 ;; embed_shell fails, because webkitgtk apparently no longer supports
6699 ;; overriding the ftp schema
6700 ;; web_app_utils fails due to missing network access
6701 (("(embed_shell|web_app_utils)_test,")
6702 "find_program('sh'), args: ['-c', 'exit 77'],"))
6703 #t))
6704 (add-before 'check 'pre-check
6705 (lambda _
6706 ;; Tests require a running X server.
6707 (system "Xvfb :1 &")
6708 (setenv "DISPLAY" ":1")
6709 #t)))
6710 #:configure-flags
6711 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6712 (list (string-append "-Dc_link_args=-Wl,-rpath="
6713 (assoc-ref %outputs "out") "/lib/epiphany"))))
6714 (propagated-inputs
6715 `(("dconf" ,dconf)))
6716 (native-inputs
6717 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6718 ("glib:bin" ,glib "bin") ; for glib-mkenums
6719 ("intltool" ,intltool)
6720 ("itstool" ,itstool)
6721 ("pkg-config" ,pkg-config)
6722 ("xmllint" ,libxml2)
6723 ("xorg-server" ,xorg-server-for-tests)))
6724 (inputs
6725 `(("avahi" ,avahi)
6726 ("gcr" ,gcr)
6727 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6728 ("glib-networking" ,glib-networking)
6729 ("gnome-desktop" ,gnome-desktop)
6730 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6731 ("json-glib" ,json-glib)
6732 ("iso-codes" ,iso-codes)
6733 ("libdazzle" ,libdazzle)
6734 ("libnotify" ,libnotify)
6735 ("libsecret" ,libsecret)
6736 ("libxslt" ,libxslt)
6737 ("nettle" ,nettle) ; for hogweed
6738 ("sqlite" ,sqlite)
6739 ("webkitgtk" ,webkitgtk)))
6740 (home-page "https://wiki.gnome.org/Apps/Web")
6741 (synopsis "GNOME web browser")
6742 (description
6743 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6744 principles are simplicity and standards compliance.")
6745 (license license:gpl2+)))
6746
6747 (define-public d-feet
6748 (package
6749 (name "d-feet")
6750 (version "0.3.14")
6751 (source (origin
6752 (method url-fetch)
6753 (uri (string-append "mirror://gnome/sources/" name "/"
6754 (version-major+minor version) "/"
6755 name "-" version ".tar.xz"))
6756 (sha256
6757 (base32
6758 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6759 (build-system glib-or-gtk-build-system)
6760 (arguments
6761 '(#:out-of-source? #f ; tests need to run in the source directory.
6762 #:phases
6763 (modify-phases %standard-phases
6764 (add-before
6765 'check 'pre-check
6766 (lambda _
6767 ;; The test suite requires a running X server.
6768 (system "Xvfb :1 &")
6769 (setenv "DISPLAY" ":1")
6770 ;; Don't fail on missing '/etc/machine-id'.
6771 (setenv "DBUS_FATAL_WARNINGS" "0")
6772 ;; tests.py and window.py don't meet E402:
6773 ;; E402 module level import not at top of file
6774 (substitute* "src/tests/Makefile"
6775 (("--ignore=E123") "--ignore=E123,E402"))
6776 #t))
6777 (add-after
6778 'install 'wrap-program
6779 (lambda* (#:key outputs #:allow-other-keys)
6780 (let ((prog (string-append (assoc-ref outputs "out")
6781 "/bin/d-feet")))
6782 (wrap-program prog
6783 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6784 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6785 #t))))))
6786 (native-inputs
6787 `(("intltool" ,intltool)
6788 ("itstool" ,itstool)
6789 ("pkg-config" ,pkg-config)
6790 ("python-pep8" ,python-pep8)
6791 ("xmllint" ,libxml2)
6792 ("xorg-server" ,xorg-server-for-tests)))
6793 (inputs
6794 `(("gobject-introspection" ,gobject-introspection)
6795 ("gtk+" ,gtk+)
6796 ("python" ,python-wrapper)
6797 ("hicolor-icon-theme" ,hicolor-icon-theme)
6798 ("python-pygobject" ,python-pygobject)))
6799 (home-page "https://wiki.gnome.org/Apps/DFeet")
6800 (synopsis "D-Bus debugger")
6801 (description
6802 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6803 of running programs and invoke methods on those interfaces.")
6804 (license license:gpl2+)))
6805
6806 (define-public yelp-xsl
6807 (package
6808 (name "yelp-xsl")
6809 (version "3.34.2")
6810 (source
6811 (origin
6812 (method url-fetch)
6813 (uri
6814 (string-append "mirror://gnome/sources/" name "/"
6815 (version-major+minor version) "/"
6816 name "-" version ".tar.xz"))
6817 (sha256
6818 (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6819 (build-system gnu-build-system)
6820 (native-inputs
6821 `(("gettext-minimal" ,gettext-minimal)
6822 ("itstool" ,itstool)
6823 ("xmllint" ,libxml2)))
6824 (synopsis "XSL stylesheets for Yelp")
6825 (description "Yelp-XSL is a collection of programs and data files to help
6826 you build, maintain, and distribute documentation. It provides XSLT stylesheets
6827 that can be built upon for help viewers and publishing systems. These
6828 stylesheets output JavaScript and CSS content, and reference images
6829 provided by yelp-xsl. It also redistributes copies of the jQuery and
6830 jQuery.Syntax JavaScript libraries.")
6831 (home-page "https://wiki.gnome.org/Apps/Yelp")
6832 (license
6833 (list
6834 ;; XSLT
6835 license:gpl2+
6836 ;; Images
6837 license:lgpl2.1+
6838 ;; JavaScript
6839 license:expat))))
6840
6841 (define-public yelp
6842 (package
6843 (name "yelp")
6844 (version "3.32.2")
6845 (source (origin
6846 (method url-fetch)
6847 (uri (string-append "mirror://gnome/sources/" name "/"
6848 (version-major+minor version) "/"
6849 name "-" version ".tar.xz"))
6850 (sha256
6851 (base32
6852 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6853 (build-system glib-or-gtk-build-system)
6854 (native-inputs
6855 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6856 ("intltool" ,intltool)
6857 ("itstool" ,itstool)
6858 ("pkg-config" ,pkg-config)))
6859 (propagated-inputs
6860 `(("dconf" ,dconf)))
6861 (inputs
6862 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6863 ("libxslt" ,libxslt)
6864 ("sqlite" ,sqlite)
6865 ("webkitgtk" ,webkitgtk)
6866 ("yelp-xsl" ,yelp-xsl)))
6867 (home-page "https://wiki.gnome.org/Apps/Yelp")
6868 (synopsis "GNOME help browser")
6869 (description
6870 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6871 man, info, and HTML documents. It can locate documents according to the
6872 freedesktop.org help system specification.")
6873 (license license:gpl2+)))
6874
6875 (define-public yelp-tools
6876 (package
6877 (name "yelp-tools")
6878 (version "3.32.2")
6879 (source
6880 (origin
6881 (method url-fetch)
6882 (uri
6883 (string-append "mirror://gnome/sources/" name "/"
6884 (version-major+minor version) "/"
6885 name "-" version ".tar.xz"))
6886 (sha256
6887 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6888 (build-system gnu-build-system)
6889 (native-inputs
6890 `(("pkg-config" ,pkg-config)))
6891 (inputs
6892 `(("yelp-xsl" ,yelp-xsl)))
6893 (propagated-inputs
6894 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6895 `(("itstool" ,itstool)
6896 ("xmllint" ,libxml2)
6897 ("xsltproc" ,libxslt)))
6898 (synopsis "Yelp documentation tools")
6899 (description
6900 "Yelp-tools is a collection of scripts and build utilities to help create,
6901 manage, and publish documentation for Yelp and the web. Most of the heavy
6902 lifting is done by packages like yelp-xsl and itstool. This package just
6903 wraps things up in a developer-friendly way.")
6904 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6905 (license license:gpl2+)))
6906
6907 (define-public libgee
6908 (package
6909 (name "libgee")
6910 (version "0.20.3")
6911 (source (origin
6912 (method url-fetch)
6913 (uri (string-append "mirror://gnome/sources/libgee/"
6914 (version-major+minor version) "/"
6915 "libgee-" version ".tar.xz"))
6916 (sha256
6917 (base32
6918 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6919 (build-system gnu-build-system)
6920 (arguments
6921 `(#:phases
6922 (modify-phases %standard-phases
6923 (add-after 'unpack 'fix-introspection-install-dir
6924 (lambda* (#:key outputs #:allow-other-keys)
6925 (let ((out (assoc-ref outputs "out")))
6926 (substitute* "gee/Makefile.in"
6927 (("@INTROSPECTION_GIRDIR@")
6928 (string-append out "/share/gir-1.0/"))
6929 (("@INTROSPECTION_TYPELIBDIR@")
6930 (string-append out "/lib/girepository-1.0/")))))))))
6931 (native-inputs
6932 `(("glib" ,glib "bin")
6933 ("pkg-config" ,pkg-config)))
6934 (inputs
6935 `(("glib" ,glib)
6936 ("gobject-introspection" ,gobject-introspection)))
6937 (home-page "https://wiki.gnome.org/Projects/Libgee")
6938 (synopsis "GObject collection library")
6939 (description
6940 "Libgee is a utility library providing GObject-based interfaces and
6941 classes for commonly used data structures.")
6942 (license license:lgpl2.1+)))
6943
6944 (define-public gexiv2
6945 (package
6946 (name "gexiv2")
6947 (version "0.12.2")
6948 (source (origin
6949 (method url-fetch)
6950 (uri (string-append "mirror://gnome/sources/" name "/"
6951 (version-major+minor version) "/"
6952 name "-" version ".tar.xz"))
6953 (sha256
6954 (base32
6955 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
6956 (build-system meson-build-system)
6957 (native-inputs
6958 `(("gcr" ,gcr)
6959 ("glib" ,glib "bin")
6960 ("pkg-config" ,pkg-config)
6961 ("vala" ,vala)))
6962 (propagated-inputs
6963 ;; Listed in "Requires" section of gexiv2.pc
6964 `(("exiv2" ,exiv2)))
6965 (inputs
6966 `(("glib" ,glib)
6967 ("gobject-introspection" ,gobject-introspection)))
6968 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6969 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6970 (description
6971 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6972 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6973 metadata in photo and video files of various formats.")
6974 (license license:gpl2+)))
6975
6976 (define-public shotwell
6977 (package
6978 (name "shotwell")
6979 (version "0.30.11")
6980 (source (origin
6981 (method url-fetch)
6982 (uri (string-append "mirror://gnome/sources/shotwell/"
6983 (version-major+minor version) "/"
6984 "shotwell-" version ".tar.xz"))
6985 (sha256
6986 (base32
6987 "12d26y40kjlv5x8f5g04wff33vh7mdjb8c41ydqbrwdip0jwy2n2"))))
6988 (build-system meson-build-system)
6989 (arguments
6990 '(#:glib-or-gtk? #t
6991 #:phases
6992 (modify-phases %standard-phases
6993 (add-after 'unpack 'skip-gtk-update-icon-cache
6994 (lambda _
6995 (substitute* "build-aux/meson/postinstall.py"
6996 (("gtk-update-icon-cache") (which "true"))
6997 (("update-desktop-database") (which "true")))
6998 #t)))))
6999 (propagated-inputs
7000 `(("dconf" ,dconf)))
7001 (native-inputs
7002 `(("gettext" ,gettext-minimal)
7003 ("glib:bin" ,glib "bin")
7004 ("itstool" ,itstool)
7005 ("pkg-config" ,pkg-config)
7006 ("vala" ,vala)))
7007 (inputs
7008 `(("gcr" ,gcr)
7009 ("gexiv2" ,gexiv2)
7010 ("gst-plugins-base" ,gst-plugins-base)
7011 ("gstreamer" ,gstreamer)
7012 ("json-glib" ,json-glib)
7013 ("libgdata" ,libgdata)
7014 ("libgee" ,libgee)
7015 ("libgphoto2" ,libgphoto2)
7016 ("libgudev" ,libgudev)
7017 ("libraw" ,libraw)
7018 ("libsoup" ,libsoup)
7019 ("libxml2" ,libxml2)
7020 ("sqlite" ,sqlite)
7021 ("webkitgtk" ,webkitgtk)))
7022 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7023 (synopsis "Photo manager for GNOME 3")
7024 (description
7025 "Shotwell is a digital photo manager designed for the GNOME desktop
7026 environment. It allows you to import photos from disk or camera, organize
7027 them by keywords and events, view them in full-window or fullscreen mode, and
7028 share them with others via social networking and more.")
7029 (license license:lgpl2.1+)))
7030
7031 (define-public file-roller
7032 (package
7033 (name "file-roller")
7034 (version "3.38.0")
7035 (source (origin
7036 (method url-fetch)
7037 (uri (string-append "mirror://gnome/sources/file-roller/"
7038 (version-major+minor version) "/"
7039 "file-roller-" version ".tar.xz"))
7040 (sha256
7041 (base32
7042 "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj"))))
7043 (build-system meson-build-system)
7044 (native-inputs
7045 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7046 ("intltool" ,intltool)
7047 ("itstool" ,itstool)
7048 ("pkg-config" ,pkg-config)
7049 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7050 ("glib:bin" ,glib "bin")))
7051 ;; TODO: Add libnautilus.
7052 (inputs
7053 `(("gtk+" ,gtk+)
7054 ("gdk-pixbuf" ,gdk-pixbuf)
7055 ("json-glib" ,json-glib)
7056 ("libarchive" ,libarchive)
7057 ("libnotify" ,libnotify)
7058 ("nettle" ,nettle)
7059 ("libxml2" ,libxml2)))
7060 (synopsis "Graphical archive manager for GNOME")
7061 (description "File Roller is an archive manager for the GNOME desktop
7062 environment that allows users to view, unpack, and create compressed archives
7063 such as gzip tarballs.")
7064 (home-page "http://fileroller.sourceforge.net/")
7065 (license license:gpl2+)))
7066
7067 (define-public gnome-session
7068 (package
7069 (name "gnome-session")
7070 (version "3.34.2")
7071 (source (origin
7072 (method url-fetch)
7073 (uri (string-append "mirror://gnome/sources/" name "/"
7074 (version-major+minor version) "/"
7075 name "-" version ".tar.xz"))
7076 (sha256
7077 (base32
7078 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
7079 (arguments
7080 '(#:glib-or-gtk? #t
7081 #:phases
7082 (modify-phases %standard-phases
7083 (add-before 'configure 'pre-configure
7084 (lambda* (#:key outputs #:allow-other-keys)
7085 ;; Use elogind instead of systemd.
7086 (substitute* "meson.build"
7087 (("libsystemd-login") "libelogind")
7088 (("and libsystemd_daemon_dep.found.*") ","))
7089 (substitute* "gnome-session/gsm-systemd.c"
7090 (("#include <systemd/sd-login.h>")
7091 "#include <elogind/sd-login.h>"))
7092 ;; Remove uses of the systemd daemon.
7093 (substitute* "gnome-session/gsm-autostart-app.c"
7094 (("#ifdef HAVE_SYSTEMD") "#if 0"))
7095 #t))
7096 (add-after 'install 'wrap-gnome-session
7097 (lambda* (#:key inputs outputs #:allow-other-keys)
7098 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7099 (let ((glib (assoc-ref inputs "glib:bin"))
7100 (out (assoc-ref outputs "out")))
7101 (wrap-program (string-append out "/bin/gnome-session")
7102 `("PATH" ":" prefix (,(string-append glib "/bin"))))
7103 #t))))
7104
7105 #:configure-flags
7106 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7107 "-Dman=false" ; FIXME: disabled because of docbook validation error
7108 "-Dsystemd_journal=false")))
7109 (build-system meson-build-system)
7110 (native-inputs
7111 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7112 ("pkg-config" ,pkg-config)
7113 ("intltool" ,intltool)
7114 ("xsltproc" ,libxslt)
7115 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
7116 ("docbook-xsl" ,docbook-xsl)
7117 ("docbook-xml" ,docbook-xml)
7118 ("xmlto" ,xmlto)))
7119 (inputs
7120 `(("elogind" ,elogind)
7121 ("gnome-desktop" ,gnome-desktop)
7122 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7123 ("gtk+" ,gtk+)
7124 ("json-glib" ,json-glib)
7125 ("libsm" ,libsm)
7126 ("libxcomposite" ,libxcomposite)
7127 ("libxtst" ,libxtst)
7128 ("mesa" ,mesa)
7129 ("upower" ,upower)
7130 ("xtrans" ,xtrans)))
7131 (synopsis "Session manager for GNOME")
7132 (description
7133 "This package contains the GNOME session manager, as well as a
7134 configuration program to choose applications starting on login.")
7135 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7136 (license license:gpl2+)))
7137
7138 (define-public gjs
7139 (package
7140 (name "gjs")
7141 (version "1.58.3")
7142 (source (origin
7143 (method url-fetch)
7144 (uri (string-append "mirror://gnome/sources/" name "/"
7145 (version-major+minor version) "/"
7146 name "-" version ".tar.xz"))
7147 (sha256
7148 (base32
7149 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
7150 (build-system gnu-build-system)
7151 (arguments
7152 '(#:phases
7153 (modify-phases %standard-phases
7154 (add-before
7155 'check 'pre-check
7156 (lambda _
7157 ;; The test suite requires a running X server.
7158 (system "Xvfb :1 &")
7159 (setenv "DISPLAY" ":1")
7160
7161 ;; For the missing /etc/machine-id.
7162 (setenv "DBUS_FATAL_WARNINGS" "0")
7163
7164 ;; Our mozjs-38 package does not compile the required Intl API
7165 ;; support for these failing tests.
7166 (substitute* "installed-tests/js/testLocale.js"
7167 ((".*toBeDefined.*") "")
7168 ((".*expect\\(datestr\\).*") ""))
7169 (substitute* "installed-tests/scripts/testCommandLine.sh"
7170 (("Valentín") "")
7171 (("☭") ""))
7172 #t)))))
7173 (native-inputs
7174 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
7175 ("pkg-config" ,pkg-config)
7176 ("xmllint" ,libxml2)
7177 ;; For testing
7178 ("dbus-launch" ,dbus)
7179 ("dconf" ,dconf) ; required to properly store settings
7180 ("uuidgen" ,util-linux)
7181 ("xvfb" ,xorg-server-for-tests)))
7182 (propagated-inputs
7183 ;; These are all in the Requires.private field of gjs-1.0.pc.
7184 `(("cairo" ,cairo)
7185 ("gobject-introspection" ,gobject-introspection)
7186 ("mozjs" ,mozjs-60)))
7187 (inputs
7188 `(("gtk+" ,gtk+)
7189 ("readline" ,readline)))
7190 (synopsis "Javascript bindings for GNOME")
7191 (home-page "https://live.gnome.org/Gjs")
7192 (description
7193 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7194 javascript engine and the GObject introspection framework.")
7195 (license license:gpl2+)))
7196
7197 (define-public gedit
7198 (package
7199 (name "gedit")
7200 (version "3.34.1")
7201 (source (origin
7202 (method url-fetch)
7203 (uri (string-append "mirror://gnome/sources/" name "/"
7204 (version-major+minor version) "/"
7205 name "-" version ".tar.xz"))
7206 (sha256
7207 (base32
7208 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7209 (build-system meson-build-system)
7210 (arguments
7211 `(#:glib-or-gtk? #t
7212 #:configure-flags
7213 ;; Otherwise, the RUNPATH will lack the final path component.
7214 (list (string-append "-Dc_link_args=-Wl,-rpath="
7215 (assoc-ref %outputs "out") "/lib/gedit"))
7216
7217 ;; XXX: Generated .h files are sometimes used before being built.
7218 #:parallel-build? #f
7219
7220 #:phases
7221 (modify-phases %standard-phases
7222 (add-after 'unpack 'skip-gtk-update-icon-cache
7223 ;; Don't create 'icon-theme.cache'.
7224 (lambda _
7225 (substitute* "build-aux/meson/post_install.py"
7226 (("gtk-update-icon-cache") (which "true")))
7227 #t))
7228 (add-after 'unpack 'patch-libgd-fetch
7229 (lambda* (#:key inputs #:allow-other-keys)
7230 (let ((libgd (assoc-ref inputs "libgd")))
7231 ;; Calling git is unnecessary because libgd is fetched as a
7232 ;; native input to this package.
7233 (substitute* "meson.build"
7234 ((".*git.*") ""))
7235 (copy-recursively libgd "subprojects/libgd")
7236 #t)))
7237 (add-after 'install 'wrap-gedit
7238 (lambda* (#:key inputs outputs #:allow-other-keys)
7239 (let ((out (assoc-ref outputs "out"))
7240 (gtksourceview (assoc-ref inputs "gtksourceview"))
7241 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7242 (python-path (getenv "PYTHONPATH")))
7243 (wrap-program (string-append out "/bin/gedit")
7244 ;; For plugins.
7245 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7246 `("PYTHONPATH" ":" prefix (,python-path))
7247 ;; For language-specs.
7248 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7249 "/share")))))
7250 #t)))))
7251 (propagated-inputs
7252 `(("dconf" ,dconf)))
7253 (native-inputs
7254 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7255 ("intltool" ,intltool)
7256 ("itstool" ,itstool)
7257 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7258 ("gobject-introspection" ,gobject-introspection)
7259 ("libgd"
7260 ,(origin
7261 (method git-fetch)
7262 (uri (git-reference
7263 (url "https://gitlab.gnome.org/GNOME/libgd")
7264 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7265 (file-name (git-file-name "libgd" version))
7266 (sha256
7267 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7268 ("pkg-config" ,pkg-config)))
7269 (inputs
7270 `(("glib" ,glib)
7271 ("gspell" ,gspell)
7272 ("gtk+" ,gtk+)
7273 ("gtksourceview" ,gtksourceview)
7274 ("libpeas" ,libpeas)
7275 ("libxml2" ,libxml2)
7276 ("iso-codes" ,iso-codes)
7277 ("python-pygobject" ,python-pygobject)
7278 ("python" ,python)
7279 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7280 ("libx11" ,libx11)
7281 ("vala" ,vala)
7282 ("adwaita-icon-theme" ,adwaita-icon-theme)
7283 ("libsoup" ,libsoup)
7284 ("gnome-desktop" ,gnome-desktop)))
7285 (home-page "https://wiki.gnome.org/Apps/Gedit")
7286 (synopsis "GNOME text editor")
7287 (description "While aiming at simplicity and ease of use, gedit is a
7288 powerful general purpose text editor.")
7289 (license license:gpl2+)))
7290
7291 (define-public zenity
7292 (package
7293 (name "zenity")
7294 (version "3.32.0")
7295 (source (origin
7296 (method url-fetch)
7297 (uri (string-append "mirror://gnome/sources/zenity/"
7298 (version-major+minor version) "/"
7299 "zenity-" version ".tar.xz"))
7300 (sha256
7301 (base32
7302 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7303 (build-system gnu-build-system)
7304 (native-inputs
7305 `(("gettext" ,gettext-minimal)
7306 ("itstool" ,itstool)
7307 ("pkg-config" ,pkg-config)))
7308 (inputs
7309 `(("libnotify" ,libnotify)
7310 ("webkitgtk" ,webkitgtk)))
7311 (synopsis "Display graphical dialog boxes from shell scripts")
7312 (home-page "https://www.gnome.org")
7313 (description
7314 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7315 to display dialog boxes from the commandline and shell scripts.")
7316 (license license:lgpl2.0+)))
7317
7318 (define-public mutter
7319 (package
7320 (name "mutter")
7321 (version "3.34.2")
7322 (source (origin
7323 (method url-fetch)
7324 (uri (string-append "mirror://gnome/sources/" name "/"
7325 (version-major+minor version) "/"
7326 name "-" version ".tar.xz"))
7327 (sha256
7328 (base32
7329 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
7330 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7331 ;; versions of cogl and clutter. As a result, many of the inputs,
7332 ;; propagated-inputs, and configure flags used in cogl and clutter are
7333 ;; needed here as well.
7334 (build-system meson-build-system)
7335 (arguments
7336 '(;; XXX: All mutter tests fail with the following error:
7337 ;; Settings schema 'org.gnome.mutter' is not installed
7338 #:tests? #f
7339 #:glib-or-gtk? #t
7340 #:configure-flags
7341 ;; TODO: Enable profiler when Sysprof is packaged.
7342 (list "-Dprofiler=false"
7343 ;; Otherwise, the RUNPATH will lack the final path component.
7344 (string-append "-Dc_link_args=-Wl,-rpath="
7345 (assoc-ref %outputs "out") "/lib:"
7346 (assoc-ref %outputs "out") "/lib/mutter-5")
7347
7348 ;; The following flags are needed for the bundled clutter
7349 (string-append "-Dxwayland_path="
7350 (assoc-ref %build-inputs "xorg-server-xwayland")
7351 "/bin/Xwayland")
7352
7353 ;; the remaining flags are needed for the bundled cogl
7354 (string-append "-Dopengl_libname="
7355 (assoc-ref %build-inputs "mesa")
7356 "/lib/libGL.so"))
7357 #:phases (modify-phases %standard-phases
7358 (add-after 'unpack 'fix-build-with-mesa-20
7359 (lambda _
7360 ;; Mimic upstream commit a444a4c5f58ea516ad for
7361 ;; compatibility with Mesa 20. Remove for 3.36.
7362 (substitute* '("src/backends/meta-egl-ext.h"
7363 "src/backends/meta-egl.c"
7364 "src/backends/meta-egl.h")
7365 (("#include <EGL/eglext\\.h>" all)
7366 (string-append all "\n#include <EGL/eglmesaext.h>")))
7367 (substitute* "cogl/cogl/meson.build"
7368 (("#include <EGL/eglext\\.h>" all)
7369 (string-append all "\\n#include <EGL/eglmesaext.h>")))
7370 #t)))))
7371 (native-inputs
7372 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7373 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7374 ("gobject-introspection" ,gobject-introspection)
7375 ("intltool" ,intltool)
7376 ("pkg-config" ,pkg-config)
7377 ("xorg-server" ,xorg-server-for-tests)
7378 ;; For git build
7379 ("autoconf" ,autoconf)
7380 ("automake" ,automake)
7381 ("libtool" ,libtool)))
7382 (propagated-inputs
7383 `(;; libmutter.pc refers to these:
7384 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7385 ("gtk+" ,gtk+)
7386 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7387 ("atk" ,atk)
7388 ("cairo" ,cairo)
7389 ("gdk-pixbuf" ,gdk-pixbuf)
7390 ("glib" ,glib)
7391 ("json-glib" ,json-glib)
7392 ("libinput" ,libinput)
7393 ("libx11" ,libx11)
7394 ("libxcomposite" ,libxcomposite)
7395 ("libxdamage" ,libxdamage)
7396 ("libxext" ,libxext)
7397 ("libxfixes" ,libxfixes)
7398 ("libxkbcommon" ,libxkbcommon)
7399 ("libxrandr" ,libxrandr)
7400 ("mesa" ,mesa)
7401 ("pango" ,pango)
7402 ("udev" ,eudev)
7403 ("xinput" ,xinput)))
7404 (inputs
7405 `(("elogind" ,elogind)
7406 ("gnome-desktop" ,gnome-desktop)
7407 ("gnome-settings-daemon" ,gnome-settings-daemon)
7408 ("libcanberra-gtk" ,libcanberra)
7409 ("libgudev" ,libgudev)
7410 ("libice" ,libice)
7411 ("libsm" ,libsm)
7412 ("libwacom" ,libwacom)
7413 ("libxkbfile" ,libxkbfile)
7414 ("libxrandr" ,libxrandr)
7415 ("libxtst" ,libxtst)
7416 ("pipewire" ,pipewire)
7417 ("startup-notification" ,startup-notification)
7418 ("upower-glib" ,upower)
7419 ("xkeyboard-config" ,xkeyboard-config)
7420 ("xorg-server-xwayland" ,xorg-server-xwayland)
7421 ("zenity" ,zenity)))
7422 (synopsis "Window and compositing manager")
7423 (home-page "https://www.gnome.org")
7424 (description
7425 "Mutter is a window and compositing manager that displays and manages your
7426 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7427 Clutter toolkit with solid window-management logic inherited from the Metacity
7428 window manager.")
7429 (license license:gpl2+)))
7430
7431 (define-public gnome-online-accounts
7432 (package
7433 (name "gnome-online-accounts")
7434 (version "3.36.0")
7435 (source (origin
7436 (method url-fetch)
7437 (uri (string-append "mirror://gnome/sources/" name "/"
7438 (version-major+minor version) "/"
7439 name "-" version ".tar.xz"))
7440 (sha256
7441 (base32
7442 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7443 (outputs '("out" "lib"))
7444 (build-system glib-or-gtk-build-system)
7445 (arguments
7446 `(#:configure-flags
7447 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7448 #:phases
7449 (modify-phases %standard-phases
7450 (add-before 'configure 'patch-libgoa-output
7451 (lambda* (#:key outputs #:allow-other-keys)
7452 (let ((lib (assoc-ref outputs "lib")))
7453 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7454 (("@prefix@") lib)
7455 (("@exec_prefix@") lib)
7456 (("@libdir@") (string-append lib "/lib"))
7457 (("@includedir@") (string-append lib "/include"))
7458 (("@datadir@") (string-append lib "/share")))
7459 ;; Make sure gobject-introspection knows about the output
7460 ;; too (see <https://bugs.gnu.org/36535>).
7461 (setenv "outputs" "out lib")
7462 #t))))))
7463 (native-inputs
7464 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7465 ("gobject-introspection" ,gobject-introspection)
7466 ("intltool" ,intltool)
7467 ("pkg-config" ,pkg-config)
7468 ("vala" ,vala)
7469 ("xsltproc" ,libxslt)))
7470 (propagated-inputs
7471 `(("glib" ,glib) ; required by goa-1.0.pc
7472 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7473 (inputs
7474 `(("docbook-xsl" ,docbook-xsl)
7475 ("json-glib" ,json-glib)
7476 ("libsecret" ,libsecret)
7477 ("rest" ,rest)
7478 ("webkitgtk" ,webkitgtk)))
7479 (synopsis "Single sign-on framework for GNOME")
7480 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7481 (description
7482 "GNOME Online Accounts provides interfaces so that applications and
7483 libraries in GNOME can access the user's online accounts. It has providers for
7484 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7485 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7486 (license license:lgpl2.0+)))
7487
7488 (define-public evolution-data-server
7489 (package
7490 (name "evolution-data-server")
7491 (version "3.34.2")
7492 (source (origin
7493 (method url-fetch)
7494 (uri (string-append "mirror://gnome/sources/" name "/"
7495 (version-major+minor version) "/"
7496 name "-" version ".tar.xz"))
7497 (patches (search-patches "evolution-data-server-locales.patch"
7498 "evolution-data-server-libical-compat.patch"
7499 "evolution-data-server-CVE-2020-14928.patch"
7500 "evolution-data-server-CVE-2020-16117.patch"))
7501 (sha256
7502 (base32
7503 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7504 (build-system cmake-build-system)
7505 (arguments
7506 '(#:configure-flags
7507 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7508 (runpaths (map (lambda (s)
7509 (string-append lib "/evolution-data-server/" s))
7510 '("addressbook-backends" "calendar-backends"
7511 "camel-providers" "credential-modules"
7512 "registry-modules"))))
7513 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7514 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7515 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7516 "-DENABLE_VALA_BINDINGS=ON"
7517 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7518 (string-append lib "/evolution-data-server;")
7519 (string-join runpaths ";"))
7520 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7521 #:phases
7522 (modify-phases %standard-phases
7523 (add-after 'unpack 'disable-failing-tests
7524 (lambda _
7525 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7526 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7527 (delete-file-recursively "tests/book-migration")
7528 (substitute* "tests/CMakeLists.txt"
7529 (("add_subdirectory\\(book-migration\\)") ""))
7530 #t))
7531 (add-after 'unpack 'patch-paths
7532 (lambda _
7533 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7534 "tests/libedata-book/data-test-utils.c"
7535 "tests/libedata-book/test-book-cache-utils.c"
7536 "tests/libedata-cal/test-cal-cache-utils.c")
7537 (("/bin/rm") (which "rm")))
7538 #t))
7539 (add-before 'configure 'dont-override-rpath
7540 (lambda _
7541 (substitute* "CMakeLists.txt"
7542 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7543 ;; Remove it so the configure flag is respected.
7544 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7545 #t)))))
7546 (native-inputs
7547 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7548 ("gobject-introspection" ,gobject-introspection)
7549 ("gperf" ,gperf)
7550 ("intltool" ,intltool)
7551 ("pkg-config" ,pkg-config)
7552 ("vala" ,vala)
7553 ("python" ,python-wrapper)))
7554 (propagated-inputs
7555 ;; These are all in the Requires field of .pc files.
7556 `(("gtk+" ,gtk+)
7557 ("libical" ,libical)
7558 ("libsecret" ,libsecret)
7559 ("libsoup" ,libsoup)
7560 ("nss" ,nss)
7561 ("sqlite" ,sqlite)))
7562 (inputs
7563 `(("bdb" ,bdb)
7564 ("gcr" ,gcr)
7565 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7566 ("json-glib" ,json-glib)
7567 ("libcanberra" ,libcanberra)
7568 ("libgweather" ,libgweather)
7569 ("mit-krb5" ,mit-krb5)
7570 ("openldap" ,openldap)
7571 ("webkitgtk" ,webkitgtk)))
7572 (synopsis "Store address books and calendars")
7573 (home-page "https://wiki.gnome.org/Apps/Evolution")
7574 (description
7575 "This package provides a unified backend for programs that work with
7576 contacts, tasks, and calendar information. It was originally developed for
7577 Evolution (hence the name), but is now used by other packages as well.")
7578 (license license:lgpl2.0)))
7579
7580 (define-public caribou
7581 (package
7582 (name "caribou")
7583 (version "0.4.21")
7584 (source (origin
7585 (method url-fetch)
7586 (uri (string-append "mirror://gnome/sources/" name "/"
7587 (version-major+minor version) "/"
7588 name "-" version ".tar.xz"))
7589 (sha256
7590 (base32
7591 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7592 (build-system glib-or-gtk-build-system)
7593 (arguments
7594 '(#:phases
7595 (modify-phases %standard-phases
7596 (add-before
7597 'build 'pre-build
7598 (lambda* (#:key outputs #:allow-other-keys)
7599 (let ((out (assoc-ref outputs "out")))
7600 ;; Use absolute shared library path in Caribou-1.0.typelib.
7601 (substitute* "libcaribou/Makefile"
7602 (("--shared-library=libcaribou.so")
7603 (string-append "--shared-library="
7604 out "/lib/libcaribou.so")))
7605 #t)))
7606 (add-after 'install 'wrap-programs
7607 (lambda* (#:key outputs #:allow-other-keys)
7608 (let* ((out (assoc-ref outputs "out"))
7609 (python-path (getenv "PYTHONPATH"))
7610 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7611 (for-each
7612 (lambda (prog)
7613 (wrap-program prog
7614 `("PYTHONPATH" ":" prefix (,python-path))
7615 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7616 (list (string-append out "/bin/caribou-preferences")
7617 (string-append out "/libexec/antler-keyboard"))))
7618 #t)))))
7619 (native-inputs
7620 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7621 ("gobject-introspection" ,gobject-introspection)
7622 ("intltool" ,intltool)
7623 ("pkg-config" ,pkg-config)
7624 ("python" ,python)
7625 ("vala" ,vala)
7626 ("xsltproc" ,libxslt)))
7627 (propagated-inputs
7628 ;; caribou-1.0.pc refers to all these.
7629 `(("libgee" ,libgee)
7630 ("libxklavier" ,libxklavier)
7631 ("libxtst" ,libxtst)
7632 ("gtk+" ,gtk+)))
7633 (inputs
7634 `(("clutter" ,clutter)
7635 ("dconf" ,dconf)
7636 ("gtk+-2" ,gtk+-2)
7637 ("python-pygobject" ,python-pygobject)))
7638 (synopsis "Text entry and UI navigation application")
7639 (home-page "https://wiki.gnome.org/Projects/Caribou")
7640 (description
7641 "Caribou is an input assistive technology intended for switch and pointer
7642 users.")
7643 (license license:lgpl2.1)))
7644
7645 (define-public network-manager
7646 (package
7647 (name "network-manager")
7648 (version "1.24.0")
7649 (source (origin
7650 (method url-fetch)
7651 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7652 (version-major+minor version) "/"
7653 "NetworkManager-" version ".tar.xz"))
7654 (patches (search-patches "network-manager-plugin-path.patch"))
7655 (sha256
7656 (base32
7657 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7658 (modules '((guix build utils)))
7659 (snippet
7660 '(begin
7661 (substitute* "src/devices/wwan/nm-modem-manager.c"
7662 (("systemd") "elogind"))
7663 #t))))
7664 (build-system meson-build-system)
7665 (outputs '("out"
7666 "doc")) ; 8 MiB of gtk-doc HTML
7667 (arguments
7668 `(#:configure-flags
7669 (let ((out (assoc-ref %outputs "out"))
7670 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7671 "/sbin/dhclient")))
7672 (list
7673 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7674 ;; component.
7675 (string-append "-Dc_link_args=-Wl,-rpath="
7676 out "/lib:"
7677 out "/lib/NetworkManager/" ,version)
7678 "-Dsystemd_journal=false"
7679 "-Dsession_tracking=elogind"
7680 "-Dsuspend_resume=elogind"
7681 "-Dsystemdsystemunitdir=no"
7682 "-Dsession_tracking_consolekit=false"
7683 "-Ddhcpcd=no"
7684 "-Ddhcpcanon=no"
7685 "-Dcrypto=gnutls"
7686 "-Diwd=true"
7687 "-Dlibaudit=yes"
7688 "-Dqt=false"
7689 "-Ddocs=true"
7690 "--sysconfdir=/etc"
7691 "--localstatedir=/var"
7692 (string-append "-Dudev_dir="
7693 out "/lib/udev")
7694 (string-append "-Ddbus_conf_dir="
7695 out "/etc/dbus-1/system.d")
7696
7697 (string-append "-Ddhclient=" dhclient)))
7698 #:phases
7699 (modify-phases %standard-phases
7700 (add-before 'configure 'pre-configure
7701 (lambda _
7702 ;; These tests try to test aspects of network-manager's
7703 ;; functionality within restricted containers, but they don't
7704 ;; cope with being already in the Guix build jail as that jail
7705 ;; lacks some features that they would like to proxy over (like
7706 ;; a /sys mount).
7707 (substitute* "src/platform/tests/meson.build"
7708 ((".*test-address-linux.*") "")
7709 ((".*test-cleanup-linux.*") "")
7710 ((".*test-link-linux.*") "")
7711 ((".*test-route-linux.*") ""))
7712 (substitute* "src/devices/tests/meson.build"
7713 ((".*test-acd.*") "")
7714 ((".*test-lldp.*") ""))
7715 #t))
7716 (add-after 'unpack 'patch-docbook-xml
7717 (lambda* (#:key inputs #:allow-other-keys)
7718 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7719 "/xml/dtd/docbook")))
7720 (substitute* (find-files "." ".*\\.(xsl|xml)")
7721 (("http://.*/docbookx\\.dtd")
7722 (string-append xmldoc "/docbookx.dtd")))
7723 #t)))
7724 (add-before 'check 'pre-check
7725 (lambda _
7726 ;; For the missing /etc/machine-id.
7727 (setenv "DBUS_FATAL_WARNINGS" "0")
7728 #t))
7729 (add-before 'install 'no-polkit-magic
7730 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7731 (lambda _
7732 (setenv "PKEXEC_UID" "something")
7733 #t))
7734 (add-after 'install 'move-doc
7735 (lambda* (#:key outputs #:allow-other-keys)
7736 (let ((out (assoc-ref outputs "out"))
7737 (doc (assoc-ref outputs "doc")))
7738 (mkdir-p (string-append doc "/share"))
7739 (for-each (lambda (directory)
7740 (copy-recursively (string-append out directory)
7741 (string-append doc directory))
7742 (delete-file-recursively
7743 (string-append out directory)))
7744 '("/share/doc" "/share/gtk-doc"))
7745 #t))))))
7746 (propagated-inputs
7747 `(("glib" ,glib)))
7748 (native-inputs
7749 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7750 ("gtk-doc" ,gtk-doc)
7751 ("gobject-introspection" ,gobject-introspection)
7752 ("docbook-xml" ,docbook-xml)
7753 ("docbook-xsl" ,docbook-xsl)
7754 ("intltool" ,intltool)
7755 ("libxslt" ,libxslt)
7756 ("libxml2" ,libxml2)
7757 ("pkg-config" ,pkg-config)
7758 ("vala" ,vala)
7759 ;; For testing.
7760 ("python" ,python-wrapper)
7761 ("python-dbus" ,python-dbus)
7762 ("python-pygobject" ,python-pygobject)))
7763 (inputs
7764 `(("curl" ,curl)
7765 ("cyrus-sasl" ,cyrus-sasl)
7766 ("dbus-glib" ,dbus-glib)
7767 ("dnsmasq" ,dnsmasq)
7768 ("eudev" ,eudev)
7769 ("gnutls" ,gnutls)
7770 ("iptables" ,iptables)
7771 ("isc-dhcp" ,isc-dhcp)
7772 ("iwd" ,iwd) ; wpa_supplicant alternative
7773 ("jansson" ,jansson)
7774 ("libaudit" ,audit)
7775 ("libgcrypt" ,libgcrypt)
7776 ("libgudev" ,libgudev)
7777 ("libndp" ,libndp)
7778 ("libnl" ,libnl)
7779 ("libsoup" ,libsoup)
7780 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7781 ("modem-manager" ,modem-manager)
7782 ("newt" ,newt) ;for the 'nmtui' console interface
7783 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7784 ("polkit" ,polkit)
7785 ("ppp" ,ppp)
7786 ("readline" ,readline)
7787 ("util-linux" ,util-linux)
7788 ("elogind" ,elogind)))
7789 (synopsis "Network connection manager")
7790 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7791 (description
7792 "NetworkManager is a system network service that manages your network
7793 devices and connections, attempting to keep active network connectivity when
7794 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7795 devices, and provides VPN integration with a variety of different VPN
7796 services.")
7797 ;; “This NetworkManager project consists of the daemon, client tools, and
7798 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7799 ;; GPL-2.0+.”
7800 (license (list license:gpl2+
7801 license:lgpl2.1+))
7802 (properties '((upstream-name . "NetworkManager")))))
7803
7804 (define-public network-manager-openvpn
7805 (package
7806 (name "network-manager-openvpn")
7807 (version "1.8.12")
7808 (source (origin
7809 (method url-fetch)
7810 (uri (string-append
7811 "mirror://gnome/sources/NetworkManager-openvpn/"
7812 (version-major+minor version)
7813 "/NetworkManager-openvpn-" version ".tar.xz"))
7814 (sha256
7815 (base32
7816 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7817 (build-system gnu-build-system)
7818 (arguments
7819 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7820 #:phases
7821 (modify-phases %standard-phases
7822 (add-after 'configure 'patch-path
7823 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7824 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7825 "/sbin/openvpn"))
7826 (modprobe (string-append (assoc-ref inputs "kmod")
7827 "/bin/modprobe"))
7828 (pretty-ovpn (string-append "\"" ovpn "\"")))
7829 (for-each
7830 (lambda (file)
7831 (substitute* file
7832 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7833 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7834 (("\"/sbin/openvpn\"") pretty-ovpn)
7835 (("/sbin/modprobe") modprobe)))
7836 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7837 #t)))))
7838 (native-inputs
7839 `(("pkg-config" ,pkg-config)
7840 ("intltool" ,intltool)))
7841 (inputs
7842 `(("gtk+" ,gtk+)
7843 ("kmod" ,kmod)
7844 ("openvpn" ,openvpn)
7845 ("network-manager" ,network-manager)
7846 ("libnma" ,libnma)
7847 ("libsecret" ,libsecret)))
7848 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7849 (synopsis "OpenVPN plug-in for NetworkManager")
7850 (description
7851 "This extension of NetworkManager allows it to take care of connections
7852 to virtual private networks (VPNs) via OpenVPN.")
7853 (license license:gpl2+)
7854 (properties `((upstream-name . "NetworkManager-openvpn")))))
7855
7856 (define-public network-manager-vpnc
7857 (package
7858 (name "network-manager-vpnc")
7859 (version "1.2.6")
7860 (source (origin
7861 (method url-fetch)
7862 (uri (string-append
7863 "mirror://gnome/sources/NetworkManager-vpnc/"
7864 (version-major+minor version)
7865 "/NetworkManager-vpnc-" version ".tar.xz"))
7866 (sha256
7867 (base32
7868 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7869 (build-system gnu-build-system)
7870 (arguments
7871 `(#:configure-flags '("--enable-absolute-paths"
7872 "--localstatedir=/var"
7873 ;; libnm-glib has been removed from network-manager
7874 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7875 "--with-libnm-glib=no")
7876 #:phases
7877 (modify-phases %standard-phases
7878 (add-after 'configure 'patch-path
7879 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7880 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7881 "/sbin/vpnc"))
7882 (modprobe (string-append (assoc-ref inputs "kmod")
7883 "/bin/modprobe"))
7884 (pretty-ovpn (string-append "\"" vpnc "\"")))
7885 (substitute* "src/nm-vpnc-service.c"
7886 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7887 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7888 (("\"/sbin/vpnc\"") pretty-ovpn)
7889 (("/sbin/modprobe") modprobe)))
7890 #t)))))
7891 (native-inputs
7892 `(("pkg-config" ,pkg-config)
7893 ("intltool" ,intltool)))
7894 (inputs
7895 `(("gtk+" ,gtk+)
7896 ("kmod" ,kmod)
7897 ("vpnc" ,vpnc)
7898 ("network-manager" ,network-manager)
7899 ("libnma" ,libnma)
7900 ("libsecret" ,libsecret)))
7901 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7902 (synopsis "VPNC plug-in for NetworkManager")
7903 (description
7904 "Support for configuring virtual private networks based on VPNC.
7905 Compatible with Cisco VPN concentrators configured to use IPsec.")
7906 (license license:gpl2+)
7907 (properties `((upstream-name . "NetworkManager-vpnc")))))
7908
7909 (define-public network-manager-openconnect
7910 (package
7911 (name "network-manager-openconnect")
7912 (version "1.2.6")
7913 (source (origin
7914 (method url-fetch)
7915 (uri (string-append
7916 "mirror://gnome/sources/NetworkManager-openconnect/"
7917 (version-major+minor version)
7918 "/NetworkManager-openconnect-" version ".tar.xz"))
7919 (sha256
7920 (base32
7921 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7922 (build-system gnu-build-system)
7923 (arguments
7924 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7925 #:phases
7926 (modify-phases %standard-phases
7927 (add-after 'configure 'patch-path
7928 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7929 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7930 "/sbin/openconnect"))
7931 (modprobe (string-append (assoc-ref inputs "kmod")
7932 "/bin/modprobe"))
7933 (pretty-ovpn (string-append "\"" openconnect "\"")))
7934 (substitute* "src/nm-openconnect-service.c"
7935 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7936 (("/sbin/modprobe") modprobe)))
7937 #t)))))
7938 (native-inputs
7939 `(("intltool" ,intltool)
7940 ("libnma" ,libnma)
7941 ("pkg-config" ,pkg-config)))
7942 (inputs
7943 `(("gcr" ,gcr)
7944 ("gtk+" ,gtk+)
7945 ("kmod" ,kmod)
7946 ("libsecret" ,libsecret)
7947 ("libxml2" ,libxml2)
7948 ("lz4" ,lz4)
7949 ("network-manager" ,network-manager)
7950 ("openconnect" ,openconnect)))
7951 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7952 (synopsis "OpenConnect plug-in for NetworkManager")
7953 (description
7954 "This extension of NetworkManager allows it to take care of connections
7955 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7956 Cisco's AnyConnect SSL VPN.")
7957 (license license:gpl2+)
7958 (properties `((upstream-name . "NetworkManager-openconnect")
7959
7960 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7961 ;; file refers to account "nm-openconnect". Specify it here
7962 ;; so that 'network-manager-service-type' creates it.
7963 (user-accounts . ("nm-openconnect"))))))
7964
7965 (define-public mobile-broadband-provider-info
7966 (package
7967 (name "mobile-broadband-provider-info")
7968 (version "20190116")
7969 (source (origin
7970 (method url-fetch)
7971 (uri (string-append
7972 "mirror://gnome/sources/"
7973 "mobile-broadband-provider-info/" version "/"
7974 "mobile-broadband-provider-info-" version ".tar.xz"))
7975 (sha256
7976 (base32
7977 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7978 (build-system gnu-build-system)
7979 (arguments
7980 `(#:tests? #f)) ; no tests
7981 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7982 (synopsis "Database of broadband connection configuration")
7983 (description "Database of broadband connection configuration.")
7984 (license license:public-domain)))
7985
7986 (define-public network-manager-applet
7987 (package
7988 (name "network-manager-applet")
7989 (version "1.20.0")
7990 (source (origin
7991 (method url-fetch)
7992 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7993 (version-major+minor version) "/"
7994 "network-manager-applet-" version ".tar.xz"))
7995 (sha256
7996 (base32
7997 "0lsjkbv66hn7acl2pg9h6hz4b700zzv4cjwrwjvy7043blw0bcla"))))
7998 (build-system meson-build-system)
7999 (arguments
8000 '(#:glib-or-gtk? #t
8001 #:configure-flags
8002 '("-Dappindicator=yes")))
8003 (native-inputs
8004 `(("intltool" ,intltool)
8005 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
8006 ("gobject-introspection" ,gobject-introspection)
8007 ("gtk-doc" ,gtk-doc)
8008 ("pkg-config" ,pkg-config)))
8009 (propagated-inputs
8010 ;; libnm-gtk.pc refers to all these.
8011 `(("dbus-glib" ,dbus-glib)
8012 ("gtk+" ,gtk+)
8013 ("network-manager" ,network-manager)
8014 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8015 ("libnma" ,libnma)))
8016 (inputs
8017 `(("gcr" ,gcr)
8018 ("libappindicator" ,libappindicator)
8019 ("libgudev" ,libgudev)
8020 ("libnotify" ,libnotify)
8021 ("libsecret" ,libsecret)
8022 ("libselinux" ,libselinux)
8023 ("jansson" ,jansson) ; for team support
8024 ("modem-manager" ,modem-manager)))
8025 (synopsis "Applet for managing network connections")
8026 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8027 (description
8028 "This package contains a systray applet for NetworkManager. It displays
8029 the available networks and allows users to easily switch between them.")
8030 (license license:gpl2+)))
8031
8032 (define-public libxml++
8033 (package
8034 (name "libxml++")
8035 (version "3.0.1")
8036 (source (origin
8037 (method url-fetch)
8038 (uri (string-append "mirror://gnome/sources/" name "/"
8039 (version-major+minor version) "/"
8040 name "-" version ".tar.xz"))
8041 (sha256
8042 (base32
8043 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
8044 (build-system gnu-build-system)
8045 ;; libxml++-3.0.pc refers to all these.
8046 (propagated-inputs
8047 `(("libxml2" ,libxml2)
8048 ("glibmm" ,glibmm)))
8049 (native-inputs
8050 `(("perl" ,perl)
8051 ("pkg-config" ,pkg-config)))
8052 (home-page "http://libxmlplusplus.sourceforge.net/")
8053 (synopsis "C++ wrapper for XML parser library libxml2")
8054 (description
8055 "This package provides a C++ wrapper for the XML parser library
8056 libxml2.")
8057 (license license:lgpl2.1+)))
8058
8059 (define-public libxml++-2
8060 (package
8061 (inherit libxml++)
8062 (name "libxml++")
8063 (version "2.40.1")
8064 (source (origin
8065 (method url-fetch)
8066 (uri (string-append "mirror://gnome/sources/" name "/"
8067 (version-major+minor version) "/"
8068 name "-" version ".tar.xz"))
8069 (sha256
8070 (base32
8071 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
8072
8073 (define-public gdm
8074 (package
8075 (name "gdm")
8076 (version "3.34.1")
8077 (source (origin
8078 (method url-fetch)
8079 (uri (string-append "mirror://gnome/sources/" name "/"
8080 (version-major+minor version) "/"
8081 name "-" version ".tar.xz"))
8082 (sha256
8083 (base32
8084 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
8085 (patches (search-patches "gdm-default-session.patch"))))
8086 (build-system glib-or-gtk-build-system)
8087 (arguments
8088 '(#:configure-flags
8089 `("--without-plymouth"
8090 "--disable-systemd-journal"
8091
8092 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8093 ;; instead of having to replace it (i.e., stopping the mingetty
8094 ;; service for TTY 1 before starting GDM).
8095 "--with-initial-vt=7"
8096
8097 ;; Use '/etc/environment' for locale settings instead of the
8098 ;; systemd-specific '/etc/locale.conf'.
8099 "--with-lang-file=/etc/environment"
8100
8101 ,(string-append "--with-udevdir="
8102 (assoc-ref %outputs "out") "/lib/udev")
8103
8104 "--localstatedir=/var"
8105 ,(string-append "--with-default-path="
8106 (string-join '("/run/setuid-programs"
8107 "/run/current-system/profile/bin"
8108 "/run/current-system/profile/sbin")
8109 ":"))
8110 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8111 ;; XDG_DATA_DIRS so that it finds its schemas.
8112 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
8113 #:phases
8114 (modify-phases %standard-phases
8115 (add-before
8116 'configure 'pre-configure
8117 (lambda* (#:key inputs outputs #:allow-other-keys)
8118 ;; We don't have <systemd/sd-daemon.h>.
8119 (substitute* '("common/gdm-log.c"
8120 "daemon/gdm-server.c"
8121 "daemon/gdm-session-worker.c"
8122 "daemon/gdm-session-worker-job.c")
8123 (("#include <systemd/sd-daemon\\.h>") ""))
8124 ;; Use elogind for sd-login.
8125 (substitute* '("common/gdm-common.c"
8126 "daemon/gdm-local-display-factory.c"
8127 "daemon/gdm-manager.c"
8128 "libgdm/gdm-user-switching.c")
8129 (("#include <systemd/sd-login\\.h>")
8130 "#include <elogind/sd-login.h>"))
8131 ;; Check for elogind.
8132 (substitute* '("configure")
8133 (("libsystemd")
8134 "libelogind"))
8135 ;; Look for system-installed sessions in
8136 ;; /run/current-system/profile/share.
8137 (substitute* '("libgdm/gdm-sessions.c"
8138 "daemon/gdm-session.c"
8139 "daemon/gdm-display.c"
8140 "daemon/gdm-launch-environment.c")
8141 (("DATADIR \"/x")
8142 "\"/run/current-system/profile/share/x")
8143 (("DATADIR \"/wayland")
8144 "\"/run/current-system/profile/share/wayland")
8145 (("DATADIR \"/gnome")
8146 "\"/run/current-system/profile/share/gnome"))
8147 (let ((propagate '("GDM_CUSTOM_CONF"
8148 "GDM_DBUS_DAEMON"
8149 "GDM_X_SERVER"
8150 "GDM_X_SESSION"
8151 ;; XXX: Remove this once GNOME Shell is
8152 ;; a dependency of GDM.
8153 "XDG_DATA_DIRS")))
8154 (substitute* "daemon/gdm-session.c"
8155 (("set_up_session_environment \\(self\\);")
8156 (apply string-append
8157 "set_up_session_environment (self);\n"
8158 (map (lambda (name)
8159 (string-append
8160 "gdm_session_set_environment_variable "
8161 "(self, \"" name "\","
8162 "g_getenv (\"" name "\"));\n"))
8163 propagate)))))
8164 ;; Find the configuration file using an environment variable.
8165 (substitute* '("common/gdm-settings.c")
8166 (("GDM_CUSTOM_CONF")
8167 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8168 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8169 " : GDM_CUSTOM_CONF)")))
8170 ;; Use service-supplied path to X.
8171 (substitute* '("daemon/gdm-server.c")
8172 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8173 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8174 (substitute* '("daemon/gdm-wayland-session.c"
8175 "daemon/gdm-x-session.c")
8176 (("\"dbus-daemon\"")
8177 "g_getenv (\"GDM_DBUS_DAEMON\")")
8178 (("X_SERVER")
8179 "g_getenv (\"GDM_X_SERVER\")")
8180 (("GDMCONFDIR \"/Xsession\"")
8181 "g_getenv (\"GDM_X_SESSION\")"))
8182 ;; Use an absolute path for GNOME Session.
8183 (substitute* "daemon/gdm-launch-environment.c"
8184 (("\"gnome-session\"")
8185 (string-append "\"" (assoc-ref inputs "gnome-session")
8186 "/bin/gnome-session\"")))
8187 ;; Do not automatically select the placeholder session.
8188 (substitute* "daemon/gdm-session.c"
8189 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8190 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8191 "(g_strcmp0(search_dirs[i], \""
8192 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
8193 "\") == 0 && "
8194 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8195 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8196 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
8197 #t))
8198 ;; GDM requires that there be at least one desktop entry
8199 ;; file. This phase installs a hidden one that simply
8200 ;; fails. This enables users to use GDM with a
8201 ;; '~/.xsession' script with no other desktop entry files.
8202 ;; See <https://bugs.gnu.org/35068>.
8203 (add-after 'install 'install-placeholder-desktop-entry
8204 (lambda* (#:key inputs outputs #:allow-other-keys)
8205 (let* ((out (assoc-ref outputs "out"))
8206 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8207 (fail (string-append sessions "/fail.desktop")))
8208 (mkdir-p sessions)
8209 (with-output-to-file fail
8210 (lambda ()
8211 (for-each
8212 display
8213 '("[Desktop Entry]\n"
8214 "Encoding=UTF-8\n"
8215 "Type=Application\n"
8216 "Name=Fail\n"
8217 "Comment=This session fails immediately.\n"
8218 "NoDisplay=true\n"
8219 "Exec=false\n"))))
8220 #t)))
8221 ;; GDM needs GNOME Session to run these applications. We link
8222 ;; their autostart files in `share/gdm/greeter/autostart'
8223 ;; because GDM explicitly tells GNOME Session to look there.
8224 ;;
8225 ;; XXX: GNOME Shell should be linked here too, but currently
8226 ;; GNOME Shell depends on GDM.
8227 (add-after 'install 'link-autostart-files
8228 (lambda* (#:key inputs outputs #:allow-other-keys)
8229 (let* ((out (assoc-ref outputs "out"))
8230 (autostart (string-append out "/share/gdm/"
8231 "greeter/autostart"))
8232 (settings (assoc-ref inputs "gnome-settings-daemon")))
8233 (mkdir-p autostart)
8234 (with-directory-excursion autostart
8235 (for-each (lambda (desktop)
8236 (symlink desktop (basename desktop)))
8237 (find-files (string-append settings "/etc/xdg"))))
8238 #t))))))
8239 (native-inputs
8240 `(("dconf" ,dconf)
8241 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8242 ("gobject-introspection" ,gobject-introspection)
8243 ("intltool" ,intltool)
8244 ("itstool" ,itstool)
8245 ("pkg-config" ,pkg-config)
8246 ("xmllint" ,libxml2)))
8247 (inputs
8248 `(("accountsservice" ,accountsservice)
8249 ("check" ,check-0.14) ;for testing
8250 ("elogind" ,elogind)
8251 ("gnome-session" ,gnome-session)
8252 ("gnome-settings-daemon" ,gnome-settings-daemon)
8253 ("gtk+" ,gtk+)
8254 ("iso-codes" ,iso-codes)
8255 ("libcanberra" ,libcanberra)
8256 ("linux-pam" ,linux-pam)))
8257 (synopsis "Display manager for GNOME")
8258 (home-page "https://wiki.gnome.org/Projects/GDM/")
8259 (description
8260 "GNOME Display Manager is a system service that is responsible for
8261 providing graphical log-ins and managing local and remote displays.")
8262 (license license:gpl2+)))
8263
8264 (define-public libgtop
8265 (package
8266 (name "libgtop")
8267 (version "2.40.0")
8268 (source (origin
8269 (method url-fetch)
8270 (uri (string-append "mirror://gnome/sources/libgtop/"
8271 (version-major+minor version) "/"
8272 "libgtop-" version ".tar.xz"))
8273 (sha256
8274 (base32
8275 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8276 (build-system gnu-build-system)
8277 (native-inputs
8278 `(("gobject-introspection" ,gobject-introspection)
8279 ("intltool" ,intltool)
8280 ("perl" ,perl)
8281 ("pkg-config" ,pkg-config)))
8282 (propagated-inputs
8283 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8284 (synopsis "Portable system access library")
8285 (home-page "https://www.gnome.org/")
8286 (description
8287 "LibGTop is a library to get system specific data such as CPU and memory
8288 usage and information about running processes.")
8289 (license license:gpl2+)))
8290
8291 (define-public gnome-bluetooth
8292 (package
8293 (name "gnome-bluetooth")
8294 (version "3.34.2")
8295 (source (origin
8296 (method url-fetch)
8297 (uri (string-append "mirror://gnome/sources/" name "/"
8298 (version-major+minor version) "/"
8299 name "-" version ".tar.xz"))
8300 (sha256
8301 (base32
8302 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8303 (build-system meson-build-system)
8304 (native-inputs
8305 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8306 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8307 ("gobject-introspection" ,gobject-introspection)
8308 ("intltool" ,intltool)
8309 ("pkg-config" ,pkg-config)
8310 ("xmllint" ,libxml2)))
8311 (propagated-inputs
8312 ;; gnome-bluetooth-1.0.pc refers to all these.
8313 `(("glib" ,glib)
8314 ("gtk+" ,gtk+)))
8315 (inputs
8316 `(("eudev" ,eudev)
8317 ("libcanberra" ,libcanberra)
8318 ("libnotify" ,libnotify)))
8319 (synopsis "GNOME Bluetooth subsystem")
8320 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8321 (description
8322 "This package contains tools for managing and manipulating Bluetooth
8323 devices using the GNOME desktop.")
8324 (license license:lgpl2.1+)))
8325
8326 (define-public gnome-control-center
8327 (package
8328 (name "gnome-control-center")
8329 (version "3.34.2")
8330 (source (origin
8331 (method url-fetch)
8332 (uri (string-append "mirror://gnome/sources/" name "/"
8333 (version-major+minor version) "/"
8334 name "-" version ".tar.xz"))
8335 (sha256
8336 (base32
8337 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8338 (build-system meson-build-system)
8339 (arguments
8340 '(#:glib-or-gtk? #t
8341 #:configure-flags
8342 (list "-Dcheese=false"
8343 (string-append "-Dgnome_session_libexecdir="
8344 (assoc-ref %build-inputs "gnome-session")
8345 "/libexec"))
8346 #:phases
8347 (modify-phases %standard-phases
8348 (add-before 'configure 'patch-paths
8349 (lambda* (#:key inputs #:allow-other-keys)
8350 (let ((libc (assoc-ref inputs "libc"))
8351 (tzdata (assoc-ref inputs "tzdata"))
8352 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8353 (nm-applet (assoc-ref inputs "network-manager-applet"))
8354 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8355 (substitute* "panels/datetime/tz.h"
8356 (("/usr/share/zoneinfo/zone.tab")
8357 (string-append tzdata "/share/zoneinfo/zone.tab")))
8358 (substitute* "tests/datetime/test-endianess.c"
8359 (("/usr/share/locale")
8360 (string-append libc "/share/locale")))
8361 (substitute* "panels/region/cc-region-panel.c"
8362 (("\"gkbd-keyboard-display")
8363 (string-append "\"" libgnomekbd
8364 "/bin/gkbd-keyboard-display")))
8365 (substitute* '("panels/network/net-device-wifi.c"
8366 "panels/network/net-device.c"
8367 "panels/network/connection-editor/net-connection-editor.c")
8368 (("\"nm-connection-editor")
8369 (string-append "\"" nm-applet
8370 "/bin/nm-connection-editor")))
8371 (substitute* '("panels/user-accounts/run-passwd.c")
8372 (("/usr/bin/passwd")
8373 "/run/setuid-programs/passwd"))
8374 (substitute* "panels/info/cc-info-overview-panel.c"
8375 (("DATADIR \"/gnome/gnome-version.xml\"")
8376 (string-append "\"" gnome-desktop
8377 "/share/gnome/gnome-version.xml\"")))
8378 #t)))
8379 (add-after 'unpack 'skip-gtk-update-icon-cache
8380 ;; Don't create 'icon-theme.cache'.
8381 (lambda _
8382 (substitute* "build-aux/meson/meson_post_install.py"
8383 (("gtk-update-icon-cache") (which "true")))
8384 #t)))))
8385 (native-inputs
8386 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8387 ("intltool" ,intltool)
8388 ("pkg-config" ,pkg-config)
8389 ("xsltproc" ,libxslt)
8390 ;; For tests
8391 ("hicolor-icon-theme" ,hicolor-icon-theme)
8392 ("python-dbusmock" ,python-dbusmock)
8393 ("xorg-server" ,xorg-server-for-tests)))
8394 (inputs
8395 `(("accountsservice" ,accountsservice)
8396 ("clutter-gtk" ,clutter-gtk)
8397 ("colord-gtk" ,colord-gtk)
8398 ("cups" ,cups)
8399 ("dconf" ,dconf)
8400 ("docbook-xsl" ,docbook-xsl)
8401 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8402 ("gnome-bluetooth" ,gnome-bluetooth)
8403 ("gnome-desktop" ,gnome-desktop)
8404 ("gnome-online-accounts" ,gnome-online-accounts)
8405 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8406 ("gnome-session" ,gnome-session)
8407 ("gnome-settings-daemon" ,gnome-settings-daemon)
8408 ("grilo" ,grilo)
8409 ("gsound" ,gsound)
8410 ("ibus" ,ibus)
8411 ("libcanberra" ,libcanberra)
8412 ("libgnomekbd" ,libgnomekbd)
8413 ("libgudev" ,libgudev)
8414 ("libgtop" ,libgtop)
8415 ("libnma" ,libnma)
8416 ("libpwquality" ,libpwquality)
8417 ("libsecret" ,libsecret)
8418 ("libsoup" ,libsoup)
8419 ("libxml2" ,libxml2)
8420 ("libwacom" ,libwacom)
8421 ("mesa" ,mesa)
8422 ("mit-krb5" ,mit-krb5)
8423 ("modem-manager" ,modem-manager)
8424 ("network-manager-applet" ,network-manager-applet)
8425 ("polkit" ,polkit)
8426 ("pulseaudio" ,pulseaudio)
8427 ("smbclient" ,samba)
8428 ("tzdata" ,tzdata)
8429 ("udisks" ,udisks)
8430 ("upower" ,upower)))
8431 (synopsis "Utilities to configure the GNOME desktop")
8432 (home-page "https://www.gnome.org/")
8433 (description
8434 "This package contains configuration applets for the GNOME desktop,
8435 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8436 properties, sound setup, desktop theme and background, user interface
8437 properties, screen resolution, and other GNOME parameters.")
8438 (license license:gpl2+)))
8439
8440 (define-public gnome-shell
8441 (package
8442 (name "gnome-shell")
8443 (version "3.34.2")
8444 (source (origin
8445 (method url-fetch)
8446 (uri (string-append "mirror://gnome/sources/" name "/"
8447 (version-major+minor version) "/"
8448 name "-" version ".tar.xz"))
8449 (sha256
8450 (base32
8451 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
8452 (patches (search-patches "gnome-shell-theme.patch"
8453 "gnome-shell-disable-test.patch"))
8454 (modules '((guix build utils)))
8455 (snippet
8456 #~(begin
8457 ;; Copy images for use on the GDM log-in screen.
8458 (copy-file #$(file-append %artwork-repository
8459 "/slim/0.x/background.png")
8460 "data/theme/guix-background.png")
8461 (copy-file #$(file-append %artwork-repository
8462 "/logo/Guix-horizontal-white.svg")
8463 "data/theme/guix-logo.svg")
8464 #t))))
8465 (build-system meson-build-system)
8466 (arguments
8467 `(#:glib-or-gtk? #t
8468 #:disallowed-references ((,glib "bin")
8469 ,inkscape ,libxslt
8470 ,ruby-sass)
8471 #:configure-flags
8472 (list "-Dsystemd=false"
8473 ;; Otherwise, the RUNPATH will lack the final path component.
8474 (string-append "-Dc_link_args=-Wl,-rpath="
8475 (assoc-ref %outputs "out")
8476 "/lib/gnome-shell"))
8477
8478 #:modules ((guix build meson-build-system)
8479 (guix build utils)
8480 (srfi srfi-1))
8481
8482 #:phases
8483 (modify-phases %standard-phases
8484 (add-after 'unpack 'fix-keysdir
8485 (lambda* (#:key outputs #:allow-other-keys)
8486 (let* ((out (assoc-ref outputs "out"))
8487 (keysdir (string-append
8488 out "/share/gnome-control-center/keybindings")))
8489 (substitute* "meson.build"
8490 (("keysdir =.*")
8491 (string-append "keysdir = '" keysdir "'\n")))
8492 #t)))
8493 (add-before 'configure 'convert-logo-to-png
8494 (lambda* (#:key inputs #:allow-other-keys)
8495 ;; Convert the logo from SVG to PNG.
8496 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8497 "data/theme/guix-logo.svg")))
8498 (add-before 'configure 'record-absolute-file-names
8499 (lambda* (#:key inputs #:allow-other-keys)
8500 (substitute* "js/misc/ibusManager.js"
8501 (("'ibus-daemon'")
8502 (string-append "'" (assoc-ref inputs "ibus")
8503 "/bin/ibus-daemon'")))
8504 (substitute* "js/ui/status/keyboard.js"
8505 (("'gkbd-keyboard-display'")
8506 (string-append "'" (assoc-ref inputs "libgnomekbd")
8507 "/bin/gkbd-keyboard-display'")))
8508 #t))
8509 (add-before 'check 'pre-check
8510 (lambda* (#:key inputs #:allow-other-keys)
8511 ;; Tests require a running X server.
8512 (system "Xvfb :1 &")
8513 (setenv "DISPLAY" ":1")
8514 #t))
8515 (add-after 'install 'wrap-programs
8516 (lambda* (#:key inputs outputs #:allow-other-keys)
8517 (let ((out (assoc-ref outputs "out"))
8518 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8519 (python-path (getenv "PYTHONPATH")))
8520 (wrap-program (string-append out "/bin/gnome-shell")
8521 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8522 ;; FIXME: gnome-shell loads these libraries with unqualified
8523 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8524 ;; alternative might be to patch gnome-shell.
8525 `("LD_LIBRARY_PATH" ":" prefix
8526 ,(map (lambda (pkg)
8527 (string-append (assoc-ref inputs pkg) "/lib"))
8528 '("gdk-pixbuf"
8529 "gnome-bluetooth" "librsvg" "libgweather"))))
8530 (for-each
8531 (lambda (prog)
8532 (wrap-program (string-append out "/bin/" prog)
8533 `("PYTHONPATH" ":" prefix (,python-path))
8534 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8535 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8536 #t)))
8537 (replace 'glib-or-gtk-wrap
8538 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8539 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8540 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8541 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8542 ;; phase. Fix that since we don't need these.
8543 (wrap #:inputs (fold alist-delete inputs
8544 '("inkscape" "intltool" "glib:bin"))
8545 #:outputs outputs)))))))
8546 (native-inputs
8547 `(("asciidoc" ,asciidoc)
8548 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8549 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8550 ("gobject-introspection" ,gobject-introspection)
8551 ("inkscape" ,inkscape)
8552 ("intltool" ,intltool)
8553 ("pkg-config" ,pkg-config)
8554 ("python" ,python)
8555 ("ruby-sass" ,ruby-sass)
8556 ("sassc" ,sassc)
8557 ("xsltproc" ,libxslt)
8558 ;; For tests
8559 ("xorg-server" ,xorg-server-for-tests)))
8560 (inputs
8561 `(("accountsservice" ,accountsservice)
8562 ("caribou" ,caribou)
8563 ("docbook-xsl" ,docbook-xsl)
8564 ("evolution-data-server" ,evolution-data-server)
8565 ("gcr" ,gcr)
8566 ("gdm" ,gdm)
8567 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8568 ("gjs" ,gjs)
8569 ("gnome-autoar" ,gnome-autoar)
8570 ("gnome-bluetooth" ,gnome-bluetooth)
8571 ("gnome-desktop" ,gnome-desktop)
8572 ("gnome-settings-daemon" ,gnome-settings-daemon)
8573 ("gst-plugins-base" ,gst-plugins-base)
8574 ("ibus" ,ibus)
8575 ("libcanberra" ,libcanberra)
8576 ("libcroco" ,libcroco)
8577 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8578 ("libgweather" ,libgweather)
8579 ("libnma" ,libnma)
8580 ("libsoup" ,libsoup)
8581 ("mesa-headers" ,mesa-headers)
8582 ("mutter" ,mutter)
8583 ("network-manager-applet" ,network-manager-applet)
8584 ("polkit" ,polkit)
8585 ("pulseaudio" ,pulseaudio)
8586 ("python-pygobject" ,python-pygobject)
8587 ("startup-notification" ,startup-notification)
8588 ("telepathy-logger" ,telepathy-logger)
8589 ("upower" ,upower)
8590 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8591 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8592 ("librsvg" ,librsvg)
8593 ("geoclue" ,geoclue)))
8594 (synopsis "Desktop shell for GNOME")
8595 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8596 (description
8597 "GNOME Shell provides core user interface functions for the GNOME desktop,
8598 like switching to windows and launching applications.")
8599 (license license:gpl2+)))
8600
8601 (define-public gtk-vnc
8602 (package
8603 (name "gtk-vnc")
8604 (version "1.0.0")
8605 (source
8606 (origin
8607 (method url-fetch)
8608 (uri
8609 (string-append "mirror://gnome/sources/" name "/"
8610 (version-major+minor version) "/"
8611 name "-" version ".tar.xz"))
8612 (sha256
8613 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8614 (build-system meson-build-system)
8615 (arguments
8616 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8617 (native-inputs
8618 `(("gjs" ,gjs)
8619 ("glib:bin" ,glib "bin")
8620 ("gobject-introspection" ,gobject-introspection)
8621 ("intltool" ,intltool)
8622 ("node" ,node)
8623 ("perl" ,perl)
8624 ("pkg-config" ,pkg-config)
8625 ("python" ,python-wrapper)
8626 ("vala" ,vala)))
8627 (inputs
8628 `(("cairo" ,cairo)
8629 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8630 ("glib" ,glib)
8631 ("gnutls" ,gnutls)
8632 ("libgcrypt" ,libgcrypt)
8633 ("libsasl" ,cyrus-sasl)
8634 ("pulseaudio" ,pulseaudio)
8635 ("x11" ,libx11)
8636 ("zlib" ,zlib)))
8637 (propagated-inputs
8638 `(("gtk+" ,gtk+)))
8639 (synopsis "VNC client viewer widget for GTK+")
8640 (description "GTK-VNC is a project providing client side APIs for the RFB
8641 protocol / VNC remote desktop technology. It is built using coroutines allowing
8642 it to be completely asynchronous while remaining single threaded. It provides a
8643 core C library, and bindings for Python (PyGTK).")
8644 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8645 (license license:lgpl2.1+)))
8646
8647 (define-public gnome-autoar
8648 (package
8649 (name "gnome-autoar")
8650 (version "0.3.0")
8651 (source (origin
8652 (method url-fetch)
8653 (uri (string-append "mirror://gnome/sources/" name "/"
8654 (version-major+minor version) "/"
8655 name "-" version ".tar.xz"))
8656 (sha256
8657 (base32
8658 "0ssqckfkyldwld88zizy446y2359rg40lnrcm3sjpjhc2b015hgj"))))
8659 (build-system glib-or-gtk-build-system)
8660 (native-inputs
8661 `(("gobject-introspection" ,gobject-introspection)
8662 ("pkg-config" ,pkg-config)))
8663 (propagated-inputs
8664 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8665 (inputs
8666 `(("gtk+" ,gtk+)))
8667 (synopsis "Archives integration support for GNOME")
8668 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8669 (description
8670 "GNOME Autoar is a library which makes creating and extracting archives
8671 easy, safe, and automatic.")
8672 (license license:lgpl2.1+)))
8673
8674 (define-public tracker
8675 (package
8676 (name "tracker")
8677 (version "2.3.5")
8678 (source (origin
8679 (method url-fetch)
8680 (uri (string-append "mirror://gnome/sources/tracker/"
8681 (version-major+minor version) "/"
8682 "tracker-" version ".tar.xz"))
8683 (sha256
8684 (base32
8685 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8686 (build-system meson-build-system)
8687 (arguments
8688 `(#:glib-or-gtk? #t
8689 #:configure-flags
8690 ;; Otherwise, the RUNPATH will lack the final path component.
8691 (list (string-append "-Dc_link_args=-Wl,-rpath="
8692 (assoc-ref %outputs "out") "/lib:"
8693 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8694 #:phases
8695 (modify-phases %standard-phases
8696 (add-before 'check 'pre-check
8697 (lambda _
8698 ;; Some tests expect to write to $HOME.
8699 (setenv "HOME" "/tmp")
8700 #t)))))
8701 (native-inputs
8702 `(("glib:bin" ,glib "bin")
8703 ("gobject-introspection" ,gobject-introspection)
8704 ("python-pygobject" ,python-pygobject)
8705 ("intltool" ,intltool)
8706 ("pkg-config" ,pkg-config)
8707 ("vala" ,vala)))
8708 (inputs
8709 `(("dbus" ,dbus)
8710 ("sqlite" ,sqlite)
8711 ("libxml2" ,libxml2)
8712 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8713 ("json-glib" ,json-glib)
8714 ("libsoup" ,libsoup)))
8715 (synopsis "Metadata database, indexer and search tool")
8716 (home-page "https://wiki.gnome.org/Projects/Tracker")
8717 (description
8718 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8719
8720 It is a middleware component aimed at desktop application developers who want
8721 their apps to browse and search user content. It's not designed to be used
8722 directly by desktop users, but it provides a commandline tool named
8723 @command{tracker} for the adventurous.
8724
8725 Tracker allows your application to instantly perform full-text searches across
8726 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8727 example. This is achieved by indexing the user's home directory in the
8728 background.
8729
8730 Tracker also allows your application to query and list content that the user
8731 has stored. For example, GNOME Music displays all the music files that are
8732 found by Tracker. This means that GNOME Music doesn't need to maintain a
8733 database of its own.
8734
8735 If you need to go beyond simple searches, Tracker is also a linked data
8736 endpoint and it understands SPARQL. ")
8737 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8738 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8739 ;; libstemmer is bsd-3 and the rest is gpl2+.
8740 (license (list license:gpl2+
8741 license:bsd-3
8742 license:lgpl2.1+))))
8743
8744 (define-public tracker-miners
8745 (package
8746 (name "tracker-miners")
8747 (version "2.3.4")
8748 (source (origin
8749 (method url-fetch)
8750 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8751 (version-major+minor version)
8752 "/tracker-miners-" version ".tar.xz"))
8753 (sha256
8754 (base32
8755 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8756 (build-system meson-build-system)
8757 (arguments
8758 `(#:glib-or-gtk? #t
8759 #:configure-flags
8760 (list "-Dminer_rss=false" ; libgrss is required.
8761 ;; Ensure the RUNPATH contains all installed library locations.
8762 (string-append "-Dc_link_args=-Wl,-rpath="
8763 (assoc-ref %outputs "out")
8764 "/lib/tracker-miners-2.0")
8765 ;; TODO: Enable functional tests. Currently, the following error
8766 ;; appears:
8767 ;; Exception: The functional tests require DConf to be the default
8768 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8769 "-Dfunctional_tests=false")))
8770 (native-inputs
8771 `(("dbus" ,dbus)
8772 ("intltool" ,intltool)
8773 ("glib:bin" ,glib "bin")
8774 ("gobject-introspection" ,gobject-introspection)
8775 ("pkg-config" ,pkg-config)
8776 ("python-pygobject" ,python-pygobject)))
8777 (inputs
8778 `(("exempi" ,exempi)
8779 ("ffmpeg" ,ffmpeg)
8780 ("flac" ,flac)
8781 ("giflib" ,giflib)
8782 ("glib" ,glib)
8783 ("gstreamer" ,gstreamer)
8784 ("icu4c" ,icu4c)
8785 ("libcue" ,libcue)
8786 ("libexif" ,libexif)
8787 ("libgsf" ,libgsf)
8788 ("libgxps" ,libgxps)
8789 ("libiptcdata" ,libiptcdata)
8790 ("libjpeg" ,libjpeg-turbo)
8791 ("libosinfo" ,libosinfo)
8792 ("libpng" ,libpng)
8793 ("libseccomp" ,libseccomp)
8794 ("libtiff" ,libtiff)
8795 ("libvorbis" ,libvorbis)
8796 ("libxml2" ,libxml2)
8797 ("poppler" ,poppler)
8798 ("taglib" ,taglib)
8799 ("totem-pl-parser" ,totem-pl-parser)
8800 ("tracker" ,tracker)
8801 ("upower" ,upower)
8802 ("zlib" ,zlib)))
8803 (synopsis "Metadata database, indexer and search tool")
8804 (home-page "https://wiki.gnome.org/Projects/Tracker")
8805 (description
8806 "Tracker is an advanced framework for first class objects with associated
8807 metadata and tags. It provides a one stop solution for all metadata, tags,
8808 shared object databases, search tools and indexing.")
8809 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8810 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8811 (license (list license:gpl2+
8812 license:lgpl2.1+
8813 license:lgpl2.0+))))
8814
8815 (define-public nautilus
8816 (package
8817 (name "nautilus")
8818 (version "3.34.2")
8819 (source (origin
8820 (method url-fetch)
8821 (uri (string-append "mirror://gnome/sources/" name "/"
8822 (version-major+minor version) "/"
8823 name "-" version ".tar.xz"))
8824 (sha256
8825 (base32
8826 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8827 (build-system meson-build-system)
8828 (arguments
8829 '(#:glib-or-gtk? #t
8830 #:phases
8831 (modify-phases %standard-phases
8832 (add-after 'unpack 'skip-gtk-update-icon-cache
8833 ;; Don't create 'icon-theme.cache'.
8834 (lambda _
8835 (substitute* "build-aux/meson/postinstall.py"
8836 (("gtk-update-icon-cache") "true"))
8837 #t)))
8838 ;; XXX: FAIL: check-nautilus
8839 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8840 #:tests? #f))
8841 (native-inputs
8842 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8843 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8844 ("gobject-introspection" ,gobject-introspection)
8845 ("intltool" ,intltool)
8846 ("pkg-config" ,pkg-config)))
8847 (inputs
8848 `(("dconf" ,dconf)
8849 ("gexiv2" ,gexiv2)
8850 ("gvfs" ,gvfs)
8851 ("exempi" ,exempi)
8852 ("gnome-desktop" ,gnome-desktop)
8853 ("gnome-autoar" ,gnome-autoar)
8854 ("gst-plugins-base" ,gst-plugins-base)
8855 ("libseccomp" ,libseccomp)
8856 ("libselinux" ,libselinux)
8857 ("tracker" ,tracker)
8858 ("tracker-miners" ,tracker-miners)
8859 ;; XXX: gtk+ is required by libnautilus-extension.pc
8860 ;;
8861 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8862 ;; package. See:
8863 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8864 ("gtk+" ,gtk+)
8865 ("libexif" ,libexif)
8866 ("libxml2" ,libxml2)))
8867 (synopsis "File manager for GNOME")
8868 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8869 (description
8870 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8871 design and behaviour, giving the user a simple way to navigate and manage its
8872 files.")
8873 (license license:gpl2+)))
8874
8875 (define-public baobab
8876 (package
8877 (name "baobab")
8878 (version "3.38.0")
8879 (source (origin
8880 (method url-fetch)
8881 (uri (string-append
8882 "mirror://gnome/sources/" name "/"
8883 (version-major+minor version) "/"
8884 name "-" version ".tar.xz"))
8885 (sha256
8886 (base32
8887 "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104"))))
8888 (build-system meson-build-system)
8889 (arguments
8890 '(#:glib-or-gtk? #t))
8891 (native-inputs
8892 `(("intltool" ,intltool)
8893 ("pkg-config" ,pkg-config)
8894 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8895 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8896 ("itstool" ,itstool)
8897 ("xmllint" ,libxml2)
8898 ("glib" ,glib "bin")
8899 ("vala" ,vala)))
8900 (inputs
8901 `(("gtk+" ,gtk+)))
8902 (synopsis "Disk usage analyzer for GNOME")
8903 (description
8904 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8905 usage in the GNOME desktop environment. It can easily scan device volumes or
8906 a specific user-requested directory branch (local or remote). Once the scan
8907 is complete it provides a graphical representation of each selected folder.")
8908 (home-page "https://wiki.gnome.org/Apps/Baobab")
8909 (license license:gpl2+)))
8910
8911 (define-public gnome-backgrounds
8912 (package
8913 (name "gnome-backgrounds")
8914 (version "3.34.0")
8915 (source
8916 (origin
8917 (method url-fetch)
8918 (uri (string-append "mirror://gnome/sources/" name "/"
8919 (version-major+minor version) "/"
8920 name "-" version ".tar.xz"))
8921 (sha256
8922 (base32
8923 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8924 (build-system meson-build-system)
8925 (native-inputs
8926 `(("intltool" ,intltool)))
8927 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8928 (synopsis "Background images for the GNOME desktop")
8929 (description
8930 "GNOME backgrounds package contains a collection of graphics files which
8931 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8932 the package creates the proper framework and directory structure so that you
8933 can add your own files to the collection.")
8934 (license (list license:gpl2+
8935 license:cc-by2.0
8936 license:cc-by-sa2.0
8937 license:cc-by-sa3.0))))
8938
8939 (define-public gnome-screenshot
8940 (package
8941 (name "gnome-screenshot")
8942 (version "3.34.0")
8943 (source
8944 (origin
8945 (method url-fetch)
8946 (uri (string-append "mirror://gnome/sources/" name "/"
8947 (version-major+minor version) "/"
8948 name "-" version ".tar.xz"))
8949 (sha256
8950 (base32
8951 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8952 (build-system meson-build-system)
8953 (arguments
8954 '(#:phases
8955 (modify-phases %standard-phases
8956 (add-after 'unpack 'skip-gtk-update-icon-cache
8957 ;; Don't create 'icon-theme.cache'.
8958 (lambda _
8959 (substitute* "build-aux/postinstall.py"
8960 (("gtk-update-icon-cache") "true"))
8961 #t)))))
8962 (native-inputs
8963 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8964 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8965 ("intltool" ,intltool)
8966 ("appstream-glib" ,appstream-glib)
8967 ("pkg-config" ,pkg-config)))
8968 (inputs
8969 `(("gtk+" ,gtk+)
8970 ("libcanberra" ,libcanberra)
8971 ("libx11" ,libx11)
8972 ("libxext" ,libxext)))
8973 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8974 (synopsis "Take pictures of your screen")
8975 (description
8976 "GNOME Screenshot is a utility used for taking screenshots of the entire
8977 screen, a window or a user defined area of the screen, with optional
8978 beautifying border effects.")
8979 (license license:gpl2+)))
8980
8981 (define-public dconf-editor
8982 (package
8983 (name "dconf-editor")
8984 (version "3.34.2")
8985 (source
8986 (origin
8987 (method url-fetch)
8988 (uri (string-append "mirror://gnome/sources/" name "/"
8989 (version-major+minor version) "/"
8990 name "-" version ".tar.xz"))
8991 (sha256
8992 (base32
8993 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8994 (build-system meson-build-system)
8995 (native-inputs
8996 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8997 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8998 ("intltool" ,intltool)
8999 ("pkg-config" ,pkg-config)
9000 ("vala" ,vala)))
9001 (inputs
9002 `(("dconf" ,dconf)
9003 ("gtk+" ,gtk+)
9004 ("libxml2" ,libxml2)))
9005 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9006 (synopsis "Graphical editor for GNOME's dconf configuration system")
9007 (description
9008 "Dconf-editor is a graphical tool for browsing and editing the dconf
9009 configuration system for GNOME. It allows users to configure desktop
9010 software that do not provide their own configuration interface.")
9011 (license license:lgpl2.1+)))
9012
9013 (define-public gnome-default-applications
9014 (package
9015 (name "gnome-default-applications")
9016 (version "0")
9017 (build-system trivial-build-system)
9018 (source #f)
9019 (propagated-inputs
9020 `(("nautilus" ,nautilus)
9021 ("evince" ,evince)))
9022 (arguments
9023 `(#:modules ((guix build utils))
9024 #:builder
9025 (begin
9026 (use-modules (guix build utils))
9027 (let* ((out (assoc-ref %outputs "out"))
9028 (apps (string-append out "/share/applications")))
9029 (mkdir-p apps)
9030 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9031 (lambda (port)
9032 (format port "[Default Applications]\n")
9033 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9034 (format port "application/pdf=evince.desktop\n")
9035 (format port "application/postscript=evince.desktop\n")))
9036 #t))))
9037 (synopsis "Default MIME type associations for the GNOME desktop")
9038 (description
9039 "Given many installed packages which might handle a given MIME type, a
9040 user running the GNOME desktop probably has some preferences: for example,
9041 that folders be opened by default by the Nautilus file manager, not the Baobab
9042 disk usage analyzer. This package establishes that set of default MIME type
9043 associations for GNOME.")
9044 (license license:gpl3+)
9045 (home-page #f)))
9046
9047 (define-public libgovirt
9048 (package
9049 (name "libgovirt")
9050 (version "0.3.8")
9051 (source (origin
9052 (method url-fetch)
9053 (uri (string-append "mirror://gnome/sources/" name "/"
9054 (version-major+minor version) "/"
9055 name "-" version ".tar.xz"))
9056 (sha256
9057 (base32
9058 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9059 (build-system glib-or-gtk-build-system)
9060 (native-inputs
9061 `(("gettext" ,gettext-minimal)
9062 ("glib:bin" ,glib "bin")
9063 ("gobject-introspection" ,gobject-introspection)
9064 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9065 ("gtk+:bin" ,gtk+ "bin")
9066 ("pkg-config" ,pkg-config)))
9067 (inputs
9068 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
9069 ("librest" ,rest)))
9070 (synopsis "GoVirt Library")
9071 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9072 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9073 (license license:gpl2+)))
9074
9075 (define-public gnome-weather
9076 (package
9077 (name "gnome-weather")
9078 (version "3.34.0")
9079 (source (origin
9080 (method url-fetch)
9081 (uri (string-append "mirror://gnome/sources/" name "/"
9082 (version-major+minor version) "/"
9083 name "-" version ".tar.xz"))
9084 (sha256
9085 (base32
9086 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
9087 (build-system meson-build-system)
9088 (native-inputs
9089 `(("gettext" ,gettext-minimal)
9090 ("glib:bin" ,glib "bin")
9091 ("gobject-introspection" ,gobject-introspection)
9092 ("gtk+:bin" ,gtk+ "bin")
9093 ("pkg-config" ,pkg-config)))
9094 (inputs
9095 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
9096 ("appstream-glib" ,appstream-glib)
9097 ("geoclue" ,geoclue)
9098 ("gdk-pixbuf" ,gdk-pixbuf)
9099 ("gjs" ,gjs)
9100 ("gnome-desktop" ,gnome-desktop)
9101 ("libgweather" ,libgweather)))
9102 (arguments
9103 `(#:glib-or-gtk? #t
9104 #:phases
9105 (modify-phases %standard-phases
9106 (add-after 'install 'fix-desktop-file
9107 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
9108 ;; See https://issues.guix.gnu.org/issue/39324.
9109 (lambda* (#:key outputs #:allow-other-keys)
9110 (let* ((out (assoc-ref outputs "out"))
9111 (applications (string-append out "/share/applications")))
9112 (substitute* (string-append applications "/org.gnome.Weather.desktop")
9113 (("Exec=.*") "Exec=gnome-weather\n"))
9114 #t)))
9115 (add-after 'install 'wrap
9116 (lambda* (#:key inputs outputs #:allow-other-keys)
9117 (let ((out (assoc-ref outputs "out"))
9118 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9119 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
9120 (wrap-program (string-append out "/bin/gnome-weather")
9121 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
9122 #t))))))
9123 (synopsis "Weather monitoring for GNOME desktop")
9124 (description "GNOME Weather is a small application that allows you to
9125 monitor the current weather conditions for your city, or anywhere in the
9126 world.")
9127 (home-page "https://wiki.gnome.org/Apps/Weather")
9128 (license license:gpl2+)))
9129
9130 (define-public gnome
9131 (package
9132 (name "gnome")
9133 (version (package-version gnome-shell))
9134 (source #f)
9135 (build-system trivial-build-system)
9136 (arguments '(#:builder (begin (mkdir %output) #t)))
9137 (propagated-inputs
9138 ;; TODO: Add or remove packages according to:
9139 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
9140 `(
9141 ;; GNOME-Core-OS-Services
9142 ("accountsservice" ,accountsservice)
9143 ("network-manager" ,network-manager)
9144 ("packagekit" ,packagekit)
9145 ("upower" ,upower)
9146 ;; GNOME-Core-Shell
9147 ("adwaita-icon-theme" ,adwaita-icon-theme)
9148 ("gdm" ,gdm)
9149 ("glib-networking" ,glib-networking)
9150 ("gnome-backgrounds" ,gnome-backgrounds)
9151 ("gnome-bluetooth" ,gnome-bluetooth)
9152 ("gnome-color-manager" ,gnome-color-manager)
9153 ("gnome-control-center" ,gnome-control-center)
9154 ("gnome-desktop" ,gnome-desktop)
9155 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
9156 ("gnome-initial-setup" ,gnome-initial-setup)
9157 ("gnome-keyring" ,gnome-keyring)
9158 ("gnome-menus" ,gnome-menus)
9159 ("gnome-session" ,gnome-session)
9160 ("gnome-settings-daemon" ,gnome-settings-daemon)
9161 ("gnome-shell-extensions" ,gnome-shell-extensions)
9162 ("gnome-shell" ,gnome-shell)
9163 ("gnome-themes-extra" ,gnome-themes-extra)
9164 ("gnome-user-docs" ,gnome-user-docs)
9165 ("gnome-user-share" ,gnome-user-share)
9166 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9167 ("gvfs" ,gvfs)
9168 ("mutter" ,mutter)
9169 ("orca" ,orca)
9170 ("rygel" ,rygel)
9171 ("sushi" ,sushi)
9172 ;; GNOME-Core-Utilities
9173 ("baobab" ,baobab)
9174 ("cheese" ,cheese)
9175 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9176 ;; only works on x86_64, so exclude it on other architectures.
9177 ,@(if (string-prefix? "x86_64" (%current-system))
9178 `(("eog" ,eog))
9179 '())
9180 ("epiphany" ,epiphany)
9181 ("evince" ,evince)
9182 ("file-roller" ,file-roller)
9183 ("gedit" ,gedit)
9184 ("gnome-boxes" ,gnome-boxes)
9185 ("gnome-calculator" ,gnome-calculator)
9186 ("gnome-calendar" ,gnome-calendar)
9187 ("gnome-characters" ,gnome-characters)
9188 ("gnome-clocks" ,gnome-clocks)
9189 ("gnome-contacts" ,gnome-contacts)
9190 ("gnome-disk-utility" ,gnome-disk-utility)
9191 ("gnome-font-viewer" ,gnome-font-viewer)
9192 ("gnome-maps" ,gnome-maps)
9193 ; TODO: ("gnome-music" ,gnome-music)
9194 ; TODO: ("gnome-photos" ,gnome-photos)
9195 ("gnome-screenshot" ,gnome-screenshot)
9196 ("gnome-system-monitor" ,gnome-system-monitor)
9197 ("gnome-terminal" ,gnome-terminal)
9198 ("gnome-weather" ,gnome-weather)
9199 ("nautilus" ,nautilus)
9200 ("simple-scan" ,simple-scan)
9201 ("totem" ,totem)
9202 ("yelp" ,yelp)
9203 ;; Others
9204 ("hicolor-icon-theme" ,hicolor-icon-theme)
9205 ("gnome-online-accounts" ,gnome-online-accounts)
9206
9207 ;; Packages not part of GNOME proper but that are needed for a good
9208 ;; experience. See <https://bugs.gnu.org/39646>.
9209 ;; XXX: Find out exactly which ones are needed and why.
9210 ("font-cantarell" ,font-cantarell)
9211 ("font-dejavu" ,font-dejavu)
9212 ("at-spi2-core" ,at-spi2-core)
9213 ("dbus" ,dbus)
9214 ("dconf" ,dconf)
9215 ("desktop-file-utils" ,desktop-file-utils)
9216 ("gnome-default-applications" ,gnome-default-applications)
9217 ("gnome-themes-standard" ,gnome-themes-standard)
9218 ("gst-plugins-base" ,gst-plugins-base)
9219 ("gst-plugins-good" ,gst-plugins-good)
9220 ("gucharmap" ,gucharmap)
9221 ("pinentry-gnome3" ,pinentry-gnome3)
9222 ("pulseaudio" ,pulseaudio)
9223 ("shared-mime-info" ,shared-mime-info)
9224 ("system-config-printer" ,system-config-printer)
9225 ("xdg-user-dirs" ,xdg-user-dirs)
9226 ("yelp" ,yelp)
9227 ("zenity" ,zenity)))
9228 (synopsis "The GNU desktop environment")
9229 (home-page "https://www.gnome.org/")
9230 (description
9231 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9232 applications for browsing the web, editing text and images, creating
9233 documents and diagrams, playing media, scanning, and much more.")
9234 (license license:gpl2+)))
9235
9236 (define-public byzanz
9237 ;; The last stable release of Byzanz was in 2011, but there have been many
9238 ;; useful commits made to the Byzanz repository since then that it would be
9239 ;; silly to use such an old release.
9240 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9241 (package
9242 (name "byzanz")
9243 (version (string-append "0.2-1." (string-take commit 7)))
9244 (source (origin
9245 (method git-fetch)
9246 (uri (git-reference
9247 (url "https://git.gnome.org/browse/byzanz")
9248 (commit commit)))
9249 (file-name (string-append name "-" version "-checkout"))
9250 (sha256
9251 (base32
9252 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9253 (build-system glib-or-gtk-build-system)
9254 (arguments
9255 '(#:phases
9256 (modify-phases %standard-phases
9257 (add-before 'bootstrap 'build-without-Werror
9258 (lambda _
9259 ;; The build system cleverly detects that we're not building from
9260 ;; a release tarball and turns on -Werror for GCC.
9261 ;; Unsurprisingly, there is a warning during compilation that
9262 ;; causes the build to fail unnecessarily, so we remove the flag.
9263 (substitute* '("configure.ac")
9264 (("-Werror") ""))
9265 #t)))))
9266 (native-inputs
9267 `(("autoconf" ,autoconf)
9268 ("automake" ,automake)
9269 ("gnome-common" ,gnome-common)
9270 ("intltool" ,intltool)
9271 ("libtool" ,libtool)
9272 ("pkg-config" ,pkg-config)
9273 ("which" ,which)))
9274 (inputs
9275 `(("glib" ,glib)
9276 ("gstreamer" ,gstreamer)
9277 ("gst-plugins-base" ,gst-plugins-base)
9278 ("gtk+" ,gtk+)))
9279 (synopsis "Desktop recording program")
9280 (description "Byzanz is a simple desktop recording program with a
9281 command-line interface. It can record part or all of an X display for a
9282 specified duration and save it as a GIF encoded animated image file.")
9283 (home-page "https://git.gnome.org/browse/byzanz")
9284 (license license:gpl2+))))
9285
9286 (define-public authenticator
9287 (package
9288 (name "authenticator")
9289 (version "3.32.2")
9290 (source
9291 (origin
9292 (method git-fetch)
9293 (uri (git-reference
9294 (url "https://gitlab.gnome.org/World/Authenticator")
9295 (commit version)))
9296 (file-name (git-file-name name version))
9297 (sha256
9298 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9299 (build-system meson-build-system)
9300 (arguments
9301 `(#:glib-or-gtk? #t
9302 #:phases
9303 (modify-phases %standard-phases
9304 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9305 (lambda* (#:key inputs outputs #:allow-other-keys)
9306 (let ((prog (string-append (assoc-ref outputs "out")
9307 "/bin/authenticator"))
9308 (pylib (string-append (assoc-ref outputs "out")
9309 "/lib/python"
9310 ,(version-major+minor
9311 (package-version python))
9312 "/site-packages")))
9313 (wrap-program prog
9314 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
9315 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9316 #t))))))
9317 (native-inputs
9318 `(("desktop-file-utils" ,desktop-file-utils)
9319 ("gettext" ,gettext-minimal)
9320 ("glib:bin" ,glib "bin")
9321 ("gobject-introspection" ,gobject-introspection)
9322 ("gtk+:bin" ,gtk+ "bin")
9323 ("pkg-config" ,pkg-config)))
9324 (inputs
9325 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9326 ("gtk+" ,gtk+)
9327 ("libhandy" ,libhandy-0.0)
9328 ("libsecret" ,libsecret)
9329 ("python-beautifulsoup4" ,python-beautifulsoup4)
9330 ("python-pillow" ,python-pillow)
9331 ("python-pyfavicon" ,python-pyfavicon)
9332 ("python-pygobject" ,python-pygobject)
9333 ("python-pyotp" ,python-pyotp)
9334 ("python-pyzbar" ,python-pyzbar)
9335 ("yoyo-migrations" ,yoyo-migrations)
9336 ("zbar" ,zbar)))
9337 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9338 (synopsis "Two-factor authentication application built for GNOME")
9339 (description
9340 "Authenticator is a two-factor authentication (2FA) application built for
9341 the GNOME desktop environment.
9342
9343 Features:
9344
9345 @itemize
9346 @item QR code scanner
9347 @item Beautiful UI
9348 @item Huge database of more than 560 supported services
9349 @item Keep your PIN tokens secure by locking the application with a password
9350 @item Automatically fetch an image for services using their favicon
9351 @item The possibility to add new services
9352 @end itemize")
9353 (license license:gpl3+)))
9354
9355 (define-public gsound
9356 (package
9357 (name "gsound")
9358 (version "1.0.2")
9359 (source (origin
9360 (method url-fetch)
9361 (uri (string-append "mirror://gnome/sources/" name "/"
9362 (version-major+minor version) "/"
9363 name "-" version ".tar.xz"))
9364 (sha256
9365 (base32
9366 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9367 (build-system glib-or-gtk-build-system)
9368 (native-inputs
9369 `(("pkg-config" ,pkg-config)
9370 ("gobject-introspection" ,gobject-introspection)
9371 ("vala" ,vala)))
9372 (inputs
9373 `(("glib" ,glib)
9374 ("libcanberra" ,libcanberra)))
9375 (home-page "https://wiki.gnome.org/Projects/GSound")
9376 (synopsis "GObject wrapper for libcanberra")
9377 (description
9378 "GSound is a small library for playing system sounds. It's designed to be
9379 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9380 library.")
9381 (license license:lgpl2.1+)))
9382
9383 (define-public libzapojit
9384 (package
9385 (name "libzapojit")
9386 (version "0.0.3")
9387 (source (origin
9388 (method url-fetch)
9389 (uri (string-append "mirror://gnome/sources/" name "/"
9390 (version-major+minor version) "/"
9391 name "-" version ".tar.xz"))
9392 (sha256
9393 (base32
9394 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9395 (build-system gnu-build-system)
9396 (native-inputs
9397 `(("gobject-introspection" ,gobject-introspection)
9398 ("intltool" ,intltool)
9399 ("pkg-config" ,pkg-config)))
9400 (inputs
9401 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9402 ("json-glib" ,json-glib)
9403 ("rest" ,rest)))
9404 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9405 (synopsis "Library for accessing SkyDrive and Hotmail")
9406 (description
9407 "Libzapojit is a GLib-based library for accessing online service APIs of
9408 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9409 (license license:lgpl2.1+)))
9410
9411 (define-public gnome-clocks
9412 (package
9413 (name "gnome-clocks")
9414 (version "3.34.0")
9415 (source (origin
9416 (method url-fetch)
9417 (uri (string-append "mirror://gnome/sources/" name "/"
9418 (version-major+minor version) "/"
9419 name "-" version ".tar.xz"))
9420 (sha256
9421 (base32
9422 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9423 (build-system meson-build-system)
9424 (arguments
9425 '(#:glib-or-gtk? #t
9426 #:phases
9427 (modify-phases %standard-phases
9428 (add-after 'unpack 'skip-gtk-update-icon-cache
9429 ;; Don't create 'icon-theme.cache'.
9430 (lambda _
9431 (substitute* "build-aux/post-install.py"
9432 (("gtk-update-icon-cache") "true"))
9433 #t)))))
9434 (native-inputs
9435 `(("vala" ,vala)
9436 ("pkg-config" ,pkg-config)
9437 ("glib" ,glib "bin") ; for glib-compile-resources
9438 ("desktop-file-utils" ,desktop-file-utils)
9439 ("gettext" ,gettext-minimal)
9440 ("itstool" ,itstool)))
9441 (inputs
9442 `(("glib" ,glib)
9443 ("gtk+" ,gtk+)
9444 ("gsound" ,gsound)
9445 ("geoclue" ,geoclue)
9446 ("geocode-glib" ,geocode-glib)
9447 ("libgweather" ,libgweather)
9448 ("gnome-desktop" ,gnome-desktop)))
9449 (home-page "https://wiki.gnome.org/Apps/Clocks")
9450 (synopsis "GNOME's clock application")
9451 (description
9452 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9453 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9454 (license license:gpl3+)))
9455
9456 (define-public gnome-calendar
9457 (package
9458 (name "gnome-calendar")
9459 (version "3.34.2")
9460 (source (origin
9461 (method url-fetch)
9462 (uri (string-append "mirror://gnome/sources/" name "/"
9463 (version-major+minor version) "/"
9464 name "-" version ".tar.xz"))
9465 (sha256
9466 (base32
9467 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9468 (build-system meson-build-system)
9469 (arguments
9470 '(#:glib-or-gtk? #t
9471 ;; gnome-calendar has to be installed before the tests can be run
9472 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9473 #:tests? #f
9474 #:phases
9475 (modify-phases %standard-phases
9476 (add-after 'unpack 'skip-gtk-update-icon-cache
9477 ;; Don't create 'icon-theme.cache'.
9478 (lambda _
9479 (substitute* "build-aux/meson/meson_post_install.py"
9480 (("gtk-update-icon-cache") "true"))
9481 #t)))))
9482 (native-inputs
9483 `(("gettext" ,gettext-minimal)
9484 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9485 ("pkg-config" ,pkg-config)))
9486 (inputs
9487 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9488 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9489 ("libdazzle" ,libdazzle)
9490 ("libedataserverui" ,evolution-data-server)
9491 ("libgweather" ,libgweather)
9492 ("geoclue" ,geoclue)))
9493 (propagated-inputs
9494 `(("evolution-data-server" ,evolution-data-server)))
9495 (home-page "https://wiki.gnome.org/Apps/Calendar")
9496 (synopsis "GNOME's calendar application")
9497 (description
9498 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9499 desktop. It supports multiple calendars, month, week and year view.")
9500 (license license:gpl3+)))
9501
9502 (define-public gnome-todo
9503 (package
9504 (name "gnome-todo")
9505 (version "3.28.1")
9506 (source (origin
9507 (method url-fetch)
9508 (uri (string-append "mirror://gnome/sources/" name "/"
9509 (version-major+minor version) "/"
9510 name "-" version ".tar.xz"))
9511 (sha256
9512 (base32
9513 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9514 (patches
9515 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9516 (build-system meson-build-system)
9517 (arguments
9518 '(#:glib-or-gtk? #t
9519 #:phases (modify-phases %standard-phases
9520 (add-after
9521 'install 'wrap-gnome-todo
9522 (lambda* (#:key inputs outputs #:allow-other-keys)
9523 (let ((out (assoc-ref outputs "out"))
9524 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9525 (python-path (getenv "PYTHONPATH")))
9526 (wrap-program (string-append out "/bin/gnome-todo")
9527 ;; XXX: gi plugins are broken.
9528 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9529 ;; For plugins.
9530 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9531 `("PYTHONPATH" ":" prefix (,python-path))))
9532 #t)))))
9533 (native-inputs
9534 `(("gettext" ,gettext-minimal)
9535 ("gobject-introspection" ,gobject-introspection)
9536 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9537 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9538 ("pkg-config" ,pkg-config)))
9539 (inputs
9540 `(("rest" ,rest) ; For Todoist plugin
9541 ("json-glib" ,json-glib) ; For Todoist plugin
9542 ("libedataserverui" ,evolution-data-server)
9543 ("libical" ,libical)
9544 ("libpeas" ,libpeas)
9545 ("python-pygobject" ,python-pygobject)
9546 ("evolution-data-server" ,evolution-data-server)
9547 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9548 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9549 (home-page "https://wiki.gnome.org/Apps/Todo")
9550 (synopsis "GNOME's ToDo Application")
9551 (description
9552 "GNOME To Do is a simplistic personal task manager designed to perfectly
9553 fit the GNOME desktop.")
9554 (license license:gpl3+)))
9555
9556 (define-public gnome-dictionary
9557 (package
9558 (name "gnome-dictionary")
9559 (version "3.26.1")
9560 (source (origin
9561 (method url-fetch)
9562 (uri (string-append "mirror://gnome/sources/" name "/"
9563 (version-major+minor version) "/"
9564 name "-" version ".tar.xz"))
9565 (sha256
9566 (base32
9567 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9568 (build-system meson-build-system)
9569 (arguments '(#:glib-or-gtk? #t
9570 #:phases (modify-phases %standard-phases
9571 (add-after 'unpack 'patch-install-script
9572 (lambda _
9573 ;; This script attempts to compile glib schemas
9574 ;; and create an empty MIME database. We do
9575 ;; that elsewhere, so prevent it from running.
9576 (substitute* "build-aux/post-install.sh"
9577 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9578 #t)))))
9579 (native-inputs
9580 `(("glib:bin" ,glib "bin")
9581 ("gobject-introspection" ,gobject-introspection)
9582 ("intltool" ,intltool)
9583 ("itstool" ,itstool)
9584 ("pkg-config" ,pkg-config)
9585 ("xmllint" ,libxml2)))
9586 (inputs
9587 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9588 ("gtk+" ,gtk+)))
9589 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9590 (synopsis "Look up words in dictionary sources")
9591 (description
9592 "GNOME Dictionary can look for the definition or translation of a word in
9593 existing databases over the internet.")
9594 (license license:gpl3+)))
9595
9596 (define-public gnome-tweaks
9597 (package
9598 (name "gnome-tweaks")
9599 (version "3.34.1")
9600 (source (origin
9601 (method url-fetch)
9602 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9603 (version-major+minor version) "/"
9604 "gnome-tweaks-" version ".tar.xz"))
9605 (patches
9606 (list (search-patch "gnome-tweaks-search-paths.patch")))
9607 (sha256
9608 (base32
9609 "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq"))))
9610 (build-system meson-build-system)
9611 (arguments
9612 `(#:glib-or-gtk? #t
9613 #:configure-flags '("-Dlocalstatedir=/tmp"
9614 "-Dsysconfdir=/tmp")
9615 #:imported-modules ((guix build python-build-system)
9616 ,@%meson-build-system-modules)
9617 #:phases
9618 (modify-phases %standard-phases
9619 (add-after 'unpack 'skip-gtk-update-icon-cache
9620 ;; Don't create 'icon-theme.cache'.
9621 (lambda _
9622 (substitute* "meson-postinstall.py"
9623 (("gtk-update-icon-cache") "true"))
9624 #t))
9625 (add-after 'install 'wrap
9626 (@@ (guix build python-build-system) wrap))
9627 (add-after 'wrap 'wrap-gi-typelib
9628 (lambda* (#:key inputs outputs #:allow-other-keys)
9629 (let ((out (assoc-ref outputs "out"))
9630 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9631 (wrap-program (string-append out "/bin/gnome-tweaks")
9632 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9633 #t)))))
9634 (native-inputs
9635 `(("intltool" ,intltool)
9636 ("pkg-config" ,pkg-config)))
9637 (inputs
9638 `(("gnome-desktop" ,gnome-desktop)
9639 ("gtk+" ,gtk+)
9640 ("gobject-introspection" ,gobject-introspection)
9641 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9642 ("libhandy" ,libhandy-0.0)
9643 ("libnotify" ,libnotify)
9644 ("libsoup" ,libsoup)
9645 ("nautilus" ,nautilus)
9646 ("python" ,python)
9647 ("python-pygobject" ,python-pygobject)))
9648 (synopsis "Customize advanced GNOME 3 options")
9649 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9650 (description
9651 "GNOME Tweaks allows adjusting advanced configuration settings in
9652 GNOME 3. This includes things like the fonts used in user interface elements,
9653 alternative user interface themes, changes in window management behavior,
9654 GNOME Shell appearance and extension, etc.")
9655 (license license:gpl3+)))
9656
9657 (define-public gnome-shell-extensions
9658 (package
9659 (name "gnome-shell-extensions")
9660 (version "3.34.2")
9661 (source (origin
9662 (method url-fetch)
9663 (uri (string-append "mirror://gnome/sources/" name "/"
9664 (version-major+minor version) "/"
9665 name "-" version ".tar.xz"))
9666 (sha256
9667 (base32
9668 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9669 (build-system meson-build-system)
9670 (arguments
9671 '(#:configure-flags '("-Dextension_set=all")))
9672 (native-inputs
9673 `(("glib:bin" ,glib "bin")
9674 ("intltool" ,intltool)
9675 ("pkg-config" ,pkg-config)))
9676 (propagated-inputs
9677 `(("glib" ,glib)))
9678 (synopsis "Extensions for GNOME Shell")
9679 (description "GNOME Shell extensions modify and extend GNOME Shell
9680 functionality and behavior.")
9681 (home-page "https://extensions.gnome.org/")
9682 (license license:gpl3+)))
9683
9684 (define-public folks
9685 (package
9686 (name "folks")
9687 (version "0.13.1")
9688 (source (origin
9689 (method url-fetch)
9690 (uri (string-append
9691 "mirror://gnome/sources/folks/"
9692 (version-major+minor version) "/"
9693 "folks-" version ".tar.xz"))
9694 (sha256
9695 (base32
9696 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9697 (build-system meson-build-system)
9698 (arguments
9699 '(#:phases
9700 (modify-phases %standard-phases
9701 (add-after 'unpack 'skip-gtk-update-icon-cache
9702 ;; Don't create 'icon-theme.cache'.
9703 (lambda _
9704 (substitute* "meson_post_install.py"
9705 (("gtk-update-icon-cache") "true"))
9706 #t)))))
9707 (inputs
9708 `(("bdb" ,bdb)
9709 ("dbus-glib" ,dbus-glib)
9710 ("evolution-data-server" ,evolution-data-server)
9711 ("glib" ,glib)
9712 ("libgee" ,libgee)
9713 ("readline" ,readline)
9714 ("telepathy-glib" ,telepathy-glib)))
9715 (native-inputs
9716 `(("glib:bin" ,glib "bin")
9717 ("gobject-introspection" ,gobject-introspection)
9718 ("intltool" ,intltool)
9719 ("pkg-config" ,pkg-config)
9720 ("vala" ,vala)))
9721 (synopsis "Library to aggregate data about people")
9722 (description "Libfolks is a library that aggregates information about people
9723 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9724 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9725 etc.) to create metacontacts. It's written in Vala, which generates C code when
9726 compiled.")
9727 (home-page "https://wiki.gnome.org/Projects/Folks")
9728 (license license:lgpl2.1+)))
9729
9730 (define-public gfbgraph
9731 (package
9732 (name "gfbgraph")
9733 (version "0.2.4")
9734 (source (origin
9735 (method url-fetch)
9736 (uri (string-append
9737 "mirror://gnome/sources/gfbgraph/"
9738 (version-major+minor version) "/"
9739 "gfbgraph-" version ".tar.xz"))
9740 (sha256
9741 (base32
9742 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9743 (build-system glib-or-gtk-build-system)
9744 (arguments
9745 `(#:tests? #f ; tests appear to require the network
9746 #:configure-flags '("--disable-static"
9747 "--enable-gtk-doc"
9748 "--enable-introspection")))
9749 (native-inputs
9750 `(("gobject-introspection" ,gobject-introspection)
9751 ("gtk-doc" ,gtk-doc)
9752 ("pkg-config" ,pkg-config)
9753
9754 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9755 ("autoconf" ,autoconf)
9756 ("automake" ,automake)
9757 ("libtool" ,libtool)
9758 ("which" ,which)))
9759 (inputs
9760 `(("json-glib" ,json-glib)
9761 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9762 ("rest" ,rest)))
9763 (synopsis "GLib/GObject wrapper for the Facebook API")
9764 (description "This library allows you to use the Facebook API from
9765 GLib/GObject code.")
9766 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9767 (license license:lgpl2.1+)))
9768
9769 (define-public libgnomekbd
9770 (package
9771 (name "libgnomekbd")
9772 (version "3.26.1")
9773 (source (origin
9774 (method url-fetch)
9775 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9776 (version-major+minor version) "/"
9777 "libgnomekbd-" version ".tar.xz"))
9778 (sha256
9779 (base32
9780 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9781 (build-system gnu-build-system)
9782 (native-inputs
9783 `(("pkg-config" ,pkg-config)
9784 ("glib" ,glib "bin")
9785 ("intltool" ,intltool)))
9786 (propagated-inputs
9787 ;; Referred to in .h files and .pc.
9788 `(("glib" ,glib)
9789 ("gtk+" ,gtk+)
9790 ("libxklavier" ,libxklavier)))
9791 (home-page "https://www.gnome.org")
9792 (synopsis "GNOME keyboard configuration library")
9793 (description
9794 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9795 environment, which can notably display keyboard layouts.")
9796 (license license:lgpl2.0+)))
9797
9798 ;;; This package is no longer maintained:
9799 ;;; https://wiki.gnome.org/Attic/LibUnique
9800 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9801 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9802 (define-public libunique
9803 (package
9804 (name "libunique")
9805 (version "3.0.2")
9806 (source (origin
9807 (method url-fetch)
9808 (uri (string-append "mirror://gnome/sources/" name "/"
9809 (version-major+minor version) "/"
9810 name "-" version ".tar.xz"))
9811 (sha256
9812 (base32
9813 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9814 (build-system glib-or-gtk-build-system)
9815 (arguments
9816 `(#:configure-flags '("--disable-static"
9817 "--disable-dbus" ; use gdbus
9818 "--enable-introspection")))
9819 (native-inputs
9820 `(("pkg-config" ,pkg-config)
9821 ("gobject-introspection" ,gobject-introspection)
9822 ("glib:bin" ,glib "bin")
9823 ("gtk-doc" ,gtk-doc)))
9824 (propagated-inputs
9825 ;; Referred to in .h files and .pc.
9826 `(("gtk+" ,gtk+)))
9827 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9828 (synopsis "Library for writing single instance applications")
9829 (description
9830 "Libunique is a library for writing single instance applications. If you
9831 launch a single instance application twice, the second instance will either just
9832 quit or will send a message to the running instance. Libunique makes it easy to
9833 write this kind of application, by providing a base class, taking care of all
9834 the IPC machinery needed to send messages to a running instance, and also
9835 handling the startup notification side.")
9836 (license license:lgpl2.1+)))
9837
9838 (define-public gnome-calculator
9839 (package
9840 (name "gnome-calculator")
9841 (version "3.34.1")
9842 (source
9843 (origin
9844 (method url-fetch)
9845 (uri (string-append "mirror://gnome/sources/" name "/"
9846 (version-major+minor version) "/"
9847 name "-" version ".tar.xz"))
9848 (sha256
9849 (base32
9850 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9851 (build-system meson-build-system)
9852 (arguments '(#:glib-or-gtk? #t))
9853 (native-inputs
9854 `(("gettext" ,gettext-minimal)
9855 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9856 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9857 ("itstool" ,itstool)
9858 ("vala" ,vala)
9859 ("pkg-config" ,pkg-config)))
9860 (inputs
9861 `(("glib" ,glib)
9862 ("gtksourceview" ,gtksourceview)
9863 ("libgee" ,libgee)
9864 ("libsoup" ,libsoup)
9865 ("libxml2" ,libxml2)
9866 ("mpc" ,mpc)
9867 ("mpfr" ,mpfr)))
9868 (home-page "https://wiki.gnome.org/Apps/Calculator")
9869 (synopsis "Desktop calculator")
9870 (description
9871 "Calculator is an application that solves mathematical equations and
9872 is suitable as a default application in a Desktop environment.")
9873 (license license:gpl3)))
9874
9875 (define-public xpad
9876 (package
9877 (name "xpad")
9878 (version "5.1.0")
9879 (source
9880 (origin
9881 (method url-fetch)
9882 (uri (string-append "https://launchpad.net/xpad/trunk/"
9883 version "/+download/"
9884 name "-" version ".tar.bz2"))
9885 (sha256
9886 (base32
9887 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9888 (build-system gnu-build-system)
9889 (native-inputs
9890 `(("autoconf" ,autoconf)
9891 ("automake" ,automake)
9892 ("gtk+:bin" ,gtk+ "bin")
9893 ("intltool" ,intltool)
9894 ("pkg-config" ,pkg-config)))
9895 (inputs
9896 `(("gtksourceview" ,gtksourceview-3)
9897 ("libsm" ,libsm)))
9898 (home-page "https://wiki.gnome.org/Apps/Xpad")
9899 (synopsis "Virtual sticky note")
9900 (description
9901 "Xpad is a sticky note that strives to be simple, fault tolerant,
9902 and customizable. Xpad consists of independent pad windows, each is
9903 basically a text box in which notes can be written.")
9904 (license license:gpl3+)))
9905
9906 (define-public gucharmap
9907 (let ((unicode-files
9908 '(("Blocks.txt"
9909 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9910 ("DerivedAge.txt"
9911 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9912 ("NamesList.txt"
9913 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9914 ("Scripts.txt"
9915 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9916 ("UnicodeData.txt"
9917 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9918 ("Unihan.zip"
9919 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9920 (package
9921 (name "gucharmap")
9922 (version "12.0.1")
9923 (source
9924 (origin
9925 (method url-fetch)
9926 (uri (string-append "mirror://gnome/sources/" name "/"
9927 (version-major+minor version) "/"
9928 name "-" version ".tar.xz"))
9929 (sha256
9930 (base32
9931 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9932 (build-system glib-or-gtk-build-system)
9933 (arguments
9934 `(#:modules ((ice-9 match)
9935 (guix build glib-or-gtk-build-system)
9936 (guix build utils))
9937 #:configure-flags
9938 (list "--with-unicode-data=../unicode-data")
9939 #:phases
9940 (modify-phases %standard-phases
9941 (add-after 'unpack 'prepare-unicode-data
9942 (lambda* (#:key inputs #:allow-other-keys)
9943 (mkdir-p "../unicode-data")
9944 (with-directory-excursion "../unicode-data"
9945 (for-each (match-lambda
9946 ((file _)
9947 (install-file (assoc-ref inputs file) ".")))
9948 ',unicode-files))
9949 #t)))))
9950 (native-inputs
9951 `(("desktop-file-utils" ,desktop-file-utils)
9952 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9953 ("gobject-introspection" ,gobject-introspection)
9954 ("intltool" ,intltool)
9955 ("itstool" ,itstool)
9956 ("pkg-config" ,pkg-config)
9957 ,@(map (match-lambda
9958 ((file hash)
9959 `(,file
9960 ,(origin
9961 (method url-fetch)
9962 (uri (string-append
9963 "http://www.unicode.org/Public/12.0.0/ucd/"
9964 file))
9965 (sha256 (base32 hash))))))
9966 unicode-files)
9967 ("unzip" ,unzip)))
9968 (inputs
9969 `(("gtk+" ,gtk+)
9970 ("xmllint" ,libxml2)))
9971 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9972 (synopsis "Unicode character picker and font browser")
9973 (description
9974 "This program allows you to browse through all the available Unicode
9975 characters and categories for the installed fonts, and to examine their
9976 detailed properties. It is an easy way to find the character you might
9977 only know by its Unicode name or code point.")
9978 (license license:gpl3+))))
9979
9980 (define-public bluefish
9981 (package
9982 (name "bluefish")
9983 (version "2.2.12")
9984 (source
9985 (origin
9986 (method url-fetch)
9987 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
9988 "bluefish-" version ".tar.gz"))
9989 (sha256
9990 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
9991 (build-system gnu-build-system)
9992 (native-inputs
9993 `(("desktop-file-utils" ,desktop-file-utils)
9994 ("intltool" ,intltool)
9995 ("pkg-config" ,pkg-config)))
9996 (inputs
9997 `(("enchant" ,enchant)
9998 ("gtk+" ,gtk+)
9999 ("python" ,python-wrapper)
10000 ("xmllint" ,libxml2)
10001 ("gucharmap" ,gucharmap)))
10002 (home-page "http://bluefish.openoffice.nl")
10003 (synopsis "Web development studio")
10004 (description
10005 "Bluefish is an editor aimed at programmers and web developers,
10006 with many options to write web sites, scripts and other code.
10007 Bluefish supports many programming and markup languages.")
10008 (license license:gpl3+)))
10009
10010 (define-public gnome-system-monitor
10011 (package
10012 (name "gnome-system-monitor")
10013 (version "3.32.1")
10014 (source
10015 (origin
10016 (method url-fetch)
10017 (uri (string-append "mirror://gnome/sources/" name "/"
10018 (version-major+minor version) "/"
10019 name "-" version ".tar.xz"))
10020 (sha256
10021 (base32
10022 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
10023 (build-system meson-build-system)
10024 (arguments
10025 '(#:glib-or-gtk? #t
10026 #:configure-flags '("-Dsystemd=false")))
10027 (native-inputs
10028 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
10029 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
10030 ("intltool" ,intltool)
10031 ("itstool" ,itstool)
10032 ("libgtop" ,libgtop)
10033 ("polkit" ,polkit)
10034 ("pkg-config" ,pkg-config)))
10035 (inputs
10036 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
10037 ("gtk+" ,gtk+)
10038 ("gtkmm" ,gtkmm)
10039 ("librsvg" ,librsvg)
10040 ("libxml2" ,libxml2)
10041 ("libwnck" ,libwnck)))
10042 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10043 (synopsis "Process viewer and system resource monitor for GNOME")
10044 (description
10045 "GNOME System Monitor is a GNOME process viewer and system monitor with
10046 an attractive, easy-to-use interface. It has features, such as a tree view
10047 for process dependencies, icons for processes, the ability to hide processes,
10048 graphical time histories of CPU/memory/swap usage and the ability to
10049 kill/reinice processes.")
10050 (license license:gpl2+)))
10051
10052 (define-public python-pyatspi
10053 (package
10054 (name "python-pyatspi")
10055 (version "2.34.0")
10056 (source (origin
10057 (method url-fetch)
10058 (uri (string-append
10059 "mirror://gnome/sources/pyatspi/"
10060 (version-major+minor version)
10061 "/pyatspi-" version ".tar.xz"))
10062 (sha256
10063 (base32
10064 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10065 (build-system gnu-build-system)
10066 (arguments
10067 `(#:phases
10068 (modify-phases %standard-phases
10069 (add-before 'build 'fix-atk-load
10070 (lambda _
10071 (substitute* "pyatspi/__init__.py"
10072 (("from gi.repository import Atspi")
10073 "gi.require_version('Gtk', '3.0')
10074 from gi.repository import Gtk
10075 from gi.repository import Atspi"))
10076 #t)))))
10077 (native-inputs
10078 `(("pkg-config" ,pkg-config)))
10079 (inputs
10080 `(("python" ,python)))
10081 (propagated-inputs
10082 `(("python-pygobject" ,python-pygobject)))
10083 (synopsis "Python client bindings for D-Bus AT-SPI")
10084 (home-page "https://wiki.linuxfoundation.org/accessibility\
10085 /atk/at-spi/at-spi_on_d-bus")
10086 (description
10087 "This package includes a python client library for the AT-SPI D-Bus
10088 accessibility infrastructure.")
10089 (license license:lgpl2.0)
10090 (properties '((upstream-name . "pyatspi")))))
10091
10092 (define-public python2-pyatspi
10093 (package
10094 (inherit python-pyatspi)
10095 (name "python2-pyatspi")
10096 (inputs
10097 `(("python" ,python-2)))
10098 (propagated-inputs
10099 `(("python-pygobject" ,python2-pygobject)))))
10100
10101 (define-public orca
10102 (package
10103 (name "orca")
10104 (version "3.34.1")
10105 (source (origin
10106 (method url-fetch)
10107 (uri (string-append
10108 "mirror://gnome/sources/" name "/"
10109 (version-major+minor version) "/"
10110 name "-" version ".tar.xz"))
10111 (sha256
10112 (base32
10113 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
10114 (build-system glib-or-gtk-build-system)
10115 (arguments
10116 '(#:phases
10117 (modify-phases %standard-phases
10118 (add-before 'configure 'qualify-xkbcomp
10119 (lambda* (#:key inputs #:allow-other-keys)
10120 (let ((xkbcomp (string-append
10121 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10122 (substitute* "src/orca/orca.py"
10123 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
10124 #t))
10125 (add-after 'install 'wrap-orca
10126 (lambda* (#:key outputs #:allow-other-keys)
10127 (let* ((out (assoc-ref outputs "out"))
10128 (prog (string-append out "/bin/orca")))
10129 (wrap-program prog
10130 `("GI_TYPELIB_PATH" ":" prefix
10131 (,(getenv "GI_TYPELIB_PATH")))
10132 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10133 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10134 `("PYTHONPATH" ":" prefix
10135 (,(getenv "PYTHONPATH")))))
10136 #t)))))
10137 (native-inputs
10138 `(("intltool" ,intltool)
10139 ("itstool" ,itstool)
10140 ("pkg-config" ,pkg-config)
10141 ("xmllint" ,libxml2)))
10142 (inputs
10143 `(("at-spi2-atk" ,at-spi2-atk)
10144 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10145 ("gstreamer" ,gstreamer)
10146 ("gst-plugins-base" ,gst-plugins-base)
10147 ("gst-plugins-good" ,gst-plugins-good)
10148 ("gtk+" ,gtk+)
10149 ("python" ,python)
10150 ("python-pygobject" ,python-pygobject)
10151 ("python-pyatspi" ,python-pyatspi)
10152 ("python-speechd" ,speech-dispatcher)
10153 ("xkbcomp" ,xkbcomp)))
10154 (synopsis
10155 "Screen reader for individuals who are blind or visually impaired")
10156 (home-page "https://wiki.gnome.org/Projects/Orca")
10157 (description
10158 "Orca is a screen reader that provides access to the graphical desktop
10159 via speech and refreshable braille. Orca works with applications and toolkits
10160 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10161 (license license:lgpl2.1+)))
10162
10163 (define-public gspell
10164 (package
10165 (name "gspell")
10166 (version "1.8.2")
10167 (source (origin
10168 (method url-fetch)
10169 (uri (string-append "mirror://gnome/sources/" name "/"
10170 (version-major+minor version) "/"
10171 name "-" version ".tar.xz"))
10172 (sha256
10173 (base32
10174 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10175 (patches (search-patches "gspell-dash-test.patch"))))
10176 (build-system glib-or-gtk-build-system)
10177 (arguments
10178 '(#:configure-flags (list "--enable-vala")
10179 #:phases
10180 (modify-phases %standard-phases
10181 (add-before 'check 'pre-check
10182 (lambda* (#:key inputs #:allow-other-keys)
10183 ;; Tests require a running X server.
10184 (system "Xvfb :1 &")
10185 (setenv "DISPLAY" ":1")
10186
10187 ;; For the missing /etc/machine-id.
10188 (setenv "DBUS_FATAL_WARNINGS" "0")
10189
10190 ;; Allow Enchant and its Aspell backend to find the en_US
10191 ;; dictionary.
10192 (setenv "ASPELL_DICT_DIR"
10193 (string-append (assoc-ref inputs "aspell-dict-en")
10194 "/lib/aspell"))
10195 #t)))))
10196 (inputs
10197 `(("gtk+" ,gtk+)
10198 ("glib" ,glib)
10199 ("iso-codes" ,iso-codes)))
10200 (native-inputs
10201 `(("glib" ,glib "bin")
10202 ("gobject-introspection" ,gobject-introspection)
10203 ("pkg-config" ,pkg-config)
10204 ("vala" ,vala) ;for VAPI, needed by Geary
10205 ("xmllint" ,libxml2)
10206
10207 ;; For tests.
10208 ("aspell-dict-en" ,aspell-dict-en)
10209 ("xorg-server" ,xorg-server-for-tests)))
10210 (propagated-inputs
10211 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
10212 (home-page "https://wiki.gnome.org/Projects/gspell")
10213 (synopsis "GNOME's alternative spell checker")
10214 (description
10215 "gspell provides a flexible API to add spell-checking to a GTK+
10216 application. It provides a GObject API, spell-checking to text entries and
10217 text views, and buttons to choose the language.")
10218 (license license:gpl2+)))
10219
10220 (define-public gnome-planner
10221 (package
10222 (name "gnome-planner")
10223 (version "0.14.6")
10224 (source (origin
10225 (method url-fetch)
10226 (uri (string-append "mirror://gnome/sources/planner/"
10227 (version-major+minor version) "/planner-"
10228 version ".tar.xz"))
10229 (sha256
10230 (base32
10231 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10232 (build-system glib-or-gtk-build-system)
10233 (arguments
10234 ;; Disable the Python bindings because the Planner program functions
10235 ;; without them, and (as of 2017-06-13) we have not packaged all of
10236 ;; packages that are necessary for building the Python bindings.
10237 `(#:configure-flags
10238 (list "--disable-python"
10239 ,@(if (string=? "aarch64-linux" (%current-system))
10240 '("--build=aarch64-unknown-linux-gnu")
10241 '()))))
10242 (inputs
10243 `(("libgnomecanvas" ,libgnomecanvas)
10244 ("libgnomeui" ,libgnomeui)
10245 ("libglade" ,libglade)
10246 ("gnome-vfs" ,gnome-vfs)
10247 ("gconf" ,gconf)
10248 ("libxml2" ,libxml2)
10249 ("libxslt" ,libxslt)
10250 ("gtk+" ,gtk+)
10251 ("glib" ,glib)))
10252 (native-inputs
10253 `(("intltool" ,intltool)
10254 ("scrollkeeper" ,scrollkeeper)
10255 ("pkg-config" ,pkg-config)))
10256 (home-page "https://wiki.gnome.org/Apps/Planner")
10257 (synopsis "Project management software for the GNOME desktop")
10258 (description
10259 "GNOME Planner is a project management tool based on the Work Breakdown
10260 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10261 the resources, tasks, and constraints that you define, Planner generates
10262 various views into a project. For example, Planner can show a Gantt chart of
10263 the project. It can show a detailed summary of tasks including their
10264 duration, cost, and current progress. It can also show a report of resource
10265 utilization that highlights under-utilized and over-utilized resources. These
10266 views can be printed as PDF or PostScript files, or exported to HTML.")
10267 (license license:gpl2+)))
10268
10269 (define-public lollypop
10270 (package
10271 (name "lollypop")
10272 (version "1.4.6")
10273 (source
10274 (origin
10275 (method url-fetch)
10276 (uri (string-append "https://adishatz.org/lollypop/"
10277 "lollypop-" version ".tar.xz"))
10278 (sha256
10279 (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
10280 (build-system meson-build-system)
10281 (arguments
10282 `(#:imported-modules
10283 (,@%meson-build-system-modules
10284 (guix build python-build-system))
10285 #:modules
10286 ((guix build meson-build-system)
10287 ((guix build python-build-system) #:prefix python:)
10288 (guix build utils))
10289 #:glib-or-gtk? #t
10290 #:tests? #f ; no test suite
10291 #:phases
10292 (modify-phases %standard-phases
10293 (add-after 'install 'wrap-program
10294 (lambda* (#:key outputs #:allow-other-keys)
10295 (let ((out (assoc-ref outputs "out"))
10296 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10297 (wrap-program (string-append out "/bin/lollypop")
10298 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10299 #t))
10300 (add-after 'install 'wrap-python
10301 (assoc-ref python:%standard-phases 'wrap)))))
10302 (native-inputs
10303 `(("intltool" ,intltool)
10304 ("itstool" ,itstool)
10305 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10306 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10307 ("pkg-config" ,pkg-config)))
10308 (inputs
10309 `(("glib-networking" ,glib-networking)
10310 ("gobject-introspection" ,gobject-introspection)
10311 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10312 ("gst-plugins-base" ,gst-plugins-base)
10313 ("libnotify" ,libnotify)
10314 ("libsecret" ,libsecret)
10315 ("libhandy" ,libhandy)
10316 ("libsoup" ,libsoup)
10317 ("python" ,python)
10318 ("python-beautifulsoup4" ,python-beautifulsoup4)
10319 ("python-gst" ,python-gst)
10320 ("python-pil" ,python-pillow)
10321 ("python-pycairo" ,python-pycairo)
10322 ("python-pygobject" ,python-pygobject)
10323 ("python-pylast" ,python-pylast)
10324 ("totem-pl-parser" ,totem-pl-parser)
10325 ("webkitgtk" ,webkitgtk)))
10326 (propagated-inputs
10327 `(;; gst-plugins-base is required to start Lollypop,
10328 ;; the others are required to play streaming.
10329 ("gst-plugins-good" ,gst-plugins-good)
10330 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10331 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10332 (synopsis "GNOME music playing application")
10333 (description
10334 "Lollypop is a music player designed to play well with GNOME desktop.
10335 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10336 from artists and tracks from the web. It also fetches cover artworks
10337 automatically and it can stream songs from online music services and charts.")
10338 (license license:gpl3+)))
10339
10340 (define-public gnome-video-effects
10341 (package
10342 (name "gnome-video-effects")
10343 (version "0.5.0")
10344 (source (origin
10345 (method url-fetch)
10346 (uri (string-append "mirror://gnome/sources/" name "/"
10347 (version-major+minor version) "/" name "-"
10348 version ".tar.xz"))
10349 (sha256
10350 (base32
10351 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10352 (build-system meson-build-system)
10353 (native-inputs
10354 `(("gettext" ,gettext-minimal)
10355 ("pkg-config" ,pkg-config)))
10356 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10357 (synopsis "Video effects for Cheese and other GNOME applications")
10358 (description
10359 "A collection of GStreamer video filters and effects to be used in
10360 photo-booth-like software, such as Cheese.")
10361 (license license:gpl2+)))
10362
10363 (define-public cheese
10364 (package
10365 (name "cheese")
10366 (version "3.38.0")
10367 (source (origin
10368 (method url-fetch)
10369 (uri (string-append "mirror://gnome/sources/" name "/"
10370 (version-major+minor version) "/" name "-"
10371 version ".tar.xz"))
10372 (sha256
10373 (base32
10374 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10375 (arguments
10376 `(#:glib-or-gtk? #t
10377 ;; Tests require GDK.
10378 #:tests? #f
10379 #:phases
10380 (modify-phases %standard-phases
10381 (add-after 'unpack 'skip-gtk-update-icon-cache
10382 (lambda _
10383 ;; Don't create 'icon-theme.cache'
10384 (substitute* "meson_post_install.py"
10385 (("gtk-update-icon-cache") (which "true")))
10386 #t))
10387 (add-after 'unpack 'patch-docbook-xml
10388 (lambda* (#:key inputs #:allow-other-keys)
10389 ;; Avoid a network connection attempt during the build.
10390 (substitute* '("docs/reference/cheese.xml"
10391 "docs/reference/cheese-docs.xml")
10392 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10393 (string-append (assoc-ref inputs "docbook-xml")
10394 "/xml/dtd/docbook/docbookx.dtd")))
10395 #t))
10396 (add-after 'install 'wrap-cheese
10397 (lambda* (#:key inputs outputs #:allow-other-keys)
10398 (let ((out (assoc-ref outputs "out"))
10399 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10400 (wrap-program (string-append out "/bin/cheese")
10401 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10402 #t)))))
10403 (build-system meson-build-system)
10404 (native-inputs
10405 `(("docbook-xsl" ,docbook-xsl)
10406 ("docbook-xml" ,docbook-xml-4.3)
10407 ("gettext" ,gettext-minimal)
10408 ("glib:bin" ,glib "bin")
10409 ("gtk-doc" ,gtk-doc)
10410 ("itstool" ,itstool)
10411 ("libxml2" ,libxml2)
10412 ("libxslt" ,libxslt)
10413 ("pkg-config" ,pkg-config)
10414 ("vala" ,vala)))
10415 (propagated-inputs
10416 `(("gnome-video-effects" ,gnome-video-effects)
10417 ("clutter" ,clutter)
10418 ("clutter-gst" ,clutter-gst)
10419 ("clutter-gtk" ,clutter-gtk)
10420 ("libcanberra" ,libcanberra)
10421 ("gdk-pixbuf" ,gdk-pixbuf)
10422 ("glib" ,glib)
10423 ("gstreamer" ,gstreamer)))
10424 (inputs
10425 `(("gnome-desktop" ,gnome-desktop)
10426 ("gobject-introspection" ,gobject-introspection)
10427 ("gst-plugins-base" ,gst-plugins-base)
10428 ("gst-plugins-good" ,gst-plugins-good)
10429 ("gst-plugins-bad" ,gst-plugins-bad)
10430 ("gtk+" ,gtk+)
10431 ("libx11" ,libx11)
10432 ("libxtst" ,libxtst)))
10433 (home-page "https://wiki.gnome.org/Apps/Cheese")
10434 (synopsis "Webcam photo booth software for GNOME")
10435 (description
10436 "Cheese uses your webcam to take photos and videos. Cheese can also
10437 apply fancy special effects and lets you share the fun with others.")
10438 (license license:gpl2+)))
10439
10440 (define-public passwordsafe
10441 (package
10442 (name "passwordsafe")
10443 (version "3.99.2")
10444 (source
10445 (origin
10446 (method git-fetch)
10447 (uri (git-reference
10448 (url "https://gitlab.gnome.org/World/PasswordSafe")
10449 (commit version)))
10450 (file-name (git-file-name name version))
10451 (sha256
10452 (base32 "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf"))))
10453 (build-system meson-build-system)
10454 (arguments
10455 `(#:glib-or-gtk? #t
10456 #:phases
10457 (modify-phases %standard-phases
10458 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10459 (lambda* (#:key outputs #:allow-other-keys)
10460 (let ((prog (string-append (assoc-ref outputs "out")
10461 "/bin/gnome-passwordsafe"))
10462 (pylib (string-append (assoc-ref outputs "out")
10463 "/lib/python"
10464 ,(version-major+minor
10465 (package-version python))
10466 "/site-packages")))
10467 (wrap-program prog
10468 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10469 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10470 #t))))))
10471 (native-inputs
10472 `(("desktop-file-utils" ,desktop-file-utils)
10473 ("gettext" ,gettext-minimal)
10474 ("glib:bin" ,glib "bin")
10475 ("gobject-introspection" ,gobject-introspection)
10476 ("gtk+:bin" ,gtk+ "bin")
10477 ("pkg-config" ,pkg-config)))
10478 (inputs
10479 `(("glib" ,glib)
10480 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10481 ("gtk+" ,gtk+)
10482 ("libhandy" ,libhandy-0.0)
10483 ("libpwquality" ,libpwquality)
10484 ("python-pygobject" ,python-pygobject)
10485 ("python-pykeepass" ,python-pykeepass)))
10486 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
10487 (synopsis "Password manager for the GNOME desktop")
10488 (description
10489 "Password Safe is a password manager which makes use of the KeePass v4
10490 format. It integrates perfectly with the GNOME desktop and provides an easy
10491 and uncluttered interface for the management of password databases.")
10492 (license license:gpl3+)))
10493
10494 (define-public sound-juicer
10495 (package
10496 (name "sound-juicer")
10497 (version "3.24.0")
10498 (source
10499 (origin
10500 (method url-fetch)
10501 (uri (string-append "mirror://gnome/sources/" name "/"
10502 (version-major+minor version) "/"
10503 name "-" version ".tar.xz"))
10504 (sha256
10505 (base32
10506 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10507 (build-system glib-or-gtk-build-system)
10508 (native-inputs
10509 `(("desktop-file-utils" ,desktop-file-utils)
10510 ("intltool" ,intltool)
10511 ("itstool" ,itstool)
10512 ("pkg-config" ,pkg-config)
10513 ("xmllint" ,libxml2)))
10514 (inputs
10515 `(("gtk+" ,gtk+)
10516 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10517 ("gstreamer" ,gstreamer)
10518 ("gst-plugins-base" ,gst-plugins-base)
10519 ("gst-plugins-good" ,gst-plugins-good)
10520 ("iso-codes" ,iso-codes)
10521 ("libbrasero-media3" ,brasero)
10522 ("libcanberra" ,libcanberra)
10523 ("libdiscid" ,libdiscid)
10524 ("libmusicbrainz" ,libmusicbrainz)
10525 ("neon" ,neon)))
10526 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10527 (synopsis "Audio music cd ripper")
10528 (description "Sound Juicer extracts audio from compact discs and convert it
10529 into audio files that a personal computer or digital audio player can play.
10530 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10531 mp3, Ogg Vorbis and FLAC")
10532 (license license:gpl2+)))
10533
10534 (define-public soundconverter
10535 (package
10536 (name "soundconverter")
10537 (version "3.0.2")
10538 (source
10539 (origin
10540 (method url-fetch)
10541 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10542 version "/+download/"
10543 "soundconverter-" version ".tar.xz"))
10544
10545 (sha256
10546 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10547 (build-system glib-or-gtk-build-system)
10548 (arguments
10549 `(#:imported-modules ((guix build python-build-system)
10550 (guix build glib-or-gtk-build-system)
10551 ,@%gnu-build-system-modules)
10552
10553 #:modules ((guix build glib-or-gtk-build-system)
10554 (guix build utils)
10555 ((guix build gnu-build-system) #:prefix gnu:)
10556 ((guix build python-build-system) #:prefix python:))
10557
10558 #:phases
10559 (modify-phases %standard-phases
10560 (add-after 'install 'wrap-soundconverter-for-python
10561 (assoc-ref python:%standard-phases 'wrap))
10562 (add-after 'install 'wrap-soundconverter
10563 (lambda* (#:key inputs outputs #:allow-other-keys)
10564 (let ((out (assoc-ref outputs "out"))
10565 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10566 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10567 (wrap-program (string-append out "/bin/soundconverter")
10568 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10569 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10570 #t)))))
10571 (native-inputs
10572 `(("intltool" ,intltool)
10573 ("pkg-config" ,pkg-config)
10574 ("glib:bin" ,glib "bin")))
10575 (inputs
10576 `(("gtk+" ,gtk+)
10577 ("python" ,python)
10578 ("python-pygobject" ,python-pygobject)
10579 ("gstreamer" ,gstreamer)
10580 ("gst-plugins-base" ,gst-plugins-base)))
10581 (home-page "https://soundconverter.org/")
10582 (synopsis "Convert between audio formats with a graphical interface")
10583 (description
10584 "SoundConverter supports converting between many audio formats including
10585 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10586 configurable file renaming. ")
10587 (license license:gpl3)))
10588
10589 (define-public workrave
10590 (package
10591 (name "workrave")
10592 (version "1.10.42")
10593 (source
10594 (origin
10595 (method git-fetch)
10596 (uri (git-reference
10597 (url "https://github.com/rcaelers/workrave")
10598 (commit (string-append "v" (string-map
10599 (match-lambda (#\. #\_) (chr chr))
10600 version)))))
10601 (file-name (git-file-name name version))
10602 (sha256
10603 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
10604 (build-system glib-or-gtk-build-system)
10605 (arguments
10606 ;; The only tests are maintainer tests (in po/), which fail.
10607 `(#:tests? #f))
10608 (inputs `(("glib" ,glib)
10609 ("gtk+" ,gtk+)
10610 ("gdk-pixbuf" ,gdk-pixbuf)
10611 ("gtkmm" ,gtkmm)
10612 ("glibmm" ,glibmm)
10613 ("libx11" ,libx11)
10614 ("libxtst" ,libxtst)
10615 ("dconf" ,dconf)
10616 ("libice" ,libice)
10617 ("libsm" ,libsm)
10618 ("libxscrnsaver" ,libxscrnsaver)))
10619 (native-inputs `(("boost" ,boost)
10620 ("pkg-config" ,pkg-config)
10621 ("gettext" ,gettext-minimal)
10622 ("autoconf" ,autoconf)
10623 ("autoconf-archive" , autoconf-archive)
10624 ("automake" ,automake)
10625 ("libtool" ,libtool)
10626 ("intltool" ,intltool)
10627 ("gobject-introspection" ,gobject-introspection)
10628 ("python3" ,python-3)
10629 ("python-jinja2" ,python-jinja2)))
10630 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10631 (description
10632 "Workrave is a program that assists in the recovery and prevention of
10633 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10634 micro-pauses and rest breaks, and restricts you to your daily limit.")
10635 (home-page "http://www.workrave.org")
10636 (license license:gpl3+)))
10637
10638 (define-public ghex
10639 (package
10640 (name "ghex")
10641 (version "3.18.4")
10642 (source (origin
10643 (method url-fetch)
10644 (uri (string-append "mirror://gnome/sources/ghex/"
10645 (version-major+minor version) "/"
10646 "ghex-" version ".tar.xz"))
10647 (sha256
10648 (base32
10649 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10650 (build-system meson-build-system)
10651 (arguments
10652 '(#:glib-or-gtk? #t
10653 #:phases
10654 (modify-phases %standard-phases
10655 (add-after 'unpack 'skip-gtk-update-icon-cache
10656 ;; Don't create 'icon-theme.cache'.
10657 (lambda _
10658 (substitute* "meson_post_install.py"
10659 (("gtk-update-icon-cache") (which "true")))
10660 #t)))))
10661 (native-inputs
10662 `(("pkg-config" ,pkg-config)
10663 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10664 ("gnome-common" ,gnome-common)
10665 ("which" ,which)
10666 ("intltool" ,intltool)
10667 ("yelp-tools" ,yelp-tools)
10668 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10669 (inputs
10670 `(("atk" ,atk)
10671 ("gtk" ,gtk+)))
10672 (synopsis "GNOME hexadecimal editor")
10673 (description "The GHex program can view and edit files in two ways:
10674 hexadecimal or ASCII. It is useful for editing binary files in general.")
10675 (home-page "https://wiki.gnome.org/Apps/Ghex")
10676 (license license:gpl2)))
10677
10678 (define-public libdazzle
10679 (package
10680 (name "libdazzle")
10681 (version "3.37.1")
10682 (source (origin
10683 (method url-fetch)
10684 (uri (string-append "mirror://gnome/sources/libdazzle/"
10685 (version-major+minor version) "/"
10686 "libdazzle-" version ".tar.xz"))
10687 (sha256
10688 (base32
10689 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10690 (build-system meson-build-system)
10691 (arguments
10692 `(#:phases
10693 (modify-phases %standard-phases
10694 (add-before 'check 'pre-check
10695 (lambda _
10696 ;; Tests require a running X server.
10697 (system "Xvfb :1 &")
10698 (setenv "DISPLAY" ":1")
10699 #t)))))
10700 (native-inputs
10701 `(("glib" ,glib "bin") ; glib-compile-resources
10702 ("pkg-config" ,pkg-config)
10703 ;; For tests.
10704 ("xorg-server" ,xorg-server-for-tests)))
10705 (inputs
10706 `(("glib" ,glib)
10707 ("gobject-introspection" ,gobject-introspection)
10708 ("gtk+" ,gtk+)
10709 ("vala" ,vala)))
10710 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10711 (synopsis "Companion library to GObject and Gtk+")
10712 (description "The libdazzle library is a companion library to GObject and
10713 Gtk+. It provides various features that the authors wish were in the
10714 underlying library but cannot for various reasons. In most cases, they are
10715 wildly out of scope for those libraries. In other cases, they are not quite
10716 generic enough to work for everyone.")
10717 (license license:gpl3+)))
10718
10719 (define-public evolution
10720 (package
10721 (name "evolution")
10722 (version "3.34.2")
10723 (source (origin
10724 (method url-fetch)
10725 (uri (string-append "mirror://gnome/sources/evolution/"
10726 (version-major+minor version) "/"
10727 "evolution-" version ".tar.xz"))
10728 (sha256
10729 (base32
10730 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))
10731 (patches (search-patches "evolution-CVE-2020-11879.patch"))))
10732 (build-system cmake-build-system)
10733 (arguments
10734 `(#:imported-modules (,@%cmake-build-system-modules
10735 (guix build glib-or-gtk-build-system))
10736 #:modules ((guix build cmake-build-system)
10737 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10738 (guix build utils))
10739 #:configure-flags
10740 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10741 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10742 ; in four years and cannot be built.
10743 #:phases
10744 (modify-phases %standard-phases
10745 ;; The build system attempts to install user interface modules to the
10746 ;; output directory of the "evolution-data-server" package. This
10747 ;; change redirects that change.
10748 (add-after 'unpack 'patch-ui-module-dir
10749 (lambda* (#:key outputs #:allow-other-keys)
10750 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10751 (("\\$\\{edsuimoduledir\\}")
10752 (string-append (assoc-ref outputs "out")
10753 "/lib/evolution-data-server/ui-modules")))
10754 #t))
10755 (add-after 'install 'glib-or-gtk-compile-schemas
10756 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10757 (add-after 'install 'glib-or-gtk-wrap
10758 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10759 (native-inputs
10760 `(("glib" ,glib "bin") ; glib-mkenums
10761 ("pkg-config" ,pkg-config)
10762 ("intltool" ,intltool)
10763 ("itstool" ,itstool)))
10764 (inputs
10765 `(("enchant" ,enchant)
10766 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10767 ("gcr" ,gcr)
10768 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10769 ("gnome-autoar" ,gnome-autoar)
10770 ("gnome-desktop" ,gnome-desktop)
10771 ("gspell" ,gspell)
10772 ("highlight" ,highlight)
10773 ("libcanberra" ,libcanberra)
10774 ("libgweather" ,libgweather)
10775 ("libnotify" ,libnotify)
10776 ("libsoup" ,libsoup)
10777 ("nss" ,nss)
10778 ("openldap" ,openldap)
10779 ("webkitgtk" ,webkitgtk)
10780 ("ytnef" ,ytnef)))
10781 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10782 (synopsis "Manage your email, contacts and schedule")
10783 (description "Evolution is a personal information management application
10784 that provides integrated mail, calendaring and address book
10785 functionality.")
10786 ;; See COPYING for details.
10787 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10788 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10789 license:lgpl2.1+)))) ; smime/lib/*
10790
10791 (define-public gthumb
10792 (package
10793 (name "gthumb")
10794 (version "3.10.2")
10795 (source (origin
10796 (method url-fetch)
10797 (uri (string-append "mirror://gnome/sources/gthumb/"
10798 (version-major+minor version) "/"
10799 "gthumb-" version ".tar.xz"))
10800 (sha256
10801 (base32
10802 "14sw8d37g1lkp44dwsgyxjjsgh5pnpp4wq00mcy9p3rp30lf9spx"))))
10803 (build-system meson-build-system)
10804 (arguments
10805 `(#:glib-or-gtk? #t
10806 #:configure-flags
10807 ;; Ensure the RUNPATH contains all installed library locations.
10808 (list (string-append "-Dc_link_args=-Wl,-rpath="
10809 (assoc-ref %outputs "out")
10810 "/lib/gthumb/extensions")
10811 (string-append "-Dcpp_link_args=-Wl,-rpath="
10812 (assoc-ref %outputs "out")
10813 "/lib/gthumb/extensions"))))
10814 (native-inputs
10815 `(("pkg-config" ,pkg-config)
10816 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10817 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10818 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10819 ("intltool" ,intltool)
10820 ("itstool" ,itstool)))
10821 (inputs
10822 `(("exiv2" ,exiv2)
10823 ("gtk" ,gtk+)
10824 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10825 ("gstreamer" ,gstreamer)
10826 ("clutter" ,clutter)
10827 ("clutter-gst" ,clutter-gst)
10828 ("clutter-gtk" ,clutter-gtk)
10829 ("libjpeg" ,libjpeg-turbo)
10830 ("libtiff" ,libtiff)
10831 ("libraw" ,libraw)))
10832 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10833 (synopsis "GNOME image viewer and browser")
10834 (description "GThumb is an image viewer, browser, organizer, editor and
10835 advanced image management tool")
10836 (license license:gpl2+)))
10837
10838 (define-public terminator
10839 (package
10840 (name "terminator")
10841 (version "1.92")
10842 (source (origin
10843 (method url-fetch)
10844 (uri (string-append "https://github.com/gnome-" name "/" name "/"
10845 "releases/download/v" version "/"
10846 name "-" version ".tar.gz"))
10847 (sha256
10848 (base32
10849 "1wbkfp0nk6x9bcwi681zy30qmrp4h754sdz6b7hi9j22mmvdd50z"))))
10850 (build-system python-build-system)
10851 (native-inputs
10852 `(("gettext" ,gettext-minimal)
10853 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10854 ("gobject-introspection" ,gobject-introspection)
10855 ("intltool" ,intltool)
10856 ("pkg-config" ,pkg-config)
10857 ("python-psutil" ,python-psutil)
10858 ("python-pytest-runner" ,python-pytest-runner)
10859 ("python-pytest" ,python-pytest)))
10860 (inputs
10861 `(("cairo" ,cairo)
10862 ("dbus-glib" ,dbus-glib)
10863 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10864 ("gtk+" ,gtk+)
10865 ("python-pycairo" ,python-pycairo)
10866 ("python-pygobject" ,python-pygobject)
10867 ("vte" ,vte)))
10868 (propagated-inputs
10869 `(("python-configobj" ,python-configobj)))
10870 (arguments
10871 `(#:imported-modules ((guix build glib-or-gtk-build-system)
10872 ,@%python-build-system-modules)
10873 #:modules ((guix build python-build-system)
10874 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10875 (guix build utils))
10876 #:phases
10877 (modify-phases %standard-phases
10878 (add-after
10879 'install 'wrap-program
10880 (lambda* (#:key outputs #:allow-other-keys)
10881 (let ((prog (string-append (assoc-ref outputs "out")
10882 "/bin/terminator"))
10883 (pylib (string-append (assoc-ref outputs "out")
10884 "/lib/python"
10885 ,(version-major+minor
10886 (package-version python))
10887 "/site-packages")))
10888 (wrap-program prog
10889 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10890 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10891 #t)))
10892 (add-after 'wrap-program 'glib-or-gtk-wrap
10893 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10894 (home-page "https://gnome-terminator.org/")
10895 (synopsis "Store and run multiple GNOME terminals in one window")
10896 (description
10897 "Terminator allows you to run multiple GNOME terminals in a grid and
10898 tabs, and it supports drag and drop re-ordering of terminals.")
10899 (license license:gpl2)))
10900
10901 (define-public libhandy
10902 (package
10903 (name "libhandy")
10904 (version "1.0.3")
10905 (source
10906 (origin
10907 (method git-fetch)
10908 (uri (git-reference
10909 (url "https://gitlab.gnome.org/GNOME/libhandy")
10910 (commit version)))
10911 (file-name (git-file-name name version))
10912 (sha256
10913 (base32 "0flgwlm921801i3ns0dwqpnxl89f3rzn4y9h723i13bmflch3in7"))))
10914 (build-system meson-build-system)
10915 (arguments
10916 `(#:configure-flags
10917 '("-Dglade_catalog=enabled"
10918 "-Dgtk_doc=true")
10919 #:phases
10920 (modify-phases %standard-phases
10921 (add-before 'check 'pre-check
10922 (lambda _
10923 ;; Tests require a running X server.
10924 (system "Xvfb :1 &")
10925 (setenv "DISPLAY" ":1")
10926 #t)))))
10927 (inputs
10928 `(("gtk+" ,gtk+)
10929 ("glade" ,glade3)
10930 ("libxml2" ,libxml2)))
10931 (native-inputs
10932 `(("glib:bin" ,glib "bin")
10933 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10934 ("vala" ,vala)
10935 ("gtk-doc" ,gtk-doc)
10936 ("pkg-config" ,pkg-config)
10937 ("gettext" ,gettext-minimal)
10938
10939 ;; Test suite dependencies.
10940 ("xorg-server" ,xorg-server-for-tests)
10941 ("hicolor-icon-theme" ,hicolor-icon-theme)))
10942 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
10943 (synopsis "Library full of GTK+ widgets for mobile phones")
10944 (description "The aim of the handy library is to help with developing user
10945 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10946 for usage on small and big screens.")
10947 (license license:lgpl2.1+)))
10948
10949 (define-public libhandy-0.0
10950 (package
10951 (inherit libhandy)
10952 (version "0.0.13")
10953 (source
10954 (origin
10955 (method git-fetch)
10956 (uri (git-reference
10957 (url "https://gitlab.gnome.org/GNOME/libhandy")
10958 (commit (string-append "v" version))))
10959 (file-name (git-file-name "libhandy" version))
10960 (sha256
10961 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
10962 (arguments
10963 (substitute-keyword-arguments (package-arguments libhandy)
10964 ((#:configure-flags flags)
10965 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
10966
10967 (define-public libgit2-glib
10968 (package
10969 (name "libgit2-glib")
10970 (version "0.99.0.1")
10971 (source (origin
10972 (method url-fetch)
10973 (uri (string-append "mirror://gnome/sources/" name "/"
10974 (version-major+minor version) "/"
10975 name "-" version ".tar.xz"))
10976 (sha256
10977 (base32
10978 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10979 (build-system meson-build-system)
10980 (native-inputs
10981 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
10982 ("gobject-introspection" ,gobject-introspection)
10983 ("pkg-config" ,pkg-config)
10984 ("python-pygobject" ,python-pygobject)
10985 ("python-wrapper" ,python-wrapper)
10986 ("vala" ,vala)))
10987 (inputs
10988 `(("glib" ,glib)
10989 ("libssh2" ,libssh2)))
10990 (propagated-inputs
10991 `(;; In Requires of libgit2-glib.pc.
10992 ("libgit2" ,libgit2)))
10993 (synopsis "GLib wrapper around the libgit2 Git access library")
10994 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
10995 access library. It only implements the core plumbing functions, not really the
10996 higher level porcelain stuff.")
10997 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
10998 (license license:gpl2+)))
10999
11000 (define-public gitg
11001 (package
11002 (name "gitg")
11003 (version "3.32.1")
11004 (source (origin
11005 (method url-fetch)
11006 (uri (string-append "mirror://gnome/sources/" name "/"
11007 (version-major+minor version) "/"
11008 name "-" version ".tar.xz"))
11009 (sha256
11010 (base32
11011 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
11012 (build-system meson-build-system)
11013 (arguments
11014 `(#:glib-or-gtk? #t
11015 #:phases
11016 (modify-phases %standard-phases
11017 (add-after 'unpack 'disable-post-install-partially
11018 (lambda _
11019 (substitute* "meson_post_install.py"
11020 (("'python'") ; there are no python sources to compile
11021 (string-append "'" (which "true") "'"))
11022 (("gtk-update-icon-cache") (which "true")))
11023 #t))
11024 (add-after 'unpack 'fix-test-sources
11025 (lambda _
11026 (substitute* "tests/libgitg/test-commit.vala"
11027 (("/bin/bash") (which "bash")))
11028 #t))
11029 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11030 (lambda* (#:key outputs #:allow-other-keys)
11031 (let ((prog (string-append (assoc-ref outputs "out")
11032 "/bin/gitg")))
11033 (wrap-program prog
11034 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11035 #t))))))
11036 (inputs
11037 `(("glib" ,glib)
11038 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11039 ("gtk+" ,gtk+)
11040 ("gtkspell3" ,gtkspell3)
11041 ("gtksourceview" ,gtksourceview-3)
11042 ("json-glib" ,json-glib)
11043 ("libdazzle" ,libdazzle)
11044 ("libgee" ,libgee)
11045 ("libgit2-glib" ,libgit2-glib)
11046 ("libpeas" ,libpeas)
11047 ("libsecret" ,libsecret)
11048 ("libsoup" ,libsoup)
11049 ("libxml2" ,libxml2)))
11050 (native-inputs
11051 `(("glib:bin" ,glib "bin")
11052 ("gtk+:bin" ,gtk+ "bin")
11053 ("gobject-introspection" ,gobject-introspection)
11054 ("intltool" ,intltool)
11055 ("pkg-config" ,pkg-config)
11056 ("vala" ,vala)))
11057 (synopsis "Graphical user interface for git")
11058 (description
11059 "gitg is a graphical user interface for git. It aims at being a small,
11060 fast and convenient tool to visualize the history of git repositories.
11061 Besides visualization, gitg also provides several utilities to manage your
11062 repository and commit your work.")
11063 (home-page "https://wiki.gnome.org/Apps/Gitg")
11064 (license license:gpl2+)))
11065
11066 (define-public gamin
11067 (package
11068 (name "gamin")
11069 (version "0.1.10")
11070 (source (origin
11071 (method url-fetch)
11072 (uri (string-append "mirror://gnome/sources/" name "/"
11073 (version-major+minor version) "/"
11074 name "-" version ".tar.bz2"))
11075 (sha256
11076 (base32
11077 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11078 (build-system gnu-build-system)
11079 (arguments
11080 `(#:phases
11081 (modify-phases %standard-phases
11082 (add-after 'unpack 'remove-deprecated-macro
11083 (lambda _
11084 (substitute* '("server/gam_node.c"
11085 "server/gam_subscription.h"
11086 "server/gam_node.h"
11087 "server/gam_subscription.c")
11088 (("G_CONST_RETURN") "const"))
11089 #t)))))
11090 (inputs
11091 `(("glib" ,glib)))
11092 (native-inputs
11093 `(("intltool" ,intltool)
11094 ("pkg-config" ,pkg-config)))
11095 (home-page "https://people.gnome.org/~veillard/gamin/")
11096 (synopsis "File alteration monitor")
11097 (description
11098 "Gamin is a file and directory monitoring system defined to be a subset
11099 of the FAM (File Alteration Monitor) system. This is a service provided by a
11100 library which detects when a file or a directory has been modified.")
11101 (license license:gpl2+)))
11102
11103 (define-public gnome-mahjongg
11104 (package
11105 (name "gnome-mahjongg")
11106 (version "3.35.1")
11107 (source (origin
11108 (method git-fetch)
11109 (uri (git-reference
11110 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
11111 (commit version)))
11112 (file-name (git-file-name name version))
11113 (sha256
11114 (base32
11115 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
11116 (build-system meson-build-system)
11117 (arguments
11118 `(#:glib-or-gtk? #t))
11119 (native-inputs
11120 `(("appstream-glib" ,appstream-glib)
11121 ("gettext" ,gettext-minimal)
11122 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11123 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11124 ("itstool" ,itstool)
11125 ("pkg-config" ,pkg-config)
11126 ("vala" ,vala)))
11127 (propagated-inputs
11128 `(("dconf" ,dconf)))
11129 (inputs
11130 `(("glib" ,glib)
11131 ("gtk+" ,gtk+)
11132 ("librsvg" ,librsvg)))
11133 (synopsis "Mahjongg tile-matching game")
11134 (description "GNOME Mahjongg is a game based on the classic Chinese
11135 tile-matching game Mahjong. It features multiple board layouts, tile themes,
11136 and a high score table.")
11137 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11138 (license license:gpl2+)))
11139
11140 (define-public gnome-themes-extra
11141 (package
11142 (name "gnome-themes-extra")
11143 (version "3.28")
11144 (source
11145 (origin
11146 (method url-fetch)
11147 (uri (string-append "mirror://gnome/sources/" name "/"
11148 (version-major+minor version) "/" name "-"
11149 version ".tar.xz"))
11150 (sha256
11151 (base32
11152 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11153 (build-system gnu-build-system)
11154 (arguments
11155 '(#:configure-flags
11156 ;; Don't create 'icon-theme.cache'.
11157 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11158 (true (string-append coreutils "/bin/true")))
11159 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11160 (native-inputs
11161 `(("glib:bin" ,glib "bin")
11162 ("intltool" ,intltool)
11163 ("pkg-config" ,pkg-config)))
11164 (inputs
11165 `(("glib" ,glib)
11166 ("gtk+" ,gtk+)
11167 ("gtk+-2" ,gtk+-2)
11168 ("librsvg" ,librsvg)
11169 ("libxml2" ,libxml2)))
11170 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11171 (synopsis "GNOME Extra Themes")
11172 (description "This package provides themes and related elements that don't
11173 really fit in other upstream packages. It offers legacy support for GTK+ 2
11174 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11175 index files needed for Adwaita to be used outside of GNOME.")
11176 (license license:lgpl2.1+)))
11177
11178 (define-public gnote
11179 (package
11180 (name "gnote")
11181 (version "3.38.1")
11182 (source
11183 (origin
11184 (method url-fetch)
11185 (uri (string-append "mirror://gnome/sources/" name "/"
11186 (version-major+minor version) "/"
11187 "gnote-" version ".tar.xz"))
11188 (sha256
11189 (base32 "1adjfjhmsm2d33999khjyzvli6kiz1jlzavn77jhd49kfzhxa9y4"))))
11190 (build-system glib-or-gtk-build-system)
11191 (native-inputs
11192 `(("desktop-file-utils" ,desktop-file-utils)
11193 ("glib:bin" ,glib "bin")
11194 ("gobject-introspection" ,gobject-introspection)
11195 ("intltool" ,intltool)
11196 ("itstool" ,itstool)
11197 ("pkg-config" ,pkg-config)
11198 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
11199 (inputs
11200 `(("glibmm" ,glibmm)
11201 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11202 ("gspell" ,gspell)
11203 ("gtk+" ,gtk+)
11204 ("gtkmm" ,gtkmm)
11205 ("libsecret" ,libsecret)
11206 ("libuuid" ,util-linux "lib")
11207 ("libxml2" ,libxml2)
11208 ("libxslt" ,libxslt)))
11209 (synopsis "Note-taking application for the GNOME desktop")
11210 (description
11211 "Gnote is a note-taking application written for the GNOME desktop
11212 environment.")
11213 (home-page "https://wiki.gnome.org/Apps/Gnote")
11214 (license license:gpl3+)))
11215
11216 (define-public polari
11217 (package
11218 (name "polari")
11219 (version "3.36.3")
11220 (source (origin
11221 (method url-fetch)
11222 (uri (string-append "mirror://gnome/sources/polari/"
11223 (version-major+minor version)
11224 "/polari-" version ".tar.xz"))
11225 (sha256
11226 (base32
11227 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11228 (build-system meson-build-system)
11229 (arguments
11230 `(#:glib-or-gtk? #t
11231 #:phases
11232 (modify-phases %standard-phases
11233 (add-after 'unpack 'skip-gtk-update-icon-cache
11234 (lambda _
11235 (substitute* "meson/meson-postinstall.sh"
11236 (("gtk-update-icon-cache") (which "true")))
11237 #t))
11238 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11239 (lambda* (#:key outputs #:allow-other-keys)
11240 (let ((prog (string-append (assoc-ref outputs "out")
11241 "/bin/polari")))
11242 (wrap-program prog
11243 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11244 #t))))))
11245 (inputs
11246 `(("glib" ,glib)
11247 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11248 ("gspell" ,gspell)
11249 ("gtk+" ,gtk+)
11250 ("gjs" ,gjs)
11251 ("libsecret" ,libsecret)
11252 ("libsoup" ,libsoup)
11253 ("telepathy-glib" ,telepathy-glib)
11254 ("telepathy-logger" ,telepathy-logger)))
11255 (native-inputs
11256 `(("glib:bin" ,glib "bin")
11257 ("gobject-introspection" ,gobject-introspection)
11258 ("intltool" ,intltool)
11259 ("pkg-config" ,pkg-config)
11260 ("yelp-tools" ,yelp-tools)))
11261 (propagated-inputs
11262 `(("telepathy-idle" ,telepathy-idle)
11263 ("telepathy-mission-control" ,telepathy-mission-control)))
11264 (synopsis "Simple IRC Client")
11265 (description
11266 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11267 integrate seamlessly with the GNOME desktop.")
11268 (home-page "https://wiki.gnome.org/Apps/Polari")
11269 (license license:gpl2+)))
11270
11271 (define-public gnome-boxes
11272 (package
11273 (name "gnome-boxes")
11274 (version "3.36.6")
11275 (source
11276 (origin
11277 (method url-fetch)
11278 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11279 (version-major+minor version) "/"
11280 "gnome-boxes-" version ".tar.xz"))
11281 (sha256
11282 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11283 (build-system meson-build-system)
11284 (arguments
11285 '(#:glib-or-gtk? #t
11286 #:configure-flags (list "-Drdp=false"
11287 (string-append "-Dc_link_args=-Wl,-rpath="
11288 (assoc-ref %outputs "out")
11289 "/lib/gnome-boxes"))))
11290 (native-inputs
11291 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11292 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11293 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11294 ("itstool" ,itstool)
11295 ("intltool" ,intltool)
11296 ("vala" ,vala)
11297 ("pkg-config" ,pkg-config)))
11298 (inputs
11299 `(("libarchive" ,libarchive)
11300 ("glib-networking" ,glib-networking) ;for TLS support
11301 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11302 ("gtk" ,gtk+)
11303 ("gtk-vnc" ,gtk-vnc)
11304 ("libosinfo" ,libosinfo)
11305 ("libsecret" ,libsecret)
11306 ("libsoup" ,libsoup)
11307 ("libusb" ,libusb)
11308 ("libvirt" ,libvirt)
11309 ("libvirt-glib" ,libvirt-glib)
11310 ("libxml" ,libxml2)
11311 ("spice-gtk" ,spice-gtk)
11312 ("sparql-query" ,sparql-query)
11313 ("vte" ,vte)
11314 ("webkitgtk" ,webkitgtk)
11315 ("tracker" ,tracker)
11316 ("libgudev" ,libgudev)))
11317 (home-page "https://wiki.gnome.org/Apps/Boxes")
11318 (synopsis "View, access, and manage remote and virtual systems")
11319 (description "GNOME Boxes is a simple application to view, access, and
11320 manage remote and virtual systems. Note that this application requires the
11321 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11322 @command{info '(guix) Virtualization Services'} to learn how to configure
11323 these services on the Guix System.")
11324 (license (list
11325 ;; For data/icons/empty-boxes.png.
11326 license:cc-by2.0
11327 ;; For all others.
11328 license:lgpl2.0+))))
11329
11330 (define-public geary
11331 (package
11332 (name "geary")
11333 (version "3.34.1")
11334 (source (origin
11335 (method git-fetch)
11336 (uri (git-reference
11337 (url "https://gitlab.gnome.org/GNOME/geary")
11338 (commit version)))
11339 (file-name (git-file-name name version))
11340 (sha256
11341 (base32
11342 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))
11343 (patches (search-patches "geary-CVE-2020-24661.patch"))))
11344 (build-system meson-build-system)
11345 (arguments
11346 `(#:glib-or-gtk? #t
11347 #:phases (modify-phases %standard-phases
11348 (add-after 'unpack 'disable-failing-tests
11349 (lambda _
11350 (substitute* "test/meson.build"
11351 (("test\\('client-tests', geary_test_client_bin\\)")
11352 ""))
11353 #t))
11354 (add-after 'unpack 'disable-postinstall-script
11355 (lambda _
11356 (substitute* "meson.build"
11357 (("meson.add_install_script\\(\
11358 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11359 ""))
11360 #t))
11361 (add-before 'check 'setup-xvfb
11362 (lambda _
11363 (system "Xvfb :1 &")
11364 (setenv "DISPLAY" ":1")
11365 #t)))))
11366 (inputs
11367 `(("enchant" ,enchant)
11368 ("folks" ,folks)
11369 ("gcr" ,gcr)
11370 ("glib" ,glib)
11371 ("gmime" ,gmime-2.6)
11372 ("gnome-online-accounts:lib"
11373 ,gnome-online-accounts "lib")
11374 ("gspell" ,gspell)
11375 ("gtk+" ,gtk+)
11376 ("iso-codes" ,iso-codes)
11377 ("json-glib" ,json-glib)
11378 ("libcanberra" ,libcanberra)
11379 ("libgee" ,libgee)
11380 ("libhandy" ,libhandy-0.0)
11381 ("libpeas" ,libpeas)
11382 ("libsecret" ,libsecret)
11383 ("libunwind" ,libunwind)
11384 ("sqlite" ,sqlite)
11385 ("webkitgtk" ,webkitgtk)
11386 ("ytnef" ,ytnef)))
11387 (native-inputs
11388 `(("appstream-glib" ,appstream-glib)
11389 ("cmake-minimal" ,cmake-minimal)
11390 ("desktop-file-utils" ,desktop-file-utils)
11391 ("gettext" ,gettext-minimal)
11392 ("glib:bin" ,glib "bin")
11393 ("gobject-introspection" ,gobject-introspection)
11394 ("itstool" ,itstool)
11395 ("libarchive" ,libarchive)
11396 ("libxml2" ,libxml2)
11397 ("pkg-config" ,pkg-config)
11398 ("vala" ,vala)
11399 ("xvfb" ,xorg-server-for-tests)))
11400 (synopsis "GNOME email application built around conversations")
11401 (description
11402 "Geary collects related messages together into conversations,
11403 making it easy to find and follow your discussions. Full-text and keyword
11404 search makes it easy to find the email you are looking for. Geary's
11405 full-featured composer lets you send rich, styled text with images, links, and
11406 lists, but also send lightweight, easy to read text messages. Geary
11407 automatically picks up your existing GNOME Online Accounts, and adding more is
11408 easy. Geary has a clean, fast, modern interface that works like you want it
11409 to.")
11410 (home-page "https://wiki.gnome.org/Apps/Geary")
11411 (license (list
11412 ;; geary
11413 license:lgpl2.1+
11414 ;; icons
11415 license:cc-by3.0
11416 license:cc-by-sa3.0
11417 license:public-domain
11418 ;; snowball
11419 license:bsd-2))))
11420
11421 (define-public glabels
11422 (package
11423 (name "glabels")
11424 (version "3.4.1")
11425 (source
11426 (origin
11427 (method url-fetch)
11428 (uri (string-append "mirror://gnome/sources/" name "/"
11429 (version-major+minor version) "/"
11430 "glabels-" version ".tar.xz"))
11431 (sha256
11432 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11433 (build-system glib-or-gtk-build-system)
11434 (native-inputs
11435 `(("gettext" ,gettext-minimal)
11436 ("glib:bin" ,glib "bin")
11437 ("intltool" ,intltool)
11438 ("itstool" ,itstool)
11439 ("pkg-config" ,pkg-config)))
11440 (inputs
11441 `(("gtk+" ,gtk+)
11442 ("librsvg" ,librsvg)
11443 ("libxml2" ,libxml2)))
11444 (home-page "https://glabels.org/")
11445 (synopsis "Program for creating labels and business cards")
11446 (description
11447 "gLabels is a program for creating labels and business cards. It is
11448 designed to work with various laser/ink-jet peel-off label and business
11449 card sheets that you’ll find at most office supply stores.")
11450 (license license:gpl3+)))
11451
11452 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11453 (define-public gnome-latex
11454 (package
11455 (name "gnome-latex")
11456 (version "3.36.0")
11457 (source
11458 (origin
11459 (method url-fetch)
11460 (uri (string-append "mirror://gnome/sources/" name "/"
11461 (version-major+minor version) "/"
11462 "gnome-latex-" version ".tar.xz"))
11463 (sha256
11464 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11465 (build-system glib-or-gtk-build-system)
11466 (native-inputs
11467 `(("gettext" ,gettext-minimal)
11468 ("glib:bin" ,glib "bin")
11469 ("gobject-introspection" ,gobject-introspection)
11470 ("gtk-doc" ,gtk-doc)
11471 ("intltool" ,intltool)
11472 ("itstool" ,itstool)
11473 ("pkg-config" ,pkg-config)
11474 ("vala" ,vala)))
11475 (inputs
11476 `(("amtk" ,amtk)
11477 ("dconf" ,dconf)
11478 ("glib" ,glib)
11479 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11480 ("gspell" ,gspell)
11481 ("gtk+" ,gtk+)
11482 ("gtksourceview" ,gtksourceview)
11483 ("libgee" ,libgee)
11484 ("tepl" ,tepl)
11485 ("uchardet" ,uchardet)))
11486 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11487 (synopsis "LaTeX editor for the GNOME desktop")
11488 (description
11489 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11490 such as build tools, completion of LaTeX commands, structure navigation,
11491 symbol tables, document templates, project management, spell-checking, menus
11492 and toolbars.")
11493 (license license:gpl3+)))
11494
11495 (define-public setzer
11496 (package
11497 (name "setzer")
11498 (version "0.4.1")
11499 (source
11500 (origin
11501 (method git-fetch)
11502 (uri (git-reference
11503 (url "https://github.com/cvfosammmm/Setzer")
11504 (commit (string-append "v" version))))
11505 (file-name (git-file-name name version))
11506 (sha256
11507 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
11508 (build-system meson-build-system)
11509 (arguments
11510 `(#:glib-or-gtk? #t
11511 #:phases
11512 (modify-phases %standard-phases
11513 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11514 (lambda* (#:key outputs #:allow-other-keys)
11515 (let ((prog (string-append (assoc-ref outputs "out")
11516 "/bin/setzer"))
11517 (pylib (string-append (assoc-ref outputs "out")
11518 "/lib/python"
11519 ,(version-major+minor
11520 (package-version python))
11521 "/site-packages")))
11522 (wrap-program prog
11523 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
11524 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11525 #t))))))
11526 (native-inputs
11527 `(("desktop-file-utils" ,desktop-file-utils)
11528 ("gettext" ,gettext-minimal)
11529 ("glib:bin" ,glib "bin")
11530 ("gobject-introspection" ,gobject-introspection)
11531 ("gtk+:bin" ,gtk+ "bin")))
11532 (inputs
11533 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11534 ("gspell" ,gspell)
11535 ("gtk+" ,gtk+)
11536 ("gtksourceview" ,gtksourceview)
11537 ("pango" ,pango)
11538 ("poppler" ,poppler)
11539 ("python-pdfminer" ,python-pdfminer-six)
11540 ("python-pycairo" ,python-pycairo)
11541 ("python-pygobject" ,python-pygobject)
11542 ("python-pyxdg" ,python-pyxdg)
11543 ("webkitgtk" ,webkitgtk)
11544 ("xdg-utils" ,xdg-utils)))
11545 (home-page "https://www.cvfosammmm.org/setzer/")
11546 (synopsis "LaTeX editor written in Python with GTK+")
11547 (description
11548 "Setzer is a simple yet full-featured LaTeX editor written in Python with
11549 GTK+. It integrates well with the GNOME desktop environment.")
11550 (license license:gpl3+)))
11551
11552 (define-public libratbag
11553 (package
11554 (name "libratbag")
11555 (version "0.14")
11556 (source
11557 (origin
11558 (method git-fetch)
11559 (uri (git-reference
11560 (url "https://github.com/libratbag/libratbag")
11561 (commit (string-append "v" version))))
11562 (file-name (git-file-name name version))
11563 (sha256
11564 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11565 (build-system meson-build-system)
11566 (arguments
11567 `(#:configure-flags
11568 (list "-Dsystemd=false"
11569 "-Dlogind-provider=elogind")
11570 #:phases
11571 (modify-phases %standard-phases
11572 (add-after 'install 'wrap
11573 (lambda* (#:key inputs outputs #:allow-other-keys)
11574 (let* ((out (assoc-ref outputs "out"))
11575 (site (string-append
11576 "/lib/python"
11577 ,(version-major+minor (package-version python))
11578 "/site-packages"))
11579 (evdev (string-append
11580 (assoc-ref inputs "python-evdev") site))
11581 (pygo (string-append
11582 (assoc-ref inputs "python-pygobject") site))
11583 (python-wrap
11584 `("PYTHONPATH" = (,evdev ,pygo))))
11585 (wrap-program (string-append out "/bin/" "ratbagctl")
11586 python-wrap)
11587 #t))))))
11588 (native-inputs
11589 `(("check" ,check)
11590 ("pkg-config" ,pkg-config)
11591 ("swig" ,swig)
11592 ("valgrind" ,valgrind)))
11593 (inputs
11594 `(("glib" ,glib)
11595 ("json-glib" ,json-glib)
11596 ("libevdev" ,libevdev)
11597 ("libsystemd" ,elogind)
11598 ("libunistring" ,libunistring)
11599 ("python-evdev" ,python-evdev)
11600 ("python-pygobject" ,python-pygobject)
11601 ("udev" ,eudev)))
11602 (home-page "https://github.com/libratbag/libratbag")
11603 (synopsis "DBus daemon and utility for configuring gaming mice")
11604 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11605 configure input devices, mainly gaming mice. The daemon provides a generic
11606 way to access the various features exposed by these mice and abstracts away
11607 hardware-specific and kernel-specific quirks. There is also the
11608 @command{ratbagctl} command line interface for configuring devices.
11609
11610 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11611 Steelseries.
11612
11613 The ratbagd DBus service can be enabled by adding the following service to
11614 your operating-system definition:
11615
11616 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11617 (license license:expat)))
11618
11619 (define-public piper
11620 (package
11621 (name "piper")
11622 (version "0.5.1")
11623 (source
11624 (origin
11625 (method git-fetch)
11626 (uri (git-reference
11627 (url "https://github.com/libratbag/piper")
11628 (commit version)))
11629 (sha256
11630 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11631 (file-name (git-file-name name version))))
11632 (build-system meson-build-system)
11633 (native-inputs
11634 `(("gettext" ,gettext-minimal)
11635 ("glib:bin" ,glib "bin")
11636 ("gobject-introspection" ,gobject-introspection)
11637 ("pkg-config" ,pkg-config)
11638 ("python-flake8" ,python-flake8)))
11639 (inputs
11640 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11641 ("gtk" ,gtk+)
11642 ("gtk:bin" ,gtk+ "bin")
11643 ("librsvg" ,librsvg)
11644 ("python-evdev" ,python-evdev)
11645 ("python-lxml" ,python-lxml)
11646 ("python-pycairo" ,python-pycairo)
11647 ("python-pygobject" ,python-pygobject)))
11648 (arguments
11649 `(#:imported-modules ((guix build python-build-system)
11650 ,@%meson-build-system-modules)
11651 #:modules (((guix build python-build-system) #:prefix python:)
11652 (guix build meson-build-system)
11653 (guix build utils))
11654 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11655 #:phases
11656 (modify-phases %standard-phases
11657 (add-after 'unpack 'dont-update-gtk-icon-cache
11658 (lambda _
11659 (substitute* "meson.build"
11660 (("meson.add_install_script('meson_install.sh')") ""))
11661 #t))
11662 ;; TODO: Switch to wrap-script when it is fixed.
11663 (add-after 'install 'wrap-python
11664 (assoc-ref python:%standard-phases 'wrap))
11665 (add-after 'wrap-python 'wrap
11666 (lambda* (#:key outputs #:allow-other-keys)
11667 (wrap-program
11668 (string-append (assoc-ref outputs "out" )"/bin/piper")
11669 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11670 #t)))))
11671 (home-page "https://github.com/libratbag/piper/")
11672 (synopsis "Configure bindings and LEDs on gaming mice")
11673 (description "Piper is a GTK+ application for configuring gaming mice with
11674 onboard configuration for key bindings via libratbag. Piper requires
11675 a @command{ratbagd} daemon running with root privileges. It can be run
11676 manually as root, but is preferably configured as a DBus service that can
11677 launch on demand. This can be configured by enabling the following service,
11678 provided there is a DBus service present:
11679
11680 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11681 (license license:gpl2)))
11682
11683 (define-public parlatype
11684 (package
11685 (name "parlatype")
11686 (version "2.1")
11687 (source
11688 (origin
11689 (method git-fetch)
11690 (uri (git-reference
11691 (url "https://github.com/gkarsay/parlatype")
11692 (commit (string-append "v" version))))
11693 (file-name (git-file-name name version))
11694 (sha256
11695 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11696 (build-system meson-build-system)
11697 (arguments
11698 `(#:glib-or-gtk? #t
11699 #:tests? #f ;require internet access
11700 #:phases
11701 (modify-phases %standard-phases
11702 (add-after 'install 'wrap-parlatype
11703 ;; Add gstreamer plugin provided in this package to system's
11704 ;; plugins.
11705 (lambda* (#:key outputs #:allow-other-keys)
11706 (let* ((out (assoc-ref outputs "out"))
11707 (gst-plugin-path (string-append
11708 out "/lib/gstreamer-1.0/"
11709 ":"
11710 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11711 (wrap-program (string-append out "/bin/parlatype")
11712 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11713 #t)))))
11714 (native-inputs
11715 `(("appstream-glib" ,appstream-glib)
11716 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11717 ("gettext" ,gettext-minimal)
11718 ("glib" ,glib "bin") ;for glib-compile-resources
11719 ("pkg-config" ,pkg-config)
11720 ("yelp-tools" ,yelp-tools)))
11721 (inputs
11722 `(("gst-plugins-base" ,gst-plugins-base)
11723 ("gst-plugins-good" ,gst-plugins-good)
11724 ("gstreamer" ,gstreamer)
11725 ("gtk+" ,gtk+)
11726 ("pocketsphinx" ,pocketsphinx)
11727 ("pulseaudio" ,pulseaudio)
11728 ("sphinxbase" ,sphinxbase)))
11729 (home-page "http://gkarsay.github.io/parlatype/")
11730 (synopsis "GNOME audio player for transcription")
11731 (description "Parlatype is an audio player for the GNOME desktop
11732 environment. Its main purpose is the manual transcription of spoken
11733 audio files.")
11734 (license license:gpl3+)))
11735
11736 (define-public jsonrpc-glib
11737 (package
11738 (name "jsonrpc-glib")
11739 (version "3.34.0")
11740 (source (origin
11741 (method url-fetch)
11742 (uri (string-append "mirror://gnome/sources/" name "/"
11743 (version-major+minor version) "/"
11744 name "-" version ".tar.xz"))
11745 (sha256
11746 (base32
11747 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11748 (build-system meson-build-system)
11749 (inputs
11750 `(("json-glib" ,json-glib)
11751 ("glib" ,glib)))
11752 (native-inputs
11753 `(("pkg-config" ,pkg-config)
11754 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11755 ("gobject-introspection" ,gobject-introspection)
11756 ("vala" ,vala)))
11757 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11758 (synopsis "JSON-RPC library for GLib")
11759 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11760 peers in either a synchronous or asynchronous fashion. It also allows
11761 communicating using the GVariant serialization format instead of JSON when
11762 both peers support it. You might want that when communicating on a single
11763 host to avoid parser overhead and memory-allocator fragmentation.")
11764 (license license:lgpl2.1+)))
11765
11766 (define-public feedbackd
11767 (package
11768 (name "feedbackd")
11769 (version "0.0.0+git20200527")
11770 (source (origin
11771 (method git-fetch)
11772 (uri (git-reference
11773 (url "https://source.puri.sm/Librem5/feedbackd.git")
11774 (commit (string-append "v" version))))
11775 (file-name (git-file-name name version))
11776 (sha256
11777 (base32
11778 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11779 (build-system meson-build-system)
11780 (native-inputs
11781 `(("glib:bin" ,glib "bin")
11782 ("gobject-introspection" ,gobject-introspection)
11783 ("pkg-config" ,pkg-config)
11784 ("vala" ,vala)))
11785 (inputs
11786 `(("dbus" ,dbus)
11787 ("gsound" ,gsound)
11788 ("json-glib" ,json-glib)
11789 ("libgudev" ,libgudev)))
11790 (propagated-inputs
11791 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11792 (synopsis "Haptic/visual/audio feedback via DBus")
11793 (description "Feedbackd provides a DBus daemon to act on events to provide
11794 haptic, visual and audio feedback. It offers the libfeedbackd library and
11795 GObject introspection bindings.")
11796 (home-page "https://source.puri.sm/Librem5/feedbackd")
11797 (license (list license:lgpl2.1+ ; libfeedbackd
11798 license:lgpl3+)))) ; the rest
11799
11800 (define-public sysprof
11801 (package
11802 (name "sysprof")
11803 (version "3.36.0")
11804 (source
11805 (origin
11806 (method url-fetch)
11807 (uri (string-append "mirror://gnome/sources/sysprof/"
11808 (version-major+minor version) "/"
11809 "sysprof-" version ".tar.xz"))
11810 (sha256
11811 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11812 (build-system meson-build-system)
11813 (arguments
11814 `(#:configure-flags
11815 (list (string-append "-Dsystemdunitdir="
11816 %output
11817 "/share/systemd"))
11818 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11819 #:phases
11820 (modify-phases %standard-phases
11821 (add-after 'unpack 'patch-install-script
11822 (lambda _
11823 (substitute* "build-aux/meson/post_install.sh"
11824 (("gtk-update-icon-cache") "true")
11825 (("update-desktop-database") "true"))
11826 #t)))))
11827 (inputs
11828 `(("glib" ,glib)
11829 ("gtk+" ,gtk+)
11830 ("libdazzle" ,libdazzle)
11831 ("polkit" ,polkit)))
11832 (native-inputs
11833 `(("gettext" ,gettext-minimal)
11834 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11835 ("itstool" ,itstool)
11836 ("pkg-config" ,pkg-config)
11837 ("xmllint" ,libxml2)))
11838 ;; This home page is so woefully out of date as to be essentially useless.
11839 ;; (home-page "http://www.sysprof.com")
11840 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11841 (synopsis "System-wide performance profiler for GNU/Linux")
11842 (description
11843 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11844 GNU/Linux system including the kernel and all user-space applications. This
11845 helps find the function(s) in which a program spends most of its time.
11846
11847 It uses the kernel's built-in @code{ptrace} feature and handles shared
11848 libraries. Applications do not need to be recompiled--or even restarted.")
11849 (license license:gpl3+)))
11850
11851 (define-public gnome-builder
11852 (package
11853 (name "gnome-builder")
11854 (version "3.36.1")
11855 (source (origin
11856 (method url-fetch)
11857 (uri (string-append "mirror://gnome/sources/" name "/"
11858 (version-major+minor version) "/"
11859 name "-" version ".tar.xz"))
11860 (sha256
11861 (base32
11862 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11863 (build-system meson-build-system)
11864 (arguments
11865 `(#:configure-flags (list "-Dnetwork_tests=false"
11866 ;; TODO: Enable all plugins...
11867 "-Dplugin_clang=false"
11868 "-Dplugin_flatpak=false"
11869 "-Dplugin_glade=false"
11870 ;; XXX: This one has been shown not to work in
11871 ;; <https://issues.guix.gnu.org/45272>
11872 "-Dplugin_jedi=false"
11873 ;; ... except this one.
11874 "-Dplugin_update_manager=false")
11875 #:phases
11876 (modify-phases %standard-phases
11877 (add-after 'unpack 'patch-meson
11878 (lambda* (#:key inputs #:allow-other-keys)
11879 (substitute* "build-aux/meson/post_install.py"
11880 (("gtk-update-icon-cache") "true")
11881 (("update-desktop-database") "true"))
11882 (substitute* "src/libide/meson.build"
11883 (("/usr/lib")
11884 (string-append (assoc-ref inputs "python-pygobject")
11885 "/lib")))
11886 #t))
11887 (add-after 'configure 'fix-ninja
11888 (lambda _
11889 ;; #43296: meson(?) incorrectly assumes we want to link
11890 ;; this PIE against a static libselinux.
11891 (substitute* "build.ninja"
11892 (("libselinux\\.a") "libselinux.so"))
11893 #t))
11894 (add-before 'check 'pre-check
11895 (lambda _
11896 (system "Xvfb :1 &")
11897 (setenv "DISPLAY" ":1")
11898 #t)))))
11899 (inputs
11900 `(("devhelp" ,devhelp)
11901 ("gspell" ,gspell)
11902 ("gtk+" ,gtk+)
11903 ("json-glib" ,json-glib)
11904 ("jsonrpc-glib" ,jsonrpc-glib)
11905 ("libdazzle" ,libdazzle)
11906 ("libgit2-glib" ,libgit2-glib)
11907 ("libpeas" ,libpeas)
11908 ("python-pygobject" ,python-pygobject)
11909 ("sysprof" ,sysprof)
11910 ("template-glib" ,template-glib)
11911 ("vte" ,vte)
11912 ("webkitgtk" ,webkitgtk)))
11913 (propagated-inputs
11914 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11915 (native-inputs
11916 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11917 ("glib:bin" ,glib "bin")
11918 ("gettext" ,gettext-minimal)
11919 ("pkg-config" ,pkg-config)
11920 ("vala" ,vala)
11921 ("xorg-server" ,xorg-server-for-tests)))
11922 (home-page "https://wiki.gnome.org/Apps/Builder")
11923 (synopsis "Toolsmith for GNOME-based applications")
11924 (description "Builder aims to be an integrated development
11925 environment (IDE) for writing GNOME-based software. It features fuzzy search,
11926 auto-completion, a mini code map, documentation browsing, Git integration, an
11927 integrated profiler via Sysprof, debugging support, and more.")
11928 (license license:gpl3+)))
11929
11930 (define-public komikku
11931 (package
11932 (name "komikku")
11933 (version "0.26.1")
11934 (source
11935 (origin
11936 (method git-fetch)
11937 (uri (git-reference
11938 (url "https://gitlab.com/valos/Komikku/")
11939 (commit (string-append "v" version))))
11940 (file-name (git-file-name name version))
11941 (sha256
11942 (base32
11943 "1mas409c14p6g0v10w4cf5hsjbs0922h6h9k9pyj9s8y7yi2ikz2"))))
11944 (build-system meson-build-system)
11945 (arguments
11946 `(#:glib-or-gtk? #t
11947 #:phases
11948 (modify-phases %standard-phases
11949 (add-after 'unpack 'patch-sources
11950 (lambda _
11951 (substitute* "komikku/utils.py"
11952 (("from komikku\\.servers import get_servers_list")
11953 ;; code following that line should migrate old databases
11954 ;; but the line itself results in an import error
11955 "return data_dir_path"))))
11956 (add-after 'unpack 'skip-gtk-update-icon-cache
11957 (lambda _
11958 (substitute* "meson_post_install.py"
11959 (("gtk-update-icon-cache") (which "true")))
11960 #t))
11961 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11962 (lambda* (#:key outputs #:allow-other-keys)
11963 (let ((prog (string-append (assoc-ref outputs "out")
11964 "/bin/komikku")))
11965 (wrap-program prog
11966 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
11967 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11968 #t))))))
11969 (inputs
11970 `(("gtk+" ,gtk+)
11971 ("libhandy" ,libhandy)
11972 ("libnotify" ,libnotify)
11973 ("libsecret" ,libsecret)
11974 ("python-beautifulsoup4" ,python-beautifulsoup4)
11975 ("python-dateparser" ,python-dateparser)
11976 ("python-keyring" ,python-keyring)
11977 ("python-lxml" ,python-lxml)
11978 ("python-magic" ,python-magic)
11979 ("python-pillow" ,python-pillow)
11980 ("python-pure-protobuf" ,python-pure-protobuf)
11981 ("python-pycairo" ,python-pycairo)
11982 ("python-pygobject" ,python-pygobject)
11983 ("python-requests" ,python-requests)
11984 ("python-unidecode" ,python-unidecode)))
11985 (native-inputs
11986 `(("desktop-file-utils" ,desktop-file-utils)
11987 ("gettext" ,gettext-minimal)
11988 ("glib:bin" ,glib "bin")
11989 ("gobject-introspection" ,gobject-introspection)
11990 ("pkg-config" ,pkg-config)))
11991 (home-page "https://gitlab.com/valos/Komikku")
11992 (synopsis "Manga reader for GNOME")
11993 (description "Komikku is an online/offline manga reader for GNOME,
11994 developed with the aim of being used with the Librem 5 phone.")
11995 (license license:gpl3+)))
11996
11997 (define-public libgda
11998 (package
11999 (name "libgda")
12000 (version "5.2.10")
12001 (source
12002 (origin
12003 (method git-fetch)
12004 (uri (git-reference
12005 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
12006 (commit (string-append "LIBGDA_" (string-replace-substring
12007 version "." "_")))))
12008 (file-name (git-file-name name version))
12009 (sha256
12010 (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
12011 (build-system gnu-build-system)
12012 (arguments
12013 `(#:configure-flags '("--enable-vala")
12014 ;; There's a race between check_cnc_lock and check_threaded_cnc
12015 ;; in tests/multi-threading.
12016 #:parallel-tests? #f
12017 #:phases
12018 (modify-phases %standard-phases
12019 (add-after 'unpack 'fix-glade-install
12020 (lambda _
12021 (substitute* "configure.ac"
12022 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
12023 "${datadir}/glade/catalogs")
12024 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
12025 "${datadir}/glade/pixmaps"))
12026 #t))
12027 (add-before 'check 'pre-check
12028 (lambda* (#:key inputs #:allow-other-keys)
12029 ;; Tests require a running X server.
12030 (system "Xvfb :1 &")
12031 (setenv "DISPLAY" ":1")
12032 #t))
12033 (add-after 'install 'symlink-glade-module
12034 (lambda* (#:key outputs #:allow-other-keys)
12035 (let* ((shlib "libgda-ui-5.0.so")
12036 (out (assoc-ref outputs "out"))
12037 (out/lib (string-append out "/lib"))
12038 (moduledir (string-append out/lib "/glade/modules")))
12039 (mkdir-p moduledir)
12040 (symlink (string-append out/lib "/" shlib)
12041 (string-append moduledir "/" shlib))
12042 #t))))))
12043 (propagated-inputs
12044 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
12045 (inputs
12046 `(("glib" ,glib)
12047 ("glade" ,glade3)
12048 ("gtk+" ,gtk+)
12049 ("libsecret" ,libsecret)
12050 ("libxslt" ,libxslt)
12051 ("openssl" ,openssl)
12052 ("vala" ,vala)))
12053 (native-inputs
12054 `(("autoconf" ,autoconf)
12055 ("autoconf-archive" ,autoconf-archive)
12056 ("automake" ,automake)
12057 ("glib:bin" ,glib "bin")
12058 ("gnome-common" ,gnome-common)
12059 ("gobject-introspection" ,gobject-introspection)
12060 ("gtk-doc" ,gtk-doc)
12061 ("intltool" ,intltool)
12062 ("libtool" ,libtool)
12063 ("pkg-config" ,pkg-config)
12064 ("vala" ,vala)
12065 ("which" ,which)
12066 ("xorg-server" ,xorg-server-for-tests)
12067 ("yelp-tools" ,yelp-tools)))
12068 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12069 (synopsis "Uniform data access")
12070 (description
12071 "GNU Data Access (GDA) is an attempt to provide uniform access to
12072 different kinds of data sources (databases, information servers, mail spools,
12073 etc). It is a complete architecture that provides all you need to access
12074 your data.")
12075 (license license:lgpl2.1+)))
12076
12077 (define-public gtranslator
12078 (package
12079 (name "gtranslator")
12080 (version "3.36.0")
12081 (source (origin
12082 (method url-fetch)
12083 (uri (string-append "mirror://gnome/sources/" name "/"
12084 (version-major+minor version) "/"
12085 name "-" version ".tar.xz"))
12086 (sha256
12087 (base32
12088 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
12089 (build-system meson-build-system)
12090 (inputs
12091 `(("json-glib" ,json-glib)
12092 ("jsonrpc-glib" ,jsonrpc-glib)
12093 ("gettext" ,gettext-minimal)
12094 ("glib" ,glib)
12095 ("gtk+" ,gtk+)
12096 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12097 ("gspell" ,gspell)
12098 ("libdazzle" ,libdazzle)
12099 ("libgda" ,libgda)
12100 ("libsoup" ,libsoup)))
12101 (native-inputs
12102 `(("glib:bin" ,glib "bin")
12103 ("itstool" ,itstool)
12104 ("pkg-config" ,pkg-config)))
12105 (propagated-inputs
12106 `(("gtksourceview" ,gtksourceview))) ; required for source view
12107 (arguments
12108 `(#:build-type "release"
12109 #:glib-or-gtk? #t
12110 #:phases
12111 (modify-phases %standard-phases
12112 (add-after 'unpack 'skip-gtk-update-icon-cache
12113 (lambda _
12114 (substitute* "build-aux/meson/meson_post_install.py"
12115 (("gtk-update-icon-cache") (which "true")))
12116 #t)))))
12117 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12118 (synopsis "Translation making program")
12119 (description
12120 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12121 for the GNOME 3.x platform with many features. It aims to be a very complete
12122 editing environment for translation issues within the GNU gettext/GNOME desktop
12123 world.")
12124 (license license:gpl3+)))
12125
12126
12127 (define-public ocrfeeder
12128 (package
12129 (name "ocrfeeder")
12130 (version "0.8.3")
12131 (source (origin
12132 (method url-fetch)
12133 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12134 (version-major+minor version) "/"
12135 "ocrfeeder-" version ".tar.xz"))
12136 (sha256
12137 (base32
12138 "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529"))))
12139 (build-system gnu-build-system)
12140 (arguments
12141 `(#:phases
12142 (modify-phases %standard-phases
12143 (add-after
12144 'install 'wrap-program
12145 (lambda* (#:key outputs #:allow-other-keys)
12146 (let ((prog (string-append (assoc-ref outputs "out")
12147 "/bin/" "ocrfeeder"))
12148 (pylib (string-append (assoc-ref outputs "out")
12149 "/lib/python"
12150 ,(version-major+minor
12151 (package-version python))
12152 "/site-packages")))
12153 (wrap-program prog
12154 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
12155 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12156 #t))))))
12157 (native-inputs
12158 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12159 ("gobject-introspection" ,gobject-introspection)
12160 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12161 ("intltool" ,intltool)
12162 ("itstool" ,itstool)
12163 ("pkg-config" ,pkg-config)
12164 ("xmllint" ,libxml2)))
12165 (inputs
12166 `(("enchant" ,enchant)
12167 ("glib" ,glib)
12168 ("goocanvas" ,goocanvas)
12169 ("gtk" ,gtk+)
12170 ("gtkspell3" ,gtkspell3)
12171 ("libjpeg" ,libjpeg-turbo)
12172 ("libtiff" ,libtiff)
12173 ("libraw" ,libraw)
12174 ("ocrad" ,ocrad)
12175 ("python" ,python-wrapper)
12176 ("python-pygobject" ,python-pygobject)
12177 ("python-odfpy" ,python-odfpy)
12178 ("python-pillow" ,python-pillow)
12179 ("python-pyenchant" ,python-pyenchant)
12180 ("python-reportlab" ,python-reportlab)
12181 ("python-sane" ,python-sane)
12182 ("sane-backends" ,sane-backends)
12183 ("tesseract-ocr" ,tesseract-ocr)))
12184 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12185 (synopsis "Complete OCR Suite")
12186 (description "OCRFeeder is a complete Optical Character Recognition and
12187 Document Analysis and Recognition program.")
12188 (license license:gpl3+)))