gnu: gnome-keyring: Propagate gcr to fix unlock prompts.
[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 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 Andy Tai <atai@atai.org>
60 ;;;
61 ;;; This file is part of GNU Guix.
62 ;;;
63 ;;; GNU Guix is free software; you can redistribute it and/or modify it
64 ;;; under the terms of the GNU General Public License as published by
65 ;;; the Free Software Foundation; either version 3 of the License, or (at
66 ;;; your option) any later version.
67 ;;;
68 ;;; GNU Guix is distributed in the hope that it will be useful, but
69 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
70 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
71 ;;; GNU General Public License for more details.
72 ;;;
73 ;;; You should have received a copy of the GNU General Public License
74 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
75
76 (define-module (gnu packages gnome)
77 #:use-module (gnu packages)
78 #:use-module (gnu packages admin)
79 #:use-module (gnu packages aidc)
80 #:use-module (gnu packages aspell)
81 #:use-module (gnu packages autotools)
82 #:use-module (gnu packages avahi)
83 #:use-module (gnu packages backup)
84 #:use-module (gnu packages base)
85 #:use-module (gnu packages bash)
86 #:use-module (gnu packages bison)
87 #:use-module (gnu packages boost)
88 #:use-module (gnu packages build-tools)
89 #:use-module (gnu packages calendar)
90 #:use-module (gnu packages cdrom)
91 #:use-module (gnu packages check)
92 #:use-module (gnu packages cmake)
93 #:use-module (gnu packages compression)
94 #:use-module (gnu packages crates-io)
95 #:use-module (gnu packages crates-graphics)
96 #:use-module (gnu packages crates-gtk)
97 #:use-module (gnu packages cups)
98 #:use-module (gnu packages curl)
99 #:use-module (gnu packages cyrus-sasl)
100 #:use-module (gnu packages databases)
101 #:use-module (gnu packages dbm)
102 #:use-module (gnu packages djvu)
103 #:use-module (gnu packages dns)
104 #:use-module (gnu packages docbook)
105 #:use-module (gnu packages documentation)
106 #:use-module (gnu packages enchant)
107 #:use-module (gnu packages flex)
108 #:use-module (gnu packages fonts)
109 #:use-module (gnu packages file-systems)
110 #:use-module (gnu packages fontutils)
111 #:use-module (gnu packages freedesktop)
112 #:use-module (gnu packages game-development)
113 #:use-module (gnu packages gcc)
114 #:use-module (gnu packages gettext)
115 #:use-module (gnu packages ghostscript)
116 #:use-module (gnu packages gimp)
117 #:use-module (gnu packages gl)
118 #:use-module (gnu packages glib)
119 #:use-module (gnu packages gnupg)
120 #:use-module (gnu packages gnuzilla)
121 #:use-module (gnu packages geo)
122 #:use-module (gnu packages gperf)
123 #:use-module (gnu packages graphviz)
124 #:use-module (gnu packages gstreamer)
125 #:use-module (gnu packages gtk)
126 #:use-module (gnu packages guile)
127 #:use-module (gnu packages ibus)
128 #:use-module (gnu packages icu4c)
129 #:use-module (gnu packages image)
130 #:use-module (gnu packages imagemagick)
131 #:use-module (gnu packages inkscape)
132 #:use-module (gnu packages iso-codes)
133 #:use-module (gnu packages kerberos)
134 #:use-module (gnu packages libcanberra)
135 #:use-module (gnu packages libffi)
136 #:use-module (gnu packages libunistring)
137 #:use-module (gnu packages libunwind)
138 #:use-module (gnu packages libusb)
139 #:use-module (gnu packages linux)
140 #:use-module (gnu packages lirc)
141 #:use-module (gnu packages lua)
142 #:use-module (gnu packages mail)
143 #:use-module (gnu packages mp3)
144 #:use-module (gnu packages multiprecision)
145 #:use-module (gnu packages music)
146 #:use-module (gnu packages ncurses)
147 #:use-module (gnu packages nettle)
148 #:use-module (gnu packages networking)
149 #:use-module (gnu packages ninja)
150 #:use-module (gnu packages node)
151 #:use-module (gnu packages nss)
152 #:use-module (gnu packages openldap)
153 #:use-module (gnu packages package-management)
154 #:use-module (gnu packages password-utils)
155 #:use-module (gnu packages pcre)
156 #:use-module (gnu packages pdf)
157 #:use-module (gnu packages perl)
158 #:use-module (gnu packages photo)
159 #:use-module (gnu packages php)
160 #:use-module (gnu packages pkg-config)
161 #:use-module (gnu packages polkit)
162 #:use-module (gnu packages popt)
163 #:use-module (gnu packages pretty-print)
164 #:use-module (gnu packages protobuf)
165 #:use-module (gnu packages pulseaudio)
166 #:use-module (gnu packages python)
167 #:use-module (gnu packages python-crypto)
168 #:use-module (gnu packages python-web)
169 #:use-module (gnu packages python-xyz)
170 #:use-module (gnu packages rdesktop)
171 #:use-module (gnu packages rdf)
172 #:use-module (gnu packages readline)
173 #:use-module (gnu packages ruby)
174 #:use-module (gnu packages rust)
175 #:use-module (gnu packages samba)
176 #:use-module (gnu packages scanner)
177 #:use-module (gnu packages sdl)
178 #:use-module (gnu packages search)
179 #:use-module (gnu packages selinux)
180 #:use-module (gnu packages slang)
181 #:use-module (gnu packages speech)
182 #:use-module (gnu packages spice)
183 #:use-module (gnu packages sqlite)
184 #:use-module (gnu packages ssh)
185 #:use-module (gnu packages swig)
186 #:use-module (gnu packages tex)
187 #:use-module (gnu packages time)
188 #:use-module (gnu packages tls)
189 #:use-module (gnu packages valgrind)
190 #:use-module (gnu packages version-control)
191 #:use-module (gnu packages video)
192 #:use-module (gnu packages virtualization)
193 #:use-module (gnu packages vpn)
194 #:use-module (gnu packages web)
195 #:use-module (gnu packages webkit)
196 #:use-module (gnu packages xdisorg)
197 #:use-module (gnu packages xiph)
198 #:use-module (gnu packages xml)
199 #:use-module (gnu packages xorg)
200 #:use-module (gnu artwork)
201 #:use-module ((guix build utils) #:select (modify-phases))
202 #:use-module (guix build-system cargo)
203 #:use-module (guix build-system cmake)
204 #:use-module (guix build-system glib-or-gtk)
205 #:use-module (guix build-system gnu)
206 #:use-module (guix build-system meson)
207 #:use-module (guix build-system python)
208 #:use-module (guix build-system trivial)
209 #:use-module (guix download)
210 #:use-module (guix git-download)
211 #:use-module ((guix licenses) #:prefix license:)
212 #:use-module (guix packages)
213 #:use-module (guix utils)
214 #:use-module (guix gexp)
215 #:use-module (guix monads)
216 #:use-module (guix store)
217 #:use-module (ice-9 match)
218 #:use-module (srfi srfi-1))
219
220 (define-public gupnp-igd
221 (package
222 (name "gupnp-igd")
223 (version "1.2.0")
224 (source
225 (origin
226 (method url-fetch)
227 (uri
228 (string-append "mirror://gnome/sources/" name "/"
229 (version-major+minor version) "/"
230 name "-" version ".tar.xz"))
231 (sha256
232 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
233 (build-system meson-build-system)
234 (outputs '("out" "doc"))
235 (arguments
236 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
237 #:configure-flags (list "-Dgtk_doc=true")
238 #:phases
239 (modify-phases %standard-phases
240 (add-after 'unpack 'patch-docbook-xml
241 (lambda* (#:key inputs #:allow-other-keys)
242 (with-directory-excursion "doc"
243 (substitute* "gupnp-igd-docs.xml"
244 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
245 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
246 "/xml/dtd/docbook/"))))
247 #t))
248 (add-after 'install 'move-doc
249 (lambda* (#:key outputs #:allow-other-keys)
250 (let* ((out (assoc-ref outputs "out"))
251 (doc (assoc-ref outputs "doc")))
252 (mkdir-p (string-append doc "/share"))
253 (rename-file
254 (string-append out "/share/gtk-doc")
255 (string-append doc "/share/gtk-doc"))
256 #t))))))
257 (native-inputs
258 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
259 ("docbook-xsl" ,docbook-xsl)
260 ("glib:bin" ,glib "bin")
261 ("gobject-introspection" ,gobject-introspection)
262 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
263 ("gtk-doc" ,gtk-doc)
264 ("pkg-config" ,pkg-config)))
265 (propagated-inputs
266 `(("glib" ,glib)
267 ("glib-networking" ,glib-networking)
268 ("gssdp" ,gssdp)
269 ("gupnp" ,gupnp)
270 ("libsoup" ,libsoup)))
271 (synopsis "UPnP IGD for GNOME")
272 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
273 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
274 (license license:lgpl2.1+)))
275
276 (define-public brasero
277 (package
278 (name "brasero")
279 (version "3.12.2")
280 (source (origin
281 (method url-fetch)
282 (uri (string-append "mirror://gnome/sources/brasero/"
283 (version-major+minor version) "/"
284 "brasero-" version ".tar.xz"))
285 (sha256
286 (base32
287 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
288 (build-system glib-or-gtk-build-system)
289 (arguments
290 `(#:configure-flags (list
291 (string-append "--with-girdir="
292 (assoc-ref %outputs "out")
293 "/share/gir-1.0")
294 (string-append "--with-typelibdir="
295 (assoc-ref %outputs "out")
296 "/lib/girepository-1.0"))
297 #:phases
298 (modify-phases %standard-phases
299 (add-before 'configure 'embed-growisofs
300 (lambda* (#:key inputs #:allow-other-keys)
301 (substitute* "plugins/growisofs/burn-growisofs.c"
302 (("\"growisofs") (string-append "\"" (which "growisofs"))))
303 #t)))))
304 (propagated-inputs
305 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
306 (native-inputs
307 `(("intltool" ,intltool)
308 ("itstool" ,itstool)
309 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
310 ("gobject-introspection" ,gobject-introspection)
311 ("pkg-config" ,pkg-config)))
312 (inputs
313 `(("dvd+rw-tools" ,dvd+rw-tools)
314 ("glib" ,glib)
315 ("gnome-doc-utils" ,gnome-doc-utils)
316 ("gstreamer" ,gstreamer)
317 ("gst-plugins-base" ,gst-plugins-base)
318 ("gtk+" ,gtk+)
319 ("libcanberra" ,libcanberra)
320 ("libice" ,libice)
321 ("libnotify" ,libnotify)
322 ("libsm" ,libsm)
323 ("libxml2" ,libxml2)
324 ("totem-pl-parser" ,totem-pl-parser)))
325 (home-page "https://wiki.gnome.org/Apps/Brasero")
326 (synopsis "CD/DVD burning tool for Gnome")
327 (description "Brasero is an application to burn CD/DVD for the Gnome
328 Desktop. It is designed to be as simple as possible and has some unique
329 features to enable users to create their discs easily and quickly.")
330 (license license:gpl2+)))
331
332 (define-public libcloudproviders
333 (package
334 (name "libcloudproviders")
335 (version "0.3.1")
336 (source
337 (origin
338 (method url-fetch)
339 (uri
340 (string-append "mirror://gnome/sources/" name "/"
341 (version-major+minor version) "/"
342 name "-" version ".tar.xz"))
343 (sha256
344 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
345 (build-system meson-build-system)
346 (outputs '("out" "doc"))
347 (arguments
348 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
349 #:configure-flags
350 (list
351 "-Denable-gtk-doc=true")
352 #:phases
353 (modify-phases %standard-phases
354 (add-after 'install 'move-doc
355 (lambda* (#:key outputs #:allow-other-keys)
356 (let* ((out (assoc-ref outputs "out"))
357 (doc (assoc-ref outputs "doc")))
358 (mkdir-p (string-append doc "/share"))
359 (rename-file
360 (string-append out "/share/gtk-doc")
361 (string-append doc "/share/gtk-doc"))
362 #t))))))
363 (native-inputs
364 `(("glib:bin" ,glib "bin")
365 ("gobject-introspection" ,gobject-introspection)
366 ("gtk-doc" ,gtk-doc)
367 ("pkg-config" ,pkg-config)
368 ("vala" ,vala)))
369 (inputs
370 `(("glib" ,glib)
371 ("glib-networking" ,glib-networking)))
372 (synopsis "Cloudproviders Integration API")
373 (description "Libcloudproviders is a DBus API that allows cloud storage sync
374 clients to expose their services. Clients such as file managers and desktop
375 environments can then provide integrated access to the cloud providers
376 services.")
377 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
378 (license license:lgpl3+)))
379
380 (define-public libgrss
381 (package
382 (name "libgrss")
383 (version "0.7.0")
384 (source
385 (origin
386 (method url-fetch)
387 (uri
388 (string-append "mirror://gnome/sources/" name "/"
389 (version-major+minor version) "/"
390 name "-" version ".tar.xz"))
391 (sha256
392 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
393 (build-system glib-or-gtk-build-system)
394 (outputs '("out" "doc"))
395 (arguments
396 `(#:configure-flags
397 (list
398 "--enable-gtk-doc"
399 (string-append "--with-html-dir="
400 (assoc-ref %outputs "doc")
401 "/share/gtk-doc/html"))
402 #:phases
403 (modify-phases %standard-phases
404 (add-after 'unpack 'patch-docbook-xml
405 (lambda* (#:key inputs #:allow-other-keys)
406 (with-directory-excursion "doc/reference"
407 (substitute* "libgrss-docs.sgml"
408 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
409 (string-append (assoc-ref inputs "docbook-xml")
410 "/xml/dtd/docbook/"))))
411 #t)))))
412 (native-inputs
413 `(("docbook-xml" ,docbook-xml-4.1.2)
414 ("gobject-introspection" ,gobject-introspection)
415 ("gtk-doc" ,gtk-doc)
416 ("pkg-config" ,pkg-config)))
417 (propagated-inputs
418 `(("glib" ,glib)
419 ("libsoup" ,libsoup)
420 ("libxml2" ,libxml2)))
421 (synopsis "Glib library for feeds")
422 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
423 and other formats.")
424 (home-page "https://wiki.gnome.org/Projects/Libgrss")
425 (license license:lgpl3+)))
426
427 (define-public gnome-js-common
428 (package
429 (name "gnome-js-common")
430 (version "0.1.2")
431 (source
432 (origin
433 (method url-fetch)
434 (uri
435 (string-append "mirror://gnome/sources/" name "/"
436 (version-major+minor version) "/"
437 name "-" version ".tar.gz"))
438 (sha256
439 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
440 (build-system glib-or-gtk-build-system)
441 (arguments
442 `(#:configure-flags
443 (list
444 "--disable-static")))
445 (native-inputs
446 `(("gettext" ,gettext-minimal)
447 ("intltool" ,intltool)
448 ("pkg-config" ,pkg-config)))
449 (synopsis "Common JS Modules")
450 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
451 bindings.")
452 (home-page "https://wiki.gnome.org/Projects/Seed")
453 (license license:gpl3+)))
454
455 (define-public seed
456 (package
457 (name "seed")
458 (version "3.8.1")
459 (source
460 (origin
461 (method url-fetch)
462 (uri
463 (string-append "mirror://gnome/sources/" name "/"
464 (version-major+minor version) "/"
465 name "-" version ".tar.xz"))
466 (sha256
467 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
468 (patches
469 (search-patches "seed-webkit.patch"))))
470 (build-system glib-or-gtk-build-system)
471 (outputs '("out" "doc"))
472 (arguments
473 `(#:configure-flags
474 (list
475 "--disable-static"
476 "--enable-xorg-module"
477 (string-append "--with-html-dir="
478 (assoc-ref %outputs "doc")
479 "/share/gtk-doc/html")
480 "--with-webkit=4.0")
481 #:phases
482 (modify-phases %standard-phases
483 ;; The seed-webkit.patch patches configure.ac.
484 ;; So the source files need to be re-bootstrapped.
485 (add-after 'unpack 'trigger-bootstrap
486 (lambda _
487 (for-each delete-file
488 (list
489 "configure"
490 "Makefile.in"))
491 #t))
492 (add-after 'unpack 'patch-tests
493 (lambda* (#:key outputs #:allow-other-keys)
494 (substitute* (find-files "." "\\.js$")
495 (("#!/usr/bin/env seed")
496 (string-append "#!" (getcwd) "/src/seed")))
497 #t))
498 (add-before 'build 'patch-docbook-xml
499 (lambda* (#:key inputs #:allow-other-keys)
500 (with-directory-excursion "doc"
501 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
502 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
503 (string-append (assoc-ref inputs "docbook-xml")
504 "/xml/dtd/docbook/"))))
505 #t)))))
506 (native-inputs
507 `(("autoconf" ,autoconf)
508 ("automake" ,automake)
509 ("docbook-xml" ,docbook-xml-4.1.2)
510 ("gettext" ,gettext-minimal)
511 ("gobject-introspection" ,gobject-introspection)
512 ("gtk-doc" ,gtk-doc)
513 ("intltool" ,intltool)
514 ("libtool" ,libtool)
515 ("pkg-config" ,pkg-config)))
516 (inputs
517 `(("cairo" ,cairo)
518 ("dbus" ,dbus)
519 ("dbus-glib" ,dbus-glib)
520 ("gnome-js-common" ,gnome-js-common)
521 ("gtk+" ,gtk+)
522 ("gtk+-2" ,gtk+-2)
523 ("libffi" ,libffi)
524 ("libxml2" ,libxml2)
525 ("mpfr" ,mpfr)
526 ("readline" ,readline)
527 ("sqlite" ,sqlite)
528 ("xscrnsaver" ,libxscrnsaver)))
529 (propagated-inputs
530 `(("glib" ,glib)
531 ("webkit" ,webkitgtk)))
532 (synopsis "GObject JavaScriptCore bridge")
533 (description "Seed is a library and interpreter, dynamically bridging
534 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
535 GNOME platform. It serves as something which enables you to write standalone
536 applications in JavaScript, or easily enable your application to be extensible
537 in JavaScript.")
538 (home-page "https://wiki.gnome.org/Projects/Seed")
539 (license license:lgpl2.0+)))
540
541 (define-public libdmapsharing
542 (package
543 (name "libdmapsharing")
544 (version "3.9.10")
545 (source
546 (origin
547 (method url-fetch)
548 (uri
549 (string-append "https://www.flyn.org/projects/"
550 name "/" name "-" version ".tar.gz"))
551 (sha256
552 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
553 (build-system glib-or-gtk-build-system)
554 (outputs '("out" "doc"))
555 (arguments
556 `(#:tests? #f ; Tests require networking.
557 #:configure-flags
558 (list
559 "--disable-static"
560 (string-append "--with-html-dir="
561 (assoc-ref %outputs "doc")
562 "/share/gtk-doc/html"))
563 #:phases
564 (modify-phases %standard-phases
565 (add-after 'unpack 'patch-docbook-xml
566 (lambda* (#:key inputs #:allow-other-keys)
567 (with-directory-excursion "doc"
568 (substitute* "libdmapsharing-4.0-docs.xml"
569 (("http://www.oasis-open.org/docbook/xml/4.3/")
570 (string-append (assoc-ref inputs "docbook-xml")
571 "/xml/dtd/docbook/"))))
572 #t)))))
573 (native-inputs
574 `(("check" ,check)
575 ("docbook-xml" ,docbook-xml-4.3)
576 ("gobject-introspection" ,gobject-introspection)
577 ("pedansee" ,pedansee)
578 ("pkg-config" ,pkg-config)
579 ("vala" ,vala)))
580 (inputs
581 `(("avahi" ,avahi)
582 ("gdk-pixbuf" ,gdk-pixbuf+svg)
583 ("gee" ,libgee)
584 ("gst-plugins-base" ,gst-plugins-base)
585 ("gtk+" ,gtk+)))
586 (propagated-inputs
587 `(("glib" ,glib)
588 ("glib-networking" ,glib-networking)
589 ("gstreamer" ,gstreamer)
590 ("libsoup" ,libsoup)))
591 (synopsis "Media management library")
592 (description "Libdmapsharing is a library which allows programs to access,
593 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
594 It is written in C using GObject and libsoup.")
595 (home-page "https://launchpad.net/gtx")
596 (license license:lgpl2.1+)))
597
598 (define-public gtx
599 (package
600 (name "gtx")
601 (version "0.2.2")
602 (source
603 (origin
604 (method url-fetch)
605 (uri
606 (string-append "https://launchpad.net/gtx/trunk/"
607 version "/+download/gtx-" version ".tar.gz"))
608 (sha256
609 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
610 (build-system glib-or-gtk-build-system)
611 (outputs '("out" "doc"))
612 (arguments
613 `(#:configure-flags
614 (list
615 "--disable-static"
616 "--enable-gtk-doc"
617 (string-append "--with-html-dir="
618 (assoc-ref %outputs "doc")
619 "/share/gtk-doc/html"))))
620 (native-inputs
621 `(("gobject-introspection" ,gobject-introspection)
622 ("gtk-doc" ,gtk-doc)
623 ("pkg-config" ,pkg-config)))
624 (propagated-inputs
625 `(("glib" ,glib)))
626 (synopsis "GLib Testing Framework")
627 (description "GTX is a small collection of convenience functions intended to
628 enhance the GLib testing framework. With specific emphasis on easing the pain
629 of writing test cases for asynchronous interactions.")
630 (home-page "https://launchpad.net/gtx")
631 (license license:lgpl2.1+)))
632
633 (define-public dee
634 (package
635 (name "dee")
636 (version "1.2.7")
637 (source
638 (origin
639 (method url-fetch)
640 (uri
641 (string-append "https://launchpad.net/dee/1.0/"
642 version "/+download/dee-" version ".tar.gz"))
643 (sha256
644 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
645 (patches
646 (search-patches "dee-vapi.patch"))))
647 (build-system glib-or-gtk-build-system)
648 (outputs '("out" "doc"))
649 (arguments
650 `(#:configure-flags
651 (list
652 "--disable-maintainer-flags"
653 (string-append "--with-pygi-overrides-dir="
654 (assoc-ref %outputs "out")
655 "/lib/python"
656 ,(version-major+minor
657 (package-version python))
658 "/site-packages/gi/overrides")
659 (string-append "--with-html-dir="
660 (assoc-ref %outputs "doc")
661 "/share/gtk-doc/html"))
662 #:phases
663 (modify-phases %standard-phases
664 (add-after 'unpack 'patch-docbook-xml
665 (lambda* (#:key inputs #:allow-other-keys)
666 (with-directory-excursion "doc/reference/dee-1.0"
667 (substitute* "dee-1.0-docs.sgml"
668 (("http://www.oasis-open.org/docbook/xml/4.3/")
669 (string-append (assoc-ref inputs "docbook-xml")
670 "/xml/dtd/docbook/"))))
671 #t))
672 (add-after 'patch-docbook-xml 'disable-failing-tests
673 (lambda _
674 (substitute* "tests/test-icu.c"
675 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
676 "")
677 (("setup, test_ascii_folder, teardown\\);")
678 ""))
679 #t))
680 (add-before 'check 'pre-check
681 (lambda _
682 ;; Tests require a running dbus-daemon.
683 (system "dbus-daemon &")
684 ;; For missing '/etc/machine-id'.
685 (setenv "DBUS_FATAL_WARNINGS" "0")
686 #t)))))
687 (native-inputs
688 `(("dbus" ,dbus)
689 ("dbus-test-runner" ,dbus-test-runner)
690 ("docbook-xml" ,docbook-xml-4.3)
691 ("gobject-introspection" ,gobject-introspection)
692 ("gtk-doc" ,gtk-doc)
693 ;; Would only be required by configure flag "--enable-extended-tests".
694 ;("gtx" ,gtx)
695 ("pkg-config" ,pkg-config)
696 ("pygobject" ,python-pygobject)
697 ("python" ,python-wrapper)
698 ("vala" ,vala)))
699 (inputs
700 `(("icu" ,icu4c)))
701 (propagated-inputs
702 `(("glib" ,glib)))
703 (synopsis "Model to synchronize multiple instances over DBus")
704 (description "Dee is a library that uses DBus to provide objects allowing
705 you to create Model-View-Controller type programs across DBus. It also consists
706 of utility objects which extend DBus allowing for peer-to-peer discoverability
707 of known objects without needing a central registrar.")
708 (home-page "https://launchpad.net/dee")
709 (license
710 ;; Dual-licensed
711 (list
712 license:lgpl3+
713 license:gpl3+))))
714
715 (define-public zeitgeist
716 (package
717 (name "zeitgeist")
718 (version "1.0.3")
719 (source
720 (origin
721 (method git-fetch)
722 (uri
723 (git-reference
724 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
725 (commit
726 (string-append "v" version))))
727 (file-name
728 (git-file-name name version))
729 (sha256
730 (base32 "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp"))))
731 (build-system glib-or-gtk-build-system)
732 (arguments
733 `(#:configure-flags
734 (list
735 "--enable-explain-queries"
736 "--enable-fts"
737 "--enable-docs")
738 #:phases
739 (modify-phases %standard-phases
740 (add-after 'unpack 'patch-docbook-xml
741 (lambda* (#:key inputs #:allow-other-keys)
742 (with-directory-excursion "doc/libzeitgeist"
743 (substitute* "zeitgeist-gtkdoc-index.sgml"
744 (("http://www.oasis-open.org/docbook/xml/4.3/")
745 (string-append (assoc-ref inputs "docbook-xml")
746 "/xml/dtd/docbook/"))))
747 #t))
748 (add-after 'patch-docbook-xml 'disable-failing-tests
749 (lambda _
750 (substitute* "test/direct/Makefile.am"
751 ((" log-test ")
752 ""))
753 (substitute* "test/c/Makefile.am"
754 ((" test-log ")
755 ""))
756 #t))
757 (add-before 'bootstrap 'remove-autogen-script
758 (lambda _
759 ;; To honor `autoreconf -vif` by build-system.
760 (delete-file "autogen.sh")
761 #t)))))
762 (native-inputs
763 `(("autoconf" ,autoconf)
764 ("automake" ,automake)
765 ("docbook-xml" ,docbook-xml-4.3)
766 ("gettext" ,gettext-minimal)
767 ("gobject-introspection" ,gobject-introspection)
768 ("gtk-doc" ,gtk-doc)
769 ("libtool" ,libtool)
770 ("pkg-config" ,pkg-config)
771 ("vala" ,vala)
772 ("xorg-server-for-tests" ,xorg-server-for-tests)))
773 (inputs
774 `(("dee-icu" ,dee)
775 ("gtk+" ,gtk+)
776 ("json-glib" ,json-glib)
777 ("sqlite" ,sqlite)
778 ("telepathy-glib" ,telepathy-glib)
779 ("python" ,python-wrapper)
780 ("python-rdflib" ,python-rdflib)
781 ("xapian-config" ,xapian)))
782 (propagated-inputs
783 `(("glib" ,glib)))
784 (synopsis "Desktop Activity Logging")
785 (description "Zeitgeist is a service which logs the users’s activities and
786 events, anywhere from files opened to websites visited and conversations. It
787 makes this information readily available for other applications to use. It is
788 able to establish relationships between items based on similarity and usage
789 patterns.")
790 (home-page "https://zeitgeist.freedesktop.org/")
791 (license
792 ;; Dual-licensed
793 (list
794 license:lgpl2.1+
795 license:gpl2+))))
796
797 (define-public gnome-recipes
798 (package
799 (name "gnome-recipes")
800 (version "2.0.4")
801 (source (origin
802 (method git-fetch)
803 (uri (git-reference
804 (url "https://gitlab.gnome.org/GNOME/recipes")
805 (commit version)))
806 (file-name (git-file-name name version))
807 (sha256
808 (base32
809 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
810 (build-system meson-build-system)
811 (arguments
812 `(#:glib-or-gtk? #t
813 #:phases
814 (modify-phases %standard-phases
815 (add-after 'unpack 'skip-gtk-update-icon-cache
816 (lambda _
817 (substitute* "meson_post_install.py"
818 (("gtk-update-icon-cache") (which "true")))
819 #t))
820 (add-after 'unpack 'unpack-libgd
821 (lambda* (#:key inputs #:allow-other-keys)
822 (let ((libgd (assoc-ref inputs "libgd")))
823 (copy-recursively libgd "subprojects/libgd")
824 #t))))))
825 (inputs
826 `(("glib" ,glib)
827 ("gnome-autoar" ,gnome-autoar)
828 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
829 ("gspell" ,gspell)
830 ("gtk+" ,gtk+)
831 ("json-glib" ,json-glib)
832 ("libcanberra" ,libcanberra)
833 ("libsoup" ,libsoup)
834 ("rest" ,rest)))
835 (native-inputs
836 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
837 ("gettext" ,gettext-minimal)
838 ("glib:bin" ,glib "bin")
839 ("itstool" ,itstool)
840 ("libgd"
841 ,(origin
842 (method git-fetch)
843 (uri (git-reference
844 (url "https://gitlab.gnome.org/GNOME/libgd")
845 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
846 (file-name (git-file-name "libgd" version))
847 (sha256
848 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
849 ("pkg-config" ,pkg-config)))
850 (home-page "https://wiki.gnome.org/Apps/Recipes")
851 (synopsis "Discover recipes for preparing food")
852 (description "GNOME Recipes helps you discover what to cook today,
853 tomorrow, the rest of the week and for special occasions.")
854 (license license:gpl3+)))
855
856 (define-public gnome-photos
857 (package
858 (name "gnome-photos")
859 (version "3.34.2")
860 (source
861 (origin
862 (method url-fetch)
863 (uri
864 (string-append "mirror://gnome/sources/" name "/"
865 (version-major+minor version) "/"
866 name "-" version ".tar.xz"))
867 (sha256
868 (base32
869 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
870 (build-system meson-build-system)
871 (arguments
872 `(#:glib-or-gtk? #t
873 #:configure-flags
874 (list "-Ddogtail=false" ; Not available
875 ;; Required for RUNPATH validation.
876 (string-append "-Dc_link_args=-Wl,-rpath="
877 (assoc-ref %outputs "out") "/lib/gnome-photos"))
878 #:phases
879 (modify-phases %standard-phases
880 (add-after 'install 'wrap-gnome-photos
881 (lambda* (#:key inputs outputs #:allow-other-keys)
882 (let*
883 ((out (assoc-ref outputs "out")))
884 (wrap-program (string-append out "/bin/gnome-photos")
885 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
886 #t)))))
887 (native-inputs
888 `(("dbus" ,dbus)
889 ("desktop-file-utils" ,desktop-file-utils)
890 ("gettext" ,gettext-minimal)
891 ("git" ,git-minimal)
892 ("glib:bin" ,glib "bin")
893 ("gobject-introspection" ,gobject-introspection)
894 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
895 ("gtk+:bin" ,gtk+ "bin")
896 ("itstool" ,itstool)
897 ("pkg-config" ,pkg-config)))
898 (inputs
899 `(("babl" ,babl)
900 ("cairo" ,cairo)
901 ("gdk-pixbuf" ,gdk-pixbuf+svg)
902 ("gegl" ,gegl)
903 ("geocode-glib" ,geocode-glib)
904 ("gexiv2" ,gexiv2)
905 ("gnome-online-accounts" ,gnome-online-accounts)
906 ("gnome-online-miners" ,gnome-online-miners)
907 ("grilo" ,grilo)
908 ("grilo-plugins" ,grilo-plugins)
909 ("gtk+" ,gtk+)
910 ("libdazzle" ,libdazzle)
911 ("libgdata" ,libgdata)
912 ("libgfbgraph" ,gfbgraph)
913 ("libjpeg" ,libjpeg-turbo)
914 ("libpng" ,libpng)
915 ("librest" ,rest)
916 ("pygobject" ,python-pygobject)
917 ("tracker" ,tracker)
918 ("tracker-miners" ,tracker-miners)))
919 (synopsis "Access, organize and share your photos on GNOME desktop")
920 (description "GNOME Photos is a simple and elegant replacement for using a
921 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
922 cloud integration is offered through GNOME Online Accounts.")
923 (home-page "https://wiki.gnome.org/Apps/Photos")
924 (license license:gpl3+)))
925
926 (define-public gnome-music
927 (package
928 (name "gnome-music")
929 (version "3.34.5")
930 (source
931 (origin
932 (method url-fetch)
933 (uri
934 (string-append "mirror://gnome/sources/" name "/"
935 (version-major+minor version) "/"
936 name "-" version ".tar.xz"))
937 (sha256
938 (base32
939 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
940 (build-system meson-build-system)
941 (arguments
942 `(#:glib-or-gtk? #t
943 #:phases
944 (modify-phases %standard-phases
945 (add-after 'install 'wrap-gnome-music
946 (lambda* (#:key inputs outputs #:allow-other-keys)
947 (let*
948 ((out (assoc-ref outputs "out"))
949 (pylib (string-append out "/lib/python"
950 ,(version-major+minor
951 (package-version python))
952 "/site-packages")))
953 (wrap-program (string-append out "/bin/gnome-music")
954 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
955 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
956 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
957 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
958 #t)))))
959 (native-inputs
960 `(("desktop-file-utils" ,desktop-file-utils)
961 ("gettext" ,gettext-minimal)
962 ("glib:bin" ,glib "bin")
963 ("gobject-introspection" ,gobject-introspection)
964 ("gtk+:bin" ,gtk+ "bin")
965 ("itstools" ,itstool)
966 ("pkg-config" ,pkg-config)))
967 (inputs
968 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
969 ("grilo" ,grilo)
970 ("grilo-plugins" ,grilo-plugins)
971 ("gst-plugins-base" ,gst-plugins-base)
972 ("gstreamer" ,gstreamer)
973 ("gvfs" ,gvfs)
974 ("libdazzle" ,libdazzle)
975 ("libmediaart" ,libmediaart)
976 ("libsoup" ,libsoup)
977 ("pycairo" ,python-pycairo)
978 ("pygobject" ,python-pygobject)
979 ("tracker" ,tracker)
980 ("tracker-miners" ,tracker-miners)))
981 (synopsis "Simple music player for GNOME desktop")
982 (description "GNOME Music is the new GNOME music playing application that
983 aims to combine an elegant and immersive browsing experience with simple
984 and straightforward controls.")
985 (home-page "https://wiki.gnome.org/Apps/Music")
986 (license license:gpl2+)))
987
988 (define-public portablexdr
989 (package
990 (name "portablexdr")
991 (version "4.9.1")
992 (source
993 (origin
994 (method url-fetch)
995 (uri
996 (string-append "https://people.redhat.com/~rjones/" name "/files/"
997 name "-" version ".tar.gz"))
998 (sha256
999 (base32
1000 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1001 (build-system gnu-build-system)
1002 (synopsis "External Data Representation Library")
1003 (description "PortableXDR is an implementation of External Data
1004 Representation (XDR) Library. It is a standard data serialization format, for
1005 uses such as computer network protocols. It allows data to be transferred
1006 between different kinds of computer systems.")
1007 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1008 (license
1009 (list
1010 license:gpl2+
1011 license:lgpl2.1+))))
1012
1013 (define-public tepl
1014 (package
1015 (name "tepl")
1016 (version "4.4.0")
1017 (source
1018 (origin
1019 (method url-fetch)
1020 (uri
1021 (string-append "mirror://gnome/sources/" name "/"
1022 (version-major+minor version) "/"
1023 name "-" version ".tar.xz"))
1024 (sha256
1025 (base32
1026 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
1027 (build-system glib-or-gtk-build-system)
1028 (arguments
1029 `(#:tests? #f)) ; FIX-ME: Requires gvfs
1030 (native-inputs
1031 `(("gobject-introspection" ,gobject-introspection)
1032 ("pkg-config" ,pkg-config)))
1033 (inputs
1034 `(("amtk" ,amtk)
1035 ("glib" ,glib)
1036 ("gtk+" ,gtk+)
1037 ("gtksourceview" ,gtksourceview)
1038 ("libxml2" ,libxml2)
1039 ("uchardet" ,uchardet)))
1040 (synopsis "Text editor product line")
1041 (description "Tepl is a library that eases the development of
1042 GtkSourceView-based text editors and IDEs.")
1043 (home-page "https://wiki.gnome.org/Projects/Tepl")
1044 (license license:lgpl2.1+)))
1045
1046 (define-public krb5-auth-dialog
1047 (package
1048 (name "krb5-auth-dialog")
1049 (version "3.26.1")
1050 (source
1051 (origin
1052 (method url-fetch)
1053 (uri
1054 (string-append "mirror://gnome/sources/" name "/"
1055 (version-major+minor version) "/"
1056 name "-" version ".tar.xz"))
1057 (sha256
1058 (base32
1059 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1060 (build-system glib-or-gtk-build-system)
1061 (native-inputs
1062 `(("intltool" ,intltool)
1063 ("itstool" ,itstool)
1064 ("libxml2" ,libxml2)
1065 ("pkg-config" ,pkg-config)
1066 ("python-wrapper" ,python-wrapper)))
1067 (inputs
1068 `(("glib" ,glib)
1069 ("gtk+" ,gtk+)
1070 ("libnotify" ,libnotify)
1071 ("mit-krb5" ,mit-krb5)
1072 ("network-manager" ,network-manager)))
1073 (synopsis "Popup dialogs for Kerberos 5")
1074 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1075 tickets, and pops up a dialog when they are about to expire.")
1076 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1077 (license license:gpl2+)))
1078
1079 (define-public notification-daemon
1080 (package
1081 (name "notification-daemon")
1082 (version "3.20.0")
1083 (source
1084 (origin
1085 (method url-fetch)
1086 (uri
1087 (string-append "mirror://gnome/sources/" name "/"
1088 (version-major+minor version) "/"
1089 name "-" version ".tar.xz"))
1090 (sha256
1091 (base32
1092 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1093 (build-system glib-or-gtk-build-system)
1094 (native-inputs
1095 `(("intltool" ,intltool)
1096 ("pkg-config" ,pkg-config)))
1097 (inputs
1098 `(("glib" ,glib)
1099 ("gtk+" ,gtk+)
1100 ("x11" ,libx11)))
1101 (synopsis "Notification Daemon for GNOME Desktop")
1102 (description "Notification-Daemon is the server implementation of the
1103 freedesktop.org desktop notification specification.")
1104 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1105 (license license:gpl2+)))
1106
1107 (define-public mm-common
1108 (package
1109 (name "mm-common")
1110 (version "1.0.2")
1111 (source (origin
1112 (method url-fetch)
1113 (uri (string-append "mirror://gnome/sources/mm-common/"
1114 (version-major+minor version) "/"
1115 "mm-common-" version ".tar.xz"))
1116 (sha256
1117 (base32
1118 "07b4s5ckcz9q5gwx8vchim19mhfgl8wysqwi30pndks3m4zrzad2"))))
1119 (build-system meson-build-system)
1120 (arguments
1121 `(#:phases
1122 (modify-phases %standard-phases
1123 (add-after 'unpack 'patch
1124 (lambda* (#:key inputs #:allow-other-keys)
1125 (substitute* "util/mm-common-prepare.in"
1126 (("ln") (string-append (assoc-ref inputs "coreutils")
1127 "/bin/ln"))
1128 (("cp") (string-append (assoc-ref inputs "coreutils")
1129 "/bin/cp"))
1130 (("sed") (string-append (assoc-ref inputs "sed")
1131 "/bin/sed"))
1132 (("cat") (string-append (assoc-ref inputs "coreutils")
1133 "/bin/cat")))
1134 #t)))))
1135 (native-inputs
1136 `(("coreutils" ,coreutils)
1137 ("gettext" ,gettext-minimal)
1138 ("pkg-config" ,pkg-config)
1139 ("sed" ,sed)))
1140 (inputs
1141 `(("python" ,python)))
1142 (synopsis "Module of GNOME C++ bindings")
1143 (description "The mm-common module provides the build infrastructure
1144 and utilities shared among the GNOME C++ binding libraries. Release
1145 archives of mm-common include the Doxygen tag file for the GNU C++
1146 Library reference documentation.")
1147 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1148 (license license:gpl2+)))
1149
1150 (define-public phodav
1151 (package
1152 (name "phodav")
1153 (version "2.5")
1154 (source (origin
1155 (method url-fetch)
1156 (uri (string-append "mirror://gnome/sources/" name "/"
1157 (version-major+minor version) "/"
1158 name "-" version ".tar.xz"))
1159 (sha256
1160 (base32
1161 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1162 (build-system meson-build-system)
1163 (arguments
1164 `(#:phases
1165 (modify-phases %standard-phases
1166 (add-before 'check 'start-virtual-dir-server
1167 ;; The same server when started by tests/virtual-dir returns an
1168 ;; unexpected status (4 instead of 200) and fails a test. It is
1169 ;; unclear why starting it manually here makes it pass.
1170 (lambda _
1171 (system "tests/virtual-dir-server &")
1172 #t)))))
1173 (native-inputs
1174 `(("docbook-xml" ,docbook-xml-4.3)
1175 ("gettext" ,gettext-minimal)
1176 ("glib:bin" ,glib "bin")
1177 ("gtk-doc" ,gtk-doc)
1178 ("pkg-config" ,pkg-config)))
1179 (inputs
1180 `(("avahi" ,avahi)
1181 ("libgudev" ,libgudev)
1182 ("libsoup" ,libsoup)))
1183 (synopsis "WebDav server implementation using libsoup")
1184 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1185 but it is generic enough to be reused in other projects,
1186 in particular in the GNOME desktop.")
1187 (home-page "https://wiki.gnome.org/phodav")
1188 (license license:lgpl2.1+)))
1189
1190 (define-public gnome-color-manager
1191 (package
1192 (name "gnome-color-manager")
1193 (version "3.32.0")
1194 (source (origin
1195 (method url-fetch)
1196 (uri (string-append "mirror://gnome/sources/" name "/"
1197 (version-major+minor version) "/"
1198 name "-" version ".tar.xz"))
1199 (sha256
1200 (base32
1201 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1202 (build-system meson-build-system)
1203 (arguments
1204 `(#:glib-or-gtk? #t
1205 #:phases
1206 (modify-phases %standard-phases
1207 (add-before
1208 'check 'pre-check
1209 (lambda _
1210 ;; Tests require a running X server.
1211 (system "Xvfb :1 &")
1212 (setenv "DISPLAY" ":1")
1213 #t)))))
1214 (native-inputs
1215 `(("desktop-file-utils" ,desktop-file-utils)
1216 ("gettext" ,gettext-minimal)
1217 ("glib:bin" ,glib "bin")
1218 ("gtk+:bin" ,gtk+ "bin")
1219 ("itstool" ,itstool)
1220 ("pkg-config" ,pkg-config)
1221 ("xorg-server" ,xorg-server-for-tests)))
1222 (inputs
1223 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1224 ("appstream-glib" ,appstream-glib)
1225 ("colord-gtk" ,colord-gtk)
1226 ("exiv2" ,exiv2)
1227 ("gnome-desktop" ,gnome-desktop)
1228 ("libcanberra" ,libcanberra)
1229 ("libexif" ,libexif)
1230 ("libtiff" ,libtiff)
1231 ("libxrandr" ,libxrandr)
1232 ("libxtst" ,libxtst)
1233 ("libxxf86vm" ,libxxf86vm)
1234 ("vte" ,vte)
1235 ("xorgproto" ,xorgproto)))
1236 (synopsis "Color profile manager for the GNOME desktop")
1237 (description "GNOME Color Manager is a session framework that makes
1238 it easy to manage, install and generate color profiles
1239 in the GNOME desktop.")
1240 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1241 (license license:gpl2+)))
1242
1243 (define-public gnome-online-miners
1244 (package
1245 (name "gnome-online-miners")
1246 (version "3.34.0")
1247 (source (origin
1248 (method url-fetch)
1249 (uri (string-append "mirror://gnome/sources/" name "/"
1250 (version-major+minor version) "/"
1251 name "-" version ".tar.xz"))
1252 (sha256
1253 (base32
1254 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1255 (build-system glib-or-gtk-build-system)
1256 (native-inputs
1257 `(("gettext" ,gettext-minimal)
1258 ("glib:bin" ,glib "bin")
1259 ("gobject-introspection" ,gobject-introspection)
1260 ("gtk+:bin" ,gtk+ "bin")
1261 ("pkg-config" ,pkg-config)))
1262 (inputs
1263 `(("gnome-online-accounts" ,gnome-online-accounts)
1264 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1265 ("grilo" ,grilo)
1266 ("libgdata" ,libgdata)
1267 ("libgfbgraph" ,gfbgraph)
1268 ("libzapojit" ,libzapojit)
1269 ("rest" ,rest)
1270 ("tracker" ,tracker)))
1271 (synopsis "Web Crawlers for GNOME")
1272 (description "GNOME Online Miners provides a set of crawlers that
1273 go through your online content and index them locally in Tracker.
1274 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1275 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1276 (license license:gpl2+)))
1277
1278 (define-public gssdp
1279 (package
1280 (name "gssdp")
1281 (version "1.2.3")
1282 (source (origin
1283 (method url-fetch)
1284 (uri (string-append "mirror://gnome/sources/" name "/"
1285 (version-major+minor version) "/"
1286 name "-" version ".tar.xz"))
1287 (sha256
1288 (base32
1289 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1290 (build-system meson-build-system)
1291 (native-inputs
1292 `(("gettext" ,gettext-minimal)
1293 ("glib:bin" ,glib "bin")
1294 ("gobject-introspection" ,gobject-introspection)
1295 ("gtk-doc" ,gtk-doc)
1296 ("pkg-config" ,pkg-config)
1297 ("vala" ,vala)))
1298 (inputs
1299 `(("gtk+" ,gtk+)
1300 ("libsoup" ,libsoup)))
1301 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1302 Protocol} for GNOME")
1303 (description "This package provides a library to handle resource discovery
1304 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1305 a debugging tool, @command{gssdp-device-sniffer}.")
1306 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1307 (license license:lgpl2.0+)))
1308
1309 (define-public gupnp
1310 (package
1311 (name "gupnp")
1312 (version "1.2.4")
1313 (source (origin
1314 (method url-fetch)
1315 (uri (string-append "mirror://gnome/sources/" name "/"
1316 (version-major+minor version) "/"
1317 name "-" version ".tar.xz"))
1318 (sha256
1319 (base32
1320 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1321 (build-system meson-build-system)
1322 (native-inputs
1323 `(("gettext" ,gettext-minimal)
1324 ("glib:bin" ,glib "bin")
1325 ("gobject-introspection" ,gobject-introspection)
1326 ("gtk-doc" ,gtk-doc)
1327 ("pkg-config" ,pkg-config)
1328 ("vala" ,vala)))
1329 (inputs
1330 `(("gssdp" ,gssdp)
1331 ("gtk+" ,gtk+)
1332 ("libsoup" ,libsoup)))
1333 (synopsis "PnP API for GNOME")
1334 (description "This package provides GUPnP, an object-oriented framework
1335 for creating UPnP devices and control points, written in C using
1336 @code{GObject} and @code{libsoup}.")
1337 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1338 (license license:lgpl2.0+)))
1339
1340 (define-public gupnp-dlna
1341 (package
1342 (name "gupnp-dlna")
1343 (version "0.10.5")
1344 (source (origin
1345 (method url-fetch)
1346 (uri (string-append "mirror://gnome/sources/" name "/"
1347 (version-major+minor version) "/"
1348 name "-" version ".tar.xz"))
1349 (sha256
1350 (base32
1351 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1352 (build-system gnu-build-system)
1353 (native-inputs
1354 `(("gettext" ,gettext-minimal)
1355 ("glib:bin" ,glib "bin")
1356 ("gobject-introspection" ,gobject-introspection)
1357 ("gtk-doc" ,gtk-doc)
1358 ("libxml" ,libxml2)
1359 ("pkg-config" ,pkg-config)
1360 ("vala" ,vala)))
1361 (inputs
1362 `(("gstreamer" ,gstreamer)
1363 ("gupnp" ,gupnp)))
1364 (propagated-inputs
1365 `(("gst-plugins-base" ,gst-plugins-base)
1366 ("gst-plugins-good" ,gst-plugins-good)))
1367 (synopsis "GUPnP DLNA for GNOME")
1368 (description "This package provides a small utility library to
1369 support DLNA-related tasks such as media profile guessing, transcoding to a
1370 given profile, etc. DLNA is a subset of UPnP A/V.")
1371 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1372 (license license:lgpl2.0+)))
1373
1374 (define-public gupnp-av
1375 (package
1376 (name "gupnp-av")
1377 (version "0.12.11")
1378 (source (origin
1379 (method url-fetch)
1380 (uri (string-append "mirror://gnome/sources/" name "/"
1381 (version-major+minor version) "/"
1382 name "-" version ".tar.xz"))
1383 (sha256
1384 (base32
1385 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1386 (build-system gnu-build-system)
1387 (native-inputs
1388 `(("gettext" ,gettext-minimal)
1389 ("glib:bin" ,glib "bin")
1390 ("gobject-introspection" ,gobject-introspection)
1391 ("gtk-doc" ,gtk-doc)
1392 ("libxml" ,libxml2)
1393 ("pkg-config" ,pkg-config)))
1394 (inputs
1395 `(("gtk+" ,gtk+)
1396 ("gupnp" ,gupnp)))
1397 (synopsis "GUPnP A/V for GNOME")
1398 (description "This package provides a small library for handling
1399 and implementation of UPnP A/V profiles.")
1400 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1401 (license license:lgpl2.0+)))
1402
1403 (define-public libmediaart
1404 (package
1405 (name "libmediaart")
1406 (version "1.9.4")
1407 (source (origin
1408 (method url-fetch)
1409 (uri (string-append "mirror://gnome/sources/" name "/"
1410 (version-major+minor version) "/"
1411 name "-" version ".tar.xz"))
1412 (sha256
1413 (base32
1414 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
1415 (build-system gnu-build-system)
1416 (native-inputs
1417 `(("glib:bin" ,glib "bin")
1418 ("pkg-config" ,pkg-config)))
1419 (inputs
1420 `(("gdk-pixbuf" ,gdk-pixbuf)
1421 ("gettext" ,gettext-minimal)
1422 ("gobject-introspection" ,gobject-introspection)
1423 ("gtk+:doc" ,gtk+ "doc")
1424 ("vala" ,vala)))
1425 (synopsis "Media art library for the GNOME desktop")
1426 (description
1427 "The libmediaart library is the foundation for media art caching,
1428 extraction, and lookup for applications on the desktop.")
1429 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1430 (license license:lgpl2.1+)))
1431
1432 (define-public gnome-initial-setup
1433 (package
1434 (name "gnome-initial-setup")
1435 (version "3.32.1")
1436 (source (origin
1437 (method url-fetch)
1438 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1439 (version-major+minor version)
1440 "/gnome-initial-setup-" version ".tar.xz"))
1441 (sha256
1442 (base32
1443 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1444 (build-system meson-build-system)
1445 (arguments
1446 '(#:configure-flags '(;; Enable camera support for user selfie.
1447 "-Dcheese=auto"
1448 "-Dsystemd=false")
1449 #:phases (modify-phases %standard-phases
1450 (add-after 'unpack 'set-gkbd-file-name
1451 (lambda* (#:key inputs #:allow-other-keys)
1452 ;; Allow the "Preview" button in the keyboard layout
1453 ;; selection dialog to display the layout.
1454 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1455 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1456 (("\"gkbd-keyboard-display")
1457 (string-append "\"" libgnomekbd
1458 "/bin/gkbd-keyboard-display")))
1459 #t))))))
1460 (native-inputs
1461 `(("gettext" ,gettext-minimal)
1462 ("glib:bin" ,glib "bin")
1463 ("gobject-introspection" ,gobject-introspection)
1464 ("gtk+:bin" ,gtk+ "bin")
1465 ("pkg-config" ,pkg-config)))
1466 (inputs
1467 `(("accountsservice" ,accountsservice)
1468 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1469 ("gdm" ,gdm)
1470 ("geoclue" ,geoclue)
1471 ("gnome-desktop" ,gnome-desktop)
1472 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1473 ("gnome-online-accounts" ,gnome-online-accounts)
1474 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1475 ("gstreamer" ,gstreamer)
1476 ("ibus" ,ibus)
1477 ("json-glib" ,json-glib)
1478 ("krb5" ,mit-krb5)
1479 ("libgweather" ,libgweather)
1480 ("libnma" ,libnma)
1481 ("libsecret" ,libsecret)
1482 ("network-manager" ,network-manager)
1483 ("packagekit" ,packagekit)
1484 ("polkit" ,polkit)
1485 ("pwquality" ,libpwquality)
1486 ("rest" ,rest)
1487 ("upower" ,upower)
1488 ("webkitgtk" ,webkitgtk)
1489 ("libgnomekbd" ,libgnomekbd)))
1490 (synopsis "Initial setup wizard for GNOME desktop")
1491 (description "This package provides a set-up wizard when a
1492 user logs into GNOME for the first time. It typically provides a
1493 tour of all gnome components and allows the user to set them up.")
1494 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1495 (license license:gpl2)))
1496
1497 (define-public gnome-user-share
1498 (package
1499 (name "gnome-user-share")
1500 (version "3.33.1")
1501 (source (origin
1502 (method url-fetch)
1503 (uri (string-append "mirror://gnome/sources/" name "/"
1504 (version-major+minor version) "/"
1505 name "-" version ".tar.xz"))
1506 (sha256
1507 (base32
1508 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1509 (build-system meson-build-system)
1510 (arguments
1511 `(#:glib-or-gtk? #t
1512 #:configure-flags
1513 `("-Dsystemd=false"
1514 ;; Enable nautilus extension for file sharing.
1515 "-Dnautilus_extension=true")))
1516 (native-inputs
1517 `(("gettext" ,gettext-minimal)
1518 ("glib:bin" ,glib "bin")
1519 ("gobject-introspection" ,gobject-introspection)
1520 ("gtk+:bin" ,gtk+ "bin")
1521 ("pkg-config" ,pkg-config)
1522 ("yelp-tools" ,yelp-tools)))
1523 (inputs
1524 `(("glib" ,glib)
1525 ("gnome-bluetooth" ,gnome-bluetooth)
1526 ("gtk+" ,gtk+)
1527 ("libcanberra" ,libcanberra)
1528 ("libnotify" ,libnotify)
1529 ("nautilus" ,nautilus))) ; For nautilus extension.
1530 (synopsis "File sharing for GNOME desktop")
1531 (description "GNOME User Share is a small package that binds together
1532 various free software projects to bring easy to use user-level file
1533 sharing to the masses.")
1534 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1535 (license license:gpl2+)))
1536
1537 (define-public sushi
1538 (package
1539 (name "sushi")
1540 (version "3.32.1")
1541 (source (origin
1542 (method url-fetch)
1543 (uri (string-append "mirror://gnome/sources/" name "/"
1544 (version-major+minor version) "/"
1545 name "-" version ".tar.xz"))
1546 (sha256
1547 (base32
1548 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1549 (build-system meson-build-system)
1550 (arguments
1551 `(#:glib-or-gtk? #t
1552 #:phases
1553 (modify-phases %standard-phases
1554 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1555 (lambda* (#:key outputs #:allow-other-keys)
1556 (let ((prog (string-append (assoc-ref outputs "out")
1557 "/bin/sushi")))
1558 ;; Put existing typelibs before sushi's deps, so as to correctly
1559 ;; infer gdk-pixbuf
1560 (wrap-program prog
1561 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1562 #t))))))
1563 (native-inputs
1564 `(("glib:bin" ,glib "bin")
1565 ("gettext" ,gettext-minimal)
1566 ("gobject-introspection" ,gobject-introspection)
1567 ("pkg-config" ,pkg-config)))
1568 (inputs
1569 `(("clutter" ,clutter)
1570 ("clutter-gst" ,clutter-gst)
1571 ("clutter-gtk" ,clutter-gtk)
1572 ("evince" ,evince) ; For file previewing.
1573 ("freetype" ,freetype)
1574 ("gdk-pixbuf" ,gdk-pixbuf)
1575 ("gjs" ,gjs)
1576 ("gst-plugins-base" ,gst-plugins-base)
1577 ("gstreamer" ,gstreamer)
1578 ("gtksourceview" ,gtksourceview-3)
1579 ("harfbuzz" ,harfbuzz)
1580 ("libepoxy" ,libepoxy)
1581 ("libmusicbrainz" ,libmusicbrainz)
1582 ("libxml2" ,libxml2)
1583 ("neon" ,neon)
1584 ("webkitgtk" ,webkitgtk)))
1585 (synopsis "File previewer for the GNOME desktop")
1586 (description "Sushi is a DBus-activated service that allows applications to
1587 preview files on the GNOME desktop.")
1588 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1589 (license license:gpl2+)))
1590
1591 (define-public rygel
1592 (package
1593 (name "rygel")
1594 (version "0.38.3")
1595 (source (origin
1596 (method url-fetch)
1597 (uri (string-append "mirror://gnome/sources/" name "/"
1598 (version-major+minor version) "/"
1599 name "-" version ".tar.xz"))
1600 (sha256
1601 (base32
1602 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1603 (build-system gnu-build-system)
1604 (native-inputs
1605 `(("gettext" ,gettext-minimal)
1606 ("gobject-introspection" ,gobject-introspection)
1607 ("gtk-doc" ,gtk-doc)
1608 ("pkg-config" ,pkg-config)
1609 ("vala" ,vala)))
1610 (inputs
1611 `(("gdk-pixbuf" ,gdk-pixbuf)
1612 ("gssdp" ,gssdp)
1613 ("gstreamer" ,gstreamer)
1614 ("gst-plugins-base" ,gst-plugins-base)
1615 ("gtk+" ,gtk+)
1616 ("gupnp" ,gupnp)
1617 ("gupnp-av" ,gupnp-av)
1618 ("gupnp-dlna" ,gupnp-dlna)
1619 ("libgee" ,libgee)
1620 ("libmediaart" ,libmediaart)
1621 ("libsoup" ,libsoup)
1622 ("libxslt" ,libxslt)
1623 ("libunistring" ,libunistring)
1624 ("tracker" ,tracker)))
1625 (synopsis "Share audio, video, and pictures with other devices")
1626 (description
1627 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1628 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1629 pictures, and to control a media player on your home network.
1630
1631 Rygel achieves interoperability with other devices by trying to conform to the
1632 strict requirements of DLNA and by converting media on-the-fly to formats that
1633 client devices can handle.")
1634 (home-page "https://wiki.gnome.org/Projects/Rygel")
1635 (license (list
1636 ;; For logo (data/icons/*).
1637 license:cc-by-sa3.0
1638 ;; For all others.
1639 license:lgpl2.1+))))
1640
1641 (define-public libnma
1642 (package
1643 (name "libnma")
1644 (version "1.8.28")
1645 (source (origin
1646 (method url-fetch)
1647 (uri (string-append "mirror://gnome/sources/" name "/"
1648 (version-major+minor version) "/"
1649 name "-" version ".tar.xz"))
1650 (sha256
1651 (base32
1652 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1653 (build-system meson-build-system)
1654 (arguments
1655 `(#:phases
1656 (modify-phases %standard-phases
1657 (add-after 'unpack 'patch-docbook-xml
1658 (lambda* (#:key inputs #:allow-other-keys)
1659 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1660 "/xml/dtd/docbook")))
1661 (substitute* "libnma-docs.xml"
1662 (("http://.*/docbookx\\.dtd")
1663 (string-append xmldoc "/docbookx.dtd")))
1664 #t))))))
1665 (native-inputs
1666 `(("docbook-xml" ,docbook-xml-4.3)
1667 ("gettext" ,gettext-minimal)
1668 ("glib:bin" ,glib "bin")
1669 ("gtk-doc" ,gtk-doc)
1670 ("gobject-introspection" ,gobject-introspection)
1671 ("pkg-config" ,pkg-config)
1672 ("vala" ,vala)))
1673 (inputs
1674 `(("gcr" ,gcr)
1675 ("gtk+" ,gtk+)
1676 ("iso-codes" ,iso-codes)
1677 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1678 ("network-manager" ,network-manager)))
1679 (synopsis "Network Manager's applet library")
1680 (description "Libnma is an applet library for Network Manager. It was
1681 initially part of network-manager-applet and has now become a separate
1682 project.")
1683 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1684 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1685 ;; "LGPL-2.1+".
1686 (license license:gpl2+)))
1687
1688 (define-public gnome-menus
1689 (package
1690 (name "gnome-menus")
1691 (version "3.32.0")
1692 (source (origin
1693 (method url-fetch)
1694 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1695 (version-major+minor version) "/"
1696 name "-" version ".tar.xz"))
1697 (sha256
1698 (base32
1699 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1700 (build-system gnu-build-system)
1701 (native-inputs
1702 `(("gettext" ,gettext-minimal)
1703 ("glib" ,glib)
1704 ("pkg-config" ,pkg-config)))
1705 (synopsis "Menu support for GNOME desktop")
1706 (description "GNOME Menus contains the libgnome-menu library, the layout
1707 configuration files for the GNOME menu, as well as a simple menu editor.")
1708 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1709 (license license:lgpl2.0+)))
1710
1711 (define-public deja-dup
1712 (package
1713 (name "deja-dup")
1714 (version "40.6")
1715 (source (origin
1716 (method url-fetch)
1717 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1718 version "/deja-dup-" version ".tar.bz2"))
1719 (sha256
1720 (base32
1721 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1722 (build-system meson-build-system)
1723 (arguments
1724 `(#:glib-or-gtk? #t
1725 #:configure-flags
1726 (list
1727 ;; Otherwise, the RUNPATH will lack the final path component.
1728 (string-append "-Dc_link_args=-Wl,-rpath="
1729 (assoc-ref %outputs "out") "/lib/deja-dup"))
1730 #:phases
1731 (modify-phases %standard-phases
1732 (add-after 'unpack 'patch-paths
1733 (lambda* (#:key inputs #:allow-other-keys)
1734 (let ((python (assoc-ref inputs "python")))
1735 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1736 "libdeja/tests/scripts/instance-error.test")
1737 (("/bin/rm")
1738 (which "rm")))
1739 (substitute* "libdeja/tests/runner.vala"
1740 (("/bin/sh")
1741 (which "sh")))
1742 (substitute* "libdeja/tests/scripts/instance-error.test"
1743 (("`which python3`")
1744 (string-append python "/bin/python3"))))))
1745 (add-after 'unpack 'patch-libgpg-error
1746 (lambda* (#:key inputs #:allow-other-keys)
1747 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1748 (substitute* "meson.build"
1749 (("(gpgerror_libs = ).*" _ var)
1750 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1751 #t))
1752 (add-after 'unpack 'skip-gtk-update-icon-cache
1753 ;; Don't create 'icon-theme.cache'.
1754 (lambda _
1755 (substitute* "data/post-install.sh"
1756 (("gtk-update-icon-cache") "true"))
1757 #t)))))
1758 (inputs
1759 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1760 ("duplicity" ,duplicity)
1761 ("python" ,python)
1762 ("python-pygobject" ,python-pygobject)
1763 ("gtk+" ,gtk+)
1764 ("json-glib" ,json-glib)
1765 ("libnotify" ,libnotify)
1766 ("libgpg-error" ,libgpg-error)
1767 ("libsecret" ,libsecret)
1768 ("libsoup" ,libsoup)
1769 ("packagekit" ,packagekit)))
1770 (native-inputs
1771 `(("appstream-glib" ,appstream-glib)
1772 ("desktop-file-utils" ,desktop-file-utils)
1773 ("gettext" ,gettext-minimal)
1774 ("glib" ,glib "bin") ; for glib-compile-schemas.
1775 ("gobject-introspection" ,gobject-introspection)
1776 ("itstool" ,itstool)
1777 ("pkg-config" ,pkg-config)
1778 ("vala" ,vala)))
1779 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1780 (synopsis "Simple backup tool, for regular encrypted backups")
1781 (description
1782 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1783 uses duplicity as the backend, which supports incremental backups and storage
1784 either on a local, or remote machine via a number of methods.")
1785 (license license:gpl3+)))
1786
1787 (define-public gnome-commander
1788 (package
1789 (name "gnome-commander")
1790 (version "1.10.3")
1791 (source
1792 (origin
1793 (method url-fetch)
1794 (uri (string-append "mirror://gnome/sources/" name "/"
1795 (version-major+minor version) "/"
1796 "gnome-commander-" version ".tar.xz"))
1797 (sha256
1798 (base32 "0bis36awb73vhkncq8yr0qlnyaxynqkvmyqbg57ijqwd0m8hh4zg"))))
1799 (build-system glib-or-gtk-build-system)
1800 (native-inputs
1801 `(("desktop-file-utils" ,desktop-file-utils)
1802 ("gcc" ,gcc-8) ;required for -Wcast-function-type
1803 ("gettext" ,gettext-minimal)
1804 ("glib:bin" ,glib "bin")
1805 ("gobject-introspection" ,gobject-introspection)
1806 ("googletest" ,googletest)
1807 ("intltool" ,intltool)
1808 ("itstool" ,itstool)
1809 ("libtool" ,libtool)
1810 ("pkg-config" ,pkg-config)))
1811 (inputs
1812 `(("gconf" ,gconf)
1813 ("gnome-vfs" ,gnome-vfs)
1814 ("gtk+" ,gtk+-2)
1815 ("libxml2" ,libxml2)))
1816 (home-page "https://gcmd.github.io/")
1817 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1818 (description
1819 "GNOME Commander is a two-pane graphical file manager using GNOME
1820 libraries. It aims to fulfill the demands of more advanced users who
1821 like to focus on file management, their work through special applications
1822 and running smart commands.")
1823 (license license:gpl2+)))
1824
1825 (define-public gnome-user-docs
1826 (package
1827 (name "gnome-user-docs")
1828 (version "3.32.3")
1829 (source
1830 (origin
1831 (method url-fetch)
1832 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1833 (version-major+minor version)
1834 "/gnome-user-docs-" version ".tar.xz"))
1835 (sha256
1836 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1837 (build-system gnu-build-system)
1838 (native-inputs
1839 `(("gettext" ,gettext-minimal)
1840 ("itstool" ,itstool)
1841 ("pkg-config" ,pkg-config)
1842 ("xmllint" ,libxml2)))
1843 (synopsis "User documentation for the GNOME desktop")
1844 (description
1845 "The GNOME User Documentation explains how to use the GNOME desktop and its
1846 components. It covers usage and setup of the core GNOME programs by end-users
1847 and system administrators.")
1848 (home-page "https://live.gnome.org/DocumentationProject")
1849 (license license:cc-by3.0)))
1850
1851 (define-public gnome-getting-started-docs
1852 (package
1853 (name "gnome-getting-started-docs")
1854 (version "3.32.2")
1855 (source
1856 (origin
1857 (method url-fetch)
1858 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1859 (version-major+minor version)
1860 "/gnome-getting-started-docs-" version ".tar.xz"))
1861 (sha256
1862 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1863 (build-system gnu-build-system)
1864 (native-inputs
1865 `(("gettext" ,gettext-minimal)
1866 ("itstool" ,itstool)
1867 ("pkg-config" ,pkg-config)
1868 ("xmllint" ,libxml2)))
1869 (synopsis "Help to get new users started with the GNOME desktop")
1870 (description
1871 "The GNOME Getting Started Documentation contains GNOME's intuitive
1872 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1873
1874 It is normally used together with @command{gnome-initial-setup}, but is also
1875 useful as a tutorial and users' guide for new or less experienced users.")
1876 (home-page "https://live.gnome.org/DocumentationProject")
1877 (license license:cc-by-sa3.0)))
1878
1879 (define-public dia
1880 ;; This version from GNOME's repository includes fixes for compiling with
1881 ;; recent versions of the build tools. The latest activity on the
1882 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1883 ;; fixes since.
1884 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1885 (revision "2"))
1886 (package
1887 (name "dia")
1888 (version (git-version "0.97.3" revision commit))
1889 (source (origin
1890 (method git-fetch)
1891 (uri (git-reference
1892 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1893 (commit commit)))
1894 (file-name (git-file-name name version))
1895 (sha256
1896 (base32
1897 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1898 (build-system meson-build-system)
1899 (inputs
1900 `(("graphene" ,graphene)
1901 ("gtk+" ,gtk+-2)
1902 ("libxml2" ,libxml2)
1903 ("libxslt" ,libxslt)
1904 ("poppler" ,poppler)
1905 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1906 ;; ERROR: Unknown method "dependency" in object.
1907 ("python-2" ,python-2)))
1908 (native-inputs
1909 `(("appstream-glib" ,appstream-glib)
1910 ("docbook-xsl" ,docbook-xsl)
1911 ("glib" ,glib "bin")
1912 ("intltool" ,intltool)
1913 ("pkg-config" ,pkg-config)))
1914 (home-page "https://wiki.gnome.org/Apps/Dia")
1915 (synopsis "Diagram creation for GNOME")
1916 (description "Dia can be used to draw different types of diagrams, and
1917 includes support for UML static structure diagrams (class diagrams), entity
1918 relationship modeling, and network diagrams. The program supports various file
1919 formats like PNG, SVG, PDF and EPS.")
1920 (license license:gpl2+))))
1921
1922 ;; This is the unstable release, but it is required for the current stable
1923 ;; release of gvfs (1.38.1).
1924 (define-public libgdata
1925 (package
1926 (name "libgdata")
1927 (version "0.17.9")
1928 (source (origin
1929 (method url-fetch)
1930 (uri (string-append "mirror://gnome/sources/" name "/"
1931 (version-major+minor version) "/"
1932 name "-" version ".tar.xz"))
1933 (sha256
1934 (base32
1935 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1936 (build-system gnu-build-system)
1937 (arguments
1938 '(#:phases
1939 (modify-phases %standard-phases
1940 (add-before 'check 'disable-failing-tests
1941 (lambda _
1942 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1943 ;; They have been removed in libgdata 0.17.6, so just do the same.
1944 (substitute* "gdata/tests/Makefile"
1945 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1946 #t)))))
1947 (native-inputs
1948 `(("glib:bin" ,glib "bin")
1949 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1950 ("intltool" ,intltool)
1951 ("pkg-config" ,pkg-config)
1952 ("uhttpmock" ,uhttpmock)))
1953 (inputs
1954 `(("cyrus-sasl" ,cyrus-sasl)
1955 ("glib-networking" ,glib-networking)))
1956 (propagated-inputs
1957 `(("gcr" ,gcr)
1958 ("glib" ,glib)
1959 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1960 ("json-glib" ,json-glib)
1961 ("liboauth" ,liboauth)
1962 ("libsoup" ,libsoup)
1963 ("libxml2" ,libxml2)))
1964 (home-page "https://wiki.gnome.org/Projects/libgdata")
1965 (synopsis "Library for accessing online service APIs")
1966 (description
1967 "libgdata is a GLib-based library for accessing online service APIs using
1968 the GData protocol — most notably, Google's services. It provides APIs to
1969 access the common Google services, and has full asynchronous support.")
1970 (license license:lgpl2.1+)))
1971
1972 (define-public libgxps
1973 (package
1974 (name "libgxps")
1975 (version "0.3.1")
1976 (source (origin
1977 (method url-fetch)
1978 (uri (string-append "mirror://gnome/sources/" name "/"
1979 (version-major+minor version) "/"
1980 name "-" version ".tar.xz"))
1981 (sha256
1982 (base32
1983 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1984 (build-system meson-build-system)
1985 (native-inputs
1986 `(("gobject-introspection" ,gobject-introspection)
1987 ("pkg-config" ,pkg-config)))
1988 (inputs
1989 `(("gtk+" ,gtk+)
1990 ("libjpeg" ,libjpeg-turbo)
1991 ("lcms" ,lcms)
1992 ("libtiff" ,libtiff)))
1993 (propagated-inputs
1994 ;; In Requires of libgxps.pc.
1995 `(("cairo" ,cairo)
1996 ("glib" ,glib)
1997 ("libarchive" ,libarchive)))
1998 (home-page "https://wiki.gnome.org/Projects/libgxps")
1999 (synopsis "GObject-based library for handling and rendering XPS documents")
2000 (description
2001 "libgxps is a GObject-based library for handling and rendering XPS
2002 documents. This package also contains binaries that can convert XPS documents
2003 to other formats.")
2004 (license license:lgpl2.1+)))
2005
2006 (define-public gnome-characters
2007 (package
2008 (name "gnome-characters")
2009 (version "3.30.0")
2010 (source
2011 (origin
2012 (method url-fetch)
2013 (uri (string-append "mirror://gnome/sources/"
2014 "gnome-characters/" (version-major+minor version)
2015 "/gnome-characters-" version ".tar.xz"))
2016 (sha256
2017 (base32
2018 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
2019 (build-system meson-build-system)
2020 (arguments
2021 `(#:glib-or-gtk? #t
2022 #:phases (modify-phases %standard-phases
2023 (add-after 'install 'wrap
2024 (lambda* (#:key outputs #:allow-other-keys)
2025 ;; GNOME Characters needs Typelib files from GTK and
2026 ;; gnome-desktop.
2027 (wrap-program (string-append (assoc-ref outputs "out")
2028 "/bin/gnome-characters")
2029 `("GI_TYPELIB_PATH" ":" prefix
2030 (,(getenv "GI_TYPELIB_PATH"))))
2031 #t)))))
2032 (native-inputs
2033 `(("gettext" ,gettext-minimal)
2034 ("glib:bin" ,glib "bin")
2035 ("gtk+:bin" ,gtk+ "bin")
2036 ("pkg-config" ,pkg-config)
2037 ("python" ,python-minimal)))
2038 (inputs
2039 `(("gjs" ,gjs)
2040 ("gtk+" ,gtk+)
2041 ("libunistring" ,libunistring)
2042 ("gnome-desktop" ,gnome-desktop)))
2043 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2044 (synopsis "Find and insert unusual characters")
2045 (description "Characters is a simple utility application to find
2046 and insert unusual characters. It allows you to quickly find the
2047 character you are looking for by searching for keywords.")
2048 (license license:bsd-3)))
2049
2050 (define-public gnome-common
2051 (package
2052 (name "gnome-common")
2053 (version "3.18.0")
2054 (source
2055 (origin
2056 (method url-fetch)
2057 (uri (string-append "mirror://gnome/sources/" name "/"
2058 (version-major+minor version) "/"
2059 name "-" version ".tar.xz"))
2060 (sha256
2061 (base32
2062 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2063 (build-system gnu-build-system)
2064 (home-page "https://www.gnome.org/")
2065 (synopsis "Bootstrap GNOME modules built from Git")
2066 (description "gnome-common contains various files needed to bootstrap
2067 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2068 can be used to configure a source directory checked out from Git and some
2069 commonly used macros.")
2070 (license license:gpl2+)))
2071
2072 (define-public gnome-contacts
2073 (package
2074 (name "gnome-contacts")
2075 (version "3.34")
2076 (source (origin
2077 (method url-fetch)
2078 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2079 (version-major+minor version) "/"
2080 name "-" version ".tar.xz"))
2081 (sha256
2082 (base32
2083 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
2084 (build-system meson-build-system)
2085 (arguments
2086 `(#:configure-flags '("-Dcheese=false")
2087 #:phases
2088 (modify-phases %standard-phases
2089 (add-after 'unpack 'generate-vapis
2090 (lambda* (#:key inputs #:allow-other-keys)
2091 ;; To generate goa's missing .vapi file
2092 (define goa
2093 (assoc-ref inputs "gnome-online-accounts:lib"))
2094
2095 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
2096 "--library=goa-1.0"
2097 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
2098 #t))
2099 (add-after 'unpack 'skip-gtk-update-icon-cache
2100 ;; Don't create 'icon-theme.cache'.
2101 (lambda _
2102 (substitute* "build-aux/meson_post_install.py"
2103 (("gtk-update-icon-cache") "true"))
2104 #t)))))
2105 (native-inputs
2106 `(("glib:bin" ,glib "bin")
2107 ("pkg-config" ,pkg-config)))
2108 (inputs
2109 `(("docbook-xml" ,docbook-xml)
2110 ("dockbook-xsl" ,docbook-xsl)
2111 ("evolution-data-server" ,evolution-data-server)
2112 ("gettext" ,gettext-minimal)
2113 ("gnome-desktop" ,gnome-desktop)
2114 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
2115 ("gobject-introspection" ,gobject-introspection)
2116 ("gst-plugins-base" ,gst-plugins-base)
2117 ("gtk+" ,gtk+)
2118 ("libgee" ,libgee)
2119 ("libxslt" ,libxslt)
2120 ("telepathy-glib" ,telepathy-glib)
2121 ("vala" ,vala)))
2122 (propagated-inputs
2123 `(("folks" ,folks)
2124 ("telepathy-mission-control" ,telepathy-mission-control)))
2125 (synopsis "GNOME's integrated address book")
2126 (description
2127 "GNOME Contacts organizes your contact information from online and
2128 offline sources, providing a centralized place for managing your contacts.")
2129 (home-page "https://wiki.gnome.org/Apps/Contacts")
2130 (license license:gpl2+)))
2131
2132 (define-public gnome-desktop
2133 (package
2134 (name "gnome-desktop")
2135 (version "3.34.2")
2136 (source
2137 (origin
2138 (method url-fetch)
2139 (uri (string-append "mirror://gnome/sources/" name "/"
2140 (version-major+minor version) "/"
2141 name "-" version ".tar.xz"))
2142 (sha256
2143 (base32
2144 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2145 (build-system meson-build-system)
2146 (arguments
2147 '(#:phases
2148 (modify-phases %standard-phases
2149 (add-before 'configure 'patch-path
2150 (lambda* (#:key inputs #:allow-other-keys)
2151 (let ((libc (assoc-ref inputs "libc")))
2152 (substitute* "libgnome-desktop/gnome-languages.c"
2153 (("\"locale\"")
2154 (string-append "\"" libc "/bin/locale\"")))
2155 #t)))
2156 (add-before 'configure 'patch-bubblewrap
2157 (lambda* (#:key inputs #:allow-other-keys)
2158 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2159 (("\"bwrap\",")
2160 (string-append "\"" (which "bwrap") "\","))
2161 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2162 (string-append "\"--ro-bind\", \""
2163 (%store-directory)
2164 "\", \""
2165 (%store-directory)
2166 "\","))
2167 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2168 #t))
2169 (add-before 'check 'pre-check
2170 (lambda* (#:key inputs #:allow-other-keys)
2171 ;; Tests require a running X server and locales.
2172 (system "Xvfb :1 &")
2173 (setenv "DISPLAY" ":1")
2174 (setenv "GUIX_LOCPATH"
2175 (string-append (assoc-ref inputs "glibc-locales")
2176 "/lib/locale"))
2177 #t)))))
2178 (native-inputs
2179 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2180 ("glibc-locales" ,glibc-locales) ; for tests
2181 ("gobject-introspection" ,gobject-introspection)
2182 ("itstool" ,itstool)
2183 ("intltool" ,intltool)
2184 ("pkg-config" ,pkg-config)
2185 ("xmllint" ,libxml2)
2186 ("xorg-server" ,xorg-server-for-tests)))
2187 (propagated-inputs
2188 ;; Required by gnome-desktop-3.0.pc.
2189 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2190 ("gtk+" ,gtk+)
2191 ("iso-codes" ,iso-codes)
2192 ("libseccomp" ,libseccomp)
2193 ("libx11" ,libx11)
2194 ("xkeyboard-config" ,xkeyboard-config)))
2195 (inputs
2196 `(("gdk-pixbuf" ,gdk-pixbuf)
2197 ("glib" ,glib)
2198 ("bubblewrap" ,bubblewrap)
2199 ("libxext" ,libxext)
2200 ("libxkbfile" ,libxkbfile)
2201 ("libxrandr" ,libxrandr)))
2202 (home-page "https://www.gnome.org/")
2203 (synopsis
2204 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2205 (description
2206 "The libgnome-desktop library provides API shared by several applications
2207 on the desktop, but that cannot live in the platform for various reasons.
2208 There is no API or ABI guarantee, although we are doing our best to provide
2209 stability. Documentation for the API is available with gtk-doc.
2210
2211 The gnome-about program helps find which version of GNOME is installed.")
2212 ; Some bits under the LGPL.
2213 (license license:gpl2+)))
2214
2215 (define-public gnome-doc-utils
2216 (package
2217 (name "gnome-doc-utils")
2218 (version "0.20.10")
2219 (source
2220 (origin
2221 (method url-fetch)
2222 (uri (string-append "mirror://gnome/sources/" name "/"
2223 (version-major+minor version) "/"
2224 name "-" version ".tar.xz"))
2225 (sha256
2226 (base32
2227 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2228 (build-system gnu-build-system)
2229 (native-inputs
2230 `(("intltool" ,intltool)
2231 ("docbook-xml" ,docbook-xml-4.4)
2232 ("python2-libxml2" ,python2-libxml2)
2233 ("libxml2" ,libxml2)
2234 ("libxslt" ,libxslt)
2235 ("pkg-config" ,pkg-config)
2236 ("python-2" ,python-2)))
2237 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2238 (synopsis
2239 "Documentation utilities for the Gnome project")
2240 (description
2241 "Gnome-doc-utils is a collection of documentation utilities for the
2242 Gnome project. It includes xml2po tool which makes it easier to translate
2243 and keep up to date translations of documentation.")
2244 (license license:gpl2+))) ; xslt under lgpl
2245
2246 (define-public gnome-disk-utility
2247 (package
2248 (name "gnome-disk-utility")
2249 (version "3.34.0")
2250 (source (origin
2251 (method url-fetch)
2252 (uri (string-append "mirror://gnome/sources/" name "/"
2253 (version-major+minor version) "/"
2254 name "-" version ".tar.xz"))
2255 (sha256
2256 (base32
2257 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2258 (build-system meson-build-system)
2259 (arguments
2260 '(#:configure-flags '("-Dlogind=libelogind")
2261 #:phases
2262 (modify-phases %standard-phases
2263 (add-after 'unpack 'skip-gtk-update-icon-cache
2264 ;; Don't create 'icon-theme.cache'.
2265 (lambda _
2266 (substitute* "meson_post_install.py"
2267 (("gtk-update-icon-cache") "true"))
2268 #t)))))
2269 (native-inputs
2270 `(("glib:bin" ,glib "bin")
2271 ("intltool" ,intltool)
2272 ("pkg-config" ,pkg-config)
2273 ("docbook-xml" ,docbook-xml)
2274 ("docbook-xsl" ,docbook-xsl)
2275 ("libxml2" ,libxml2)
2276 ("libxslt" ,libxslt)))
2277 (inputs
2278 `(("elogind" ,elogind)
2279 ("glib" ,glib)
2280 ("appstream-glib" ,appstream-glib)
2281 ("gnome-settings-daemon" ,gnome-settings-daemon)
2282 ("gtk+" ,gtk+)
2283 ("libcanberra" ,libcanberra)
2284 ("libdvdread" ,libdvdread)
2285 ("libnotify" ,libnotify)
2286 ("libpwquality" ,libpwquality)
2287 ("libsecret" ,libsecret)
2288 ("udisks" ,udisks)))
2289 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2290 (synopsis "Disk management utility for GNOME")
2291 (description "Disk management utility for GNOME.")
2292 (license license:gpl2+)))
2293
2294 (define-public gnome-font-viewer
2295 (package
2296 (name "gnome-font-viewer")
2297 (version "3.30.0")
2298 (source (origin
2299 (method url-fetch)
2300 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2301 (version-major+minor version)
2302 "/gnome-font-viewer-" version ".tar.xz"))
2303 (sha256
2304 (base32
2305 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2306 (build-system meson-build-system)
2307 (arguments
2308 '(#:phases
2309 (modify-phases %standard-phases
2310 (add-after 'unpack 'patch-post-install-script
2311 (lambda _
2312 (substitute* "meson-postinstall.sh"
2313 (("update-desktop-database") (which "true")))
2314 #t))
2315 (add-after 'install 'patch-thumbnailer
2316 (lambda* (#:key outputs #:allow-other-keys)
2317 (let ((out (assoc-ref outputs "out")))
2318 (substitute*
2319 (string-append
2320 out
2321 "/share/thumbnailers/gnome-font-viewer.thumbnailer")
2322 (("gnome-thumbnail-font")
2323 (string-append out "/bin/gnome-thumbnail-font"))))
2324 #t)))))
2325 (native-inputs
2326 `(("gettext" ,gettext-minimal)
2327 ("glib:bin" ,glib "bin")
2328 ("pkg-config" ,pkg-config)))
2329 (inputs
2330 `(("glib" ,glib)
2331 ("gnome-desktop" ,gnome-desktop)
2332 ("gtk+" ,gtk+)))
2333 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2334 (synopsis "GNOME Fonts")
2335 (description "Application to show you the fonts installed on your computer
2336 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2337 the font would look under various sizes.")
2338 (license license:gpl2+)))
2339
2340 (define-public gcr
2341 (package
2342 (name "gcr")
2343 (version "3.34.0")
2344 (source (origin
2345 (method url-fetch)
2346 (uri (string-append "mirror://gnome/sources/" name "/"
2347 (version-major+minor version) "/"
2348 name "-" version ".tar.xz"))
2349 (sha256
2350 (base32
2351 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2352 (build-system gnu-build-system)
2353 (arguments
2354 '(#:phases
2355 (modify-phases %standard-phases
2356 ;; These fail because /var/lib/dbus/machine-id is not present in the
2357 ;; build environment.
2358 (add-after 'unpack 'disable-failing-tests
2359 (lambda _
2360 (substitute* "Makefile.in"
2361 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2362 ""))
2363 #t))
2364 (add-before 'check 'pre-check
2365 (lambda _
2366 ;; Some tests expect to write to $HOME.
2367 (setenv "HOME" "/tmp")
2368 #t)))))
2369 (inputs
2370 `(("dbus" ,dbus)
2371 ("gnupg" ,gnupg) ;called as a child process during tests
2372 ("libgcrypt" ,libgcrypt)))
2373 (native-inputs
2374 `(("python" ,python-wrapper) ;for tests
2375 ("pkg-config" ,pkg-config)
2376 ("gettext" ,gettext-minimal)
2377 ("glib" ,glib "bin")
2378 ("gobject-introspection" ,gobject-introspection)
2379 ("libxml2" ,libxml2)
2380 ("vala" ,vala)
2381 ("xsltproc" ,libxslt)))
2382 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2383 (propagated-inputs
2384 `(("p11-kit" ,p11-kit)
2385 ("glib" ,glib)
2386 ("gtk+" ,gtk+)))
2387 (home-page "https://www.gnome.org")
2388 (synopsis "Libraries for displaying certificates and accessing key stores")
2389 (description
2390 "The GCR package contains libraries used for displaying certificates and
2391 accessing key stores. It also provides the viewer for crypto files on the
2392 GNOME Desktop.")
2393 (license license:lgpl2.1+)))
2394
2395 (define-public gdl
2396 (package
2397 (name "gdl")
2398 (version "3.34.0")
2399 (source (origin
2400 (method git-fetch)
2401 (uri (git-reference
2402 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2403 (commit (string-append "GDL_" (string-map (match-lambda
2404 (#\. #\_)
2405 (c c))
2406 version)))))
2407 (file-name (git-file-name name version))
2408 (sha256
2409 (base32
2410 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2411 (build-system gnu-build-system)
2412 (native-inputs
2413 `(("autoconf" ,autoconf)
2414 ("automake" ,automake)
2415 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2416 ("gnome-common" ,gnome-common)
2417 ("gtk-doc" ,gtk-doc)
2418 ("intltool" ,intltool)
2419 ("pkg-config" ,pkg-config)
2420 ("libtool" ,libtool)
2421 ("which" ,which)))
2422 (inputs
2423 `(("libxml2" ,libxml2)))
2424 (propagated-inputs
2425 ;; The gdl-3.0.pc file 'Requires' GTK+.
2426 `(("gtk+" ,gtk+)))
2427 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2428 (synopsis "GNOME docking library")
2429 (description "This library provides docking features for gtk+.")
2430 (license license:lgpl2.1+)))
2431
2432 ;;; A minimal variant used to break a cycle with Inkscape.
2433 (define-public gdl-minimal
2434 (package
2435 (inherit gdl)
2436 (name "gdl-minimal")
2437 (arguments
2438 '(#:phases
2439 (modify-phases %standard-phases
2440 (add-after 'unpack 'disable-doc-generation
2441 ;; XXX: There is no easy way to disable generating the
2442 ;; documentation.
2443 (lambda _
2444 (substitute* "configure.in"
2445 (("GTK_DOC_CHECK.*") "")
2446 (("docs/.*") ""))
2447 (substitute* "Makefile.am"
2448 (("gdl docs po") "gdl po"))
2449 #t)))))
2450 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2451
2452 (define-public libgnome-keyring
2453 (package
2454 (name "libgnome-keyring")
2455 (version "3.12.0")
2456 (source (origin
2457 (method url-fetch)
2458 (uri (string-append "mirror://gnome/sources/" name "/"
2459 (version-major+minor version) "/"
2460 name "-" version ".tar.xz"))
2461 (sha256
2462 (base32
2463 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2464 (build-system gnu-build-system)
2465 (inputs
2466 `(("libgcrypt" ,libgcrypt)
2467 ("dbus" ,dbus)))
2468 (native-inputs
2469 `(("pkg-config" ,pkg-config)
2470 ("glib" ,glib "bin")
2471 ("intltool" ,intltool)))
2472 (propagated-inputs
2473 ;; Referred to in .h files and .pc.
2474 `(("glib" ,glib)))
2475 (home-page "https://www.gnome.org")
2476 (synopsis "Accessing passwords from the GNOME keyring")
2477 (description
2478 "Client library to access passwords from the GNOME keyring.")
2479
2480 ;; Though a couple of files are LGPLv2.1+.
2481 (license license:lgpl2.0+)))
2482
2483 (define-public gnome-keyring
2484 (package
2485 (name "gnome-keyring")
2486 (version "3.34.0")
2487 (source (origin
2488 (method url-fetch)
2489 (uri (string-append "mirror://gnome/sources/" name "/"
2490 (version-major+minor version) "/"
2491 name "-" version ".tar.xz"))
2492 (sha256
2493 (base32
2494 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2495 (build-system gnu-build-system)
2496 (arguments
2497 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2498 ;not exist
2499 #:configure-flags
2500 (list
2501 (string-append "--with-pkcs11-config="
2502 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2503 (string-append "--with-pkcs11-modules="
2504 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2505 #:phases
2506 (modify-phases %standard-phases
2507 (add-after 'unpack 'fix-/bin/sh-reference
2508 (lambda _
2509 (substitute* "po/Makefile.in.in"
2510 (("/bin/sh") (which "sh")))
2511 #t))
2512 (add-after 'unpack 'fix-docbook
2513 (lambda* (#:key inputs #:allow-other-keys)
2514 (substitute* "docs/Makefile.am"
2515 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2516 (string-append (assoc-ref inputs "docbook-xsl")
2517 "/xml/xsl/docbook-xsl-"
2518 ,(package-version docbook-xsl)
2519 "/manpages/docbook.xsl")))
2520 (setenv "XML_CATALOG_FILES"
2521 (string-append (assoc-ref inputs "docbook-xml")
2522 "/xml/dtd/docbook/catalog.xml"))
2523 ;; Rerun the whole thing to avoid version mismatch ("This is
2524 ;; Automake 1.15.1, but the definition used by this
2525 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2526 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2527 (invoke "autoconf")
2528 (invoke "aclocal")
2529 (invoke "automake" "-ac"))))))
2530 (inputs
2531 `(("libgcrypt" ,libgcrypt)
2532 ("linux-pam" ,linux-pam)
2533 ("openssh" ,openssh)
2534 ("dbus" ,dbus)
2535 ("gcr" ,gcr)))
2536 (native-inputs
2537 `(("pkg-config" ,pkg-config)
2538 ("glib" ,glib "bin")
2539 ("glib" ,glib) ; for m4 macros
2540 ("python" ,python-2) ;for tests
2541 ("intltool" ,intltool)
2542 ("autoconf" ,autoconf)
2543 ("automake" ,automake)
2544 ("libxslt" ,libxslt) ;for documentation
2545 ("docbook-xml" ,docbook-xml-4.2)
2546 ("docbook-xsl" ,docbook-xsl)))
2547 (propagated-inputs
2548 `(("gcr" ,gcr)))
2549 (home-page "https://www.gnome.org")
2550 (synopsis "Daemon to store passwords and encryption keys")
2551 (description
2552 "gnome-keyring is a program that keeps passwords and other secrets for
2553 users. It is run as a daemon in the session, similar to ssh-agent, and other
2554 applications locate it via an environment variable or D-Bus.
2555
2556 The program can manage several keyrings, each with its own master password,
2557 and there is also a session keyring which is never stored to disk, but
2558 forgotten when the session ends.")
2559 (license license:lgpl2.1+)))
2560
2561 (define-public evince
2562 (package
2563 (name "evince")
2564 (version "3.36.5")
2565 (source (origin
2566 (method url-fetch)
2567 (uri (string-append "mirror://gnome/sources/evince/"
2568 (version-major+minor version) "/"
2569 "evince-" version ".tar.xz"))
2570 (sha256
2571 (base32
2572 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2573 (build-system glib-or-gtk-build-system)
2574 (arguments
2575 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2576 #:phases
2577 (modify-phases %standard-phases
2578 (add-before 'install 'skip-gtk-update-icon-cache
2579 ;; Don't create 'icon-theme.cache'.
2580 (lambda _
2581 (substitute* "data/Makefile"
2582 (("gtk-update-icon-cache") "true"))
2583 #t)))))
2584 (inputs
2585 `(("libarchive" ,libarchive)
2586 ("libgxps" ,libgxps)
2587 ("libspectre" ,libspectre)
2588 ("djvulibre" ,djvulibre)
2589 ("ghostscript" ,ghostscript)
2590 ("poppler" ,poppler)
2591 ("libtiff" ,libtiff)
2592 ;; TODO:
2593 ;; Build libkpathsea as a shared library for DVI support.
2594 ;; ("libkpathsea" ,texlive-bin)
2595 ("gnome-desktop" ,gnome-desktop)
2596 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2597 ("gspell" ,gspell)
2598 ("libgnome-keyring" ,libgnome-keyring)
2599 ("adwaita-icon-theme" ,adwaita-icon-theme)
2600 ("gdk-pixbuf" ,gdk-pixbuf)
2601 ("atk" ,atk)
2602 ("pango" ,pango)
2603 ("gtk+" ,gtk+)
2604 ("glib" ,glib)
2605 ("libxml2" ,libxml2)
2606 ("libsm" ,libsm)
2607 ("libice" ,libice)
2608 ("shared-mime-info" ,shared-mime-info)
2609 ("dconf" ,dconf)
2610 ("libcanberra" ,libcanberra)
2611 ("libsecret" ,libsecret)
2612
2613 ;; For tests.
2614 ("dogtail" ,python2-dogtail)))
2615 (native-inputs
2616 `(("itstool" ,itstool)
2617 ("intltool" ,intltool)
2618 ("glib" ,glib "bin")
2619 ("gobject-introspection" ,gobject-introspection)
2620 ("pkg-config" ,pkg-config)
2621 ("xmllint" ,libxml2)))
2622 (home-page "https://www.gnome.org/projects/evince/")
2623 (synopsis "GNOME's document viewer")
2624 (description
2625 "Evince is a document viewer for multiple document formats. It
2626 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2627 of Evince is to replace the multiple document viewers that exist
2628 on the GNOME Desktop with a single simple application.")
2629 (license license:gpl2+)))
2630
2631 (define-public gsettings-desktop-schemas
2632 (package
2633 (name "gsettings-desktop-schemas")
2634 (version "3.34.0")
2635 (source
2636 (origin
2637 (method url-fetch)
2638 (uri (string-append "mirror://gnome/sources/" name "/"
2639 (version-major+minor version) "/"
2640 name "-" version ".tar.xz"))
2641 (sha256
2642 (base32
2643 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2644 (build-system meson-build-system)
2645 (arguments
2646 '(#:phases (modify-phases %standard-phases
2647 (add-after 'unpack 'patch-schemas
2648 (lambda* (#:key inputs #:allow-other-keys)
2649 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2650 (substitute* (find-files "schemas"
2651 "\\.gschema\\.xml\\.in$")
2652 ;; Provide the correct file name of the default GNOME
2653 ;; background, 'adwaita-timed.xml'.
2654 (("@datadir@/backgrounds/gnome")
2655 (string-append theme "/share/backgrounds/gnome"))
2656 ;; Do not reference fonts, that may not exist.
2657 (("'Source Code Pro 10'") "'Monospace 11'"))
2658 #t))))))
2659 (inputs
2660 `(("glib" ,glib)
2661 ("gnome-backgrounds" ,gnome-backgrounds)))
2662 (native-inputs
2663 `(("intltool" ,intltool)
2664 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2665 ("gobject-introspection" ,gobject-introspection)
2666 ("pkg-config" ,pkg-config)))
2667 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2668 (synopsis
2669 "GNOME settings for various desktop components")
2670 (description
2671 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2672 for settings shared by various components of the GNOME desktop.")
2673 (license license:lgpl2.1+)))
2674
2675 (define-public python-liblarch
2676 (package
2677 (name "python-liblarch")
2678 (version "3.0.1")
2679 (source
2680 (origin
2681 (method git-fetch)
2682 (uri (git-reference
2683 (url "https://github.com/getting-things-gnome/liblarch")
2684 (commit (string-append "v" version))))
2685 (file-name (git-file-name name version))
2686 (sha256
2687 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2688 (build-system python-build-system)
2689 (arguments
2690 `(#:phases
2691 (modify-phases %standard-phases
2692 (add-before 'check 'start-xserver
2693 (lambda* (#:key inputs #:allow-other-keys)
2694 (system (format #f "~a/bin/Xvfb :1 &"
2695 (assoc-ref inputs "xorg-server")))
2696 (setenv "DISPLAY" ":1")
2697 #t)))))
2698 (native-inputs
2699 `(("xorg-server" ,xorg-server-for-tests)))
2700 (inputs
2701 `(("gtk+" ,gtk+)))
2702 (propagated-inputs
2703 `(("python-pygobject" ,python-pygobject)))
2704 (home-page "https://wiki.gnome.org/Projects/liblarch")
2705 (synopsis "Library to easily handle complex data structures")
2706 (description
2707 "Liblarch is a Python library built to easily handle data structures such
2708 as lists, trees and acyclic graphs. There's also a GTK binding that will
2709 allow you to use your data structure in a @code{Gtk.Treeview}.
2710
2711 Liblarch support multiple views of one data structure and complex filtering.
2712 That way, you have a clear separation between your data themselves (Model)
2713 and how they are displayed (View).")
2714 (license license:lgpl3+)))
2715
2716 (define-public gtg
2717 (package
2718 (name "gtg")
2719 (version "0.4")
2720 (source
2721 (origin
2722 (method git-fetch)
2723 (uri (git-reference
2724 (url "https://github.com/getting-things-gnome/gtg")
2725 (commit (string-append "v" version))))
2726 (file-name (git-file-name name version))
2727 (sha256
2728 (base32 "0r28vyr88rj3kd3cg4gj7sd29wadjchi92wzmbx67d4hlg25h8kk"))))
2729 (build-system meson-build-system)
2730 (arguments
2731 `(#:glib-or-gtk? #t
2732 #:phases
2733 (modify-phases %standard-phases
2734 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2735 (lambda* (#:key outputs #:allow-other-keys)
2736 (let ((prog (string-append (assoc-ref outputs "out")
2737 "/bin/gtg"))
2738 (pylib (string-append (assoc-ref outputs "out")
2739 "/lib/python"
2740 ,(version-major+minor
2741 (package-version python))
2742 "/site-packages")))
2743 (wrap-program prog
2744 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
2745 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2746 #t))))))
2747 (native-inputs
2748 `(("desktop-file-utils" ,desktop-file-utils)
2749 ("gettext" ,gettext-minimal)
2750 ("glib:bin" ,glib "bin")
2751 ("gobject-introspection" ,gobject-introspection)
2752 ("gtk+:bin" ,gtk+ "bin")
2753 ("pkg-config" ,pkg-config)))
2754 (inputs
2755 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2756 ("gtk+" ,gtk+)
2757 ("python-dbus" ,python-dbus)
2758 ("python-liblarch" ,python-liblarch)
2759 ("python-pycairo" ,python-pycairo)
2760 ("python-pygobject" ,python-pygobject)
2761 ("python-pyxdg" ,python-pyxdg)))
2762 (home-page "https://wiki.gnome.org/Apps/GTG")
2763 (synopsis "Personal organizer for the GNOME desktop")
2764 (description
2765 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2766 organizer for the GNOME desktop environment inspired by the Getting Things
2767 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2768 and ease of use in mind so it can be used as more than just GTD software.
2769 GTG is intended to help you track everything you need to do and need to
2770 know, from small tasks to large projects.")
2771 (license license:gpl3+)))
2772
2773 (define-public icon-naming-utils
2774 (package
2775 (name "icon-naming-utils")
2776 (version "0.8.90")
2777 (source
2778 (origin
2779 (method url-fetch)
2780 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2781 version ".tar.bz2"))
2782 (sha256
2783 (base32
2784 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2785 (build-system gnu-build-system)
2786 (inputs
2787 `(("perl" ,perl)
2788 ("perl-xml-simple" ,perl-xml-simple)))
2789 (arguments
2790 '(#:phases
2791 (modify-phases %standard-phases
2792 (add-after 'install 'set-load-paths
2793 ;; Tell 'icon-name-mapping' where XML::Simple is.
2794 (lambda* (#:key outputs #:allow-other-keys)
2795 (let* ((out (assoc-ref outputs "out"))
2796 (prog (string-append out "/libexec/icon-name-mapping")))
2797 (wrap-program
2798 prog
2799 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2800 #t)))))
2801 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2802 (synopsis
2803 "Utility to implement the Freedesktop Icon Naming Specification")
2804 (description
2805 "To help with the transition to the Freedesktop Icon Naming
2806 Specification, the icon naming utility maps the icon names used by the
2807 GNOME and KDE desktops to the icon names proposed in the specification.")
2808 (license license:lgpl2.1+)))
2809
2810 (define-public gnome-icon-theme
2811 (package
2812 (name "gnome-icon-theme")
2813 (version "3.12.0")
2814 (source
2815 (origin
2816 (method url-fetch)
2817 (uri (string-append "mirror://gnome/sources/" name "/"
2818 (version-major+minor version) "/"
2819 name "-" version ".tar.xz"))
2820 (sha256
2821 (base32
2822 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2823 (build-system gnu-build-system)
2824 (arguments
2825 '(#:configure-flags
2826 ;; Don't create 'icon-theme.cache'.
2827 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2828 (true (string-append coreutils "/bin/true")))
2829 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2830 (native-inputs
2831 `(("icon-naming-utils" ,icon-naming-utils)
2832 ("intltool" ,intltool)
2833 ("pkg-config" ,pkg-config)))
2834 (home-page "https://wiki.gnome.org/Personalization")
2835 (synopsis "GNOME icon theme")
2836 (description "Icons for the GNOME desktop.")
2837 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2838
2839 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2840 (define-public adwaita-icon-theme
2841 (package (inherit gnome-icon-theme)
2842 (name "adwaita-icon-theme")
2843 (version "3.34.3")
2844 (source (origin
2845 (method url-fetch)
2846 (uri (string-append "mirror://gnome/sources/" name "/"
2847 (version-major+minor version) "/"
2848 name "-" version ".tar.xz"))
2849 (sha256
2850 (base32
2851 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2852 (native-inputs
2853 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2854
2855 (define-public tango-icon-theme
2856 (package
2857 (name "tango-icon-theme")
2858 (version "0.8.90")
2859 (source (origin
2860 (method url-fetch)
2861 (uri (string-append "http://tango.freedesktop.org/releases/"
2862 "tango-icon-theme-" version ".tar.bz2"))
2863 (sha256
2864 (base32
2865 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2866 (build-system gnu-build-system)
2867 (native-inputs
2868 `(("icon-naming-utils" ,icon-naming-utils)
2869 ("intltool" ,intltool)
2870 ("imagemagick" ,imagemagick)
2871 ("pkg-config" ,pkg-config)))
2872 (home-page "http://tango-project.org/")
2873 (synopsis "Tango icon theme")
2874 (description "This is an icon theme that follows the Tango visual
2875 guidelines.")
2876 (license license:public-domain)))
2877
2878 (define-public shared-mime-info
2879 (package
2880 (name "shared-mime-info")
2881 (version "1.15")
2882 (source (origin
2883 (method url-fetch)
2884 (uri (string-append
2885 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2886 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2887 ".tar.xz"))
2888 (sha256
2889 (base32
2890 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2891 (build-system gnu-build-system)
2892 (arguments
2893 ;; The build system appears not to be parallel-safe.
2894 '(#:parallel-build? #f))
2895 (inputs
2896 `(("glib" ,glib)
2897 ("libxml2" ,libxml2)))
2898 (native-inputs
2899 `(("gettext" ,gettext-minimal)
2900 ("itstool" ,itstool)
2901 ("pkg-config" ,pkg-config)))
2902 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2903 (synopsis "Database of common MIME types")
2904 (description
2905 "The shared-mime-info package contains the core database of common types
2906 and the update-mime-database command used to extend it. It requires glib2 to
2907 be installed for building the update command. Additionally, it uses intltool
2908 for translations, though this is only a dependency for the maintainers. This
2909 database is translated at Transifex.")
2910 (license license:gpl2+)))
2911
2912 (define-public system-config-printer
2913 (package
2914 (name "system-config-printer")
2915 (version "1.5.15")
2916 (source
2917 (origin
2918 (method url-fetch)
2919 (uri (string-append
2920 "https://github.com/OpenPrinting/system-config-printer/releases/"
2921 "download/v" version
2922 "/system-config-printer-" version ".tar.xz"))
2923 (sha256
2924 (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv"))))
2925 (build-system glib-or-gtk-build-system)
2926 (arguments
2927 `(#:imported-modules ((guix build python-build-system)
2928 ,@%glib-or-gtk-build-system-modules)
2929 #:phases
2930 (modify-phases %standard-phases
2931 (add-after 'unpack 'patch-Makefile.am
2932 (lambda _
2933 ;; The Makefile generates some scripts, so set a valid shebang
2934 (substitute* "Makefile.am"
2935 (("/bin/bash") (which "bash")))
2936 (delete-file "configure")
2937 #t))
2938 (add-after 'unpack 'patch-docbook-xml
2939 (lambda* (#:key inputs #:allow-other-keys)
2940 ;; Modify the man XML otherwise xmlto tries to access the network
2941 (substitute* "man/system-config-printer.xml"
2942 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2943 (string-append (assoc-ref inputs "docbook-xml")
2944 "/xml/dtd/docbook/")))
2945 #t))
2946 (add-after 'install 'wrap-for-python
2947 (@@ (guix build python-build-system) wrap))
2948 (add-after 'install 'wrap
2949 (lambda* (#:key outputs #:allow-other-keys)
2950 (let ((out (assoc-ref outputs "out"))
2951 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2952 (for-each
2953 (lambda (program)
2954 (wrap-program program
2955 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2956 (map (lambda (name)
2957 (string-append out "/bin/" name))
2958 '("system-config-printer"
2959 "system-config-printer-applet"
2960 "install-printerdriver"
2961 "scp-dbus-service"))))
2962 #t)))))
2963 (inputs
2964 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2965 ("gobject-introspection" ,gobject-introspection)
2966 ("python" ,python)
2967 ("cups" ,cups)
2968 ("gtk+" ,gtk+)
2969 ("python-dbus" ,python-dbus)
2970 ("python-pygobject" ,python-pygobject)
2971 ("python-pycups" ,python-pycups)
2972 ("python-requests" ,python-requests)
2973 ("python-pycairo" ,python-pycairo)
2974 ("libnotify" ,libnotify)
2975 ("packagekit" ,packagekit)))
2976 (native-inputs
2977 `(("pkg-config" ,pkg-config)
2978 ("desktop-file-utils" ,desktop-file-utils)
2979 ("glib" ,glib)
2980 ("autoconf" ,autoconf)
2981 ("automake" ,automake)
2982 ("intltool" ,intltool)
2983 ("xmlto" ,xmlto)
2984 ("docbook-xml" ,docbook-xml-4.1.2)
2985 ("docbook-xsl" ,docbook-xsl)
2986 ("libxml2" ,libxml2)))
2987 (home-page "https://github.com/zdohnal/system-config-printer")
2988 (synopsis "CUPS administration tool")
2989 (description
2990 "system-config-printer is a CUPS administration tool. It's written in
2991 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2992 configuring CUPS.")
2993 (license license:gpl2+)))
2994
2995 (define-public hicolor-icon-theme
2996 (package
2997 (name "hicolor-icon-theme")
2998 (version "0.17")
2999 (source
3000 (origin
3001 (method url-fetch)
3002 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3003 "hicolor-icon-theme-" version ".tar.xz"))
3004 (sha256
3005 (base32
3006 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3007 (build-system gnu-build-system)
3008 (arguments
3009 `(#:tests? #f)) ; no check target
3010 (home-page "https://icon-theme.freedesktop.org/releases/")
3011 (synopsis
3012 "Freedesktop icon theme")
3013 (description
3014 "Freedesktop icon theme.")
3015 (license license:gpl2)))
3016
3017 (define-public libnotify
3018 (package
3019 (name "libnotify")
3020 (version "0.7.9")
3021 (source
3022 (origin
3023 (method url-fetch)
3024 (uri (string-append "mirror://gnome/sources/" name "/"
3025 (version-major+minor version) "/"
3026 name "-" version ".tar.xz"))
3027 (sha256
3028 (base32
3029 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3030 (build-system meson-build-system)
3031 (arguments
3032 `(#:phases
3033 (modify-phases %standard-phases
3034 (add-after 'unpack 'fix-docbook
3035 (lambda* (#:key inputs #:allow-other-keys)
3036 ;; Don't attempt to download XSL schema.
3037 (substitute* "meson.build"
3038 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3039 /manpages/docbook.xsl")
3040 (string-append (assoc-ref inputs "docbook-xsl")
3041 "/xml/xsl/docbook-xsl-"
3042 ,(package-version docbook-xsl)
3043 "/manpages/docbook.xsl")))
3044 #t)))))
3045 (propagated-inputs
3046 `(;; In Requires of libnotify.pc.
3047 ("gdk-pixbuf" ,gdk-pixbuf)
3048 ("glib" ,glib)))
3049 (inputs
3050 `(("gtk+" ,gtk+)
3051 ("libpng" ,libpng)))
3052 (native-inputs
3053 `(("pkg-config" ,pkg-config)
3054 ("glib" ,glib "bin")
3055 ("gobject-introspection" ,gobject-introspection)
3056
3057 ;; For the documentation.
3058 ("gtk-doc" ,gtk-doc)
3059 ("xsltproc" ,libxslt)
3060 ("docbook-xsl" ,docbook-xsl)))
3061 (home-page "https://developer-next.gnome.org/libnotify/")
3062 (synopsis
3063 "GNOME desktop notification library")
3064 (description
3065 "Libnotify is a library that sends desktop notifications to a
3066 notification daemon, as defined in the Desktop Notifications spec. These
3067 notifications can be used to inform the user about an event or display
3068 some form of information without getting in the user's way.")
3069 (license license:lgpl2.1+)))
3070
3071 (define-public libpeas
3072 (package
3073 (name "libpeas")
3074 (version "1.28.0")
3075 (source
3076 (origin
3077 (method url-fetch)
3078 (uri (string-append "mirror://gnome/sources/" name "/"
3079 (version-major+minor version) "/"
3080 name "-" version ".tar.xz"))
3081 (sha256
3082 (base32
3083 "05cb7drn6arc4gi02wgsvzibigi2riz5gnfnmlb0zmbfnj9ikna2"))))
3084 (build-system meson-build-system)
3085 (arguments
3086 '(#:phases
3087 (modify-phases %standard-phases
3088 (add-before 'check 'start-xserver
3089 (lambda* (#:key inputs #:allow-other-keys)
3090 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3091 (disp ":1"))
3092 (setenv "DISPLAY" disp)
3093 ;; Tests require a running X server.
3094 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3095 #t))))))
3096 (inputs
3097 `(("gtk+" ,gtk+)
3098 ("glade" ,glade3)
3099 ("python" ,python)
3100 ("python-pygobject" ,python-pygobject)))
3101 (native-inputs
3102 `(("pkg-config" ,pkg-config)
3103 ("gettext" ,gettext-minimal)
3104 ("glib:bin" ,glib "bin")
3105 ("gobject-introspection" ,gobject-introspection)
3106 ("xorg-server" ,xorg-server-for-tests)))
3107 (propagated-inputs
3108 ;; The .pc file "Requires" gobject-introspection.
3109 `(("gobject-introspection" ,gobject-introspection)))
3110 (home-page "https://wiki.gnome.org/Libpeas")
3111 (synopsis "GObject plugin system")
3112 (description
3113 "Libpeas is a gobject-based plugin engine, targeted at giving every
3114 application the chance to assume its own extensibility. It also has a set of
3115 features including, but not limited to: multiple extension points; on-demand
3116 (lazy) programming language support for C, Python and JS; simplicity of the
3117 API.")
3118 (license license:lgpl2.0+)))
3119
3120 (define-public gtkglext
3121 (package
3122 (name "gtkglext")
3123 (version "1.2.0")
3124 (source (origin
3125 (method url-fetch)
3126 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3127 version "/gtkglext-" version ".tar.gz"))
3128 (sha256
3129 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3130 (patches (search-patches
3131 "gtkglext-disable-disable-deprecated.patch"))))
3132 (build-system gnu-build-system)
3133 (arguments
3134 `(#:phases
3135 (modify-phases %standard-phases
3136 ;; Fix a collision between a local variable and a definition from
3137 ;; glibc's string.h.
3138 (add-after 'unpack 'fix-collision
3139 (lambda _
3140 (substitute* "gdk/gdkglshapes.c"
3141 ((" index") " triangle_index"))
3142 #t)))))
3143 (inputs `(("gtk+" ,gtk+-2)
3144 ("mesa" ,mesa)
3145 ("glu" ,glu)
3146 ("libx11" ,libx11)
3147 ("libxt" ,libxt)))
3148 (native-inputs `(("pkg-config" ,pkg-config)
3149 ("glib" ,glib "bin")))
3150 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
3151 (home-page "https://projects.gnome.org/gtkglext")
3152 (synopsis "OpenGL extension to GTK+")
3153 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3154 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3155 API add-ons to make GTK+ widgets OpenGL-capable.")
3156 (license license:lgpl2.1+)))
3157
3158 (define-public glade3
3159 (package
3160 (name "glade")
3161 (version "3.36.0")
3162 (source (origin
3163 (method url-fetch)
3164 (uri (string-append "mirror://gnome/sources/" name "/"
3165 (version-major+minor version) "/"
3166 name "-" version ".tar.xz"))
3167 (sha256
3168 (base32
3169 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
3170 (build-system glib-or-gtk-build-system)
3171 (arguments
3172 `(#:phases
3173 (modify-phases %standard-phases
3174 (add-before 'configure 'fix-docbook
3175 (lambda* (#:key inputs #:allow-other-keys)
3176 (substitute* "man/Makefile.in"
3177 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
3178 (string-append (assoc-ref inputs "docbook-xsl")
3179 "/xml/xsl/docbook-xsl-"
3180 ,(package-version docbook-xsl)
3181 "/manpages/docbook.xsl")))
3182 #t))
3183 (add-before 'check 'pre-check
3184 (lambda _
3185 (setenv "HOME" "/tmp")
3186 ;; Tests require a running X server.
3187 (system "Xvfb :1 &")
3188 (setenv "DISPLAY" ":1")
3189 #t)))))
3190 (inputs
3191 `(("gtk+" ,gtk+)
3192 ("libxml2" ,libxml2)))
3193 (native-inputs
3194 `(("hicolor-icon-theme" ,hicolor-icon-theme)
3195 ("intltool" ,intltool)
3196 ("itstool" ,itstool)
3197 ("libxslt" ,libxslt) ;for xsltproc
3198 ("docbook-xml" ,docbook-xml-4.2)
3199 ("docbook-xsl" ,docbook-xsl)
3200 ("python" ,python-2)
3201 ("pkg-config" ,pkg-config)
3202 ("xorg-server" ,xorg-server-for-tests)))
3203 (home-page "https://glade.gnome.org")
3204 (synopsis "GTK+ rapid application development tool")
3205 (description "Glade is a rapid application development (RAD) tool to
3206 enable quick & easy development of user interfaces for the GTK+ toolkit and
3207 the GNOME desktop environment.")
3208 (license license:lgpl2.0+)
3209 (native-search-paths (list (search-path-specification
3210 (variable "GLADE_CATALOG_SEARCH_PATH")
3211 (files '("share/glade/catalogs")))
3212 (search-path-specification
3213 (variable "GLADE_MODULE_SEARCH_PATH")
3214 (files '("lib/glade/modules")))))))
3215
3216 (define-public libcroco
3217 (package
3218 (name "libcroco")
3219 (version "0.6.13")
3220 (source (origin
3221 (method url-fetch)
3222 (uri (string-append "mirror://gnome/sources/" name "/"
3223 (version-major+minor version) "/"
3224 name "-" version ".tar.xz"))
3225 (sha256
3226 (base32
3227 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3228 (build-system gnu-build-system)
3229 (native-inputs
3230 `(("pkg-config" ,pkg-config)))
3231 (inputs
3232 `(("glib" ,glib)
3233 ("libxml2" ,libxml2)
3234 ("zlib" ,zlib)))
3235 (home-page "https://github.com/GNOME/libcroco")
3236 (synopsis "CSS2 parsing and manipulation library")
3237 (description
3238 "Libcroco is a standalone CSS2 parsing and manipulation library.
3239 The parser provides a low level event driven SAC-like API and a CSS object
3240 model like API. Libcroco provides a CSS2 selection engine and an experimental
3241 XML/CSS rendering engine.")
3242
3243 ;; LGPLv2.1-only.
3244 (license license:lgpl2.1)))
3245
3246 (define-public libgsf
3247 (package
3248 (name "libgsf")
3249 (version "1.14.47")
3250 (source (origin
3251 (method url-fetch)
3252 (uri (string-append "mirror://gnome/sources/" name "/"
3253 (version-major+minor version) "/"
3254 name "-" version ".tar.xz"))
3255 (sha256
3256 (base32
3257 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3258 (build-system gnu-build-system)
3259 (arguments
3260 '(#:configure-flags '("--disable-static")))
3261 (native-inputs
3262 `(("pkg-config" ,pkg-config)
3263 ("gettext" ,gettext-minimal)
3264
3265 ;; For tests.
3266 ("perl" ,perl)
3267 ("perl-xml-parser" ,perl-xml-parser)))
3268 (inputs
3269 `(("zlib" ,zlib)
3270 ("bzip2" ,bzip2)))
3271 (propagated-inputs
3272 `(("gdk-pixbuf" ,gdk-pixbuf)
3273 ("glib" ,glib)
3274 ("libxml2" ,libxml2)))
3275 (home-page "https://www.gnome.org/projects/libgsf")
3276 (synopsis "GNOME's Structured File Library")
3277 (description
3278 "Libgsf aims to provide an efficient extensible I/O abstraction for
3279 dealing with different structured file formats.")
3280
3281 ;; LGPLv2.1-only.
3282 (license license:lgpl2.1)))
3283
3284 (define-public librsvg
3285 (package
3286 (name "librsvg")
3287 (version "2.40.21")
3288 (source (origin
3289 (method url-fetch)
3290 (uri (string-append "mirror://gnome/sources/" name "/"
3291 (version-major+minor version) "/"
3292 name "-" version ".tar.xz"))
3293 (sha256
3294 (base32
3295 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3296 (build-system gnu-build-system)
3297 (arguments
3298 `(#:configure-flags
3299 (list "--disable-static"
3300 "--enable-vala") ; needed for e.g. gnome-mines
3301 #:phases
3302 (modify-phases %standard-phases
3303 (add-before 'configure 'pre-configure
3304 (lambda* (#:key inputs #:allow-other-keys)
3305 (substitute* "gdk-pixbuf-loader/Makefile.in"
3306 ;; By default the gdk-pixbuf loader is installed under
3307 ;; gdk-pixbuf's prefix. Work around that.
3308 (("gdk_pixbuf_moduledir = .*$")
3309 (string-append "gdk_pixbuf_moduledir = "
3310 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3311 "loaders\n"))
3312 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3313 (("gdk_pixbuf_cache_file = .*$")
3314 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3315 #t))
3316 (add-before 'check 'remove-failing-tests
3317 (lambda _
3318 (with-directory-excursion "tests/fixtures/reftests"
3319 (for-each delete-file
3320 '(;; This test fails on i686:
3321 "svg1.1/masking-path-04-b.svg"
3322 ;; This test fails on armhf:
3323 "svg1.1/masking-mask-01-b.svg"
3324 ;; This test fails on aarch64:
3325 "bugs/777834-empty-text-children.svg")))
3326 #t)))))
3327 (native-inputs
3328 `(("pkg-config" ,pkg-config)
3329 ("vala" ,vala)
3330 ("glib" ,glib "bin") ; glib-mkenums, etc.
3331 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3332 (inputs
3333 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3334 ;; this ancient version of librsvg.
3335 ("pango" ,pango-1.42)
3336 ("libcroco" ,libcroco)
3337 ("bzip2" ,bzip2)
3338 ("libgsf" ,libgsf)
3339 ("libxml2" ,libxml2)))
3340 (propagated-inputs
3341 ;; librsvg-2.0.pc refers to all of that.
3342 `(("cairo" ,cairo)
3343 ("gdk-pixbuf" ,gdk-pixbuf)
3344 ("glib" ,glib)))
3345 (home-page "https://wiki.gnome.org/LibRsvg")
3346 (synopsis "Render SVG files using Cairo")
3347 (description
3348 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3349 library.")
3350 (license license:lgpl2.0+)))
3351
3352 (define-public librsvg-next
3353 (package
3354 (name "librsvg")
3355 (version "2.50.2")
3356 (source (origin
3357 (method url-fetch)
3358 (uri (string-append "mirror://gnome/sources/librsvg/"
3359 (version-major+minor version) "/"
3360 "librsvg-" version ".tar.xz"))
3361 (sha256
3362 (base32
3363 "1lsnl08b5pjf01q3agixjd53islw5rqkc38r31rlmm2crrqz44b2"))
3364 (modules '((guix build utils)))
3365 (snippet
3366 '(begin (delete-file-recursively "vendor")
3367 #t))))
3368 (build-system cargo-build-system)
3369 (outputs '("out" "doc"))
3370 (arguments
3371 `(#:modules
3372 ((guix build cargo-build-system)
3373 (guix build utils)
3374 ((guix build gnu-build-system) #:prefix gnu:))
3375 #:cargo-inputs
3376 (("rust-bitflags" ,rust-bitflags-1)
3377 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3378 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3379 ("rust-cast" ,rust-cast-0.2)
3380 ("rust-cssparser" ,rust-cssparser-0.27)
3381 ("rust-data-url" ,rust-data-url-0.1)
3382 ("rust-encoding" ,rust-encoding-0.2)
3383 ("rust-float-cmp" ,rust-float-cmp-0.8)
3384 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3385 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3386 ("rust-gio" ,rust-gio-0.8)
3387 ("rust-gio-sys" ,rust-gio-sys-0.9)
3388 ("rust-glib" ,rust-glib-0.9)
3389 ("rust-glib-sys" ,rust-glib-sys-0.9)
3390 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3391 ("rust-itertools" ,rust-itertools-0.9)
3392 ("rust-language-tags" ,rust-language-tags-0.2)
3393 ("rust-libc" ,rust-libc-0.2)
3394 ("rust-locale-config" ,rust-locale-config-0.3)
3395 ("rust-markup5ever" ,rust-markup5ever-0.10)
3396 ("rust-nalgebra" ,rust-nalgebra-0.21)
3397 ("rust-num-traits" ,rust-num-traits-0.2)
3398 ("rust-once-cell" ,rust-once-cell-1)
3399 ("rust-pkg-config" ,rust-pkg-config-0.3)
3400 ("rust-pango" ,rust-pango-0.8)
3401 ("rust-pango-sys" ,rust-pango-sys-0.9)
3402 ("rust-pangocairo" ,rust-pangocairo-0.9)
3403 ("rust-rayon" ,rust-rayon-1)
3404 ("rust-rctree" ,rust-rctree-0.3)
3405 ("rust-rgb" ,rust-rgb-0.8)
3406 ("rust-regex" ,rust-regex-1)
3407 ("rust-selectors" ,rust-selectors-0.22)
3408 ("rust-string-cache" ,rust-string-cache-0.8)
3409 ("rust-tinyvec" ,rust-tinyvec-0.3)
3410 ("rust-url" ,rust-url-2)
3411 ("rust-xml5ever" ,rust-xml5ever-0.16))
3412 #:cargo-development-inputs
3413 (("rust-assert-cmd" ,rust-assert-cmd-1)
3414 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3415 ("rust-chrono" ,rust-chrono-0.4)
3416 ("rust-criterion" ,rust-criterion-0.3)
3417 ("rust-float-cmp" ,rust-float-cmp-0.8)
3418 ("rust-lopdf" ,rust-lopdf-0.25)
3419 ("rust-png" ,rust-png-0.16)
3420 ("rust-predicates" ,rust-predicates-1)
3421 ("rust-tempfile" ,rust-tempfile-3))
3422 #:phases
3423 (modify-phases %standard-phases
3424 (add-after 'unpack 'patch-docbook-xml
3425 (lambda* (#:key inputs #:allow-other-keys)
3426 (with-directory-excursion "doc"
3427 (substitute* "rsvg-docs.xml"
3428 (("http://www.oasis-open.org/docbook/xml/4.3/")
3429 (string-append (assoc-ref inputs "docbook-xml")
3430 "/xml/dtd/docbook/"))))
3431 #t))
3432 (add-after 'unpack 'prepare-for-build
3433 (lambda _
3434 ;; In lieu of #:make-flags
3435 (setenv "CC" ,(cc-for-target))
3436 ;; Something about the build environment resists building
3437 ;; successfully with the '--locked' flag.
3438 (substitute* '("Makefile.am" "Makefile.in")
3439 (("--locked") ""))
3440 #t))
3441 (add-before 'configure 'pre-configure
3442 (lambda _
3443 (substitute* "gdk-pixbuf-loader/Makefile.in"
3444 ;; By default the gdk-pixbuf loader is installed under
3445 ;; gdk-pixbuf's prefix. Work around that.
3446 (("gdk_pixbuf_moduledir = .*$")
3447 (string-append "gdk_pixbuf_moduledir = "
3448 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3449 "loaders\n"))
3450 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3451 (("gdk_pixbuf_cache_file = .*$")
3452 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3453 #t))
3454 (add-after 'configure 'gnu-configure
3455 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3456 ((assoc-ref gnu:%standard-phases 'configure)
3457 #:native-inputs native-inputs
3458 #:inputs inputs
3459 #:outputs outputs
3460 #:configure-flags
3461 (list "--disable-static"
3462 "--enable-vala"
3463 (string-append "--with-html-dir="
3464 (assoc-ref %outputs "doc")
3465 "/share/gtk-doc/html")))))
3466 (add-after 'configure 'dont-vendor-self
3467 (lambda* (#:key vendor-dir #:allow-other-keys)
3468 ;; Don't keep the whole tarball in the vendor directory
3469 (delete-file-recursively
3470 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3471 #t))
3472 (replace 'build
3473 (assoc-ref gnu:%standard-phases 'build))
3474 (add-before 'check 'ignore-failing-tests
3475 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3476 (lambda _
3477 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3478 (("fn background_color_option_invalid_color_yields_error" all)
3479 (string-append "#[ignore] " all))
3480 (("fn empty_input_yields_error" all)
3481 (string-append "#[ignore] " all))
3482 (("fn empty_svg_yields_error" all)
3483 (string-append "#[ignore] " all))
3484 (("fn env_source_data_epoch_empty" all)
3485 (string-append "#[ignore] " all))
3486 (("fn env_source_data_epoch_no_digits" all)
3487 (string-append "#[ignore] " all))
3488 (("fn env_source_data_epoch_trailing_garbage" all)
3489 (string-append "#[ignore] " all))
3490 (("fn export_id_option_error" all)
3491 (string-append "#[ignore] " all))
3492 (("fn huge_zoom_factor_yields_error" all)
3493 (string-append "#[ignore] " all))
3494 (("fn multiple_input_files_not_allowed_for_png_output" all)
3495 (string-append "#[ignore] " all))
3496 (("fn stylesheet_option_error" all)
3497 (string-append "#[ignore] " all)))
3498 #t))
3499 (replace 'check
3500 (lambda* args
3501 ((assoc-ref gnu:%standard-phases 'check)
3502 #:test-target "check")))
3503 (replace 'install
3504 (assoc-ref gnu:%standard-phases 'install)))))
3505 (native-inputs
3506 `(("docbook-xml" ,docbook-xml-4.3)
3507 ("glib" ,glib "bin")
3508 ("gobject-introspection" ,gobject-introspection)
3509 ("pkg-config" ,pkg-config)
3510 ("python" ,python-wrapper)
3511 ("ruby" ,ruby)
3512 ("vala" ,vala)))
3513 (inputs
3514 `(("bzip2" ,bzip2)
3515 ("fontconfig" ,fontconfig)
3516 ("freetype" ,freetype)
3517 ("harfbuzz" ,harfbuzz)
3518 ("libcroco" ,libcroco)
3519 ("libgsf" ,libgsf)
3520 ("libxml2" ,libxml2)
3521 ("pango" ,pango)))
3522 (propagated-inputs
3523 `(("cairo" ,cairo)
3524 ("gdk-pixbuf" ,gdk-pixbuf)
3525 ("glib" ,glib)))
3526 (synopsis "SVG rendering library")
3527 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3528 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3529 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3530 diagrams.")
3531 (home-page "https://wiki.gnome.org/LibRsvg")
3532 (license license:lgpl2.1+)))
3533
3534 (define-public libidl
3535 (package
3536 (name "libidl")
3537 (version "0.8.14")
3538 (source (origin
3539 (method url-fetch)
3540 (uri (string-append "mirror://gnome/sources/libIDL/"
3541 (version-major+minor version) "/"
3542 "libIDL-" version ".tar.bz2"))
3543 (sha256
3544 (base32
3545 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3546 (build-system gnu-build-system)
3547 (inputs `(("glib" ,glib)))
3548 (native-inputs
3549 `(("pkg-config" ,pkg-config)
3550 ("flex" ,flex)
3551 ("bison" ,bison)))
3552 (home-page "http://freecode.com/projects/libidl")
3553 (synopsis "Create trees of CORBA Interface Definition Language files")
3554 (description "Libidl is a library for creating trees of CORBA Interface
3555 Definition Language (idl) files, which is a specification for defining
3556 portable interfaces. libidl was initially written for orbit (the orb from the
3557 GNOME project, and the primary means of libidl distribution). However, the
3558 functionality was designed to be as reusable and portable as possible.")
3559 (properties `((upstream-name . "libIDL")))
3560 (license license:lgpl2.0+)))
3561
3562
3563 (define-public orbit2
3564 (package
3565 (name "orbit2")
3566 (version "2.14.19")
3567 (source (origin
3568 (method url-fetch)
3569 (uri (let ((upstream-name "ORBit2"))
3570 (string-append "mirror://gnome/sources/" upstream-name "/"
3571 (version-major+minor version) "/"
3572 upstream-name "-" version ".tar.bz2")))
3573 (sha256
3574 (base32
3575 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3576 (build-system gnu-build-system)
3577 (arguments
3578 `(;; The "timeout-server" test hangs when run in parallel.
3579 #:parallel-tests? #f
3580 #:configure-flags
3581 '(;; We don't need static libraries, plus they don't build reproducibly
3582 ;; (non-deterministic ordering of .o files in the archive.)
3583 "--disable-static"
3584
3585 ;; The programmer kindly gives us a hook to turn off deprecation
3586 ;; warnings ...
3587 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3588 ;; ... which they then completly ignore !!
3589 #:phases
3590 (modify-phases %standard-phases
3591 (add-before 'configure 'ignore-deprecations
3592 (lambda _
3593 (substitute* "linc2/src/Makefile.in"
3594 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3595 #t)))))
3596 (inputs `(("glib" ,glib)
3597 ("libidl" ,libidl)))
3598 (native-inputs
3599 `(("pkg-config" ,pkg-config)))
3600 (home-page "https://projects.gnome.org/orbit2/")
3601 (synopsis "CORBA 2.4-compliant Object Request Broker")
3602 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3603 featuring mature C, C++ and Python bindings.")
3604 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3605 ;; a version. SOME of the code files have licence notices for GPLv2+.
3606 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3607 (license license:gpl2+)
3608 (properties `((upstream-name . "ORBit2")))))
3609
3610
3611 (define-public libbonobo
3612 (package
3613 (name "libbonobo")
3614 (version "2.32.1")
3615 (source (origin
3616 (method url-fetch)
3617 (uri (string-append "mirror://gnome/sources/" name "/"
3618 (version-major+minor version)
3619 "/" name "-" version ".tar.bz2"))
3620 (sha256
3621 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3622 (patches (search-patches
3623 "libbonobo-activation-test-race.patch"))))
3624 (build-system gnu-build-system)
3625 (arguments
3626 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3627 `(#:configure-flags
3628 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3629 ;; ... which they then completly ignore !!
3630 #:phases
3631 (modify-phases %standard-phases
3632 (add-before 'configure 'ignore-deprecations
3633 (lambda _
3634 (substitute* "activation-server/Makefile.in"
3635 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3636 #t)))
3637
3638 ;; There's apparently a race condition between the server stub
3639 ;; generation and linking of the example under 'samples/echo' that can
3640 ;; lead do undefined references when building in parallel, as reported
3641 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3642 ;; Thus, disable parallel builds.
3643 #:parallel-build? #f))
3644 (inputs `(("popt" ,popt)
3645 ("libxml2" ,libxml2)))
3646 ;; The following are Required by the .pc file
3647 (propagated-inputs
3648 `(("glib" ,glib)
3649 ("orbit2" ,orbit2)))
3650 (native-inputs
3651 `(("intltool" ,intltool)
3652 ("pkg-config" ,pkg-config)
3653 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3654 ("flex" ,flex)
3655 ("bison" ,bison)))
3656 (home-page "https://developer.gnome.org/libbonobo/")
3657 (synopsis "Framework for creating reusable components for use in GNOME applications")
3658 (description "Bonobo is a framework for creating reusable components for
3659 use in GNOME applications, built on top of CORBA.")
3660 ;; Licence not explicitly stated. Source files contain no licence notices.
3661 ;; Tarball contains text of both GPLv2 and LGPLv2
3662 ;; GPLv2 covers both conditions
3663 (license license:gpl2+)))
3664
3665
3666 (define-public gconf
3667 (package
3668 (name "gconf")
3669 (version "3.2.6")
3670 (source (origin
3671 (method url-fetch)
3672 (uri
3673 (let ((upstream-name "GConf"))
3674 (string-append "mirror://gnome/sources/" upstream-name "/"
3675 (version-major+minor version) "/"
3676 upstream-name "-" version ".tar.xz")))
3677 (sha256
3678 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3679 (build-system gnu-build-system)
3680 (inputs `(("dbus-glib" ,dbus-glib)
3681 ("libxml2" ,libxml2)))
3682 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3683 ("orbit2" ,orbit2)))
3684 (native-inputs
3685 `(("intltool" ,intltool)
3686 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3687 ("pkg-config" ,pkg-config)))
3688 (home-page "https://projects.gnome.org/gconf/")
3689 (synopsis "Store application preferences")
3690 (description "Gconf is a system for storing application preferences. It
3691 is intended for user preferences; not arbitrary data storage.")
3692 (license license:lgpl2.0+)
3693 (properties '((upstream-name . "GConf")))))
3694
3695
3696 (define-public gnome-mime-data
3697 (package
3698 (name "gnome-mime-data")
3699 (version "2.18.0")
3700 (source (origin
3701 (method url-fetch)
3702 (uri (string-append "mirror://gnome/sources/" name "/"
3703 (version-major+minor version) "/"
3704 name "-" version ".tar.bz2"))
3705 (sha256
3706 (base32
3707 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3708 (build-system gnu-build-system)
3709 (native-inputs
3710 `(("perl" ,perl)
3711 ("intltool" ,intltool)))
3712 (arguments
3713 '(#:phases (modify-phases %standard-phases
3714 (add-after 'configure 'use-our-intltool
3715 (lambda _
3716 ;; Do not use the bundled intltool commands, which lack
3717 ;; the "dotless @INC" fixes of our 'intltool' package.
3718 (substitute* (find-files "." "^Makefile$")
3719 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3720 (string-append "INTLTOOL_" tool " = intltool-"
3721 (string-downcase tool) "\n")))
3722 #t)))))
3723 (home-page "https://www.gnome.org")
3724 (synopsis "Base MIME and Application database for GNOME")
3725 (description "GNOME Mime Data is a module which contains the base MIME
3726 and Application database for GNOME. The data stored by this module is
3727 designed to be accessed through the MIME functions in GnomeVFS.")
3728 (license license:gpl2+)))
3729
3730
3731 (define-public gnome-vfs
3732 (package
3733 (name "gnome-vfs")
3734 (version "2.24.4")
3735 (source (origin
3736 (method url-fetch)
3737 (uri (string-append "mirror://gnome/sources/" name "/"
3738 (version-major+minor version) "/"
3739 name "-" version ".tar.bz2"))
3740 (sha256
3741 (base32
3742 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3743 (build-system gnu-build-system)
3744 (arguments
3745 `(#:phases
3746 (modify-phases %standard-phases
3747 (add-before 'configure 'ignore-deprecations
3748 (lambda _
3749 (substitute* '("libgnomevfs/Makefile.in"
3750 "daemon/Makefile.in")
3751 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3752 #t))
3753 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3754 (lambda _
3755 (substitute* "test/test-async-cancel.c"
3756 (("EXIT_FAILURE") "77"))
3757 #t)))))
3758 (inputs `(("libxml2" ,libxml2)
3759 ("dbus-glib" ,dbus-glib)
3760 ("gconf" ,gconf)
3761 ("gnome-mime-data" ,gnome-mime-data)
3762 ("zlib" ,zlib)))
3763 (native-inputs
3764 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3765 ("intltool" ,intltool)
3766 ("pkg-config" ,pkg-config)))
3767 (home-page "https://developer.gnome.org/gnome-vfs/")
3768 (synopsis "Access files and folders in GNOME applications")
3769 (description
3770 "GnomeVFS is the core library used to access files and folders in GNOME
3771 applications. It provides a file system abstraction which allows applications
3772 to access local and remote files with a single consistent API.")
3773 (license license:lgpl2.0+)))
3774
3775
3776
3777 (define-public libgnome
3778 (package
3779 (name "libgnome")
3780 (version "2.32.1")
3781 (source (origin
3782 (method url-fetch)
3783 (uri (string-append "mirror://gnome/sources/" name "/"
3784 (version-major+minor version) "/"
3785 name "-" version ".tar.bz2"))
3786 (sha256
3787 (base32
3788 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3789 (patches (search-patches "libgnome-encoding.patch"))))
3790 (build-system gnu-build-system)
3791 (arguments
3792 `(#:phases
3793 (modify-phases %standard-phases
3794 (add-before 'configure 'enable-deprecated
3795 (lambda _
3796 (substitute* "libgnome/Makefile.in"
3797 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3798 #t)))))
3799 (inputs `(("libxml2" ,libxml2)))
3800 (native-inputs
3801 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3802 ("intltool" ,intltool)
3803 ("pkg-config" ,pkg-config)))
3804 ;; The following are listed as Required in the .pc file
3805 ;; (except for libcanberra -- which seems to be oversight on the part
3806 ;; of the upstream developers -- anything that links against libgnome,
3807 ;; must also link against libcanberra
3808 (propagated-inputs
3809 `(("libcanberra" ,libcanberra)
3810 ("libbonobo" ,libbonobo)
3811 ("gconf" ,gconf)
3812 ("gnome-vfs" ,gnome-vfs)
3813 ("popt" ,popt))) ;gnome-program.h includes popt.h
3814 (home-page "https://developer.gnome.org/libgnome/")
3815 (synopsis "Useful routines for building applications")
3816 (description "The libgnome library provides a number of useful routines
3817 for building modern applications, including session management, activation of
3818 files and URIs, and displaying help.")
3819 (license license:lgpl2.0+)))
3820
3821
3822 (define-public libart-lgpl
3823 (package
3824 (name "libart-lgpl")
3825 (version "2.3.21")
3826 (source (origin
3827 (method url-fetch)
3828 (uri (let ((upstream-name "libart_lgpl"))
3829 (string-append "mirror://gnome/sources/" upstream-name "/"
3830 (version-major+minor version) "/"
3831 upstream-name "-" version ".tar.bz2")))
3832 (sha256
3833 (base32
3834 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3835 (build-system gnu-build-system)
3836 (native-inputs
3837 `(("pkg-config" ,pkg-config)))
3838 (home-page "https://people.gnome.org/~mathieu/libart")
3839 (synopsis "2D drawing library")
3840 (description "Libart is a 2D drawing library intended as a
3841 high-quality vector-based 2D library with antialiasing and alpha composition.")
3842 (license license:lgpl2.0+)))
3843
3844
3845
3846 (define-public libgnomecanvas
3847 (package
3848 (name "libgnomecanvas")
3849 (version "2.30.3")
3850 (source (origin
3851 (method url-fetch)
3852 (uri (string-append "mirror://gnome/sources/" name "/"
3853 (version-major+minor version) "/"
3854 name "-" version ".tar.gz"))
3855 (sha256
3856 (base32
3857 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3858 (build-system gnu-build-system)
3859 ;; Mentioned as Required in the .pc file
3860 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3861 ("gtk+" ,gtk+-2)))
3862 (native-inputs
3863 `(("intltool" ,intltool)
3864 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3865 ("pkg-config" ,pkg-config)))
3866 (home-page "https://developer.gnome.org/libgnomecanvas/")
3867 (synopsis "Flexible widget for creating interactive structured graphics")
3868 (description "The GnomeCanvas widget provides a flexible widget for
3869 creating interactive structured graphics.")
3870 (license license:lgpl2.0+)))
3871
3872 (define-public libgnomecanvasmm
3873 (package
3874 (name "libgnomecanvasmm")
3875 (version "2.26.0")
3876 (source (origin
3877 (method url-fetch)
3878 (uri (string-append "mirror://gnome/sources/" name "/"
3879 (version-major+minor version) "/"
3880 name "-" version ".tar.bz2"))
3881 (sha256
3882 (base32
3883 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3884 (build-system gnu-build-system)
3885 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3886 (native-inputs
3887 `(("gtkmm-2" ,gtkmm-2)
3888 ("pkg-config" ,pkg-config)))
3889 (home-page "https://gtkmm.org")
3890 (synopsis "C++ bindings to the GNOME Canvas library")
3891 (description "C++ bindings to the GNOME Canvas library.")
3892 (license license:lgpl2.0+)))
3893
3894 (define-public libgnomeui
3895 (package
3896 (name "libgnomeui")
3897 (version "2.24.5")
3898 (source (origin
3899 (method url-fetch)
3900 (uri (string-append "mirror://gnome/sources/" name "/"
3901 (version-major+minor version) "/"
3902 name "-" version ".tar.bz2"))
3903 (patches (search-patches "libgnomeui-utf8.patch"))
3904 (sha256
3905 (base32
3906 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3907 (build-system gnu-build-system)
3908 ;; Mentioned as Required in the .pc file
3909 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3910 ("libgnome" ,libgnome)
3911 ("libgnomecanvas" ,libgnomecanvas)
3912 ("libgnome-keyring" ,libgnome-keyring)))
3913 (inputs `(("libjpeg" ,libjpeg-turbo)
3914 ("popt" ,popt)
3915 ("libbonobo" ,libbonobo)
3916 ("libxml2" ,libxml2)
3917 ("libglade" ,libglade)))
3918 (native-inputs
3919 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3920 ("intltool" ,intltool)
3921 ("pkg-config" ,pkg-config)))
3922 (home-page "https://developer.gnome.org/libgnomeui/")
3923 (synopsis "Additional widgets for applications")
3924 (description "The libgnomeui library provides additional widgets for
3925 applications. Many of the widgets from libgnomeui have already been
3926 ported to GTK+.")
3927 (license license:lgpl2.0+)))
3928
3929 (define-public libglade
3930 (package
3931 (name "libglade")
3932 (version "2.6.4")
3933 (source (origin
3934 (method url-fetch)
3935 (uri (string-append "mirror://gnome/sources/" name "/"
3936 (version-major+minor version) "/"
3937 name "-" version ".tar.bz2"))
3938 (sha256
3939 (base32
3940 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3941 (build-system gnu-build-system)
3942 (inputs
3943 `(("python" ,python))) ;; needed for the optional libglade-convert program
3944 (propagated-inputs
3945 `(("gtk+-2" ,gtk+-2)
3946 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3947 (native-inputs
3948 `(("pkg-config" ,pkg-config)))
3949 (home-page "https://developer.gnome.org/libglade")
3950 (synopsis "Load glade interfaces and access the glade built widgets")
3951 (description "Libglade is a library that provides interfaces for loading
3952 graphical interfaces described in glade files and for accessing the
3953 widgets built in the loading process.")
3954 (license license:gpl2+))) ; This is correct. GPL not LGPL
3955
3956 (define-public libgnomeprint
3957 ;; This library has been deprecated since 2006; see
3958 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3959 (package
3960 (name "libgnomeprint")
3961 (version "2.18.8")
3962 (source (origin
3963 (method url-fetch)
3964 (uri (string-append "mirror://gnome/sources/" name "/"
3965 (version-major+minor version) "/"
3966 name "-" version ".tar.bz2"))
3967 (sha256
3968 (base32
3969 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3970 (build-system gnu-build-system)
3971 (inputs
3972 `(("popt" ,popt)
3973 ("libart-lgpl" ,libart-lgpl)
3974 ("gtk+" ,gtk+-2)
3975 ("libxml2" ,libxml2)))
3976 (native-inputs
3977 `(("intltool" ,intltool)
3978 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3979 ("pkg-config" ,pkg-config)))
3980 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3981 (synopsis "Printing framework for GNOME")
3982 (description
3983 "GNOME-print was a printing framework for GNOME. It has been deprecated
3984 since ca. 2006, when GTK+ itself incorporated printing support.")
3985 (license license:lgpl2.0+)))
3986
3987
3988 (define-public libgnomeprintui
3989 ;; Deprecated; see libgnomeprint.
3990 (package
3991 (name "libgnomeprintui")
3992 (version "2.18.6")
3993 (source (origin
3994 (method url-fetch)
3995 (uri (string-append "mirror://gnome/sources/" name "/"
3996 (version-major+minor version) "/"
3997 name "-" version ".tar.bz2"))
3998 (sha256
3999 (base32
4000 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
4001 (build-system gnu-build-system)
4002 ;; Mentioned as Required in the .pc file
4003 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
4004 (inputs `(("gtk+" ,gtk+-2)
4005 ("glib" ,glib)
4006 ("gnome-icon-theme" ,gnome-icon-theme)
4007 ("libgnomecanvas" ,libgnomecanvas)
4008 ("libxml2" ,libxml2)))
4009 (native-inputs
4010 `(("intltool" ,intltool)
4011 ("pkg-config" ,pkg-config)))
4012 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
4013 (synopsis "Printing framework for GNOME")
4014 (description (package-description libgnomeprint))
4015 (license license:lgpl2.0+)))
4016
4017 (define-public libbonoboui
4018 (package
4019 (name "libbonoboui")
4020 (version "2.24.5")
4021 (source (origin
4022 (method url-fetch)
4023 (uri (string-append "mirror://gnome/sources/" name "/"
4024 (version-major+minor version) "/"
4025 name "-" version ".tar.bz2"))
4026 (sha256
4027 (base32
4028 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4029 (build-system gnu-build-system)
4030 (arguments
4031 `(#:phases
4032 (modify-phases %standard-phases
4033 (add-before 'check 'start-xserver
4034 (lambda* (#:key inputs #:allow-other-keys)
4035 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4036 (disp ":1"))
4037
4038 (setenv "HOME" (getcwd))
4039 (setenv "DISPLAY" disp)
4040 ;; There must be a running X server and make check doesn't start one.
4041 ;; Therefore we must do it.
4042 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4043 ;; Mentioned as Required by the .pc file
4044 (propagated-inputs `(("libxml2" ,libxml2)))
4045 (inputs
4046 `(("popt" ,popt)
4047 ("pangox-compat" ,pangox-compat)
4048 ("libgnome" ,libgnome)
4049 ("libgnomecanvas" ,libgnomecanvas)
4050 ("libglade" ,libglade)))
4051 (native-inputs
4052 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
4053 ("intltool" ,intltool)
4054 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
4055 ("pkg-config" ,pkg-config)))
4056 (home-page "https://developer.gnome.org/libbonoboui/")
4057 (synopsis "Some user interface controls using Bonobo")
4058 (description "The Bonobo UI library provides a number of user interface
4059 controls using the Bonobo component framework.")
4060 (license license:lgpl2.0+)))
4061
4062 (define-public libwnck
4063 (package
4064 (name "libwnck")
4065 (version "3.32.0")
4066 (source (origin
4067 (method url-fetch)
4068 (uri (string-append "mirror://gnome/sources/" name "/"
4069 (version-major+minor version) "/"
4070 name "-" version ".tar.xz"))
4071 (sha256
4072 (base32
4073 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4074 (build-system meson-build-system)
4075 (native-inputs
4076 `(("pkg-config" ,pkg-config)
4077 ("glib" ,glib "bin") ; for glib-mkenums
4078 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
4079 ("intltool" ,intltool)))
4080 (propagated-inputs
4081 `(("gtk+" ,gtk+)
4082 ("libxres" ,libxres)
4083 ("startup-notification" ,startup-notification)))
4084 (home-page "https://developer.gnome.org/libwnck/")
4085 (synopsis "Window Navigator Construction Kit")
4086 (description
4087 "Libwnck is the Window Navigator Construction Kit, a library for use in
4088 writing pagers, tasklists, and more generally applications that are dealing
4089 with window management. It tries hard to respect the Extended Window Manager
4090 Hints specification (EWMH).")
4091 (license license:lgpl2.0+)))
4092
4093 ;; stable version for gtk2, required by xfwm4.
4094 (define-public libwnck-2
4095 (package (inherit libwnck)
4096 (name "libwnck")
4097 (version "2.30.7")
4098 (source (origin
4099 (method url-fetch)
4100 (uri (string-append "mirror://gnome/sources/" name "/"
4101 (version-major+minor version) "/"
4102 name "-" version ".tar.xz"))
4103 (sha256
4104 (base32
4105 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4106 (build-system gnu-build-system)
4107 (native-inputs
4108 `(("pkg-config" ,pkg-config)
4109 ("intltool" ,intltool)))
4110 (propagated-inputs
4111 `(("gtk+" ,gtk+-2)
4112 ("libxres" ,libxres)
4113 ("startup-notification" ,startup-notification)))))
4114
4115 (define-public goffice
4116 (package
4117 (name "goffice")
4118 (version "0.10.48")
4119 (source (origin
4120 (method url-fetch)
4121 (uri (string-append "mirror://gnome/sources/goffice/"
4122 (version-major+minor version) "/"
4123 "goffice-" version ".tar.xz"))
4124 (sha256
4125 (base32 "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4"))))
4126 (build-system gnu-build-system)
4127 (outputs '("out"
4128 "doc")) ; 4.0 MiB of gtk-doc
4129 (arguments
4130 '(#:configure-flags (list (string-append "--with-html-dir="
4131 (assoc-ref %outputs "doc")
4132 "/share/gtk-doc/html"))))
4133 (inputs
4134 `(("gtk+" ,gtk+)
4135 ("libgsf" ,libgsf)
4136 ("librsvg" ,librsvg)
4137 ("libxslt" ,libxslt)
4138 ("libxml2" ,libxml2)))
4139 (native-inputs
4140 `(("intltool" ,intltool)
4141 ("glib" ,glib "bin")
4142 ("pkg-config" ,pkg-config)))
4143 (home-page "https://developer.gnome.org/goffice/")
4144 (synopsis "Document-centric objects and utilities")
4145 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4146 (license
4147 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4148 ;; Note: NOT LGPL
4149 (list license:gpl2 license:gpl3))))
4150
4151 (define-public goffice-0.8
4152 (package (inherit goffice)
4153 (version "0.8.17")
4154 (source (origin
4155 (method url-fetch)
4156 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4157 (version-major+minor version) "/"
4158 (package-name goffice) "-" version ".tar.xz"))
4159 (sha256
4160 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4161 (arguments
4162 `(#:phases
4163 (modify-phases %standard-phases
4164 (add-after 'unpack 'fix-pcre-check
4165 (lambda _
4166 ;; Only glib.h can be included directly. See
4167 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4168 (substitute* "configure"
4169 (("glib/gregex\\.h") "glib.h")) #t)))
4170
4171 ,@(package-arguments goffice)))
4172 (propagated-inputs
4173 ;; libgoffice-0.8.pc mentions libgsf-1
4174 `(("libgsf" ,libgsf)))
4175 (inputs
4176 `(("gtk" ,gtk+-2)
4177 ,@(alist-delete "gtk" (package-inputs goffice))))))
4178
4179 (define-public gnumeric
4180 (package
4181 (name "gnumeric")
4182 (version "1.12.48")
4183 (source (origin
4184 (method url-fetch)
4185 (uri (string-append "mirror://gnome/sources/gnumeric/"
4186 (version-major+minor version) "/"
4187 "gnumeric-" version ".tar.xz"))
4188 (sha256
4189 (base32
4190 "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p"))))
4191 (build-system glib-or-gtk-build-system)
4192 (arguments
4193 `(;; The gnumeric developers don't worry much about failing tests.
4194 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4195 #:tests? #f
4196 #:phases
4197 (modify-phases %standard-phases
4198 (add-before
4199 'configure 'pre-conf
4200 (lambda* (#:key outputs #:allow-other-keys)
4201 ;; Make install tries to write into the directory of goffice
4202 ;; I am informed that this only affects the possibility to embed a
4203 ;; spreadsheet inside an Abiword document. So presumably when we
4204 ;; package Abiword we'll have to refer it to this directory.
4205 (substitute* "configure"
4206 (("^GOFFICE_PLUGINS_DIR=.*")
4207 (string-append "GOFFICE_PLUGINS_DIR="
4208 (assoc-ref outputs "out")
4209 "/goffice/plugins"))))))))
4210 (inputs
4211 `(("glib" ,glib)
4212 ("gtk+" ,gtk+)
4213 ("goffice" ,goffice)
4214 ("libgsf" ,libgsf)
4215 ("librsvg" ,librsvg)
4216 ("libxml2" ,libxml2)
4217 ("libxslt" ,libxslt)
4218 ("python" ,python)
4219 ("python-pygobject" ,python-pygobject)
4220 ("zlib" ,zlib)))
4221 (native-inputs
4222 `(("bison" ,bison)
4223 ("docbook-xml" ,docbook-xml)
4224 ("intltool" ,intltool)
4225 ("itstool" ,itstool)
4226 ("glib:bin" ,glib "bin")
4227 ("pkg-config" ,pkg-config)))
4228 (home-page "http://www.gnumeric.org")
4229 (synopsis "Spreadsheet application")
4230 (description
4231 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4232 interoperable with other spreadsheet applications. It has a vast array of
4233 features beyond typical spreadsheet functionality, such as support for linear
4234 and non-linear solvers, statistical analysis, and telecommunication
4235 engineering.")
4236 (license
4237 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4238 (list license:gpl2 license:gpl3))))
4239
4240 (define-public gnome-themes-standard
4241 (package
4242 (name "gnome-themes-standard")
4243 (version "3.22.3")
4244 (source
4245 (origin
4246 (method url-fetch)
4247 (uri (string-append "mirror://gnome/sources/" name "/"
4248 (version-major+minor version) "/" name "-"
4249 version ".tar.xz"))
4250 (sha256
4251 (base32
4252 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4253 (build-system gnu-build-system)
4254 (arguments
4255 '(#:configure-flags
4256 ;; Don't create 'icon-theme.cache'.
4257 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4258 (true (string-append coreutils "/bin/true")))
4259 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4260 (inputs
4261 `(("gtk+" ,gtk+)
4262 ("gtk+-2" ,gtk+-2)
4263 ("librsvg" ,librsvg)
4264 ("libxml2" ,libxml2)
4265 ("glib" ,glib)))
4266 (native-inputs
4267 `(("intltool" ,intltool)
4268 ("glib:bin" ,glib "bin")
4269 ("pkg-config" ,pkg-config)))
4270 (home-page "https://launchpad.net/gnome-themes-standard")
4271 (synopsis "Default GNOME 3 themes")
4272 (description
4273 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4274 (license license:lgpl2.1+)))
4275
4276 (define-public seahorse
4277 (package
4278 (name "seahorse")
4279 (version "3.36.2")
4280 (source
4281 (origin
4282 (method url-fetch)
4283 (uri (string-append "mirror://gnome/sources/" name "/"
4284 (version-major+minor version) "/" name "-"
4285 version ".tar.xz"))
4286 (sha256
4287 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4288 (build-system meson-build-system)
4289 (arguments
4290 '(#:glib-or-gtk? #t
4291 #:phases
4292 (modify-phases %standard-phases
4293 (add-after 'unpack 'skip-gtk-update-icon-cache
4294 ;; Don't create 'icon-theme.cache'.
4295 (lambda _
4296 (substitute* "build-aux/meson_post_install.py"
4297 (("gtk-update-icon-cache") "true"))
4298 #t)))))
4299 (inputs
4300 `(("gtk+" ,gtk+)
4301 ("gcr" ,gcr)
4302 ("gnupg" ,gnupg)
4303 ("gpgme" ,gpgme)
4304 ("openldap" ,openldap)
4305 ("openssh" ,openssh)
4306 ("avahi" ,avahi)
4307 ("libhandy" ,libhandy-0.0)
4308 ("libpwquality" ,libpwquality)
4309 ("libsecret" ,libsecret)
4310 ("libsoup" ,libsoup)))
4311 (native-inputs
4312 `(("gettext" ,gettext-minimal)
4313 ("glib:bin" ,glib "bin")
4314 ("itstool" ,itstool)
4315 ("pkg-config" ,pkg-config)
4316 ("vala" ,vala)
4317 ("xmllint" ,libxml2)))
4318 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4319 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4320 (description
4321 "Seahorse is a GNOME application for managing encryption keys and
4322 passwords in the GNOME keyring.")
4323 (license license:gpl2+)))
4324
4325 (define-public vala
4326 (package
4327 (name "vala")
4328 (version "0.46.5")
4329 (source (origin
4330 (method url-fetch)
4331 (uri (string-append "mirror://gnome/sources/" name "/"
4332 (version-major+minor version) "/"
4333 name "-" version ".tar.xz"))
4334 (sha256
4335 (base32
4336 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4337 (build-system gnu-build-system)
4338 (arguments
4339 '(#:phases
4340 (modify-phases %standard-phases
4341 (add-before 'check 'pre-check
4342 (lambda _
4343 (setenv "CC" "gcc")
4344 (substitute* "valadoc/tests/testrunner.sh"
4345 (("export PKG_CONFIG_PATH=" m)
4346 (string-append m "$PKG_CONFIG_PATH:")))
4347 ;; For missing '/etc/machine-id'.
4348 (setenv "DBUS_FATAL_WARNINGS" "0")
4349 #t)))))
4350 (native-inputs
4351 `(("pkg-config" ,pkg-config)
4352 ("flex" ,flex)
4353 ("bison" ,bison)
4354 ("xsltproc" ,libxslt)
4355 ("dbus" ,dbus) ; for dbus tests
4356 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4357 (inputs
4358 `(("graphviz" ,graphviz)))
4359 (propagated-inputs
4360 `(("glib" ,glib))) ; required by libvala-0.40.pc
4361 (home-page "https://wiki.gnome.org/Projects/Vala/")
4362 (synopsis "Compiler for the GObject type system")
4363 (description
4364 "Vala is a programming language that aims to bring modern programming
4365 language features to GNOME developers without imposing any additional runtime
4366 requirements and without using a different ABI compared to applications and
4367 libraries written in C.")
4368 (license license:lgpl2.1+)))
4369
4370 (define-public vala-0.50
4371 (package
4372 (inherit vala)
4373 (version "0.50.2")
4374 (source (origin
4375 (method url-fetch)
4376 (uri (string-append "mirror://gnome/sources/vala/"
4377 (version-major+minor version) "/"
4378 "vala-" version ".tar.xz"))
4379 (sha256
4380 (base32
4381 "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c"))))))
4382
4383 (define-public vte
4384 (package
4385 (name "vte")
4386 (version "0.60.3")
4387 (source (origin
4388 (method url-fetch)
4389 (uri (string-append "mirror://gnome/sources/vte/"
4390 (version-major+minor version) "/"
4391 "vte-" version ".tar.xz"))
4392 (sha256
4393 (base32
4394 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4395 (build-system meson-build-system)
4396 (arguments
4397 `(#:configure-flags
4398 '("-Dvapi=true"
4399 "-D_systemd=false")))
4400 (native-inputs
4401 `(("pkg-config" ,pkg-config)
4402 ("gettext" ,gettext-minimal)
4403 ("vala" ,vala)
4404 ("gobject-introspection" ,gobject-introspection)
4405 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4406 ("gperf" ,gperf)
4407 ("xmllint" ,libxml2)))
4408 (propagated-inputs
4409 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4410 ("gnutls" ,gnutls) ; ditto
4411 ("pcre2" ,pcre2))) ; ditto
4412 (home-page "https://www.gnome.org/")
4413 (synopsis "Virtual Terminal Emulator")
4414 (description
4415 "VTE is a library (libvte) implementing a terminal emulator widget for
4416 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4417 gnome-terminal, but can also be used to embed a console/terminal in games,
4418 editors, IDEs, etc.")
4419 (license license:lgpl2.1+)))
4420
4421 (define-public vte-ng
4422 (package
4423 (inherit vte)
4424 (name "vte-ng")
4425 (version "0.58.2.a")
4426 (home-page "https://github.com/thestinger/vte-ng")
4427 (source (origin
4428 (method git-fetch)
4429 (uri (git-reference (url home-page) (commit version)))
4430 (file-name (git-file-name name version))
4431 (sha256
4432 (base32
4433 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4434 (build-system meson-build-system)
4435 (native-inputs
4436 `(("gtk-doc" ,gtk-doc)
4437 ,@(package-native-inputs vte)))
4438 (arguments
4439 `(#:configure-flags '("-Ddocs=true")))
4440 (synopsis "Enhanced VTE terminal widget")
4441 (description
4442 "VTE is a library (libvte) implementing a terminal emulator widget for
4443 GTK+, this fork provides additional functions exposed for keyboard text
4444 selection and URL hints.")))
4445
4446 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4447 (define-public vte/gtk+-2
4448 (package (inherit vte)
4449 (name "vte")
4450 (version "0.28.2")
4451 (source (origin
4452 (method url-fetch)
4453 (uri (string-append "mirror://gnome/sources/" name "/"
4454 (version-major+minor version) "/"
4455 name "-" version ".tar.xz"))
4456 (sha256
4457 (base32
4458 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4459 (patches (search-patches
4460 "vte-CVE-2012-2738-pt1.patch"
4461 "vte-CVE-2012-2738-pt2.patch"))))
4462 (build-system gnu-build-system)
4463 (arguments
4464 '(#:configure-flags '("--disable-python")))
4465 (native-inputs
4466 `(("pkg-config" ,pkg-config)
4467 ("intltool" ,intltool)
4468 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4469 (propagated-inputs
4470 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4471 ("ncurses" ,ncurses))))) ; required by libvte.la
4472
4473 (define-public vinagre
4474 (package
4475 (name "vinagre")
4476 (version "3.22.0")
4477 (source (origin
4478 (method url-fetch)
4479 (uri (string-append "mirror://gnome/sources/" name "/"
4480 (version-major+minor version) "/"
4481 name "-" version ".tar.xz"))
4482 (patches (search-patches "vinagre-newer-freerdp.patch"
4483 "vinagre-newer-rdp-parameters.patch"))
4484 (sha256
4485 (base32
4486 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4487 (build-system glib-or-gtk-build-system)
4488 (arguments
4489 ;; Disable -Werror and such, to avoid build failures on compilation
4490 ;; warnings.
4491 '(#:configure-flags '("--enable-compile-warnings=minimum")
4492 #:phases
4493 (modify-phases %standard-phases
4494 (add-before 'install 'skip-gtk-update-icon-cache
4495 (lambda _
4496 ;; Don't create 'icon-theme.cache'
4497 (substitute* (find-files "." "^Makefile$")
4498 (("gtk-update-icon-cache") (which "true")))
4499 #t))
4500 (add-after 'unpack 'patch-configure
4501 (lambda _
4502 (substitute* "configure"
4503 (("freerdp") "freerdp2"))
4504 #t)))))
4505 (native-inputs
4506 `(("pkg-config" ,pkg-config)
4507 ("intltool" ,intltool)
4508 ("itstool" ,itstool)
4509 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4510 (inputs
4511 `(("libxml2" ,libxml2)
4512 ("gtk-vnc" ,gtk-vnc)
4513 ("gnome-keyring" ,gnome-keyring)
4514 ("libsecret" ,libsecret)
4515 ("freerdp" ,freerdp)
4516 ("spice" ,spice)
4517 ("spice-gtk" ,spice-gtk)
4518 ("telepathy-glib" ,telepathy-glib)
4519 ("vte" ,vte)))
4520 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4521 (synopsis "Remote desktop viewer for GNOME")
4522 (description "Vinagre is a remote display client supporting the VNC, SPICE
4523 and RDP protocols.")
4524 (license license:gpl3+)))
4525
4526 (define-public dconf
4527 (package
4528 (name "dconf")
4529 (version "0.36.0")
4530 (source (origin
4531 (method url-fetch)
4532 (uri (string-append
4533 "mirror://gnome/sources/" name "/"
4534 (version-major+minor version) "/"
4535 name "-" version ".tar.xz"))
4536 (sha256
4537 (base32
4538 "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
4539 (build-system meson-build-system)
4540 (propagated-inputs
4541 ;; In Requires of dconf.pc.
4542 `(("glib" ,glib)))
4543 (inputs
4544 `(("gtk+" ,gtk+)
4545 ("dbus" ,dbus)))
4546 (native-inputs
4547 `(("bash-completion" ,bash-completion)
4548 ("libxslt" ,libxslt) ;for xsltproc
4549 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4550 ("docbook-xml" ,docbook-xml-4.2)
4551 ("docbook-xsl" ,docbook-xsl)
4552 ("glib:bin" ,glib "bin")
4553 ("gtk-doc" ,gtk-doc)
4554 ("pkg-config" ,pkg-config)
4555 ("vala" ,vala)))
4556 (arguments
4557 `(#:glib-or-gtk? #t
4558 #:configure-flags '("-Denable-gtk-doc=true")
4559 #:phases (modify-phases %standard-phases
4560 (add-after 'unpack 'increase-test-timeout
4561 (lambda _
4562 ;; On big-memory systems, the engine test may take
4563 ;; much longer than the default of 30 seconds.
4564 (substitute* "tests/meson.build"
4565 (("test\\(unit_test\\[0\\], exe" all)
4566 (string-append all ", timeout : 90")))
4567 #t)))))
4568 (home-page "https://developer.gnome.org/dconf/")
4569 (synopsis "Low-level GNOME configuration system")
4570 (description "Dconf is a low-level configuration system. Its main purpose
4571 is to provide a backend to GSettings on platforms that don't already have
4572 configuration storage systems.")
4573 (license license:lgpl2.1+)))
4574
4575 (define-public json-glib
4576 (package
4577 (name "json-glib")
4578 (version "1.4.4")
4579 (source (origin
4580 (method url-fetch)
4581 (uri (string-append "mirror://gnome/sources/" name "/"
4582 (version-major+minor version) "/"
4583 name "-" version ".tar.xz"))
4584 (sha256
4585 (base32
4586 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4587 (build-system meson-build-system)
4588 (native-inputs
4589 `(("gettext" ,gettext-minimal)
4590 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4591 ("gobject-introspection" ,gobject-introspection)
4592 ("pkg-config" ,pkg-config)))
4593 (propagated-inputs
4594 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4595 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4596 (synopsis "Compiler for the GObject type system")
4597 (description
4598 "JSON-GLib is a C library based on GLib providing serialization and
4599 deserialization support for the JavaScript Object Notation (JSON) format
4600 described by RFC 4627. It provides parser and generator GObject classes and
4601 various wrappers for the complex data types employed by JSON, such as arrays
4602 and objects.")
4603 (license license:lgpl2.1+)))
4604
4605 (define-public libxklavier
4606 (package
4607 (name "libxklavier")
4608 (version "5.4")
4609 (source (origin
4610 ;; Note: There's no tarball at ftp.gnome.org for this version.
4611 (method git-fetch)
4612 (uri (git-reference
4613 (url "https://anongit.freedesktop.org/git/libxklavier")
4614 (commit (string-append "libxklavier-" version))))
4615 (sha256
4616 (base32
4617 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4618 (file-name (git-file-name name version))))
4619 (build-system gnu-build-system)
4620 (arguments
4621 '(#:configure-flags
4622 (list (string-append "--with-xkb-base="
4623 (assoc-ref %build-inputs "xkeyboard-config")
4624 "/share/X11/xkb")
4625 "--disable-xmodmap-support")))
4626 (native-inputs
4627 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4628 ("gobject-introspection" ,gobject-introspection)
4629 ("pkg-config" ,pkg-config)
4630 ("gtk-doc" ,gtk-doc)
4631 ("intltool" ,intltool)
4632 ("which" ,which)
4633 ("autoconf" ,autoconf)
4634 ("automake" ,automake)
4635 ("libtool" ,libtool)))
4636 (propagated-inputs
4637 ;; Required by libxklavier.pc.
4638 `(("glib" ,glib)
4639 ("libxml2" ,libxml2)))
4640 (inputs
4641 `(("iso-codes" ,iso-codes)
4642 ("libxi" ,libxi)
4643 ("libxkbfile" ,libxkbfile)
4644 ("xkbcomp" ,xkbcomp)
4645 ("xkeyboard-config" ,xkeyboard-config)))
4646 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4647 (synopsis "High-level API for X Keyboard Extension")
4648 (description
4649 "LibXklavier is a library providing high-level API for X Keyboard
4650 Extension known as XKB. This library is intended to support XFree86 and other
4651 commercial X servers. It is useful for creating XKB-related software (layout
4652 indicators etc).")
4653 (license license:lgpl2.0+)))
4654
4655 (define-public python2-rsvg
4656 ;; XXX: This is actually a subset of gnome-python-desktop.
4657 (package
4658 (name "python2-rsvg")
4659 (version "2.32.0")
4660 (source
4661 (origin
4662 (method url-fetch)
4663 (uri (string-append
4664 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4665 version ".tar.bz2"))
4666 (sha256
4667 (base32
4668 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4669 (build-system gnu-build-system)
4670 (native-inputs
4671 `(("pkg-config" ,pkg-config)))
4672 (inputs
4673 `(("python" ,python-2)
4674 ("python2-pygtk" ,python2-pygtk)
4675 ("librsvg" ,librsvg)))
4676 (home-page "https://www.gnome.org")
4677 (synopsis "Python bindings to librsvg")
4678 (description
4679 "This package provides Python bindings to librsvg, the SVG rendering
4680 library.")
4681
4682 ;; This is the license of the rsvg bindings. The license of each module
4683 ;; of gnome-python-desktop is given in 'COPYING'.
4684 (license license:lgpl2.1+)))
4685
4686 (define-public glib-networking
4687 (package
4688 (name "glib-networking")
4689 (version "2.62.2")
4690 (source (origin
4691 (method url-fetch)
4692 (uri (string-append "mirror://gnome/sources/glib-networking/"
4693 (version-major+minor version) "/"
4694 "glib-networking-" version ".tar.xz"))
4695 (sha256
4696 (base32
4697 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4698 (build-system meson-build-system)
4699 (arguments
4700 `(#:configure-flags '("-Dlibproxy_support=false")))
4701 (native-inputs
4702 `(("pkg-config" ,pkg-config)
4703 ("intltool" ,intltool)))
4704 (inputs
4705 `(("glib" ,glib)
4706 ("gnutls" ,gnutls)
4707 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4708 (home-page "https://www.gnome.org")
4709 (synopsis "Network-related GIO modules")
4710 (description
4711 "This package contains various network related extensions for the GIO
4712 library.")
4713 (license license:lgpl2.0+)))
4714
4715 (define-public rest
4716 (package
4717 (name "rest")
4718 (version "0.8.1")
4719 (source (origin
4720 (method url-fetch)
4721 (uri (string-append "mirror://gnome/sources/rest/"
4722 (version-major+minor version) "/"
4723 name "-" version ".tar.xz"))
4724 (sha256
4725 (base32
4726 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4727 (build-system gnu-build-system)
4728 (arguments
4729 '(#:tests? #f ; tests require internet connection
4730 #:configure-flags
4731 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4732 (native-inputs
4733 `(("glib-mkenums" ,glib "bin")
4734 ("gobject-introspection" ,gobject-introspection)
4735 ("pkg-config" ,pkg-config)))
4736 (propagated-inputs
4737 ;; rest-0.7.pc refers to all these.
4738 `(("glib" ,glib)
4739 ("libsoup" ,libsoup)
4740 ("libxml2" ,libxml2)))
4741 (home-page "https://www.gtk.org/")
4742 (synopsis "RESTful web api query library")
4743 (description
4744 "This library was designed to make it easier to access web services that
4745 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4746 libxml to ease remote use of the RESTful API.")
4747 (license license:lgpl2.1+)))
4748
4749 (define-public libsoup
4750 (package
4751 (name "libsoup")
4752 (version "2.72.0")
4753 (source (origin
4754 (method url-fetch)
4755 (uri (string-append "mirror://gnome/sources/libsoup/"
4756 (version-major+minor version) "/"
4757 "libsoup-" version ".tar.xz"))
4758 (sha256
4759 (base32
4760 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
4761 (build-system meson-build-system)
4762 (outputs '("out" "doc"))
4763 (arguments
4764 `(#:modules ((guix build utils)
4765 (guix build meson-build-system)
4766 (ice-9 popen))
4767
4768 #:configure-flags '("-Dgtk_doc=true")
4769 #:phases
4770 (modify-phases %standard-phases
4771 (add-after 'unpack 'patch-docbook-xml
4772 (lambda* (#:key inputs #:allow-other-keys)
4773 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
4774 "/xml/dtd/docbook")))
4775 (substitute* (find-files "docs/reference")
4776 (("http://.*/docbookx\\.dtd")
4777 (string-append xmldoc "/docbookx.dtd")))
4778 #t)))
4779 (add-after 'unpack 'adjust-tests
4780 (lambda _
4781 ;; This test fails due to missing /etc/nsswitch.conf
4782 ;; in the build environment.
4783 (substitute* "tests/socket-test.c"
4784 ((".*/sockets/unconnected.*") ""))
4785
4786 ;; These fail because "subdomain.localhost" does not resolve in
4787 ;; the build environment.
4788 (substitute* "tests/hsts-test.c"
4789 ((".*/hsts/basic.*") "")
4790 ((".*/hsts/subdomains.*") "")
4791 ((".*/hsts/superdomain.*") "")
4792 ((".*/hsts/utf8-address.*") ""))
4793 (substitute* "tests/hsts-db-test.c"
4794 ((".*/hsts-db/subdomains.*") ""))
4795
4796 ;; Generate a self-signed certificate that has "localhost" as its
4797 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4798 ;; 3.5.12, tests such as "ssl-tests" fail:
4799 ;;
4800 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4801 ;;
4802 ;; 'certtool' is interactive so we have to pipe it the answers.
4803 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4804 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4805 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4806 (for-each (lambda (line)
4807 (display line pipe)
4808 (newline pipe))
4809 '("" ;Common name
4810 "" ;UID
4811 "Guix" ;Organizational unit name
4812 "GNU" ;Organization name
4813 "" ;Locality name
4814 "" ;State or province
4815 "" ;Country
4816 "" ;subject's domain component (DC)
4817 "" ;E-mail
4818 "" ;serial number
4819 "-1" ;expiration time
4820 "N" ;belong to authority?
4821 "N" ;web client certificate?
4822 "N" ;IPsec IKE?
4823 "Y" ;web server certificate?
4824 "localhost" ;dnsName of subject
4825 "" ;dnsName of subject (end)
4826 "" ;URI of subject
4827 "127.0.0.1" ;IP address of subject
4828 "" ;signing?
4829 "" ;encryption (RSA)?
4830 "" ;data encryption?
4831 "" ;sign OCSP requests?
4832 "" ;sign code?
4833 "" ;time stamping?
4834 "" ;email protection?
4835 "" ;URI of the CRL distribution point
4836 "y" ;above info OK?
4837 ))
4838 (close-pipe pipe))
4839 #t))
4840 (add-after 'install 'move-doc
4841 (lambda* (#:key outputs #:allow-other-keys)
4842 (let ((out (assoc-ref outputs "out"))
4843 (doc (assoc-ref outputs "doc")))
4844 (mkdir-p (string-append doc "/share"))
4845 (copy-recursively (string-append out "/share/gtk-doc")
4846 (string-append doc "/share/gtk-doc"))
4847 (delete-file-recursively (string-append out "/share/gtk-doc"))
4848 #t))))))
4849 (native-inputs
4850 `(("docbook-xml" ,docbook-xml-4.1.2)
4851 ("glib:bin" ,glib "bin") ; for glib-mkenums
4852 ("gobject-introspection" ,gobject-introspection)
4853 ("gtk-doc" ,gtk-doc)
4854 ("intltool" ,intltool)
4855 ("pkg-config" ,pkg-config)
4856 ("python" ,python-wrapper)
4857 ("vala" ,vala)
4858 ("php" ,php)
4859 ("curl" ,curl)
4860 ("gnutls" ,gnutls) ;for 'certtool'
4861 ("httpd" ,httpd)))
4862 (propagated-inputs
4863 ;; libsoup-2.4.pc refers to all these.
4864 `(("brotli" ,google-brotli)
4865 ("glib" ,glib)
4866 ("libpsl" ,libpsl)
4867 ("libxml2" ,libxml2)
4868 ("sqlite" ,sqlite)
4869 ("zlib" ,zlib)))
4870 (inputs
4871 `(("glib-networking" ,glib-networking)
4872 ("mit-krb5" ,mit-krb5)))
4873 (home-page "https://live.gnome.org/LibSoup/")
4874 (synopsis "GLib-based HTTP Library")
4875 (description
4876 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4877 and the GLib main loop, to integrate well with GNOME applications.")
4878 (license license:lgpl2.0+)))
4879
4880
4881 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4882 (define-public libsoup-minimal
4883 (package
4884 (inherit libsoup)
4885 (name "libsoup-minimal")
4886 (outputs (delete "doc" (package-outputs libsoup)))
4887 (arguments
4888 (substitute-keyword-arguments (package-arguments libsoup)
4889 ((#:configure-flags configure-flags)
4890 `(delete "-Dgtk_doc=true" ,configure-flags))
4891 ((#:phases phases)
4892 `(modify-phases ,phases
4893 (delete 'move-doc)))))
4894 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4895
4896 (define-public libsecret
4897 (package
4898 (name "libsecret")
4899 (version "0.20.4")
4900 (source (origin
4901 (method url-fetch)
4902 (uri (string-append
4903 "mirror://gnome/sources/libsecret/"
4904 (version-major+minor version) "/"
4905 "libsecret-" version ".tar.xz"))
4906 (sha256
4907 (base32
4908 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
4909 (build-system gnu-build-system)
4910 (outputs '("out" "doc"))
4911 (arguments
4912 `(#:tests? #f ; FIXME: Testing hangs.
4913 #:configure-flags
4914 (list (string-append "--with-html-dir="
4915 (assoc-ref %outputs "doc")
4916 "/share/gtk-doc/html"))))
4917 (native-inputs
4918 `(("gettext" ,gettext-minimal)
4919 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4920 ("gobject-introspection" ,gobject-introspection)
4921 ("pkg-config" ,pkg-config)
4922 ("vala" ,vala)
4923 ("xsltproc" ,libxslt)))
4924 ;; These are needed for the tests.
4925 ;; FIXME: Add gjs once available.
4926 ;("dbus" ,dbus)
4927 ;("python2" ,python-2)
4928 ;("python2-dbus" ,python2-dbus)
4929 ;("python2-pygobject" ,python2-pygobject)
4930 ;("python2-pygobject-2" ,python2-pygobject-2)))
4931 (propagated-inputs
4932 `(("glib" ,glib))) ; required by libsecret-1.pc
4933 (inputs
4934 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
4935 ;; doesn't seem to affect the build result.
4936 `(("docbook-xsl" ,docbook-xsl)
4937 ("libgcrypt" ,libgcrypt)
4938 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4939 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4940 (synopsis "GObject bindings for \"Secret Service\" API")
4941 (description
4942 "Libsecret is a GObject based library for storing and retrieving passwords
4943 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4944 (license license:lgpl2.1+)))
4945
4946 (define-public five-or-more
4947 (package
4948 (name "five-or-more")
4949 (version "3.32.2")
4950 (source
4951 (origin
4952 (method url-fetch)
4953 (uri (string-append "mirror://gnome/sources/five-or-more/"
4954 (version-major+minor version) "/"
4955 "five-or-more-" version ".tar.xz"))
4956 (sha256
4957 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4958 (build-system meson-build-system)
4959 (arguments
4960 '(#:glib-or-gtk? #t
4961 #:phases
4962 (modify-phases %standard-phases
4963 (add-after 'unpack 'skip-gtk-update-icon-cache
4964 (lambda _
4965 (substitute* "meson_post_install.py"
4966 (("gtk-update-icon-cache") (which "true")))
4967 #t)))))
4968 (native-inputs
4969 `(("pkg-config" ,pkg-config)
4970 ("appstream-glib" ,appstream-glib)
4971 ("desktop-file-utils" ,desktop-file-utils)
4972 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4973 ("intltool" ,intltool)
4974 ("itstool" ,itstool)
4975 ("vala" ,vala)
4976 ("xmllint" ,libxml2)))
4977 (inputs
4978 `(("gtk+" ,gtk+)
4979 ("libgnome-games-support" ,libgnome-games-support)
4980 ("librsvg" ,librsvg)))
4981 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
4982 (synopsis "Logic puzzle game")
4983 (description "Five or More is a game where you try to align
4984 five or more objects of the same color and shape causing them to disappear.
4985 On every turn more objects will appear, until the board is full.
4986 Try to last as long as possible.")
4987 (license license:gpl2+)))
4988
4989 (define-public gnome-mines
4990 (package
4991 (name "gnome-mines")
4992 (version "3.36.1")
4993 (source
4994 (origin
4995 (method url-fetch)
4996 (uri (string-append "mirror://gnome/sources/" name "/"
4997 (version-major+minor version) "/"
4998 name "-" version ".tar.xz"))
4999 (sha256
5000 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
5001 (build-system meson-build-system)
5002 (arguments
5003 '(#:glib-or-gtk? #t
5004 #:phases
5005 (modify-phases %standard-phases
5006 (add-after 'unpack 'skip-gtk-update-icon-cache
5007 (lambda _
5008 (substitute* "build-aux/meson_post_install.py"
5009 (("gtk-update-icon-cache") (which "true")))
5010 #t)))))
5011 (native-inputs
5012 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5013 ("pkg-config" ,pkg-config)
5014 ("desktop-file-utils" ,desktop-file-utils)
5015 ("intltool" ,intltool)
5016 ("itstool" ,itstool)
5017 ("vala" ,vala)
5018 ("yelp" ,yelp)
5019 ("appstream-glib" ,appstream-glib)))
5020 (inputs
5021 `(("gtk+" ,gtk+)
5022 ("libgnome-games-support" ,libgnome-games-support)
5023 ("librsvg" ,librsvg)))
5024 (home-page "https://wiki.gnome.org/Apps/Mines")
5025 (synopsis "Minesweeper game")
5026 (description
5027 "Mines (previously gnomine) is a puzzle game where you locate mines
5028 floating in an ocean using only your brain and a little bit of luck.")
5029 (license license:gpl2+)))
5030
5031 (define-public gnome-multi-writer
5032 (package
5033 (name "gnome-multi-writer")
5034 (version "3.35.90")
5035 (source
5036 (origin
5037 (method url-fetch)
5038 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5039 (version-major+minor version) "/"
5040 "gnome-multi-writer-" version ".tar.xz"))
5041 (sha256
5042 (base32
5043 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5044 (build-system meson-build-system)
5045 (arguments
5046 '(#:glib-or-gtk? #t
5047 #:phases
5048 (modify-phases %standard-phases
5049 (add-after 'unpack 'skip-post-install
5050 (lambda _
5051 (substitute* "meson.build"
5052 (("meson.add_install_script" &) (string-append "# " &)))
5053 #t)))))
5054 (native-inputs
5055 `(("glib:bin" ,glib "bin")
5056 ("pkg-config" ,pkg-config)))
5057 (inputs
5058 `(("gtk+" ,gtk+)
5059 ("glib" ,glib) ; for gio
5060 ("gusb" ,gusb)
5061 ("udisks" ,udisks)
5062 ("libgudev" ,libgudev)
5063 ("libcanberra" ,libcanberra)
5064 ("polkit" ,polkit)))
5065 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5066 (synopsis "Write to multiple USB devices at once")
5067 (description
5068 "MultiWriter can be used to write an ISO file to multiple USB devices at
5069 once.")
5070 (license license:gpl2+)))
5071
5072 (define-public gnome-sudoku
5073 (package
5074 (name "gnome-sudoku")
5075 (version "3.34.1")
5076 (source
5077 (origin
5078 (method url-fetch)
5079 (uri (string-append "mirror://gnome/sources/" name "/"
5080 (version-major+minor version) "/"
5081 name "-" version ".tar.xz"))
5082 (sha256
5083 (base32
5084 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
5085 (build-system meson-build-system)
5086 (arguments
5087 '(#:glib-or-gtk? #t
5088 #:phases
5089 (modify-phases %standard-phases
5090 (add-after 'unpack 'skip-gtk-update-icon-cache
5091 (lambda _
5092 (substitute* "build-aux/post_install.py"
5093 (("gtk-update-icon-cache") (which "true")))
5094 #t)))))
5095 (native-inputs
5096 `(("pkg-config" ,pkg-config)
5097 ("desktop-file-utils" ,desktop-file-utils)
5098 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5099 ("intltool" ,intltool)
5100 ("itstool" ,itstool)
5101 ("vala" ,vala)
5102 ("xmllint" ,libxml2)))
5103 (inputs
5104 `(("gtk+" ,gtk+)
5105 ("json-glib" ,json-glib)
5106 ("libgee" ,libgee)
5107 ("librsvg" ,librsvg)
5108 ("qqwing" ,qqwing)))
5109 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5110 (synopsis "Japanese logic game")
5111 (description
5112 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5113 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5114 possible while still providing features that make playing difficult Sudoku
5115 more fun.")
5116 (license license:gpl2+)))
5117
5118 (define-public gnome-terminal
5119 (package
5120 (name "gnome-terminal")
5121 (version "3.34.2")
5122 (source
5123 (origin
5124 (method url-fetch)
5125 (uri (string-append "mirror://gnome/sources/" name "/"
5126 (version-major+minor version) "/"
5127 name "-" version ".tar.xz"))
5128 (sha256
5129 (base32
5130 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
5131 (build-system glib-or-gtk-build-system)
5132 (arguments
5133 '(#:configure-flags
5134 (list "--disable-migration" "--disable-search-provider"
5135 "--without-nautilus-extension")
5136 #:phases
5137 (modify-phases %standard-phases
5138 (add-before 'configure 'patch-/bin/true
5139 (lambda _
5140 (substitute* "configure"
5141 (("/bin/true") (which "true"))))))))
5142 (native-inputs
5143 `(("pkg-config" ,pkg-config)
5144 ("desktop-file-utils" ,desktop-file-utils)
5145 ("intltool" ,intltool)
5146 ("itstool" ,itstool)
5147 ("xmllint" ,libxml2)))
5148 (propagated-inputs
5149 `(("dconf" ,dconf)))
5150 (inputs
5151 `(("gtk+" ,gtk+)
5152 ("vte" ,vte)
5153 ("gnutls" ,gnutls)
5154 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5155 ("util-linux" ,util-linux "lib")
5156 ("vala" ,vala)))
5157 (home-page "https://wiki.gnome.org/Apps/Terminal")
5158 (synopsis "Terminal emulator")
5159 (description
5160 "GNOME Terminal is a terminal emulator application for accessing a
5161 UNIX shell environment which can be used to run programs available on
5162 your system.
5163
5164 It supports several profiles, multiple tabs and implements several
5165 keyboard shortcuts.")
5166 (license license:gpl3+)))
5167
5168 (define-public colord
5169 (package
5170 (name "colord")
5171 (version "1.4.5")
5172 (source
5173 (origin
5174 (method url-fetch)
5175 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5176 "colord-" version ".tar.xz"))
5177 (sha256
5178 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5179 (build-system meson-build-system)
5180 (arguments
5181 '(;; FIXME: One test fails:
5182 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5183 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5184 ;; application/x-zerosize
5185 #:tests? #f
5186 #:glib-or-gtk? #t
5187 #:configure-flags (list "-Dlocalstatedir=/var"
5188 ;; No dep on systemd.
5189 "-Dsystemd=false"
5190 ;; Wants to install to global completion dir;
5191 ;; punt.
5192 "-Dbash_completion=false"
5193 "-Ddaemon_user=colord"
5194 "-Dsane=true"
5195 "-Dvapi=true"
5196 ;; Requires spotread.
5197 "-Dargyllcms_sensor=false"
5198 ;; TODO: Requires docbook2x.
5199 "-Dman=false")
5200 #:phases
5201 (modify-phases %standard-phases
5202 (add-before 'configure 'patch-build-system
5203 (lambda* (#:key outputs #:allow-other-keys)
5204 (substitute* "rules/meson.build"
5205 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5206 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
5207 #t))
5208 (add-before 'configure 'set-sqlite3-file-name
5209 (lambda* (#:key inputs #:allow-other-keys)
5210 ;; "colormgr dump" works by invoking the "sqlite3" command.
5211 ;; Record its absolute file name.
5212 (let ((sqlite (assoc-ref inputs "sqlite")))
5213 (substitute* "client/cd-util.c"
5214 (("\"sqlite3\"")
5215 (string-append "\"" sqlite "/bin/sqlite3\"")))
5216 #t))))))
5217 (native-inputs
5218 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5219 ("gettext" ,gettext-minimal)
5220 ("gobject-introspection" ,gobject-introspection)
5221 ("gtk-doc" ,gtk-doc)
5222 ("pkg-config" ,pkg-config)
5223 ("vala" ,vala)))
5224 (propagated-inputs
5225 ;; colord.pc refers to all these.
5226 `(("glib" ,glib)
5227 ("lcms" ,lcms)
5228 ("udev" ,eudev)))
5229 (inputs
5230 `(("dbus-glib" ,dbus-glib)
5231 ("gusb" ,gusb)
5232 ("libgudev" ,libgudev)
5233 ("libusb" ,libusb)
5234 ("polkit" ,polkit)
5235 ("python" ,python-wrapper)
5236 ("sqlite" ,sqlite)
5237 ("sane-backends" ,sane-backends)))
5238 (home-page "https://www.freedesktop.org/software/colord/")
5239 (synopsis "Color management service")
5240 (description "Colord is a system service that makes it easy to manage,
5241 install and generate color profiles to accurately color manage input and
5242 output devices.")
5243 (license license:gpl2+)))
5244
5245 (define-public geoclue
5246 (package
5247 (name "geoclue")
5248 (version "2.5.7")
5249 (source
5250 (origin
5251 (method url-fetch)
5252 (uri
5253 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5254 version "/geoclue-" version ".tar.bz2"))
5255 (sha256
5256 (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
5257 (patches (search-patches "geoclue-config.patch"))))
5258 (build-system meson-build-system)
5259 (arguments
5260 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
5261 (native-inputs
5262 `(("pkg-config" ,pkg-config)
5263 ("gobject-introspection" ,gobject-introspection)
5264 ("modem-manager" ,modem-manager)
5265 ("libnotify" ,libnotify)
5266 ("gtk-doc" ,gtk-doc)
5267 ("intltool" ,intltool)))
5268 (inputs
5269 `(("avahi" ,avahi)
5270 ("glib:bin" ,glib "bin")
5271 ("glib-networking" ,glib-networking)
5272 ("json-glib" ,json-glib)
5273 ("libsoup" ,libsoup)))
5274 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5275 (synopsis "Geolocation service")
5276 (description "Geoclue is a D-Bus service that provides location
5277 information. The primary goal of the Geoclue project is to make creating
5278 location-aware applications as simple as possible, while the secondary goal is
5279 to ensure that no application can access location information without explicit
5280 permission from user.")
5281 (license license:gpl2+)))
5282
5283 (define-public geocode-glib
5284 (package
5285 (name "geocode-glib")
5286 (version "3.26.2")
5287 (source (origin
5288 (method url-fetch)
5289 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5290 (version-major+minor version) "/"
5291 "geocode-glib-" version ".tar.xz"))
5292 (sha256
5293 (base32
5294 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5295 (build-system meson-build-system)
5296 (arguments
5297 `(#:phases
5298 (modify-phases %standard-phases
5299 ;; The tests require a bunch of locales.
5300 (add-before 'check 'set-locales
5301 (lambda* (#:key inputs #:allow-other-keys)
5302 (setenv "GUIX_LOCPATH"
5303 (string-append (assoc-ref inputs "glibc-locales")
5304 "/lib/locale"))
5305 #t)))))
5306 (native-inputs
5307 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5308 ("glibc-locales" ,glibc-locales) ; for tests
5309 ("gettext" ,gettext-minimal)
5310 ("gobject-introspection" ,gobject-introspection)
5311 ("gtk-doc" ,gtk-doc)
5312 ("pkg-config" ,pkg-config)
5313 ("json-glib" ,json-glib)))
5314 (propagated-inputs
5315 ;; geocode-glib-1.0.pc refers to GIO.
5316 `(("glib" ,glib)))
5317 (inputs
5318 `(("libsoup" ,libsoup)))
5319 (home-page "https://github.com/GNOME/geocode-glib/")
5320 (synopsis "Geocoding and reverse-geocoding library")
5321 (description
5322 "geocode-glib is a convenience library for geocoding (finding longitude,
5323 and latitude from an address) and reverse geocoding (finding an address from
5324 coordinates) using the Nominatim service. geocode-glib caches requests for
5325 faster results and to avoid unnecessary server load.")
5326 (license license:lgpl2.0+)))
5327
5328 (define-public upower
5329 (package
5330 (name "upower")
5331 (version "0.99.11")
5332 (source (origin
5333 (method url-fetch)
5334 (uri (string-append "https://upower.freedesktop.org/releases/"
5335 "upower-" version ".tar.xz"))
5336 (sha256
5337 (base32
5338 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5339 (patches (search-patches "upower-builddir.patch"))
5340 (modules '((guix build utils)))
5341 (snippet
5342 '(begin
5343 ;; Upstream commit
5344 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5345 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5346 ;; 'dbus-configuration-directory' in (gnu services dbus)
5347 ;; expects it in etc/. Thus, move it back to its previous
5348 ;; location.
5349 (substitute* "src/Makefile.in"
5350 (("^dbusconfdir =.*$")
5351 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5352 #t))))
5353 (build-system glib-or-gtk-build-system)
5354 (arguments
5355 '(#:phases
5356 (modify-phases %standard-phases
5357 (add-before 'check 'pre-check
5358 (lambda* (#:key inputs #:allow-other-keys)
5359 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5360 "/lib")))
5361 (setenv "LD_LIBRARY_PATH" umockdev))
5362 #t)))
5363 #:configure-flags (list "--localstatedir=/var"
5364 (string-append "--with-udevrulesdir="
5365 (assoc-ref %outputs "out")
5366 "/lib/udev/rules.d"))))
5367 (native-inputs
5368 `(("gobject-introspection" ,gobject-introspection)
5369 ("pkg-config" ,pkg-config)
5370 ("intltool" ,intltool)
5371 ("python" ,python)
5372
5373 ;; For tests.
5374 ("python-dbus" ,python-dbus)
5375 ("python-dbusmock" ,python-dbusmock)
5376 ("python-pygobject" ,python-pygobject)
5377 ("umockdev" ,umockdev)
5378
5379 ;; For man pages.
5380 ("libxslt" ,libxslt) ;for 'xsltproc'
5381 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5382 ("docbook-xsl" ,docbook-xsl)))
5383 (inputs
5384 `(("dbus-glib" ,dbus-glib)
5385 ("libgudev" ,libgudev)
5386 ("libusb" ,libusb)))
5387 (propagated-inputs
5388 ;; In Requires of upower-glib.pc.
5389 `(("glib" ,glib)))
5390 (home-page "https://upower.freedesktop.org/")
5391 (synopsis "System daemon for managing power devices")
5392 (description
5393 "UPower is an abstraction for enumerating power devices,
5394 listening to device events and querying history and statistics. Any
5395 application or service on the system can access the org.freedesktop.UPower
5396 service via the system message bus.")
5397 (license license:gpl2+)))
5398
5399 (define-public libgweather
5400 (package
5401 (name "libgweather")
5402 (version "3.34.0")
5403 (source (origin
5404 (method url-fetch)
5405 (uri (string-append "mirror://gnome/sources/" name "/"
5406 (version-major+minor version) "/"
5407 name "-" version ".tar.xz"))
5408 (sha256
5409 (base32
5410 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5411 (build-system meson-build-system)
5412 (arguments
5413 `(#:tests? #f ; one of two tests requires network access
5414 #:configure-flags
5415 `(,(string-append "-Dzoneinfo_dir="
5416 (assoc-ref %build-inputs "tzdata")
5417 "/share/zoneinfo"))))
5418 (native-inputs
5419 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5420 ("gobject-introspection" ,gobject-introspection)
5421 ("pkg-config" ,pkg-config)
5422 ("vala" ,vala)
5423 ("intltool" ,intltool)))
5424 (propagated-inputs
5425 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5426 ;; libsoup.
5427 `(("gtk+" ,gtk+)
5428 ("gdk-pixbuf" ,gdk-pixbuf)
5429 ("libxml2" ,libxml2)
5430 ("libsoup" ,libsoup)
5431 ("geocode-glib" ,geocode-glib)))
5432 (inputs
5433 `(("tzdata" ,tzdata)))
5434 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5435 (synopsis "Location, time zone, and weather library for GNOME")
5436 (description
5437 "libgweather is a library to access weather information from online
5438 services for numerous locations.")
5439 (license license:gpl2+)))
5440
5441 (define-public gnome-settings-daemon
5442 (package
5443 (name "gnome-settings-daemon")
5444 (version "3.34.1")
5445 (source
5446 (origin
5447 (method url-fetch)
5448 (uri (string-append "mirror://gnome/sources/" name "/"
5449 (version-major+minor version) "/"
5450 name "-" version ".tar.xz"))
5451 (sha256
5452 (base32
5453 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
5454 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5455 (build-system meson-build-system)
5456 (arguments
5457 `(#:glib-or-gtk? #t
5458 #:configure-flags
5459 (list (string-append "-Dudev_dir="
5460 (assoc-ref %outputs "out")
5461 "/lib/udev/rules.d/")
5462 "-Dsystemd=false"
5463 ;; Otherwise, the RUNPATH will lack the final path component.
5464 (string-append "-Dc_link_args=-Wl,-rpath="
5465 (assoc-ref %outputs "out")
5466 "/lib/gnome-settings-daemon-3.0"))
5467
5468 #:phases (modify-phases %standard-phases
5469 (add-before 'configure 'set-baobab-file-name
5470 (lambda* (#:key inputs #:allow-other-keys)
5471 ;; Hard-code the file name of Baobab instead of looking
5472 ;; it up in $PATH. This ensures users get the "Examine"
5473 ;; button in the low disk space notification of GDM even
5474 ;; if they don't have GNOME in their main profile.
5475 (let ((baobab (assoc-ref inputs "baobab")))
5476 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5477 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5478 (string-append "g_strdup (\"" baobab
5479 "/bin/baobab\")")))
5480 #t))))
5481
5482 ;; Color management test can't reach the colord system service.
5483 #:tests? #f))
5484 (native-inputs
5485 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5486 ("pkg-config" ,pkg-config)
5487 ("intltool" ,intltool)
5488 ("xsltproc" ,libxslt)
5489 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5490 ("docbook-xml" ,docbook-xml-4.2)
5491 ("docbook-xsl" ,docbook-xsl)))
5492 (inputs
5493 `(("alsa-lib" ,alsa-lib)
5494 ("baobab" ,baobab)
5495 ("colord" ,colord)
5496 ("libgudev" ,libgudev)
5497 ("upower" ,upower)
5498 ("polkit" ,polkit)
5499 ("pulseaudio" ,pulseaudio)
5500 ("libcanberra" ,libcanberra)
5501 ("libx11" ,libx11)
5502 ("libxtst" ,libxtst)
5503 ("lcms" ,lcms)
5504 ("libnotify" ,libnotify)
5505 ("geoclue" ,geoclue)
5506 ("geocode-glib" ,geocode-glib)
5507 ("libgweather" ,libgweather)
5508 ("gnome-desktop" ,gnome-desktop)
5509 ("nss" ,nss)
5510 ("cups" ,cups)
5511 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5512 ("libwacom" ,libwacom)
5513 ("librsvg" ,librsvg)
5514 ("xf86-input-wacom" ,xf86-input-wacom)
5515 ("wayland" ,wayland)
5516 ("network-manager" ,network-manager)
5517 ("gcr" ,gcr)
5518 ("modem-manager" ,modem-manager)))
5519 (home-page "https://www.gnome.org")
5520 (synopsis "GNOME settings daemon")
5521 (description
5522 "This package contains the daemon responsible for setting the various
5523 parameters of a GNOME session and the applications that run under it. It
5524 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5525 settings, themes, mouse settings, and startup of other daemons.")
5526 (license license:gpl2+)))
5527
5528 (define-public totem-pl-parser
5529 (package
5530 (name "totem-pl-parser")
5531 (version "3.26.5")
5532 (source (origin
5533 (method url-fetch)
5534 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5535 (version-major+minor version) "/"
5536 "totem-pl-parser-" version ".tar.xz"))
5537 (sha256
5538 (base32
5539 "132jihnf51zs98yjkc6jxyqib4f3dawpjm17g4bj4j78y93dww2k"))))
5540 (build-system meson-build-system)
5541 (arguments
5542 ;; FIXME: Tests require gvfs.
5543 `(#:tests? #f))
5544 (native-inputs
5545 `(("intltool" ,intltool)
5546 ("glib" ,glib "bin")
5547 ("gobject-introspection" ,gobject-introspection)
5548 ("pkg-config" ,pkg-config)))
5549 (propagated-inputs
5550 `(("glib" ,glib)
5551 ("gmime" ,gmime)
5552 ("libarchive" ,libarchive)
5553 ("libgcrypt" ,libgcrypt)
5554 ("libxml2" ,libxml2)))
5555 (inputs
5556 `(("libsoup" ,libsoup)))
5557 (home-page "https://projects.gnome.org/totem")
5558 (synopsis "Library to parse and save media playlists for GNOME")
5559 (description "Totem-pl-parser is a GObjects-based library to parse and save
5560 playlists in a variety of formats.")
5561 (license license:lgpl2.0+)))
5562
5563 (define-public aisleriot
5564 (package
5565 (name "aisleriot")
5566 (version "3.22.9")
5567 (source (origin
5568 (method url-fetch)
5569 (uri (string-append "mirror://gnome/sources/aisleriot/"
5570 (version-major+minor version) "/"
5571 "aisleriot-" version ".tar.xz"))
5572 (sha256
5573 (base32
5574 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5575 (build-system glib-or-gtk-build-system)
5576 (arguments
5577 '(#:configure-flags
5578 '("--with-platform=gtk-only"
5579 "--with-card-theme-formats=svg")))
5580 (native-inputs
5581 `(("desktop-file-utils" ,desktop-file-utils)
5582 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5583 ("intltool" ,intltool)
5584 ("itstool" ,itstool)
5585 ("pkg-config" ,pkg-config)
5586 ("xmllint" ,libxml2)))
5587 (inputs
5588 `(("gtk+" ,gtk+)
5589 ("guile" ,guile-2.2)
5590 ("libcanberra" ,libcanberra)
5591 ("librsvg" ,librsvg)))
5592 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5593 (synopsis "Solitaire card games")
5594 (description
5595 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5596 which are easy to play with the aid of a mouse.")
5597 (license license:gpl3+)))
5598
5599 (define-public amtk
5600 (package
5601 (name "amtk")
5602 (version "5.0.2")
5603 (source (origin
5604 (method url-fetch)
5605 (uri (string-append "mirror://gnome/sources/amtk/"
5606 (version-major+minor version) "/"
5607 "amtk-" version ".tar.xz"))
5608 (sha256
5609 (base32
5610 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5611 (build-system gnu-build-system)
5612 (arguments
5613 '(#:configure-flags '("--enable-gtk-doc")))
5614 (native-inputs
5615 `(("gobject-introspection" ,gobject-introspection)
5616 ("glib:bin" ,glib "bin") ; for glib-mkenums
5617 ("gtk-doc" ,gtk-doc)
5618 ("pkg-config" ,pkg-config)))
5619 (inputs
5620 `(("glib" ,glib)
5621 ("gtk+" ,gtk+)))
5622 (home-page "https://wiki.gnome.org/Projects/Amtk")
5623 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5624 (description
5625 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5626 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5627 both a traditional UI or a modern UI with a GtkHeaderBar.")
5628 (license license:lgpl2.1+)))
5629
5630 (define-public devhelp
5631 (package
5632 (name "devhelp")
5633 (version "3.34.0")
5634 (source (origin
5635 (method url-fetch)
5636 (uri (string-append "mirror://gnome/sources/" name "/"
5637 (version-major+minor version) "/"
5638 name "-" version ".tar.xz"))
5639 (sha256
5640 (base32
5641 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5642 (build-system meson-build-system)
5643 (arguments
5644 '(#:glib-or-gtk? #t
5645 #:phases
5646 (modify-phases %standard-phases
5647 (add-after 'unpack 'skip-gtk-update-icon-cache
5648 ;; Don't create 'icon-theme.cache'.
5649 (lambda _
5650 (substitute* "meson_post_install.py"
5651 (("gtk-update-icon-cache") "true"))
5652 #t)))))
5653 (native-inputs
5654 `(("intltool" ,intltool)
5655 ("itstool" ,itstool)
5656 ("gobject-introspection" ,gobject-introspection)
5657 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5658 ("pkg-config" ,pkg-config)))
5659 (inputs
5660 `(("amtk" ,amtk)
5661 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5662 ("webkitgtk" ,webkitgtk)))
5663 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5664 (synopsis "API documentation browser for GNOME")
5665 (description
5666 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5667 natively with GTK-Doc (the API reference system developed for GTK+ and used
5668 throughout GNOME for API documentation).")
5669 (license license:gpl2+)))
5670
5671 (define-public cogl
5672 (package
5673 (name "cogl")
5674 (version "1.22.8")
5675 (source
5676 (origin
5677 (method url-fetch)
5678 (uri (string-append "mirror://gnome/sources/cogl/"
5679 (version-major+minor version) "/"
5680 "cogl-" version ".tar.xz"))
5681 (sha256
5682 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5683 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5684 ;; cogl, corresponding changes may be appropriate in mutter as well.
5685 (build-system gnu-build-system)
5686 (native-inputs
5687 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5688 ("gobject-introspection" ,gobject-introspection)
5689 ("xorg-server" ,xorg-server-for-tests)
5690 ("pkg-config" ,pkg-config)))
5691 (propagated-inputs
5692 `(("glib" ,glib)
5693 ("gdk-pixbuf" ,gdk-pixbuf)
5694 ("libx11" ,libx11)
5695 ("libxext" ,libxext)
5696 ("libxfixes" ,libxfixes)
5697 ("libxdamage" ,libxdamage)
5698 ("libxcomposite" ,libxcomposite)
5699 ("libxrandr" ,libxrandr)))
5700 (inputs
5701 `(("mesa" ,mesa)
5702 ("cairo" ,cairo)
5703 ("pango" ,pango)
5704 ("gstreamer" ,gstreamer)
5705 ("gst-plugins-base" ,gst-plugins-base)
5706 ("wayland" ,wayland)))
5707 (arguments
5708 `(#:disallowed-references (,xorg-server-for-tests)
5709 #:configure-flags (list "--enable-cogl-gst"
5710 "--enable-wayland-egl-platform"
5711 "--enable-wayland-egl-server"
5712
5713 ;; Arrange to pass an absolute file name to
5714 ;; dlopen for libGL.so.
5715 (string-append "--with-gl-libname="
5716 (assoc-ref %build-inputs "mesa")
5717 "/lib/libGL.so"))
5718 #:phases
5719 (modify-phases %standard-phases
5720 (add-after 'unpack 'fix-build-with-mesa-20
5721 (lambda _
5722 ;; Work around a problem with Mesa 20 where some macros used by
5723 ;; Cogl went missing from eglext.h. This can likely be removed
5724 ;; for newer versions of Cogl or Mesa.
5725 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5726 (substitute* '("configure"
5727 "cogl/winsys/cogl-winsys-egl-kms.c")
5728 (("#include <EGL/eglext.h>" all)
5729 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5730 #t))
5731 (add-before 'check 'start-xorg-server
5732 (lambda* (#:key tests? inputs #:allow-other-keys)
5733 (if tests?
5734 (begin
5735 ;; The test suite requires a running X server.
5736 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5737 (assoc-ref inputs "xorg-server")))
5738 (setenv "DISPLAY" ":1")
5739 #t)
5740 (format #t "test suite not run~%"))
5741 #t)))))
5742 (home-page "https://www.cogl3d.org")
5743 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5744 (description
5745 "Cogl is a small library for using 3D graphics hardware to draw pretty
5746 pictures. The API departs from the flat state machine style of OpenGL and is
5747 designed to make it easy to write orthogonal components that can render
5748 without stepping on each others toes.")
5749 (license (list license:expat ; most of the code
5750 license:bsd-3 ; cogl/cogl-point-in-poly.c
5751 license:sgifreeb2.0 ; cogl-path/tesselator/
5752 license:asl2.0)))) ; examples/android/
5753
5754 (define-public clutter
5755 (package
5756 (name "clutter")
5757 (version "1.26.2")
5758 (source
5759 (origin
5760 (method url-fetch)
5761 (uri (string-append "mirror://gnome/sources/" name "/"
5762 (version-major+minor version) "/"
5763 name "-" version ".tar.xz"))
5764 (sha256
5765 (base32
5766 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5767 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5768 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5769 (build-system gnu-build-system)
5770 (outputs '("out"
5771 "doc")) ;9 MiB of gtk-doc HTML pages
5772 (native-inputs
5773 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5774 ("gobject-introspection" ,gobject-introspection)
5775 ("pkg-config" ,pkg-config)
5776 ("xsltproc" ,libxslt)))
5777 (propagated-inputs
5778 `(("cogl" ,cogl)
5779 ("cairo" ,cairo)
5780 ("atk" ,atk)
5781 ("gtk+" ,gtk+)
5782 ("json-glib" ,json-glib)
5783 ("glib" ,glib)
5784 ("libxcomposite" ,libxcomposite)
5785 ("libxdamage" ,libxdamage)
5786 ("libxext" ,libxext)
5787 ("xinput" ,xinput)))
5788 (inputs
5789 `(("libxkbcommon" ,libxkbcommon)
5790 ("udev" ,eudev)))
5791 (arguments
5792 `(#:configure-flags (list "--enable-x11-backend=yes"
5793
5794 ;; This produces share/doc/{clutter,cally}.
5795 (string-append "--with-html-dir="
5796 (assoc-ref %outputs "doc")
5797 "/share/doc"))
5798 ;; XXX FIXME: Get test suite working. It would probably fail in the
5799 ;; same way the cogl tests fail, since clutter is based on cogl.
5800 #:tests? #f))
5801 (home-page "http://www.clutter-project.org")
5802 (synopsis "OpenGL-based interactive canvas library")
5803 (description
5804 "Clutter is an OpenGL-based interactive canvas library, designed for
5805 creating fast, mainly 2D single window applications such as media box UIs,
5806 presentations, kiosk style applications and so on.")
5807 (license license:lgpl2.0+)))
5808
5809 (define-public clutter-gtk
5810 (package
5811 (name "clutter-gtk")
5812 (version "1.8.4")
5813 (source
5814 (origin
5815 (method url-fetch)
5816 (uri (string-append "mirror://gnome/sources/" name "/"
5817 (version-major+minor version) "/"
5818 name "-" version ".tar.xz"))
5819 (sha256
5820 (base32
5821 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5822 (build-system gnu-build-system)
5823 (native-inputs
5824 `(("pkg-config" ,pkg-config)
5825 ("gobject-introspection" ,gobject-introspection)))
5826 (propagated-inputs
5827 ;; clutter-gtk.pc refers to all these.
5828 `(("clutter" ,clutter)
5829 ("gtk+" ,gtk+)))
5830 (home-page "http://www.clutter-project.org")
5831 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5832 (description
5833 "Clutter is an OpenGL-based interactive canvas library, designed for
5834 creating fast, mainly 2D single window applications such as media box UIs,
5835 presentations, kiosk style applications and so on.")
5836 (license license:lgpl2.0+)))
5837
5838 (define-public clutter-gst
5839 (package
5840 (name "clutter-gst")
5841 (version "3.0.27")
5842 (source
5843 (origin
5844 (method url-fetch)
5845 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5846 (version-major+minor version) "/"
5847 "clutter-gst-" version ".tar.xz"))
5848 (sha256
5849 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5850 (build-system gnu-build-system)
5851 (native-inputs
5852 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5853 ("pkg-config" ,pkg-config)
5854 ("gobject-introspection" ,gobject-introspection)))
5855 (inputs
5856 `(("clutter" ,clutter)
5857 ("gstreamer" ,gstreamer)
5858 ("gst-plugins-base" ,gst-plugins-base)))
5859 (home-page "http://www.clutter-project.org")
5860 (synopsis "Integration library for using GStreamer with Clutter")
5861 (description
5862 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5863 It provides a GStreamer sink to upload frames to GL and an actor that
5864 implements the ClutterGstPlayer interface using playbin. Clutter is an
5865 OpenGL-based interactive canvas library.")
5866 (license license:lgpl2.0+)))
5867
5868 (define-public libchamplain
5869 (package
5870 (name "libchamplain")
5871 (version "0.12.16")
5872 (source (origin
5873 (method url-fetch)
5874 (uri (string-append
5875 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5876 version ".tar.xz"))
5877 (sha256
5878 (base32
5879 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5880 (build-system gnu-build-system)
5881 (arguments '(#:configure-flags '("--enable-vala")))
5882 (native-inputs
5883 `(("gobject-introspection" ,gobject-introspection)
5884 ("pkg-config" ,pkg-config)
5885 ("vala" ,vala)))
5886 (propagated-inputs
5887 `(("libsoup" ,libsoup)
5888 ("sqlite" ,sqlite)
5889 ("clutter" ,clutter)
5890 ("clutter-gtk" ,clutter-gtk)
5891 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5892 ("cairo" ,cairo)
5893 ("gtk+3" ,gtk+)
5894 ("glib" ,glib)))
5895 (home-page "https://projects.gnome.org/libchamplain/")
5896 (synopsis "C library providing a ClutterActor to display maps")
5897 (description
5898 "libchamplain is a C library providing a ClutterActor to display maps.
5899 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5900 and Perl bindings are also available. It supports numerous free map sources
5901 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5902 (license license:lgpl2.1+)))
5903
5904 (define-public gom
5905 (package
5906 (name "gom")
5907 (version "0.3.2")
5908 (source
5909 (origin
5910 (method url-fetch)
5911 (uri (string-append "mirror://gnome/sources/gom/"
5912 (version-major+minor version) "/"
5913 "gom-" version ".tar.xz"))
5914 (sha256
5915 (base32
5916 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5917 (build-system gnu-build-system)
5918 (native-inputs
5919 `(("intltool" ,intltool)
5920 ("pkg-config" ,pkg-config)
5921 ("gobject-introspection" ,gobject-introspection)))
5922 (inputs
5923 `(("glib" ,glib)
5924 ("gdk-pixbuf" ,gdk-pixbuf)
5925 ("sqlite" ,sqlite)))
5926 ;; XXX TODO: Figure out how to run the test suite.
5927 (arguments `(#:tests? #f))
5928 (home-page "https://wiki.gnome.org/Projects/Gom")
5929 (synopsis "Object mapper from GObjects to SQLite")
5930 (description
5931 "Gom provides an object mapper from GObjects to SQLite. It helps you
5932 write applications that need to store structured data as well as make complex
5933 queries upon that data.")
5934 (license license:lgpl2.1+)))
5935
5936 (define-public libgnome-games-support
5937 (package
5938 (name "libgnome-games-support")
5939 (version "1.4.4")
5940 (source (origin
5941 (method url-fetch)
5942 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5943 (version-major+minor version) "/"
5944 "libgnome-games-support-" version ".tar.xz"))
5945 (sha256
5946 (base32
5947 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5948 (build-system gnu-build-system)
5949 (arguments
5950 '(#:phases
5951 (modify-phases %standard-phases
5952 (add-before 'check 'pre-check
5953 (lambda _
5954 ;; Tests require a writable HOME.
5955 (setenv "HOME" (getcwd))
5956 #t)))))
5957 (native-inputs
5958 `(("intltool" ,intltool)
5959 ("pkg-config" ,pkg-config)
5960 ("vala" ,vala)))
5961 (propagated-inputs
5962 ;; Required by libgnome-games-support-1.0.pc
5963 `(("gtk+" ,gtk+)
5964 ("libgee" ,libgee)))
5965 (home-page "https://www.gnome.org/")
5966 (synopsis "Useful functionality shared among GNOME games")
5967 (description
5968 "libgnome-games-support is a small library intended for internal use by
5969 GNOME Games, but it may be used by others.")
5970 (license license:lgpl3+)))
5971
5972 (define-public gnome-klotski
5973 (package
5974 (name "gnome-klotski")
5975 (version "3.34.0")
5976 (source (origin
5977 (method url-fetch)
5978 (uri (string-append "mirror://gnome/sources/" name "/"
5979 (version-major+minor version) "/"
5980 name "-" version ".tar.xz"))
5981 (sha256
5982 (base32
5983 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
5984 (build-system meson-build-system)
5985 (arguments
5986 '(#:glib-or-gtk? #t
5987 #:phases
5988 (modify-phases %standard-phases
5989 (add-after 'unpack 'skip-gtk-update-icon-cache
5990 ;; Don't create 'icon-theme.cache'.
5991 (lambda _
5992 (substitute* "build-aux/meson_post_install.py"
5993 (("gtk-update-icon-cache") (which "true")))
5994 #t)))))
5995 (native-inputs
5996 `(("desktop-file-utils" ,desktop-file-utils)
5997 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5998 ("intltool" ,intltool)
5999 ("itstool" ,itstool)
6000 ("pkg-config" ,pkg-config)
6001 ("vala" ,vala)
6002 ("xmllint" ,libxml2)))
6003 (inputs
6004 `(("gtk+" ,gtk+)
6005 ("libgnome-games-support" ,libgnome-games-support)
6006 ("librsvg" ,librsvg)))
6007 (home-page "https://wiki.gnome.org/Apps/Klotski")
6008 (synopsis "Sliding block puzzles")
6009 (description
6010 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6011 the patterned block to the area bordered by green markers. To do so, you will
6012 need to slide other blocks out of the way. Complete each puzzle in as few moves
6013 as possible!")
6014 (license license:gpl2+)))
6015
6016 (define-public grilo
6017 (package
6018 (name "grilo")
6019 (version "0.3.12")
6020 (source
6021 (origin
6022 (method url-fetch)
6023 (uri (string-append "mirror://gnome/sources/grilo/"
6024 (version-major+minor version) "/"
6025 "grilo-" version ".tar.xz"))
6026 (sha256
6027 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
6028 (build-system meson-build-system)
6029 (native-inputs
6030 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
6031 ("intltool" ,intltool)
6032 ("pkg-config" ,pkg-config)
6033 ("gobject-introspection" ,gobject-introspection)
6034 ("gtk-doc" ,gtk-doc)
6035 ("vala" ,vala)))
6036 (inputs
6037 `(("cyrus-sasl" ,cyrus-sasl)
6038 ("glib" ,glib)
6039 ("gtk+" ,gtk+)
6040 ("libxml2" ,libxml2)
6041 ("liboauth" ,liboauth)
6042 ("libsoup" ,libsoup)
6043 ("totem-pl-parser" ,totem-pl-parser)))
6044 (native-search-paths
6045 (list (search-path-specification
6046 (variable "GRL_PLUGIN_PATH")
6047 (files (list (string-append "lib/grilo-"
6048 (version-major+minor version)))))))
6049 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6050 (synopsis "Framework for discovering and browsing media")
6051 (description
6052 "Grilo is a framework focused on making media discovery and browsing easy
6053 for application developers.")
6054 (license license:lgpl2.1+)))
6055
6056 (define-public grilo-plugins
6057 (package
6058 (name "grilo-plugins")
6059 (version "0.3.11")
6060 (source
6061 (origin
6062 (method url-fetch)
6063 (uri (string-append "mirror://gnome/sources/" name "/"
6064 (version-major+minor version) "/"
6065 name "-" version ".tar.xz"))
6066 (sha256
6067 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
6068 (build-system meson-build-system)
6069 (native-inputs
6070 `(("gettext" ,gettext-minimal)
6071 ("glib:bin" ,glib "bin")
6072 ("gtk+:bin" ,gtk+ "bin")
6073 ("itstool" ,itstool)
6074 ("pkg-config" ,pkg-config)))
6075 ;; TODO: ahavi, gstreamer
6076 (inputs
6077 `(("grilo" ,grilo)
6078 ;("gmime" ,gmime) ; unused
6079 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6080 ("gom" ,gom)
6081 ;("gssdp" ,gssdp) ; unused
6082 ;("gupnp" ,gupnp) ; unused
6083 ;("gupnp-av" ,gupnp-av) ; unused
6084 ("json-glib" ,json-glib)
6085 ("avahi" ,avahi)
6086 ("libgdata" ,libgdata)
6087 ("libmediaart" ,libmediaart)
6088 ;("librest" ,rest) ; unused
6089 ("libsoup" ,libsoup)
6090 ("totam-pl-parser" ,totem-pl-parser)
6091 ("tracker" ,tracker))) ; unused because it's too old
6092 (arguments
6093 `(#:glib-or-gtk? #t
6094 ;;Disable lua-factory as it needs missing dependencies
6095 #:configure-flags '("-Denable-lua-factory=no")))
6096 (home-page "https://live.gnome.org/Grilo")
6097 (synopsis "Plugins for the Grilo media discovery library")
6098 (description
6099 "Grilo is a framework focused on making media discovery and browsing easy
6100 for application developers. This package provides plugins for common media
6101 discovery protocols.")
6102 (license license:lgpl2.1+)))
6103
6104 (define-public totem
6105 (package
6106 (name "totem")
6107 (version "3.38.0")
6108 (source
6109 (origin
6110 (method url-fetch)
6111 (uri (string-append "mirror://gnome/sources/totem/"
6112 (version-major+minor version) "/"
6113 "totem-" version ".tar.xz"))
6114 (sha256
6115 (base32
6116 "0bs33ijvxbr2prb9yj4dxglsszslsn9k258n311sld84masz4ad8"))))
6117 (build-system meson-build-system)
6118 (native-inputs
6119 `(("pkg-config" ,pkg-config)
6120 ("desktop-file-utils" ,desktop-file-utils)
6121 ("gettext" ,gettext-minimal)
6122 ("gobject-introspection" ,gobject-introspection)
6123 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
6124 ("itstool" ,itstool)
6125 ("xmllint" ,libxml2)
6126 ("xorg-server" ,xorg-server-for-tests)))
6127 (propagated-inputs
6128 `(("dconf" ,dconf)))
6129 (inputs
6130 `(("gtk+" ,gtk+)
6131 ("gdk-pixbuf" ,gdk-pixbuf)
6132 ("atk" ,atk)
6133 ("cairo" ,cairo)
6134 ("dbus-glib" ,dbus-glib)
6135 ("clutter" ,clutter)
6136 ("clutter-gtk" ,clutter-gtk)
6137 ("clutter-gst" ,clutter-gst)
6138 ("xorgproto" ,xorgproto)
6139 ("libxxf86vm" ,libxxf86vm)
6140 ("libxtst" ,libxtst)
6141 ("libxrandr" ,libxrandr)
6142 ("libxml2" ,libxml2)
6143 ("libsoup" ,libsoup)
6144 ("libpeas" ,libpeas)
6145 ("librsvg" ,librsvg)
6146 ("lirc" ,lirc)
6147 ("gnome-desktop" ,gnome-desktop)
6148 ("gstreamer" ,gstreamer)
6149 ("gst-plugins-base" ,gst-plugins-base)
6150 ("gst-plugins-good" ,gst-plugins-good)
6151 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6152 ("adwaita-icon-theme" ,adwaita-icon-theme)
6153 ("python" ,python)
6154 ("python-pygobject" ,python-pygobject)
6155 ("totem-pl-parser" ,totem-pl-parser)
6156 ("grilo" ,grilo)
6157 ("grilo-plugins" ,grilo-plugins)
6158 ("vala" ,vala)))
6159 (arguments
6160 `(#:glib-or-gtk? #t
6161
6162 ;; Disable automatic GStreamer plugin installation via PackageKit and
6163 ;; all that.
6164 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6165
6166 ;; Do not build .a files for the plugins, it's
6167 ;; completely useless. This saves 2 MiB.
6168 "--default-library" "shared")
6169 #:phases
6170 (modify-phases %standard-phases
6171 (add-after 'unpack 'skip-gtk-update-icon-cache
6172 ;; Don't create 'icon-theme.cache'.
6173 (lambda _
6174 (substitute* "meson_post_install.py"
6175 (("gtk-update-icon-cache") "true"))
6176 #t))
6177 (add-after 'unpack 'patch-failing-test
6178 (lambda _
6179 ;; Work around test failure with GStreamer 1.18, because the test
6180 ;; relies on "und" not being mapped to a particular language:
6181 ;; https://gitlab.gnome.org/GNOME/totem/-/issues/450
6182 (substitute* "src/test-totem.c"
6183 (("und") "nosuchlang"))
6184 #t))
6185 (add-before
6186 'install 'disable-cache-generation
6187 (lambda _
6188 (setenv "DESTDIR" "/")
6189 #t))
6190 (add-before
6191 'check 'pre-check
6192 (lambda _
6193 ;; Tests require a running X server.
6194 (system "Xvfb :1 &")
6195 (setenv "DISPLAY" ":1")
6196 #t))
6197 (add-after
6198 'install 'wrap-totem
6199 (lambda* (#:key inputs outputs #:allow-other-keys)
6200 (let ((out (assoc-ref outputs "out"))
6201 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6202 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6203 (wrap-program (string-append out "/bin/totem")
6204 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6205 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6206 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6207 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
6208 #t)))))
6209 (home-page "https://wiki.gnome.org/Apps/Videos")
6210 (synopsis "Simple media player for GNOME based on GStreamer")
6211 (description "Totem is a simple yet featureful media player for GNOME
6212 which can read a large number of file formats.")
6213 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6214 ;; to be used and distributed together with GStreamer and Totem. See
6215 ;; file://COPYING in the source distribution for details.
6216 (license license:gpl2+)))
6217
6218 (define-public rhythmbox
6219 (package
6220 (name "rhythmbox")
6221 (version "3.4.4")
6222 (source (origin
6223 (method url-fetch)
6224 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6225 (version-major+minor version) "/"
6226 "rhythmbox-" version ".tar.xz"))
6227 (sha256
6228 (base32
6229 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6230 (build-system glib-or-gtk-build-system)
6231 (arguments
6232 `(#:configure-flags
6233 (list "--enable-lirc"
6234 "--enable-python"
6235 "--enable-vala"
6236 "--with-brasero"
6237 "--with-gudev"
6238 "--with-libsecret")
6239 #:phases
6240 (modify-phases %standard-phases
6241 (add-after
6242 'install 'wrap-rhythmbox
6243 (lambda* (#:key inputs outputs #:allow-other-keys)
6244 (let ((out (assoc-ref outputs "out"))
6245 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6246 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6247 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6248 (python-path (getenv "PYTHONPATH")))
6249 (wrap-program (string-append out "/bin/rhythmbox")
6250 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6251 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6252 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6253 `("PYTHONPATH" ":" prefix (,python-path))))
6254 #t)))))
6255 (propagated-inputs
6256 `(("dconf" ,dconf)))
6257 (native-inputs
6258 `(("itstool" ,itstool)
6259 ("intltool" ,intltool)
6260 ("glib" ,glib "bin")
6261 ("gobject-introspection" ,gobject-introspection)
6262 ("desktop-file-utils" ,desktop-file-utils)
6263 ("pkg-config" ,pkg-config)
6264 ("xmllint" ,libxml2)))
6265 (inputs
6266 `(("json-glib" ,json-glib)
6267 ("tdb" ,tdb)
6268 ("gnome-desktop" ,gnome-desktop)
6269 ("python" ,python)
6270 ("python-pygobject" ,python2-pygobject)
6271 ("vala" ,vala)
6272 ("gmime" ,gmime)
6273 ("adwaita-icon-theme" ,adwaita-icon-theme)
6274 ("grilo" ,grilo)
6275 ("grilo-plugins" ,grilo-plugins)
6276 ("gstreamer" ,gstreamer)
6277 ("gst-plugins-base" ,gst-plugins-base)
6278 ("gst-plugins-good" ,gst-plugins-good)
6279 ("totem-pl-parser" ,totem-pl-parser)
6280 ("libgudev" ,libgudev)
6281 ;;("libmtp" ,libmtp) FIXME: Not detected
6282 ("libsecret" ,libsecret)
6283 ("libsoup" ,libsoup)
6284 ("libnotify" ,libnotify)
6285 ("libpeas" ,libpeas)
6286 ("lirc" ,lirc)
6287 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6288 ;;("clutter" ,clutter)
6289 ;;("clutter-gtk" ,clutter-gtk)
6290 ;;("clutter-gst" ,clutter-gst)
6291 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6292 ("atk" ,atk)
6293 ("pango" ,pango)
6294 ("gtk+" ,gtk+)
6295 ;; TODO:
6296 ;; * libgpod
6297 ;; * mx
6298 ("brasero" ,brasero)))
6299 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6300 (synopsis "Music player for GNOME")
6301 (description "Rhythmbox is a music playing application for GNOME. It
6302 supports playlists, song ratings, and any codecs installed through gstreamer.")
6303 (license license:gpl2+)))
6304
6305 (define-public eog
6306 (package
6307 (name "eog")
6308 (version "3.34.1")
6309 (source (origin
6310 (method url-fetch)
6311 (uri (string-append "mirror://gnome/sources/" name "/"
6312 (version-major+minor version) "/"
6313 name "-" version ".tar.xz"))
6314 (sha256
6315 (base32
6316 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
6317 (build-system meson-build-system)
6318 (arguments
6319 `(#:configure-flags
6320 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6321 (list (string-append "-Dc_link_args=-Wl,-rpath="
6322 (assoc-ref %outputs "out") "/lib/eog"))
6323 #:phases
6324 (modify-phases %standard-phases
6325 (add-after 'unpack 'skip-gtk-update-icon-cache
6326 ;; Don't create 'icon-theme.cache'.
6327 (lambda _
6328 (substitute* "meson_post_install.py"
6329 (("gtk-update-icon-cache") "true"))
6330 #t))
6331 (add-after 'install 'wrap-eog
6332 (lambda* (#:key outputs #:allow-other-keys)
6333 (let ((out (assoc-ref outputs "out"))
6334 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6335 (wrap-program (string-append out "/bin/eog")
6336 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6337 #t)))))
6338 (propagated-inputs
6339 `(("dconf" ,dconf)))
6340 (native-inputs
6341 `(("intltool" ,intltool)
6342 ("itstool" ,itstool)
6343 ("glib" ,glib "bin")
6344 ("gobject-introspection" ,gobject-introspection)
6345 ("pkg-config" ,pkg-config)
6346 ("xmllint" ,libxml2)))
6347 (inputs
6348 `(("gnome-desktop" ,gnome-desktop)
6349 ("shared-mime-info" ,shared-mime-info)
6350 ("adwaita-icon-theme" ,adwaita-icon-theme)
6351 ("exempi" ,exempi)
6352 ("lcms" ,lcms)
6353 ("libexif" ,libexif)
6354 ("libpeas" ,libpeas)
6355 ("libjpeg" ,libjpeg-turbo)
6356 ("librsvg" ,librsvg-next)
6357 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6358 ("gtk+" ,gtk+)))
6359 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6360 (synopsis "GNOME image viewer")
6361 (description "Eye of GNOME is the GNOME image viewer. It
6362 supports image conversion, rotation, and slideshows.")
6363 (license license:gpl2+)))
6364
6365 (define-public eog-plugins
6366 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6367 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6368 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6369 ;; 'XDG_DATA_DIRS' appropriately set.
6370 (package
6371 (name "eog-plugins")
6372 (version "3.26.4")
6373 (source (origin
6374 (method url-fetch)
6375 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6376 (version-major+minor version) "/"
6377 "eog-plugins-" version ".tar.xz"))
6378 (sha256
6379 (base32
6380 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6381 (build-system gnu-build-system)
6382 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6383 (synopsis "Extensions for the Eye of GNOME image viewer")
6384 (native-inputs
6385 `(("pkg-config" ,pkg-config)
6386 ("gettext" ,gettext-minimal)))
6387 (inputs
6388 `(("eog" ,eog)
6389 ("glib" ,glib)
6390 ("gtk+" ,gtk+)
6391 ("libpeas" ,libpeas)
6392 ("libexif" ,libexif)
6393 ("libchamplain" ,libchamplain)))
6394 (description
6395 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6396 notably:
6397
6398 @itemize
6399 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6400 @item @dfn{Map}, which displays a map of where the picture was taken on the
6401 side panel;
6402 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6403 @end itemize\n")
6404
6405 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6406 ;; long suspicious byte stream that goes to a
6407 ;; ".gresource.eog_postasa_plugin" ELF section.
6408 (license license:gpl2+)))
6409
6410 (define-public libgudev
6411 (package
6412 (name "libgudev")
6413 (version "232")
6414 (source (origin
6415 (method url-fetch)
6416 (uri (string-append "mirror://gnome/sources/" name "/"
6417 version "/" name "-" version ".tar.xz"))
6418 (sha256
6419 (base32
6420 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
6421 (build-system gnu-build-system)
6422 (arguments
6423 '(#:configure-flags
6424 ;; umockdev depends on libgudev.
6425 (list "--disable-umockdev")))
6426 (native-inputs
6427 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6428 ("gobject-introspection" ,gobject-introspection)
6429 ("pkg-config" ,pkg-config)))
6430 (propagated-inputs
6431 `(("glib" ,glib))) ; required by gudev-1.0.pc
6432 (inputs
6433 `(("udev" ,eudev)))
6434 (home-page "https://wiki.gnome.org/Projects/libgudev")
6435 (synopsis "GObject bindings for libudev")
6436 (description
6437 "This library provides GObject bindings for libudev. It was originally
6438 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6439 (license license:lgpl2.1+)))
6440
6441 (define-public gvfs
6442 (package
6443 (name "gvfs")
6444 (version "1.40.1")
6445 (source (origin
6446 (method url-fetch)
6447 (uri (string-append "mirror://gnome/sources/gvfs/"
6448 (version-major+minor version) "/"
6449 "gvfs-" version ".tar.xz"))
6450 (sha256
6451 (base32
6452 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
6453 ;; This patch may be removed when upgrading to version 1.46.x.
6454 (patches
6455 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6456 (build-system meson-build-system)
6457 (arguments
6458 '(#:glib-or-gtk? #t
6459 #:configure-flags
6460 (list "-Dsystemduserunitdir=no"
6461 "-Dtmpfilesdir=no"
6462 ;; Otherwise, the RUNPATH will lack the final path component.
6463 (string-append "-Dc_link_args=-Wl,-rpath="
6464 (assoc-ref %outputs "out") "/lib/gvfs"))))
6465 (native-inputs
6466 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6467 ("gettext" ,gettext-minimal)
6468 ("gtk-doc" ,gtk-doc)
6469 ("pkg-config" ,pkg-config)
6470 ("xsltproc" ,libxslt)))
6471 (inputs
6472 `(("avahi" ,avahi)
6473 ("docbook-xml" ,docbook-xml-4.2)
6474 ("docbook-xsl" ,docbook-xsl)
6475 ("dbus" ,dbus)
6476 ("elogind" ,elogind)
6477 ("fuse" ,fuse)
6478 ("gcr" ,gcr)
6479 ("glib" ,glib)
6480 ("gnome-online-accounts" ,gnome-online-accounts)
6481 ("libarchive" ,libarchive)
6482 ("libbluray" ,libbluray)
6483 ("libcap" ,libcap)
6484 ("libcdio-paranoia" ,libcdio-paranoia)
6485 ("libgcrypt" ,libgcrypt)
6486 ("libgdata" ,libgdata)
6487 ("libgphoto2" ,libgphoto2)
6488 ("libgudev" ,libgudev)
6489 ("libimobiledevice" ,libimobiledevice)
6490 ("libmtp" ,libmtp)
6491 ("libnfs" ,libnfs)
6492 ("libsecret" ,libsecret)
6493 ("libsmbclient" ,samba)
6494 ("libsoup" ,libsoup)
6495 ("libxml2" ,libxml2)
6496 ("openssh" ,openssh)
6497 ("polkit" ,polkit)
6498 ("udisks" ,udisks)))
6499 (home-page "https://wiki.gnome.org/gvfs/")
6500 (synopsis "Userspace virtual file system for GIO")
6501 (description
6502 "GVFS is a userspace virtual file system designed to work with the I/O
6503 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6504 to all applications using the GIO API. It also supports exposing the GVFS
6505 mounts to non-GIO applications using FUSE.
6506
6507 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6508 DAV, and others.")
6509 (license license:lgpl2.0+)))
6510
6511 (define-public gusb
6512 (package
6513 (name "gusb")
6514 (version "0.3.5")
6515 (source (origin
6516 (method git-fetch)
6517 (uri (git-reference
6518 (url "https://github.com/hughsie/libgusb")
6519 (commit version)))
6520 (file-name (git-file-name name version))
6521 (sha256
6522 (base32
6523 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6524 (build-system meson-build-system)
6525 (native-inputs
6526 `(("gobject-introspection" ,gobject-introspection)
6527 ("pkg-config" ,pkg-config)
6528 ("vala" ,vala)
6529 ("gtk-doc" ,gtk-doc)))
6530 (propagated-inputs
6531 ;; Both of these are required by gusb.pc.
6532 `(("glib" ,glib)
6533 ("libusb" ,libusb)))
6534 (arguments
6535 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6536 (home-page "https://github.com/hughsie/libgusb")
6537 (synopsis "GLib binding for libusb1")
6538 (description
6539 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6540 asynchronous control, bulk and interrupt transfers with proper cancellation
6541 and integration into a mainloop. This makes it easy to integrate low level
6542 USB transfers with your high-level application or system daemon.")
6543 (license license:lgpl2.1+)))
6544
6545 (define-public simple-scan
6546 (package
6547 (name "simple-scan")
6548 (version "3.38.2")
6549 (source
6550 (origin
6551 (method url-fetch)
6552 (uri (string-append "mirror://gnome/sources/simple-scan/"
6553 (version-major+minor version) "/"
6554 "simple-scan-" version ".tar.xz"))
6555 (sha256
6556 (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8"))))
6557 (build-system meson-build-system)
6558 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6559 (arguments
6560 '(#:glib-or-gtk? #t))
6561 (inputs
6562 `(("gtk" ,gtk+)
6563 ("zlib" ,zlib)
6564 ("cairo" ,cairo)
6565 ("colord" ,colord)
6566 ("gdk-pixbuf" ,gdk-pixbuf)
6567 ("gusb" ,gusb)
6568 ("libsane" ,sane-backends)))
6569 (native-inputs
6570 `(("gettext" ,gettext-minimal)
6571 ("itstool" ,itstool)
6572 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6573 ("pkg-config" ,pkg-config)
6574 ("vala" ,vala)
6575 ("xmllint" ,libxml2)))
6576 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6577 (synopsis "Document and image scanner")
6578 (description
6579 "Document Scanner is an easy-to-use application that lets you connect your
6580 scanner and quickly capture images and documents in an appropriate format. It
6581 supports any scanner for which a suitable SANE driver is available, which is
6582 almost all of them.")
6583 (license license:gpl3+)))
6584
6585 (define-public eolie
6586 (package
6587 (name "eolie")
6588 (version "0.9.101")
6589 (source (origin
6590 (method url-fetch)
6591 (uri (string-append "https://adishatz.org/eolie/eolie-"
6592 version ".tar.xz"))
6593 (sha256
6594 (base32
6595 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6596 (build-system meson-build-system)
6597 (arguments
6598 `(#:glib-or-gtk? #t
6599 #:phases
6600 (modify-phases %standard-phases
6601 (add-after 'unpack 'skip-gtk-update-icon-cache
6602 ;; Don't create 'icon-theme.cache'.
6603 (lambda _
6604 (substitute* "meson_post_install.py"
6605 (("gtk-update-icon-cache") "true"))
6606 #t))
6607 (add-after 'wrap 'wrap-more
6608 (lambda* (#:key inputs outputs #:allow-other-keys)
6609 (let* ((out (assoc-ref outputs "out"))
6610 ;; These libraries must be on LD_LIBRARY_PATH.
6611 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6612 "atk" "gtk+" "gsettings-desktop-schemas"
6613 "gobject-introspection"))
6614 (path (string-join
6615 (map (lambda (lib)
6616 (string-append (assoc-ref inputs lib) "/lib"))
6617 libs)
6618 ":")))
6619 (wrap-program (string-append out "/bin/eolie")
6620 `("LD_LIBRARY_PATH" ":" prefix (,path))
6621 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6622 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6623 #t)))))
6624 (native-inputs
6625 `(("intltool" ,intltool)
6626 ("itstool" ,itstool)
6627 ("pkg-config" ,pkg-config)
6628 ("python" ,python)
6629 ("glib:bin" ,glib "bin")))
6630 (inputs
6631 `(("gobject-introspection" ,gobject-introspection)
6632 ("glib-networking" ,glib-networking)
6633 ("cairo" ,cairo)
6634 ("gtk+" ,gtk+)
6635 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6636 ("python" ,python-wrapper)
6637 ("python-dateutil" ,python-dateutil)
6638 ("python-pyfxa" ,python-pyfxa)
6639 ("python-pygobject" ,python-pygobject)
6640 ("python-pycairo" ,python-pycairo)
6641 ("python-pycrypto" ,python-pycrypto)
6642 ("libsecret" ,libsecret)
6643 ("gtkspell3" ,gtkspell3)
6644 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6645 ("webkitgtk" ,webkitgtk)))
6646 (home-page "https://wiki.gnome.org/Apps/Eolie")
6647 (synopsis "Web browser for GNOME")
6648 (description
6649 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6650 a secret password store, an adblocker, and a modern UI.")
6651 (license license:gpl3+)))
6652
6653 (define-public epiphany
6654 (package
6655 (name "epiphany")
6656 (version "3.34.4")
6657 (source (origin
6658 (method url-fetch)
6659 (uri (string-append "mirror://gnome/sources/epiphany/"
6660 (version-major+minor version) "/"
6661 "epiphany-" version ".tar.xz"))
6662 (sha256
6663 (base32
6664 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6665
6666 (build-system meson-build-system)
6667 (arguments
6668 '(#:glib-or-gtk? #t
6669 #:phases
6670 (modify-phases %standard-phases
6671 (add-after 'unpack 'skip-gtk-update-icon-cache
6672 ;; Don't create 'icon-theme.cache'.
6673 (lambda _
6674 (substitute* "post_install.py"
6675 (("gtk-update-icon-cache") "true"))
6676 #t))
6677 (add-after 'unpack 'disable-failing-tests
6678 (lambda _
6679 (substitute* "tests/meson.build"
6680 ;; embed_shell fails, because webkitgtk apparently no longer supports
6681 ;; overriding the ftp schema
6682 ;; web_app_utils fails due to missing network access
6683 (("(embed_shell|web_app_utils)_test,")
6684 "find_program('sh'), args: ['-c', 'exit 77'],"))
6685 #t))
6686 (add-before 'check 'pre-check
6687 (lambda _
6688 ;; Tests require a running X server.
6689 (system "Xvfb :1 &")
6690 (setenv "DISPLAY" ":1")
6691 #t)))
6692 #:configure-flags
6693 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6694 (list (string-append "-Dc_link_args=-Wl,-rpath="
6695 (assoc-ref %outputs "out") "/lib/epiphany"))))
6696 (propagated-inputs
6697 `(("dconf" ,dconf)))
6698 (native-inputs
6699 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6700 ("glib:bin" ,glib "bin") ; for glib-mkenums
6701 ("intltool" ,intltool)
6702 ("itstool" ,itstool)
6703 ("pkg-config" ,pkg-config)
6704 ("xmllint" ,libxml2)
6705 ("xorg-server" ,xorg-server-for-tests)))
6706 (inputs
6707 `(("avahi" ,avahi)
6708 ("gcr" ,gcr)
6709 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6710 ("glib-networking" ,glib-networking)
6711 ("gnome-desktop" ,gnome-desktop)
6712 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6713 ("json-glib" ,json-glib)
6714 ("iso-codes" ,iso-codes)
6715 ("libdazzle" ,libdazzle)
6716 ("libnotify" ,libnotify)
6717 ("libsecret" ,libsecret)
6718 ("libxslt" ,libxslt)
6719 ("nettle" ,nettle) ; for hogweed
6720 ("sqlite" ,sqlite)
6721 ("webkitgtk" ,webkitgtk)))
6722 (home-page "https://wiki.gnome.org/Apps/Web")
6723 (synopsis "GNOME web browser")
6724 (description
6725 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6726 principles are simplicity and standards compliance.")
6727 (license license:gpl2+)))
6728
6729 (define-public d-feet
6730 (package
6731 (name "d-feet")
6732 (version "0.3.14")
6733 (source (origin
6734 (method url-fetch)
6735 (uri (string-append "mirror://gnome/sources/" name "/"
6736 (version-major+minor version) "/"
6737 name "-" version ".tar.xz"))
6738 (sha256
6739 (base32
6740 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6741 (build-system glib-or-gtk-build-system)
6742 (arguments
6743 '(#:out-of-source? #f ; tests need to run in the source directory.
6744 #:phases
6745 (modify-phases %standard-phases
6746 (add-before
6747 'check 'pre-check
6748 (lambda _
6749 ;; The test suite requires a running X server.
6750 (system "Xvfb :1 &")
6751 (setenv "DISPLAY" ":1")
6752 ;; Don't fail on missing '/etc/machine-id'.
6753 (setenv "DBUS_FATAL_WARNINGS" "0")
6754 ;; tests.py and window.py don't meet E402:
6755 ;; E402 module level import not at top of file
6756 (substitute* "src/tests/Makefile"
6757 (("--ignore=E123") "--ignore=E123,E402"))
6758 #t))
6759 (add-after
6760 'install 'wrap-program
6761 (lambda* (#:key outputs #:allow-other-keys)
6762 (let ((prog (string-append (assoc-ref outputs "out")
6763 "/bin/d-feet")))
6764 (wrap-program prog
6765 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6766 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6767 #t))))))
6768 (native-inputs
6769 `(("intltool" ,intltool)
6770 ("itstool" ,itstool)
6771 ("pkg-config" ,pkg-config)
6772 ("python-pep8" ,python-pep8)
6773 ("xmllint" ,libxml2)
6774 ("xorg-server" ,xorg-server-for-tests)))
6775 (inputs
6776 `(("gobject-introspection" ,gobject-introspection)
6777 ("gtk+" ,gtk+)
6778 ("python" ,python-wrapper)
6779 ("hicolor-icon-theme" ,hicolor-icon-theme)
6780 ("python-pygobject" ,python-pygobject)))
6781 (home-page "https://wiki.gnome.org/Apps/DFeet")
6782 (synopsis "D-Bus debugger")
6783 (description
6784 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6785 of running programs and invoke methods on those interfaces.")
6786 (license license:gpl2+)))
6787
6788 (define-public yelp-xsl
6789 (package
6790 (name "yelp-xsl")
6791 (version "3.34.2")
6792 (source
6793 (origin
6794 (method url-fetch)
6795 (uri
6796 (string-append "mirror://gnome/sources/" name "/"
6797 (version-major+minor version) "/"
6798 name "-" version ".tar.xz"))
6799 (sha256
6800 (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6801 (build-system gnu-build-system)
6802 (native-inputs
6803 `(("gettext-minimal" ,gettext-minimal)
6804 ("itstool" ,itstool)
6805 ("xmllint" ,libxml2)))
6806 (synopsis "XSL stylesheets for Yelp")
6807 (description "Yelp-XSL is a collection of programs and data files to help
6808 you build, maintain, and distribute documentation. It provides XSLT stylesheets
6809 that can be built upon for help viewers and publishing systems. These
6810 stylesheets output JavaScript and CSS content, and reference images
6811 provided by yelp-xsl. It also redistributes copies of the jQuery and
6812 jQuery.Syntax JavaScript libraries.")
6813 (home-page "https://wiki.gnome.org/Apps/Yelp")
6814 (license
6815 (list
6816 ;; XSLT
6817 license:gpl2+
6818 ;; Images
6819 license:lgpl2.1+
6820 ;; JavaScript
6821 license:expat))))
6822
6823 (define-public yelp
6824 (package
6825 (name "yelp")
6826 (version "3.32.2")
6827 (source (origin
6828 (method url-fetch)
6829 (uri (string-append "mirror://gnome/sources/" name "/"
6830 (version-major+minor version) "/"
6831 name "-" version ".tar.xz"))
6832 (sha256
6833 (base32
6834 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6835 (build-system glib-or-gtk-build-system)
6836 (native-inputs
6837 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6838 ("intltool" ,intltool)
6839 ("itstool" ,itstool)
6840 ("pkg-config" ,pkg-config)))
6841 (propagated-inputs
6842 `(("dconf" ,dconf)))
6843 (inputs
6844 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6845 ("libxslt" ,libxslt)
6846 ("sqlite" ,sqlite)
6847 ("webkitgtk" ,webkitgtk)
6848 ("yelp-xsl" ,yelp-xsl)))
6849 (home-page "https://wiki.gnome.org/Apps/Yelp")
6850 (synopsis "GNOME help browser")
6851 (description
6852 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6853 man, info, and HTML documents. It can locate documents according to the
6854 freedesktop.org help system specification.")
6855 (license license:gpl2+)))
6856
6857 (define-public yelp-tools
6858 (package
6859 (name "yelp-tools")
6860 (version "3.32.2")
6861 (source
6862 (origin
6863 (method url-fetch)
6864 (uri
6865 (string-append "mirror://gnome/sources/" name "/"
6866 (version-major+minor version) "/"
6867 name "-" version ".tar.xz"))
6868 (sha256
6869 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6870 (build-system gnu-build-system)
6871 (native-inputs
6872 `(("pkg-config" ,pkg-config)))
6873 (inputs
6874 `(("yelp-xsl" ,yelp-xsl)))
6875 (propagated-inputs
6876 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6877 `(("itstool" ,itstool)
6878 ("xmllint" ,libxml2)
6879 ("xsltproc" ,libxslt)))
6880 (synopsis "Yelp documentation tools")
6881 (description
6882 "Yelp-tools is a collection of scripts and build utilities to help create,
6883 manage, and publish documentation for Yelp and the web. Most of the heavy
6884 lifting is done by packages like yelp-xsl and itstool. This package just
6885 wraps things up in a developer-friendly way.")
6886 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6887 (license license:gpl2+)))
6888
6889 (define-public libgee
6890 (package
6891 (name "libgee")
6892 (version "0.20.3")
6893 (source (origin
6894 (method url-fetch)
6895 (uri (string-append "mirror://gnome/sources/libgee/"
6896 (version-major+minor version) "/"
6897 "libgee-" version ".tar.xz"))
6898 (sha256
6899 (base32
6900 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6901 (build-system gnu-build-system)
6902 (arguments
6903 `(#:phases
6904 (modify-phases %standard-phases
6905 (add-after 'unpack 'fix-introspection-install-dir
6906 (lambda* (#:key outputs #:allow-other-keys)
6907 (let ((out (assoc-ref outputs "out")))
6908 (substitute* "gee/Makefile.in"
6909 (("@INTROSPECTION_GIRDIR@")
6910 (string-append out "/share/gir-1.0/"))
6911 (("@INTROSPECTION_TYPELIBDIR@")
6912 (string-append out "/lib/girepository-1.0/")))))))))
6913 (native-inputs
6914 `(("glib" ,glib "bin")
6915 ("pkg-config" ,pkg-config)))
6916 (inputs
6917 `(("glib" ,glib)
6918 ("gobject-introspection" ,gobject-introspection)))
6919 (home-page "https://wiki.gnome.org/Projects/Libgee")
6920 (synopsis "GObject collection library")
6921 (description
6922 "Libgee is a utility library providing GObject-based interfaces and
6923 classes for commonly used data structures.")
6924 (license license:lgpl2.1+)))
6925
6926 (define-public gexiv2
6927 (package
6928 (name "gexiv2")
6929 (version "0.12.1")
6930 (source (origin
6931 (method url-fetch)
6932 (uri (string-append "mirror://gnome/sources/" name "/"
6933 (version-major+minor version) "/"
6934 name "-" version ".tar.xz"))
6935 (sha256
6936 (base32
6937 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
6938 (build-system meson-build-system)
6939 (native-inputs
6940 `(("gcr" ,gcr)
6941 ("glib" ,glib "bin")
6942 ("pkg-config" ,pkg-config)
6943 ("vala" ,vala)))
6944 (propagated-inputs
6945 ;; Listed in "Requires" section of gexiv2.pc
6946 `(("exiv2" ,exiv2)))
6947 (inputs
6948 `(("glib" ,glib)
6949 ("gobject-introspection" ,gobject-introspection)))
6950 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6951 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6952 (description
6953 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6954 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6955 metadata in photo and video files of various formats.")
6956 (license license:gpl2+)))
6957
6958 (define-public shotwell
6959 (package
6960 (name "shotwell")
6961 (version "0.30.11")
6962 (source (origin
6963 (method url-fetch)
6964 (uri (string-append "mirror://gnome/sources/shotwell/"
6965 (version-major+minor version) "/"
6966 "shotwell-" version ".tar.xz"))
6967 (sha256
6968 (base32
6969 "12d26y40kjlv5x8f5g04wff33vh7mdjb8c41ydqbrwdip0jwy2n2"))))
6970 (build-system meson-build-system)
6971 (arguments
6972 '(#:glib-or-gtk? #t
6973 #:phases
6974 (modify-phases %standard-phases
6975 (add-after 'unpack 'skip-gtk-update-icon-cache
6976 (lambda _
6977 (substitute* "build-aux/meson/postinstall.py"
6978 (("gtk-update-icon-cache") (which "true"))
6979 (("update-desktop-database") (which "true")))
6980 #t)))))
6981 (propagated-inputs
6982 `(("dconf" ,dconf)))
6983 (native-inputs
6984 `(("gettext" ,gettext-minimal)
6985 ("glib:bin" ,glib "bin")
6986 ("itstool" ,itstool)
6987 ("pkg-config" ,pkg-config)
6988 ("vala" ,vala)))
6989 (inputs
6990 `(("gcr" ,gcr)
6991 ("gexiv2" ,gexiv2)
6992 ("gst-plugins-base" ,gst-plugins-base)
6993 ("gstreamer" ,gstreamer)
6994 ("json-glib" ,json-glib)
6995 ("libgdata" ,libgdata)
6996 ("libgee" ,libgee)
6997 ("libgphoto2" ,libgphoto2)
6998 ("libgudev" ,libgudev)
6999 ("libraw" ,libraw)
7000 ("libsoup" ,libsoup)
7001 ("libxml2" ,libxml2)
7002 ("sqlite" ,sqlite)
7003 ("webkitgtk" ,webkitgtk)))
7004 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7005 (synopsis "Photo manager for GNOME 3")
7006 (description
7007 "Shotwell is a digital photo manager designed for the GNOME desktop
7008 environment. It allows you to import photos from disk or camera, organize
7009 them by keywords and events, view them in full-window or fullscreen mode, and
7010 share them with others via social networking and more.")
7011 (license license:lgpl2.1+)))
7012
7013 (define-public file-roller
7014 (package
7015 (name "file-roller")
7016 (version "3.38.0")
7017 (source (origin
7018 (method url-fetch)
7019 (uri (string-append "mirror://gnome/sources/file-roller/"
7020 (version-major+minor version) "/"
7021 "file-roller-" version ".tar.xz"))
7022 (sha256
7023 (base32
7024 "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj"))))
7025 (build-system meson-build-system)
7026 (native-inputs
7027 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7028 ("intltool" ,intltool)
7029 ("itstool" ,itstool)
7030 ("pkg-config" ,pkg-config)
7031 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7032 ("glib:bin" ,glib "bin")))
7033 ;; TODO: Add libnautilus.
7034 (inputs
7035 `(("gtk+" ,gtk+)
7036 ("gdk-pixbuf" ,gdk-pixbuf)
7037 ("json-glib" ,json-glib)
7038 ("libarchive" ,libarchive)
7039 ("libnotify" ,libnotify)
7040 ("nettle" ,nettle)
7041 ("libxml2" ,libxml2)))
7042 (synopsis "Graphical archive manager for GNOME")
7043 (description "File Roller is an archive manager for the GNOME desktop
7044 environment that allows users to view, unpack, and create compressed archives
7045 such as gzip tarballs.")
7046 (home-page "http://fileroller.sourceforge.net/")
7047 (license license:gpl2+)))
7048
7049 (define-public gnome-session
7050 (package
7051 (name "gnome-session")
7052 (version "3.34.2")
7053 (source (origin
7054 (method url-fetch)
7055 (uri (string-append "mirror://gnome/sources/" name "/"
7056 (version-major+minor version) "/"
7057 name "-" version ".tar.xz"))
7058 (sha256
7059 (base32
7060 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
7061 (arguments
7062 '(#:glib-or-gtk? #t
7063 #:phases
7064 (modify-phases %standard-phases
7065 (add-before 'configure 'pre-configure
7066 (lambda* (#:key outputs #:allow-other-keys)
7067 ;; Use elogind instead of systemd.
7068 (substitute* "meson.build"
7069 (("libsystemd-login") "libelogind")
7070 (("and libsystemd_daemon_dep.found.*") ","))
7071 (substitute* "gnome-session/gsm-systemd.c"
7072 (("#include <systemd/sd-login.h>")
7073 "#include <elogind/sd-login.h>"))
7074 ;; Remove uses of the systemd daemon.
7075 (substitute* "gnome-session/gsm-autostart-app.c"
7076 (("#ifdef HAVE_SYSTEMD") "#if 0"))
7077 #t))
7078 (add-after 'install 'wrap-gnome-session
7079 (lambda* (#:key inputs outputs #:allow-other-keys)
7080 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7081 (let ((glib (assoc-ref inputs "glib:bin"))
7082 (out (assoc-ref outputs "out")))
7083 (wrap-program (string-append out "/bin/gnome-session")
7084 `("PATH" ":" prefix (,(string-append glib "/bin"))))
7085 #t))))
7086
7087 #:configure-flags
7088 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7089 "-Dman=false" ; FIXME: disabled because of docbook validation error
7090 "-Dsystemd_journal=false")))
7091 (build-system meson-build-system)
7092 (native-inputs
7093 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7094 ("pkg-config" ,pkg-config)
7095 ("intltool" ,intltool)
7096 ("xsltproc" ,libxslt)
7097 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
7098 ("docbook-xsl" ,docbook-xsl)
7099 ("docbook-xml" ,docbook-xml)
7100 ("xmlto" ,xmlto)))
7101 (inputs
7102 `(("elogind" ,elogind)
7103 ("gnome-desktop" ,gnome-desktop)
7104 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7105 ("gtk+" ,gtk+)
7106 ("json-glib" ,json-glib)
7107 ("libsm" ,libsm)
7108 ("libxcomposite" ,libxcomposite)
7109 ("libxtst" ,libxtst)
7110 ("mesa" ,mesa)
7111 ("upower" ,upower)
7112 ("xtrans" ,xtrans)))
7113 (synopsis "Session manager for GNOME")
7114 (description
7115 "This package contains the GNOME session manager, as well as a
7116 configuration program to choose applications starting on login.")
7117 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7118 (license license:gpl2+)))
7119
7120 (define-public gjs
7121 (package
7122 (name "gjs")
7123 (version "1.58.3")
7124 (source (origin
7125 (method url-fetch)
7126 (uri (string-append "mirror://gnome/sources/" name "/"
7127 (version-major+minor version) "/"
7128 name "-" version ".tar.xz"))
7129 (sha256
7130 (base32
7131 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
7132 (build-system gnu-build-system)
7133 (arguments
7134 '(#:phases
7135 (modify-phases %standard-phases
7136 (add-before
7137 'check 'pre-check
7138 (lambda _
7139 ;; The test suite requires a running X server.
7140 (system "Xvfb :1 &")
7141 (setenv "DISPLAY" ":1")
7142
7143 ;; For the missing /etc/machine-id.
7144 (setenv "DBUS_FATAL_WARNINGS" "0")
7145
7146 ;; Our mozjs-38 package does not compile the required Intl API
7147 ;; support for these failing tests.
7148 (substitute* "installed-tests/js/testLocale.js"
7149 ((".*toBeDefined.*") "")
7150 ((".*expect\\(datestr\\).*") ""))
7151 (substitute* "installed-tests/scripts/testCommandLine.sh"
7152 (("Valentín") "")
7153 (("☭") ""))
7154 #t)))))
7155 (native-inputs
7156 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
7157 ("pkg-config" ,pkg-config)
7158 ("xmllint" ,libxml2)
7159 ;; For testing
7160 ("dbus-launch" ,dbus)
7161 ("dconf" ,dconf) ; required to properly store settings
7162 ("uuidgen" ,util-linux)
7163 ("xvfb" ,xorg-server-for-tests)))
7164 (propagated-inputs
7165 ;; These are all in the Requires.private field of gjs-1.0.pc.
7166 `(("cairo" ,cairo)
7167 ("gobject-introspection" ,gobject-introspection)
7168 ("mozjs" ,mozjs-60)))
7169 (inputs
7170 `(("gtk+" ,gtk+)
7171 ("readline" ,readline)))
7172 (synopsis "Javascript bindings for GNOME")
7173 (home-page "https://live.gnome.org/Gjs")
7174 (description
7175 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7176 javascript engine and the GObject introspection framework.")
7177 (license license:gpl2+)))
7178
7179 (define-public gedit
7180 (package
7181 (name "gedit")
7182 (version "3.34.1")
7183 (source (origin
7184 (method url-fetch)
7185 (uri (string-append "mirror://gnome/sources/" name "/"
7186 (version-major+minor version) "/"
7187 name "-" version ".tar.xz"))
7188 (sha256
7189 (base32
7190 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7191 (build-system meson-build-system)
7192 (arguments
7193 `(#:glib-or-gtk? #t
7194 #:configure-flags
7195 ;; Otherwise, the RUNPATH will lack the final path component.
7196 (list (string-append "-Dc_link_args=-Wl,-rpath="
7197 (assoc-ref %outputs "out") "/lib/gedit"))
7198
7199 ;; XXX: Generated .h files are sometimes used before being built.
7200 #:parallel-build? #f
7201
7202 #:phases
7203 (modify-phases %standard-phases
7204 (add-after 'unpack 'skip-gtk-update-icon-cache
7205 ;; Don't create 'icon-theme.cache'.
7206 (lambda _
7207 (substitute* "build-aux/meson/post_install.py"
7208 (("gtk-update-icon-cache") (which "true")))
7209 #t))
7210 (add-after 'unpack 'patch-libgd-fetch
7211 (lambda* (#:key inputs #:allow-other-keys)
7212 (let ((libgd (assoc-ref inputs "libgd")))
7213 ;; Calling git is unnecessary because libgd is fetched as a
7214 ;; native input to this package.
7215 (substitute* "meson.build"
7216 ((".*git.*") ""))
7217 (copy-recursively libgd "subprojects/libgd")
7218 #t)))
7219 (add-after 'install 'wrap-gedit
7220 (lambda* (#:key inputs outputs #:allow-other-keys)
7221 (let ((out (assoc-ref outputs "out"))
7222 (gtksourceview (assoc-ref inputs "gtksourceview"))
7223 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7224 (python-path (getenv "PYTHONPATH")))
7225 (wrap-program (string-append out "/bin/gedit")
7226 ;; For plugins.
7227 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7228 `("PYTHONPATH" ":" prefix (,python-path))
7229 ;; For language-specs.
7230 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7231 "/share")))))
7232 #t)))))
7233 (propagated-inputs
7234 `(("dconf" ,dconf)))
7235 (native-inputs
7236 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7237 ("intltool" ,intltool)
7238 ("itstool" ,itstool)
7239 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7240 ("gobject-introspection" ,gobject-introspection)
7241 ("libgd"
7242 ,(origin
7243 (method git-fetch)
7244 (uri (git-reference
7245 (url "https://gitlab.gnome.org/GNOME/libgd")
7246 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7247 (file-name (git-file-name "libgd" version))
7248 (sha256
7249 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7250 ("pkg-config" ,pkg-config)))
7251 (inputs
7252 `(("glib" ,glib)
7253 ("gspell" ,gspell)
7254 ("gtk+" ,gtk+)
7255 ("gtksourceview" ,gtksourceview)
7256 ("libpeas" ,libpeas)
7257 ("libxml2" ,libxml2)
7258 ("iso-codes" ,iso-codes)
7259 ("python-pygobject" ,python-pygobject)
7260 ("python" ,python)
7261 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7262 ("libx11" ,libx11)
7263 ("vala" ,vala)
7264 ("adwaita-icon-theme" ,adwaita-icon-theme)
7265 ("libsoup" ,libsoup)
7266 ("gnome-desktop" ,gnome-desktop)))
7267 (home-page "https://wiki.gnome.org/Apps/Gedit")
7268 (synopsis "GNOME text editor")
7269 (description "While aiming at simplicity and ease of use, gedit is a
7270 powerful general purpose text editor.")
7271 (license license:gpl2+)))
7272
7273 (define-public zenity
7274 (package
7275 (name "zenity")
7276 (version "3.32.0")
7277 (source (origin
7278 (method url-fetch)
7279 (uri (string-append "mirror://gnome/sources/zenity/"
7280 (version-major+minor version) "/"
7281 "zenity-" version ".tar.xz"))
7282 (sha256
7283 (base32
7284 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7285 (build-system gnu-build-system)
7286 (native-inputs
7287 `(("gettext" ,gettext-minimal)
7288 ("itstool" ,itstool)
7289 ("pkg-config" ,pkg-config)))
7290 (inputs
7291 `(("libnotify" ,libnotify)
7292 ("webkitgtk" ,webkitgtk)))
7293 (synopsis "Display graphical dialog boxes from shell scripts")
7294 (home-page "https://www.gnome.org")
7295 (description
7296 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7297 to display dialog boxes from the commandline and shell scripts.")
7298 (license license:lgpl2.0+)))
7299
7300 (define-public mutter
7301 (package
7302 (name "mutter")
7303 (version "3.34.2")
7304 (source (origin
7305 (method url-fetch)
7306 (uri (string-append "mirror://gnome/sources/" name "/"
7307 (version-major+minor version) "/"
7308 name "-" version ".tar.xz"))
7309 (sha256
7310 (base32
7311 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
7312 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7313 ;; versions of cogl and clutter. As a result, many of the inputs,
7314 ;; propagated-inputs, and configure flags used in cogl and clutter are
7315 ;; needed here as well.
7316 (build-system meson-build-system)
7317 (arguments
7318 '(;; XXX: All mutter tests fail with the following error:
7319 ;; Settings schema 'org.gnome.mutter' is not installed
7320 #:tests? #f
7321 #:glib-or-gtk? #t
7322 #:configure-flags
7323 ;; TODO: Enable profiler when Sysprof is packaged.
7324 (list "-Dprofiler=false"
7325 ;; Otherwise, the RUNPATH will lack the final path component.
7326 (string-append "-Dc_link_args=-Wl,-rpath="
7327 (assoc-ref %outputs "out") "/lib:"
7328 (assoc-ref %outputs "out") "/lib/mutter-5")
7329
7330 ;; The following flags are needed for the bundled clutter
7331 (string-append "-Dxwayland_path="
7332 (assoc-ref %build-inputs "xorg-server-xwayland")
7333 "/bin/Xwayland")
7334
7335 ;; the remaining flags are needed for the bundled cogl
7336 (string-append "-Dopengl_libname="
7337 (assoc-ref %build-inputs "mesa")
7338 "/lib/libGL.so"))
7339 #:phases (modify-phases %standard-phases
7340 (add-after 'unpack 'fix-build-with-mesa-20
7341 (lambda _
7342 ;; Mimic upstream commit a444a4c5f58ea516ad for
7343 ;; compatibility with Mesa 20. Remove for 3.36.
7344 (substitute* '("src/backends/meta-egl-ext.h"
7345 "src/backends/meta-egl.c"
7346 "src/backends/meta-egl.h")
7347 (("#include <EGL/eglext\\.h>" all)
7348 (string-append all "\n#include <EGL/eglmesaext.h>")))
7349 (substitute* "cogl/cogl/meson.build"
7350 (("#include <EGL/eglext\\.h>" all)
7351 (string-append all "\\n#include <EGL/eglmesaext.h>")))
7352 #t)))))
7353 (native-inputs
7354 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7355 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7356 ("gobject-introspection" ,gobject-introspection)
7357 ("intltool" ,intltool)
7358 ("pkg-config" ,pkg-config)
7359 ("xorg-server" ,xorg-server-for-tests)
7360 ;; For git build
7361 ("autoconf" ,autoconf)
7362 ("automake" ,automake)
7363 ("libtool" ,libtool)))
7364 (propagated-inputs
7365 `(;; libmutter.pc refers to these:
7366 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7367 ("gtk+" ,gtk+)
7368 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7369 ("atk" ,atk)
7370 ("cairo" ,cairo)
7371 ("gdk-pixbuf" ,gdk-pixbuf)
7372 ("glib" ,glib)
7373 ("json-glib" ,json-glib)
7374 ("libinput" ,libinput)
7375 ("libx11" ,libx11)
7376 ("libxcomposite" ,libxcomposite)
7377 ("libxdamage" ,libxdamage)
7378 ("libxext" ,libxext)
7379 ("libxfixes" ,libxfixes)
7380 ("libxkbcommon" ,libxkbcommon)
7381 ("libxrandr" ,libxrandr)
7382 ("mesa" ,mesa)
7383 ("pango" ,pango)
7384 ("udev" ,eudev)
7385 ("xinput" ,xinput)))
7386 (inputs
7387 `(("elogind" ,elogind)
7388 ("gnome-desktop" ,gnome-desktop)
7389 ("gnome-settings-daemon" ,gnome-settings-daemon)
7390 ("libcanberra-gtk" ,libcanberra)
7391 ("libgudev" ,libgudev)
7392 ("libice" ,libice)
7393 ("libsm" ,libsm)
7394 ("libwacom" ,libwacom)
7395 ("libxkbfile" ,libxkbfile)
7396 ("libxrandr" ,libxrandr)
7397 ("libxtst" ,libxtst)
7398 ("pipewire" ,pipewire)
7399 ("startup-notification" ,startup-notification)
7400 ("upower-glib" ,upower)
7401 ("xkeyboard-config" ,xkeyboard-config)
7402 ("xorg-server-xwayland" ,xorg-server-xwayland)
7403 ("zenity" ,zenity)))
7404 (synopsis "Window and compositing manager")
7405 (home-page "https://www.gnome.org")
7406 (description
7407 "Mutter is a window and compositing manager that displays and manages your
7408 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7409 Clutter toolkit with solid window-management logic inherited from the Metacity
7410 window manager.")
7411 (license license:gpl2+)))
7412
7413 (define-public gnome-online-accounts
7414 (package
7415 (name "gnome-online-accounts")
7416 (version "3.36.0")
7417 (source (origin
7418 (method url-fetch)
7419 (uri (string-append "mirror://gnome/sources/" name "/"
7420 (version-major+minor version) "/"
7421 name "-" version ".tar.xz"))
7422 (sha256
7423 (base32
7424 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7425 (outputs '("out" "lib"))
7426 (build-system glib-or-gtk-build-system)
7427 (arguments
7428 `(#:configure-flags
7429 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7430 #:phases
7431 (modify-phases %standard-phases
7432 (add-before 'configure 'patch-libgoa-output
7433 (lambda* (#:key outputs #:allow-other-keys)
7434 (let ((lib (assoc-ref outputs "lib")))
7435 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7436 (("@prefix@") lib)
7437 (("@exec_prefix@") lib)
7438 (("@libdir@") (string-append lib "/lib"))
7439 (("@includedir@") (string-append lib "/include"))
7440 (("@datadir@") (string-append lib "/share")))
7441 ;; Make sure gobject-introspection knows about the output
7442 ;; too (see <https://bugs.gnu.org/36535>).
7443 (setenv "outputs" "out lib")
7444 #t))))))
7445 (native-inputs
7446 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7447 ("gobject-introspection" ,gobject-introspection)
7448 ("intltool" ,intltool)
7449 ("pkg-config" ,pkg-config)
7450 ("vala" ,vala)
7451 ("xsltproc" ,libxslt)))
7452 (propagated-inputs
7453 `(("glib" ,glib) ; required by goa-1.0.pc
7454 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7455 (inputs
7456 `(("docbook-xsl" ,docbook-xsl)
7457 ("json-glib" ,json-glib)
7458 ("libsecret" ,libsecret)
7459 ("rest" ,rest)
7460 ("webkitgtk" ,webkitgtk)))
7461 (synopsis "Single sign-on framework for GNOME")
7462 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7463 (description
7464 "GNOME Online Accounts provides interfaces so that applications and
7465 libraries in GNOME can access the user's online accounts. It has providers for
7466 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7467 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7468 (license license:lgpl2.0+)))
7469
7470 (define-public evolution-data-server
7471 (package
7472 (name "evolution-data-server")
7473 (version "3.34.2")
7474 (source (origin
7475 (method url-fetch)
7476 (uri (string-append "mirror://gnome/sources/" name "/"
7477 (version-major+minor version) "/"
7478 name "-" version ".tar.xz"))
7479 (patches (search-patches "evolution-data-server-locales.patch"
7480 "evolution-data-server-libical-compat.patch"))
7481 (sha256
7482 (base32
7483 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7484 (build-system cmake-build-system)
7485 (arguments
7486 '(#:configure-flags
7487 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7488 (runpaths (map (lambda (s)
7489 (string-append lib "/evolution-data-server/" s))
7490 '("addressbook-backends" "calendar-backends"
7491 "camel-providers" "credential-modules"
7492 "registry-modules"))))
7493 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7494 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7495 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7496 "-DENABLE_VALA_BINDINGS=ON"
7497 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7498 (string-append lib "/evolution-data-server;")
7499 (string-join runpaths ";"))
7500 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7501 #:phases
7502 (modify-phases %standard-phases
7503 (add-after 'unpack 'disable-failing-tests
7504 (lambda _
7505 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7506 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7507 (delete-file-recursively "tests/book-migration")
7508 (substitute* "tests/CMakeLists.txt"
7509 (("add_subdirectory\\(book-migration\\)") ""))
7510 #t))
7511 (add-after 'unpack 'patch-paths
7512 (lambda _
7513 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7514 "tests/libedata-book/data-test-utils.c"
7515 "tests/libedata-book/test-book-cache-utils.c"
7516 "tests/libedata-cal/test-cal-cache-utils.c")
7517 (("/bin/rm") (which "rm")))
7518 #t))
7519 (add-before 'configure 'dont-override-rpath
7520 (lambda _
7521 (substitute* "CMakeLists.txt"
7522 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7523 ;; Remove it so the configure flag is respected.
7524 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7525 #t)))))
7526 (native-inputs
7527 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7528 ("gobject-introspection" ,gobject-introspection)
7529 ("gperf" ,gperf)
7530 ("intltool" ,intltool)
7531 ("pkg-config" ,pkg-config)
7532 ("vala" ,vala)
7533 ("python" ,python-wrapper)))
7534 (propagated-inputs
7535 ;; These are all in the Requires field of .pc files.
7536 `(("gtk+" ,gtk+)
7537 ("libical" ,libical)
7538 ("libsecret" ,libsecret)
7539 ("libsoup" ,libsoup)
7540 ("nss" ,nss)
7541 ("sqlite" ,sqlite)))
7542 (inputs
7543 `(("bdb" ,bdb)
7544 ("gcr" ,gcr)
7545 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7546 ("json-glib" ,json-glib)
7547 ("libcanberra" ,libcanberra)
7548 ("libgweather" ,libgweather)
7549 ("mit-krb5" ,mit-krb5)
7550 ("openldap" ,openldap)
7551 ("webkitgtk" ,webkitgtk)))
7552 (synopsis "Store address books and calendars")
7553 (home-page "https://wiki.gnome.org/Apps/Evolution")
7554 (description
7555 "This package provides a unified backend for programs that work with
7556 contacts, tasks, and calendar information. It was originally developed for
7557 Evolution (hence the name), but is now used by other packages as well.")
7558 (license license:lgpl2.0)))
7559
7560 (define-public caribou
7561 (package
7562 (name "caribou")
7563 (version "0.4.21")
7564 (source (origin
7565 (method url-fetch)
7566 (uri (string-append "mirror://gnome/sources/" name "/"
7567 (version-major+minor version) "/"
7568 name "-" version ".tar.xz"))
7569 (sha256
7570 (base32
7571 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7572 (build-system glib-or-gtk-build-system)
7573 (arguments
7574 '(#:phases
7575 (modify-phases %standard-phases
7576 (add-before
7577 'build 'pre-build
7578 (lambda* (#:key outputs #:allow-other-keys)
7579 (let ((out (assoc-ref outputs "out")))
7580 ;; Use absolute shared library path in Caribou-1.0.typelib.
7581 (substitute* "libcaribou/Makefile"
7582 (("--shared-library=libcaribou.so")
7583 (string-append "--shared-library="
7584 out "/lib/libcaribou.so")))
7585 #t)))
7586 (add-after 'install 'wrap-programs
7587 (lambda* (#:key outputs #:allow-other-keys)
7588 (let* ((out (assoc-ref outputs "out"))
7589 (python-path (getenv "PYTHONPATH"))
7590 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7591 (for-each
7592 (lambda (prog)
7593 (wrap-program prog
7594 `("PYTHONPATH" ":" prefix (,python-path))
7595 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7596 (list (string-append out "/bin/caribou-preferences")
7597 (string-append out "/libexec/antler-keyboard"))))
7598 #t)))))
7599 (native-inputs
7600 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7601 ("gobject-introspection" ,gobject-introspection)
7602 ("intltool" ,intltool)
7603 ("pkg-config" ,pkg-config)
7604 ("python" ,python)
7605 ("vala" ,vala)
7606 ("xsltproc" ,libxslt)))
7607 (propagated-inputs
7608 ;; caribou-1.0.pc refers to all these.
7609 `(("libgee" ,libgee)
7610 ("libxklavier" ,libxklavier)
7611 ("libxtst" ,libxtst)
7612 ("gtk+" ,gtk+)))
7613 (inputs
7614 `(("clutter" ,clutter)
7615 ("dconf" ,dconf)
7616 ("gtk+-2" ,gtk+-2)
7617 ("python-pygobject" ,python-pygobject)))
7618 (synopsis "Text entry and UI navigation application")
7619 (home-page "https://wiki.gnome.org/Projects/Caribou")
7620 (description
7621 "Caribou is an input assistive technology intended for switch and pointer
7622 users.")
7623 (license license:lgpl2.1)))
7624
7625 (define-public network-manager
7626 (package
7627 (name "network-manager")
7628 (version "1.24.0")
7629 (source (origin
7630 (method url-fetch)
7631 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7632 (version-major+minor version) "/"
7633 "NetworkManager-" version ".tar.xz"))
7634 (patches (search-patches "network-manager-plugin-path.patch"))
7635 (sha256
7636 (base32
7637 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7638 (modules '((guix build utils)))
7639 (snippet
7640 '(begin
7641 (substitute* "src/devices/wwan/nm-modem-manager.c"
7642 (("systemd") "elogind"))
7643 #t))))
7644 (build-system meson-build-system)
7645 (outputs '("out"
7646 "doc")) ; 8 MiB of gtk-doc HTML
7647 (arguments
7648 `(#:configure-flags
7649 (let ((out (assoc-ref %outputs "out"))
7650 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7651 "/sbin/dhclient")))
7652 (list
7653 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7654 ;; component.
7655 (string-append "-Dc_link_args=-Wl,-rpath="
7656 out "/lib:"
7657 out "/lib/NetworkManager/" ,version)
7658 "-Dsystemd_journal=false"
7659 "-Dsession_tracking=elogind"
7660 "-Dsuspend_resume=elogind"
7661 "-Dsystemdsystemunitdir=no"
7662 "-Dsession_tracking_consolekit=false"
7663 "-Ddhcpcd=no"
7664 "-Ddhcpcanon=no"
7665 "-Dcrypto=gnutls"
7666 "-Diwd=true"
7667 "-Dlibaudit=yes"
7668 "-Dqt=false"
7669 "-Ddocs=true"
7670 "--sysconfdir=/etc"
7671 "--localstatedir=/var"
7672 (string-append "-Dudev_dir="
7673 out "/lib/udev")
7674 (string-append "-Ddbus_conf_dir="
7675 out "/etc/dbus-1/system.d")
7676
7677 (string-append "-Ddhclient=" dhclient)))
7678 #:phases
7679 (modify-phases %standard-phases
7680 (add-before 'configure 'pre-configure
7681 (lambda _
7682 ;; These tests try to test aspects of network-manager's
7683 ;; functionality within restricted containers, but they don't
7684 ;; cope with being already in the Guix build jail as that jail
7685 ;; lacks some features that they would like to proxy over (like
7686 ;; a /sys mount).
7687 (substitute* "src/platform/tests/meson.build"
7688 ((".*test-address-linux.*") "")
7689 ((".*test-cleanup-linux.*") "")
7690 ((".*test-link-linux.*") "")
7691 ((".*test-route-linux.*") ""))
7692 (substitute* "src/devices/tests/meson.build"
7693 ((".*test-acd.*") "")
7694 ((".*test-lldp.*") ""))
7695 #t))
7696 (add-after 'unpack 'patch-docbook-xml
7697 (lambda* (#:key inputs #:allow-other-keys)
7698 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7699 "/xml/dtd/docbook")))
7700 (substitute* (find-files "." ".*\\.(xsl|xml)")
7701 (("http://.*/docbookx\\.dtd")
7702 (string-append xmldoc "/docbookx.dtd")))
7703 #t)))
7704 (add-before 'check 'pre-check
7705 (lambda _
7706 ;; For the missing /etc/machine-id.
7707 (setenv "DBUS_FATAL_WARNINGS" "0")
7708 #t))
7709 (add-before 'install 'no-polkit-magic
7710 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7711 (lambda _
7712 (setenv "PKEXEC_UID" "something")
7713 #t))
7714 (add-after 'install 'move-doc
7715 (lambda* (#:key outputs #:allow-other-keys)
7716 (let ((out (assoc-ref outputs "out"))
7717 (doc (assoc-ref outputs "doc")))
7718 (mkdir-p (string-append doc "/share"))
7719 (for-each (lambda (directory)
7720 (copy-recursively (string-append out directory)
7721 (string-append doc directory))
7722 (delete-file-recursively
7723 (string-append out directory)))
7724 '("/share/doc" "/share/gtk-doc"))
7725 #t))))))
7726 (propagated-inputs
7727 `(("glib" ,glib)))
7728 (native-inputs
7729 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7730 ("gtk-doc" ,gtk-doc)
7731 ("gobject-introspection" ,gobject-introspection)
7732 ("docbook-xml" ,docbook-xml)
7733 ("docbook-xsl" ,docbook-xsl)
7734 ("intltool" ,intltool)
7735 ("libxslt" ,libxslt)
7736 ("libxml2" ,libxml2)
7737 ("pkg-config" ,pkg-config)
7738 ("vala" ,vala)
7739 ;; For testing.
7740 ("python" ,python-wrapper)
7741 ("python-dbus" ,python-dbus)
7742 ("python-pygobject" ,python-pygobject)))
7743 (inputs
7744 `(("curl" ,curl)
7745 ("cyrus-sasl" ,cyrus-sasl)
7746 ("dbus-glib" ,dbus-glib)
7747 ("dnsmasq" ,dnsmasq)
7748 ("eudev" ,eudev)
7749 ("gnutls" ,gnutls)
7750 ("iptables" ,iptables)
7751 ("isc-dhcp" ,isc-dhcp)
7752 ("iwd" ,iwd) ; wpa_supplicant alternative
7753 ("jansson" ,jansson)
7754 ("libaudit" ,audit)
7755 ("libgcrypt" ,libgcrypt)
7756 ("libgudev" ,libgudev)
7757 ("libndp" ,libndp)
7758 ("libnl" ,libnl)
7759 ("libsoup" ,libsoup)
7760 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7761 ("modem-manager" ,modem-manager)
7762 ("newt" ,newt) ;for the 'nmtui' console interface
7763 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7764 ("polkit" ,polkit)
7765 ("ppp" ,ppp)
7766 ("readline" ,readline)
7767 ("util-linux" ,util-linux)
7768 ("elogind" ,elogind)))
7769 (synopsis "Network connection manager")
7770 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7771 (description
7772 "NetworkManager is a system network service that manages your network
7773 devices and connections, attempting to keep active network connectivity when
7774 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7775 devices, and provides VPN integration with a variety of different VPN
7776 services.")
7777 ;; “This NetworkManager project consists of the daemon, client tools, and
7778 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7779 ;; GPL-2.0+.”
7780 (license (list license:gpl2+
7781 license:lgpl2.1+))
7782 (properties '((upstream-name . "NetworkManager")))))
7783
7784 (define-public network-manager-openvpn
7785 (package
7786 (name "network-manager-openvpn")
7787 (version "1.8.12")
7788 (source (origin
7789 (method url-fetch)
7790 (uri (string-append
7791 "mirror://gnome/sources/NetworkManager-openvpn/"
7792 (version-major+minor version)
7793 "/NetworkManager-openvpn-" version ".tar.xz"))
7794 (sha256
7795 (base32
7796 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7797 (build-system gnu-build-system)
7798 (arguments
7799 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7800 #:phases
7801 (modify-phases %standard-phases
7802 (add-after 'configure 'patch-path
7803 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7804 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7805 "/sbin/openvpn"))
7806 (modprobe (string-append (assoc-ref inputs "kmod")
7807 "/bin/modprobe"))
7808 (pretty-ovpn (string-append "\"" ovpn "\"")))
7809 (for-each
7810 (lambda (file)
7811 (substitute* file
7812 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7813 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7814 (("\"/sbin/openvpn\"") pretty-ovpn)
7815 (("/sbin/modprobe") modprobe)))
7816 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7817 #t)))))
7818 (native-inputs
7819 `(("pkg-config" ,pkg-config)
7820 ("intltool" ,intltool)))
7821 (inputs
7822 `(("gtk+" ,gtk+)
7823 ("kmod" ,kmod)
7824 ("openvpn" ,openvpn)
7825 ("network-manager" ,network-manager)
7826 ("libnma" ,libnma)
7827 ("libsecret" ,libsecret)))
7828 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7829 (synopsis "OpenVPN plug-in for NetworkManager")
7830 (description
7831 "This extension of NetworkManager allows it to take care of connections
7832 to virtual private networks (VPNs) via OpenVPN.")
7833 (license license:gpl2+)
7834 (properties `((upstream-name . "NetworkManager-openvpn")))))
7835
7836 (define-public network-manager-vpnc
7837 (package
7838 (name "network-manager-vpnc")
7839 (version "1.2.6")
7840 (source (origin
7841 (method url-fetch)
7842 (uri (string-append
7843 "mirror://gnome/sources/NetworkManager-vpnc/"
7844 (version-major+minor version)
7845 "/NetworkManager-vpnc-" version ".tar.xz"))
7846 (sha256
7847 (base32
7848 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7849 (build-system gnu-build-system)
7850 (arguments
7851 `(#:configure-flags '("--enable-absolute-paths"
7852 "--localstatedir=/var"
7853 ;; libnm-glib has been removed from network-manager
7854 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7855 "--with-libnm-glib=no")
7856 #:phases
7857 (modify-phases %standard-phases
7858 (add-after 'configure 'patch-path
7859 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7860 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7861 "/sbin/vpnc"))
7862 (modprobe (string-append (assoc-ref inputs "kmod")
7863 "/bin/modprobe"))
7864 (pretty-ovpn (string-append "\"" vpnc "\"")))
7865 (substitute* "src/nm-vpnc-service.c"
7866 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7867 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7868 (("\"/sbin/vpnc\"") pretty-ovpn)
7869 (("/sbin/modprobe") modprobe)))
7870 #t)))))
7871 (native-inputs
7872 `(("pkg-config" ,pkg-config)
7873 ("intltool" ,intltool)))
7874 (inputs
7875 `(("gtk+" ,gtk+)
7876 ("kmod" ,kmod)
7877 ("vpnc" ,vpnc)
7878 ("network-manager" ,network-manager)
7879 ("libnma" ,libnma)
7880 ("libsecret" ,libsecret)))
7881 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7882 (synopsis "VPNC plug-in for NetworkManager")
7883 (description
7884 "Support for configuring virtual private networks based on VPNC.
7885 Compatible with Cisco VPN concentrators configured to use IPsec.")
7886 (license license:gpl2+)
7887 (properties `((upstream-name . "NetworkManager-vpnc")))))
7888
7889 (define-public network-manager-openconnect
7890 (package
7891 (name "network-manager-openconnect")
7892 (version "1.2.6")
7893 (source (origin
7894 (method url-fetch)
7895 (uri (string-append
7896 "mirror://gnome/sources/NetworkManager-openconnect/"
7897 (version-major+minor version)
7898 "/NetworkManager-openconnect-" version ".tar.xz"))
7899 (sha256
7900 (base32
7901 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7902 (build-system gnu-build-system)
7903 (arguments
7904 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7905 #:phases
7906 (modify-phases %standard-phases
7907 (add-after 'configure 'patch-path
7908 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7909 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7910 "/sbin/openconnect"))
7911 (modprobe (string-append (assoc-ref inputs "kmod")
7912 "/bin/modprobe"))
7913 (pretty-ovpn (string-append "\"" openconnect "\"")))
7914 (substitute* "src/nm-openconnect-service.c"
7915 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7916 (("/sbin/modprobe") modprobe)))
7917 #t)))))
7918 (native-inputs
7919 `(("intltool" ,intltool)
7920 ("libnma" ,libnma)
7921 ("pkg-config" ,pkg-config)))
7922 (inputs
7923 `(("gcr" ,gcr)
7924 ("gtk+" ,gtk+)
7925 ("kmod" ,kmod)
7926 ("libsecret" ,libsecret)
7927 ("libxml2" ,libxml2)
7928 ("lz4" ,lz4)
7929 ("network-manager" ,network-manager)
7930 ("openconnect" ,openconnect)))
7931 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7932 (synopsis "OpenConnect plug-in for NetworkManager")
7933 (description
7934 "This extension of NetworkManager allows it to take care of connections
7935 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7936 Cisco's AnyConnect SSL VPN.")
7937 (license license:gpl2+)
7938 (properties `((upstream-name . "NetworkManager-openconnect")
7939
7940 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7941 ;; file refers to account "nm-openconnect". Specify it here
7942 ;; so that 'network-manager-service-type' creates it.
7943 (user-accounts . ("nm-openconnect"))))))
7944
7945 (define-public mobile-broadband-provider-info
7946 (package
7947 (name "mobile-broadband-provider-info")
7948 (version "20190116")
7949 (source (origin
7950 (method url-fetch)
7951 (uri (string-append
7952 "mirror://gnome/sources/"
7953 "mobile-broadband-provider-info/" version "/"
7954 "mobile-broadband-provider-info-" version ".tar.xz"))
7955 (sha256
7956 (base32
7957 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7958 (build-system gnu-build-system)
7959 (arguments
7960 `(#:tests? #f)) ; no tests
7961 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7962 (synopsis "Database of broadband connection configuration")
7963 (description "Database of broadband connection configuration.")
7964 (license license:public-domain)))
7965
7966 (define-public network-manager-applet
7967 (package
7968 (name "network-manager-applet")
7969 (version "1.16.0")
7970 (source (origin
7971 (method url-fetch)
7972 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7973 (version-major+minor version) "/"
7974 "network-manager-applet-" version ".tar.xz"))
7975 (sha256
7976 (base32
7977 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
7978 (build-system meson-build-system)
7979 (arguments
7980 '(#:glib-or-gtk? #t))
7981 (native-inputs
7982 `(("intltool" ,intltool)
7983 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
7984 ("gobject-introspection" ,gobject-introspection)
7985 ("gtk-doc" ,gtk-doc)
7986 ("pkg-config" ,pkg-config)))
7987 (propagated-inputs
7988 ;; libnm-gtk.pc refers to all these.
7989 `(("dbus-glib" ,dbus-glib)
7990 ("gtk+" ,gtk+)
7991 ("network-manager" ,network-manager)
7992 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7993 ("libnma" ,libnma)))
7994 (inputs
7995 `(("gcr" ,gcr)
7996 ("libgudev" ,libgudev)
7997 ("libnotify" ,libnotify)
7998 ("libsecret" ,libsecret)
7999 ("libselinux" ,libselinux)
8000 ("jansson" ,jansson) ; for team support
8001 ("modem-manager" ,modem-manager)))
8002 (synopsis "Applet for managing network connections")
8003 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8004 (description
8005 "This package contains a systray applet for NetworkManager. It displays
8006 the available networks and allows users to easily switch between them.")
8007 (license license:gpl2+)))
8008
8009 (define-public libxml++
8010 (package
8011 (name "libxml++")
8012 (version "3.0.1")
8013 (source (origin
8014 (method url-fetch)
8015 (uri (string-append "mirror://gnome/sources/" name "/"
8016 (version-major+minor version) "/"
8017 name "-" version ".tar.xz"))
8018 (sha256
8019 (base32
8020 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
8021 (build-system gnu-build-system)
8022 ;; libxml++-3.0.pc refers to all these.
8023 (propagated-inputs
8024 `(("libxml2" ,libxml2)
8025 ("glibmm" ,glibmm)))
8026 (native-inputs
8027 `(("perl" ,perl)
8028 ("pkg-config" ,pkg-config)))
8029 (home-page "http://libxmlplusplus.sourceforge.net/")
8030 (synopsis "C++ wrapper for XML parser library libxml2")
8031 (description
8032 "This package provides a C++ wrapper for the XML parser library
8033 libxml2.")
8034 (license license:lgpl2.1+)))
8035
8036 (define-public libxml++-2
8037 (package
8038 (inherit libxml++)
8039 (name "libxml++")
8040 (version "2.40.1")
8041 (source (origin
8042 (method url-fetch)
8043 (uri (string-append "mirror://gnome/sources/" name "/"
8044 (version-major+minor version) "/"
8045 name "-" version ".tar.xz"))
8046 (sha256
8047 (base32
8048 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
8049
8050 (define-public gdm
8051 (package
8052 (name "gdm")
8053 (version "3.34.1")
8054 (source (origin
8055 (method url-fetch)
8056 (uri (string-append "mirror://gnome/sources/" name "/"
8057 (version-major+minor version) "/"
8058 name "-" version ".tar.xz"))
8059 (sha256
8060 (base32
8061 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
8062 (patches (search-patches "gdm-default-session.patch"))))
8063 (build-system glib-or-gtk-build-system)
8064 (arguments
8065 '(#:configure-flags
8066 `("--without-plymouth"
8067 "--disable-systemd-journal"
8068
8069 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8070 ;; instead of having to replace it (i.e., stopping the mingetty
8071 ;; service for TTY 1 before starting GDM).
8072 "--with-initial-vt=7"
8073
8074 ;; Use '/etc/environment' for locale settings instead of the
8075 ;; systemd-specific '/etc/locale.conf'.
8076 "--with-lang-file=/etc/environment"
8077
8078 ,(string-append "--with-udevdir="
8079 (assoc-ref %outputs "out") "/lib/udev")
8080
8081 "--localstatedir=/var"
8082 ,(string-append "--with-default-path="
8083 (string-join '("/run/setuid-programs"
8084 "/run/current-system/profile/bin"
8085 "/run/current-system/profile/sbin")
8086 ":"))
8087 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8088 ;; XDG_DATA_DIRS so that it finds its schemas.
8089 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
8090 #:phases
8091 (modify-phases %standard-phases
8092 (add-before
8093 'configure 'pre-configure
8094 (lambda* (#:key inputs outputs #:allow-other-keys)
8095 ;; We don't have <systemd/sd-daemon.h>.
8096 (substitute* '("common/gdm-log.c"
8097 "daemon/gdm-server.c"
8098 "daemon/gdm-session-worker.c"
8099 "daemon/gdm-session-worker-job.c")
8100 (("#include <systemd/sd-daemon\\.h>") ""))
8101 ;; Use elogind for sd-login.
8102 (substitute* '("common/gdm-common.c"
8103 "daemon/gdm-local-display-factory.c"
8104 "daemon/gdm-manager.c"
8105 "libgdm/gdm-user-switching.c")
8106 (("#include <systemd/sd-login\\.h>")
8107 "#include <elogind/sd-login.h>"))
8108 ;; Check for elogind.
8109 (substitute* '("configure")
8110 (("libsystemd")
8111 "libelogind"))
8112 ;; Look for system-installed sessions in
8113 ;; /run/current-system/profile/share.
8114 (substitute* '("libgdm/gdm-sessions.c"
8115 "daemon/gdm-session.c"
8116 "daemon/gdm-display.c"
8117 "daemon/gdm-launch-environment.c")
8118 (("DATADIR \"/x")
8119 "\"/run/current-system/profile/share/x")
8120 (("DATADIR \"/wayland")
8121 "\"/run/current-system/profile/share/wayland")
8122 (("DATADIR \"/gnome")
8123 "\"/run/current-system/profile/share/gnome"))
8124 (let ((propagate '("GDM_CUSTOM_CONF"
8125 "GDM_DBUS_DAEMON"
8126 "GDM_X_SERVER"
8127 "GDM_X_SESSION"
8128 ;; XXX: Remove this once GNOME Shell is
8129 ;; a dependency of GDM.
8130 "XDG_DATA_DIRS")))
8131 (substitute* "daemon/gdm-session.c"
8132 (("set_up_session_environment \\(self\\);")
8133 (apply string-append
8134 "set_up_session_environment (self);\n"
8135 (map (lambda (name)
8136 (string-append
8137 "gdm_session_set_environment_variable "
8138 "(self, \"" name "\","
8139 "g_getenv (\"" name "\"));\n"))
8140 propagate)))))
8141 ;; Find the configuration file using an environment variable.
8142 (substitute* '("common/gdm-settings.c")
8143 (("GDM_CUSTOM_CONF")
8144 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8145 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8146 " : GDM_CUSTOM_CONF)")))
8147 ;; Use service-supplied path to X.
8148 (substitute* '("daemon/gdm-server.c")
8149 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8150 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8151 (substitute* '("daemon/gdm-wayland-session.c"
8152 "daemon/gdm-x-session.c")
8153 (("\"dbus-daemon\"")
8154 "g_getenv (\"GDM_DBUS_DAEMON\")")
8155 (("X_SERVER")
8156 "g_getenv (\"GDM_X_SERVER\")")
8157 (("GDMCONFDIR \"/Xsession\"")
8158 "g_getenv (\"GDM_X_SESSION\")"))
8159 ;; Use an absolute path for GNOME Session.
8160 (substitute* "daemon/gdm-launch-environment.c"
8161 (("\"gnome-session\"")
8162 (string-append "\"" (assoc-ref inputs "gnome-session")
8163 "/bin/gnome-session\"")))
8164 ;; Do not automatically select the placeholder session.
8165 (substitute* "daemon/gdm-session.c"
8166 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8167 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8168 "(g_strcmp0(search_dirs[i], \""
8169 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
8170 "\") == 0 && "
8171 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8172 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8173 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
8174 #t))
8175 ;; GDM requires that there be at least one desktop entry
8176 ;; file. This phase installs a hidden one that simply
8177 ;; fails. This enables users to use GDM with a
8178 ;; '~/.xsession' script with no other desktop entry files.
8179 ;; See <https://bugs.gnu.org/35068>.
8180 (add-after 'install 'install-placeholder-desktop-entry
8181 (lambda* (#:key inputs outputs #:allow-other-keys)
8182 (let* ((out (assoc-ref outputs "out"))
8183 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8184 (fail (string-append sessions "/fail.desktop")))
8185 (mkdir-p sessions)
8186 (with-output-to-file fail
8187 (lambda ()
8188 (for-each
8189 display
8190 '("[Desktop Entry]\n"
8191 "Encoding=UTF-8\n"
8192 "Type=Application\n"
8193 "Name=Fail\n"
8194 "Comment=This session fails immediately.\n"
8195 "NoDisplay=true\n"
8196 "Exec=false\n"))))
8197 #t)))
8198 ;; GDM needs GNOME Session to run these applications. We link
8199 ;; their autostart files in `share/gdm/greeter/autostart'
8200 ;; because GDM explicitly tells GNOME Session to look there.
8201 ;;
8202 ;; XXX: GNOME Shell should be linked here too, but currently
8203 ;; GNOME Shell depends on GDM.
8204 (add-after 'install 'link-autostart-files
8205 (lambda* (#:key inputs outputs #:allow-other-keys)
8206 (let* ((out (assoc-ref outputs "out"))
8207 (autostart (string-append out "/share/gdm/"
8208 "greeter/autostart"))
8209 (settings (assoc-ref inputs "gnome-settings-daemon")))
8210 (mkdir-p autostart)
8211 (with-directory-excursion autostart
8212 (for-each (lambda (desktop)
8213 (symlink desktop (basename desktop)))
8214 (find-files (string-append settings "/etc/xdg"))))
8215 #t))))))
8216 (native-inputs
8217 `(("dconf" ,dconf)
8218 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8219 ("gobject-introspection" ,gobject-introspection)
8220 ("intltool" ,intltool)
8221 ("itstool" ,itstool)
8222 ("pkg-config" ,pkg-config)
8223 ("xmllint" ,libxml2)))
8224 (inputs
8225 `(("accountsservice" ,accountsservice)
8226 ("check" ,check-0.14) ;for testing
8227 ("elogind" ,elogind)
8228 ("gnome-session" ,gnome-session)
8229 ("gnome-settings-daemon" ,gnome-settings-daemon)
8230 ("gtk+" ,gtk+)
8231 ("iso-codes" ,iso-codes)
8232 ("libcanberra" ,libcanberra)
8233 ("linux-pam" ,linux-pam)))
8234 (synopsis "Display manager for GNOME")
8235 (home-page "https://wiki.gnome.org/Projects/GDM/")
8236 (description
8237 "GNOME Display Manager is a system service that is responsible for
8238 providing graphical log-ins and managing local and remote displays.")
8239 (license license:gpl2+)))
8240
8241 (define-public libgtop
8242 (package
8243 (name "libgtop")
8244 (version "2.40.0")
8245 (source (origin
8246 (method url-fetch)
8247 (uri (string-append "mirror://gnome/sources/libgtop/"
8248 (version-major+minor version) "/"
8249 "libgtop-" version ".tar.xz"))
8250 (sha256
8251 (base32
8252 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8253 (build-system gnu-build-system)
8254 (native-inputs
8255 `(("gobject-introspection" ,gobject-introspection)
8256 ("intltool" ,intltool)
8257 ("perl" ,perl)
8258 ("pkg-config" ,pkg-config)))
8259 (propagated-inputs
8260 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8261 (synopsis "Portable system access library")
8262 (home-page "https://www.gnome.org/")
8263 (description
8264 "LibGTop is a library to get system specific data such as CPU and memory
8265 usage and information about running processes.")
8266 (license license:gpl2+)))
8267
8268 (define-public gnome-bluetooth
8269 (package
8270 (name "gnome-bluetooth")
8271 (version "3.34.2")
8272 (source (origin
8273 (method url-fetch)
8274 (uri (string-append "mirror://gnome/sources/" name "/"
8275 (version-major+minor version) "/"
8276 name "-" version ".tar.xz"))
8277 (sha256
8278 (base32
8279 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8280 (build-system meson-build-system)
8281 (native-inputs
8282 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8283 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8284 ("gobject-introspection" ,gobject-introspection)
8285 ("intltool" ,intltool)
8286 ("pkg-config" ,pkg-config)
8287 ("xmllint" ,libxml2)))
8288 (propagated-inputs
8289 ;; gnome-bluetooth-1.0.pc refers to all these.
8290 `(("glib" ,glib)
8291 ("gtk+" ,gtk+)))
8292 (inputs
8293 `(("eudev" ,eudev)
8294 ("libcanberra" ,libcanberra)
8295 ("libnotify" ,libnotify)))
8296 (synopsis "GNOME Bluetooth subsystem")
8297 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8298 (description
8299 "This package contains tools for managing and manipulating Bluetooth
8300 devices using the GNOME desktop.")
8301 (license license:lgpl2.1+)))
8302
8303 (define-public gnome-control-center
8304 (package
8305 (name "gnome-control-center")
8306 (version "3.34.2")
8307 (source (origin
8308 (method url-fetch)
8309 (uri (string-append "mirror://gnome/sources/" name "/"
8310 (version-major+minor version) "/"
8311 name "-" version ".tar.xz"))
8312 (sha256
8313 (base32
8314 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8315 (build-system meson-build-system)
8316 (arguments
8317 '(#:glib-or-gtk? #t
8318 #:configure-flags
8319 (list "-Dcheese=false"
8320 (string-append "-Dgnome_session_libexecdir="
8321 (assoc-ref %build-inputs "gnome-session")
8322 "/libexec"))
8323 #:phases
8324 (modify-phases %standard-phases
8325 (add-before 'configure 'patch-paths
8326 (lambda* (#:key inputs #:allow-other-keys)
8327 (let ((libc (assoc-ref inputs "libc"))
8328 (tzdata (assoc-ref inputs "tzdata"))
8329 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8330 (nm-applet (assoc-ref inputs "network-manager-applet"))
8331 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8332 (substitute* "panels/datetime/tz.h"
8333 (("/usr/share/zoneinfo/zone.tab")
8334 (string-append tzdata "/share/zoneinfo/zone.tab")))
8335 (substitute* "tests/datetime/test-endianess.c"
8336 (("/usr/share/locale")
8337 (string-append libc "/share/locale")))
8338 (substitute* "panels/region/cc-region-panel.c"
8339 (("\"gkbd-keyboard-display")
8340 (string-append "\"" libgnomekbd
8341 "/bin/gkbd-keyboard-display")))
8342 (substitute* '("panels/network/net-device-wifi.c"
8343 "panels/network/net-device.c"
8344 "panels/network/connection-editor/net-connection-editor.c")
8345 (("\"nm-connection-editor")
8346 (string-append "\"" nm-applet
8347 "/bin/nm-connection-editor")))
8348 (substitute* '("panels/user-accounts/run-passwd.c")
8349 (("/usr/bin/passwd")
8350 "/run/setuid-programs/passwd"))
8351 (substitute* "panels/info/cc-info-overview-panel.c"
8352 (("DATADIR \"/gnome/gnome-version.xml\"")
8353 (string-append "\"" gnome-desktop
8354 "/share/gnome/gnome-version.xml\"")))
8355 #t)))
8356 (add-after 'unpack 'skip-gtk-update-icon-cache
8357 ;; Don't create 'icon-theme.cache'.
8358 (lambda _
8359 (substitute* "build-aux/meson/meson_post_install.py"
8360 (("gtk-update-icon-cache") (which "true")))
8361 #t)))))
8362 (native-inputs
8363 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8364 ("intltool" ,intltool)
8365 ("pkg-config" ,pkg-config)
8366 ("xsltproc" ,libxslt)
8367 ;; For tests
8368 ("hicolor-icon-theme" ,hicolor-icon-theme)
8369 ("python-dbusmock" ,python-dbusmock)
8370 ("xorg-server" ,xorg-server-for-tests)))
8371 (inputs
8372 `(("accountsservice" ,accountsservice)
8373 ("clutter-gtk" ,clutter-gtk)
8374 ("colord-gtk" ,colord-gtk)
8375 ("cups" ,cups)
8376 ("dconf" ,dconf)
8377 ("docbook-xsl" ,docbook-xsl)
8378 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8379 ("gnome-bluetooth" ,gnome-bluetooth)
8380 ("gnome-desktop" ,gnome-desktop)
8381 ("gnome-online-accounts" ,gnome-online-accounts)
8382 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8383 ("gnome-session" ,gnome-session)
8384 ("gnome-settings-daemon" ,gnome-settings-daemon)
8385 ("grilo" ,grilo)
8386 ("gsound" ,gsound)
8387 ("ibus" ,ibus)
8388 ("libcanberra" ,libcanberra)
8389 ("libgnomekbd" ,libgnomekbd)
8390 ("libgudev" ,libgudev)
8391 ("libgtop" ,libgtop)
8392 ("libnma" ,libnma)
8393 ("libpwquality" ,libpwquality)
8394 ("libsecret" ,libsecret)
8395 ("libsoup" ,libsoup)
8396 ("libxml2" ,libxml2)
8397 ("libwacom" ,libwacom)
8398 ("mesa" ,mesa)
8399 ("mit-krb5" ,mit-krb5)
8400 ("modem-manager" ,modem-manager)
8401 ("network-manager-applet" ,network-manager-applet)
8402 ("polkit" ,polkit)
8403 ("pulseaudio" ,pulseaudio)
8404 ("smbclient" ,samba)
8405 ("tzdata" ,tzdata)
8406 ("udisks" ,udisks)
8407 ("upower" ,upower)))
8408 (synopsis "Utilities to configure the GNOME desktop")
8409 (home-page "https://www.gnome.org/")
8410 (description
8411 "This package contains configuration applets for the GNOME desktop,
8412 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8413 properties, sound setup, desktop theme and background, user interface
8414 properties, screen resolution, and other GNOME parameters.")
8415 (license license:gpl2+)))
8416
8417 (define-public gnome-shell
8418 (package
8419 (name "gnome-shell")
8420 (version "3.34.2")
8421 (source (origin
8422 (method url-fetch)
8423 (uri (string-append "mirror://gnome/sources/" name "/"
8424 (version-major+minor version) "/"
8425 name "-" version ".tar.xz"))
8426 (sha256
8427 (base32
8428 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
8429 (patches (search-patches "gnome-shell-theme.patch"
8430 "gnome-shell-disable-test.patch"))
8431 (modules '((guix build utils)))
8432 (snippet
8433 #~(begin
8434 ;; Copy images for use on the GDM log-in screen.
8435 (copy-file #$(file-append %artwork-repository
8436 "/slim/0.x/background.png")
8437 "data/theme/guix-background.png")
8438 (copy-file #$(file-append %artwork-repository
8439 "/logo/Guix-horizontal-white.svg")
8440 "data/theme/guix-logo.svg")
8441 #t))))
8442 (build-system meson-build-system)
8443 (arguments
8444 `(#:glib-or-gtk? #t
8445 #:disallowed-references ((,glib "bin")
8446 ,inkscape ,libxslt
8447 ,ruby-sass)
8448 #:configure-flags
8449 (list "-Dsystemd=false"
8450 ;; Otherwise, the RUNPATH will lack the final path component.
8451 (string-append "-Dc_link_args=-Wl,-rpath="
8452 (assoc-ref %outputs "out")
8453 "/lib/gnome-shell"))
8454
8455 #:modules ((guix build meson-build-system)
8456 (guix build utils)
8457 (srfi srfi-1))
8458
8459 #:phases
8460 (modify-phases %standard-phases
8461 (add-after 'unpack 'fix-keysdir
8462 (lambda* (#:key outputs #:allow-other-keys)
8463 (let* ((out (assoc-ref outputs "out"))
8464 (keysdir (string-append
8465 out "/share/gnome-control-center/keybindings")))
8466 (substitute* "meson.build"
8467 (("keysdir =.*")
8468 (string-append "keysdir = '" keysdir "'\n")))
8469 #t)))
8470 (add-before 'configure 'convert-logo-to-png
8471 (lambda* (#:key inputs #:allow-other-keys)
8472 ;; Convert the logo from SVG to PNG.
8473 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8474 "data/theme/guix-logo.svg")))
8475 (add-before 'configure 'record-absolute-file-names
8476 (lambda* (#:key inputs #:allow-other-keys)
8477 (substitute* "js/misc/ibusManager.js"
8478 (("'ibus-daemon'")
8479 (string-append "'" (assoc-ref inputs "ibus")
8480 "/bin/ibus-daemon'")))
8481 (substitute* "js/ui/status/keyboard.js"
8482 (("'gkbd-keyboard-display'")
8483 (string-append "'" (assoc-ref inputs "libgnomekbd")
8484 "/bin/gkbd-keyboard-display'")))
8485 #t))
8486 (add-before 'check 'pre-check
8487 (lambda* (#:key inputs #:allow-other-keys)
8488 ;; Tests require a running X server.
8489 (system "Xvfb :1 &")
8490 (setenv "DISPLAY" ":1")
8491 #t))
8492 (add-after 'install 'wrap-programs
8493 (lambda* (#:key inputs outputs #:allow-other-keys)
8494 (let ((out (assoc-ref outputs "out"))
8495 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8496 (python-path (getenv "PYTHONPATH")))
8497 (wrap-program (string-append out "/bin/gnome-shell")
8498 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8499 ;; FIXME: gnome-shell loads these libraries with unqualified
8500 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8501 ;; alternative might be to patch gnome-shell.
8502 `("LD_LIBRARY_PATH" ":" prefix
8503 ,(map (lambda (pkg)
8504 (string-append (assoc-ref inputs pkg) "/lib"))
8505 '("gdk-pixbuf"
8506 "gnome-bluetooth" "librsvg" "libgweather"))))
8507 (for-each
8508 (lambda (prog)
8509 (wrap-program (string-append out "/bin/" prog)
8510 `("PYTHONPATH" ":" prefix (,python-path))
8511 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8512 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8513 #t)))
8514 (replace 'glib-or-gtk-wrap
8515 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8516 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8517 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8518 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8519 ;; phase. Fix that since we don't need these.
8520 (wrap #:inputs (fold alist-delete inputs
8521 '("inkscape" "intltool" "glib:bin"))
8522 #:outputs outputs)))))))
8523 (native-inputs
8524 `(("asciidoc" ,asciidoc)
8525 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8526 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8527 ("gobject-introspection" ,gobject-introspection)
8528 ("inkscape" ,inkscape)
8529 ("intltool" ,intltool)
8530 ("pkg-config" ,pkg-config)
8531 ("python" ,python)
8532 ("ruby-sass" ,ruby-sass)
8533 ("sassc" ,sassc)
8534 ("xsltproc" ,libxslt)
8535 ;; For tests
8536 ("xorg-server" ,xorg-server-for-tests)))
8537 (inputs
8538 `(("accountsservice" ,accountsservice)
8539 ("caribou" ,caribou)
8540 ("docbook-xsl" ,docbook-xsl)
8541 ("evolution-data-server" ,evolution-data-server)
8542 ("gcr" ,gcr)
8543 ("gdm" ,gdm)
8544 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8545 ("gjs" ,gjs)
8546 ("gnome-autoar" ,gnome-autoar)
8547 ("gnome-bluetooth" ,gnome-bluetooth)
8548 ("gnome-desktop" ,gnome-desktop)
8549 ("gnome-settings-daemon" ,gnome-settings-daemon)
8550 ("gst-plugins-base" ,gst-plugins-base)
8551 ("ibus" ,ibus)
8552 ("libcanberra" ,libcanberra)
8553 ("libcroco" ,libcroco)
8554 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8555 ("libgweather" ,libgweather)
8556 ("libnma" ,libnma)
8557 ("libsoup" ,libsoup)
8558 ("mesa-headers" ,mesa-headers)
8559 ("mutter" ,mutter)
8560 ("network-manager-applet" ,network-manager-applet)
8561 ("polkit" ,polkit)
8562 ("pulseaudio" ,pulseaudio)
8563 ("python-pygobject" ,python-pygobject)
8564 ("startup-notification" ,startup-notification)
8565 ("telepathy-logger" ,telepathy-logger)
8566 ("upower" ,upower)
8567 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8568 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8569 ("librsvg" ,librsvg)
8570 ("geoclue" ,geoclue)))
8571 (synopsis "Desktop shell for GNOME")
8572 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8573 (description
8574 "GNOME Shell provides core user interface functions for the GNOME desktop,
8575 like switching to windows and launching applications.")
8576 (license license:gpl2+)))
8577
8578 (define-public gtk-vnc
8579 (package
8580 (name "gtk-vnc")
8581 (version "1.0.0")
8582 (source
8583 (origin
8584 (method url-fetch)
8585 (uri
8586 (string-append "mirror://gnome/sources/" name "/"
8587 (version-major+minor version) "/"
8588 name "-" version ".tar.xz"))
8589 (sha256
8590 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8591 (build-system meson-build-system)
8592 (arguments
8593 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8594 (native-inputs
8595 `(("gjs" ,gjs)
8596 ("glib:bin" ,glib "bin")
8597 ("gobject-introspection" ,gobject-introspection)
8598 ("intltool" ,intltool)
8599 ("node" ,node)
8600 ("perl" ,perl)
8601 ("pkg-config" ,pkg-config)
8602 ("python" ,python-wrapper)
8603 ("vala" ,vala)))
8604 (inputs
8605 `(("cairo" ,cairo)
8606 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8607 ("glib" ,glib)
8608 ("gnutls" ,gnutls)
8609 ("libgcrypt" ,libgcrypt)
8610 ("libsasl" ,cyrus-sasl)
8611 ("pulseaudio" ,pulseaudio)
8612 ("x11" ,libx11)
8613 ("zlib" ,zlib)))
8614 (propagated-inputs
8615 `(("gtk+" ,gtk+)))
8616 (synopsis "VNC client viewer widget for GTK+")
8617 (description "GTK-VNC is a project providing client side APIs for the RFB
8618 protocol / VNC remote desktop technology. It is built using coroutines allowing
8619 it to be completely asynchronous while remaining single threaded. It provides a
8620 core C library, and bindings for Python (PyGTK).")
8621 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8622 (license license:lgpl2.1+)))
8623
8624 (define-public gnome-autoar
8625 (package
8626 (name "gnome-autoar")
8627 (version "0.2.4")
8628 (source (origin
8629 (method url-fetch)
8630 (uri (string-append "mirror://gnome/sources/" name "/"
8631 (version-major+minor version) "/"
8632 name "-" version ".tar.xz"))
8633 (sha256
8634 (base32
8635 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
8636 (build-system glib-or-gtk-build-system)
8637 (native-inputs
8638 `(("gobject-introspection" ,gobject-introspection)
8639 ("pkg-config" ,pkg-config)))
8640 (propagated-inputs
8641 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8642 (inputs
8643 `(("gtk+" ,gtk+)))
8644 (synopsis "Archives integration support for GNOME")
8645 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8646 (description
8647 "GNOME Autoar is a library which makes creating and extracting archives
8648 easy, safe, and automatic.")
8649 (license license:lgpl2.1+)))
8650
8651 (define-public tracker
8652 (package
8653 (name "tracker")
8654 (version "2.3.5")
8655 (source (origin
8656 (method url-fetch)
8657 (uri (string-append "mirror://gnome/sources/tracker/"
8658 (version-major+minor version) "/"
8659 "tracker-" version ".tar.xz"))
8660 (sha256
8661 (base32
8662 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8663 (build-system meson-build-system)
8664 (arguments
8665 `(#:glib-or-gtk? #t
8666 #:configure-flags
8667 ;; Otherwise, the RUNPATH will lack the final path component.
8668 (list (string-append "-Dc_link_args=-Wl,-rpath="
8669 (assoc-ref %outputs "out") "/lib:"
8670 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8671 #:phases
8672 (modify-phases %standard-phases
8673 (add-before 'check 'pre-check
8674 (lambda _
8675 ;; Some tests expect to write to $HOME.
8676 (setenv "HOME" "/tmp")
8677 #t)))))
8678 (native-inputs
8679 `(("glib:bin" ,glib "bin")
8680 ("gobject-introspection" ,gobject-introspection)
8681 ("python-pygobject" ,python-pygobject)
8682 ("intltool" ,intltool)
8683 ("pkg-config" ,pkg-config)
8684 ("vala" ,vala)))
8685 (inputs
8686 `(("dbus" ,dbus)
8687 ("sqlite" ,sqlite)
8688 ("libxml2" ,libxml2)
8689 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8690 ("json-glib" ,json-glib)
8691 ("libsoup" ,libsoup)))
8692 (synopsis "Metadata database, indexer and search tool")
8693 (home-page "https://wiki.gnome.org/Projects/Tracker")
8694 (description
8695 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8696
8697 It is a middleware component aimed at desktop application developers who want
8698 their apps to browse and search user content. It's not designed to be used
8699 directly by desktop users, but it provides a commandline tool named
8700 @command{tracker} for the adventurous.
8701
8702 Tracker allows your application to instantly perform full-text searches across
8703 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8704 example. This is achieved by indexing the user's home directory in the
8705 background.
8706
8707 Tracker also allows your application to query and list content that the user
8708 has stored. For example, GNOME Music displays all the music files that are
8709 found by Tracker. This means that GNOME Music doesn't need to maintain a
8710 database of its own.
8711
8712 If you need to go beyond simple searches, Tracker is also a linked data
8713 endpoint and it understands SPARQL. ")
8714 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8715 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8716 ;; libstemmer is bsd-3 and the rest is gpl2+.
8717 (license (list license:gpl2+
8718 license:bsd-3
8719 license:lgpl2.1+))))
8720
8721 (define-public tracker-miners
8722 (package
8723 (name "tracker-miners")
8724 (version "2.3.4")
8725 (source (origin
8726 (method url-fetch)
8727 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8728 (version-major+minor version)
8729 "/tracker-miners-" version ".tar.xz"))
8730 (sha256
8731 (base32
8732 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8733 (build-system meson-build-system)
8734 (arguments
8735 `(#:glib-or-gtk? #t
8736 #:configure-flags
8737 (list "-Dminer_rss=false" ; libgrss is required.
8738 ;; Ensure the RUNPATH contains all installed library locations.
8739 (string-append "-Dc_link_args=-Wl,-rpath="
8740 (assoc-ref %outputs "out")
8741 "/lib/tracker-miners-2.0")
8742 ;; TODO: Enable functional tests. Currently, the following error
8743 ;; appears:
8744 ;; Exception: The functional tests require DConf to be the default
8745 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8746 "-Dfunctional_tests=false")))
8747 (native-inputs
8748 `(("dbus" ,dbus)
8749 ("intltool" ,intltool)
8750 ("glib:bin" ,glib "bin")
8751 ("gobject-introspection" ,gobject-introspection)
8752 ("pkg-config" ,pkg-config)
8753 ("python-pygobject" ,python-pygobject)))
8754 (inputs
8755 `(("exempi" ,exempi)
8756 ("ffmpeg" ,ffmpeg)
8757 ("flac" ,flac)
8758 ("giflib" ,giflib)
8759 ("glib" ,glib)
8760 ("gstreamer" ,gstreamer)
8761 ("icu4c" ,icu4c)
8762 ("libcue" ,libcue)
8763 ("libexif" ,libexif)
8764 ("libgsf" ,libgsf)
8765 ("libgxps" ,libgxps)
8766 ("libiptcdata" ,libiptcdata)
8767 ("libjpeg" ,libjpeg-turbo)
8768 ("libosinfo" ,libosinfo)
8769 ("libpng" ,libpng)
8770 ("libseccomp" ,libseccomp)
8771 ("libtiff" ,libtiff)
8772 ("libvorbis" ,libvorbis)
8773 ("libxml2" ,libxml2)
8774 ("poppler" ,poppler)
8775 ("taglib" ,taglib)
8776 ("totem-pl-parser" ,totem-pl-parser)
8777 ("tracker" ,tracker)
8778 ("upower" ,upower)
8779 ("zlib" ,zlib)))
8780 (synopsis "Metadata database, indexer and search tool")
8781 (home-page "https://wiki.gnome.org/Projects/Tracker")
8782 (description
8783 "Tracker is an advanced framework for first class objects with associated
8784 metadata and tags. It provides a one stop solution for all metadata, tags,
8785 shared object databases, search tools and indexing.")
8786 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8787 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8788 (license (list license:gpl2+
8789 license:lgpl2.1+
8790 license:lgpl2.0+))))
8791
8792 (define-public nautilus
8793 (package
8794 (name "nautilus")
8795 (version "3.34.2")
8796 (source (origin
8797 (method url-fetch)
8798 (uri (string-append "mirror://gnome/sources/" name "/"
8799 (version-major+minor version) "/"
8800 name "-" version ".tar.xz"))
8801 (sha256
8802 (base32
8803 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8804 (build-system meson-build-system)
8805 (arguments
8806 '(#:glib-or-gtk? #t
8807 #:phases
8808 (modify-phases %standard-phases
8809 (add-after 'unpack 'skip-gtk-update-icon-cache
8810 ;; Don't create 'icon-theme.cache'.
8811 (lambda _
8812 (substitute* "build-aux/meson/postinstall.py"
8813 (("gtk-update-icon-cache") "true"))
8814 #t)))
8815 ;; XXX: FAIL: check-nautilus
8816 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8817 #:tests? #f))
8818 (native-inputs
8819 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8820 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8821 ("gobject-introspection" ,gobject-introspection)
8822 ("intltool" ,intltool)
8823 ("pkg-config" ,pkg-config)))
8824 (inputs
8825 `(("dconf" ,dconf)
8826 ("gexiv2" ,gexiv2)
8827 ("gvfs" ,gvfs)
8828 ("exempi" ,exempi)
8829 ("gnome-desktop" ,gnome-desktop)
8830 ("gnome-autoar" ,gnome-autoar)
8831 ("gst-plugins-base" ,gst-plugins-base)
8832 ("libseccomp" ,libseccomp)
8833 ("libselinux" ,libselinux)
8834 ("tracker" ,tracker)
8835 ("tracker-miners" ,tracker-miners)
8836 ;; XXX: gtk+ is required by libnautilus-extension.pc
8837 ;;
8838 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8839 ;; package. See:
8840 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8841 ("gtk+" ,gtk+)
8842 ("libexif" ,libexif)
8843 ("libxml2" ,libxml2)))
8844 (synopsis "File manager for GNOME")
8845 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8846 (description
8847 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8848 design and behaviour, giving the user a simple way to navigate and manage its
8849 files.")
8850 (license license:gpl2+)))
8851
8852 (define-public baobab
8853 (package
8854 (name "baobab")
8855 (version "3.38.0")
8856 (source (origin
8857 (method url-fetch)
8858 (uri (string-append
8859 "mirror://gnome/sources/" name "/"
8860 (version-major+minor version) "/"
8861 name "-" version ".tar.xz"))
8862 (sha256
8863 (base32
8864 "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104"))))
8865 (build-system meson-build-system)
8866 (arguments
8867 '(#:glib-or-gtk? #t))
8868 (native-inputs
8869 `(("intltool" ,intltool)
8870 ("pkg-config" ,pkg-config)
8871 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8872 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8873 ("itstool" ,itstool)
8874 ("xmllint" ,libxml2)
8875 ("glib" ,glib "bin")
8876 ("vala" ,vala)))
8877 (inputs
8878 `(("gtk+" ,gtk+)))
8879 (synopsis "Disk usage analyzer for GNOME")
8880 (description
8881 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8882 usage in the GNOME desktop environment. It can easily scan device volumes or
8883 a specific user-requested directory branch (local or remote). Once the scan
8884 is complete it provides a graphical representation of each selected folder.")
8885 (home-page "https://wiki.gnome.org/Apps/Baobab")
8886 (license license:gpl2+)))
8887
8888 (define-public gnome-backgrounds
8889 (package
8890 (name "gnome-backgrounds")
8891 (version "3.34.0")
8892 (source
8893 (origin
8894 (method url-fetch)
8895 (uri (string-append "mirror://gnome/sources/" name "/"
8896 (version-major+minor version) "/"
8897 name "-" version ".tar.xz"))
8898 (sha256
8899 (base32
8900 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8901 (build-system meson-build-system)
8902 (native-inputs
8903 `(("intltool" ,intltool)))
8904 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8905 (synopsis "Background images for the GNOME desktop")
8906 (description
8907 "GNOME backgrounds package contains a collection of graphics files which
8908 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8909 the package creates the proper framework and directory structure so that you
8910 can add your own files to the collection.")
8911 (license (list license:gpl2+
8912 license:cc-by2.0
8913 license:cc-by-sa2.0
8914 license:cc-by-sa3.0))))
8915
8916 (define-public gnome-screenshot
8917 (package
8918 (name "gnome-screenshot")
8919 (version "3.34.0")
8920 (source
8921 (origin
8922 (method url-fetch)
8923 (uri (string-append "mirror://gnome/sources/" name "/"
8924 (version-major+minor version) "/"
8925 name "-" version ".tar.xz"))
8926 (sha256
8927 (base32
8928 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8929 (build-system meson-build-system)
8930 (arguments
8931 '(#:phases
8932 (modify-phases %standard-phases
8933 (add-after 'unpack 'skip-gtk-update-icon-cache
8934 ;; Don't create 'icon-theme.cache'.
8935 (lambda _
8936 (substitute* "build-aux/postinstall.py"
8937 (("gtk-update-icon-cache") "true"))
8938 #t)))))
8939 (native-inputs
8940 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8941 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8942 ("intltool" ,intltool)
8943 ("appstream-glib" ,appstream-glib)
8944 ("pkg-config" ,pkg-config)))
8945 (inputs
8946 `(("gtk+" ,gtk+)
8947 ("libcanberra" ,libcanberra)
8948 ("libx11" ,libx11)
8949 ("libxext" ,libxext)))
8950 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8951 (synopsis "Take pictures of your screen")
8952 (description
8953 "GNOME Screenshot is a utility used for taking screenshots of the entire
8954 screen, a window or a user defined area of the screen, with optional
8955 beautifying border effects.")
8956 (license license:gpl2+)))
8957
8958 (define-public dconf-editor
8959 (package
8960 (name "dconf-editor")
8961 (version "3.34.2")
8962 (source
8963 (origin
8964 (method url-fetch)
8965 (uri (string-append "mirror://gnome/sources/" name "/"
8966 (version-major+minor version) "/"
8967 name "-" version ".tar.xz"))
8968 (sha256
8969 (base32
8970 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8971 (build-system meson-build-system)
8972 (native-inputs
8973 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8974 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8975 ("intltool" ,intltool)
8976 ("pkg-config" ,pkg-config)
8977 ("vala" ,vala)))
8978 (inputs
8979 `(("dconf" ,dconf)
8980 ("gtk+" ,gtk+)
8981 ("libxml2" ,libxml2)))
8982 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
8983 (synopsis "Graphical editor for GNOME's dconf configuration system")
8984 (description
8985 "Dconf-editor is a graphical tool for browsing and editing the dconf
8986 configuration system for GNOME. It allows users to configure desktop
8987 software that do not provide their own configuration interface.")
8988 (license license:lgpl2.1+)))
8989
8990 (define-public gnome-default-applications
8991 (package
8992 (name "gnome-default-applications")
8993 (version "0")
8994 (build-system trivial-build-system)
8995 (source #f)
8996 (propagated-inputs
8997 `(("nautilus" ,nautilus)
8998 ("evince" ,evince)))
8999 (arguments
9000 `(#:modules ((guix build utils))
9001 #:builder
9002 (begin
9003 (use-modules (guix build utils))
9004 (let* ((out (assoc-ref %outputs "out"))
9005 (apps (string-append out "/share/applications")))
9006 (mkdir-p apps)
9007 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9008 (lambda (port)
9009 (format port "[Default Applications]\n")
9010 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9011 (format port "application/pdf=evince.desktop\n")
9012 (format port "application/postscript=evince.desktop\n")))
9013 #t))))
9014 (synopsis "Default MIME type associations for the GNOME desktop")
9015 (description
9016 "Given many installed packages which might handle a given MIME type, a
9017 user running the GNOME desktop probably has some preferences: for example,
9018 that folders be opened by default by the Nautilus file manager, not the Baobab
9019 disk usage analyzer. This package establishes that set of default MIME type
9020 associations for GNOME.")
9021 (license license:gpl3+)
9022 (home-page #f)))
9023
9024 (define-public libgovirt
9025 (package
9026 (name "libgovirt")
9027 (version "0.3.6")
9028 (source (origin
9029 (method url-fetch)
9030 (uri (string-append "mirror://gnome/sources/" name "/"
9031 (version-major+minor version) "/"
9032 name "-" version ".tar.xz"))
9033 (sha256
9034 (base32
9035 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
9036 (build-system glib-or-gtk-build-system)
9037 (native-inputs
9038 `(("gettext" ,gettext-minimal)
9039 ("glib:bin" ,glib "bin")
9040 ("gobject-introspection" ,gobject-introspection)
9041 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9042 ("gtk+:bin" ,gtk+ "bin")
9043 ("pkg-config" ,pkg-config)))
9044 (inputs
9045 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
9046 ("librest" ,rest)))
9047 (synopsis "GoVirt Library")
9048 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9049 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9050 (license license:gpl2+)))
9051
9052 (define-public gnome-weather
9053 (package
9054 (name "gnome-weather")
9055 (version "3.34.0")
9056 (source (origin
9057 (method url-fetch)
9058 (uri (string-append "mirror://gnome/sources/" name "/"
9059 (version-major+minor version) "/"
9060 name "-" version ".tar.xz"))
9061 (sha256
9062 (base32
9063 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
9064 (build-system meson-build-system)
9065 (native-inputs
9066 `(("gettext" ,gettext-minimal)
9067 ("glib:bin" ,glib "bin")
9068 ("gobject-introspection" ,gobject-introspection)
9069 ("gtk+:bin" ,gtk+ "bin")
9070 ("pkg-config" ,pkg-config)))
9071 (inputs
9072 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
9073 ("appstream-glib" ,appstream-glib)
9074 ("geoclue" ,geoclue)
9075 ("gdk-pixbuf" ,gdk-pixbuf)
9076 ("gjs" ,gjs)
9077 ("gnome-desktop" ,gnome-desktop)
9078 ("libgweather" ,libgweather)))
9079 (arguments
9080 `(#:glib-or-gtk? #t
9081 #:phases
9082 (modify-phases %standard-phases
9083 (add-after 'install 'fix-desktop-file
9084 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
9085 ;; See https://issues.guix.gnu.org/issue/39324.
9086 (lambda* (#:key outputs #:allow-other-keys)
9087 (let* ((out (assoc-ref outputs "out"))
9088 (applications (string-append out "/share/applications")))
9089 (substitute* (string-append applications "/org.gnome.Weather.desktop")
9090 (("Exec=.*") "Exec=gnome-weather\n"))
9091 #t)))
9092 (add-after 'install 'wrap
9093 (lambda* (#:key inputs outputs #:allow-other-keys)
9094 (let ((out (assoc-ref outputs "out"))
9095 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9096 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
9097 (wrap-program (string-append out "/bin/gnome-weather")
9098 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
9099 #t))))))
9100 (synopsis "Weather monitoring for GNOME desktop")
9101 (description "GNOME Weather is a small application that allows you to
9102 monitor the current weather conditions for your city, or anywhere in the
9103 world.")
9104 (home-page "https://wiki.gnome.org/Apps/Weather")
9105 (license license:gpl2+)))
9106
9107 (define-public gnome
9108 (package
9109 (name "gnome")
9110 (version (package-version gnome-shell))
9111 (source #f)
9112 (build-system trivial-build-system)
9113 (arguments '(#:builder (begin (mkdir %output) #t)))
9114 (propagated-inputs
9115 ;; TODO: Add or remove packages according to:
9116 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
9117 `(
9118 ;; GNOME-Core-OS-Services
9119 ("accountsservice" ,accountsservice)
9120 ("network-manager" ,network-manager)
9121 ("packagekit" ,packagekit)
9122 ("upower" ,upower)
9123 ;; GNOME-Core-Shell
9124 ("adwaita-icon-theme" ,adwaita-icon-theme)
9125 ("gdm" ,gdm)
9126 ("glib-networking" ,glib-networking)
9127 ("gnome-backgrounds" ,gnome-backgrounds)
9128 ("gnome-bluetooth" ,gnome-bluetooth)
9129 ("gnome-color-manager" ,gnome-color-manager)
9130 ("gnome-control-center" ,gnome-control-center)
9131 ("gnome-desktop" ,gnome-desktop)
9132 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
9133 ("gnome-initial-setup" ,gnome-initial-setup)
9134 ("gnome-keyring" ,gnome-keyring)
9135 ("gnome-menus" ,gnome-menus)
9136 ("gnome-session" ,gnome-session)
9137 ("gnome-settings-daemon" ,gnome-settings-daemon)
9138 ("gnome-shell-extensions" ,gnome-shell-extensions)
9139 ("gnome-shell" ,gnome-shell)
9140 ("gnome-themes-extra" ,gnome-themes-extra)
9141 ("gnome-user-docs" ,gnome-user-docs)
9142 ("gnome-user-share" ,gnome-user-share)
9143 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9144 ("gvfs" ,gvfs)
9145 ("mutter" ,mutter)
9146 ("orca" ,orca)
9147 ("rygel" ,rygel)
9148 ("sushi" ,sushi)
9149 ;; GNOME-Core-Utilities
9150 ("baobab" ,baobab)
9151 ("cheese" ,cheese)
9152 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9153 ;; only works on x86_64, so exclude it on other architectures.
9154 ,@(if (string-prefix? "x86_64" (%current-system))
9155 `(("eog" ,eog))
9156 '())
9157 ("epiphany" ,epiphany)
9158 ("evince" ,evince)
9159 ("file-roller" ,file-roller)
9160 ("gedit" ,gedit)
9161 ("gnome-boxes" ,gnome-boxes)
9162 ("gnome-calculator" ,gnome-calculator)
9163 ("gnome-calendar" ,gnome-calendar)
9164 ("gnome-characters" ,gnome-characters)
9165 ("gnome-clocks" ,gnome-clocks)
9166 ("gnome-contacts" ,gnome-contacts)
9167 ("gnome-disk-utility" ,gnome-disk-utility)
9168 ("gnome-font-viewer" ,gnome-font-viewer)
9169 ("gnome-maps" ,gnome-maps)
9170 ; TODO: ("gnome-music" ,gnome-music)
9171 ; TODO: ("gnome-photos" ,gnome-photos)
9172 ("gnome-screenshot" ,gnome-screenshot)
9173 ("gnome-system-monitor" ,gnome-system-monitor)
9174 ("gnome-terminal" ,gnome-terminal)
9175 ("gnome-weather" ,gnome-weather)
9176 ("nautilus" ,nautilus)
9177 ("simple-scan" ,simple-scan)
9178 ("totem" ,totem)
9179 ("yelp" ,yelp)
9180 ;; Others
9181 ("hicolor-icon-theme" ,hicolor-icon-theme)
9182 ("gnome-online-accounts" ,gnome-online-accounts)
9183
9184 ;; Packages not part of GNOME proper but that are needed for a good
9185 ;; experience. See <https://bugs.gnu.org/39646>.
9186 ;; XXX: Find out exactly which ones are needed and why.
9187 ("font-cantarell" ,font-cantarell)
9188 ("font-dejavu" ,font-dejavu)
9189 ("at-spi2-core" ,at-spi2-core)
9190 ("dbus" ,dbus)
9191 ("dconf" ,dconf)
9192 ("desktop-file-utils" ,desktop-file-utils)
9193 ("gnome-default-applications" ,gnome-default-applications)
9194 ("gnome-themes-standard" ,gnome-themes-standard)
9195 ("gst-plugins-base" ,gst-plugins-base)
9196 ("gst-plugins-good" ,gst-plugins-good)
9197 ("gucharmap" ,gucharmap)
9198 ("pinentry-gnome3" ,pinentry-gnome3)
9199 ("pulseaudio" ,pulseaudio)
9200 ("shared-mime-info" ,shared-mime-info)
9201 ("system-config-printer" ,system-config-printer)
9202 ("xdg-user-dirs" ,xdg-user-dirs)
9203 ("yelp" ,yelp)
9204 ("zenity" ,zenity)))
9205 (synopsis "The GNU desktop environment")
9206 (home-page "https://www.gnome.org/")
9207 (description
9208 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9209 applications for browsing the web, editing text and images, creating
9210 documents and diagrams, playing media, scanning, and much more.")
9211 (license license:gpl2+)))
9212
9213 (define-public byzanz
9214 ;; The last stable release of Byzanz was in 2011, but there have been many
9215 ;; useful commits made to the Byzanz repository since then that it would be
9216 ;; silly to use such an old release.
9217 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9218 (package
9219 (name "byzanz")
9220 (version (string-append "0.2-1." (string-take commit 7)))
9221 (source (origin
9222 (method git-fetch)
9223 (uri (git-reference
9224 (url "https://git.gnome.org/browse/byzanz")
9225 (commit commit)))
9226 (file-name (string-append name "-" version "-checkout"))
9227 (sha256
9228 (base32
9229 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9230 (build-system glib-or-gtk-build-system)
9231 (arguments
9232 '(#:phases
9233 (modify-phases %standard-phases
9234 (add-before 'bootstrap 'build-without-Werror
9235 (lambda _
9236 ;; The build system cleverly detects that we're not building from
9237 ;; a release tarball and turns on -Werror for GCC.
9238 ;; Unsurprisingly, there is a warning during compilation that
9239 ;; causes the build to fail unnecessarily, so we remove the flag.
9240 (substitute* '("configure.ac")
9241 (("-Werror") ""))
9242 #t)))))
9243 (native-inputs
9244 `(("autoconf" ,autoconf)
9245 ("automake" ,automake)
9246 ("gnome-common" ,gnome-common)
9247 ("intltool" ,intltool)
9248 ("libtool" ,libtool)
9249 ("pkg-config" ,pkg-config)
9250 ("which" ,which)))
9251 (inputs
9252 `(("glib" ,glib)
9253 ("gstreamer" ,gstreamer)
9254 ("gst-plugins-base" ,gst-plugins-base)
9255 ("gtk+" ,gtk+)))
9256 (synopsis "Desktop recording program")
9257 (description "Byzanz is a simple desktop recording program with a
9258 command-line interface. It can record part or all of an X display for a
9259 specified duration and save it as a GIF encoded animated image file.")
9260 (home-page "https://git.gnome.org/browse/byzanz")
9261 (license license:gpl2+))))
9262
9263 (define-public authenticator
9264 (package
9265 (name "authenticator")
9266 (version "3.32.2")
9267 (source
9268 (origin
9269 (method git-fetch)
9270 (uri (git-reference
9271 (url "https://gitlab.gnome.org/World/Authenticator")
9272 (commit version)))
9273 (file-name (git-file-name name version))
9274 (sha256
9275 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9276 (build-system meson-build-system)
9277 (arguments
9278 `(#:glib-or-gtk? #t
9279 #:phases
9280 (modify-phases %standard-phases
9281 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9282 (lambda* (#:key inputs outputs #:allow-other-keys)
9283 (let ((prog (string-append (assoc-ref outputs "out")
9284 "/bin/authenticator"))
9285 (pylib (string-append (assoc-ref outputs "out")
9286 "/lib/python"
9287 ,(version-major+minor
9288 (package-version python))
9289 "/site-packages")))
9290 (wrap-program prog
9291 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
9292 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9293 #t))))))
9294 (native-inputs
9295 `(("desktop-file-utils" ,desktop-file-utils)
9296 ("gettext" ,gettext-minimal)
9297 ("glib:bin" ,glib "bin")
9298 ("gobject-introspection" ,gobject-introspection)
9299 ("gtk+:bin" ,gtk+ "bin")
9300 ("pkg-config" ,pkg-config)))
9301 (inputs
9302 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9303 ("gtk+" ,gtk+)
9304 ("libhandy" ,libhandy-0.0)
9305 ("libsecret" ,libsecret)
9306 ("python-beautifulsoup4" ,python-beautifulsoup4)
9307 ("python-pillow" ,python-pillow)
9308 ("python-pyfavicon" ,python-pyfavicon)
9309 ("python-pygobject" ,python-pygobject)
9310 ("python-pyotp" ,python-pyotp)
9311 ("python-pyzbar" ,python-pyzbar)
9312 ("yoyo-migrations" ,yoyo-migrations)
9313 ("zbar" ,zbar)))
9314 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9315 (synopsis "Two-factor authentication application built for GNOME")
9316 (description
9317 "Authenticator is a two-factor authentication (2FA) application built for
9318 the GNOME desktop environment.
9319
9320 Features:
9321
9322 @itemize
9323 @item QR code scanner
9324 @item Beautiful UI
9325 @item Huge database of more than 560 supported services
9326 @item Keep your PIN tokens secure by locking the application with a password
9327 @item Automatically fetch an image for services using their favicon
9328 @item The possibility to add new services
9329 @end itemize")
9330 (license license:gpl3+)))
9331
9332 (define-public gsound
9333 (package
9334 (name "gsound")
9335 (version "1.0.2")
9336 (source (origin
9337 (method url-fetch)
9338 (uri (string-append "mirror://gnome/sources/" name "/"
9339 (version-major+minor version) "/"
9340 name "-" version ".tar.xz"))
9341 (sha256
9342 (base32
9343 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9344 (build-system glib-or-gtk-build-system)
9345 (native-inputs
9346 `(("pkg-config" ,pkg-config)
9347 ("gobject-introspection" ,gobject-introspection)
9348 ("vala" ,vala)))
9349 (inputs
9350 `(("glib" ,glib)
9351 ("libcanberra" ,libcanberra)))
9352 (home-page "https://wiki.gnome.org/Projects/GSound")
9353 (synopsis "GObject wrapper for libcanberra")
9354 (description
9355 "GSound is a small library for playing system sounds. It's designed to be
9356 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9357 library.")
9358 (license license:lgpl2.1+)))
9359
9360 (define-public libzapojit
9361 (package
9362 (name "libzapojit")
9363 (version "0.0.3")
9364 (source (origin
9365 (method url-fetch)
9366 (uri (string-append "mirror://gnome/sources/" name "/"
9367 (version-major+minor version) "/"
9368 name "-" version ".tar.xz"))
9369 (sha256
9370 (base32
9371 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9372 (build-system gnu-build-system)
9373 (native-inputs
9374 `(("gobject-introspection" ,gobject-introspection)
9375 ("intltool" ,intltool)
9376 ("pkg-config" ,pkg-config)))
9377 (inputs
9378 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9379 ("json-glib" ,json-glib)
9380 ("rest" ,rest)))
9381 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9382 (synopsis "Library for accessing SkyDrive and Hotmail")
9383 (description
9384 "Libzapojit is a GLib-based library for accessing online service APIs of
9385 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9386 (license license:lgpl2.1+)))
9387
9388 (define-public gnome-clocks
9389 (package
9390 (name "gnome-clocks")
9391 (version "3.34.0")
9392 (source (origin
9393 (method url-fetch)
9394 (uri (string-append "mirror://gnome/sources/" name "/"
9395 (version-major+minor version) "/"
9396 name "-" version ".tar.xz"))
9397 (sha256
9398 (base32
9399 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9400 (build-system meson-build-system)
9401 (arguments
9402 '(#:glib-or-gtk? #t
9403 #:phases
9404 (modify-phases %standard-phases
9405 (add-after 'unpack 'skip-gtk-update-icon-cache
9406 ;; Don't create 'icon-theme.cache'.
9407 (lambda _
9408 (substitute* "build-aux/post-install.py"
9409 (("gtk-update-icon-cache") "true"))
9410 #t)))))
9411 (native-inputs
9412 `(("vala" ,vala)
9413 ("pkg-config" ,pkg-config)
9414 ("glib" ,glib "bin") ; for glib-compile-resources
9415 ("desktop-file-utils" ,desktop-file-utils)
9416 ("gettext" ,gettext-minimal)
9417 ("itstool" ,itstool)))
9418 (inputs
9419 `(("glib" ,glib)
9420 ("gtk+" ,gtk+)
9421 ("gsound" ,gsound)
9422 ("geoclue" ,geoclue)
9423 ("geocode-glib" ,geocode-glib)
9424 ("libgweather" ,libgweather)
9425 ("gnome-desktop" ,gnome-desktop)))
9426 (home-page "https://wiki.gnome.org/Apps/Clocks")
9427 (synopsis "GNOME's clock application")
9428 (description
9429 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9430 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9431 (license license:gpl3+)))
9432
9433 (define-public gnome-calendar
9434 (package
9435 (name "gnome-calendar")
9436 (version "3.34.2")
9437 (source (origin
9438 (method url-fetch)
9439 (uri (string-append "mirror://gnome/sources/" name "/"
9440 (version-major+minor version) "/"
9441 name "-" version ".tar.xz"))
9442 (sha256
9443 (base32
9444 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9445 (build-system meson-build-system)
9446 (arguments
9447 '(#:glib-or-gtk? #t
9448 ;; gnome-calendar has to be installed before the tests can be run
9449 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9450 #:tests? #f
9451 #:phases
9452 (modify-phases %standard-phases
9453 (add-after 'unpack 'skip-gtk-update-icon-cache
9454 ;; Don't create 'icon-theme.cache'.
9455 (lambda _
9456 (substitute* "build-aux/meson/meson_post_install.py"
9457 (("gtk-update-icon-cache") "true"))
9458 #t)))))
9459 (native-inputs
9460 `(("gettext" ,gettext-minimal)
9461 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9462 ("pkg-config" ,pkg-config)))
9463 (inputs
9464 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9465 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9466 ("libdazzle" ,libdazzle)
9467 ("libedataserverui" ,evolution-data-server)
9468 ("libgweather" ,libgweather)
9469 ("geoclue" ,geoclue)))
9470 (propagated-inputs
9471 `(("evolution-data-server" ,evolution-data-server)))
9472 (home-page "https://wiki.gnome.org/Apps/Calendar")
9473 (synopsis "GNOME's calendar application")
9474 (description
9475 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9476 desktop. It supports multiple calendars, month, week and year view.")
9477 (license license:gpl3+)))
9478
9479 (define-public gnome-todo
9480 (package
9481 (name "gnome-todo")
9482 (version "3.28.1")
9483 (source (origin
9484 (method url-fetch)
9485 (uri (string-append "mirror://gnome/sources/" name "/"
9486 (version-major+minor version) "/"
9487 name "-" version ".tar.xz"))
9488 (sha256
9489 (base32
9490 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9491 (patches
9492 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9493 (build-system meson-build-system)
9494 (arguments
9495 '(#:glib-or-gtk? #t
9496 #:phases (modify-phases %standard-phases
9497 (add-after
9498 'install 'wrap-gnome-todo
9499 (lambda* (#:key inputs outputs #:allow-other-keys)
9500 (let ((out (assoc-ref outputs "out"))
9501 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9502 (python-path (getenv "PYTHONPATH")))
9503 (wrap-program (string-append out "/bin/gnome-todo")
9504 ;; XXX: gi plugins are broken.
9505 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9506 ;; For plugins.
9507 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9508 `("PYTHONPATH" ":" prefix (,python-path))))
9509 #t)))))
9510 (native-inputs
9511 `(("gettext" ,gettext-minimal)
9512 ("gobject-introspection" ,gobject-introspection)
9513 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9514 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9515 ("pkg-config" ,pkg-config)))
9516 (inputs
9517 `(("rest" ,rest) ; For Todoist plugin
9518 ("json-glib" ,json-glib) ; For Todoist plugin
9519 ("libedataserverui" ,evolution-data-server)
9520 ("libical" ,libical)
9521 ("libpeas" ,libpeas)
9522 ("python-pygobject" ,python-pygobject)
9523 ("evolution-data-server" ,evolution-data-server)
9524 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9525 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9526 (home-page "https://wiki.gnome.org/Apps/Todo")
9527 (synopsis "GNOME's ToDo Application")
9528 (description
9529 "GNOME To Do is a simplistic personal task manager designed to perfectly
9530 fit the GNOME desktop.")
9531 (license license:gpl3+)))
9532
9533 (define-public gnome-dictionary
9534 (package
9535 (name "gnome-dictionary")
9536 (version "3.26.1")
9537 (source (origin
9538 (method url-fetch)
9539 (uri (string-append "mirror://gnome/sources/" name "/"
9540 (version-major+minor version) "/"
9541 name "-" version ".tar.xz"))
9542 (sha256
9543 (base32
9544 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9545 (build-system meson-build-system)
9546 (arguments '(#:glib-or-gtk? #t
9547 #:phases (modify-phases %standard-phases
9548 (add-after 'unpack 'patch-install-script
9549 (lambda _
9550 ;; This script attempts to compile glib schemas
9551 ;; and create an empty MIME database. We do
9552 ;; that elsewhere, so prevent it from running.
9553 (substitute* "build-aux/post-install.sh"
9554 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9555 #t)))))
9556 (native-inputs
9557 `(("glib:bin" ,glib "bin")
9558 ("gobject-introspection" ,gobject-introspection)
9559 ("intltool" ,intltool)
9560 ("itstool" ,itstool)
9561 ("pkg-config" ,pkg-config)
9562 ("xmllint" ,libxml2)))
9563 (inputs
9564 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9565 ("gtk+" ,gtk+)))
9566 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9567 (synopsis "Look up words in dictionary sources")
9568 (description
9569 "GNOME Dictionary can look for the definition or translation of a word in
9570 existing databases over the internet.")
9571 (license license:gpl3+)))
9572
9573 (define-public gnome-tweaks
9574 (package
9575 (name "gnome-tweaks")
9576 (version "3.34.1")
9577 (source (origin
9578 (method url-fetch)
9579 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9580 (version-major+minor version) "/"
9581 "gnome-tweaks-" version ".tar.xz"))
9582 (patches
9583 (list (search-patch "gnome-tweaks-search-paths.patch")))
9584 (sha256
9585 (base32
9586 "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq"))))
9587 (build-system meson-build-system)
9588 (arguments
9589 `(#:glib-or-gtk? #t
9590 #:configure-flags '("-Dlocalstatedir=/tmp"
9591 "-Dsysconfdir=/tmp")
9592 #:imported-modules ((guix build python-build-system)
9593 ,@%meson-build-system-modules)
9594 #:phases
9595 (modify-phases %standard-phases
9596 (add-after 'unpack 'skip-gtk-update-icon-cache
9597 ;; Don't create 'icon-theme.cache'.
9598 (lambda _
9599 (substitute* "meson-postinstall.py"
9600 (("gtk-update-icon-cache") "true"))
9601 #t))
9602 (add-after 'install 'wrap
9603 (@@ (guix build python-build-system) wrap))
9604 (add-after 'wrap 'wrap-gi-typelib
9605 (lambda* (#:key inputs outputs #:allow-other-keys)
9606 (let ((out (assoc-ref outputs "out"))
9607 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9608 (wrap-program (string-append out "/bin/gnome-tweaks")
9609 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9610 #t)))))
9611 (native-inputs
9612 `(("intltool" ,intltool)
9613 ("pkg-config" ,pkg-config)))
9614 (inputs
9615 `(("gnome-desktop" ,gnome-desktop)
9616 ("gtk+" ,gtk+)
9617 ("gobject-introspection" ,gobject-introspection)
9618 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9619 ("libhandy" ,libhandy-0.0)
9620 ("libnotify" ,libnotify)
9621 ("libsoup" ,libsoup)
9622 ("nautilus" ,nautilus)
9623 ("python" ,python)
9624 ("python-pygobject" ,python-pygobject)))
9625 (synopsis "Customize advanced GNOME 3 options")
9626 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9627 (description
9628 "GNOME Tweaks allows adjusting advanced configuration settings in
9629 GNOME 3. This includes things like the fonts used in user interface elements,
9630 alternative user interface themes, changes in window management behavior,
9631 GNOME Shell appearance and extension, etc.")
9632 (license license:gpl3+)))
9633
9634 (define-public gnome-shell-extensions
9635 (package
9636 (name "gnome-shell-extensions")
9637 (version "3.34.2")
9638 (source (origin
9639 (method url-fetch)
9640 (uri (string-append "mirror://gnome/sources/" name "/"
9641 (version-major+minor version) "/"
9642 name "-" version ".tar.xz"))
9643 (sha256
9644 (base32
9645 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9646 (build-system meson-build-system)
9647 (arguments
9648 '(#:configure-flags '("-Dextension_set=all")))
9649 (native-inputs
9650 `(("glib:bin" ,glib "bin")
9651 ("intltool" ,intltool)
9652 ("pkg-config" ,pkg-config)))
9653 (propagated-inputs
9654 `(("glib" ,glib)))
9655 (synopsis "Extensions for GNOME Shell")
9656 (description "GNOME Shell extensions modify and extend GNOME Shell
9657 functionality and behavior.")
9658 (home-page "https://extensions.gnome.org/")
9659 (license license:gpl3+)))
9660
9661 (define-public folks
9662 (package
9663 (name "folks")
9664 (version "0.13.1")
9665 (source (origin
9666 (method url-fetch)
9667 (uri (string-append
9668 "mirror://gnome/sources/folks/"
9669 (version-major+minor version) "/"
9670 "folks-" version ".tar.xz"))
9671 (sha256
9672 (base32
9673 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9674 (build-system meson-build-system)
9675 (arguments
9676 '(#:phases
9677 (modify-phases %standard-phases
9678 (add-after 'unpack 'skip-gtk-update-icon-cache
9679 ;; Don't create 'icon-theme.cache'.
9680 (lambda _
9681 (substitute* "meson_post_install.py"
9682 (("gtk-update-icon-cache") "true"))
9683 #t)))))
9684 (inputs
9685 `(("bdb" ,bdb)
9686 ("dbus-glib" ,dbus-glib)
9687 ("evolution-data-server" ,evolution-data-server)
9688 ("glib" ,glib)
9689 ("libgee" ,libgee)
9690 ("readline" ,readline)
9691 ("telepathy-glib" ,telepathy-glib)))
9692 (native-inputs
9693 `(("glib:bin" ,glib "bin")
9694 ("gobject-introspection" ,gobject-introspection)
9695 ("intltool" ,intltool)
9696 ("pkg-config" ,pkg-config)
9697 ("vala" ,vala)))
9698 (synopsis "Library to aggregate data about people")
9699 (description "Libfolks is a library that aggregates information about people
9700 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9701 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9702 etc.) to create metacontacts. It's written in Vala, which generates C code when
9703 compiled.")
9704 (home-page "https://wiki.gnome.org/Projects/Folks")
9705 (license license:lgpl2.1+)))
9706
9707 (define-public gfbgraph
9708 (package
9709 (name "gfbgraph")
9710 (version "0.2.4")
9711 (source (origin
9712 (method url-fetch)
9713 (uri (string-append
9714 "mirror://gnome/sources/gfbgraph/"
9715 (version-major+minor version) "/"
9716 "gfbgraph-" version ".tar.xz"))
9717 (sha256
9718 (base32
9719 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9720 (build-system glib-or-gtk-build-system)
9721 (arguments
9722 `(#:tests? #f ; tests appear to require the network
9723 #:configure-flags '("--disable-static"
9724 "--enable-gtk-doc"
9725 "--enable-introspection")))
9726 (native-inputs
9727 `(("gobject-introspection" ,gobject-introspection)
9728 ("gtk-doc" ,gtk-doc)
9729 ("pkg-config" ,pkg-config)
9730
9731 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9732 ("autoconf" ,autoconf)
9733 ("automake" ,automake)
9734 ("libtool" ,libtool)
9735 ("which" ,which)))
9736 (inputs
9737 `(("json-glib" ,json-glib)
9738 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9739 ("rest" ,rest)))
9740 (synopsis "GLib/GObject wrapper for the Facebook API")
9741 (description "This library allows you to use the Facebook API from
9742 GLib/GObject code.")
9743 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9744 (license license:lgpl2.1+)))
9745
9746 (define-public libgnomekbd
9747 (package
9748 (name "libgnomekbd")
9749 (version "3.26.1")
9750 (source (origin
9751 (method url-fetch)
9752 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9753 (version-major+minor version) "/"
9754 "libgnomekbd-" version ".tar.xz"))
9755 (sha256
9756 (base32
9757 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9758 (build-system gnu-build-system)
9759 (native-inputs
9760 `(("pkg-config" ,pkg-config)
9761 ("glib" ,glib "bin")
9762 ("intltool" ,intltool)))
9763 (propagated-inputs
9764 ;; Referred to in .h files and .pc.
9765 `(("glib" ,glib)
9766 ("gtk+" ,gtk+)
9767 ("libxklavier" ,libxklavier)))
9768 (home-page "https://www.gnome.org")
9769 (synopsis "GNOME keyboard configuration library")
9770 (description
9771 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9772 environment, which can notably display keyboard layouts.")
9773 (license license:lgpl2.0+)))
9774
9775 ;;; This package is no longer maintained:
9776 ;;; https://wiki.gnome.org/Attic/LibUnique
9777 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9778 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9779 (define-public libunique
9780 (package
9781 (name "libunique")
9782 (version "3.0.2")
9783 (source (origin
9784 (method url-fetch)
9785 (uri (string-append "mirror://gnome/sources/" name "/"
9786 (version-major+minor version) "/"
9787 name "-" version ".tar.xz"))
9788 (sha256
9789 (base32
9790 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9791 (build-system glib-or-gtk-build-system)
9792 (arguments
9793 `(#:configure-flags '("--disable-static"
9794 "--disable-dbus" ; use gdbus
9795 "--enable-introspection")))
9796 (native-inputs
9797 `(("pkg-config" ,pkg-config)
9798 ("gobject-introspection" ,gobject-introspection)
9799 ("glib:bin" ,glib "bin")
9800 ("gtk-doc" ,gtk-doc)))
9801 (propagated-inputs
9802 ;; Referred to in .h files and .pc.
9803 `(("gtk+" ,gtk+)))
9804 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9805 (synopsis "Library for writing single instance applications")
9806 (description
9807 "Libunique is a library for writing single instance applications. If you
9808 launch a single instance application twice, the second instance will either just
9809 quit or will send a message to the running instance. Libunique makes it easy to
9810 write this kind of application, by providing a base class, taking care of all
9811 the IPC machinery needed to send messages to a running instance, and also
9812 handling the startup notification side.")
9813 (license license:lgpl2.1+)))
9814
9815 (define-public gnome-calculator
9816 (package
9817 (name "gnome-calculator")
9818 (version "3.34.1")
9819 (source
9820 (origin
9821 (method url-fetch)
9822 (uri (string-append "mirror://gnome/sources/" name "/"
9823 (version-major+minor version) "/"
9824 name "-" version ".tar.xz"))
9825 (sha256
9826 (base32
9827 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9828 (build-system meson-build-system)
9829 (arguments '(#:glib-or-gtk? #t))
9830 (native-inputs
9831 `(("gettext" ,gettext-minimal)
9832 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9833 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9834 ("itstool" ,itstool)
9835 ("vala" ,vala)
9836 ("pkg-config" ,pkg-config)))
9837 (inputs
9838 `(("glib" ,glib)
9839 ("gtksourceview" ,gtksourceview)
9840 ("libgee" ,libgee)
9841 ("libsoup" ,libsoup)
9842 ("libxml2" ,libxml2)
9843 ("mpc" ,mpc)
9844 ("mpfr" ,mpfr)))
9845 (home-page "https://wiki.gnome.org/Apps/Calculator")
9846 (synopsis "Desktop calculator")
9847 (description
9848 "Calculator is an application that solves mathematical equations and
9849 is suitable as a default application in a Desktop environment.")
9850 (license license:gpl3)))
9851
9852 (define-public xpad
9853 (package
9854 (name "xpad")
9855 (version "5.1.0")
9856 (source
9857 (origin
9858 (method url-fetch)
9859 (uri (string-append "https://launchpad.net/xpad/trunk/"
9860 version "/+download/"
9861 name "-" version ".tar.bz2"))
9862 (sha256
9863 (base32
9864 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9865 (build-system gnu-build-system)
9866 (native-inputs
9867 `(("autoconf" ,autoconf)
9868 ("automake" ,automake)
9869 ("gtk+:bin" ,gtk+ "bin")
9870 ("intltool" ,intltool)
9871 ("pkg-config" ,pkg-config)))
9872 (inputs
9873 `(("gtksourceview" ,gtksourceview-3)
9874 ("libsm" ,libsm)))
9875 (home-page "https://wiki.gnome.org/Apps/Xpad")
9876 (synopsis "Virtual sticky note")
9877 (description
9878 "Xpad is a sticky note that strives to be simple, fault tolerant,
9879 and customizable. Xpad consists of independent pad windows, each is
9880 basically a text box in which notes can be written.")
9881 (license license:gpl3+)))
9882
9883 (define-public gucharmap
9884 (let ((unicode-files
9885 '(("Blocks.txt"
9886 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9887 ("DerivedAge.txt"
9888 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9889 ("NamesList.txt"
9890 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9891 ("Scripts.txt"
9892 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9893 ("UnicodeData.txt"
9894 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9895 ("Unihan.zip"
9896 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9897 (package
9898 (name "gucharmap")
9899 (version "12.0.1")
9900 (source
9901 (origin
9902 (method url-fetch)
9903 (uri (string-append "mirror://gnome/sources/" name "/"
9904 (version-major+minor version) "/"
9905 name "-" version ".tar.xz"))
9906 (sha256
9907 (base32
9908 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9909 (build-system glib-or-gtk-build-system)
9910 (arguments
9911 `(#:modules ((ice-9 match)
9912 (guix build glib-or-gtk-build-system)
9913 (guix build utils))
9914 #:configure-flags
9915 (list "--with-unicode-data=../unicode-data")
9916 #:phases
9917 (modify-phases %standard-phases
9918 (add-after 'unpack 'prepare-unicode-data
9919 (lambda* (#:key inputs #:allow-other-keys)
9920 (mkdir-p "../unicode-data")
9921 (with-directory-excursion "../unicode-data"
9922 (for-each (match-lambda
9923 ((file _)
9924 (install-file (assoc-ref inputs file) ".")))
9925 ',unicode-files))
9926 #t)))))
9927 (native-inputs
9928 `(("desktop-file-utils" ,desktop-file-utils)
9929 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9930 ("gobject-introspection" ,gobject-introspection)
9931 ("intltool" ,intltool)
9932 ("itstool" ,itstool)
9933 ("pkg-config" ,pkg-config)
9934 ,@(map (match-lambda
9935 ((file hash)
9936 `(,file
9937 ,(origin
9938 (method url-fetch)
9939 (uri (string-append
9940 "http://www.unicode.org/Public/12.0.0/ucd/"
9941 file))
9942 (sha256 (base32 hash))))))
9943 unicode-files)
9944 ("unzip" ,unzip)))
9945 (inputs
9946 `(("gtk+" ,gtk+)
9947 ("xmllint" ,libxml2)))
9948 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9949 (synopsis "Unicode character picker and font browser")
9950 (description
9951 "This program allows you to browse through all the available Unicode
9952 characters and categories for the installed fonts, and to examine their
9953 detailed properties. It is an easy way to find the character you might
9954 only know by its Unicode name or code point.")
9955 (license license:gpl3+))))
9956
9957 (define-public bluefish
9958 (package
9959 (name "bluefish")
9960 (version "2.2.12")
9961 (source
9962 (origin
9963 (method url-fetch)
9964 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
9965 "bluefish-" version ".tar.gz"))
9966 (sha256
9967 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
9968 (build-system gnu-build-system)
9969 (native-inputs
9970 `(("desktop-file-utils" ,desktop-file-utils)
9971 ("intltool" ,intltool)
9972 ("pkg-config" ,pkg-config)))
9973 (inputs
9974 `(("enchant" ,enchant)
9975 ("gtk+" ,gtk+)
9976 ("python" ,python-wrapper)
9977 ("xmllint" ,libxml2)
9978 ("gucharmap" ,gucharmap)))
9979 (home-page "http://bluefish.openoffice.nl")
9980 (synopsis "Web development studio")
9981 (description
9982 "Bluefish is an editor aimed at programmers and web developers,
9983 with many options to write web sites, scripts and other code.
9984 Bluefish supports many programming and markup languages.")
9985 (license license:gpl3+)))
9986
9987 (define-public gnome-system-monitor
9988 (package
9989 (name "gnome-system-monitor")
9990 (version "3.32.1")
9991 (source
9992 (origin
9993 (method url-fetch)
9994 (uri (string-append "mirror://gnome/sources/" name "/"
9995 (version-major+minor version) "/"
9996 name "-" version ".tar.xz"))
9997 (sha256
9998 (base32
9999 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
10000 (build-system meson-build-system)
10001 (arguments
10002 '(#:glib-or-gtk? #t
10003 #:configure-flags '("-Dsystemd=false")))
10004 (native-inputs
10005 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
10006 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
10007 ("intltool" ,intltool)
10008 ("itstool" ,itstool)
10009 ("libgtop" ,libgtop)
10010 ("polkit" ,polkit)
10011 ("pkg-config" ,pkg-config)))
10012 (inputs
10013 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
10014 ("gtk+" ,gtk+)
10015 ("gtkmm" ,gtkmm)
10016 ("librsvg" ,librsvg)
10017 ("libxml2" ,libxml2)
10018 ("libwnck" ,libwnck)))
10019 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10020 (synopsis "Process viewer and system resource monitor for GNOME")
10021 (description
10022 "GNOME System Monitor is a GNOME process viewer and system monitor with
10023 an attractive, easy-to-use interface. It has features, such as a tree view
10024 for process dependencies, icons for processes, the ability to hide processes,
10025 graphical time histories of CPU/memory/swap usage and the ability to
10026 kill/reinice processes.")
10027 (license license:gpl2+)))
10028
10029 (define-public python-pyatspi
10030 (package
10031 (name "python-pyatspi")
10032 (version "2.34.0")
10033 (source (origin
10034 (method url-fetch)
10035 (uri (string-append
10036 "mirror://gnome/sources/pyatspi/"
10037 (version-major+minor version)
10038 "/pyatspi-" version ".tar.xz"))
10039 (sha256
10040 (base32
10041 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10042 (build-system gnu-build-system)
10043 (arguments
10044 `(#:phases
10045 (modify-phases %standard-phases
10046 (add-before 'build 'fix-atk-load
10047 (lambda _
10048 (substitute* "pyatspi/__init__.py"
10049 (("from gi.repository import Atspi")
10050 "gi.require_version('Gtk', '3.0')
10051 from gi.repository import Gtk
10052 from gi.repository import Atspi"))
10053 #t)))))
10054 (native-inputs
10055 `(("pkg-config" ,pkg-config)))
10056 (inputs
10057 `(("python" ,python)))
10058 (propagated-inputs
10059 `(("python-pygobject" ,python-pygobject)))
10060 (synopsis "Python client bindings for D-Bus AT-SPI")
10061 (home-page "https://wiki.linuxfoundation.org/accessibility\
10062 /atk/at-spi/at-spi_on_d-bus")
10063 (description
10064 "This package includes a python client library for the AT-SPI D-Bus
10065 accessibility infrastructure.")
10066 (license license:lgpl2.0)
10067 (properties '((upstream-name . "pyatspi")))))
10068
10069 (define-public python2-pyatspi
10070 (package
10071 (inherit python-pyatspi)
10072 (name "python2-pyatspi")
10073 (inputs
10074 `(("python" ,python-2)))
10075 (propagated-inputs
10076 `(("python-pygobject" ,python2-pygobject)))))
10077
10078 (define-public orca
10079 (package
10080 (name "orca")
10081 (version "3.34.1")
10082 (source (origin
10083 (method url-fetch)
10084 (uri (string-append
10085 "mirror://gnome/sources/" name "/"
10086 (version-major+minor version) "/"
10087 name "-" version ".tar.xz"))
10088 (sha256
10089 (base32
10090 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
10091 (build-system glib-or-gtk-build-system)
10092 (arguments
10093 '(#:phases
10094 (modify-phases %standard-phases
10095 (add-before 'configure 'qualify-xkbcomp
10096 (lambda* (#:key inputs #:allow-other-keys)
10097 (let ((xkbcomp (string-append
10098 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10099 (substitute* "src/orca/orca.py"
10100 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
10101 #t))
10102 (add-after 'install 'wrap-orca
10103 (lambda* (#:key outputs #:allow-other-keys)
10104 (let* ((out (assoc-ref outputs "out"))
10105 (prog (string-append out "/bin/orca")))
10106 (wrap-program prog
10107 `("GI_TYPELIB_PATH" ":" prefix
10108 (,(getenv "GI_TYPELIB_PATH")))
10109 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10110 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10111 `("PYTHONPATH" ":" prefix
10112 (,(getenv "PYTHONPATH")))))
10113 #t)))))
10114 (native-inputs
10115 `(("intltool" ,intltool)
10116 ("itstool" ,itstool)
10117 ("pkg-config" ,pkg-config)
10118 ("xmllint" ,libxml2)))
10119 (inputs
10120 `(("at-spi2-atk" ,at-spi2-atk)
10121 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10122 ("gstreamer" ,gstreamer)
10123 ("gst-plugins-base" ,gst-plugins-base)
10124 ("gst-plugins-good" ,gst-plugins-good)
10125 ("gtk+" ,gtk+)
10126 ("python" ,python)
10127 ("python-pygobject" ,python-pygobject)
10128 ("python-pyatspi" ,python-pyatspi)
10129 ("python-speechd" ,speech-dispatcher)
10130 ("xkbcomp" ,xkbcomp)))
10131 (synopsis
10132 "Screen reader for individuals who are blind or visually impaired")
10133 (home-page "https://wiki.gnome.org/Projects/Orca")
10134 (description
10135 "Orca is a screen reader that provides access to the graphical desktop
10136 via speech and refreshable braille. Orca works with applications and toolkits
10137 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10138 (license license:lgpl2.1+)))
10139
10140 (define-public gspell
10141 (package
10142 (name "gspell")
10143 (version "1.8.2")
10144 (source (origin
10145 (method url-fetch)
10146 (uri (string-append "mirror://gnome/sources/" name "/"
10147 (version-major+minor version) "/"
10148 name "-" version ".tar.xz"))
10149 (sha256
10150 (base32
10151 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10152 (patches (search-patches "gspell-dash-test.patch"))))
10153 (build-system glib-or-gtk-build-system)
10154 (arguments
10155 '(#:configure-flags (list "--enable-vala")
10156 #:phases
10157 (modify-phases %standard-phases
10158 (add-before 'check 'pre-check
10159 (lambda* (#:key inputs #:allow-other-keys)
10160 ;; Tests require a running X server.
10161 (system "Xvfb :1 &")
10162 (setenv "DISPLAY" ":1")
10163
10164 ;; For the missing /etc/machine-id.
10165 (setenv "DBUS_FATAL_WARNINGS" "0")
10166
10167 ;; Allow Enchant and its Aspell backend to find the en_US
10168 ;; dictionary.
10169 (setenv "ASPELL_DICT_DIR"
10170 (string-append (assoc-ref inputs "aspell-dict-en")
10171 "/lib/aspell"))
10172 #t)))))
10173 (inputs
10174 `(("gtk+" ,gtk+)
10175 ("glib" ,glib)
10176 ("iso-codes" ,iso-codes)))
10177 (native-inputs
10178 `(("glib" ,glib "bin")
10179 ("gobject-introspection" ,gobject-introspection)
10180 ("pkg-config" ,pkg-config)
10181 ("vala" ,vala) ;for VAPI, needed by Geary
10182 ("xmllint" ,libxml2)
10183
10184 ;; For tests.
10185 ("aspell-dict-en" ,aspell-dict-en)
10186 ("xorg-server" ,xorg-server-for-tests)))
10187 (propagated-inputs
10188 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
10189 (home-page "https://wiki.gnome.org/Projects/gspell")
10190 (synopsis "GNOME's alternative spell checker")
10191 (description
10192 "gspell provides a flexible API to add spell-checking to a GTK+
10193 application. It provides a GObject API, spell-checking to text entries and
10194 text views, and buttons to choose the language.")
10195 (license license:gpl2+)))
10196
10197 (define-public gnome-planner
10198 (package
10199 (name "gnome-planner")
10200 (version "0.14.6")
10201 (source (origin
10202 (method url-fetch)
10203 (uri (string-append "mirror://gnome/sources/planner/"
10204 (version-major+minor version) "/planner-"
10205 version ".tar.xz"))
10206 (sha256
10207 (base32
10208 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10209 (build-system glib-or-gtk-build-system)
10210 (arguments
10211 ;; Disable the Python bindings because the Planner program functions
10212 ;; without them, and (as of 2017-06-13) we have not packaged all of
10213 ;; packages that are necessary for building the Python bindings.
10214 `(#:configure-flags
10215 (list "--disable-python"
10216 ,@(if (string=? "aarch64-linux" (%current-system))
10217 '("--build=aarch64-unknown-linux-gnu")
10218 '()))))
10219 (inputs
10220 `(("libgnomecanvas" ,libgnomecanvas)
10221 ("libgnomeui" ,libgnomeui)
10222 ("libglade" ,libglade)
10223 ("gnome-vfs" ,gnome-vfs)
10224 ("gconf" ,gconf)
10225 ("libxml2" ,libxml2)
10226 ("libxslt" ,libxslt)
10227 ("gtk+" ,gtk+)
10228 ("glib" ,glib)))
10229 (native-inputs
10230 `(("intltool" ,intltool)
10231 ("scrollkeeper" ,scrollkeeper)
10232 ("pkg-config" ,pkg-config)))
10233 (home-page "https://wiki.gnome.org/Apps/Planner")
10234 (synopsis "Project management software for the GNOME desktop")
10235 (description
10236 "GNOME Planner is a project management tool based on the Work Breakdown
10237 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10238 the resources, tasks, and constraints that you define, Planner generates
10239 various views into a project. For example, Planner can show a Gantt chart of
10240 the project. It can show a detailed summary of tasks including their
10241 duration, cost, and current progress. It can also show a report of resource
10242 utilization that highlights under-utilized and over-utilized resources. These
10243 views can be printed as PDF or PostScript files, or exported to HTML.")
10244 (license license:gpl2+)))
10245
10246 (define-public lollypop
10247 (package
10248 (name "lollypop")
10249 (version "1.4.6")
10250 (source
10251 (origin
10252 (method url-fetch)
10253 (uri (string-append "https://adishatz.org/lollypop/"
10254 "lollypop-" version ".tar.xz"))
10255 (sha256
10256 (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
10257 (build-system meson-build-system)
10258 (arguments
10259 `(#:imported-modules
10260 (,@%meson-build-system-modules
10261 (guix build python-build-system))
10262 #:modules
10263 ((guix build meson-build-system)
10264 ((guix build python-build-system) #:prefix python:)
10265 (guix build utils))
10266 #:glib-or-gtk? #t
10267 #:tests? #f ; no test suite
10268 #:phases
10269 (modify-phases %standard-phases
10270 (add-after 'install 'wrap-program
10271 (lambda* (#:key outputs #:allow-other-keys)
10272 (let ((out (assoc-ref outputs "out"))
10273 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10274 (wrap-program (string-append out "/bin/lollypop")
10275 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10276 #t))
10277 (add-after 'install 'wrap-python
10278 (assoc-ref python:%standard-phases 'wrap)))))
10279 (native-inputs
10280 `(("intltool" ,intltool)
10281 ("itstool" ,itstool)
10282 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10283 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10284 ("pkg-config" ,pkg-config)))
10285 (inputs
10286 `(("glib-networking" ,glib-networking)
10287 ("gobject-introspection" ,gobject-introspection)
10288 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10289 ("gst-plugins-base" ,gst-plugins-base)
10290 ("libnotify" ,libnotify)
10291 ("libsecret" ,libsecret)
10292 ("libhandy" ,libhandy)
10293 ("libsoup" ,libsoup)
10294 ("python" ,python)
10295 ("python-beautifulsoup4" ,python-beautifulsoup4)
10296 ("python-gst" ,python-gst)
10297 ("python-pil" ,python-pillow)
10298 ("python-pycairo" ,python-pycairo)
10299 ("python-pygobject" ,python-pygobject)
10300 ("python-pylast" ,python-pylast)
10301 ("totem-pl-parser" ,totem-pl-parser)
10302 ("webkitgtk" ,webkitgtk)))
10303 (propagated-inputs
10304 `(;; gst-plugins-base is required to start Lollypop,
10305 ;; the others are required to play streaming.
10306 ("gst-plugins-good" ,gst-plugins-good)
10307 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10308 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10309 (synopsis "GNOME music playing application")
10310 (description
10311 "Lollypop is a music player designed to play well with GNOME desktop.
10312 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10313 from artists and tracks from the web. It also fetches cover artworks
10314 automatically and it can stream songs from online music services and charts.")
10315 (license license:gpl3+)))
10316
10317 (define-public gnome-video-effects
10318 (package
10319 (name "gnome-video-effects")
10320 (version "0.5.0")
10321 (source (origin
10322 (method url-fetch)
10323 (uri (string-append "mirror://gnome/sources/" name "/"
10324 (version-major+minor version) "/" name "-"
10325 version ".tar.xz"))
10326 (sha256
10327 (base32
10328 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10329 (build-system meson-build-system)
10330 (native-inputs
10331 `(("gettext" ,gettext-minimal)
10332 ("pkg-config" ,pkg-config)))
10333 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10334 (synopsis "Video effects for Cheese and other GNOME applications")
10335 (description
10336 "A collection of GStreamer video filters and effects to be used in
10337 photo-booth-like software, such as Cheese.")
10338 (license license:gpl2+)))
10339
10340 (define-public cheese
10341 (package
10342 (name "cheese")
10343 (version "3.38.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 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10352 (arguments
10353 `(#:glib-or-gtk? #t
10354 ;; Tests require GDK.
10355 #:tests? #f
10356 #:phases
10357 (modify-phases %standard-phases
10358 (add-after 'unpack 'skip-gtk-update-icon-cache
10359 (lambda _
10360 ;; Don't create 'icon-theme.cache'
10361 (substitute* "meson_post_install.py"
10362 (("gtk-update-icon-cache") (which "true")))
10363 #t))
10364 (add-after 'unpack 'patch-docbook-xml
10365 (lambda* (#:key inputs #:allow-other-keys)
10366 ;; Avoid a network connection attempt during the build.
10367 (substitute* '("docs/reference/cheese.xml"
10368 "docs/reference/cheese-docs.xml")
10369 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10370 (string-append (assoc-ref inputs "docbook-xml")
10371 "/xml/dtd/docbook/docbookx.dtd")))
10372 #t))
10373 (add-after 'install 'wrap-cheese
10374 (lambda* (#:key inputs outputs #:allow-other-keys)
10375 (let ((out (assoc-ref outputs "out"))
10376 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10377 (wrap-program (string-append out "/bin/cheese")
10378 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10379 #t)))))
10380 (build-system meson-build-system)
10381 (native-inputs
10382 `(("docbook-xsl" ,docbook-xsl)
10383 ("docbook-xml" ,docbook-xml-4.3)
10384 ("gettext" ,gettext-minimal)
10385 ("glib:bin" ,glib "bin")
10386 ("gtk-doc" ,gtk-doc)
10387 ("itstool" ,itstool)
10388 ("libxml2" ,libxml2)
10389 ("libxslt" ,libxslt)
10390 ("pkg-config" ,pkg-config)
10391 ("vala" ,vala)))
10392 (propagated-inputs
10393 `(("gnome-video-effects" ,gnome-video-effects)
10394 ("clutter" ,clutter)
10395 ("clutter-gst" ,clutter-gst)
10396 ("clutter-gtk" ,clutter-gtk)
10397 ("libcanberra" ,libcanberra)
10398 ("gdk-pixbuf" ,gdk-pixbuf)
10399 ("glib" ,glib)
10400 ("gstreamer" ,gstreamer)))
10401 (inputs
10402 `(("gnome-desktop" ,gnome-desktop)
10403 ("gobject-introspection" ,gobject-introspection)
10404 ("gst-plugins-base" ,gst-plugins-base)
10405 ("gst-plugins-good" ,gst-plugins-good)
10406 ("gst-plugins-bad" ,gst-plugins-bad)
10407 ("gtk+" ,gtk+)
10408 ("libx11" ,libx11)
10409 ("libxtst" ,libxtst)))
10410 (home-page "https://wiki.gnome.org/Apps/Cheese")
10411 (synopsis "Webcam photo booth software for GNOME")
10412 (description
10413 "Cheese uses your webcam to take photos and videos. Cheese can also
10414 apply fancy special effects and lets you share the fun with others.")
10415 (license license:gpl2+)))
10416
10417 (define-public passwordsafe
10418 (package
10419 (name "passwordsafe")
10420 (version "3.99.2")
10421 (source
10422 (origin
10423 (method git-fetch)
10424 (uri (git-reference
10425 (url "https://gitlab.gnome.org/World/PasswordSafe")
10426 (commit version)))
10427 (file-name (git-file-name name version))
10428 (sha256
10429 (base32 "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf"))))
10430 (build-system meson-build-system)
10431 (arguments
10432 `(#:glib-or-gtk? #t
10433 #:phases
10434 (modify-phases %standard-phases
10435 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10436 (lambda* (#:key outputs #:allow-other-keys)
10437 (let ((prog (string-append (assoc-ref outputs "out")
10438 "/bin/gnome-passwordsafe"))
10439 (pylib (string-append (assoc-ref outputs "out")
10440 "/lib/python"
10441 ,(version-major+minor
10442 (package-version python))
10443 "/site-packages")))
10444 (wrap-program prog
10445 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10446 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10447 #t))))))
10448 (native-inputs
10449 `(("desktop-file-utils" ,desktop-file-utils)
10450 ("gettext" ,gettext-minimal)
10451 ("glib:bin" ,glib "bin")
10452 ("gobject-introspection" ,gobject-introspection)
10453 ("gtk+:bin" ,gtk+ "bin")
10454 ("pkg-config" ,pkg-config)))
10455 (inputs
10456 `(("glib" ,glib)
10457 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10458 ("gtk+" ,gtk+)
10459 ("libhandy" ,libhandy-0.0)
10460 ("libpwquality" ,libpwquality)
10461 ("python-pygobject" ,python-pygobject)
10462 ("python-pykeepass" ,python-pykeepass)))
10463 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
10464 (synopsis "Password manager for the GNOME desktop")
10465 (description
10466 "Password Safe is a password manager which makes use of the KeePass v4
10467 format. It integrates perfectly with the GNOME desktop and provides an easy
10468 and uncluttered interface for the management of password databases.")
10469 (license license:gpl3+)))
10470
10471 (define-public sound-juicer
10472 (package
10473 (name "sound-juicer")
10474 (version "3.24.0")
10475 (source
10476 (origin
10477 (method url-fetch)
10478 (uri (string-append "mirror://gnome/sources/" name "/"
10479 (version-major+minor version) "/"
10480 name "-" version ".tar.xz"))
10481 (sha256
10482 (base32
10483 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10484 (build-system glib-or-gtk-build-system)
10485 (native-inputs
10486 `(("desktop-file-utils" ,desktop-file-utils)
10487 ("intltool" ,intltool)
10488 ("itstool" ,itstool)
10489 ("pkg-config" ,pkg-config)
10490 ("xmllint" ,libxml2)))
10491 (inputs
10492 `(("gtk+" ,gtk+)
10493 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10494 ("gstreamer" ,gstreamer)
10495 ("gst-plugins-base" ,gst-plugins-base)
10496 ("gst-plugins-good" ,gst-plugins-good)
10497 ("iso-codes" ,iso-codes)
10498 ("libbrasero-media3" ,brasero)
10499 ("libcanberra" ,libcanberra)
10500 ("libdiscid" ,libdiscid)
10501 ("libmusicbrainz" ,libmusicbrainz)
10502 ("neon" ,neon)))
10503 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10504 (synopsis "Audio music cd ripper")
10505 (description "Sound Juicer extracts audio from compact discs and convert it
10506 into audio files that a personal computer or digital audio player can play.
10507 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10508 mp3, Ogg Vorbis and FLAC")
10509 (license license:gpl2+)))
10510
10511 (define-public soundconverter
10512 (package
10513 (name "soundconverter")
10514 (version "3.0.2")
10515 (source
10516 (origin
10517 (method url-fetch)
10518 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10519 version "/+download/"
10520 "soundconverter-" version ".tar.xz"))
10521
10522 (sha256
10523 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10524 (build-system glib-or-gtk-build-system)
10525 (arguments
10526 `(#:imported-modules ((guix build python-build-system)
10527 (guix build glib-or-gtk-build-system)
10528 ,@%gnu-build-system-modules)
10529
10530 #:modules ((guix build glib-or-gtk-build-system)
10531 (guix build utils)
10532 ((guix build gnu-build-system) #:prefix gnu:)
10533 ((guix build python-build-system) #:prefix python:))
10534
10535 #:phases
10536 (modify-phases %standard-phases
10537 (add-after 'install 'wrap-soundconverter-for-python
10538 (assoc-ref python:%standard-phases 'wrap))
10539 (add-after 'install 'wrap-soundconverter
10540 (lambda* (#:key inputs outputs #:allow-other-keys)
10541 (let ((out (assoc-ref outputs "out"))
10542 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10543 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10544 (wrap-program (string-append out "/bin/soundconverter")
10545 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10546 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10547 #t)))))
10548 (native-inputs
10549 `(("intltool" ,intltool)
10550 ("pkg-config" ,pkg-config)
10551 ("glib:bin" ,glib "bin")))
10552 (inputs
10553 `(("gtk+" ,gtk+)
10554 ("python" ,python)
10555 ("python-pygobject" ,python-pygobject)
10556 ("gstreamer" ,gstreamer)
10557 ("gst-plugins-base" ,gst-plugins-base)))
10558 (home-page "https://soundconverter.org/")
10559 (synopsis "Convert between audio formats with a graphical interface")
10560 (description
10561 "SoundConverter supports converting between many audio formats including
10562 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10563 configurable file renaming. ")
10564 (license license:gpl3)))
10565
10566 (define-public workrave
10567 (package
10568 (name "workrave")
10569 (version "1.10.42")
10570 (source
10571 (origin
10572 (method git-fetch)
10573 (uri (git-reference
10574 (url "https://github.com/rcaelers/workrave")
10575 (commit (string-append "v" (string-map
10576 (match-lambda (#\. #\_) (chr chr))
10577 version)))))
10578 (file-name (git-file-name name version))
10579 (sha256
10580 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
10581 (build-system glib-or-gtk-build-system)
10582 (arguments
10583 ;; The only tests are maintainer tests (in po/), which fail.
10584 `(#:tests? #f))
10585 (inputs `(("glib" ,glib)
10586 ("gtk+" ,gtk+)
10587 ("gdk-pixbuf" ,gdk-pixbuf)
10588 ("gtkmm" ,gtkmm)
10589 ("glibmm" ,glibmm)
10590 ("libx11" ,libx11)
10591 ("libxtst" ,libxtst)
10592 ("dconf" ,dconf)
10593 ("libice" ,libice)
10594 ("libsm" ,libsm)
10595 ("libxscrnsaver" ,libxscrnsaver)))
10596 (native-inputs `(("boost" ,boost)
10597 ("pkg-config" ,pkg-config)
10598 ("gettext" ,gettext-minimal)
10599 ("autoconf" ,autoconf)
10600 ("autoconf-archive" , autoconf-archive)
10601 ("automake" ,automake)
10602 ("libtool" ,libtool)
10603 ("intltool" ,intltool)
10604 ("gobject-introspection" ,gobject-introspection)
10605 ("python3" ,python-3)
10606 ("python-jinja2" ,python-jinja2)))
10607 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10608 (description
10609 "Workrave is a program that assists in the recovery and prevention of
10610 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10611 micro-pauses and rest breaks, and restricts you to your daily limit.")
10612 (home-page "http://www.workrave.org")
10613 (license license:gpl3+)))
10614
10615 (define-public ghex
10616 (package
10617 (name "ghex")
10618 (version "3.18.4")
10619 (source (origin
10620 (method url-fetch)
10621 (uri (string-append "mirror://gnome/sources/ghex/"
10622 (version-major+minor version) "/"
10623 "ghex-" version ".tar.xz"))
10624 (sha256
10625 (base32
10626 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10627 (build-system meson-build-system)
10628 (arguments
10629 '(#:glib-or-gtk? #t
10630 #:phases
10631 (modify-phases %standard-phases
10632 (add-after 'unpack 'skip-gtk-update-icon-cache
10633 ;; Don't create 'icon-theme.cache'.
10634 (lambda _
10635 (substitute* "meson_post_install.py"
10636 (("gtk-update-icon-cache") (which "true")))
10637 #t)))))
10638 (native-inputs
10639 `(("pkg-config" ,pkg-config)
10640 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10641 ("gnome-common" ,gnome-common)
10642 ("which" ,which)
10643 ("intltool" ,intltool)
10644 ("yelp-tools" ,yelp-tools)
10645 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10646 (inputs
10647 `(("atk" ,atk)
10648 ("gtk" ,gtk+)))
10649 (synopsis "GNOME hexadecimal editor")
10650 (description "The GHex program can view and edit files in two ways:
10651 hexadecimal or ASCII. It is useful for editing binary files in general.")
10652 (home-page "https://wiki.gnome.org/Apps/Ghex")
10653 (license license:gpl2)))
10654
10655 (define-public libdazzle
10656 (package
10657 (name "libdazzle")
10658 (version "3.37.1")
10659 (source (origin
10660 (method url-fetch)
10661 (uri (string-append "mirror://gnome/sources/libdazzle/"
10662 (version-major+minor version) "/"
10663 "libdazzle-" version ".tar.xz"))
10664 (sha256
10665 (base32
10666 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10667 (build-system meson-build-system)
10668 (arguments
10669 `(#:phases
10670 (modify-phases %standard-phases
10671 (add-before 'check 'pre-check
10672 (lambda _
10673 ;; Tests require a running X server.
10674 (system "Xvfb :1 &")
10675 (setenv "DISPLAY" ":1")
10676 #t)))))
10677 (native-inputs
10678 `(("glib" ,glib "bin") ; glib-compile-resources
10679 ("pkg-config" ,pkg-config)
10680 ;; For tests.
10681 ("xorg-server" ,xorg-server-for-tests)))
10682 (inputs
10683 `(("glib" ,glib)
10684 ("gobject-introspection" ,gobject-introspection)
10685 ("gtk+" ,gtk+)
10686 ("vala" ,vala)))
10687 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10688 (synopsis "Companion library to GObject and Gtk+")
10689 (description "The libdazzle library is a companion library to GObject and
10690 Gtk+. It provides various features that the authors wish were in the
10691 underlying library but cannot for various reasons. In most cases, they are
10692 wildly out of scope for those libraries. In other cases, they are not quite
10693 generic enough to work for everyone.")
10694 (license license:gpl3+)))
10695
10696 (define-public evolution
10697 (package
10698 (name "evolution")
10699 (version "3.34.2")
10700 (source (origin
10701 (method url-fetch)
10702 (uri (string-append "mirror://gnome/sources/evolution/"
10703 (version-major+minor version) "/"
10704 "evolution-" version ".tar.xz"))
10705 (sha256
10706 (base32
10707 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
10708 (build-system cmake-build-system)
10709 (arguments
10710 `(#:imported-modules (,@%cmake-build-system-modules
10711 (guix build glib-or-gtk-build-system))
10712 #:modules ((guix build cmake-build-system)
10713 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10714 (guix build utils))
10715 #:configure-flags
10716 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10717 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10718 ; in four years and cannot be built.
10719 #:phases
10720 (modify-phases %standard-phases
10721 ;; The build system attempts to install user interface modules to the
10722 ;; output directory of the "evolution-data-server" package. This
10723 ;; change redirects that change.
10724 (add-after 'unpack 'patch-ui-module-dir
10725 (lambda* (#:key outputs #:allow-other-keys)
10726 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10727 (("\\$\\{edsuimoduledir\\}")
10728 (string-append (assoc-ref outputs "out")
10729 "/lib/evolution-data-server/ui-modules")))
10730 #t))
10731 (add-after 'install 'glib-or-gtk-compile-schemas
10732 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10733 (add-after 'install 'glib-or-gtk-wrap
10734 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10735 (native-inputs
10736 `(("glib" ,glib "bin") ; glib-mkenums
10737 ("pkg-config" ,pkg-config)
10738 ("intltool" ,intltool)
10739 ("itstool" ,itstool)))
10740 (inputs
10741 `(("enchant" ,enchant)
10742 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10743 ("gcr" ,gcr)
10744 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10745 ("gnome-autoar" ,gnome-autoar)
10746 ("gnome-desktop" ,gnome-desktop)
10747 ("gspell" ,gspell)
10748 ("highlight" ,highlight)
10749 ("libcanberra" ,libcanberra)
10750 ("libgweather" ,libgweather)
10751 ("libnotify" ,libnotify)
10752 ("libsoup" ,libsoup)
10753 ("nss" ,nss)
10754 ("openldap" ,openldap)
10755 ("webkitgtk" ,webkitgtk)
10756 ("ytnef" ,ytnef)))
10757 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10758 (synopsis "Manage your email, contacts and schedule")
10759 (description "Evolution is a personal information management application
10760 that provides integrated mail, calendaring and address book
10761 functionality.")
10762 ;; See COPYING for details.
10763 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10764 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10765 license:lgpl2.1+)))) ; smime/lib/*
10766
10767 (define-public gthumb
10768 (package
10769 (name "gthumb")
10770 (version "3.8.2")
10771 (source (origin
10772 (method url-fetch)
10773 (uri (string-append "mirror://gnome/sources/gthumb/"
10774 (version-major+minor version) "/"
10775 "gthumb-" version ".tar.xz"))
10776 (sha256
10777 (base32
10778 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
10779 (build-system meson-build-system)
10780 (arguments
10781 `(#:glib-or-gtk? #t
10782 #:configure-flags
10783 ;; Ensure the RUNPATH contains all installed library locations.
10784 (list (string-append "-Dc_link_args=-Wl,-rpath="
10785 (assoc-ref %outputs "out")
10786 "/lib/gthumb/extensions")
10787 (string-append "-Dcpp_link_args=-Wl,-rpath="
10788 (assoc-ref %outputs "out")
10789 "/lib/gthumb/extensions"))))
10790 (native-inputs
10791 `(("pkg-config" ,pkg-config)
10792 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10793 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10794 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10795 ("intltool" ,intltool)
10796 ("itstool" ,itstool)))
10797 (inputs
10798 `(("exiv2" ,exiv2)
10799 ("gtk" ,gtk+)
10800 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10801 ("gstreamer" ,gstreamer)
10802 ("clutter" ,clutter)
10803 ("clutter-gst" ,clutter-gst)
10804 ("clutter-gtk" ,clutter-gtk)
10805 ("libjpeg" ,libjpeg-turbo)
10806 ("libtiff" ,libtiff)
10807 ("libraw" ,libraw)))
10808 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10809 (synopsis "GNOME image viewer and browser")
10810 (description "GThumb is an image viewer, browser, organizer, editor and
10811 advanced image management tool")
10812 (license license:gpl2+)))
10813
10814 (define-public terminator
10815 (package
10816 (name "terminator")
10817 (version "1.92")
10818 (source (origin
10819 (method url-fetch)
10820 (uri (string-append "https://github.com/gnome-" name "/" name "/"
10821 "releases/download/v" version "/"
10822 name "-" version ".tar.gz"))
10823 (sha256
10824 (base32
10825 "1wbkfp0nk6x9bcwi681zy30qmrp4h754sdz6b7hi9j22mmvdd50z"))))
10826 (build-system python-build-system)
10827 (native-inputs
10828 `(("gettext" ,gettext-minimal)
10829 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10830 ("gobject-introspection" ,gobject-introspection)
10831 ("intltool" ,intltool)
10832 ("pkg-config" ,pkg-config)
10833 ("python-psutil" ,python-psutil)
10834 ("python-pytest-runner" ,python-pytest-runner)
10835 ("python-pytest" ,python-pytest)))
10836 (inputs
10837 `(("cairo" ,cairo)
10838 ("dbus-glib" ,dbus-glib)
10839 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10840 ("gtk+" ,gtk+)
10841 ("python-pycairo" ,python-pycairo)
10842 ("python-pygobject" ,python-pygobject)
10843 ("vte" ,vte)))
10844 (propagated-inputs
10845 `(("python-configobj" ,python-configobj)))
10846 (arguments
10847 `(#:imported-modules ((guix build glib-or-gtk-build-system)
10848 ,@%python-build-system-modules)
10849 #:modules ((guix build python-build-system)
10850 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10851 (guix build utils))
10852 #:phases
10853 (modify-phases %standard-phases
10854 (add-after
10855 'install 'wrap-program
10856 (lambda* (#:key outputs #:allow-other-keys)
10857 (let ((prog (string-append (assoc-ref outputs "out")
10858 "/bin/terminator"))
10859 (pylib (string-append (assoc-ref outputs "out")
10860 "/lib/python"
10861 ,(version-major+minor
10862 (package-version python))
10863 "/site-packages")))
10864 (wrap-program prog
10865 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10866 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10867 #t)))
10868 (add-after 'wrap-program 'glib-or-gtk-wrap
10869 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10870 (home-page "https://gnome-terminator.org/")
10871 (synopsis "Store and run multiple GNOME terminals in one window")
10872 (description
10873 "Terminator allows you to run multiple GNOME terminals in a grid and
10874 tabs, and it supports drag and drop re-ordering of terminals.")
10875 (license license:gpl2)))
10876
10877 (define-public libhandy
10878 (package
10879 (name "libhandy")
10880 (version "1.0.3")
10881 (source
10882 (origin
10883 (method git-fetch)
10884 (uri (git-reference
10885 (url "https://gitlab.gnome.org/GNOME/libhandy")
10886 (commit version)))
10887 (file-name (git-file-name name version))
10888 (sha256
10889 (base32 "0flgwlm921801i3ns0dwqpnxl89f3rzn4y9h723i13bmflch3in7"))))
10890 (build-system meson-build-system)
10891 (arguments
10892 `(#:configure-flags
10893 '("-Dglade_catalog=enabled"
10894 "-Dgtk_doc=true")
10895 #:phases
10896 (modify-phases %standard-phases
10897 (add-before 'check 'pre-check
10898 (lambda _
10899 ;; Tests require a running X server.
10900 (system "Xvfb :1 &")
10901 (setenv "DISPLAY" ":1")
10902 #t)))))
10903 (inputs
10904 `(("gtk+" ,gtk+)
10905 ("glade" ,glade3)
10906 ("libxml2" ,libxml2)))
10907 (native-inputs
10908 `(("glib:bin" ,glib "bin")
10909 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10910 ("vala" ,vala)
10911 ("gtk-doc" ,gtk-doc)
10912 ("pkg-config" ,pkg-config)
10913 ("gettext" ,gettext-minimal)
10914
10915 ;; Test suite dependencies.
10916 ("xorg-server" ,xorg-server-for-tests)
10917 ("hicolor-icon-theme" ,hicolor-icon-theme)))
10918 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
10919 (synopsis "Library full of GTK+ widgets for mobile phones")
10920 (description "The aim of the handy library is to help with developing user
10921 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10922 for usage on small and big screens.")
10923 (license license:lgpl2.1+)))
10924
10925 (define-public libhandy-0.0
10926 (package
10927 (inherit libhandy)
10928 (version "0.0.13")
10929 (source
10930 (origin
10931 (method git-fetch)
10932 (uri (git-reference
10933 (url "https://gitlab.gnome.org/GNOME/libhandy")
10934 (commit (string-append "v" version))))
10935 (file-name (git-file-name "libhandy" version))
10936 (sha256
10937 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
10938 (arguments
10939 (substitute-keyword-arguments (package-arguments libhandy)
10940 ((#:configure-flags flags)
10941 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
10942
10943 (define-public libgit2-glib
10944 (package
10945 (name "libgit2-glib")
10946 (version "0.99.0.1")
10947 (source (origin
10948 (method url-fetch)
10949 (uri (string-append "mirror://gnome/sources/" name "/"
10950 (version-major+minor version) "/"
10951 name "-" version ".tar.xz"))
10952 (sha256
10953 (base32
10954 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10955 (build-system meson-build-system)
10956 (native-inputs
10957 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
10958 ("gobject-introspection" ,gobject-introspection)
10959 ("pkg-config" ,pkg-config)
10960 ("python-pygobject" ,python-pygobject)
10961 ("python-wrapper" ,python-wrapper)
10962 ("vala" ,vala)))
10963 (inputs
10964 `(("glib" ,glib)
10965 ("libssh2" ,libssh2)))
10966 (propagated-inputs
10967 `(;; In Requires of libgit2-glib.pc.
10968 ("libgit2" ,libgit2)))
10969 (synopsis "GLib wrapper around the libgit2 Git access library")
10970 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
10971 access library. It only implements the core plumbing functions, not really the
10972 higher level porcelain stuff.")
10973 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
10974 (license license:gpl2+)))
10975
10976 (define-public gitg
10977 (package
10978 (name "gitg")
10979 (version "3.32.1")
10980 (source (origin
10981 (method url-fetch)
10982 (uri (string-append "mirror://gnome/sources/" name "/"
10983 (version-major+minor version) "/"
10984 name "-" version ".tar.xz"))
10985 (sha256
10986 (base32
10987 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
10988 (build-system meson-build-system)
10989 (arguments
10990 `(#:glib-or-gtk? #t
10991 #:phases
10992 (modify-phases %standard-phases
10993 (add-after 'unpack 'disable-post-install-partially
10994 (lambda _
10995 (substitute* "meson_post_install.py"
10996 (("'python'") ; there are no python sources to compile
10997 (string-append "'" (which "true") "'"))
10998 (("gtk-update-icon-cache") (which "true")))
10999 #t))
11000 (add-after 'unpack 'fix-test-sources
11001 (lambda _
11002 (substitute* "tests/libgitg/test-commit.vala"
11003 (("/bin/bash") (which "bash")))
11004 #t))
11005 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11006 (lambda* (#:key outputs #:allow-other-keys)
11007 (let ((prog (string-append (assoc-ref outputs "out")
11008 "/bin/gitg")))
11009 (wrap-program prog
11010 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11011 #t))))))
11012 (inputs
11013 `(("glib" ,glib)
11014 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11015 ("gtk+" ,gtk+)
11016 ("gtkspell3" ,gtkspell3)
11017 ("gtksourceview" ,gtksourceview-3)
11018 ("json-glib" ,json-glib)
11019 ("libdazzle" ,libdazzle)
11020 ("libgee" ,libgee)
11021 ("libgit2-glib" ,libgit2-glib)
11022 ("libpeas" ,libpeas)
11023 ("libsecret" ,libsecret)
11024 ("libsoup" ,libsoup)
11025 ("libxml2" ,libxml2)))
11026 (native-inputs
11027 `(("glib:bin" ,glib "bin")
11028 ("gtk+:bin" ,gtk+ "bin")
11029 ("gobject-introspection" ,gobject-introspection)
11030 ("intltool" ,intltool)
11031 ("pkg-config" ,pkg-config)
11032 ("vala" ,vala)))
11033 (synopsis "Graphical user interface for git")
11034 (description
11035 "gitg is a graphical user interface for git. It aims at being a small,
11036 fast and convenient tool to visualize the history of git repositories.
11037 Besides visualization, gitg also provides several utilities to manage your
11038 repository and commit your work.")
11039 (home-page "https://wiki.gnome.org/Apps/Gitg")
11040 (license license:gpl2+)))
11041
11042 (define-public gamin
11043 (package
11044 (name "gamin")
11045 (version "0.1.10")
11046 (source (origin
11047 (method url-fetch)
11048 (uri (string-append "mirror://gnome/sources/" name "/"
11049 (version-major+minor version) "/"
11050 name "-" version ".tar.bz2"))
11051 (sha256
11052 (base32
11053 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11054 (build-system gnu-build-system)
11055 (arguments
11056 `(#:phases
11057 (modify-phases %standard-phases
11058 (add-after 'unpack 'remove-deprecated-macro
11059 (lambda _
11060 (substitute* '("server/gam_node.c"
11061 "server/gam_subscription.h"
11062 "server/gam_node.h"
11063 "server/gam_subscription.c")
11064 (("G_CONST_RETURN") "const"))
11065 #t)))))
11066 (inputs
11067 `(("glib" ,glib)))
11068 (native-inputs
11069 `(("intltool" ,intltool)
11070 ("pkg-config" ,pkg-config)))
11071 (home-page "https://people.gnome.org/~veillard/gamin/")
11072 (synopsis "File alteration monitor")
11073 (description
11074 "Gamin is a file and directory monitoring system defined to be a subset
11075 of the FAM (File Alteration Monitor) system. This is a service provided by a
11076 library which detects when a file or a directory has been modified.")
11077 (license license:gpl2+)))
11078
11079 (define-public gnome-mahjongg
11080 (package
11081 (name "gnome-mahjongg")
11082 (version "3.35.1")
11083 (source (origin
11084 (method git-fetch)
11085 (uri (git-reference
11086 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
11087 (commit version)))
11088 (file-name (git-file-name name version))
11089 (sha256
11090 (base32
11091 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
11092 (build-system meson-build-system)
11093 (arguments
11094 `(#:glib-or-gtk? #t))
11095 (native-inputs
11096 `(("appstream-glib" ,appstream-glib)
11097 ("gettext" ,gettext-minimal)
11098 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11099 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11100 ("itstool" ,itstool)
11101 ("pkg-config" ,pkg-config)
11102 ("vala" ,vala)))
11103 (propagated-inputs
11104 `(("dconf" ,dconf)))
11105 (inputs
11106 `(("glib" ,glib)
11107 ("gtk+" ,gtk+)
11108 ("librsvg" ,librsvg)))
11109 (synopsis "Mahjongg tile-matching game")
11110 (description "GNOME Mahjongg is a game based on the classic Chinese
11111 tile-matching game Mahjong. It features multiple board layouts, tile themes,
11112 and a high score table.")
11113 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11114 (license license:gpl2+)))
11115
11116 (define-public gnome-themes-extra
11117 (package
11118 (name "gnome-themes-extra")
11119 (version "3.28")
11120 (source
11121 (origin
11122 (method url-fetch)
11123 (uri (string-append "mirror://gnome/sources/" name "/"
11124 (version-major+minor version) "/" name "-"
11125 version ".tar.xz"))
11126 (sha256
11127 (base32
11128 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11129 (build-system gnu-build-system)
11130 (arguments
11131 '(#:configure-flags
11132 ;; Don't create 'icon-theme.cache'.
11133 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11134 (true (string-append coreutils "/bin/true")))
11135 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11136 (native-inputs
11137 `(("glib:bin" ,glib "bin")
11138 ("intltool" ,intltool)
11139 ("pkg-config" ,pkg-config)))
11140 (inputs
11141 `(("glib" ,glib)
11142 ("gtk+" ,gtk+)
11143 ("gtk+-2" ,gtk+-2)
11144 ("librsvg" ,librsvg)
11145 ("libxml2" ,libxml2)))
11146 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11147 (synopsis "GNOME Extra Themes")
11148 (description "This package provides themes and related elements that don't
11149 really fit in other upstream packages. It offers legacy support for GTK+ 2
11150 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11151 index files needed for Adwaita to be used outside of GNOME.")
11152 (license license:lgpl2.1+)))
11153
11154 (define-public gnote
11155 (package
11156 (name "gnote")
11157 (version "3.38.0")
11158 (source
11159 (origin
11160 (method url-fetch)
11161 (uri (string-append "mirror://gnome/sources/" name "/"
11162 (version-major+minor version) "/"
11163 "gnote-" version ".tar.xz"))
11164 (sha256
11165 (base32 "1ingbaw4d8vpjn083xvzqw7kz8z0k2bx7msk78pbzd68bwgkadpx"))))
11166 (build-system glib-or-gtk-build-system)
11167 (native-inputs
11168 `(("desktop-file-utils" ,desktop-file-utils)
11169 ("glib:bin" ,glib "bin")
11170 ("gobject-introspection" ,gobject-introspection)
11171 ("intltool" ,intltool)
11172 ("itstool" ,itstool)
11173 ("pkg-config" ,pkg-config)
11174 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
11175 (inputs
11176 `(("glibmm" ,glibmm)
11177 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11178 ("gspell" ,gspell)
11179 ("gtk+" ,gtk+)
11180 ("gtkmm" ,gtkmm)
11181 ("libsecret" ,libsecret)
11182 ("libuuid" ,util-linux "lib")
11183 ("libxml2" ,libxml2)
11184 ("libxslt" ,libxslt)))
11185 (synopsis "Note-taking application for the GNOME desktop")
11186 (description
11187 "Gnote is a note-taking application written for the GNOME desktop
11188 environment.")
11189 (home-page "https://wiki.gnome.org/Apps/Gnote")
11190 (license license:gpl3+)))
11191
11192 (define-public polari
11193 (package
11194 (name "polari")
11195 (version "3.36.3")
11196 (source (origin
11197 (method url-fetch)
11198 (uri (string-append "mirror://gnome/sources/polari/"
11199 (version-major+minor version)
11200 "/polari-" version ".tar.xz"))
11201 (sha256
11202 (base32
11203 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11204 (build-system meson-build-system)
11205 (arguments
11206 `(#:glib-or-gtk? #t
11207 #:phases
11208 (modify-phases %standard-phases
11209 (add-after 'unpack 'skip-gtk-update-icon-cache
11210 (lambda _
11211 (substitute* "meson/meson-postinstall.sh"
11212 (("gtk-update-icon-cache") (which "true")))
11213 #t))
11214 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11215 (lambda* (#:key outputs #:allow-other-keys)
11216 (let ((prog (string-append (assoc-ref outputs "out")
11217 "/bin/polari")))
11218 (wrap-program prog
11219 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11220 #t))))))
11221 (inputs
11222 `(("glib" ,glib)
11223 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11224 ("gspell" ,gspell)
11225 ("gtk+" ,gtk+)
11226 ("gjs" ,gjs)
11227 ("libsecret" ,libsecret)
11228 ("libsoup" ,libsoup)
11229 ("telepathy-glib" ,telepathy-glib)
11230 ("telepathy-logger" ,telepathy-logger)))
11231 (native-inputs
11232 `(("glib:bin" ,glib "bin")
11233 ("gobject-introspection" ,gobject-introspection)
11234 ("intltool" ,intltool)
11235 ("pkg-config" ,pkg-config)
11236 ("yelp-tools" ,yelp-tools)))
11237 (propagated-inputs
11238 `(("telepathy-idle" ,telepathy-idle)
11239 ("telepathy-mission-control" ,telepathy-mission-control)))
11240 (synopsis "Simple IRC Client")
11241 (description
11242 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11243 integrate seamlessly with the GNOME desktop.")
11244 (home-page "https://wiki.gnome.org/Apps/Polari")
11245 (license license:gpl2+)))
11246
11247 (define-public gnome-boxes
11248 (package
11249 (name "gnome-boxes")
11250 (version "3.36.6")
11251 (source
11252 (origin
11253 (method url-fetch)
11254 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11255 (version-major+minor version) "/"
11256 "gnome-boxes-" version ".tar.xz"))
11257 (sha256
11258 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11259 (build-system meson-build-system)
11260 (arguments
11261 '(#:glib-or-gtk? #t
11262 #:configure-flags (list "-Drdp=false"
11263 (string-append "-Dc_link_args=-Wl,-rpath="
11264 (assoc-ref %outputs "out")
11265 "/lib/gnome-boxes"))))
11266 (native-inputs
11267 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11268 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11269 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11270 ("itstool" ,itstool)
11271 ("intltool" ,intltool)
11272 ("vala" ,vala)
11273 ("pkg-config" ,pkg-config)))
11274 (inputs
11275 `(("libarchive" ,libarchive)
11276 ("glib-networking" ,glib-networking) ;for TLS support
11277 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11278 ("gtk" ,gtk+)
11279 ("gtk-vnc" ,gtk-vnc)
11280 ("libosinfo" ,libosinfo)
11281 ("libsecret" ,libsecret)
11282 ("libsoup" ,libsoup)
11283 ("libusb" ,libusb)
11284 ("libvirt" ,libvirt)
11285 ("libvirt-glib" ,libvirt-glib)
11286 ("libxml" ,libxml2)
11287 ("spice-gtk" ,spice-gtk)
11288 ("sparql-query" ,sparql-query)
11289 ("vte" ,vte)
11290 ("webkitgtk" ,webkitgtk)
11291 ("tracker" ,tracker)
11292 ("libgudev" ,libgudev)))
11293 (home-page "https://wiki.gnome.org/Apps/Boxes")
11294 (synopsis "View, access, and manage remote and virtual systems")
11295 (description "GNOME Boxes is a simple application to view, access, and
11296 manage remote and virtual systems. Note that this application requires the
11297 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11298 @command{info '(guix) Virtualization Services'} to learn how to configure
11299 these services on the Guix System.")
11300 (license (list
11301 ;; For data/icons/empty-boxes.png.
11302 license:cc-by2.0
11303 ;; For all others.
11304 license:lgpl2.0+))))
11305
11306 (define-public geary
11307 (package
11308 (name "geary")
11309 (version "3.34.1")
11310 (source (origin
11311 (method git-fetch)
11312 (uri (git-reference
11313 (url "https://gitlab.gnome.org/GNOME/geary")
11314 (commit version)))
11315 (file-name (git-file-name name version))
11316 (sha256
11317 (base32
11318 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
11319 (build-system meson-build-system)
11320 (arguments
11321 `(#:glib-or-gtk? #t
11322 #:phases (modify-phases %standard-phases
11323 (add-after 'unpack 'disable-failing-tests
11324 (lambda _
11325 (substitute* "test/meson.build"
11326 (("test\\('client-tests', geary_test_client_bin\\)")
11327 ""))
11328 #t))
11329 (add-after 'unpack 'disable-postinstall-script
11330 (lambda _
11331 (substitute* "meson.build"
11332 (("meson.add_install_script\\(\
11333 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11334 ""))
11335 #t))
11336 (add-before 'check 'setup-xvfb
11337 (lambda _
11338 (system "Xvfb :1 &")
11339 (setenv "DISPLAY" ":1")
11340 #t)))))
11341 (inputs
11342 `(("enchant" ,enchant)
11343 ("folks" ,folks)
11344 ("gcr" ,gcr)
11345 ("glib" ,glib)
11346 ("gmime" ,gmime-2.6)
11347 ("gnome-online-accounts:lib"
11348 ,gnome-online-accounts "lib")
11349 ("gspell" ,gspell)
11350 ("gtk+" ,gtk+)
11351 ("iso-codes" ,iso-codes)
11352 ("json-glib" ,json-glib)
11353 ("libcanberra" ,libcanberra)
11354 ("libgee" ,libgee)
11355 ("libhandy" ,libhandy-0.0)
11356 ("libpeas" ,libpeas)
11357 ("libsecret" ,libsecret)
11358 ("libunwind" ,libunwind)
11359 ("sqlite" ,sqlite)
11360 ("webkitgtk" ,webkitgtk)
11361 ("ytnef" ,ytnef)))
11362 (native-inputs
11363 `(("appstream-glib" ,appstream-glib)
11364 ("cmake-minimal" ,cmake-minimal)
11365 ("desktop-file-utils" ,desktop-file-utils)
11366 ("gettext" ,gettext-minimal)
11367 ("glib:bin" ,glib "bin")
11368 ("gobject-introspection" ,gobject-introspection)
11369 ("itstool" ,itstool)
11370 ("libarchive" ,libarchive)
11371 ("libxml2" ,libxml2)
11372 ("pkg-config" ,pkg-config)
11373 ("vala" ,vala)
11374 ("xvfb" ,xorg-server-for-tests)))
11375 (synopsis "GNOME email application built around conversations")
11376 (description
11377 "Geary collects related messages together into conversations,
11378 making it easy to find and follow your discussions. Full-text and keyword
11379 search makes it easy to find the email you are looking for. Geary's
11380 full-featured composer lets you send rich, styled text with images, links, and
11381 lists, but also send lightweight, easy to read text messages. Geary
11382 automatically picks up your existing GNOME Online Accounts, and adding more is
11383 easy. Geary has a clean, fast, modern interface that works like you want it
11384 to.")
11385 (home-page "https://wiki.gnome.org/Apps/Geary")
11386 (license (list
11387 ;; geary
11388 license:lgpl2.1+
11389 ;; icons
11390 license:cc-by3.0
11391 license:cc-by-sa3.0
11392 license:public-domain
11393 ;; snowball
11394 license:bsd-2))))
11395
11396 (define-public glabels
11397 (package
11398 (name "glabels")
11399 (version "3.4.1")
11400 (source
11401 (origin
11402 (method url-fetch)
11403 (uri (string-append "mirror://gnome/sources/" name "/"
11404 (version-major+minor version) "/"
11405 "glabels-" version ".tar.xz"))
11406 (sha256
11407 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11408 (build-system glib-or-gtk-build-system)
11409 (native-inputs
11410 `(("gettext" ,gettext-minimal)
11411 ("glib:bin" ,glib "bin")
11412 ("intltool" ,intltool)
11413 ("itstool" ,itstool)
11414 ("pkg-config" ,pkg-config)))
11415 (inputs
11416 `(("gtk+" ,gtk+)
11417 ("librsvg" ,librsvg)
11418 ("libxml2" ,libxml2)))
11419 (home-page "https://glabels.org/")
11420 (synopsis "Program for creating labels and business cards")
11421 (description
11422 "gLabels is a program for creating labels and business cards. It is
11423 designed to work with various laser/ink-jet peel-off label and business
11424 card sheets that you’ll find at most office supply stores.")
11425 (license license:gpl3+)))
11426
11427 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11428 (define-public gnome-latex
11429 (package
11430 (name "gnome-latex")
11431 (version "3.36.0")
11432 (source
11433 (origin
11434 (method url-fetch)
11435 (uri (string-append "mirror://gnome/sources/" name "/"
11436 (version-major+minor version) "/"
11437 "gnome-latex-" version ".tar.xz"))
11438 (sha256
11439 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11440 (build-system glib-or-gtk-build-system)
11441 (native-inputs
11442 `(("gettext" ,gettext-minimal)
11443 ("glib:bin" ,glib "bin")
11444 ("gobject-introspection" ,gobject-introspection)
11445 ("gtk-doc" ,gtk-doc)
11446 ("intltool" ,intltool)
11447 ("itstool" ,itstool)
11448 ("pkg-config" ,pkg-config)
11449 ("vala" ,vala)))
11450 (inputs
11451 `(("amtk" ,amtk)
11452 ("dconf" ,dconf)
11453 ("glib" ,glib)
11454 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11455 ("gspell" ,gspell)
11456 ("gtk+" ,gtk+)
11457 ("gtksourceview" ,gtksourceview)
11458 ("libgee" ,libgee)
11459 ("tepl" ,tepl)
11460 ("uchardet" ,uchardet)))
11461 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11462 (synopsis "LaTeX editor for the GNOME desktop")
11463 (description
11464 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11465 such as build tools, completion of LaTeX commands, structure navigation,
11466 symbol tables, document templates, project management, spell-checking, menus
11467 and toolbars.")
11468 (license license:gpl3+)))
11469
11470 (define-public setzer
11471 (package
11472 (name "setzer")
11473 (version "0.4.1")
11474 (source
11475 (origin
11476 (method git-fetch)
11477 (uri (git-reference
11478 (url "https://github.com/cvfosammmm/Setzer")
11479 (commit (string-append "v" version))))
11480 (file-name (git-file-name name version))
11481 (sha256
11482 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
11483 (build-system meson-build-system)
11484 (arguments
11485 `(#:glib-or-gtk? #t
11486 #:phases
11487 (modify-phases %standard-phases
11488 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11489 (lambda* (#:key outputs #:allow-other-keys)
11490 (let ((prog (string-append (assoc-ref outputs "out")
11491 "/bin/setzer"))
11492 (pylib (string-append (assoc-ref outputs "out")
11493 "/lib/python"
11494 ,(version-major+minor
11495 (package-version python))
11496 "/site-packages")))
11497 (wrap-program prog
11498 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
11499 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11500 #t))))))
11501 (native-inputs
11502 `(("desktop-file-utils" ,desktop-file-utils)
11503 ("gettext" ,gettext-minimal)
11504 ("glib:bin" ,glib "bin")
11505 ("gobject-introspection" ,gobject-introspection)
11506 ("gtk+:bin" ,gtk+ "bin")))
11507 (inputs
11508 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11509 ("gspell" ,gspell)
11510 ("gtk+" ,gtk+)
11511 ("gtksourceview" ,gtksourceview)
11512 ("pango" ,pango)
11513 ("poppler" ,poppler)
11514 ("python-pdfminer" ,python-pdfminer-six)
11515 ("python-pycairo" ,python-pycairo)
11516 ("python-pygobject" ,python-pygobject)
11517 ("python-pyxdg" ,python-pyxdg)
11518 ("webkitgtk" ,webkitgtk)
11519 ("xdg-utils" ,xdg-utils)))
11520 (home-page "https://www.cvfosammmm.org/setzer/")
11521 (synopsis "LaTeX editor written in Python with GTK+")
11522 (description
11523 "Setzer is a simple yet full-featured LaTeX editor written in Python with
11524 GTK+. It integrates well with the GNOME desktop environment.")
11525 (license license:gpl3+)))
11526
11527 (define-public libratbag
11528 (package
11529 (name "libratbag")
11530 (version "0.14")
11531 (source
11532 (origin
11533 (method git-fetch)
11534 (uri (git-reference
11535 (url "https://github.com/libratbag/libratbag")
11536 (commit (string-append "v" version))))
11537 (file-name (git-file-name name version))
11538 (sha256
11539 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11540 (build-system meson-build-system)
11541 (arguments
11542 `(#:configure-flags
11543 (list "-Dsystemd=false"
11544 "-Dlogind-provider=elogind")
11545 #:phases
11546 (modify-phases %standard-phases
11547 (add-after 'install 'wrap
11548 (lambda* (#:key inputs outputs #:allow-other-keys)
11549 (let* ((out (assoc-ref outputs "out"))
11550 (site (string-append
11551 "/lib/python"
11552 ,(version-major+minor (package-version python))
11553 "/site-packages"))
11554 (evdev (string-append
11555 (assoc-ref inputs "python-evdev") site))
11556 (pygo (string-append
11557 (assoc-ref inputs "python-pygobject") site))
11558 (python-wrap
11559 `("PYTHONPATH" = (,evdev ,pygo))))
11560 (wrap-program (string-append out "/bin/" "ratbagctl")
11561 python-wrap)
11562 #t))))))
11563 (native-inputs
11564 `(("check" ,check)
11565 ("pkg-config" ,pkg-config)
11566 ("swig" ,swig)
11567 ("valgrind" ,valgrind)))
11568 (inputs
11569 `(("glib" ,glib)
11570 ("json-glib" ,json-glib)
11571 ("libevdev" ,libevdev)
11572 ("libsystemd" ,elogind)
11573 ("libunistring" ,libunistring)
11574 ("python-evdev" ,python-evdev)
11575 ("python-pygobject" ,python-pygobject)
11576 ("udev" ,eudev)))
11577 (home-page "https://github.com/libratbag/libratbag")
11578 (synopsis "DBus daemon and utility for configuring gaming mice")
11579 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11580 configure input devices, mainly gaming mice. The daemon provides a generic
11581 way to access the various features exposed by these mice and abstracts away
11582 hardware-specific and kernel-specific quirks. There is also the
11583 @command{ratbagctl} command line interface for configuring devices.
11584
11585 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11586 Steelseries.
11587
11588 The ratbagd DBus service can be enabled by adding the following service to
11589 your operating-system definition:
11590
11591 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11592 (license license:expat)))
11593
11594 (define-public piper
11595 (package
11596 (name "piper")
11597 (version "0.5.1")
11598 (source
11599 (origin
11600 (method git-fetch)
11601 (uri (git-reference
11602 (url "https://github.com/libratbag/piper")
11603 (commit version)))
11604 (sha256
11605 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11606 (file-name (git-file-name name version))))
11607 (build-system meson-build-system)
11608 (native-inputs
11609 `(("gettext" ,gettext-minimal)
11610 ("glib:bin" ,glib "bin")
11611 ("gobject-introspection" ,gobject-introspection)
11612 ("pkg-config" ,pkg-config)
11613 ("python-flake8" ,python-flake8)))
11614 (inputs
11615 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11616 ("gtk" ,gtk+)
11617 ("gtk:bin" ,gtk+ "bin")
11618 ("librsvg" ,librsvg)
11619 ("python-evdev" ,python-evdev)
11620 ("python-lxml" ,python-lxml)
11621 ("python-pycairo" ,python-pycairo)
11622 ("python-pygobject" ,python-pygobject)))
11623 (arguments
11624 `(#:imported-modules ((guix build python-build-system)
11625 ,@%meson-build-system-modules)
11626 #:modules (((guix build python-build-system) #:prefix python:)
11627 (guix build meson-build-system)
11628 (guix build utils))
11629 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11630 #:phases
11631 (modify-phases %standard-phases
11632 (add-after 'unpack 'dont-update-gtk-icon-cache
11633 (lambda _
11634 (substitute* "meson.build"
11635 (("meson.add_install_script('meson_install.sh')") ""))
11636 #t))
11637 ;; TODO: Switch to wrap-script when it is fixed.
11638 (add-after 'install 'wrap-python
11639 (assoc-ref python:%standard-phases 'wrap))
11640 (add-after 'wrap-python 'wrap
11641 (lambda* (#:key outputs #:allow-other-keys)
11642 (wrap-program
11643 (string-append (assoc-ref outputs "out" )"/bin/piper")
11644 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11645 #t)))))
11646 (home-page "https://github.com/libratbag/piper/")
11647 (synopsis "Configure bindings and LEDs on gaming mice")
11648 (description "Piper is a GTK+ application for configuring gaming mice with
11649 onboard configuration for key bindings via libratbag. Piper requires
11650 a @command{ratbagd} daemon running with root privileges. It can be run
11651 manually as root, but is preferably configured as a DBus service that can
11652 launch on demand. This can be configured by enabling the following service,
11653 provided there is a DBus service present:
11654
11655 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11656 (license license:gpl2)))
11657
11658 (define-public parlatype
11659 (package
11660 (name "parlatype")
11661 (version "2.1")
11662 (source
11663 (origin
11664 (method git-fetch)
11665 (uri (git-reference
11666 (url "https://github.com/gkarsay/parlatype")
11667 (commit (string-append "v" version))))
11668 (file-name (git-file-name name version))
11669 (sha256
11670 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11671 (build-system meson-build-system)
11672 (arguments
11673 `(#:glib-or-gtk? #t
11674 #:tests? #f ;require internet access
11675 #:phases
11676 (modify-phases %standard-phases
11677 (add-after 'install 'wrap-parlatype
11678 ;; Add gstreamer plugin provided in this package to system's
11679 ;; plugins.
11680 (lambda* (#:key outputs #:allow-other-keys)
11681 (let* ((out (assoc-ref outputs "out"))
11682 (gst-plugin-path (string-append
11683 out "/lib/gstreamer-1.0/"
11684 ":"
11685 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11686 (wrap-program (string-append out "/bin/parlatype")
11687 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11688 #t)))))
11689 (native-inputs
11690 `(("appstream-glib" ,appstream-glib)
11691 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11692 ("gettext" ,gettext-minimal)
11693 ("glib" ,glib "bin") ;for glib-compile-resources
11694 ("pkg-config" ,pkg-config)
11695 ("yelp-tools" ,yelp-tools)))
11696 (inputs
11697 `(("gst-plugins-base" ,gst-plugins-base)
11698 ("gst-plugins-good" ,gst-plugins-good)
11699 ("gstreamer" ,gstreamer)
11700 ("gtk+" ,gtk+)
11701 ("pocketsphinx" ,pocketsphinx)
11702 ("pulseaudio" ,pulseaudio)
11703 ("sphinxbase" ,sphinxbase)))
11704 (home-page "http://gkarsay.github.io/parlatype/")
11705 (synopsis "GNOME audio player for transcription")
11706 (description "Parlatype is an audio player for the GNOME desktop
11707 environment. Its main purpose is the manual transcription of spoken
11708 audio files.")
11709 (license license:gpl3+)))
11710
11711 (define-public jsonrpc-glib
11712 (package
11713 (name "jsonrpc-glib")
11714 (version "3.34.0")
11715 (source (origin
11716 (method url-fetch)
11717 (uri (string-append "mirror://gnome/sources/" name "/"
11718 (version-major+minor version) "/"
11719 name "-" version ".tar.xz"))
11720 (sha256
11721 (base32
11722 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11723 (build-system meson-build-system)
11724 (inputs
11725 `(("json-glib" ,json-glib)
11726 ("glib" ,glib)))
11727 (native-inputs
11728 `(("pkg-config" ,pkg-config)
11729 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11730 ("gobject-introspection" ,gobject-introspection)
11731 ("vala" ,vala)))
11732 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11733 (synopsis "JSON-RPC library for GLib")
11734 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11735 peers in either a synchronous or asynchronous fashion. It also allows
11736 communicating using the GVariant serialization format instead of JSON when
11737 both peers support it. You might want that when communicating on a single
11738 host to avoid parser overhead and memory-allocator fragmentation.")
11739 (license license:lgpl2.1+)))
11740
11741 (define-public feedbackd
11742 (package
11743 (name "feedbackd")
11744 (version "0.0.0+git20200527")
11745 (source (origin
11746 (method git-fetch)
11747 (uri (git-reference
11748 (url "https://source.puri.sm/Librem5/feedbackd.git")
11749 (commit (string-append "v" version))))
11750 (file-name (git-file-name name version))
11751 (sha256
11752 (base32
11753 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11754 (build-system meson-build-system)
11755 (native-inputs
11756 `(("glib:bin" ,glib "bin")
11757 ("gobject-introspection" ,gobject-introspection)
11758 ("pkg-config" ,pkg-config)
11759 ("vala" ,vala)))
11760 (inputs
11761 `(("dbus" ,dbus)
11762 ("gsound" ,gsound)
11763 ("json-glib" ,json-glib)
11764 ("libgudev" ,libgudev)))
11765 (propagated-inputs
11766 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11767 (synopsis "Haptic/visual/audio feedback via DBus")
11768 (description "Feedbackd provides a DBus daemon to act on events to provide
11769 haptic, visual and audio feedback. It offers the libfeedbackd library and
11770 GObject introspection bindings.")
11771 (home-page "https://source.puri.sm/Librem5/feedbackd")
11772 (license (list license:lgpl2.1+ ; libfeedbackd
11773 license:lgpl3+)))) ; the rest
11774
11775 (define-public sysprof
11776 (package
11777 (name "sysprof")
11778 (version "3.36.0")
11779 (source
11780 (origin
11781 (method url-fetch)
11782 (uri (string-append "mirror://gnome/sources/sysprof/"
11783 (version-major+minor version) "/"
11784 "sysprof-" version ".tar.xz"))
11785 (sha256
11786 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11787 (build-system meson-build-system)
11788 (arguments
11789 `(#:configure-flags
11790 (list (string-append "-Dsystemdunitdir="
11791 %output
11792 "/share/systemd"))
11793 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11794 #:phases
11795 (modify-phases %standard-phases
11796 (add-after 'unpack 'patch-install-script
11797 (lambda _
11798 (substitute* "build-aux/meson/post_install.sh"
11799 (("gtk-update-icon-cache") "true")
11800 (("update-desktop-database") "true"))
11801 #t)))))
11802 (inputs
11803 `(("glib" ,glib)
11804 ("gtk+" ,gtk+)
11805 ("libdazzle" ,libdazzle)
11806 ("polkit" ,polkit)))
11807 (native-inputs
11808 `(("gettext" ,gettext-minimal)
11809 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11810 ("itstool" ,itstool)
11811 ("pkg-config" ,pkg-config)
11812 ("xmllint" ,libxml2)))
11813 ;; This home page is so woefully out of date as to be essentially useless.
11814 ;; (home-page "http://www.sysprof.com")
11815 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11816 (synopsis "System-wide performance profiler for GNU/Linux")
11817 (description
11818 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11819 GNU/Linux system including the kernel and all user-space applications. This
11820 helps find the function(s) in which a program spends most of its time.
11821
11822 It uses the kernel's built-in @code{ptrace} feature and handles shared
11823 libraries. Applications do not need to be recompiled--or even restarted.")
11824 (license license:gpl3+)))
11825
11826 (define-public gnome-builder
11827 (package
11828 (name "gnome-builder")
11829 (version "3.36.1")
11830 (source (origin
11831 (method url-fetch)
11832 (uri (string-append "mirror://gnome/sources/" name "/"
11833 (version-major+minor version) "/"
11834 name "-" version ".tar.xz"))
11835 (sha256
11836 (base32
11837 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11838 (build-system meson-build-system)
11839 (arguments
11840 `(#:configure-flags (list "-Dnetwork_tests=false"
11841 ;; TODO: Enable all plugins...
11842 "-Dplugin_clang=false"
11843 "-Dplugin_flatpak=false"
11844 "-Dplugin_glade=false"
11845 ;; XXX: This one has been shown not to work in
11846 ;; <https://issues.guix.gnu.org/45272>
11847 "-Dplugin_jedi=false"
11848 ;; ... except this one.
11849 "-Dplugin_update_manager=false")
11850 #:phases
11851 (modify-phases %standard-phases
11852 (add-after 'unpack 'patch-meson
11853 (lambda* (#:key inputs #:allow-other-keys)
11854 (substitute* "build-aux/meson/post_install.py"
11855 (("gtk-update-icon-cache") "true")
11856 (("update-desktop-database") "true"))
11857 (substitute* "src/libide/meson.build"
11858 (("/usr/lib")
11859 (string-append (assoc-ref inputs "python-pygobject")
11860 "/lib")))
11861 #t))
11862 (add-after 'configure 'fix-ninja
11863 (lambda _
11864 ;; #43296: meson(?) incorrectly assumes we want to link
11865 ;; this PIE against a static libselinux.
11866 (substitute* "build.ninja"
11867 (("libselinux\\.a") "libselinux.so"))
11868 #t))
11869 (add-before 'check 'pre-check
11870 (lambda _
11871 (system "Xvfb :1 &")
11872 (setenv "DISPLAY" ":1")
11873 #t)))))
11874 (inputs
11875 `(("devhelp" ,devhelp)
11876 ("gspell" ,gspell)
11877 ("gtk+" ,gtk+)
11878 ("json-glib" ,json-glib)
11879 ("jsonrpc-glib" ,jsonrpc-glib)
11880 ("libdazzle" ,libdazzle)
11881 ("libgit2-glib" ,libgit2-glib)
11882 ("libpeas" ,libpeas)
11883 ("python-pygobject" ,python-pygobject)
11884 ("sysprof" ,sysprof)
11885 ("template-glib" ,template-glib)
11886 ("vte" ,vte)
11887 ("webkitgtk" ,webkitgtk)))
11888 (propagated-inputs
11889 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11890 (native-inputs
11891 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11892 ("glib:bin" ,glib "bin")
11893 ("gettext" ,gettext-minimal)
11894 ("pkg-config" ,pkg-config)
11895 ("vala" ,vala)
11896 ("xorg-server" ,xorg-server-for-tests)))
11897 (home-page "https://wiki.gnome.org/Apps/Builder")
11898 (synopsis "Toolsmith for GNOME-based applications")
11899 (description "Builder aims to be an integrated development
11900 environment (IDE) for writing GNOME-based software. It features fuzzy search,
11901 auto-completion, a mini code map, documentation browsing, Git integration, an
11902 integrated profiler via Sysprof, debugging support, and more.")
11903 (license license:gpl3+)))
11904
11905 (define-public komikku
11906 (package
11907 (name "komikku")
11908 (version "0.26.1")
11909 (source
11910 (origin
11911 (method git-fetch)
11912 (uri (git-reference
11913 (url "https://gitlab.com/valos/Komikku/")
11914 (commit (string-append "v" version))))
11915 (file-name (git-file-name name version))
11916 (sha256
11917 (base32
11918 "1mas409c14p6g0v10w4cf5hsjbs0922h6h9k9pyj9s8y7yi2ikz2"))))
11919 (build-system meson-build-system)
11920 (arguments
11921 `(#:glib-or-gtk? #t
11922 #:phases
11923 (modify-phases %standard-phases
11924 (add-after 'unpack 'patch-sources
11925 (lambda _
11926 (substitute* "komikku/utils.py"
11927 (("from komikku\\.servers import get_servers_list")
11928 ;; code following that line should migrate old databases
11929 ;; but the line itself results in an import error
11930 "return data_dir_path"))))
11931 (add-after 'unpack 'skip-gtk-update-icon-cache
11932 (lambda _
11933 (substitute* "meson_post_install.py"
11934 (("gtk-update-icon-cache") (which "true")))
11935 #t))
11936 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11937 (lambda* (#:key outputs #:allow-other-keys)
11938 (let ((prog (string-append (assoc-ref outputs "out")
11939 "/bin/komikku")))
11940 (wrap-program prog
11941 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
11942 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11943 #t))))))
11944 (inputs
11945 `(("gtk+" ,gtk+)
11946 ("libhandy" ,libhandy)
11947 ("libnotify" ,libnotify)
11948 ("libsecret" ,libsecret)
11949 ("python-beautifulsoup4" ,python-beautifulsoup4)
11950 ("python-dateparser" ,python-dateparser)
11951 ("python-keyring" ,python-keyring)
11952 ("python-lxml" ,python-lxml)
11953 ("python-magic" ,python-magic)
11954 ("python-pillow" ,python-pillow)
11955 ("python-pure-protobuf" ,python-pure-protobuf)
11956 ("python-pycairo" ,python-pycairo)
11957 ("python-pygobject" ,python-pygobject)
11958 ("python-requests" ,python-requests)
11959 ("python-unidecode" ,python-unidecode)))
11960 (native-inputs
11961 `(("desktop-file-utils" ,desktop-file-utils)
11962 ("gettext" ,gettext-minimal)
11963 ("glib:bin" ,glib "bin")
11964 ("gobject-introspection" ,gobject-introspection)
11965 ("pkg-config" ,pkg-config)))
11966 (home-page "https://gitlab.com/valos/Komikku")
11967 (synopsis "Manga reader for GNOME")
11968 (description "Komikku is an online/offline manga reader for GNOME,
11969 developed with the aim of being used with the Librem 5 phone.")
11970 (license license:gpl3+)))
11971
11972 (define-public libgda
11973 (package
11974 (name "libgda")
11975 (version "5.2.10")
11976 (source
11977 (origin
11978 (method git-fetch)
11979 (uri (git-reference
11980 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
11981 (commit (string-append "LIBGDA_" (string-replace-substring
11982 version "." "_")))))
11983 (file-name (git-file-name name version))
11984 (sha256
11985 (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
11986 (build-system gnu-build-system)
11987 (arguments
11988 `(#:configure-flags '("--enable-vala")
11989 ;; There's a race between check_cnc_lock and check_threaded_cnc
11990 ;; in tests/multi-threading.
11991 #:parallel-tests? #f
11992 #:phases
11993 (modify-phases %standard-phases
11994 (add-after 'unpack 'fix-glade-install
11995 (lambda _
11996 (substitute* "configure.ac"
11997 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
11998 "${datadir}/glade/catalogs")
11999 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
12000 "${datadir}/glade/pixmaps"))
12001 #t))
12002 (add-before 'check 'pre-check
12003 (lambda* (#:key inputs #:allow-other-keys)
12004 ;; Tests require a running X server.
12005 (system "Xvfb :1 &")
12006 (setenv "DISPLAY" ":1")
12007 #t))
12008 (add-after 'install 'symlink-glade-module
12009 (lambda* (#:key outputs #:allow-other-keys)
12010 (let* ((shlib "libgda-ui-5.0.so")
12011 (out (assoc-ref outputs "out"))
12012 (out/lib (string-append out "/lib"))
12013 (moduledir (string-append out/lib "/glade/modules")))
12014 (mkdir-p moduledir)
12015 (symlink (string-append out/lib "/" shlib)
12016 (string-append moduledir "/" shlib))
12017 #t))))))
12018 (propagated-inputs
12019 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
12020 (inputs
12021 `(("glib" ,glib)
12022 ("glade" ,glade3)
12023 ("gtk+" ,gtk+)
12024 ("libsecret" ,libsecret)
12025 ("libxslt" ,libxslt)
12026 ("openssl" ,openssl)
12027 ("vala" ,vala)))
12028 (native-inputs
12029 `(("autoconf" ,autoconf)
12030 ("autoconf-archive" ,autoconf-archive)
12031 ("automake" ,automake)
12032 ("glib:bin" ,glib "bin")
12033 ("gnome-common" ,gnome-common)
12034 ("gobject-introspection" ,gobject-introspection)
12035 ("gtk-doc" ,gtk-doc)
12036 ("intltool" ,intltool)
12037 ("libtool" ,libtool)
12038 ("pkg-config" ,pkg-config)
12039 ("vala" ,vala)
12040 ("which" ,which)
12041 ("xorg-server" ,xorg-server-for-tests)
12042 ("yelp-tools" ,yelp-tools)))
12043 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12044 (synopsis "Uniform data access")
12045 (description
12046 "GNU Data Access (GDA) is an attempt to provide uniform access to
12047 different kinds of data sources (databases, information servers, mail spools,
12048 etc). It is a complete architecture that provides all you need to access
12049 your data.")
12050 (license license:lgpl2.1+)))
12051
12052 (define-public gtranslator
12053 (package
12054 (name "gtranslator")
12055 (version "3.36.0")
12056 (source (origin
12057 (method url-fetch)
12058 (uri (string-append "mirror://gnome/sources/" name "/"
12059 (version-major+minor version) "/"
12060 name "-" version ".tar.xz"))
12061 (sha256
12062 (base32
12063 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
12064 (build-system meson-build-system)
12065 (inputs
12066 `(("json-glib" ,json-glib)
12067 ("jsonrpc-glib" ,jsonrpc-glib)
12068 ("gettext" ,gettext-minimal)
12069 ("glib" ,glib)
12070 ("gtk+" ,gtk+)
12071 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12072 ("gspell" ,gspell)
12073 ("libdazzle" ,libdazzle)
12074 ("libgda" ,libgda)
12075 ("libsoup" ,libsoup)))
12076 (native-inputs
12077 `(("glib:bin" ,glib "bin")
12078 ("itstool" ,itstool)
12079 ("pkg-config" ,pkg-config)))
12080 (propagated-inputs
12081 `(("gtksourceview" ,gtksourceview))) ; required for source view
12082 (arguments
12083 `(#:build-type "release"
12084 #:glib-or-gtk? #t
12085 #:phases
12086 (modify-phases %standard-phases
12087 (add-after 'unpack 'skip-gtk-update-icon-cache
12088 (lambda _
12089 (substitute* "build-aux/meson/meson_post_install.py"
12090 (("gtk-update-icon-cache") (which "true")))
12091 #t)))))
12092 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12093 (synopsis "Translation making program")
12094 (description
12095 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12096 for the GNOME 3.x platform with many features. It aims to be a very complete
12097 editing environment for translation issues within the GNU gettext/GNOME desktop
12098 world.")
12099 (license license:gpl3+)))