gnu: setzer: Update to 0.4.1.
[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 (home-page "https://www.gnome.org")
2548 (synopsis "Daemon to store passwords and encryption keys")
2549 (description
2550 "gnome-keyring is a program that keeps passwords and other secrets for
2551 users. It is run as a daemon in the session, similar to ssh-agent, and other
2552 applications locate it via an environment variable or D-Bus.
2553
2554 The program can manage several keyrings, each with its own master password,
2555 and there is also a session keyring which is never stored to disk, but
2556 forgotten when the session ends.")
2557 (license license:lgpl2.1+)))
2558
2559 (define-public evince
2560 (package
2561 (name "evince")
2562 (version "3.36.5")
2563 (source (origin
2564 (method url-fetch)
2565 (uri (string-append "mirror://gnome/sources/evince/"
2566 (version-major+minor version) "/"
2567 "evince-" version ".tar.xz"))
2568 (sha256
2569 (base32
2570 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2571 (build-system glib-or-gtk-build-system)
2572 (arguments
2573 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2574 #:phases
2575 (modify-phases %standard-phases
2576 (add-before 'install 'skip-gtk-update-icon-cache
2577 ;; Don't create 'icon-theme.cache'.
2578 (lambda _
2579 (substitute* "data/Makefile"
2580 (("gtk-update-icon-cache") "true"))
2581 #t)))))
2582 (inputs
2583 `(("libarchive" ,libarchive)
2584 ("libgxps" ,libgxps)
2585 ("libspectre" ,libspectre)
2586 ("djvulibre" ,djvulibre)
2587 ("ghostscript" ,ghostscript)
2588 ("poppler" ,poppler)
2589 ("libtiff" ,libtiff)
2590 ;; TODO:
2591 ;; Build libkpathsea as a shared library for DVI support.
2592 ;; ("libkpathsea" ,texlive-bin)
2593 ("gnome-desktop" ,gnome-desktop)
2594 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2595 ("gspell" ,gspell)
2596 ("libgnome-keyring" ,libgnome-keyring)
2597 ("adwaita-icon-theme" ,adwaita-icon-theme)
2598 ("gdk-pixbuf" ,gdk-pixbuf)
2599 ("atk" ,atk)
2600 ("pango" ,pango)
2601 ("gtk+" ,gtk+)
2602 ("glib" ,glib)
2603 ("libxml2" ,libxml2)
2604 ("libsm" ,libsm)
2605 ("libice" ,libice)
2606 ("shared-mime-info" ,shared-mime-info)
2607 ("dconf" ,dconf)
2608 ("libcanberra" ,libcanberra)
2609 ("libsecret" ,libsecret)
2610
2611 ;; For tests.
2612 ("dogtail" ,python2-dogtail)))
2613 (native-inputs
2614 `(("itstool" ,itstool)
2615 ("intltool" ,intltool)
2616 ("glib" ,glib "bin")
2617 ("gobject-introspection" ,gobject-introspection)
2618 ("pkg-config" ,pkg-config)
2619 ("xmllint" ,libxml2)))
2620 (home-page "https://www.gnome.org/projects/evince/")
2621 (synopsis "GNOME's document viewer")
2622 (description
2623 "Evince is a document viewer for multiple document formats. It
2624 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2625 of Evince is to replace the multiple document viewers that exist
2626 on the GNOME Desktop with a single simple application.")
2627 (license license:gpl2+)))
2628
2629 (define-public gsettings-desktop-schemas
2630 (package
2631 (name "gsettings-desktop-schemas")
2632 (version "3.34.0")
2633 (source
2634 (origin
2635 (method url-fetch)
2636 (uri (string-append "mirror://gnome/sources/" name "/"
2637 (version-major+minor version) "/"
2638 name "-" version ".tar.xz"))
2639 (sha256
2640 (base32
2641 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2642 (build-system meson-build-system)
2643 (arguments
2644 '(#:phases (modify-phases %standard-phases
2645 (add-after 'unpack 'patch-schemas
2646 (lambda* (#:key inputs #:allow-other-keys)
2647 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2648 (substitute* (find-files "schemas"
2649 "\\.gschema\\.xml\\.in$")
2650 ;; Provide the correct file name of the default GNOME
2651 ;; background, 'adwaita-timed.xml'.
2652 (("@datadir@/backgrounds/gnome")
2653 (string-append theme "/share/backgrounds/gnome"))
2654 ;; Do not reference fonts, that may not exist.
2655 (("'Source Code Pro 10'") "'Monospace 11'"))
2656 #t))))))
2657 (inputs
2658 `(("glib" ,glib)
2659 ("gnome-backgrounds" ,gnome-backgrounds)))
2660 (native-inputs
2661 `(("intltool" ,intltool)
2662 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2663 ("gobject-introspection" ,gobject-introspection)
2664 ("pkg-config" ,pkg-config)))
2665 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2666 (synopsis
2667 "GNOME settings for various desktop components")
2668 (description
2669 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2670 for settings shared by various components of the GNOME desktop.")
2671 (license license:lgpl2.1+)))
2672
2673 (define-public python-liblarch
2674 (package
2675 (name "python-liblarch")
2676 (version "3.0.1")
2677 (source
2678 (origin
2679 (method git-fetch)
2680 (uri (git-reference
2681 (url "https://github.com/getting-things-gnome/liblarch")
2682 (commit (string-append "v" version))))
2683 (file-name (git-file-name name version))
2684 (sha256
2685 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2686 (build-system python-build-system)
2687 (arguments
2688 `(#:phases
2689 (modify-phases %standard-phases
2690 (add-before 'check 'start-xserver
2691 (lambda* (#:key inputs #:allow-other-keys)
2692 (system (format #f "~a/bin/Xvfb :1 &"
2693 (assoc-ref inputs "xorg-server")))
2694 (setenv "DISPLAY" ":1")
2695 #t)))))
2696 (native-inputs
2697 `(("xorg-server" ,xorg-server-for-tests)))
2698 (inputs
2699 `(("gtk+" ,gtk+)))
2700 (propagated-inputs
2701 `(("python-pygobject" ,python-pygobject)))
2702 (home-page "https://wiki.gnome.org/Projects/liblarch")
2703 (synopsis "Library to easily handle complex data structures")
2704 (description
2705 "Liblarch is a Python library built to easily handle data structures such
2706 as lists, trees and acyclic graphs. There's also a GTK binding that will
2707 allow you to use your data structure in a @code{Gtk.Treeview}.
2708
2709 Liblarch support multiple views of one data structure and complex filtering.
2710 That way, you have a clear separation between your data themselves (Model)
2711 and how they are displayed (View).")
2712 (license license:lgpl3+)))
2713
2714 (define-public gtg
2715 (package
2716 (name "gtg")
2717 (version "0.4")
2718 (source
2719 (origin
2720 (method git-fetch)
2721 (uri (git-reference
2722 (url "https://github.com/getting-things-gnome/gtg")
2723 (commit (string-append "v" version))))
2724 (file-name (git-file-name name version))
2725 (sha256
2726 (base32 "0r28vyr88rj3kd3cg4gj7sd29wadjchi92wzmbx67d4hlg25h8kk"))))
2727 (build-system meson-build-system)
2728 (arguments
2729 `(#:glib-or-gtk? #t
2730 #:phases
2731 (modify-phases %standard-phases
2732 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2733 (lambda* (#:key outputs #:allow-other-keys)
2734 (let ((prog (string-append (assoc-ref outputs "out")
2735 "/bin/gtg"))
2736 (pylib (string-append (assoc-ref outputs "out")
2737 "/lib/python"
2738 ,(version-major+minor
2739 (package-version python))
2740 "/site-packages")))
2741 (wrap-program prog
2742 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
2743 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2744 #t))))))
2745 (native-inputs
2746 `(("desktop-file-utils" ,desktop-file-utils)
2747 ("gettext" ,gettext-minimal)
2748 ("glib:bin" ,glib "bin")
2749 ("gobject-introspection" ,gobject-introspection)
2750 ("gtk+:bin" ,gtk+ "bin")
2751 ("pkg-config" ,pkg-config)))
2752 (inputs
2753 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2754 ("gtk+" ,gtk+)
2755 ("python-dbus" ,python-dbus)
2756 ("python-liblarch" ,python-liblarch)
2757 ("python-pycairo" ,python-pycairo)
2758 ("python-pygobject" ,python-pygobject)
2759 ("python-pyxdg" ,python-pyxdg)))
2760 (home-page "https://wiki.gnome.org/Apps/GTG")
2761 (synopsis "Personal organizer for the GNOME desktop")
2762 (description
2763 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2764 organizer for the GNOME desktop environment inspired by the Getting Things
2765 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2766 and ease of use in mind so it can be used as more than just GTD software.
2767 GTG is intended to help you track everything you need to do and need to
2768 know, from small tasks to large projects.")
2769 (license license:gpl3+)))
2770
2771 (define-public icon-naming-utils
2772 (package
2773 (name "icon-naming-utils")
2774 (version "0.8.90")
2775 (source
2776 (origin
2777 (method url-fetch)
2778 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2779 version ".tar.bz2"))
2780 (sha256
2781 (base32
2782 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2783 (build-system gnu-build-system)
2784 (inputs
2785 `(("perl" ,perl)
2786 ("perl-xml-simple" ,perl-xml-simple)))
2787 (arguments
2788 '(#:phases
2789 (modify-phases %standard-phases
2790 (add-after 'install 'set-load-paths
2791 ;; Tell 'icon-name-mapping' where XML::Simple is.
2792 (lambda* (#:key outputs #:allow-other-keys)
2793 (let* ((out (assoc-ref outputs "out"))
2794 (prog (string-append out "/libexec/icon-name-mapping")))
2795 (wrap-program
2796 prog
2797 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2798 #t)))))
2799 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2800 (synopsis
2801 "Utility to implement the Freedesktop Icon Naming Specification")
2802 (description
2803 "To help with the transition to the Freedesktop Icon Naming
2804 Specification, the icon naming utility maps the icon names used by the
2805 GNOME and KDE desktops to the icon names proposed in the specification.")
2806 (license license:lgpl2.1+)))
2807
2808 (define-public gnome-icon-theme
2809 (package
2810 (name "gnome-icon-theme")
2811 (version "3.12.0")
2812 (source
2813 (origin
2814 (method url-fetch)
2815 (uri (string-append "mirror://gnome/sources/" name "/"
2816 (version-major+minor version) "/"
2817 name "-" version ".tar.xz"))
2818 (sha256
2819 (base32
2820 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2821 (build-system gnu-build-system)
2822 (arguments
2823 '(#:configure-flags
2824 ;; Don't create 'icon-theme.cache'.
2825 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2826 (true (string-append coreutils "/bin/true")))
2827 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2828 (native-inputs
2829 `(("icon-naming-utils" ,icon-naming-utils)
2830 ("intltool" ,intltool)
2831 ("pkg-config" ,pkg-config)))
2832 (home-page "https://wiki.gnome.org/Personalization")
2833 (synopsis "GNOME icon theme")
2834 (description "Icons for the GNOME desktop.")
2835 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2836
2837 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2838 (define-public adwaita-icon-theme
2839 (package (inherit gnome-icon-theme)
2840 (name "adwaita-icon-theme")
2841 (version "3.34.3")
2842 (source (origin
2843 (method url-fetch)
2844 (uri (string-append "mirror://gnome/sources/" name "/"
2845 (version-major+minor version) "/"
2846 name "-" version ".tar.xz"))
2847 (sha256
2848 (base32
2849 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2850 (native-inputs
2851 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2852
2853 (define-public tango-icon-theme
2854 (package
2855 (name "tango-icon-theme")
2856 (version "0.8.90")
2857 (source (origin
2858 (method url-fetch)
2859 (uri (string-append "http://tango.freedesktop.org/releases/"
2860 "tango-icon-theme-" version ".tar.bz2"))
2861 (sha256
2862 (base32
2863 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2864 (build-system gnu-build-system)
2865 (native-inputs
2866 `(("icon-naming-utils" ,icon-naming-utils)
2867 ("intltool" ,intltool)
2868 ("imagemagick" ,imagemagick)
2869 ("pkg-config" ,pkg-config)))
2870 (home-page "http://tango-project.org/")
2871 (synopsis "Tango icon theme")
2872 (description "This is an icon theme that follows the Tango visual
2873 guidelines.")
2874 (license license:public-domain)))
2875
2876 (define-public shared-mime-info
2877 (package
2878 (name "shared-mime-info")
2879 (version "1.15")
2880 (source (origin
2881 (method url-fetch)
2882 (uri (string-append
2883 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2884 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2885 ".tar.xz"))
2886 (sha256
2887 (base32
2888 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2889 (build-system gnu-build-system)
2890 (arguments
2891 ;; The build system appears not to be parallel-safe.
2892 '(#:parallel-build? #f))
2893 (inputs
2894 `(("glib" ,glib)
2895 ("libxml2" ,libxml2)))
2896 (native-inputs
2897 `(("gettext" ,gettext-minimal)
2898 ("itstool" ,itstool)
2899 ("pkg-config" ,pkg-config)))
2900 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2901 (synopsis "Database of common MIME types")
2902 (description
2903 "The shared-mime-info package contains the core database of common types
2904 and the update-mime-database command used to extend it. It requires glib2 to
2905 be installed for building the update command. Additionally, it uses intltool
2906 for translations, though this is only a dependency for the maintainers. This
2907 database is translated at Transifex.")
2908 (license license:gpl2+)))
2909
2910 (define-public system-config-printer
2911 (package
2912 (name "system-config-printer")
2913 (version "1.5.15")
2914 (source
2915 (origin
2916 (method url-fetch)
2917 (uri (string-append
2918 "https://github.com/OpenPrinting/system-config-printer/releases/"
2919 "download/v" version
2920 "/system-config-printer-" version ".tar.xz"))
2921 (sha256
2922 (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv"))))
2923 (build-system glib-or-gtk-build-system)
2924 (arguments
2925 `(#:imported-modules ((guix build python-build-system)
2926 ,@%glib-or-gtk-build-system-modules)
2927 #:phases
2928 (modify-phases %standard-phases
2929 (add-after 'unpack 'patch-Makefile.am
2930 (lambda _
2931 ;; The Makefile generates some scripts, so set a valid shebang
2932 (substitute* "Makefile.am"
2933 (("/bin/bash") (which "bash")))
2934 (delete-file "configure")
2935 #t))
2936 (add-after 'unpack 'patch-docbook-xml
2937 (lambda* (#:key inputs #:allow-other-keys)
2938 ;; Modify the man XML otherwise xmlto tries to access the network
2939 (substitute* "man/system-config-printer.xml"
2940 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2941 (string-append (assoc-ref inputs "docbook-xml")
2942 "/xml/dtd/docbook/")))
2943 #t))
2944 (add-after 'install 'wrap-for-python
2945 (@@ (guix build python-build-system) wrap))
2946 (add-after 'install 'wrap
2947 (lambda* (#:key outputs #:allow-other-keys)
2948 (let ((out (assoc-ref outputs "out"))
2949 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2950 (for-each
2951 (lambda (program)
2952 (wrap-program program
2953 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2954 (map (lambda (name)
2955 (string-append out "/bin/" name))
2956 '("system-config-printer"
2957 "system-config-printer-applet"
2958 "install-printerdriver"
2959 "scp-dbus-service"))))
2960 #t)))))
2961 (inputs
2962 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2963 ("gobject-introspection" ,gobject-introspection)
2964 ("python" ,python)
2965 ("cups" ,cups)
2966 ("gtk+" ,gtk+)
2967 ("python-dbus" ,python-dbus)
2968 ("python-pygobject" ,python-pygobject)
2969 ("python-pycups" ,python-pycups)
2970 ("python-requests" ,python-requests)
2971 ("python-pycairo" ,python-pycairo)
2972 ("libnotify" ,libnotify)
2973 ("packagekit" ,packagekit)))
2974 (native-inputs
2975 `(("pkg-config" ,pkg-config)
2976 ("desktop-file-utils" ,desktop-file-utils)
2977 ("glib" ,glib)
2978 ("autoconf" ,autoconf)
2979 ("automake" ,automake)
2980 ("intltool" ,intltool)
2981 ("xmlto" ,xmlto)
2982 ("docbook-xml" ,docbook-xml-4.1.2)
2983 ("docbook-xsl" ,docbook-xsl)
2984 ("libxml2" ,libxml2)))
2985 (home-page "https://github.com/zdohnal/system-config-printer")
2986 (synopsis "CUPS administration tool")
2987 (description
2988 "system-config-printer is a CUPS administration tool. It's written in
2989 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2990 configuring CUPS.")
2991 (license license:gpl2+)))
2992
2993 (define-public hicolor-icon-theme
2994 (package
2995 (name "hicolor-icon-theme")
2996 (version "0.17")
2997 (source
2998 (origin
2999 (method url-fetch)
3000 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3001 "hicolor-icon-theme-" version ".tar.xz"))
3002 (sha256
3003 (base32
3004 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3005 (build-system gnu-build-system)
3006 (arguments
3007 `(#:tests? #f)) ; no check target
3008 (home-page "https://icon-theme.freedesktop.org/releases/")
3009 (synopsis
3010 "Freedesktop icon theme")
3011 (description
3012 "Freedesktop icon theme.")
3013 (license license:gpl2)))
3014
3015 (define-public libnotify
3016 (package
3017 (name "libnotify")
3018 (version "0.7.9")
3019 (source
3020 (origin
3021 (method url-fetch)
3022 (uri (string-append "mirror://gnome/sources/" name "/"
3023 (version-major+minor version) "/"
3024 name "-" version ".tar.xz"))
3025 (sha256
3026 (base32
3027 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3028 (build-system meson-build-system)
3029 (arguments
3030 `(#:phases
3031 (modify-phases %standard-phases
3032 (add-after 'unpack 'fix-docbook
3033 (lambda* (#:key inputs #:allow-other-keys)
3034 ;; Don't attempt to download XSL schema.
3035 (substitute* "meson.build"
3036 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3037 /manpages/docbook.xsl")
3038 (string-append (assoc-ref inputs "docbook-xsl")
3039 "/xml/xsl/docbook-xsl-"
3040 ,(package-version docbook-xsl)
3041 "/manpages/docbook.xsl")))
3042 #t)))))
3043 (propagated-inputs
3044 `(;; In Requires of libnotify.pc.
3045 ("gdk-pixbuf" ,gdk-pixbuf)
3046 ("glib" ,glib)))
3047 (inputs
3048 `(("gtk+" ,gtk+)
3049 ("libpng" ,libpng)))
3050 (native-inputs
3051 `(("pkg-config" ,pkg-config)
3052 ("glib" ,glib "bin")
3053 ("gobject-introspection" ,gobject-introspection)
3054
3055 ;; For the documentation.
3056 ("gtk-doc" ,gtk-doc)
3057 ("xsltproc" ,libxslt)
3058 ("docbook-xsl" ,docbook-xsl)))
3059 (home-page "https://developer-next.gnome.org/libnotify/")
3060 (synopsis
3061 "GNOME desktop notification library")
3062 (description
3063 "Libnotify is a library that sends desktop notifications to a
3064 notification daemon, as defined in the Desktop Notifications spec. These
3065 notifications can be used to inform the user about an event or display
3066 some form of information without getting in the user's way.")
3067 (license license:lgpl2.1+)))
3068
3069 (define-public libpeas
3070 (package
3071 (name "libpeas")
3072 (version "1.28.0")
3073 (source
3074 (origin
3075 (method url-fetch)
3076 (uri (string-append "mirror://gnome/sources/" name "/"
3077 (version-major+minor version) "/"
3078 name "-" version ".tar.xz"))
3079 (sha256
3080 (base32
3081 "05cb7drn6arc4gi02wgsvzibigi2riz5gnfnmlb0zmbfnj9ikna2"))))
3082 (build-system meson-build-system)
3083 (arguments
3084 '(#:phases
3085 (modify-phases %standard-phases
3086 (add-before 'check 'start-xserver
3087 (lambda* (#:key inputs #:allow-other-keys)
3088 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3089 (disp ":1"))
3090 (setenv "DISPLAY" disp)
3091 ;; Tests require a running X server.
3092 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3093 #t))))))
3094 (inputs
3095 `(("gtk+" ,gtk+)
3096 ("glade" ,glade3)
3097 ("python" ,python)
3098 ("python-pygobject" ,python-pygobject)))
3099 (native-inputs
3100 `(("pkg-config" ,pkg-config)
3101 ("gettext" ,gettext-minimal)
3102 ("glib:bin" ,glib "bin")
3103 ("gobject-introspection" ,gobject-introspection)
3104 ("xorg-server" ,xorg-server-for-tests)))
3105 (propagated-inputs
3106 ;; The .pc file "Requires" gobject-introspection.
3107 `(("gobject-introspection" ,gobject-introspection)))
3108 (home-page "https://wiki.gnome.org/Libpeas")
3109 (synopsis "GObject plugin system")
3110 (description
3111 "Libpeas is a gobject-based plugin engine, targeted at giving every
3112 application the chance to assume its own extensibility. It also has a set of
3113 features including, but not limited to: multiple extension points; on-demand
3114 (lazy) programming language support for C, Python and JS; simplicity of the
3115 API.")
3116 (license license:lgpl2.0+)))
3117
3118 (define-public gtkglext
3119 (package
3120 (name "gtkglext")
3121 (version "1.2.0")
3122 (source (origin
3123 (method url-fetch)
3124 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3125 version "/gtkglext-" version ".tar.gz"))
3126 (sha256
3127 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3128 (patches (search-patches
3129 "gtkglext-disable-disable-deprecated.patch"))))
3130 (build-system gnu-build-system)
3131 (arguments
3132 `(#:phases
3133 (modify-phases %standard-phases
3134 ;; Fix a collision between a local variable and a definition from
3135 ;; glibc's string.h.
3136 (add-after 'unpack 'fix-collision
3137 (lambda _
3138 (substitute* "gdk/gdkglshapes.c"
3139 ((" index") " triangle_index"))
3140 #t)))))
3141 (inputs `(("gtk+" ,gtk+-2)
3142 ("mesa" ,mesa)
3143 ("glu" ,glu)
3144 ("libx11" ,libx11)
3145 ("libxt" ,libxt)))
3146 (native-inputs `(("pkg-config" ,pkg-config)
3147 ("glib" ,glib "bin")))
3148 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
3149 (home-page "https://projects.gnome.org/gtkglext")
3150 (synopsis "OpenGL extension to GTK+")
3151 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3152 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3153 API add-ons to make GTK+ widgets OpenGL-capable.")
3154 (license license:lgpl2.1+)))
3155
3156 (define-public glade3
3157 (package
3158 (name "glade")
3159 (version "3.36.0")
3160 (source (origin
3161 (method url-fetch)
3162 (uri (string-append "mirror://gnome/sources/" name "/"
3163 (version-major+minor version) "/"
3164 name "-" version ".tar.xz"))
3165 (sha256
3166 (base32
3167 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
3168 (build-system glib-or-gtk-build-system)
3169 (arguments
3170 `(#:phases
3171 (modify-phases %standard-phases
3172 (add-before 'configure 'fix-docbook
3173 (lambda* (#:key inputs #:allow-other-keys)
3174 (substitute* "man/Makefile.in"
3175 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
3176 (string-append (assoc-ref inputs "docbook-xsl")
3177 "/xml/xsl/docbook-xsl-"
3178 ,(package-version docbook-xsl)
3179 "/manpages/docbook.xsl")))
3180 #t))
3181 (add-before 'check 'pre-check
3182 (lambda _
3183 (setenv "HOME" "/tmp")
3184 ;; Tests require a running X server.
3185 (system "Xvfb :1 &")
3186 (setenv "DISPLAY" ":1")
3187 #t)))))
3188 (inputs
3189 `(("gtk+" ,gtk+)
3190 ("libxml2" ,libxml2)))
3191 (native-inputs
3192 `(("hicolor-icon-theme" ,hicolor-icon-theme)
3193 ("intltool" ,intltool)
3194 ("itstool" ,itstool)
3195 ("libxslt" ,libxslt) ;for xsltproc
3196 ("docbook-xml" ,docbook-xml-4.2)
3197 ("docbook-xsl" ,docbook-xsl)
3198 ("python" ,python-2)
3199 ("pkg-config" ,pkg-config)
3200 ("xorg-server" ,xorg-server-for-tests)))
3201 (home-page "https://glade.gnome.org")
3202 (synopsis "GTK+ rapid application development tool")
3203 (description "Glade is a rapid application development (RAD) tool to
3204 enable quick & easy development of user interfaces for the GTK+ toolkit and
3205 the GNOME desktop environment.")
3206 (license license:lgpl2.0+)
3207 (native-search-paths (list (search-path-specification
3208 (variable "GLADE_CATALOG_SEARCH_PATH")
3209 (files '("share/glade/catalogs")))
3210 (search-path-specification
3211 (variable "GLADE_MODULE_SEARCH_PATH")
3212 (files '("lib/glade/modules")))))))
3213
3214 (define-public libcroco
3215 (package
3216 (name "libcroco")
3217 (version "0.6.13")
3218 (source (origin
3219 (method url-fetch)
3220 (uri (string-append "mirror://gnome/sources/" name "/"
3221 (version-major+minor version) "/"
3222 name "-" version ".tar.xz"))
3223 (sha256
3224 (base32
3225 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3226 (build-system gnu-build-system)
3227 (native-inputs
3228 `(("pkg-config" ,pkg-config)))
3229 (inputs
3230 `(("glib" ,glib)
3231 ("libxml2" ,libxml2)
3232 ("zlib" ,zlib)))
3233 (home-page "https://github.com/GNOME/libcroco")
3234 (synopsis "CSS2 parsing and manipulation library")
3235 (description
3236 "Libcroco is a standalone CSS2 parsing and manipulation library.
3237 The parser provides a low level event driven SAC-like API and a CSS object
3238 model like API. Libcroco provides a CSS2 selection engine and an experimental
3239 XML/CSS rendering engine.")
3240
3241 ;; LGPLv2.1-only.
3242 (license license:lgpl2.1)))
3243
3244 (define-public libgsf
3245 (package
3246 (name "libgsf")
3247 (version "1.14.47")
3248 (source (origin
3249 (method url-fetch)
3250 (uri (string-append "mirror://gnome/sources/" name "/"
3251 (version-major+minor version) "/"
3252 name "-" version ".tar.xz"))
3253 (sha256
3254 (base32
3255 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3256 (build-system gnu-build-system)
3257 (arguments
3258 '(#:configure-flags '("--disable-static")))
3259 (native-inputs
3260 `(("pkg-config" ,pkg-config)
3261 ("gettext" ,gettext-minimal)
3262
3263 ;; For tests.
3264 ("perl" ,perl)
3265 ("perl-xml-parser" ,perl-xml-parser)))
3266 (inputs
3267 `(("zlib" ,zlib)
3268 ("bzip2" ,bzip2)))
3269 (propagated-inputs
3270 `(("gdk-pixbuf" ,gdk-pixbuf)
3271 ("glib" ,glib)
3272 ("libxml2" ,libxml2)))
3273 (home-page "https://www.gnome.org/projects/libgsf")
3274 (synopsis "GNOME's Structured File Library")
3275 (description
3276 "Libgsf aims to provide an efficient extensible I/O abstraction for
3277 dealing with different structured file formats.")
3278
3279 ;; LGPLv2.1-only.
3280 (license license:lgpl2.1)))
3281
3282 (define-public librsvg
3283 (package
3284 (name "librsvg")
3285 (version "2.40.21")
3286 (source (origin
3287 (method url-fetch)
3288 (uri (string-append "mirror://gnome/sources/" name "/"
3289 (version-major+minor version) "/"
3290 name "-" version ".tar.xz"))
3291 (sha256
3292 (base32
3293 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3294 (build-system gnu-build-system)
3295 (arguments
3296 `(#:configure-flags
3297 (list "--disable-static"
3298 "--enable-vala") ; needed for e.g. gnome-mines
3299 #:phases
3300 (modify-phases %standard-phases
3301 (add-before 'configure 'pre-configure
3302 (lambda* (#:key inputs #:allow-other-keys)
3303 (substitute* "gdk-pixbuf-loader/Makefile.in"
3304 ;; By default the gdk-pixbuf loader is installed under
3305 ;; gdk-pixbuf's prefix. Work around that.
3306 (("gdk_pixbuf_moduledir = .*$")
3307 (string-append "gdk_pixbuf_moduledir = "
3308 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3309 "loaders\n"))
3310 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3311 (("gdk_pixbuf_cache_file = .*$")
3312 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3313 #t))
3314 (add-before 'check 'remove-failing-tests
3315 (lambda _
3316 (with-directory-excursion "tests/fixtures/reftests"
3317 (for-each delete-file
3318 '(;; This test fails on i686:
3319 "svg1.1/masking-path-04-b.svg"
3320 ;; This test fails on armhf:
3321 "svg1.1/masking-mask-01-b.svg"
3322 ;; This test fails on aarch64:
3323 "bugs/777834-empty-text-children.svg")))
3324 #t)))))
3325 (native-inputs
3326 `(("pkg-config" ,pkg-config)
3327 ("vala" ,vala)
3328 ("glib" ,glib "bin") ; glib-mkenums, etc.
3329 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3330 (inputs
3331 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3332 ;; this ancient version of librsvg.
3333 ("pango" ,pango-1.42)
3334 ("libcroco" ,libcroco)
3335 ("bzip2" ,bzip2)
3336 ("libgsf" ,libgsf)
3337 ("libxml2" ,libxml2)))
3338 (propagated-inputs
3339 ;; librsvg-2.0.pc refers to all of that.
3340 `(("cairo" ,cairo)
3341 ("gdk-pixbuf" ,gdk-pixbuf)
3342 ("glib" ,glib)))
3343 (home-page "https://wiki.gnome.org/LibRsvg")
3344 (synopsis "Render SVG files using Cairo")
3345 (description
3346 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3347 library.")
3348 (license license:lgpl2.0+)))
3349
3350 (define-public librsvg-next
3351 (package
3352 (name "librsvg")
3353 (version "2.50.2")
3354 (source (origin
3355 (method url-fetch)
3356 (uri (string-append "mirror://gnome/sources/librsvg/"
3357 (version-major+minor version) "/"
3358 "librsvg-" version ".tar.xz"))
3359 (sha256
3360 (base32
3361 "1lsnl08b5pjf01q3agixjd53islw5rqkc38r31rlmm2crrqz44b2"))
3362 (modules '((guix build utils)))
3363 (snippet
3364 '(begin (delete-file-recursively "vendor")
3365 #t))))
3366 (build-system cargo-build-system)
3367 (outputs '("out" "doc"))
3368 (arguments
3369 `(#:modules
3370 ((guix build cargo-build-system)
3371 (guix build utils)
3372 ((guix build gnu-build-system) #:prefix gnu:))
3373 #:cargo-inputs
3374 (("rust-bitflags" ,rust-bitflags-1)
3375 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3376 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3377 ("rust-cast" ,rust-cast-0.2)
3378 ("rust-cssparser" ,rust-cssparser-0.27)
3379 ("rust-data-url" ,rust-data-url-0.1)
3380 ("rust-encoding" ,rust-encoding-0.2)
3381 ("rust-float-cmp" ,rust-float-cmp-0.8)
3382 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3383 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3384 ("rust-gio" ,rust-gio-0.8)
3385 ("rust-gio-sys" ,rust-gio-sys-0.9)
3386 ("rust-glib" ,rust-glib-0.9)
3387 ("rust-glib-sys" ,rust-glib-sys-0.9)
3388 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3389 ("rust-itertools" ,rust-itertools-0.9)
3390 ("rust-language-tags" ,rust-language-tags-0.2)
3391 ("rust-libc" ,rust-libc-0.2)
3392 ("rust-locale-config" ,rust-locale-config-0.3)
3393 ("rust-markup5ever" ,rust-markup5ever-0.10)
3394 ("rust-nalgebra" ,rust-nalgebra-0.21)
3395 ("rust-num-traits" ,rust-num-traits-0.2)
3396 ("rust-once-cell" ,rust-once-cell-1)
3397 ("rust-pkg-config" ,rust-pkg-config-0.3)
3398 ("rust-pango" ,rust-pango-0.8)
3399 ("rust-pango-sys" ,rust-pango-sys-0.9)
3400 ("rust-pangocairo" ,rust-pangocairo-0.9)
3401 ("rust-rayon" ,rust-rayon-1)
3402 ("rust-rctree" ,rust-rctree-0.3)
3403 ("rust-rgb" ,rust-rgb-0.8)
3404 ("rust-regex" ,rust-regex-1)
3405 ("rust-selectors" ,rust-selectors-0.22)
3406 ("rust-string-cache" ,rust-string-cache-0.8)
3407 ("rust-tinyvec" ,rust-tinyvec-0.3)
3408 ("rust-url" ,rust-url-2)
3409 ("rust-xml5ever" ,rust-xml5ever-0.16))
3410 #:cargo-development-inputs
3411 (("rust-assert-cmd" ,rust-assert-cmd-1)
3412 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3413 ("rust-chrono" ,rust-chrono-0.4)
3414 ("rust-criterion" ,rust-criterion-0.3)
3415 ("rust-float-cmp" ,rust-float-cmp-0.8)
3416 ("rust-lopdf" ,rust-lopdf-0.25)
3417 ("rust-png" ,rust-png-0.16)
3418 ("rust-predicates" ,rust-predicates-1)
3419 ("rust-tempfile" ,rust-tempfile-3))
3420 #:phases
3421 (modify-phases %standard-phases
3422 (add-after 'unpack 'patch-docbook-xml
3423 (lambda* (#:key inputs #:allow-other-keys)
3424 (with-directory-excursion "doc"
3425 (substitute* "rsvg-docs.xml"
3426 (("http://www.oasis-open.org/docbook/xml/4.3/")
3427 (string-append (assoc-ref inputs "docbook-xml")
3428 "/xml/dtd/docbook/"))))
3429 #t))
3430 (add-after 'unpack 'prepare-for-build
3431 (lambda _
3432 ;; In lieu of #:make-flags
3433 (setenv "CC" ,(cc-for-target))
3434 ;; Something about the build environment resists building
3435 ;; successfully with the '--locked' flag.
3436 (substitute* '("Makefile.am" "Makefile.in")
3437 (("--locked") ""))
3438 #t))
3439 (add-before 'configure 'pre-configure
3440 (lambda _
3441 (substitute* "gdk-pixbuf-loader/Makefile.in"
3442 ;; By default the gdk-pixbuf loader is installed under
3443 ;; gdk-pixbuf's prefix. Work around that.
3444 (("gdk_pixbuf_moduledir = .*$")
3445 (string-append "gdk_pixbuf_moduledir = "
3446 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3447 "loaders\n"))
3448 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3449 (("gdk_pixbuf_cache_file = .*$")
3450 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3451 #t))
3452 (add-after 'configure 'gnu-configure
3453 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3454 ((assoc-ref gnu:%standard-phases 'configure)
3455 #:native-inputs native-inputs
3456 #:inputs inputs
3457 #:outputs outputs
3458 #:configure-flags
3459 (list "--disable-static"
3460 "--enable-vala"
3461 (string-append "--with-html-dir="
3462 (assoc-ref %outputs "doc")
3463 "/share/gtk-doc/html")))))
3464 (add-after 'configure 'dont-vendor-self
3465 (lambda* (#:key vendor-dir #:allow-other-keys)
3466 ;; Don't keep the whole tarball in the vendor directory
3467 (delete-file-recursively
3468 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3469 #t))
3470 (replace 'build
3471 (assoc-ref gnu:%standard-phases 'build))
3472 (add-before 'check 'ignore-failing-tests
3473 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3474 (lambda _
3475 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3476 (("fn background_color_option_invalid_color_yields_error" all)
3477 (string-append "#[ignore] " all))
3478 (("fn empty_input_yields_error" all)
3479 (string-append "#[ignore] " all))
3480 (("fn empty_svg_yields_error" all)
3481 (string-append "#[ignore] " all))
3482 (("fn env_source_data_epoch_empty" all)
3483 (string-append "#[ignore] " all))
3484 (("fn env_source_data_epoch_no_digits" all)
3485 (string-append "#[ignore] " all))
3486 (("fn env_source_data_epoch_trailing_garbage" all)
3487 (string-append "#[ignore] " all))
3488 (("fn export_id_option_error" all)
3489 (string-append "#[ignore] " all))
3490 (("fn huge_zoom_factor_yields_error" all)
3491 (string-append "#[ignore] " all))
3492 (("fn multiple_input_files_not_allowed_for_png_output" all)
3493 (string-append "#[ignore] " all))
3494 (("fn stylesheet_option_error" all)
3495 (string-append "#[ignore] " all)))
3496 #t))
3497 (replace 'check
3498 (lambda* args
3499 ((assoc-ref gnu:%standard-phases 'check)
3500 #:test-target "check")))
3501 (replace 'install
3502 (assoc-ref gnu:%standard-phases 'install)))))
3503 (native-inputs
3504 `(("docbook-xml" ,docbook-xml-4.3)
3505 ("glib" ,glib "bin")
3506 ("gobject-introspection" ,gobject-introspection)
3507 ("pkg-config" ,pkg-config)
3508 ("python" ,python-wrapper)
3509 ("ruby" ,ruby)
3510 ("vala" ,vala)))
3511 (inputs
3512 `(("bzip2" ,bzip2)
3513 ("fontconfig" ,fontconfig)
3514 ("freetype" ,freetype)
3515 ("harfbuzz" ,harfbuzz)
3516 ("libcroco" ,libcroco)
3517 ("libgsf" ,libgsf)
3518 ("libxml2" ,libxml2)
3519 ("pango" ,pango)))
3520 (propagated-inputs
3521 `(("cairo" ,cairo)
3522 ("gdk-pixbuf" ,gdk-pixbuf)
3523 ("glib" ,glib)))
3524 (synopsis "SVG rendering library")
3525 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3526 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3527 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3528 diagrams.")
3529 (home-page "https://wiki.gnome.org/LibRsvg")
3530 (license license:lgpl2.1+)))
3531
3532 (define-public libidl
3533 (package
3534 (name "libidl")
3535 (version "0.8.14")
3536 (source (origin
3537 (method url-fetch)
3538 (uri (string-append "mirror://gnome/sources/libIDL/"
3539 (version-major+minor version) "/"
3540 "libIDL-" version ".tar.bz2"))
3541 (sha256
3542 (base32
3543 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3544 (build-system gnu-build-system)
3545 (inputs `(("glib" ,glib)))
3546 (native-inputs
3547 `(("pkg-config" ,pkg-config)
3548 ("flex" ,flex)
3549 ("bison" ,bison)))
3550 (home-page "http://freecode.com/projects/libidl")
3551 (synopsis "Create trees of CORBA Interface Definition Language files")
3552 (description "Libidl is a library for creating trees of CORBA Interface
3553 Definition Language (idl) files, which is a specification for defining
3554 portable interfaces. libidl was initially written for orbit (the orb from the
3555 GNOME project, and the primary means of libidl distribution). However, the
3556 functionality was designed to be as reusable and portable as possible.")
3557 (properties `((upstream-name . "libIDL")))
3558 (license license:lgpl2.0+)))
3559
3560
3561 (define-public orbit2
3562 (package
3563 (name "orbit2")
3564 (version "2.14.19")
3565 (source (origin
3566 (method url-fetch)
3567 (uri (let ((upstream-name "ORBit2"))
3568 (string-append "mirror://gnome/sources/" upstream-name "/"
3569 (version-major+minor version) "/"
3570 upstream-name "-" version ".tar.bz2")))
3571 (sha256
3572 (base32
3573 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3574 (build-system gnu-build-system)
3575 (arguments
3576 `(;; The "timeout-server" test hangs when run in parallel.
3577 #:parallel-tests? #f
3578 #:configure-flags
3579 '(;; We don't need static libraries, plus they don't build reproducibly
3580 ;; (non-deterministic ordering of .o files in the archive.)
3581 "--disable-static"
3582
3583 ;; The programmer kindly gives us a hook to turn off deprecation
3584 ;; warnings ...
3585 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3586 ;; ... which they then completly ignore !!
3587 #:phases
3588 (modify-phases %standard-phases
3589 (add-before 'configure 'ignore-deprecations
3590 (lambda _
3591 (substitute* "linc2/src/Makefile.in"
3592 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3593 #t)))))
3594 (inputs `(("glib" ,glib)
3595 ("libidl" ,libidl)))
3596 (native-inputs
3597 `(("pkg-config" ,pkg-config)))
3598 (home-page "https://projects.gnome.org/orbit2/")
3599 (synopsis "CORBA 2.4-compliant Object Request Broker")
3600 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3601 featuring mature C, C++ and Python bindings.")
3602 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3603 ;; a version. SOME of the code files have licence notices for GPLv2+.
3604 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3605 (license license:gpl2+)
3606 (properties `((upstream-name . "ORBit2")))))
3607
3608
3609 (define-public libbonobo
3610 (package
3611 (name "libbonobo")
3612 (version "2.32.1")
3613 (source (origin
3614 (method url-fetch)
3615 (uri (string-append "mirror://gnome/sources/" name "/"
3616 (version-major+minor version)
3617 "/" name "-" version ".tar.bz2"))
3618 (sha256
3619 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3620 (patches (search-patches
3621 "libbonobo-activation-test-race.patch"))))
3622 (build-system gnu-build-system)
3623 (arguments
3624 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3625 `(#:configure-flags
3626 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3627 ;; ... which they then completly ignore !!
3628 #:phases
3629 (modify-phases %standard-phases
3630 (add-before 'configure 'ignore-deprecations
3631 (lambda _
3632 (substitute* "activation-server/Makefile.in"
3633 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3634 #t)))
3635
3636 ;; There's apparently a race condition between the server stub
3637 ;; generation and linking of the example under 'samples/echo' that can
3638 ;; lead do undefined references when building in parallel, as reported
3639 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3640 ;; Thus, disable parallel builds.
3641 #:parallel-build? #f))
3642 (inputs `(("popt" ,popt)
3643 ("libxml2" ,libxml2)))
3644 ;; The following are Required by the .pc file
3645 (propagated-inputs
3646 `(("glib" ,glib)
3647 ("orbit2" ,orbit2)))
3648 (native-inputs
3649 `(("intltool" ,intltool)
3650 ("pkg-config" ,pkg-config)
3651 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3652 ("flex" ,flex)
3653 ("bison" ,bison)))
3654 (home-page "https://developer.gnome.org/libbonobo/")
3655 (synopsis "Framework for creating reusable components for use in GNOME applications")
3656 (description "Bonobo is a framework for creating reusable components for
3657 use in GNOME applications, built on top of CORBA.")
3658 ;; Licence not explicitly stated. Source files contain no licence notices.
3659 ;; Tarball contains text of both GPLv2 and LGPLv2
3660 ;; GPLv2 covers both conditions
3661 (license license:gpl2+)))
3662
3663
3664 (define-public gconf
3665 (package
3666 (name "gconf")
3667 (version "3.2.6")
3668 (source (origin
3669 (method url-fetch)
3670 (uri
3671 (let ((upstream-name "GConf"))
3672 (string-append "mirror://gnome/sources/" upstream-name "/"
3673 (version-major+minor version) "/"
3674 upstream-name "-" version ".tar.xz")))
3675 (sha256
3676 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3677 (build-system gnu-build-system)
3678 (inputs `(("dbus-glib" ,dbus-glib)
3679 ("libxml2" ,libxml2)))
3680 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3681 ("orbit2" ,orbit2)))
3682 (native-inputs
3683 `(("intltool" ,intltool)
3684 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3685 ("pkg-config" ,pkg-config)))
3686 (home-page "https://projects.gnome.org/gconf/")
3687 (synopsis "Store application preferences")
3688 (description "Gconf is a system for storing application preferences. It
3689 is intended for user preferences; not arbitrary data storage.")
3690 (license license:lgpl2.0+)
3691 (properties '((upstream-name . "GConf")))))
3692
3693
3694 (define-public gnome-mime-data
3695 (package
3696 (name "gnome-mime-data")
3697 (version "2.18.0")
3698 (source (origin
3699 (method url-fetch)
3700 (uri (string-append "mirror://gnome/sources/" name "/"
3701 (version-major+minor version) "/"
3702 name "-" version ".tar.bz2"))
3703 (sha256
3704 (base32
3705 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3706 (build-system gnu-build-system)
3707 (native-inputs
3708 `(("perl" ,perl)
3709 ("intltool" ,intltool)))
3710 (arguments
3711 '(#:phases (modify-phases %standard-phases
3712 (add-after 'configure 'use-our-intltool
3713 (lambda _
3714 ;; Do not use the bundled intltool commands, which lack
3715 ;; the "dotless @INC" fixes of our 'intltool' package.
3716 (substitute* (find-files "." "^Makefile$")
3717 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3718 (string-append "INTLTOOL_" tool " = intltool-"
3719 (string-downcase tool) "\n")))
3720 #t)))))
3721 (home-page "https://www.gnome.org")
3722 (synopsis "Base MIME and Application database for GNOME")
3723 (description "GNOME Mime Data is a module which contains the base MIME
3724 and Application database for GNOME. The data stored by this module is
3725 designed to be accessed through the MIME functions in GnomeVFS.")
3726 (license license:gpl2+)))
3727
3728
3729 (define-public gnome-vfs
3730 (package
3731 (name "gnome-vfs")
3732 (version "2.24.4")
3733 (source (origin
3734 (method url-fetch)
3735 (uri (string-append "mirror://gnome/sources/" name "/"
3736 (version-major+minor version) "/"
3737 name "-" version ".tar.bz2"))
3738 (sha256
3739 (base32
3740 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3741 (build-system gnu-build-system)
3742 (arguments
3743 `(#:phases
3744 (modify-phases %standard-phases
3745 (add-before 'configure 'ignore-deprecations
3746 (lambda _
3747 (substitute* '("libgnomevfs/Makefile.in"
3748 "daemon/Makefile.in")
3749 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3750 #t))
3751 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3752 (lambda _
3753 (substitute* "test/test-async-cancel.c"
3754 (("EXIT_FAILURE") "77"))
3755 #t)))))
3756 (inputs `(("libxml2" ,libxml2)
3757 ("dbus-glib" ,dbus-glib)
3758 ("gconf" ,gconf)
3759 ("gnome-mime-data" ,gnome-mime-data)
3760 ("zlib" ,zlib)))
3761 (native-inputs
3762 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3763 ("intltool" ,intltool)
3764 ("pkg-config" ,pkg-config)))
3765 (home-page "https://developer.gnome.org/gnome-vfs/")
3766 (synopsis "Access files and folders in GNOME applications")
3767 (description
3768 "GnomeVFS is the core library used to access files and folders in GNOME
3769 applications. It provides a file system abstraction which allows applications
3770 to access local and remote files with a single consistent API.")
3771 (license license:lgpl2.0+)))
3772
3773
3774
3775 (define-public libgnome
3776 (package
3777 (name "libgnome")
3778 (version "2.32.1")
3779 (source (origin
3780 (method url-fetch)
3781 (uri (string-append "mirror://gnome/sources/" name "/"
3782 (version-major+minor version) "/"
3783 name "-" version ".tar.bz2"))
3784 (sha256
3785 (base32
3786 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3787 (patches (search-patches "libgnome-encoding.patch"))))
3788 (build-system gnu-build-system)
3789 (arguments
3790 `(#:phases
3791 (modify-phases %standard-phases
3792 (add-before 'configure 'enable-deprecated
3793 (lambda _
3794 (substitute* "libgnome/Makefile.in"
3795 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3796 #t)))))
3797 (inputs `(("libxml2" ,libxml2)))
3798 (native-inputs
3799 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3800 ("intltool" ,intltool)
3801 ("pkg-config" ,pkg-config)))
3802 ;; The following are listed as Required in the .pc file
3803 ;; (except for libcanberra -- which seems to be oversight on the part
3804 ;; of the upstream developers -- anything that links against libgnome,
3805 ;; must also link against libcanberra
3806 (propagated-inputs
3807 `(("libcanberra" ,libcanberra)
3808 ("libbonobo" ,libbonobo)
3809 ("gconf" ,gconf)
3810 ("gnome-vfs" ,gnome-vfs)
3811 ("popt" ,popt))) ;gnome-program.h includes popt.h
3812 (home-page "https://developer.gnome.org/libgnome/")
3813 (synopsis "Useful routines for building applications")
3814 (description "The libgnome library provides a number of useful routines
3815 for building modern applications, including session management, activation of
3816 files and URIs, and displaying help.")
3817 (license license:lgpl2.0+)))
3818
3819
3820 (define-public libart-lgpl
3821 (package
3822 (name "libart-lgpl")
3823 (version "2.3.21")
3824 (source (origin
3825 (method url-fetch)
3826 (uri (let ((upstream-name "libart_lgpl"))
3827 (string-append "mirror://gnome/sources/" upstream-name "/"
3828 (version-major+minor version) "/"
3829 upstream-name "-" version ".tar.bz2")))
3830 (sha256
3831 (base32
3832 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3833 (build-system gnu-build-system)
3834 (native-inputs
3835 `(("pkg-config" ,pkg-config)))
3836 (home-page "https://people.gnome.org/~mathieu/libart")
3837 (synopsis "2D drawing library")
3838 (description "Libart is a 2D drawing library intended as a
3839 high-quality vector-based 2D library with antialiasing and alpha composition.")
3840 (license license:lgpl2.0+)))
3841
3842
3843
3844 (define-public libgnomecanvas
3845 (package
3846 (name "libgnomecanvas")
3847 (version "2.30.3")
3848 (source (origin
3849 (method url-fetch)
3850 (uri (string-append "mirror://gnome/sources/" name "/"
3851 (version-major+minor version) "/"
3852 name "-" version ".tar.gz"))
3853 (sha256
3854 (base32
3855 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3856 (build-system gnu-build-system)
3857 ;; Mentioned as Required in the .pc file
3858 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3859 ("gtk+" ,gtk+-2)))
3860 (native-inputs
3861 `(("intltool" ,intltool)
3862 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3863 ("pkg-config" ,pkg-config)))
3864 (home-page "https://developer.gnome.org/libgnomecanvas/")
3865 (synopsis "Flexible widget for creating interactive structured graphics")
3866 (description "The GnomeCanvas widget provides a flexible widget for
3867 creating interactive structured graphics.")
3868 (license license:lgpl2.0+)))
3869
3870 (define-public libgnomecanvasmm
3871 (package
3872 (name "libgnomecanvasmm")
3873 (version "2.26.0")
3874 (source (origin
3875 (method url-fetch)
3876 (uri (string-append "mirror://gnome/sources/" name "/"
3877 (version-major+minor version) "/"
3878 name "-" version ".tar.bz2"))
3879 (sha256
3880 (base32
3881 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3882 (build-system gnu-build-system)
3883 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3884 (native-inputs
3885 `(("gtkmm-2" ,gtkmm-2)
3886 ("pkg-config" ,pkg-config)))
3887 (home-page "https://gtkmm.org")
3888 (synopsis "C++ bindings to the GNOME Canvas library")
3889 (description "C++ bindings to the GNOME Canvas library.")
3890 (license license:lgpl2.0+)))
3891
3892 (define-public libgnomeui
3893 (package
3894 (name "libgnomeui")
3895 (version "2.24.5")
3896 (source (origin
3897 (method url-fetch)
3898 (uri (string-append "mirror://gnome/sources/" name "/"
3899 (version-major+minor version) "/"
3900 name "-" version ".tar.bz2"))
3901 (patches (search-patches "libgnomeui-utf8.patch"))
3902 (sha256
3903 (base32
3904 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3905 (build-system gnu-build-system)
3906 ;; Mentioned as Required in the .pc file
3907 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3908 ("libgnome" ,libgnome)
3909 ("libgnomecanvas" ,libgnomecanvas)
3910 ("libgnome-keyring" ,libgnome-keyring)))
3911 (inputs `(("libjpeg" ,libjpeg-turbo)
3912 ("popt" ,popt)
3913 ("libbonobo" ,libbonobo)
3914 ("libxml2" ,libxml2)
3915 ("libglade" ,libglade)))
3916 (native-inputs
3917 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3918 ("intltool" ,intltool)
3919 ("pkg-config" ,pkg-config)))
3920 (home-page "https://developer.gnome.org/libgnomeui/")
3921 (synopsis "Additional widgets for applications")
3922 (description "The libgnomeui library provides additional widgets for
3923 applications. Many of the widgets from libgnomeui have already been
3924 ported to GTK+.")
3925 (license license:lgpl2.0+)))
3926
3927 (define-public libglade
3928 (package
3929 (name "libglade")
3930 (version "2.6.4")
3931 (source (origin
3932 (method url-fetch)
3933 (uri (string-append "mirror://gnome/sources/" name "/"
3934 (version-major+minor version) "/"
3935 name "-" version ".tar.bz2"))
3936 (sha256
3937 (base32
3938 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3939 (build-system gnu-build-system)
3940 (inputs
3941 `(("python" ,python))) ;; needed for the optional libglade-convert program
3942 (propagated-inputs
3943 `(("gtk+-2" ,gtk+-2)
3944 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3945 (native-inputs
3946 `(("pkg-config" ,pkg-config)))
3947 (home-page "https://developer.gnome.org/libglade")
3948 (synopsis "Load glade interfaces and access the glade built widgets")
3949 (description "Libglade is a library that provides interfaces for loading
3950 graphical interfaces described in glade files and for accessing the
3951 widgets built in the loading process.")
3952 (license license:gpl2+))) ; This is correct. GPL not LGPL
3953
3954 (define-public libgnomeprint
3955 ;; This library has been deprecated since 2006; see
3956 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3957 (package
3958 (name "libgnomeprint")
3959 (version "2.18.8")
3960 (source (origin
3961 (method url-fetch)
3962 (uri (string-append "mirror://gnome/sources/" name "/"
3963 (version-major+minor version) "/"
3964 name "-" version ".tar.bz2"))
3965 (sha256
3966 (base32
3967 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3968 (build-system gnu-build-system)
3969 (inputs
3970 `(("popt" ,popt)
3971 ("libart-lgpl" ,libart-lgpl)
3972 ("gtk+" ,gtk+-2)
3973 ("libxml2" ,libxml2)))
3974 (native-inputs
3975 `(("intltool" ,intltool)
3976 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3977 ("pkg-config" ,pkg-config)))
3978 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3979 (synopsis "Printing framework for GNOME")
3980 (description
3981 "GNOME-print was a printing framework for GNOME. It has been deprecated
3982 since ca. 2006, when GTK+ itself incorporated printing support.")
3983 (license license:lgpl2.0+)))
3984
3985
3986 (define-public libgnomeprintui
3987 ;; Deprecated; see libgnomeprint.
3988 (package
3989 (name "libgnomeprintui")
3990 (version "2.18.6")
3991 (source (origin
3992 (method url-fetch)
3993 (uri (string-append "mirror://gnome/sources/" name "/"
3994 (version-major+minor version) "/"
3995 name "-" version ".tar.bz2"))
3996 (sha256
3997 (base32
3998 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
3999 (build-system gnu-build-system)
4000 ;; Mentioned as Required in the .pc file
4001 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
4002 (inputs `(("gtk+" ,gtk+-2)
4003 ("glib" ,glib)
4004 ("gnome-icon-theme" ,gnome-icon-theme)
4005 ("libgnomecanvas" ,libgnomecanvas)
4006 ("libxml2" ,libxml2)))
4007 (native-inputs
4008 `(("intltool" ,intltool)
4009 ("pkg-config" ,pkg-config)))
4010 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
4011 (synopsis "Printing framework for GNOME")
4012 (description (package-description libgnomeprint))
4013 (license license:lgpl2.0+)))
4014
4015 (define-public libbonoboui
4016 (package
4017 (name "libbonoboui")
4018 (version "2.24.5")
4019 (source (origin
4020 (method url-fetch)
4021 (uri (string-append "mirror://gnome/sources/" name "/"
4022 (version-major+minor version) "/"
4023 name "-" version ".tar.bz2"))
4024 (sha256
4025 (base32
4026 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4027 (build-system gnu-build-system)
4028 (arguments
4029 `(#:phases
4030 (modify-phases %standard-phases
4031 (add-before 'check 'start-xserver
4032 (lambda* (#:key inputs #:allow-other-keys)
4033 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4034 (disp ":1"))
4035
4036 (setenv "HOME" (getcwd))
4037 (setenv "DISPLAY" disp)
4038 ;; There must be a running X server and make check doesn't start one.
4039 ;; Therefore we must do it.
4040 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4041 ;; Mentioned as Required by the .pc file
4042 (propagated-inputs `(("libxml2" ,libxml2)))
4043 (inputs
4044 `(("popt" ,popt)
4045 ("pangox-compat" ,pangox-compat)
4046 ("libgnome" ,libgnome)
4047 ("libgnomecanvas" ,libgnomecanvas)
4048 ("libglade" ,libglade)))
4049 (native-inputs
4050 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
4051 ("intltool" ,intltool)
4052 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
4053 ("pkg-config" ,pkg-config)))
4054 (home-page "https://developer.gnome.org/libbonoboui/")
4055 (synopsis "Some user interface controls using Bonobo")
4056 (description "The Bonobo UI library provides a number of user interface
4057 controls using the Bonobo component framework.")
4058 (license license:lgpl2.0+)))
4059
4060 (define-public libwnck
4061 (package
4062 (name "libwnck")
4063 (version "3.32.0")
4064 (source (origin
4065 (method url-fetch)
4066 (uri (string-append "mirror://gnome/sources/" name "/"
4067 (version-major+minor version) "/"
4068 name "-" version ".tar.xz"))
4069 (sha256
4070 (base32
4071 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4072 (build-system meson-build-system)
4073 (native-inputs
4074 `(("pkg-config" ,pkg-config)
4075 ("glib" ,glib "bin") ; for glib-mkenums
4076 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
4077 ("intltool" ,intltool)))
4078 (propagated-inputs
4079 `(("gtk+" ,gtk+)
4080 ("libxres" ,libxres)
4081 ("startup-notification" ,startup-notification)))
4082 (home-page "https://developer.gnome.org/libwnck/")
4083 (synopsis "Window Navigator Construction Kit")
4084 (description
4085 "Libwnck is the Window Navigator Construction Kit, a library for use in
4086 writing pagers, tasklists, and more generally applications that are dealing
4087 with window management. It tries hard to respect the Extended Window Manager
4088 Hints specification (EWMH).")
4089 (license license:lgpl2.0+)))
4090
4091 ;; stable version for gtk2, required by xfwm4.
4092 (define-public libwnck-2
4093 (package (inherit libwnck)
4094 (name "libwnck")
4095 (version "2.30.7")
4096 (source (origin
4097 (method url-fetch)
4098 (uri (string-append "mirror://gnome/sources/" name "/"
4099 (version-major+minor version) "/"
4100 name "-" version ".tar.xz"))
4101 (sha256
4102 (base32
4103 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4104 (build-system gnu-build-system)
4105 (native-inputs
4106 `(("pkg-config" ,pkg-config)
4107 ("intltool" ,intltool)))
4108 (propagated-inputs
4109 `(("gtk+" ,gtk+-2)
4110 ("libxres" ,libxres)
4111 ("startup-notification" ,startup-notification)))))
4112
4113 (define-public goffice
4114 (package
4115 (name "goffice")
4116 (version "0.10.48")
4117 (source (origin
4118 (method url-fetch)
4119 (uri (string-append "mirror://gnome/sources/goffice/"
4120 (version-major+minor version) "/"
4121 "goffice-" version ".tar.xz"))
4122 (sha256
4123 (base32 "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4"))))
4124 (build-system gnu-build-system)
4125 (outputs '("out"
4126 "doc")) ; 4.0 MiB of gtk-doc
4127 (arguments
4128 '(#:configure-flags (list (string-append "--with-html-dir="
4129 (assoc-ref %outputs "doc")
4130 "/share/gtk-doc/html"))))
4131 (inputs
4132 `(("gtk+" ,gtk+)
4133 ("libgsf" ,libgsf)
4134 ("librsvg" ,librsvg)
4135 ("libxslt" ,libxslt)
4136 ("libxml2" ,libxml2)))
4137 (native-inputs
4138 `(("intltool" ,intltool)
4139 ("glib" ,glib "bin")
4140 ("pkg-config" ,pkg-config)))
4141 (home-page "https://developer.gnome.org/goffice/")
4142 (synopsis "Document-centric objects and utilities")
4143 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4144 (license
4145 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4146 ;; Note: NOT LGPL
4147 (list license:gpl2 license:gpl3))))
4148
4149 (define-public goffice-0.8
4150 (package (inherit goffice)
4151 (version "0.8.17")
4152 (source (origin
4153 (method url-fetch)
4154 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4155 (version-major+minor version) "/"
4156 (package-name goffice) "-" version ".tar.xz"))
4157 (sha256
4158 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4159 (arguments
4160 `(#:phases
4161 (modify-phases %standard-phases
4162 (add-after 'unpack 'fix-pcre-check
4163 (lambda _
4164 ;; Only glib.h can be included directly. See
4165 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4166 (substitute* "configure"
4167 (("glib/gregex\\.h") "glib.h")) #t)))
4168
4169 ,@(package-arguments goffice)))
4170 (propagated-inputs
4171 ;; libgoffice-0.8.pc mentions libgsf-1
4172 `(("libgsf" ,libgsf)))
4173 (inputs
4174 `(("gtk" ,gtk+-2)
4175 ,@(alist-delete "gtk" (package-inputs goffice))))))
4176
4177 (define-public gnumeric
4178 (package
4179 (name "gnumeric")
4180 (version "1.12.48")
4181 (source (origin
4182 (method url-fetch)
4183 (uri (string-append "mirror://gnome/sources/gnumeric/"
4184 (version-major+minor version) "/"
4185 "gnumeric-" version ".tar.xz"))
4186 (sha256
4187 (base32
4188 "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p"))))
4189 (build-system glib-or-gtk-build-system)
4190 (arguments
4191 `(;; The gnumeric developers don't worry much about failing tests.
4192 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4193 #:tests? #f
4194 #:phases
4195 (modify-phases %standard-phases
4196 (add-before
4197 'configure 'pre-conf
4198 (lambda* (#:key outputs #:allow-other-keys)
4199 ;; Make install tries to write into the directory of goffice
4200 ;; I am informed that this only affects the possibility to embed a
4201 ;; spreadsheet inside an Abiword document. So presumably when we
4202 ;; package Abiword we'll have to refer it to this directory.
4203 (substitute* "configure"
4204 (("^GOFFICE_PLUGINS_DIR=.*")
4205 (string-append "GOFFICE_PLUGINS_DIR="
4206 (assoc-ref outputs "out")
4207 "/goffice/plugins"))))))))
4208 (inputs
4209 `(("glib" ,glib)
4210 ("gtk+" ,gtk+)
4211 ("goffice" ,goffice)
4212 ("libgsf" ,libgsf)
4213 ("librsvg" ,librsvg)
4214 ("libxml2" ,libxml2)
4215 ("libxslt" ,libxslt)
4216 ("python" ,python)
4217 ("python-pygobject" ,python-pygobject)
4218 ("zlib" ,zlib)))
4219 (native-inputs
4220 `(("bison" ,bison)
4221 ("docbook-xml" ,docbook-xml)
4222 ("intltool" ,intltool)
4223 ("itstool" ,itstool)
4224 ("glib:bin" ,glib "bin")
4225 ("pkg-config" ,pkg-config)))
4226 (home-page "http://www.gnumeric.org")
4227 (synopsis "Spreadsheet application")
4228 (description
4229 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4230 interoperable with other spreadsheet applications. It has a vast array of
4231 features beyond typical spreadsheet functionality, such as support for linear
4232 and non-linear solvers, statistical analysis, and telecommunication
4233 engineering.")
4234 (license
4235 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4236 (list license:gpl2 license:gpl3))))
4237
4238 (define-public gnome-themes-standard
4239 (package
4240 (name "gnome-themes-standard")
4241 (version "3.22.3")
4242 (source
4243 (origin
4244 (method url-fetch)
4245 (uri (string-append "mirror://gnome/sources/" name "/"
4246 (version-major+minor version) "/" name "-"
4247 version ".tar.xz"))
4248 (sha256
4249 (base32
4250 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4251 (build-system gnu-build-system)
4252 (arguments
4253 '(#:configure-flags
4254 ;; Don't create 'icon-theme.cache'.
4255 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4256 (true (string-append coreutils "/bin/true")))
4257 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4258 (inputs
4259 `(("gtk+" ,gtk+)
4260 ("gtk+-2" ,gtk+-2)
4261 ("librsvg" ,librsvg)
4262 ("libxml2" ,libxml2)
4263 ("glib" ,glib)))
4264 (native-inputs
4265 `(("intltool" ,intltool)
4266 ("glib:bin" ,glib "bin")
4267 ("pkg-config" ,pkg-config)))
4268 (home-page "https://launchpad.net/gnome-themes-standard")
4269 (synopsis "Default GNOME 3 themes")
4270 (description
4271 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4272 (license license:lgpl2.1+)))
4273
4274 (define-public seahorse
4275 (package
4276 (name "seahorse")
4277 (version "3.36.2")
4278 (source
4279 (origin
4280 (method url-fetch)
4281 (uri (string-append "mirror://gnome/sources/" name "/"
4282 (version-major+minor version) "/" name "-"
4283 version ".tar.xz"))
4284 (sha256
4285 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4286 (build-system meson-build-system)
4287 (arguments
4288 '(#:glib-or-gtk? #t
4289 #:phases
4290 (modify-phases %standard-phases
4291 (add-after 'unpack 'skip-gtk-update-icon-cache
4292 ;; Don't create 'icon-theme.cache'.
4293 (lambda _
4294 (substitute* "build-aux/meson_post_install.py"
4295 (("gtk-update-icon-cache") "true"))
4296 #t)))))
4297 (inputs
4298 `(("gtk+" ,gtk+)
4299 ("gcr" ,gcr)
4300 ("gnupg" ,gnupg)
4301 ("gpgme" ,gpgme)
4302 ("openldap" ,openldap)
4303 ("openssh" ,openssh)
4304 ("avahi" ,avahi)
4305 ("libhandy" ,libhandy-0.0)
4306 ("libpwquality" ,libpwquality)
4307 ("libsecret" ,libsecret)
4308 ("libsoup" ,libsoup)))
4309 (native-inputs
4310 `(("gettext" ,gettext-minimal)
4311 ("glib:bin" ,glib "bin")
4312 ("itstool" ,itstool)
4313 ("pkg-config" ,pkg-config)
4314 ("vala" ,vala)
4315 ("xmllint" ,libxml2)))
4316 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4317 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4318 (description
4319 "Seahorse is a GNOME application for managing encryption keys and
4320 passwords in the GNOME keyring.")
4321 (license license:gpl2+)))
4322
4323 (define-public vala
4324 (package
4325 (name "vala")
4326 (version "0.46.5")
4327 (source (origin
4328 (method url-fetch)
4329 (uri (string-append "mirror://gnome/sources/" name "/"
4330 (version-major+minor version) "/"
4331 name "-" version ".tar.xz"))
4332 (sha256
4333 (base32
4334 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4335 (build-system gnu-build-system)
4336 (arguments
4337 '(#:phases
4338 (modify-phases %standard-phases
4339 (add-before 'check 'pre-check
4340 (lambda _
4341 (setenv "CC" "gcc")
4342 (substitute* "valadoc/tests/testrunner.sh"
4343 (("export PKG_CONFIG_PATH=" m)
4344 (string-append m "$PKG_CONFIG_PATH:")))
4345 ;; For missing '/etc/machine-id'.
4346 (setenv "DBUS_FATAL_WARNINGS" "0")
4347 #t)))))
4348 (native-inputs
4349 `(("pkg-config" ,pkg-config)
4350 ("flex" ,flex)
4351 ("bison" ,bison)
4352 ("xsltproc" ,libxslt)
4353 ("dbus" ,dbus) ; for dbus tests
4354 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4355 (inputs
4356 `(("graphviz" ,graphviz)))
4357 (propagated-inputs
4358 `(("glib" ,glib))) ; required by libvala-0.40.pc
4359 (home-page "https://wiki.gnome.org/Projects/Vala/")
4360 (synopsis "Compiler for the GObject type system")
4361 (description
4362 "Vala is a programming language that aims to bring modern programming
4363 language features to GNOME developers without imposing any additional runtime
4364 requirements and without using a different ABI compared to applications and
4365 libraries written in C.")
4366 (license license:lgpl2.1+)))
4367
4368 (define-public vala-0.50
4369 (package
4370 (inherit vala)
4371 (version "0.50.2")
4372 (source (origin
4373 (method url-fetch)
4374 (uri (string-append "mirror://gnome/sources/vala/"
4375 (version-major+minor version) "/"
4376 "vala-" version ".tar.xz"))
4377 (sha256
4378 (base32
4379 "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c"))))))
4380
4381 (define-public vte
4382 (package
4383 (name "vte")
4384 (version "0.60.3")
4385 (source (origin
4386 (method url-fetch)
4387 (uri (string-append "mirror://gnome/sources/vte/"
4388 (version-major+minor version) "/"
4389 "vte-" version ".tar.xz"))
4390 (sha256
4391 (base32
4392 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4393 (build-system meson-build-system)
4394 (arguments
4395 `(#:configure-flags
4396 '("-Dvapi=true"
4397 "-D_systemd=false")))
4398 (native-inputs
4399 `(("pkg-config" ,pkg-config)
4400 ("gettext" ,gettext-minimal)
4401 ("vala" ,vala)
4402 ("gobject-introspection" ,gobject-introspection)
4403 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4404 ("gperf" ,gperf)
4405 ("xmllint" ,libxml2)))
4406 (propagated-inputs
4407 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4408 ("gnutls" ,gnutls) ; ditto
4409 ("pcre2" ,pcre2))) ; ditto
4410 (home-page "https://www.gnome.org/")
4411 (synopsis "Virtual Terminal Emulator")
4412 (description
4413 "VTE is a library (libvte) implementing a terminal emulator widget for
4414 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4415 gnome-terminal, but can also be used to embed a console/terminal in games,
4416 editors, IDEs, etc.")
4417 (license license:lgpl2.1+)))
4418
4419 (define-public vte-ng
4420 (package
4421 (inherit vte)
4422 (name "vte-ng")
4423 (version "0.58.2.a")
4424 (home-page "https://github.com/thestinger/vte-ng")
4425 (source (origin
4426 (method git-fetch)
4427 (uri (git-reference (url home-page) (commit version)))
4428 (file-name (git-file-name name version))
4429 (sha256
4430 (base32
4431 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4432 (build-system meson-build-system)
4433 (native-inputs
4434 `(("gtk-doc" ,gtk-doc)
4435 ,@(package-native-inputs vte)))
4436 (arguments
4437 `(#:configure-flags '("-Ddocs=true")))
4438 (synopsis "Enhanced VTE terminal widget")
4439 (description
4440 "VTE is a library (libvte) implementing a terminal emulator widget for
4441 GTK+, this fork provides additional functions exposed for keyboard text
4442 selection and URL hints.")))
4443
4444 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4445 (define-public vte/gtk+-2
4446 (package (inherit vte)
4447 (name "vte")
4448 (version "0.28.2")
4449 (source (origin
4450 (method url-fetch)
4451 (uri (string-append "mirror://gnome/sources/" name "/"
4452 (version-major+minor version) "/"
4453 name "-" version ".tar.xz"))
4454 (sha256
4455 (base32
4456 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4457 (patches (search-patches
4458 "vte-CVE-2012-2738-pt1.patch"
4459 "vte-CVE-2012-2738-pt2.patch"))))
4460 (build-system gnu-build-system)
4461 (arguments
4462 '(#:configure-flags '("--disable-python")))
4463 (native-inputs
4464 `(("pkg-config" ,pkg-config)
4465 ("intltool" ,intltool)
4466 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4467 (propagated-inputs
4468 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4469 ("ncurses" ,ncurses))))) ; required by libvte.la
4470
4471 (define-public vinagre
4472 (package
4473 (name "vinagre")
4474 (version "3.22.0")
4475 (source (origin
4476 (method url-fetch)
4477 (uri (string-append "mirror://gnome/sources/" name "/"
4478 (version-major+minor version) "/"
4479 name "-" version ".tar.xz"))
4480 (patches (search-patches "vinagre-newer-freerdp.patch"
4481 "vinagre-newer-rdp-parameters.patch"))
4482 (sha256
4483 (base32
4484 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4485 (build-system glib-or-gtk-build-system)
4486 (arguments
4487 ;; Disable -Werror and such, to avoid build failures on compilation
4488 ;; warnings.
4489 '(#:configure-flags '("--enable-compile-warnings=minimum")
4490 #:phases
4491 (modify-phases %standard-phases
4492 (add-before 'install 'skip-gtk-update-icon-cache
4493 (lambda _
4494 ;; Don't create 'icon-theme.cache'
4495 (substitute* (find-files "." "^Makefile$")
4496 (("gtk-update-icon-cache") (which "true")))
4497 #t))
4498 (add-after 'unpack 'patch-configure
4499 (lambda _
4500 (substitute* "configure"
4501 (("freerdp") "freerdp2"))
4502 #t)))))
4503 (native-inputs
4504 `(("pkg-config" ,pkg-config)
4505 ("intltool" ,intltool)
4506 ("itstool" ,itstool)
4507 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4508 (inputs
4509 `(("libxml2" ,libxml2)
4510 ("gtk-vnc" ,gtk-vnc)
4511 ("gnome-keyring" ,gnome-keyring)
4512 ("libsecret" ,libsecret)
4513 ("freerdp" ,freerdp)
4514 ("spice" ,spice)
4515 ("spice-gtk" ,spice-gtk)
4516 ("telepathy-glib" ,telepathy-glib)
4517 ("vte" ,vte)))
4518 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4519 (synopsis "Remote desktop viewer for GNOME")
4520 (description "Vinagre is a remote display client supporting the VNC, SPICE
4521 and RDP protocols.")
4522 (license license:gpl3+)))
4523
4524 (define-public dconf
4525 (package
4526 (name "dconf")
4527 (version "0.36.0")
4528 (source (origin
4529 (method url-fetch)
4530 (uri (string-append
4531 "mirror://gnome/sources/" name "/"
4532 (version-major+minor version) "/"
4533 name "-" version ".tar.xz"))
4534 (sha256
4535 (base32
4536 "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
4537 (build-system meson-build-system)
4538 (propagated-inputs
4539 ;; In Requires of dconf.pc.
4540 `(("glib" ,glib)))
4541 (inputs
4542 `(("gtk+" ,gtk+)
4543 ("dbus" ,dbus)))
4544 (native-inputs
4545 `(("bash-completion" ,bash-completion)
4546 ("libxslt" ,libxslt) ;for xsltproc
4547 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4548 ("docbook-xml" ,docbook-xml-4.2)
4549 ("docbook-xsl" ,docbook-xsl)
4550 ("glib:bin" ,glib "bin")
4551 ("gtk-doc" ,gtk-doc)
4552 ("pkg-config" ,pkg-config)
4553 ("vala" ,vala)))
4554 (arguments
4555 `(#:glib-or-gtk? #t
4556 #:configure-flags '("-Denable-gtk-doc=true")
4557 #:phases (modify-phases %standard-phases
4558 (add-after 'unpack 'increase-test-timeout
4559 (lambda _
4560 ;; On big-memory systems, the engine test may take
4561 ;; much longer than the default of 30 seconds.
4562 (substitute* "tests/meson.build"
4563 (("test\\(unit_test\\[0\\], exe" all)
4564 (string-append all ", timeout : 90")))
4565 #t)))))
4566 (home-page "https://developer.gnome.org/dconf/")
4567 (synopsis "Low-level GNOME configuration system")
4568 (description "Dconf is a low-level configuration system. Its main purpose
4569 is to provide a backend to GSettings on platforms that don't already have
4570 configuration storage systems.")
4571 (license license:lgpl2.1+)))
4572
4573 (define-public json-glib
4574 (package
4575 (name "json-glib")
4576 (version "1.4.4")
4577 (source (origin
4578 (method url-fetch)
4579 (uri (string-append "mirror://gnome/sources/" name "/"
4580 (version-major+minor version) "/"
4581 name "-" version ".tar.xz"))
4582 (sha256
4583 (base32
4584 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4585 (build-system meson-build-system)
4586 (native-inputs
4587 `(("gettext" ,gettext-minimal)
4588 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4589 ("gobject-introspection" ,gobject-introspection)
4590 ("pkg-config" ,pkg-config)))
4591 (propagated-inputs
4592 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4593 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4594 (synopsis "Compiler for the GObject type system")
4595 (description
4596 "JSON-GLib is a C library based on GLib providing serialization and
4597 deserialization support for the JavaScript Object Notation (JSON) format
4598 described by RFC 4627. It provides parser and generator GObject classes and
4599 various wrappers for the complex data types employed by JSON, such as arrays
4600 and objects.")
4601 (license license:lgpl2.1+)))
4602
4603 (define-public libxklavier
4604 (package
4605 (name "libxklavier")
4606 (version "5.4")
4607 (source (origin
4608 ;; Note: There's no tarball at ftp.gnome.org for this version.
4609 (method git-fetch)
4610 (uri (git-reference
4611 (url "https://anongit.freedesktop.org/git/libxklavier")
4612 (commit (string-append "libxklavier-" version))))
4613 (sha256
4614 (base32
4615 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4616 (file-name (git-file-name name version))))
4617 (build-system gnu-build-system)
4618 (arguments
4619 '(#:configure-flags
4620 (list (string-append "--with-xkb-base="
4621 (assoc-ref %build-inputs "xkeyboard-config")
4622 "/share/X11/xkb")
4623 "--disable-xmodmap-support")))
4624 (native-inputs
4625 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4626 ("gobject-introspection" ,gobject-introspection)
4627 ("pkg-config" ,pkg-config)
4628 ("gtk-doc" ,gtk-doc)
4629 ("intltool" ,intltool)
4630 ("which" ,which)
4631 ("autoconf" ,autoconf)
4632 ("automake" ,automake)
4633 ("libtool" ,libtool)))
4634 (propagated-inputs
4635 ;; Required by libxklavier.pc.
4636 `(("glib" ,glib)
4637 ("libxml2" ,libxml2)))
4638 (inputs
4639 `(("iso-codes" ,iso-codes)
4640 ("libxi" ,libxi)
4641 ("libxkbfile" ,libxkbfile)
4642 ("xkbcomp" ,xkbcomp)
4643 ("xkeyboard-config" ,xkeyboard-config)))
4644 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4645 (synopsis "High-level API for X Keyboard Extension")
4646 (description
4647 "LibXklavier is a library providing high-level API for X Keyboard
4648 Extension known as XKB. This library is intended to support XFree86 and other
4649 commercial X servers. It is useful for creating XKB-related software (layout
4650 indicators etc).")
4651 (license license:lgpl2.0+)))
4652
4653 (define-public python2-rsvg
4654 ;; XXX: This is actually a subset of gnome-python-desktop.
4655 (package
4656 (name "python2-rsvg")
4657 (version "2.32.0")
4658 (source
4659 (origin
4660 (method url-fetch)
4661 (uri (string-append
4662 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4663 version ".tar.bz2"))
4664 (sha256
4665 (base32
4666 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4667 (build-system gnu-build-system)
4668 (native-inputs
4669 `(("pkg-config" ,pkg-config)))
4670 (inputs
4671 `(("python" ,python-2)
4672 ("python2-pygtk" ,python2-pygtk)
4673 ("librsvg" ,librsvg)))
4674 (home-page "https://www.gnome.org")
4675 (synopsis "Python bindings to librsvg")
4676 (description
4677 "This package provides Python bindings to librsvg, the SVG rendering
4678 library.")
4679
4680 ;; This is the license of the rsvg bindings. The license of each module
4681 ;; of gnome-python-desktop is given in 'COPYING'.
4682 (license license:lgpl2.1+)))
4683
4684 (define-public glib-networking
4685 (package
4686 (name "glib-networking")
4687 (version "2.62.2")
4688 (source (origin
4689 (method url-fetch)
4690 (uri (string-append "mirror://gnome/sources/glib-networking/"
4691 (version-major+minor version) "/"
4692 "glib-networking-" version ".tar.xz"))
4693 (sha256
4694 (base32
4695 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4696 (build-system meson-build-system)
4697 (arguments
4698 `(#:configure-flags '("-Dlibproxy_support=false")))
4699 (native-inputs
4700 `(("pkg-config" ,pkg-config)
4701 ("intltool" ,intltool)))
4702 (inputs
4703 `(("glib" ,glib)
4704 ("gnutls" ,gnutls)
4705 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4706 (home-page "https://www.gnome.org")
4707 (synopsis "Network-related GIO modules")
4708 (description
4709 "This package contains various network related extensions for the GIO
4710 library.")
4711 (license license:lgpl2.0+)))
4712
4713 (define-public rest
4714 (package
4715 (name "rest")
4716 (version "0.8.1")
4717 (source (origin
4718 (method url-fetch)
4719 (uri (string-append "mirror://gnome/sources/rest/"
4720 (version-major+minor version) "/"
4721 name "-" version ".tar.xz"))
4722 (sha256
4723 (base32
4724 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4725 (build-system gnu-build-system)
4726 (arguments
4727 '(#:tests? #f ; tests require internet connection
4728 #:configure-flags
4729 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4730 (native-inputs
4731 `(("glib-mkenums" ,glib "bin")
4732 ("gobject-introspection" ,gobject-introspection)
4733 ("pkg-config" ,pkg-config)))
4734 (propagated-inputs
4735 ;; rest-0.7.pc refers to all these.
4736 `(("glib" ,glib)
4737 ("libsoup" ,libsoup)
4738 ("libxml2" ,libxml2)))
4739 (home-page "https://www.gtk.org/")
4740 (synopsis "RESTful web api query library")
4741 (description
4742 "This library was designed to make it easier to access web services that
4743 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4744 libxml to ease remote use of the RESTful API.")
4745 (license license:lgpl2.1+)))
4746
4747 (define-public libsoup
4748 (package
4749 (name "libsoup")
4750 (version "2.72.0")
4751 (source (origin
4752 (method url-fetch)
4753 (uri (string-append "mirror://gnome/sources/libsoup/"
4754 (version-major+minor version) "/"
4755 "libsoup-" version ".tar.xz"))
4756 (sha256
4757 (base32
4758 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
4759 (build-system meson-build-system)
4760 (outputs '("out" "doc"))
4761 (arguments
4762 `(#:modules ((guix build utils)
4763 (guix build meson-build-system)
4764 (ice-9 popen))
4765
4766 #:configure-flags '("-Dgtk_doc=true")
4767 #:phases
4768 (modify-phases %standard-phases
4769 (add-after 'unpack 'patch-docbook-xml
4770 (lambda* (#:key inputs #:allow-other-keys)
4771 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
4772 "/xml/dtd/docbook")))
4773 (substitute* (find-files "docs/reference")
4774 (("http://.*/docbookx\\.dtd")
4775 (string-append xmldoc "/docbookx.dtd")))
4776 #t)))
4777 (add-after 'unpack 'adjust-tests
4778 (lambda _
4779 ;; This test fails due to missing /etc/nsswitch.conf
4780 ;; in the build environment.
4781 (substitute* "tests/socket-test.c"
4782 ((".*/sockets/unconnected.*") ""))
4783
4784 ;; These fail because "subdomain.localhost" does not resolve in
4785 ;; the build environment.
4786 (substitute* "tests/hsts-test.c"
4787 ((".*/hsts/basic.*") "")
4788 ((".*/hsts/subdomains.*") "")
4789 ((".*/hsts/superdomain.*") "")
4790 ((".*/hsts/utf8-address.*") ""))
4791 (substitute* "tests/hsts-db-test.c"
4792 ((".*/hsts-db/subdomains.*") ""))
4793
4794 ;; Generate a self-signed certificate that has "localhost" as its
4795 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4796 ;; 3.5.12, tests such as "ssl-tests" fail:
4797 ;;
4798 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4799 ;;
4800 ;; 'certtool' is interactive so we have to pipe it the answers.
4801 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4802 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4803 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4804 (for-each (lambda (line)
4805 (display line pipe)
4806 (newline pipe))
4807 '("" ;Common name
4808 "" ;UID
4809 "Guix" ;Organizational unit name
4810 "GNU" ;Organization name
4811 "" ;Locality name
4812 "" ;State or province
4813 "" ;Country
4814 "" ;subject's domain component (DC)
4815 "" ;E-mail
4816 "" ;serial number
4817 "-1" ;expiration time
4818 "N" ;belong to authority?
4819 "N" ;web client certificate?
4820 "N" ;IPsec IKE?
4821 "Y" ;web server certificate?
4822 "localhost" ;dnsName of subject
4823 "" ;dnsName of subject (end)
4824 "" ;URI of subject
4825 "127.0.0.1" ;IP address of subject
4826 "" ;signing?
4827 "" ;encryption (RSA)?
4828 "" ;data encryption?
4829 "" ;sign OCSP requests?
4830 "" ;sign code?
4831 "" ;time stamping?
4832 "" ;email protection?
4833 "" ;URI of the CRL distribution point
4834 "y" ;above info OK?
4835 ))
4836 (close-pipe pipe))
4837 #t))
4838 (add-after 'install 'move-doc
4839 (lambda* (#:key outputs #:allow-other-keys)
4840 (let ((out (assoc-ref outputs "out"))
4841 (doc (assoc-ref outputs "doc")))
4842 (mkdir-p (string-append doc "/share"))
4843 (copy-recursively (string-append out "/share/gtk-doc")
4844 (string-append doc "/share/gtk-doc"))
4845 (delete-file-recursively (string-append out "/share/gtk-doc"))
4846 #t))))))
4847 (native-inputs
4848 `(("docbook-xml" ,docbook-xml-4.1.2)
4849 ("glib:bin" ,glib "bin") ; for glib-mkenums
4850 ("gobject-introspection" ,gobject-introspection)
4851 ("gtk-doc" ,gtk-doc)
4852 ("intltool" ,intltool)
4853 ("pkg-config" ,pkg-config)
4854 ("python" ,python-wrapper)
4855 ("vala" ,vala)
4856 ("php" ,php)
4857 ("curl" ,curl)
4858 ("gnutls" ,gnutls) ;for 'certtool'
4859 ("httpd" ,httpd)))
4860 (propagated-inputs
4861 ;; libsoup-2.4.pc refers to all these.
4862 `(("brotli" ,google-brotli)
4863 ("glib" ,glib)
4864 ("libpsl" ,libpsl)
4865 ("libxml2" ,libxml2)
4866 ("sqlite" ,sqlite)
4867 ("zlib" ,zlib)))
4868 (inputs
4869 `(("glib-networking" ,glib-networking)
4870 ("mit-krb5" ,mit-krb5)))
4871 (home-page "https://live.gnome.org/LibSoup/")
4872 (synopsis "GLib-based HTTP Library")
4873 (description
4874 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4875 and the GLib main loop, to integrate well with GNOME applications.")
4876 (license license:lgpl2.0+)))
4877
4878
4879 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4880 (define-public libsoup-minimal
4881 (package
4882 (inherit libsoup)
4883 (name "libsoup-minimal")
4884 (outputs (delete "doc" (package-outputs libsoup)))
4885 (arguments
4886 (substitute-keyword-arguments (package-arguments libsoup)
4887 ((#:configure-flags configure-flags)
4888 `(delete "-Dgtk_doc=true" ,configure-flags))
4889 ((#:phases phases)
4890 `(modify-phases ,phases
4891 (delete 'move-doc)))))
4892 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4893
4894 (define-public libsecret
4895 (package
4896 (name "libsecret")
4897 (version "0.20.4")
4898 (source (origin
4899 (method url-fetch)
4900 (uri (string-append
4901 "mirror://gnome/sources/libsecret/"
4902 (version-major+minor version) "/"
4903 "libsecret-" version ".tar.xz"))
4904 (sha256
4905 (base32
4906 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
4907 (build-system gnu-build-system)
4908 (outputs '("out" "doc"))
4909 (arguments
4910 `(#:tests? #f ; FIXME: Testing hangs.
4911 #:configure-flags
4912 (list (string-append "--with-html-dir="
4913 (assoc-ref %outputs "doc")
4914 "/share/gtk-doc/html"))))
4915 (native-inputs
4916 `(("gettext" ,gettext-minimal)
4917 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4918 ("gobject-introspection" ,gobject-introspection)
4919 ("pkg-config" ,pkg-config)
4920 ("vala" ,vala)
4921 ("xsltproc" ,libxslt)))
4922 ;; These are needed for the tests.
4923 ;; FIXME: Add gjs once available.
4924 ;("dbus" ,dbus)
4925 ;("python2" ,python-2)
4926 ;("python2-dbus" ,python2-dbus)
4927 ;("python2-pygobject" ,python2-pygobject)
4928 ;("python2-pygobject-2" ,python2-pygobject-2)))
4929 (propagated-inputs
4930 `(("glib" ,glib))) ; required by libsecret-1.pc
4931 (inputs
4932 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
4933 ;; doesn't seem to affect the build result.
4934 `(("docbook-xsl" ,docbook-xsl)
4935 ("libgcrypt" ,libgcrypt)
4936 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4937 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4938 (synopsis "GObject bindings for \"Secret Service\" API")
4939 (description
4940 "Libsecret is a GObject based library for storing and retrieving passwords
4941 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4942 (license license:lgpl2.1+)))
4943
4944 (define-public five-or-more
4945 (package
4946 (name "five-or-more")
4947 (version "3.32.2")
4948 (source
4949 (origin
4950 (method url-fetch)
4951 (uri (string-append "mirror://gnome/sources/five-or-more/"
4952 (version-major+minor version) "/"
4953 "five-or-more-" version ".tar.xz"))
4954 (sha256
4955 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4956 (build-system meson-build-system)
4957 (arguments
4958 '(#:glib-or-gtk? #t
4959 #:phases
4960 (modify-phases %standard-phases
4961 (add-after 'unpack 'skip-gtk-update-icon-cache
4962 (lambda _
4963 (substitute* "meson_post_install.py"
4964 (("gtk-update-icon-cache") (which "true")))
4965 #t)))))
4966 (native-inputs
4967 `(("pkg-config" ,pkg-config)
4968 ("appstream-glib" ,appstream-glib)
4969 ("desktop-file-utils" ,desktop-file-utils)
4970 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4971 ("intltool" ,intltool)
4972 ("itstool" ,itstool)
4973 ("vala" ,vala)
4974 ("xmllint" ,libxml2)))
4975 (inputs
4976 `(("gtk+" ,gtk+)
4977 ("libgnome-games-support" ,libgnome-games-support)
4978 ("librsvg" ,librsvg)))
4979 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
4980 (synopsis "Logic puzzle game")
4981 (description "Five or More is a game where you try to align
4982 five or more objects of the same color and shape causing them to disappear.
4983 On every turn more objects will appear, until the board is full.
4984 Try to last as long as possible.")
4985 (license license:gpl2+)))
4986
4987 (define-public gnome-mines
4988 (package
4989 (name "gnome-mines")
4990 (version "3.36.1")
4991 (source
4992 (origin
4993 (method url-fetch)
4994 (uri (string-append "mirror://gnome/sources/" name "/"
4995 (version-major+minor version) "/"
4996 name "-" version ".tar.xz"))
4997 (sha256
4998 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
4999 (build-system meson-build-system)
5000 (arguments
5001 '(#:glib-or-gtk? #t
5002 #:phases
5003 (modify-phases %standard-phases
5004 (add-after 'unpack 'skip-gtk-update-icon-cache
5005 (lambda _
5006 (substitute* "build-aux/meson_post_install.py"
5007 (("gtk-update-icon-cache") (which "true")))
5008 #t)))))
5009 (native-inputs
5010 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5011 ("pkg-config" ,pkg-config)
5012 ("desktop-file-utils" ,desktop-file-utils)
5013 ("intltool" ,intltool)
5014 ("itstool" ,itstool)
5015 ("vala" ,vala)
5016 ("yelp" ,yelp)
5017 ("appstream-glib" ,appstream-glib)))
5018 (inputs
5019 `(("gtk+" ,gtk+)
5020 ("libgnome-games-support" ,libgnome-games-support)
5021 ("librsvg" ,librsvg)))
5022 (home-page "https://wiki.gnome.org/Apps/Mines")
5023 (synopsis "Minesweeper game")
5024 (description
5025 "Mines (previously gnomine) is a puzzle game where you locate mines
5026 floating in an ocean using only your brain and a little bit of luck.")
5027 (license license:gpl2+)))
5028
5029 (define-public gnome-multi-writer
5030 (package
5031 (name "gnome-multi-writer")
5032 (version "3.35.90")
5033 (source
5034 (origin
5035 (method url-fetch)
5036 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5037 (version-major+minor version) "/"
5038 "gnome-multi-writer-" version ".tar.xz"))
5039 (sha256
5040 (base32
5041 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5042 (build-system meson-build-system)
5043 (arguments
5044 '(#:glib-or-gtk? #t
5045 #:phases
5046 (modify-phases %standard-phases
5047 (add-after 'unpack 'skip-post-install
5048 (lambda _
5049 (substitute* "meson.build"
5050 (("meson.add_install_script" &) (string-append "# " &)))
5051 #t)))))
5052 (native-inputs
5053 `(("glib:bin" ,glib "bin")
5054 ("pkg-config" ,pkg-config)))
5055 (inputs
5056 `(("gtk+" ,gtk+)
5057 ("glib" ,glib) ; for gio
5058 ("gusb" ,gusb)
5059 ("udisks" ,udisks)
5060 ("libgudev" ,libgudev)
5061 ("libcanberra" ,libcanberra)
5062 ("polkit" ,polkit)))
5063 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5064 (synopsis "Write to multiple USB devices at once")
5065 (description
5066 "MultiWriter can be used to write an ISO file to multiple USB devices at
5067 once.")
5068 (license license:gpl2+)))
5069
5070 (define-public gnome-sudoku
5071 (package
5072 (name "gnome-sudoku")
5073 (version "3.34.1")
5074 (source
5075 (origin
5076 (method url-fetch)
5077 (uri (string-append "mirror://gnome/sources/" name "/"
5078 (version-major+minor version) "/"
5079 name "-" version ".tar.xz"))
5080 (sha256
5081 (base32
5082 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
5083 (build-system meson-build-system)
5084 (arguments
5085 '(#:glib-or-gtk? #t
5086 #:phases
5087 (modify-phases %standard-phases
5088 (add-after 'unpack 'skip-gtk-update-icon-cache
5089 (lambda _
5090 (substitute* "build-aux/post_install.py"
5091 (("gtk-update-icon-cache") (which "true")))
5092 #t)))))
5093 (native-inputs
5094 `(("pkg-config" ,pkg-config)
5095 ("desktop-file-utils" ,desktop-file-utils)
5096 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5097 ("intltool" ,intltool)
5098 ("itstool" ,itstool)
5099 ("vala" ,vala)
5100 ("xmllint" ,libxml2)))
5101 (inputs
5102 `(("gtk+" ,gtk+)
5103 ("json-glib" ,json-glib)
5104 ("libgee" ,libgee)
5105 ("librsvg" ,librsvg)
5106 ("qqwing" ,qqwing)))
5107 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5108 (synopsis "Japanese logic game")
5109 (description
5110 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5111 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5112 possible while still providing features that make playing difficult Sudoku
5113 more fun.")
5114 (license license:gpl2+)))
5115
5116 (define-public gnome-terminal
5117 (package
5118 (name "gnome-terminal")
5119 (version "3.34.2")
5120 (source
5121 (origin
5122 (method url-fetch)
5123 (uri (string-append "mirror://gnome/sources/" name "/"
5124 (version-major+minor version) "/"
5125 name "-" version ".tar.xz"))
5126 (sha256
5127 (base32
5128 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
5129 (build-system glib-or-gtk-build-system)
5130 (arguments
5131 '(#:configure-flags
5132 (list "--disable-migration" "--disable-search-provider"
5133 "--without-nautilus-extension")
5134 #:phases
5135 (modify-phases %standard-phases
5136 (add-before 'configure 'patch-/bin/true
5137 (lambda _
5138 (substitute* "configure"
5139 (("/bin/true") (which "true"))))))))
5140 (native-inputs
5141 `(("pkg-config" ,pkg-config)
5142 ("desktop-file-utils" ,desktop-file-utils)
5143 ("intltool" ,intltool)
5144 ("itstool" ,itstool)
5145 ("xmllint" ,libxml2)))
5146 (propagated-inputs
5147 `(("dconf" ,dconf)))
5148 (inputs
5149 `(("gtk+" ,gtk+)
5150 ("vte" ,vte)
5151 ("gnutls" ,gnutls)
5152 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5153 ("util-linux" ,util-linux "lib")
5154 ("vala" ,vala)))
5155 (home-page "https://wiki.gnome.org/Apps/Terminal")
5156 (synopsis "Terminal emulator")
5157 (description
5158 "GNOME Terminal is a terminal emulator application for accessing a
5159 UNIX shell environment which can be used to run programs available on
5160 your system.
5161
5162 It supports several profiles, multiple tabs and implements several
5163 keyboard shortcuts.")
5164 (license license:gpl3+)))
5165
5166 (define-public colord
5167 (package
5168 (name "colord")
5169 (version "1.4.5")
5170 (source
5171 (origin
5172 (method url-fetch)
5173 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5174 "colord-" version ".tar.xz"))
5175 (sha256
5176 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5177 (build-system meson-build-system)
5178 (arguments
5179 '(;; FIXME: One test fails:
5180 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5181 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5182 ;; application/x-zerosize
5183 #:tests? #f
5184 #:glib-or-gtk? #t
5185 #:configure-flags (list "-Dlocalstatedir=/var"
5186 ;; No dep on systemd.
5187 "-Dsystemd=false"
5188 ;; Wants to install to global completion dir;
5189 ;; punt.
5190 "-Dbash_completion=false"
5191 "-Ddaemon_user=colord"
5192 "-Dsane=true"
5193 "-Dvapi=true"
5194 ;; Requires spotread.
5195 "-Dargyllcms_sensor=false"
5196 ;; TODO: Requires docbook2x.
5197 "-Dman=false")
5198 #:phases
5199 (modify-phases %standard-phases
5200 (add-before 'configure 'patch-build-system
5201 (lambda* (#:key outputs #:allow-other-keys)
5202 (substitute* "rules/meson.build"
5203 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5204 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
5205 #t))
5206 (add-before 'configure 'set-sqlite3-file-name
5207 (lambda* (#:key inputs #:allow-other-keys)
5208 ;; "colormgr dump" works by invoking the "sqlite3" command.
5209 ;; Record its absolute file name.
5210 (let ((sqlite (assoc-ref inputs "sqlite")))
5211 (substitute* "client/cd-util.c"
5212 (("\"sqlite3\"")
5213 (string-append "\"" sqlite "/bin/sqlite3\"")))
5214 #t))))))
5215 (native-inputs
5216 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5217 ("gettext" ,gettext-minimal)
5218 ("gobject-introspection" ,gobject-introspection)
5219 ("gtk-doc" ,gtk-doc)
5220 ("pkg-config" ,pkg-config)
5221 ("vala" ,vala)))
5222 (propagated-inputs
5223 ;; colord.pc refers to all these.
5224 `(("glib" ,glib)
5225 ("lcms" ,lcms)
5226 ("udev" ,eudev)))
5227 (inputs
5228 `(("dbus-glib" ,dbus-glib)
5229 ("gusb" ,gusb)
5230 ("libgudev" ,libgudev)
5231 ("libusb" ,libusb)
5232 ("polkit" ,polkit)
5233 ("python" ,python-wrapper)
5234 ("sqlite" ,sqlite)
5235 ("sane-backends" ,sane-backends)))
5236 (home-page "https://www.freedesktop.org/software/colord/")
5237 (synopsis "Color management service")
5238 (description "Colord is a system service that makes it easy to manage,
5239 install and generate color profiles to accurately color manage input and
5240 output devices.")
5241 (license license:gpl2+)))
5242
5243 (define-public geoclue
5244 (package
5245 (name "geoclue")
5246 (version "2.5.7")
5247 (source
5248 (origin
5249 (method url-fetch)
5250 (uri
5251 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5252 version "/geoclue-" version ".tar.bz2"))
5253 (sha256
5254 (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
5255 (patches (search-patches "geoclue-config.patch"))))
5256 (build-system meson-build-system)
5257 (arguments
5258 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
5259 (native-inputs
5260 `(("pkg-config" ,pkg-config)
5261 ("gobject-introspection" ,gobject-introspection)
5262 ("modem-manager" ,modem-manager)
5263 ("libnotify" ,libnotify)
5264 ("gtk-doc" ,gtk-doc)
5265 ("intltool" ,intltool)))
5266 (inputs
5267 `(("avahi" ,avahi)
5268 ("glib:bin" ,glib "bin")
5269 ("glib-networking" ,glib-networking)
5270 ("json-glib" ,json-glib)
5271 ("libsoup" ,libsoup)))
5272 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5273 (synopsis "Geolocation service")
5274 (description "Geoclue is a D-Bus service that provides location
5275 information. The primary goal of the Geoclue project is to make creating
5276 location-aware applications as simple as possible, while the secondary goal is
5277 to ensure that no application can access location information without explicit
5278 permission from user.")
5279 (license license:gpl2+)))
5280
5281 (define-public geocode-glib
5282 (package
5283 (name "geocode-glib")
5284 (version "3.26.2")
5285 (source (origin
5286 (method url-fetch)
5287 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5288 (version-major+minor version) "/"
5289 "geocode-glib-" version ".tar.xz"))
5290 (sha256
5291 (base32
5292 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5293 (build-system meson-build-system)
5294 (arguments
5295 `(#:phases
5296 (modify-phases %standard-phases
5297 ;; The tests require a bunch of locales.
5298 (add-before 'check 'set-locales
5299 (lambda* (#:key inputs #:allow-other-keys)
5300 (setenv "GUIX_LOCPATH"
5301 (string-append (assoc-ref inputs "glibc-locales")
5302 "/lib/locale"))
5303 #t)))))
5304 (native-inputs
5305 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5306 ("glibc-locales" ,glibc-locales) ; for tests
5307 ("gettext" ,gettext-minimal)
5308 ("gobject-introspection" ,gobject-introspection)
5309 ("gtk-doc" ,gtk-doc)
5310 ("pkg-config" ,pkg-config)
5311 ("json-glib" ,json-glib)))
5312 (propagated-inputs
5313 ;; geocode-glib-1.0.pc refers to GIO.
5314 `(("glib" ,glib)))
5315 (inputs
5316 `(("libsoup" ,libsoup)))
5317 (home-page "https://github.com/GNOME/geocode-glib/")
5318 (synopsis "Geocoding and reverse-geocoding library")
5319 (description
5320 "geocode-glib is a convenience library for geocoding (finding longitude,
5321 and latitude from an address) and reverse geocoding (finding an address from
5322 coordinates) using the Nominatim service. geocode-glib caches requests for
5323 faster results and to avoid unnecessary server load.")
5324 (license license:lgpl2.0+)))
5325
5326 (define-public upower
5327 (package
5328 (name "upower")
5329 (version "0.99.11")
5330 (source (origin
5331 (method url-fetch)
5332 (uri (string-append "https://upower.freedesktop.org/releases/"
5333 "upower-" version ".tar.xz"))
5334 (sha256
5335 (base32
5336 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5337 (patches (search-patches "upower-builddir.patch"))
5338 (modules '((guix build utils)))
5339 (snippet
5340 '(begin
5341 ;; Upstream commit
5342 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5343 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5344 ;; 'dbus-configuration-directory' in (gnu services dbus)
5345 ;; expects it in etc/. Thus, move it back to its previous
5346 ;; location.
5347 (substitute* "src/Makefile.in"
5348 (("^dbusconfdir =.*$")
5349 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5350 #t))))
5351 (build-system glib-or-gtk-build-system)
5352 (arguments
5353 '(#:phases
5354 (modify-phases %standard-phases
5355 (add-before 'check 'pre-check
5356 (lambda* (#:key inputs #:allow-other-keys)
5357 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5358 "/lib")))
5359 (setenv "LD_LIBRARY_PATH" umockdev))
5360 #t)))
5361 #:configure-flags (list "--localstatedir=/var"
5362 (string-append "--with-udevrulesdir="
5363 (assoc-ref %outputs "out")
5364 "/lib/udev/rules.d"))))
5365 (native-inputs
5366 `(("gobject-introspection" ,gobject-introspection)
5367 ("pkg-config" ,pkg-config)
5368 ("intltool" ,intltool)
5369 ("python" ,python)
5370
5371 ;; For tests.
5372 ("python-dbus" ,python-dbus)
5373 ("python-dbusmock" ,python-dbusmock)
5374 ("python-pygobject" ,python-pygobject)
5375 ("umockdev" ,umockdev)
5376
5377 ;; For man pages.
5378 ("libxslt" ,libxslt) ;for 'xsltproc'
5379 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5380 ("docbook-xsl" ,docbook-xsl)))
5381 (inputs
5382 `(("dbus-glib" ,dbus-glib)
5383 ("libgudev" ,libgudev)
5384 ("libusb" ,libusb)))
5385 (propagated-inputs
5386 ;; In Requires of upower-glib.pc.
5387 `(("glib" ,glib)))
5388 (home-page "https://upower.freedesktop.org/")
5389 (synopsis "System daemon for managing power devices")
5390 (description
5391 "UPower is an abstraction for enumerating power devices,
5392 listening to device events and querying history and statistics. Any
5393 application or service on the system can access the org.freedesktop.UPower
5394 service via the system message bus.")
5395 (license license:gpl2+)))
5396
5397 (define-public libgweather
5398 (package
5399 (name "libgweather")
5400 (version "3.34.0")
5401 (source (origin
5402 (method url-fetch)
5403 (uri (string-append "mirror://gnome/sources/" name "/"
5404 (version-major+minor version) "/"
5405 name "-" version ".tar.xz"))
5406 (sha256
5407 (base32
5408 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5409 (build-system meson-build-system)
5410 (arguments
5411 `(#:tests? #f ; one of two tests requires network access
5412 #:configure-flags
5413 `(,(string-append "-Dzoneinfo_dir="
5414 (assoc-ref %build-inputs "tzdata")
5415 "/share/zoneinfo"))))
5416 (native-inputs
5417 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5418 ("gobject-introspection" ,gobject-introspection)
5419 ("pkg-config" ,pkg-config)
5420 ("vala" ,vala)
5421 ("intltool" ,intltool)))
5422 (propagated-inputs
5423 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5424 ;; libsoup.
5425 `(("gtk+" ,gtk+)
5426 ("gdk-pixbuf" ,gdk-pixbuf)
5427 ("libxml2" ,libxml2)
5428 ("libsoup" ,libsoup)
5429 ("geocode-glib" ,geocode-glib)))
5430 (inputs
5431 `(("tzdata" ,tzdata)))
5432 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5433 (synopsis "Location, time zone, and weather library for GNOME")
5434 (description
5435 "libgweather is a library to access weather information from online
5436 services for numerous locations.")
5437 (license license:gpl2+)))
5438
5439 (define-public gnome-settings-daemon
5440 (package
5441 (name "gnome-settings-daemon")
5442 (version "3.34.1")
5443 (source
5444 (origin
5445 (method url-fetch)
5446 (uri (string-append "mirror://gnome/sources/" name "/"
5447 (version-major+minor version) "/"
5448 name "-" version ".tar.xz"))
5449 (sha256
5450 (base32
5451 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
5452 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5453 (build-system meson-build-system)
5454 (arguments
5455 `(#:glib-or-gtk? #t
5456 #:configure-flags
5457 (list (string-append "-Dudev_dir="
5458 (assoc-ref %outputs "out")
5459 "/lib/udev/rules.d/")
5460 "-Dsystemd=false"
5461 ;; Otherwise, the RUNPATH will lack the final path component.
5462 (string-append "-Dc_link_args=-Wl,-rpath="
5463 (assoc-ref %outputs "out")
5464 "/lib/gnome-settings-daemon-3.0"))
5465
5466 #:phases (modify-phases %standard-phases
5467 (add-before 'configure 'set-baobab-file-name
5468 (lambda* (#:key inputs #:allow-other-keys)
5469 ;; Hard-code the file name of Baobab instead of looking
5470 ;; it up in $PATH. This ensures users get the "Examine"
5471 ;; button in the low disk space notification of GDM even
5472 ;; if they don't have GNOME in their main profile.
5473 (let ((baobab (assoc-ref inputs "baobab")))
5474 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5475 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5476 (string-append "g_strdup (\"" baobab
5477 "/bin/baobab\")")))
5478 #t))))
5479
5480 ;; Color management test can't reach the colord system service.
5481 #:tests? #f))
5482 (native-inputs
5483 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5484 ("pkg-config" ,pkg-config)
5485 ("intltool" ,intltool)
5486 ("xsltproc" ,libxslt)
5487 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5488 ("docbook-xml" ,docbook-xml-4.2)
5489 ("docbook-xsl" ,docbook-xsl)))
5490 (inputs
5491 `(("alsa-lib" ,alsa-lib)
5492 ("baobab" ,baobab)
5493 ("colord" ,colord)
5494 ("libgudev" ,libgudev)
5495 ("upower" ,upower)
5496 ("polkit" ,polkit)
5497 ("pulseaudio" ,pulseaudio)
5498 ("libcanberra" ,libcanberra)
5499 ("libx11" ,libx11)
5500 ("libxtst" ,libxtst)
5501 ("lcms" ,lcms)
5502 ("libnotify" ,libnotify)
5503 ("geoclue" ,geoclue)
5504 ("geocode-glib" ,geocode-glib)
5505 ("libgweather" ,libgweather)
5506 ("gnome-desktop" ,gnome-desktop)
5507 ("nss" ,nss)
5508 ("cups" ,cups)
5509 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5510 ("libwacom" ,libwacom)
5511 ("librsvg" ,librsvg)
5512 ("xf86-input-wacom" ,xf86-input-wacom)
5513 ("wayland" ,wayland)
5514 ("network-manager" ,network-manager)
5515 ("gcr" ,gcr)
5516 ("modem-manager" ,modem-manager)))
5517 (home-page "https://www.gnome.org")
5518 (synopsis "GNOME settings daemon")
5519 (description
5520 "This package contains the daemon responsible for setting the various
5521 parameters of a GNOME session and the applications that run under it. It
5522 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5523 settings, themes, mouse settings, and startup of other daemons.")
5524 (license license:gpl2+)))
5525
5526 (define-public totem-pl-parser
5527 (package
5528 (name "totem-pl-parser")
5529 (version "3.26.5")
5530 (source (origin
5531 (method url-fetch)
5532 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5533 (version-major+minor version) "/"
5534 "totem-pl-parser-" version ".tar.xz"))
5535 (sha256
5536 (base32
5537 "132jihnf51zs98yjkc6jxyqib4f3dawpjm17g4bj4j78y93dww2k"))))
5538 (build-system meson-build-system)
5539 (arguments
5540 ;; FIXME: Tests require gvfs.
5541 `(#:tests? #f))
5542 (native-inputs
5543 `(("intltool" ,intltool)
5544 ("glib" ,glib "bin")
5545 ("gobject-introspection" ,gobject-introspection)
5546 ("pkg-config" ,pkg-config)))
5547 (propagated-inputs
5548 `(("glib" ,glib)
5549 ("gmime" ,gmime)
5550 ("libarchive" ,libarchive)
5551 ("libgcrypt" ,libgcrypt)
5552 ("libxml2" ,libxml2)))
5553 (inputs
5554 `(("libsoup" ,libsoup)))
5555 (home-page "https://projects.gnome.org/totem")
5556 (synopsis "Library to parse and save media playlists for GNOME")
5557 (description "Totem-pl-parser is a GObjects-based library to parse and save
5558 playlists in a variety of formats.")
5559 (license license:lgpl2.0+)))
5560
5561 (define-public aisleriot
5562 (package
5563 (name "aisleriot")
5564 (version "3.22.9")
5565 (source (origin
5566 (method url-fetch)
5567 (uri (string-append "mirror://gnome/sources/aisleriot/"
5568 (version-major+minor version) "/"
5569 "aisleriot-" version ".tar.xz"))
5570 (sha256
5571 (base32
5572 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5573 (build-system glib-or-gtk-build-system)
5574 (arguments
5575 '(#:configure-flags
5576 '("--with-platform=gtk-only"
5577 "--with-card-theme-formats=svg")))
5578 (native-inputs
5579 `(("desktop-file-utils" ,desktop-file-utils)
5580 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5581 ("intltool" ,intltool)
5582 ("itstool" ,itstool)
5583 ("pkg-config" ,pkg-config)
5584 ("xmllint" ,libxml2)))
5585 (inputs
5586 `(("gtk+" ,gtk+)
5587 ("guile" ,guile-2.2)
5588 ("libcanberra" ,libcanberra)
5589 ("librsvg" ,librsvg)))
5590 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5591 (synopsis "Solitaire card games")
5592 (description
5593 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5594 which are easy to play with the aid of a mouse.")
5595 (license license:gpl3+)))
5596
5597 (define-public amtk
5598 (package
5599 (name "amtk")
5600 (version "5.0.2")
5601 (source (origin
5602 (method url-fetch)
5603 (uri (string-append "mirror://gnome/sources/amtk/"
5604 (version-major+minor version) "/"
5605 "amtk-" version ".tar.xz"))
5606 (sha256
5607 (base32
5608 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5609 (build-system gnu-build-system)
5610 (arguments
5611 '(#:configure-flags '("--enable-gtk-doc")))
5612 (native-inputs
5613 `(("gobject-introspection" ,gobject-introspection)
5614 ("glib:bin" ,glib "bin") ; for glib-mkenums
5615 ("gtk-doc" ,gtk-doc)
5616 ("pkg-config" ,pkg-config)))
5617 (inputs
5618 `(("glib" ,glib)
5619 ("gtk+" ,gtk+)))
5620 (home-page "https://wiki.gnome.org/Projects/Amtk")
5621 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5622 (description
5623 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5624 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5625 both a traditional UI or a modern UI with a GtkHeaderBar.")
5626 (license license:lgpl2.1+)))
5627
5628 (define-public devhelp
5629 (package
5630 (name "devhelp")
5631 (version "3.34.0")
5632 (source (origin
5633 (method url-fetch)
5634 (uri (string-append "mirror://gnome/sources/" name "/"
5635 (version-major+minor version) "/"
5636 name "-" version ".tar.xz"))
5637 (sha256
5638 (base32
5639 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5640 (build-system meson-build-system)
5641 (arguments
5642 '(#:glib-or-gtk? #t
5643 #:phases
5644 (modify-phases %standard-phases
5645 (add-after 'unpack 'skip-gtk-update-icon-cache
5646 ;; Don't create 'icon-theme.cache'.
5647 (lambda _
5648 (substitute* "meson_post_install.py"
5649 (("gtk-update-icon-cache") "true"))
5650 #t)))))
5651 (native-inputs
5652 `(("intltool" ,intltool)
5653 ("itstool" ,itstool)
5654 ("gobject-introspection" ,gobject-introspection)
5655 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5656 ("pkg-config" ,pkg-config)))
5657 (inputs
5658 `(("amtk" ,amtk)
5659 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5660 ("webkitgtk" ,webkitgtk)))
5661 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5662 (synopsis "API documentation browser for GNOME")
5663 (description
5664 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5665 natively with GTK-Doc (the API reference system developed for GTK+ and used
5666 throughout GNOME for API documentation).")
5667 (license license:gpl2+)))
5668
5669 (define-public cogl
5670 (package
5671 (name "cogl")
5672 (version "1.22.8")
5673 (source
5674 (origin
5675 (method url-fetch)
5676 (uri (string-append "mirror://gnome/sources/cogl/"
5677 (version-major+minor version) "/"
5678 "cogl-" version ".tar.xz"))
5679 (sha256
5680 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5681 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5682 ;; cogl, corresponding changes may be appropriate in mutter as well.
5683 (build-system gnu-build-system)
5684 (native-inputs
5685 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5686 ("gobject-introspection" ,gobject-introspection)
5687 ("xorg-server" ,xorg-server-for-tests)
5688 ("pkg-config" ,pkg-config)))
5689 (propagated-inputs
5690 `(("glib" ,glib)
5691 ("gdk-pixbuf" ,gdk-pixbuf)
5692 ("libx11" ,libx11)
5693 ("libxext" ,libxext)
5694 ("libxfixes" ,libxfixes)
5695 ("libxdamage" ,libxdamage)
5696 ("libxcomposite" ,libxcomposite)
5697 ("libxrandr" ,libxrandr)))
5698 (inputs
5699 `(("mesa" ,mesa)
5700 ("cairo" ,cairo)
5701 ("pango" ,pango)
5702 ("gstreamer" ,gstreamer)
5703 ("gst-plugins-base" ,gst-plugins-base)
5704 ("wayland" ,wayland)))
5705 (arguments
5706 `(#:disallowed-references (,xorg-server-for-tests)
5707 #:configure-flags (list "--enable-cogl-gst"
5708 "--enable-wayland-egl-platform"
5709 "--enable-wayland-egl-server"
5710
5711 ;; Arrange to pass an absolute file name to
5712 ;; dlopen for libGL.so.
5713 (string-append "--with-gl-libname="
5714 (assoc-ref %build-inputs "mesa")
5715 "/lib/libGL.so"))
5716 #:phases
5717 (modify-phases %standard-phases
5718 (add-after 'unpack 'fix-build-with-mesa-20
5719 (lambda _
5720 ;; Work around a problem with Mesa 20 where some macros used by
5721 ;; Cogl went missing from eglext.h. This can likely be removed
5722 ;; for newer versions of Cogl or Mesa.
5723 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5724 (substitute* '("configure"
5725 "cogl/winsys/cogl-winsys-egl-kms.c")
5726 (("#include <EGL/eglext.h>" all)
5727 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5728 #t))
5729 (add-before 'check 'start-xorg-server
5730 (lambda* (#:key tests? inputs #:allow-other-keys)
5731 (if tests?
5732 (begin
5733 ;; The test suite requires a running X server.
5734 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5735 (assoc-ref inputs "xorg-server")))
5736 (setenv "DISPLAY" ":1")
5737 #t)
5738 (format #t "test suite not run~%"))
5739 #t)))))
5740 (home-page "https://www.cogl3d.org")
5741 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5742 (description
5743 "Cogl is a small library for using 3D graphics hardware to draw pretty
5744 pictures. The API departs from the flat state machine style of OpenGL and is
5745 designed to make it easy to write orthogonal components that can render
5746 without stepping on each others toes.")
5747 (license (list license:expat ; most of the code
5748 license:bsd-3 ; cogl/cogl-point-in-poly.c
5749 license:sgifreeb2.0 ; cogl-path/tesselator/
5750 license:asl2.0)))) ; examples/android/
5751
5752 (define-public clutter
5753 (package
5754 (name "clutter")
5755 (version "1.26.2")
5756 (source
5757 (origin
5758 (method url-fetch)
5759 (uri (string-append "mirror://gnome/sources/" name "/"
5760 (version-major+minor version) "/"
5761 name "-" version ".tar.xz"))
5762 (sha256
5763 (base32
5764 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5765 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5766 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5767 (build-system gnu-build-system)
5768 (outputs '("out"
5769 "doc")) ;9 MiB of gtk-doc HTML pages
5770 (native-inputs
5771 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5772 ("gobject-introspection" ,gobject-introspection)
5773 ("pkg-config" ,pkg-config)
5774 ("xsltproc" ,libxslt)))
5775 (propagated-inputs
5776 `(("cogl" ,cogl)
5777 ("cairo" ,cairo)
5778 ("atk" ,atk)
5779 ("gtk+" ,gtk+)
5780 ("json-glib" ,json-glib)
5781 ("glib" ,glib)
5782 ("libxcomposite" ,libxcomposite)
5783 ("libxdamage" ,libxdamage)
5784 ("libxext" ,libxext)
5785 ("xinput" ,xinput)))
5786 (inputs
5787 `(("libxkbcommon" ,libxkbcommon)
5788 ("udev" ,eudev)))
5789 (arguments
5790 `(#:configure-flags (list "--enable-x11-backend=yes"
5791
5792 ;; This produces share/doc/{clutter,cally}.
5793 (string-append "--with-html-dir="
5794 (assoc-ref %outputs "doc")
5795 "/share/doc"))
5796 ;; XXX FIXME: Get test suite working. It would probably fail in the
5797 ;; same way the cogl tests fail, since clutter is based on cogl.
5798 #:tests? #f))
5799 (home-page "http://www.clutter-project.org")
5800 (synopsis "OpenGL-based interactive canvas library")
5801 (description
5802 "Clutter is an OpenGL-based interactive canvas library, designed for
5803 creating fast, mainly 2D single window applications such as media box UIs,
5804 presentations, kiosk style applications and so on.")
5805 (license license:lgpl2.0+)))
5806
5807 (define-public clutter-gtk
5808 (package
5809 (name "clutter-gtk")
5810 (version "1.8.4")
5811 (source
5812 (origin
5813 (method url-fetch)
5814 (uri (string-append "mirror://gnome/sources/" name "/"
5815 (version-major+minor version) "/"
5816 name "-" version ".tar.xz"))
5817 (sha256
5818 (base32
5819 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5820 (build-system gnu-build-system)
5821 (native-inputs
5822 `(("pkg-config" ,pkg-config)
5823 ("gobject-introspection" ,gobject-introspection)))
5824 (propagated-inputs
5825 ;; clutter-gtk.pc refers to all these.
5826 `(("clutter" ,clutter)
5827 ("gtk+" ,gtk+)))
5828 (home-page "http://www.clutter-project.org")
5829 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5830 (description
5831 "Clutter is an OpenGL-based interactive canvas library, designed for
5832 creating fast, mainly 2D single window applications such as media box UIs,
5833 presentations, kiosk style applications and so on.")
5834 (license license:lgpl2.0+)))
5835
5836 (define-public clutter-gst
5837 (package
5838 (name "clutter-gst")
5839 (version "3.0.27")
5840 (source
5841 (origin
5842 (method url-fetch)
5843 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5844 (version-major+minor version) "/"
5845 "clutter-gst-" version ".tar.xz"))
5846 (sha256
5847 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5848 (build-system gnu-build-system)
5849 (native-inputs
5850 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5851 ("pkg-config" ,pkg-config)
5852 ("gobject-introspection" ,gobject-introspection)))
5853 (inputs
5854 `(("clutter" ,clutter)
5855 ("gstreamer" ,gstreamer)
5856 ("gst-plugins-base" ,gst-plugins-base)))
5857 (home-page "http://www.clutter-project.org")
5858 (synopsis "Integration library for using GStreamer with Clutter")
5859 (description
5860 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5861 It provides a GStreamer sink to upload frames to GL and an actor that
5862 implements the ClutterGstPlayer interface using playbin. Clutter is an
5863 OpenGL-based interactive canvas library.")
5864 (license license:lgpl2.0+)))
5865
5866 (define-public libchamplain
5867 (package
5868 (name "libchamplain")
5869 (version "0.12.16")
5870 (source (origin
5871 (method url-fetch)
5872 (uri (string-append
5873 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5874 version ".tar.xz"))
5875 (sha256
5876 (base32
5877 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5878 (build-system gnu-build-system)
5879 (arguments '(#:configure-flags '("--enable-vala")))
5880 (native-inputs
5881 `(("gobject-introspection" ,gobject-introspection)
5882 ("pkg-config" ,pkg-config)
5883 ("vala" ,vala)))
5884 (propagated-inputs
5885 `(("libsoup" ,libsoup)
5886 ("sqlite" ,sqlite)
5887 ("clutter" ,clutter)
5888 ("clutter-gtk" ,clutter-gtk)
5889 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5890 ("cairo" ,cairo)
5891 ("gtk+3" ,gtk+)
5892 ("glib" ,glib)))
5893 (home-page "https://projects.gnome.org/libchamplain/")
5894 (synopsis "C library providing a ClutterActor to display maps")
5895 (description
5896 "libchamplain is a C library providing a ClutterActor to display maps.
5897 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5898 and Perl bindings are also available. It supports numerous free map sources
5899 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5900 (license license:lgpl2.1+)))
5901
5902 (define-public gom
5903 (package
5904 (name "gom")
5905 (version "0.3.2")
5906 (source
5907 (origin
5908 (method url-fetch)
5909 (uri (string-append "mirror://gnome/sources/gom/"
5910 (version-major+minor version) "/"
5911 "gom-" version ".tar.xz"))
5912 (sha256
5913 (base32
5914 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5915 (build-system gnu-build-system)
5916 (native-inputs
5917 `(("intltool" ,intltool)
5918 ("pkg-config" ,pkg-config)
5919 ("gobject-introspection" ,gobject-introspection)))
5920 (inputs
5921 `(("glib" ,glib)
5922 ("gdk-pixbuf" ,gdk-pixbuf)
5923 ("sqlite" ,sqlite)))
5924 ;; XXX TODO: Figure out how to run the test suite.
5925 (arguments `(#:tests? #f))
5926 (home-page "https://wiki.gnome.org/Projects/Gom")
5927 (synopsis "Object mapper from GObjects to SQLite")
5928 (description
5929 "Gom provides an object mapper from GObjects to SQLite. It helps you
5930 write applications that need to store structured data as well as make complex
5931 queries upon that data.")
5932 (license license:lgpl2.1+)))
5933
5934 (define-public libgnome-games-support
5935 (package
5936 (name "libgnome-games-support")
5937 (version "1.4.4")
5938 (source (origin
5939 (method url-fetch)
5940 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5941 (version-major+minor version) "/"
5942 "libgnome-games-support-" version ".tar.xz"))
5943 (sha256
5944 (base32
5945 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5946 (build-system gnu-build-system)
5947 (arguments
5948 '(#:phases
5949 (modify-phases %standard-phases
5950 (add-before 'check 'pre-check
5951 (lambda _
5952 ;; Tests require a writable HOME.
5953 (setenv "HOME" (getcwd))
5954 #t)))))
5955 (native-inputs
5956 `(("intltool" ,intltool)
5957 ("pkg-config" ,pkg-config)
5958 ("vala" ,vala)))
5959 (propagated-inputs
5960 ;; Required by libgnome-games-support-1.0.pc
5961 `(("gtk+" ,gtk+)
5962 ("libgee" ,libgee)))
5963 (home-page "https://www.gnome.org/")
5964 (synopsis "Useful functionality shared among GNOME games")
5965 (description
5966 "libgnome-games-support is a small library intended for internal use by
5967 GNOME Games, but it may be used by others.")
5968 (license license:lgpl3+)))
5969
5970 (define-public gnome-klotski
5971 (package
5972 (name "gnome-klotski")
5973 (version "3.34.0")
5974 (source (origin
5975 (method url-fetch)
5976 (uri (string-append "mirror://gnome/sources/" name "/"
5977 (version-major+minor version) "/"
5978 name "-" version ".tar.xz"))
5979 (sha256
5980 (base32
5981 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
5982 (build-system meson-build-system)
5983 (arguments
5984 '(#:glib-or-gtk? #t
5985 #:phases
5986 (modify-phases %standard-phases
5987 (add-after 'unpack 'skip-gtk-update-icon-cache
5988 ;; Don't create 'icon-theme.cache'.
5989 (lambda _
5990 (substitute* "build-aux/meson_post_install.py"
5991 (("gtk-update-icon-cache") (which "true")))
5992 #t)))))
5993 (native-inputs
5994 `(("desktop-file-utils" ,desktop-file-utils)
5995 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5996 ("intltool" ,intltool)
5997 ("itstool" ,itstool)
5998 ("pkg-config" ,pkg-config)
5999 ("vala" ,vala)
6000 ("xmllint" ,libxml2)))
6001 (inputs
6002 `(("gtk+" ,gtk+)
6003 ("libgnome-games-support" ,libgnome-games-support)
6004 ("librsvg" ,librsvg)))
6005 (home-page "https://wiki.gnome.org/Apps/Klotski")
6006 (synopsis "Sliding block puzzles")
6007 (description
6008 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6009 the patterned block to the area bordered by green markers. To do so, you will
6010 need to slide other blocks out of the way. Complete each puzzle in as few moves
6011 as possible!")
6012 (license license:gpl2+)))
6013
6014 (define-public grilo
6015 (package
6016 (name "grilo")
6017 (version "0.3.12")
6018 (source
6019 (origin
6020 (method url-fetch)
6021 (uri (string-append "mirror://gnome/sources/grilo/"
6022 (version-major+minor version) "/"
6023 "grilo-" version ".tar.xz"))
6024 (sha256
6025 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
6026 (build-system meson-build-system)
6027 (native-inputs
6028 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
6029 ("intltool" ,intltool)
6030 ("pkg-config" ,pkg-config)
6031 ("gobject-introspection" ,gobject-introspection)
6032 ("gtk-doc" ,gtk-doc)
6033 ("vala" ,vala)))
6034 (inputs
6035 `(("cyrus-sasl" ,cyrus-sasl)
6036 ("glib" ,glib)
6037 ("gtk+" ,gtk+)
6038 ("libxml2" ,libxml2)
6039 ("liboauth" ,liboauth)
6040 ("libsoup" ,libsoup)
6041 ("totem-pl-parser" ,totem-pl-parser)))
6042 (native-search-paths
6043 (list (search-path-specification
6044 (variable "GRL_PLUGIN_PATH")
6045 (files (list (string-append "lib/grilo-"
6046 (version-major+minor version)))))))
6047 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6048 (synopsis "Framework for discovering and browsing media")
6049 (description
6050 "Grilo is a framework focused on making media discovery and browsing easy
6051 for application developers.")
6052 (license license:lgpl2.1+)))
6053
6054 (define-public grilo-plugins
6055 (package
6056 (name "grilo-plugins")
6057 (version "0.3.11")
6058 (source
6059 (origin
6060 (method url-fetch)
6061 (uri (string-append "mirror://gnome/sources/" name "/"
6062 (version-major+minor version) "/"
6063 name "-" version ".tar.xz"))
6064 (sha256
6065 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
6066 (build-system meson-build-system)
6067 (native-inputs
6068 `(("gettext" ,gettext-minimal)
6069 ("glib:bin" ,glib "bin")
6070 ("gtk+:bin" ,gtk+ "bin")
6071 ("itstool" ,itstool)
6072 ("pkg-config" ,pkg-config)))
6073 ;; TODO: ahavi, gstreamer
6074 (inputs
6075 `(("grilo" ,grilo)
6076 ;("gmime" ,gmime) ; unused
6077 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6078 ("gom" ,gom)
6079 ;("gssdp" ,gssdp) ; unused
6080 ;("gupnp" ,gupnp) ; unused
6081 ;("gupnp-av" ,gupnp-av) ; unused
6082 ("json-glib" ,json-glib)
6083 ("avahi" ,avahi)
6084 ("libgdata" ,libgdata)
6085 ("libmediaart" ,libmediaart)
6086 ;("librest" ,rest) ; unused
6087 ("libsoup" ,libsoup)
6088 ("totam-pl-parser" ,totem-pl-parser)
6089 ("tracker" ,tracker))) ; unused because it's too old
6090 (arguments
6091 `(#:glib-or-gtk? #t
6092 ;;Disable lua-factory as it needs missing dependencies
6093 #:configure-flags '("-Denable-lua-factory=no")))
6094 (home-page "https://live.gnome.org/Grilo")
6095 (synopsis "Plugins for the Grilo media discovery library")
6096 (description
6097 "Grilo is a framework focused on making media discovery and browsing easy
6098 for application developers. This package provides plugins for common media
6099 discovery protocols.")
6100 (license license:lgpl2.1+)))
6101
6102 (define-public totem
6103 (package
6104 (name "totem")
6105 (version "3.38.0")
6106 (source
6107 (origin
6108 (method url-fetch)
6109 (uri (string-append "mirror://gnome/sources/totem/"
6110 (version-major+minor version) "/"
6111 "totem-" version ".tar.xz"))
6112 (sha256
6113 (base32
6114 "0bs33ijvxbr2prb9yj4dxglsszslsn9k258n311sld84masz4ad8"))))
6115 (build-system meson-build-system)
6116 (native-inputs
6117 `(("pkg-config" ,pkg-config)
6118 ("desktop-file-utils" ,desktop-file-utils)
6119 ("gettext" ,gettext-minimal)
6120 ("gobject-introspection" ,gobject-introspection)
6121 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
6122 ("itstool" ,itstool)
6123 ("xmllint" ,libxml2)
6124 ("xorg-server" ,xorg-server-for-tests)))
6125 (propagated-inputs
6126 `(("dconf" ,dconf)))
6127 (inputs
6128 `(("gtk+" ,gtk+)
6129 ("gdk-pixbuf" ,gdk-pixbuf)
6130 ("atk" ,atk)
6131 ("cairo" ,cairo)
6132 ("dbus-glib" ,dbus-glib)
6133 ("clutter" ,clutter)
6134 ("clutter-gtk" ,clutter-gtk)
6135 ("clutter-gst" ,clutter-gst)
6136 ("xorgproto" ,xorgproto)
6137 ("libxxf86vm" ,libxxf86vm)
6138 ("libxtst" ,libxtst)
6139 ("libxrandr" ,libxrandr)
6140 ("libxml2" ,libxml2)
6141 ("libsoup" ,libsoup)
6142 ("libpeas" ,libpeas)
6143 ("librsvg" ,librsvg)
6144 ("lirc" ,lirc)
6145 ("gnome-desktop" ,gnome-desktop)
6146 ("gstreamer" ,gstreamer)
6147 ("gst-plugins-base" ,gst-plugins-base)
6148 ("gst-plugins-good" ,gst-plugins-good)
6149 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6150 ("adwaita-icon-theme" ,adwaita-icon-theme)
6151 ("python" ,python)
6152 ("python-pygobject" ,python-pygobject)
6153 ("totem-pl-parser" ,totem-pl-parser)
6154 ("grilo" ,grilo)
6155 ("grilo-plugins" ,grilo-plugins)
6156 ("vala" ,vala)))
6157 (arguments
6158 `(#:glib-or-gtk? #t
6159
6160 ;; Disable automatic GStreamer plugin installation via PackageKit and
6161 ;; all that.
6162 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6163
6164 ;; Do not build .a files for the plugins, it's
6165 ;; completely useless. This saves 2 MiB.
6166 "--default-library" "shared")
6167 #:phases
6168 (modify-phases %standard-phases
6169 (add-after 'unpack 'skip-gtk-update-icon-cache
6170 ;; Don't create 'icon-theme.cache'.
6171 (lambda _
6172 (substitute* "meson_post_install.py"
6173 (("gtk-update-icon-cache") "true"))
6174 #t))
6175 (add-after 'unpack 'patch-failing-test
6176 (lambda _
6177 ;; Work around test failure with GStreamer 1.18, because the test
6178 ;; relies on "und" not being mapped to a particular language:
6179 ;; https://gitlab.gnome.org/GNOME/totem/-/issues/450
6180 (substitute* "src/test-totem.c"
6181 (("und") "nosuchlang"))
6182 #t))
6183 (add-before
6184 'install 'disable-cache-generation
6185 (lambda _
6186 (setenv "DESTDIR" "/")
6187 #t))
6188 (add-before
6189 'check 'pre-check
6190 (lambda _
6191 ;; Tests require a running X server.
6192 (system "Xvfb :1 &")
6193 (setenv "DISPLAY" ":1")
6194 #t))
6195 (add-after
6196 'install 'wrap-totem
6197 (lambda* (#:key inputs outputs #:allow-other-keys)
6198 (let ((out (assoc-ref outputs "out"))
6199 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6200 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6201 (wrap-program (string-append out "/bin/totem")
6202 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6203 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6204 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6205 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
6206 #t)))))
6207 (home-page "https://wiki.gnome.org/Apps/Videos")
6208 (synopsis "Simple media player for GNOME based on GStreamer")
6209 (description "Totem is a simple yet featureful media player for GNOME
6210 which can read a large number of file formats.")
6211 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6212 ;; to be used and distributed together with GStreamer and Totem. See
6213 ;; file://COPYING in the source distribution for details.
6214 (license license:gpl2+)))
6215
6216 (define-public rhythmbox
6217 (package
6218 (name "rhythmbox")
6219 (version "3.4.4")
6220 (source (origin
6221 (method url-fetch)
6222 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6223 (version-major+minor version) "/"
6224 "rhythmbox-" version ".tar.xz"))
6225 (sha256
6226 (base32
6227 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6228 (build-system glib-or-gtk-build-system)
6229 (arguments
6230 `(#:configure-flags
6231 (list "--enable-lirc"
6232 "--enable-python"
6233 "--enable-vala"
6234 "--with-brasero"
6235 "--with-gudev"
6236 "--with-libsecret")
6237 #:phases
6238 (modify-phases %standard-phases
6239 (add-after
6240 'install 'wrap-rhythmbox
6241 (lambda* (#:key inputs outputs #:allow-other-keys)
6242 (let ((out (assoc-ref outputs "out"))
6243 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6244 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6245 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6246 (python-path (getenv "PYTHONPATH")))
6247 (wrap-program (string-append out "/bin/rhythmbox")
6248 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6249 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6250 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6251 `("PYTHONPATH" ":" prefix (,python-path))))
6252 #t)))))
6253 (propagated-inputs
6254 `(("dconf" ,dconf)))
6255 (native-inputs
6256 `(("itstool" ,itstool)
6257 ("intltool" ,intltool)
6258 ("glib" ,glib "bin")
6259 ("gobject-introspection" ,gobject-introspection)
6260 ("desktop-file-utils" ,desktop-file-utils)
6261 ("pkg-config" ,pkg-config)
6262 ("xmllint" ,libxml2)))
6263 (inputs
6264 `(("json-glib" ,json-glib)
6265 ("tdb" ,tdb)
6266 ("gnome-desktop" ,gnome-desktop)
6267 ("python" ,python)
6268 ("python-pygobject" ,python2-pygobject)
6269 ("vala" ,vala)
6270 ("gmime" ,gmime)
6271 ("adwaita-icon-theme" ,adwaita-icon-theme)
6272 ("grilo" ,grilo)
6273 ("grilo-plugins" ,grilo-plugins)
6274 ("gstreamer" ,gstreamer)
6275 ("gst-plugins-base" ,gst-plugins-base)
6276 ("gst-plugins-good" ,gst-plugins-good)
6277 ("totem-pl-parser" ,totem-pl-parser)
6278 ("libgudev" ,libgudev)
6279 ;;("libmtp" ,libmtp) FIXME: Not detected
6280 ("libsecret" ,libsecret)
6281 ("libsoup" ,libsoup)
6282 ("libnotify" ,libnotify)
6283 ("libpeas" ,libpeas)
6284 ("lirc" ,lirc)
6285 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6286 ;;("clutter" ,clutter)
6287 ;;("clutter-gtk" ,clutter-gtk)
6288 ;;("clutter-gst" ,clutter-gst)
6289 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6290 ("atk" ,atk)
6291 ("pango" ,pango)
6292 ("gtk+" ,gtk+)
6293 ;; TODO:
6294 ;; * libgpod
6295 ;; * mx
6296 ("brasero" ,brasero)))
6297 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6298 (synopsis "Music player for GNOME")
6299 (description "Rhythmbox is a music playing application for GNOME. It
6300 supports playlists, song ratings, and any codecs installed through gstreamer.")
6301 (license license:gpl2+)))
6302
6303 (define-public eog
6304 (package
6305 (name "eog")
6306 (version "3.34.1")
6307 (source (origin
6308 (method url-fetch)
6309 (uri (string-append "mirror://gnome/sources/" name "/"
6310 (version-major+minor version) "/"
6311 name "-" version ".tar.xz"))
6312 (sha256
6313 (base32
6314 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
6315 (build-system meson-build-system)
6316 (arguments
6317 `(#:configure-flags
6318 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6319 (list (string-append "-Dc_link_args=-Wl,-rpath="
6320 (assoc-ref %outputs "out") "/lib/eog"))
6321 #:phases
6322 (modify-phases %standard-phases
6323 (add-after 'unpack 'skip-gtk-update-icon-cache
6324 ;; Don't create 'icon-theme.cache'.
6325 (lambda _
6326 (substitute* "meson_post_install.py"
6327 (("gtk-update-icon-cache") "true"))
6328 #t))
6329 (add-after 'install 'wrap-eog
6330 (lambda* (#:key outputs #:allow-other-keys)
6331 (let ((out (assoc-ref outputs "out"))
6332 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6333 (wrap-program (string-append out "/bin/eog")
6334 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6335 #t)))))
6336 (propagated-inputs
6337 `(("dconf" ,dconf)))
6338 (native-inputs
6339 `(("intltool" ,intltool)
6340 ("itstool" ,itstool)
6341 ("glib" ,glib "bin")
6342 ("gobject-introspection" ,gobject-introspection)
6343 ("pkg-config" ,pkg-config)
6344 ("xmllint" ,libxml2)))
6345 (inputs
6346 `(("gnome-desktop" ,gnome-desktop)
6347 ("shared-mime-info" ,shared-mime-info)
6348 ("adwaita-icon-theme" ,adwaita-icon-theme)
6349 ("exempi" ,exempi)
6350 ("lcms" ,lcms)
6351 ("libexif" ,libexif)
6352 ("libpeas" ,libpeas)
6353 ("libjpeg" ,libjpeg-turbo)
6354 ("librsvg" ,librsvg-next)
6355 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6356 ("gtk+" ,gtk+)))
6357 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6358 (synopsis "GNOME image viewer")
6359 (description "Eye of GNOME is the GNOME image viewer. It
6360 supports image conversion, rotation, and slideshows.")
6361 (license license:gpl2+)))
6362
6363 (define-public eog-plugins
6364 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6365 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6366 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6367 ;; 'XDG_DATA_DIRS' appropriately set.
6368 (package
6369 (name "eog-plugins")
6370 (version "3.26.4")
6371 (source (origin
6372 (method url-fetch)
6373 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6374 (version-major+minor version) "/"
6375 "eog-plugins-" version ".tar.xz"))
6376 (sha256
6377 (base32
6378 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6379 (build-system gnu-build-system)
6380 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6381 (synopsis "Extensions for the Eye of GNOME image viewer")
6382 (native-inputs
6383 `(("pkg-config" ,pkg-config)
6384 ("gettext" ,gettext-minimal)))
6385 (inputs
6386 `(("eog" ,eog)
6387 ("glib" ,glib)
6388 ("gtk+" ,gtk+)
6389 ("libpeas" ,libpeas)
6390 ("libexif" ,libexif)
6391 ("libchamplain" ,libchamplain)))
6392 (description
6393 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6394 notably:
6395
6396 @itemize
6397 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6398 @item @dfn{Map}, which displays a map of where the picture was taken on the
6399 side panel;
6400 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6401 @end itemize\n")
6402
6403 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6404 ;; long suspicious byte stream that goes to a
6405 ;; ".gresource.eog_postasa_plugin" ELF section.
6406 (license license:gpl2+)))
6407
6408 (define-public libgudev
6409 (package
6410 (name "libgudev")
6411 (version "232")
6412 (source (origin
6413 (method url-fetch)
6414 (uri (string-append "mirror://gnome/sources/" name "/"
6415 version "/" name "-" version ".tar.xz"))
6416 (sha256
6417 (base32
6418 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
6419 (build-system gnu-build-system)
6420 (arguments
6421 '(#:configure-flags
6422 ;; umockdev depends on libgudev.
6423 (list "--disable-umockdev")))
6424 (native-inputs
6425 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6426 ("gobject-introspection" ,gobject-introspection)
6427 ("pkg-config" ,pkg-config)))
6428 (propagated-inputs
6429 `(("glib" ,glib))) ; required by gudev-1.0.pc
6430 (inputs
6431 `(("udev" ,eudev)))
6432 (home-page "https://wiki.gnome.org/Projects/libgudev")
6433 (synopsis "GObject bindings for libudev")
6434 (description
6435 "This library provides GObject bindings for libudev. It was originally
6436 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6437 (license license:lgpl2.1+)))
6438
6439 (define-public gvfs
6440 (package
6441 (name "gvfs")
6442 (version "1.40.1")
6443 (source (origin
6444 (method url-fetch)
6445 (uri (string-append "mirror://gnome/sources/gvfs/"
6446 (version-major+minor version) "/"
6447 "gvfs-" version ".tar.xz"))
6448 (sha256
6449 (base32
6450 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
6451 ;; This patch may be removed when upgrading to version 1.46.x.
6452 (patches
6453 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6454 (build-system meson-build-system)
6455 (arguments
6456 '(#:glib-or-gtk? #t
6457 #:configure-flags
6458 (list "-Dsystemduserunitdir=no"
6459 "-Dtmpfilesdir=no"
6460 ;; Otherwise, the RUNPATH will lack the final path component.
6461 (string-append "-Dc_link_args=-Wl,-rpath="
6462 (assoc-ref %outputs "out") "/lib/gvfs"))))
6463 (native-inputs
6464 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6465 ("gettext" ,gettext-minimal)
6466 ("gtk-doc" ,gtk-doc)
6467 ("pkg-config" ,pkg-config)
6468 ("xsltproc" ,libxslt)))
6469 (inputs
6470 `(("avahi" ,avahi)
6471 ("docbook-xml" ,docbook-xml-4.2)
6472 ("docbook-xsl" ,docbook-xsl)
6473 ("dbus" ,dbus)
6474 ("elogind" ,elogind)
6475 ("fuse" ,fuse)
6476 ("gcr" ,gcr)
6477 ("glib" ,glib)
6478 ("gnome-online-accounts" ,gnome-online-accounts)
6479 ("libarchive" ,libarchive)
6480 ("libbluray" ,libbluray)
6481 ("libcap" ,libcap)
6482 ("libcdio-paranoia" ,libcdio-paranoia)
6483 ("libgcrypt" ,libgcrypt)
6484 ("libgdata" ,libgdata)
6485 ("libgphoto2" ,libgphoto2)
6486 ("libgudev" ,libgudev)
6487 ("libimobiledevice" ,libimobiledevice)
6488 ("libmtp" ,libmtp)
6489 ("libnfs" ,libnfs)
6490 ("libsecret" ,libsecret)
6491 ("libsmbclient" ,samba)
6492 ("libsoup" ,libsoup)
6493 ("libxml2" ,libxml2)
6494 ("openssh" ,openssh)
6495 ("polkit" ,polkit)
6496 ("udisks" ,udisks)))
6497 (home-page "https://wiki.gnome.org/gvfs/")
6498 (synopsis "Userspace virtual file system for GIO")
6499 (description
6500 "GVFS is a userspace virtual file system designed to work with the I/O
6501 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6502 to all applications using the GIO API. It also supports exposing the GVFS
6503 mounts to non-GIO applications using FUSE.
6504
6505 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6506 DAV, and others.")
6507 (license license:lgpl2.0+)))
6508
6509 (define-public gusb
6510 (package
6511 (name "gusb")
6512 (version "0.3.5")
6513 (source (origin
6514 (method git-fetch)
6515 (uri (git-reference
6516 (url "https://github.com/hughsie/libgusb")
6517 (commit version)))
6518 (file-name (git-file-name name version))
6519 (sha256
6520 (base32
6521 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6522 (build-system meson-build-system)
6523 (native-inputs
6524 `(("gobject-introspection" ,gobject-introspection)
6525 ("pkg-config" ,pkg-config)
6526 ("vala" ,vala)
6527 ("gtk-doc" ,gtk-doc)))
6528 (propagated-inputs
6529 ;; Both of these are required by gusb.pc.
6530 `(("glib" ,glib)
6531 ("libusb" ,libusb)))
6532 (arguments
6533 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6534 (home-page "https://github.com/hughsie/libgusb")
6535 (synopsis "GLib binding for libusb1")
6536 (description
6537 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6538 asynchronous control, bulk and interrupt transfers with proper cancellation
6539 and integration into a mainloop. This makes it easy to integrate low level
6540 USB transfers with your high-level application or system daemon.")
6541 (license license:lgpl2.1+)))
6542
6543 (define-public simple-scan
6544 (package
6545 (name "simple-scan")
6546 (version "3.38.2")
6547 (source
6548 (origin
6549 (method url-fetch)
6550 (uri (string-append "mirror://gnome/sources/simple-scan/"
6551 (version-major+minor version) "/"
6552 "simple-scan-" version ".tar.xz"))
6553 (sha256
6554 (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8"))))
6555 (build-system meson-build-system)
6556 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6557 (arguments
6558 '(#:glib-or-gtk? #t))
6559 (inputs
6560 `(("gtk" ,gtk+)
6561 ("zlib" ,zlib)
6562 ("cairo" ,cairo)
6563 ("colord" ,colord)
6564 ("gdk-pixbuf" ,gdk-pixbuf)
6565 ("gusb" ,gusb)
6566 ("libsane" ,sane-backends)))
6567 (native-inputs
6568 `(("gettext" ,gettext-minimal)
6569 ("itstool" ,itstool)
6570 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6571 ("pkg-config" ,pkg-config)
6572 ("vala" ,vala)
6573 ("xmllint" ,libxml2)))
6574 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6575 (synopsis "Document and image scanner")
6576 (description
6577 "Document Scanner is an easy-to-use application that lets you connect your
6578 scanner and quickly capture images and documents in an appropriate format. It
6579 supports any scanner for which a suitable SANE driver is available, which is
6580 almost all of them.")
6581 (license license:gpl3+)))
6582
6583 (define-public eolie
6584 (package
6585 (name "eolie")
6586 (version "0.9.101")
6587 (source (origin
6588 (method url-fetch)
6589 (uri (string-append "https://adishatz.org/eolie/eolie-"
6590 version ".tar.xz"))
6591 (sha256
6592 (base32
6593 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6594 (build-system meson-build-system)
6595 (arguments
6596 `(#:glib-or-gtk? #t
6597 #:phases
6598 (modify-phases %standard-phases
6599 (add-after 'unpack 'skip-gtk-update-icon-cache
6600 ;; Don't create 'icon-theme.cache'.
6601 (lambda _
6602 (substitute* "meson_post_install.py"
6603 (("gtk-update-icon-cache") "true"))
6604 #t))
6605 (add-after 'wrap 'wrap-more
6606 (lambda* (#:key inputs outputs #:allow-other-keys)
6607 (let* ((out (assoc-ref outputs "out"))
6608 ;; These libraries must be on LD_LIBRARY_PATH.
6609 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6610 "atk" "gtk+" "gsettings-desktop-schemas"
6611 "gobject-introspection"))
6612 (path (string-join
6613 (map (lambda (lib)
6614 (string-append (assoc-ref inputs lib) "/lib"))
6615 libs)
6616 ":")))
6617 (wrap-program (string-append out "/bin/eolie")
6618 `("LD_LIBRARY_PATH" ":" prefix (,path))
6619 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6620 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6621 #t)))))
6622 (native-inputs
6623 `(("intltool" ,intltool)
6624 ("itstool" ,itstool)
6625 ("pkg-config" ,pkg-config)
6626 ("python" ,python)
6627 ("glib:bin" ,glib "bin")))
6628 (inputs
6629 `(("gobject-introspection" ,gobject-introspection)
6630 ("glib-networking" ,glib-networking)
6631 ("cairo" ,cairo)
6632 ("gtk+" ,gtk+)
6633 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6634 ("python" ,python-wrapper)
6635 ("python-dateutil" ,python-dateutil)
6636 ("python-pyfxa" ,python-pyfxa)
6637 ("python-pygobject" ,python-pygobject)
6638 ("python-pycairo" ,python-pycairo)
6639 ("python-pycrypto" ,python-pycrypto)
6640 ("libsecret" ,libsecret)
6641 ("gtkspell3" ,gtkspell3)
6642 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6643 ("webkitgtk" ,webkitgtk)))
6644 (home-page "https://wiki.gnome.org/Apps/Eolie")
6645 (synopsis "Web browser for GNOME")
6646 (description
6647 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6648 a secret password store, an adblocker, and a modern UI.")
6649 (license license:gpl3+)))
6650
6651 (define-public epiphany
6652 (package
6653 (name "epiphany")
6654 (version "3.34.4")
6655 (source (origin
6656 (method url-fetch)
6657 (uri (string-append "mirror://gnome/sources/epiphany/"
6658 (version-major+minor version) "/"
6659 "epiphany-" version ".tar.xz"))
6660 (sha256
6661 (base32
6662 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6663
6664 (build-system meson-build-system)
6665 (arguments
6666 '(#:glib-or-gtk? #t
6667 #:phases
6668 (modify-phases %standard-phases
6669 (add-after 'unpack 'skip-gtk-update-icon-cache
6670 ;; Don't create 'icon-theme.cache'.
6671 (lambda _
6672 (substitute* "post_install.py"
6673 (("gtk-update-icon-cache") "true"))
6674 #t))
6675 (add-after 'unpack 'disable-failing-tests
6676 (lambda _
6677 (substitute* "tests/meson.build"
6678 ;; embed_shell fails, because webkitgtk apparently no longer supports
6679 ;; overriding the ftp schema
6680 ;; web_app_utils fails due to missing network access
6681 (("(embed_shell|web_app_utils)_test,")
6682 "find_program('sh'), args: ['-c', 'exit 77'],"))
6683 #t))
6684 (add-before 'check 'pre-check
6685 (lambda _
6686 ;; Tests require a running X server.
6687 (system "Xvfb :1 &")
6688 (setenv "DISPLAY" ":1")
6689 #t)))
6690 #:configure-flags
6691 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6692 (list (string-append "-Dc_link_args=-Wl,-rpath="
6693 (assoc-ref %outputs "out") "/lib/epiphany"))))
6694 (propagated-inputs
6695 `(("dconf" ,dconf)))
6696 (native-inputs
6697 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6698 ("glib:bin" ,glib "bin") ; for glib-mkenums
6699 ("intltool" ,intltool)
6700 ("itstool" ,itstool)
6701 ("pkg-config" ,pkg-config)
6702 ("xmllint" ,libxml2)
6703 ("xorg-server" ,xorg-server-for-tests)))
6704 (inputs
6705 `(("avahi" ,avahi)
6706 ("gcr" ,gcr)
6707 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6708 ("glib-networking" ,glib-networking)
6709 ("gnome-desktop" ,gnome-desktop)
6710 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6711 ("json-glib" ,json-glib)
6712 ("iso-codes" ,iso-codes)
6713 ("libdazzle" ,libdazzle)
6714 ("libnotify" ,libnotify)
6715 ("libsecret" ,libsecret)
6716 ("libxslt" ,libxslt)
6717 ("nettle" ,nettle) ; for hogweed
6718 ("sqlite" ,sqlite)
6719 ("webkitgtk" ,webkitgtk)))
6720 (home-page "https://wiki.gnome.org/Apps/Web")
6721 (synopsis "GNOME web browser")
6722 (description
6723 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6724 principles are simplicity and standards compliance.")
6725 (license license:gpl2+)))
6726
6727 (define-public d-feet
6728 (package
6729 (name "d-feet")
6730 (version "0.3.14")
6731 (source (origin
6732 (method url-fetch)
6733 (uri (string-append "mirror://gnome/sources/" name "/"
6734 (version-major+minor version) "/"
6735 name "-" version ".tar.xz"))
6736 (sha256
6737 (base32
6738 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6739 (build-system glib-or-gtk-build-system)
6740 (arguments
6741 '(#:out-of-source? #f ; tests need to run in the source directory.
6742 #:phases
6743 (modify-phases %standard-phases
6744 (add-before
6745 'check 'pre-check
6746 (lambda _
6747 ;; The test suite requires a running X server.
6748 (system "Xvfb :1 &")
6749 (setenv "DISPLAY" ":1")
6750 ;; Don't fail on missing '/etc/machine-id'.
6751 (setenv "DBUS_FATAL_WARNINGS" "0")
6752 ;; tests.py and window.py don't meet E402:
6753 ;; E402 module level import not at top of file
6754 (substitute* "src/tests/Makefile"
6755 (("--ignore=E123") "--ignore=E123,E402"))
6756 #t))
6757 (add-after
6758 'install 'wrap-program
6759 (lambda* (#:key outputs #:allow-other-keys)
6760 (let ((prog (string-append (assoc-ref outputs "out")
6761 "/bin/d-feet")))
6762 (wrap-program prog
6763 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6764 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6765 #t))))))
6766 (native-inputs
6767 `(("intltool" ,intltool)
6768 ("itstool" ,itstool)
6769 ("pkg-config" ,pkg-config)
6770 ("python-pep8" ,python-pep8)
6771 ("xmllint" ,libxml2)
6772 ("xorg-server" ,xorg-server-for-tests)))
6773 (inputs
6774 `(("gobject-introspection" ,gobject-introspection)
6775 ("gtk+" ,gtk+)
6776 ("python" ,python-wrapper)
6777 ("hicolor-icon-theme" ,hicolor-icon-theme)
6778 ("python-pygobject" ,python-pygobject)))
6779 (home-page "https://wiki.gnome.org/Apps/DFeet")
6780 (synopsis "D-Bus debugger")
6781 (description
6782 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6783 of running programs and invoke methods on those interfaces.")
6784 (license license:gpl2+)))
6785
6786 (define-public yelp-xsl
6787 (package
6788 (name "yelp-xsl")
6789 (version "3.34.2")
6790 (source
6791 (origin
6792 (method url-fetch)
6793 (uri
6794 (string-append "mirror://gnome/sources/" name "/"
6795 (version-major+minor version) "/"
6796 name "-" version ".tar.xz"))
6797 (sha256
6798 (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6799 (build-system gnu-build-system)
6800 (native-inputs
6801 `(("gettext-minimal" ,gettext-minimal)
6802 ("itstool" ,itstool)
6803 ("xmllint" ,libxml2)))
6804 (synopsis "XSL stylesheets for Yelp")
6805 (description "Yelp-XSL is a collection of programs and data files to help
6806 you build, maintain, and distribute documentation. It provides XSLT stylesheets
6807 that can be built upon for help viewers and publishing systems. These
6808 stylesheets output JavaScript and CSS content, and reference images
6809 provided by yelp-xsl. It also redistributes copies of the jQuery and
6810 jQuery.Syntax JavaScript libraries.")
6811 (home-page "https://wiki.gnome.org/Apps/Yelp")
6812 (license
6813 (list
6814 ;; XSLT
6815 license:gpl2+
6816 ;; Images
6817 license:lgpl2.1+
6818 ;; JavaScript
6819 license:expat))))
6820
6821 (define-public yelp
6822 (package
6823 (name "yelp")
6824 (version "3.32.2")
6825 (source (origin
6826 (method url-fetch)
6827 (uri (string-append "mirror://gnome/sources/" name "/"
6828 (version-major+minor version) "/"
6829 name "-" version ".tar.xz"))
6830 (sha256
6831 (base32
6832 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6833 (build-system glib-or-gtk-build-system)
6834 (native-inputs
6835 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6836 ("intltool" ,intltool)
6837 ("itstool" ,itstool)
6838 ("pkg-config" ,pkg-config)))
6839 (propagated-inputs
6840 `(("dconf" ,dconf)))
6841 (inputs
6842 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6843 ("libxslt" ,libxslt)
6844 ("sqlite" ,sqlite)
6845 ("webkitgtk" ,webkitgtk)
6846 ("yelp-xsl" ,yelp-xsl)))
6847 (home-page "https://wiki.gnome.org/Apps/Yelp")
6848 (synopsis "GNOME help browser")
6849 (description
6850 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6851 man, info, and HTML documents. It can locate documents according to the
6852 freedesktop.org help system specification.")
6853 (license license:gpl2+)))
6854
6855 (define-public yelp-tools
6856 (package
6857 (name "yelp-tools")
6858 (version "3.32.2")
6859 (source
6860 (origin
6861 (method url-fetch)
6862 (uri
6863 (string-append "mirror://gnome/sources/" name "/"
6864 (version-major+minor version) "/"
6865 name "-" version ".tar.xz"))
6866 (sha256
6867 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6868 (build-system gnu-build-system)
6869 (native-inputs
6870 `(("pkg-config" ,pkg-config)))
6871 (inputs
6872 `(("yelp-xsl" ,yelp-xsl)))
6873 (propagated-inputs
6874 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6875 `(("itstool" ,itstool)
6876 ("xmllint" ,libxml2)
6877 ("xsltproc" ,libxslt)))
6878 (synopsis "Yelp documentation tools")
6879 (description
6880 "Yelp-tools is a collection of scripts and build utilities to help create,
6881 manage, and publish documentation for Yelp and the web. Most of the heavy
6882 lifting is done by packages like yelp-xsl and itstool. This package just
6883 wraps things up in a developer-friendly way.")
6884 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6885 (license license:gpl2+)))
6886
6887 (define-public libgee
6888 (package
6889 (name "libgee")
6890 (version "0.20.3")
6891 (source (origin
6892 (method url-fetch)
6893 (uri (string-append "mirror://gnome/sources/libgee/"
6894 (version-major+minor version) "/"
6895 "libgee-" version ".tar.xz"))
6896 (sha256
6897 (base32
6898 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6899 (build-system gnu-build-system)
6900 (arguments
6901 `(#:phases
6902 (modify-phases %standard-phases
6903 (add-after 'unpack 'fix-introspection-install-dir
6904 (lambda* (#:key outputs #:allow-other-keys)
6905 (let ((out (assoc-ref outputs "out")))
6906 (substitute* "gee/Makefile.in"
6907 (("@INTROSPECTION_GIRDIR@")
6908 (string-append out "/share/gir-1.0/"))
6909 (("@INTROSPECTION_TYPELIBDIR@")
6910 (string-append out "/lib/girepository-1.0/")))))))))
6911 (native-inputs
6912 `(("glib" ,glib "bin")
6913 ("pkg-config" ,pkg-config)))
6914 (inputs
6915 `(("glib" ,glib)
6916 ("gobject-introspection" ,gobject-introspection)))
6917 (home-page "https://wiki.gnome.org/Projects/Libgee")
6918 (synopsis "GObject collection library")
6919 (description
6920 "Libgee is a utility library providing GObject-based interfaces and
6921 classes for commonly used data structures.")
6922 (license license:lgpl2.1+)))
6923
6924 (define-public gexiv2
6925 (package
6926 (name "gexiv2")
6927 (version "0.12.1")
6928 (source (origin
6929 (method url-fetch)
6930 (uri (string-append "mirror://gnome/sources/" name "/"
6931 (version-major+minor version) "/"
6932 name "-" version ".tar.xz"))
6933 (sha256
6934 (base32
6935 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
6936 (build-system meson-build-system)
6937 (native-inputs
6938 `(("gcr" ,gcr)
6939 ("glib" ,glib "bin")
6940 ("pkg-config" ,pkg-config)
6941 ("vala" ,vala)))
6942 (propagated-inputs
6943 ;; Listed in "Requires" section of gexiv2.pc
6944 `(("exiv2" ,exiv2)))
6945 (inputs
6946 `(("glib" ,glib)
6947 ("gobject-introspection" ,gobject-introspection)))
6948 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6949 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6950 (description
6951 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6952 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6953 metadata in photo and video files of various formats.")
6954 (license license:gpl2+)))
6955
6956 (define-public shotwell
6957 (package
6958 (name "shotwell")
6959 (version "0.30.11")
6960 (source (origin
6961 (method url-fetch)
6962 (uri (string-append "mirror://gnome/sources/shotwell/"
6963 (version-major+minor version) "/"
6964 "shotwell-" version ".tar.xz"))
6965 (sha256
6966 (base32
6967 "12d26y40kjlv5x8f5g04wff33vh7mdjb8c41ydqbrwdip0jwy2n2"))))
6968 (build-system meson-build-system)
6969 (arguments
6970 '(#:glib-or-gtk? #t
6971 #:phases
6972 (modify-phases %standard-phases
6973 (add-after 'unpack 'skip-gtk-update-icon-cache
6974 (lambda _
6975 (substitute* "build-aux/meson/postinstall.py"
6976 (("gtk-update-icon-cache") (which "true"))
6977 (("update-desktop-database") (which "true")))
6978 #t)))))
6979 (propagated-inputs
6980 `(("dconf" ,dconf)))
6981 (native-inputs
6982 `(("gettext" ,gettext-minimal)
6983 ("glib:bin" ,glib "bin")
6984 ("itstool" ,itstool)
6985 ("pkg-config" ,pkg-config)
6986 ("vala" ,vala)))
6987 (inputs
6988 `(("gcr" ,gcr)
6989 ("gexiv2" ,gexiv2)
6990 ("gst-plugins-base" ,gst-plugins-base)
6991 ("gstreamer" ,gstreamer)
6992 ("json-glib" ,json-glib)
6993 ("libgdata" ,libgdata)
6994 ("libgee" ,libgee)
6995 ("libgphoto2" ,libgphoto2)
6996 ("libgudev" ,libgudev)
6997 ("libraw" ,libraw)
6998 ("libsoup" ,libsoup)
6999 ("libxml2" ,libxml2)
7000 ("sqlite" ,sqlite)
7001 ("webkitgtk" ,webkitgtk)))
7002 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7003 (synopsis "Photo manager for GNOME 3")
7004 (description
7005 "Shotwell is a digital photo manager designed for the GNOME desktop
7006 environment. It allows you to import photos from disk or camera, organize
7007 them by keywords and events, view them in full-window or fullscreen mode, and
7008 share them with others via social networking and more.")
7009 (license license:lgpl2.1+)))
7010
7011 (define-public file-roller
7012 (package
7013 (name "file-roller")
7014 (version "3.38.0")
7015 (source (origin
7016 (method url-fetch)
7017 (uri (string-append "mirror://gnome/sources/file-roller/"
7018 (version-major+minor version) "/"
7019 "file-roller-" version ".tar.xz"))
7020 (sha256
7021 (base32
7022 "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj"))))
7023 (build-system meson-build-system)
7024 (native-inputs
7025 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7026 ("intltool" ,intltool)
7027 ("itstool" ,itstool)
7028 ("pkg-config" ,pkg-config)
7029 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7030 ("glib:bin" ,glib "bin")))
7031 ;; TODO: Add libnautilus.
7032 (inputs
7033 `(("gtk+" ,gtk+)
7034 ("gdk-pixbuf" ,gdk-pixbuf)
7035 ("json-glib" ,json-glib)
7036 ("libarchive" ,libarchive)
7037 ("libnotify" ,libnotify)
7038 ("nettle" ,nettle)
7039 ("libxml2" ,libxml2)))
7040 (synopsis "Graphical archive manager for GNOME")
7041 (description "File Roller is an archive manager for the GNOME desktop
7042 environment that allows users to view, unpack, and create compressed archives
7043 such as gzip tarballs.")
7044 (home-page "http://fileroller.sourceforge.net/")
7045 (license license:gpl2+)))
7046
7047 (define-public gnome-session
7048 (package
7049 (name "gnome-session")
7050 (version "3.34.2")
7051 (source (origin
7052 (method url-fetch)
7053 (uri (string-append "mirror://gnome/sources/" name "/"
7054 (version-major+minor version) "/"
7055 name "-" version ".tar.xz"))
7056 (sha256
7057 (base32
7058 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
7059 (arguments
7060 '(#:glib-or-gtk? #t
7061 #:phases
7062 (modify-phases %standard-phases
7063 (add-before 'configure 'pre-configure
7064 (lambda* (#:key outputs #:allow-other-keys)
7065 ;; Use elogind instead of systemd.
7066 (substitute* "meson.build"
7067 (("libsystemd-login") "libelogind")
7068 (("and libsystemd_daemon_dep.found.*") ","))
7069 (substitute* "gnome-session/gsm-systemd.c"
7070 (("#include <systemd/sd-login.h>")
7071 "#include <elogind/sd-login.h>"))
7072 ;; Remove uses of the systemd daemon.
7073 (substitute* "gnome-session/gsm-autostart-app.c"
7074 (("#ifdef HAVE_SYSTEMD") "#if 0"))
7075 #t))
7076 (add-after 'install 'wrap-gnome-session
7077 (lambda* (#:key inputs outputs #:allow-other-keys)
7078 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7079 (let ((glib (assoc-ref inputs "glib:bin"))
7080 (out (assoc-ref outputs "out")))
7081 (wrap-program (string-append out "/bin/gnome-session")
7082 `("PATH" ":" prefix (,(string-append glib "/bin"))))
7083 #t))))
7084
7085 #:configure-flags
7086 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7087 "-Dman=false" ; FIXME: disabled because of docbook validation error
7088 "-Dsystemd_journal=false")))
7089 (build-system meson-build-system)
7090 (native-inputs
7091 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7092 ("pkg-config" ,pkg-config)
7093 ("intltool" ,intltool)
7094 ("xsltproc" ,libxslt)
7095 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
7096 ("docbook-xsl" ,docbook-xsl)
7097 ("docbook-xml" ,docbook-xml)
7098 ("xmlto" ,xmlto)))
7099 (inputs
7100 `(("elogind" ,elogind)
7101 ("gnome-desktop" ,gnome-desktop)
7102 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7103 ("gtk+" ,gtk+)
7104 ("json-glib" ,json-glib)
7105 ("libsm" ,libsm)
7106 ("libxcomposite" ,libxcomposite)
7107 ("libxtst" ,libxtst)
7108 ("mesa" ,mesa)
7109 ("upower" ,upower)
7110 ("xtrans" ,xtrans)))
7111 (synopsis "Session manager for GNOME")
7112 (description
7113 "This package contains the GNOME session manager, as well as a
7114 configuration program to choose applications starting on login.")
7115 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7116 (license license:gpl2+)))
7117
7118 (define-public gjs
7119 (package
7120 (name "gjs")
7121 (version "1.58.3")
7122 (source (origin
7123 (method url-fetch)
7124 (uri (string-append "mirror://gnome/sources/" name "/"
7125 (version-major+minor version) "/"
7126 name "-" version ".tar.xz"))
7127 (sha256
7128 (base32
7129 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
7130 (build-system gnu-build-system)
7131 (arguments
7132 '(#:phases
7133 (modify-phases %standard-phases
7134 (add-before
7135 'check 'pre-check
7136 (lambda _
7137 ;; The test suite requires a running X server.
7138 (system "Xvfb :1 &")
7139 (setenv "DISPLAY" ":1")
7140
7141 ;; For the missing /etc/machine-id.
7142 (setenv "DBUS_FATAL_WARNINGS" "0")
7143
7144 ;; Our mozjs-38 package does not compile the required Intl API
7145 ;; support for these failing tests.
7146 (substitute* "installed-tests/js/testLocale.js"
7147 ((".*toBeDefined.*") "")
7148 ((".*expect\\(datestr\\).*") ""))
7149 (substitute* "installed-tests/scripts/testCommandLine.sh"
7150 (("Valentín") "")
7151 (("☭") ""))
7152 #t)))))
7153 (native-inputs
7154 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
7155 ("pkg-config" ,pkg-config)
7156 ("xmllint" ,libxml2)
7157 ;; For testing
7158 ("dbus-launch" ,dbus)
7159 ("dconf" ,dconf) ; required to properly store settings
7160 ("uuidgen" ,util-linux)
7161 ("xvfb" ,xorg-server-for-tests)))
7162 (propagated-inputs
7163 ;; These are all in the Requires.private field of gjs-1.0.pc.
7164 `(("cairo" ,cairo)
7165 ("gobject-introspection" ,gobject-introspection)
7166 ("mozjs" ,mozjs-60)))
7167 (inputs
7168 `(("gtk+" ,gtk+)
7169 ("readline" ,readline)))
7170 (synopsis "Javascript bindings for GNOME")
7171 (home-page "https://live.gnome.org/Gjs")
7172 (description
7173 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7174 javascript engine and the GObject introspection framework.")
7175 (license license:gpl2+)))
7176
7177 (define-public gedit
7178 (package
7179 (name "gedit")
7180 (version "3.34.1")
7181 (source (origin
7182 (method url-fetch)
7183 (uri (string-append "mirror://gnome/sources/" name "/"
7184 (version-major+minor version) "/"
7185 name "-" version ".tar.xz"))
7186 (sha256
7187 (base32
7188 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7189 (build-system meson-build-system)
7190 (arguments
7191 `(#:glib-or-gtk? #t
7192 #:configure-flags
7193 ;; Otherwise, the RUNPATH will lack the final path component.
7194 (list (string-append "-Dc_link_args=-Wl,-rpath="
7195 (assoc-ref %outputs "out") "/lib/gedit"))
7196
7197 ;; XXX: Generated .h files are sometimes used before being built.
7198 #:parallel-build? #f
7199
7200 #:phases
7201 (modify-phases %standard-phases
7202 (add-after 'unpack 'skip-gtk-update-icon-cache
7203 ;; Don't create 'icon-theme.cache'.
7204 (lambda _
7205 (substitute* "build-aux/meson/post_install.py"
7206 (("gtk-update-icon-cache") (which "true")))
7207 #t))
7208 (add-after 'unpack 'patch-libgd-fetch
7209 (lambda* (#:key inputs #:allow-other-keys)
7210 (let ((libgd (assoc-ref inputs "libgd")))
7211 ;; Calling git is unnecessary because libgd is fetched as a
7212 ;; native input to this package.
7213 (substitute* "meson.build"
7214 ((".*git.*") ""))
7215 (copy-recursively libgd "subprojects/libgd")
7216 #t)))
7217 (add-after 'install 'wrap-gedit
7218 (lambda* (#:key inputs outputs #:allow-other-keys)
7219 (let ((out (assoc-ref outputs "out"))
7220 (gtksourceview (assoc-ref inputs "gtksourceview"))
7221 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7222 (python-path (getenv "PYTHONPATH")))
7223 (wrap-program (string-append out "/bin/gedit")
7224 ;; For plugins.
7225 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7226 `("PYTHONPATH" ":" prefix (,python-path))
7227 ;; For language-specs.
7228 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7229 "/share")))))
7230 #t)))))
7231 (propagated-inputs
7232 `(("dconf" ,dconf)))
7233 (native-inputs
7234 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7235 ("intltool" ,intltool)
7236 ("itstool" ,itstool)
7237 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7238 ("gobject-introspection" ,gobject-introspection)
7239 ("libgd"
7240 ,(origin
7241 (method git-fetch)
7242 (uri (git-reference
7243 (url "https://gitlab.gnome.org/GNOME/libgd")
7244 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7245 (file-name (git-file-name "libgd" version))
7246 (sha256
7247 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7248 ("pkg-config" ,pkg-config)))
7249 (inputs
7250 `(("glib" ,glib)
7251 ("gspell" ,gspell)
7252 ("gtk+" ,gtk+)
7253 ("gtksourceview" ,gtksourceview)
7254 ("libpeas" ,libpeas)
7255 ("libxml2" ,libxml2)
7256 ("iso-codes" ,iso-codes)
7257 ("python-pygobject" ,python-pygobject)
7258 ("python" ,python)
7259 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7260 ("libx11" ,libx11)
7261 ("vala" ,vala)
7262 ("adwaita-icon-theme" ,adwaita-icon-theme)
7263 ("libsoup" ,libsoup)
7264 ("gnome-desktop" ,gnome-desktop)))
7265 (home-page "https://wiki.gnome.org/Apps/Gedit")
7266 (synopsis "GNOME text editor")
7267 (description "While aiming at simplicity and ease of use, gedit is a
7268 powerful general purpose text editor.")
7269 (license license:gpl2+)))
7270
7271 (define-public zenity
7272 (package
7273 (name "zenity")
7274 (version "3.32.0")
7275 (source (origin
7276 (method url-fetch)
7277 (uri (string-append "mirror://gnome/sources/zenity/"
7278 (version-major+minor version) "/"
7279 "zenity-" version ".tar.xz"))
7280 (sha256
7281 (base32
7282 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7283 (build-system gnu-build-system)
7284 (native-inputs
7285 `(("gettext" ,gettext-minimal)
7286 ("itstool" ,itstool)
7287 ("pkg-config" ,pkg-config)))
7288 (inputs
7289 `(("libnotify" ,libnotify)
7290 ("webkitgtk" ,webkitgtk)))
7291 (synopsis "Display graphical dialog boxes from shell scripts")
7292 (home-page "https://www.gnome.org")
7293 (description
7294 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7295 to display dialog boxes from the commandline and shell scripts.")
7296 (license license:lgpl2.0+)))
7297
7298 (define-public mutter
7299 (package
7300 (name "mutter")
7301 (version "3.34.2")
7302 (source (origin
7303 (method url-fetch)
7304 (uri (string-append "mirror://gnome/sources/" name "/"
7305 (version-major+minor version) "/"
7306 name "-" version ".tar.xz"))
7307 (sha256
7308 (base32
7309 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
7310 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7311 ;; versions of cogl and clutter. As a result, many of the inputs,
7312 ;; propagated-inputs, and configure flags used in cogl and clutter are
7313 ;; needed here as well.
7314 (build-system meson-build-system)
7315 (arguments
7316 '(;; XXX: All mutter tests fail with the following error:
7317 ;; Settings schema 'org.gnome.mutter' is not installed
7318 #:tests? #f
7319 #:glib-or-gtk? #t
7320 #:configure-flags
7321 ;; TODO: Enable profiler when Sysprof is packaged.
7322 (list "-Dprofiler=false"
7323 ;; Otherwise, the RUNPATH will lack the final path component.
7324 (string-append "-Dc_link_args=-Wl,-rpath="
7325 (assoc-ref %outputs "out") "/lib:"
7326 (assoc-ref %outputs "out") "/lib/mutter-5")
7327
7328 ;; The following flags are needed for the bundled clutter
7329 (string-append "-Dxwayland_path="
7330 (assoc-ref %build-inputs "xorg-server-xwayland")
7331 "/bin/Xwayland")
7332
7333 ;; the remaining flags are needed for the bundled cogl
7334 (string-append "-Dopengl_libname="
7335 (assoc-ref %build-inputs "mesa")
7336 "/lib/libGL.so"))
7337 #:phases (modify-phases %standard-phases
7338 (add-after 'unpack 'fix-build-with-mesa-20
7339 (lambda _
7340 ;; Mimic upstream commit a444a4c5f58ea516ad for
7341 ;; compatibility with Mesa 20. Remove for 3.36.
7342 (substitute* '("src/backends/meta-egl-ext.h"
7343 "src/backends/meta-egl.c"
7344 "src/backends/meta-egl.h")
7345 (("#include <EGL/eglext\\.h>" all)
7346 (string-append all "\n#include <EGL/eglmesaext.h>")))
7347 (substitute* "cogl/cogl/meson.build"
7348 (("#include <EGL/eglext\\.h>" all)
7349 (string-append all "\\n#include <EGL/eglmesaext.h>")))
7350 #t)))))
7351 (native-inputs
7352 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7353 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7354 ("gobject-introspection" ,gobject-introspection)
7355 ("intltool" ,intltool)
7356 ("pkg-config" ,pkg-config)
7357 ("xorg-server" ,xorg-server-for-tests)
7358 ;; For git build
7359 ("autoconf" ,autoconf)
7360 ("automake" ,automake)
7361 ("libtool" ,libtool)))
7362 (propagated-inputs
7363 `(;; libmutter.pc refers to these:
7364 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7365 ("gtk+" ,gtk+)
7366 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7367 ("atk" ,atk)
7368 ("cairo" ,cairo)
7369 ("gdk-pixbuf" ,gdk-pixbuf)
7370 ("glib" ,glib)
7371 ("json-glib" ,json-glib)
7372 ("libinput" ,libinput)
7373 ("libx11" ,libx11)
7374 ("libxcomposite" ,libxcomposite)
7375 ("libxdamage" ,libxdamage)
7376 ("libxext" ,libxext)
7377 ("libxfixes" ,libxfixes)
7378 ("libxkbcommon" ,libxkbcommon)
7379 ("libxrandr" ,libxrandr)
7380 ("mesa" ,mesa)
7381 ("pango" ,pango)
7382 ("udev" ,eudev)
7383 ("xinput" ,xinput)))
7384 (inputs
7385 `(("elogind" ,elogind)
7386 ("gnome-desktop" ,gnome-desktop)
7387 ("gnome-settings-daemon" ,gnome-settings-daemon)
7388 ("libcanberra-gtk" ,libcanberra)
7389 ("libgudev" ,libgudev)
7390 ("libice" ,libice)
7391 ("libsm" ,libsm)
7392 ("libwacom" ,libwacom)
7393 ("libxkbfile" ,libxkbfile)
7394 ("libxrandr" ,libxrandr)
7395 ("libxtst" ,libxtst)
7396 ("pipewire" ,pipewire)
7397 ("startup-notification" ,startup-notification)
7398 ("upower-glib" ,upower)
7399 ("xkeyboard-config" ,xkeyboard-config)
7400 ("xorg-server-xwayland" ,xorg-server-xwayland)
7401 ("zenity" ,zenity)))
7402 (synopsis "Window and compositing manager")
7403 (home-page "https://www.gnome.org")
7404 (description
7405 "Mutter is a window and compositing manager that displays and manages your
7406 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7407 Clutter toolkit with solid window-management logic inherited from the Metacity
7408 window manager.")
7409 (license license:gpl2+)))
7410
7411 (define-public gnome-online-accounts
7412 (package
7413 (name "gnome-online-accounts")
7414 (version "3.36.0")
7415 (source (origin
7416 (method url-fetch)
7417 (uri (string-append "mirror://gnome/sources/" name "/"
7418 (version-major+minor version) "/"
7419 name "-" version ".tar.xz"))
7420 (sha256
7421 (base32
7422 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7423 (outputs '("out" "lib"))
7424 (build-system glib-or-gtk-build-system)
7425 (arguments
7426 `(#:configure-flags
7427 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7428 #:phases
7429 (modify-phases %standard-phases
7430 (add-before 'configure 'patch-libgoa-output
7431 (lambda* (#:key outputs #:allow-other-keys)
7432 (let ((lib (assoc-ref outputs "lib")))
7433 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7434 (("@prefix@") lib)
7435 (("@exec_prefix@") lib)
7436 (("@libdir@") (string-append lib "/lib"))
7437 (("@includedir@") (string-append lib "/include"))
7438 (("@datadir@") (string-append lib "/share")))
7439 ;; Make sure gobject-introspection knows about the output
7440 ;; too (see <https://bugs.gnu.org/36535>).
7441 (setenv "outputs" "out lib")
7442 #t))))))
7443 (native-inputs
7444 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7445 ("gobject-introspection" ,gobject-introspection)
7446 ("intltool" ,intltool)
7447 ("pkg-config" ,pkg-config)
7448 ("vala" ,vala)
7449 ("xsltproc" ,libxslt)))
7450 (propagated-inputs
7451 `(("glib" ,glib) ; required by goa-1.0.pc
7452 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7453 (inputs
7454 `(("docbook-xsl" ,docbook-xsl)
7455 ("json-glib" ,json-glib)
7456 ("libsecret" ,libsecret)
7457 ("rest" ,rest)
7458 ("webkitgtk" ,webkitgtk)))
7459 (synopsis "Single sign-on framework for GNOME")
7460 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7461 (description
7462 "GNOME Online Accounts provides interfaces so that applications and
7463 libraries in GNOME can access the user's online accounts. It has providers for
7464 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7465 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7466 (license license:lgpl2.0+)))
7467
7468 (define-public evolution-data-server
7469 (package
7470 (name "evolution-data-server")
7471 (version "3.34.2")
7472 (source (origin
7473 (method url-fetch)
7474 (uri (string-append "mirror://gnome/sources/" name "/"
7475 (version-major+minor version) "/"
7476 name "-" version ".tar.xz"))
7477 (patches (search-patches "evolution-data-server-locales.patch"
7478 "evolution-data-server-libical-compat.patch"))
7479 (sha256
7480 (base32
7481 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7482 (build-system cmake-build-system)
7483 (arguments
7484 '(#:configure-flags
7485 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7486 (runpaths (map (lambda (s)
7487 (string-append lib "/evolution-data-server/" s))
7488 '("addressbook-backends" "calendar-backends"
7489 "camel-providers" "credential-modules"
7490 "registry-modules"))))
7491 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7492 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7493 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7494 "-DENABLE_VALA_BINDINGS=ON"
7495 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7496 (string-append lib "/evolution-data-server;")
7497 (string-join runpaths ";"))
7498 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7499 #:phases
7500 (modify-phases %standard-phases
7501 (add-after 'unpack 'disable-failing-tests
7502 (lambda _
7503 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7504 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7505 (delete-file-recursively "tests/book-migration")
7506 (substitute* "tests/CMakeLists.txt"
7507 (("add_subdirectory\\(book-migration\\)") ""))
7508 #t))
7509 (add-after 'unpack 'patch-paths
7510 (lambda _
7511 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7512 "tests/libedata-book/data-test-utils.c"
7513 "tests/libedata-book/test-book-cache-utils.c"
7514 "tests/libedata-cal/test-cal-cache-utils.c")
7515 (("/bin/rm") (which "rm")))
7516 #t))
7517 (add-before 'configure 'dont-override-rpath
7518 (lambda _
7519 (substitute* "CMakeLists.txt"
7520 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7521 ;; Remove it so the configure flag is respected.
7522 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7523 #t)))))
7524 (native-inputs
7525 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7526 ("gobject-introspection" ,gobject-introspection)
7527 ("gperf" ,gperf)
7528 ("intltool" ,intltool)
7529 ("pkg-config" ,pkg-config)
7530 ("vala" ,vala)
7531 ("python" ,python-wrapper)))
7532 (propagated-inputs
7533 ;; These are all in the Requires field of .pc files.
7534 `(("gtk+" ,gtk+)
7535 ("libical" ,libical)
7536 ("libsecret" ,libsecret)
7537 ("libsoup" ,libsoup)
7538 ("nss" ,nss)
7539 ("sqlite" ,sqlite)))
7540 (inputs
7541 `(("bdb" ,bdb)
7542 ("gcr" ,gcr)
7543 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7544 ("json-glib" ,json-glib)
7545 ("libcanberra" ,libcanberra)
7546 ("libgweather" ,libgweather)
7547 ("mit-krb5" ,mit-krb5)
7548 ("openldap" ,openldap)
7549 ("webkitgtk" ,webkitgtk)))
7550 (synopsis "Store address books and calendars")
7551 (home-page "https://wiki.gnome.org/Apps/Evolution")
7552 (description
7553 "This package provides a unified backend for programs that work with
7554 contacts, tasks, and calendar information. It was originally developed for
7555 Evolution (hence the name), but is now used by other packages as well.")
7556 (license license:lgpl2.0)))
7557
7558 (define-public caribou
7559 (package
7560 (name "caribou")
7561 (version "0.4.21")
7562 (source (origin
7563 (method url-fetch)
7564 (uri (string-append "mirror://gnome/sources/" name "/"
7565 (version-major+minor version) "/"
7566 name "-" version ".tar.xz"))
7567 (sha256
7568 (base32
7569 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7570 (build-system glib-or-gtk-build-system)
7571 (arguments
7572 '(#:phases
7573 (modify-phases %standard-phases
7574 (add-before
7575 'build 'pre-build
7576 (lambda* (#:key outputs #:allow-other-keys)
7577 (let ((out (assoc-ref outputs "out")))
7578 ;; Use absolute shared library path in Caribou-1.0.typelib.
7579 (substitute* "libcaribou/Makefile"
7580 (("--shared-library=libcaribou.so")
7581 (string-append "--shared-library="
7582 out "/lib/libcaribou.so")))
7583 #t)))
7584 (add-after 'install 'wrap-programs
7585 (lambda* (#:key outputs #:allow-other-keys)
7586 (let* ((out (assoc-ref outputs "out"))
7587 (python-path (getenv "PYTHONPATH"))
7588 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7589 (for-each
7590 (lambda (prog)
7591 (wrap-program prog
7592 `("PYTHONPATH" ":" prefix (,python-path))
7593 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7594 (list (string-append out "/bin/caribou-preferences")
7595 (string-append out "/libexec/antler-keyboard"))))
7596 #t)))))
7597 (native-inputs
7598 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7599 ("gobject-introspection" ,gobject-introspection)
7600 ("intltool" ,intltool)
7601 ("pkg-config" ,pkg-config)
7602 ("python" ,python)
7603 ("vala" ,vala)
7604 ("xsltproc" ,libxslt)))
7605 (propagated-inputs
7606 ;; caribou-1.0.pc refers to all these.
7607 `(("libgee" ,libgee)
7608 ("libxklavier" ,libxklavier)
7609 ("libxtst" ,libxtst)
7610 ("gtk+" ,gtk+)))
7611 (inputs
7612 `(("clutter" ,clutter)
7613 ("dconf" ,dconf)
7614 ("gtk+-2" ,gtk+-2)
7615 ("python-pygobject" ,python-pygobject)))
7616 (synopsis "Text entry and UI navigation application")
7617 (home-page "https://wiki.gnome.org/Projects/Caribou")
7618 (description
7619 "Caribou is an input assistive technology intended for switch and pointer
7620 users.")
7621 (license license:lgpl2.1)))
7622
7623 (define-public network-manager
7624 (package
7625 (name "network-manager")
7626 (version "1.24.0")
7627 (source (origin
7628 (method url-fetch)
7629 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7630 (version-major+minor version) "/"
7631 "NetworkManager-" version ".tar.xz"))
7632 (patches (search-patches "network-manager-plugin-path.patch"))
7633 (sha256
7634 (base32
7635 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7636 (modules '((guix build utils)))
7637 (snippet
7638 '(begin
7639 (substitute* "src/devices/wwan/nm-modem-manager.c"
7640 (("systemd") "elogind"))
7641 #t))))
7642 (build-system meson-build-system)
7643 (outputs '("out"
7644 "doc")) ; 8 MiB of gtk-doc HTML
7645 (arguments
7646 `(#:configure-flags
7647 (let ((out (assoc-ref %outputs "out"))
7648 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7649 "/sbin/dhclient")))
7650 (list
7651 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7652 ;; component.
7653 (string-append "-Dc_link_args=-Wl,-rpath="
7654 out "/lib:"
7655 out "/lib/NetworkManager/" ,version)
7656 "-Dsystemd_journal=false"
7657 "-Dsession_tracking=elogind"
7658 "-Dsuspend_resume=elogind"
7659 "-Dsystemdsystemunitdir=no"
7660 "-Dsession_tracking_consolekit=false"
7661 "-Ddhcpcd=no"
7662 "-Ddhcpcanon=no"
7663 "-Dcrypto=gnutls"
7664 "-Diwd=true"
7665 "-Dlibaudit=yes"
7666 "-Dqt=false"
7667 "-Ddocs=true"
7668 "--sysconfdir=/etc"
7669 "--localstatedir=/var"
7670 (string-append "-Dudev_dir="
7671 out "/lib/udev")
7672 (string-append "-Ddbus_conf_dir="
7673 out "/etc/dbus-1/system.d")
7674
7675 (string-append "-Ddhclient=" dhclient)))
7676 #:phases
7677 (modify-phases %standard-phases
7678 (add-before 'configure 'pre-configure
7679 (lambda _
7680 ;; These tests try to test aspects of network-manager's
7681 ;; functionality within restricted containers, but they don't
7682 ;; cope with being already in the Guix build jail as that jail
7683 ;; lacks some features that they would like to proxy over (like
7684 ;; a /sys mount).
7685 (substitute* "src/platform/tests/meson.build"
7686 ((".*test-address-linux.*") "")
7687 ((".*test-cleanup-linux.*") "")
7688 ((".*test-link-linux.*") "")
7689 ((".*test-route-linux.*") ""))
7690 (substitute* "src/devices/tests/meson.build"
7691 ((".*test-acd.*") "")
7692 ((".*test-lldp.*") ""))
7693 #t))
7694 (add-after 'unpack 'patch-docbook-xml
7695 (lambda* (#:key inputs #:allow-other-keys)
7696 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7697 "/xml/dtd/docbook")))
7698 (substitute* (find-files "." ".*\\.(xsl|xml)")
7699 (("http://.*/docbookx\\.dtd")
7700 (string-append xmldoc "/docbookx.dtd")))
7701 #t)))
7702 (add-before 'check 'pre-check
7703 (lambda _
7704 ;; For the missing /etc/machine-id.
7705 (setenv "DBUS_FATAL_WARNINGS" "0")
7706 #t))
7707 (add-before 'install 'no-polkit-magic
7708 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7709 (lambda _
7710 (setenv "PKEXEC_UID" "something")
7711 #t))
7712 (add-after 'install 'move-doc
7713 (lambda* (#:key outputs #:allow-other-keys)
7714 (let ((out (assoc-ref outputs "out"))
7715 (doc (assoc-ref outputs "doc")))
7716 (mkdir-p (string-append doc "/share"))
7717 (for-each (lambda (directory)
7718 (copy-recursively (string-append out directory)
7719 (string-append doc directory))
7720 (delete-file-recursively
7721 (string-append out directory)))
7722 '("/share/doc" "/share/gtk-doc"))
7723 #t))))))
7724 (propagated-inputs
7725 `(("glib" ,glib)))
7726 (native-inputs
7727 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7728 ("gtk-doc" ,gtk-doc)
7729 ("gobject-introspection" ,gobject-introspection)
7730 ("docbook-xml" ,docbook-xml)
7731 ("docbook-xsl" ,docbook-xsl)
7732 ("intltool" ,intltool)
7733 ("libxslt" ,libxslt)
7734 ("libxml2" ,libxml2)
7735 ("pkg-config" ,pkg-config)
7736 ("vala" ,vala)
7737 ;; For testing.
7738 ("python" ,python-wrapper)
7739 ("python-dbus" ,python-dbus)
7740 ("python-pygobject" ,python-pygobject)))
7741 (inputs
7742 `(("curl" ,curl)
7743 ("cyrus-sasl" ,cyrus-sasl)
7744 ("dbus-glib" ,dbus-glib)
7745 ("dnsmasq" ,dnsmasq)
7746 ("eudev" ,eudev)
7747 ("gnutls" ,gnutls)
7748 ("iptables" ,iptables)
7749 ("isc-dhcp" ,isc-dhcp)
7750 ("iwd" ,iwd) ; wpa_supplicant alternative
7751 ("jansson" ,jansson)
7752 ("libaudit" ,audit)
7753 ("libgcrypt" ,libgcrypt)
7754 ("libgudev" ,libgudev)
7755 ("libndp" ,libndp)
7756 ("libnl" ,libnl)
7757 ("libsoup" ,libsoup)
7758 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7759 ("modem-manager" ,modem-manager)
7760 ("newt" ,newt) ;for the 'nmtui' console interface
7761 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7762 ("polkit" ,polkit)
7763 ("ppp" ,ppp)
7764 ("readline" ,readline)
7765 ("util-linux" ,util-linux)
7766 ("elogind" ,elogind)))
7767 (synopsis "Network connection manager")
7768 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7769 (description
7770 "NetworkManager is a system network service that manages your network
7771 devices and connections, attempting to keep active network connectivity when
7772 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7773 devices, and provides VPN integration with a variety of different VPN
7774 services.")
7775 ;; “This NetworkManager project consists of the daemon, client tools, and
7776 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7777 ;; GPL-2.0+.”
7778 (license (list license:gpl2+
7779 license:lgpl2.1+))
7780 (properties '((upstream-name . "NetworkManager")))))
7781
7782 (define-public network-manager-openvpn
7783 (package
7784 (name "network-manager-openvpn")
7785 (version "1.8.12")
7786 (source (origin
7787 (method url-fetch)
7788 (uri (string-append
7789 "mirror://gnome/sources/NetworkManager-openvpn/"
7790 (version-major+minor version)
7791 "/NetworkManager-openvpn-" version ".tar.xz"))
7792 (sha256
7793 (base32
7794 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7795 (build-system gnu-build-system)
7796 (arguments
7797 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7798 #:phases
7799 (modify-phases %standard-phases
7800 (add-after 'configure 'patch-path
7801 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7802 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7803 "/sbin/openvpn"))
7804 (modprobe (string-append (assoc-ref inputs "kmod")
7805 "/bin/modprobe"))
7806 (pretty-ovpn (string-append "\"" ovpn "\"")))
7807 (for-each
7808 (lambda (file)
7809 (substitute* file
7810 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7811 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7812 (("\"/sbin/openvpn\"") pretty-ovpn)
7813 (("/sbin/modprobe") modprobe)))
7814 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7815 #t)))))
7816 (native-inputs
7817 `(("pkg-config" ,pkg-config)
7818 ("intltool" ,intltool)))
7819 (inputs
7820 `(("gtk+" ,gtk+)
7821 ("kmod" ,kmod)
7822 ("openvpn" ,openvpn)
7823 ("network-manager" ,network-manager)
7824 ("libnma" ,libnma)
7825 ("libsecret" ,libsecret)))
7826 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7827 (synopsis "OpenVPN plug-in for NetworkManager")
7828 (description
7829 "This extension of NetworkManager allows it to take care of connections
7830 to virtual private networks (VPNs) via OpenVPN.")
7831 (license license:gpl2+)
7832 (properties `((upstream-name . "NetworkManager-openvpn")))))
7833
7834 (define-public network-manager-vpnc
7835 (package
7836 (name "network-manager-vpnc")
7837 (version "1.2.6")
7838 (source (origin
7839 (method url-fetch)
7840 (uri (string-append
7841 "mirror://gnome/sources/NetworkManager-vpnc/"
7842 (version-major+minor version)
7843 "/NetworkManager-vpnc-" version ".tar.xz"))
7844 (sha256
7845 (base32
7846 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7847 (build-system gnu-build-system)
7848 (arguments
7849 `(#:configure-flags '("--enable-absolute-paths"
7850 "--localstatedir=/var"
7851 ;; libnm-glib has been removed from network-manager
7852 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7853 "--with-libnm-glib=no")
7854 #:phases
7855 (modify-phases %standard-phases
7856 (add-after 'configure 'patch-path
7857 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7858 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7859 "/sbin/vpnc"))
7860 (modprobe (string-append (assoc-ref inputs "kmod")
7861 "/bin/modprobe"))
7862 (pretty-ovpn (string-append "\"" vpnc "\"")))
7863 (substitute* "src/nm-vpnc-service.c"
7864 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7865 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7866 (("\"/sbin/vpnc\"") pretty-ovpn)
7867 (("/sbin/modprobe") modprobe)))
7868 #t)))))
7869 (native-inputs
7870 `(("pkg-config" ,pkg-config)
7871 ("intltool" ,intltool)))
7872 (inputs
7873 `(("gtk+" ,gtk+)
7874 ("kmod" ,kmod)
7875 ("vpnc" ,vpnc)
7876 ("network-manager" ,network-manager)
7877 ("libnma" ,libnma)
7878 ("libsecret" ,libsecret)))
7879 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7880 (synopsis "VPNC plug-in for NetworkManager")
7881 (description
7882 "Support for configuring virtual private networks based on VPNC.
7883 Compatible with Cisco VPN concentrators configured to use IPsec.")
7884 (license license:gpl2+)
7885 (properties `((upstream-name . "NetworkManager-vpnc")))))
7886
7887 (define-public network-manager-openconnect
7888 (package
7889 (name "network-manager-openconnect")
7890 (version "1.2.6")
7891 (source (origin
7892 (method url-fetch)
7893 (uri (string-append
7894 "mirror://gnome/sources/NetworkManager-openconnect/"
7895 (version-major+minor version)
7896 "/NetworkManager-openconnect-" version ".tar.xz"))
7897 (sha256
7898 (base32
7899 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7900 (build-system gnu-build-system)
7901 (arguments
7902 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7903 #:phases
7904 (modify-phases %standard-phases
7905 (add-after 'configure 'patch-path
7906 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7907 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7908 "/sbin/openconnect"))
7909 (modprobe (string-append (assoc-ref inputs "kmod")
7910 "/bin/modprobe"))
7911 (pretty-ovpn (string-append "\"" openconnect "\"")))
7912 (substitute* "src/nm-openconnect-service.c"
7913 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7914 (("/sbin/modprobe") modprobe)))
7915 #t)))))
7916 (native-inputs
7917 `(("intltool" ,intltool)
7918 ("libnma" ,libnma)
7919 ("pkg-config" ,pkg-config)))
7920 (inputs
7921 `(("gcr" ,gcr)
7922 ("gtk+" ,gtk+)
7923 ("kmod" ,kmod)
7924 ("libsecret" ,libsecret)
7925 ("libxml2" ,libxml2)
7926 ("lz4" ,lz4)
7927 ("network-manager" ,network-manager)
7928 ("openconnect" ,openconnect)))
7929 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7930 (synopsis "OpenConnect plug-in for NetworkManager")
7931 (description
7932 "This extension of NetworkManager allows it to take care of connections
7933 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7934 Cisco's AnyConnect SSL VPN.")
7935 (license license:gpl2+)
7936 (properties `((upstream-name . "NetworkManager-openconnect")
7937
7938 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7939 ;; file refers to account "nm-openconnect". Specify it here
7940 ;; so that 'network-manager-service-type' creates it.
7941 (user-accounts . ("nm-openconnect"))))))
7942
7943 (define-public mobile-broadband-provider-info
7944 (package
7945 (name "mobile-broadband-provider-info")
7946 (version "20190116")
7947 (source (origin
7948 (method url-fetch)
7949 (uri (string-append
7950 "mirror://gnome/sources/"
7951 "mobile-broadband-provider-info/" version "/"
7952 "mobile-broadband-provider-info-" version ".tar.xz"))
7953 (sha256
7954 (base32
7955 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7956 (build-system gnu-build-system)
7957 (arguments
7958 `(#:tests? #f)) ; no tests
7959 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7960 (synopsis "Database of broadband connection configuration")
7961 (description "Database of broadband connection configuration.")
7962 (license license:public-domain)))
7963
7964 (define-public network-manager-applet
7965 (package
7966 (name "network-manager-applet")
7967 (version "1.16.0")
7968 (source (origin
7969 (method url-fetch)
7970 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7971 (version-major+minor version) "/"
7972 "network-manager-applet-" version ".tar.xz"))
7973 (sha256
7974 (base32
7975 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
7976 (build-system meson-build-system)
7977 (arguments
7978 '(#:glib-or-gtk? #t))
7979 (native-inputs
7980 `(("intltool" ,intltool)
7981 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
7982 ("gobject-introspection" ,gobject-introspection)
7983 ("gtk-doc" ,gtk-doc)
7984 ("pkg-config" ,pkg-config)))
7985 (propagated-inputs
7986 ;; libnm-gtk.pc refers to all these.
7987 `(("dbus-glib" ,dbus-glib)
7988 ("gtk+" ,gtk+)
7989 ("network-manager" ,network-manager)
7990 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7991 ("libnma" ,libnma)))
7992 (inputs
7993 `(("gcr" ,gcr)
7994 ("libgudev" ,libgudev)
7995 ("libnotify" ,libnotify)
7996 ("libsecret" ,libsecret)
7997 ("libselinux" ,libselinux)
7998 ("jansson" ,jansson) ; for team support
7999 ("modem-manager" ,modem-manager)))
8000 (synopsis "Applet for managing network connections")
8001 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8002 (description
8003 "This package contains a systray applet for NetworkManager. It displays
8004 the available networks and allows users to easily switch between them.")
8005 (license license:gpl2+)))
8006
8007 (define-public libxml++
8008 (package
8009 (name "libxml++")
8010 (version "3.0.1")
8011 (source (origin
8012 (method url-fetch)
8013 (uri (string-append "mirror://gnome/sources/" name "/"
8014 (version-major+minor version) "/"
8015 name "-" version ".tar.xz"))
8016 (sha256
8017 (base32
8018 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
8019 (build-system gnu-build-system)
8020 ;; libxml++-3.0.pc refers to all these.
8021 (propagated-inputs
8022 `(("libxml2" ,libxml2)
8023 ("glibmm" ,glibmm)))
8024 (native-inputs
8025 `(("perl" ,perl)
8026 ("pkg-config" ,pkg-config)))
8027 (home-page "http://libxmlplusplus.sourceforge.net/")
8028 (synopsis "C++ wrapper for XML parser library libxml2")
8029 (description
8030 "This package provides a C++ wrapper for the XML parser library
8031 libxml2.")
8032 (license license:lgpl2.1+)))
8033
8034 (define-public libxml++-2
8035 (package
8036 (inherit libxml++)
8037 (name "libxml++")
8038 (version "2.40.1")
8039 (source (origin
8040 (method url-fetch)
8041 (uri (string-append "mirror://gnome/sources/" name "/"
8042 (version-major+minor version) "/"
8043 name "-" version ".tar.xz"))
8044 (sha256
8045 (base32
8046 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
8047
8048 (define-public gdm
8049 (package
8050 (name "gdm")
8051 (version "3.34.1")
8052 (source (origin
8053 (method url-fetch)
8054 (uri (string-append "mirror://gnome/sources/" name "/"
8055 (version-major+minor version) "/"
8056 name "-" version ".tar.xz"))
8057 (sha256
8058 (base32
8059 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
8060 (patches (search-patches "gdm-default-session.patch"))))
8061 (build-system glib-or-gtk-build-system)
8062 (arguments
8063 '(#:configure-flags
8064 `("--without-plymouth"
8065 "--disable-systemd-journal"
8066
8067 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8068 ;; instead of having to replace it (i.e., stopping the mingetty
8069 ;; service for TTY 1 before starting GDM).
8070 "--with-initial-vt=7"
8071
8072 ;; Use '/etc/environment' for locale settings instead of the
8073 ;; systemd-specific '/etc/locale.conf'.
8074 "--with-lang-file=/etc/environment"
8075
8076 ,(string-append "--with-udevdir="
8077 (assoc-ref %outputs "out") "/lib/udev")
8078
8079 "--localstatedir=/var"
8080 ,(string-append "--with-default-path="
8081 (string-join '("/run/setuid-programs"
8082 "/run/current-system/profile/bin"
8083 "/run/current-system/profile/sbin")
8084 ":"))
8085 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8086 ;; XDG_DATA_DIRS so that it finds its schemas.
8087 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
8088 #:phases
8089 (modify-phases %standard-phases
8090 (add-before
8091 'configure 'pre-configure
8092 (lambda* (#:key inputs outputs #:allow-other-keys)
8093 ;; We don't have <systemd/sd-daemon.h>.
8094 (substitute* '("common/gdm-log.c"
8095 "daemon/gdm-server.c"
8096 "daemon/gdm-session-worker.c"
8097 "daemon/gdm-session-worker-job.c")
8098 (("#include <systemd/sd-daemon\\.h>") ""))
8099 ;; Use elogind for sd-login.
8100 (substitute* '("common/gdm-common.c"
8101 "daemon/gdm-local-display-factory.c"
8102 "daemon/gdm-manager.c"
8103 "libgdm/gdm-user-switching.c")
8104 (("#include <systemd/sd-login\\.h>")
8105 "#include <elogind/sd-login.h>"))
8106 ;; Check for elogind.
8107 (substitute* '("configure")
8108 (("libsystemd")
8109 "libelogind"))
8110 ;; Look for system-installed sessions in
8111 ;; /run/current-system/profile/share.
8112 (substitute* '("libgdm/gdm-sessions.c"
8113 "daemon/gdm-session.c"
8114 "daemon/gdm-display.c"
8115 "daemon/gdm-launch-environment.c")
8116 (("DATADIR \"/x")
8117 "\"/run/current-system/profile/share/x")
8118 (("DATADIR \"/wayland")
8119 "\"/run/current-system/profile/share/wayland")
8120 (("DATADIR \"/gnome")
8121 "\"/run/current-system/profile/share/gnome"))
8122 (let ((propagate '("GDM_CUSTOM_CONF"
8123 "GDM_DBUS_DAEMON"
8124 "GDM_X_SERVER"
8125 "GDM_X_SESSION"
8126 ;; XXX: Remove this once GNOME Shell is
8127 ;; a dependency of GDM.
8128 "XDG_DATA_DIRS")))
8129 (substitute* "daemon/gdm-session.c"
8130 (("set_up_session_environment \\(self\\);")
8131 (apply string-append
8132 "set_up_session_environment (self);\n"
8133 (map (lambda (name)
8134 (string-append
8135 "gdm_session_set_environment_variable "
8136 "(self, \"" name "\","
8137 "g_getenv (\"" name "\"));\n"))
8138 propagate)))))
8139 ;; Find the configuration file using an environment variable.
8140 (substitute* '("common/gdm-settings.c")
8141 (("GDM_CUSTOM_CONF")
8142 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8143 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8144 " : GDM_CUSTOM_CONF)")))
8145 ;; Use service-supplied path to X.
8146 (substitute* '("daemon/gdm-server.c")
8147 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8148 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8149 (substitute* '("daemon/gdm-wayland-session.c"
8150 "daemon/gdm-x-session.c")
8151 (("\"dbus-daemon\"")
8152 "g_getenv (\"GDM_DBUS_DAEMON\")")
8153 (("X_SERVER")
8154 "g_getenv (\"GDM_X_SERVER\")")
8155 (("GDMCONFDIR \"/Xsession\"")
8156 "g_getenv (\"GDM_X_SESSION\")"))
8157 ;; Use an absolute path for GNOME Session.
8158 (substitute* "daemon/gdm-launch-environment.c"
8159 (("\"gnome-session\"")
8160 (string-append "\"" (assoc-ref inputs "gnome-session")
8161 "/bin/gnome-session\"")))
8162 ;; Do not automatically select the placeholder session.
8163 (substitute* "daemon/gdm-session.c"
8164 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8165 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8166 "(g_strcmp0(search_dirs[i], \""
8167 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
8168 "\") == 0 && "
8169 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8170 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8171 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
8172 #t))
8173 ;; GDM requires that there be at least one desktop entry
8174 ;; file. This phase installs a hidden one that simply
8175 ;; fails. This enables users to use GDM with a
8176 ;; '~/.xsession' script with no other desktop entry files.
8177 ;; See <https://bugs.gnu.org/35068>.
8178 (add-after 'install 'install-placeholder-desktop-entry
8179 (lambda* (#:key inputs outputs #:allow-other-keys)
8180 (let* ((out (assoc-ref outputs "out"))
8181 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8182 (fail (string-append sessions "/fail.desktop")))
8183 (mkdir-p sessions)
8184 (with-output-to-file fail
8185 (lambda ()
8186 (for-each
8187 display
8188 '("[Desktop Entry]\n"
8189 "Encoding=UTF-8\n"
8190 "Type=Application\n"
8191 "Name=Fail\n"
8192 "Comment=This session fails immediately.\n"
8193 "NoDisplay=true\n"
8194 "Exec=false\n"))))
8195 #t)))
8196 ;; GDM needs GNOME Session to run these applications. We link
8197 ;; their autostart files in `share/gdm/greeter/autostart'
8198 ;; because GDM explicitly tells GNOME Session to look there.
8199 ;;
8200 ;; XXX: GNOME Shell should be linked here too, but currently
8201 ;; GNOME Shell depends on GDM.
8202 (add-after 'install 'link-autostart-files
8203 (lambda* (#:key inputs outputs #:allow-other-keys)
8204 (let* ((out (assoc-ref outputs "out"))
8205 (autostart (string-append out "/share/gdm/"
8206 "greeter/autostart"))
8207 (settings (assoc-ref inputs "gnome-settings-daemon")))
8208 (mkdir-p autostart)
8209 (with-directory-excursion autostart
8210 (for-each (lambda (desktop)
8211 (symlink desktop (basename desktop)))
8212 (find-files (string-append settings "/etc/xdg"))))
8213 #t))))))
8214 (native-inputs
8215 `(("dconf" ,dconf)
8216 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8217 ("gobject-introspection" ,gobject-introspection)
8218 ("intltool" ,intltool)
8219 ("itstool" ,itstool)
8220 ("pkg-config" ,pkg-config)
8221 ("xmllint" ,libxml2)))
8222 (inputs
8223 `(("accountsservice" ,accountsservice)
8224 ("check" ,check-0.14) ;for testing
8225 ("elogind" ,elogind)
8226 ("gnome-session" ,gnome-session)
8227 ("gnome-settings-daemon" ,gnome-settings-daemon)
8228 ("gtk+" ,gtk+)
8229 ("iso-codes" ,iso-codes)
8230 ("libcanberra" ,libcanberra)
8231 ("linux-pam" ,linux-pam)))
8232 (synopsis "Display manager for GNOME")
8233 (home-page "https://wiki.gnome.org/Projects/GDM/")
8234 (description
8235 "GNOME Display Manager is a system service that is responsible for
8236 providing graphical log-ins and managing local and remote displays.")
8237 (license license:gpl2+)))
8238
8239 (define-public libgtop
8240 (package
8241 (name "libgtop")
8242 (version "2.40.0")
8243 (source (origin
8244 (method url-fetch)
8245 (uri (string-append "mirror://gnome/sources/libgtop/"
8246 (version-major+minor version) "/"
8247 "libgtop-" version ".tar.xz"))
8248 (sha256
8249 (base32
8250 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8251 (build-system gnu-build-system)
8252 (native-inputs
8253 `(("gobject-introspection" ,gobject-introspection)
8254 ("intltool" ,intltool)
8255 ("perl" ,perl)
8256 ("pkg-config" ,pkg-config)))
8257 (propagated-inputs
8258 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8259 (synopsis "Portable system access library")
8260 (home-page "https://www.gnome.org/")
8261 (description
8262 "LibGTop is a library to get system specific data such as CPU and memory
8263 usage and information about running processes.")
8264 (license license:gpl2+)))
8265
8266 (define-public gnome-bluetooth
8267 (package
8268 (name "gnome-bluetooth")
8269 (version "3.34.2")
8270 (source (origin
8271 (method url-fetch)
8272 (uri (string-append "mirror://gnome/sources/" name "/"
8273 (version-major+minor version) "/"
8274 name "-" version ".tar.xz"))
8275 (sha256
8276 (base32
8277 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8278 (build-system meson-build-system)
8279 (native-inputs
8280 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8281 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8282 ("gobject-introspection" ,gobject-introspection)
8283 ("intltool" ,intltool)
8284 ("pkg-config" ,pkg-config)
8285 ("xmllint" ,libxml2)))
8286 (propagated-inputs
8287 ;; gnome-bluetooth-1.0.pc refers to all these.
8288 `(("glib" ,glib)
8289 ("gtk+" ,gtk+)))
8290 (inputs
8291 `(("eudev" ,eudev)
8292 ("libcanberra" ,libcanberra)
8293 ("libnotify" ,libnotify)))
8294 (synopsis "GNOME Bluetooth subsystem")
8295 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8296 (description
8297 "This package contains tools for managing and manipulating Bluetooth
8298 devices using the GNOME desktop.")
8299 (license license:lgpl2.1+)))
8300
8301 (define-public gnome-control-center
8302 (package
8303 (name "gnome-control-center")
8304 (version "3.34.2")
8305 (source (origin
8306 (method url-fetch)
8307 (uri (string-append "mirror://gnome/sources/" name "/"
8308 (version-major+minor version) "/"
8309 name "-" version ".tar.xz"))
8310 (sha256
8311 (base32
8312 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8313 (build-system meson-build-system)
8314 (arguments
8315 '(#:glib-or-gtk? #t
8316 #:configure-flags
8317 (list "-Dcheese=false"
8318 (string-append "-Dgnome_session_libexecdir="
8319 (assoc-ref %build-inputs "gnome-session")
8320 "/libexec"))
8321 #:phases
8322 (modify-phases %standard-phases
8323 (add-before 'configure 'patch-paths
8324 (lambda* (#:key inputs #:allow-other-keys)
8325 (let ((libc (assoc-ref inputs "libc"))
8326 (tzdata (assoc-ref inputs "tzdata"))
8327 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8328 (nm-applet (assoc-ref inputs "network-manager-applet"))
8329 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8330 (substitute* "panels/datetime/tz.h"
8331 (("/usr/share/zoneinfo/zone.tab")
8332 (string-append tzdata "/share/zoneinfo/zone.tab")))
8333 (substitute* "tests/datetime/test-endianess.c"
8334 (("/usr/share/locale")
8335 (string-append libc "/share/locale")))
8336 (substitute* "panels/region/cc-region-panel.c"
8337 (("\"gkbd-keyboard-display")
8338 (string-append "\"" libgnomekbd
8339 "/bin/gkbd-keyboard-display")))
8340 (substitute* '("panels/network/net-device-wifi.c"
8341 "panels/network/net-device.c"
8342 "panels/network/connection-editor/net-connection-editor.c")
8343 (("\"nm-connection-editor")
8344 (string-append "\"" nm-applet
8345 "/bin/nm-connection-editor")))
8346 (substitute* '("panels/user-accounts/run-passwd.c")
8347 (("/usr/bin/passwd")
8348 "/run/setuid-programs/passwd"))
8349 (substitute* "panels/info/cc-info-overview-panel.c"
8350 (("DATADIR \"/gnome/gnome-version.xml\"")
8351 (string-append "\"" gnome-desktop
8352 "/share/gnome/gnome-version.xml\"")))
8353 #t)))
8354 (add-after 'unpack 'skip-gtk-update-icon-cache
8355 ;; Don't create 'icon-theme.cache'.
8356 (lambda _
8357 (substitute* "build-aux/meson/meson_post_install.py"
8358 (("gtk-update-icon-cache") (which "true")))
8359 #t)))))
8360 (native-inputs
8361 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8362 ("intltool" ,intltool)
8363 ("pkg-config" ,pkg-config)
8364 ("xsltproc" ,libxslt)
8365 ;; For tests
8366 ("hicolor-icon-theme" ,hicolor-icon-theme)
8367 ("python-dbusmock" ,python-dbusmock)
8368 ("xorg-server" ,xorg-server-for-tests)))
8369 (inputs
8370 `(("accountsservice" ,accountsservice)
8371 ("clutter-gtk" ,clutter-gtk)
8372 ("colord-gtk" ,colord-gtk)
8373 ("cups" ,cups)
8374 ("dconf" ,dconf)
8375 ("docbook-xsl" ,docbook-xsl)
8376 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8377 ("gnome-bluetooth" ,gnome-bluetooth)
8378 ("gnome-desktop" ,gnome-desktop)
8379 ("gnome-online-accounts" ,gnome-online-accounts)
8380 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8381 ("gnome-session" ,gnome-session)
8382 ("gnome-settings-daemon" ,gnome-settings-daemon)
8383 ("grilo" ,grilo)
8384 ("gsound" ,gsound)
8385 ("ibus" ,ibus)
8386 ("libcanberra" ,libcanberra)
8387 ("libgnomekbd" ,libgnomekbd)
8388 ("libgudev" ,libgudev)
8389 ("libgtop" ,libgtop)
8390 ("libnma" ,libnma)
8391 ("libpwquality" ,libpwquality)
8392 ("libsecret" ,libsecret)
8393 ("libsoup" ,libsoup)
8394 ("libxml2" ,libxml2)
8395 ("libwacom" ,libwacom)
8396 ("mesa" ,mesa)
8397 ("mit-krb5" ,mit-krb5)
8398 ("modem-manager" ,modem-manager)
8399 ("network-manager-applet" ,network-manager-applet)
8400 ("polkit" ,polkit)
8401 ("pulseaudio" ,pulseaudio)
8402 ("smbclient" ,samba)
8403 ("tzdata" ,tzdata)
8404 ("udisks" ,udisks)
8405 ("upower" ,upower)))
8406 (synopsis "Utilities to configure the GNOME desktop")
8407 (home-page "https://www.gnome.org/")
8408 (description
8409 "This package contains configuration applets for the GNOME desktop,
8410 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8411 properties, sound setup, desktop theme and background, user interface
8412 properties, screen resolution, and other GNOME parameters.")
8413 (license license:gpl2+)))
8414
8415 (define-public gnome-shell
8416 (package
8417 (name "gnome-shell")
8418 (version "3.34.2")
8419 (source (origin
8420 (method url-fetch)
8421 (uri (string-append "mirror://gnome/sources/" name "/"
8422 (version-major+minor version) "/"
8423 name "-" version ".tar.xz"))
8424 (sha256
8425 (base32
8426 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
8427 (patches (search-patches "gnome-shell-theme.patch"
8428 "gnome-shell-disable-test.patch"))
8429 (modules '((guix build utils)))
8430 (snippet
8431 #~(begin
8432 ;; Copy images for use on the GDM log-in screen.
8433 (copy-file #$(file-append %artwork-repository
8434 "/slim/0.x/background.png")
8435 "data/theme/guix-background.png")
8436 (copy-file #$(file-append %artwork-repository
8437 "/logo/Guix-horizontal-white.svg")
8438 "data/theme/guix-logo.svg")
8439 #t))))
8440 (build-system meson-build-system)
8441 (arguments
8442 `(#:glib-or-gtk? #t
8443 #:disallowed-references ((,glib "bin")
8444 ,inkscape ,libxslt
8445 ,ruby-sass)
8446 #:configure-flags
8447 (list "-Dsystemd=false"
8448 ;; Otherwise, the RUNPATH will lack the final path component.
8449 (string-append "-Dc_link_args=-Wl,-rpath="
8450 (assoc-ref %outputs "out")
8451 "/lib/gnome-shell"))
8452
8453 #:modules ((guix build meson-build-system)
8454 (guix build utils)
8455 (srfi srfi-1))
8456
8457 #:phases
8458 (modify-phases %standard-phases
8459 (add-after 'unpack 'fix-keysdir
8460 (lambda* (#:key outputs #:allow-other-keys)
8461 (let* ((out (assoc-ref outputs "out"))
8462 (keysdir (string-append
8463 out "/share/gnome-control-center/keybindings")))
8464 (substitute* "meson.build"
8465 (("keysdir =.*")
8466 (string-append "keysdir = '" keysdir "'\n")))
8467 #t)))
8468 (add-before 'configure 'convert-logo-to-png
8469 (lambda* (#:key inputs #:allow-other-keys)
8470 ;; Convert the logo from SVG to PNG.
8471 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8472 "data/theme/guix-logo.svg")))
8473 (add-before 'configure 'record-absolute-file-names
8474 (lambda* (#:key inputs #:allow-other-keys)
8475 (substitute* "js/misc/ibusManager.js"
8476 (("'ibus-daemon'")
8477 (string-append "'" (assoc-ref inputs "ibus")
8478 "/bin/ibus-daemon'")))
8479 (substitute* "js/ui/status/keyboard.js"
8480 (("'gkbd-keyboard-display'")
8481 (string-append "'" (assoc-ref inputs "libgnomekbd")
8482 "/bin/gkbd-keyboard-display'")))
8483 #t))
8484 (add-before 'check 'pre-check
8485 (lambda* (#:key inputs #:allow-other-keys)
8486 ;; Tests require a running X server.
8487 (system "Xvfb :1 &")
8488 (setenv "DISPLAY" ":1")
8489 #t))
8490 (add-after 'install 'wrap-programs
8491 (lambda* (#:key inputs outputs #:allow-other-keys)
8492 (let ((out (assoc-ref outputs "out"))
8493 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8494 (python-path (getenv "PYTHONPATH")))
8495 (wrap-program (string-append out "/bin/gnome-shell")
8496 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8497 ;; FIXME: gnome-shell loads these libraries with unqualified
8498 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8499 ;; alternative might be to patch gnome-shell.
8500 `("LD_LIBRARY_PATH" ":" prefix
8501 ,(map (lambda (pkg)
8502 (string-append (assoc-ref inputs pkg) "/lib"))
8503 '("gdk-pixbuf"
8504 "gnome-bluetooth" "librsvg" "libgweather"))))
8505 (for-each
8506 (lambda (prog)
8507 (wrap-program (string-append out "/bin/" prog)
8508 `("PYTHONPATH" ":" prefix (,python-path))
8509 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8510 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8511 #t)))
8512 (replace 'glib-or-gtk-wrap
8513 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8514 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8515 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8516 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8517 ;; phase. Fix that since we don't need these.
8518 (wrap #:inputs (fold alist-delete inputs
8519 '("inkscape" "intltool" "glib:bin"))
8520 #:outputs outputs)))))))
8521 (native-inputs
8522 `(("asciidoc" ,asciidoc)
8523 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8524 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8525 ("gobject-introspection" ,gobject-introspection)
8526 ("inkscape" ,inkscape)
8527 ("intltool" ,intltool)
8528 ("pkg-config" ,pkg-config)
8529 ("python" ,python)
8530 ("ruby-sass" ,ruby-sass)
8531 ("sassc" ,sassc)
8532 ("xsltproc" ,libxslt)
8533 ;; For tests
8534 ("xorg-server" ,xorg-server-for-tests)))
8535 (inputs
8536 `(("accountsservice" ,accountsservice)
8537 ("caribou" ,caribou)
8538 ("docbook-xsl" ,docbook-xsl)
8539 ("evolution-data-server" ,evolution-data-server)
8540 ("gcr" ,gcr)
8541 ("gdm" ,gdm)
8542 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8543 ("gjs" ,gjs)
8544 ("gnome-autoar" ,gnome-autoar)
8545 ("gnome-bluetooth" ,gnome-bluetooth)
8546 ("gnome-desktop" ,gnome-desktop)
8547 ("gnome-settings-daemon" ,gnome-settings-daemon)
8548 ("gst-plugins-base" ,gst-plugins-base)
8549 ("ibus" ,ibus)
8550 ("libcanberra" ,libcanberra)
8551 ("libcroco" ,libcroco)
8552 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8553 ("libgweather" ,libgweather)
8554 ("libnma" ,libnma)
8555 ("libsoup" ,libsoup)
8556 ("mesa-headers" ,mesa-headers)
8557 ("mutter" ,mutter)
8558 ("network-manager-applet" ,network-manager-applet)
8559 ("polkit" ,polkit)
8560 ("pulseaudio" ,pulseaudio)
8561 ("python-pygobject" ,python-pygobject)
8562 ("startup-notification" ,startup-notification)
8563 ("telepathy-logger" ,telepathy-logger)
8564 ("upower" ,upower)
8565 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8566 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8567 ("librsvg" ,librsvg)
8568 ("geoclue" ,geoclue)))
8569 (synopsis "Desktop shell for GNOME")
8570 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8571 (description
8572 "GNOME Shell provides core user interface functions for the GNOME desktop,
8573 like switching to windows and launching applications.")
8574 (license license:gpl2+)))
8575
8576 (define-public gtk-vnc
8577 (package
8578 (name "gtk-vnc")
8579 (version "1.0.0")
8580 (source
8581 (origin
8582 (method url-fetch)
8583 (uri
8584 (string-append "mirror://gnome/sources/" name "/"
8585 (version-major+minor version) "/"
8586 name "-" version ".tar.xz"))
8587 (sha256
8588 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8589 (build-system meson-build-system)
8590 (arguments
8591 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8592 (native-inputs
8593 `(("gjs" ,gjs)
8594 ("glib:bin" ,glib "bin")
8595 ("gobject-introspection" ,gobject-introspection)
8596 ("intltool" ,intltool)
8597 ("node" ,node)
8598 ("perl" ,perl)
8599 ("pkg-config" ,pkg-config)
8600 ("python" ,python-wrapper)
8601 ("vala" ,vala)))
8602 (inputs
8603 `(("cairo" ,cairo)
8604 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8605 ("glib" ,glib)
8606 ("gnutls" ,gnutls)
8607 ("libgcrypt" ,libgcrypt)
8608 ("libsasl" ,cyrus-sasl)
8609 ("pulseaudio" ,pulseaudio)
8610 ("x11" ,libx11)
8611 ("zlib" ,zlib)))
8612 (propagated-inputs
8613 `(("gtk+" ,gtk+)))
8614 (synopsis "VNC client viewer widget for GTK+")
8615 (description "GTK-VNC is a project providing client side APIs for the RFB
8616 protocol / VNC remote desktop technology. It is built using coroutines allowing
8617 it to be completely asynchronous while remaining single threaded. It provides a
8618 core C library, and bindings for Python (PyGTK).")
8619 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8620 (license license:lgpl2.1+)))
8621
8622 (define-public gnome-autoar
8623 (package
8624 (name "gnome-autoar")
8625 (version "0.2.4")
8626 (source (origin
8627 (method url-fetch)
8628 (uri (string-append "mirror://gnome/sources/" name "/"
8629 (version-major+minor version) "/"
8630 name "-" version ".tar.xz"))
8631 (sha256
8632 (base32
8633 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
8634 (build-system glib-or-gtk-build-system)
8635 (native-inputs
8636 `(("gobject-introspection" ,gobject-introspection)
8637 ("pkg-config" ,pkg-config)))
8638 (propagated-inputs
8639 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8640 (inputs
8641 `(("gtk+" ,gtk+)))
8642 (synopsis "Archives integration support for GNOME")
8643 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8644 (description
8645 "GNOME Autoar is a library which makes creating and extracting archives
8646 easy, safe, and automatic.")
8647 (license license:lgpl2.1+)))
8648
8649 (define-public tracker
8650 (package
8651 (name "tracker")
8652 (version "2.3.5")
8653 (source (origin
8654 (method url-fetch)
8655 (uri (string-append "mirror://gnome/sources/tracker/"
8656 (version-major+minor version) "/"
8657 "tracker-" version ".tar.xz"))
8658 (sha256
8659 (base32
8660 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8661 (build-system meson-build-system)
8662 (arguments
8663 `(#:glib-or-gtk? #t
8664 #:configure-flags
8665 ;; Otherwise, the RUNPATH will lack the final path component.
8666 (list (string-append "-Dc_link_args=-Wl,-rpath="
8667 (assoc-ref %outputs "out") "/lib:"
8668 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8669 #:phases
8670 (modify-phases %standard-phases
8671 (add-before 'check 'pre-check
8672 (lambda _
8673 ;; Some tests expect to write to $HOME.
8674 (setenv "HOME" "/tmp")
8675 #t)))))
8676 (native-inputs
8677 `(("glib:bin" ,glib "bin")
8678 ("gobject-introspection" ,gobject-introspection)
8679 ("python-pygobject" ,python-pygobject)
8680 ("intltool" ,intltool)
8681 ("pkg-config" ,pkg-config)
8682 ("vala" ,vala)))
8683 (inputs
8684 `(("dbus" ,dbus)
8685 ("sqlite" ,sqlite)
8686 ("libxml2" ,libxml2)
8687 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8688 ("json-glib" ,json-glib)
8689 ("libsoup" ,libsoup)))
8690 (synopsis "Metadata database, indexer and search tool")
8691 (home-page "https://wiki.gnome.org/Projects/Tracker")
8692 (description
8693 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8694
8695 It is a middleware component aimed at desktop application developers who want
8696 their apps to browse and search user content. It's not designed to be used
8697 directly by desktop users, but it provides a commandline tool named
8698 @command{tracker} for the adventurous.
8699
8700 Tracker allows your application to instantly perform full-text searches across
8701 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8702 example. This is achieved by indexing the user's home directory in the
8703 background.
8704
8705 Tracker also allows your application to query and list content that the user
8706 has stored. For example, GNOME Music displays all the music files that are
8707 found by Tracker. This means that GNOME Music doesn't need to maintain a
8708 database of its own.
8709
8710 If you need to go beyond simple searches, Tracker is also a linked data
8711 endpoint and it understands SPARQL. ")
8712 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8713 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8714 ;; libstemmer is bsd-3 and the rest is gpl2+.
8715 (license (list license:gpl2+
8716 license:bsd-3
8717 license:lgpl2.1+))))
8718
8719 (define-public tracker-miners
8720 (package
8721 (name "tracker-miners")
8722 (version "2.3.4")
8723 (source (origin
8724 (method url-fetch)
8725 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8726 (version-major+minor version)
8727 "/tracker-miners-" version ".tar.xz"))
8728 (sha256
8729 (base32
8730 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8731 (build-system meson-build-system)
8732 (arguments
8733 `(#:glib-or-gtk? #t
8734 #:configure-flags
8735 (list "-Dminer_rss=false" ; libgrss is required.
8736 ;; Ensure the RUNPATH contains all installed library locations.
8737 (string-append "-Dc_link_args=-Wl,-rpath="
8738 (assoc-ref %outputs "out")
8739 "/lib/tracker-miners-2.0")
8740 ;; TODO: Enable functional tests. Currently, the following error
8741 ;; appears:
8742 ;; Exception: The functional tests require DConf to be the default
8743 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8744 "-Dfunctional_tests=false")))
8745 (native-inputs
8746 `(("dbus" ,dbus)
8747 ("intltool" ,intltool)
8748 ("glib:bin" ,glib "bin")
8749 ("gobject-introspection" ,gobject-introspection)
8750 ("pkg-config" ,pkg-config)
8751 ("python-pygobject" ,python-pygobject)))
8752 (inputs
8753 `(("exempi" ,exempi)
8754 ("ffmpeg" ,ffmpeg)
8755 ("flac" ,flac)
8756 ("giflib" ,giflib)
8757 ("glib" ,glib)
8758 ("gstreamer" ,gstreamer)
8759 ("icu4c" ,icu4c)
8760 ("libcue" ,libcue)
8761 ("libexif" ,libexif)
8762 ("libgsf" ,libgsf)
8763 ("libgxps" ,libgxps)
8764 ("libiptcdata" ,libiptcdata)
8765 ("libjpeg" ,libjpeg-turbo)
8766 ("libosinfo" ,libosinfo)
8767 ("libpng" ,libpng)
8768 ("libseccomp" ,libseccomp)
8769 ("libtiff" ,libtiff)
8770 ("libvorbis" ,libvorbis)
8771 ("libxml2" ,libxml2)
8772 ("poppler" ,poppler)
8773 ("taglib" ,taglib)
8774 ("totem-pl-parser" ,totem-pl-parser)
8775 ("tracker" ,tracker)
8776 ("upower" ,upower)
8777 ("zlib" ,zlib)))
8778 (synopsis "Metadata database, indexer and search tool")
8779 (home-page "https://wiki.gnome.org/Projects/Tracker")
8780 (description
8781 "Tracker is an advanced framework for first class objects with associated
8782 metadata and tags. It provides a one stop solution for all metadata, tags,
8783 shared object databases, search tools and indexing.")
8784 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8785 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8786 (license (list license:gpl2+
8787 license:lgpl2.1+
8788 license:lgpl2.0+))))
8789
8790 (define-public nautilus
8791 (package
8792 (name "nautilus")
8793 (version "3.34.2")
8794 (source (origin
8795 (method url-fetch)
8796 (uri (string-append "mirror://gnome/sources/" name "/"
8797 (version-major+minor version) "/"
8798 name "-" version ".tar.xz"))
8799 (sha256
8800 (base32
8801 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8802 (build-system meson-build-system)
8803 (arguments
8804 '(#:glib-or-gtk? #t
8805 #:phases
8806 (modify-phases %standard-phases
8807 (add-after 'unpack 'skip-gtk-update-icon-cache
8808 ;; Don't create 'icon-theme.cache'.
8809 (lambda _
8810 (substitute* "build-aux/meson/postinstall.py"
8811 (("gtk-update-icon-cache") "true"))
8812 #t)))
8813 ;; XXX: FAIL: check-nautilus
8814 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8815 #:tests? #f))
8816 (native-inputs
8817 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8818 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8819 ("gobject-introspection" ,gobject-introspection)
8820 ("intltool" ,intltool)
8821 ("pkg-config" ,pkg-config)))
8822 (inputs
8823 `(("dconf" ,dconf)
8824 ("gexiv2" ,gexiv2)
8825 ("gvfs" ,gvfs)
8826 ("exempi" ,exempi)
8827 ("gnome-desktop" ,gnome-desktop)
8828 ("gnome-autoar" ,gnome-autoar)
8829 ("gst-plugins-base" ,gst-plugins-base)
8830 ("libseccomp" ,libseccomp)
8831 ("libselinux" ,libselinux)
8832 ("tracker" ,tracker)
8833 ("tracker-miners" ,tracker-miners)
8834 ;; XXX: gtk+ is required by libnautilus-extension.pc
8835 ;;
8836 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8837 ;; package. See:
8838 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8839 ("gtk+" ,gtk+)
8840 ("libexif" ,libexif)
8841 ("libxml2" ,libxml2)))
8842 (synopsis "File manager for GNOME")
8843 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8844 (description
8845 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8846 design and behaviour, giving the user a simple way to navigate and manage its
8847 files.")
8848 (license license:gpl2+)))
8849
8850 (define-public baobab
8851 (package
8852 (name "baobab")
8853 (version "3.38.0")
8854 (source (origin
8855 (method url-fetch)
8856 (uri (string-append
8857 "mirror://gnome/sources/" name "/"
8858 (version-major+minor version) "/"
8859 name "-" version ".tar.xz"))
8860 (sha256
8861 (base32
8862 "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104"))))
8863 (build-system meson-build-system)
8864 (arguments
8865 '(#:glib-or-gtk? #t))
8866 (native-inputs
8867 `(("intltool" ,intltool)
8868 ("pkg-config" ,pkg-config)
8869 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8870 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8871 ("itstool" ,itstool)
8872 ("xmllint" ,libxml2)
8873 ("glib" ,glib "bin")
8874 ("vala" ,vala)))
8875 (inputs
8876 `(("gtk+" ,gtk+)))
8877 (synopsis "Disk usage analyzer for GNOME")
8878 (description
8879 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8880 usage in the GNOME desktop environment. It can easily scan device volumes or
8881 a specific user-requested directory branch (local or remote). Once the scan
8882 is complete it provides a graphical representation of each selected folder.")
8883 (home-page "https://wiki.gnome.org/Apps/Baobab")
8884 (license license:gpl2+)))
8885
8886 (define-public gnome-backgrounds
8887 (package
8888 (name "gnome-backgrounds")
8889 (version "3.34.0")
8890 (source
8891 (origin
8892 (method url-fetch)
8893 (uri (string-append "mirror://gnome/sources/" name "/"
8894 (version-major+minor version) "/"
8895 name "-" version ".tar.xz"))
8896 (sha256
8897 (base32
8898 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8899 (build-system meson-build-system)
8900 (native-inputs
8901 `(("intltool" ,intltool)))
8902 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8903 (synopsis "Background images for the GNOME desktop")
8904 (description
8905 "GNOME backgrounds package contains a collection of graphics files which
8906 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8907 the package creates the proper framework and directory structure so that you
8908 can add your own files to the collection.")
8909 (license (list license:gpl2+
8910 license:cc-by2.0
8911 license:cc-by-sa2.0
8912 license:cc-by-sa3.0))))
8913
8914 (define-public gnome-screenshot
8915 (package
8916 (name "gnome-screenshot")
8917 (version "3.34.0")
8918 (source
8919 (origin
8920 (method url-fetch)
8921 (uri (string-append "mirror://gnome/sources/" name "/"
8922 (version-major+minor version) "/"
8923 name "-" version ".tar.xz"))
8924 (sha256
8925 (base32
8926 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8927 (build-system meson-build-system)
8928 (arguments
8929 '(#:phases
8930 (modify-phases %standard-phases
8931 (add-after 'unpack 'skip-gtk-update-icon-cache
8932 ;; Don't create 'icon-theme.cache'.
8933 (lambda _
8934 (substitute* "build-aux/postinstall.py"
8935 (("gtk-update-icon-cache") "true"))
8936 #t)))))
8937 (native-inputs
8938 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8939 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8940 ("intltool" ,intltool)
8941 ("appstream-glib" ,appstream-glib)
8942 ("pkg-config" ,pkg-config)))
8943 (inputs
8944 `(("gtk+" ,gtk+)
8945 ("libcanberra" ,libcanberra)
8946 ("libx11" ,libx11)
8947 ("libxext" ,libxext)))
8948 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8949 (synopsis "Take pictures of your screen")
8950 (description
8951 "GNOME Screenshot is a utility used for taking screenshots of the entire
8952 screen, a window or a user defined area of the screen, with optional
8953 beautifying border effects.")
8954 (license license:gpl2+)))
8955
8956 (define-public dconf-editor
8957 (package
8958 (name "dconf-editor")
8959 (version "3.34.2")
8960 (source
8961 (origin
8962 (method url-fetch)
8963 (uri (string-append "mirror://gnome/sources/" name "/"
8964 (version-major+minor version) "/"
8965 name "-" version ".tar.xz"))
8966 (sha256
8967 (base32
8968 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8969 (build-system meson-build-system)
8970 (native-inputs
8971 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8972 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8973 ("intltool" ,intltool)
8974 ("pkg-config" ,pkg-config)
8975 ("vala" ,vala)))
8976 (inputs
8977 `(("dconf" ,dconf)
8978 ("gtk+" ,gtk+)
8979 ("libxml2" ,libxml2)))
8980 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
8981 (synopsis "Graphical editor for GNOME's dconf configuration system")
8982 (description
8983 "Dconf-editor is a graphical tool for browsing and editing the dconf
8984 configuration system for GNOME. It allows users to configure desktop
8985 software that do not provide their own configuration interface.")
8986 (license license:lgpl2.1+)))
8987
8988 (define-public gnome-default-applications
8989 (package
8990 (name "gnome-default-applications")
8991 (version "0")
8992 (build-system trivial-build-system)
8993 (source #f)
8994 (propagated-inputs
8995 `(("nautilus" ,nautilus)
8996 ("evince" ,evince)))
8997 (arguments
8998 `(#:modules ((guix build utils))
8999 #:builder
9000 (begin
9001 (use-modules (guix build utils))
9002 (let* ((out (assoc-ref %outputs "out"))
9003 (apps (string-append out "/share/applications")))
9004 (mkdir-p apps)
9005 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9006 (lambda (port)
9007 (format port "[Default Applications]\n")
9008 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9009 (format port "application/pdf=evince.desktop\n")
9010 (format port "application/postscript=evince.desktop\n")))
9011 #t))))
9012 (synopsis "Default MIME type associations for the GNOME desktop")
9013 (description
9014 "Given many installed packages which might handle a given MIME type, a
9015 user running the GNOME desktop probably has some preferences: for example,
9016 that folders be opened by default by the Nautilus file manager, not the Baobab
9017 disk usage analyzer. This package establishes that set of default MIME type
9018 associations for GNOME.")
9019 (license license:gpl3+)
9020 (home-page #f)))
9021
9022 (define-public libgovirt
9023 (package
9024 (name "libgovirt")
9025 (version "0.3.6")
9026 (source (origin
9027 (method url-fetch)
9028 (uri (string-append "mirror://gnome/sources/" name "/"
9029 (version-major+minor version) "/"
9030 name "-" version ".tar.xz"))
9031 (sha256
9032 (base32
9033 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
9034 (build-system glib-or-gtk-build-system)
9035 (native-inputs
9036 `(("gettext" ,gettext-minimal)
9037 ("glib:bin" ,glib "bin")
9038 ("gobject-introspection" ,gobject-introspection)
9039 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9040 ("gtk+:bin" ,gtk+ "bin")
9041 ("pkg-config" ,pkg-config)))
9042 (inputs
9043 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
9044 ("librest" ,rest)))
9045 (synopsis "GoVirt Library")
9046 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9047 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9048 (license license:gpl2+)))
9049
9050 (define-public gnome-weather
9051 (package
9052 (name "gnome-weather")
9053 (version "3.34.0")
9054 (source (origin
9055 (method url-fetch)
9056 (uri (string-append "mirror://gnome/sources/" name "/"
9057 (version-major+minor version) "/"
9058 name "-" version ".tar.xz"))
9059 (sha256
9060 (base32
9061 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
9062 (build-system meson-build-system)
9063 (native-inputs
9064 `(("gettext" ,gettext-minimal)
9065 ("glib:bin" ,glib "bin")
9066 ("gobject-introspection" ,gobject-introspection)
9067 ("gtk+:bin" ,gtk+ "bin")
9068 ("pkg-config" ,pkg-config)))
9069 (inputs
9070 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
9071 ("appstream-glib" ,appstream-glib)
9072 ("geoclue" ,geoclue)
9073 ("gdk-pixbuf" ,gdk-pixbuf)
9074 ("gjs" ,gjs)
9075 ("gnome-desktop" ,gnome-desktop)
9076 ("libgweather" ,libgweather)))
9077 (arguments
9078 `(#:glib-or-gtk? #t
9079 #:phases
9080 (modify-phases %standard-phases
9081 (add-after 'install 'fix-desktop-file
9082 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
9083 ;; See https://issues.guix.gnu.org/issue/39324.
9084 (lambda* (#:key outputs #:allow-other-keys)
9085 (let* ((out (assoc-ref outputs "out"))
9086 (applications (string-append out "/share/applications")))
9087 (substitute* (string-append applications "/org.gnome.Weather.desktop")
9088 (("Exec=.*") "Exec=gnome-weather\n"))
9089 #t)))
9090 (add-after 'install 'wrap
9091 (lambda* (#:key inputs outputs #:allow-other-keys)
9092 (let ((out (assoc-ref outputs "out"))
9093 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9094 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
9095 (wrap-program (string-append out "/bin/gnome-weather")
9096 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
9097 #t))))))
9098 (synopsis "Weather monitoring for GNOME desktop")
9099 (description "GNOME Weather is a small application that allows you to
9100 monitor the current weather conditions for your city, or anywhere in the
9101 world.")
9102 (home-page "https://wiki.gnome.org/Apps/Weather")
9103 (license license:gpl2+)))
9104
9105 (define-public gnome
9106 (package
9107 (name "gnome")
9108 (version (package-version gnome-shell))
9109 (source #f)
9110 (build-system trivial-build-system)
9111 (arguments '(#:builder (begin (mkdir %output) #t)))
9112 (propagated-inputs
9113 ;; TODO: Add or remove packages according to:
9114 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
9115 `(
9116 ;; GNOME-Core-OS-Services
9117 ("accountsservice" ,accountsservice)
9118 ("network-manager" ,network-manager)
9119 ("packagekit" ,packagekit)
9120 ("upower" ,upower)
9121 ;; GNOME-Core-Shell
9122 ("adwaita-icon-theme" ,adwaita-icon-theme)
9123 ("gdm" ,gdm)
9124 ("glib-networking" ,glib-networking)
9125 ("gnome-backgrounds" ,gnome-backgrounds)
9126 ("gnome-bluetooth" ,gnome-bluetooth)
9127 ("gnome-color-manager" ,gnome-color-manager)
9128 ("gnome-control-center" ,gnome-control-center)
9129 ("gnome-desktop" ,gnome-desktop)
9130 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
9131 ("gnome-initial-setup" ,gnome-initial-setup)
9132 ("gnome-keyring" ,gnome-keyring)
9133 ("gnome-menus" ,gnome-menus)
9134 ("gnome-session" ,gnome-session)
9135 ("gnome-settings-daemon" ,gnome-settings-daemon)
9136 ("gnome-shell-extensions" ,gnome-shell-extensions)
9137 ("gnome-shell" ,gnome-shell)
9138 ("gnome-themes-extra" ,gnome-themes-extra)
9139 ("gnome-user-docs" ,gnome-user-docs)
9140 ("gnome-user-share" ,gnome-user-share)
9141 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9142 ("gvfs" ,gvfs)
9143 ("mutter" ,mutter)
9144 ("orca" ,orca)
9145 ("rygel" ,rygel)
9146 ("sushi" ,sushi)
9147 ;; GNOME-Core-Utilities
9148 ("baobab" ,baobab)
9149 ("cheese" ,cheese)
9150 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9151 ;; only works on x86_64, so exclude it on other architectures.
9152 ,@(if (string-prefix? "x86_64" (%current-system))
9153 `(("eog" ,eog))
9154 '())
9155 ("epiphany" ,epiphany)
9156 ("evince" ,evince)
9157 ("file-roller" ,file-roller)
9158 ("gedit" ,gedit)
9159 ("gnome-boxes" ,gnome-boxes)
9160 ("gnome-calculator" ,gnome-calculator)
9161 ("gnome-calendar" ,gnome-calendar)
9162 ("gnome-characters" ,gnome-characters)
9163 ("gnome-clocks" ,gnome-clocks)
9164 ("gnome-contacts" ,gnome-contacts)
9165 ("gnome-disk-utility" ,gnome-disk-utility)
9166 ("gnome-font-viewer" ,gnome-font-viewer)
9167 ("gnome-maps" ,gnome-maps)
9168 ; TODO: ("gnome-music" ,gnome-music)
9169 ; TODO: ("gnome-photos" ,gnome-photos)
9170 ("gnome-screenshot" ,gnome-screenshot)
9171 ("gnome-system-monitor" ,gnome-system-monitor)
9172 ("gnome-terminal" ,gnome-terminal)
9173 ("gnome-weather" ,gnome-weather)
9174 ("nautilus" ,nautilus)
9175 ("simple-scan" ,simple-scan)
9176 ("totem" ,totem)
9177 ("yelp" ,yelp)
9178 ;; Others
9179 ("hicolor-icon-theme" ,hicolor-icon-theme)
9180 ("gnome-online-accounts" ,gnome-online-accounts)
9181
9182 ;; Packages not part of GNOME proper but that are needed for a good
9183 ;; experience. See <https://bugs.gnu.org/39646>.
9184 ;; XXX: Find out exactly which ones are needed and why.
9185 ("font-cantarell" ,font-cantarell)
9186 ("font-dejavu" ,font-dejavu)
9187 ("at-spi2-core" ,at-spi2-core)
9188 ("dbus" ,dbus)
9189 ("dconf" ,dconf)
9190 ("desktop-file-utils" ,desktop-file-utils)
9191 ("gnome-default-applications" ,gnome-default-applications)
9192 ("gnome-themes-standard" ,gnome-themes-standard)
9193 ("gst-plugins-base" ,gst-plugins-base)
9194 ("gst-plugins-good" ,gst-plugins-good)
9195 ("gucharmap" ,gucharmap)
9196 ("pinentry-gnome3" ,pinentry-gnome3)
9197 ("pulseaudio" ,pulseaudio)
9198 ("shared-mime-info" ,shared-mime-info)
9199 ("system-config-printer" ,system-config-printer)
9200 ("xdg-user-dirs" ,xdg-user-dirs)
9201 ("yelp" ,yelp)
9202 ("zenity" ,zenity)))
9203 (synopsis "The GNU desktop environment")
9204 (home-page "https://www.gnome.org/")
9205 (description
9206 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9207 applications for browsing the web, editing text and images, creating
9208 documents and diagrams, playing media, scanning, and much more.")
9209 (license license:gpl2+)))
9210
9211 (define-public byzanz
9212 ;; The last stable release of Byzanz was in 2011, but there have been many
9213 ;; useful commits made to the Byzanz repository since then that it would be
9214 ;; silly to use such an old release.
9215 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9216 (package
9217 (name "byzanz")
9218 (version (string-append "0.2-1." (string-take commit 7)))
9219 (source (origin
9220 (method git-fetch)
9221 (uri (git-reference
9222 (url "https://git.gnome.org/browse/byzanz")
9223 (commit commit)))
9224 (file-name (string-append name "-" version "-checkout"))
9225 (sha256
9226 (base32
9227 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9228 (build-system glib-or-gtk-build-system)
9229 (arguments
9230 '(#:phases
9231 (modify-phases %standard-phases
9232 (add-before 'bootstrap 'build-without-Werror
9233 (lambda _
9234 ;; The build system cleverly detects that we're not building from
9235 ;; a release tarball and turns on -Werror for GCC.
9236 ;; Unsurprisingly, there is a warning during compilation that
9237 ;; causes the build to fail unnecessarily, so we remove the flag.
9238 (substitute* '("configure.ac")
9239 (("-Werror") ""))
9240 #t)))))
9241 (native-inputs
9242 `(("autoconf" ,autoconf)
9243 ("automake" ,automake)
9244 ("gnome-common" ,gnome-common)
9245 ("intltool" ,intltool)
9246 ("libtool" ,libtool)
9247 ("pkg-config" ,pkg-config)
9248 ("which" ,which)))
9249 (inputs
9250 `(("glib" ,glib)
9251 ("gstreamer" ,gstreamer)
9252 ("gst-plugins-base" ,gst-plugins-base)
9253 ("gtk+" ,gtk+)))
9254 (synopsis "Desktop recording program")
9255 (description "Byzanz is a simple desktop recording program with a
9256 command-line interface. It can record part or all of an X display for a
9257 specified duration and save it as a GIF encoded animated image file.")
9258 (home-page "https://git.gnome.org/browse/byzanz")
9259 (license license:gpl2+))))
9260
9261 (define-public authenticator
9262 (package
9263 (name "authenticator")
9264 (version "3.32.2")
9265 (source
9266 (origin
9267 (method git-fetch)
9268 (uri (git-reference
9269 (url "https://gitlab.gnome.org/World/Authenticator")
9270 (commit version)))
9271 (file-name (git-file-name name version))
9272 (sha256
9273 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9274 (build-system meson-build-system)
9275 (arguments
9276 `(#:glib-or-gtk? #t
9277 #:phases
9278 (modify-phases %standard-phases
9279 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9280 (lambda* (#:key inputs outputs #:allow-other-keys)
9281 (let ((prog (string-append (assoc-ref outputs "out")
9282 "/bin/authenticator"))
9283 (pylib (string-append (assoc-ref outputs "out")
9284 "/lib/python"
9285 ,(version-major+minor
9286 (package-version python))
9287 "/site-packages")))
9288 (wrap-program prog
9289 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
9290 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9291 #t))))))
9292 (native-inputs
9293 `(("desktop-file-utils" ,desktop-file-utils)
9294 ("gettext" ,gettext-minimal)
9295 ("glib:bin" ,glib "bin")
9296 ("gobject-introspection" ,gobject-introspection)
9297 ("gtk+:bin" ,gtk+ "bin")
9298 ("pkg-config" ,pkg-config)))
9299 (inputs
9300 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9301 ("gtk+" ,gtk+)
9302 ("libhandy" ,libhandy-0.0)
9303 ("libsecret" ,libsecret)
9304 ("python-beautifulsoup4" ,python-beautifulsoup4)
9305 ("python-pillow" ,python-pillow)
9306 ("python-pyfavicon" ,python-pyfavicon)
9307 ("python-pygobject" ,python-pygobject)
9308 ("python-pyotp" ,python-pyotp)
9309 ("python-pyzbar" ,python-pyzbar)
9310 ("yoyo-migrations" ,yoyo-migrations)
9311 ("zbar" ,zbar)))
9312 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9313 (synopsis "Two-factor authentication application built for GNOME")
9314 (description
9315 "Authenticator is a two-factor authentication (2FA) application built for
9316 the GNOME desktop environment.
9317
9318 Features:
9319
9320 @itemize
9321 @item QR code scanner
9322 @item Beautiful UI
9323 @item Huge database of more than 560 supported services
9324 @item Keep your PIN tokens secure by locking the application with a password
9325 @item Automatically fetch an image for services using their favicon
9326 @item The possibility to add new services
9327 @end itemize")
9328 (license license:gpl3+)))
9329
9330 (define-public gsound
9331 (package
9332 (name "gsound")
9333 (version "1.0.2")
9334 (source (origin
9335 (method url-fetch)
9336 (uri (string-append "mirror://gnome/sources/" name "/"
9337 (version-major+minor version) "/"
9338 name "-" version ".tar.xz"))
9339 (sha256
9340 (base32
9341 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9342 (build-system glib-or-gtk-build-system)
9343 (native-inputs
9344 `(("pkg-config" ,pkg-config)
9345 ("gobject-introspection" ,gobject-introspection)
9346 ("vala" ,vala)))
9347 (inputs
9348 `(("glib" ,glib)
9349 ("libcanberra" ,libcanberra)))
9350 (home-page "https://wiki.gnome.org/Projects/GSound")
9351 (synopsis "GObject wrapper for libcanberra")
9352 (description
9353 "GSound is a small library for playing system sounds. It's designed to be
9354 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9355 library.")
9356 (license license:lgpl2.1+)))
9357
9358 (define-public libzapojit
9359 (package
9360 (name "libzapojit")
9361 (version "0.0.3")
9362 (source (origin
9363 (method url-fetch)
9364 (uri (string-append "mirror://gnome/sources/" name "/"
9365 (version-major+minor version) "/"
9366 name "-" version ".tar.xz"))
9367 (sha256
9368 (base32
9369 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9370 (build-system gnu-build-system)
9371 (native-inputs
9372 `(("gobject-introspection" ,gobject-introspection)
9373 ("intltool" ,intltool)
9374 ("pkg-config" ,pkg-config)))
9375 (inputs
9376 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9377 ("json-glib" ,json-glib)
9378 ("rest" ,rest)))
9379 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9380 (synopsis "Library for accessing SkyDrive and Hotmail")
9381 (description
9382 "Libzapojit is a GLib-based library for accessing online service APIs of
9383 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9384 (license license:lgpl2.1+)))
9385
9386 (define-public gnome-clocks
9387 (package
9388 (name "gnome-clocks")
9389 (version "3.34.0")
9390 (source (origin
9391 (method url-fetch)
9392 (uri (string-append "mirror://gnome/sources/" name "/"
9393 (version-major+minor version) "/"
9394 name "-" version ".tar.xz"))
9395 (sha256
9396 (base32
9397 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9398 (build-system meson-build-system)
9399 (arguments
9400 '(#:glib-or-gtk? #t
9401 #:phases
9402 (modify-phases %standard-phases
9403 (add-after 'unpack 'skip-gtk-update-icon-cache
9404 ;; Don't create 'icon-theme.cache'.
9405 (lambda _
9406 (substitute* "build-aux/post-install.py"
9407 (("gtk-update-icon-cache") "true"))
9408 #t)))))
9409 (native-inputs
9410 `(("vala" ,vala)
9411 ("pkg-config" ,pkg-config)
9412 ("glib" ,glib "bin") ; for glib-compile-resources
9413 ("desktop-file-utils" ,desktop-file-utils)
9414 ("gettext" ,gettext-minimal)
9415 ("itstool" ,itstool)))
9416 (inputs
9417 `(("glib" ,glib)
9418 ("gtk+" ,gtk+)
9419 ("gsound" ,gsound)
9420 ("geoclue" ,geoclue)
9421 ("geocode-glib" ,geocode-glib)
9422 ("libgweather" ,libgweather)
9423 ("gnome-desktop" ,gnome-desktop)))
9424 (home-page "https://wiki.gnome.org/Apps/Clocks")
9425 (synopsis "GNOME's clock application")
9426 (description
9427 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9428 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9429 (license license:gpl3+)))
9430
9431 (define-public gnome-calendar
9432 (package
9433 (name "gnome-calendar")
9434 (version "3.34.2")
9435 (source (origin
9436 (method url-fetch)
9437 (uri (string-append "mirror://gnome/sources/" name "/"
9438 (version-major+minor version) "/"
9439 name "-" version ".tar.xz"))
9440 (sha256
9441 (base32
9442 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9443 (build-system meson-build-system)
9444 (arguments
9445 '(#:glib-or-gtk? #t
9446 ;; gnome-calendar has to be installed before the tests can be run
9447 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9448 #:tests? #f
9449 #:phases
9450 (modify-phases %standard-phases
9451 (add-after 'unpack 'skip-gtk-update-icon-cache
9452 ;; Don't create 'icon-theme.cache'.
9453 (lambda _
9454 (substitute* "build-aux/meson/meson_post_install.py"
9455 (("gtk-update-icon-cache") "true"))
9456 #t)))))
9457 (native-inputs
9458 `(("gettext" ,gettext-minimal)
9459 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9460 ("pkg-config" ,pkg-config)))
9461 (inputs
9462 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9463 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9464 ("libdazzle" ,libdazzle)
9465 ("libedataserverui" ,evolution-data-server)
9466 ("libgweather" ,libgweather)
9467 ("geoclue" ,geoclue)))
9468 (propagated-inputs
9469 `(("evolution-data-server" ,evolution-data-server)))
9470 (home-page "https://wiki.gnome.org/Apps/Calendar")
9471 (synopsis "GNOME's calendar application")
9472 (description
9473 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9474 desktop. It supports multiple calendars, month, week and year view.")
9475 (license license:gpl3+)))
9476
9477 (define-public gnome-todo
9478 (package
9479 (name "gnome-todo")
9480 (version "3.28.1")
9481 (source (origin
9482 (method url-fetch)
9483 (uri (string-append "mirror://gnome/sources/" name "/"
9484 (version-major+minor version) "/"
9485 name "-" version ".tar.xz"))
9486 (sha256
9487 (base32
9488 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9489 (patches
9490 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9491 (build-system meson-build-system)
9492 (arguments
9493 '(#:glib-or-gtk? #t
9494 #:phases (modify-phases %standard-phases
9495 (add-after
9496 'install 'wrap-gnome-todo
9497 (lambda* (#:key inputs outputs #:allow-other-keys)
9498 (let ((out (assoc-ref outputs "out"))
9499 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9500 (python-path (getenv "PYTHONPATH")))
9501 (wrap-program (string-append out "/bin/gnome-todo")
9502 ;; XXX: gi plugins are broken.
9503 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9504 ;; For plugins.
9505 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9506 `("PYTHONPATH" ":" prefix (,python-path))))
9507 #t)))))
9508 (native-inputs
9509 `(("gettext" ,gettext-minimal)
9510 ("gobject-introspection" ,gobject-introspection)
9511 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9512 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9513 ("pkg-config" ,pkg-config)))
9514 (inputs
9515 `(("rest" ,rest) ; For Todoist plugin
9516 ("json-glib" ,json-glib) ; For Todoist plugin
9517 ("libedataserverui" ,evolution-data-server)
9518 ("libical" ,libical)
9519 ("libpeas" ,libpeas)
9520 ("python-pygobject" ,python-pygobject)
9521 ("evolution-data-server" ,evolution-data-server)
9522 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9523 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9524 (home-page "https://wiki.gnome.org/Apps/Todo")
9525 (synopsis "GNOME's ToDo Application")
9526 (description
9527 "GNOME To Do is a simplistic personal task manager designed to perfectly
9528 fit the GNOME desktop.")
9529 (license license:gpl3+)))
9530
9531 (define-public gnome-dictionary
9532 (package
9533 (name "gnome-dictionary")
9534 (version "3.26.1")
9535 (source (origin
9536 (method url-fetch)
9537 (uri (string-append "mirror://gnome/sources/" name "/"
9538 (version-major+minor version) "/"
9539 name "-" version ".tar.xz"))
9540 (sha256
9541 (base32
9542 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9543 (build-system meson-build-system)
9544 (arguments '(#:glib-or-gtk? #t
9545 #:phases (modify-phases %standard-phases
9546 (add-after 'unpack 'patch-install-script
9547 (lambda _
9548 ;; This script attempts to compile glib schemas
9549 ;; and create an empty MIME database. We do
9550 ;; that elsewhere, so prevent it from running.
9551 (substitute* "build-aux/post-install.sh"
9552 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9553 #t)))))
9554 (native-inputs
9555 `(("glib:bin" ,glib "bin")
9556 ("gobject-introspection" ,gobject-introspection)
9557 ("intltool" ,intltool)
9558 ("itstool" ,itstool)
9559 ("pkg-config" ,pkg-config)
9560 ("xmllint" ,libxml2)))
9561 (inputs
9562 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9563 ("gtk+" ,gtk+)))
9564 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9565 (synopsis "Look up words in dictionary sources")
9566 (description
9567 "GNOME Dictionary can look for the definition or translation of a word in
9568 existing databases over the internet.")
9569 (license license:gpl3+)))
9570
9571 (define-public gnome-tweaks
9572 (package
9573 (name "gnome-tweaks")
9574 (version "3.34.1")
9575 (source (origin
9576 (method url-fetch)
9577 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9578 (version-major+minor version) "/"
9579 "gnome-tweaks-" version ".tar.xz"))
9580 (patches
9581 (list (search-patch "gnome-tweaks-search-paths.patch")))
9582 (sha256
9583 (base32
9584 "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq"))))
9585 (build-system meson-build-system)
9586 (arguments
9587 `(#:glib-or-gtk? #t
9588 #:configure-flags '("-Dlocalstatedir=/tmp"
9589 "-Dsysconfdir=/tmp")
9590 #:imported-modules ((guix build python-build-system)
9591 ,@%meson-build-system-modules)
9592 #:phases
9593 (modify-phases %standard-phases
9594 (add-after 'unpack 'skip-gtk-update-icon-cache
9595 ;; Don't create 'icon-theme.cache'.
9596 (lambda _
9597 (substitute* "meson-postinstall.py"
9598 (("gtk-update-icon-cache") "true"))
9599 #t))
9600 (add-after 'install 'wrap
9601 (@@ (guix build python-build-system) wrap))
9602 (add-after 'wrap 'wrap-gi-typelib
9603 (lambda* (#:key inputs outputs #:allow-other-keys)
9604 (let ((out (assoc-ref outputs "out"))
9605 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9606 (wrap-program (string-append out "/bin/gnome-tweaks")
9607 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9608 #t)))))
9609 (native-inputs
9610 `(("intltool" ,intltool)
9611 ("pkg-config" ,pkg-config)))
9612 (inputs
9613 `(("gnome-desktop" ,gnome-desktop)
9614 ("gtk+" ,gtk+)
9615 ("gobject-introspection" ,gobject-introspection)
9616 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9617 ("libhandy" ,libhandy-0.0)
9618 ("libnotify" ,libnotify)
9619 ("libsoup" ,libsoup)
9620 ("nautilus" ,nautilus)
9621 ("python" ,python)
9622 ("python-pygobject" ,python-pygobject)))
9623 (synopsis "Customize advanced GNOME 3 options")
9624 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9625 (description
9626 "GNOME Tweaks allows adjusting advanced configuration settings in
9627 GNOME 3. This includes things like the fonts used in user interface elements,
9628 alternative user interface themes, changes in window management behavior,
9629 GNOME Shell appearance and extension, etc.")
9630 (license license:gpl3+)))
9631
9632 (define-public gnome-shell-extensions
9633 (package
9634 (name "gnome-shell-extensions")
9635 (version "3.34.2")
9636 (source (origin
9637 (method url-fetch)
9638 (uri (string-append "mirror://gnome/sources/" name "/"
9639 (version-major+minor version) "/"
9640 name "-" version ".tar.xz"))
9641 (sha256
9642 (base32
9643 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9644 (build-system meson-build-system)
9645 (arguments
9646 '(#:configure-flags '("-Dextension_set=all")))
9647 (native-inputs
9648 `(("glib:bin" ,glib "bin")
9649 ("intltool" ,intltool)
9650 ("pkg-config" ,pkg-config)))
9651 (propagated-inputs
9652 `(("glib" ,glib)))
9653 (synopsis "Extensions for GNOME Shell")
9654 (description "GNOME Shell extensions modify and extend GNOME Shell
9655 functionality and behavior.")
9656 (home-page "https://extensions.gnome.org/")
9657 (license license:gpl3+)))
9658
9659 (define-public folks
9660 (package
9661 (name "folks")
9662 (version "0.13.1")
9663 (source (origin
9664 (method url-fetch)
9665 (uri (string-append
9666 "mirror://gnome/sources/folks/"
9667 (version-major+minor version) "/"
9668 "folks-" version ".tar.xz"))
9669 (sha256
9670 (base32
9671 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9672 (build-system meson-build-system)
9673 (arguments
9674 '(#:phases
9675 (modify-phases %standard-phases
9676 (add-after 'unpack 'skip-gtk-update-icon-cache
9677 ;; Don't create 'icon-theme.cache'.
9678 (lambda _
9679 (substitute* "meson_post_install.py"
9680 (("gtk-update-icon-cache") "true"))
9681 #t)))))
9682 (inputs
9683 `(("bdb" ,bdb)
9684 ("dbus-glib" ,dbus-glib)
9685 ("evolution-data-server" ,evolution-data-server)
9686 ("glib" ,glib)
9687 ("libgee" ,libgee)
9688 ("readline" ,readline)
9689 ("telepathy-glib" ,telepathy-glib)))
9690 (native-inputs
9691 `(("glib:bin" ,glib "bin")
9692 ("gobject-introspection" ,gobject-introspection)
9693 ("intltool" ,intltool)
9694 ("pkg-config" ,pkg-config)
9695 ("vala" ,vala)))
9696 (synopsis "Library to aggregate data about people")
9697 (description "Libfolks is a library that aggregates information about people
9698 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9699 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9700 etc.) to create metacontacts. It's written in Vala, which generates C code when
9701 compiled.")
9702 (home-page "https://wiki.gnome.org/Projects/Folks")
9703 (license license:lgpl2.1+)))
9704
9705 (define-public gfbgraph
9706 (package
9707 (name "gfbgraph")
9708 (version "0.2.4")
9709 (source (origin
9710 (method url-fetch)
9711 (uri (string-append
9712 "mirror://gnome/sources/gfbgraph/"
9713 (version-major+minor version) "/"
9714 "gfbgraph-" version ".tar.xz"))
9715 (sha256
9716 (base32
9717 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9718 (build-system glib-or-gtk-build-system)
9719 (arguments
9720 `(#:tests? #f ; tests appear to require the network
9721 #:configure-flags '("--disable-static"
9722 "--enable-gtk-doc"
9723 "--enable-introspection")))
9724 (native-inputs
9725 `(("gobject-introspection" ,gobject-introspection)
9726 ("gtk-doc" ,gtk-doc)
9727 ("pkg-config" ,pkg-config)
9728
9729 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9730 ("autoconf" ,autoconf)
9731 ("automake" ,automake)
9732 ("libtool" ,libtool)
9733 ("which" ,which)))
9734 (inputs
9735 `(("json-glib" ,json-glib)
9736 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9737 ("rest" ,rest)))
9738 (synopsis "GLib/GObject wrapper for the Facebook API")
9739 (description "This library allows you to use the Facebook API from
9740 GLib/GObject code.")
9741 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9742 (license license:lgpl2.1+)))
9743
9744 (define-public libgnomekbd
9745 (package
9746 (name "libgnomekbd")
9747 (version "3.26.1")
9748 (source (origin
9749 (method url-fetch)
9750 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9751 (version-major+minor version) "/"
9752 "libgnomekbd-" version ".tar.xz"))
9753 (sha256
9754 (base32
9755 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9756 (build-system gnu-build-system)
9757 (native-inputs
9758 `(("pkg-config" ,pkg-config)
9759 ("glib" ,glib "bin")
9760 ("intltool" ,intltool)))
9761 (propagated-inputs
9762 ;; Referred to in .h files and .pc.
9763 `(("glib" ,glib)
9764 ("gtk+" ,gtk+)
9765 ("libxklavier" ,libxklavier)))
9766 (home-page "https://www.gnome.org")
9767 (synopsis "GNOME keyboard configuration library")
9768 (description
9769 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9770 environment, which can notably display keyboard layouts.")
9771 (license license:lgpl2.0+)))
9772
9773 ;;; This package is no longer maintained:
9774 ;;; https://wiki.gnome.org/Attic/LibUnique
9775 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9776 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9777 (define-public libunique
9778 (package
9779 (name "libunique")
9780 (version "3.0.2")
9781 (source (origin
9782 (method url-fetch)
9783 (uri (string-append "mirror://gnome/sources/" name "/"
9784 (version-major+minor version) "/"
9785 name "-" version ".tar.xz"))
9786 (sha256
9787 (base32
9788 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9789 (build-system glib-or-gtk-build-system)
9790 (arguments
9791 `(#:configure-flags '("--disable-static"
9792 "--disable-dbus" ; use gdbus
9793 "--enable-introspection")))
9794 (native-inputs
9795 `(("pkg-config" ,pkg-config)
9796 ("gobject-introspection" ,gobject-introspection)
9797 ("glib:bin" ,glib "bin")
9798 ("gtk-doc" ,gtk-doc)))
9799 (propagated-inputs
9800 ;; Referred to in .h files and .pc.
9801 `(("gtk+" ,gtk+)))
9802 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9803 (synopsis "Library for writing single instance applications")
9804 (description
9805 "Libunique is a library for writing single instance applications. If you
9806 launch a single instance application twice, the second instance will either just
9807 quit or will send a message to the running instance. Libunique makes it easy to
9808 write this kind of application, by providing a base class, taking care of all
9809 the IPC machinery needed to send messages to a running instance, and also
9810 handling the startup notification side.")
9811 (license license:lgpl2.1+)))
9812
9813 (define-public gnome-calculator
9814 (package
9815 (name "gnome-calculator")
9816 (version "3.34.1")
9817 (source
9818 (origin
9819 (method url-fetch)
9820 (uri (string-append "mirror://gnome/sources/" name "/"
9821 (version-major+minor version) "/"
9822 name "-" version ".tar.xz"))
9823 (sha256
9824 (base32
9825 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9826 (build-system meson-build-system)
9827 (arguments '(#:glib-or-gtk? #t))
9828 (native-inputs
9829 `(("gettext" ,gettext-minimal)
9830 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9831 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9832 ("itstool" ,itstool)
9833 ("vala" ,vala)
9834 ("pkg-config" ,pkg-config)))
9835 (inputs
9836 `(("glib" ,glib)
9837 ("gtksourceview" ,gtksourceview)
9838 ("libgee" ,libgee)
9839 ("libsoup" ,libsoup)
9840 ("libxml2" ,libxml2)
9841 ("mpc" ,mpc)
9842 ("mpfr" ,mpfr)))
9843 (home-page "https://wiki.gnome.org/Apps/Calculator")
9844 (synopsis "Desktop calculator")
9845 (description
9846 "Calculator is an application that solves mathematical equations and
9847 is suitable as a default application in a Desktop environment.")
9848 (license license:gpl3)))
9849
9850 (define-public xpad
9851 (package
9852 (name "xpad")
9853 (version "5.1.0")
9854 (source
9855 (origin
9856 (method url-fetch)
9857 (uri (string-append "https://launchpad.net/xpad/trunk/"
9858 version "/+download/"
9859 name "-" version ".tar.bz2"))
9860 (sha256
9861 (base32
9862 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9863 (build-system gnu-build-system)
9864 (native-inputs
9865 `(("autoconf" ,autoconf)
9866 ("automake" ,automake)
9867 ("gtk+:bin" ,gtk+ "bin")
9868 ("intltool" ,intltool)
9869 ("pkg-config" ,pkg-config)))
9870 (inputs
9871 `(("gtksourceview" ,gtksourceview-3)
9872 ("libsm" ,libsm)))
9873 (home-page "https://wiki.gnome.org/Apps/Xpad")
9874 (synopsis "Virtual sticky note")
9875 (description
9876 "Xpad is a sticky note that strives to be simple, fault tolerant,
9877 and customizable. Xpad consists of independent pad windows, each is
9878 basically a text box in which notes can be written.")
9879 (license license:gpl3+)))
9880
9881 (define-public gucharmap
9882 (let ((unicode-files
9883 '(("Blocks.txt"
9884 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9885 ("DerivedAge.txt"
9886 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9887 ("NamesList.txt"
9888 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9889 ("Scripts.txt"
9890 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9891 ("UnicodeData.txt"
9892 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9893 ("Unihan.zip"
9894 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9895 (package
9896 (name "gucharmap")
9897 (version "12.0.1")
9898 (source
9899 (origin
9900 (method url-fetch)
9901 (uri (string-append "mirror://gnome/sources/" name "/"
9902 (version-major+minor version) "/"
9903 name "-" version ".tar.xz"))
9904 (sha256
9905 (base32
9906 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9907 (build-system glib-or-gtk-build-system)
9908 (arguments
9909 `(#:modules ((ice-9 match)
9910 (guix build glib-or-gtk-build-system)
9911 (guix build utils))
9912 #:configure-flags
9913 (list "--with-unicode-data=../unicode-data")
9914 #:phases
9915 (modify-phases %standard-phases
9916 (add-after 'unpack 'prepare-unicode-data
9917 (lambda* (#:key inputs #:allow-other-keys)
9918 (mkdir-p "../unicode-data")
9919 (with-directory-excursion "../unicode-data"
9920 (for-each (match-lambda
9921 ((file _)
9922 (install-file (assoc-ref inputs file) ".")))
9923 ',unicode-files))
9924 #t)))))
9925 (native-inputs
9926 `(("desktop-file-utils" ,desktop-file-utils)
9927 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9928 ("gobject-introspection" ,gobject-introspection)
9929 ("intltool" ,intltool)
9930 ("itstool" ,itstool)
9931 ("pkg-config" ,pkg-config)
9932 ,@(map (match-lambda
9933 ((file hash)
9934 `(,file
9935 ,(origin
9936 (method url-fetch)
9937 (uri (string-append
9938 "http://www.unicode.org/Public/12.0.0/ucd/"
9939 file))
9940 (sha256 (base32 hash))))))
9941 unicode-files)
9942 ("unzip" ,unzip)))
9943 (inputs
9944 `(("gtk+" ,gtk+)
9945 ("xmllint" ,libxml2)))
9946 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9947 (synopsis "Unicode character picker and font browser")
9948 (description
9949 "This program allows you to browse through all the available Unicode
9950 characters and categories for the installed fonts, and to examine their
9951 detailed properties. It is an easy way to find the character you might
9952 only know by its Unicode name or code point.")
9953 (license license:gpl3+))))
9954
9955 (define-public bluefish
9956 (package
9957 (name "bluefish")
9958 (version "2.2.12")
9959 (source
9960 (origin
9961 (method url-fetch)
9962 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
9963 "bluefish-" version ".tar.gz"))
9964 (sha256
9965 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
9966 (build-system gnu-build-system)
9967 (native-inputs
9968 `(("desktop-file-utils" ,desktop-file-utils)
9969 ("intltool" ,intltool)
9970 ("pkg-config" ,pkg-config)))
9971 (inputs
9972 `(("enchant" ,enchant)
9973 ("gtk+" ,gtk+)
9974 ("python" ,python-wrapper)
9975 ("xmllint" ,libxml2)
9976 ("gucharmap" ,gucharmap)))
9977 (home-page "http://bluefish.openoffice.nl")
9978 (synopsis "Web development studio")
9979 (description
9980 "Bluefish is an editor aimed at programmers and web developers,
9981 with many options to write web sites, scripts and other code.
9982 Bluefish supports many programming and markup languages.")
9983 (license license:gpl3+)))
9984
9985 (define-public gnome-system-monitor
9986 (package
9987 (name "gnome-system-monitor")
9988 (version "3.32.1")
9989 (source
9990 (origin
9991 (method url-fetch)
9992 (uri (string-append "mirror://gnome/sources/" name "/"
9993 (version-major+minor version) "/"
9994 name "-" version ".tar.xz"))
9995 (sha256
9996 (base32
9997 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
9998 (build-system meson-build-system)
9999 (arguments
10000 '(#:glib-or-gtk? #t
10001 #:configure-flags '("-Dsystemd=false")))
10002 (native-inputs
10003 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
10004 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
10005 ("intltool" ,intltool)
10006 ("itstool" ,itstool)
10007 ("libgtop" ,libgtop)
10008 ("polkit" ,polkit)
10009 ("pkg-config" ,pkg-config)))
10010 (inputs
10011 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
10012 ("gtk+" ,gtk+)
10013 ("gtkmm" ,gtkmm)
10014 ("librsvg" ,librsvg)
10015 ("libxml2" ,libxml2)
10016 ("libwnck" ,libwnck)))
10017 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10018 (synopsis "Process viewer and system resource monitor for GNOME")
10019 (description
10020 "GNOME System Monitor is a GNOME process viewer and system monitor with
10021 an attractive, easy-to-use interface. It has features, such as a tree view
10022 for process dependencies, icons for processes, the ability to hide processes,
10023 graphical time histories of CPU/memory/swap usage and the ability to
10024 kill/reinice processes.")
10025 (license license:gpl2+)))
10026
10027 (define-public python-pyatspi
10028 (package
10029 (name "python-pyatspi")
10030 (version "2.34.0")
10031 (source (origin
10032 (method url-fetch)
10033 (uri (string-append
10034 "mirror://gnome/sources/pyatspi/"
10035 (version-major+minor version)
10036 "/pyatspi-" version ".tar.xz"))
10037 (sha256
10038 (base32
10039 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10040 (build-system gnu-build-system)
10041 (arguments
10042 `(#:phases
10043 (modify-phases %standard-phases
10044 (add-before 'build 'fix-atk-load
10045 (lambda _
10046 (substitute* "pyatspi/__init__.py"
10047 (("from gi.repository import Atspi")
10048 "gi.require_version('Gtk', '3.0')
10049 from gi.repository import Gtk
10050 from gi.repository import Atspi"))
10051 #t)))))
10052 (native-inputs
10053 `(("pkg-config" ,pkg-config)))
10054 (inputs
10055 `(("python" ,python)))
10056 (propagated-inputs
10057 `(("python-pygobject" ,python-pygobject)))
10058 (synopsis "Python client bindings for D-Bus AT-SPI")
10059 (home-page "https://wiki.linuxfoundation.org/accessibility\
10060 /atk/at-spi/at-spi_on_d-bus")
10061 (description
10062 "This package includes a python client library for the AT-SPI D-Bus
10063 accessibility infrastructure.")
10064 (license license:lgpl2.0)
10065 (properties '((upstream-name . "pyatspi")))))
10066
10067 (define-public python2-pyatspi
10068 (package
10069 (inherit python-pyatspi)
10070 (name "python2-pyatspi")
10071 (inputs
10072 `(("python" ,python-2)))
10073 (propagated-inputs
10074 `(("python-pygobject" ,python2-pygobject)))))
10075
10076 (define-public orca
10077 (package
10078 (name "orca")
10079 (version "3.34.1")
10080 (source (origin
10081 (method url-fetch)
10082 (uri (string-append
10083 "mirror://gnome/sources/" name "/"
10084 (version-major+minor version) "/"
10085 name "-" version ".tar.xz"))
10086 (sha256
10087 (base32
10088 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
10089 (build-system glib-or-gtk-build-system)
10090 (arguments
10091 '(#:phases
10092 (modify-phases %standard-phases
10093 (add-before 'configure 'qualify-xkbcomp
10094 (lambda* (#:key inputs #:allow-other-keys)
10095 (let ((xkbcomp (string-append
10096 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10097 (substitute* "src/orca/orca.py"
10098 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
10099 #t))
10100 (add-after 'install 'wrap-orca
10101 (lambda* (#:key outputs #:allow-other-keys)
10102 (let* ((out (assoc-ref outputs "out"))
10103 (prog (string-append out "/bin/orca")))
10104 (wrap-program prog
10105 `("GI_TYPELIB_PATH" ":" prefix
10106 (,(getenv "GI_TYPELIB_PATH")))
10107 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10108 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10109 `("PYTHONPATH" ":" prefix
10110 (,(getenv "PYTHONPATH")))))
10111 #t)))))
10112 (native-inputs
10113 `(("intltool" ,intltool)
10114 ("itstool" ,itstool)
10115 ("pkg-config" ,pkg-config)
10116 ("xmllint" ,libxml2)))
10117 (inputs
10118 `(("at-spi2-atk" ,at-spi2-atk)
10119 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10120 ("gstreamer" ,gstreamer)
10121 ("gst-plugins-base" ,gst-plugins-base)
10122 ("gst-plugins-good" ,gst-plugins-good)
10123 ("gtk+" ,gtk+)
10124 ("python" ,python)
10125 ("python-pygobject" ,python-pygobject)
10126 ("python-pyatspi" ,python-pyatspi)
10127 ("python-speechd" ,speech-dispatcher)
10128 ("xkbcomp" ,xkbcomp)))
10129 (synopsis
10130 "Screen reader for individuals who are blind or visually impaired")
10131 (home-page "https://wiki.gnome.org/Projects/Orca")
10132 (description
10133 "Orca is a screen reader that provides access to the graphical desktop
10134 via speech and refreshable braille. Orca works with applications and toolkits
10135 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10136 (license license:lgpl2.1+)))
10137
10138 (define-public gspell
10139 (package
10140 (name "gspell")
10141 (version "1.8.2")
10142 (source (origin
10143 (method url-fetch)
10144 (uri (string-append "mirror://gnome/sources/" name "/"
10145 (version-major+minor version) "/"
10146 name "-" version ".tar.xz"))
10147 (sha256
10148 (base32
10149 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10150 (patches (search-patches "gspell-dash-test.patch"))))
10151 (build-system glib-or-gtk-build-system)
10152 (arguments
10153 '(#:configure-flags (list "--enable-vala")
10154 #:phases
10155 (modify-phases %standard-phases
10156 (add-before 'check 'pre-check
10157 (lambda* (#:key inputs #:allow-other-keys)
10158 ;; Tests require a running X server.
10159 (system "Xvfb :1 &")
10160 (setenv "DISPLAY" ":1")
10161
10162 ;; For the missing /etc/machine-id.
10163 (setenv "DBUS_FATAL_WARNINGS" "0")
10164
10165 ;; Allow Enchant and its Aspell backend to find the en_US
10166 ;; dictionary.
10167 (setenv "ASPELL_DICT_DIR"
10168 (string-append (assoc-ref inputs "aspell-dict-en")
10169 "/lib/aspell"))
10170 #t)))))
10171 (inputs
10172 `(("gtk+" ,gtk+)
10173 ("glib" ,glib)
10174 ("iso-codes" ,iso-codes)))
10175 (native-inputs
10176 `(("glib" ,glib "bin")
10177 ("gobject-introspection" ,gobject-introspection)
10178 ("pkg-config" ,pkg-config)
10179 ("vala" ,vala) ;for VAPI, needed by Geary
10180 ("xmllint" ,libxml2)
10181
10182 ;; For tests.
10183 ("aspell-dict-en" ,aspell-dict-en)
10184 ("xorg-server" ,xorg-server-for-tests)))
10185 (propagated-inputs
10186 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
10187 (home-page "https://wiki.gnome.org/Projects/gspell")
10188 (synopsis "GNOME's alternative spell checker")
10189 (description
10190 "gspell provides a flexible API to add spell-checking to a GTK+
10191 application. It provides a GObject API, spell-checking to text entries and
10192 text views, and buttons to choose the language.")
10193 (license license:gpl2+)))
10194
10195 (define-public gnome-planner
10196 (package
10197 (name "gnome-planner")
10198 (version "0.14.6")
10199 (source (origin
10200 (method url-fetch)
10201 (uri (string-append "mirror://gnome/sources/planner/"
10202 (version-major+minor version) "/planner-"
10203 version ".tar.xz"))
10204 (sha256
10205 (base32
10206 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10207 (build-system glib-or-gtk-build-system)
10208 (arguments
10209 ;; Disable the Python bindings because the Planner program functions
10210 ;; without them, and (as of 2017-06-13) we have not packaged all of
10211 ;; packages that are necessary for building the Python bindings.
10212 `(#:configure-flags
10213 (list "--disable-python"
10214 ,@(if (string=? "aarch64-linux" (%current-system))
10215 '("--build=aarch64-unknown-linux-gnu")
10216 '()))))
10217 (inputs
10218 `(("libgnomecanvas" ,libgnomecanvas)
10219 ("libgnomeui" ,libgnomeui)
10220 ("libglade" ,libglade)
10221 ("gnome-vfs" ,gnome-vfs)
10222 ("gconf" ,gconf)
10223 ("libxml2" ,libxml2)
10224 ("libxslt" ,libxslt)
10225 ("gtk+" ,gtk+)
10226 ("glib" ,glib)))
10227 (native-inputs
10228 `(("intltool" ,intltool)
10229 ("scrollkeeper" ,scrollkeeper)
10230 ("pkg-config" ,pkg-config)))
10231 (home-page "https://wiki.gnome.org/Apps/Planner")
10232 (synopsis "Project management software for the GNOME desktop")
10233 (description
10234 "GNOME Planner is a project management tool based on the Work Breakdown
10235 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10236 the resources, tasks, and constraints that you define, Planner generates
10237 various views into a project. For example, Planner can show a Gantt chart of
10238 the project. It can show a detailed summary of tasks including their
10239 duration, cost, and current progress. It can also show a report of resource
10240 utilization that highlights under-utilized and over-utilized resources. These
10241 views can be printed as PDF or PostScript files, or exported to HTML.")
10242 (license license:gpl2+)))
10243
10244 (define-public lollypop
10245 (package
10246 (name "lollypop")
10247 (version "1.4.6")
10248 (source
10249 (origin
10250 (method url-fetch)
10251 (uri (string-append "https://adishatz.org/lollypop/"
10252 "lollypop-" version ".tar.xz"))
10253 (sha256
10254 (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
10255 (build-system meson-build-system)
10256 (arguments
10257 `(#:imported-modules
10258 (,@%meson-build-system-modules
10259 (guix build python-build-system))
10260 #:modules
10261 ((guix build meson-build-system)
10262 ((guix build python-build-system) #:prefix python:)
10263 (guix build utils))
10264 #:glib-or-gtk? #t
10265 #:tests? #f ; no test suite
10266 #:phases
10267 (modify-phases %standard-phases
10268 (add-after 'install 'wrap-program
10269 (lambda* (#:key outputs #:allow-other-keys)
10270 (let ((out (assoc-ref outputs "out"))
10271 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10272 (wrap-program (string-append out "/bin/lollypop")
10273 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10274 #t))
10275 (add-after 'install 'wrap-python
10276 (assoc-ref python:%standard-phases 'wrap)))))
10277 (native-inputs
10278 `(("intltool" ,intltool)
10279 ("itstool" ,itstool)
10280 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10281 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10282 ("pkg-config" ,pkg-config)))
10283 (inputs
10284 `(("glib-networking" ,glib-networking)
10285 ("gobject-introspection" ,gobject-introspection)
10286 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10287 ("gst-plugins-base" ,gst-plugins-base)
10288 ("libnotify" ,libnotify)
10289 ("libsecret" ,libsecret)
10290 ("libhandy" ,libhandy)
10291 ("libsoup" ,libsoup)
10292 ("python" ,python)
10293 ("python-beautifulsoup4" ,python-beautifulsoup4)
10294 ("python-gst" ,python-gst)
10295 ("python-pil" ,python-pillow)
10296 ("python-pycairo" ,python-pycairo)
10297 ("python-pygobject" ,python-pygobject)
10298 ("python-pylast" ,python-pylast)
10299 ("totem-pl-parser" ,totem-pl-parser)
10300 ("webkitgtk" ,webkitgtk)))
10301 (propagated-inputs
10302 `(;; gst-plugins-base is required to start Lollypop,
10303 ;; the others are required to play streaming.
10304 ("gst-plugins-good" ,gst-plugins-good)
10305 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10306 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10307 (synopsis "GNOME music playing application")
10308 (description
10309 "Lollypop is a music player designed to play well with GNOME desktop.
10310 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10311 from artists and tracks from the web. It also fetches cover artworks
10312 automatically and it can stream songs from online music services and charts.")
10313 (license license:gpl3+)))
10314
10315 (define-public gnome-video-effects
10316 (package
10317 (name "gnome-video-effects")
10318 (version "0.5.0")
10319 (source (origin
10320 (method url-fetch)
10321 (uri (string-append "mirror://gnome/sources/" name "/"
10322 (version-major+minor version) "/" name "-"
10323 version ".tar.xz"))
10324 (sha256
10325 (base32
10326 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10327 (build-system meson-build-system)
10328 (native-inputs
10329 `(("gettext" ,gettext-minimal)
10330 ("pkg-config" ,pkg-config)))
10331 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10332 (synopsis "Video effects for Cheese and other GNOME applications")
10333 (description
10334 "A collection of GStreamer video filters and effects to be used in
10335 photo-booth-like software, such as Cheese.")
10336 (license license:gpl2+)))
10337
10338 (define-public cheese
10339 (package
10340 (name "cheese")
10341 (version "3.38.0")
10342 (source (origin
10343 (method url-fetch)
10344 (uri (string-append "mirror://gnome/sources/" name "/"
10345 (version-major+minor version) "/" name "-"
10346 version ".tar.xz"))
10347 (sha256
10348 (base32
10349 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10350 (arguments
10351 `(#:glib-or-gtk? #t
10352 ;; Tests require GDK.
10353 #:tests? #f
10354 #:phases
10355 (modify-phases %standard-phases
10356 (add-after 'unpack 'skip-gtk-update-icon-cache
10357 (lambda _
10358 ;; Don't create 'icon-theme.cache'
10359 (substitute* "meson_post_install.py"
10360 (("gtk-update-icon-cache") (which "true")))
10361 #t))
10362 (add-after 'unpack 'patch-docbook-xml
10363 (lambda* (#:key inputs #:allow-other-keys)
10364 ;; Avoid a network connection attempt during the build.
10365 (substitute* '("docs/reference/cheese.xml"
10366 "docs/reference/cheese-docs.xml")
10367 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10368 (string-append (assoc-ref inputs "docbook-xml")
10369 "/xml/dtd/docbook/docbookx.dtd")))
10370 #t))
10371 (add-after 'install 'wrap-cheese
10372 (lambda* (#:key inputs outputs #:allow-other-keys)
10373 (let ((out (assoc-ref outputs "out"))
10374 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10375 (wrap-program (string-append out "/bin/cheese")
10376 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10377 #t)))))
10378 (build-system meson-build-system)
10379 (native-inputs
10380 `(("docbook-xsl" ,docbook-xsl)
10381 ("docbook-xml" ,docbook-xml-4.3)
10382 ("gettext" ,gettext-minimal)
10383 ("glib:bin" ,glib "bin")
10384 ("gtk-doc" ,gtk-doc)
10385 ("itstool" ,itstool)
10386 ("libxml2" ,libxml2)
10387 ("libxslt" ,libxslt)
10388 ("pkg-config" ,pkg-config)
10389 ("vala" ,vala)))
10390 (propagated-inputs
10391 `(("gnome-video-effects" ,gnome-video-effects)
10392 ("clutter" ,clutter)
10393 ("clutter-gst" ,clutter-gst)
10394 ("clutter-gtk" ,clutter-gtk)
10395 ("libcanberra" ,libcanberra)
10396 ("gdk-pixbuf" ,gdk-pixbuf)
10397 ("glib" ,glib)
10398 ("gstreamer" ,gstreamer)))
10399 (inputs
10400 `(("gnome-desktop" ,gnome-desktop)
10401 ("gobject-introspection" ,gobject-introspection)
10402 ("gst-plugins-base" ,gst-plugins-base)
10403 ("gst-plugins-good" ,gst-plugins-good)
10404 ("gst-plugins-bad" ,gst-plugins-bad)
10405 ("gtk+" ,gtk+)
10406 ("libx11" ,libx11)
10407 ("libxtst" ,libxtst)))
10408 (home-page "https://wiki.gnome.org/Apps/Cheese")
10409 (synopsis "Webcam photo booth software for GNOME")
10410 (description
10411 "Cheese uses your webcam to take photos and videos. Cheese can also
10412 apply fancy special effects and lets you share the fun with others.")
10413 (license license:gpl2+)))
10414
10415 (define-public passwordsafe
10416 (package
10417 (name "passwordsafe")
10418 (version "3.99.2")
10419 (source
10420 (origin
10421 (method git-fetch)
10422 (uri (git-reference
10423 (url "https://gitlab.gnome.org/World/PasswordSafe")
10424 (commit version)))
10425 (file-name (git-file-name name version))
10426 (sha256
10427 (base32 "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf"))))
10428 (build-system meson-build-system)
10429 (arguments
10430 `(#:glib-or-gtk? #t
10431 #:phases
10432 (modify-phases %standard-phases
10433 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10434 (lambda* (#:key outputs #:allow-other-keys)
10435 (let ((prog (string-append (assoc-ref outputs "out")
10436 "/bin/gnome-passwordsafe"))
10437 (pylib (string-append (assoc-ref outputs "out")
10438 "/lib/python"
10439 ,(version-major+minor
10440 (package-version python))
10441 "/site-packages")))
10442 (wrap-program prog
10443 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10444 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10445 #t))))))
10446 (native-inputs
10447 `(("desktop-file-utils" ,desktop-file-utils)
10448 ("gettext" ,gettext-minimal)
10449 ("glib:bin" ,glib "bin")
10450 ("gobject-introspection" ,gobject-introspection)
10451 ("gtk+:bin" ,gtk+ "bin")
10452 ("pkg-config" ,pkg-config)))
10453 (inputs
10454 `(("glib" ,glib)
10455 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10456 ("gtk+" ,gtk+)
10457 ("libhandy" ,libhandy-0.0)
10458 ("libpwquality" ,libpwquality)
10459 ("python-pygobject" ,python-pygobject)
10460 ("python-pykeepass" ,python-pykeepass)))
10461 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
10462 (synopsis "Password manager for the GNOME desktop")
10463 (description
10464 "Password Safe is a password manager which makes use of the KeePass v4
10465 format. It integrates perfectly with the GNOME desktop and provides an easy
10466 and uncluttered interface for the management of password databases.")
10467 (license license:gpl3+)))
10468
10469 (define-public sound-juicer
10470 (package
10471 (name "sound-juicer")
10472 (version "3.24.0")
10473 (source
10474 (origin
10475 (method url-fetch)
10476 (uri (string-append "mirror://gnome/sources/" name "/"
10477 (version-major+minor version) "/"
10478 name "-" version ".tar.xz"))
10479 (sha256
10480 (base32
10481 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10482 (build-system glib-or-gtk-build-system)
10483 (native-inputs
10484 `(("desktop-file-utils" ,desktop-file-utils)
10485 ("intltool" ,intltool)
10486 ("itstool" ,itstool)
10487 ("pkg-config" ,pkg-config)
10488 ("xmllint" ,libxml2)))
10489 (inputs
10490 `(("gtk+" ,gtk+)
10491 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10492 ("gstreamer" ,gstreamer)
10493 ("gst-plugins-base" ,gst-plugins-base)
10494 ("gst-plugins-good" ,gst-plugins-good)
10495 ("iso-codes" ,iso-codes)
10496 ("libbrasero-media3" ,brasero)
10497 ("libcanberra" ,libcanberra)
10498 ("libdiscid" ,libdiscid)
10499 ("libmusicbrainz" ,libmusicbrainz)
10500 ("neon" ,neon)))
10501 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10502 (synopsis "Audio music cd ripper")
10503 (description "Sound Juicer extracts audio from compact discs and convert it
10504 into audio files that a personal computer or digital audio player can play.
10505 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10506 mp3, Ogg Vorbis and FLAC")
10507 (license license:gpl2+)))
10508
10509 (define-public soundconverter
10510 (package
10511 (name "soundconverter")
10512 (version "3.0.2")
10513 (source
10514 (origin
10515 (method url-fetch)
10516 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10517 version "/+download/"
10518 "soundconverter-" version ".tar.xz"))
10519
10520 (sha256
10521 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10522 (build-system glib-or-gtk-build-system)
10523 (arguments
10524 `(#:imported-modules ((guix build python-build-system)
10525 (guix build glib-or-gtk-build-system)
10526 ,@%gnu-build-system-modules)
10527
10528 #:modules ((guix build glib-or-gtk-build-system)
10529 (guix build utils)
10530 ((guix build gnu-build-system) #:prefix gnu:)
10531 ((guix build python-build-system) #:prefix python:))
10532
10533 #:phases
10534 (modify-phases %standard-phases
10535 (add-after 'install 'wrap-soundconverter-for-python
10536 (assoc-ref python:%standard-phases 'wrap))
10537 (add-after 'install 'wrap-soundconverter
10538 (lambda* (#:key inputs outputs #:allow-other-keys)
10539 (let ((out (assoc-ref outputs "out"))
10540 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10541 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10542 (wrap-program (string-append out "/bin/soundconverter")
10543 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10544 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10545 #t)))))
10546 (native-inputs
10547 `(("intltool" ,intltool)
10548 ("pkg-config" ,pkg-config)
10549 ("glib:bin" ,glib "bin")))
10550 (inputs
10551 `(("gtk+" ,gtk+)
10552 ("python" ,python)
10553 ("python-pygobject" ,python-pygobject)
10554 ("gstreamer" ,gstreamer)
10555 ("gst-plugins-base" ,gst-plugins-base)))
10556 (home-page "https://soundconverter.org/")
10557 (synopsis "Convert between audio formats with a graphical interface")
10558 (description
10559 "SoundConverter supports converting between many audio formats including
10560 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10561 configurable file renaming. ")
10562 (license license:gpl3)))
10563
10564 (define-public workrave
10565 (package
10566 (name "workrave")
10567 (version "1.10.42")
10568 (source
10569 (origin
10570 (method git-fetch)
10571 (uri (git-reference
10572 (url "https://github.com/rcaelers/workrave")
10573 (commit (string-append "v" (string-map
10574 (match-lambda (#\. #\_) (chr chr))
10575 version)))))
10576 (file-name (git-file-name name version))
10577 (sha256
10578 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
10579 (build-system glib-or-gtk-build-system)
10580 (arguments
10581 ;; The only tests are maintainer tests (in po/), which fail.
10582 `(#:tests? #f))
10583 (inputs `(("glib" ,glib)
10584 ("gtk+" ,gtk+)
10585 ("gdk-pixbuf" ,gdk-pixbuf)
10586 ("gtkmm" ,gtkmm)
10587 ("glibmm" ,glibmm)
10588 ("libx11" ,libx11)
10589 ("libxtst" ,libxtst)
10590 ("dconf" ,dconf)
10591 ("libice" ,libice)
10592 ("libsm" ,libsm)
10593 ("libxscrnsaver" ,libxscrnsaver)))
10594 (native-inputs `(("boost" ,boost)
10595 ("pkg-config" ,pkg-config)
10596 ("gettext" ,gettext-minimal)
10597 ("autoconf" ,autoconf)
10598 ("autoconf-archive" , autoconf-archive)
10599 ("automake" ,automake)
10600 ("libtool" ,libtool)
10601 ("intltool" ,intltool)
10602 ("gobject-introspection" ,gobject-introspection)
10603 ("python3" ,python-3)
10604 ("python-jinja2" ,python-jinja2)))
10605 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10606 (description
10607 "Workrave is a program that assists in the recovery and prevention of
10608 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10609 micro-pauses and rest breaks, and restricts you to your daily limit.")
10610 (home-page "http://www.workrave.org")
10611 (license license:gpl3+)))
10612
10613 (define-public ghex
10614 (package
10615 (name "ghex")
10616 (version "3.18.4")
10617 (source (origin
10618 (method url-fetch)
10619 (uri (string-append "mirror://gnome/sources/ghex/"
10620 (version-major+minor version) "/"
10621 "ghex-" version ".tar.xz"))
10622 (sha256
10623 (base32
10624 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10625 (build-system meson-build-system)
10626 (arguments
10627 '(#:glib-or-gtk? #t
10628 #:phases
10629 (modify-phases %standard-phases
10630 (add-after 'unpack 'skip-gtk-update-icon-cache
10631 ;; Don't create 'icon-theme.cache'.
10632 (lambda _
10633 (substitute* "meson_post_install.py"
10634 (("gtk-update-icon-cache") (which "true")))
10635 #t)))))
10636 (native-inputs
10637 `(("pkg-config" ,pkg-config)
10638 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10639 ("gnome-common" ,gnome-common)
10640 ("which" ,which)
10641 ("intltool" ,intltool)
10642 ("yelp-tools" ,yelp-tools)
10643 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10644 (inputs
10645 `(("atk" ,atk)
10646 ("gtk" ,gtk+)))
10647 (synopsis "GNOME hexadecimal editor")
10648 (description "The GHex program can view and edit files in two ways:
10649 hexadecimal or ASCII. It is useful for editing binary files in general.")
10650 (home-page "https://wiki.gnome.org/Apps/Ghex")
10651 (license license:gpl2)))
10652
10653 (define-public libdazzle
10654 (package
10655 (name "libdazzle")
10656 (version "3.37.1")
10657 (source (origin
10658 (method url-fetch)
10659 (uri (string-append "mirror://gnome/sources/libdazzle/"
10660 (version-major+minor version) "/"
10661 "libdazzle-" version ".tar.xz"))
10662 (sha256
10663 (base32
10664 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10665 (build-system meson-build-system)
10666 (arguments
10667 `(#:phases
10668 (modify-phases %standard-phases
10669 (add-before 'check 'pre-check
10670 (lambda _
10671 ;; Tests require a running X server.
10672 (system "Xvfb :1 &")
10673 (setenv "DISPLAY" ":1")
10674 #t)))))
10675 (native-inputs
10676 `(("glib" ,glib "bin") ; glib-compile-resources
10677 ("pkg-config" ,pkg-config)
10678 ;; For tests.
10679 ("xorg-server" ,xorg-server-for-tests)))
10680 (inputs
10681 `(("glib" ,glib)
10682 ("gobject-introspection" ,gobject-introspection)
10683 ("gtk+" ,gtk+)
10684 ("vala" ,vala)))
10685 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10686 (synopsis "Companion library to GObject and Gtk+")
10687 (description "The libdazzle library is a companion library to GObject and
10688 Gtk+. It provides various features that the authors wish were in the
10689 underlying library but cannot for various reasons. In most cases, they are
10690 wildly out of scope for those libraries. In other cases, they are not quite
10691 generic enough to work for everyone.")
10692 (license license:gpl3+)))
10693
10694 (define-public evolution
10695 (package
10696 (name "evolution")
10697 (version "3.34.2")
10698 (source (origin
10699 (method url-fetch)
10700 (uri (string-append "mirror://gnome/sources/evolution/"
10701 (version-major+minor version) "/"
10702 "evolution-" version ".tar.xz"))
10703 (sha256
10704 (base32
10705 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
10706 (build-system cmake-build-system)
10707 (arguments
10708 `(#:imported-modules (,@%cmake-build-system-modules
10709 (guix build glib-or-gtk-build-system))
10710 #:modules ((guix build cmake-build-system)
10711 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10712 (guix build utils))
10713 #:configure-flags
10714 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10715 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10716 ; in four years and cannot be built.
10717 #:phases
10718 (modify-phases %standard-phases
10719 ;; The build system attempts to install user interface modules to the
10720 ;; output directory of the "evolution-data-server" package. This
10721 ;; change redirects that change.
10722 (add-after 'unpack 'patch-ui-module-dir
10723 (lambda* (#:key outputs #:allow-other-keys)
10724 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10725 (("\\$\\{edsuimoduledir\\}")
10726 (string-append (assoc-ref outputs "out")
10727 "/lib/evolution-data-server/ui-modules")))
10728 #t))
10729 (add-after 'install 'glib-or-gtk-compile-schemas
10730 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10731 (add-after 'install 'glib-or-gtk-wrap
10732 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10733 (native-inputs
10734 `(("glib" ,glib "bin") ; glib-mkenums
10735 ("pkg-config" ,pkg-config)
10736 ("intltool" ,intltool)
10737 ("itstool" ,itstool)))
10738 (inputs
10739 `(("enchant" ,enchant)
10740 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10741 ("gcr" ,gcr)
10742 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10743 ("gnome-autoar" ,gnome-autoar)
10744 ("gnome-desktop" ,gnome-desktop)
10745 ("gspell" ,gspell)
10746 ("highlight" ,highlight)
10747 ("libcanberra" ,libcanberra)
10748 ("libgweather" ,libgweather)
10749 ("libnotify" ,libnotify)
10750 ("libsoup" ,libsoup)
10751 ("nss" ,nss)
10752 ("openldap" ,openldap)
10753 ("webkitgtk" ,webkitgtk)
10754 ("ytnef" ,ytnef)))
10755 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10756 (synopsis "Manage your email, contacts and schedule")
10757 (description "Evolution is a personal information management application
10758 that provides integrated mail, calendaring and address book
10759 functionality.")
10760 ;; See COPYING for details.
10761 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10762 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10763 license:lgpl2.1+)))) ; smime/lib/*
10764
10765 (define-public gthumb
10766 (package
10767 (name "gthumb")
10768 (version "3.8.2")
10769 (source (origin
10770 (method url-fetch)
10771 (uri (string-append "mirror://gnome/sources/gthumb/"
10772 (version-major+minor version) "/"
10773 "gthumb-" version ".tar.xz"))
10774 (sha256
10775 (base32
10776 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
10777 (build-system meson-build-system)
10778 (arguments
10779 `(#:glib-or-gtk? #t
10780 #:configure-flags
10781 ;; Ensure the RUNPATH contains all installed library locations.
10782 (list (string-append "-Dc_link_args=-Wl,-rpath="
10783 (assoc-ref %outputs "out")
10784 "/lib/gthumb/extensions")
10785 (string-append "-Dcpp_link_args=-Wl,-rpath="
10786 (assoc-ref %outputs "out")
10787 "/lib/gthumb/extensions"))))
10788 (native-inputs
10789 `(("pkg-config" ,pkg-config)
10790 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10791 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10792 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10793 ("intltool" ,intltool)
10794 ("itstool" ,itstool)))
10795 (inputs
10796 `(("exiv2" ,exiv2)
10797 ("gtk" ,gtk+)
10798 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10799 ("gstreamer" ,gstreamer)
10800 ("clutter" ,clutter)
10801 ("clutter-gst" ,clutter-gst)
10802 ("clutter-gtk" ,clutter-gtk)
10803 ("libjpeg" ,libjpeg-turbo)
10804 ("libtiff" ,libtiff)
10805 ("libraw" ,libraw)))
10806 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10807 (synopsis "GNOME image viewer and browser")
10808 (description "GThumb is an image viewer, browser, organizer, editor and
10809 advanced image management tool")
10810 (license license:gpl2+)))
10811
10812 (define-public terminator
10813 (package
10814 (name "terminator")
10815 (version "1.92")
10816 (source (origin
10817 (method url-fetch)
10818 (uri (string-append "https://github.com/gnome-" name "/" name "/"
10819 "releases/download/v" version "/"
10820 name "-" version ".tar.gz"))
10821 (sha256
10822 (base32
10823 "1wbkfp0nk6x9bcwi681zy30qmrp4h754sdz6b7hi9j22mmvdd50z"))))
10824 (build-system python-build-system)
10825 (native-inputs
10826 `(("gettext" ,gettext-minimal)
10827 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10828 ("gobject-introspection" ,gobject-introspection)
10829 ("intltool" ,intltool)
10830 ("pkg-config" ,pkg-config)
10831 ("python-psutil" ,python-psutil)
10832 ("python-pytest-runner" ,python-pytest-runner)
10833 ("python-pytest" ,python-pytest)))
10834 (inputs
10835 `(("cairo" ,cairo)
10836 ("dbus-glib" ,dbus-glib)
10837 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10838 ("gtk+" ,gtk+)
10839 ("python-pycairo" ,python-pycairo)
10840 ("python-pygobject" ,python-pygobject)
10841 ("vte" ,vte)))
10842 (propagated-inputs
10843 `(("python-configobj" ,python-configobj)))
10844 (arguments
10845 `(#:imported-modules ((guix build glib-or-gtk-build-system)
10846 ,@%python-build-system-modules)
10847 #:modules ((guix build python-build-system)
10848 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10849 (guix build utils))
10850 #:phases
10851 (modify-phases %standard-phases
10852 (add-after
10853 'install 'wrap-program
10854 (lambda* (#:key outputs #:allow-other-keys)
10855 (let ((prog (string-append (assoc-ref outputs "out")
10856 "/bin/terminator"))
10857 (pylib (string-append (assoc-ref outputs "out")
10858 "/lib/python"
10859 ,(version-major+minor
10860 (package-version python))
10861 "/site-packages")))
10862 (wrap-program prog
10863 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10864 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10865 #t)))
10866 (add-after 'wrap-program 'glib-or-gtk-wrap
10867 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10868 (home-page "https://gnome-terminator.org/")
10869 (synopsis "Store and run multiple GNOME terminals in one window")
10870 (description
10871 "Terminator allows you to run multiple GNOME terminals in a grid and
10872 tabs, and it supports drag and drop re-ordering of terminals.")
10873 (license license:gpl2)))
10874
10875 (define-public libhandy
10876 (package
10877 (name "libhandy")
10878 (version "1.0.3")
10879 (source
10880 (origin
10881 (method git-fetch)
10882 (uri (git-reference
10883 (url "https://gitlab.gnome.org/GNOME/libhandy")
10884 (commit version)))
10885 (file-name (git-file-name name version))
10886 (sha256
10887 (base32 "0flgwlm921801i3ns0dwqpnxl89f3rzn4y9h723i13bmflch3in7"))))
10888 (build-system meson-build-system)
10889 (arguments
10890 `(#:configure-flags
10891 '("-Dglade_catalog=enabled"
10892 "-Dgtk_doc=true")
10893 #:phases
10894 (modify-phases %standard-phases
10895 (add-before 'check 'pre-check
10896 (lambda _
10897 ;; Tests require a running X server.
10898 (system "Xvfb :1 &")
10899 (setenv "DISPLAY" ":1")
10900 #t)))))
10901 (inputs
10902 `(("gtk+" ,gtk+)
10903 ("glade" ,glade3)
10904 ("libxml2" ,libxml2)))
10905 (native-inputs
10906 `(("glib:bin" ,glib "bin")
10907 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10908 ("vala" ,vala)
10909 ("gtk-doc" ,gtk-doc)
10910 ("pkg-config" ,pkg-config)
10911 ("gettext" ,gettext-minimal)
10912
10913 ;; Test suite dependencies.
10914 ("xorg-server" ,xorg-server-for-tests)
10915 ("hicolor-icon-theme" ,hicolor-icon-theme)))
10916 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
10917 (synopsis "Library full of GTK+ widgets for mobile phones")
10918 (description "The aim of the handy library is to help with developing user
10919 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10920 for usage on small and big screens.")
10921 (license license:lgpl2.1+)))
10922
10923 (define-public libhandy-0.0
10924 (package
10925 (inherit libhandy)
10926 (version "0.0.13")
10927 (source
10928 (origin
10929 (method git-fetch)
10930 (uri (git-reference
10931 (url "https://gitlab.gnome.org/GNOME/libhandy")
10932 (commit (string-append "v" version))))
10933 (file-name (git-file-name "libhandy" version))
10934 (sha256
10935 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
10936 (arguments
10937 (substitute-keyword-arguments (package-arguments libhandy)
10938 ((#:configure-flags flags)
10939 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
10940
10941 (define-public libgit2-glib
10942 (package
10943 (name "libgit2-glib")
10944 (version "0.99.0.1")
10945 (source (origin
10946 (method url-fetch)
10947 (uri (string-append "mirror://gnome/sources/" name "/"
10948 (version-major+minor version) "/"
10949 name "-" version ".tar.xz"))
10950 (sha256
10951 (base32
10952 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10953 (build-system meson-build-system)
10954 (native-inputs
10955 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
10956 ("gobject-introspection" ,gobject-introspection)
10957 ("pkg-config" ,pkg-config)
10958 ("python-pygobject" ,python-pygobject)
10959 ("python-wrapper" ,python-wrapper)
10960 ("vala" ,vala)))
10961 (inputs
10962 `(("glib" ,glib)
10963 ("libssh2" ,libssh2)))
10964 (propagated-inputs
10965 `(;; In Requires of libgit2-glib.pc.
10966 ("libgit2" ,libgit2)))
10967 (synopsis "GLib wrapper around the libgit2 Git access library")
10968 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
10969 access library. It only implements the core plumbing functions, not really the
10970 higher level porcelain stuff.")
10971 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
10972 (license license:gpl2+)))
10973
10974 (define-public gitg
10975 (package
10976 (name "gitg")
10977 (version "3.32.1")
10978 (source (origin
10979 (method url-fetch)
10980 (uri (string-append "mirror://gnome/sources/" name "/"
10981 (version-major+minor version) "/"
10982 name "-" version ".tar.xz"))
10983 (sha256
10984 (base32
10985 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
10986 (build-system meson-build-system)
10987 (arguments
10988 `(#:glib-or-gtk? #t
10989 #:phases
10990 (modify-phases %standard-phases
10991 (add-after 'unpack 'disable-post-install-partially
10992 (lambda _
10993 (substitute* "meson_post_install.py"
10994 (("'python'") ; there are no python sources to compile
10995 (string-append "'" (which "true") "'"))
10996 (("gtk-update-icon-cache") (which "true")))
10997 #t))
10998 (add-after 'unpack 'fix-test-sources
10999 (lambda _
11000 (substitute* "tests/libgitg/test-commit.vala"
11001 (("/bin/bash") (which "bash")))
11002 #t))
11003 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11004 (lambda* (#:key outputs #:allow-other-keys)
11005 (let ((prog (string-append (assoc-ref outputs "out")
11006 "/bin/gitg")))
11007 (wrap-program prog
11008 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11009 #t))))))
11010 (inputs
11011 `(("glib" ,glib)
11012 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11013 ("gtk+" ,gtk+)
11014 ("gtkspell3" ,gtkspell3)
11015 ("gtksourceview" ,gtksourceview-3)
11016 ("json-glib" ,json-glib)
11017 ("libdazzle" ,libdazzle)
11018 ("libgee" ,libgee)
11019 ("libgit2-glib" ,libgit2-glib)
11020 ("libpeas" ,libpeas)
11021 ("libsecret" ,libsecret)
11022 ("libsoup" ,libsoup)
11023 ("libxml2" ,libxml2)))
11024 (native-inputs
11025 `(("glib:bin" ,glib "bin")
11026 ("gtk+:bin" ,gtk+ "bin")
11027 ("gobject-introspection" ,gobject-introspection)
11028 ("intltool" ,intltool)
11029 ("pkg-config" ,pkg-config)
11030 ("vala" ,vala)))
11031 (synopsis "Graphical user interface for git")
11032 (description
11033 "gitg is a graphical user interface for git. It aims at being a small,
11034 fast and convenient tool to visualize the history of git repositories.
11035 Besides visualization, gitg also provides several utilities to manage your
11036 repository and commit your work.")
11037 (home-page "https://wiki.gnome.org/Apps/Gitg")
11038 (license license:gpl2+)))
11039
11040 (define-public gamin
11041 (package
11042 (name "gamin")
11043 (version "0.1.10")
11044 (source (origin
11045 (method url-fetch)
11046 (uri (string-append "mirror://gnome/sources/" name "/"
11047 (version-major+minor version) "/"
11048 name "-" version ".tar.bz2"))
11049 (sha256
11050 (base32
11051 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11052 (build-system gnu-build-system)
11053 (arguments
11054 `(#:phases
11055 (modify-phases %standard-phases
11056 (add-after 'unpack 'remove-deprecated-macro
11057 (lambda _
11058 (substitute* '("server/gam_node.c"
11059 "server/gam_subscription.h"
11060 "server/gam_node.h"
11061 "server/gam_subscription.c")
11062 (("G_CONST_RETURN") "const"))
11063 #t)))))
11064 (inputs
11065 `(("glib" ,glib)))
11066 (native-inputs
11067 `(("intltool" ,intltool)
11068 ("pkg-config" ,pkg-config)))
11069 (home-page "https://people.gnome.org/~veillard/gamin/")
11070 (synopsis "File alteration monitor")
11071 (description
11072 "Gamin is a file and directory monitoring system defined to be a subset
11073 of the FAM (File Alteration Monitor) system. This is a service provided by a
11074 library which detects when a file or a directory has been modified.")
11075 (license license:gpl2+)))
11076
11077 (define-public gnome-mahjongg
11078 (package
11079 (name "gnome-mahjongg")
11080 (version "3.35.1")
11081 (source (origin
11082 (method git-fetch)
11083 (uri (git-reference
11084 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
11085 (commit version)))
11086 (file-name (git-file-name name version))
11087 (sha256
11088 (base32
11089 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
11090 (build-system meson-build-system)
11091 (arguments
11092 `(#:glib-or-gtk? #t))
11093 (native-inputs
11094 `(("appstream-glib" ,appstream-glib)
11095 ("gettext" ,gettext-minimal)
11096 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11097 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11098 ("itstool" ,itstool)
11099 ("pkg-config" ,pkg-config)
11100 ("vala" ,vala)))
11101 (propagated-inputs
11102 `(("dconf" ,dconf)))
11103 (inputs
11104 `(("glib" ,glib)
11105 ("gtk+" ,gtk+)
11106 ("librsvg" ,librsvg)))
11107 (synopsis "Mahjongg tile-matching game")
11108 (description "GNOME Mahjongg is a game based on the classic Chinese
11109 tile-matching game Mahjong. It features multiple board layouts, tile themes,
11110 and a high score table.")
11111 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11112 (license license:gpl2+)))
11113
11114 (define-public gnome-themes-extra
11115 (package
11116 (name "gnome-themes-extra")
11117 (version "3.28")
11118 (source
11119 (origin
11120 (method url-fetch)
11121 (uri (string-append "mirror://gnome/sources/" name "/"
11122 (version-major+minor version) "/" name "-"
11123 version ".tar.xz"))
11124 (sha256
11125 (base32
11126 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11127 (build-system gnu-build-system)
11128 (arguments
11129 '(#:configure-flags
11130 ;; Don't create 'icon-theme.cache'.
11131 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11132 (true (string-append coreutils "/bin/true")))
11133 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11134 (native-inputs
11135 `(("glib:bin" ,glib "bin")
11136 ("intltool" ,intltool)
11137 ("pkg-config" ,pkg-config)))
11138 (inputs
11139 `(("glib" ,glib)
11140 ("gtk+" ,gtk+)
11141 ("gtk+-2" ,gtk+-2)
11142 ("librsvg" ,librsvg)
11143 ("libxml2" ,libxml2)))
11144 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11145 (synopsis "GNOME Extra Themes")
11146 (description "This package provides themes and related elements that don't
11147 really fit in other upstream packages. It offers legacy support for GTK+ 2
11148 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11149 index files needed for Adwaita to be used outside of GNOME.")
11150 (license license:lgpl2.1+)))
11151
11152 (define-public gnote
11153 (package
11154 (name "gnote")
11155 (version "3.38.0")
11156 (source
11157 (origin
11158 (method url-fetch)
11159 (uri (string-append "mirror://gnome/sources/" name "/"
11160 (version-major+minor version) "/"
11161 "gnote-" version ".tar.xz"))
11162 (sha256
11163 (base32 "1ingbaw4d8vpjn083xvzqw7kz8z0k2bx7msk78pbzd68bwgkadpx"))))
11164 (build-system glib-or-gtk-build-system)
11165 (native-inputs
11166 `(("desktop-file-utils" ,desktop-file-utils)
11167 ("glib:bin" ,glib "bin")
11168 ("gobject-introspection" ,gobject-introspection)
11169 ("intltool" ,intltool)
11170 ("itstool" ,itstool)
11171 ("pkg-config" ,pkg-config)
11172 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
11173 (inputs
11174 `(("glibmm" ,glibmm)
11175 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11176 ("gspell" ,gspell)
11177 ("gtk+" ,gtk+)
11178 ("gtkmm" ,gtkmm)
11179 ("libsecret" ,libsecret)
11180 ("libuuid" ,util-linux "lib")
11181 ("libxml2" ,libxml2)
11182 ("libxslt" ,libxslt)))
11183 (synopsis "Note-taking application for the GNOME desktop")
11184 (description
11185 "Gnote is a note-taking application written for the GNOME desktop
11186 environment.")
11187 (home-page "https://wiki.gnome.org/Apps/Gnote")
11188 (license license:gpl3+)))
11189
11190 (define-public polari
11191 (package
11192 (name "polari")
11193 (version "3.36.3")
11194 (source (origin
11195 (method url-fetch)
11196 (uri (string-append "mirror://gnome/sources/polari/"
11197 (version-major+minor version)
11198 "/polari-" version ".tar.xz"))
11199 (sha256
11200 (base32
11201 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11202 (build-system meson-build-system)
11203 (arguments
11204 `(#:glib-or-gtk? #t
11205 #:phases
11206 (modify-phases %standard-phases
11207 (add-after 'unpack 'skip-gtk-update-icon-cache
11208 (lambda _
11209 (substitute* "meson/meson-postinstall.sh"
11210 (("gtk-update-icon-cache") (which "true")))
11211 #t))
11212 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11213 (lambda* (#:key outputs #:allow-other-keys)
11214 (let ((prog (string-append (assoc-ref outputs "out")
11215 "/bin/polari")))
11216 (wrap-program prog
11217 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11218 #t))))))
11219 (inputs
11220 `(("glib" ,glib)
11221 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11222 ("gspell" ,gspell)
11223 ("gtk+" ,gtk+)
11224 ("gjs" ,gjs)
11225 ("libsecret" ,libsecret)
11226 ("libsoup" ,libsoup)
11227 ("telepathy-glib" ,telepathy-glib)
11228 ("telepathy-logger" ,telepathy-logger)))
11229 (native-inputs
11230 `(("glib:bin" ,glib "bin")
11231 ("gobject-introspection" ,gobject-introspection)
11232 ("intltool" ,intltool)
11233 ("pkg-config" ,pkg-config)
11234 ("yelp-tools" ,yelp-tools)))
11235 (propagated-inputs
11236 `(("telepathy-idle" ,telepathy-idle)
11237 ("telepathy-mission-control" ,telepathy-mission-control)))
11238 (synopsis "Simple IRC Client")
11239 (description
11240 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11241 integrate seamlessly with the GNOME desktop.")
11242 (home-page "https://wiki.gnome.org/Apps/Polari")
11243 (license license:gpl2+)))
11244
11245 (define-public gnome-boxes
11246 (package
11247 (name "gnome-boxes")
11248 (version "3.36.6")
11249 (source
11250 (origin
11251 (method url-fetch)
11252 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11253 (version-major+minor version) "/"
11254 "gnome-boxes-" version ".tar.xz"))
11255 (sha256
11256 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11257 (build-system meson-build-system)
11258 (arguments
11259 '(#:glib-or-gtk? #t
11260 #:configure-flags (list "-Drdp=false"
11261 (string-append "-Dc_link_args=-Wl,-rpath="
11262 (assoc-ref %outputs "out")
11263 "/lib/gnome-boxes"))))
11264 (native-inputs
11265 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11266 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11267 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11268 ("itstool" ,itstool)
11269 ("intltool" ,intltool)
11270 ("vala" ,vala)
11271 ("pkg-config" ,pkg-config)))
11272 (inputs
11273 `(("libarchive" ,libarchive)
11274 ("glib-networking" ,glib-networking) ;for TLS support
11275 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11276 ("gtk" ,gtk+)
11277 ("gtk-vnc" ,gtk-vnc)
11278 ("libosinfo" ,libosinfo)
11279 ("libsecret" ,libsecret)
11280 ("libsoup" ,libsoup)
11281 ("libusb" ,libusb)
11282 ("libvirt" ,libvirt)
11283 ("libvirt-glib" ,libvirt-glib)
11284 ("libxml" ,libxml2)
11285 ("spice-gtk" ,spice-gtk)
11286 ("sparql-query" ,sparql-query)
11287 ("vte" ,vte)
11288 ("webkitgtk" ,webkitgtk)
11289 ("tracker" ,tracker)
11290 ("libgudev" ,libgudev)))
11291 (home-page "https://wiki.gnome.org/Apps/Boxes")
11292 (synopsis "View, access, and manage remote and virtual systems")
11293 (description "GNOME Boxes is a simple application to view, access, and
11294 manage remote and virtual systems. Note that this application requires the
11295 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11296 @command{info '(guix) Virtualization Services'} to learn how to configure
11297 these services on the Guix System.")
11298 (license (list
11299 ;; For data/icons/empty-boxes.png.
11300 license:cc-by2.0
11301 ;; For all others.
11302 license:lgpl2.0+))))
11303
11304 (define-public geary
11305 (package
11306 (name "geary")
11307 (version "3.34.1")
11308 (source (origin
11309 (method git-fetch)
11310 (uri (git-reference
11311 (url "https://gitlab.gnome.org/GNOME/geary")
11312 (commit version)))
11313 (file-name (git-file-name name version))
11314 (sha256
11315 (base32
11316 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
11317 (build-system meson-build-system)
11318 (arguments
11319 `(#:glib-or-gtk? #t
11320 #:phases (modify-phases %standard-phases
11321 (add-after 'unpack 'disable-failing-tests
11322 (lambda _
11323 (substitute* "test/meson.build"
11324 (("test\\('client-tests', geary_test_client_bin\\)")
11325 ""))
11326 #t))
11327 (add-after 'unpack 'disable-postinstall-script
11328 (lambda _
11329 (substitute* "meson.build"
11330 (("meson.add_install_script\\(\
11331 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11332 ""))
11333 #t))
11334 (add-before 'check 'setup-xvfb
11335 (lambda _
11336 (system "Xvfb :1 &")
11337 (setenv "DISPLAY" ":1")
11338 #t)))))
11339 (inputs
11340 `(("enchant" ,enchant)
11341 ("folks" ,folks)
11342 ("gcr" ,gcr)
11343 ("glib" ,glib)
11344 ("gmime" ,gmime-2.6)
11345 ("gnome-online-accounts:lib"
11346 ,gnome-online-accounts "lib")
11347 ("gspell" ,gspell)
11348 ("gtk+" ,gtk+)
11349 ("iso-codes" ,iso-codes)
11350 ("json-glib" ,json-glib)
11351 ("libcanberra" ,libcanberra)
11352 ("libgee" ,libgee)
11353 ("libhandy" ,libhandy-0.0)
11354 ("libpeas" ,libpeas)
11355 ("libsecret" ,libsecret)
11356 ("libunwind" ,libunwind)
11357 ("sqlite" ,sqlite)
11358 ("webkitgtk" ,webkitgtk)
11359 ("ytnef" ,ytnef)))
11360 (native-inputs
11361 `(("appstream-glib" ,appstream-glib)
11362 ("cmake-minimal" ,cmake-minimal)
11363 ("desktop-file-utils" ,desktop-file-utils)
11364 ("gettext" ,gettext-minimal)
11365 ("glib:bin" ,glib "bin")
11366 ("gobject-introspection" ,gobject-introspection)
11367 ("itstool" ,itstool)
11368 ("libarchive" ,libarchive)
11369 ("libxml2" ,libxml2)
11370 ("pkg-config" ,pkg-config)
11371 ("vala" ,vala)
11372 ("xvfb" ,xorg-server-for-tests)))
11373 (synopsis "GNOME email application built around conversations")
11374 (description
11375 "Geary collects related messages together into conversations,
11376 making it easy to find and follow your discussions. Full-text and keyword
11377 search makes it easy to find the email you are looking for. Geary's
11378 full-featured composer lets you send rich, styled text with images, links, and
11379 lists, but also send lightweight, easy to read text messages. Geary
11380 automatically picks up your existing GNOME Online Accounts, and adding more is
11381 easy. Geary has a clean, fast, modern interface that works like you want it
11382 to.")
11383 (home-page "https://wiki.gnome.org/Apps/Geary")
11384 (license (list
11385 ;; geary
11386 license:lgpl2.1+
11387 ;; icons
11388 license:cc-by3.0
11389 license:cc-by-sa3.0
11390 license:public-domain
11391 ;; snowball
11392 license:bsd-2))))
11393
11394 (define-public glabels
11395 (package
11396 (name "glabels")
11397 (version "3.4.1")
11398 (source
11399 (origin
11400 (method url-fetch)
11401 (uri (string-append "mirror://gnome/sources/" name "/"
11402 (version-major+minor version) "/"
11403 "glabels-" version ".tar.xz"))
11404 (sha256
11405 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11406 (build-system glib-or-gtk-build-system)
11407 (native-inputs
11408 `(("gettext" ,gettext-minimal)
11409 ("glib:bin" ,glib "bin")
11410 ("intltool" ,intltool)
11411 ("itstool" ,itstool)
11412 ("pkg-config" ,pkg-config)))
11413 (inputs
11414 `(("gtk+" ,gtk+)
11415 ("librsvg" ,librsvg)
11416 ("libxml2" ,libxml2)))
11417 (home-page "https://glabels.org/")
11418 (synopsis "Program for creating labels and business cards")
11419 (description
11420 "gLabels is a program for creating labels and business cards. It is
11421 designed to work with various laser/ink-jet peel-off label and business
11422 card sheets that you’ll find at most office supply stores.")
11423 (license license:gpl3+)))
11424
11425 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11426 (define-public gnome-latex
11427 (package
11428 (name "gnome-latex")
11429 (version "3.36.0")
11430 (source
11431 (origin
11432 (method url-fetch)
11433 (uri (string-append "mirror://gnome/sources/" name "/"
11434 (version-major+minor version) "/"
11435 "gnome-latex-" version ".tar.xz"))
11436 (sha256
11437 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11438 (build-system glib-or-gtk-build-system)
11439 (native-inputs
11440 `(("gettext" ,gettext-minimal)
11441 ("glib:bin" ,glib "bin")
11442 ("gobject-introspection" ,gobject-introspection)
11443 ("gtk-doc" ,gtk-doc)
11444 ("intltool" ,intltool)
11445 ("itstool" ,itstool)
11446 ("pkg-config" ,pkg-config)
11447 ("vala" ,vala)))
11448 (inputs
11449 `(("amtk" ,amtk)
11450 ("dconf" ,dconf)
11451 ("glib" ,glib)
11452 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11453 ("gspell" ,gspell)
11454 ("gtk+" ,gtk+)
11455 ("gtksourceview" ,gtksourceview)
11456 ("libgee" ,libgee)
11457 ("tepl" ,tepl)
11458 ("uchardet" ,uchardet)))
11459 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11460 (synopsis "LaTeX editor for the GNOME desktop")
11461 (description
11462 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11463 such as build tools, completion of LaTeX commands, structure navigation,
11464 symbol tables, document templates, project management, spell-checking, menus
11465 and toolbars.")
11466 (license license:gpl3+)))
11467
11468 (define-public setzer
11469 (package
11470 (name "setzer")
11471 (version "0.4.1")
11472 (source
11473 (origin
11474 (method git-fetch)
11475 (uri (git-reference
11476 (url "https://github.com/cvfosammmm/Setzer")
11477 (commit (string-append "v" version))))
11478 (file-name (git-file-name name version))
11479 (sha256
11480 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
11481 (build-system meson-build-system)
11482 (arguments
11483 `(#:glib-or-gtk? #t
11484 #:phases
11485 (modify-phases %standard-phases
11486 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11487 (lambda* (#:key outputs #:allow-other-keys)
11488 (let ((prog (string-append (assoc-ref outputs "out")
11489 "/bin/setzer"))
11490 (pylib (string-append (assoc-ref outputs "out")
11491 "/lib/python"
11492 ,(version-major+minor
11493 (package-version python))
11494 "/site-packages")))
11495 (wrap-program prog
11496 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
11497 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11498 #t))))))
11499 (native-inputs
11500 `(("desktop-file-utils" ,desktop-file-utils)
11501 ("gettext" ,gettext-minimal)
11502 ("glib:bin" ,glib "bin")
11503 ("gobject-introspection" ,gobject-introspection)
11504 ("gtk+:bin" ,gtk+ "bin")))
11505 (inputs
11506 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11507 ("gspell" ,gspell)
11508 ("gtk+" ,gtk+)
11509 ("gtksourceview" ,gtksourceview)
11510 ("pango" ,pango)
11511 ("poppler" ,poppler)
11512 ("python-pdfminer" ,python-pdfminer-six)
11513 ("python-pycairo" ,python-pycairo)
11514 ("python-pygobject" ,python-pygobject)
11515 ("python-pyxdg" ,python-pyxdg)
11516 ("webkitgtk" ,webkitgtk)
11517 ("xdg-utils" ,xdg-utils)))
11518 (home-page "https://www.cvfosammmm.org/setzer/")
11519 (synopsis "LaTeX editor written in Python with GTK+")
11520 (description
11521 "Setzer is a simple yet full-featured LaTeX editor written in Python with
11522 GTK+. It integrates well with the GNOME desktop environment.")
11523 (license license:gpl3+)))
11524
11525 (define-public libratbag
11526 (package
11527 (name "libratbag")
11528 (version "0.14")
11529 (source
11530 (origin
11531 (method git-fetch)
11532 (uri (git-reference
11533 (url "https://github.com/libratbag/libratbag")
11534 (commit (string-append "v" version))))
11535 (file-name (git-file-name name version))
11536 (sha256
11537 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11538 (build-system meson-build-system)
11539 (arguments
11540 `(#:configure-flags
11541 (list "-Dsystemd=false"
11542 "-Dlogind-provider=elogind")
11543 #:phases
11544 (modify-phases %standard-phases
11545 (add-after 'install 'wrap
11546 (lambda* (#:key inputs outputs #:allow-other-keys)
11547 (let* ((out (assoc-ref outputs "out"))
11548 (site (string-append
11549 "/lib/python"
11550 ,(version-major+minor (package-version python))
11551 "/site-packages"))
11552 (evdev (string-append
11553 (assoc-ref inputs "python-evdev") site))
11554 (pygo (string-append
11555 (assoc-ref inputs "python-pygobject") site))
11556 (python-wrap
11557 `("PYTHONPATH" = (,evdev ,pygo))))
11558 (wrap-program (string-append out "/bin/" "ratbagctl")
11559 python-wrap)
11560 #t))))))
11561 (native-inputs
11562 `(("check" ,check)
11563 ("pkg-config" ,pkg-config)
11564 ("swig" ,swig)
11565 ("valgrind" ,valgrind)))
11566 (inputs
11567 `(("glib" ,glib)
11568 ("json-glib" ,json-glib)
11569 ("libevdev" ,libevdev)
11570 ("libsystemd" ,elogind)
11571 ("libunistring" ,libunistring)
11572 ("python-evdev" ,python-evdev)
11573 ("python-pygobject" ,python-pygobject)
11574 ("udev" ,eudev)))
11575 (home-page "https://github.com/libratbag/libratbag")
11576 (synopsis "DBus daemon and utility for configuring gaming mice")
11577 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11578 configure input devices, mainly gaming mice. The daemon provides a generic
11579 way to access the various features exposed by these mice and abstracts away
11580 hardware-specific and kernel-specific quirks. There is also the
11581 @command{ratbagctl} command line interface for configuring devices.
11582
11583 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11584 Steelseries.
11585
11586 The ratbagd DBus service can be enabled by adding the following service to
11587 your operating-system definition:
11588
11589 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11590 (license license:expat)))
11591
11592 (define-public piper
11593 (package
11594 (name "piper")
11595 (version "0.5.1")
11596 (source
11597 (origin
11598 (method git-fetch)
11599 (uri (git-reference
11600 (url "https://github.com/libratbag/piper")
11601 (commit version)))
11602 (sha256
11603 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11604 (file-name (git-file-name name version))))
11605 (build-system meson-build-system)
11606 (native-inputs
11607 `(("gettext" ,gettext-minimal)
11608 ("glib:bin" ,glib "bin")
11609 ("gobject-introspection" ,gobject-introspection)
11610 ("pkg-config" ,pkg-config)
11611 ("python-flake8" ,python-flake8)))
11612 (inputs
11613 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11614 ("gtk" ,gtk+)
11615 ("gtk:bin" ,gtk+ "bin")
11616 ("librsvg" ,librsvg)
11617 ("python-evdev" ,python-evdev)
11618 ("python-lxml" ,python-lxml)
11619 ("python-pycairo" ,python-pycairo)
11620 ("python-pygobject" ,python-pygobject)))
11621 (arguments
11622 `(#:imported-modules ((guix build python-build-system)
11623 ,@%meson-build-system-modules)
11624 #:modules (((guix build python-build-system) #:prefix python:)
11625 (guix build meson-build-system)
11626 (guix build utils))
11627 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11628 #:phases
11629 (modify-phases %standard-phases
11630 (add-after 'unpack 'dont-update-gtk-icon-cache
11631 (lambda _
11632 (substitute* "meson.build"
11633 (("meson.add_install_script('meson_install.sh')") ""))
11634 #t))
11635 ;; TODO: Switch to wrap-script when it is fixed.
11636 (add-after 'install 'wrap-python
11637 (assoc-ref python:%standard-phases 'wrap))
11638 (add-after 'wrap-python 'wrap
11639 (lambda* (#:key outputs #:allow-other-keys)
11640 (wrap-program
11641 (string-append (assoc-ref outputs "out" )"/bin/piper")
11642 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11643 #t)))))
11644 (home-page "https://github.com/libratbag/piper/")
11645 (synopsis "Configure bindings and LEDs on gaming mice")
11646 (description "Piper is a GTK+ application for configuring gaming mice with
11647 onboard configuration for key bindings via libratbag. Piper requires
11648 a @command{ratbagd} daemon running with root privileges. It can be run
11649 manually as root, but is preferably configured as a DBus service that can
11650 launch on demand. This can be configured by enabling the following service,
11651 provided there is a DBus service present:
11652
11653 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11654 (license license:gpl2)))
11655
11656 (define-public parlatype
11657 (package
11658 (name "parlatype")
11659 (version "2.1")
11660 (source
11661 (origin
11662 (method git-fetch)
11663 (uri (git-reference
11664 (url "https://github.com/gkarsay/parlatype")
11665 (commit (string-append "v" version))))
11666 (file-name (git-file-name name version))
11667 (sha256
11668 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11669 (build-system meson-build-system)
11670 (arguments
11671 `(#:glib-or-gtk? #t
11672 #:tests? #f ;require internet access
11673 #:phases
11674 (modify-phases %standard-phases
11675 (add-after 'install 'wrap-parlatype
11676 ;; Add gstreamer plugin provided in this package to system's
11677 ;; plugins.
11678 (lambda* (#:key outputs #:allow-other-keys)
11679 (let* ((out (assoc-ref outputs "out"))
11680 (gst-plugin-path (string-append
11681 out "/lib/gstreamer-1.0/"
11682 ":"
11683 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11684 (wrap-program (string-append out "/bin/parlatype")
11685 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11686 #t)))))
11687 (native-inputs
11688 `(("appstream-glib" ,appstream-glib)
11689 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11690 ("gettext" ,gettext-minimal)
11691 ("glib" ,glib "bin") ;for glib-compile-resources
11692 ("pkg-config" ,pkg-config)
11693 ("yelp-tools" ,yelp-tools)))
11694 (inputs
11695 `(("gst-plugins-base" ,gst-plugins-base)
11696 ("gst-plugins-good" ,gst-plugins-good)
11697 ("gstreamer" ,gstreamer)
11698 ("gtk+" ,gtk+)
11699 ("pocketsphinx" ,pocketsphinx)
11700 ("pulseaudio" ,pulseaudio)
11701 ("sphinxbase" ,sphinxbase)))
11702 (home-page "http://gkarsay.github.io/parlatype/")
11703 (synopsis "GNOME audio player for transcription")
11704 (description "Parlatype is an audio player for the GNOME desktop
11705 environment. Its main purpose is the manual transcription of spoken
11706 audio files.")
11707 (license license:gpl3+)))
11708
11709 (define-public jsonrpc-glib
11710 (package
11711 (name "jsonrpc-glib")
11712 (version "3.34.0")
11713 (source (origin
11714 (method url-fetch)
11715 (uri (string-append "mirror://gnome/sources/" name "/"
11716 (version-major+minor version) "/"
11717 name "-" version ".tar.xz"))
11718 (sha256
11719 (base32
11720 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11721 (build-system meson-build-system)
11722 (inputs
11723 `(("json-glib" ,json-glib)
11724 ("glib" ,glib)))
11725 (native-inputs
11726 `(("pkg-config" ,pkg-config)
11727 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11728 ("gobject-introspection" ,gobject-introspection)
11729 ("vala" ,vala)))
11730 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11731 (synopsis "JSON-RPC library for GLib")
11732 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11733 peers in either a synchronous or asynchronous fashion. It also allows
11734 communicating using the GVariant serialization format instead of JSON when
11735 both peers support it. You might want that when communicating on a single
11736 host to avoid parser overhead and memory-allocator fragmentation.")
11737 (license license:lgpl2.1+)))
11738
11739 (define-public feedbackd
11740 (package
11741 (name "feedbackd")
11742 (version "0.0.0+git20200527")
11743 (source (origin
11744 (method git-fetch)
11745 (uri (git-reference
11746 (url "https://source.puri.sm/Librem5/feedbackd.git")
11747 (commit (string-append "v" version))))
11748 (file-name (git-file-name name version))
11749 (sha256
11750 (base32
11751 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11752 (build-system meson-build-system)
11753 (native-inputs
11754 `(("glib:bin" ,glib "bin")
11755 ("gobject-introspection" ,gobject-introspection)
11756 ("pkg-config" ,pkg-config)
11757 ("vala" ,vala)))
11758 (inputs
11759 `(("dbus" ,dbus)
11760 ("gsound" ,gsound)
11761 ("json-glib" ,json-glib)
11762 ("libgudev" ,libgudev)))
11763 (propagated-inputs
11764 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11765 (synopsis "Haptic/visual/audio feedback via DBus")
11766 (description "Feedbackd provides a DBus daemon to act on events to provide
11767 haptic, visual and audio feedback. It offers the libfeedbackd library and
11768 GObject introspection bindings.")
11769 (home-page "https://source.puri.sm/Librem5/feedbackd")
11770 (license (list license:lgpl2.1+ ; libfeedbackd
11771 license:lgpl3+)))) ; the rest
11772
11773 (define-public sysprof
11774 (package
11775 (name "sysprof")
11776 (version "3.36.0")
11777 (source
11778 (origin
11779 (method url-fetch)
11780 (uri (string-append "mirror://gnome/sources/sysprof/"
11781 (version-major+minor version) "/"
11782 "sysprof-" version ".tar.xz"))
11783 (sha256
11784 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11785 (build-system meson-build-system)
11786 (arguments
11787 `(#:configure-flags
11788 (list (string-append "-Dsystemdunitdir="
11789 %output
11790 "/share/systemd"))
11791 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11792 #:phases
11793 (modify-phases %standard-phases
11794 (add-after 'unpack 'patch-install-script
11795 (lambda _
11796 (substitute* "build-aux/meson/post_install.sh"
11797 (("gtk-update-icon-cache") "true")
11798 (("update-desktop-database") "true"))
11799 #t)))))
11800 (inputs
11801 `(("glib" ,glib)
11802 ("gtk+" ,gtk+)
11803 ("libdazzle" ,libdazzle)
11804 ("polkit" ,polkit)))
11805 (native-inputs
11806 `(("gettext" ,gettext-minimal)
11807 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11808 ("itstool" ,itstool)
11809 ("pkg-config" ,pkg-config)
11810 ("xmllint" ,libxml2)))
11811 ;; This home page is so woefully out of date as to be essentially useless.
11812 ;; (home-page "http://www.sysprof.com")
11813 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11814 (synopsis "System-wide performance profiler for GNU/Linux")
11815 (description
11816 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11817 GNU/Linux system including the kernel and all user-space applications. This
11818 helps find the function(s) in which a program spends most of its time.
11819
11820 It uses the kernel's built-in @code{ptrace} feature and handles shared
11821 libraries. Applications do not need to be recompiled--or even restarted.")
11822 (license license:gpl3+)))
11823
11824 (define-public gnome-builder
11825 (package
11826 (name "gnome-builder")
11827 (version "3.36.1")
11828 (source (origin
11829 (method url-fetch)
11830 (uri (string-append "mirror://gnome/sources/" name "/"
11831 (version-major+minor version) "/"
11832 name "-" version ".tar.xz"))
11833 (sha256
11834 (base32
11835 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11836 (build-system meson-build-system)
11837 (arguments
11838 `(#:configure-flags (list "-Dnetwork_tests=false"
11839 ;; TODO: Enable all plugins...
11840 "-Dplugin_clang=false"
11841 "-Dplugin_flatpak=false"
11842 "-Dplugin_glade=false"
11843 ;; XXX: This one has been shown not to work in
11844 ;; <https://issues.guix.gnu.org/45272>
11845 "-Dplugin_jedi=false"
11846 ;; ... except this one.
11847 "-Dplugin_update_manager=false")
11848 #:phases
11849 (modify-phases %standard-phases
11850 (add-after 'unpack 'patch-meson
11851 (lambda* (#:key inputs #:allow-other-keys)
11852 (substitute* "build-aux/meson/post_install.py"
11853 (("gtk-update-icon-cache") "true")
11854 (("update-desktop-database") "true"))
11855 (substitute* "src/libide/meson.build"
11856 (("/usr/lib")
11857 (string-append (assoc-ref inputs "python-pygobject")
11858 "/lib")))
11859 #t))
11860 (add-after 'configure 'fix-ninja
11861 (lambda _
11862 ;; #43296: meson(?) incorrectly assumes we want to link
11863 ;; this PIE against a static libselinux.
11864 (substitute* "build.ninja"
11865 (("libselinux\\.a") "libselinux.so"))
11866 #t))
11867 (add-before 'check 'pre-check
11868 (lambda _
11869 (system "Xvfb :1 &")
11870 (setenv "DISPLAY" ":1")
11871 #t)))))
11872 (inputs
11873 `(("devhelp" ,devhelp)
11874 ("gspell" ,gspell)
11875 ("gtk+" ,gtk+)
11876 ("json-glib" ,json-glib)
11877 ("jsonrpc-glib" ,jsonrpc-glib)
11878 ("libdazzle" ,libdazzle)
11879 ("libgit2-glib" ,libgit2-glib)
11880 ("libpeas" ,libpeas)
11881 ("python-pygobject" ,python-pygobject)
11882 ("sysprof" ,sysprof)
11883 ("template-glib" ,template-glib)
11884 ("vte" ,vte)
11885 ("webkitgtk" ,webkitgtk)))
11886 (propagated-inputs
11887 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11888 (native-inputs
11889 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11890 ("glib:bin" ,glib "bin")
11891 ("gettext" ,gettext-minimal)
11892 ("pkg-config" ,pkg-config)
11893 ("vala" ,vala)
11894 ("xorg-server" ,xorg-server-for-tests)))
11895 (home-page "https://wiki.gnome.org/Apps/Builder")
11896 (synopsis "Toolsmith for GNOME-based applications")
11897 (description "Builder aims to be an integrated development
11898 environment (IDE) for writing GNOME-based software. It features fuzzy search,
11899 auto-completion, a mini code map, documentation browsing, Git integration, an
11900 integrated profiler via Sysprof, debugging support, and more.")
11901 (license license:gpl3+)))
11902
11903 (define-public komikku
11904 (package
11905 (name "komikku")
11906 (version "0.26.1")
11907 (source
11908 (origin
11909 (method git-fetch)
11910 (uri (git-reference
11911 (url "https://gitlab.com/valos/Komikku/")
11912 (commit (string-append "v" version))))
11913 (file-name (git-file-name name version))
11914 (sha256
11915 (base32
11916 "1mas409c14p6g0v10w4cf5hsjbs0922h6h9k9pyj9s8y7yi2ikz2"))))
11917 (build-system meson-build-system)
11918 (arguments
11919 `(#:glib-or-gtk? #t
11920 #:phases
11921 (modify-phases %standard-phases
11922 (add-after 'unpack 'patch-sources
11923 (lambda _
11924 (substitute* "komikku/utils.py"
11925 (("from komikku\\.servers import get_servers_list")
11926 ;; code following that line should migrate old databases
11927 ;; but the line itself results in an import error
11928 "return data_dir_path"))))
11929 (add-after 'unpack 'skip-gtk-update-icon-cache
11930 (lambda _
11931 (substitute* "meson_post_install.py"
11932 (("gtk-update-icon-cache") (which "true")))
11933 #t))
11934 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11935 (lambda* (#:key outputs #:allow-other-keys)
11936 (let ((prog (string-append (assoc-ref outputs "out")
11937 "/bin/komikku")))
11938 (wrap-program prog
11939 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
11940 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11941 #t))))))
11942 (inputs
11943 `(("gtk+" ,gtk+)
11944 ("libhandy" ,libhandy)
11945 ("libnotify" ,libnotify)
11946 ("libsecret" ,libsecret)
11947 ("python-beautifulsoup4" ,python-beautifulsoup4)
11948 ("python-dateparser" ,python-dateparser)
11949 ("python-keyring" ,python-keyring)
11950 ("python-lxml" ,python-lxml)
11951 ("python-magic" ,python-magic)
11952 ("python-pillow" ,python-pillow)
11953 ("python-pure-protobuf" ,python-pure-protobuf)
11954 ("python-pycairo" ,python-pycairo)
11955 ("python-pygobject" ,python-pygobject)
11956 ("python-requests" ,python-requests)
11957 ("python-unidecode" ,python-unidecode)))
11958 (native-inputs
11959 `(("desktop-file-utils" ,desktop-file-utils)
11960 ("gettext" ,gettext-minimal)
11961 ("glib:bin" ,glib "bin")
11962 ("gobject-introspection" ,gobject-introspection)
11963 ("pkg-config" ,pkg-config)))
11964 (home-page "https://gitlab.com/valos/Komikku")
11965 (synopsis "Manga reader for GNOME")
11966 (description "Komikku is an online/offline manga reader for GNOME,
11967 developed with the aim of being used with the Librem 5 phone.")
11968 (license license:gpl3+)))
11969
11970 (define-public libgda
11971 (package
11972 (name "libgda")
11973 (version "5.2.10")
11974 (source
11975 (origin
11976 (method git-fetch)
11977 (uri (git-reference
11978 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
11979 (commit (string-append "LIBGDA_" (string-replace-substring
11980 version "." "_")))))
11981 (file-name (git-file-name name version))
11982 (sha256
11983 (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
11984 (build-system gnu-build-system)
11985 (arguments
11986 `(#:configure-flags '("--enable-vala")
11987 ;; There's a race between check_cnc_lock and check_threaded_cnc
11988 ;; in tests/multi-threading.
11989 #:parallel-tests? #f
11990 #:phases
11991 (modify-phases %standard-phases
11992 (add-after 'unpack 'fix-glade-install
11993 (lambda _
11994 (substitute* "configure.ac"
11995 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
11996 "${datadir}/glade/catalogs")
11997 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
11998 "${datadir}/glade/pixmaps"))
11999 #t))
12000 (add-before 'check 'pre-check
12001 (lambda* (#:key inputs #:allow-other-keys)
12002 ;; Tests require a running X server.
12003 (system "Xvfb :1 &")
12004 (setenv "DISPLAY" ":1")
12005 #t))
12006 (add-after 'install 'symlink-glade-module
12007 (lambda* (#:key outputs #:allow-other-keys)
12008 (let* ((shlib "libgda-ui-5.0.so")
12009 (out (assoc-ref outputs "out"))
12010 (out/lib (string-append out "/lib"))
12011 (moduledir (string-append out/lib "/glade/modules")))
12012 (mkdir-p moduledir)
12013 (symlink (string-append out/lib "/" shlib)
12014 (string-append moduledir "/" shlib))
12015 #t))))))
12016 (propagated-inputs
12017 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
12018 (inputs
12019 `(("glib" ,glib)
12020 ("glade" ,glade3)
12021 ("gtk+" ,gtk+)
12022 ("libsecret" ,libsecret)
12023 ("libxslt" ,libxslt)
12024 ("openssl" ,openssl)
12025 ("vala" ,vala)))
12026 (native-inputs
12027 `(("autoconf" ,autoconf)
12028 ("autoconf-archive" ,autoconf-archive)
12029 ("automake" ,automake)
12030 ("glib:bin" ,glib "bin")
12031 ("gnome-common" ,gnome-common)
12032 ("gobject-introspection" ,gobject-introspection)
12033 ("gtk-doc" ,gtk-doc)
12034 ("intltool" ,intltool)
12035 ("libtool" ,libtool)
12036 ("pkg-config" ,pkg-config)
12037 ("vala" ,vala)
12038 ("which" ,which)
12039 ("xorg-server" ,xorg-server-for-tests)
12040 ("yelp-tools" ,yelp-tools)))
12041 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12042 (synopsis "Uniform data access")
12043 (description
12044 "GNU Data Access (GDA) is an attempt to provide uniform access to
12045 different kinds of data sources (databases, information servers, mail spools,
12046 etc). It is a complete architecture that provides all you need to access
12047 your data.")
12048 (license license:lgpl2.1+)))
12049
12050 (define-public gtranslator
12051 (package
12052 (name "gtranslator")
12053 (version "3.36.0")
12054 (source (origin
12055 (method url-fetch)
12056 (uri (string-append "mirror://gnome/sources/" name "/"
12057 (version-major+minor version) "/"
12058 name "-" version ".tar.xz"))
12059 (sha256
12060 (base32
12061 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
12062 (build-system meson-build-system)
12063 (inputs
12064 `(("json-glib" ,json-glib)
12065 ("jsonrpc-glib" ,jsonrpc-glib)
12066 ("gettext" ,gettext-minimal)
12067 ("glib" ,glib)
12068 ("gtk+" ,gtk+)
12069 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12070 ("gspell" ,gspell)
12071 ("libdazzle" ,libdazzle)
12072 ("libgda" ,libgda)
12073 ("libsoup" ,libsoup)))
12074 (native-inputs
12075 `(("glib:bin" ,glib "bin")
12076 ("itstool" ,itstool)
12077 ("pkg-config" ,pkg-config)))
12078 (propagated-inputs
12079 `(("gtksourceview" ,gtksourceview))) ; required for source view
12080 (arguments
12081 `(#:build-type "release"
12082 #:glib-or-gtk? #t
12083 #:phases
12084 (modify-phases %standard-phases
12085 (add-after 'unpack 'skip-gtk-update-icon-cache
12086 (lambda _
12087 (substitute* "build-aux/meson/meson_post_install.py"
12088 (("gtk-update-icon-cache") (which "true")))
12089 #t)))))
12090 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12091 (synopsis "Translation making program")
12092 (description
12093 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12094 for the GNOME 3.x platform with many features. It aims to be a very complete
12095 editing environment for translation issues within the GNU gettext/GNOME desktop
12096 world.")
12097 (license license:gpl3+)))