Merge branch 'master' into core-updates-frozen
[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, 2021 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016, 2020 Eric Bavier <bavier@posteo.net>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017, 2020 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
54 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
58 ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
59 ;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org>
60 ;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org>
61 ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu>
62 ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
63 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
64 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
65 ;;;
66 ;;; This file is part of GNU Guix.
67 ;;;
68 ;;; GNU Guix is free software; you can redistribute it and/or modify it
69 ;;; under the terms of the GNU General Public License as published by
70 ;;; the Free Software Foundation; either version 3 of the License, or (at
71 ;;; your option) any later version.
72 ;;;
73 ;;; GNU Guix is distributed in the hope that it will be useful, but
74 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
75 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
76 ;;; GNU General Public License for more details.
77 ;;;
78 ;;; You should have received a copy of the GNU General Public License
79 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
80
81 (define-module (gnu packages gnome)
82 #:use-module (gnu packages)
83 #:use-module (gnu packages admin)
84 #:use-module (gnu packages aidc)
85 #:use-module (gnu packages aspell)
86 #:use-module (gnu packages autotools)
87 #:use-module (gnu packages avahi)
88 #:use-module (gnu packages backup)
89 #:use-module (gnu packages base)
90 #:use-module (gnu packages bash)
91 #:use-module (gnu packages bison)
92 #:use-module (gnu packages boost)
93 #:use-module (gnu packages build-tools)
94 #:use-module (gnu packages calendar)
95 #:use-module (gnu packages cdrom)
96 #:use-module (gnu packages check)
97 #:use-module (gnu packages cmake)
98 #:use-module (gnu packages compression)
99 #:use-module (gnu packages crates-io)
100 #:use-module (gnu packages crates-graphics)
101 #:use-module (gnu packages crates-gtk)
102 #:use-module (gnu packages cups)
103 #:use-module (gnu packages curl)
104 #:use-module (gnu packages cyrus-sasl)
105 #:use-module (gnu packages databases)
106 #:use-module (gnu packages dbm)
107 #:use-module (gnu packages djvu)
108 #:use-module (gnu packages dns)
109 #:use-module (gnu packages docbook)
110 #:use-module (gnu packages documentation)
111 #:use-module (gnu packages enchant)
112 #:use-module (gnu packages flex)
113 #:use-module (gnu packages fonts)
114 #:use-module (gnu packages file-systems)
115 #:use-module (gnu packages fontutils)
116 #:use-module (gnu packages freedesktop)
117 #:use-module (gnu packages game-development)
118 #:use-module (gnu packages gcc)
119 #:use-module (gnu packages gettext)
120 #:use-module (gnu packages ghostscript)
121 #:use-module (gnu packages gimp)
122 #:use-module (gnu packages gl)
123 #:use-module (gnu packages glib)
124 #:use-module (gnu packages gnupg)
125 #:use-module (gnu packages gnuzilla)
126 #:use-module (gnu packages geo)
127 #:use-module (gnu packages gperf)
128 #:use-module (gnu packages graphviz)
129 #:use-module (gnu packages gstreamer)
130 #:use-module (gnu packages gtk)
131 #:use-module (gnu packages guile)
132 #:use-module (gnu packages haskell-xyz)
133 #:use-module (gnu packages ibus)
134 #:use-module (gnu packages icu4c)
135 #:use-module (gnu packages image)
136 #:use-module (gnu packages imagemagick)
137 #:use-module (gnu packages inkscape)
138 #:use-module (gnu packages iso-codes)
139 #:use-module (gnu packages kerberos)
140 #:use-module (gnu packages libcanberra)
141 #:use-module (gnu packages libffi)
142 #:use-module (gnu packages libunistring)
143 #:use-module (gnu packages libunwind)
144 #:use-module (gnu packages libusb)
145 #:use-module (gnu packages linux)
146 #:use-module (gnu packages lirc)
147 #:use-module (gnu packages lua)
148 #:use-module (gnu packages mail)
149 #:use-module (gnu packages man)
150 #:use-module (gnu packages mp3)
151 #:use-module (gnu packages multiprecision)
152 #:use-module (gnu packages music)
153 #:use-module (gnu packages ncurses)
154 #:use-module (gnu packages nettle)
155 #:use-module (gnu packages networking)
156 #:use-module (gnu packages ninja)
157 #:use-module (gnu packages node)
158 #:use-module (gnu packages nss)
159 #:use-module (gnu packages ocr)
160 #:use-module (gnu packages openldap)
161 #:use-module (gnu packages package-management)
162 #:use-module (gnu packages password-utils)
163 #:use-module (gnu packages pcre)
164 #:use-module (gnu packages pdf)
165 #:use-module (gnu packages perl)
166 #:use-module (gnu packages photo)
167 #:use-module (gnu packages php)
168 #:use-module (gnu packages pkg-config)
169 #:use-module (gnu packages polkit)
170 #:use-module (gnu packages popt)
171 #:use-module (gnu packages pretty-print)
172 #:use-module (gnu packages protobuf)
173 #:use-module (gnu packages pulseaudio)
174 #:use-module (gnu packages python)
175 #:use-module (gnu packages python-compression)
176 #:use-module (gnu packages python-crypto)
177 #:use-module (gnu packages python-web)
178 #:use-module (gnu packages python-xyz)
179 #:use-module (gnu packages rdesktop)
180 #:use-module (gnu packages rdf)
181 #:use-module (gnu packages readline)
182 #:use-module (gnu packages ruby)
183 #:use-module (gnu packages rust)
184 #:use-module (gnu packages samba)
185 #:use-module (gnu packages scanner)
186 #:use-module (gnu packages sdl)
187 #:use-module (gnu packages search)
188 #:use-module (gnu packages selinux)
189 #:use-module (gnu packages slang)
190 #:use-module (gnu packages speech)
191 #:use-module (gnu packages spice)
192 #:use-module (gnu packages sqlite)
193 #:use-module (gnu packages ssh)
194 #:use-module (gnu packages swig)
195 #:use-module (gnu packages tex)
196 #:use-module (gnu packages time)
197 #:use-module (gnu packages tls)
198 #:use-module (gnu packages valgrind)
199 #:use-module (gnu packages version-control)
200 #:use-module (gnu packages video)
201 #:use-module (gnu packages virtualization)
202 #:use-module (gnu packages vpn)
203 #:use-module (gnu packages web)
204 #:use-module (gnu packages webkit)
205 #:use-module (gnu packages xdisorg)
206 #:use-module (gnu packages xiph)
207 #:use-module (gnu packages xml)
208 #:use-module (gnu packages xorg)
209 #:use-module (gnu artwork)
210 #:use-module (guix build-system cargo)
211 #:use-module (guix build-system cmake)
212 #:use-module (guix build-system glib-or-gtk)
213 #:use-module (guix build-system gnu)
214 #:use-module (guix build-system meson)
215 #:use-module (guix build-system python)
216 #:use-module (guix build-system trivial)
217 #:use-module (guix download)
218 #:use-module (guix git-download)
219 #:use-module ((guix licenses) #:prefix license:)
220 #:use-module (guix packages)
221 #:use-module (guix utils)
222 #:use-module (guix gexp)
223 #:use-module (ice-9 match)
224 #:use-module (srfi srfi-1))
225
226 (define-public gupnp-igd
227 (package
228 (name "gupnp-igd")
229 (version "1.2.0")
230 (source
231 (origin
232 (method url-fetch)
233 (uri
234 (string-append "mirror://gnome/sources/" name "/"
235 (version-major+minor version) "/"
236 name "-" version ".tar.xz"))
237 (sha256
238 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
239 (build-system meson-build-system)
240 (outputs '("out" "doc"))
241 (arguments
242 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
243 #:configure-flags (list "-Dgtk_doc=true")
244 #:phases
245 (modify-phases %standard-phases
246 (add-after 'unpack 'patch-docbook-xml
247 (lambda* (#:key inputs #:allow-other-keys)
248 (with-directory-excursion "doc"
249 (substitute* "gupnp-igd-docs.xml"
250 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
251 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
252 "/xml/dtd/docbook/"))))
253 #t))
254 (add-after 'install 'move-doc
255 (lambda* (#:key outputs #:allow-other-keys)
256 (let* ((out (assoc-ref outputs "out"))
257 (doc (assoc-ref outputs "doc")))
258 (mkdir-p (string-append doc "/share"))
259 (rename-file
260 (string-append out "/share/gtk-doc")
261 (string-append doc "/share/gtk-doc"))
262 #t))))))
263 (native-inputs
264 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
265 ("docbook-xsl" ,docbook-xsl)
266 ("glib:bin" ,glib "bin")
267 ("gobject-introspection" ,gobject-introspection)
268 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
269 ("gtk-doc" ,gtk-doc/stable)
270 ("pkg-config" ,pkg-config)))
271 (propagated-inputs
272 `(("glib" ,glib)
273 ("glib-networking" ,glib-networking)
274 ("gssdp" ,gssdp)
275 ("gupnp" ,gupnp)
276 ("libsoup" ,libsoup)))
277 (synopsis "UPnP IGD for GNOME")
278 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
279 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
280 (license license:lgpl2.1+)))
281
282 (define-public brasero
283 (package
284 (name "brasero")
285 (version "3.12.2")
286 (source (origin
287 (method url-fetch)
288 (uri (string-append "mirror://gnome/sources/brasero/"
289 (version-major+minor version) "/"
290 "brasero-" version ".tar.xz"))
291 (sha256
292 (base32
293 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
294 (build-system glib-or-gtk-build-system)
295 (arguments
296 `(#:configure-flags (list
297 (string-append "--with-girdir="
298 (assoc-ref %outputs "out")
299 "/share/gir-1.0")
300 (string-append "--with-typelibdir="
301 (assoc-ref %outputs "out")
302 "/lib/girepository-1.0"))
303 #:phases
304 (modify-phases %standard-phases
305 (add-before 'configure 'embed-growisofs
306 (lambda* (#:key inputs #:allow-other-keys)
307 (substitute* "plugins/growisofs/burn-growisofs.c"
308 (("\"growisofs") (string-append "\"" (which "growisofs"))))
309 #t)))))
310 (propagated-inputs
311 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
312 (native-inputs
313 `(("intltool" ,intltool)
314 ("itstool" ,itstool)
315 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
316 ("gobject-introspection" ,gobject-introspection)
317 ("pkg-config" ,pkg-config)))
318 (inputs
319 `(("dvd+rw-tools" ,dvd+rw-tools)
320 ("glib" ,glib)
321 ("gnome-doc-utils" ,gnome-doc-utils)
322 ("gstreamer" ,gstreamer)
323 ("gst-plugins-base" ,gst-plugins-base)
324 ("gtk+" ,gtk+)
325 ("libcanberra" ,libcanberra)
326 ("libice" ,libice)
327 ("libnotify" ,libnotify)
328 ("libsm" ,libsm)
329 ("libxml2" ,libxml2)
330 ("totem-pl-parser" ,totem-pl-parser)))
331 (home-page "https://wiki.gnome.org/Apps/Brasero")
332 (synopsis "CD/DVD burning tool for Gnome")
333 (description "Brasero is an application to burn CD/DVD for the Gnome
334 Desktop. It is designed to be as simple as possible and has some unique
335 features to enable users to create their discs easily and quickly.")
336 (license license:gpl2+)))
337
338 (define-public libcloudproviders
339 (package
340 (name "libcloudproviders")
341 (version "0.3.1")
342 (source
343 (origin
344 (method url-fetch)
345 (uri
346 (string-append "mirror://gnome/sources/" name "/"
347 (version-major+minor version) "/"
348 name "-" version ".tar.xz"))
349 (sha256
350 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
351 (build-system meson-build-system)
352 (outputs '("out" "doc"))
353 (arguments
354 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
355 #:configure-flags
356 (list
357 "-Denable-gtk-doc=true")
358 #:phases
359 (modify-phases %standard-phases
360 (add-after 'install 'move-doc
361 (lambda* (#:key outputs #:allow-other-keys)
362 (let* ((out (assoc-ref outputs "out"))
363 (doc (assoc-ref outputs "doc")))
364 (mkdir-p (string-append doc "/share"))
365 (rename-file
366 (string-append out "/share/gtk-doc")
367 (string-append doc "/share/gtk-doc"))
368 #t))))))
369 (native-inputs
370 `(("glib:bin" ,glib "bin")
371 ("gobject-introspection" ,gobject-introspection)
372 ("gtk-doc" ,gtk-doc/stable)
373 ("pkg-config" ,pkg-config)
374 ("vala" ,vala)))
375 (inputs
376 `(("glib" ,glib)
377 ("glib-networking" ,glib-networking)))
378 (synopsis "Cloudproviders Integration API")
379 (description "Libcloudproviders is a DBus API that allows cloud storage sync
380 clients to expose their services. Clients such as file managers and desktop
381 environments can then provide integrated access to the cloud providers
382 services.")
383 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
384 (license license:lgpl3+)))
385
386 (define-public libgrss
387 (package
388 (name "libgrss")
389 (version "0.7.0")
390 (source
391 (origin
392 (method url-fetch)
393 (uri
394 (string-append "mirror://gnome/sources/" name "/"
395 (version-major+minor version) "/"
396 name "-" version ".tar.xz"))
397 (sha256
398 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))
399 (patches
400 (search-patches "libgrss-CVE-2016-2001.patch"))))
401 (build-system glib-or-gtk-build-system)
402 (outputs '("out" "doc"))
403 (arguments
404 `(#:configure-flags
405 (list
406 "--enable-gtk-doc"
407 (string-append "--with-html-dir="
408 (assoc-ref %outputs "doc")
409 "/share/gtk-doc/html"))
410 #:phases
411 (modify-phases %standard-phases
412 (add-after 'unpack 'patch-docbook-xml
413 (lambda* (#:key inputs #:allow-other-keys)
414 (with-directory-excursion "doc/reference"
415 (substitute* "libgrss-docs.sgml"
416 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
417 (string-append (assoc-ref inputs "docbook-xml")
418 "/xml/dtd/docbook/"))))
419 #t)))))
420 (native-inputs
421 `(("docbook-xml" ,docbook-xml-4.1.2)
422 ("gobject-introspection" ,gobject-introspection)
423 ("gtk-doc" ,gtk-doc/stable)
424 ("pkg-config" ,pkg-config)))
425 (propagated-inputs
426 `(("glib" ,glib)
427 ("libsoup" ,libsoup)
428 ("libxml2" ,libxml2)))
429 (synopsis "Glib library for feeds")
430 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
431 and other formats.")
432 (home-page "https://wiki.gnome.org/Projects/Libgrss")
433 (license license:lgpl3+)))
434
435 (define-public gnome-js-common
436 (package
437 (name "gnome-js-common")
438 (version "0.1.2")
439 (source
440 (origin
441 (method url-fetch)
442 (uri
443 (string-append "mirror://gnome/sources/" name "/"
444 (version-major+minor version) "/"
445 name "-" version ".tar.gz"))
446 (sha256
447 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
448 (build-system glib-or-gtk-build-system)
449 (arguments
450 `(#:configure-flags
451 (list
452 "--disable-static")))
453 (native-inputs
454 `(("gettext" ,gettext-minimal)
455 ("intltool" ,intltool)
456 ("pkg-config" ,pkg-config)))
457 (synopsis "Common JS Modules")
458 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
459 bindings.")
460 (home-page "https://wiki.gnome.org/Projects/Seed")
461 (license license:gpl3+)))
462
463 (define-public seed
464 (package
465 (name "seed")
466 (version "3.8.1")
467 (source
468 (origin
469 (method url-fetch)
470 (uri
471 (string-append "mirror://gnome/sources/" name "/"
472 (version-major+minor version) "/"
473 name "-" version ".tar.xz"))
474 (sha256
475 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
476 (patches
477 (search-patches "seed-webkit.patch"))))
478 (build-system glib-or-gtk-build-system)
479 (outputs '("out" "doc"))
480 (arguments
481 `(#:configure-flags
482 (list
483 "--disable-static"
484 "--enable-xorg-module"
485 (string-append "--with-html-dir="
486 (assoc-ref %outputs "doc")
487 "/share/gtk-doc/html")
488 "--with-webkit=4.0")
489 #:phases
490 (modify-phases %standard-phases
491 ;; The seed-webkit.patch patches configure.ac.
492 ;; So the source files need to be re-bootstrapped.
493 (add-after 'unpack 'trigger-bootstrap
494 (lambda _
495 (for-each delete-file
496 (list
497 "configure"
498 "Makefile.in"))
499 #t))
500 (add-after 'unpack 'patch-tests
501 (lambda* (#:key outputs #:allow-other-keys)
502 (substitute* (find-files "." "\\.js$")
503 (("#!/usr/bin/env seed")
504 (string-append "#!" (getcwd) "/src/seed")))
505 #t))
506 (add-before 'build 'patch-docbook-xml
507 (lambda* (#:key inputs #:allow-other-keys)
508 (with-directory-excursion "doc"
509 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
510 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
511 (string-append (assoc-ref inputs "docbook-xml")
512 "/xml/dtd/docbook/"))))
513 #t)))))
514 (native-inputs
515 `(("autoconf" ,autoconf)
516 ("automake" ,automake)
517 ("docbook-xml" ,docbook-xml-4.1.2)
518 ("gettext" ,gettext-minimal)
519 ("gobject-introspection" ,gobject-introspection)
520 ("gtk-doc" ,gtk-doc/stable)
521 ("intltool" ,intltool)
522 ("libtool" ,libtool)
523 ("pkg-config" ,pkg-config)))
524 (inputs
525 `(("cairo" ,cairo)
526 ("dbus" ,dbus)
527 ("dbus-glib" ,dbus-glib)
528 ("gnome-js-common" ,gnome-js-common)
529 ("gtk+" ,gtk+)
530 ("gtk+-2" ,gtk+-2)
531 ("libffi" ,libffi)
532 ("libxml2" ,libxml2)
533 ("mpfr" ,mpfr)
534 ("readline" ,readline)
535 ("sqlite" ,sqlite)
536 ("xscrnsaver" ,libxscrnsaver)))
537 (propagated-inputs
538 `(("glib" ,glib)
539 ("webkit" ,webkitgtk)))
540 (synopsis "GObject JavaScriptCore bridge")
541 (description "Seed is a library and interpreter, dynamically bridging
542 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
543 GNOME platform. It serves as something which enables you to write standalone
544 applications in JavaScript, or easily enable your application to be extensible
545 in JavaScript.")
546 (home-page "https://wiki.gnome.org/Projects/Seed")
547 (license license:lgpl2.0+)))
548
549 (define-public libdmapsharing
550 (package
551 (name "libdmapsharing")
552 (version "3.9.10")
553 (source
554 (origin
555 (method url-fetch)
556 (uri
557 (string-append "https://www.flyn.org/projects/"
558 name "/" name "-" version ".tar.gz"))
559 (sha256
560 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
561 (build-system glib-or-gtk-build-system)
562 (outputs '("out" "doc"))
563 (arguments
564 `(#:tests? #f ; Tests require networking.
565 #:configure-flags
566 (list
567 "--disable-static"
568 (string-append "--with-html-dir="
569 (assoc-ref %outputs "doc")
570 "/share/gtk-doc/html"))
571 #:phases
572 (modify-phases %standard-phases
573 (add-after 'unpack 'patch-docbook-xml
574 (lambda* (#:key inputs #:allow-other-keys)
575 (with-directory-excursion "doc"
576 (substitute* "libdmapsharing-4.0-docs.xml"
577 (("http://www.oasis-open.org/docbook/xml/4.3/")
578 (string-append (assoc-ref inputs "docbook-xml")
579 "/xml/dtd/docbook/"))))
580 #t)))))
581 (native-inputs
582 `(("check" ,check)
583 ("docbook-xml" ,docbook-xml-4.3)
584 ("gobject-introspection" ,gobject-introspection)
585 ("pedansee" ,pedansee)
586 ("pkg-config" ,pkg-config)
587 ("vala" ,vala)))
588 (inputs
589 `(("avahi" ,avahi)
590 ("gdk-pixbuf" ,gdk-pixbuf+svg)
591 ("gee" ,libgee)
592 ("gst-plugins-base" ,gst-plugins-base)
593 ("gtk+" ,gtk+)))
594 (propagated-inputs
595 `(("glib" ,glib)
596 ("glib-networking" ,glib-networking)
597 ("gstreamer" ,gstreamer)
598 ("libsoup" ,libsoup)))
599 (synopsis "Media management library")
600 (description "Libdmapsharing is a library which allows programs to access,
601 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
602 It is written in C using GObject and libsoup.")
603 (home-page "https://launchpad.net/gtx")
604 (license license:lgpl2.1+)))
605
606 (define-public gtx
607 (package
608 (name "gtx")
609 (version "0.2.2")
610 (source
611 (origin
612 (method url-fetch)
613 (uri
614 (string-append "https://launchpad.net/gtx/trunk/"
615 version "/+download/gtx-" version ".tar.gz"))
616 (sha256
617 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
618 (build-system glib-or-gtk-build-system)
619 (outputs '("out" "doc"))
620 (arguments
621 `(#:configure-flags
622 (list
623 "--disable-static"
624 "--enable-gtk-doc"
625 (string-append "--with-html-dir="
626 (assoc-ref %outputs "doc")
627 "/share/gtk-doc/html"))))
628 (native-inputs
629 `(("gobject-introspection" ,gobject-introspection)
630 ("gtk-doc" ,gtk-doc/stable)
631 ("pkg-config" ,pkg-config)))
632 (propagated-inputs
633 `(("glib" ,glib)))
634 (synopsis "GLib Testing Framework")
635 (description "GTX is a small collection of convenience functions intended to
636 enhance the GLib testing framework. With specific emphasis on easing the pain
637 of writing test cases for asynchronous interactions.")
638 (home-page "https://launchpad.net/gtx")
639 (license license:lgpl2.1+)))
640
641 (define-public dee
642 (package
643 (name "dee")
644 (version "1.2.7")
645 (source
646 (origin
647 (method url-fetch)
648 (uri
649 (string-append "https://launchpad.net/dee/1.0/"
650 version "/+download/dee-" version ".tar.gz"))
651 (sha256
652 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
653 (patches
654 (search-patches "dee-vapi.patch"))))
655 (build-system glib-or-gtk-build-system)
656 (outputs '("out" "doc"))
657 (arguments
658 `(#:configure-flags
659 (list
660 "--disable-maintainer-flags"
661 (string-append "--with-pygi-overrides-dir="
662 (assoc-ref %outputs "out")
663 "/lib/python"
664 ,(version-major+minor
665 (package-version python))
666 "/site-packages/gi/overrides")
667 (string-append "--with-html-dir="
668 (assoc-ref %outputs "doc")
669 "/share/gtk-doc/html"))
670 #:phases
671 (modify-phases %standard-phases
672 (add-after 'unpack 'patch-docbook-xml
673 (lambda* (#:key inputs #:allow-other-keys)
674 (with-directory-excursion "doc/reference/dee-1.0"
675 (substitute* "dee-1.0-docs.sgml"
676 (("http://www.oasis-open.org/docbook/xml/4.3/")
677 (string-append (assoc-ref inputs "docbook-xml")
678 "/xml/dtd/docbook/"))))
679 #t))
680 (add-after 'patch-docbook-xml 'disable-failing-tests
681 (lambda _
682 (substitute* "tests/test-icu.c"
683 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
684 "")
685 (("setup, test_ascii_folder, teardown\\);")
686 ""))
687 #t))
688 (add-before 'check 'pre-check
689 (lambda _
690 ;; Tests require a running dbus-daemon.
691 (system "dbus-daemon &")
692 ;; For missing '/etc/machine-id'.
693 (setenv "DBUS_FATAL_WARNINGS" "0")
694 #t)))))
695 (native-inputs
696 `(("dbus" ,dbus)
697 ("dbus-test-runner" ,dbus-test-runner)
698 ("docbook-xml" ,docbook-xml-4.3)
699 ("gobject-introspection" ,gobject-introspection)
700 ("gtk-doc" ,gtk-doc/stable)
701 ;; Would only be required by configure flag "--enable-extended-tests".
702 ;("gtx" ,gtx)
703 ("pkg-config" ,pkg-config)
704 ("pygobject" ,python-pygobject)
705 ("python" ,python-wrapper)
706 ("vala" ,vala)))
707 (inputs
708 `(("icu" ,icu4c)))
709 (propagated-inputs
710 `(("glib" ,glib)))
711 (synopsis "Model to synchronize multiple instances over DBus")
712 (description "Dee is a library that uses DBus to provide objects allowing
713 you to create Model-View-Controller type programs across DBus. It also consists
714 of utility objects which extend DBus allowing for peer-to-peer discoverability
715 of known objects without needing a central registrar.")
716 (home-page "https://launchpad.net/dee")
717 (license
718 ;; Dual-licensed
719 (list
720 license:lgpl3+
721 license:gpl3+))))
722
723 (define-public zeitgeist
724 (package
725 (name "zeitgeist")
726 (version "1.0.3")
727 (source
728 (origin
729 (method git-fetch)
730 (uri
731 (git-reference
732 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
733 (commit
734 (string-append "v" version))))
735 (file-name
736 (git-file-name name version))
737 (sha256
738 (base32 "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp"))))
739 (build-system glib-or-gtk-build-system)
740 (arguments
741 `(#:configure-flags
742 (list
743 "--enable-explain-queries"
744 "--enable-fts"
745 "--enable-docs")
746 #:phases
747 (modify-phases %standard-phases
748 (add-after 'unpack 'patch-docbook-xml
749 (lambda* (#:key inputs #:allow-other-keys)
750 (with-directory-excursion "doc/libzeitgeist"
751 (substitute* "zeitgeist-gtkdoc-index.sgml"
752 (("http://www.oasis-open.org/docbook/xml/4.3/")
753 (string-append (assoc-ref inputs "docbook-xml")
754 "/xml/dtd/docbook/"))))
755 #t))
756 (add-after 'patch-docbook-xml 'disable-failing-tests
757 (lambda _
758 (substitute* "test/direct/Makefile.am"
759 ((" log-test ")
760 ""))
761 (substitute* "test/c/Makefile.am"
762 ((" test-log ")
763 ""))
764 #t))
765 (add-before 'bootstrap 'remove-autogen-script
766 (lambda _
767 ;; To honor `autoreconf -vif` by build-system.
768 (delete-file "autogen.sh")
769 #t)))))
770 (native-inputs
771 `(("autoconf" ,autoconf)
772 ("automake" ,automake)
773 ("docbook-xml" ,docbook-xml-4.3)
774 ("gettext" ,gettext-minimal)
775 ("gobject-introspection" ,gobject-introspection)
776 ("gtk-doc" ,gtk-doc/stable)
777 ("libtool" ,libtool)
778 ("pkg-config" ,pkg-config)
779 ("vala" ,vala)
780 ("xorg-server-for-tests" ,xorg-server-for-tests)))
781 (inputs
782 `(("dee-icu" ,dee)
783 ("gtk+" ,gtk+)
784 ("json-glib" ,json-glib)
785 ("sqlite" ,sqlite)
786 ("telepathy-glib" ,telepathy-glib)
787 ("python" ,python-wrapper)
788 ("python-rdflib" ,python-rdflib)
789 ("xapian-config" ,xapian)))
790 (propagated-inputs
791 `(("glib" ,glib)))
792 (synopsis "Desktop Activity Logging")
793 (description "Zeitgeist is a service which logs the users’s activities and
794 events, anywhere from files opened to websites visited and conversations. It
795 makes this information readily available for other applications to use. It is
796 able to establish relationships between items based on similarity and usage
797 patterns.")
798 (home-page "https://zeitgeist.freedesktop.org/")
799 (license
800 ;; Dual-licensed
801 (list
802 license:lgpl2.1+
803 license:gpl2+))))
804
805 (define-public gnome-recipes
806 (package
807 (name "gnome-recipes")
808 (version "2.0.4")
809 (source (origin
810 (method git-fetch)
811 (uri (git-reference
812 (url "https://gitlab.gnome.org/GNOME/recipes")
813 (commit version)))
814 (file-name (git-file-name name version))
815 (sha256
816 (base32
817 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
818 (build-system meson-build-system)
819 (arguments
820 `(#:glib-or-gtk? #t
821 #:phases
822 (modify-phases %standard-phases
823 (add-after 'unpack 'skip-gtk-update-icon-cache
824 (lambda _
825 (substitute* "meson_post_install.py"
826 (("gtk-update-icon-cache") (which "true")))
827 #t))
828 (add-after 'unpack 'unpack-libgd
829 (lambda* (#:key inputs #:allow-other-keys)
830 (let ((libgd (assoc-ref inputs "libgd")))
831 (copy-recursively libgd "subprojects/libgd")
832 #t))))))
833 (inputs
834 `(("glib" ,glib)
835 ("gnome-autoar" ,gnome-autoar)
836 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
837 ("gspell" ,gspell)
838 ("gtk+" ,gtk+)
839 ("json-glib" ,json-glib)
840 ("libcanberra" ,libcanberra)
841 ("libsoup" ,libsoup)
842 ("rest" ,rest)))
843 (native-inputs
844 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
845 ("gettext" ,gettext-minimal)
846 ("glib:bin" ,glib "bin")
847 ("itstool" ,itstool)
848 ("libgd"
849 ,(origin
850 (method git-fetch)
851 (uri (git-reference
852 (url "https://gitlab.gnome.org/GNOME/libgd")
853 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
854 (file-name (git-file-name "libgd" version))
855 (sha256
856 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
857 ("pkg-config" ,pkg-config)))
858 (home-page "https://wiki.gnome.org/Apps/Recipes")
859 (synopsis "Discover recipes for preparing food")
860 (description "GNOME Recipes helps you discover what to cook today,
861 tomorrow, the rest of the week and for special occasions.")
862 (license license:gpl3+)))
863
864 (define-public gnome-photos
865 (package
866 (name "gnome-photos")
867 (version "3.34.2")
868 (source
869 (origin
870 (method url-fetch)
871 (uri
872 (string-append "mirror://gnome/sources/" name "/"
873 (version-major+minor version) "/"
874 name "-" version ".tar.xz"))
875 (sha256
876 (base32
877 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
878 (build-system meson-build-system)
879 (arguments
880 `(#:glib-or-gtk? #t
881 #:configure-flags
882 (list "-Ddogtail=false" ; Not available
883 ;; Required for RUNPATH validation.
884 (string-append "-Dc_link_args=-Wl,-rpath="
885 (assoc-ref %outputs "out") "/lib/gnome-photos"))
886 #:phases
887 (modify-phases %standard-phases
888 (add-after 'install 'wrap-gnome-photos
889 (lambda* (#:key inputs outputs #:allow-other-keys)
890 (let*
891 ((out (assoc-ref outputs "out")))
892 (wrap-program (string-append out "/bin/gnome-photos")
893 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
894 #t)))))
895 (native-inputs
896 `(("dbus" ,dbus)
897 ("desktop-file-utils" ,desktop-file-utils)
898 ("gettext" ,gettext-minimal)
899 ("git" ,git-minimal)
900 ("glib:bin" ,glib "bin")
901 ("gobject-introspection" ,gobject-introspection)
902 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
903 ("gtk+:bin" ,gtk+ "bin")
904 ("itstool" ,itstool)
905 ("pkg-config" ,pkg-config)))
906 (inputs
907 `(("babl" ,babl)
908 ("cairo" ,cairo)
909 ("gdk-pixbuf" ,gdk-pixbuf+svg)
910 ("gegl" ,gegl)
911 ("geocode-glib" ,geocode-glib)
912 ("gexiv2" ,gexiv2)
913 ("gnome-online-accounts" ,gnome-online-accounts)
914 ("gnome-online-miners" ,gnome-online-miners)
915 ("grilo" ,grilo)
916 ("grilo-plugins" ,grilo-plugins)
917 ("gtk+" ,gtk+)
918 ("libdazzle" ,libdazzle)
919 ("libgdata" ,libgdata)
920 ("libgfbgraph" ,gfbgraph)
921 ("libjpeg" ,libjpeg-turbo)
922 ("libpng" ,libpng)
923 ("librest" ,rest)
924 ("pygobject" ,python-pygobject)
925 ("tracker" ,tracker)
926 ("tracker-miners" ,tracker-miners)))
927 (synopsis "Access, organize and share your photos on GNOME desktop")
928 (description "GNOME Photos is a simple and elegant replacement for using a
929 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
930 cloud integration is offered through GNOME Online Accounts.")
931 (home-page "https://wiki.gnome.org/Apps/Photos")
932 (license license:gpl3+)))
933
934 (define-public gnome-music
935 (package
936 (name "gnome-music")
937 (version "3.34.5")
938 (source
939 (origin
940 (method url-fetch)
941 (uri
942 (string-append "mirror://gnome/sources/" name "/"
943 (version-major+minor version) "/"
944 name "-" version ".tar.xz"))
945 (sha256
946 (base32
947 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
948 (build-system meson-build-system)
949 (arguments
950 `(#:glib-or-gtk? #t
951 #:phases
952 (modify-phases %standard-phases
953 (add-after 'install 'wrap-gnome-music
954 (lambda* (#:key inputs outputs #:allow-other-keys)
955 (let*
956 ((out (assoc-ref outputs "out"))
957 (pylib (string-append out "/lib/python"
958 ,(version-major+minor
959 (package-version python))
960 "/site-packages")))
961 (wrap-program (string-append out "/bin/gnome-music")
962 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
963 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
964 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
965 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))))
966 #t)))))
967 (native-inputs
968 `(("desktop-file-utils" ,desktop-file-utils)
969 ("gettext" ,gettext-minimal)
970 ("glib:bin" ,glib "bin")
971 ("gobject-introspection" ,gobject-introspection)
972 ("gtk+:bin" ,gtk+ "bin")
973 ("itstools" ,itstool)
974 ("pkg-config" ,pkg-config)))
975 (inputs
976 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
977 ("grilo" ,grilo)
978 ("grilo-plugins" ,grilo-plugins)
979 ("gst-plugins-base" ,gst-plugins-base)
980 ("gstreamer" ,gstreamer)
981 ("gvfs" ,gvfs)
982 ("libdazzle" ,libdazzle)
983 ("libmediaart" ,libmediaart)
984 ("libsoup" ,libsoup)
985 ("pycairo" ,python-pycairo)
986 ("pygobject" ,python-pygobject)
987 ("tracker" ,tracker)
988 ("tracker-miners" ,tracker-miners)))
989 (synopsis "Simple music player for GNOME desktop")
990 (description "GNOME Music is the new GNOME music playing application that
991 aims to combine an elegant and immersive browsing experience with simple
992 and straightforward controls.")
993 (home-page "https://wiki.gnome.org/Apps/Music")
994 (license license:gpl2+)))
995
996 (define-public portablexdr
997 (package
998 (name "portablexdr")
999 (version "4.9.1")
1000 (source
1001 (origin
1002 (method url-fetch)
1003 (uri
1004 (string-append "https://people.redhat.com/~rjones/" name "/files/"
1005 name "-" version ".tar.gz"))
1006 (sha256
1007 (base32
1008 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1009 (build-system gnu-build-system)
1010 (synopsis "External Data Representation Library")
1011 (description "PortableXDR is an implementation of External Data
1012 Representation (XDR) Library. It is a standard data serialization format, for
1013 uses such as computer network protocols. It allows data to be transferred
1014 between different kinds of computer systems.")
1015 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1016 (license
1017 (list
1018 license:gpl2+
1019 license:lgpl2.1+))))
1020
1021 (define-public tepl
1022 (package
1023 (name "tepl")
1024 (version "4.4.0")
1025 (source
1026 (origin
1027 (method url-fetch)
1028 (uri
1029 (string-append "mirror://gnome/sources/" name "/"
1030 (version-major+minor version) "/"
1031 name "-" version ".tar.xz"))
1032 (sha256
1033 (base32
1034 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
1035 (build-system glib-or-gtk-build-system)
1036 (arguments
1037 `(#:tests? #f)) ; FIX-ME: Requires gvfs
1038 (native-inputs
1039 `(("gobject-introspection" ,gobject-introspection)
1040 ("pkg-config" ,pkg-config)))
1041 (inputs
1042 `(("amtk" ,amtk)
1043 ("glib" ,glib)
1044 ("gtk+" ,gtk+)
1045 ("gtksourceview" ,gtksourceview)
1046 ("libxml2" ,libxml2)
1047 ("uchardet" ,uchardet)))
1048 (synopsis "Text editor product line")
1049 (description "Tepl is a library that eases the development of
1050 GtkSourceView-based text editors and IDEs.")
1051 (home-page "https://wiki.gnome.org/Projects/Tepl")
1052 (license license:lgpl2.1+)))
1053
1054 (define-public krb5-auth-dialog
1055 (package
1056 (name "krb5-auth-dialog")
1057 (version "3.26.1")
1058 (source
1059 (origin
1060 (method url-fetch)
1061 (uri
1062 (string-append "mirror://gnome/sources/" name "/"
1063 (version-major+minor version) "/"
1064 name "-" version ".tar.xz"))
1065 (sha256
1066 (base32
1067 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1068 (build-system glib-or-gtk-build-system)
1069 (native-inputs
1070 `(("intltool" ,intltool)
1071 ("itstool" ,itstool)
1072 ("libxml2" ,libxml2)
1073 ("pkg-config" ,pkg-config)
1074 ("python-wrapper" ,python-wrapper)))
1075 (inputs
1076 `(("glib" ,glib)
1077 ("gtk+" ,gtk+)
1078 ("libnotify" ,libnotify)
1079 ("mit-krb5" ,mit-krb5)
1080 ("network-manager" ,network-manager)))
1081 (synopsis "Popup dialogs for Kerberos 5")
1082 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1083 tickets, and pops up a dialog when they are about to expire.")
1084 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1085 (license license:gpl2+)))
1086
1087 (define-public notification-daemon
1088 (package
1089 (name "notification-daemon")
1090 (version "3.20.0")
1091 (source
1092 (origin
1093 (method url-fetch)
1094 (uri
1095 (string-append "mirror://gnome/sources/" name "/"
1096 (version-major+minor version) "/"
1097 name "-" version ".tar.xz"))
1098 (sha256
1099 (base32
1100 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1101 (build-system glib-or-gtk-build-system)
1102 (native-inputs
1103 `(("intltool" ,intltool)
1104 ("pkg-config" ,pkg-config)))
1105 (inputs
1106 `(("glib" ,glib)
1107 ("gtk+" ,gtk+)
1108 ("x11" ,libx11)))
1109 (synopsis "Notification Daemon for GNOME Desktop")
1110 (description "Notification-Daemon is the server implementation of the
1111 freedesktop.org desktop notification specification.")
1112 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1113 (license license:gpl2+)))
1114
1115 (define-public mm-common
1116 (package
1117 (name "mm-common")
1118 (version "1.0.3")
1119 (source (origin
1120 (method url-fetch)
1121 (uri (string-append "mirror://gnome/sources/mm-common/"
1122 (version-major+minor version) "/"
1123 "mm-common-" version ".tar.xz"))
1124 (sha256
1125 (base32
1126 "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
1127 (build-system meson-build-system)
1128 (arguments
1129 `(#:phases
1130 (modify-phases %standard-phases
1131 (add-after 'unpack 'patch
1132 (lambda* (#:key inputs #:allow-other-keys)
1133 (substitute* "util/mm-common-prepare.in"
1134 (("ln") (search-input-file inputs "/bin/ln"))
1135 (("cp") (search-input-file inputs "/bin/cp"))
1136 (("sed") (search-input-file inputs "/bin/sed"))
1137 (("cat") (search-input-file inputs "/bin/cat"))))))))
1138 (native-inputs
1139 `(("coreutils" ,coreutils)
1140 ("gettext" ,gettext-minimal)
1141 ("pkg-config" ,pkg-config)
1142 ("sed" ,sed)))
1143 (inputs
1144 `(("python" ,python)))
1145 (synopsis "Module of GNOME C++ bindings")
1146 (description "The mm-common module provides the build infrastructure
1147 and utilities shared among the GNOME C++ binding libraries. Release
1148 archives of mm-common include the Doxygen tag file for the GNU C++
1149 Library reference documentation.")
1150 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1151 (license license:gpl2+)))
1152
1153 (define-public phodav
1154 (package
1155 (name "phodav")
1156 (version "2.5")
1157 (source (origin
1158 (method url-fetch)
1159 (uri (string-append "mirror://gnome/sources/" name "/"
1160 (version-major+minor version) "/"
1161 name "-" version ".tar.xz"))
1162 (sha256
1163 (base32
1164 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1165 (build-system meson-build-system)
1166 (arguments
1167 `(#:phases
1168 (modify-phases %standard-phases
1169 (add-after 'unpack 'fix-udev-rules-directory
1170 (lambda* (#:key outputs #:allow-other-keys)
1171 (let* ((out (assoc-ref outputs "out"))
1172 (rules (string-append out "/lib/udev/rules.d")))
1173 (substitute* "data/meson.build"
1174 (("udev\\.get_pkgconfig_variable\\('udevdir'\\)")
1175 (format #f "'~a'" rules))))))
1176 (add-before 'check 'start-virtual-dir-server
1177 ;; The same server when started by tests/virtual-dir returns an
1178 ;; unexpected status (4 instead of 200) and fails a test. It is
1179 ;; unclear why starting it manually here makes it pass.
1180 (lambda _
1181 (system "tests/virtual-dir-server &"))))))
1182 (native-inputs
1183 `(("docbook-xml" ,docbook-xml-4.3)
1184 ("gettext" ,gettext-minimal)
1185 ("glib:bin" ,glib "bin")
1186 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1187 ("gtk-doc" ,gtk-doc/stable)
1188 ("pkg-config" ,pkg-config)))
1189 (inputs
1190 `(("avahi" ,avahi)
1191 ("libgudev" ,libgudev)
1192 ("libsoup" ,libsoup)))
1193 (synopsis "WebDav server implementation using libsoup")
1194 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1195 but it is generic enough to be reused in other projects,
1196 in particular in the GNOME desktop.")
1197 (home-page "https://wiki.gnome.org/phodav")
1198 (license license:lgpl2.1+)))
1199
1200 (define-public gnome-color-manager
1201 (package
1202 (name "gnome-color-manager")
1203 (version "3.32.0")
1204 (source (origin
1205 (method url-fetch)
1206 (uri (string-append "mirror://gnome/sources/" name "/"
1207 (version-major+minor version) "/"
1208 name "-" version ".tar.xz"))
1209 (sha256
1210 (base32
1211 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1212 (build-system meson-build-system)
1213 (arguments
1214 `(#:glib-or-gtk? #t
1215 #:phases
1216 (modify-phases %standard-phases
1217 (add-before
1218 'check 'pre-check
1219 (lambda _
1220 ;; Tests require a running X server.
1221 (system "Xvfb :1 &")
1222 (setenv "DISPLAY" ":1")
1223 #t)))))
1224 (native-inputs
1225 `(("desktop-file-utils" ,desktop-file-utils)
1226 ("gettext" ,gettext-minimal)
1227 ("glib:bin" ,glib "bin")
1228 ("gtk+:bin" ,gtk+ "bin")
1229 ("itstool" ,itstool)
1230 ("pkg-config" ,pkg-config)
1231 ("xorg-server" ,xorg-server-for-tests)))
1232 (inputs
1233 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1234 ("appstream-glib" ,appstream-glib)
1235 ("colord-gtk" ,colord-gtk)
1236 ("exiv2" ,exiv2)
1237 ("gnome-desktop" ,gnome-desktop)
1238 ("libcanberra" ,libcanberra)
1239 ("libexif" ,libexif)
1240 ("libtiff" ,libtiff)
1241 ("libxrandr" ,libxrandr)
1242 ("libxtst" ,libxtst)
1243 ("libxxf86vm" ,libxxf86vm)
1244 ("vte" ,vte)
1245 ("xorgproto" ,xorgproto)))
1246 (synopsis "Color profile manager for the GNOME desktop")
1247 (description "GNOME Color Manager is a session framework that makes
1248 it easy to manage, install and generate color profiles
1249 in the GNOME desktop.")
1250 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1251 (license license:gpl2+)))
1252
1253 (define-public gnome-online-miners
1254 (package
1255 (name "gnome-online-miners")
1256 (version "3.34.0")
1257 (source (origin
1258 (method url-fetch)
1259 (uri (string-append "mirror://gnome/sources/" name "/"
1260 (version-major+minor version) "/"
1261 name "-" version ".tar.xz"))
1262 (sha256
1263 (base32
1264 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1265 (build-system glib-or-gtk-build-system)
1266 (native-inputs
1267 `(("gettext" ,gettext-minimal)
1268 ("glib:bin" ,glib "bin")
1269 ("gobject-introspection" ,gobject-introspection)
1270 ("gtk+:bin" ,gtk+ "bin")
1271 ("pkg-config" ,pkg-config)))
1272 (inputs
1273 `(("gnome-online-accounts" ,gnome-online-accounts)
1274 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1275 ("grilo" ,grilo)
1276 ("libgdata" ,libgdata)
1277 ("libgfbgraph" ,gfbgraph)
1278 ("libzapojit" ,libzapojit)
1279 ("rest" ,rest)
1280 ("tracker" ,tracker)))
1281 (synopsis "Web Crawlers for GNOME")
1282 (description "GNOME Online Miners provides a set of crawlers that
1283 go through your online content and index them locally in Tracker.
1284 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1285 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1286 (license license:gpl2+)))
1287
1288 (define-public gssdp
1289 (package
1290 (name "gssdp")
1291 (version "1.2.3")
1292 (source (origin
1293 (method url-fetch)
1294 (uri (string-append "mirror://gnome/sources/" name "/"
1295 (version-major+minor version) "/"
1296 name "-" version ".tar.xz"))
1297 (sha256
1298 (base32
1299 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1300 (build-system meson-build-system)
1301 (native-inputs
1302 `(("gettext" ,gettext-minimal)
1303 ("glib:bin" ,glib "bin")
1304 ("gobject-introspection" ,gobject-introspection)
1305 ("gtk-doc" ,gtk-doc/stable)
1306 ("pkg-config" ,pkg-config)
1307 ("vala" ,vala)))
1308 (inputs
1309 `(("gtk+" ,gtk+)
1310 ("libsoup" ,libsoup)))
1311 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1312 Protocol} for GNOME")
1313 (description "This package provides a library to handle resource discovery
1314 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1315 a debugging tool, @command{gssdp-device-sniffer}.")
1316 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1317 (license license:lgpl2.0+)))
1318
1319 (define-public gupnp
1320 (package
1321 (name "gupnp")
1322 (version "1.2.4")
1323 (source (origin
1324 (method url-fetch)
1325 (uri (string-append "mirror://gnome/sources/" name "/"
1326 (version-major+minor version) "/"
1327 name "-" version ".tar.xz"))
1328 (sha256
1329 (base32
1330 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1331 (build-system meson-build-system)
1332 (native-inputs
1333 `(("gettext" ,gettext-minimal)
1334 ("glib:bin" ,glib "bin")
1335 ("gobject-introspection" ,gobject-introspection)
1336 ("gtk-doc" ,gtk-doc/stable)
1337 ("pkg-config" ,pkg-config)
1338 ("vala" ,vala)))
1339 (inputs
1340 `(("gssdp" ,gssdp)
1341 ("gtk+" ,gtk+)
1342 ("libsoup" ,libsoup)))
1343 (propagated-inputs
1344 `(;; For ‘org.gnome.system.proxy’.
1345 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
1346 (synopsis "PnP API for GNOME")
1347 (description "This package provides GUPnP, an object-oriented framework
1348 for creating UPnP devices and control points, written in C using
1349 @code{GObject} and @code{libsoup}.")
1350 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1351 (license license:lgpl2.0+)))
1352
1353 (define-public gupnp-dlna
1354 (package
1355 (name "gupnp-dlna")
1356 (version "0.10.5")
1357 (source (origin
1358 (method url-fetch)
1359 (uri (string-append "mirror://gnome/sources/" name "/"
1360 (version-major+minor version) "/"
1361 name "-" version ".tar.xz"))
1362 (sha256
1363 (base32
1364 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1365 (build-system gnu-build-system)
1366 (native-inputs
1367 `(("gettext" ,gettext-minimal)
1368 ("glib:bin" ,glib "bin")
1369 ("gobject-introspection" ,gobject-introspection)
1370 ("gtk-doc" ,gtk-doc/stable)
1371 ("libxml" ,libxml2)
1372 ("pkg-config" ,pkg-config)
1373 ("vala" ,vala)))
1374 (inputs
1375 `(("gstreamer" ,gstreamer)
1376 ("gupnp" ,gupnp)))
1377 (propagated-inputs
1378 `(("gst-plugins-base" ,gst-plugins-base)
1379 ("gst-plugins-good" ,gst-plugins-good)))
1380 (synopsis "GUPnP DLNA for GNOME")
1381 (description "This package provides a small utility library to
1382 support DLNA-related tasks such as media profile guessing, transcoding to a
1383 given profile, etc. DLNA is a subset of UPnP A/V.")
1384 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1385 (license license:lgpl2.0+)))
1386
1387 (define-public gupnp-av
1388 (package
1389 (name "gupnp-av")
1390 (version "0.12.11")
1391 (source (origin
1392 (method url-fetch)
1393 (uri (string-append "mirror://gnome/sources/" name "/"
1394 (version-major+minor version) "/"
1395 name "-" version ".tar.xz"))
1396 (sha256
1397 (base32
1398 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1399 (build-system gnu-build-system)
1400 (native-inputs
1401 `(("gettext" ,gettext-minimal)
1402 ("glib:bin" ,glib "bin")
1403 ("gobject-introspection" ,gobject-introspection)
1404 ("gtk-doc" ,gtk-doc/stable)
1405 ("libxml" ,libxml2)
1406 ("pkg-config" ,pkg-config)))
1407 (inputs
1408 `(("gtk+" ,gtk+)
1409 ("gupnp" ,gupnp)))
1410 (synopsis "GUPnP A/V for GNOME")
1411 (description "This package provides a small library for handling
1412 and implementation of UPnP A/V profiles.")
1413 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1414 (license license:lgpl2.0+)))
1415
1416 (define-public libmediaart
1417 (package
1418 (name "libmediaart")
1419 (version "1.9.5")
1420 (source (origin
1421 (method url-fetch)
1422 (uri (string-append "mirror://gnome/sources/" name "/"
1423 (version-major+minor version) "/"
1424 name "-" version ".tar.xz"))
1425 (sha256
1426 (base32
1427 "1mlw1qgj8nkd9ll6b6h54r1gfdy3zp8a8xqz7qfyfaj85jjgbph7"))))
1428 (build-system meson-build-system)
1429 (native-inputs
1430 `(("glib:bin" ,glib "bin")
1431 ("pkg-config" ,pkg-config)))
1432 (inputs
1433 `(("gdk-pixbuf" ,gdk-pixbuf)
1434 ("gettext" ,gettext-minimal)
1435 ("gobject-introspection" ,gobject-introspection)
1436 ("gtk+:doc" ,gtk+ "doc")
1437 ("vala" ,vala)))
1438 (synopsis "Media art library for the GNOME desktop")
1439 (description
1440 "The libmediaart library is the foundation for media art caching,
1441 extraction, and lookup for applications on the desktop.")
1442 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1443 (license license:lgpl2.1+)))
1444
1445 (define-public gnome-initial-setup
1446 (package
1447 (name "gnome-initial-setup")
1448 (version "3.32.1")
1449 (source (origin
1450 (method url-fetch)
1451 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1452 (version-major+minor version)
1453 "/gnome-initial-setup-" version ".tar.xz"))
1454 (sha256
1455 (base32
1456 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1457 (build-system meson-build-system)
1458 (arguments
1459 '(#:configure-flags '(;; Enable camera support for user selfie.
1460 "-Dcheese=auto"
1461 "-Dsystemd=false")
1462 #:phases (modify-phases %standard-phases
1463 (add-after 'unpack 'set-gkbd-file-name
1464 (lambda* (#:key inputs #:allow-other-keys)
1465 ;; Allow the "Preview" button in the keyboard layout
1466 ;; selection dialog to display the layout.
1467 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1468 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1469 (("\"gkbd-keyboard-display")
1470 (string-append "\"" libgnomekbd
1471 "/bin/gkbd-keyboard-display")))
1472 #t))))))
1473 (native-inputs
1474 `(("gettext" ,gettext-minimal)
1475 ("glib:bin" ,glib "bin")
1476 ("gobject-introspection" ,gobject-introspection)
1477 ("gtk+:bin" ,gtk+ "bin")
1478 ("pkg-config" ,pkg-config)))
1479 (inputs
1480 `(("accountsservice" ,accountsservice)
1481 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1482 ("gdm" ,gdm)
1483 ("geoclue" ,geoclue)
1484 ("gnome-desktop" ,gnome-desktop)
1485 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1486 ("gnome-online-accounts" ,gnome-online-accounts)
1487 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1488 ("gstreamer" ,gstreamer)
1489 ("ibus" ,ibus)
1490 ("json-glib" ,json-glib)
1491 ("krb5" ,mit-krb5)
1492 ("libgweather" ,libgweather)
1493 ("libnma" ,libnma)
1494 ("libsecret" ,libsecret)
1495 ("network-manager" ,network-manager)
1496 ("packagekit" ,packagekit)
1497 ("polkit" ,polkit)
1498 ("pwquality" ,libpwquality)
1499 ("rest" ,rest)
1500 ("upower" ,upower)
1501 ("webkitgtk" ,webkitgtk)
1502 ("libgnomekbd" ,libgnomekbd)))
1503 (synopsis "Initial setup wizard for GNOME desktop")
1504 (description "This package provides a set-up wizard when a
1505 user logs into GNOME for the first time. It typically provides a
1506 tour of all gnome components and allows the user to set them up.")
1507 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1508 (license license:gpl2)))
1509
1510 (define-public gnome-user-share
1511 (package
1512 (name "gnome-user-share")
1513 (version "3.33.1")
1514 (source (origin
1515 (method url-fetch)
1516 (uri (string-append "mirror://gnome/sources/" name "/"
1517 (version-major+minor version) "/"
1518 name "-" version ".tar.xz"))
1519 (sha256
1520 (base32
1521 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1522 (build-system meson-build-system)
1523 (arguments
1524 `(#:glib-or-gtk? #t
1525 #:configure-flags
1526 `("-Dsystemd=false"
1527 ;; Enable nautilus extension for file sharing.
1528 "-Dnautilus_extension=true")))
1529 (native-inputs
1530 `(("gettext" ,gettext-minimal)
1531 ("glib:bin" ,glib "bin")
1532 ("gobject-introspection" ,gobject-introspection)
1533 ("gtk+:bin" ,gtk+ "bin")
1534 ("pkg-config" ,pkg-config)
1535 ("yelp-tools" ,yelp-tools)))
1536 (inputs
1537 `(("glib" ,glib)
1538 ("gnome-bluetooth" ,gnome-bluetooth)
1539 ("gtk+" ,gtk+)
1540 ("libcanberra" ,libcanberra)
1541 ("libnotify" ,libnotify)
1542 ("nautilus" ,nautilus))) ; For nautilus extension.
1543 (synopsis "File sharing for GNOME desktop")
1544 (description "GNOME User Share is a small package that binds together
1545 various free software projects to bring easy to use user-level file
1546 sharing to the masses.")
1547 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1548 (license license:gpl2+)))
1549
1550 (define-public sushi
1551 (package
1552 (name "sushi")
1553 (version "3.32.1")
1554 (source (origin
1555 (method url-fetch)
1556 (uri (string-append "mirror://gnome/sources/" name "/"
1557 (version-major+minor version) "/"
1558 name "-" version ".tar.xz"))
1559 (sha256
1560 (base32
1561 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1562 (build-system meson-build-system)
1563 (arguments
1564 `(#:glib-or-gtk? #t
1565 #:phases
1566 (modify-phases %standard-phases
1567 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1568 (lambda* (#:key outputs #:allow-other-keys)
1569 (let ((prog (string-append (assoc-ref outputs "out")
1570 "/bin/sushi")))
1571 ;; Put existing typelibs before sushi's deps, so as to correctly
1572 ;; infer gdk-pixbuf
1573 (wrap-program prog
1574 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1575 #t))))))
1576 (native-inputs
1577 `(("glib:bin" ,glib "bin")
1578 ("gettext" ,gettext-minimal)
1579 ("gobject-introspection" ,gobject-introspection)
1580 ("pkg-config" ,pkg-config)))
1581 (inputs
1582 `(("clutter" ,clutter)
1583 ("clutter-gst" ,clutter-gst)
1584 ("clutter-gtk" ,clutter-gtk)
1585 ("evince" ,evince) ; For file previewing.
1586 ("freetype" ,freetype)
1587 ("gdk-pixbuf" ,gdk-pixbuf)
1588 ("gjs" ,gjs)
1589 ("gst-plugins-base" ,gst-plugins-base)
1590 ("gstreamer" ,gstreamer)
1591 ("gtksourceview" ,gtksourceview-3)
1592 ("harfbuzz" ,harfbuzz)
1593 ("libepoxy" ,libepoxy)
1594 ("libmusicbrainz" ,libmusicbrainz)
1595 ("libxml2" ,libxml2)
1596 ("neon" ,neon)
1597 ("webkitgtk" ,webkitgtk)))
1598 (synopsis "File previewer for the GNOME desktop")
1599 (description "Sushi is a DBus-activated service that allows applications to
1600 preview files on the GNOME desktop.")
1601 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1602 (license license:gpl2+)))
1603
1604 (define-public rygel
1605 (package
1606 (name "rygel")
1607 (version "0.38.3")
1608 (source (origin
1609 (method url-fetch)
1610 (uri (string-append "mirror://gnome/sources/" name "/"
1611 (version-major+minor version) "/"
1612 name "-" version ".tar.xz"))
1613 (sha256
1614 (base32
1615 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1616 (build-system gnu-build-system)
1617 (native-inputs
1618 `(("gettext" ,gettext-minimal)
1619 ("gobject-introspection" ,gobject-introspection)
1620 ("gtk-doc" ,gtk-doc/stable)
1621 ("pkg-config" ,pkg-config)
1622 ("vala" ,vala)))
1623 (inputs
1624 `(("gdk-pixbuf" ,gdk-pixbuf)
1625 ("gssdp" ,gssdp)
1626 ("gstreamer" ,gstreamer)
1627 ("gst-plugins-base" ,gst-plugins-base)
1628 ("gtk+" ,gtk+)
1629 ("gupnp" ,gupnp)
1630 ("gupnp-av" ,gupnp-av)
1631 ("gupnp-dlna" ,gupnp-dlna)
1632 ("libgee" ,libgee)
1633 ("libmediaart" ,libmediaart)
1634 ("libsoup" ,libsoup)
1635 ("libxslt" ,libxslt)
1636 ("libunistring" ,libunistring)
1637 ("tracker" ,tracker)))
1638 (synopsis "Share audio, video, and pictures with other devices")
1639 (description
1640 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1641 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1642 pictures, and to control a media player on your home network.
1643
1644 Rygel achieves interoperability with other devices by trying to conform to the
1645 strict requirements of DLNA and by converting media on-the-fly to formats that
1646 client devices can handle.")
1647 (home-page "https://wiki.gnome.org/Projects/Rygel")
1648 (license (list
1649 ;; For logo (data/icons/*).
1650 license:cc-by-sa3.0
1651 ;; For all others.
1652 license:lgpl2.1+))))
1653
1654 (define-public libnma
1655 (package
1656 (name "libnma")
1657 (version "1.8.28")
1658 (source (origin
1659 (method url-fetch)
1660 (uri (string-append "mirror://gnome/sources/" name "/"
1661 (version-major+minor version) "/"
1662 name "-" version ".tar.xz"))
1663 (sha256
1664 (base32
1665 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1666 (build-system meson-build-system)
1667 (arguments
1668 `(#:phases
1669 (modify-phases %standard-phases
1670 (add-after 'unpack 'patch-docbook-xml
1671 (lambda* (#:key inputs #:allow-other-keys)
1672 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1673 "/xml/dtd/docbook")))
1674 (substitute* "libnma-docs.xml"
1675 (("http://.*/docbookx\\.dtd")
1676 (string-append xmldoc "/docbookx.dtd")))
1677 #t))))))
1678 (native-inputs
1679 `(("docbook-xml" ,docbook-xml-4.3)
1680 ("gettext" ,gettext-minimal)
1681 ("glib:bin" ,glib "bin")
1682 ("gtk-doc" ,gtk-doc/stable)
1683 ("gobject-introspection" ,gobject-introspection)
1684 ("pkg-config" ,pkg-config)
1685 ("vala" ,vala)))
1686 (inputs
1687 `(("gcr" ,gcr)
1688 ("gtk+" ,gtk+)
1689 ("iso-codes" ,iso-codes)
1690 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1691 ("network-manager" ,network-manager)))
1692 (synopsis "Network Manager's applet library")
1693 (description "Libnma is an applet library for Network Manager. It was
1694 initially part of network-manager-applet and has now become a separate
1695 project.")
1696 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1697 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1698 ;; "LGPL-2.1+".
1699 (license license:gpl2+)))
1700
1701 (define-public gnome-menus
1702 (package
1703 (name "gnome-menus")
1704 (version "3.32.0")
1705 (source (origin
1706 (method url-fetch)
1707 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1708 (version-major+minor version) "/"
1709 name "-" version ".tar.xz"))
1710 (sha256
1711 (base32
1712 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1713 (build-system gnu-build-system)
1714 (native-inputs
1715 `(("gettext" ,gettext-minimal)
1716 ("glib" ,glib)
1717 ("pkg-config" ,pkg-config)))
1718 (synopsis "Menu support for GNOME desktop")
1719 (description "GNOME Menus contains the libgnome-menu library, the layout
1720 configuration files for the GNOME menu, as well as a simple menu editor.")
1721 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1722 (license license:lgpl2.0+)))
1723
1724 (define-public deja-dup
1725 (package
1726 (name "deja-dup")
1727 (version "40.6")
1728 (source (origin
1729 (method url-fetch)
1730 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1731 version "/deja-dup-" version ".tar.bz2"))
1732 (sha256
1733 (base32
1734 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1735 (build-system meson-build-system)
1736 (arguments
1737 `(#:glib-or-gtk? #t
1738 #:configure-flags
1739 (list
1740 ;; Otherwise, the RUNPATH will lack the final path component.
1741 (string-append "-Dc_link_args=-Wl,-rpath="
1742 (assoc-ref %outputs "out") "/lib/deja-dup"))
1743 #:phases
1744 (modify-phases %standard-phases
1745 (add-after 'unpack 'patch-paths
1746 (lambda* (#:key inputs #:allow-other-keys)
1747 (let ((python (assoc-ref inputs "python")))
1748 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1749 "libdeja/tests/scripts/instance-error.test")
1750 (("/bin/rm")
1751 (which "rm")))
1752 (substitute* "libdeja/tests/runner.vala"
1753 (("/bin/sh")
1754 (which "sh")))
1755 (substitute* "libdeja/tests/scripts/instance-error.test"
1756 (("`which python3`")
1757 (string-append python "/bin/python3"))))))
1758 (add-after 'unpack 'patch-libgpg-error
1759 (lambda* (#:key inputs #:allow-other-keys)
1760 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1761 (substitute* "meson.build"
1762 (("(gpgerror_libs = ).*" _ var)
1763 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1764 #t))
1765 (add-after 'unpack 'skip-gtk-update-icon-cache
1766 ;; Don't create 'icon-theme.cache'.
1767 (lambda _
1768 (substitute* "data/post-install.sh"
1769 (("gtk-update-icon-cache") "true"))
1770 #t)))))
1771 (inputs
1772 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1773 ("duplicity" ,duplicity)
1774 ("python" ,python)
1775 ("python-pygobject" ,python-pygobject)
1776 ("gtk+" ,gtk+)
1777 ("json-glib" ,json-glib)
1778 ("libnotify" ,libnotify)
1779 ("libgpg-error" ,libgpg-error)
1780 ("libsecret" ,libsecret)
1781 ("libsoup" ,libsoup)
1782 ("packagekit" ,packagekit)))
1783 (native-inputs
1784 `(("appstream-glib" ,appstream-glib)
1785 ("desktop-file-utils" ,desktop-file-utils)
1786 ("gettext" ,gettext-minimal)
1787 ("glib" ,glib "bin") ; for glib-compile-schemas.
1788 ("gobject-introspection" ,gobject-introspection)
1789 ("itstool" ,itstool)
1790 ("pkg-config" ,pkg-config)
1791 ("vala" ,vala)))
1792 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1793 (synopsis "Simple backup tool, for regular encrypted backups")
1794 (description
1795 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1796 uses duplicity as the backend, which supports incremental backups and storage
1797 either on a local, or remote machine via a number of methods.")
1798 (license license:gpl3+)))
1799
1800 (define-public gnome-commander
1801 (package
1802 (name "gnome-commander")
1803 (version "1.12.2")
1804 (source
1805 (origin
1806 (method url-fetch)
1807 (uri (string-append "mirror://gnome/sources/" name "/"
1808 (version-major+minor version) "/"
1809 "gnome-commander-" version ".tar.xz"))
1810 (sha256
1811 (base32 "0f7l2pkyh3r1qk4hhavl7387l3bq5my3snpdppiavcpnji28dpa5"))))
1812 (build-system glib-or-gtk-build-system)
1813 (native-inputs
1814 `(("desktop-file-utils" ,desktop-file-utils)
1815 ("gettext" ,gettext-minimal)
1816 ("glib:bin" ,glib "bin")
1817 ("gobject-introspection" ,gobject-introspection)
1818 ("googletest" ,googletest)
1819 ("intltool" ,intltool)
1820 ("itstool" ,itstool)
1821 ("libtool" ,libtool)
1822 ("pkg-config" ,pkg-config)))
1823 (inputs
1824 `(("gconf" ,gconf)
1825 ("gnome-vfs" ,gnome-vfs)
1826 ("gtk+" ,gtk+-2)
1827 ("libxml2" ,libxml2)))
1828 (home-page "https://gcmd.github.io/")
1829 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1830 (description
1831 "GNOME Commander is a two-pane graphical file manager using GNOME
1832 libraries. It aims to fulfill the demands of more advanced users who
1833 like to focus on file management, their work through special applications
1834 and running smart commands.")
1835 (license license:gpl2+)))
1836
1837 (define-public gnome-user-docs
1838 (package
1839 (name "gnome-user-docs")
1840 (version "3.32.3")
1841 (source
1842 (origin
1843 (method url-fetch)
1844 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1845 (version-major+minor version)
1846 "/gnome-user-docs-" version ".tar.xz"))
1847 (sha256
1848 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1849 (build-system gnu-build-system)
1850 (native-inputs
1851 `(("gettext" ,gettext-minimal)
1852 ("itstool" ,itstool)
1853 ("pkg-config" ,pkg-config)
1854 ("xmllint" ,libxml2)))
1855 (synopsis "User documentation for the GNOME desktop")
1856 (description
1857 "The GNOME User Documentation explains how to use the GNOME desktop and its
1858 components. It covers usage and setup of the core GNOME programs by end-users
1859 and system administrators.")
1860 (home-page "https://live.gnome.org/DocumentationProject")
1861 (license license:cc-by3.0)))
1862
1863 (define-public gnome-getting-started-docs
1864 (package
1865 (name "gnome-getting-started-docs")
1866 (version "3.32.2")
1867 (source
1868 (origin
1869 (method url-fetch)
1870 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1871 (version-major+minor version)
1872 "/gnome-getting-started-docs-" version ".tar.xz"))
1873 (sha256
1874 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1875 (build-system gnu-build-system)
1876 (native-inputs
1877 `(("gettext" ,gettext-minimal)
1878 ("itstool" ,itstool)
1879 ("pkg-config" ,pkg-config)
1880 ("xmllint" ,libxml2)))
1881 (synopsis "Help to get new users started with the GNOME desktop")
1882 (description
1883 "The GNOME Getting Started Documentation contains GNOME's intuitive
1884 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1885
1886 It is normally used together with @command{gnome-initial-setup}, but is also
1887 useful as a tutorial and users' guide for new or less experienced users.")
1888 (home-page "https://live.gnome.org/DocumentationProject")
1889 (license license:cc-by-sa3.0)))
1890
1891 (define-public dia
1892 ;; This version from GNOME's repository includes fixes for compiling with
1893 ;; recent versions of the build tools. The latest activity on the
1894 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1895 ;; fixes since.
1896 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1897 (revision "2"))
1898 (package
1899 (name "dia")
1900 (version (git-version "0.97.3" revision commit))
1901 (source (origin
1902 (method git-fetch)
1903 (uri (git-reference
1904 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1905 (commit commit)))
1906 (file-name (git-file-name name version))
1907 (sha256
1908 (base32
1909 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1910 (build-system meson-build-system)
1911 (inputs
1912 `(("graphene" ,graphene)
1913 ("gtk+" ,gtk+-2)
1914 ("libxml2" ,libxml2)
1915 ("libxslt" ,libxslt)
1916 ("poppler" ,poppler)
1917 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1918 ;; ERROR: Unknown method "dependency" in object.
1919 ("python-2" ,python-2)))
1920 (native-inputs
1921 `(("appstream-glib" ,appstream-glib)
1922 ("docbook-xsl" ,docbook-xsl)
1923 ("glib" ,glib "bin")
1924 ("intltool" ,intltool)
1925 ("pkg-config" ,pkg-config)))
1926 (home-page "https://wiki.gnome.org/Apps/Dia")
1927 (synopsis "Diagram creation for GNOME")
1928 (description "Dia can be used to draw different types of diagrams, and
1929 includes support for UML static structure diagrams (class diagrams), entity
1930 relationship modeling, and network diagrams. The program supports various file
1931 formats like PNG, SVG, PDF and EPS.")
1932 (license license:gpl2+))))
1933
1934 ;; This is the unstable release, but it is required for the current stable
1935 ;; release of gvfs (1.38.1).
1936 (define-public libgdata
1937 (package
1938 (name "libgdata")
1939 (version "0.17.9")
1940 (source (origin
1941 (method url-fetch)
1942 (uri (string-append "mirror://gnome/sources/" name "/"
1943 (version-major+minor version) "/"
1944 name "-" version ".tar.xz"))
1945 (sha256
1946 (base32
1947 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1948 (build-system gnu-build-system)
1949 (arguments
1950 '(#:phases
1951 (modify-phases %standard-phases
1952 (add-before 'check 'set-home-for-tests
1953 (lambda _
1954 (setenv "HOME" "/tmp")))
1955 (add-before 'check 'disable-failing-tests
1956 (lambda _
1957 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1958 ;; They have been removed in libgdata 0.17.6, so just do the same.
1959 (substitute* "gdata/tests/Makefile"
1960 (("picasaweb\\$\\(EXEEXT\\) ") "")))))))
1961 (native-inputs
1962 `(("glib:bin" ,glib "bin")
1963 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1964 ("intltool" ,intltool)
1965 ("pkg-config" ,pkg-config)
1966 ("uhttpmock" ,uhttpmock)))
1967 (inputs
1968 `(("cyrus-sasl" ,cyrus-sasl)
1969 ("glib-networking" ,glib-networking)))
1970 (propagated-inputs
1971 `(("gcr" ,gcr)
1972 ("glib" ,glib)
1973 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1974 ("json-glib" ,json-glib)
1975 ("liboauth" ,liboauth)
1976 ("libsoup" ,libsoup)
1977 ("libxml2" ,libxml2)))
1978 (home-page "https://wiki.gnome.org/Projects/libgdata")
1979 (synopsis "Library for accessing online service APIs")
1980 (description
1981 "libgdata is a GLib-based library for accessing online service APIs using
1982 the GData protocol — most notably, Google's services. It provides APIs to
1983 access the common Google services, and has full asynchronous support.")
1984 (license license:lgpl2.1+)))
1985
1986 (define-public libgxps
1987 (package
1988 (name "libgxps")
1989 (version "0.3.2")
1990 (source (origin
1991 (method url-fetch)
1992 (uri (string-append "mirror://gnome/sources/" name "/"
1993 (version-major+minor version) "/"
1994 name "-" version ".tar.xz"))
1995 (sha256
1996 (base32
1997 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
1998 (build-system meson-build-system)
1999 (native-inputs
2000 `(("gobject-introspection" ,gobject-introspection)
2001 ("pkg-config" ,pkg-config)))
2002 (inputs
2003 `(("gtk+" ,gtk+)
2004 ("libjpeg" ,libjpeg-turbo)
2005 ("lcms" ,lcms)
2006 ("libtiff" ,libtiff)))
2007 (propagated-inputs
2008 ;; In Requires of libgxps.pc.
2009 `(("cairo" ,cairo)
2010 ("glib" ,glib)
2011 ("libarchive" ,libarchive)))
2012 (home-page "https://wiki.gnome.org/Projects/libgxps")
2013 (synopsis "GObject-based library for handling and rendering XPS documents")
2014 (description
2015 "libgxps is a GObject-based library for handling and rendering XPS
2016 documents. This package also contains binaries that can convert XPS documents
2017 to other formats.")
2018 (license license:lgpl2.1+)))
2019
2020 (define-public gnome-characters
2021 (package
2022 (name "gnome-characters")
2023 (version "3.30.0")
2024 (source
2025 (origin
2026 (method url-fetch)
2027 (uri (string-append "mirror://gnome/sources/"
2028 "gnome-characters/" (version-major+minor version)
2029 "/gnome-characters-" version ".tar.xz"))
2030 (sha256
2031 (base32
2032 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
2033 (build-system meson-build-system)
2034 (arguments
2035 `(#:glib-or-gtk? #t
2036 #:phases (modify-phases %standard-phases
2037 (add-after 'install 'wrap
2038 (lambda* (#:key outputs #:allow-other-keys)
2039 ;; GNOME Characters needs Typelib files from GTK and
2040 ;; gnome-desktop.
2041 (wrap-program (string-append (assoc-ref outputs "out")
2042 "/bin/gnome-characters")
2043 `("GI_TYPELIB_PATH" ":" prefix
2044 (,(getenv "GI_TYPELIB_PATH"))))
2045 #t)))))
2046 (native-inputs
2047 `(("gettext" ,gettext-minimal)
2048 ("glib:bin" ,glib "bin")
2049 ("gtk+:bin" ,gtk+ "bin")
2050 ("pkg-config" ,pkg-config)
2051 ("python" ,python-minimal)))
2052 (inputs
2053 `(("gjs" ,gjs)
2054 ("gtk+" ,gtk+)
2055 ("libunistring" ,libunistring)
2056 ("gnome-desktop" ,gnome-desktop)))
2057 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2058 (synopsis "Find and insert unusual characters")
2059 (description "Characters is a simple utility application to find
2060 and insert unusual characters. It allows you to quickly find the
2061 character you are looking for by searching for keywords.")
2062 (license license:bsd-3)))
2063
2064 (define-public gnome-common
2065 (package
2066 (name "gnome-common")
2067 (version "3.18.0")
2068 (source
2069 (origin
2070 (method url-fetch)
2071 (uri (string-append "mirror://gnome/sources/" name "/"
2072 (version-major+minor version) "/"
2073 name "-" version ".tar.xz"))
2074 (sha256
2075 (base32
2076 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2077 (build-system gnu-build-system)
2078 (home-page "https://www.gnome.org/")
2079 (synopsis "Bootstrap GNOME modules built from Git")
2080 (description "gnome-common contains various files needed to bootstrap
2081 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2082 can be used to configure a source directory checked out from Git and some
2083 commonly used macros.")
2084 (license license:gpl2+)))
2085
2086 (define-public gnome-contacts
2087 (package
2088 (name "gnome-contacts")
2089 (version "3.34")
2090 (source (origin
2091 (method url-fetch)
2092 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2093 (version-major+minor version) "/"
2094 name "-" version ".tar.xz"))
2095 (sha256
2096 (base32
2097 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
2098 (build-system meson-build-system)
2099 (arguments
2100 `(#:configure-flags '("-Dcheese=false")
2101 #:phases
2102 (modify-phases %standard-phases
2103 (add-after 'unpack 'generate-vapis
2104 (lambda* (#:key inputs #:allow-other-keys)
2105 ;; To generate goa's missing .vapi file
2106 (define goa
2107 (assoc-ref inputs "gnome-online-accounts:lib"))
2108
2109 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
2110 "--library=goa-1.0"
2111 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
2112 #t))
2113 (add-after 'unpack 'skip-gtk-update-icon-cache
2114 ;; Don't create 'icon-theme.cache'.
2115 (lambda _
2116 (substitute* "build-aux/meson_post_install.py"
2117 (("gtk-update-icon-cache") "true"))
2118 #t)))))
2119 (native-inputs
2120 `(("glib:bin" ,glib "bin")
2121 ("pkg-config" ,pkg-config)))
2122 (inputs
2123 `(("docbook-xml" ,docbook-xml)
2124 ("dockbook-xsl" ,docbook-xsl)
2125 ("evolution-data-server" ,evolution-data-server)
2126 ("gettext" ,gettext-minimal)
2127 ("gnome-desktop" ,gnome-desktop)
2128 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
2129 ("gobject-introspection" ,gobject-introspection)
2130 ("gst-plugins-base" ,gst-plugins-base)
2131 ("gtk+" ,gtk+)
2132 ("libgee" ,libgee)
2133 ("libxslt" ,libxslt)
2134 ("telepathy-glib" ,telepathy-glib)
2135 ("vala" ,vala)))
2136 (propagated-inputs
2137 `(("folks" ,folks)
2138 ("telepathy-mission-control" ,telepathy-mission-control)))
2139 (synopsis "GNOME's integrated address book")
2140 (description
2141 "GNOME Contacts organizes your contact information from online and
2142 offline sources, providing a centralized place for managing your contacts.")
2143 (home-page "https://wiki.gnome.org/Apps/Contacts")
2144 (license license:gpl2+)))
2145
2146 (define-public gnome-desktop
2147 (package
2148 (name "gnome-desktop")
2149 (version "3.34.2")
2150 (source
2151 (origin
2152 (method url-fetch)
2153 (uri (string-append "mirror://gnome/sources/" name "/"
2154 (version-major+minor version) "/"
2155 name "-" version ".tar.xz"))
2156 (sha256
2157 (base32
2158 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2159 (build-system meson-build-system)
2160 (arguments
2161 '(#:phases
2162 (modify-phases %standard-phases
2163 (add-before 'configure 'patch-path
2164 (lambda* (#:key inputs #:allow-other-keys)
2165 (let ((libc (assoc-ref inputs "libc")))
2166 (substitute* "libgnome-desktop/gnome-languages.c"
2167 (("\"locale\"")
2168 (string-append "\"" libc "/bin/locale\"")))
2169 #t)))
2170 (add-before 'configure 'patch-bubblewrap
2171 (lambda* (#:key inputs #:allow-other-keys)
2172 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2173 (("\"bwrap\",")
2174 (string-append "\"" (which "bwrap") "\","))
2175 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2176 (string-append "\"--ro-bind\", \""
2177 (%store-directory)
2178 "\", \""
2179 (%store-directory)
2180 "\","))
2181 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2182 #t))
2183 (add-before 'check 'pre-check
2184 (lambda* (#:key inputs #:allow-other-keys)
2185 ;; Tests require a running X server and locales.
2186 (system "Xvfb :1 &")
2187 (setenv "DISPLAY" ":1")
2188 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
2189 (setenv "XDG_CONFIG_HOME" "/tmp")
2190 (setenv "GUIX_LOCPATH"
2191 (search-input-directory inputs
2192 "lib/locale")))))))
2193 (native-inputs
2194 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2195 ("glibc-locales" ,glibc-locales) ; for tests
2196 ("gobject-introspection" ,gobject-introspection)
2197 ("itstool" ,itstool)
2198 ("intltool" ,intltool)
2199 ("pkg-config" ,pkg-config)
2200 ("xmllint" ,libxml2)
2201 ("xorg-server" ,xorg-server-for-tests)))
2202 (propagated-inputs
2203 ;; Required by gnome-desktop-3.0.pc.
2204 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2205 ("gtk+" ,gtk+)
2206 ("iso-codes" ,iso-codes)
2207 ("libseccomp" ,libseccomp)
2208 ("libx11" ,libx11)
2209 ("xkeyboard-config" ,xkeyboard-config)))
2210 (inputs
2211 `(("gdk-pixbuf" ,gdk-pixbuf)
2212 ("glib" ,glib)
2213 ("bubblewrap" ,bubblewrap)
2214 ("libxext" ,libxext)
2215 ("libxkbfile" ,libxkbfile)
2216 ("libxrandr" ,libxrandr)))
2217 (home-page "https://www.gnome.org/")
2218 (synopsis
2219 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2220 (description
2221 "The libgnome-desktop library provides API shared by several applications
2222 on the desktop, but that cannot live in the platform for various reasons.
2223 There is no API or ABI guarantee, although we are doing our best to provide
2224 stability. Documentation for the API is available with gtk-doc.
2225
2226 The gnome-about program helps find which version of GNOME is installed.")
2227 ; Some bits under the LGPL.
2228 (license license:gpl2+)))
2229
2230 (define-public gnome-doc-utils
2231 (package
2232 (name "gnome-doc-utils")
2233 (version "0.20.10")
2234 (source
2235 (origin
2236 (method url-fetch)
2237 (uri (string-append "mirror://gnome/sources/" name "/"
2238 (version-major+minor version) "/"
2239 name "-" version ".tar.xz"))
2240 (sha256
2241 (base32
2242 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2243 (build-system gnu-build-system)
2244 (native-inputs
2245 `(("intltool" ,intltool)
2246 ("docbook-xml" ,docbook-xml-4.4)
2247 ("python2-libxml2" ,python2-libxml2)
2248 ("libxml2" ,libxml2)
2249 ("libxslt" ,libxslt)
2250 ("pkg-config" ,pkg-config)
2251 ("python-2" ,python-2)))
2252 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2253 (synopsis
2254 "Documentation utilities for the Gnome project")
2255 (description
2256 "Gnome-doc-utils is a collection of documentation utilities for the
2257 Gnome project. It includes xml2po tool which makes it easier to translate
2258 and keep up to date translations of documentation.")
2259 (license license:gpl2+))) ; xslt under lgpl
2260
2261 (define-public gnome-disk-utility
2262 (package
2263 (name "gnome-disk-utility")
2264 (version "3.34.0")
2265 (source (origin
2266 (method url-fetch)
2267 (uri (string-append "mirror://gnome/sources/" name "/"
2268 (version-major+minor version) "/"
2269 name "-" version ".tar.xz"))
2270 (sha256
2271 (base32
2272 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2273 (build-system meson-build-system)
2274 (arguments
2275 '(#:configure-flags '("-Dlogind=libelogind")
2276 #:phases
2277 (modify-phases %standard-phases
2278 (add-after 'unpack 'skip-gtk-update-icon-cache
2279 ;; Don't create 'icon-theme.cache'.
2280 (lambda _
2281 (substitute* "meson_post_install.py"
2282 (("gtk-update-icon-cache") "true"))
2283 #t)))))
2284 (native-inputs
2285 `(("glib:bin" ,glib "bin")
2286 ("intltool" ,intltool)
2287 ("pkg-config" ,pkg-config)
2288 ("docbook-xml" ,docbook-xml)
2289 ("docbook-xsl" ,docbook-xsl)
2290 ("libxml2" ,libxml2)
2291 ("libxslt" ,libxslt)))
2292 (inputs
2293 `(("elogind" ,elogind)
2294 ("glib" ,glib)
2295 ("appstream-glib" ,appstream-glib)
2296 ("gnome-settings-daemon" ,gnome-settings-daemon)
2297 ("gtk+" ,gtk+)
2298 ("libcanberra" ,libcanberra)
2299 ("libdvdread" ,libdvdread)
2300 ("libnotify" ,libnotify)
2301 ("libpwquality" ,libpwquality)
2302 ("libsecret" ,libsecret)
2303 ("udisks" ,udisks)))
2304 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2305 (synopsis "Disk management utility for GNOME")
2306 (description "Disk management utility for GNOME.")
2307 (license license:gpl2+)))
2308
2309 (define-public gnome-font-viewer
2310 (package
2311 (name "gnome-font-viewer")
2312 (version "3.30.0")
2313 (source (origin
2314 (method url-fetch)
2315 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2316 (version-major+minor version)
2317 "/gnome-font-viewer-" version ".tar.xz"))
2318 (sha256
2319 (base32
2320 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2321 (build-system meson-build-system)
2322 (arguments
2323 '(#:phases
2324 (modify-phases %standard-phases
2325 (add-after 'unpack 'patch-post-install-script
2326 (lambda _
2327 (substitute* "meson-postinstall.sh"
2328 (("update-desktop-database") (which "true")))
2329 #t))
2330 (add-after 'install 'patch-thumbnailer
2331 (lambda* (#:key outputs #:allow-other-keys)
2332 (let ((out (assoc-ref outputs "out")))
2333 (substitute*
2334 (string-append
2335 out
2336 "/share/thumbnailers/gnome-font-viewer.thumbnailer")
2337 (("gnome-thumbnail-font")
2338 (string-append out "/bin/gnome-thumbnail-font"))))
2339 #t)))))
2340 (native-inputs
2341 `(("gettext" ,gettext-minimal)
2342 ("glib:bin" ,glib "bin")
2343 ("pkg-config" ,pkg-config)))
2344 (inputs
2345 `(("glib" ,glib)
2346 ("gnome-desktop" ,gnome-desktop)
2347 ("gtk+" ,gtk+)))
2348 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2349 (synopsis "GNOME Fonts")
2350 (description "Application to show you the fonts installed on your computer
2351 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2352 the font would look under various sizes.")
2353 (license license:gpl2+)))
2354
2355 (define-public gcr
2356 (package
2357 (name "gcr")
2358 (version "3.34.0")
2359 (source (origin
2360 (method url-fetch)
2361 (uri (string-append "mirror://gnome/sources/" name "/"
2362 (version-major+minor version) "/"
2363 name "-" version ".tar.xz"))
2364 (sha256
2365 (base32
2366 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2367 (build-system gnu-build-system)
2368 (arguments
2369 '(#:phases
2370 (modify-phases %standard-phases
2371 ;; These fail because /var/lib/dbus/machine-id is not present in the
2372 ;; build environment.
2373 (add-after 'unpack 'disable-failing-tests
2374 (lambda _
2375 (substitute* "Makefile.in"
2376 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2377 ""))
2378 #t))
2379 (add-before 'check 'pre-check
2380 (lambda _
2381 ;; Some tests expect to write to $HOME.
2382 (setenv "HOME" "/tmp")
2383 #t)))))
2384 (inputs
2385 `(("dbus" ,dbus)
2386 ("gnupg" ,gnupg) ;called as a child process during tests
2387 ("libgcrypt" ,libgcrypt)))
2388 (native-inputs
2389 `(("python" ,python-wrapper) ;for tests
2390 ("pkg-config" ,pkg-config)
2391 ("gettext" ,gettext-minimal)
2392 ("glib" ,glib "bin")
2393 ("gobject-introspection" ,gobject-introspection)
2394 ("libxml2" ,libxml2)
2395 ("vala" ,vala)
2396 ("xsltproc" ,libxslt)))
2397 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2398 (propagated-inputs
2399 `(("p11-kit" ,p11-kit)
2400 ("glib" ,glib)
2401 ("gtk+" ,gtk+)))
2402 (home-page "https://www.gnome.org")
2403 (synopsis "Libraries for displaying certificates and accessing key stores")
2404 (description
2405 "The GCR package contains libraries used for displaying certificates and
2406 accessing key stores. It also provides the viewer for crypto files on the
2407 GNOME Desktop.")
2408 (license license:lgpl2.1+)))
2409
2410 (define-public gdl
2411 (package
2412 (name "gdl")
2413 (version "3.34.0")
2414 (source (origin
2415 (method git-fetch)
2416 (uri (git-reference
2417 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2418 (commit (string-append "GDL_" (string-map (match-lambda
2419 (#\. #\_)
2420 (c c))
2421 version)))))
2422 (file-name (git-file-name name version))
2423 (sha256
2424 (base32
2425 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2426 (build-system gnu-build-system)
2427 (native-inputs
2428 `(("autoconf" ,autoconf)
2429 ("automake" ,automake)
2430 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2431 ("gnome-common" ,gnome-common)
2432 ("gtk-doc" ,gtk-doc/stable)
2433 ("intltool" ,intltool)
2434 ("pkg-config" ,pkg-config)
2435 ("libtool" ,libtool)
2436 ("which" ,which)))
2437 (inputs
2438 `(("libxml2" ,libxml2)))
2439 (propagated-inputs
2440 ;; The gdl-3.0.pc file 'Requires' GTK+.
2441 `(("gtk+" ,gtk+)))
2442 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2443 (synopsis "GNOME docking library")
2444 (description "This library provides docking features for gtk+.")
2445 (license license:lgpl2.1+)))
2446
2447 ;;; A minimal variant used to break a cycle with Inkscape.
2448 (define-public gdl-minimal
2449 (package/inherit gdl
2450 (name "gdl-minimal")
2451 (arguments
2452 '(#:phases
2453 (modify-phases %standard-phases
2454 (add-after 'unpack 'disable-doc-generation
2455 ;; XXX: There is no easy way to disable generating the
2456 ;; documentation.
2457 (lambda _
2458 (substitute* "configure.in"
2459 (("GTK_DOC_CHECK.*") "")
2460 (("docs/.*") ""))
2461 (substitute* "Makefile.am"
2462 (("gdl docs po") "gdl po"))
2463 #t)))))
2464 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2465
2466 (define-public libgnome-keyring
2467 (package
2468 (name "libgnome-keyring")
2469 (version "3.12.0")
2470 (source (origin
2471 (method url-fetch)
2472 (uri (string-append "mirror://gnome/sources/" name "/"
2473 (version-major+minor version) "/"
2474 name "-" version ".tar.xz"))
2475 (sha256
2476 (base32
2477 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2478 (build-system gnu-build-system)
2479 (inputs
2480 `(("libgcrypt" ,libgcrypt)
2481 ("dbus" ,dbus)))
2482 (native-inputs
2483 `(("pkg-config" ,pkg-config)
2484 ("glib" ,glib "bin")
2485 ("intltool" ,intltool)))
2486 (propagated-inputs
2487 ;; Referred to in .h files and .pc.
2488 `(("glib" ,glib)))
2489 (home-page "https://www.gnome.org")
2490 (synopsis "Accessing passwords from the GNOME keyring")
2491 (description
2492 "Client library to access passwords from the GNOME keyring.")
2493
2494 ;; Though a couple of files are LGPLv2.1+.
2495 (license license:lgpl2.0+)))
2496
2497 (define-public gnome-keyring
2498 (package
2499 (name "gnome-keyring")
2500 (version "3.34.0")
2501 (source (origin
2502 (method url-fetch)
2503 (uri (string-append "mirror://gnome/sources/" name "/"
2504 (version-major+minor version) "/"
2505 name "-" version ".tar.xz"))
2506 (sha256
2507 (base32
2508 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2509 (build-system gnu-build-system)
2510 (arguments
2511 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2512 ;not exist
2513 #:configure-flags
2514 (list
2515 (string-append "--with-pkcs11-config="
2516 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2517 (string-append "--with-pkcs11-modules="
2518 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2519 #:phases
2520 (modify-phases %standard-phases
2521 (add-after 'unpack 'fix-/bin/sh-reference
2522 (lambda _
2523 (substitute* "po/Makefile.in.in"
2524 (("/bin/sh") (which "sh")))
2525 #t))
2526 (add-after 'unpack 'fix-docbook
2527 (lambda* (#:key inputs #:allow-other-keys)
2528 (substitute* "docs/Makefile.am"
2529 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2530 (string-append (assoc-ref inputs "docbook-xsl")
2531 "/xml/xsl/docbook-xsl-"
2532 ,(package-version docbook-xsl)
2533 "/manpages/docbook.xsl")))
2534 (setenv "XML_CATALOG_FILES"
2535 (string-append (assoc-ref inputs "docbook-xml")
2536 "/xml/dtd/docbook/catalog.xml"))
2537 ;; Rerun the whole thing to avoid version mismatch ("This is
2538 ;; Automake 1.15.1, but the definition used by this
2539 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2540 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2541 (invoke "autoconf")
2542 (invoke "aclocal")
2543 (invoke "automake" "-ac"))))))
2544 (inputs
2545 `(("libgcrypt" ,libgcrypt)
2546 ("linux-pam" ,linux-pam)
2547 ("openssh" ,openssh)
2548 ("dbus" ,dbus)
2549 ("gcr" ,gcr)))
2550 (native-inputs
2551 `(("pkg-config" ,pkg-config)
2552 ("glib" ,glib "bin")
2553 ("glib" ,glib) ; for m4 macros
2554 ("python" ,python-2) ;for tests
2555 ("intltool" ,intltool)
2556 ("autoconf" ,autoconf)
2557 ("automake" ,automake)
2558 ("libxslt" ,libxslt) ;for documentation
2559 ("docbook-xml" ,docbook-xml-4.2)
2560 ("docbook-xsl" ,docbook-xsl)))
2561 (propagated-inputs
2562 `(("gcr" ,gcr)))
2563 (home-page "https://www.gnome.org")
2564 (synopsis "Daemon to store passwords and encryption keys")
2565 (description
2566 "gnome-keyring is a program that keeps passwords and other secrets for
2567 users. It is run as a daemon in the session, similar to ssh-agent, and other
2568 applications locate it via an environment variable or D-Bus.
2569
2570 The program can manage several keyrings, each with its own master password,
2571 and there is also a session keyring which is never stored to disk, but
2572 forgotten when the session ends.")
2573 (license license:lgpl2.1+)))
2574
2575 (define-public evince
2576 (package
2577 (name "evince")
2578 (version "40.2")
2579 (source (origin
2580 (method url-fetch)
2581 (uri "mirror://gnome/sources/evince/40/evince-40.2.tar.xz")
2582 (sha256
2583 (base32
2584 "0xrwls1bhvny8vvd7mfjy9p26zjch0pd6x6j9jn9g2ka6xwyrxqg"))))
2585 (build-system meson-build-system)
2586 (arguments
2587 `(#:glib-or-gtk? #t
2588 #:build-type "release"
2589 #:configure-flags
2590 '("-Dnautilus=false"
2591 "-Dintrospection=true"
2592 ;; XXX: Generating the documentation fails because the
2593 ;; libevdocument.devhelp document cannot be created. This seems to be
2594 ;; caused by a problem during the XSL transformation.
2595 "-Dgtk_doc=false")
2596 #:phases
2597 (modify-phases %standard-phases
2598 (add-after 'unpack 'skip-gtk-update-icon-cache
2599 ;; Don't create 'icon-theme.cache'.
2600 (lambda _
2601 (substitute* "meson_post_install.py"
2602 (("gtk-update-icon-cache") "true"))
2603 #t)))))
2604 (inputs
2605 `(("libarchive" ,libarchive)
2606 ("libgxps" ,libgxps)
2607 ("libspectre" ,libspectre)
2608 ("djvulibre" ,djvulibre)
2609 ("ghostscript" ,ghostscript)
2610 ("poppler" ,poppler)
2611 ("libtiff" ,libtiff)
2612 ("texlive-libkpathsea" ,texlive-libkpathsea) ; for DVI support
2613 ("gnome-desktop" ,gnome-desktop)
2614 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2615 ("gspell" ,gspell)
2616 ("libgnome-keyring" ,libgnome-keyring)
2617 ("adwaita-icon-theme" ,adwaita-icon-theme)
2618 ("gdk-pixbuf" ,gdk-pixbuf)
2619 ("atk" ,atk)
2620 ("pango" ,pango)
2621 ("gtk+" ,gtk+)
2622 ("glib" ,glib)
2623 ("libxml2" ,libxml2)
2624 ("libsm" ,libsm)
2625 ("libice" ,libice)
2626 ("shared-mime-info" ,shared-mime-info)
2627 ("dconf" ,dconf)
2628 ("libcanberra" ,libcanberra)
2629 ("libsecret" ,libsecret)
2630 ("libhandy" ,libhandy)))
2631 (native-inputs
2632 `(("itstool" ,itstool)
2633 ("intltool" ,intltool)
2634 ("glib" ,glib "bin")
2635 ("gobject-introspection" ,gobject-introspection)
2636 ("pkg-config" ,pkg-config)
2637 ("xmllint" ,libxml2)))
2638 (home-page "https://www.gnome.org/projects/evince/")
2639 (synopsis "GNOME's document viewer")
2640 (description
2641 "Evince is a document viewer for multiple document formats. It
2642 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2643 of Evince is to replace the multiple document viewers that exist
2644 on the GNOME Desktop with a single simple application.")
2645 (license license:gpl2+)))
2646
2647 (define-public gsettings-desktop-schemas
2648 (package
2649 (name "gsettings-desktop-schemas")
2650 (version "3.34.0")
2651 (source
2652 (origin
2653 (method url-fetch)
2654 (uri (string-append "mirror://gnome/sources/" name "/"
2655 (version-major+minor version) "/"
2656 name "-" version ".tar.xz"))
2657 (sha256
2658 (base32
2659 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2660 (build-system meson-build-system)
2661 (arguments
2662 '(#:phases (modify-phases %standard-phases
2663 (add-after 'unpack 'patch-schemas
2664 (lambda* (#:key inputs #:allow-other-keys)
2665 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2666 (substitute* (find-files "schemas"
2667 "\\.gschema\\.xml\\.in$")
2668 ;; Provide the correct file name of the default GNOME
2669 ;; background, 'adwaita-timed.xml'.
2670 (("@datadir@/backgrounds/gnome")
2671 (string-append theme "/share/backgrounds/gnome"))
2672 ;; Do not reference fonts, that may not exist.
2673 (("'Source Code Pro 10'") "'Monospace 11'"))
2674 #t))))))
2675 (inputs
2676 `(("glib" ,glib)
2677 ("gnome-backgrounds" ,gnome-backgrounds)))
2678 (native-inputs
2679 `(("gettext" ,gettext-minimal)
2680 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2681 ("gobject-introspection" ,gobject-introspection)
2682 ("pkg-config" ,pkg-config)))
2683 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2684 (synopsis
2685 "GNOME settings for various desktop components")
2686 (description
2687 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2688 for settings shared by various components of the GNOME desktop.")
2689 (license license:lgpl2.1+)))
2690
2691 (define-public python-liblarch
2692 (package
2693 (name "python-liblarch")
2694 (version "3.0.1")
2695 (source
2696 (origin
2697 (method git-fetch)
2698 (uri (git-reference
2699 (url "https://github.com/getting-things-gnome/liblarch")
2700 (commit (string-append "v" version))))
2701 (file-name (git-file-name name version))
2702 (sha256
2703 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2704 (build-system python-build-system)
2705 (arguments
2706 `(#:phases
2707 (modify-phases %standard-phases
2708 (add-before 'check 'start-xserver
2709 (lambda* (#:key inputs #:allow-other-keys)
2710 (system (format #f "~a/bin/Xvfb :1 &"
2711 (assoc-ref inputs "xorg-server")))
2712 (setenv "DISPLAY" ":1")
2713 #t)))))
2714 (native-inputs
2715 `(("xorg-server" ,xorg-server-for-tests)))
2716 (inputs
2717 `(("gtk+" ,gtk+)))
2718 (propagated-inputs
2719 `(("python-pygobject" ,python-pygobject)))
2720 (home-page "https://wiki.gnome.org/Projects/liblarch")
2721 (synopsis "Library to easily handle complex data structures")
2722 (description
2723 "Liblarch is a Python library built to easily handle data structures such
2724 as lists, trees and acyclic graphs. There's also a GTK binding that will
2725 allow you to use your data structure in a @code{Gtk.Treeview}.
2726
2727 Liblarch support multiple views of one data structure and complex filtering.
2728 That way, you have a clear separation between your data themselves (Model)
2729 and how they are displayed (View).")
2730 (license license:lgpl3+)))
2731
2732 (define-public gtg
2733 (package
2734 (name "gtg")
2735 (version "0.5")
2736 (source
2737 (origin
2738 (method git-fetch)
2739 (uri (git-reference
2740 (url "https://github.com/getting-things-gnome/gtg")
2741 (commit (string-append "v" version))))
2742 (file-name (git-file-name name version))
2743 (sha256
2744 (base32 "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403"))))
2745 (build-system meson-build-system)
2746 (arguments
2747 `(#:glib-or-gtk? #t
2748 #:phases
2749 (modify-phases %standard-phases
2750 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2751 (lambda* (#:key outputs #:allow-other-keys)
2752 (let ((prog (string-append (assoc-ref outputs "out")
2753 "/bin/gtg"))
2754 (pylib (string-append (assoc-ref outputs "out")
2755 "/lib/python"
2756 ,(version-major+minor
2757 (package-version python))
2758 "/site-packages")))
2759 (wrap-program prog
2760 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
2761 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2762 #t))))))
2763 (native-inputs
2764 `(("desktop-file-utils" ,desktop-file-utils)
2765 ("gettext" ,gettext-minimal)
2766 ("glib:bin" ,glib "bin")
2767 ("gobject-introspection" ,gobject-introspection)
2768 ("gtk+:bin" ,gtk+ "bin")
2769 ("pkg-config" ,pkg-config)))
2770 (inputs
2771 `(("gdk-pixbuf" ,gdk-pixbuf+svg)
2772 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2773 ("gtk+" ,gtk+)
2774 ("pango" ,pango)
2775 ("python-dbus" ,python-dbus)
2776 ("python-liblarch" ,python-liblarch)
2777 ("python-lxml" ,python-lxml)
2778 ("python-pycairo" ,python-pycairo)
2779 ("python-pygobject" ,python-pygobject)
2780 ("python-pyxdg" ,python-pyxdg)))
2781 (home-page "https://wiki.gnome.org/Apps/GTG")
2782 (synopsis "Personal organizer for the GNOME desktop")
2783 (description
2784 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2785 organizer for the GNOME desktop environment inspired by the Getting Things
2786 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2787 and ease of use in mind so it can be used as more than just GTD software.
2788 GTG is intended to help you track everything you need to do and need to
2789 know, from small tasks to large projects.")
2790 (license license:gpl3+)))
2791
2792 (define-public icon-naming-utils
2793 (package
2794 (name "icon-naming-utils")
2795 (version "0.8.90")
2796 (source
2797 (origin
2798 (method url-fetch)
2799 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2800 version ".tar.bz2"))
2801 (sha256
2802 (base32
2803 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2804 (build-system gnu-build-system)
2805 (inputs
2806 `(("perl" ,perl)
2807 ("perl-xml-simple" ,perl-xml-simple)))
2808 (arguments
2809 '(#:phases
2810 (modify-phases %standard-phases
2811 (add-after 'install 'set-load-paths
2812 ;; Tell 'icon-name-mapping' where XML::Simple is.
2813 (lambda* (#:key outputs #:allow-other-keys)
2814 (let* ((out (assoc-ref outputs "out"))
2815 (prog (string-append out "/libexec/icon-name-mapping")))
2816 (wrap-program
2817 prog
2818 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2819 #t)))))
2820 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2821 (synopsis
2822 "Utility to implement the Freedesktop Icon Naming Specification")
2823 (description
2824 "To help with the transition to the Freedesktop Icon Naming
2825 Specification, the icon naming utility maps the icon names used by the
2826 GNOME and KDE desktops to the icon names proposed in the specification.")
2827 (license license:lgpl2.1+)))
2828
2829 (define-public gnome-icon-theme
2830 (package
2831 (name "gnome-icon-theme")
2832 (version "3.12.0")
2833 (source
2834 (origin
2835 (method url-fetch)
2836 (uri (string-append "mirror://gnome/sources/" name "/"
2837 (version-major+minor version) "/"
2838 name "-" version ".tar.xz"))
2839 (sha256
2840 (base32
2841 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2842 (build-system gnu-build-system)
2843 (arguments
2844 '(#:configure-flags
2845 ;; Don't create 'icon-theme.cache'.
2846 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2847 (true (string-append coreutils "/bin/true")))
2848 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2849 (native-inputs
2850 `(("icon-naming-utils" ,icon-naming-utils)
2851 ("intltool" ,intltool)
2852 ("pkg-config" ,pkg-config)))
2853 (home-page "https://wiki.gnome.org/Personalization")
2854 (synopsis "GNOME icon theme")
2855 (description "Icons for the GNOME desktop.")
2856 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2857
2858 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2859 (define-public adwaita-icon-theme
2860 (package (inherit gnome-icon-theme)
2861 (name "adwaita-icon-theme")
2862 (version "40.1.1")
2863 (source (origin
2864 (method url-fetch)
2865 (uri (string-append "mirror://gnome/sources/" name "/"
2866 (version-major version) "/"
2867 name "-" version ".tar.xz"))
2868 (sha256
2869 (base32
2870 "1xpqa1rgmixlp953938d08xvf7kv36h747ysial8g65dsrp46v0b"))))
2871 (native-inputs
2872 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2873
2874 (define-public tango-icon-theme
2875 (package
2876 (name "tango-icon-theme")
2877 (version "0.8.90")
2878 (source (origin
2879 (method url-fetch)
2880 (uri (string-append "http://tango.freedesktop.org/releases/"
2881 "tango-icon-theme-" version ".tar.bz2"))
2882 (sha256
2883 (base32
2884 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2885 (build-system gnu-build-system)
2886 (native-inputs
2887 `(("icon-naming-utils" ,icon-naming-utils)
2888 ("intltool" ,intltool)
2889 ("imagemagick" ,imagemagick)
2890 ("pkg-config" ,pkg-config)))
2891 (home-page "http://tango-project.org/")
2892 (synopsis "Tango icon theme")
2893 (description "This is an icon theme that follows the Tango visual
2894 guidelines.")
2895 (license license:public-domain)))
2896
2897 (define-public shared-mime-info
2898 (package
2899 (name "shared-mime-info")
2900 (version "1.15")
2901 (source (origin
2902 (method url-fetch)
2903 (uri (string-append
2904 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2905 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2906 ".tar.xz"))
2907 (sha256
2908 (base32
2909 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2910 (build-system gnu-build-system)
2911 (arguments
2912 ;; The build system appears not to be parallel-safe.
2913 '(#:parallel-build? #f))
2914 (inputs
2915 `(("glib" ,glib)
2916 ("libxml2" ,libxml2)))
2917 (native-inputs
2918 `(("gettext" ,gettext-minimal)
2919 ("itstool" ,itstool)
2920 ("pkg-config" ,pkg-config)))
2921 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2922 (synopsis "Database of common MIME types")
2923 (description
2924 "The shared-mime-info package contains the core database of common types
2925 and the update-mime-database command used to extend it. It requires glib2 to
2926 be installed for building the update command. Additionally, it uses intltool
2927 for translations, though this is only a dependency for the maintainers. This
2928 database is translated at Transifex.")
2929 (license license:gpl2+)))
2930
2931 (define-public system-config-printer
2932 (package
2933 (name "system-config-printer")
2934 (version "1.5.15")
2935 (source
2936 (origin
2937 (method url-fetch)
2938 (uri (string-append
2939 "https://github.com/OpenPrinting/system-config-printer/releases/"
2940 "download/v" version
2941 "/system-config-printer-" version ".tar.xz"))
2942 (sha256
2943 (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv"))))
2944 (build-system glib-or-gtk-build-system)
2945 (arguments
2946 `(#:imported-modules ((guix build python-build-system)
2947 ,@%glib-or-gtk-build-system-modules)
2948 #:phases
2949 (modify-phases %standard-phases
2950 (add-after 'unpack 'patch-Makefile.am
2951 (lambda _
2952 ;; The Makefile generates some scripts, so set a valid shebang
2953 (substitute* "Makefile.am"
2954 (("/bin/bash") (which "bash")))
2955 (delete-file "configure")
2956 #t))
2957 (add-after 'unpack 'patch-docbook-xml
2958 (lambda* (#:key inputs #:allow-other-keys)
2959 ;; Modify the man XML otherwise xmlto tries to access the network
2960 (substitute* "man/system-config-printer.xml"
2961 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2962 (string-append (assoc-ref inputs "docbook-xml")
2963 "/xml/dtd/docbook/")))
2964 #t))
2965 (add-after 'install 'wrap-for-python
2966 (@@ (guix build python-build-system) wrap))
2967 (add-after 'install 'wrap
2968 (lambda* (#:key outputs #:allow-other-keys)
2969 (let ((out (assoc-ref outputs "out"))
2970 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2971 (for-each
2972 (lambda (program)
2973 (wrap-program program
2974 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2975 (map (lambda (name)
2976 (string-append out "/bin/" name))
2977 '("system-config-printer"
2978 "system-config-printer-applet"
2979 "install-printerdriver"
2980 "scp-dbus-service"))))
2981 #t)))))
2982 (inputs
2983 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2984 ("gobject-introspection" ,gobject-introspection)
2985 ("python" ,python)
2986 ("cups" ,cups)
2987 ("gtk+" ,gtk+)
2988 ("python-dbus" ,python-dbus)
2989 ("python-pygobject" ,python-pygobject)
2990 ("python-pycups" ,python-pycups)
2991 ("python-requests" ,python-requests)
2992 ("python-pycairo" ,python-pycairo)
2993 ("libnotify" ,libnotify)
2994 ("packagekit" ,packagekit)))
2995 (native-inputs
2996 `(("pkg-config" ,pkg-config)
2997 ("desktop-file-utils" ,desktop-file-utils)
2998 ("glib" ,glib)
2999 ("autoconf" ,autoconf)
3000 ("automake" ,automake)
3001 ("intltool" ,intltool)
3002 ("xmlto" ,xmlto)
3003 ("docbook-xml" ,docbook-xml-4.1.2)
3004 ("docbook-xsl" ,docbook-xsl)
3005 ("libxml2" ,libxml2)))
3006 (home-page "https://github.com/zdohnal/system-config-printer")
3007 (synopsis "CUPS administration tool")
3008 (description
3009 "system-config-printer is a CUPS administration tool. It's written in
3010 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
3011 configuring CUPS.")
3012 (license license:gpl2+)))
3013
3014 (define-public hicolor-icon-theme
3015 (package
3016 (name "hicolor-icon-theme")
3017 (version "0.17")
3018 (source
3019 (origin
3020 (method url-fetch)
3021 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3022 "hicolor-icon-theme-" version ".tar.xz"))
3023 (sha256
3024 (base32
3025 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3026 (build-system gnu-build-system)
3027 (arguments
3028 `(#:tests? #f)) ; no check target
3029 (home-page "https://icon-theme.freedesktop.org/releases/")
3030 (synopsis
3031 "Freedesktop icon theme")
3032 (description
3033 "Freedesktop icon theme.")
3034 (license license:gpl2)))
3035
3036 (define-public libnotify
3037 (package
3038 (name "libnotify")
3039 (version "0.7.9")
3040 (source
3041 (origin
3042 (method url-fetch)
3043 (uri (string-append "mirror://gnome/sources/" name "/"
3044 (version-major+minor version) "/"
3045 name "-" version ".tar.xz"))
3046 (sha256
3047 (base32
3048 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3049 (build-system meson-build-system)
3050 (arguments
3051 `(#:phases
3052 (modify-phases %standard-phases
3053 (add-after 'unpack 'fix-docbook
3054 (lambda* (#:key inputs #:allow-other-keys)
3055 ;; Don't attempt to download XSL schema.
3056 (substitute* "meson.build"
3057 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3058 /manpages/docbook.xsl")
3059 (string-append (assoc-ref inputs "docbook-xsl")
3060 "/xml/xsl/docbook-xsl-"
3061 ,(package-version docbook-xsl)
3062 "/manpages/docbook.xsl")))
3063 #t)))))
3064 (propagated-inputs
3065 `(;; In Requires of libnotify.pc.
3066 ("gdk-pixbuf" ,gdk-pixbuf)
3067 ("glib" ,glib)))
3068 (inputs
3069 `(("gtk+" ,gtk+)
3070 ("libpng" ,libpng)))
3071 (native-inputs
3072 `(("pkg-config" ,pkg-config)
3073 ("glib" ,glib "bin")
3074 ("gobject-introspection" ,gobject-introspection)
3075
3076 ;; For the documentation.
3077 ("gtk-doc" ,gtk-doc/stable)
3078 ("xsltproc" ,libxslt)
3079 ("docbook-xsl" ,docbook-xsl)))
3080 (home-page "https://developer-next.gnome.org/libnotify/")
3081 (synopsis
3082 "GNOME desktop notification library")
3083 (description
3084 "Libnotify is a library that sends desktop notifications to a
3085 notification daemon, as defined in the Desktop Notifications spec. These
3086 notifications can be used to inform the user about an event or display
3087 some form of information without getting in the user's way.")
3088 (license license:lgpl2.1+)))
3089
3090 (define-public libpeas
3091 (package
3092 (name "libpeas")
3093 (version "1.30.0")
3094 (source
3095 (origin
3096 (method url-fetch)
3097 (uri (string-append "mirror://gnome/sources/" name "/"
3098 (version-major+minor version) "/"
3099 name "-" version ".tar.xz"))
3100 (sha256
3101 (base32
3102 "18xrk1c1ixlhkmykcfiafrl2am470ws687xqvjlq40zwkcp5dx8b"))))
3103 (build-system meson-build-system)
3104 (arguments
3105 '(#:phases
3106 (modify-phases %standard-phases
3107 (add-before 'check 'start-xserver
3108 (lambda* (#:key inputs #:allow-other-keys)
3109 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3110 (disp ":1"))
3111 (setenv "DISPLAY" disp)
3112 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
3113 (setenv "XDG_CONFIG_HOME" "/tmp")
3114 ;; Tests require a running X server.
3115 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3116 #t))))))
3117 (inputs
3118 `(("gtk+" ,gtk+)
3119 ("glade" ,glade3)
3120 ("python" ,python)
3121 ("python-pygobject" ,python-pygobject)))
3122 (native-inputs
3123 `(("pkg-config" ,pkg-config)
3124 ("gettext" ,gettext-minimal)
3125 ("glib:bin" ,glib "bin")
3126 ("gobject-introspection" ,gobject-introspection)
3127 ("xorg-server" ,xorg-server-for-tests)))
3128 (propagated-inputs
3129 ;; The .pc file "Requires" gobject-introspection.
3130 `(("gobject-introspection" ,gobject-introspection)))
3131 (home-page "https://wiki.gnome.org/Libpeas")
3132 (synopsis "GObject plugin system")
3133 (description
3134 "Libpeas is a gobject-based plugin engine, targeted at giving every
3135 application the chance to assume its own extensibility. It also has a set of
3136 features including, but not limited to: multiple extension points; on-demand
3137 (lazy) programming language support for C, Python and JS; simplicity of the
3138 API.")
3139 (license license:lgpl2.0+)))
3140
3141 (define-public gtkglext
3142 (package
3143 (name "gtkglext")
3144 (version "1.2.0")
3145 (source (origin
3146 (method url-fetch)
3147 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3148 version "/gtkglext-" version ".tar.gz"))
3149 (sha256
3150 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3151 (patches (search-patches
3152 "gtkglext-disable-disable-deprecated.patch"))))
3153 (build-system gnu-build-system)
3154 (arguments
3155 `(#:phases
3156 (modify-phases %standard-phases
3157 ;; Fix a collision between a local variable and a definition from
3158 ;; glibc's string.h.
3159 (add-after 'unpack 'fix-collision
3160 (lambda _
3161 (substitute* "gdk/gdkglshapes.c"
3162 ((" index") " triangle_index"))
3163 #t)))))
3164 (inputs `(("gtk+" ,gtk+-2)
3165 ("mesa" ,mesa)
3166 ("glu" ,glu)
3167 ("libx11" ,libx11)
3168 ("libxt" ,libxt)))
3169 (native-inputs `(("pkg-config" ,pkg-config)
3170 ("glib" ,glib "bin")))
3171 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
3172 (home-page "https://projects.gnome.org/gtkglext")
3173 (synopsis "OpenGL extension to GTK+")
3174 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3175 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3176 API add-ons to make GTK+ widgets OpenGL-capable.")
3177 (license license:lgpl2.1+)))
3178
3179 (define-public glade3
3180 (package
3181 (name "glade")
3182 (version "3.38.2")
3183 (source (origin
3184 (method url-fetch)
3185 (uri (string-append "mirror://gnome/sources/" name "/"
3186 (version-major+minor version) "/"
3187 name "-" version ".tar.xz"))
3188 (sha256
3189 (base32
3190 "1dxsiz9ahqkxg2a1dw9sbd8jg59y5pdz4c1gvnbmql48gmj8gz4q"))
3191 (patches (search-patches
3192 "glade-gls-set-script-name.patch"
3193 "glade-test-widget-null-icon.patch"))))
3194 (build-system meson-build-system)
3195 (arguments
3196 `(#:phases
3197 (modify-phases %standard-phases
3198 (add-after 'unpack 'skip-gtk-update-icon-cache
3199 ;; Don't create 'icon-theme.cache'.
3200 (lambda _
3201 (substitute* "meson_post_install.py"
3202 (("gtk-update-icon-cache") "true"))))
3203 ;; XXX: Remove it once this issue is fixed:
3204 ;; https://issues.guix.gnu.org/50105.
3205 (add-after 'unpack 'fix-tests
3206 (lambda _
3207 (substitute* "tests/meson.build"
3208 (("\\['modules") "#['modules"))))
3209 (add-before 'configure 'fix-docbook
3210 (lambda* (#:key inputs #:allow-other-keys)
3211 (substitute* "man/meson.build"
3212 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
3213 (string-append (assoc-ref inputs "docbook-xsl")
3214 "/xml/xsl/docbook-xsl-"
3215 ,(package-version docbook-xsl)
3216 "/manpages/docbook.xsl")))
3217 #t))
3218 (add-before 'check 'pre-check
3219 (lambda _
3220 (setenv "HOME" "/tmp")
3221 ;; Tests require a running X server.
3222 (system "Xvfb :1 &")
3223 (setenv "DISPLAY" ":1")
3224 #t)))))
3225 (inputs
3226 `(("gtk+" ,gtk+)
3227 ("libxml2" ,libxml2)))
3228 (native-inputs
3229 `(("hicolor-icon-theme" ,hicolor-icon-theme)
3230 ("intltool" ,intltool)
3231 ("itstool" ,itstool)
3232 ("libxslt" ,libxslt) ;for xsltproc
3233 ("docbook-xml" ,docbook-xml-4.2)
3234 ("docbook-xsl" ,docbook-xsl)
3235 ("glib:bin" ,glib "bin")
3236 ("python-pygobject" ,python-pygobject)
3237 ("gobject-introspection" ,gobject-introspection)
3238 ("gjs" ,gjs)
3239 ("pkg-config" ,pkg-config)
3240 ("xorg-server" ,xorg-server-for-tests)))
3241 (home-page "https://glade.gnome.org")
3242 (synopsis "GTK+ rapid application development tool")
3243 (description "Glade is a rapid application development (RAD) tool to
3244 enable quick & easy development of user interfaces for the GTK+ toolkit and
3245 the GNOME desktop environment.")
3246 (license license:lgpl2.0+)
3247 (native-search-paths (list (search-path-specification
3248 (variable "GLADE_CATALOG_SEARCH_PATH")
3249 (files '("share/glade/catalogs")))
3250 (search-path-specification
3251 (variable "GLADE_MODULE_SEARCH_PATH")
3252 (files '("lib/glade/modules")))))))
3253
3254 (define-public libcroco
3255 (package
3256 (name "libcroco")
3257 (version "0.6.13")
3258 (source (origin
3259 (method url-fetch)
3260 (uri (string-append "mirror://gnome/sources/" name "/"
3261 (version-major+minor version) "/"
3262 name "-" version ".tar.xz"))
3263 (patches (search-patches "libcroco-CVE-2020-12825.patch"))
3264 (sha256
3265 (base32
3266 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3267 (build-system gnu-build-system)
3268 (native-inputs
3269 `(("pkg-config" ,pkg-config)))
3270 (inputs
3271 `(("glib" ,glib)
3272 ("libxml2" ,libxml2)
3273 ("zlib" ,zlib)))
3274 (home-page "https://github.com/GNOME/libcroco")
3275 (synopsis "CSS2 parsing and manipulation library")
3276 (description
3277 "Libcroco is a standalone CSS2 parsing and manipulation library.
3278 The parser provides a low level event driven SAC-like API and a CSS object
3279 model like API. Libcroco provides a CSS2 selection engine and an experimental
3280 XML/CSS rendering engine.")
3281
3282 ;; LGPLv2.1-only.
3283 (license license:lgpl2.1)))
3284
3285 (define-public libgsf
3286 (package
3287 (name "libgsf")
3288 (version "1.14.47")
3289 (source (origin
3290 (method url-fetch)
3291 (uri (string-append "mirror://gnome/sources/" name "/"
3292 (version-major+minor version) "/"
3293 name "-" version ".tar.xz"))
3294 (sha256
3295 (base32
3296 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3297 (build-system glib-or-gtk-build-system)
3298 (outputs '("out" "bin" "doc"))
3299 (arguments
3300 `(#:configure-flags
3301 (list
3302 "--disable-static"
3303 "--enable-introspection"
3304 (string-append "--with-gir-dir="
3305 (assoc-ref %outputs "out")
3306 "/share/gir-"
3307 ,(version-major
3308 (package-version gobject-introspection))
3309 ".0")
3310 (string-append "--with-typelib-dir="
3311 (assoc-ref %outputs "out")
3312 "/lib/girepository-"
3313 ,(version-major
3314 (package-version gobject-introspection))
3315 ".0")
3316 (string-append "--with-html-dir="
3317 (assoc-ref %outputs "doc")
3318 "/share/gtk-doc/html")
3319 "--with-zlib"
3320 "--with-bz2")
3321 #:phases
3322 (modify-phases %standard-phases
3323 (add-after 'unpack 'patch-docbook-xml
3324 (lambda* (#:key inputs #:allow-other-keys)
3325 (with-directory-excursion "doc"
3326 (substitute* "gsf-docs.xml"
3327 (("http://www.oasis-open.org/docbook/xml/4.5/")
3328 (string-append (assoc-ref inputs "docbook-xml")
3329 "/xml/dtd/docbook/"))))
3330 #t)))))
3331 (native-inputs
3332 `(("docbook-xml" ,docbook-xml)
3333 ("gettext" ,gettext-minimal)
3334 ("gobject-introspection" ,gobject-introspection)
3335 ("perl" ,perl)
3336 ("perl-xml-parser" ,perl-xml-parser)
3337 ("pkg-config" ,pkg-config)
3338 ("python" ,python-wrapper)))
3339 (inputs
3340 `(("bzip2" ,bzip2)
3341 ("gdk-pixbuf" ,gdk-pixbuf)
3342 ("zlib" ,zlib)))
3343 (propagated-inputs
3344 `(("glib" ,glib)
3345 ("libxml2" ,libxml2)))
3346 (synopsis "G Structured File Library")
3347 (description "Libgsf aims to provide an efficient extensible I/O abstraction
3348 for dealing with different structured file formats.")
3349 (home-page "https://gitlab.gnome.org/GNOME/libgsf")
3350 (license
3351 (list
3352 ;; Library
3353 license:lgpl2.1+
3354 ;; Others
3355 license:lgpl2.0+))))
3356
3357 (define-public librsvg
3358 (package
3359 (name "librsvg")
3360 (version "2.50.7")
3361 (source (origin
3362 (method url-fetch)
3363 (uri (string-append "mirror://gnome/sources/librsvg/"
3364 (version-major+minor version) "/"
3365 "librsvg-" version ".tar.xz"))
3366 (sha256
3367 (base32
3368 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3369 (modules '((guix build utils)))
3370 (snippet
3371 '(begin (delete-file-recursively "vendor")))))
3372 (build-system cargo-build-system)
3373 (outputs '("out" "doc"))
3374 (arguments
3375 `(#:install-source? #f
3376 #:modules
3377 ((guix build cargo-build-system)
3378 (guix build utils)
3379 ((guix build gnu-build-system) #:prefix gnu:))
3380 #:cargo-inputs
3381 (("rust-bitflags" ,rust-bitflags-1)
3382 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3383 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3384 ("rust-cast" ,rust-cast-0.2)
3385 ("rust-cssparser" ,rust-cssparser-0.27)
3386 ("rust-data-url" ,rust-data-url-0.1)
3387 ("rust-encoding" ,rust-encoding-0.2)
3388 ("rust-float-cmp" ,rust-float-cmp-0.8)
3389 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3390 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3391 ("rust-gio" ,rust-gio-0.8)
3392 ("rust-gio-sys" ,rust-gio-sys-0.9)
3393 ("rust-glib" ,rust-glib-0.9)
3394 ("rust-glib-sys" ,rust-glib-sys-0.9)
3395 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3396 ("rust-itertools" ,rust-itertools-0.9)
3397 ("rust-language-tags" ,rust-language-tags-0.2)
3398 ("rust-libc" ,rust-libc-0.2)
3399 ("rust-locale-config" ,rust-locale-config-0.3)
3400 ("rust-markup5ever" ,rust-markup5ever-0.10)
3401 ("rust-nalgebra" ,rust-nalgebra-0.21)
3402 ("rust-num-traits" ,rust-num-traits-0.2)
3403 ("rust-once-cell" ,rust-once-cell-1)
3404 ("rust-pkg-config" ,rust-pkg-config-0.3)
3405 ("rust-pango" ,rust-pango-0.8)
3406 ("rust-pango-sys" ,rust-pango-sys-0.9)
3407 ("rust-pangocairo" ,rust-pangocairo-0.9)
3408 ("rust-rayon" ,rust-rayon-1)
3409 ("rust-rctree" ,rust-rctree-0.3)
3410 ("rust-rgb" ,rust-rgb-0.8)
3411 ("rust-regex" ,rust-regex-1)
3412 ("rust-selectors" ,rust-selectors-0.22)
3413 ("rust-string-cache" ,rust-string-cache-0.8)
3414 ("rust-tinyvec" ,rust-tinyvec-0.3)
3415 ("rust-url" ,rust-url-2)
3416 ("rust-xml5ever" ,rust-xml5ever-0.16))
3417 #:cargo-development-inputs
3418 (("rust-assert-cmd" ,rust-assert-cmd-1)
3419 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3420 ("rust-chrono" ,rust-chrono-0.4)
3421 ("rust-criterion" ,rust-criterion-0.3)
3422 ("rust-float-cmp" ,rust-float-cmp-0.8)
3423 ("rust-lopdf" ,rust-lopdf-0.26)
3424 ("rust-png" ,rust-png-0.16)
3425 ("rust-predicates" ,rust-predicates-1)
3426 ("rust-tempfile" ,rust-tempfile-3))
3427 #:phases
3428 (modify-phases %standard-phases
3429 (add-after 'unpack 'patch-docbook-xml
3430 (lambda* (#:key inputs #:allow-other-keys)
3431 (with-directory-excursion "doc"
3432 (substitute* "rsvg-docs.xml"
3433 (("http://www.oasis-open.org/docbook/xml/4.3/")
3434 (string-append (assoc-ref inputs "docbook-xml")
3435 "/xml/dtd/docbook/"))))))
3436 (add-after 'unpack 'prepare-for-build
3437 (lambda _
3438 ;; In lieu of #:make-flags
3439 (setenv "CC" ,(cc-for-target))
3440 ;; Something about the build environment resists building
3441 ;; successfully with the '--locked' flag.
3442 (substitute* '("Makefile.am" "Makefile.in")
3443 (("--locked") ""))))
3444 (add-before 'configure 'pre-configure
3445 (lambda _
3446 (substitute* "gdk-pixbuf-loader/Makefile.in"
3447 ;; By default the gdk-pixbuf loader is installed under
3448 ;; gdk-pixbuf's prefix. Work around that.
3449 (("gdk_pixbuf_moduledir = .*$")
3450 (string-append "gdk_pixbuf_moduledir = "
3451 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3452 "loaders\n"))
3453 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3454 (("gdk_pixbuf_cache_file = .*$")
3455 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))))
3456 (add-after 'configure 'gnu-configure
3457 (lambda* (#:key outputs #:allow-other-keys #:rest args)
3458 (apply (assoc-ref gnu:%standard-phases 'configure)
3459 #:configure-flags
3460 (list "--disable-static"
3461 "--enable-vala"
3462 (string-append "--with-html-dir="
3463 (assoc-ref outputs "doc")
3464 "/share/gtk-doc/html"))
3465 args)))
3466 (add-after 'configure 'dont-vendor-self
3467 (lambda* (#:key vendor-dir #:allow-other-keys)
3468 ;; Don't keep the whole tarball in the vendor directory
3469 (delete-file-recursively
3470 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))))
3471 (replace 'build
3472 (assoc-ref gnu:%standard-phases 'build))
3473 (add-before 'check 'ignore-failing-tests
3474 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3475 (lambda _
3476 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3477 (("fn background_color_option_invalid_color_yields_error" all)
3478 (string-append "#[ignore] " all))
3479 (("fn empty_input_yields_error" all)
3480 (string-append "#[ignore] " all))
3481 (("fn empty_svg_yields_error" all)
3482 (string-append "#[ignore] " all))
3483 (("fn env_source_data_epoch_empty" all)
3484 (string-append "#[ignore] " all))
3485 (("fn env_source_data_epoch_no_digits" all)
3486 (string-append "#[ignore] " all))
3487 (("fn env_source_data_epoch_trailing_garbage" all)
3488 (string-append "#[ignore] " all))
3489 (("fn export_id_option_error" all)
3490 (string-append "#[ignore] " all))
3491 (("fn huge_zoom_factor_yields_error" all)
3492 (string-append "#[ignore] " all))
3493 (("fn multiple_input_files_not_allowed_for_png_output" all)
3494 (string-append "#[ignore] " all))
3495 (("fn stylesheet_option_error" all)
3496 (string-append "#[ignore] " all)))))
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 libbonoboui
3955 (package
3956 (name "libbonoboui")
3957 (version "2.24.5")
3958 (source (origin
3959 (method url-fetch)
3960 (uri (string-append "mirror://gnome/sources/" name "/"
3961 (version-major+minor version) "/"
3962 name "-" version ".tar.bz2"))
3963 (sha256
3964 (base32
3965 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
3966 (build-system gnu-build-system)
3967 (arguments
3968 `(#:phases
3969 (modify-phases %standard-phases
3970 (add-before 'check 'start-xserver
3971 (lambda* (#:key inputs #:allow-other-keys)
3972 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3973 (disp ":1"))
3974
3975 (setenv "HOME" (getcwd))
3976 (setenv "DISPLAY" disp)
3977 ;; There must be a running X server and make check doesn't start one.
3978 ;; Therefore we must do it.
3979 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
3980 ;; Mentioned as Required by the .pc file
3981 (propagated-inputs `(("libxml2" ,libxml2)))
3982 (inputs
3983 `(("popt" ,popt)
3984 ("pangox-compat" ,pangox-compat)
3985 ("libgnome" ,libgnome)
3986 ("libgnomecanvas" ,libgnomecanvas)
3987 ("libglade" ,libglade)))
3988 (native-inputs
3989 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3990 ("intltool" ,intltool)
3991 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
3992 ("pkg-config" ,pkg-config)))
3993 (home-page "https://developer.gnome.org/libbonoboui/")
3994 (synopsis "Some user interface controls using Bonobo")
3995 (description "The Bonobo UI library provides a number of user interface
3996 controls using the Bonobo component framework.")
3997 (license license:lgpl2.0+)))
3998
3999 (define-public libwnck
4000 (package
4001 (name "libwnck")
4002 (version "3.32.0")
4003 (source (origin
4004 (method url-fetch)
4005 (uri (string-append "mirror://gnome/sources/" name "/"
4006 (version-major+minor version) "/"
4007 name "-" version ".tar.xz"))
4008 (sha256
4009 (base32
4010 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4011 (build-system meson-build-system)
4012 (native-inputs
4013 `(("pkg-config" ,pkg-config)
4014 ("glib" ,glib "bin") ; for glib-mkenums
4015 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
4016 ("intltool" ,intltool)))
4017 (propagated-inputs
4018 `(("gtk+" ,gtk+)
4019 ("libxres" ,libxres)
4020 ("startup-notification" ,startup-notification)))
4021 (home-page "https://developer.gnome.org/libwnck/")
4022 (synopsis "Window Navigator Construction Kit")
4023 (description
4024 "Libwnck is the Window Navigator Construction Kit, a library for use in
4025 writing pagers, tasklists, and more generally applications that are dealing
4026 with window management. It tries hard to respect the Extended Window Manager
4027 Hints specification (EWMH).")
4028 (license license:lgpl2.0+)))
4029
4030 ;; stable version for gtk2, required by xfwm4.
4031 (define-public libwnck-2
4032 (package (inherit libwnck)
4033 (name "libwnck")
4034 (version "2.30.7")
4035 (source (origin
4036 (method url-fetch)
4037 (uri (string-append "mirror://gnome/sources/" name "/"
4038 (version-major+minor version) "/"
4039 name "-" version ".tar.xz"))
4040 (sha256
4041 (base32
4042 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4043 (build-system gnu-build-system)
4044 (native-inputs
4045 `(("pkg-config" ,pkg-config)
4046 ("intltool" ,intltool)))
4047 (propagated-inputs
4048 `(("gtk+" ,gtk+-2)
4049 ("libxres" ,libxres)
4050 ("startup-notification" ,startup-notification)))))
4051
4052 (define-public goffice
4053 (package
4054 (name "goffice")
4055 (version "0.10.50")
4056 (source (origin
4057 (method url-fetch)
4058 (uri (string-append "mirror://gnome/sources/goffice/"
4059 (version-major+minor version) "/"
4060 "goffice-" version ".tar.xz"))
4061 (sha256
4062 (base32 "1p5zbj7cbcfcxd6l8pnph54p6ah1bwf146y810j4bcq8ggf3sp1c"))))
4063 (build-system gnu-build-system)
4064 (outputs '("out"
4065 "doc")) ; 4.0 MiB of gtk-doc
4066 (arguments
4067 '(#:configure-flags (list (string-append "--with-html-dir="
4068 (assoc-ref %outputs "doc")
4069 "/share/gtk-doc/html"))))
4070 (inputs
4071 `(("gtk+" ,gtk+)
4072 ("libgsf" ,libgsf)
4073 ("librsvg" ,librsvg)
4074 ("libxslt" ,libxslt)
4075 ("libxml2" ,libxml2)))
4076 (native-inputs
4077 `(("intltool" ,intltool)
4078 ("glib" ,glib "bin")
4079 ("pkg-config" ,pkg-config)))
4080 (home-page "https://developer.gnome.org/goffice/")
4081 (synopsis "Document-centric objects and utilities")
4082 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4083 (license
4084 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4085 ;; Note: NOT LGPL
4086 (list license:gpl2 license:gpl3))))
4087
4088 (define-public goffice-0.8
4089 (package (inherit goffice)
4090 (version "0.8.17")
4091 (source (origin
4092 (method url-fetch)
4093 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4094 (version-major+minor version) "/"
4095 (package-name goffice) "-" version ".tar.xz"))
4096 (sha256
4097 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4098 (arguments
4099 `(#:phases
4100 (modify-phases %standard-phases
4101 (add-after 'unpack 'fix-pcre-check
4102 (lambda _
4103 ;; Only glib.h can be included directly. See
4104 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4105 (substitute* "configure"
4106 (("glib/gregex\\.h") "glib.h")) #t)))
4107
4108 ,@(package-arguments goffice)))
4109 (propagated-inputs
4110 ;; libgoffice-0.8.pc mentions libgsf-1
4111 `(("libgsf" ,libgsf)))
4112 (inputs
4113 `(("gtk" ,gtk+-2)
4114 ,@(alist-delete "gtk" (package-inputs goffice))))))
4115
4116 (define-public gnumeric
4117 (package
4118 (name "gnumeric")
4119 (version "1.12.50")
4120 (source (origin
4121 (method url-fetch)
4122 (uri (string-append "mirror://gnome/sources/gnumeric/"
4123 (version-major+minor version) "/"
4124 "gnumeric-" version ".tar.xz"))
4125 (sha256
4126 (base32
4127 "1f0lrj5msg80pgjp38jj6rddf352gwddgip7z4lki66n3fx1k23m"))))
4128 (build-system glib-or-gtk-build-system)
4129 (arguments
4130 `(;; The gnumeric developers don't worry much about failing tests.
4131 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4132 #:tests? #f
4133 #:phases
4134 (modify-phases %standard-phases
4135 (add-before
4136 'configure 'pre-conf
4137 (lambda* (#:key outputs #:allow-other-keys)
4138 ;; Make install tries to write into the directory of goffice
4139 ;; I am informed that this only affects the possibility to embed a
4140 ;; spreadsheet inside an Abiword document. So presumably when we
4141 ;; package Abiword we'll have to refer it to this directory.
4142 (substitute* "configure"
4143 (("^GOFFICE_PLUGINS_DIR=.*")
4144 (string-append "GOFFICE_PLUGINS_DIR="
4145 (assoc-ref outputs "out")
4146 "/goffice/plugins"))))))))
4147 (inputs
4148 `(("glib" ,glib)
4149 ("gtk+" ,gtk+)
4150 ("goffice" ,goffice)
4151 ("libgsf" ,libgsf)
4152 ("librsvg" ,librsvg)
4153 ("libxml2" ,libxml2)
4154 ("libxslt" ,libxslt)
4155 ("python" ,python)
4156 ("python-pygobject" ,python-pygobject)
4157 ("zlib" ,zlib)))
4158 (native-inputs
4159 `(("bison" ,bison)
4160 ("docbook-xml" ,docbook-xml)
4161 ("intltool" ,intltool)
4162 ("itstool" ,itstool)
4163 ("glib:bin" ,glib "bin")
4164 ("pkg-config" ,pkg-config)))
4165 (home-page "http://www.gnumeric.org")
4166 (synopsis "Spreadsheet application")
4167 (description
4168 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4169 interoperable with other spreadsheet applications. It has a vast array of
4170 features beyond typical spreadsheet functionality, such as support for linear
4171 and non-linear solvers, statistical analysis, and telecommunication
4172 engineering.")
4173 (license
4174 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4175 (list license:gpl2 license:gpl3))))
4176
4177 (define-public drawing
4178 (package
4179 (name "drawing")
4180 (version "0.8.3")
4181 (source
4182 (origin
4183 (method git-fetch)
4184 (uri (git-reference
4185 (url "https://github.com/maoschanz/drawing")
4186 (commit version)))
4187 (file-name (git-file-name name version))
4188 (sha256
4189 (base32 "0wz9p47riyy3h8b0sqsb6bx416hc6d1a1wyzlfmsxkrqrkwcjcm8"))))
4190 (build-system meson-build-system)
4191 (arguments
4192 `(#:glib-or-gtk? #t
4193 #:phases
4194 (modify-phases %standard-phases
4195 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
4196 (lambda* (#:key outputs #:allow-other-keys)
4197 (let ((prog (string-append (assoc-ref outputs "out")
4198 "/bin/drawing"))
4199 (pylib (string-append (assoc-ref outputs "out")
4200 "/lib/python"
4201 ,(version-major+minor
4202 (package-version python))
4203 "/site-packages")))
4204 (wrap-program prog
4205 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
4206 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
4207 (native-inputs
4208 `(("desktop-file-utils" ,desktop-file-utils)
4209 ("gettext" ,gettext-minimal)
4210 ("glib:bin" ,glib "bin")
4211 ("gobject-introspection" ,gobject-introspection)
4212 ("gtk+:bin" ,gtk+ "bin")
4213 ("pkg-config" ,pkg-config)))
4214 (inputs
4215 `(("gdk-pixbuf" ,gdk-pixbuf+svg)
4216 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4217 ("gtk+" ,gtk+)
4218 ("pango" ,pango)
4219 ("python-pycairo" ,python-pycairo)
4220 ("python-pygobject" ,python-pygobject)))
4221 (home-page "https://maoschanz.github.io/drawing/")
4222 (synopsis "Basic image editor for GNOME")
4223 (description
4224 "Drawing is a basic image editor aiming at the GNOME desktop.")
4225 (license license:gpl3+)))
4226
4227 (define-public gnome-themes-standard
4228 (package
4229 (name "gnome-themes-standard")
4230 (version "3.22.3")
4231 (source
4232 (origin
4233 (method url-fetch)
4234 (uri (string-append "mirror://gnome/sources/" name "/"
4235 (version-major+minor version) "/" name "-"
4236 version ".tar.xz"))
4237 (sha256
4238 (base32
4239 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4240 (build-system gnu-build-system)
4241 (arguments
4242 '(#:configure-flags
4243 ;; Don't create 'icon-theme.cache'.
4244 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4245 (true (string-append coreutils "/bin/true")))
4246 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4247 (inputs
4248 `(("gtk+" ,gtk+)
4249 ("gtk+-2" ,gtk+-2)
4250 ("librsvg" ,librsvg)
4251 ("libxml2" ,libxml2)
4252 ("glib" ,glib)))
4253 (native-inputs
4254 `(("intltool" ,intltool)
4255 ("glib:bin" ,glib "bin")
4256 ("pkg-config" ,pkg-config)))
4257 (home-page "https://launchpad.net/gnome-themes-standard")
4258 (synopsis "Default GNOME 3 themes")
4259 (description
4260 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4261 (license license:lgpl2.1+)))
4262
4263 (define-public seahorse
4264 (package
4265 (name "seahorse")
4266 (version "3.36.2")
4267 (source
4268 (origin
4269 (method url-fetch)
4270 (uri (string-append "mirror://gnome/sources/" name "/"
4271 (version-major+minor version) "/" name "-"
4272 version ".tar.xz"))
4273 (sha256
4274 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4275 (build-system meson-build-system)
4276 (arguments
4277 '(#:glib-or-gtk? #t
4278 #:phases
4279 (modify-phases %standard-phases
4280 (add-after 'unpack 'skip-gtk-update-icon-cache
4281 ;; Don't create 'icon-theme.cache'.
4282 (lambda _
4283 (substitute* "build-aux/meson_post_install.py"
4284 (("gtk-update-icon-cache") "true"))
4285 #t)))))
4286 (inputs
4287 `(("gtk+" ,gtk+)
4288 ("gcr" ,gcr)
4289 ("gnupg" ,gnupg)
4290 ("gpgme" ,gpgme)
4291 ("openldap" ,openldap)
4292 ("openssh" ,openssh)
4293 ("avahi" ,avahi)
4294 ("libhandy" ,libhandy-0.0)
4295 ("libpwquality" ,libpwquality)
4296 ("libsecret" ,libsecret)
4297 ("libsoup" ,libsoup)))
4298 (native-inputs
4299 `(("gettext" ,gettext-minimal)
4300 ("glib:bin" ,glib "bin")
4301 ("itstool" ,itstool)
4302 ("pkg-config" ,pkg-config)
4303 ("vala" ,vala)
4304 ("xmllint" ,libxml2)))
4305 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4306 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4307 (description
4308 "Seahorse is a GNOME application for managing encryption keys and
4309 passwords in the GNOME keyring.")
4310 (license license:gpl2+)))
4311
4312 (define-public vala
4313 (package
4314 (name "vala")
4315 (version "0.52.0")
4316 (source (origin
4317 (method url-fetch)
4318 (uri (string-append "mirror://gnome/sources/vala/"
4319 (version-major+minor version) "/"
4320 "vala-" version ".tar.xz"))
4321 (sha256
4322 (base32
4323 "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))
4324 (build-system glib-or-gtk-build-system)
4325 (arguments
4326 '(#:configure-flags '("--enable-coverage")
4327 #:phases
4328 (modify-phases %standard-phases
4329 (add-after 'unpack 'patch-docbook-xml
4330 (lambda* (#:key inputs #:allow-other-keys)
4331 (with-directory-excursion "doc/manual"
4332 (substitute* '("manual.xml" "version.xml.in")
4333 (("http://www.oasis-open.org/docbook/xml/4.4/")
4334 (string-append (assoc-ref inputs "docbook-xml")
4335 "/xml/dtd/docbook/"))))
4336 #t))
4337 (add-before 'check 'pre-check
4338 (lambda _
4339 (setenv "CC" "gcc")
4340 (substitute* "valadoc/tests/libvaladoc\
4341 /tests-extra-environment.sh"
4342 (("export PKG_CONFIG_PATH=" m)
4343 (string-append m "$PKG_CONFIG_PATH:"))))))))
4344 (native-inputs
4345 `(("bison" ,bison)
4346 ("dbus" ,dbus) ; for dbus tests
4347 ("docbook-xml" ,docbook-xml-4.4)
4348 ("docbook-xsl" ,docbook-xsl)
4349 ("flex" ,flex)
4350 ("gobject-introspection" ,gobject-introspection) ; for gir tests
4351 ("help2man" ,help2man)
4352 ("perl" ,perl)
4353 ("pkg-config" ,pkg-config)
4354 ("xsltproc" ,libxslt)))
4355 (propagated-inputs
4356 `(("glib" ,glib) ; required by libvala-0.40.pc
4357 ("libgvc" ,graphviz)))
4358 (home-page "https://wiki.gnome.org/Projects/Vala/")
4359 (synopsis "Compiler using the GObject type system")
4360 (description "Vala is a programming language using modern high level
4361 abstractions without imposing additional runtime requirements and without using
4362 a different ABI compared to applications and libraries written in C. Vala uses
4363 the GObject type system and has additional code generation routines that make
4364 targeting the GNOME stack simple.")
4365 (license license:lgpl2.1+)))
4366
4367 (define-public vte
4368 (package
4369 (name "vte")
4370 (version "0.60.3")
4371 (source (origin
4372 (method url-fetch)
4373 (uri (string-append "mirror://gnome/sources/vte/"
4374 (version-major+minor version) "/"
4375 "vte-" version ".tar.xz"))
4376 (sha256
4377 (base32
4378 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4379 (build-system meson-build-system)
4380 (arguments
4381 `(#:configure-flags
4382 '("-Dvapi=true"
4383 "-D_systemd=false")))
4384 (native-inputs
4385 `(("pkg-config" ,pkg-config)
4386 ("gettext" ,gettext-minimal)
4387 ("vala" ,vala)
4388 ("gobject-introspection" ,gobject-introspection)
4389 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4390 ("gperf" ,gperf)
4391 ("xmllint" ,libxml2)))
4392 (propagated-inputs
4393 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4394 ("gnutls" ,gnutls) ; ditto
4395 ("pcre2" ,pcre2))) ; ditto
4396 (home-page "https://www.gnome.org/")
4397 (synopsis "Virtual Terminal Emulator")
4398 (description
4399 "VTE is a library (libvte) implementing a terminal emulator widget for
4400 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4401 gnome-terminal, but can also be used to embed a console/terminal in games,
4402 editors, IDEs, etc.")
4403 (license license:lgpl2.1+)))
4404
4405 (define-public vte-ng
4406 (package
4407 (inherit vte)
4408 (name "vte-ng")
4409 (version "0.58.2.a")
4410 (home-page "https://github.com/thestinger/vte-ng")
4411 (source (origin
4412 (method git-fetch)
4413 (uri (git-reference (url home-page) (commit version)))
4414 (file-name (git-file-name name version))
4415 (sha256
4416 (base32
4417 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4418 (build-system meson-build-system)
4419 (native-inputs
4420 `(("gtk-doc" ,gtk-doc/stable)
4421 ,@(package-native-inputs vte)))
4422 (arguments
4423 `(#:configure-flags '("-Ddocs=true")))
4424 (synopsis "Enhanced VTE terminal widget")
4425 (description
4426 "VTE is a library (libvte) implementing a terminal emulator widget for
4427 GTK+, this fork provides additional functions exposed for keyboard text
4428 selection and URL hints.")))
4429
4430 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4431 (define-public vte/gtk+-2
4432 (package (inherit vte)
4433 (name "vte")
4434 (version "0.28.2")
4435 (source (origin
4436 (method url-fetch)
4437 (uri (string-append "mirror://gnome/sources/" name "/"
4438 (version-major+minor version) "/"
4439 name "-" version ".tar.xz"))
4440 (sha256
4441 (base32
4442 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4443 (patches (search-patches
4444 "vte-CVE-2012-2738-pt1.patch"
4445 "vte-CVE-2012-2738-pt2.patch"))))
4446 (build-system gnu-build-system)
4447 (arguments
4448 '(#:configure-flags '("--disable-python")))
4449 (native-inputs
4450 `(("pkg-config" ,pkg-config)
4451 ("intltool" ,intltool)
4452 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4453 (propagated-inputs
4454 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4455 ("ncurses" ,ncurses))))) ; required by libvte.la
4456
4457 (define-public vinagre
4458 (package
4459 (name "vinagre")
4460 (version "3.22.0")
4461 (source (origin
4462 (method url-fetch)
4463 (uri (string-append "mirror://gnome/sources/" name "/"
4464 (version-major+minor version) "/"
4465 name "-" version ".tar.xz"))
4466 (patches (search-patches "vinagre-newer-freerdp.patch"
4467 "vinagre-newer-rdp-parameters.patch"))
4468 (sha256
4469 (base32
4470 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4471 (build-system glib-or-gtk-build-system)
4472 (arguments
4473 ;; Disable -Werror and such, to avoid build failures on compilation
4474 ;; warnings.
4475 '(#:configure-flags '("--enable-compile-warnings=minimum")
4476 #:phases
4477 (modify-phases %standard-phases
4478 (add-before 'install 'skip-gtk-update-icon-cache
4479 (lambda _
4480 ;; Don't create 'icon-theme.cache'
4481 (substitute* (find-files "." "^Makefile$")
4482 (("gtk-update-icon-cache") (which "true")))
4483 #t))
4484 (add-after 'unpack 'patch-configure
4485 (lambda _
4486 (substitute* "configure"
4487 (("freerdp") "freerdp2"))
4488 #t)))))
4489 (native-inputs
4490 `(("pkg-config" ,pkg-config)
4491 ("intltool" ,intltool)
4492 ("itstool" ,itstool)
4493 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4494 (inputs
4495 `(("libxml2" ,libxml2)
4496 ("gtk-vnc" ,gtk-vnc)
4497 ("gnome-keyring" ,gnome-keyring)
4498 ("libsecret" ,libsecret)
4499 ("freerdp" ,freerdp)
4500 ("spice" ,spice)
4501 ("spice-gtk" ,spice-gtk)
4502 ("telepathy-glib" ,telepathy-glib)
4503 ("vte" ,vte)))
4504 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4505 (synopsis "Remote desktop viewer for GNOME")
4506 (description "Vinagre is a remote display client supporting the VNC, SPICE
4507 and RDP protocols.")
4508 (license license:gpl3+)))
4509
4510 (define-public dconf
4511 (package
4512 (name "dconf")
4513 (version "0.36.0")
4514 (source (origin
4515 (method url-fetch)
4516 (uri (string-append
4517 "mirror://gnome/sources/" name "/"
4518 (version-major+minor version) "/"
4519 name "-" version ".tar.xz"))
4520 (sha256
4521 (base32
4522 "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
4523 (build-system meson-build-system)
4524 (propagated-inputs
4525 ;; In Requires of dconf.pc.
4526 `(("glib" ,glib)))
4527 (inputs
4528 `(("gtk+" ,gtk+)
4529 ("dbus" ,dbus)))
4530 (native-inputs
4531 `(("bash-completion" ,bash-completion)
4532 ("libxslt" ,libxslt) ;for xsltproc
4533 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4534 ("docbook-xml" ,docbook-xml-4.2)
4535 ("docbook-xsl" ,docbook-xsl)
4536 ("glib:bin" ,glib "bin")
4537 ("gtk-doc" ,gtk-doc/stable)
4538 ("pkg-config" ,pkg-config)
4539 ("vala" ,vala)))
4540 (arguments
4541 `(#:glib-or-gtk? #t
4542 #:configure-flags '("-Denable-gtk-doc=true")
4543 #:phases (modify-phases %standard-phases
4544 (add-after 'unpack 'increase-test-timeout
4545 (lambda _
4546 ;; On big-memory systems, the engine test may take
4547 ;; much longer than the default of 30 seconds.
4548 (substitute* "tests/meson.build"
4549 (("test\\(unit_test\\[0\\], exe" all)
4550 (string-append all ", timeout : 90")))
4551 #t)))))
4552 (home-page "https://developer.gnome.org/dconf/")
4553 (synopsis "Low-level GNOME configuration system")
4554 (description "Dconf is a low-level configuration system. Its main purpose
4555 is to provide a backend to GSettings on platforms that don't already have
4556 configuration storage systems.")
4557 (license license:lgpl2.1+)))
4558
4559 (define-public json-glib
4560 (package
4561 (name "json-glib")
4562 (version "1.6.2")
4563 (source (origin
4564 (method url-fetch)
4565 (uri (string-append "mirror://gnome/sources/" name "/"
4566 (version-major+minor version) "/"
4567 name "-" version ".tar.xz"))
4568 (sha256
4569 (base32
4570 "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3"))))
4571 (build-system meson-build-system)
4572 (outputs '("out" "doc"))
4573 (arguments
4574 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
4575 #:configure-flags
4576 (list
4577 "-Ddocs=true"
4578 "-Dman=true")
4579 #:phases
4580 (modify-phases %standard-phases
4581 (add-after 'unpack 'patch-docbook
4582 (lambda* (#:key inputs #:allow-other-keys)
4583 (with-directory-excursion "doc"
4584 (substitute* (find-files "." "\\.xml$")
4585 (("http://www.oasis-open.org/docbook/xml/4\\.3/")
4586 (string-append (assoc-ref inputs "docbook-xml")
4587 "/xml/dtd/docbook/")))
4588 (substitute* "meson.build"
4589 (("http://docbook.sourceforge.net/release/xsl/current/")
4590 (string-append (assoc-ref inputs "docbook-xsl")
4591 "/xml/xsl/docbook-xsl-1.79.2/"))))
4592 #t))
4593 (add-after 'install 'move-docs
4594 (lambda* (#:key outputs #:allow-other-keys)
4595 (let* ((out (assoc-ref outputs "out"))
4596 (doc (assoc-ref outputs "doc")))
4597 (mkdir-p (string-append doc "/share"))
4598 (rename-file
4599 (string-append out "/share/gtk-doc")
4600 (string-append doc "/share/gtk-doc"))
4601 #t))))))
4602 (native-inputs
4603 `(("docbook-xml" ,docbook-xml-4.3)
4604 ("docbook-xsl" ,docbook-xsl)
4605 ("gettext" ,gettext-minimal)
4606 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4607 ("gobject-introspection" ,gobject-introspection)
4608 ("gtk-doc" ,gtk-doc)
4609 ("pkg-config" ,pkg-config)
4610 ("xsltproc" ,libxslt)))
4611 (propagated-inputs
4612 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4613 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4614 (synopsis "Glib and GObject implementation of JSON")
4615 (description "JSON-GLib is a library providing serialization and
4616 described by RFC 4627. It implements a full JSON parser and generator using
4617 GLib and GObject, and integrates JSON with GLib data types.")
4618 (license license:lgpl2.1+)))
4619
4620 (define-public libxklavier
4621 (package
4622 (name "libxklavier")
4623 (version "5.4")
4624 (source (origin
4625 ;; Note: There's no tarball at ftp.gnome.org for this version.
4626 (method git-fetch)
4627 (uri (git-reference
4628 (url "https://anongit.freedesktop.org/git/libxklavier")
4629 (commit (string-append "libxklavier-" version))))
4630 (sha256
4631 (base32
4632 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4633 (file-name (git-file-name name version))))
4634 (build-system gnu-build-system)
4635 (arguments
4636 '(#:configure-flags
4637 (list (string-append "--with-xkb-base="
4638 (assoc-ref %build-inputs "xkeyboard-config")
4639 "/share/X11/xkb")
4640 "--disable-xmodmap-support")))
4641 (native-inputs
4642 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4643 ("gobject-introspection" ,gobject-introspection)
4644 ("pkg-config" ,pkg-config)
4645 ("gtk-doc" ,gtk-doc/stable)
4646 ("intltool" ,intltool)
4647 ("which" ,which)
4648 ("autoconf" ,autoconf)
4649 ("automake" ,automake)
4650 ("libtool" ,libtool)))
4651 (propagated-inputs
4652 ;; Required by libxklavier.pc.
4653 `(("glib" ,glib)
4654 ("libxml2" ,libxml2)))
4655 (inputs
4656 `(("iso-codes" ,iso-codes)
4657 ("libxi" ,libxi)
4658 ("libxkbfile" ,libxkbfile)
4659 ("xkbcomp" ,xkbcomp)
4660 ("xkeyboard-config" ,xkeyboard-config)))
4661 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4662 (synopsis "High-level API for X Keyboard Extension")
4663 (description
4664 "LibXklavier is a library providing high-level API for X Keyboard
4665 Extension known as XKB. This library is intended to support XFree86 and other
4666 commercial X servers. It is useful for creating XKB-related software (layout
4667 indicators etc).")
4668 (license license:lgpl2.0+)))
4669
4670 (define-public python2-rsvg
4671 ;; XXX: This is actually a subset of gnome-python-desktop.
4672 (package
4673 (name "python2-rsvg")
4674 (version "2.32.0")
4675 (source
4676 (origin
4677 (method url-fetch)
4678 (uri (string-append
4679 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4680 version ".tar.bz2"))
4681 (sha256
4682 (base32
4683 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4684 (build-system gnu-build-system)
4685 (native-inputs
4686 `(("pkg-config" ,pkg-config)))
4687 (inputs
4688 `(("python" ,python-2)
4689 ("python2-pygtk" ,python2-pygtk)
4690 ("librsvg" ,librsvg)))
4691 (home-page "https://www.gnome.org")
4692 (synopsis "Python bindings to librsvg")
4693 (description
4694 "This package provides Python bindings to librsvg, the SVG rendering
4695 library.")
4696
4697 ;; This is the license of the rsvg bindings. The license of each module
4698 ;; of gnome-python-desktop is given in 'COPYING'.
4699 (license license:lgpl2.1+)))
4700
4701 (define-public glib-networking
4702 (package
4703 (name "glib-networking")
4704 (version "2.68.2")
4705 (source (origin
4706 (method url-fetch)
4707 (uri (string-append "mirror://gnome/sources/glib-networking/"
4708 (version-major+minor version) "/"
4709 "glib-networking-" version ".tar.xz"))
4710 (sha256
4711 (base32
4712 "0kwrsp1xbqf852nqmd5cr7hqw771q0dxkzpzlibdp5zn9q2vqpjk"))
4713 (patches
4714 (search-patches "glib-networking-gnutls-binding.patch"))))
4715 (build-system meson-build-system)
4716 (native-inputs
4717 `(("pkg-config" ,pkg-config)
4718 ("gettext" ,gettext-minimal)))
4719 (inputs
4720 `(("glib" ,glib)
4721 ("gnutls" ,gnutls)
4722 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4723 ("libproxy" ,libproxy)))
4724 (home-page "https://wiki.gnome.org/Projects/GLib")
4725 (synopsis "Network extensions for GLib")
4726 (description
4727 "Glib-networking contains the implementations of certain GLib networking
4728 features that cannot be implemented directly in GLib itself because of their
4729 dependencies. Currently it contains GnuTLS and OpenSSL-based implementations of
4730 GTlsBackend, a libproxy-based implementation of GProxyResolver,
4731 GLibproxyResolver, and a GNOME GProxyResolver that uses the proxy information
4732 from the GSettings schemas in gsettings-desktop-schemas.")
4733 (license license:lgpl2.1+)))
4734
4735 (define-public rest
4736 (package
4737 (name "rest")
4738 (version "0.8.1")
4739 (source (origin
4740 (method url-fetch)
4741 (uri (string-append "mirror://gnome/sources/rest/"
4742 (version-major+minor version) "/"
4743 name "-" version ".tar.xz"))
4744 (sha256
4745 (base32
4746 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4747 (build-system gnu-build-system)
4748 (arguments
4749 '(#:tests? #f ; tests require internet connection
4750 #:configure-flags
4751 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4752 (native-inputs
4753 `(("glib-mkenums" ,glib "bin")
4754 ("gobject-introspection" ,gobject-introspection)
4755 ("pkg-config" ,pkg-config)))
4756 (propagated-inputs
4757 ;; rest-0.7.pc refers to all these.
4758 `(("glib" ,glib)
4759 ("libsoup" ,libsoup)
4760 ("libxml2" ,libxml2)))
4761 (home-page "https://www.gtk.org/")
4762 (synopsis "RESTful web api query library")
4763 (description
4764 "This library was designed to make it easier to access web services that
4765 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4766 libxml to ease remote use of the RESTful API.")
4767 (license license:lgpl2.1+)))
4768
4769 (define-public libsoup
4770 (package
4771 (name "libsoup")
4772 (version "2.72.0")
4773 (source (origin
4774 (method url-fetch)
4775 (uri (string-append "mirror://gnome/sources/libsoup/"
4776 (version-major+minor version) "/"
4777 "libsoup-" version ".tar.xz"))
4778 (sha256
4779 (base32
4780 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
4781 (build-system meson-build-system)
4782 (outputs '("out" "doc"))
4783 (arguments
4784 `(#:modules ((guix build utils)
4785 (guix build meson-build-system)
4786 (ice-9 popen))
4787
4788 #:configure-flags '("-Dgtk_doc=true")
4789 #:phases
4790 (modify-phases %standard-phases
4791 (add-after 'unpack 'patch-docbook-xml
4792 (lambda* (#:key inputs #:allow-other-keys)
4793 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
4794 "/xml/dtd/docbook")))
4795 (substitute* (find-files "docs/reference")
4796 (("http://.*/docbookx\\.dtd")
4797 (string-append xmldoc "/docbookx.dtd")))
4798 #t)))
4799 (add-after 'unpack 'adjust-tests
4800 (lambda _
4801 ;; This test fails due to missing /etc/nsswitch.conf
4802 ;; in the build environment.
4803 (substitute* "tests/socket-test.c"
4804 ((".*/sockets/unconnected.*") ""))
4805
4806 ;; These fail because "subdomain.localhost" does not resolve in
4807 ;; the build environment.
4808 (substitute* "tests/hsts-test.c"
4809 ((".*/hsts/basic.*") "")
4810 ((".*/hsts/subdomains.*") "")
4811 ((".*/hsts/superdomain.*") "")
4812 ((".*/hsts/utf8-address.*") ""))
4813 (substitute* "tests/hsts-db-test.c"
4814 ((".*/hsts-db/subdomains.*") ""))
4815
4816 ;; FIXME: ssl-test fails, starting with
4817 ;; glib-networking 2.68.x.
4818 (substitute* "tests/meson.build"
4819 (("[ \t]*\\['ssl', true, \\[\\]\\],") ""))
4820 #t))
4821 (add-after 'install 'move-doc
4822 (lambda* (#:key outputs #:allow-other-keys)
4823 (let ((out (assoc-ref outputs "out"))
4824 (doc (assoc-ref outputs "doc")))
4825 (mkdir-p (string-append doc "/share"))
4826 (copy-recursively (string-append out "/share/gtk-doc")
4827 (string-append doc "/share/gtk-doc"))
4828 (delete-file-recursively (string-append out "/share/gtk-doc"))
4829 #t))))))
4830 (native-inputs
4831 `(("docbook-xml" ,docbook-xml-4.1.2)
4832 ("glib:bin" ,glib "bin") ; for glib-mkenums
4833 ("gobject-introspection" ,gobject-introspection)
4834 ("gtk-doc" ,gtk-doc/stable)
4835 ("intltool" ,intltool)
4836 ("pkg-config" ,pkg-config)
4837 ("python" ,python-wrapper)
4838 ("vala" ,vala)
4839 ("php" ,php)
4840 ("curl" ,curl)
4841 ("httpd" ,httpd)))
4842 (propagated-inputs
4843 ;; libsoup-2.4.pc refers to all of these (except where otherwise noted)
4844 `(("brotli" ,google-brotli)
4845 ("glib" ,glib)
4846 ("glib-networking" ,glib-networking) ; for GIO runtime modules
4847 ("libpsl" ,libpsl)
4848 ("libxml2" ,libxml2)
4849 ("sqlite" ,sqlite)
4850 ("zlib" ,zlib)))
4851 (inputs
4852 `(("mit-krb5" ,mit-krb5)
4853 ("ntlm_auth" ,samba))) ; For ntlm_auth support
4854 (home-page "https://wiki.gnome.org/Projects/libsoup")
4855 (synopsis "GLib-based HTTP Library")
4856 (description
4857 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4858 and the GLib main loop, to integrate well with GNOME applications.")
4859 (license license:lgpl2.0+)))
4860
4861
4862 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4863 (define-public libsoup-minimal
4864 (package/inherit libsoup
4865 (name "libsoup-minimal")
4866 (outputs (delete "doc" (package-outputs libsoup)))
4867 (arguments
4868 (substitute-keyword-arguments (package-arguments libsoup)
4869 ((#:configure-flags configure-flags)
4870 `(delete "-Dgtk_doc=true" ,configure-flags))
4871 ((#:phases phases)
4872 `(modify-phases ,phases
4873 (delete 'move-doc)))))
4874 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4875
4876 (define-public libsecret
4877 (package
4878 (name "libsecret")
4879 (version "0.20.4")
4880 (source (origin
4881 (method url-fetch)
4882 (uri (string-append
4883 "mirror://gnome/sources/libsecret/"
4884 (version-major+minor version) "/"
4885 "libsecret-" version ".tar.xz"))
4886 (sha256
4887 (base32
4888 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
4889 (build-system gnu-build-system)
4890 (outputs '("out" "doc"))
4891 (arguments
4892 `(#:tests? #f ; FIXME: Testing hangs.
4893 #:configure-flags
4894 (list (string-append "--with-html-dir="
4895 (assoc-ref %outputs "doc")
4896 "/share/gtk-doc/html"))))
4897 (native-inputs
4898 `(("gettext" ,gettext-minimal)
4899 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4900 ("gobject-introspection" ,gobject-introspection)
4901 ("pkg-config" ,pkg-config)
4902 ("vala" ,vala)
4903 ("xsltproc" ,libxslt)))
4904 ;; These are needed for the tests.
4905 ;; FIXME: Add gjs once available.
4906 ;("dbus" ,dbus)
4907 ;("python2" ,python-2)
4908 ;("python2-dbus" ,python2-dbus)
4909 ;("python2-pygobject" ,python2-pygobject)
4910 ;("python2-pygobject-2" ,python2-pygobject-2)))
4911 (propagated-inputs
4912 `(("glib" ,glib))) ; required by libsecret-1.pc
4913 (inputs
4914 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
4915 ;; doesn't seem to affect the build result.
4916 `(("docbook-xsl" ,docbook-xsl)
4917 ("libgcrypt" ,libgcrypt)
4918 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4919 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4920 (synopsis "GObject bindings for \"Secret Service\" API")
4921 (description
4922 "Libsecret is a GObject based library for storing and retrieving passwords
4923 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4924 (license license:lgpl2.1+)))
4925
4926 (define-public five-or-more
4927 (package
4928 (name "five-or-more")
4929 (version "3.32.2")
4930 (source
4931 (origin
4932 (method url-fetch)
4933 (uri (string-append "mirror://gnome/sources/five-or-more/"
4934 (version-major+minor version) "/"
4935 "five-or-more-" version ".tar.xz"))
4936 (sha256
4937 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4938 (build-system meson-build-system)
4939 (arguments
4940 '(#:glib-or-gtk? #t
4941 #:phases
4942 (modify-phases %standard-phases
4943 (add-after 'unpack 'skip-gtk-update-icon-cache
4944 (lambda _
4945 (substitute* "meson_post_install.py"
4946 (("gtk-update-icon-cache") (which "true")))
4947 #t)))))
4948 (native-inputs
4949 `(("pkg-config" ,pkg-config)
4950 ("appstream-glib" ,appstream-glib)
4951 ("desktop-file-utils" ,desktop-file-utils)
4952 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4953 ("intltool" ,intltool)
4954 ("itstool" ,itstool)
4955 ("vala" ,vala)
4956 ("xmllint" ,libxml2)))
4957 (inputs
4958 `(("gtk+" ,gtk+)
4959 ("libgnome-games-support" ,libgnome-games-support)
4960 ("librsvg" ,librsvg)))
4961 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
4962 (synopsis "Logic puzzle game")
4963 (description "Five or More is a game where you try to align
4964 five or more objects of the same color and shape causing them to disappear.
4965 On every turn more objects will appear, until the board is full.
4966 Try to last as long as possible.")
4967 (license license:gpl2+)))
4968
4969 (define-public gnome-mines
4970 (package
4971 (name "gnome-mines")
4972 (version "3.36.1")
4973 (source
4974 (origin
4975 (method url-fetch)
4976 (uri (string-append "mirror://gnome/sources/" name "/"
4977 (version-major+minor version) "/"
4978 name "-" version ".tar.xz"))
4979 (sha256
4980 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
4981 (build-system meson-build-system)
4982 (arguments
4983 '(#:glib-or-gtk? #t
4984 #:phases
4985 (modify-phases %standard-phases
4986 (add-after 'unpack 'skip-gtk-update-icon-cache
4987 (lambda _
4988 (substitute* "build-aux/meson_post_install.py"
4989 (("gtk-update-icon-cache") (which "true")))
4990 #t)))))
4991 (native-inputs
4992 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
4993 ("pkg-config" ,pkg-config)
4994 ("desktop-file-utils" ,desktop-file-utils)
4995 ("intltool" ,intltool)
4996 ("itstool" ,itstool)
4997 ("vala" ,vala)
4998 ("yelp" ,yelp)
4999 ("appstream-glib" ,appstream-glib)))
5000 (inputs
5001 `(("gtk+" ,gtk+)
5002 ("libgnome-games-support" ,libgnome-games-support)
5003 ("librsvg" ,librsvg)))
5004 (home-page "https://wiki.gnome.org/Apps/Mines")
5005 (synopsis "Minesweeper game")
5006 (description
5007 "Mines (previously gnomine) is a puzzle game where you locate mines
5008 floating in an ocean using only your brain and a little bit of luck.")
5009 (license license:gpl2+)))
5010
5011 (define-public gnome-multi-writer
5012 (package
5013 (name "gnome-multi-writer")
5014 (version "3.35.90")
5015 (source
5016 (origin
5017 (method url-fetch)
5018 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5019 (version-major+minor version) "/"
5020 "gnome-multi-writer-" version ".tar.xz"))
5021 (sha256
5022 (base32
5023 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5024 (build-system meson-build-system)
5025 (arguments
5026 '(#:glib-or-gtk? #t
5027 #:phases
5028 (modify-phases %standard-phases
5029 (add-after 'unpack 'skip-post-install
5030 (lambda _
5031 (substitute* "meson.build"
5032 (("meson.add_install_script" &) (string-append "# " &)))
5033 #t)))))
5034 (native-inputs
5035 `(("glib:bin" ,glib "bin")
5036 ("pkg-config" ,pkg-config)))
5037 (inputs
5038 `(("gtk+" ,gtk+)
5039 ("glib" ,glib) ; for gio
5040 ("gusb" ,gusb)
5041 ("udisks" ,udisks)
5042 ("libgudev" ,libgudev)
5043 ("libcanberra" ,libcanberra)
5044 ("polkit" ,polkit)))
5045 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5046 (synopsis "Write to multiple USB devices at once")
5047 (description
5048 "MultiWriter can be used to write an ISO file to multiple USB devices at
5049 once.")
5050 (license license:gpl2+)))
5051
5052 (define-public gnome-sudoku
5053 (package
5054 (name "gnome-sudoku")
5055 (version "3.34.1")
5056 (source
5057 (origin
5058 (method url-fetch)
5059 (uri (string-append "mirror://gnome/sources/" name "/"
5060 (version-major+minor version) "/"
5061 name "-" version ".tar.xz"))
5062 (sha256
5063 (base32
5064 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
5065 (build-system meson-build-system)
5066 (arguments
5067 '(#:glib-or-gtk? #t
5068 #:phases
5069 (modify-phases %standard-phases
5070 (add-after 'unpack 'skip-gtk-update-icon-cache
5071 (lambda _
5072 (substitute* "build-aux/post_install.py"
5073 (("gtk-update-icon-cache") (which "true")))
5074 #t)))))
5075 (native-inputs
5076 `(("pkg-config" ,pkg-config)
5077 ("desktop-file-utils" ,desktop-file-utils)
5078 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5079 ("intltool" ,intltool)
5080 ("itstool" ,itstool)
5081 ("vala" ,vala)
5082 ("xmllint" ,libxml2)))
5083 (inputs
5084 `(("gtk+" ,gtk+)
5085 ("json-glib" ,json-glib)
5086 ("libgee" ,libgee)
5087 ("librsvg" ,librsvg)
5088 ("qqwing" ,qqwing)))
5089 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5090 (synopsis "Japanese logic game")
5091 (description
5092 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5093 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5094 possible while still providing features that make playing difficult Sudoku
5095 more fun.")
5096 (license license:gpl2+)))
5097
5098 (define-public gnome-terminal
5099 (package
5100 (name "gnome-terminal")
5101 (version "3.34.2")
5102 (source
5103 (origin
5104 (method url-fetch)
5105 (uri (string-append "mirror://gnome/sources/" name "/"
5106 (version-major+minor version) "/"
5107 name "-" version ".tar.xz"))
5108 (sha256
5109 (base32
5110 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
5111 (build-system glib-or-gtk-build-system)
5112 (arguments
5113 '(#:configure-flags
5114 (list "--disable-migration" "--disable-search-provider"
5115 "--without-nautilus-extension")
5116 #:phases
5117 (modify-phases %standard-phases
5118 (add-before 'configure 'patch-/bin/true
5119 (lambda _
5120 (substitute* "configure"
5121 (("/bin/true") (which "true"))))))))
5122 (native-inputs
5123 `(("pkg-config" ,pkg-config)
5124 ("desktop-file-utils" ,desktop-file-utils)
5125 ("intltool" ,intltool)
5126 ("itstool" ,itstool)
5127 ("xmllint" ,libxml2)))
5128 (propagated-inputs
5129 `(("dconf" ,dconf)))
5130 (inputs
5131 `(("gtk+" ,gtk+)
5132 ("vte" ,vte)
5133 ("gnutls" ,gnutls)
5134 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5135 ("util-linux" ,util-linux "lib")
5136 ("vala" ,vala)))
5137 (home-page "https://wiki.gnome.org/Apps/Terminal")
5138 (synopsis "Terminal emulator")
5139 (description
5140 "GNOME Terminal is a terminal emulator application for accessing a
5141 UNIX shell environment which can be used to run programs available on
5142 your system.
5143
5144 It supports several profiles, multiple tabs and implements several
5145 keyboard shortcuts.")
5146 (license license:gpl3+)))
5147
5148 (define-public colord
5149 (package
5150 (name "colord")
5151 (version "1.4.5")
5152 (source
5153 (origin
5154 (method url-fetch)
5155 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5156 "colord-" version ".tar.xz"))
5157 (sha256
5158 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5159 (build-system meson-build-system)
5160 (arguments
5161 '(;; FIXME: One test fails:
5162 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5163 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5164 ;; application/x-zerosize
5165 #:tests? #f
5166 #:glib-or-gtk? #t
5167 #:configure-flags (list "-Dlocalstatedir=/var"
5168 ;; No dep on systemd.
5169 "-Dsystemd=false"
5170 ;; Wants to install to global completion dir;
5171 ;; punt.
5172 "-Dbash_completion=false"
5173 "-Ddaemon_user=colord"
5174 "-Dsane=true"
5175 "-Dvapi=true"
5176 ;; Requires spotread.
5177 "-Dargyllcms_sensor=false"
5178 ;; TODO: Requires docbook2x.
5179 "-Dman=false")
5180 #:phases
5181 (modify-phases %standard-phases
5182 (add-before 'configure 'patch-build-system
5183 (lambda* (#:key outputs #:allow-other-keys)
5184 (substitute* "rules/meson.build"
5185 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5186 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
5187 #t))
5188 (add-before 'configure 'set-sqlite3-file-name
5189 (lambda* (#:key inputs #:allow-other-keys)
5190 ;; "colormgr dump" works by invoking the "sqlite3" command.
5191 ;; Record its absolute file name.
5192 (let ((sqlite (assoc-ref inputs "sqlite")))
5193 (substitute* "client/cd-util.c"
5194 (("\"sqlite3\"")
5195 (string-append "\"" sqlite "/bin/sqlite3\"")))
5196 #t))))))
5197 (native-inputs
5198 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5199 ("gettext" ,gettext-minimal)
5200 ("gobject-introspection" ,gobject-introspection)
5201 ("gtk-doc" ,gtk-doc/stable)
5202 ("pkg-config" ,pkg-config)
5203 ("vala" ,vala)))
5204 (propagated-inputs
5205 ;; colord.pc refers to all these.
5206 `(("glib" ,glib)
5207 ("lcms" ,lcms)
5208 ("udev" ,eudev)))
5209 (inputs
5210 `(("dbus-glib" ,dbus-glib)
5211 ("gusb" ,gusb)
5212 ("libgudev" ,libgudev)
5213 ("libusb" ,libusb)
5214 ("polkit" ,polkit)
5215 ("python" ,python-wrapper)
5216 ("sqlite" ,sqlite)
5217 ("sane-backends" ,sane-backends)))
5218 (home-page "https://www.freedesktop.org/software/colord/")
5219 (synopsis "Color management service")
5220 (description "Colord is a system service that makes it easy to manage,
5221 install and generate color profiles to accurately color manage input and
5222 output devices.")
5223 (license license:gpl2+)))
5224
5225 (define-public geoclue
5226 (package
5227 (name "geoclue")
5228 (version "2.5.7")
5229 (source
5230 (origin
5231 (method url-fetch)
5232 (uri
5233 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5234 version "/geoclue-" version ".tar.bz2"))
5235 (sha256
5236 (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
5237 (patches (search-patches "geoclue-config.patch"))))
5238 (build-system meson-build-system)
5239 (arguments
5240 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
5241 (native-inputs
5242 `(("pkg-config" ,pkg-config)
5243 ("gobject-introspection" ,gobject-introspection)
5244 ("modem-manager" ,modem-manager)
5245 ("libnotify" ,libnotify)
5246 ("gtk-doc" ,gtk-doc/stable)
5247 ("intltool" ,intltool)))
5248 (inputs
5249 `(("avahi" ,avahi)
5250 ("glib:bin" ,glib "bin")
5251 ("glib-networking" ,glib-networking)
5252 ("json-glib" ,json-glib)
5253 ("libsoup" ,libsoup)))
5254 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5255 (synopsis "Geolocation service")
5256 (description "Geoclue is a D-Bus service that provides location
5257 information. The primary goal of the Geoclue project is to make creating
5258 location-aware applications as simple as possible, while the secondary goal is
5259 to ensure that no application can access location information without explicit
5260 permission from user.")
5261 (license license:gpl2+)))
5262
5263 (define-public geocode-glib
5264 (package
5265 (name "geocode-glib")
5266 (version "3.26.2")
5267 (source (origin
5268 (method url-fetch)
5269 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5270 (version-major+minor version) "/"
5271 "geocode-glib-" version ".tar.xz"))
5272 (sha256
5273 (base32
5274 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5275 (build-system meson-build-system)
5276 (arguments
5277 `(#:phases
5278 (modify-phases %standard-phases
5279 ;; The tests require a bunch of locales.
5280 (add-before 'check 'set-locales
5281 (lambda* (#:key inputs #:allow-other-keys)
5282 (setenv "GUIX_LOCPATH"
5283 (search-input-directory inputs "lib/locale")))))))
5284 (native-inputs
5285 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5286 ("glibc-locales" ,glibc-locales) ; for tests
5287 ("gettext" ,gettext-minimal)
5288 ("gobject-introspection" ,gobject-introspection)
5289 ("gtk-doc" ,gtk-doc/stable)
5290 ("pkg-config" ,pkg-config)
5291 ("json-glib" ,json-glib)))
5292 (propagated-inputs
5293 ;; geocode-glib-1.0.pc refers to GIO.
5294 `(("glib" ,glib)))
5295 (inputs
5296 `(("libsoup" ,libsoup)))
5297 (home-page "https://github.com/GNOME/geocode-glib/")
5298 (synopsis "Geocoding and reverse-geocoding library")
5299 (description
5300 "geocode-glib is a convenience library for geocoding (finding longitude,
5301 and latitude from an address) and reverse geocoding (finding an address from
5302 coordinates) using the Nominatim service. geocode-glib caches requests for
5303 faster results and to avoid unnecessary server load.")
5304 (license license:lgpl2.0+)))
5305
5306 (define-public upower
5307 (package
5308 (name "upower")
5309 (version "0.99.12")
5310 (source
5311 (origin
5312 (method git-fetch)
5313 (uri (git-reference
5314 (url "https://gitlab.freedesktop.org/upower/upower")
5315 (commit (string-append "UPOWER_"
5316 (string-map (match-lambda (#\. #\_)
5317 (chr chr))
5318 version)))))
5319 (file-name (git-file-name name version))
5320 (sha256
5321 (base32 "00q63yc8vp5cq05vhpwq3qglapdm8hg0lrqkzdwkphk30qzb6hv6"))
5322 (patches (search-patches "upower-builddir.patch"))
5323 (modules '((guix build utils)))
5324 (snippet
5325 '(begin
5326 ;; Upstream commit
5327 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5328 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5329 ;; 'dbus-configuration-directory' in (gnu services dbus)
5330 ;; expects it in etc/. Thus, move it back to its previous
5331 ;; location.
5332 (substitute* "src/Makefile.am"
5333 (("^dbusconfdir =.*$")
5334 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5335 #t))))
5336 (build-system glib-or-gtk-build-system)
5337 (arguments
5338 '(#:phases
5339 (modify-phases %standard-phases
5340 (add-before 'check 'pre-check
5341 (lambda* (#:key inputs #:allow-other-keys)
5342 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5343 "/lib")))
5344 (setenv "LD_LIBRARY_PATH" umockdev))
5345 #t)))
5346 #:configure-flags (list "--localstatedir=/var"
5347 (string-append "--with-udevrulesdir="
5348 (assoc-ref %outputs "out")
5349 "/lib/udev/rules.d"))))
5350 (native-inputs
5351 `(("autoconf" ,autoconf)
5352 ("automake" ,automake)
5353 ("gobject-introspection" ,gobject-introspection)
5354 ("gtk-doc" ,gtk-doc)
5355 ("intltool" ,intltool)
5356 ("libtool" ,libtool)
5357 ("pkg-config" ,pkg-config)
5358 ("python" ,python)
5359 ("which" ,which) ; for ./autogen.sh
5360
5361 ;; For tests.
5362 ("python-dbus" ,python-dbus)
5363 ("python-dbusmock" ,python-dbusmock)
5364 ("python-pygobject" ,python-pygobject)
5365 ("umockdev" ,umockdev)
5366
5367 ;; For man pages.
5368 ("docbook-xsl" ,docbook-xsl)
5369 ("libxslt" ,libxslt) ; for 'xsltproc'
5370 ("libxml2" ,libxml2))) ; for 'XML_CATALOG_FILES'
5371 (inputs
5372 `(("dbus-glib" ,dbus-glib)
5373 ("libgudev" ,libgudev)
5374 ("libusb" ,libusb)))
5375 (propagated-inputs
5376 ;; In Requires of upower-glib.pc.
5377 `(("glib" ,glib)))
5378 (home-page "https://upower.freedesktop.org/")
5379 (synopsis "System daemon for managing power devices")
5380 (description
5381 "UPower is an abstraction for enumerating power devices,
5382 listening to device events and querying history and statistics. Any
5383 application or service on the system can access the org.freedesktop.UPower
5384 service via the system message bus.")
5385 (license license:gpl2+)))
5386
5387 (define-public libgweather
5388 (package
5389 (name "libgweather")
5390 (version "3.34.0")
5391 (source (origin
5392 (method url-fetch)
5393 (uri (string-append "mirror://gnome/sources/" name "/"
5394 (version-major+minor version) "/"
5395 name "-" version ".tar.xz"))
5396 (sha256
5397 (base32
5398 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5399 (build-system meson-build-system)
5400 (arguments
5401 `(#:tests? #f ; one of two tests requires network access
5402 #:configure-flags
5403 `(,(string-append "-Dzoneinfo_dir="
5404 (assoc-ref %build-inputs "tzdata")
5405 "/share/zoneinfo"))))
5406 (native-inputs
5407 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5408 ("gobject-introspection" ,gobject-introspection)
5409 ("pkg-config" ,pkg-config)
5410 ("vala" ,vala)
5411 ("intltool" ,intltool)))
5412 (propagated-inputs
5413 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5414 ;; libsoup.
5415 `(("gtk+" ,gtk+)
5416 ("gdk-pixbuf" ,gdk-pixbuf)
5417 ("libxml2" ,libxml2)
5418 ("libsoup" ,libsoup)
5419 ("geocode-glib" ,geocode-glib)))
5420 (inputs
5421 `(("tzdata" ,tzdata)))
5422 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5423 (synopsis "Location, time zone, and weather library for GNOME")
5424 (description
5425 "libgweather is a library to access weather information from online
5426 services for numerous locations.")
5427 (license license:gpl2+)))
5428
5429 (define-public gnome-settings-daemon
5430 (package
5431 (name "gnome-settings-daemon")
5432 (version "3.34.1")
5433 (source
5434 (origin
5435 (method url-fetch)
5436 (uri (string-append "mirror://gnome/sources/" name "/"
5437 (version-major+minor version) "/"
5438 name "-" version ".tar.xz"))
5439 (sha256
5440 (base32
5441 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
5442 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5443 (build-system meson-build-system)
5444 (arguments
5445 `(#:glib-or-gtk? #t
5446 #:configure-flags
5447 (list (string-append "-Dudev_dir="
5448 (assoc-ref %outputs "out")
5449 "/lib/udev/rules.d/")
5450 "-Dsystemd=false"
5451 ;; Otherwise, the RUNPATH will lack the final path component.
5452 (string-append "-Dc_link_args=-Wl,-rpath="
5453 (assoc-ref %outputs "out")
5454 "/lib/gnome-settings-daemon-3.0"))
5455
5456 #:phases (modify-phases %standard-phases
5457 (add-before 'configure 'set-baobab-file-name
5458 (lambda* (#:key inputs #:allow-other-keys)
5459 ;; Hard-code the file name of Baobab instead of looking
5460 ;; it up in $PATH. This ensures users get the "Examine"
5461 ;; button in the low disk space notification of GDM even
5462 ;; if they don't have GNOME in their main profile.
5463 (let ((baobab (assoc-ref inputs "baobab")))
5464 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5465 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5466 (string-append "g_strdup (\"" baobab
5467 "/bin/baobab\")")))
5468 #t))))
5469
5470 ;; Color management test can't reach the colord system service.
5471 #:tests? #f))
5472 (native-inputs
5473 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5474 ("pkg-config" ,pkg-config)
5475 ("intltool" ,intltool)
5476 ("xsltproc" ,libxslt)
5477 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5478 ("docbook-xml" ,docbook-xml-4.2)
5479 ("docbook-xsl" ,docbook-xsl)))
5480 (inputs
5481 `(("alsa-lib" ,alsa-lib)
5482 ("baobab" ,baobab)
5483 ("colord" ,colord)
5484 ("libgudev" ,libgudev)
5485 ("upower" ,upower)
5486 ("polkit" ,polkit)
5487 ("pulseaudio" ,pulseaudio)
5488 ("libcanberra" ,libcanberra)
5489 ("libx11" ,libx11)
5490 ("libxtst" ,libxtst)
5491 ("lcms" ,lcms)
5492 ("libnotify" ,libnotify)
5493 ("geoclue" ,geoclue)
5494 ("geocode-glib" ,geocode-glib)
5495 ("libgweather" ,libgweather)
5496 ("gnome-desktop" ,gnome-desktop)
5497 ("nss" ,nss)
5498 ("cups" ,cups)
5499 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5500 ("libwacom" ,libwacom)
5501 ("librsvg" ,librsvg)
5502 ("xf86-input-wacom" ,xf86-input-wacom)
5503 ("wayland" ,wayland)
5504 ("network-manager" ,network-manager)
5505 ("gcr" ,gcr)
5506 ("modem-manager" ,modem-manager)))
5507 (home-page "https://www.gnome.org")
5508 (synopsis "GNOME settings daemon")
5509 (description
5510 "This package contains the daemon responsible for setting the various
5511 parameters of a GNOME session and the applications that run under it. It
5512 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5513 settings, themes, mouse settings, and startup of other daemons.")
5514 (license license:gpl2+)))
5515
5516 (define-public totem-pl-parser
5517 (package
5518 (name "totem-pl-parser")
5519 (version "3.26.6")
5520 (source (origin
5521 (method url-fetch)
5522 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5523 (version-major+minor version) "/"
5524 "totem-pl-parser-" version ".tar.xz"))
5525 (sha256
5526 (base32
5527 "075csd5x0frgf93jvhlqiwv5i0qm24zz3iw17jj7v7fgsml0zpy0"))))
5528 (build-system meson-build-system)
5529 (arguments
5530 ;; FIXME: Tests require gvfs.
5531 `(#:tests? #f))
5532 (native-inputs
5533 `(("intltool" ,intltool)
5534 ("glib" ,glib "bin")
5535 ("gobject-introspection" ,gobject-introspection)
5536 ("pkg-config" ,pkg-config)))
5537 (propagated-inputs
5538 `(("glib" ,glib)
5539 ("gmime" ,gmime)
5540 ("libarchive" ,libarchive)
5541 ("libgcrypt" ,libgcrypt)
5542 ("libxml2" ,libxml2)))
5543 (inputs
5544 `(("libsoup" ,libsoup)))
5545 (home-page "https://projects.gnome.org/totem")
5546 (synopsis "Library to parse and save media playlists for GNOME")
5547 (description "Totem-pl-parser is a GObjects-based library to parse and save
5548 playlists in a variety of formats.")
5549 (license license:lgpl2.0+)))
5550
5551 (define-public aisleriot
5552 (package
5553 (name "aisleriot")
5554 (version "3.22.9")
5555 (source (origin
5556 (method url-fetch)
5557 (uri (string-append "mirror://gnome/sources/aisleriot/"
5558 (version-major+minor version) "/"
5559 "aisleriot-" version ".tar.xz"))
5560 (sha256
5561 (base32
5562 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5563 (build-system glib-or-gtk-build-system)
5564 (arguments
5565 '(#:configure-flags
5566 '("--with-platform=gtk-only"
5567 "--with-card-theme-formats=svg")))
5568 (native-inputs
5569 `(("desktop-file-utils" ,desktop-file-utils)
5570 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5571 ("intltool" ,intltool)
5572 ("itstool" ,itstool)
5573 ("pkg-config" ,pkg-config)
5574 ("xmllint" ,libxml2)))
5575 (inputs
5576 `(("gtk+" ,gtk+)
5577 ("guile" ,guile-2.2)
5578 ("libcanberra" ,libcanberra)
5579 ("librsvg" ,librsvg)))
5580 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5581 (synopsis "Solitaire card games")
5582 (description
5583 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5584 which are easy to play with the aid of a mouse.")
5585 (license license:gpl3+)))
5586
5587 (define-public amtk
5588 (package
5589 (name "amtk")
5590 (version "5.0.2")
5591 (source (origin
5592 (method url-fetch)
5593 (uri (string-append "mirror://gnome/sources/amtk/"
5594 (version-major+minor version) "/"
5595 "amtk-" version ".tar.xz"))
5596 (sha256
5597 (base32
5598 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5599 (build-system gnu-build-system)
5600 (arguments
5601 '(#:configure-flags '("--enable-gtk-doc")))
5602 (native-inputs
5603 `(("gobject-introspection" ,gobject-introspection)
5604 ("glib:bin" ,glib "bin") ; for glib-mkenums
5605 ("gtk-doc" ,gtk-doc/stable)
5606 ("pkg-config" ,pkg-config)))
5607 (inputs
5608 `(("glib" ,glib)
5609 ("gtk+" ,gtk+)))
5610 (home-page "https://wiki.gnome.org/Projects/Amtk")
5611 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5612 (description
5613 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5614 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5615 both a traditional UI or a modern UI with a GtkHeaderBar.")
5616 (license license:lgpl2.1+)))
5617
5618 (define-public devhelp
5619 (package
5620 (name "devhelp")
5621 (version "3.34.0")
5622 (source (origin
5623 (method url-fetch)
5624 (uri (string-append "mirror://gnome/sources/" name "/"
5625 (version-major+minor version) "/"
5626 name "-" version ".tar.xz"))
5627 (sha256
5628 (base32
5629 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5630 (build-system meson-build-system)
5631 (arguments
5632 '(#:glib-or-gtk? #t
5633 #:phases
5634 (modify-phases %standard-phases
5635 (add-after 'unpack 'skip-gtk-update-icon-cache
5636 ;; Don't create 'icon-theme.cache'.
5637 (lambda _
5638 (substitute* "meson_post_install.py"
5639 (("gtk-update-icon-cache") "true"))
5640 #t)))))
5641 (native-inputs
5642 `(("intltool" ,intltool)
5643 ("itstool" ,itstool)
5644 ("gobject-introspection" ,gobject-introspection)
5645 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5646 ("pkg-config" ,pkg-config)))
5647 (inputs
5648 `(("amtk" ,amtk)
5649 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5650 ("webkitgtk" ,webkitgtk)))
5651 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5652 (synopsis "API documentation browser for GNOME")
5653 (description
5654 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5655 natively with GTK-Doc (the API reference system developed for GTK+ and used
5656 throughout GNOME for API documentation).")
5657 (license license:gpl2+)))
5658
5659 (define-public cogl
5660 (package
5661 (name "cogl")
5662 (version "1.22.8")
5663 (source
5664 (origin
5665 (method url-fetch)
5666 (uri (string-append "mirror://gnome/sources/cogl/"
5667 (version-major+minor version) "/"
5668 "cogl-" version ".tar.xz"))
5669 (sha256
5670 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5671 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5672 ;; cogl, corresponding changes may be appropriate in mutter as well.
5673 (build-system gnu-build-system)
5674 (native-inputs
5675 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5676 ("gobject-introspection" ,gobject-introspection)
5677 ("xorg-server" ,xorg-server-for-tests)
5678 ("pkg-config" ,pkg-config)))
5679 (propagated-inputs
5680 `(("glib" ,glib)
5681 ("gdk-pixbuf" ,gdk-pixbuf)
5682 ("libx11" ,libx11)
5683 ("libxext" ,libxext)
5684 ("libxfixes" ,libxfixes)
5685 ("libxdamage" ,libxdamage)
5686 ("libxcomposite" ,libxcomposite)
5687 ("libxrandr" ,libxrandr)))
5688 (inputs
5689 `(("mesa" ,mesa)
5690 ("cairo" ,cairo)
5691 ("pango" ,pango)
5692 ("gstreamer" ,gstreamer)
5693 ("gst-plugins-base" ,gst-plugins-base)
5694 ("wayland" ,wayland)))
5695 (arguments
5696 `(#:disallowed-references (,xorg-server-for-tests)
5697 #:configure-flags (list "--enable-cogl-gst"
5698 "--enable-wayland-egl-platform"
5699 "--enable-wayland-egl-server"
5700
5701 ;; Arrange to pass an absolute file name to
5702 ;; dlopen for libGL.so.
5703 (string-append "--with-gl-libname="
5704 (assoc-ref %build-inputs "mesa")
5705 "/lib/libGL.so"))
5706 #:phases
5707 (modify-phases %standard-phases
5708 (add-after 'unpack 'fix-build-with-mesa-20
5709 (lambda _
5710 ;; Work around a problem with Mesa 20 where some macros used by
5711 ;; Cogl went missing from eglext.h. This can likely be removed
5712 ;; for newer versions of Cogl or Mesa.
5713 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5714 (substitute* '("configure"
5715 "cogl/winsys/cogl-winsys-egl-kms.c")
5716 (("#include <EGL/eglext.h>" all)
5717 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5718 #t))
5719 (add-before 'check 'start-xorg-server
5720 (lambda* (#:key tests? inputs #:allow-other-keys)
5721 (if tests?
5722 (begin
5723 ;; The test suite requires a running X server.
5724 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5725 (assoc-ref inputs "xorg-server")))
5726 (setenv "DISPLAY" ":1")
5727 #t)
5728 (format #t "test suite not run~%"))
5729 #t)))))
5730 (home-page "https://www.cogl3d.org")
5731 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5732 (description
5733 "Cogl is a small library for using 3D graphics hardware to draw pretty
5734 pictures. The API departs from the flat state machine style of OpenGL and is
5735 designed to make it easy to write orthogonal components that can render
5736 without stepping on each others toes.")
5737 (license (list license:expat ; most of the code
5738 license:bsd-3 ; cogl/cogl-point-in-poly.c
5739 license:sgifreeb2.0 ; cogl-path/tesselator/
5740 license:asl2.0)))) ; examples/android/
5741
5742 (define-public clutter
5743 (package
5744 (name "clutter")
5745 (version "1.26.2")
5746 (source
5747 (origin
5748 (method url-fetch)
5749 (uri (string-append "mirror://gnome/sources/" name "/"
5750 (version-major+minor version) "/"
5751 name "-" version ".tar.xz"))
5752 (sha256
5753 (base32
5754 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5755 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5756 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5757 (build-system gnu-build-system)
5758 (outputs '("out"
5759 "doc")) ;9 MiB of gtk-doc HTML pages
5760 (native-inputs
5761 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5762 ("gobject-introspection" ,gobject-introspection)
5763 ("pkg-config" ,pkg-config)
5764 ("xsltproc" ,libxslt)))
5765 (propagated-inputs
5766 `(("cogl" ,cogl)
5767 ("cairo" ,cairo)
5768 ("atk" ,atk)
5769 ("gtk+" ,gtk+)
5770 ("json-glib" ,json-glib)
5771 ("glib" ,glib)
5772 ("libxcomposite" ,libxcomposite)
5773 ("libxdamage" ,libxdamage)
5774 ("libxext" ,libxext)
5775 ("xinput" ,xinput)))
5776 (inputs
5777 `(("libxkbcommon" ,libxkbcommon)
5778 ("udev" ,eudev)))
5779 (arguments
5780 `(#:configure-flags (list "--enable-x11-backend=yes"
5781
5782 ;; This produces share/doc/{clutter,cally}.
5783 (string-append "--with-html-dir="
5784 (assoc-ref %outputs "doc")
5785 "/share/doc"))
5786 ;; XXX FIXME: Get test suite working. It would probably fail in the
5787 ;; same way the cogl tests fail, since clutter is based on cogl.
5788 #:tests? #f))
5789 (home-page "http://www.clutter-project.org")
5790 (synopsis "OpenGL-based interactive canvas library")
5791 (description
5792 "Clutter is an OpenGL-based interactive canvas library, designed for
5793 creating fast, mainly 2D single window applications such as media box UIs,
5794 presentations, kiosk style applications and so on.")
5795 (license license:lgpl2.0+)))
5796
5797 (define-public clutter-gtk
5798 (package
5799 (name "clutter-gtk")
5800 (version "1.8.4")
5801 (source
5802 (origin
5803 (method url-fetch)
5804 (uri (string-append "mirror://gnome/sources/" name "/"
5805 (version-major+minor version) "/"
5806 name "-" version ".tar.xz"))
5807 (sha256
5808 (base32
5809 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5810 (build-system gnu-build-system)
5811 (native-inputs
5812 `(("pkg-config" ,pkg-config)
5813 ("gobject-introspection" ,gobject-introspection)))
5814 (propagated-inputs
5815 ;; clutter-gtk.pc refers to all these.
5816 `(("clutter" ,clutter)
5817 ("gtk+" ,gtk+)))
5818 (home-page "http://www.clutter-project.org")
5819 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5820 (description
5821 "Clutter is an OpenGL-based interactive canvas library, designed for
5822 creating fast, mainly 2D single window applications such as media box UIs,
5823 presentations, kiosk style applications and so on.")
5824 (license license:lgpl2.0+)))
5825
5826 (define-public clutter-gst
5827 (package
5828 (name "clutter-gst")
5829 (version "3.0.27")
5830 (source
5831 (origin
5832 (method url-fetch)
5833 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5834 (version-major+minor version) "/"
5835 "clutter-gst-" version ".tar.xz"))
5836 (sha256
5837 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5838 (build-system gnu-build-system)
5839 (native-inputs
5840 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5841 ("pkg-config" ,pkg-config)
5842 ("gobject-introspection" ,gobject-introspection)))
5843 (inputs
5844 `(("clutter" ,clutter)
5845 ("gstreamer" ,gstreamer)
5846 ("gst-plugins-base" ,gst-plugins-base)))
5847 (home-page "http://www.clutter-project.org")
5848 (synopsis "Integration library for using GStreamer with Clutter")
5849 (description
5850 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5851 It provides a GStreamer sink to upload frames to GL and an actor that
5852 implements the ClutterGstPlayer interface using playbin. Clutter is an
5853 OpenGL-based interactive canvas library.")
5854 (license license:lgpl2.0+)))
5855
5856 (define-public libchamplain
5857 (package
5858 (name "libchamplain")
5859 (version "0.12.16")
5860 (source (origin
5861 (method url-fetch)
5862 (uri (string-append
5863 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5864 version ".tar.xz"))
5865 (sha256
5866 (base32
5867 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5868 (build-system gnu-build-system)
5869 (arguments '(#:configure-flags '("--enable-vala")))
5870 (native-inputs
5871 `(("gobject-introspection" ,gobject-introspection)
5872 ("pkg-config" ,pkg-config)
5873 ("vala" ,vala)))
5874 (propagated-inputs
5875 `(("libsoup" ,libsoup)
5876 ("sqlite" ,sqlite)
5877 ("clutter" ,clutter)
5878 ("clutter-gtk" ,clutter-gtk)
5879 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5880 ("cairo" ,cairo)
5881 ("gtk+3" ,gtk+)
5882 ("glib" ,glib)))
5883 (home-page "https://projects.gnome.org/libchamplain/")
5884 (synopsis "C library providing a ClutterActor to display maps")
5885 (description
5886 "libchamplain is a C library providing a ClutterActor to display maps.
5887 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5888 and Perl bindings are also available. It supports numerous free map sources
5889 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5890 (license license:lgpl2.1+)))
5891
5892 (define-public gom
5893 (package
5894 (name "gom")
5895 (version "0.3.2")
5896 (source
5897 (origin
5898 (method url-fetch)
5899 (uri (string-append "mirror://gnome/sources/gom/"
5900 (version-major+minor version) "/"
5901 "gom-" version ".tar.xz"))
5902 (sha256
5903 (base32
5904 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5905 (build-system gnu-build-system)
5906 (native-inputs
5907 `(("intltool" ,intltool)
5908 ("pkg-config" ,pkg-config)
5909 ("gobject-introspection" ,gobject-introspection)))
5910 (inputs
5911 `(("glib" ,glib)
5912 ("gdk-pixbuf" ,gdk-pixbuf)
5913 ("sqlite" ,sqlite)))
5914 ;; XXX TODO: Figure out how to run the test suite.
5915 (arguments `(#:tests? #f))
5916 (home-page "https://wiki.gnome.org/Projects/Gom")
5917 (synopsis "Object mapper from GObjects to SQLite")
5918 (description
5919 "Gom provides an object mapper from GObjects to SQLite. It helps you
5920 write applications that need to store structured data as well as make complex
5921 queries upon that data.")
5922 (license license:lgpl2.1+)))
5923
5924 (define-public libgnome-games-support
5925 (package
5926 (name "libgnome-games-support")
5927 (version "1.7.1")
5928 (source (origin
5929 (method url-fetch)
5930 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5931 (version-major+minor version) "/"
5932 "libgnome-games-support-" version ".tar.xz"))
5933 (sha256
5934 (base32
5935 "11g1r3ppb9v8m3anks9gxf7fv1x38vmjiya3lr7zjjv328pb69d6"))))
5936 (build-system meson-build-system)
5937 (arguments
5938 '(#:glib-or-gtk? #t
5939 #:phases
5940 (modify-phases %standard-phases
5941 (add-before 'check 'pre-check
5942 (lambda _
5943 ;; Tests require a writable HOME.
5944 (setenv "HOME" (getcwd))
5945 #t)))))
5946 (native-inputs
5947 `(("intltool" ,intltool)
5948 ("pkg-config" ,pkg-config)
5949 ("vala" ,vala)))
5950 (propagated-inputs
5951 ;; Required by libgnome-games-support-1.0.pc
5952 `(("gtk+" ,gtk+)
5953 ("libgee" ,libgee)))
5954 (home-page "https://www.gnome.org/")
5955 (synopsis "Useful functionality shared among GNOME games")
5956 (description
5957 "libgnome-games-support is a small library intended for internal use by
5958 GNOME Games, but it may be used by others.")
5959 (license license:lgpl3+)))
5960
5961 (define-public gnome-klotski
5962 (package
5963 (name "gnome-klotski")
5964 (version "3.34.0")
5965 (source (origin
5966 (method url-fetch)
5967 (uri (string-append "mirror://gnome/sources/" name "/"
5968 (version-major+minor version) "/"
5969 name "-" version ".tar.xz"))
5970 (sha256
5971 (base32
5972 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
5973 (build-system meson-build-system)
5974 (arguments
5975 '(#:glib-or-gtk? #t
5976 #:phases
5977 (modify-phases %standard-phases
5978 (add-after 'unpack 'skip-gtk-update-icon-cache
5979 ;; Don't create 'icon-theme.cache'.
5980 (lambda _
5981 (substitute* "build-aux/meson_post_install.py"
5982 (("gtk-update-icon-cache") (which "true")))
5983 #t)))))
5984 (native-inputs
5985 `(("desktop-file-utils" ,desktop-file-utils)
5986 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5987 ("intltool" ,intltool)
5988 ("itstool" ,itstool)
5989 ("pkg-config" ,pkg-config)
5990 ("vala" ,vala)
5991 ("xmllint" ,libxml2)))
5992 (inputs
5993 `(("gtk+" ,gtk+)
5994 ("libgnome-games-support" ,libgnome-games-support)
5995 ("librsvg" ,librsvg)))
5996 (home-page "https://wiki.gnome.org/Apps/Klotski")
5997 (synopsis "Sliding block puzzles")
5998 (description
5999 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6000 the patterned block to the area bordered by green markers. To do so, you will
6001 need to slide other blocks out of the way. Complete each puzzle in as few moves
6002 as possible!")
6003 (license license:gpl2+)))
6004
6005 (define-public grilo
6006 (package
6007 (name "grilo")
6008 (version "0.3.12")
6009 (source
6010 (origin
6011 (method url-fetch)
6012 (uri (string-append "mirror://gnome/sources/grilo/"
6013 (version-major+minor version) "/"
6014 "grilo-" version ".tar.xz"))
6015 (sha256
6016 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
6017 (build-system meson-build-system)
6018 (native-inputs
6019 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
6020 ("intltool" ,intltool)
6021 ("pkg-config" ,pkg-config)
6022 ("gobject-introspection" ,gobject-introspection)
6023 ("gtk-doc" ,gtk-doc/stable)
6024 ("vala" ,vala)))
6025 (inputs
6026 `(("cyrus-sasl" ,cyrus-sasl)
6027 ("glib" ,glib)
6028 ("gtk+" ,gtk+)
6029 ("libxml2" ,libxml2)
6030 ("liboauth" ,liboauth)
6031 ("libsoup" ,libsoup)
6032 ("totem-pl-parser" ,totem-pl-parser)))
6033 (native-search-paths
6034 (list (search-path-specification
6035 (variable "GRL_PLUGIN_PATH")
6036 (files (list (string-append "lib/grilo-"
6037 (version-major+minor version)))))))
6038 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6039 (synopsis "Framework for discovering and browsing media")
6040 (description
6041 "Grilo is a framework focused on making media discovery and browsing easy
6042 for application developers.")
6043 (license license:lgpl2.1+)))
6044
6045 (define-public grilo-plugins
6046 (package
6047 (name "grilo-plugins")
6048 (version "0.3.11")
6049 (source
6050 (origin
6051 (method url-fetch)
6052 (uri (string-append "mirror://gnome/sources/" name "/"
6053 (version-major+minor version) "/"
6054 name "-" version ".tar.xz"))
6055 (sha256
6056 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
6057 (build-system meson-build-system)
6058 (native-inputs
6059 `(("gettext" ,gettext-minimal)
6060 ("glib:bin" ,glib "bin")
6061 ("gtk+:bin" ,gtk+ "bin")
6062 ("itstool" ,itstool)
6063 ("pkg-config" ,pkg-config)))
6064 ;; TODO: ahavi, gstreamer
6065 (inputs
6066 `(("grilo" ,grilo)
6067 ;("gmime" ,gmime) ; unused
6068 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6069 ("gom" ,gom)
6070 ;("gssdp" ,gssdp) ; unused
6071 ;("gupnp" ,gupnp) ; unused
6072 ;("gupnp-av" ,gupnp-av) ; unused
6073 ("json-glib" ,json-glib)
6074 ("avahi" ,avahi)
6075 ("libgdata" ,libgdata)
6076 ("libmediaart" ,libmediaart)
6077 ;("librest" ,rest) ; unused
6078 ("libsoup" ,libsoup)
6079 ("totam-pl-parser" ,totem-pl-parser)
6080 ("tracker" ,tracker))) ; unused because it's too old
6081 (arguments
6082 `(#:glib-or-gtk? #t
6083 ;;Disable lua-factory as it needs missing dependencies
6084 #:configure-flags '("-Denable-lua-factory=no")))
6085 (home-page "https://live.gnome.org/Grilo")
6086 (synopsis "Plugins for the Grilo media discovery library")
6087 (description
6088 "Grilo is a framework focused on making media discovery and browsing easy
6089 for application developers. This package provides plugins for common media
6090 discovery protocols.")
6091 (license license:lgpl2.1+)))
6092
6093 (define-public totem
6094 (package
6095 (name "totem")
6096 (version "3.38.1")
6097 (source
6098 (origin
6099 (method url-fetch)
6100 (uri (string-append "mirror://gnome/sources/totem/"
6101 (version-major+minor version) "/"
6102 "totem-" version ".tar.xz"))
6103 (sha256
6104 (base32 "02510lvzvxvmpcs64k6sqix8ysl7sihhhwvp0vmfv7521ryczylg"))))
6105 (build-system meson-build-system)
6106 (native-inputs
6107 `(("pkg-config" ,pkg-config)
6108 ("desktop-file-utils" ,desktop-file-utils)
6109 ("gettext" ,gettext-minimal)
6110 ("gobject-introspection" ,gobject-introspection)
6111 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
6112 ("itstool" ,itstool)
6113 ("xmllint" ,libxml2)
6114 ("xorg-server" ,xorg-server-for-tests)))
6115 (propagated-inputs
6116 `(("dconf" ,dconf)))
6117 (inputs
6118 `(("gtk+" ,gtk+)
6119 ("gdk-pixbuf" ,gdk-pixbuf)
6120 ("atk" ,atk)
6121 ("cairo" ,cairo)
6122 ("dbus-glib" ,dbus-glib)
6123 ("clutter" ,clutter)
6124 ("clutter-gtk" ,clutter-gtk)
6125 ("clutter-gst" ,clutter-gst)
6126 ("xorgproto" ,xorgproto)
6127 ("libxxf86vm" ,libxxf86vm)
6128 ("libxtst" ,libxtst)
6129 ("libxrandr" ,libxrandr)
6130 ("libxml2" ,libxml2)
6131 ("libsoup" ,libsoup)
6132 ("libpeas" ,libpeas)
6133 ("librsvg" ,librsvg)
6134 ("lirc" ,lirc)
6135 ("gnome-desktop" ,gnome-desktop)
6136 ("gstreamer" ,gstreamer)
6137 ("gst-plugins-base" ,gst-plugins-base)
6138 ("gst-plugins-good" ,gst-plugins-good)
6139 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6140 ("adwaita-icon-theme" ,adwaita-icon-theme)
6141 ("python" ,python)
6142 ("python-pygobject" ,python-pygobject)
6143 ("totem-pl-parser" ,totem-pl-parser)
6144 ("grilo" ,grilo)
6145 ("grilo-plugins" ,grilo-plugins)
6146 ("vala" ,vala)))
6147 (arguments
6148 `(#:glib-or-gtk? #t
6149
6150 ;; Disable automatic GStreamer plugin installation via PackageKit and
6151 ;; all that.
6152 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6153
6154 ;; Do not build .a files for the plugins, it's
6155 ;; completely useless. This saves 2 MiB.
6156 "--default-library" "shared")
6157 #:phases
6158 (modify-phases %standard-phases
6159 (add-after 'unpack 'skip-gtk-update-icon-cache
6160 ;; Don't create 'icon-theme.cache'.
6161 (lambda _
6162 (substitute* "meson_post_install.py"
6163 (("gtk-update-icon-cache") "true"))
6164 #t))
6165 (add-before
6166 'install 'disable-cache-generation
6167 (lambda _
6168 (setenv "DESTDIR" "/")
6169 #t))
6170 (add-before
6171 'check 'pre-check
6172 (lambda _
6173 ;; Tests require a running X server.
6174 (system "Xvfb :1 &")
6175 (setenv "DISPLAY" ":1")
6176 #t))
6177 (add-after
6178 'install 'wrap-totem
6179 (lambda* (#:key inputs outputs #:allow-other-keys)
6180 (let ((out (assoc-ref outputs "out"))
6181 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6182 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6183 (wrap-program (string-append out "/bin/totem")
6184 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6185 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6186 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6187 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
6188 #t)))))
6189 (home-page "https://wiki.gnome.org/Apps/Videos")
6190 (synopsis "Simple media player for GNOME based on GStreamer")
6191 (description "Totem is a simple yet featureful media player for GNOME
6192 which can read a large number of file formats.")
6193 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6194 ;; to be used and distributed together with GStreamer and Totem. See
6195 ;; file://COPYING in the source distribution for details.
6196 (license license:gpl2+)))
6197
6198 (define-public rhythmbox
6199 (package
6200 (name "rhythmbox")
6201 (version "3.4.4")
6202 (source (origin
6203 (method url-fetch)
6204 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6205 (version-major+minor version) "/"
6206 "rhythmbox-" version ".tar.xz"))
6207 (sha256
6208 (base32
6209 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6210 (build-system glib-or-gtk-build-system)
6211 (arguments
6212 `(#:configure-flags
6213 (list "--enable-lirc"
6214 "--enable-python"
6215 "--enable-vala"
6216 "--with-brasero"
6217 "--with-gudev"
6218 "--with-libsecret")
6219 #:phases
6220 (modify-phases %standard-phases
6221 (add-after
6222 'install 'wrap-rhythmbox
6223 (lambda* (#:key inputs outputs #:allow-other-keys)
6224 (let ((out (assoc-ref outputs "out"))
6225 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6226 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6227 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6228 (python-path (getenv "GUIX_PYTHONPATH")))
6229 (wrap-program (string-append out "/bin/rhythmbox")
6230 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6231 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6232 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6233 `("GUIX_PYTHONPATH" ":" prefix (,python-path))))
6234 #t)))))
6235 (propagated-inputs
6236 `(("dconf" ,dconf)))
6237 (native-inputs
6238 `(("itstool" ,itstool)
6239 ("intltool" ,intltool)
6240 ("glib" ,glib "bin")
6241 ("gobject-introspection" ,gobject-introspection)
6242 ("desktop-file-utils" ,desktop-file-utils)
6243 ("pkg-config" ,pkg-config)
6244 ("xmllint" ,libxml2)))
6245 (inputs
6246 `(("json-glib" ,json-glib)
6247 ("tdb" ,tdb)
6248 ("gnome-desktop" ,gnome-desktop)
6249 ("python" ,python)
6250 ("python-pygobject" ,python2-pygobject)
6251 ("vala" ,vala)
6252 ("gmime" ,gmime)
6253 ("adwaita-icon-theme" ,adwaita-icon-theme)
6254 ("grilo" ,grilo)
6255 ("grilo-plugins" ,grilo-plugins)
6256 ("gstreamer" ,gstreamer)
6257 ("gst-plugins-base" ,gst-plugins-base)
6258 ("gst-plugins-good" ,gst-plugins-good)
6259 ("totem-pl-parser" ,totem-pl-parser)
6260 ("libgudev" ,libgudev)
6261 ;;("libmtp" ,libmtp) FIXME: Not detected
6262 ("libsecret" ,libsecret)
6263 ("libsoup" ,libsoup)
6264 ("libnotify" ,libnotify)
6265 ("libpeas" ,libpeas)
6266 ("lirc" ,lirc)
6267 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6268 ;;("clutter" ,clutter)
6269 ;;("clutter-gtk" ,clutter-gtk)
6270 ;;("clutter-gst" ,clutter-gst)
6271 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6272 ("atk" ,atk)
6273 ("pango" ,pango)
6274 ("gtk+" ,gtk+)
6275 ;; TODO:
6276 ;; * libgpod
6277 ;; * mx
6278 ("brasero" ,brasero)))
6279 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6280 (synopsis "Music player for GNOME")
6281 (description "Rhythmbox is a music playing application for GNOME. It
6282 supports playlists, song ratings, and any codecs installed through gstreamer.")
6283 (license license:gpl2+)))
6284
6285 (define-public eog
6286 (package
6287 (name "eog")
6288 (version "3.34.1")
6289 (source (origin
6290 (method url-fetch)
6291 (uri (string-append "mirror://gnome/sources/" name "/"
6292 (version-major+minor version) "/"
6293 name "-" version ".tar.xz"))
6294 (sha256
6295 (base32
6296 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
6297 (build-system meson-build-system)
6298 (arguments
6299 `(#:configure-flags
6300 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6301 (list (string-append "-Dc_link_args=-Wl,-rpath="
6302 (assoc-ref %outputs "out") "/lib/eog"))
6303 #:phases
6304 (modify-phases %standard-phases
6305 (add-after 'unpack 'skip-gtk-update-icon-cache
6306 ;; Don't create 'icon-theme.cache'.
6307 (lambda _
6308 (substitute* "meson_post_install.py"
6309 (("gtk-update-icon-cache") "true"))
6310 #t))
6311 (add-after 'install 'wrap-eog
6312 (lambda* (#:key outputs #:allow-other-keys)
6313 (let ((out (assoc-ref outputs "out"))
6314 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6315 (wrap-program (string-append out "/bin/eog")
6316 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6317 #t)))))
6318 (propagated-inputs
6319 `(("dconf" ,dconf)))
6320 (native-inputs
6321 `(("intltool" ,intltool)
6322 ("itstool" ,itstool)
6323 ("glib" ,glib "bin")
6324 ("gobject-introspection" ,gobject-introspection)
6325 ("pkg-config" ,pkg-config)
6326 ("xmllint" ,libxml2)))
6327 (inputs
6328 `(("gnome-desktop" ,gnome-desktop)
6329 ("shared-mime-info" ,shared-mime-info)
6330 ("adwaita-icon-theme" ,adwaita-icon-theme)
6331 ("exempi" ,exempi)
6332 ("lcms" ,lcms)
6333 ("libexif" ,libexif)
6334 ("libpeas" ,libpeas)
6335 ("libjpeg" ,libjpeg-turbo)
6336 ("librsvg" ,librsvg)
6337 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6338 ("gtk+" ,gtk+)))
6339 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6340 (synopsis "GNOME image viewer")
6341 (description "Eye of GNOME is the GNOME image viewer. It
6342 supports image conversion, rotation, and slideshows.")
6343 (license license:gpl2+)))
6344
6345 (define-public eog-plugins
6346 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6347 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6348 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6349 ;; 'XDG_DATA_DIRS' appropriately set.
6350 (package
6351 (name "eog-plugins")
6352 (version "3.26.4")
6353 (source (origin
6354 (method url-fetch)
6355 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6356 (version-major+minor version) "/"
6357 "eog-plugins-" version ".tar.xz"))
6358 (sha256
6359 (base32
6360 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6361 (build-system gnu-build-system)
6362 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6363 (synopsis "Extensions for the Eye of GNOME image viewer")
6364 (native-inputs
6365 `(("pkg-config" ,pkg-config)
6366 ("gettext" ,gettext-minimal)))
6367 (inputs
6368 `(("eog" ,eog)
6369 ("glib" ,glib)
6370 ("gtk+" ,gtk+)
6371 ("libpeas" ,libpeas)
6372 ("libexif" ,libexif)
6373 ("libchamplain" ,libchamplain)))
6374 (description
6375 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6376 notably:
6377
6378 @itemize
6379 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6380 @item @dfn{Map}, which displays a map of where the picture was taken on the
6381 side panel;
6382 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6383 @end itemize\n")
6384
6385 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6386 ;; long suspicious byte stream that goes to a
6387 ;; ".gresource.eog_postasa_plugin" ELF section.
6388 (license license:gpl2+)))
6389
6390 (define-public libgudev
6391 (package
6392 (name "libgudev")
6393 (version "236")
6394 (source (origin
6395 (method url-fetch)
6396 (uri (string-append "mirror://gnome/sources/" name "/"
6397 version "/" name "-" version ".tar.xz"))
6398 (sha256
6399 (base32
6400 "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
6401 (build-system meson-build-system)
6402 (native-inputs
6403 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6404 ("gobject-introspection" ,gobject-introspection)
6405 ("pkg-config" ,pkg-config)))
6406 (propagated-inputs
6407 `(("glib" ,glib) ; in Requires of gudev-1.0.pc
6408 ("eudev" ,eudev))) ; in Requires.private of gudev-1.0.pc
6409 (inputs
6410 `(("udev" ,eudev)))
6411 (home-page "https://wiki.gnome.org/Projects/libgudev")
6412 (synopsis "GObject bindings for libudev")
6413 (description
6414 "This library provides GObject bindings for libudev. It was originally
6415 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6416 (license license:lgpl2.1+)))
6417
6418 (define-public gvfs
6419 (package
6420 (name "gvfs")
6421 (version "1.40.2")
6422 (source (origin
6423 (method url-fetch)
6424 (uri (string-append "mirror://gnome/sources/gvfs/"
6425 (version-major+minor version) "/"
6426 "gvfs-" version ".tar.xz"))
6427 (sha256
6428 (base32
6429 "07lpcfric3h0302n9b1pwa38mjb76r9s98kg2867y2d1qvzfivxx"))
6430 ;; This patch may be removed when upgrading to version 1.46.x.
6431 (patches
6432 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6433 (build-system meson-build-system)
6434 (arguments
6435 '(#:glib-or-gtk? #t
6436 #:configure-flags
6437 (list "-Dsystemduserunitdir=no"
6438 "-Dtmpfilesdir=no"
6439 ;; Otherwise, the RUNPATH will lack the final path component.
6440 (string-append "-Dc_link_args=-Wl,-rpath="
6441 (assoc-ref %outputs "out") "/lib/gvfs"))))
6442 (native-inputs
6443 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6444 ("gettext" ,gettext-minimal)
6445 ("gtk-doc" ,gtk-doc/stable)
6446 ("pkg-config" ,pkg-config)
6447 ("xsltproc" ,libxslt)))
6448 (inputs
6449 `(("avahi" ,avahi)
6450 ("docbook-xml" ,docbook-xml-4.2)
6451 ("docbook-xsl" ,docbook-xsl)
6452 ("dbus" ,dbus)
6453 ("elogind" ,elogind)
6454 ("fuse" ,fuse)
6455 ("gcr" ,gcr)
6456 ("glib" ,glib)
6457 ("gnome-online-accounts" ,gnome-online-accounts)
6458 ("libarchive" ,libarchive)
6459 ("libbluray" ,libbluray)
6460 ("libcap" ,libcap)
6461 ("libcdio-paranoia" ,libcdio-paranoia)
6462 ("libgcrypt" ,libgcrypt)
6463 ("libgdata" ,libgdata)
6464 ("libgphoto2" ,libgphoto2)
6465 ("libgudev" ,libgudev)
6466 ("libimobiledevice" ,libimobiledevice)
6467 ("libmtp" ,libmtp)
6468 ("libnfs" ,libnfs)
6469 ("libsecret" ,libsecret)
6470 ("libsmbclient" ,samba)
6471 ("libsoup" ,libsoup)
6472 ("libxml2" ,libxml2)
6473 ("openssh" ,openssh)
6474 ("polkit" ,polkit)
6475 ("udisks" ,udisks)))
6476 ;; CVE-2019-{12447,12448,12449} are fixed in the 1.40.2 release.
6477 (properties '((lint-hidden-cve . ("CVE-2019-12447"
6478 "CVE-2019-12448"
6479 "CVE-2019-12449"))))
6480 (home-page "https://wiki.gnome.org/gvfs/")
6481 (synopsis "Userspace virtual file system for GIO")
6482 (description
6483 "GVFS is a userspace virtual file system designed to work with the I/O
6484 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6485 to all applications using the GIO API. It also supports exposing the GVFS
6486 mounts to non-GIO applications using FUSE.
6487
6488 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6489 DAV, and others.")
6490 (license license:lgpl2.0+)))
6491
6492 (define-public gusb
6493 (package
6494 (name "gusb")
6495 (version "0.3.5")
6496 (source (origin
6497 (method git-fetch)
6498 (uri (git-reference
6499 (url "https://github.com/hughsie/libgusb")
6500 (commit version)))
6501 (file-name (git-file-name name version))
6502 (sha256
6503 (base32
6504 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6505 (build-system meson-build-system)
6506 (native-inputs
6507 `(("gobject-introspection" ,gobject-introspection)
6508 ("pkg-config" ,pkg-config)
6509 ("vala" ,vala)
6510 ("gtk-doc" ,gtk-doc/stable)))
6511 (propagated-inputs
6512 ;; Both of these are required by gusb.pc.
6513 `(("glib" ,glib)
6514 ("libusb" ,libusb)))
6515 (arguments
6516 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6517 (home-page "https://github.com/hughsie/libgusb")
6518 (synopsis "GLib binding for libusb1")
6519 (description
6520 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6521 asynchronous control, bulk and interrupt transfers with proper cancellation
6522 and integration into a mainloop. This makes it easy to integrate low level
6523 USB transfers with your high-level application or system daemon.")
6524 (license license:lgpl2.1+)))
6525
6526 (define-public simple-scan
6527 (package
6528 (name "simple-scan")
6529 (version "3.38.2")
6530 (source
6531 (origin
6532 (method url-fetch)
6533 (uri (string-append "mirror://gnome/sources/simple-scan/"
6534 (version-major+minor version) "/"
6535 "simple-scan-" version ".tar.xz"))
6536 (sha256
6537 (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8"))))
6538 (build-system meson-build-system)
6539 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6540 (arguments
6541 '(#:glib-or-gtk? #t))
6542 (inputs
6543 `(("gtk" ,gtk+)
6544 ("zlib" ,zlib)
6545 ("cairo" ,cairo)
6546 ("colord" ,colord)
6547 ("gdk-pixbuf" ,gdk-pixbuf)
6548 ("gusb" ,gusb)
6549 ("libsane" ,sane-backends)))
6550 (native-inputs
6551 `(("gettext" ,gettext-minimal)
6552 ("itstool" ,itstool)
6553 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6554 ("pkg-config" ,pkg-config)
6555 ("vala" ,vala)
6556 ("xmllint" ,libxml2)))
6557 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6558 (synopsis "Document and image scanner")
6559 (description
6560 "Document Scanner is an easy-to-use application that lets you connect your
6561 scanner and quickly capture images and documents in an appropriate format. It
6562 supports any scanner for which a suitable SANE driver is available, which is
6563 almost all of them.")
6564 (license license:gpl3+)))
6565
6566 (define-public eolie
6567 (package
6568 (name "eolie")
6569 (version "0.9.101")
6570 (source (origin
6571 (method url-fetch)
6572 (uri (string-append "https://adishatz.org/eolie/eolie-"
6573 version ".tar.xz"))
6574 (sha256
6575 (base32
6576 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6577 (build-system meson-build-system)
6578 (arguments
6579 `(#:glib-or-gtk? #t
6580 #:phases
6581 (modify-phases %standard-phases
6582 (add-after 'unpack 'skip-gtk-update-icon-cache
6583 ;; Don't create 'icon-theme.cache'.
6584 (lambda _
6585 (substitute* "meson_post_install.py"
6586 (("gtk-update-icon-cache") "true"))
6587 #t))
6588 (add-after 'wrap 'wrap-more
6589 (lambda* (#:key inputs outputs #:allow-other-keys)
6590 (let* ((out (assoc-ref outputs "out"))
6591 ;; These libraries must be on LD_LIBRARY_PATH.
6592 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6593 "atk" "gtk+" "gsettings-desktop-schemas"
6594 "gobject-introspection"))
6595 (path (string-join
6596 (map (lambda (lib)
6597 (string-append (assoc-ref inputs lib) "/lib"))
6598 libs)
6599 ":")))
6600 (wrap-program (string-append out "/bin/eolie")
6601 `("LD_LIBRARY_PATH" ":" prefix (,path))
6602 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
6603 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6604 #t)))))
6605 (native-inputs
6606 `(("intltool" ,intltool)
6607 ("itstool" ,itstool)
6608 ("pkg-config" ,pkg-config)
6609 ("python" ,python)
6610 ("glib:bin" ,glib "bin")))
6611 (inputs
6612 `(("gobject-introspection" ,gobject-introspection)
6613 ("glib-networking" ,glib-networking)
6614 ("cairo" ,cairo)
6615 ("gtk+" ,gtk+)
6616 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6617 ("python" ,python-wrapper)
6618 ("python-dateutil" ,python-dateutil)
6619 ("python-pyfxa" ,python-pyfxa)
6620 ("python-pygobject" ,python-pygobject)
6621 ("python-pycairo" ,python-pycairo)
6622 ("python-pycrypto" ,python-pycrypto)
6623 ("libhandy" ,libhandy)
6624 ("libsecret" ,libsecret)
6625 ("gtkspell3" ,gtkspell3)
6626 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6627 ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
6628 ("webkitgtk" ,webkitgtk)))
6629 (home-page "https://wiki.gnome.org/Apps/Eolie")
6630 (synopsis "Web browser for GNOME")
6631 (description
6632 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6633 a secret password store, an adblocker, and a modern UI.")
6634 (license license:gpl3+)))
6635
6636 (define-public epiphany
6637 (package
6638 (name "epiphany")
6639 (version "3.34.4")
6640 (source (origin
6641 (method url-fetch)
6642 (uri (string-append "mirror://gnome/sources/epiphany/"
6643 (version-major+minor version) "/"
6644 "epiphany-" version ".tar.xz"))
6645 (sha256
6646 (base32
6647 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6648
6649 (build-system meson-build-system)
6650 (arguments
6651 '(#:glib-or-gtk? #t
6652 #:phases
6653 (modify-phases %standard-phases
6654 (add-after 'unpack 'skip-gtk-update-icon-cache
6655 ;; Don't create 'icon-theme.cache'.
6656 (lambda _
6657 (substitute* "post_install.py"
6658 (("gtk-update-icon-cache") "true"))
6659 #t))
6660 (add-after 'unpack 'disable-failing-tests
6661 (lambda _
6662 (substitute* "tests/meson.build"
6663 ;; embed_shell fails, because webkitgtk apparently no longer supports
6664 ;; overriding the ftp schema
6665 ;; web_app_utils fails due to missing network access
6666 (("(embed_shell|web_app_utils)_test,")
6667 "find_program('sh'), args: ['-c', 'exit 77'],"))
6668 #t))
6669 (add-before 'check 'pre-check
6670 (lambda _
6671 ;; Tests require a running X server.
6672 (system "Xvfb :1 &")
6673 (setenv "DISPLAY" ":1")
6674 #t)))
6675 #:configure-flags
6676 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6677 (list (string-append "-Dc_link_args=-Wl,-rpath="
6678 (assoc-ref %outputs "out") "/lib/epiphany"))))
6679 (propagated-inputs
6680 `(("dconf" ,dconf)))
6681 (native-inputs
6682 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6683 ("glib:bin" ,glib "bin") ; for glib-mkenums
6684 ("intltool" ,intltool)
6685 ("itstool" ,itstool)
6686 ("pkg-config" ,pkg-config)
6687 ("xmllint" ,libxml2)
6688 ("xorg-server" ,xorg-server-for-tests)))
6689 (inputs
6690 `(("avahi" ,avahi)
6691 ("gcr" ,gcr)
6692 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6693 ("glib-networking" ,glib-networking)
6694 ("gnome-desktop" ,gnome-desktop)
6695 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6696 ("json-glib" ,json-glib)
6697 ("iso-codes" ,iso-codes)
6698 ("libdazzle" ,libdazzle)
6699 ("libnotify" ,libnotify)
6700 ("libsecret" ,libsecret)
6701 ("libxslt" ,libxslt)
6702 ("nettle" ,nettle) ; for hogweed
6703 ("sqlite" ,sqlite)
6704 ("webkitgtk" ,webkitgtk)))
6705 (home-page "https://wiki.gnome.org/Apps/Web")
6706 (synopsis "GNOME web browser")
6707 (description
6708 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6709 principles are simplicity and standards compliance.")
6710 (license license:gpl2+)))
6711
6712 (define-public d-feet
6713 (package
6714 (name "d-feet")
6715 (version "0.3.14")
6716 (source (origin
6717 (method url-fetch)
6718 (uri (string-append "mirror://gnome/sources/" name "/"
6719 (version-major+minor version) "/"
6720 name "-" version ".tar.xz"))
6721 (sha256
6722 (base32
6723 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6724 (build-system glib-or-gtk-build-system)
6725 (arguments
6726 '(#:out-of-source? #f ; tests need to run in the source directory.
6727 #:phases
6728 (modify-phases %standard-phases
6729 (add-before
6730 'check 'pre-check
6731 (lambda _
6732 ;; The test suite requires a running X server.
6733 (system "Xvfb :1 &")
6734 (setenv "DISPLAY" ":1")
6735 ;; Don't fail on missing '/etc/machine-id'.
6736 (setenv "DBUS_FATAL_WARNINGS" "0")
6737 ;; tests.py and window.py don't meet E402:
6738 ;; E402 module level import not at top of file
6739 (substitute* "src/tests/Makefile"
6740 (("--ignore=E123") "--ignore=E123,E402"))
6741 #t))
6742 (add-after
6743 'install 'wrap-program
6744 (lambda* (#:key outputs #:allow-other-keys)
6745 (let ((prog (string-append (assoc-ref outputs "out")
6746 "/bin/d-feet")))
6747 (wrap-program prog
6748 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
6749 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6750 #t))))))
6751 (native-inputs
6752 `(("intltool" ,intltool)
6753 ("itstool" ,itstool)
6754 ("pkg-config" ,pkg-config)
6755 ("python-pep8" ,python-pep8)
6756 ("xmllint" ,libxml2)
6757 ("xorg-server" ,xorg-server-for-tests)))
6758 (inputs
6759 `(("gobject-introspection" ,gobject-introspection)
6760 ("gtk+" ,gtk+)
6761 ("python" ,python-wrapper)
6762 ("hicolor-icon-theme" ,hicolor-icon-theme)
6763 ("python-pygobject" ,python-pygobject)))
6764 (home-page "https://wiki.gnome.org/Apps/DFeet")
6765 (synopsis "D-Bus debugger")
6766 (description
6767 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6768 of running programs and invoke methods on those interfaces.")
6769 (license license:gpl2+)))
6770
6771 (define-public yelp-xsl
6772 (package
6773 (name "yelp-xsl")
6774 (version "3.34.2")
6775 (source
6776 (origin
6777 (method url-fetch)
6778 (uri
6779 (string-append "mirror://gnome/sources/" name "/"
6780 (version-major+minor version) "/"
6781 name "-" version ".tar.xz"))
6782 (sha256
6783 (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6784 (build-system gnu-build-system)
6785 (arguments
6786 `(#:configure-flags
6787 (list
6788 "--enable-doc")))
6789 (native-inputs
6790 `(("ducktype" ,mallard-ducktype)
6791 ("gettext" ,gettext-minimal)
6792 ("intltool" ,intltool)
6793 ("itstool" ,itstool)
6794 ("xmllint" ,libxml2)
6795 ("xsltproc" ,libxslt)))
6796 (synopsis "XSL stylesheets for Yelp")
6797 (description "Yelp-XSL is a collection of programs and data files to help
6798 you build, maintain, and distribute documentation. It provides XSLT stylesheets
6799 that can be built upon for help viewers and publishing systems. These
6800 stylesheets output JavaScript and CSS content, and reference images
6801 provided by yelp-xsl. It also redistributes copies of the jQuery and
6802 jQuery.Syntax JavaScript libraries.")
6803 (home-page "https://wiki.gnome.org/Apps/Yelp")
6804 (license
6805 (list
6806 ;; XSLT
6807 license:gpl2+
6808 ;; Images
6809 license:lgpl2.1+
6810 ;; JavaScript
6811 license:expat))))
6812
6813 (define-public yelp
6814 (package
6815 (name "yelp")
6816 (version "3.32.2")
6817 (source (origin
6818 (method url-fetch)
6819 (uri (string-append "mirror://gnome/sources/" name "/"
6820 (version-major+minor version) "/"
6821 name "-" version ".tar.xz"))
6822 (sha256
6823 (base32
6824 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6825 (build-system glib-or-gtk-build-system)
6826 (native-inputs
6827 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6828 ("intltool" ,intltool)
6829 ("itstool" ,itstool)
6830 ("pkg-config" ,pkg-config)))
6831 (propagated-inputs
6832 `(("dconf" ,dconf)))
6833 (inputs
6834 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6835 ("libxslt" ,libxslt)
6836 ("sqlite" ,sqlite)
6837 ("webkitgtk" ,webkitgtk)
6838 ("yelp-xsl" ,yelp-xsl)))
6839 (home-page "https://wiki.gnome.org/Apps/Yelp")
6840 (synopsis "GNOME help browser")
6841 (description
6842 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6843 man, info, and HTML documents. It can locate documents according to the
6844 freedesktop.org help system specification.")
6845 (license license:gpl2+)))
6846
6847 (define-public yelp-tools
6848 (package
6849 (name "yelp-tools")
6850 (version "3.32.2")
6851 (source
6852 (origin
6853 (method url-fetch)
6854 (uri
6855 (string-append "mirror://gnome/sources/" name "/"
6856 (version-major+minor version) "/"
6857 name "-" version ".tar.xz"))
6858 (sha256
6859 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6860 (build-system gnu-build-system)
6861 (native-inputs
6862 `(("pkg-config" ,pkg-config)))
6863 (inputs
6864 `(("yelp-xsl" ,yelp-xsl)))
6865 (propagated-inputs
6866 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6867 `(("itstool" ,itstool)
6868 ("xmllint" ,libxml2)
6869 ("xsltproc" ,libxslt)))
6870 (synopsis "Yelp documentation tools")
6871 (description
6872 "Yelp-tools is a collection of scripts and build utilities to help create,
6873 manage, and publish documentation for Yelp and the web. Most of the heavy
6874 lifting is done by packages like yelp-xsl and itstool. This package just
6875 wraps things up in a developer-friendly way.")
6876 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6877 (license license:gpl2+)))
6878
6879 (define-public libgee
6880 (package
6881 (name "libgee")
6882 (version "0.20.3")
6883 (source (origin
6884 (method url-fetch)
6885 (uri (string-append "mirror://gnome/sources/libgee/"
6886 (version-major+minor version) "/"
6887 "libgee-" version ".tar.xz"))
6888 (sha256
6889 (base32
6890 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6891 (build-system gnu-build-system)
6892 (arguments
6893 `(#:phases
6894 (modify-phases %standard-phases
6895 (add-after 'unpack 'fix-introspection-install-dir
6896 (lambda* (#:key outputs #:allow-other-keys)
6897 (let ((out (assoc-ref outputs "out")))
6898 (substitute* "gee/Makefile.in"
6899 (("@INTROSPECTION_GIRDIR@")
6900 (string-append out "/share/gir-1.0/"))
6901 (("@INTROSPECTION_TYPELIBDIR@")
6902 (string-append out "/lib/girepository-1.0/")))))))))
6903 (native-inputs
6904 `(("glib" ,glib "bin")
6905 ("pkg-config" ,pkg-config)))
6906 (inputs
6907 `(("glib" ,glib)
6908 ("gobject-introspection" ,gobject-introspection)))
6909 (home-page "https://wiki.gnome.org/Projects/Libgee")
6910 (synopsis "GObject collection library")
6911 (description
6912 "Libgee is a utility library providing GObject-based interfaces and
6913 classes for commonly used data structures.")
6914 (license license:lgpl2.1+)))
6915
6916 (define-public gexiv2
6917 (package
6918 (name "gexiv2")
6919 (version "0.12.2")
6920 (source (origin
6921 (method url-fetch)
6922 (uri (string-append "mirror://gnome/sources/" name "/"
6923 (version-major+minor version) "/"
6924 name "-" version ".tar.xz"))
6925 (sha256
6926 (base32
6927 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
6928 (build-system meson-build-system)
6929 (native-inputs
6930 `(("gcr" ,gcr)
6931 ("glib" ,glib "bin")
6932 ("pkg-config" ,pkg-config)
6933 ("vala" ,vala)))
6934 (propagated-inputs
6935 ;; Listed in "Requires" section of gexiv2.pc
6936 `(("exiv2" ,exiv2)))
6937 (inputs
6938 `(("glib" ,glib)
6939 ("gobject-introspection" ,gobject-introspection)))
6940 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6941 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6942 (description
6943 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6944 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6945 metadata in photo and video files of various formats.")
6946 (license license:gpl2+)))
6947
6948 (define-public shotwell
6949 (package
6950 (name "shotwell")
6951 (version "0.30.12")
6952 (source (origin
6953 (method url-fetch)
6954 (uri (string-append "mirror://gnome/sources/shotwell/"
6955 (version-major+minor version) "/"
6956 "shotwell-" version ".tar.xz"))
6957 (sha256
6958 (base32
6959 "1h5crjq59lqi8f8mdkadzi8pc3i9i2ik4lsx2nrhzq486fzdfhw6"))))
6960 (build-system meson-build-system)
6961 (arguments
6962 '(#:glib-or-gtk? #t
6963 #:phases
6964 (modify-phases %standard-phases
6965 (add-after 'unpack 'skip-gtk-update-icon-cache
6966 (lambda _
6967 (substitute* "build-aux/meson/postinstall.py"
6968 (("gtk-update-icon-cache") (which "true"))
6969 (("update-desktop-database") (which "true")))
6970 #t)))))
6971 (propagated-inputs
6972 `(("dconf" ,dconf)))
6973 (native-inputs
6974 `(("gettext" ,gettext-minimal)
6975 ("glib:bin" ,glib "bin")
6976 ("itstool" ,itstool)
6977 ("pkg-config" ,pkg-config)
6978 ("vala" ,vala)))
6979 (inputs
6980 `(("gcr" ,gcr)
6981 ("gexiv2" ,gexiv2)
6982 ("gst-plugins-base" ,gst-plugins-base)
6983 ("gstreamer" ,gstreamer)
6984 ("json-glib" ,json-glib)
6985 ("libgdata" ,libgdata)
6986 ("libgee" ,libgee)
6987 ("libgphoto2" ,libgphoto2)
6988 ("libgudev" ,libgudev)
6989 ("libraw" ,libraw)
6990 ("libsoup" ,libsoup)
6991 ("libxml2" ,libxml2)
6992 ("sqlite" ,sqlite)
6993 ("webkitgtk" ,webkitgtk)))
6994 (home-page "https://wiki.gnome.org/Apps/Shotwell")
6995 (synopsis "Photo manager for GNOME 3")
6996 (description
6997 "Shotwell is a digital photo manager designed for the GNOME desktop
6998 environment. It allows you to import photos from disk or camera, organize
6999 them by keywords and events, view them in full-window or fullscreen mode, and
7000 share them with others via social networking and more.")
7001 (license license:lgpl2.1+)))
7002
7003 (define-public file-roller
7004 (package
7005 (name "file-roller")
7006 (version "3.38.0")
7007 (source (origin
7008 (method url-fetch)
7009 (uri (string-append "mirror://gnome/sources/file-roller/"
7010 (version-major+minor version) "/"
7011 "file-roller-" version ".tar.xz"))
7012 (sha256
7013 (base32
7014 "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj"))))
7015 (build-system meson-build-system)
7016 (native-inputs
7017 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7018 ("intltool" ,intltool)
7019 ("itstool" ,itstool)
7020 ("pkg-config" ,pkg-config)
7021 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7022 ("glib:bin" ,glib "bin")))
7023 ;; TODO: Add libnautilus.
7024 (inputs
7025 `(("gtk+" ,gtk+)
7026 ("gdk-pixbuf" ,gdk-pixbuf)
7027 ("json-glib" ,json-glib)
7028 ("libarchive" ,libarchive)
7029 ("libnotify" ,libnotify)
7030 ("nettle" ,nettle)
7031 ("libxml2" ,libxml2)))
7032 (synopsis "Graphical archive manager for GNOME")
7033 (description "File Roller is an archive manager for the GNOME desktop
7034 environment that allows users to view, unpack, and create compressed archives
7035 such as gzip tarballs.")
7036 (home-page "http://fileroller.sourceforge.net/")
7037 (license license:gpl2+)))
7038
7039 (define-public gnome-session
7040 (package
7041 (name "gnome-session")
7042 (version "3.34.2")
7043 (source (origin
7044 (method url-fetch)
7045 (uri (string-append "mirror://gnome/sources/" name "/"
7046 (version-major+minor version) "/"
7047 name "-" version ".tar.xz"))
7048 (sha256
7049 (base32
7050 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
7051 (arguments
7052 '(#:glib-or-gtk? #t
7053 #:phases
7054 (modify-phases %standard-phases
7055 (add-before 'configure 'pre-configure
7056 (lambda* (#:key outputs #:allow-other-keys)
7057 ;; Use elogind instead of systemd.
7058 (substitute* "meson.build"
7059 (("libsystemd-login") "libelogind")
7060 (("and libsystemd_daemon_dep.found.*") ","))
7061 (substitute* "gnome-session/gsm-systemd.c"
7062 (("#include <systemd/sd-login.h>")
7063 "#include <elogind/sd-login.h>"))
7064 ;; Remove uses of the systemd daemon.
7065 (substitute* "gnome-session/gsm-autostart-app.c"
7066 (("#ifdef HAVE_SYSTEMD") "#if 0"))
7067 #t))
7068 (add-after 'install 'wrap-gnome-session
7069 (lambda* (#:key inputs outputs #:allow-other-keys)
7070 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7071 (let ((glib (assoc-ref inputs "glib:bin"))
7072 (out (assoc-ref outputs "out")))
7073 (wrap-program (string-append out "/bin/gnome-session")
7074 `("PATH" ":" prefix (,(string-append glib "/bin"))))
7075 #t))))
7076
7077 #:configure-flags
7078 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7079 "-Dman=false" ; FIXME: disabled because of docbook validation error
7080 "-Dsystemd_journal=false")))
7081 (build-system meson-build-system)
7082 (native-inputs
7083 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7084 ("pkg-config" ,pkg-config)
7085 ("intltool" ,intltool)
7086 ("xsltproc" ,libxslt)
7087 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
7088 ("docbook-xsl" ,docbook-xsl)
7089 ("docbook-xml" ,docbook-xml)
7090 ("xmlto" ,xmlto)))
7091 (inputs
7092 `(("elogind" ,elogind)
7093 ("gnome-desktop" ,gnome-desktop)
7094 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7095 ("gtk+" ,gtk+)
7096 ("json-glib" ,json-glib)
7097 ("libsm" ,libsm)
7098 ("libxcomposite" ,libxcomposite)
7099 ("libxtst" ,libxtst)
7100 ("mesa" ,mesa)
7101 ("upower" ,upower)
7102 ("xtrans" ,xtrans)))
7103 (synopsis "Session manager for GNOME")
7104 (description
7105 "This package contains the GNOME session manager, as well as a
7106 configuration program to choose applications starting on login.")
7107 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7108 (license license:gpl2+)))
7109
7110 (define-public gjs
7111 (package
7112 (name "gjs")
7113 (version "1.68.2")
7114 (source (origin
7115 (method url-fetch)
7116 (uri (string-append "mirror://gnome/sources/" name "/"
7117 (version-major+minor version) "/"
7118 name "-" version ".tar.xz"))
7119 (sha256
7120 (base32
7121 "0c7fclm53v41n5vfndymp35fbh1x218lrk65iqrk1wc2lsnh5zvh"))
7122 (modules '((guix build utils)))
7123 (snippet
7124 '(begin
7125 (substitute* "installed-tests/scripts/testCommandLine.sh"
7126 (("Valentín") "")
7127 (("☭") ""))))))
7128 (build-system meson-build-system)
7129 (arguments
7130 '(#:configure-flags '("-Dinstalled_tests=false")
7131 #:phases
7132 (modify-phases %standard-phases
7133 (add-before 'check 'pre-check
7134 (lambda _
7135 ;; The test suite requires a running X server.
7136 (system "Xvfb :1 &")
7137 (setenv "DISPLAY" ":1")
7138
7139 ;; For the missing /etc/machine-id.
7140 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
7141 (native-inputs
7142 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
7143 ("pkg-config" ,pkg-config)
7144 ("xmllint" ,libxml2)
7145 ;; For testing
7146 ("dbus-launch" ,dbus)
7147 ("dconf" ,dconf) ; required to properly store settings
7148 ("uuidgen" ,util-linux)
7149 ("xvfb" ,xorg-server-for-tests)))
7150 (propagated-inputs
7151 ;; These are all in the Requires.private field of gjs-1.0.pc.
7152 `(("cairo" ,cairo)
7153 ("gobject-introspection" ,gobject-introspection)
7154 ("mozjs" ,mozjs-78)))
7155 (inputs
7156 `(("gtk+" ,gtk+)
7157 ("readline" ,readline)))
7158 (synopsis "Javascript bindings for GNOME")
7159 (home-page "https://live.gnome.org/Gjs")
7160 (description
7161 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7162 javascript engine and the GObject introspection framework.")
7163 (license license:gpl2+)))
7164
7165 (define-public gedit
7166 (package
7167 (name "gedit")
7168 (version "3.34.1")
7169 (source (origin
7170 (method url-fetch)
7171 (uri (string-append "mirror://gnome/sources/" name "/"
7172 (version-major+minor version) "/"
7173 name "-" version ".tar.xz"))
7174 (sha256
7175 (base32
7176 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7177 (build-system meson-build-system)
7178 (arguments
7179 `(#:glib-or-gtk? #t
7180 #:configure-flags
7181 ;; Otherwise, the RUNPATH will lack the final path component.
7182 (list (string-append "-Dc_link_args=-Wl,-rpath="
7183 (assoc-ref %outputs "out") "/lib/gedit"))
7184
7185 ;; XXX: Generated .h files are sometimes used before being built.
7186 #:parallel-build? #f
7187
7188 #:phases
7189 (modify-phases %standard-phases
7190 (add-after 'unpack 'skip-gtk-update-icon-cache
7191 ;; Don't create 'icon-theme.cache'.
7192 (lambda _
7193 (substitute* "build-aux/meson/post_install.py"
7194 (("gtk-update-icon-cache") (which "true")))
7195 #t))
7196 (add-after 'unpack 'patch-libgd-fetch
7197 (lambda* (#:key inputs #:allow-other-keys)
7198 (let ((libgd (assoc-ref inputs "libgd")))
7199 ;; Calling git is unnecessary because libgd is fetched as a
7200 ;; native input to this package.
7201 (substitute* "meson.build"
7202 ((".*git.*") ""))
7203 (copy-recursively libgd "subprojects/libgd")
7204 #t)))
7205 (add-after 'install 'wrap-gedit
7206 (lambda* (#:key inputs outputs #:allow-other-keys)
7207 (let ((out (assoc-ref outputs "out"))
7208 (gtksourceview (assoc-ref inputs "gtksourceview"))
7209 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7210 (python-path (getenv "GUIX_PYTHONPATH")))
7211 (wrap-program (string-append out "/bin/gedit")
7212 ;; For plugins.
7213 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7214 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
7215 ;; For language-specs.
7216 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7217 "/share")))))
7218 #t)))))
7219 (propagated-inputs
7220 `(("dconf" ,dconf)))
7221 (native-inputs
7222 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7223 ("intltool" ,intltool)
7224 ("itstool" ,itstool)
7225 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7226 ("gobject-introspection" ,gobject-introspection)
7227 ("libgd"
7228 ,(origin
7229 (method git-fetch)
7230 (uri (git-reference
7231 (url "https://gitlab.gnome.org/GNOME/libgd")
7232 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7233 (file-name (git-file-name "libgd" version))
7234 (sha256
7235 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7236 ("pkg-config" ,pkg-config)))
7237 (inputs
7238 `(("glib" ,glib)
7239 ("gspell" ,gspell)
7240 ("gtk+" ,gtk+)
7241 ("gtksourceview" ,gtksourceview)
7242 ("libpeas" ,libpeas)
7243 ("libxml2" ,libxml2)
7244 ("iso-codes" ,iso-codes)
7245 ("python-pygobject" ,python-pygobject)
7246 ("python" ,python)
7247 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7248 ("libx11" ,libx11)
7249 ("vala" ,vala)
7250 ("adwaita-icon-theme" ,adwaita-icon-theme)
7251 ("libsoup" ,libsoup)
7252 ("gnome-desktop" ,gnome-desktop)))
7253 (home-page "https://wiki.gnome.org/Apps/Gedit")
7254 (synopsis "GNOME text editor")
7255 (description "While aiming at simplicity and ease of use, gedit is a
7256 powerful general purpose text editor.")
7257 (license license:gpl2+)))
7258
7259 (define-public zenity
7260 (package
7261 (name "zenity")
7262 (version "3.32.0")
7263 (source (origin
7264 (method url-fetch)
7265 (uri (string-append "mirror://gnome/sources/zenity/"
7266 (version-major+minor version) "/"
7267 "zenity-" version ".tar.xz"))
7268 (sha256
7269 (base32
7270 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7271 (build-system gnu-build-system)
7272 (native-inputs
7273 `(("gettext" ,gettext-minimal)
7274 ("itstool" ,itstool)
7275 ("pkg-config" ,pkg-config)))
7276 (inputs
7277 `(("libnotify" ,libnotify)
7278 ("webkitgtk" ,webkitgtk)))
7279 (synopsis "Display graphical dialog boxes from shell scripts")
7280 (home-page "https://www.gnome.org")
7281 (description
7282 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7283 to display dialog boxes from the commandline and shell scripts.")
7284 (license license:lgpl2.0+)))
7285
7286 (define-public mutter
7287 (package
7288 (name "mutter")
7289 (version "3.34.2")
7290 (source (origin
7291 (method url-fetch)
7292 (uri (string-append "mirror://gnome/sources/" name "/"
7293 (version-major+minor version) "/"
7294 name "-" version ".tar.xz"))
7295 (sha256
7296 (base32
7297 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
7298 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7299 ;; versions of cogl and clutter. As a result, many of the inputs,
7300 ;; propagated-inputs, and configure flags used in cogl and clutter are
7301 ;; needed here as well.
7302 (build-system meson-build-system)
7303 (arguments
7304 '(;; XXX: All mutter tests fail with the following error:
7305 ;; Settings schema 'org.gnome.mutter' is not installed
7306 #:tests? #f
7307 #:glib-or-gtk? #t
7308 #:configure-flags
7309 ;; TODO: Enable profiler when Sysprof is packaged.
7310 (list "-Dprofiler=false"
7311 ;; Otherwise, the RUNPATH will lack the final path component.
7312 (string-append "-Dc_link_args=-Wl,-rpath="
7313 (assoc-ref %outputs "out") "/lib:"
7314 (assoc-ref %outputs "out") "/lib/mutter-5")
7315
7316 ;; The following flags are needed for the bundled clutter
7317 (string-append "-Dxwayland_path="
7318 (assoc-ref %build-inputs "xorg-server-xwayland")
7319 "/bin/Xwayland")
7320
7321 ;; the remaining flags are needed for the bundled cogl
7322 (string-append "-Dopengl_libname="
7323 (assoc-ref %build-inputs "mesa")
7324 "/lib/libGL.so"))
7325 #:phases (modify-phases %standard-phases
7326 (add-after 'unpack 'fix-build-with-mesa-20
7327 (lambda _
7328 ;; Mimic upstream commit a444a4c5f58ea516ad for
7329 ;; compatibility with Mesa 20. Remove for 3.36.
7330 (substitute* '("src/backends/meta-egl-ext.h"
7331 "src/backends/meta-egl.c"
7332 "src/backends/meta-egl.h")
7333 (("#include <EGL/eglext\\.h>" all)
7334 (string-append all "\n#include <EGL/eglmesaext.h>")))
7335 (substitute* "cogl/cogl/meson.build"
7336 (("#include <EGL/eglext\\.h>" all)
7337 (string-append all "\\n#include <EGL/eglmesaext.h>")))
7338 #t)))))
7339 (native-inputs
7340 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7341 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7342 ("gobject-introspection" ,gobject-introspection)
7343 ("intltool" ,intltool)
7344 ("pkg-config" ,pkg-config)
7345 ("xorg-server" ,xorg-server-for-tests)
7346 ;; For git build
7347 ("autoconf" ,autoconf)
7348 ("automake" ,automake)
7349 ("libtool" ,libtool)))
7350 (propagated-inputs
7351 `(;; libmutter.pc refers to these:
7352 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7353 ("gtk+" ,gtk+)
7354 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7355 ("atk" ,atk)
7356 ("cairo" ,cairo)
7357 ("gdk-pixbuf" ,gdk-pixbuf)
7358 ("glib" ,glib)
7359 ("json-glib" ,json-glib)
7360 ("libinput" ,libinput)
7361 ("libx11" ,libx11)
7362 ("libxcomposite" ,libxcomposite)
7363 ("libxdamage" ,libxdamage)
7364 ("libxext" ,libxext)
7365 ("libxfixes" ,libxfixes)
7366 ("libxkbcommon" ,libxkbcommon)
7367 ("libxrandr" ,libxrandr)
7368 ("mesa" ,mesa)
7369 ("pango" ,pango)
7370 ("udev" ,eudev)
7371 ("xinput" ,xinput)))
7372 (inputs
7373 `(("elogind" ,elogind)
7374 ("gnome-desktop" ,gnome-desktop)
7375 ("gnome-settings-daemon" ,gnome-settings-daemon)
7376 ("libcanberra-gtk" ,libcanberra)
7377 ("libgudev" ,libgudev)
7378 ("libice" ,libice)
7379 ("libsm" ,libsm)
7380 ("libwacom" ,libwacom)
7381 ("libxkbfile" ,libxkbfile)
7382 ("libxrandr" ,libxrandr)
7383 ("libxtst" ,libxtst)
7384 ("pipewire" ,pipewire)
7385 ("startup-notification" ,startup-notification)
7386 ("upower-glib" ,upower)
7387 ("xkeyboard-config" ,xkeyboard-config)
7388 ("xorg-server-xwayland" ,xorg-server-xwayland)
7389 ("zenity" ,zenity)))
7390 (synopsis "Window and compositing manager")
7391 (home-page "https://www.gnome.org")
7392 (description
7393 "Mutter is a window and compositing manager that displays and manages your
7394 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7395 Clutter toolkit with solid window-management logic inherited from the Metacity
7396 window manager.")
7397 (license license:gpl2+)))
7398
7399 (define-public gnome-online-accounts
7400 (package
7401 (name "gnome-online-accounts")
7402 (version "3.36.0")
7403 (source (origin
7404 (method url-fetch)
7405 (uri (string-append "mirror://gnome/sources/" name "/"
7406 (version-major+minor version) "/"
7407 name "-" version ".tar.xz"))
7408 (sha256
7409 (base32
7410 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7411 (outputs '("out" "lib"))
7412 (build-system glib-or-gtk-build-system)
7413 (arguments
7414 `(#:configure-flags
7415 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7416 #:phases
7417 (modify-phases %standard-phases
7418 (add-before 'configure 'patch-libgoa-output
7419 (lambda* (#:key outputs #:allow-other-keys)
7420 (let ((lib (assoc-ref outputs "lib")))
7421 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7422 (("@prefix@") lib)
7423 (("@exec_prefix@") lib)
7424 (("@libdir@") (string-append lib "/lib"))
7425 (("@includedir@") (string-append lib "/include"))
7426 (("@datadir@") (string-append lib "/share")))
7427 ;; Make sure gobject-introspection knows about the output
7428 ;; too (see <https://bugs.gnu.org/36535>).
7429 (setenv "outputs" "out lib")
7430 #t))))))
7431 (native-inputs
7432 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7433 ("gobject-introspection" ,gobject-introspection)
7434 ("intltool" ,intltool)
7435 ("pkg-config" ,pkg-config)
7436 ("vala" ,vala)
7437 ("xsltproc" ,libxslt)))
7438 (propagated-inputs
7439 `(("glib" ,glib) ; required by goa-1.0.pc
7440 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7441 (inputs
7442 `(("docbook-xsl" ,docbook-xsl)
7443 ("json-glib" ,json-glib)
7444 ("libsecret" ,libsecret)
7445 ("rest" ,rest)
7446 ("webkitgtk" ,webkitgtk)))
7447 (synopsis "Single sign-on framework for GNOME")
7448 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7449 (description
7450 "GNOME Online Accounts provides interfaces so that applications and
7451 libraries in GNOME can access the user's online accounts. It has providers for
7452 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7453 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7454 (license license:lgpl2.0+)))
7455
7456 (define-public evolution-data-server
7457 (package
7458 (name "evolution-data-server")
7459 (version "3.34.2")
7460 (source
7461 (origin
7462 (method url-fetch)
7463 (uri (string-append "mirror://gnome/sources/" name "/"
7464 (version-major+minor version) "/"
7465 name "-" version ".tar.xz"))
7466 (patches
7467 (search-patches "evolution-data-server-locales.patch"
7468 "evolution-data-server-libical-compat.patch"
7469 "evolution-data-server-CVE-2020-14928.patch"
7470 "evolution-data-server-CVE-2020-16117.patch"
7471 "evolution-data-server-printableoptions.patch"))
7472 (sha256
7473 (base32 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7474 (build-system cmake-build-system)
7475 (arguments
7476 '(#:configure-flags
7477 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7478 (runpaths (map (lambda (s)
7479 (string-append lib "/evolution-data-server/" s))
7480 '("addressbook-backends" "calendar-backends"
7481 "camel-providers" "credential-modules"
7482 "registry-modules"))))
7483 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7484 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7485 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7486 "-DENABLE_VALA_BINDINGS=ON"
7487 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7488 (string-append lib "/evolution-data-server;")
7489 (string-join runpaths ";"))
7490 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7491 #:phases
7492 (modify-phases %standard-phases
7493 (add-after 'unpack 'disable-failing-tests
7494 (lambda _
7495 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7496 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7497 (delete-file-recursively "tests/book-migration")
7498 (substitute* "tests/CMakeLists.txt"
7499 (("add_subdirectory\\(book-migration\\)") ""))
7500 #t))
7501 (add-after 'unpack 'patch-paths
7502 (lambda _
7503 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7504 "tests/libedata-book/data-test-utils.c"
7505 "tests/libedata-book/test-book-cache-utils.c"
7506 "tests/libedata-cal/test-cal-cache-utils.c")
7507 (("/bin/rm") (which "rm")))
7508 #t))
7509 (add-before 'configure 'dont-override-rpath
7510 (lambda _
7511 (substitute* "CMakeLists.txt"
7512 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7513 ;; Remove it so the configure flag is respected.
7514 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7515 #t)))))
7516 (native-inputs
7517 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7518 ("gobject-introspection" ,gobject-introspection)
7519 ("gperf" ,gperf)
7520 ("intltool" ,intltool)
7521 ("pkg-config" ,pkg-config)
7522 ("vala" ,vala)
7523 ("python" ,python-wrapper)))
7524 (propagated-inputs
7525 ;; These are all in the Requires field of .pc files.
7526 `(("gtk+" ,gtk+)
7527 ("libical" ,libical)
7528 ("libsecret" ,libsecret)
7529 ("libsoup" ,libsoup)
7530 ("nss" ,nss)
7531 ("sqlite" ,sqlite)))
7532 (inputs
7533 `(("bdb" ,bdb)
7534 ("gcr" ,gcr)
7535 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7536 ("json-glib" ,json-glib)
7537 ("libcanberra" ,libcanberra)
7538 ("libgweather" ,libgweather)
7539 ("mit-krb5" ,mit-krb5)
7540 ("openldap" ,openldap)
7541 ("webkitgtk" ,webkitgtk)))
7542 (synopsis "Store address books and calendars")
7543 (home-page "https://wiki.gnome.org/Apps/Evolution")
7544 (description
7545 "This package provides a unified backend for programs that work with
7546 contacts, tasks, and calendar information. It was originally developed for
7547 Evolution (hence the name), but is now used by other packages as well.")
7548 (license license:lgpl2.0)))
7549
7550 (define-public caribou
7551 (package
7552 (name "caribou")
7553 (version "0.4.21")
7554 (source (origin
7555 (method url-fetch)
7556 (uri (string-append "mirror://gnome/sources/" name "/"
7557 (version-major+minor version) "/"
7558 name "-" version ".tar.xz"))
7559 (sha256
7560 (base32
7561 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7562 (build-system glib-or-gtk-build-system)
7563 (arguments
7564 '(#:phases
7565 (modify-phases %standard-phases
7566 (add-before
7567 'build 'pre-build
7568 (lambda* (#:key outputs #:allow-other-keys)
7569 (let ((out (assoc-ref outputs "out")))
7570 ;; Use absolute shared library path in Caribou-1.0.typelib.
7571 (substitute* "libcaribou/Makefile"
7572 (("--shared-library=libcaribou.so")
7573 (string-append "--shared-library="
7574 out "/lib/libcaribou.so")))
7575 #t)))
7576 (add-after 'install 'wrap-programs
7577 (lambda* (#:key outputs #:allow-other-keys)
7578 (let* ((out (assoc-ref outputs "out"))
7579 (python-path (getenv "GUIX_PYTHONPATH"))
7580 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7581 (for-each
7582 (lambda (prog)
7583 (wrap-program prog
7584 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
7585 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7586 (list (string-append out "/bin/caribou-preferences")
7587 (string-append out "/libexec/antler-keyboard"))))
7588 #t)))))
7589 (native-inputs
7590 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7591 ("gobject-introspection" ,gobject-introspection)
7592 ("intltool" ,intltool)
7593 ("pkg-config" ,pkg-config)
7594 ("python" ,python)
7595 ("vala" ,vala)
7596 ("xsltproc" ,libxslt)))
7597 (propagated-inputs
7598 ;; caribou-1.0.pc refers to all these.
7599 `(("libgee" ,libgee)
7600 ("libxklavier" ,libxklavier)
7601 ("libxtst" ,libxtst)
7602 ("gtk+" ,gtk+)))
7603 (inputs
7604 `(("clutter" ,clutter)
7605 ("dconf" ,dconf)
7606 ("gtk+-2" ,gtk+-2)
7607 ("python-pygobject" ,python-pygobject)))
7608 (synopsis "Text entry and UI navigation application")
7609 (home-page "https://wiki.gnome.org/Projects/Caribou")
7610 (description
7611 "Caribou is an input assistive technology intended for switch and pointer
7612 users.")
7613 (license license:lgpl2.1)))
7614
7615 (define-public network-manager
7616 (package
7617 (name "network-manager")
7618 (version "1.24.0")
7619 (source (origin
7620 (method url-fetch)
7621 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7622 (version-major+minor version) "/"
7623 "NetworkManager-" version ".tar.xz"))
7624 (patches (search-patches "network-manager-plugin-path.patch"))
7625 (sha256
7626 (base32
7627 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7628 (modules '((guix build utils)))
7629 (snippet
7630 '(begin
7631 (substitute* "src/devices/wwan/nm-modem-manager.c"
7632 (("systemd") "elogind"))
7633 #t))))
7634 (build-system meson-build-system)
7635 (outputs '("out"
7636 "doc")) ; 8 MiB of gtk-doc HTML
7637 (arguments
7638 `(#:configure-flags
7639 (let ((out (assoc-ref %outputs "out"))
7640 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7641 "/sbin/dhclient")))
7642 (list
7643 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7644 ;; component.
7645 (string-append "-Dc_link_args=-Wl,-rpath="
7646 out "/lib:"
7647 out "/lib/NetworkManager/" ,version)
7648 "-Dsystemd_journal=false"
7649 "-Dsession_tracking=elogind"
7650 "-Dsuspend_resume=elogind"
7651 "-Dsystemdsystemunitdir=no"
7652 "-Dsession_tracking_consolekit=false"
7653 "-Ddhcpcd=no"
7654 "-Ddhcpcanon=no"
7655 "-Dcrypto=gnutls"
7656 "-Diwd=true"
7657 "-Dlibaudit=yes"
7658 "-Dqt=false"
7659 "-Ddocs=true"
7660 "--sysconfdir=/etc"
7661 "--localstatedir=/var"
7662 (string-append "-Dudev_dir="
7663 out "/lib/udev")
7664 (string-append "-Ddbus_conf_dir="
7665 out "/etc/dbus-1/system.d")
7666
7667 (string-append "-Ddhclient=" dhclient)))
7668 #:phases
7669 (modify-phases %standard-phases
7670 (add-before 'configure 'pre-configure
7671 (lambda _
7672 ;; These tests try to test aspects of network-manager's
7673 ;; functionality within restricted containers, but they don't
7674 ;; cope with being already in the Guix build jail as that jail
7675 ;; lacks some features that they would like to proxy over (like
7676 ;; a /sys mount).
7677 (substitute* "src/platform/tests/meson.build"
7678 ((".*test-address-linux.*") "")
7679 ((".*test-cleanup-linux.*") "")
7680 ((".*test-link-linux.*") "")
7681 ((".*test-route-linux.*") ""))
7682 (substitute* "src/devices/tests/meson.build"
7683 ((".*test-acd.*") "")
7684 ((".*test-lldp.*") ""))
7685 #t))
7686 (add-after 'unpack 'patch-docbook-xml
7687 (lambda* (#:key inputs #:allow-other-keys)
7688 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7689 "/xml/dtd/docbook")))
7690 (substitute* (find-files "." ".*\\.(xsl|xml)")
7691 (("http://.*/docbookx\\.dtd")
7692 (string-append xmldoc "/docbookx.dtd")))
7693 #t)))
7694 (add-before 'check 'pre-check
7695 (lambda _
7696 ;; For the missing /etc/machine-id.
7697 (setenv "DBUS_FATAL_WARNINGS" "0")
7698 #t))
7699 (add-before 'install 'no-polkit-magic
7700 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7701 (lambda _
7702 (setenv "PKEXEC_UID" "something")
7703 #t))
7704 (add-after 'install 'move-doc
7705 (lambda* (#:key outputs #:allow-other-keys)
7706 (let ((out (assoc-ref outputs "out"))
7707 (doc (assoc-ref outputs "doc")))
7708 (mkdir-p (string-append doc "/share"))
7709 (for-each (lambda (directory)
7710 (copy-recursively (string-append out directory)
7711 (string-append doc directory))
7712 (delete-file-recursively
7713 (string-append out directory)))
7714 '("/share/doc" "/share/gtk-doc"))
7715 #t))))))
7716 (propagated-inputs
7717 `(("glib" ,glib)))
7718 (native-inputs
7719 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7720 ("gtk-doc" ,gtk-doc/stable)
7721 ("gobject-introspection" ,gobject-introspection)
7722 ("docbook-xml" ,docbook-xml)
7723 ("docbook-xsl" ,docbook-xsl)
7724 ("intltool" ,intltool)
7725 ("libxslt" ,libxslt)
7726 ("libxml2" ,libxml2)
7727 ("pkg-config" ,pkg-config)
7728 ("vala" ,vala)
7729 ;; For testing.
7730 ("python" ,python-wrapper)
7731 ("python-dbus" ,python-dbus)
7732 ("python-pygobject" ,python-pygobject)))
7733 (inputs
7734 `(("curl" ,curl)
7735 ("cyrus-sasl" ,cyrus-sasl)
7736 ("dbus-glib" ,dbus-glib)
7737 ("dnsmasq" ,dnsmasq)
7738 ("eudev" ,eudev)
7739 ("gnutls" ,gnutls)
7740 ("iptables" ,iptables)
7741 ("isc-dhcp" ,isc-dhcp)
7742 ("iwd" ,iwd) ; wpa_supplicant alternative
7743 ("jansson" ,jansson)
7744 ("libaudit" ,audit)
7745 ("libgcrypt" ,libgcrypt)
7746 ("libgudev" ,libgudev)
7747 ("libndp" ,libndp)
7748 ("libnl" ,libnl)
7749 ("libselinux" ,libselinux)
7750 ("libsoup" ,libsoup)
7751 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7752 ("modem-manager" ,modem-manager)
7753 ("newt" ,newt) ;for the 'nmtui' console interface
7754 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7755 ("polkit" ,polkit)
7756 ("ppp" ,ppp)
7757 ("readline" ,readline)
7758 ("util-linux" ,util-linux)
7759 ("elogind" ,elogind)))
7760 (synopsis "Network connection manager")
7761 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7762 (description
7763 "NetworkManager is a system network service that manages your network
7764 devices and connections, attempting to keep active network connectivity when
7765 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7766 devices, and provides VPN integration with a variety of different VPN
7767 services.")
7768 ;; “This NetworkManager project consists of the daemon, client tools, and
7769 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7770 ;; GPL-2.0+.”
7771 (license (list license:gpl2+
7772 license:lgpl2.1+))
7773 (properties '((upstream-name . "NetworkManager")))))
7774
7775 (define-public network-manager-openvpn
7776 (package
7777 (name "network-manager-openvpn")
7778 (version "1.8.12")
7779 (source (origin
7780 (method url-fetch)
7781 (uri (string-append
7782 "mirror://gnome/sources/NetworkManager-openvpn/"
7783 (version-major+minor version)
7784 "/NetworkManager-openvpn-" version ".tar.xz"))
7785 (sha256
7786 (base32
7787 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7788 (build-system gnu-build-system)
7789 (arguments
7790 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7791 #:phases
7792 (modify-phases %standard-phases
7793 (add-after 'configure 'patch-path
7794 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7795 (let* ((ovpn (search-input-file inputs "/sbin/openvpn"))
7796 (modprobe (search-input-file inputs "/bin/modprobe"))
7797 (pretty-ovpn (string-append "\"" ovpn "\"")))
7798 (for-each
7799 (lambda (file)
7800 (substitute* file
7801 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7802 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7803 (("\"/sbin/openvpn\"") pretty-ovpn)
7804 (("/sbin/modprobe") modprobe)))
7805 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7806 #t)))))
7807 (native-inputs
7808 `(("pkg-config" ,pkg-config)
7809 ("intltool" ,intltool)))
7810 (inputs
7811 `(("gtk+" ,gtk+)
7812 ("kmod" ,kmod)
7813 ("openvpn" ,openvpn)
7814 ("network-manager" ,network-manager)
7815 ("libnma" ,libnma)
7816 ("libsecret" ,libsecret)))
7817 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7818 (synopsis "OpenVPN plug-in for NetworkManager")
7819 (description
7820 "This extension of NetworkManager allows it to take care of connections
7821 to virtual private networks (VPNs) via OpenVPN.")
7822 (license license:gpl2+)
7823 (properties `((upstream-name . "NetworkManager-openvpn")))))
7824
7825 (define-public network-manager-vpnc
7826 (package
7827 (name "network-manager-vpnc")
7828 (version "1.2.6")
7829 (source (origin
7830 (method url-fetch)
7831 (uri (string-append
7832 "mirror://gnome/sources/NetworkManager-vpnc/"
7833 (version-major+minor version)
7834 "/NetworkManager-vpnc-" version ".tar.xz"))
7835 (sha256
7836 (base32
7837 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7838 (build-system gnu-build-system)
7839 (arguments
7840 `(#:configure-flags '("--enable-absolute-paths"
7841 "--localstatedir=/var"
7842 ;; libnm-glib has been removed from network-manager
7843 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7844 "--with-libnm-glib=no")
7845 #:phases
7846 (modify-phases %standard-phases
7847 (add-after 'configure 'patch-path
7848 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7849 (let* ((vpnc (search-input-file inputs "/sbin/vpnc"))
7850 (modprobe (search-input-file inputs "/bin/modprobe"))
7851 (pretty-ovpn (string-append "\"" vpnc "\"")))
7852 (substitute* "src/nm-vpnc-service.c"
7853 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7854 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7855 (("\"/sbin/vpnc\"") pretty-ovpn)
7856 (("/sbin/modprobe") modprobe)))
7857 #t)))))
7858 (native-inputs
7859 `(("pkg-config" ,pkg-config)
7860 ("intltool" ,intltool)))
7861 (inputs
7862 `(("gtk+" ,gtk+)
7863 ("kmod" ,kmod)
7864 ("vpnc" ,vpnc)
7865 ("network-manager" ,network-manager)
7866 ("libnma" ,libnma)
7867 ("libsecret" ,libsecret)))
7868 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7869 (synopsis "VPNC plug-in for NetworkManager")
7870 (description
7871 "Support for configuring virtual private networks based on VPNC.
7872 Compatible with Cisco VPN concentrators configured to use IPsec.")
7873 (license license:gpl2+)
7874 (properties `((upstream-name . "NetworkManager-vpnc")))))
7875
7876 (define-public network-manager-openconnect
7877 (package
7878 (name "network-manager-openconnect")
7879 (version "1.2.6")
7880 (source (origin
7881 (method url-fetch)
7882 (uri (string-append
7883 "mirror://gnome/sources/NetworkManager-openconnect/"
7884 (version-major+minor version)
7885 "/NetworkManager-openconnect-" version ".tar.xz"))
7886 (sha256
7887 (base32
7888 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7889 (build-system gnu-build-system)
7890 (arguments
7891 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7892 #:phases
7893 (modify-phases %standard-phases
7894 (add-after 'configure 'patch-path
7895 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7896 (let* ((openconnect (search-input-file inputs
7897 "/sbin/openconnect"))
7898 (modprobe (search-input-file inputs "/bin/modprobe"))
7899 (pretty-ovpn (string-append "\"" openconnect "\"")))
7900 (substitute* "src/nm-openconnect-service.c"
7901 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7902 (("/sbin/modprobe") modprobe)))
7903 #t)))))
7904 (native-inputs
7905 `(("intltool" ,intltool)
7906 ("libnma" ,libnma)
7907 ("pkg-config" ,pkg-config)))
7908 (inputs
7909 `(("gcr" ,gcr)
7910 ("gtk+" ,gtk+)
7911 ("kmod" ,kmod)
7912 ("libsecret" ,libsecret)
7913 ("libxml2" ,libxml2)
7914 ("lz4" ,lz4)
7915 ("network-manager" ,network-manager)
7916 ("openconnect" ,openconnect)))
7917 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7918 (synopsis "OpenConnect plug-in for NetworkManager")
7919 (description
7920 "This extension of NetworkManager allows it to take care of connections
7921 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7922 Cisco's AnyConnect SSL VPN.")
7923 (license license:gpl2+)
7924 (properties `((upstream-name . "NetworkManager-openconnect")
7925
7926 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7927 ;; file refers to account "nm-openconnect". Specify it here
7928 ;; so that 'network-manager-service-type' creates it.
7929 (user-accounts . ("nm-openconnect"))))))
7930
7931 (define-public mobile-broadband-provider-info
7932 (package
7933 (name "mobile-broadband-provider-info")
7934 (version "20190116")
7935 (source (origin
7936 (method url-fetch)
7937 (uri (string-append
7938 "mirror://gnome/sources/"
7939 "mobile-broadband-provider-info/" version "/"
7940 "mobile-broadband-provider-info-" version ".tar.xz"))
7941 (sha256
7942 (base32
7943 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7944 (build-system gnu-build-system)
7945 (arguments
7946 `(#:tests? #f)) ; no tests
7947 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7948 (synopsis "Database of broadband connection configuration")
7949 (description "Database of broadband connection configuration.")
7950 (license license:public-domain)))
7951
7952 (define-public network-manager-applet
7953 (package
7954 (name "network-manager-applet")
7955 (version "1.22.0")
7956 (source (origin
7957 (method url-fetch)
7958 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7959 (version-major+minor version) "/"
7960 "network-manager-applet-" version ".tar.xz"))
7961 (sha256
7962 (base32
7963 "1gj6lqqi613j2m49v9i82lqg1rv7kwwc8z4nxjcwpaa0ins803f7"))))
7964 (build-system meson-build-system)
7965 (arguments
7966 '(#:glib-or-gtk? #t
7967 #:configure-flags
7968 '("-Dappindicator=yes")))
7969 (native-inputs
7970 `(("intltool" ,intltool)
7971 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
7972 ("gobject-introspection" ,gobject-introspection)
7973 ("gtk-doc" ,gtk-doc/stable)
7974 ("pkg-config" ,pkg-config)))
7975 (propagated-inputs
7976 ;; libnm-gtk.pc refers to all these.
7977 `(("dbus-glib" ,dbus-glib)
7978 ("gtk+" ,gtk+)
7979 ("network-manager" ,network-manager)
7980 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7981 ("libnma" ,libnma)))
7982 (inputs
7983 `(("gcr" ,gcr)
7984 ("libappindicator" ,libappindicator)
7985 ("libgudev" ,libgudev)
7986 ("libnotify" ,libnotify)
7987 ("libsecret" ,libsecret)
7988 ("libselinux" ,libselinux)
7989 ("jansson" ,jansson) ; for team support
7990 ("modem-manager" ,modem-manager)))
7991 (synopsis "Applet for managing network connections")
7992 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7993 (description
7994 "This package contains a systray applet for NetworkManager. It displays
7995 the available networks and allows users to easily switch between them.")
7996 (license license:gpl2+)))
7997
7998 (define-public libxml++
7999 (package
8000 (name "libxml++")
8001 (version "3.2.0")
8002 (source
8003 (origin
8004 (method git-fetch)
8005 (uri (git-reference
8006 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8007 (commit version)))
8008 (file-name (git-file-name name version))
8009 (sha256
8010 (base32 "0wjz591rjlgbah7dcq8i0yn0zw9d62b7g6r0pppx81ic0cx8n8ga"))))
8011 (build-system gnu-build-system)
8012 (arguments
8013 `(#:phases
8014 (modify-phases %standard-phases
8015 (add-after 'unpack 'fix-documentation
8016 (lambda* (#:key inputs #:allow-other-keys)
8017 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
8018 "/xml/dtd/docbook"))
8019 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
8020 "/xml/xsl/docbook-xsl-"
8021 ,(package-version docbook-xsl))))
8022 (substitute* '("examples/dom_xpath/example.xml"
8023 "docs/manual/libxml++_without_code.xml")
8024 (("http://.*/docbookx\\.dtd")
8025 (string-append xmldoc "/docbookx.dtd")))
8026 (setenv "SGML_CATALOG_FILES"
8027 (string-append xmldoc "/catalog.xml"))
8028 (substitute* "docs/manual/docbook-customisation.xsl"
8029 (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
8030 (string-append xsldoc "/html/chunk.xsl")))))))))
8031 (propagated-inputs
8032 ;; libxml++-3.0.pc refers to all these.
8033 `(("glibmm" ,glibmm)
8034 ("libxml2" ,libxml2)))
8035 (native-inputs
8036 `(("autoconf" ,autoconf)
8037 ("automake" ,automake)
8038 ("doxygen" ,doxygen)
8039 ("docbook-xml" ,docbook-xml)
8040 ("docbook-xsl" ,docbook-xsl)
8041 ("graphviz" ,graphviz) ; for dot
8042 ("libtool" ,libtool)
8043 ("libxslt" ,libxslt)
8044 ("mm-common" ,mm-common)
8045 ("perl" ,perl)
8046 ("pkg-config" ,pkg-config)))
8047 (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
8048 (synopsis "C++ bindings to the libxml2 XML parser library")
8049 (description
8050 "This package provides a C++ interface to the libxml2 XML parser
8051 library.")
8052 (license license:lgpl2.1+)))
8053
8054 ;; This is the last release providing the 2.6 API, hence the name.
8055 ;; This is needed by tascam-gtk
8056 (define-public libxml++-2
8057 (package
8058 (inherit libxml++)
8059 (name "libxml++")
8060 (version "2.40.1")
8061 (source
8062 (origin
8063 (method git-fetch)
8064 (uri (git-reference
8065 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8066 (commit version)))
8067 (file-name (git-file-name name version))
8068 (sha256
8069 (base32 "0gbfi4l88w828gmyc9br11l003ylyi4vigp5d1kfgsn0k4cig3y9"))))))
8070
8071 (define-public gdm
8072 (package
8073 (name "gdm")
8074 (version "3.34.1")
8075 (source (origin
8076 (method url-fetch)
8077 (uri (string-append "mirror://gnome/sources/" name "/"
8078 (version-major+minor version) "/"
8079 name "-" version ".tar.xz"))
8080 (sha256
8081 (base32
8082 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
8083 (patches (search-patches "gdm-default-session.patch"))))
8084 (build-system glib-or-gtk-build-system)
8085 (arguments
8086 '(#:configure-flags
8087 `("--without-plymouth"
8088 "--disable-systemd-journal"
8089
8090 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8091 ;; instead of having to replace it (i.e., stopping the mingetty
8092 ;; service for TTY 1 before starting GDM).
8093 "--with-initial-vt=7"
8094
8095 ;; Use '/etc/environment' for locale settings instead of the
8096 ;; systemd-specific '/etc/locale.conf'.
8097 "--with-lang-file=/etc/environment"
8098
8099 ,(string-append "--with-udevdir="
8100 (assoc-ref %outputs "out") "/lib/udev")
8101
8102 "--localstatedir=/var"
8103 ,(string-append "--with-default-path="
8104 (string-join '("/run/setuid-programs"
8105 "/run/current-system/profile/bin"
8106 "/run/current-system/profile/sbin")
8107 ":"))
8108 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8109 ;; XDG_DATA_DIRS so that it finds its schemas.
8110 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
8111 #:phases
8112 (modify-phases %standard-phases
8113 (add-before
8114 'configure 'pre-configure
8115 (lambda* (#:key inputs outputs #:allow-other-keys)
8116 ;; We don't have <systemd/sd-daemon.h>.
8117 (substitute* '("common/gdm-log.c"
8118 "daemon/gdm-server.c"
8119 "daemon/gdm-session-worker.c"
8120 "daemon/gdm-session-worker-job.c")
8121 (("#include <systemd/sd-daemon\\.h>") ""))
8122 ;; Use elogind for sd-login.
8123 (substitute* '("common/gdm-common.c"
8124 "daemon/gdm-local-display-factory.c"
8125 "daemon/gdm-manager.c"
8126 "libgdm/gdm-user-switching.c")
8127 (("#include <systemd/sd-login\\.h>")
8128 "#include <elogind/sd-login.h>"))
8129 ;; Check for elogind.
8130 (substitute* '("configure")
8131 (("libsystemd")
8132 "libelogind"))
8133 ;; Look for system-installed sessions in
8134 ;; /run/current-system/profile/share.
8135 (substitute* '("libgdm/gdm-sessions.c"
8136 "daemon/gdm-session.c"
8137 "daemon/gdm-display.c"
8138 "daemon/gdm-launch-environment.c")
8139 (("DATADIR \"/x")
8140 "\"/run/current-system/profile/share/x")
8141 (("DATADIR \"/wayland")
8142 "\"/run/current-system/profile/share/wayland")
8143 (("DATADIR \"/gnome")
8144 "\"/run/current-system/profile/share/gnome"))
8145 (let ((propagate '("GDM_CUSTOM_CONF"
8146 "GDM_DBUS_DAEMON"
8147 "GDM_X_SERVER"
8148 "GDM_X_SESSION"
8149 ;; XXX: Remove this once GNOME Shell is
8150 ;; a dependency of GDM.
8151 "XDG_DATA_DIRS")))
8152 (substitute* "daemon/gdm-session.c"
8153 (("set_up_session_environment \\(self\\);")
8154 (apply string-append
8155 "set_up_session_environment (self);\n"
8156 (map (lambda (name)
8157 (string-append
8158 "gdm_session_set_environment_variable "
8159 "(self, \"" name "\","
8160 "g_getenv (\"" name "\"));\n"))
8161 propagate)))))
8162 ;; Find the configuration file using an environment variable.
8163 (substitute* '("common/gdm-settings.c")
8164 (("GDM_CUSTOM_CONF")
8165 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8166 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8167 " : GDM_CUSTOM_CONF)")))
8168 ;; Use service-supplied path to X.
8169 (substitute* '("daemon/gdm-server.c")
8170 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8171 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8172 (substitute* '("daemon/gdm-wayland-session.c"
8173 "daemon/gdm-x-session.c")
8174 (("\"dbus-daemon\"")
8175 "g_getenv (\"GDM_DBUS_DAEMON\")")
8176 (("X_SERVER")
8177 "g_getenv (\"GDM_X_SERVER\")")
8178 (("GDMCONFDIR \"/Xsession\"")
8179 "g_getenv (\"GDM_X_SESSION\")"))
8180 ;; Use an absolute path for GNOME Session.
8181 (substitute* "daemon/gdm-launch-environment.c"
8182 (("\"gnome-session\"")
8183 (string-append "\"" (assoc-ref inputs "gnome-session")
8184 "/bin/gnome-session\"")))
8185 ;; Do not automatically select the placeholder session.
8186 (substitute* "daemon/gdm-session.c"
8187 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8188 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8189 "(g_strcmp0(search_dirs[i], \""
8190 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
8191 "\") == 0 && "
8192 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8193 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8194 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
8195 #t))
8196 ;; GDM requires that there be at least one desktop entry
8197 ;; file. This phase installs a hidden one that simply
8198 ;; fails. This enables users to use GDM with a
8199 ;; '~/.xsession' script with no other desktop entry files.
8200 ;; See <https://bugs.gnu.org/35068>.
8201 (add-after 'install 'install-placeholder-desktop-entry
8202 (lambda* (#:key inputs outputs #:allow-other-keys)
8203 (let* ((out (assoc-ref outputs "out"))
8204 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8205 (fail (string-append sessions "/fail.desktop")))
8206 (mkdir-p sessions)
8207 (with-output-to-file fail
8208 (lambda ()
8209 (for-each
8210 display
8211 '("[Desktop Entry]\n"
8212 "Encoding=UTF-8\n"
8213 "Type=Application\n"
8214 "Name=Fail\n"
8215 "Comment=This session fails immediately.\n"
8216 "NoDisplay=true\n"
8217 "Exec=false\n"))))
8218 #t)))
8219 ;; GDM needs GNOME Session to run these applications. We link
8220 ;; their autostart files in `share/gdm/greeter/autostart'
8221 ;; because GDM explicitly tells GNOME Session to look there.
8222 ;;
8223 ;; XXX: GNOME Shell should be linked here too, but currently
8224 ;; GNOME Shell depends on GDM.
8225 (add-after 'install 'link-autostart-files
8226 (lambda* (#:key inputs outputs #:allow-other-keys)
8227 (let* ((out (assoc-ref outputs "out"))
8228 (autostart (string-append out "/share/gdm/"
8229 "greeter/autostart"))
8230 (settings (assoc-ref inputs "gnome-settings-daemon")))
8231 (mkdir-p autostart)
8232 (with-directory-excursion autostart
8233 (for-each (lambda (desktop)
8234 (symlink desktop (basename desktop)))
8235 (find-files (string-append settings "/etc/xdg"))))
8236 #t))))))
8237 (native-inputs
8238 `(("dconf" ,dconf)
8239 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8240 ("gobject-introspection" ,gobject-introspection)
8241 ("intltool" ,intltool)
8242 ("itstool" ,itstool)
8243 ("pkg-config" ,pkg-config)
8244 ("xmllint" ,libxml2)))
8245 (inputs
8246 `(("accountsservice" ,accountsservice)
8247 ("check" ,check-0.14) ;for testing
8248 ("elogind" ,elogind)
8249 ("gnome-session" ,gnome-session)
8250 ("gnome-settings-daemon" ,gnome-settings-daemon)
8251 ("gtk+" ,gtk+)
8252 ("iso-codes" ,iso-codes)
8253 ("libcanberra" ,libcanberra)
8254 ("linux-pam" ,linux-pam)))
8255 (synopsis "Display manager for GNOME")
8256 (home-page "https://wiki.gnome.org/Projects/GDM/")
8257 (description
8258 "GNOME Display Manager is a system service that is responsible for
8259 providing graphical log-ins and managing local and remote displays.")
8260 (license license:gpl2+)))
8261
8262 (define-public libgtop
8263 (package
8264 (name "libgtop")
8265 (version "2.40.0")
8266 (source (origin
8267 (method url-fetch)
8268 (uri (string-append "mirror://gnome/sources/libgtop/"
8269 (version-major+minor version) "/"
8270 "libgtop-" version ".tar.xz"))
8271 (sha256
8272 (base32
8273 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8274 (build-system gnu-build-system)
8275 (native-inputs
8276 `(("gobject-introspection" ,gobject-introspection)
8277 ("intltool" ,intltool)
8278 ("perl" ,perl)
8279 ("pkg-config" ,pkg-config)))
8280 (propagated-inputs
8281 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8282 (synopsis "Portable system access library")
8283 (home-page "https://www.gnome.org/")
8284 (description
8285 "LibGTop is a library to get system specific data such as CPU and memory
8286 usage and information about running processes.")
8287 (license license:gpl2+)))
8288
8289 (define-public gnome-bluetooth
8290 (package
8291 (name "gnome-bluetooth")
8292 (version "3.34.2")
8293 (source (origin
8294 (method url-fetch)
8295 (uri (string-append "mirror://gnome/sources/" name "/"
8296 (version-major+minor version) "/"
8297 name "-" version ".tar.xz"))
8298 (sha256
8299 (base32
8300 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8301 (build-system meson-build-system)
8302 (native-inputs
8303 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8304 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8305 ("gobject-introspection" ,gobject-introspection)
8306 ("intltool" ,intltool)
8307 ("pkg-config" ,pkg-config)
8308 ("xmllint" ,libxml2)))
8309 (propagated-inputs
8310 ;; gnome-bluetooth-1.0.pc refers to all these.
8311 `(("glib" ,glib)
8312 ("gtk+" ,gtk+)))
8313 (inputs
8314 `(("eudev" ,eudev)
8315 ("libcanberra" ,libcanberra)
8316 ("libnotify" ,libnotify)))
8317 (synopsis "GNOME Bluetooth subsystem")
8318 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8319 (description
8320 "This package contains tools for managing and manipulating Bluetooth
8321 devices using the GNOME desktop.")
8322 (license license:lgpl2.1+)))
8323
8324 (define-public gnome-control-center
8325 (package
8326 (name "gnome-control-center")
8327 (version "3.34.2")
8328 (source (origin
8329 (method url-fetch)
8330 (uri (string-append "mirror://gnome/sources/" name "/"
8331 (version-major+minor version) "/"
8332 name "-" version ".tar.xz"))
8333 (sha256
8334 (base32
8335 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8336 (build-system meson-build-system)
8337 (arguments
8338 '(#:glib-or-gtk? #t
8339 #:configure-flags
8340 (list "-Dcheese=false"
8341 (string-append "-Dgnome_session_libexecdir="
8342 (assoc-ref %build-inputs "gnome-session")
8343 "/libexec"))
8344 #:phases
8345 (modify-phases %standard-phases
8346 (add-before 'configure 'patch-paths
8347 (lambda* (#:key inputs #:allow-other-keys)
8348 (let ((libc (assoc-ref inputs "libc"))
8349 (tzdata (assoc-ref inputs "tzdata"))
8350 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8351 (nm-applet (assoc-ref inputs "network-manager-applet"))
8352 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8353 (substitute* "panels/datetime/tz.h"
8354 (("/usr/share/zoneinfo/zone.tab")
8355 (string-append tzdata "/share/zoneinfo/zone.tab")))
8356 (substitute* "tests/datetime/test-endianess.c"
8357 (("/usr/share/locale")
8358 (string-append libc "/share/locale")))
8359 (substitute* "panels/region/cc-region-panel.c"
8360 (("\"gkbd-keyboard-display")
8361 (string-append "\"" libgnomekbd
8362 "/bin/gkbd-keyboard-display")))
8363 (substitute* '("panels/network/net-device-wifi.c"
8364 "panels/network/net-device.c"
8365 "panels/network/connection-editor/net-connection-editor.c")
8366 (("\"nm-connection-editor")
8367 (string-append "\"" nm-applet
8368 "/bin/nm-connection-editor")))
8369 (substitute* '("panels/user-accounts/run-passwd.c")
8370 (("/usr/bin/passwd")
8371 "/run/setuid-programs/passwd"))
8372 (substitute* "panels/info/cc-info-overview-panel.c"
8373 (("DATADIR \"/gnome/gnome-version.xml\"")
8374 (string-append "\"" gnome-desktop
8375 "/share/gnome/gnome-version.xml\"")))
8376 #t)))
8377 (add-after 'unpack 'skip-gtk-update-icon-cache
8378 ;; Don't create 'icon-theme.cache'.
8379 (lambda _
8380 (substitute* "build-aux/meson/meson_post_install.py"
8381 (("gtk-update-icon-cache") (which "true")))
8382 #t)))))
8383 (native-inputs
8384 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8385 ("intltool" ,intltool)
8386 ("pkg-config" ,pkg-config)
8387 ("xsltproc" ,libxslt)
8388 ;; For tests
8389 ("hicolor-icon-theme" ,hicolor-icon-theme)
8390 ("python-dbusmock" ,python-dbusmock)
8391 ("xorg-server" ,xorg-server-for-tests)))
8392 (inputs
8393 `(("accountsservice" ,accountsservice)
8394 ("clutter-gtk" ,clutter-gtk)
8395 ("colord-gtk" ,colord-gtk)
8396 ("cups" ,cups)
8397 ("dconf" ,dconf)
8398 ("docbook-xsl" ,docbook-xsl)
8399 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8400 ("gnome-bluetooth" ,gnome-bluetooth)
8401 ("gnome-desktop" ,gnome-desktop)
8402 ("gnome-online-accounts" ,gnome-online-accounts)
8403 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8404 ("gnome-session" ,gnome-session)
8405 ("gnome-settings-daemon" ,gnome-settings-daemon)
8406 ("grilo" ,grilo)
8407 ("gsound" ,gsound)
8408 ("ibus" ,ibus)
8409 ("libcanberra" ,libcanberra)
8410 ("libgnomekbd" ,libgnomekbd)
8411 ("libgudev" ,libgudev)
8412 ("libgtop" ,libgtop)
8413 ("libnma" ,libnma)
8414 ("libpwquality" ,libpwquality)
8415 ("libsecret" ,libsecret)
8416 ("libsoup" ,libsoup)
8417 ("libxml2" ,libxml2)
8418 ("libwacom" ,libwacom)
8419 ("mesa" ,mesa)
8420 ("mit-krb5" ,mit-krb5)
8421 ("modem-manager" ,modem-manager)
8422 ("network-manager-applet" ,network-manager-applet)
8423 ("polkit" ,polkit)
8424 ("pulseaudio" ,pulseaudio)
8425 ("smbclient" ,samba)
8426 ("tzdata" ,tzdata)
8427 ("udisks" ,udisks)
8428 ("upower" ,upower)))
8429 (synopsis "Utilities to configure the GNOME desktop")
8430 (home-page "https://www.gnome.org/")
8431 (description
8432 "This package contains configuration applets for the GNOME desktop,
8433 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8434 properties, sound setup, desktop theme and background, user interface
8435 properties, screen resolution, and other GNOME parameters.")
8436 (license license:gpl2+)))
8437
8438 (define-public gnome-shell
8439 (package
8440 (name "gnome-shell")
8441 (version "3.34.5")
8442 (source (origin
8443 (method url-fetch)
8444 (uri (string-append "mirror://gnome/sources/" name "/"
8445 (version-major+minor version) "/"
8446 name "-" version ".tar.xz"))
8447 (sha256
8448 (base32
8449 "0l3mdn7g2c22mdhrqkxvvc1pk2w0v32f2v4a6n1phvaalwcg75nj"))
8450 (patches (search-patches "gnome-shell-CVE-2020-17489.patch"
8451 "gnome-shell-theme.patch"
8452 "gnome-shell-disable-test.patch"))
8453 (modules '((guix build utils)))
8454 (snippet
8455 #~(begin
8456 ;; Copy images for use on the GDM log-in screen.
8457 (copy-file #$(file-append %artwork-repository
8458 "/slim/0.x/background.png")
8459 "data/theme/guix-background.png")
8460 (copy-file #$(file-append %artwork-repository
8461 "/logo/Guix-horizontal-white.svg")
8462 "data/theme/guix-logo.svg")
8463 #t))))
8464 (build-system meson-build-system)
8465 (arguments
8466 `(#:glib-or-gtk? #t
8467 #:disallowed-references ,(list (gexp-input glib "bin")
8468 (gexp-input inkscape)
8469 (gexp-input libxslt)
8470 (gexp-input ruby-sass))
8471 #:configure-flags
8472 (list "-Dsystemd=false"
8473 ;; Otherwise, the RUNPATH will lack the final path component.
8474 (string-append "-Dc_link_args=-Wl,-rpath="
8475 (assoc-ref %outputs "out")
8476 "/lib/gnome-shell"))
8477
8478 #:modules ((guix build meson-build-system)
8479 (guix build utils)
8480 (srfi srfi-1))
8481
8482 #:phases
8483 (modify-phases %standard-phases
8484 (add-after 'unpack 'fix-keysdir
8485 (lambda* (#:key outputs #:allow-other-keys)
8486 (let* ((out (assoc-ref outputs "out"))
8487 (keysdir (string-append
8488 out "/share/gnome-control-center/keybindings")))
8489 (substitute* "meson.build"
8490 (("keysdir =.*")
8491 (string-append "keysdir = '" keysdir "'\n")))
8492 #t)))
8493 (add-before 'configure 'convert-logo-to-png
8494 (lambda* (#:key inputs #:allow-other-keys)
8495 ;; Convert the logo from SVG to PNG.
8496 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8497 "data/theme/guix-logo.svg")))
8498 (add-before 'configure 'record-absolute-file-names
8499 (lambda* (#:key inputs #:allow-other-keys)
8500 (substitute* "js/misc/ibusManager.js"
8501 (("'ibus-daemon'")
8502 (string-append "'" (assoc-ref inputs "ibus")
8503 "/bin/ibus-daemon'")))
8504 (substitute* "js/ui/status/keyboard.js"
8505 (("'gkbd-keyboard-display'")
8506 (string-append "'" (assoc-ref inputs "libgnomekbd")
8507 "/bin/gkbd-keyboard-display'")))
8508 #t))
8509 (add-before 'check 'pre-check
8510 (lambda* (#:key inputs #:allow-other-keys)
8511 ;; Tests require a running X server.
8512 (system "Xvfb :1 &")
8513 (setenv "DISPLAY" ":1")
8514 #t))
8515 (add-after 'install 'wrap-programs
8516 (lambda* (#:key inputs outputs #:allow-other-keys)
8517 (let ((out (assoc-ref outputs "out"))
8518 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8519 (python-path (getenv "GUIX_PYTHONPATH")))
8520 (wrap-program (string-append out "/bin/gnome-shell")
8521 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8522 ;; FIXME: gnome-shell loads these libraries with unqualified
8523 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8524 ;; alternative might be to patch gnome-shell.
8525 `("LD_LIBRARY_PATH" ":" prefix
8526 ,(map (lambda (pkg)
8527 (string-append (assoc-ref inputs pkg) "/lib"))
8528 '("gdk-pixbuf"
8529 "gnome-bluetooth" "librsvg" "libgweather"))))
8530 (for-each
8531 (lambda (prog)
8532 (wrap-program (string-append out "/bin/" prog)
8533 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
8534 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8535 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8536 #t)))
8537 (replace 'glib-or-gtk-wrap
8538 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8539 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8540 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8541 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8542 ;; phase. Fix that since we don't need these.
8543 (wrap #:inputs (fold alist-delete inputs
8544 '("inkscape" "intltool" "glib:bin"))
8545 #:outputs outputs)))))))
8546 (native-inputs
8547 `(("asciidoc" ,asciidoc)
8548 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8549 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8550 ("gobject-introspection" ,gobject-introspection)
8551 ("inkscape" ,inkscape)
8552 ("intltool" ,intltool)
8553 ("pkg-config" ,pkg-config)
8554 ("python" ,python)
8555 ("ruby-sass" ,ruby-sass)
8556 ("sassc" ,sassc)
8557 ("xsltproc" ,libxslt)
8558 ;; For tests
8559 ("xorg-server" ,xorg-server-for-tests)))
8560 (inputs
8561 `(("accountsservice" ,accountsservice)
8562 ("caribou" ,caribou)
8563 ("docbook-xsl" ,docbook-xsl)
8564 ("evolution-data-server" ,evolution-data-server)
8565 ("gcr" ,gcr)
8566 ("gdm" ,gdm)
8567 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8568 ("gjs" ,gjs)
8569 ("gnome-autoar" ,gnome-autoar)
8570 ("gnome-bluetooth" ,gnome-bluetooth)
8571 ("gnome-desktop" ,gnome-desktop)
8572 ("gnome-settings-daemon" ,gnome-settings-daemon)
8573 ("gst-plugins-base" ,gst-plugins-base)
8574 ("ibus" ,ibus)
8575 ("libcanberra" ,libcanberra)
8576 ("libcroco" ,libcroco)
8577 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8578 ("libgweather" ,libgweather)
8579 ("libnma" ,libnma)
8580 ("libsoup" ,libsoup)
8581 ("mesa-headers" ,mesa-headers)
8582 ("mutter" ,mutter)
8583 ("network-manager-applet" ,network-manager-applet)
8584 ("polkit" ,polkit)
8585 ("pulseaudio" ,pulseaudio)
8586 ("python-pygobject" ,python-pygobject)
8587 ("startup-notification" ,startup-notification)
8588 ("telepathy-logger" ,telepathy-logger)
8589 ("upower" ,upower)
8590 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8591 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8592 ("librsvg" ,librsvg)
8593 ("geoclue" ,geoclue)))
8594 ;; CVE-2019-3820 was fixed before GNOME 3.34 was released, in upstream
8595 ;; commit f0a7395b3006360905ccdc642982f9fc67378927.
8596 (properties '((lint-hidden-cve . ("CVE-2019-3820"))))
8597 (synopsis "Desktop shell for GNOME")
8598 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8599 (description
8600 "GNOME Shell provides core user interface functions for the GNOME desktop,
8601 like switching to windows and launching applications.")
8602 (license license:gpl2+)))
8603
8604 (define-public gtk-vnc
8605 (package
8606 (name "gtk-vnc")
8607 (version "1.0.0")
8608 (source
8609 (origin
8610 (method url-fetch)
8611 (uri
8612 (string-append "mirror://gnome/sources/" name "/"
8613 (version-major+minor version) "/"
8614 name "-" version ".tar.xz"))
8615 (sha256
8616 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8617 (build-system meson-build-system)
8618 (arguments
8619 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8620 (native-inputs
8621 `(("gjs" ,gjs)
8622 ("glib:bin" ,glib "bin")
8623 ("gobject-introspection" ,gobject-introspection)
8624 ("intltool" ,intltool)
8625 ("node" ,node)
8626 ("perl" ,perl)
8627 ("pkg-config" ,pkg-config)
8628 ("python" ,python-wrapper)
8629 ("vala" ,vala)))
8630 (inputs
8631 `(("cairo" ,cairo)
8632 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8633 ("glib" ,glib)
8634 ("gnutls" ,gnutls)
8635 ("libgcrypt" ,libgcrypt)
8636 ("libsasl" ,cyrus-sasl)
8637 ("pulseaudio" ,pulseaudio)
8638 ("x11" ,libx11)
8639 ("zlib" ,zlib)))
8640 (propagated-inputs
8641 `(("gtk+" ,gtk+)))
8642 (synopsis "VNC client viewer widget for GTK+")
8643 (description "GTK-VNC is a project providing client side APIs for the RFB
8644 protocol / VNC remote desktop technology. It is built using coroutines allowing
8645 it to be completely asynchronous while remaining single threaded. It provides a
8646 core C library, and bindings for Python (PyGTK).")
8647 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8648 (license license:lgpl2.1+)))
8649
8650 (define-public gnome-autoar
8651 (package
8652 (name "gnome-autoar")
8653 (version "0.3.3")
8654 (source (origin
8655 (method url-fetch)
8656 (uri (string-append "mirror://gnome/sources/" name "/"
8657 (version-major+minor version) "/"
8658 name "-" version ".tar.xz"))
8659 (sha256
8660 (base32
8661 "012w7rhhpxvlrnnhqy01vwzg1wxqpy8jbqgizn47wnip7bvh0917"))))
8662 (build-system glib-or-gtk-build-system)
8663 (native-inputs
8664 `(("gobject-introspection" ,gobject-introspection)
8665 ("pkg-config" ,pkg-config)))
8666 (propagated-inputs
8667 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8668 (inputs
8669 `(("gtk+" ,gtk+)))
8670 (synopsis "Archives integration support for GNOME")
8671 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8672 (description
8673 "GNOME Autoar is a library which makes creating and extracting archives
8674 easy, safe, and automatic.")
8675 (license license:lgpl2.1+)))
8676
8677 (define-public tracker
8678 (package
8679 (name "tracker")
8680 (version "2.3.5")
8681 (source (origin
8682 (method url-fetch)
8683 (uri (string-append "mirror://gnome/sources/tracker/"
8684 (version-major+minor version) "/"
8685 "tracker-" version ".tar.xz"))
8686 (sha256
8687 (base32
8688 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8689 (build-system meson-build-system)
8690 (arguments
8691 `(#:glib-or-gtk? #t
8692 #:configure-flags
8693 ;; Otherwise, the RUNPATH will lack the final path component.
8694 (list (string-append "-Dc_link_args=-Wl,-rpath="
8695 (assoc-ref %outputs "out") "/lib:"
8696 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8697 #:phases
8698 (modify-phases %standard-phases
8699 (add-before 'check 'pre-check
8700 (lambda _
8701 ;; Some tests expect to write to $HOME.
8702 (setenv "HOME" "/tmp")
8703 #t)))))
8704 (native-inputs
8705 `(("glib:bin" ,glib "bin")
8706 ("gobject-introspection" ,gobject-introspection)
8707 ("python-pygobject" ,python-pygobject)
8708 ("intltool" ,intltool)
8709 ("pkg-config" ,pkg-config)
8710 ("vala" ,vala)))
8711 (inputs
8712 `(("dbus" ,dbus)
8713 ("sqlite" ,sqlite)
8714 ("libxml2" ,libxml2)
8715 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8716 ("json-glib" ,json-glib)
8717 ("libsoup" ,libsoup)))
8718 (synopsis "Metadata database, indexer and search tool")
8719 (home-page "https://wiki.gnome.org/Projects/Tracker")
8720 (description
8721 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8722
8723 It is a middleware component aimed at desktop application developers who want
8724 their apps to browse and search user content. It's not designed to be used
8725 directly by desktop users, but it provides a commandline tool named
8726 @command{tracker} for the adventurous.
8727
8728 Tracker allows your application to instantly perform full-text searches across
8729 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8730 example. This is achieved by indexing the user's home directory in the
8731 background.
8732
8733 Tracker also allows your application to query and list content that the user
8734 has stored. For example, GNOME Music displays all the music files that are
8735 found by Tracker. This means that GNOME Music doesn't need to maintain a
8736 database of its own.
8737
8738 If you need to go beyond simple searches, Tracker is also a linked data
8739 endpoint and it understands SPARQL. ")
8740 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8741 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8742 ;; libstemmer is bsd-3 and the rest is gpl2+.
8743 (license (list license:gpl2+
8744 license:bsd-3
8745 license:lgpl2.1+))))
8746
8747 (define-public tracker-miners
8748 (package
8749 (name "tracker-miners")
8750 (version "2.3.4")
8751 (source (origin
8752 (method url-fetch)
8753 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8754 (version-major+minor version)
8755 "/tracker-miners-" version ".tar.xz"))
8756 (sha256
8757 (base32
8758 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8759 (build-system meson-build-system)
8760 (arguments
8761 `(#:glib-or-gtk? #t
8762 #:configure-flags
8763 (list "-Dminer_rss=false" ; libgrss is required.
8764 ;; Ensure the RUNPATH contains all installed library locations.
8765 (string-append "-Dc_link_args=-Wl,-rpath="
8766 (assoc-ref %outputs "out")
8767 "/lib/tracker-miners-2.0")
8768 ;; TODO: Enable functional tests. Currently, the following error
8769 ;; appears:
8770 ;; Exception: The functional tests require DConf to be the default
8771 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8772 "-Dfunctional_tests=false")))
8773 (native-inputs
8774 `(("dbus" ,dbus)
8775 ("intltool" ,intltool)
8776 ("glib:bin" ,glib "bin")
8777 ("gobject-introspection" ,gobject-introspection)
8778 ("pkg-config" ,pkg-config)
8779 ("python-pygobject" ,python-pygobject)))
8780 (inputs
8781 `(("exempi" ,exempi)
8782 ("ffmpeg" ,ffmpeg)
8783 ("flac" ,flac)
8784 ("giflib" ,giflib)
8785 ("glib" ,glib)
8786 ("gstreamer" ,gstreamer)
8787 ("icu4c" ,icu4c)
8788 ("libcue" ,libcue)
8789 ("libexif" ,libexif)
8790 ("libgsf" ,libgsf)
8791 ("libgxps" ,libgxps)
8792 ("libiptcdata" ,libiptcdata)
8793 ("libjpeg" ,libjpeg-turbo)
8794 ("libosinfo" ,libosinfo)
8795 ("libpng" ,libpng)
8796 ("libseccomp" ,libseccomp)
8797 ("libtiff" ,libtiff)
8798 ("libvorbis" ,libvorbis)
8799 ("libxml2" ,libxml2)
8800 ("poppler" ,poppler)
8801 ("taglib" ,taglib)
8802 ("totem-pl-parser" ,totem-pl-parser)
8803 ("tracker" ,tracker)
8804 ("upower" ,upower)
8805 ("zlib" ,zlib)))
8806 (synopsis "Metadata database, indexer and search tool")
8807 (home-page "https://wiki.gnome.org/Projects/Tracker")
8808 (description
8809 "Tracker is an advanced framework for first class objects with associated
8810 metadata and tags. It provides a one stop solution for all metadata, tags,
8811 shared object databases, search tools and indexing.")
8812 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8813 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8814 (license (list license:gpl2+
8815 license:lgpl2.1+
8816 license:lgpl2.0+))))
8817
8818 (define-public nautilus
8819 (package
8820 (name "nautilus")
8821 (version "3.34.2")
8822 (source (origin
8823 (method url-fetch)
8824 (uri (string-append "mirror://gnome/sources/" name "/"
8825 (version-major+minor version) "/"
8826 name "-" version ".tar.xz"))
8827 (sha256
8828 (base32
8829 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8830 (build-system meson-build-system)
8831 (arguments
8832 '(#:glib-or-gtk? #t
8833 #:phases
8834 (modify-phases %standard-phases
8835 (add-after 'unpack 'skip-gtk-update-icon-cache
8836 ;; Don't create 'icon-theme.cache'.
8837 (lambda _
8838 (substitute* "build-aux/meson/postinstall.py"
8839 (("gtk-update-icon-cache") "true"))
8840 #t)))
8841 ;; XXX: FAIL: check-nautilus
8842 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8843 #:tests? #f))
8844 (native-inputs
8845 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8846 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8847 ("gobject-introspection" ,gobject-introspection)
8848 ("intltool" ,intltool)
8849 ("pkg-config" ,pkg-config)))
8850 (inputs
8851 `(("dconf" ,dconf)
8852 ("gexiv2" ,gexiv2)
8853 ("gvfs" ,gvfs)
8854 ("exempi" ,exempi)
8855 ("gnome-desktop" ,gnome-desktop)
8856 ("gnome-autoar" ,gnome-autoar)
8857 ("gst-plugins-base" ,gst-plugins-base)
8858 ("libseccomp" ,libseccomp)
8859 ("libselinux" ,libselinux)
8860 ("tracker" ,tracker)
8861 ("tracker-miners" ,tracker-miners)
8862 ;; XXX: gtk+ is required by libnautilus-extension.pc
8863 ;;
8864 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8865 ;; package. See:
8866 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8867 ("gtk+" ,gtk+)
8868 ("libexif" ,libexif)
8869 ("libxml2" ,libxml2)))
8870 (synopsis "File manager for GNOME")
8871 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8872 (description
8873 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8874 design and behaviour, giving the user a simple way to navigate and manage its
8875 files.")
8876 (license license:gpl2+)))
8877
8878 (define-public baobab
8879 (package
8880 (name "baobab")
8881 (version "3.38.0")
8882 (source (origin
8883 (method url-fetch)
8884 (uri (string-append
8885 "mirror://gnome/sources/" name "/"
8886 (version-major+minor version) "/"
8887 name "-" version ".tar.xz"))
8888 (sha256
8889 (base32
8890 "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104"))))
8891 (build-system meson-build-system)
8892 (arguments
8893 '(#:glib-or-gtk? #t))
8894 (native-inputs
8895 `(("intltool" ,intltool)
8896 ("pkg-config" ,pkg-config)
8897 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8898 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8899 ("itstool" ,itstool)
8900 ("xmllint" ,libxml2)
8901 ("glib" ,glib "bin")
8902 ("vala" ,vala)))
8903 (inputs
8904 `(("gtk+" ,gtk+)))
8905 (synopsis "Disk usage analyzer for GNOME")
8906 (description
8907 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8908 usage in the GNOME desktop environment. It can easily scan device volumes or
8909 a specific user-requested directory branch (local or remote). Once the scan
8910 is complete it provides a graphical representation of each selected folder.")
8911 (home-page "https://wiki.gnome.org/Apps/Baobab")
8912 (license license:gpl2+)))
8913
8914 (define-public gnome-backgrounds
8915 (package
8916 (name "gnome-backgrounds")
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 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8927 (build-system meson-build-system)
8928 (native-inputs
8929 `(("gettext" ,gettext-minimal)))
8930 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8931 (synopsis "Background images for the GNOME desktop")
8932 (description
8933 "GNOME backgrounds package contains a collection of graphics files which
8934 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8935 the package creates the proper framework and directory structure so that you
8936 can add your own files to the collection.")
8937 (license (list license:gpl2+
8938 license:cc-by2.0
8939 license:cc-by-sa2.0
8940 license:cc-by-sa3.0))))
8941
8942 (define-public gnome-screenshot
8943 (package
8944 (name "gnome-screenshot")
8945 (version "3.34.0")
8946 (source
8947 (origin
8948 (method url-fetch)
8949 (uri (string-append "mirror://gnome/sources/" name "/"
8950 (version-major+minor version) "/"
8951 name "-" version ".tar.xz"))
8952 (sha256
8953 (base32
8954 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8955 (build-system meson-build-system)
8956 (arguments
8957 '(#:phases
8958 (modify-phases %standard-phases
8959 (add-after 'unpack 'skip-gtk-update-icon-cache
8960 ;; Don't create 'icon-theme.cache'.
8961 (lambda _
8962 (substitute* "build-aux/postinstall.py"
8963 (("gtk-update-icon-cache") "true"))
8964 #t)))))
8965 (native-inputs
8966 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8967 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8968 ("intltool" ,intltool)
8969 ("appstream-glib" ,appstream-glib)
8970 ("pkg-config" ,pkg-config)))
8971 (inputs
8972 `(("gtk+" ,gtk+)
8973 ("libcanberra" ,libcanberra)
8974 ("libx11" ,libx11)
8975 ("libxext" ,libxext)))
8976 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8977 (synopsis "Take pictures of your screen")
8978 (description
8979 "GNOME Screenshot is a utility used for taking screenshots of the entire
8980 screen, a window or a user defined area of the screen, with optional
8981 beautifying border effects.")
8982 (license license:gpl2+)))
8983
8984 (define-public dconf-editor
8985 (package
8986 (name "dconf-editor")
8987 (version "3.34.2")
8988 (source
8989 (origin
8990 (method url-fetch)
8991 (uri (string-append "mirror://gnome/sources/" name "/"
8992 (version-major+minor version) "/"
8993 name "-" version ".tar.xz"))
8994 (sha256
8995 (base32
8996 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8997 (build-system meson-build-system)
8998 (native-inputs
8999 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9000 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9001 ("intltool" ,intltool)
9002 ("pkg-config" ,pkg-config)
9003 ("vala" ,vala)))
9004 (inputs
9005 `(("dconf" ,dconf)
9006 ("gtk+" ,gtk+)
9007 ("libxml2" ,libxml2)))
9008 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9009 (synopsis "Graphical editor for GNOME's dconf configuration system")
9010 (description
9011 "Dconf-editor is a graphical tool for browsing and editing the dconf
9012 configuration system for GNOME. It allows users to configure desktop
9013 software that do not provide their own configuration interface.")
9014 (license license:lgpl2.1+)))
9015
9016 (define-public gnome-default-applications
9017 (package
9018 (name "gnome-default-applications")
9019 (version "0")
9020 (build-system trivial-build-system)
9021 (source #f)
9022 (propagated-inputs
9023 `(("nautilus" ,nautilus)
9024 ("evince" ,evince)))
9025 (arguments
9026 `(#:modules ((guix build utils))
9027 #:builder
9028 (begin
9029 (use-modules (guix build utils))
9030 (let* ((out (assoc-ref %outputs "out"))
9031 (apps (string-append out "/share/applications")))
9032 (mkdir-p apps)
9033 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9034 (lambda (port)
9035 (format port "[Default Applications]\n")
9036 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9037 (format port "application/pdf=evince.desktop\n")
9038 (format port "application/postscript=evince.desktop\n")))
9039 #t))))
9040 (synopsis "Default MIME type associations for the GNOME desktop")
9041 (description
9042 "Given many installed packages which might handle a given MIME type, a
9043 user running the GNOME desktop probably has some preferences: for example,
9044 that folders be opened by default by the Nautilus file manager, not the Baobab
9045 disk usage analyzer. This package establishes that set of default MIME type
9046 associations for GNOME.")
9047 (license license:gpl3+)
9048 (home-page #f)))
9049
9050 (define-public libgovirt
9051 (package
9052 (name "libgovirt")
9053 (version "0.3.8")
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 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9062 (build-system glib-or-gtk-build-system)
9063 (native-inputs
9064 `(("gettext" ,gettext-minimal)
9065 ("glib:bin" ,glib "bin")
9066 ("gobject-introspection" ,gobject-introspection)
9067 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9068 ("gtk+:bin" ,gtk+ "bin")
9069 ("pkg-config" ,pkg-config)))
9070 (inputs
9071 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
9072 ("librest" ,rest)))
9073 (synopsis "GoVirt Library")
9074 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9075 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9076 (license license:gpl2+)))
9077
9078 (define-public gnome-weather
9079 (package
9080 (name "gnome-weather")
9081 (version "3.34.0")
9082 (source (origin
9083 (method url-fetch)
9084 (uri (string-append "mirror://gnome/sources/" name "/"
9085 (version-major+minor version) "/"
9086 name "-" version ".tar.xz"))
9087 (sha256
9088 (base32
9089 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
9090 (build-system meson-build-system)
9091 (native-inputs
9092 `(("gettext" ,gettext-minimal)
9093 ("glib:bin" ,glib "bin")
9094 ("gobject-introspection" ,gobject-introspection)
9095 ("gtk+:bin" ,gtk+ "bin")
9096 ("pkg-config" ,pkg-config)))
9097 (inputs
9098 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
9099 ("appstream-glib" ,appstream-glib)
9100 ("geoclue" ,geoclue)
9101 ("gdk-pixbuf" ,gdk-pixbuf)
9102 ("gjs" ,gjs)
9103 ("gnome-desktop" ,gnome-desktop)
9104 ("libgweather" ,libgweather)))
9105 (arguments
9106 `(#:glib-or-gtk? #t
9107 #:phases
9108 (modify-phases %standard-phases
9109 (add-after 'install 'fix-desktop-file
9110 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
9111 ;; See https://issues.guix.gnu.org/issue/39324.
9112 (lambda* (#:key outputs #:allow-other-keys)
9113 (let* ((out (assoc-ref outputs "out"))
9114 (applications (string-append out "/share/applications")))
9115 (substitute* (string-append applications "/org.gnome.Weather.desktop")
9116 (("Exec=.*") "Exec=gnome-weather\n"))
9117 #t)))
9118 (add-after 'install 'wrap
9119 (lambda* (#:key inputs outputs #:allow-other-keys)
9120 (let ((out (assoc-ref outputs "out"))
9121 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9122 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
9123 (wrap-program (string-append out "/bin/gnome-weather")
9124 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
9125 #t))))))
9126 (synopsis "Weather monitoring for GNOME desktop")
9127 (description "GNOME Weather is a small application that allows you to
9128 monitor the current weather conditions for your city, or anywhere in the
9129 world.")
9130 (home-page "https://wiki.gnome.org/Apps/Weather")
9131 (license license:gpl2+)))
9132
9133 (define-public gnome
9134 (package
9135 (name "gnome")
9136 (version (package-version gnome-shell))
9137 (source #f)
9138 (build-system trivial-build-system)
9139 (arguments '(#:builder (begin (mkdir %output) #t)))
9140 (propagated-inputs
9141 ;; TODO: Add or remove packages according to:
9142 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
9143 `(
9144 ;; GNOME-Core-OS-Services
9145 ("accountsservice" ,accountsservice)
9146 ("network-manager" ,network-manager)
9147 ("packagekit" ,packagekit)
9148 ("upower" ,upower)
9149 ;; GNOME-Core-Shell
9150 ("adwaita-icon-theme" ,adwaita-icon-theme)
9151 ("gdm" ,gdm)
9152 ("glib-networking" ,glib-networking)
9153 ("gnome-backgrounds" ,gnome-backgrounds)
9154 ("gnome-bluetooth" ,gnome-bluetooth)
9155 ("gnome-color-manager" ,gnome-color-manager)
9156 ("gnome-control-center" ,gnome-control-center)
9157 ("gnome-desktop" ,gnome-desktop)
9158 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
9159 ("gnome-initial-setup" ,gnome-initial-setup)
9160 ("gnome-keyring" ,gnome-keyring)
9161 ("gnome-menus" ,gnome-menus)
9162 ("gnome-session" ,gnome-session)
9163 ("gnome-settings-daemon" ,gnome-settings-daemon)
9164 ("gnome-shell-extensions" ,gnome-shell-extensions)
9165 ("gnome-shell" ,gnome-shell)
9166 ("gnome-themes-extra" ,gnome-themes-extra)
9167 ("gnome-user-docs" ,gnome-user-docs)
9168 ("gnome-user-share" ,gnome-user-share)
9169 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9170 ("gvfs" ,gvfs)
9171 ("mutter" ,mutter)
9172 ("orca" ,orca)
9173 ("rygel" ,rygel)
9174 ("sushi" ,sushi)
9175 ;; GNOME-Core-Utilities
9176 ("baobab" ,baobab)
9177 ("cheese" ,cheese)
9178 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9179 ;; only works on x86_64, so exclude it on other architectures.
9180 ,@(if (string-prefix? "x86_64" (%current-system))
9181 `(("eog" ,eog))
9182 '())
9183 ("epiphany" ,epiphany)
9184 ("evince" ,evince)
9185 ("file-roller" ,file-roller)
9186 ("gedit" ,gedit)
9187 ("gnome-boxes" ,gnome-boxes)
9188 ("gnome-calculator" ,gnome-calculator)
9189 ("gnome-calendar" ,gnome-calendar)
9190 ("gnome-characters" ,gnome-characters)
9191 ("gnome-clocks" ,gnome-clocks)
9192 ("gnome-contacts" ,gnome-contacts)
9193 ("gnome-disk-utility" ,gnome-disk-utility)
9194 ("gnome-font-viewer" ,gnome-font-viewer)
9195 ("gnome-maps" ,gnome-maps)
9196 ; TODO: ("gnome-music" ,gnome-music)
9197 ; TODO: ("gnome-photos" ,gnome-photos)
9198 ("gnome-screenshot" ,gnome-screenshot)
9199 ("gnome-system-monitor" ,gnome-system-monitor)
9200 ("gnome-terminal" ,gnome-terminal)
9201 ("gnome-weather" ,gnome-weather)
9202 ("nautilus" ,nautilus)
9203 ("simple-scan" ,simple-scan)
9204 ("totem" ,totem)
9205 ("yelp" ,yelp)
9206 ;; Others
9207 ("hicolor-icon-theme" ,hicolor-icon-theme)
9208 ("gnome-online-accounts" ,gnome-online-accounts)
9209
9210 ;; Packages not part of GNOME proper but that are needed for a good
9211 ;; experience. See <https://bugs.gnu.org/39646>.
9212 ;; XXX: Find out exactly which ones are needed and why.
9213 ("font-cantarell" ,font-cantarell)
9214 ("font-dejavu" ,font-dejavu)
9215 ("at-spi2-core" ,at-spi2-core)
9216 ("dbus" ,dbus)
9217 ("dconf" ,dconf)
9218 ("desktop-file-utils" ,desktop-file-utils)
9219 ("gnome-default-applications" ,gnome-default-applications)
9220 ("gnome-themes-standard" ,gnome-themes-standard)
9221 ("gst-plugins-base" ,gst-plugins-base)
9222 ("gst-plugins-good" ,gst-plugins-good)
9223 ("gucharmap" ,gucharmap)
9224 ("pinentry-gnome3" ,pinentry-gnome3)
9225 ("pulseaudio" ,pulseaudio)
9226 ("shared-mime-info" ,shared-mime-info)
9227 ("system-config-printer" ,system-config-printer)
9228 ("xdg-user-dirs" ,xdg-user-dirs)
9229 ("yelp" ,yelp)
9230 ("zenity" ,zenity)))
9231 (synopsis "The GNU desktop environment")
9232 (home-page "https://www.gnome.org/")
9233 (description
9234 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9235 applications for browsing the web, editing text and images, creating
9236 documents and diagrams, playing media, scanning, and much more.")
9237 (license license:gpl2+)))
9238
9239 (define-public byzanz
9240 ;; The last stable release of Byzanz was in 2011, but there have been many
9241 ;; useful commits made to the Byzanz repository since then that it would be
9242 ;; silly to use such an old release.
9243 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9244 (package
9245 (name "byzanz")
9246 (version (string-append "0.2-1." (string-take commit 7)))
9247 (source (origin
9248 (method git-fetch)
9249 (uri (git-reference
9250 (url "https://git.gnome.org/browse/byzanz")
9251 (commit commit)))
9252 (file-name (string-append name "-" version "-checkout"))
9253 (sha256
9254 (base32
9255 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9256 (build-system glib-or-gtk-build-system)
9257 (arguments
9258 '(#:phases
9259 (modify-phases %standard-phases
9260 (add-before 'bootstrap 'build-without-Werror
9261 (lambda _
9262 ;; The build system cleverly detects that we're not building from
9263 ;; a release tarball and turns on -Werror for GCC.
9264 ;; Unsurprisingly, there is a warning during compilation that
9265 ;; causes the build to fail unnecessarily, so we remove the flag.
9266 (substitute* '("configure.ac")
9267 (("-Werror") ""))
9268 #t)))))
9269 (native-inputs
9270 `(("autoconf" ,autoconf)
9271 ("automake" ,automake)
9272 ("gnome-common" ,gnome-common)
9273 ("intltool" ,intltool)
9274 ("libtool" ,libtool)
9275 ("pkg-config" ,pkg-config)
9276 ("which" ,which)))
9277 (inputs
9278 `(("glib" ,glib)
9279 ("gstreamer" ,gstreamer)
9280 ("gst-plugins-base" ,gst-plugins-base)
9281 ("gtk+" ,gtk+)))
9282 (synopsis "Desktop recording program")
9283 (description "Byzanz is a simple desktop recording program with a
9284 command-line interface. It can record part or all of an X display for a
9285 specified duration and save it as a GIF encoded animated image file.")
9286 (home-page "https://git.gnome.org/browse/byzanz")
9287 (license license:gpl2+))))
9288
9289 (define-public authenticator
9290 (package
9291 (name "authenticator")
9292 (version "3.32.2")
9293 (source
9294 (origin
9295 (method git-fetch)
9296 (uri (git-reference
9297 (url "https://gitlab.gnome.org/World/Authenticator")
9298 (commit version)))
9299 (file-name (git-file-name name version))
9300 (sha256
9301 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9302 (build-system meson-build-system)
9303 (arguments
9304 `(#:glib-or-gtk? #t
9305 #:phases
9306 (modify-phases %standard-phases
9307 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9308 (lambda* (#:key inputs outputs #:allow-other-keys)
9309 (let ((prog (string-append (assoc-ref outputs "out")
9310 "/bin/authenticator"))
9311 (pylib (string-append (assoc-ref outputs "out")
9312 "/lib/python"
9313 ,(version-major+minor
9314 (package-version python))
9315 "/site-packages")))
9316 (wrap-program prog
9317 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
9318 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9319 #t))))))
9320 (native-inputs
9321 `(("desktop-file-utils" ,desktop-file-utils)
9322 ("gettext" ,gettext-minimal)
9323 ("glib:bin" ,glib "bin")
9324 ("gobject-introspection" ,gobject-introspection)
9325 ("gtk+:bin" ,gtk+ "bin")
9326 ("pkg-config" ,pkg-config)))
9327 (inputs
9328 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9329 ("gtk+" ,gtk+)
9330 ("libhandy" ,libhandy-0.0)
9331 ("libsecret" ,libsecret)
9332 ("python-beautifulsoup4" ,python-beautifulsoup4)
9333 ("python-pillow" ,python-pillow)
9334 ("python-pyfavicon" ,python-pyfavicon)
9335 ("python-pygobject" ,python-pygobject)
9336 ("python-pyotp" ,python-pyotp)
9337 ("python-pyzbar" ,python-pyzbar)
9338 ("yoyo-migrations" ,yoyo-migrations)
9339 ("zbar" ,zbar)))
9340 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9341 (synopsis "Two-factor authentication application built for GNOME")
9342 (description
9343 "Authenticator is a two-factor authentication (2FA) application built for
9344 the GNOME desktop environment.
9345
9346 Features:
9347
9348 @itemize
9349 @item QR code scanner
9350 @item Beautiful UI
9351 @item Huge database of more than 560 supported services
9352 @item Keep your PIN tokens secure by locking the application with a password
9353 @item Automatically fetch an image for services using their favicon
9354 @item The possibility to add new services
9355 @end itemize")
9356 (license license:gpl3+)))
9357
9358 (define-public gsound
9359 (package
9360 (name "gsound")
9361 (version "1.0.2")
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 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9370 (build-system glib-or-gtk-build-system)
9371 (native-inputs
9372 `(("pkg-config" ,pkg-config)
9373 ("gobject-introspection" ,gobject-introspection)
9374 ("vala" ,vala)))
9375 (inputs
9376 `(("glib" ,glib)
9377 ("libcanberra" ,libcanberra)))
9378 (home-page "https://wiki.gnome.org/Projects/GSound")
9379 (synopsis "GObject wrapper for libcanberra")
9380 (description
9381 "GSound is a small library for playing system sounds. It's designed to be
9382 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9383 library.")
9384 (license license:lgpl2.1+)))
9385
9386 (define-public libzapojit
9387 (package
9388 (name "libzapojit")
9389 (version "0.0.3")
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 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9398 (build-system gnu-build-system)
9399 (native-inputs
9400 `(("gobject-introspection" ,gobject-introspection)
9401 ("intltool" ,intltool)
9402 ("pkg-config" ,pkg-config)))
9403 (inputs
9404 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9405 ("json-glib" ,json-glib)
9406 ("rest" ,rest)))
9407 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9408 (synopsis "Library for accessing SkyDrive and Hotmail")
9409 (description
9410 "Libzapojit is a GLib-based library for accessing online service APIs of
9411 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9412 (license license:lgpl2.1+)))
9413
9414 (define-public gnome-clocks
9415 (package
9416 (name "gnome-clocks")
9417 (version "3.34.0")
9418 (source (origin
9419 (method url-fetch)
9420 (uri (string-append "mirror://gnome/sources/" name "/"
9421 (version-major+minor version) "/"
9422 name "-" version ".tar.xz"))
9423 (sha256
9424 (base32
9425 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9426 (build-system meson-build-system)
9427 (arguments
9428 '(#:glib-or-gtk? #t
9429 #:phases
9430 (modify-phases %standard-phases
9431 (add-after 'unpack 'skip-gtk-update-icon-cache
9432 ;; Don't create 'icon-theme.cache'.
9433 (lambda _
9434 (substitute* "build-aux/post-install.py"
9435 (("gtk-update-icon-cache") "true"))
9436 #t)))))
9437 (native-inputs
9438 `(("vala" ,vala)
9439 ("pkg-config" ,pkg-config)
9440 ("glib" ,glib "bin") ; for glib-compile-resources
9441 ("desktop-file-utils" ,desktop-file-utils)
9442 ("gettext" ,gettext-minimal)
9443 ("itstool" ,itstool)))
9444 (inputs
9445 `(("glib" ,glib)
9446 ("gtk+" ,gtk+)
9447 ("gsound" ,gsound)
9448 ("geoclue" ,geoclue)
9449 ("geocode-glib" ,geocode-glib)
9450 ("libgweather" ,libgweather)
9451 ("gnome-desktop" ,gnome-desktop)))
9452 (home-page "https://wiki.gnome.org/Apps/Clocks")
9453 (synopsis "GNOME's clock application")
9454 (description
9455 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9456 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9457 (license license:gpl3+)))
9458
9459 (define-public gnome-calendar
9460 (package
9461 (name "gnome-calendar")
9462 (version "3.34.2")
9463 (source (origin
9464 (method url-fetch)
9465 (uri (string-append "mirror://gnome/sources/" name "/"
9466 (version-major+minor version) "/"
9467 name "-" version ".tar.xz"))
9468 (sha256
9469 (base32
9470 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9471 (build-system meson-build-system)
9472 (arguments
9473 '(#:glib-or-gtk? #t
9474 ;; gnome-calendar has to be installed before the tests can be run
9475 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9476 #:tests? #f
9477 #:phases
9478 (modify-phases %standard-phases
9479 (add-after 'unpack 'skip-gtk-update-icon-cache
9480 ;; Don't create 'icon-theme.cache'.
9481 (lambda _
9482 (substitute* "build-aux/meson/meson_post_install.py"
9483 (("gtk-update-icon-cache") "true"))
9484 #t)))))
9485 (native-inputs
9486 `(("gettext" ,gettext-minimal)
9487 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9488 ("pkg-config" ,pkg-config)))
9489 (inputs
9490 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9491 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9492 ("libdazzle" ,libdazzle)
9493 ("libedataserverui" ,evolution-data-server)
9494 ("libgweather" ,libgweather)
9495 ("geoclue" ,geoclue)))
9496 (propagated-inputs
9497 `(("evolution-data-server" ,evolution-data-server)))
9498 (home-page "https://wiki.gnome.org/Apps/Calendar")
9499 (synopsis "GNOME's calendar application")
9500 (description
9501 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9502 desktop. It supports multiple calendars, month, week and year view.")
9503 (license license:gpl3+)))
9504
9505 (define-public gnome-todo
9506 (package
9507 (name "gnome-todo")
9508 (version "3.28.1")
9509 (source (origin
9510 (method url-fetch)
9511 (uri (string-append "mirror://gnome/sources/" name "/"
9512 (version-major+minor version) "/"
9513 name "-" version ".tar.xz"))
9514 (sha256
9515 (base32
9516 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9517 (patches
9518 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9519 (build-system meson-build-system)
9520 (arguments
9521 '(#:glib-or-gtk? #t
9522 #:phases (modify-phases %standard-phases
9523 (add-after
9524 'install 'wrap-gnome-todo
9525 (lambda* (#:key inputs outputs #:allow-other-keys)
9526 (let ((out (assoc-ref outputs "out"))
9527 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9528 (python-path (getenv "GUIX_PYTHONPATH")))
9529 (wrap-program (string-append out "/bin/gnome-todo")
9530 ;; XXX: gi plugins are broken.
9531 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9532 ;; For plugins.
9533 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9534 `("GUIX_PYTHONPATH" ":" prefix (,python-path))))
9535 #t)))))
9536 (native-inputs
9537 `(("gettext" ,gettext-minimal)
9538 ("gobject-introspection" ,gobject-introspection)
9539 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9540 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9541 ("pkg-config" ,pkg-config)))
9542 (inputs
9543 `(("rest" ,rest) ; For Todoist plugin
9544 ("json-glib" ,json-glib) ; For Todoist plugin
9545 ("libedataserverui" ,evolution-data-server)
9546 ("libical" ,libical)
9547 ("libpeas" ,libpeas)
9548 ("python-pygobject" ,python-pygobject)
9549 ("evolution-data-server" ,evolution-data-server)
9550 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9551 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9552 (home-page "https://wiki.gnome.org/Apps/Todo")
9553 (synopsis "GNOME's ToDo Application")
9554 (description
9555 "GNOME To Do is a simplistic personal task manager designed to perfectly
9556 fit the GNOME desktop.")
9557 (license license:gpl3+)))
9558
9559 (define-public gnome-dictionary
9560 (package
9561 (name "gnome-dictionary")
9562 (version "3.26.1")
9563 (source (origin
9564 (method url-fetch)
9565 (uri (string-append "mirror://gnome/sources/" name "/"
9566 (version-major+minor version) "/"
9567 name "-" version ".tar.xz"))
9568 (sha256
9569 (base32
9570 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9571 (build-system meson-build-system)
9572 (arguments '(#:glib-or-gtk? #t
9573 #:phases (modify-phases %standard-phases
9574 (add-after 'unpack 'patch-install-script
9575 (lambda _
9576 ;; This script attempts to compile glib schemas
9577 ;; and create an empty MIME database. We do
9578 ;; that elsewhere, so prevent it from running.
9579 (substitute* "build-aux/post-install.sh"
9580 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9581 #t)))))
9582 (native-inputs
9583 `(("glib:bin" ,glib "bin")
9584 ("gobject-introspection" ,gobject-introspection)
9585 ("intltool" ,intltool)
9586 ("itstool" ,itstool)
9587 ("pkg-config" ,pkg-config)
9588 ("xmllint" ,libxml2)))
9589 (inputs
9590 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9591 ("gtk+" ,gtk+)))
9592 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9593 (synopsis "Look up words in dictionary sources")
9594 (description
9595 "GNOME Dictionary can look for the definition or translation of a word in
9596 existing databases over the internet.")
9597 (license license:gpl3+)))
9598
9599 (define-public gnome-tweaks
9600 (package
9601 (name "gnome-tweaks")
9602 (version "3.34.1")
9603 (source (origin
9604 (method url-fetch)
9605 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9606 (version-major+minor version) "/"
9607 "gnome-tweaks-" version ".tar.xz"))
9608 (patches
9609 (list (search-patch "gnome-tweaks-search-paths.patch")))
9610 (sha256
9611 (base32
9612 "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq"))))
9613 (build-system meson-build-system)
9614 (arguments
9615 `(#:glib-or-gtk? #t
9616 #:configure-flags '("-Dlocalstatedir=/tmp"
9617 "-Dsysconfdir=/tmp")
9618 #:imported-modules ((guix build python-build-system)
9619 ,@%meson-build-system-modules)
9620 #:phases
9621 (modify-phases %standard-phases
9622 (add-after 'unpack 'skip-gtk-update-icon-cache
9623 ;; Don't create 'icon-theme.cache'.
9624 (lambda _
9625 (substitute* "meson-postinstall.py"
9626 (("gtk-update-icon-cache") "true"))
9627 #t))
9628 (add-after 'install 'wrap
9629 (@@ (guix build python-build-system) wrap))
9630 (add-after 'wrap 'wrap-gi-typelib
9631 (lambda* (#:key inputs outputs #:allow-other-keys)
9632 (let ((out (assoc-ref outputs "out"))
9633 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9634 (wrap-program (string-append out "/bin/gnome-tweaks")
9635 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9636 #t)))))
9637 (native-inputs
9638 `(("intltool" ,intltool)
9639 ("pkg-config" ,pkg-config)))
9640 (inputs
9641 `(("gnome-desktop" ,gnome-desktop)
9642 ("gtk+" ,gtk+)
9643 ("gobject-introspection" ,gobject-introspection)
9644 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9645 ("libhandy" ,libhandy-0.0)
9646 ("libnotify" ,libnotify)
9647 ("libsoup" ,libsoup)
9648 ("nautilus" ,nautilus)
9649 ("python" ,python)
9650 ("python-pygobject" ,python-pygobject)))
9651 (synopsis "Customize advanced GNOME 3 options")
9652 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9653 (description
9654 "GNOME Tweaks allows adjusting advanced configuration settings in
9655 GNOME 3. This includes things like the fonts used in user interface elements,
9656 alternative user interface themes, changes in window management behavior,
9657 GNOME Shell appearance and extension, etc.")
9658 (license license:gpl3+)))
9659
9660 (define-public gnome-shell-extensions
9661 (package
9662 (name "gnome-shell-extensions")
9663 (version "3.34.2")
9664 (source (origin
9665 (method url-fetch)
9666 (uri (string-append "mirror://gnome/sources/" name "/"
9667 (version-major+minor version) "/"
9668 name "-" version ".tar.xz"))
9669 (sha256
9670 (base32
9671 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9672 (build-system meson-build-system)
9673 (arguments
9674 '(#:configure-flags '("-Dextension_set=all")))
9675 (native-inputs
9676 `(("glib:bin" ,glib "bin")
9677 ("intltool" ,intltool)
9678 ("pkg-config" ,pkg-config)))
9679 (propagated-inputs
9680 `(("glib" ,glib)))
9681 (synopsis "Extensions for GNOME Shell")
9682 (description "GNOME Shell extensions modify and extend GNOME Shell
9683 functionality and behavior.")
9684 (home-page "https://extensions.gnome.org/")
9685 (license license:gpl3+)))
9686
9687 (define-public folks
9688 (package
9689 (name "folks")
9690 (version "0.13.1")
9691 (source (origin
9692 (method url-fetch)
9693 (uri (string-append
9694 "mirror://gnome/sources/folks/"
9695 (version-major+minor version) "/"
9696 "folks-" version ".tar.xz"))
9697 (sha256
9698 (base32
9699 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9700 (build-system meson-build-system)
9701 (arguments
9702 '(#:phases
9703 (modify-phases %standard-phases
9704 (add-after 'unpack 'skip-gtk-update-icon-cache
9705 ;; Don't create 'icon-theme.cache'.
9706 (lambda _
9707 (substitute* "meson_post_install.py"
9708 (("gtk-update-icon-cache") "true"))
9709 #t)))))
9710 (inputs
9711 `(("bdb" ,bdb)
9712 ("dbus-glib" ,dbus-glib)
9713 ("evolution-data-server" ,evolution-data-server)
9714 ("glib" ,glib)
9715 ("libgee" ,libgee)
9716 ("readline" ,readline)
9717 ("telepathy-glib" ,telepathy-glib)))
9718 (native-inputs
9719 `(("glib:bin" ,glib "bin")
9720 ("gobject-introspection" ,gobject-introspection)
9721 ("intltool" ,intltool)
9722 ("pkg-config" ,pkg-config)
9723 ("vala" ,vala)))
9724 (synopsis "Library to aggregate data about people")
9725 (description "Libfolks is a library that aggregates information about people
9726 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9727 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9728 etc.) to create metacontacts. It's written in Vala, which generates C code when
9729 compiled.")
9730 (home-page "https://wiki.gnome.org/Projects/Folks")
9731 (license license:lgpl2.1+)))
9732
9733 (define-public gfbgraph
9734 (package
9735 (name "gfbgraph")
9736 (version "0.2.4")
9737 (source (origin
9738 (method url-fetch)
9739 (uri (string-append
9740 "mirror://gnome/sources/gfbgraph/"
9741 (version-major+minor version) "/"
9742 "gfbgraph-" version ".tar.xz"))
9743 (sha256
9744 (base32
9745 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9746 (build-system glib-or-gtk-build-system)
9747 (arguments
9748 `(#:tests? #f ; tests appear to require the network
9749 #:configure-flags '("--disable-static"
9750 "--enable-gtk-doc"
9751 "--enable-introspection")))
9752 (native-inputs
9753 `(("gobject-introspection" ,gobject-introspection)
9754 ("gtk-doc" ,gtk-doc/stable)
9755 ("pkg-config" ,pkg-config)
9756
9757 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9758 ("autoconf" ,autoconf)
9759 ("automake" ,automake)
9760 ("libtool" ,libtool)
9761 ("which" ,which)))
9762 (inputs
9763 `(("json-glib" ,json-glib)
9764 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9765 ("rest" ,rest)))
9766 (synopsis "GLib/GObject wrapper for the Facebook API")
9767 (description "This library allows you to use the Facebook API from
9768 GLib/GObject code.")
9769 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9770 (license license:lgpl2.1+)))
9771
9772 (define-public libgnomekbd
9773 (package
9774 (name "libgnomekbd")
9775 (version "3.26.1")
9776 (source (origin
9777 (method url-fetch)
9778 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9779 (version-major+minor version) "/"
9780 "libgnomekbd-" version ".tar.xz"))
9781 (sha256
9782 (base32
9783 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9784 (build-system gnu-build-system)
9785 (native-inputs
9786 `(("pkg-config" ,pkg-config)
9787 ("glib" ,glib "bin")
9788 ("intltool" ,intltool)))
9789 (propagated-inputs
9790 ;; Referred to in .h files and .pc.
9791 `(("glib" ,glib)
9792 ("gtk+" ,gtk+)
9793 ("libxklavier" ,libxklavier)))
9794 (home-page "https://www.gnome.org")
9795 (synopsis "GNOME keyboard configuration library")
9796 (description
9797 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9798 environment, which can notably display keyboard layouts.")
9799 (license license:lgpl2.0+)))
9800
9801 ;;; This package is no longer maintained:
9802 ;;; https://wiki.gnome.org/Attic/LibUnique
9803 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9804 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9805 (define-public libunique
9806 (package
9807 (name "libunique")
9808 (version "3.0.2")
9809 (source (origin
9810 (method url-fetch)
9811 (uri (string-append "mirror://gnome/sources/" name "/"
9812 (version-major+minor version) "/"
9813 name "-" version ".tar.xz"))
9814 (sha256
9815 (base32
9816 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9817 (build-system glib-or-gtk-build-system)
9818 (arguments
9819 `(#:configure-flags '("--disable-static"
9820 "--disable-dbus" ; use gdbus
9821 "--enable-introspection")))
9822 (native-inputs
9823 `(("pkg-config" ,pkg-config)
9824 ("gobject-introspection" ,gobject-introspection)
9825 ("glib:bin" ,glib "bin")
9826 ("gtk-doc" ,gtk-doc/stable)))
9827 (propagated-inputs
9828 ;; Referred to in .h files and .pc.
9829 `(("gtk+" ,gtk+)))
9830 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9831 (synopsis "Library for writing single instance applications")
9832 (description
9833 "Libunique is a library for writing single instance applications. If you
9834 launch a single instance application twice, the second instance will either just
9835 quit or will send a message to the running instance. Libunique makes it easy to
9836 write this kind of application, by providing a base class, taking care of all
9837 the IPC machinery needed to send messages to a running instance, and also
9838 handling the startup notification side.")
9839 (license license:lgpl2.1+)))
9840
9841 (define-public gnome-calculator
9842 (package
9843 (name "gnome-calculator")
9844 (version "3.36.0")
9845 (source
9846 (origin
9847 (method url-fetch)
9848 (uri (string-append "mirror://gnome/sources/" name "/"
9849 (version-major+minor version) "/"
9850 name "-" version ".tar.xz"))
9851 (sha256
9852 (base32
9853 "1cqd4b25qp1i0p04m669jssg1l5sdapc1mniv9jssvw5r7wk1s52"))))
9854 (build-system meson-build-system)
9855 (arguments '(#:glib-or-gtk? #t))
9856 (native-inputs
9857 `(("gettext" ,gettext-minimal)
9858 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9859 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9860 ("itstool" ,itstool)
9861 ("vala" ,vala)
9862 ("pkg-config" ,pkg-config)))
9863 (inputs
9864 `(("glib" ,glib)
9865 ("gtksourceview" ,gtksourceview)
9866 ("libgee" ,libgee)
9867 ("libsoup" ,libsoup)
9868 ("libxml2" ,libxml2)
9869 ("mpc" ,mpc)
9870 ("mpfr" ,mpfr)))
9871 (home-page "https://wiki.gnome.org/Apps/Calculator")
9872 (synopsis "Desktop calculator")
9873 (description
9874 "Calculator is an application that solves mathematical equations and
9875 is suitable as a default application in a Desktop environment.")
9876 (license license:gpl3)))
9877
9878 (define-public xpad
9879 (package
9880 (name "xpad")
9881 (version "5.1.0")
9882 (source
9883 (origin
9884 (method url-fetch)
9885 (uri (string-append "https://launchpad.net/xpad/trunk/"
9886 version "/+download/"
9887 name "-" version ".tar.bz2"))
9888 (sha256
9889 (base32
9890 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9891 (build-system gnu-build-system)
9892 (native-inputs
9893 `(("autoconf" ,autoconf)
9894 ("automake" ,automake)
9895 ("gtk+:bin" ,gtk+ "bin")
9896 ("intltool" ,intltool)
9897 ("pkg-config" ,pkg-config)))
9898 (inputs
9899 `(("gtksourceview" ,gtksourceview-3)
9900 ("libsm" ,libsm)))
9901 (home-page "https://wiki.gnome.org/Apps/Xpad")
9902 (synopsis "Virtual sticky note")
9903 (description
9904 "Xpad is a sticky note that strives to be simple, fault tolerant,
9905 and customizable. Xpad consists of independent pad windows, each is
9906 basically a text box in which notes can be written.")
9907 (license license:gpl3+)))
9908
9909 (define-public gucharmap
9910 (let ((unicode-files
9911 '(("Blocks.txt"
9912 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9913 ("DerivedAge.txt"
9914 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9915 ("NamesList.txt"
9916 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9917 ("Scripts.txt"
9918 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9919 ("UnicodeData.txt"
9920 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9921 ("Unihan.zip"
9922 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9923 (package
9924 (name "gucharmap")
9925 (version "12.0.1")
9926 (source
9927 (origin
9928 (method url-fetch)
9929 (uri (string-append "mirror://gnome/sources/" name "/"
9930 (version-major+minor version) "/"
9931 name "-" version ".tar.xz"))
9932 (sha256
9933 (base32
9934 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9935 (build-system glib-or-gtk-build-system)
9936 (arguments
9937 `(#:modules ((ice-9 match)
9938 (guix build glib-or-gtk-build-system)
9939 (guix build utils))
9940 #:configure-flags
9941 (list "--with-unicode-data=../unicode-data")
9942 #:phases
9943 (modify-phases %standard-phases
9944 (add-after 'unpack 'prepare-unicode-data
9945 (lambda* (#:key inputs #:allow-other-keys)
9946 (mkdir-p "../unicode-data")
9947 (with-directory-excursion "../unicode-data"
9948 (for-each (match-lambda
9949 ((file _)
9950 (install-file (assoc-ref inputs file) ".")))
9951 ',unicode-files))
9952 #t)))))
9953 (native-inputs
9954 `(("desktop-file-utils" ,desktop-file-utils)
9955 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9956 ("gobject-introspection" ,gobject-introspection)
9957 ("intltool" ,intltool)
9958 ("itstool" ,itstool)
9959 ("pkg-config" ,pkg-config)
9960 ,@(map (match-lambda
9961 ((file hash)
9962 `(,file
9963 ,(origin
9964 (method url-fetch)
9965 (uri (string-append
9966 "http://www.unicode.org/Public/12.0.0/ucd/"
9967 file))
9968 (sha256 (base32 hash))))))
9969 unicode-files)
9970 ("unzip" ,unzip)))
9971 (inputs
9972 `(("gtk+" ,gtk+)
9973 ("xmllint" ,libxml2)))
9974 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9975 (synopsis "Unicode character picker and font browser")
9976 (description
9977 "This program allows you to browse through all the available Unicode
9978 characters and categories for the installed fonts, and to examine their
9979 detailed properties. It is an easy way to find the character you might
9980 only know by its Unicode name or code point.")
9981 (license license:gpl3+))))
9982
9983 (define-public gcolor3
9984 (package
9985 (name "gcolor3")
9986 (version "2.4.0")
9987 (source
9988 (origin
9989 (method git-fetch)
9990 (uri (git-reference
9991 (url "https://gitlab.gnome.org/World/gcolor3")
9992 (commit (string-append "v" version))))
9993 (file-name (git-file-name name version))
9994 (sha256
9995 (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc"))))
9996 (build-system meson-build-system)
9997 (arguments
9998 `(#:glib-or-gtk? #t))
9999 (native-inputs
10000 `(("desktop-file-utils" ,desktop-file-utils)
10001 ("gettext" ,gettext-minimal)
10002 ("glib:bin" ,glib "bin")
10003 ("gtk+:bin" ,gtk+ "bin")
10004 ("pkg-config" ,pkg-config)))
10005 (inputs
10006 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10007 ("gtk+" ,gtk+)
10008 ("libportal" ,libportal)))
10009 (home-page "https://www.hjdskes.nl/projects/gcolor3/")
10010 (synopsis "Simple color chooser written in GTK3")
10011 (description "Color Picker is a simple color chooser written in GTK3. It
10012 supports both X and Wayland display servers.")
10013 (license license:gpl2+)))
10014
10015 (define-public bluefish
10016 (package
10017 (name "bluefish")
10018 (version "2.2.12")
10019 (source
10020 (origin
10021 (method url-fetch)
10022 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
10023 "bluefish-" version ".tar.gz"))
10024 (sha256
10025 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
10026 (build-system gnu-build-system)
10027 (native-inputs
10028 `(("desktop-file-utils" ,desktop-file-utils)
10029 ("intltool" ,intltool)
10030 ("pkg-config" ,pkg-config)))
10031 (inputs
10032 `(("enchant" ,enchant)
10033 ("gtk+" ,gtk+)
10034 ("python" ,python-wrapper)
10035 ("xmllint" ,libxml2)
10036 ("gucharmap" ,gucharmap)))
10037 (home-page "http://bluefish.openoffice.nl")
10038 (synopsis "Web development studio")
10039 (description
10040 "Bluefish is an editor aimed at programmers and web developers,
10041 with many options to write web sites, scripts and other code.
10042 Bluefish supports many programming and markup languages.")
10043 (license license:gpl3+)))
10044
10045 (define-public gnome-system-monitor
10046 (package
10047 (name "gnome-system-monitor")
10048 (version "3.32.1")
10049 (source
10050 (origin
10051 (method url-fetch)
10052 (uri (string-append "mirror://gnome/sources/" name "/"
10053 (version-major+minor version) "/"
10054 name "-" version ".tar.xz"))
10055 (sha256
10056 (base32
10057 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
10058 (build-system meson-build-system)
10059 (arguments
10060 '(#:glib-or-gtk? #t
10061 #:configure-flags '("-Dsystemd=false")))
10062 (native-inputs
10063 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
10064 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
10065 ("intltool" ,intltool)
10066 ("itstool" ,itstool)
10067 ("libgtop" ,libgtop)
10068 ("polkit" ,polkit)
10069 ("pkg-config" ,pkg-config)))
10070 (inputs
10071 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
10072 ("gtk+" ,gtk+)
10073 ("gtkmm" ,gtkmm)
10074 ("librsvg" ,librsvg)
10075 ("libxml2" ,libxml2)
10076 ("libwnck" ,libwnck)))
10077 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10078 (synopsis "Process viewer and system resource monitor for GNOME")
10079 (description
10080 "GNOME System Monitor is a GNOME process viewer and system monitor with
10081 an attractive, easy-to-use interface. It has features, such as a tree view
10082 for process dependencies, icons for processes, the ability to hide processes,
10083 graphical time histories of CPU/memory/swap usage and the ability to
10084 kill/reinice processes.")
10085 (license license:gpl2+)))
10086
10087 (define-public python-pyatspi
10088 (package
10089 (name "python-pyatspi")
10090 (version "2.34.0")
10091 (source (origin
10092 (method url-fetch)
10093 (uri (string-append
10094 "mirror://gnome/sources/pyatspi/"
10095 (version-major+minor version)
10096 "/pyatspi-" version ".tar.xz"))
10097 (sha256
10098 (base32
10099 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10100 (build-system gnu-build-system)
10101 (arguments
10102 `(#:phases
10103 (modify-phases %standard-phases
10104 (add-before 'build 'fix-atk-load
10105 (lambda _
10106 (substitute* "pyatspi/__init__.py"
10107 (("from gi.repository import Atspi")
10108 "gi.require_version('Gtk', '3.0')
10109 from gi.repository import Gtk
10110 from gi.repository import Atspi"))
10111 #t)))))
10112 (native-inputs
10113 `(("pkg-config" ,pkg-config)))
10114 (inputs
10115 `(("python" ,python)))
10116 (propagated-inputs
10117 `(("python-pygobject" ,python-pygobject)))
10118 (synopsis "Python client bindings for D-Bus AT-SPI")
10119 (home-page "https://wiki.linuxfoundation.org/accessibility\
10120 /atk/at-spi/at-spi_on_d-bus")
10121 (description
10122 "This package includes a python client library for the AT-SPI D-Bus
10123 accessibility infrastructure.")
10124 (license license:lgpl2.0)
10125 (properties '((upstream-name . "pyatspi")))))
10126
10127 (define-public python2-pyatspi
10128 (package/inherit python-pyatspi
10129 (name "python2-pyatspi")
10130 (inputs
10131 `(("python" ,python-2)))
10132 (propagated-inputs
10133 `(("python-pygobject" ,python2-pygobject)))))
10134
10135 (define-public orca
10136 (package
10137 (name "orca")
10138 (version "3.34.1")
10139 (source (origin
10140 (method url-fetch)
10141 (uri (string-append
10142 "mirror://gnome/sources/" name "/"
10143 (version-major+minor version) "/"
10144 name "-" version ".tar.xz"))
10145 (sha256
10146 (base32
10147 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
10148 (build-system glib-or-gtk-build-system)
10149 (arguments
10150 '(#:phases
10151 (modify-phases %standard-phases
10152 (add-before 'configure 'qualify-xkbcomp
10153 (lambda* (#:key inputs #:allow-other-keys)
10154 (let ((xkbcomp (string-append
10155 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10156 (substitute* "src/orca/orca.py"
10157 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
10158 #t))
10159 (add-after 'install 'wrap-orca
10160 (lambda* (#:key outputs #:allow-other-keys)
10161 (let* ((out (assoc-ref outputs "out"))
10162 (prog (string-append out "/bin/orca")))
10163 (wrap-program prog
10164 `("GI_TYPELIB_PATH" ":" prefix
10165 (,(getenv "GI_TYPELIB_PATH")))
10166 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10167 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10168 `("GUIX_PYTHONPATH" ":" prefix
10169 (,(getenv "GUIX_PYTHONPATH")))))
10170 #t)))))
10171 (native-inputs
10172 `(("intltool" ,intltool)
10173 ("itstool" ,itstool)
10174 ("pkg-config" ,pkg-config)
10175 ("xmllint" ,libxml2)))
10176 (inputs
10177 `(("at-spi2-atk" ,at-spi2-atk)
10178 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10179 ("gstreamer" ,gstreamer)
10180 ("gst-plugins-base" ,gst-plugins-base)
10181 ("gst-plugins-good" ,gst-plugins-good)
10182 ("gtk+" ,gtk+)
10183 ("python" ,python)
10184 ("python-pygobject" ,python-pygobject)
10185 ("python-pyatspi" ,python-pyatspi)
10186 ("python-speechd" ,speech-dispatcher)
10187 ("xkbcomp" ,xkbcomp)))
10188 (synopsis
10189 "Screen reader for individuals who are blind or visually impaired")
10190 (home-page "https://wiki.gnome.org/Projects/Orca")
10191 (description
10192 "Orca is a screen reader that provides access to the graphical desktop
10193 via speech and refreshable braille. Orca works with applications and toolkits
10194 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10195 (license license:lgpl2.1+)))
10196
10197 (define-public gspell
10198 (package
10199 (name "gspell")
10200 (version "1.8.2")
10201 (source (origin
10202 (method url-fetch)
10203 (uri (string-append "mirror://gnome/sources/" name "/"
10204 (version-major+minor version) "/"
10205 name "-" version ".tar.xz"))
10206 (sha256
10207 (base32
10208 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10209 (patches (search-patches "gspell-dash-test.patch"))))
10210 (build-system glib-or-gtk-build-system)
10211 (arguments
10212 '(#:configure-flags (list "--enable-vala")
10213 #:phases
10214 (modify-phases %standard-phases
10215 (add-before 'check 'pre-check
10216 (lambda* (#:key inputs #:allow-other-keys)
10217 ;; Tests require a running X server.
10218 (system "Xvfb :1 &")
10219 (setenv "DISPLAY" ":1")
10220
10221 ;; For the missing /etc/machine-id.
10222 (setenv "DBUS_FATAL_WARNINGS" "0")
10223
10224 ;; Allow Enchant and its Aspell backend to find the en_US
10225 ;; dictionary.
10226 (setenv "ASPELL_DICT_DIR"
10227 (search-input-directory inputs "/lib/aspell")))))))
10228 (inputs
10229 `(("iso-codes" ,iso-codes)))
10230 (native-inputs
10231 `(("glib" ,glib "bin")
10232 ("gobject-introspection" ,gobject-introspection)
10233 ("pkg-config" ,pkg-config)
10234 ("vala" ,vala) ;for VAPI, needed by Geary
10235 ("xmllint" ,libxml2)
10236
10237 ;; For tests.
10238 ("aspell-dict-en" ,aspell-dict-en)
10239 ("xorg-server" ,xorg-server-for-tests)))
10240 (propagated-inputs
10241 ;; Referred by .pc file.
10242 `(("enchant" ,enchant)
10243 ("glib" ,glib)
10244 ("gtk+" ,gtk+)))
10245 (home-page "https://wiki.gnome.org/Projects/gspell")
10246 (synopsis "GNOME's alternative spell checker")
10247 (description
10248 "gspell provides a flexible API to add spell-checking to a GTK+
10249 application. It provides a GObject API, spell-checking to text entries and
10250 text views, and buttons to choose the language.")
10251 (license license:gpl2+)))
10252
10253 (define-public gnome-planner
10254 (package
10255 (name "gnome-planner")
10256 (version "0.14.6")
10257 (source (origin
10258 (method url-fetch)
10259 (uri (string-append "mirror://gnome/sources/planner/"
10260 (version-major+minor version) "/planner-"
10261 version ".tar.xz"))
10262 (sha256
10263 (base32
10264 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10265 (build-system glib-or-gtk-build-system)
10266 (arguments
10267 ;; Disable the Python bindings because the Planner program functions
10268 ;; without them, and (as of 2017-06-13) we have not packaged all of
10269 ;; packages that are necessary for building the Python bindings.
10270 `(#:configure-flags
10271 (list "--disable-python"
10272 ,@(if (string=? "aarch64-linux" (%current-system))
10273 '("--build=aarch64-unknown-linux-gnu")
10274 '()))))
10275 (inputs
10276 `(("libgnomecanvas" ,libgnomecanvas)
10277 ("libgnomeui" ,libgnomeui)
10278 ("libglade" ,libglade)
10279 ("gnome-vfs" ,gnome-vfs)
10280 ("gconf" ,gconf)
10281 ("libxml2" ,libxml2)
10282 ("libxslt" ,libxslt)
10283 ("gtk+" ,gtk+)
10284 ("glib" ,glib)))
10285 (native-inputs
10286 `(("intltool" ,intltool)
10287 ("scrollkeeper" ,scrollkeeper)
10288 ("pkg-config" ,pkg-config)))
10289 (home-page "https://wiki.gnome.org/Apps/Planner")
10290 (synopsis "Project management software for the GNOME desktop")
10291 (description
10292 "GNOME Planner is a project management tool based on the Work Breakdown
10293 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10294 the resources, tasks, and constraints that you define, Planner generates
10295 various views into a project. For example, Planner can show a Gantt chart of
10296 the project. It can show a detailed summary of tasks including their
10297 duration, cost, and current progress. It can also show a report of resource
10298 utilization that highlights under-utilized and over-utilized resources. These
10299 views can be printed as PDF or PostScript files, or exported to HTML.")
10300 (license license:gpl2+)))
10301
10302 (define-public lollypop
10303 (package
10304 (name "lollypop")
10305 (version "1.4.6")
10306 (source
10307 (origin
10308 (method url-fetch)
10309 (uri (string-append "https://adishatz.org/lollypop/"
10310 "lollypop-" version ".tar.xz"))
10311 (sha256
10312 (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
10313 (build-system meson-build-system)
10314 (arguments
10315 `(#:imported-modules
10316 (,@%meson-build-system-modules
10317 (guix build python-build-system))
10318 #:modules
10319 ((guix build meson-build-system)
10320 ((guix build python-build-system) #:prefix python:)
10321 (guix build utils))
10322 #:glib-or-gtk? #t
10323 #:tests? #f ; no test suite
10324 #:phases
10325 (modify-phases %standard-phases
10326 (add-after 'install 'wrap-program
10327 (lambda* (#:key outputs #:allow-other-keys)
10328 (let ((out (assoc-ref outputs "out"))
10329 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10330 (wrap-program (string-append out "/bin/lollypop")
10331 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10332 #t))
10333 (add-after 'install 'wrap-python
10334 (assoc-ref python:%standard-phases 'wrap)))))
10335 (native-inputs
10336 `(("intltool" ,intltool)
10337 ("itstool" ,itstool)
10338 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10339 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10340 ("pkg-config" ,pkg-config)))
10341 (inputs
10342 `(("glib-networking" ,glib-networking)
10343 ("gobject-introspection" ,gobject-introspection)
10344 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10345 ("gst-plugins-base" ,gst-plugins-base)
10346 ("libnotify" ,libnotify)
10347 ("libsecret" ,libsecret)
10348 ("libhandy" ,libhandy)
10349 ("libsoup" ,libsoup)
10350 ("python" ,python)
10351 ("python-beautifulsoup4" ,python-beautifulsoup4)
10352 ("python-gst" ,python-gst)
10353 ("python-pil" ,python-pillow)
10354 ("python-pycairo" ,python-pycairo)
10355 ("python-pygobject" ,python-pygobject)
10356 ("python-pylast" ,python-pylast)
10357 ("totem-pl-parser" ,totem-pl-parser)
10358 ("webkitgtk" ,webkitgtk)))
10359 (propagated-inputs
10360 `(;; gst-plugins-base is required to start Lollypop,
10361 ;; the others are required to play streaming.
10362 ("gst-plugins-good" ,gst-plugins-good)
10363 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10364 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10365 (synopsis "GNOME music playing application")
10366 (description
10367 "Lollypop is a music player designed to play well with GNOME desktop.
10368 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10369 from artists and tracks from the web. It also fetches cover artworks
10370 automatically and it can stream songs from online music services and charts.")
10371 (license license:gpl3+)))
10372
10373 (define-public gnome-video-effects
10374 (package
10375 (name "gnome-video-effects")
10376 (version "0.5.0")
10377 (source (origin
10378 (method url-fetch)
10379 (uri (string-append "mirror://gnome/sources/" name "/"
10380 (version-major+minor version) "/" name "-"
10381 version ".tar.xz"))
10382 (sha256
10383 (base32
10384 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10385 (build-system meson-build-system)
10386 (native-inputs
10387 `(("gettext" ,gettext-minimal)
10388 ("pkg-config" ,pkg-config)))
10389 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10390 (synopsis "Video effects for Cheese and other GNOME applications")
10391 (description
10392 "A collection of GStreamer video filters and effects to be used in
10393 photo-booth-like software, such as Cheese.")
10394 (license license:gpl2+)))
10395
10396 (define-public cheese
10397 (package
10398 (name "cheese")
10399 (version "3.38.0")
10400 (source (origin
10401 (method url-fetch)
10402 (uri (string-append "mirror://gnome/sources/" name "/"
10403 (version-major+minor version) "/" name "-"
10404 version ".tar.xz"))
10405 (sha256
10406 (base32
10407 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10408 (arguments
10409 `(#:glib-or-gtk? #t
10410 ;; Tests require GDK.
10411 #:tests? #f
10412 #:phases
10413 (modify-phases %standard-phases
10414 (add-after 'unpack 'skip-gtk-update-icon-cache
10415 (lambda _
10416 ;; Don't create 'icon-theme.cache'
10417 (substitute* "meson_post_install.py"
10418 (("gtk-update-icon-cache") (which "true")))
10419 #t))
10420 (add-after 'unpack 'patch-docbook-xml
10421 (lambda* (#:key inputs #:allow-other-keys)
10422 ;; Avoid a network connection attempt during the build.
10423 (substitute* '("docs/reference/cheese.xml"
10424 "docs/reference/cheese-docs.xml")
10425 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10426 (string-append (assoc-ref inputs "docbook-xml")
10427 "/xml/dtd/docbook/docbookx.dtd")))
10428 #t))
10429 (add-after 'install 'wrap-cheese
10430 (lambda* (#:key inputs outputs #:allow-other-keys)
10431 (let ((out (assoc-ref outputs "out"))
10432 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10433 (wrap-program (string-append out "/bin/cheese")
10434 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10435 #t)))))
10436 (build-system meson-build-system)
10437 (native-inputs
10438 `(("docbook-xsl" ,docbook-xsl)
10439 ("docbook-xml" ,docbook-xml-4.3)
10440 ("gettext" ,gettext-minimal)
10441 ("glib:bin" ,glib "bin")
10442 ("gtk-doc" ,gtk-doc/stable)
10443 ("itstool" ,itstool)
10444 ("libxml2" ,libxml2)
10445 ("libxslt" ,libxslt)
10446 ("pkg-config" ,pkg-config)
10447 ("vala" ,vala)))
10448 (propagated-inputs
10449 `(("gnome-video-effects" ,gnome-video-effects)
10450 ("clutter" ,clutter)
10451 ("clutter-gst" ,clutter-gst)
10452 ("clutter-gtk" ,clutter-gtk)
10453 ("libcanberra" ,libcanberra)
10454 ("gdk-pixbuf" ,gdk-pixbuf)
10455 ("glib" ,glib)
10456 ("gstreamer" ,gstreamer)))
10457 (inputs
10458 `(("gnome-desktop" ,gnome-desktop)
10459 ("gobject-introspection" ,gobject-introspection)
10460 ("gst-plugins-base" ,gst-plugins-base)
10461 ("gst-plugins-good" ,gst-plugins-good)
10462 ("gst-plugins-bad" ,gst-plugins-bad)
10463 ("gtk+" ,gtk+)
10464 ("libx11" ,libx11)
10465 ("libxtst" ,libxtst)))
10466 (home-page "https://wiki.gnome.org/Apps/Cheese")
10467 (synopsis "Webcam photo booth software for GNOME")
10468 (description
10469 "Cheese uses your webcam to take photos and videos. Cheese can also
10470 apply fancy special effects and lets you share the fun with others.")
10471 (license license:gpl2+)))
10472
10473 (define-public passwordsafe
10474 (package
10475 (name "passwordsafe")
10476 (version "5.0")
10477 (source
10478 (origin
10479 (method git-fetch)
10480 (uri (git-reference
10481 (url "https://gitlab.gnome.org/World/PasswordSafe")
10482 (commit version)))
10483 (file-name (git-file-name name version))
10484 (sha256
10485 (base32 "1xh64bbg10gnfzlck5jvqy2zk6hbk9cyqgv85xc9kbdvs8n4lhgh"))))
10486 (build-system meson-build-system)
10487 (arguments
10488 `(#:glib-or-gtk? #t
10489 #:phases
10490 (modify-phases %standard-phases
10491 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10492 (lambda* (#:key outputs #:allow-other-keys)
10493 (let ((prog (string-append (assoc-ref outputs "out")
10494 "/bin/gnome-passwordsafe"))
10495 (pylib (string-append (assoc-ref outputs "out")
10496 "/lib/python"
10497 ,(version-major+minor
10498 (package-version python))
10499 "/site-packages")))
10500 (wrap-program prog
10501 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
10502 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10503 #t))))))
10504 (native-inputs
10505 `(("desktop-file-utils" ,desktop-file-utils)
10506 ("gettext" ,gettext-minimal)
10507 ("glib:bin" ,glib "bin")
10508 ("gobject-introspection" ,gobject-introspection)
10509 ("gtk+:bin" ,gtk+ "bin")
10510 ("pkg-config" ,pkg-config)))
10511 (inputs
10512 `(("glib" ,glib)
10513 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10514 ("gtk+" ,gtk+)
10515 ("libhandy" ,libhandy)
10516 ("libpwquality" ,libpwquality)
10517 ("python-pygobject" ,python-pygobject)
10518 ("python-pykeepass" ,python-pykeepass)))
10519 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
10520 (synopsis "Password manager for the GNOME desktop")
10521 (description
10522 "Password Safe is a password manager which makes use of the KeePass v4
10523 format. It integrates perfectly with the GNOME desktop and provides an easy
10524 and uncluttered interface for the management of password databases.")
10525 (license license:gpl3+)))
10526
10527 (define-public sound-juicer
10528 (package
10529 (name "sound-juicer")
10530 (version "3.24.0")
10531 (source
10532 (origin
10533 (method url-fetch)
10534 (uri (string-append "mirror://gnome/sources/" name "/"
10535 (version-major+minor version) "/"
10536 name "-" version ".tar.xz"))
10537 (sha256
10538 (base32
10539 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10540 (build-system glib-or-gtk-build-system)
10541 (native-inputs
10542 `(("desktop-file-utils" ,desktop-file-utils)
10543 ("intltool" ,intltool)
10544 ("itstool" ,itstool)
10545 ("pkg-config" ,pkg-config)
10546 ("xmllint" ,libxml2)))
10547 (inputs
10548 `(("gtk+" ,gtk+)
10549 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10550 ("gstreamer" ,gstreamer)
10551 ("gst-plugins-base" ,gst-plugins-base)
10552 ("gst-plugins-good" ,gst-plugins-good)
10553 ("iso-codes" ,iso-codes)
10554 ("libbrasero-media3" ,brasero)
10555 ("libcanberra" ,libcanberra)
10556 ("libdiscid" ,libdiscid)
10557 ("libmusicbrainz" ,libmusicbrainz)
10558 ("neon" ,neon)))
10559 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10560 (synopsis "Audio music cd ripper")
10561 (description "Sound Juicer extracts audio from compact discs and convert it
10562 into audio files that a personal computer or digital audio player can play.
10563 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10564 mp3, Ogg Vorbis and FLAC")
10565 (license license:gpl2+)))
10566
10567 (define-public soundconverter
10568 (package
10569 (name "soundconverter")
10570 (version "3.0.2")
10571 (source
10572 (origin
10573 (method url-fetch)
10574 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10575 version "/+download/"
10576 "soundconverter-" version ".tar.xz"))
10577
10578 (sha256
10579 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10580 (build-system glib-or-gtk-build-system)
10581 (arguments
10582 `(#:imported-modules ((guix build python-build-system)
10583 (guix build glib-or-gtk-build-system)
10584 ,@%gnu-build-system-modules)
10585
10586 #:modules ((guix build glib-or-gtk-build-system)
10587 (guix build utils)
10588 ((guix build gnu-build-system) #:prefix gnu:)
10589 ((guix build python-build-system) #:prefix python:))
10590
10591 #:phases
10592 (modify-phases %standard-phases
10593 (add-after 'install 'wrap-soundconverter-for-python
10594 (assoc-ref python:%standard-phases 'wrap))
10595 (add-after 'install 'wrap-soundconverter
10596 (lambda* (#:key inputs outputs #:allow-other-keys)
10597 (let ((out (assoc-ref outputs "out"))
10598 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10599 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10600 (wrap-program (string-append out "/bin/soundconverter")
10601 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10602 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10603 #t)))))
10604 (native-inputs
10605 `(("intltool" ,intltool)
10606 ("pkg-config" ,pkg-config)
10607 ("glib:bin" ,glib "bin")))
10608 (inputs
10609 `(("gtk+" ,gtk+)
10610 ("python" ,python)
10611 ("python-pygobject" ,python-pygobject)
10612 ("gstreamer" ,gstreamer)
10613 ("gst-plugins-base" ,gst-plugins-base)))
10614 (home-page "https://soundconverter.org/")
10615 (synopsis "Convert between audio formats with a graphical interface")
10616 (description
10617 "SoundConverter supports converting between many audio formats including
10618 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10619 configurable file renaming. ")
10620 (license license:gpl3)))
10621
10622 (define-public workrave
10623 (package
10624 (name "workrave")
10625 (version "1.10.43")
10626 (source
10627 (origin
10628 (method git-fetch)
10629 (uri (git-reference
10630 (url "https://github.com/rcaelers/workrave")
10631 (commit (string-append "v" (string-map
10632 (match-lambda (#\. #\_) (chr chr))
10633 version)))))
10634 (file-name (git-file-name name version))
10635 (sha256
10636 (base32 "1baa9qjzd4b3q1zy5vhvyrx0hyz17mk237373ca48647897kw4cr"))))
10637 (build-system glib-or-gtk-build-system)
10638 (arguments
10639 ;; The only tests are maintainer tests (in po/), which fail.
10640 `(#:tests? #f))
10641 (inputs `(("glib" ,glib)
10642 ("gtk+" ,gtk+)
10643 ("gdk-pixbuf" ,gdk-pixbuf)
10644 ("gtkmm" ,gtkmm)
10645 ("glibmm" ,glibmm)
10646 ("libx11" ,libx11)
10647 ("libxtst" ,libxtst)
10648 ("dconf" ,dconf)
10649 ("libice" ,libice)
10650 ("libsm" ,libsm)
10651 ("libxscrnsaver" ,libxscrnsaver)))
10652 (native-inputs `(("boost" ,boost)
10653 ("pkg-config" ,pkg-config)
10654 ("gettext" ,gettext-minimal)
10655 ("autoconf" ,autoconf)
10656 ("autoconf-archive" , autoconf-archive)
10657 ("automake" ,automake)
10658 ("libtool" ,libtool)
10659 ("intltool" ,intltool)
10660 ("gobject-introspection" ,gobject-introspection)
10661 ("python3" ,python-3)
10662 ("python-jinja2" ,python-jinja2)))
10663 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10664 (description
10665 "Workrave is a program that assists in the recovery and prevention of
10666 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10667 micro-pauses and rest breaks, and restricts you to your daily limit.")
10668 (home-page "http://www.workrave.org")
10669 (license license:gpl3+)))
10670
10671 (define-public ghex
10672 (package
10673 (name "ghex")
10674 (version "3.18.4")
10675 (source (origin
10676 (method url-fetch)
10677 (uri (string-append "mirror://gnome/sources/ghex/"
10678 (version-major+minor version) "/"
10679 "ghex-" version ".tar.xz"))
10680 (sha256
10681 (base32
10682 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10683 (build-system meson-build-system)
10684 (arguments
10685 '(#:glib-or-gtk? #t
10686 #:phases
10687 (modify-phases %standard-phases
10688 (add-after 'unpack 'skip-gtk-update-icon-cache
10689 ;; Don't create 'icon-theme.cache'.
10690 (lambda _
10691 (substitute* "meson_post_install.py"
10692 (("gtk-update-icon-cache") (which "true")))
10693 #t)))))
10694 (native-inputs
10695 `(("pkg-config" ,pkg-config)
10696 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10697 ("gnome-common" ,gnome-common)
10698 ("which" ,which)
10699 ("intltool" ,intltool)
10700 ("yelp-tools" ,yelp-tools)
10701 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10702 (inputs
10703 `(("atk" ,atk)
10704 ("gtk" ,gtk+)))
10705 (synopsis "GNOME hexadecimal editor")
10706 (description "The GHex program can view and edit files in two ways:
10707 hexadecimal or ASCII. It is useful for editing binary files in general.")
10708 (home-page "https://wiki.gnome.org/Apps/Ghex")
10709 (license license:gpl2)))
10710
10711 (define-public libdazzle
10712 (package
10713 (name "libdazzle")
10714 (version "3.37.1")
10715 (source (origin
10716 (method url-fetch)
10717 (uri (string-append "mirror://gnome/sources/libdazzle/"
10718 (version-major+minor version) "/"
10719 "libdazzle-" version ".tar.xz"))
10720 (sha256
10721 (base32
10722 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10723 (build-system meson-build-system)
10724 (arguments
10725 `(#:phases
10726 (modify-phases %standard-phases
10727 (add-before 'check 'pre-check
10728 (lambda _
10729 ;; Tests require a running X server.
10730 (system "Xvfb :1 &")
10731 (setenv "DISPLAY" ":1")
10732 #t)))))
10733 (native-inputs
10734 `(("glib" ,glib "bin") ; glib-compile-resources
10735 ("pkg-config" ,pkg-config)
10736 ;; For tests.
10737 ("xorg-server" ,xorg-server-for-tests)))
10738 (inputs
10739 `(("glib" ,glib)
10740 ("gobject-introspection" ,gobject-introspection)
10741 ("gtk+" ,gtk+)
10742 ("vala" ,vala)))
10743 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10744 (synopsis "Companion library to GObject and Gtk+")
10745 (description "The libdazzle library is a companion library to GObject and
10746 Gtk+. It provides various features that the authors wish were in the
10747 underlying library but cannot for various reasons. In most cases, they are
10748 wildly out of scope for those libraries. In other cases, they are not quite
10749 generic enough to work for everyone.")
10750 (license license:gpl3+)))
10751
10752 (define-public evolution
10753 (package
10754 (name "evolution")
10755 (version "3.34.2")
10756 (source (origin
10757 (method url-fetch)
10758 (uri (string-append "mirror://gnome/sources/evolution/"
10759 (version-major+minor version) "/"
10760 "evolution-" version ".tar.xz"))
10761 (sha256
10762 (base32
10763 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))
10764 (patches (search-patches "evolution-CVE-2020-11879.patch"
10765 "evolution-printableoptions.patch"))))
10766 (build-system cmake-build-system)
10767 (arguments
10768 `(#:imported-modules (,@%cmake-build-system-modules
10769 (guix build glib-or-gtk-build-system))
10770 #:modules ((guix build cmake-build-system)
10771 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10772 (guix build utils))
10773 #:configure-flags
10774 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10775 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10776 ; in four years and cannot be built.
10777 #:phases
10778 (modify-phases %standard-phases
10779 ;; The build system attempts to install user interface modules to the
10780 ;; output directory of the "evolution-data-server" package. This
10781 ;; change redirects that change.
10782 (add-after 'unpack 'patch-ui-module-dir
10783 (lambda* (#:key outputs #:allow-other-keys)
10784 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10785 (("\\$\\{edsuimoduledir\\}")
10786 (string-append (assoc-ref outputs "out")
10787 "/lib/evolution-data-server/ui-modules")))
10788 #t))
10789 (add-after 'install 'glib-or-gtk-compile-schemas
10790 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10791 (add-after 'install 'glib-or-gtk-wrap
10792 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10793 (native-inputs
10794 `(("glib" ,glib "bin") ; glib-mkenums
10795 ("pkg-config" ,pkg-config)
10796 ("intltool" ,intltool)
10797 ("itstool" ,itstool)))
10798 (inputs
10799 `(("enchant" ,enchant)
10800 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10801 ("gcr" ,gcr)
10802 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10803 ("gnome-autoar" ,gnome-autoar)
10804 ("gnome-desktop" ,gnome-desktop)
10805 ("gspell" ,gspell)
10806 ("highlight" ,highlight)
10807 ("libcanberra" ,libcanberra)
10808 ("libgweather" ,libgweather)
10809 ("libnotify" ,libnotify)
10810 ("libsoup" ,libsoup)
10811 ("nss" ,nss)
10812 ("openldap" ,openldap)
10813 ("webkitgtk" ,webkitgtk)
10814 ("ytnef" ,ytnef)))
10815 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10816 (synopsis "Manage your email, contacts and schedule")
10817 (description "Evolution is a personal information management application
10818 that provides integrated mail, calendaring and address book
10819 functionality.")
10820 ;; See COPYING for details.
10821 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10822 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10823 license:lgpl2.1+)))) ; smime/lib/*
10824
10825 (define-public gthumb
10826 (package
10827 (name "gthumb")
10828 (version "3.10.3")
10829 (source (origin
10830 (method url-fetch)
10831 (uri (string-append "mirror://gnome/sources/gthumb/"
10832 (version-major+minor version) "/"
10833 "gthumb-" version ".tar.xz"))
10834 (sha256
10835 (base32
10836 "04n2sgasc03kiczyzkq362pjilj12hq2r5qj07lynqr9rivkzdys"))))
10837 (build-system meson-build-system)
10838 (arguments
10839 `(#:glib-or-gtk? #t
10840 #:configure-flags
10841 ;; Ensure the RUNPATH contains all installed library locations.
10842 (list (string-append "-Dc_link_args=-Wl,-rpath="
10843 (assoc-ref %outputs "out")
10844 "/lib/gthumb/extensions")
10845 (string-append "-Dcpp_link_args=-Wl,-rpath="
10846 (assoc-ref %outputs "out")
10847 "/lib/gthumb/extensions"))))
10848 (native-inputs
10849 `(("pkg-config" ,pkg-config)
10850 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10851 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10852 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10853 ("intltool" ,intltool)
10854 ("itstool" ,itstool)))
10855 (inputs
10856 `(("exiv2" ,exiv2)
10857 ("gtk" ,gtk+)
10858 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10859 ("gstreamer" ,gstreamer)
10860 ("clutter" ,clutter)
10861 ("clutter-gst" ,clutter-gst)
10862 ("clutter-gtk" ,clutter-gtk)
10863 ("libjpeg" ,libjpeg-turbo)
10864 ("libtiff" ,libtiff)
10865 ("libraw" ,libraw)))
10866 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10867 (synopsis "GNOME image viewer and browser")
10868 (description "GThumb is an image viewer, browser, organizer, editor and
10869 advanced image management tool")
10870 (license license:gpl2+)))
10871
10872 (define-public terminator
10873 (package
10874 (name "terminator")
10875 (version "2.1.1")
10876 (source
10877 (origin
10878 (method url-fetch)
10879 (uri (string-append "https://github.com/gnome-terminator/terminator/"
10880 "releases/download/v" version "/"
10881 name "-" version ".tar.gz"))
10882 (sha256
10883 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
10884 (build-system python-build-system)
10885 (native-inputs
10886 `(("gettext" ,gettext-minimal)
10887 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10888 ("gobject-introspection" ,gobject-introspection)
10889 ("intltool" ,intltool)
10890 ("pkg-config" ,pkg-config)
10891 ("python-psutil" ,python-psutil)
10892 ("python-pytest-runner" ,python-pytest-runner)
10893 ("python-pytest" ,python-pytest)))
10894 (inputs
10895 `(("cairo" ,cairo)
10896 ("dbus-glib" ,dbus-glib)
10897 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10898 ("gtk+" ,gtk+)
10899 ("python" ,python-wrapper)
10900 ("python-dbus" ,python-dbus)
10901 ("python-notify2" ,python-notify2)
10902 ("python-pycairo" ,python-pycairo)
10903 ("python-pygobject" ,python-pygobject)
10904 ("vte" ,vte)))
10905 (propagated-inputs
10906 `(("python-configobj" ,python-configobj)))
10907 (arguments
10908 ;; One test out of 28 fails due to dbus-python and python-notify; skip
10909 ;; tests.
10910 `(#:tests? #f
10911 #:imported-modules ((guix build glib-or-gtk-build-system)
10912 ,@%python-build-system-modules)
10913 #:modules ((guix build python-build-system)
10914 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10915 (guix build utils))
10916 #:phases
10917 (modify-phases %standard-phases
10918 (add-after 'unpack 'handle-dbus-python
10919 (lambda _
10920 ;; python-dbus cannot be found but it's really there. See
10921 ;; https://github.com/SpotlightKid/jack-select/issues/2
10922 (substitute* "setup.py"
10923 (("'dbus-python',") ""))
10924 #t))
10925 (add-after 'install 'wrap-program
10926 (lambda* (#:key outputs #:allow-other-keys)
10927 (let ((prog (string-append (assoc-ref outputs "out")
10928 "/bin/terminator"))
10929 (pylib (string-append (assoc-ref outputs "out")
10930 "/lib/python"
10931 ,(version-major+minor
10932 (package-version python))
10933 "/site-packages")))
10934 (wrap-program prog
10935 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10936 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10937 #t)))
10938 (add-after 'wrap-program 'glib-or-gtk-wrap
10939 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10940 (home-page "https://gnome-terminator.org/")
10941 (synopsis "Store and run multiple GNOME terminals in one window")
10942 (description
10943 "Terminator allows you to run multiple GNOME terminals in a grid and
10944 tabs, and it supports drag and drop re-ordering of terminals.")
10945 (license license:gpl2)))
10946
10947 (define-public libhandy
10948 (package
10949 (name "libhandy")
10950 (version "1.2.3")
10951 (source
10952 (origin
10953 (method git-fetch)
10954 (uri (git-reference
10955 (url "https://gitlab.gnome.org/GNOME/libhandy")
10956 (commit version)))
10957 (file-name (git-file-name name version))
10958 (sha256
10959 (base32 "1ng2607cp4dfl169rj7zi8q5p6fzxy3a4l0glm7mj75yd1a603rz"))))
10960 (build-system meson-build-system)
10961 (arguments
10962 `(#:configure-flags
10963 '("-Dglade_catalog=enabled"
10964 ;; XXX: Generating the documentation fails because the
10965 ;; libhandy.devhelp2 document cannot be created. This seems to be
10966 ;; caused by a problem during the XSL transformation.
10967 "-Dgtk_doc=false")
10968 #:phases
10969 (modify-phases %standard-phases
10970 (add-after 'unpack 'patch-docbook-xml
10971 (lambda* (#:key inputs #:allow-other-keys)
10972 (for-each
10973 (lambda (file)
10974 (substitute* file
10975 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10976 (search-input-file inputs
10977 "/xml/dtd/docbook/docbookx.dtd"))))
10978 (find-files "doc" "\\.xml"))))
10979 (add-before 'check 'pre-check
10980 (lambda _
10981 ;; Tests require a running X server.
10982 (system "Xvfb :1 &")
10983 (setenv "DISPLAY" ":1")
10984 #t)))))
10985 (inputs
10986 `(("gtk+" ,gtk+)
10987 ("glade" ,glade3)))
10988 (native-inputs
10989 `(("glib:bin" ,glib "bin")
10990 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10991 ("vala" ,vala)
10992 ("libxml2" ,libxml2)
10993 ("libxslt" ,libxslt)
10994 ("docbook-xsl" ,docbook-xsl)
10995 ("docbook-xml" ,docbook-xml-4.3)
10996 ("gtk-doc" ,gtk-doc/stable)
10997 ("pkg-config" ,pkg-config)
10998 ("gettext" ,gettext-minimal)
10999
11000 ;; Test suite dependencies.
11001 ("xorg-server" ,xorg-server-for-tests)
11002 ("hicolor-icon-theme" ,hicolor-icon-theme)))
11003 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11004 (synopsis "Library full of GTK+ widgets for mobile phones")
11005 (description "The aim of the handy library is to help with developing user
11006 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11007 for usage on small and big screens.")
11008 (license license:lgpl2.1+)))
11009
11010 (define-public libhandy-0.0
11011 (package
11012 (inherit libhandy)
11013 (version "0.0.13")
11014 (source
11015 (origin
11016 (method git-fetch)
11017 (uri (git-reference
11018 (url "https://gitlab.gnome.org/GNOME/libhandy")
11019 (commit (string-append "v" version))))
11020 (file-name (git-file-name "libhandy" version))
11021 (sha256
11022 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11023 (arguments
11024 (substitute-keyword-arguments (package-arguments libhandy)
11025 ((#:configure-flags flags)
11026 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11027
11028 (define-public libgit2-glib
11029 (package
11030 (name "libgit2-glib")
11031 (version "0.99.0.1")
11032 (source (origin
11033 (method url-fetch)
11034 (uri (string-append "mirror://gnome/sources/" name "/"
11035 (version-major+minor version) "/"
11036 name "-" version ".tar.xz"))
11037 (sha256
11038 (base32
11039 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
11040 (build-system meson-build-system)
11041 (native-inputs
11042 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
11043 ("gobject-introspection" ,gobject-introspection)
11044 ("pkg-config" ,pkg-config)
11045 ("python-pygobject" ,python-pygobject)
11046 ("python-wrapper" ,python-wrapper)
11047 ("vala" ,vala)))
11048 (inputs
11049 `(("glib" ,glib)
11050 ("libssh2" ,libssh2)))
11051 (propagated-inputs
11052 `(;; In Requires of libgit2-glib.pc.
11053 ("libgit2" ,libgit2)))
11054 (synopsis "GLib wrapper around the libgit2 Git access library")
11055 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11056 access library. It only implements the core plumbing functions, not really the
11057 higher level porcelain stuff.")
11058 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11059 (license license:gpl2+)))
11060
11061 (define-public gitg
11062 (package
11063 (name "gitg")
11064 (version "3.32.1")
11065 (source (origin
11066 (method url-fetch)
11067 (uri (string-append "mirror://gnome/sources/" name "/"
11068 (version-major+minor version) "/"
11069 name "-" version ".tar.xz"))
11070 (sha256
11071 (base32
11072 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
11073 (build-system meson-build-system)
11074 (arguments
11075 `(#:glib-or-gtk? #t
11076 #:phases
11077 (modify-phases %standard-phases
11078 (add-after 'unpack 'disable-post-install-partially
11079 (lambda _
11080 (substitute* "meson_post_install.py"
11081 (("'python'") ; there are no python sources to compile
11082 (string-append "'" (which "true") "'"))
11083 (("gtk-update-icon-cache") (which "true")))
11084 #t))
11085 (add-after 'unpack 'fix-test-sources
11086 (lambda _
11087 (substitute* "tests/libgitg/test-commit.vala"
11088 (("/bin/bash") (which "bash")))
11089 #t))
11090 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11091 (lambda* (#:key outputs #:allow-other-keys)
11092 (let ((prog (string-append (assoc-ref outputs "out")
11093 "/bin/gitg")))
11094 (wrap-program prog
11095 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11096 #t))))))
11097 (inputs
11098 `(("glib" ,glib)
11099 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11100 ("gtk+" ,gtk+)
11101 ("gtkspell3" ,gtkspell3)
11102 ("gtksourceview" ,gtksourceview-3)
11103 ("json-glib" ,json-glib)
11104 ("libdazzle" ,libdazzle)
11105 ("libgee" ,libgee)
11106 ("libgit2-glib" ,libgit2-glib)
11107 ("libpeas" ,libpeas)
11108 ("libsecret" ,libsecret)
11109 ("libsoup" ,libsoup)
11110 ("libxml2" ,libxml2)))
11111 (native-inputs
11112 `(("glib:bin" ,glib "bin")
11113 ("gtk+:bin" ,gtk+ "bin")
11114 ("gobject-introspection" ,gobject-introspection)
11115 ("intltool" ,intltool)
11116 ("pkg-config" ,pkg-config)
11117 ("vala" ,vala)))
11118 (synopsis "Graphical user interface for git")
11119 (description
11120 "gitg is a graphical user interface for git. It aims at being a small,
11121 fast and convenient tool to visualize the history of git repositories.
11122 Besides visualization, gitg also provides several utilities to manage your
11123 repository and commit your work.")
11124 (home-page "https://wiki.gnome.org/Apps/Gitg")
11125 (license license:gpl2+)))
11126
11127 (define-public gamin
11128 (package
11129 (name "gamin")
11130 (version "0.1.10")
11131 (source (origin
11132 (method url-fetch)
11133 (uri (string-append "mirror://gnome/sources/" name "/"
11134 (version-major+minor version) "/"
11135 name "-" version ".tar.bz2"))
11136 (sha256
11137 (base32
11138 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11139 (build-system gnu-build-system)
11140 (arguments
11141 `(#:phases
11142 (modify-phases %standard-phases
11143 (add-after 'unpack 'remove-deprecated-macro
11144 (lambda _
11145 (substitute* '("server/gam_node.c"
11146 "server/gam_subscription.h"
11147 "server/gam_node.h"
11148 "server/gam_subscription.c")
11149 (("G_CONST_RETURN") "const"))
11150 #t)))))
11151 (inputs
11152 `(("glib" ,glib)))
11153 (native-inputs
11154 `(("pkg-config" ,pkg-config)))
11155 (home-page "https://people.gnome.org/~veillard/gamin/")
11156 (synopsis "File alteration monitor")
11157 (description
11158 "Gamin is a file and directory monitoring system defined to be a subset
11159 of the FAM (File Alteration Monitor) system. This is a service provided by a
11160 library which detects when a file or a directory has been modified.")
11161 (license license:gpl2+)))
11162
11163 (define-public gnome-mahjongg
11164 (package
11165 (name "gnome-mahjongg")
11166 (version "3.35.1")
11167 (source (origin
11168 (method git-fetch)
11169 (uri (git-reference
11170 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
11171 (commit version)))
11172 (file-name (git-file-name name version))
11173 (sha256
11174 (base32
11175 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
11176 (build-system meson-build-system)
11177 (arguments
11178 `(#:glib-or-gtk? #t))
11179 (native-inputs
11180 `(("appstream-glib" ,appstream-glib)
11181 ("gettext" ,gettext-minimal)
11182 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11183 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11184 ("itstool" ,itstool)
11185 ("pkg-config" ,pkg-config)
11186 ("vala" ,vala)))
11187 (propagated-inputs
11188 `(("dconf" ,dconf)))
11189 (inputs
11190 `(("glib" ,glib)
11191 ("gtk+" ,gtk+)
11192 ("librsvg" ,librsvg)))
11193 (synopsis "Mahjongg tile-matching game")
11194 (description "GNOME Mahjongg is a game based on the classic Chinese
11195 tile-matching game Mahjong. It features multiple board layouts, tile themes,
11196 and a high score table.")
11197 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11198 (license license:gpl2+)))
11199
11200 (define-public gnome-themes-extra
11201 (package
11202 (name "gnome-themes-extra")
11203 (version "3.28")
11204 (source
11205 (origin
11206 (method url-fetch)
11207 (uri (string-append "mirror://gnome/sources/" name "/"
11208 (version-major+minor version) "/" name "-"
11209 version ".tar.xz"))
11210 (sha256
11211 (base32
11212 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11213 (build-system gnu-build-system)
11214 (arguments
11215 '(#:configure-flags
11216 ;; Don't create 'icon-theme.cache'.
11217 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11218 (true (string-append coreutils "/bin/true")))
11219 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11220 (native-inputs
11221 `(("glib:bin" ,glib "bin")
11222 ("intltool" ,intltool)
11223 ("pkg-config" ,pkg-config)))
11224 (inputs
11225 `(("glib" ,glib)
11226 ("gtk+" ,gtk+)
11227 ("gtk+-2" ,gtk+-2)
11228 ("librsvg" ,librsvg)
11229 ("libxml2" ,libxml2)))
11230 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11231 (synopsis "GNOME Extra Themes")
11232 (description "This package provides themes and related elements that don't
11233 really fit in other upstream packages. It offers legacy support for GTK+ 2
11234 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11235 index files needed for Adwaita to be used outside of GNOME.")
11236 (license license:lgpl2.1+)))
11237
11238 (define-public gnote
11239 (package
11240 (name "gnote")
11241 (version "3.38.1")
11242 (source
11243 (origin
11244 (method url-fetch)
11245 (uri (string-append "mirror://gnome/sources/" name "/"
11246 (version-major+minor version) "/"
11247 "gnote-" version ".tar.xz"))
11248 (sha256
11249 (base32 "1adjfjhmsm2d33999khjyzvli6kiz1jlzavn77jhd49kfzhxa9y4"))))
11250 (build-system glib-or-gtk-build-system)
11251 (native-inputs
11252 `(("desktop-file-utils" ,desktop-file-utils)
11253 ("glib:bin" ,glib "bin")
11254 ("gobject-introspection" ,gobject-introspection)
11255 ("intltool" ,intltool)
11256 ("itstool" ,itstool)
11257 ("pkg-config" ,pkg-config)
11258 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
11259 (inputs
11260 `(("glibmm" ,glibmm)
11261 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11262 ("gspell" ,gspell)
11263 ("gtk+" ,gtk+)
11264 ("gtkmm" ,gtkmm)
11265 ("libsecret" ,libsecret)
11266 ("libuuid" ,util-linux "lib")
11267 ("libxml2" ,libxml2)
11268 ("libxslt" ,libxslt)))
11269 (synopsis "Note-taking application for the GNOME desktop")
11270 (description
11271 "Gnote is a note-taking application written for the GNOME desktop
11272 environment.")
11273 (home-page "https://wiki.gnome.org/Apps/Gnote")
11274 (license license:gpl3+)))
11275
11276 (define-public polari
11277 (package
11278 (name "polari")
11279 (version "3.36.3")
11280 (source (origin
11281 (method url-fetch)
11282 (uri (string-append "mirror://gnome/sources/polari/"
11283 (version-major+minor version)
11284 "/polari-" version ".tar.xz"))
11285 (sha256
11286 (base32
11287 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11288 (build-system meson-build-system)
11289 (arguments
11290 `(#:glib-or-gtk? #t
11291 #:phases
11292 (modify-phases %standard-phases
11293 (add-after 'unpack 'skip-gtk-update-icon-cache
11294 (lambda _
11295 (substitute* "meson/meson-postinstall.sh"
11296 (("gtk-update-icon-cache") (which "true")))
11297 #t))
11298 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11299 (lambda* (#:key outputs #:allow-other-keys)
11300 (let ((prog (string-append (assoc-ref outputs "out")
11301 "/bin/polari")))
11302 (wrap-program prog
11303 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11304 #t))))))
11305 (inputs
11306 `(("glib" ,glib)
11307 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11308 ("gspell" ,gspell)
11309 ("gtk+" ,gtk+)
11310 ("gjs" ,gjs)
11311 ("libsecret" ,libsecret)
11312 ("libsoup" ,libsoup)
11313 ("telepathy-glib" ,telepathy-glib)
11314 ("telepathy-logger" ,telepathy-logger)))
11315 (native-inputs
11316 `(("glib:bin" ,glib "bin")
11317 ("gobject-introspection" ,gobject-introspection)
11318 ("intltool" ,intltool)
11319 ("pkg-config" ,pkg-config)
11320 ("yelp-tools" ,yelp-tools)))
11321 (propagated-inputs
11322 `(("telepathy-idle" ,telepathy-idle)
11323 ("telepathy-mission-control" ,telepathy-mission-control)))
11324 (synopsis "Simple IRC Client")
11325 (description
11326 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11327 integrate seamlessly with the GNOME desktop.")
11328 (home-page "https://wiki.gnome.org/Apps/Polari")
11329 (license license:gpl2+)))
11330
11331 (define-public gnome-boxes
11332 (package
11333 (name "gnome-boxes")
11334 (version "3.36.6")
11335 (source
11336 (origin
11337 (method url-fetch)
11338 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11339 (version-major+minor version) "/"
11340 "gnome-boxes-" version ".tar.xz"))
11341 (sha256
11342 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11343 (build-system meson-build-system)
11344 (arguments
11345 '(#:glib-or-gtk? #t
11346 #:configure-flags (list "-Drdp=false"
11347 (string-append "-Dc_link_args=-Wl,-rpath="
11348 (assoc-ref %outputs "out")
11349 "/lib/gnome-boxes"))))
11350 (native-inputs
11351 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11352 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11353 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11354 ("itstool" ,itstool)
11355 ("intltool" ,intltool)
11356 ("vala" ,vala)
11357 ("pkg-config" ,pkg-config)))
11358 (inputs
11359 `(("libarchive" ,libarchive)
11360 ("glib-networking" ,glib-networking) ;for TLS support
11361 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11362 ("gtk" ,gtk+)
11363 ("gtk-vnc" ,gtk-vnc)
11364 ("libosinfo" ,libosinfo)
11365 ("libsecret" ,libsecret)
11366 ("libsoup" ,libsoup)
11367 ("libusb" ,libusb)
11368 ("libvirt" ,libvirt)
11369 ("libvirt-glib" ,libvirt-glib)
11370 ("libxml" ,libxml2)
11371 ("spice-gtk" ,spice-gtk)
11372 ("sparql-query" ,sparql-query)
11373 ("vte" ,vte)
11374 ("webkitgtk" ,webkitgtk)
11375 ("tracker" ,tracker)
11376 ("libgudev" ,libgudev)))
11377 (home-page "https://wiki.gnome.org/Apps/Boxes")
11378 (synopsis "View, access, and manage remote and virtual systems")
11379 (description "GNOME Boxes is a simple application to view, access, and
11380 manage remote and virtual systems. Note that this application requires the
11381 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11382 @command{info '(guix) Virtualization Services'} to learn how to configure
11383 these services on the Guix System.")
11384 (license (list
11385 ;; For data/icons/empty-boxes.png.
11386 license:cc-by2.0
11387 ;; For all others.
11388 license:lgpl2.0+))))
11389
11390 (define-public geary
11391 (package
11392 (name "geary")
11393 (version "3.34.1")
11394 (source (origin
11395 (method git-fetch)
11396 (uri (git-reference
11397 (url "https://gitlab.gnome.org/GNOME/geary")
11398 (commit version)))
11399 (file-name (git-file-name name version))
11400 (sha256
11401 (base32
11402 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))
11403 (patches (search-patches "geary-CVE-2020-24661.patch"))))
11404 (build-system meson-build-system)
11405 (arguments
11406 `(#:glib-or-gtk? #t
11407 #:phases (modify-phases %standard-phases
11408 (add-after 'unpack 'disable-failing-tests
11409 (lambda _
11410 (substitute* "test/meson.build"
11411 (("test\\('client-tests', geary_test_client_bin\\)")
11412 ""))
11413 #t))
11414 (add-after 'unpack 'disable-postinstall-script
11415 (lambda _
11416 (substitute* "meson.build"
11417 (("meson.add_install_script\\(\
11418 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11419 ""))
11420 #t))
11421 (add-before 'check 'setup-xvfb
11422 (lambda _
11423 (system "Xvfb :1 &")
11424 (setenv "DISPLAY" ":1")
11425 #t)))))
11426 (inputs
11427 `(("enchant" ,enchant)
11428 ("folks" ,folks)
11429 ("gcr" ,gcr)
11430 ("glib" ,glib)
11431 ("gmime" ,gmime-2.6)
11432 ("gnome-online-accounts:lib"
11433 ,gnome-online-accounts "lib")
11434 ("gspell" ,gspell)
11435 ("gtk+" ,gtk+)
11436 ("iso-codes" ,iso-codes)
11437 ("json-glib" ,json-glib)
11438 ("libcanberra" ,libcanberra)
11439 ("libgee" ,libgee)
11440 ("libhandy" ,libhandy-0.0)
11441 ("libpeas" ,libpeas)
11442 ("libsecret" ,libsecret)
11443 ("libunwind" ,libunwind)
11444 ("sqlite" ,sqlite)
11445 ("webkitgtk" ,webkitgtk)
11446 ("ytnef" ,ytnef)))
11447 (native-inputs
11448 `(("appstream-glib" ,appstream-glib)
11449 ("cmake-minimal" ,cmake-minimal)
11450 ("desktop-file-utils" ,desktop-file-utils)
11451 ("gettext" ,gettext-minimal)
11452 ("glib:bin" ,glib "bin")
11453 ("gobject-introspection" ,gobject-introspection)
11454 ("itstool" ,itstool)
11455 ("libarchive" ,libarchive)
11456 ("libxml2" ,libxml2)
11457 ("pkg-config" ,pkg-config)
11458 ("vala" ,vala)
11459 ("xvfb" ,xorg-server-for-tests)))
11460 (synopsis "GNOME email application built around conversations")
11461 (description
11462 "Geary collects related messages together into conversations,
11463 making it easy to find and follow your discussions. Full-text and keyword
11464 search makes it easy to find the email you are looking for. Geary's
11465 full-featured composer lets you send rich, styled text with images, links, and
11466 lists, but also send lightweight, easy to read text messages. Geary
11467 automatically picks up your existing GNOME Online Accounts, and adding more is
11468 easy. Geary has a clean, fast, modern interface that works like you want it
11469 to.")
11470 (home-page "https://wiki.gnome.org/Apps/Geary")
11471 (license (list
11472 ;; geary
11473 license:lgpl2.1+
11474 ;; icons
11475 license:cc-by3.0
11476 license:cc-by-sa3.0
11477 license:public-domain
11478 ;; snowball
11479 license:bsd-2))))
11480
11481 (define-public glabels
11482 (package
11483 (name "glabels")
11484 (version "3.4.1")
11485 (source
11486 (origin
11487 (method url-fetch)
11488 (uri (string-append "mirror://gnome/sources/" name "/"
11489 (version-major+minor version) "/"
11490 "glabels-" version ".tar.xz"))
11491 (sha256
11492 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11493 (build-system glib-or-gtk-build-system)
11494 (native-inputs
11495 `(("gettext" ,gettext-minimal)
11496 ("glib:bin" ,glib "bin")
11497 ("intltool" ,intltool)
11498 ("itstool" ,itstool)
11499 ("pkg-config" ,pkg-config)))
11500 (inputs
11501 `(("gtk+" ,gtk+)
11502 ("librsvg" ,librsvg)
11503 ("libxml2" ,libxml2)))
11504 (arguments
11505 `(#:configure-flags '("CFLAGS=-fcommon")))
11506 (home-page "https://glabels.org/")
11507 (synopsis "Program for creating labels and business cards")
11508 (description
11509 "gLabels is a program for creating labels and business cards. It is
11510 designed to work with various laser/ink-jet peel-off label and business
11511 card sheets that you’ll find at most office supply stores.")
11512 (license license:gpl3+)))
11513
11514 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11515 (define-public gnome-latex
11516 (package
11517 (name "gnome-latex")
11518 (version "3.36.0")
11519 (source
11520 (origin
11521 (method url-fetch)
11522 (uri (string-append "mirror://gnome/sources/" name "/"
11523 (version-major+minor version) "/"
11524 "gnome-latex-" version ".tar.xz"))
11525 (sha256
11526 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11527 (build-system glib-or-gtk-build-system)
11528 (native-inputs
11529 `(("gettext" ,gettext-minimal)
11530 ("glib:bin" ,glib "bin")
11531 ("gobject-introspection" ,gobject-introspection)
11532 ("gtk-doc" ,gtk-doc/stable)
11533 ("intltool" ,intltool)
11534 ("itstool" ,itstool)
11535 ("pkg-config" ,pkg-config)
11536 ("vala" ,vala)))
11537 (inputs
11538 `(("amtk" ,amtk)
11539 ("dconf" ,dconf)
11540 ("glib" ,glib)
11541 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11542 ("gspell" ,gspell)
11543 ("gtk+" ,gtk+)
11544 ("gtksourceview" ,gtksourceview)
11545 ("libgee" ,libgee)
11546 ("tepl" ,tepl)
11547 ("uchardet" ,uchardet)))
11548 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11549 (synopsis "LaTeX editor for the GNOME desktop")
11550 (description
11551 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11552 such as build tools, completion of LaTeX commands, structure navigation,
11553 symbol tables, document templates, project management, spell-checking, menus
11554 and toolbars.")
11555 (license license:gpl3+)))
11556
11557 (define-public setzer
11558 (package
11559 (name "setzer")
11560 (version "0.4.1")
11561 (source
11562 (origin
11563 (method git-fetch)
11564 (uri (git-reference
11565 (url "https://github.com/cvfosammmm/Setzer")
11566 (commit (string-append "v" version))))
11567 (file-name (git-file-name name version))
11568 (sha256
11569 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
11570 (build-system meson-build-system)
11571 (arguments
11572 `(#:glib-or-gtk? #t
11573 #:phases
11574 (modify-phases %standard-phases
11575 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11576 (lambda* (#:key outputs #:allow-other-keys)
11577 (let ((prog (string-append (assoc-ref outputs "out")
11578 "/bin/setzer"))
11579 (pylib (string-append (assoc-ref outputs "out")
11580 "/lib/python"
11581 ,(version-major+minor
11582 (package-version python))
11583 "/site-packages")))
11584 (wrap-program prog
11585 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11586 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11587 #t))))))
11588 (native-inputs
11589 `(("desktop-file-utils" ,desktop-file-utils)
11590 ("gettext" ,gettext-minimal)
11591 ("glib:bin" ,glib "bin")
11592 ("gobject-introspection" ,gobject-introspection)
11593 ("gtk+:bin" ,gtk+ "bin")))
11594 (inputs
11595 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11596 ("gspell" ,gspell)
11597 ("gtk+" ,gtk+)
11598 ("gtksourceview" ,gtksourceview)
11599 ("pango" ,pango)
11600 ("poppler" ,poppler)
11601 ("python-pdfminer" ,python-pdfminer-six)
11602 ("python-pycairo" ,python-pycairo)
11603 ("python-pygobject" ,python-pygobject)
11604 ("python-pyxdg" ,python-pyxdg)
11605 ("webkitgtk" ,webkitgtk)
11606 ("xdg-utils" ,xdg-utils)))
11607 (home-page "https://www.cvfosammmm.org/setzer/")
11608 (synopsis "LaTeX editor written in Python with GTK+")
11609 (description
11610 "Setzer is a simple yet full-featured LaTeX editor written in Python with
11611 GTK+. It integrates well with the GNOME desktop environment.")
11612 (license license:gpl3+)))
11613
11614 (define-public apostrophe
11615 (package
11616 (name "apostrophe")
11617 (version "2.4")
11618 (source (origin
11619 (method git-fetch)
11620 (uri (git-reference
11621 (url "https://gitlab.gnome.org/somas/apostrophe")
11622 (commit (string-append "v" version))))
11623 (file-name (git-file-name name version))
11624 (sha256
11625 (base32
11626 "1qzy3zhi18wf42m034s8kcmx9gl05j620x3hf6rnycq2fvy7g4gz"))))
11627 (build-system meson-build-system)
11628 (arguments
11629 `(#:glib-or-gtk? #t
11630 #:phases
11631 (modify-phases %standard-phases
11632 (add-after 'unpack 'patch-meson
11633 (lambda _
11634 (substitute* "build-aux/meson_post_install.py"
11635 (("gtk-update-icon-cache") "true"))
11636 #t))
11637 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11638 (lambda* (#:key inputs outputs #:allow-other-keys)
11639 (let ((prog (string-append (assoc-ref outputs "out")
11640 "/bin/apostrophe"))
11641 (pylib (string-append (assoc-ref outputs "out")
11642 "/lib/python"
11643 ,(version-major+minor
11644 (package-version python))
11645 "/site-packages")))
11646 (wrap-program prog
11647 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11648 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
11649 `("PATH" prefix (,(dirname
11650 (search-input-file inputs
11651 "/bin/pandoc")))))))))))
11652 (inputs
11653 `(("glib" ,glib)
11654 ("gobject-introspection" ,gobject-introspection)
11655 ("gspell" ,gspell)
11656 ("gtk+" ,gtk+)
11657 ("libhandy" ,libhandy)
11658 ("pandoc" ,pandoc)
11659 ("python-chardet" ,python-chardet)
11660 ("python-levenshtein" ,python-levenshtein)
11661 ("python-regex" ,python-regex)
11662 ("python-pycairo" ,python-pycairo)
11663 ("python-pygobject" ,python-pygobject)
11664 ("python-pyenchant" ,python-pyenchant)
11665 ("python-pypandoc" ,python-pypandoc)
11666 ("webkitgtk" ,webkitgtk)))
11667 (native-inputs
11668 `(("gettext" ,gettext-minimal)
11669 ("glib:bin" ,glib "bin")
11670 ("pkg-config" ,pkg-config)))
11671 (home-page "https://gitlab.gnome.org/somas/apostrophe")
11672 (synopsis "Markdown editor written in Python with GTK+")
11673 (description "Apostrophe is a GTK+ based distraction free Markdown editor.
11674 It uses pandoc as back-end for parsing Markdown.")
11675 (license license:gpl3)))
11676
11677 (define-public libratbag
11678 (package
11679 (name "libratbag")
11680 (version "0.14")
11681 (source
11682 (origin
11683 (method git-fetch)
11684 (uri (git-reference
11685 (url "https://github.com/libratbag/libratbag")
11686 (commit (string-append "v" version))))
11687 (file-name (git-file-name name version))
11688 (sha256
11689 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11690 (build-system meson-build-system)
11691 (arguments
11692 `(#:configure-flags
11693 (list "-Dsystemd=false"
11694 "-Dlogind-provider=elogind")
11695 #:phases
11696 (modify-phases %standard-phases
11697 (add-after 'install 'wrap
11698 (lambda* (#:key inputs outputs #:allow-other-keys)
11699 (let* ((out (assoc-ref outputs "out"))
11700 (site (string-append
11701 "/lib/python"
11702 ,(version-major+minor (package-version python))
11703 "/site-packages"))
11704 (evdev (string-append
11705 (assoc-ref inputs "python-evdev") site))
11706 (pygo (string-append
11707 (assoc-ref inputs "python-pygobject") site))
11708 (python-wrap
11709 `("GUIX_PYTHONPATH" = (,evdev ,pygo))))
11710 (wrap-program (string-append out "/bin/" "ratbagctl")
11711 python-wrap)
11712 #t))))))
11713 (native-inputs
11714 `(("check" ,check)
11715 ("pkg-config" ,pkg-config)
11716 ("swig" ,swig)
11717 ("valgrind" ,valgrind)))
11718 (inputs
11719 `(("glib" ,glib)
11720 ("json-glib" ,json-glib)
11721 ("libevdev" ,libevdev)
11722 ("libsystemd" ,elogind)
11723 ("libunistring" ,libunistring)
11724 ("python-evdev" ,python-evdev)
11725 ("python-pygobject" ,python-pygobject)
11726 ("udev" ,eudev)))
11727 (home-page "https://github.com/libratbag/libratbag")
11728 (synopsis "DBus daemon and utility for configuring gaming mice")
11729 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11730 configure input devices, mainly gaming mice. The daemon provides a generic
11731 way to access the various features exposed by these mice and abstracts away
11732 hardware-specific and kernel-specific quirks. There is also the
11733 @command{ratbagctl} command line interface for configuring devices.
11734
11735 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11736 Steelseries.
11737
11738 The ratbagd DBus service can be enabled by adding the following service to
11739 your operating-system definition:
11740
11741 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11742 (license license:expat)))
11743
11744 (define-public piper
11745 (package
11746 (name "piper")
11747 (version "0.5.1")
11748 (source
11749 (origin
11750 (method git-fetch)
11751 (uri (git-reference
11752 (url "https://github.com/libratbag/piper")
11753 (commit version)))
11754 (sha256
11755 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11756 (file-name (git-file-name name version))))
11757 (build-system meson-build-system)
11758 (native-inputs
11759 `(("gettext" ,gettext-minimal)
11760 ("glib:bin" ,glib "bin")
11761 ("gobject-introspection" ,gobject-introspection)
11762 ("pkg-config" ,pkg-config)
11763 ("python-flake8" ,python-flake8)))
11764 (inputs
11765 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11766 ("gtk" ,gtk+)
11767 ("gtk:bin" ,gtk+ "bin")
11768 ("librsvg" ,librsvg)
11769 ("python-evdev" ,python-evdev)
11770 ("python-lxml" ,python-lxml)
11771 ("python-pycairo" ,python-pycairo)
11772 ("python-pygobject" ,python-pygobject)))
11773 (arguments
11774 `(#:imported-modules ((guix build python-build-system)
11775 ,@%meson-build-system-modules)
11776 #:modules (((guix build python-build-system) #:prefix python:)
11777 (guix build meson-build-system)
11778 (guix build utils))
11779 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11780 #:phases
11781 (modify-phases %standard-phases
11782 (add-after 'unpack 'dont-update-gtk-icon-cache
11783 (lambda _
11784 (substitute* "meson.build"
11785 (("meson.add_install_script('meson_install.sh')") ""))
11786 #t))
11787 ;; TODO: Switch to wrap-script when it is fixed.
11788 (add-after 'install 'wrap-python
11789 (assoc-ref python:%standard-phases 'wrap))
11790 (add-after 'wrap-python 'wrap
11791 (lambda* (#:key outputs #:allow-other-keys)
11792 (wrap-program
11793 (string-append (assoc-ref outputs "out" )"/bin/piper")
11794 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11795 #t)))))
11796 (home-page "https://github.com/libratbag/piper/")
11797 (synopsis "Configure bindings and LEDs on gaming mice")
11798 (description "Piper is a GTK+ application for configuring gaming mice with
11799 onboard configuration for key bindings via libratbag. Piper requires
11800 a @command{ratbagd} daemon running with root privileges. It can be run
11801 manually as root, but is preferably configured as a DBus service that can
11802 launch on demand. This can be configured by enabling the following service,
11803 provided there is a DBus service present:
11804
11805 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11806 (license license:gpl2)))
11807
11808 (define-public parlatype
11809 (package
11810 (name "parlatype")
11811 (version "2.1")
11812 (source
11813 (origin
11814 (method git-fetch)
11815 (uri (git-reference
11816 (url "https://github.com/gkarsay/parlatype")
11817 (commit (string-append "v" version))))
11818 (file-name (git-file-name name version))
11819 (sha256
11820 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11821 (build-system meson-build-system)
11822 (arguments
11823 `(#:glib-or-gtk? #t
11824 #:tests? #f ;require internet access
11825 #:phases
11826 (modify-phases %standard-phases
11827 (add-after 'install 'wrap-parlatype
11828 ;; Add gstreamer plugin provided in this package to system's
11829 ;; plugins.
11830 (lambda* (#:key outputs #:allow-other-keys)
11831 (let* ((out (assoc-ref outputs "out"))
11832 (gst-plugin-path (string-append
11833 out "/lib/gstreamer-1.0/"
11834 ":"
11835 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11836 (wrap-program (string-append out "/bin/parlatype")
11837 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11838 #t)))))
11839 (native-inputs
11840 `(("appstream-glib" ,appstream-glib)
11841 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11842 ("gettext" ,gettext-minimal)
11843 ("glib" ,glib "bin") ;for glib-compile-resources
11844 ("pkg-config" ,pkg-config)
11845 ("yelp-tools" ,yelp-tools)))
11846 (inputs
11847 `(("gst-plugins-base" ,gst-plugins-base)
11848 ("gst-plugins-good" ,gst-plugins-good)
11849 ("gstreamer" ,gstreamer)
11850 ("gtk+" ,gtk+)
11851 ("pocketsphinx" ,pocketsphinx)
11852 ("pulseaudio" ,pulseaudio)
11853 ("sphinxbase" ,sphinxbase)))
11854 (home-page "http://gkarsay.github.io/parlatype/")
11855 (synopsis "GNOME audio player for transcription")
11856 (description "Parlatype is an audio player for the GNOME desktop
11857 environment. Its main purpose is the manual transcription of spoken
11858 audio files.")
11859 (license license:gpl3+)))
11860
11861 (define-public jsonrpc-glib
11862 (package
11863 (name "jsonrpc-glib")
11864 (version "3.34.0")
11865 (source (origin
11866 (method url-fetch)
11867 (uri (string-append "mirror://gnome/sources/" name "/"
11868 (version-major+minor version) "/"
11869 name "-" version ".tar.xz"))
11870 (sha256
11871 (base32
11872 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11873 (build-system meson-build-system)
11874 (inputs
11875 `(("json-glib" ,json-glib)
11876 ("glib" ,glib)))
11877 (native-inputs
11878 `(("pkg-config" ,pkg-config)
11879 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11880 ("gobject-introspection" ,gobject-introspection)
11881 ("vala" ,vala)))
11882 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11883 (synopsis "JSON-RPC library for GLib")
11884 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11885 peers in either a synchronous or asynchronous fashion. It also allows
11886 communicating using the GVariant serialization format instead of JSON when
11887 both peers support it. You might want that when communicating on a single
11888 host to avoid parser overhead and memory-allocator fragmentation.")
11889 (license license:lgpl2.1+)))
11890
11891 (define-public feedbackd
11892 (package
11893 (name "feedbackd")
11894 (version "0.0.0+git20200527")
11895 (source (origin
11896 (method git-fetch)
11897 (uri (git-reference
11898 (url "https://source.puri.sm/Librem5/feedbackd.git")
11899 (commit (string-append "v" version))))
11900 (file-name (git-file-name name version))
11901 (sha256
11902 (base32
11903 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11904 (build-system meson-build-system)
11905 (native-inputs
11906 `(("glib:bin" ,glib "bin")
11907 ("gobject-introspection" ,gobject-introspection)
11908 ("pkg-config" ,pkg-config)
11909 ("vala" ,vala)))
11910 (inputs
11911 `(("dbus" ,dbus)
11912 ("gsound" ,gsound)
11913 ("json-glib" ,json-glib)
11914 ("libgudev" ,libgudev)))
11915 (propagated-inputs
11916 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11917 (synopsis "Haptic/visual/audio feedback via DBus")
11918 (description "Feedbackd provides a DBus daemon to act on events to provide
11919 haptic, visual and audio feedback. It offers the libfeedbackd library and
11920 GObject introspection bindings.")
11921 (home-page "https://source.puri.sm/Librem5/feedbackd")
11922 (license (list license:lgpl2.1+ ; libfeedbackd
11923 license:lgpl3+)))) ; the rest
11924
11925 (define-public sysprof
11926 (package
11927 (name "sysprof")
11928 (version "3.36.0")
11929 (source
11930 (origin
11931 (method url-fetch)
11932 (uri (string-append "mirror://gnome/sources/sysprof/"
11933 (version-major+minor version) "/"
11934 "sysprof-" version ".tar.xz"))
11935 (sha256
11936 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11937 (build-system meson-build-system)
11938 (arguments
11939 `(#:configure-flags
11940 (list (string-append "-Dsystemdunitdir="
11941 %output
11942 "/share/systemd"))
11943 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11944 #:phases
11945 (modify-phases %standard-phases
11946 (add-after 'unpack 'patch-install-script
11947 (lambda _
11948 (substitute* "build-aux/meson/post_install.sh"
11949 (("gtk-update-icon-cache") "true")
11950 (("update-desktop-database") "true"))
11951 #t)))))
11952 (inputs
11953 `(("glib" ,glib)
11954 ("gtk+" ,gtk+)
11955 ("libdazzle" ,libdazzle)
11956 ("polkit" ,polkit)))
11957 (native-inputs
11958 `(("gettext" ,gettext-minimal)
11959 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11960 ("itstool" ,itstool)
11961 ("pkg-config" ,pkg-config)
11962 ("xmllint" ,libxml2)))
11963 ;; This home page is so woefully out of date as to be essentially useless.
11964 ;; (home-page "http://www.sysprof.com")
11965 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11966 (synopsis "System-wide performance profiler for GNU/Linux")
11967 (description
11968 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11969 GNU/Linux system including the kernel and all user-space applications. This
11970 helps find the function(s) in which a program spends most of its time.
11971
11972 It uses the kernel's built-in @code{ptrace} feature and handles shared
11973 libraries. Applications do not need to be recompiled--or even restarted.")
11974 (license license:gpl3+)))
11975
11976 (define-public gnome-builder
11977 (package
11978 (name "gnome-builder")
11979 (version "3.36.1")
11980 (source (origin
11981 (method url-fetch)
11982 (uri (string-append "mirror://gnome/sources/" name "/"
11983 (version-major+minor version) "/"
11984 name "-" version ".tar.xz"))
11985 (sha256
11986 (base32
11987 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11988 (build-system meson-build-system)
11989 (arguments
11990 `(#:configure-flags (list "-Dnetwork_tests=false"
11991 ;; TODO: Enable all plugins...
11992 "-Dplugin_clang=false"
11993 "-Dplugin_flatpak=false"
11994 "-Dplugin_glade=false"
11995 ;; XXX: This one has been shown not to work in
11996 ;; <https://issues.guix.gnu.org/45272>
11997 "-Dplugin_jedi=false"
11998 ;; ... except this one.
11999 "-Dplugin_update_manager=false")
12000 #:phases
12001 (modify-phases %standard-phases
12002 (add-after 'unpack 'patch-meson
12003 (lambda* (#:key inputs #:allow-other-keys)
12004 (substitute* "build-aux/meson/post_install.py"
12005 (("gtk-update-icon-cache") "true")
12006 (("update-desktop-database") "true"))
12007 (substitute* "src/libide/meson.build"
12008 (("/usr/lib")
12009 (string-append (assoc-ref inputs "python-pygobject")
12010 "/lib")))
12011 #t))
12012 (add-after 'configure 'fix-ninja
12013 (lambda _
12014 ;; #43296: meson(?) incorrectly assumes we want to link
12015 ;; this PIE against a static libselinux.
12016 (substitute* "build.ninja"
12017 (("libselinux\\.a") "libselinux.so"))
12018 #t))
12019 (add-before 'check 'pre-check
12020 (lambda _
12021 (system "Xvfb :1 &")
12022 (setenv "DISPLAY" ":1")
12023 #t)))))
12024 (inputs
12025 `(("devhelp" ,devhelp)
12026 ("gspell" ,gspell)
12027 ("gtk+" ,gtk+)
12028 ("json-glib" ,json-glib)
12029 ("jsonrpc-glib" ,jsonrpc-glib)
12030 ("libdazzle" ,libdazzle)
12031 ("libgit2-glib" ,libgit2-glib)
12032 ("libpeas" ,libpeas)
12033 ("python-pygobject" ,python-pygobject)
12034 ("sysprof" ,sysprof)
12035 ("template-glib" ,template-glib)
12036 ("vte" ,vte)
12037 ("webkitgtk" ,webkitgtk)))
12038 (propagated-inputs
12039 `(("gtksourceview" ,gtksourceview))) ;needed for settings
12040 (native-inputs
12041 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
12042 ("glib:bin" ,glib "bin")
12043 ("gettext" ,gettext-minimal)
12044 ("pkg-config" ,pkg-config)
12045 ("vala" ,vala)
12046 ("xorg-server" ,xorg-server-for-tests)))
12047 (home-page "https://wiki.gnome.org/Apps/Builder")
12048 (synopsis "Toolsmith for GNOME-based applications")
12049 (description "Builder aims to be an integrated development
12050 environment (IDE) for writing GNOME-based software. It features fuzzy search,
12051 auto-completion, a mini code map, documentation browsing, Git integration, an
12052 integrated profiler via Sysprof, debugging support, and more.")
12053 (license license:gpl3+)))
12054
12055 (define-public komikku
12056 (package
12057 (name "komikku")
12058 (version "0.31.0")
12059 (source
12060 (origin
12061 (method git-fetch)
12062 (uri (git-reference
12063 (url "https://gitlab.com/valos/Komikku/")
12064 (commit (string-append "v" version))))
12065 (file-name (git-file-name name version))
12066 (sha256
12067 (base32
12068 "0vldcjq24y4xxg8dzlyhfpqxbqn5g160lz1lmmkp7g9im2zrxh52"))))
12069 (build-system meson-build-system)
12070 (arguments
12071 `(#:glib-or-gtk? #t
12072 #:phases
12073 (modify-phases %standard-phases
12074 (add-after 'unpack 'patch-sources
12075 (lambda _
12076 (substitute* "komikku/utils.py"
12077 (("from komikku\\.servers import get_servers_list")
12078 ;; code following that line should migrate old databases
12079 ;; but the line itself results in an import error
12080 "return data_dir_path"))))
12081 (add-after 'unpack 'skip-gtk-update-icon-cache
12082 (lambda _
12083 (substitute* "meson_post_install.py"
12084 (("gtk-update-icon-cache") (which "true")))
12085 #t))
12086 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12087 (lambda* (#:key outputs #:allow-other-keys)
12088 (let ((prog (string-append (assoc-ref outputs "out")
12089 "/bin/komikku")))
12090 (wrap-program prog
12091 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
12092 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12093 #t))))))
12094 (inputs
12095 `(("gtk+" ,gtk+)
12096 ("libhandy" ,libhandy)
12097 ("libnotify" ,libnotify)
12098 ("libsecret" ,libsecret)
12099 ("python-beautifulsoup4" ,python-beautifulsoup4)
12100 ("python-brotli" ,python-brotli)
12101 ("python-cloudscraper" ,python-cloudscraper)
12102 ("python-dateparser" ,python-dateparser)
12103 ("python-keyring" ,python-keyring)
12104 ("python-lxml" ,python-lxml)
12105 ("python-magic" ,python-magic)
12106 ("python-natsort" ,python-natsort)
12107 ("python-pillow" ,python-pillow)
12108 ("python-pure-protobuf" ,python-pure-protobuf)
12109 ("python-pycairo" ,python-pycairo)
12110 ("python-pygobject" ,python-pygobject)
12111 ("python-requests" ,python-requests)
12112 ("python-unidecode" ,python-unidecode)
12113 ("webkitgtk" ,webkitgtk)))
12114 (native-inputs
12115 `(("desktop-file-utils" ,desktop-file-utils)
12116 ("gettext" ,gettext-minimal)
12117 ("glib:bin" ,glib "bin")
12118 ("gobject-introspection" ,gobject-introspection)
12119 ("pkg-config" ,pkg-config)))
12120 (home-page "https://gitlab.com/valos/Komikku")
12121 (synopsis "Manga reader for GNOME")
12122 (description "Komikku is an online/offline manga reader for GNOME,
12123 developed with the aim of being used with the Librem 5 phone.")
12124 (license license:gpl3+)))
12125
12126 (define-public libgda
12127 (package
12128 (name "libgda")
12129 (version "5.2.10")
12130 (source
12131 (origin
12132 (method git-fetch)
12133 (uri (git-reference
12134 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
12135 (commit (string-append "LIBGDA_" (string-replace-substring
12136 version "." "_")))))
12137 (file-name (git-file-name name version))
12138 (sha256
12139 (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
12140 (build-system gnu-build-system)
12141 (arguments
12142 `(#:configure-flags '("--enable-vala")
12143 ;; There's a race between check_cnc_lock and check_threaded_cnc
12144 ;; in tests/multi-threading.
12145 #:parallel-tests? #f
12146 #:phases
12147 (modify-phases %standard-phases
12148 (add-after 'unpack 'fix-glade-install
12149 (lambda _
12150 (substitute* "configure.ac"
12151 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
12152 "${datadir}/glade/catalogs")
12153 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
12154 "${datadir}/glade/pixmaps"))
12155 #t))
12156 (add-before 'check 'pre-check
12157 (lambda* (#:key inputs #:allow-other-keys)
12158 ;; Tests require a running X server.
12159 (system "Xvfb :1 &")
12160 (setenv "DISPLAY" ":1")
12161 #t))
12162 (add-after 'install 'symlink-glade-module
12163 (lambda* (#:key outputs #:allow-other-keys)
12164 (let* ((shlib "libgda-ui-5.0.so")
12165 (out (assoc-ref outputs "out"))
12166 (out/lib (string-append out "/lib"))
12167 (moduledir (string-append out/lib "/glade/modules")))
12168 (mkdir-p moduledir)
12169 (symlink (string-append out/lib "/" shlib)
12170 (string-append moduledir "/" shlib))
12171 #t))))))
12172 (propagated-inputs
12173 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
12174 (inputs
12175 `(("glib" ,glib)
12176 ("glade" ,glade3)
12177 ("gtk+" ,gtk+)
12178 ("libsecret" ,libsecret)
12179 ("libxslt" ,libxslt)
12180 ("openssl" ,openssl)
12181 ("vala" ,vala)))
12182 (native-inputs
12183 `(("autoconf" ,autoconf)
12184 ("autoconf-archive" ,autoconf-archive)
12185 ("automake" ,automake)
12186 ("glib:bin" ,glib "bin")
12187 ("gnome-common" ,gnome-common)
12188 ("gobject-introspection" ,gobject-introspection)
12189 ("gtk-doc" ,gtk-doc/stable)
12190 ("intltool" ,intltool)
12191 ("libtool" ,libtool)
12192 ("pkg-config" ,pkg-config)
12193 ("vala" ,vala)
12194 ("which" ,which)
12195 ("xorg-server" ,xorg-server-for-tests)
12196 ("yelp-tools" ,yelp-tools)))
12197 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12198 (synopsis "Uniform data access")
12199 (description
12200 "GNU Data Access (GDA) is an attempt to provide uniform access to
12201 different kinds of data sources (databases, information servers, mail spools,
12202 etc). It is a complete architecture that provides all you need to access
12203 your data.")
12204 (license license:lgpl2.1+)))
12205
12206 (define-public gtranslator
12207 (package
12208 (name "gtranslator")
12209 (version "3.36.0")
12210 (source (origin
12211 (method url-fetch)
12212 (uri (string-append "mirror://gnome/sources/" name "/"
12213 (version-major+minor version) "/"
12214 name "-" version ".tar.xz"))
12215 (sha256
12216 (base32
12217 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
12218 (build-system meson-build-system)
12219 (inputs
12220 `(("json-glib" ,json-glib)
12221 ("jsonrpc-glib" ,jsonrpc-glib)
12222 ("gettext" ,gettext-minimal)
12223 ("glib" ,glib)
12224 ("gtk+" ,gtk+)
12225 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12226 ("gspell" ,gspell)
12227 ("libdazzle" ,libdazzle)
12228 ("libgda" ,libgda)
12229 ("libsoup" ,libsoup)))
12230 (native-inputs
12231 `(("glib:bin" ,glib "bin")
12232 ("itstool" ,itstool)
12233 ("pkg-config" ,pkg-config)))
12234 (propagated-inputs
12235 `(("gtksourceview" ,gtksourceview))) ; required for source view
12236 (arguments
12237 `(#:build-type "release"
12238 #:glib-or-gtk? #t
12239 #:phases
12240 (modify-phases %standard-phases
12241 (add-after 'unpack 'skip-gtk-update-icon-cache
12242 (lambda _
12243 (substitute* "build-aux/meson/meson_post_install.py"
12244 (("gtk-update-icon-cache") (which "true")))
12245 #t)))))
12246 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12247 (synopsis "Translation making program")
12248 (description
12249 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12250 for the GNOME 3.x platform with many features. It aims to be a very complete
12251 editing environment for translation issues within the GNU gettext/GNOME desktop
12252 world.")
12253 (license license:gpl3+)))
12254
12255
12256 (define-public ocrfeeder
12257 (package
12258 (name "ocrfeeder")
12259 (version "0.8.3")
12260 (source (origin
12261 (method url-fetch)
12262 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12263 (version-major+minor version) "/"
12264 "ocrfeeder-" version ".tar.xz"))
12265 (sha256
12266 (base32
12267 "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529"))))
12268 (build-system gnu-build-system)
12269 (arguments
12270 `(#:phases
12271 (modify-phases %standard-phases
12272 (add-after
12273 'install 'wrap-program
12274 (lambda* (#:key outputs #:allow-other-keys)
12275 (let ((prog (string-append (assoc-ref outputs "out")
12276 "/bin/" "ocrfeeder"))
12277 (pylib (string-append (assoc-ref outputs "out")
12278 "/lib/python"
12279 ,(version-major+minor
12280 (package-version python))
12281 "/site-packages")))
12282 (wrap-program prog
12283 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12284 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12285 #t))))))
12286 (native-inputs
12287 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12288 ("gobject-introspection" ,gobject-introspection)
12289 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12290 ("intltool" ,intltool)
12291 ("itstool" ,itstool)
12292 ("pkg-config" ,pkg-config)
12293 ("xmllint" ,libxml2)))
12294 (inputs
12295 `(("enchant" ,enchant)
12296 ("glib" ,glib)
12297 ("goocanvas" ,goocanvas)
12298 ("gtk" ,gtk+)
12299 ("gtkspell3" ,gtkspell3)
12300 ("libjpeg" ,libjpeg-turbo)
12301 ("libtiff" ,libtiff)
12302 ("libraw" ,libraw)
12303 ("ocrad" ,ocrad)
12304 ("python" ,python-wrapper)
12305 ("python-pygobject" ,python-pygobject)
12306 ("python-odfpy" ,python-odfpy)
12307 ("python-pillow" ,python-pillow)
12308 ("python-pyenchant" ,python-pyenchant)
12309 ("python-reportlab" ,python-reportlab)
12310 ("python-sane" ,python-sane)
12311 ("sane-backends" ,sane-backends)
12312 ("tesseract-ocr" ,tesseract-ocr)))
12313 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12314 (synopsis "Complete OCR Suite")
12315 (description "OCRFeeder is a complete Optical Character Recognition and
12316 Document Analysis and Recognition program.")
12317 (license license:gpl3+)))