gnu: phodav: Fix udev rules directory.
[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 ;;;
64 ;;; This file is part of GNU Guix.
65 ;;;
66 ;;; GNU Guix is free software; you can redistribute it and/or modify it
67 ;;; under the terms of the GNU General Public License as published by
68 ;;; the Free Software Foundation; either version 3 of the License, or (at
69 ;;; your option) any later version.
70 ;;;
71 ;;; GNU Guix is distributed in the hope that it will be useful, but
72 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
73 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
74 ;;; GNU General Public License for more details.
75 ;;;
76 ;;; You should have received a copy of the GNU General Public License
77 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
78
79 (define-module (gnu packages gnome)
80 #:use-module (gnu packages)
81 #:use-module (gnu packages admin)
82 #:use-module (gnu packages aidc)
83 #:use-module (gnu packages aspell)
84 #:use-module (gnu packages autotools)
85 #:use-module (gnu packages avahi)
86 #:use-module (gnu packages backup)
87 #:use-module (gnu packages base)
88 #:use-module (gnu packages bash)
89 #:use-module (gnu packages bison)
90 #:use-module (gnu packages boost)
91 #:use-module (gnu packages build-tools)
92 #:use-module (gnu packages calendar)
93 #:use-module (gnu packages cdrom)
94 #:use-module (gnu packages check)
95 #:use-module (gnu packages cmake)
96 #:use-module (gnu packages compression)
97 #:use-module (gnu packages crates-io)
98 #:use-module (gnu packages crates-graphics)
99 #:use-module (gnu packages crates-gtk)
100 #:use-module (gnu packages cups)
101 #:use-module (gnu packages curl)
102 #:use-module (gnu packages cyrus-sasl)
103 #:use-module (gnu packages databases)
104 #:use-module (gnu packages dbm)
105 #:use-module (gnu packages djvu)
106 #:use-module (gnu packages dns)
107 #:use-module (gnu packages docbook)
108 #:use-module (gnu packages documentation)
109 #:use-module (gnu packages enchant)
110 #:use-module (gnu packages flex)
111 #:use-module (gnu packages fonts)
112 #:use-module (gnu packages file-systems)
113 #:use-module (gnu packages fontutils)
114 #:use-module (gnu packages freedesktop)
115 #:use-module (gnu packages game-development)
116 #:use-module (gnu packages gcc)
117 #:use-module (gnu packages gettext)
118 #:use-module (gnu packages ghostscript)
119 #:use-module (gnu packages gimp)
120 #:use-module (gnu packages gl)
121 #:use-module (gnu packages glib)
122 #:use-module (gnu packages gnupg)
123 #:use-module (gnu packages gnuzilla)
124 #:use-module (gnu packages geo)
125 #:use-module (gnu packages gperf)
126 #:use-module (gnu packages graphviz)
127 #:use-module (gnu packages gstreamer)
128 #:use-module (gnu packages gtk)
129 #:use-module (gnu packages guile)
130 #:use-module (gnu packages haskell-xyz)
131 #:use-module (gnu packages ibus)
132 #:use-module (gnu packages icu4c)
133 #:use-module (gnu packages image)
134 #:use-module (gnu packages imagemagick)
135 #:use-module (gnu packages inkscape)
136 #:use-module (gnu packages iso-codes)
137 #:use-module (gnu packages kerberos)
138 #:use-module (gnu packages libcanberra)
139 #:use-module (gnu packages libffi)
140 #:use-module (gnu packages libunistring)
141 #:use-module (gnu packages libunwind)
142 #:use-module (gnu packages libusb)
143 #:use-module (gnu packages linux)
144 #:use-module (gnu packages lirc)
145 #:use-module (gnu packages lua)
146 #:use-module (gnu packages mail)
147 #:use-module (gnu packages mp3)
148 #:use-module (gnu packages multiprecision)
149 #:use-module (gnu packages music)
150 #:use-module (gnu packages ncurses)
151 #:use-module (gnu packages nettle)
152 #:use-module (gnu packages networking)
153 #:use-module (gnu packages ninja)
154 #:use-module (gnu packages node)
155 #:use-module (gnu packages nss)
156 #:use-module (gnu packages ocr)
157 #:use-module (gnu packages openldap)
158 #:use-module (gnu packages package-management)
159 #:use-module (gnu packages password-utils)
160 #:use-module (gnu packages pcre)
161 #:use-module (gnu packages pdf)
162 #:use-module (gnu packages perl)
163 #:use-module (gnu packages photo)
164 #:use-module (gnu packages php)
165 #:use-module (gnu packages pkg-config)
166 #:use-module (gnu packages polkit)
167 #:use-module (gnu packages popt)
168 #:use-module (gnu packages pretty-print)
169 #:use-module (gnu packages protobuf)
170 #:use-module (gnu packages pulseaudio)
171 #:use-module (gnu packages python)
172 #:use-module (gnu packages python-compression)
173 #:use-module (gnu packages python-crypto)
174 #:use-module (gnu packages python-web)
175 #:use-module (gnu packages python-xyz)
176 #:use-module (gnu packages rdesktop)
177 #:use-module (gnu packages rdf)
178 #:use-module (gnu packages readline)
179 #:use-module (gnu packages ruby)
180 #:use-module (gnu packages rust)
181 #:use-module (gnu packages samba)
182 #:use-module (gnu packages scanner)
183 #:use-module (gnu packages sdl)
184 #:use-module (gnu packages search)
185 #:use-module (gnu packages selinux)
186 #:use-module (gnu packages slang)
187 #:use-module (gnu packages speech)
188 #:use-module (gnu packages spice)
189 #:use-module (gnu packages sqlite)
190 #:use-module (gnu packages ssh)
191 #:use-module (gnu packages swig)
192 #:use-module (gnu packages tex)
193 #:use-module (gnu packages time)
194 #:use-module (gnu packages tls)
195 #:use-module (gnu packages valgrind)
196 #:use-module (gnu packages version-control)
197 #:use-module (gnu packages video)
198 #:use-module (gnu packages virtualization)
199 #:use-module (gnu packages vpn)
200 #:use-module (gnu packages web)
201 #:use-module (gnu packages webkit)
202 #:use-module (gnu packages xdisorg)
203 #:use-module (gnu packages xiph)
204 #:use-module (gnu packages xml)
205 #:use-module (gnu packages xorg)
206 #:use-module (gnu artwork)
207 #:use-module (guix build-system cargo)
208 #:use-module (guix build-system cmake)
209 #:use-module (guix build-system glib-or-gtk)
210 #:use-module (guix build-system gnu)
211 #:use-module (guix build-system meson)
212 #:use-module (guix build-system python)
213 #:use-module (guix build-system trivial)
214 #:use-module (guix download)
215 #:use-module (guix git-download)
216 #:use-module ((guix licenses) #:prefix license:)
217 #:use-module (guix packages)
218 #:use-module (guix utils)
219 #:use-module (guix gexp)
220 #:use-module (ice-9 match)
221 #:use-module (srfi srfi-1))
222
223 (define-public gupnp-igd
224 (package
225 (name "gupnp-igd")
226 (version "1.2.0")
227 (source
228 (origin
229 (method url-fetch)
230 (uri
231 (string-append "mirror://gnome/sources/" name "/"
232 (version-major+minor version) "/"
233 name "-" version ".tar.xz"))
234 (sha256
235 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
236 (build-system meson-build-system)
237 (outputs '("out" "doc"))
238 (arguments
239 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
240 #:configure-flags (list "-Dgtk_doc=true")
241 #:phases
242 (modify-phases %standard-phases
243 (add-after 'unpack 'patch-docbook-xml
244 (lambda* (#:key inputs #:allow-other-keys)
245 (with-directory-excursion "doc"
246 (substitute* "gupnp-igd-docs.xml"
247 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
248 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
249 "/xml/dtd/docbook/"))))
250 #t))
251 (add-after 'install 'move-doc
252 (lambda* (#:key outputs #:allow-other-keys)
253 (let* ((out (assoc-ref outputs "out"))
254 (doc (assoc-ref outputs "doc")))
255 (mkdir-p (string-append doc "/share"))
256 (rename-file
257 (string-append out "/share/gtk-doc")
258 (string-append doc "/share/gtk-doc"))
259 #t))))))
260 (native-inputs
261 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
262 ("docbook-xsl" ,docbook-xsl)
263 ("glib:bin" ,glib "bin")
264 ("gobject-introspection" ,gobject-introspection)
265 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
266 ("gtk-doc" ,gtk-doc/stable)
267 ("pkg-config" ,pkg-config)))
268 (propagated-inputs
269 `(("glib" ,glib)
270 ("glib-networking" ,glib-networking)
271 ("gssdp" ,gssdp)
272 ("gupnp" ,gupnp)
273 ("libsoup" ,libsoup)))
274 (synopsis "UPnP IGD for GNOME")
275 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
276 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
277 (license license:lgpl2.1+)))
278
279 (define-public brasero
280 (package
281 (name "brasero")
282 (version "3.12.2")
283 (source (origin
284 (method url-fetch)
285 (uri (string-append "mirror://gnome/sources/brasero/"
286 (version-major+minor version) "/"
287 "brasero-" version ".tar.xz"))
288 (sha256
289 (base32
290 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
291 (build-system glib-or-gtk-build-system)
292 (arguments
293 `(#:configure-flags (list
294 (string-append "--with-girdir="
295 (assoc-ref %outputs "out")
296 "/share/gir-1.0")
297 (string-append "--with-typelibdir="
298 (assoc-ref %outputs "out")
299 "/lib/girepository-1.0"))
300 #:phases
301 (modify-phases %standard-phases
302 (add-before 'configure 'embed-growisofs
303 (lambda* (#:key inputs #:allow-other-keys)
304 (substitute* "plugins/growisofs/burn-growisofs.c"
305 (("\"growisofs") (string-append "\"" (which "growisofs"))))
306 #t)))))
307 (propagated-inputs
308 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
309 (native-inputs
310 `(("intltool" ,intltool)
311 ("itstool" ,itstool)
312 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
313 ("gobject-introspection" ,gobject-introspection)
314 ("pkg-config" ,pkg-config)))
315 (inputs
316 `(("dvd+rw-tools" ,dvd+rw-tools)
317 ("glib" ,glib)
318 ("gnome-doc-utils" ,gnome-doc-utils)
319 ("gstreamer" ,gstreamer)
320 ("gst-plugins-base" ,gst-plugins-base)
321 ("gtk+" ,gtk+)
322 ("libcanberra" ,libcanberra)
323 ("libice" ,libice)
324 ("libnotify" ,libnotify)
325 ("libsm" ,libsm)
326 ("libxml2" ,libxml2)
327 ("totem-pl-parser" ,totem-pl-parser)))
328 (home-page "https://wiki.gnome.org/Apps/Brasero")
329 (synopsis "CD/DVD burning tool for Gnome")
330 (description "Brasero is an application to burn CD/DVD for the Gnome
331 Desktop. It is designed to be as simple as possible and has some unique
332 features to enable users to create their discs easily and quickly.")
333 (license license:gpl2+)))
334
335 (define-public libcloudproviders
336 (package
337 (name "libcloudproviders")
338 (version "0.3.1")
339 (source
340 (origin
341 (method url-fetch)
342 (uri
343 (string-append "mirror://gnome/sources/" name "/"
344 (version-major+minor version) "/"
345 name "-" version ".tar.xz"))
346 (sha256
347 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
348 (build-system meson-build-system)
349 (outputs '("out" "doc"))
350 (arguments
351 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
352 #:configure-flags
353 (list
354 "-Denable-gtk-doc=true")
355 #:phases
356 (modify-phases %standard-phases
357 (add-after 'install 'move-doc
358 (lambda* (#:key outputs #:allow-other-keys)
359 (let* ((out (assoc-ref outputs "out"))
360 (doc (assoc-ref outputs "doc")))
361 (mkdir-p (string-append doc "/share"))
362 (rename-file
363 (string-append out "/share/gtk-doc")
364 (string-append doc "/share/gtk-doc"))
365 #t))))))
366 (native-inputs
367 `(("glib:bin" ,glib "bin")
368 ("gobject-introspection" ,gobject-introspection)
369 ("gtk-doc" ,gtk-doc/stable)
370 ("pkg-config" ,pkg-config)
371 ("vala" ,vala)))
372 (inputs
373 `(("glib" ,glib)
374 ("glib-networking" ,glib-networking)))
375 (synopsis "Cloudproviders Integration API")
376 (description "Libcloudproviders is a DBus API that allows cloud storage sync
377 clients to expose their services. Clients such as file managers and desktop
378 environments can then provide integrated access to the cloud providers
379 services.")
380 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
381 (license license:lgpl3+)))
382
383 (define-public libgrss
384 (package
385 (name "libgrss")
386 (version "0.7.0")
387 (source
388 (origin
389 (method url-fetch)
390 (uri
391 (string-append "mirror://gnome/sources/" name "/"
392 (version-major+minor version) "/"
393 name "-" version ".tar.xz"))
394 (sha256
395 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
396 (build-system glib-or-gtk-build-system)
397 (outputs '("out" "doc"))
398 (arguments
399 `(#:configure-flags
400 (list
401 "--enable-gtk-doc"
402 (string-append "--with-html-dir="
403 (assoc-ref %outputs "doc")
404 "/share/gtk-doc/html"))
405 #:phases
406 (modify-phases %standard-phases
407 (add-after 'unpack 'patch-docbook-xml
408 (lambda* (#:key inputs #:allow-other-keys)
409 (with-directory-excursion "doc/reference"
410 (substitute* "libgrss-docs.sgml"
411 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
412 (string-append (assoc-ref inputs "docbook-xml")
413 "/xml/dtd/docbook/"))))
414 #t)))))
415 (native-inputs
416 `(("docbook-xml" ,docbook-xml-4.1.2)
417 ("gobject-introspection" ,gobject-introspection)
418 ("gtk-doc" ,gtk-doc/stable)
419 ("pkg-config" ,pkg-config)))
420 (propagated-inputs
421 `(("glib" ,glib)
422 ("libsoup" ,libsoup)
423 ("libxml2" ,libxml2)))
424 (synopsis "Glib library for feeds")
425 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
426 and other formats.")
427 (home-page "https://wiki.gnome.org/Projects/Libgrss")
428 (license license:lgpl3+)))
429
430 (define-public gnome-js-common
431 (package
432 (name "gnome-js-common")
433 (version "0.1.2")
434 (source
435 (origin
436 (method url-fetch)
437 (uri
438 (string-append "mirror://gnome/sources/" name "/"
439 (version-major+minor version) "/"
440 name "-" version ".tar.gz"))
441 (sha256
442 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
443 (build-system glib-or-gtk-build-system)
444 (arguments
445 `(#:configure-flags
446 (list
447 "--disable-static")))
448 (native-inputs
449 `(("gettext" ,gettext-minimal)
450 ("intltool" ,intltool)
451 ("pkg-config" ,pkg-config)))
452 (synopsis "Common JS Modules")
453 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
454 bindings.")
455 (home-page "https://wiki.gnome.org/Projects/Seed")
456 (license license:gpl3+)))
457
458 (define-public seed
459 (package
460 (name "seed")
461 (version "3.8.1")
462 (source
463 (origin
464 (method url-fetch)
465 (uri
466 (string-append "mirror://gnome/sources/" name "/"
467 (version-major+minor version) "/"
468 name "-" version ".tar.xz"))
469 (sha256
470 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
471 (patches
472 (search-patches "seed-webkit.patch"))))
473 (build-system glib-or-gtk-build-system)
474 (outputs '("out" "doc"))
475 (arguments
476 `(#:configure-flags
477 (list
478 "--disable-static"
479 "--enable-xorg-module"
480 (string-append "--with-html-dir="
481 (assoc-ref %outputs "doc")
482 "/share/gtk-doc/html")
483 "--with-webkit=4.0")
484 #:phases
485 (modify-phases %standard-phases
486 ;; The seed-webkit.patch patches configure.ac.
487 ;; So the source files need to be re-bootstrapped.
488 (add-after 'unpack 'trigger-bootstrap
489 (lambda _
490 (for-each delete-file
491 (list
492 "configure"
493 "Makefile.in"))
494 #t))
495 (add-after 'unpack 'patch-tests
496 (lambda* (#:key outputs #:allow-other-keys)
497 (substitute* (find-files "." "\\.js$")
498 (("#!/usr/bin/env seed")
499 (string-append "#!" (getcwd) "/src/seed")))
500 #t))
501 (add-before 'build 'patch-docbook-xml
502 (lambda* (#:key inputs #:allow-other-keys)
503 (with-directory-excursion "doc"
504 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
505 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
506 (string-append (assoc-ref inputs "docbook-xml")
507 "/xml/dtd/docbook/"))))
508 #t)))))
509 (native-inputs
510 `(("autoconf" ,autoconf)
511 ("automake" ,automake)
512 ("docbook-xml" ,docbook-xml-4.1.2)
513 ("gettext" ,gettext-minimal)
514 ("gobject-introspection" ,gobject-introspection)
515 ("gtk-doc" ,gtk-doc/stable)
516 ("intltool" ,intltool)
517 ("libtool" ,libtool)
518 ("pkg-config" ,pkg-config)))
519 (inputs
520 `(("cairo" ,cairo)
521 ("dbus" ,dbus)
522 ("dbus-glib" ,dbus-glib)
523 ("gnome-js-common" ,gnome-js-common)
524 ("gtk+" ,gtk+)
525 ("gtk+-2" ,gtk+-2)
526 ("libffi" ,libffi)
527 ("libxml2" ,libxml2)
528 ("mpfr" ,mpfr)
529 ("readline" ,readline)
530 ("sqlite" ,sqlite)
531 ("xscrnsaver" ,libxscrnsaver)))
532 (propagated-inputs
533 `(("glib" ,glib)
534 ("webkit" ,webkitgtk)))
535 (synopsis "GObject JavaScriptCore bridge")
536 (description "Seed is a library and interpreter, dynamically bridging
537 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
538 GNOME platform. It serves as something which enables you to write standalone
539 applications in JavaScript, or easily enable your application to be extensible
540 in JavaScript.")
541 (home-page "https://wiki.gnome.org/Projects/Seed")
542 (license license:lgpl2.0+)))
543
544 (define-public libdmapsharing
545 (package
546 (name "libdmapsharing")
547 (version "3.9.10")
548 (source
549 (origin
550 (method url-fetch)
551 (uri
552 (string-append "https://www.flyn.org/projects/"
553 name "/" name "-" version ".tar.gz"))
554 (sha256
555 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
556 (build-system glib-or-gtk-build-system)
557 (outputs '("out" "doc"))
558 (arguments
559 `(#:tests? #f ; Tests require networking.
560 #:configure-flags
561 (list
562 "--disable-static"
563 (string-append "--with-html-dir="
564 (assoc-ref %outputs "doc")
565 "/share/gtk-doc/html"))
566 #:phases
567 (modify-phases %standard-phases
568 (add-after 'unpack 'patch-docbook-xml
569 (lambda* (#:key inputs #:allow-other-keys)
570 (with-directory-excursion "doc"
571 (substitute* "libdmapsharing-4.0-docs.xml"
572 (("http://www.oasis-open.org/docbook/xml/4.3/")
573 (string-append (assoc-ref inputs "docbook-xml")
574 "/xml/dtd/docbook/"))))
575 #t)))))
576 (native-inputs
577 `(("check" ,check)
578 ("docbook-xml" ,docbook-xml-4.3)
579 ("gobject-introspection" ,gobject-introspection)
580 ("pedansee" ,pedansee)
581 ("pkg-config" ,pkg-config)
582 ("vala" ,vala)))
583 (inputs
584 `(("avahi" ,avahi)
585 ("gdk-pixbuf" ,gdk-pixbuf+svg)
586 ("gee" ,libgee)
587 ("gst-plugins-base" ,gst-plugins-base)
588 ("gtk+" ,gtk+)))
589 (propagated-inputs
590 `(("glib" ,glib)
591 ("glib-networking" ,glib-networking)
592 ("gstreamer" ,gstreamer)
593 ("libsoup" ,libsoup)))
594 (synopsis "Media management library")
595 (description "Libdmapsharing is a library which allows programs to access,
596 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
597 It is written in C using GObject and libsoup.")
598 (home-page "https://launchpad.net/gtx")
599 (license license:lgpl2.1+)))
600
601 (define-public gtx
602 (package
603 (name "gtx")
604 (version "0.2.2")
605 (source
606 (origin
607 (method url-fetch)
608 (uri
609 (string-append "https://launchpad.net/gtx/trunk/"
610 version "/+download/gtx-" version ".tar.gz"))
611 (sha256
612 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
613 (build-system glib-or-gtk-build-system)
614 (outputs '("out" "doc"))
615 (arguments
616 `(#:configure-flags
617 (list
618 "--disable-static"
619 "--enable-gtk-doc"
620 (string-append "--with-html-dir="
621 (assoc-ref %outputs "doc")
622 "/share/gtk-doc/html"))))
623 (native-inputs
624 `(("gobject-introspection" ,gobject-introspection)
625 ("gtk-doc" ,gtk-doc/stable)
626 ("pkg-config" ,pkg-config)))
627 (propagated-inputs
628 `(("glib" ,glib)))
629 (synopsis "GLib Testing Framework")
630 (description "GTX is a small collection of convenience functions intended to
631 enhance the GLib testing framework. With specific emphasis on easing the pain
632 of writing test cases for asynchronous interactions.")
633 (home-page "https://launchpad.net/gtx")
634 (license license:lgpl2.1+)))
635
636 (define-public dee
637 (package
638 (name "dee")
639 (version "1.2.7")
640 (source
641 (origin
642 (method url-fetch)
643 (uri
644 (string-append "https://launchpad.net/dee/1.0/"
645 version "/+download/dee-" version ".tar.gz"))
646 (sha256
647 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
648 (patches
649 (search-patches "dee-vapi.patch"))))
650 (build-system glib-or-gtk-build-system)
651 (outputs '("out" "doc"))
652 (arguments
653 `(#:configure-flags
654 (list
655 "--disable-maintainer-flags"
656 (string-append "--with-pygi-overrides-dir="
657 (assoc-ref %outputs "out")
658 "/lib/python"
659 ,(version-major+minor
660 (package-version python))
661 "/site-packages/gi/overrides")
662 (string-append "--with-html-dir="
663 (assoc-ref %outputs "doc")
664 "/share/gtk-doc/html"))
665 #:phases
666 (modify-phases %standard-phases
667 (add-after 'unpack 'patch-docbook-xml
668 (lambda* (#:key inputs #:allow-other-keys)
669 (with-directory-excursion "doc/reference/dee-1.0"
670 (substitute* "dee-1.0-docs.sgml"
671 (("http://www.oasis-open.org/docbook/xml/4.3/")
672 (string-append (assoc-ref inputs "docbook-xml")
673 "/xml/dtd/docbook/"))))
674 #t))
675 (add-after 'patch-docbook-xml 'disable-failing-tests
676 (lambda _
677 (substitute* "tests/test-icu.c"
678 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
679 "")
680 (("setup, test_ascii_folder, teardown\\);")
681 ""))
682 #t))
683 (add-before 'check 'pre-check
684 (lambda _
685 ;; Tests require a running dbus-daemon.
686 (system "dbus-daemon &")
687 ;; For missing '/etc/machine-id'.
688 (setenv "DBUS_FATAL_WARNINGS" "0")
689 #t)))))
690 (native-inputs
691 `(("dbus" ,dbus)
692 ("dbus-test-runner" ,dbus-test-runner)
693 ("docbook-xml" ,docbook-xml-4.3)
694 ("gobject-introspection" ,gobject-introspection)
695 ("gtk-doc" ,gtk-doc/stable)
696 ;; Would only be required by configure flag "--enable-extended-tests".
697 ;("gtx" ,gtx)
698 ("pkg-config" ,pkg-config)
699 ("pygobject" ,python-pygobject)
700 ("python" ,python-wrapper)
701 ("vala" ,vala)))
702 (inputs
703 `(("icu" ,icu4c)))
704 (propagated-inputs
705 `(("glib" ,glib)))
706 (synopsis "Model to synchronize multiple instances over DBus")
707 (description "Dee is a library that uses DBus to provide objects allowing
708 you to create Model-View-Controller type programs across DBus. It also consists
709 of utility objects which extend DBus allowing for peer-to-peer discoverability
710 of known objects without needing a central registrar.")
711 (home-page "https://launchpad.net/dee")
712 (license
713 ;; Dual-licensed
714 (list
715 license:lgpl3+
716 license:gpl3+))))
717
718 (define-public zeitgeist
719 (package
720 (name "zeitgeist")
721 (version "1.0.3")
722 (source
723 (origin
724 (method git-fetch)
725 (uri
726 (git-reference
727 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
728 (commit
729 (string-append "v" version))))
730 (file-name
731 (git-file-name name version))
732 (sha256
733 (base32 "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp"))))
734 (build-system glib-or-gtk-build-system)
735 (arguments
736 `(#:configure-flags
737 (list
738 "--enable-explain-queries"
739 "--enable-fts"
740 "--enable-docs")
741 #:phases
742 (modify-phases %standard-phases
743 (add-after 'unpack 'patch-docbook-xml
744 (lambda* (#:key inputs #:allow-other-keys)
745 (with-directory-excursion "doc/libzeitgeist"
746 (substitute* "zeitgeist-gtkdoc-index.sgml"
747 (("http://www.oasis-open.org/docbook/xml/4.3/")
748 (string-append (assoc-ref inputs "docbook-xml")
749 "/xml/dtd/docbook/"))))
750 #t))
751 (add-after 'patch-docbook-xml 'disable-failing-tests
752 (lambda _
753 (substitute* "test/direct/Makefile.am"
754 ((" log-test ")
755 ""))
756 (substitute* "test/c/Makefile.am"
757 ((" test-log ")
758 ""))
759 #t))
760 (add-before 'bootstrap 'remove-autogen-script
761 (lambda _
762 ;; To honor `autoreconf -vif` by build-system.
763 (delete-file "autogen.sh")
764 #t)))))
765 (native-inputs
766 `(("autoconf" ,autoconf)
767 ("automake" ,automake)
768 ("docbook-xml" ,docbook-xml-4.3)
769 ("gettext" ,gettext-minimal)
770 ("gobject-introspection" ,gobject-introspection)
771 ("gtk-doc" ,gtk-doc/stable)
772 ("libtool" ,libtool)
773 ("pkg-config" ,pkg-config)
774 ("vala" ,vala)
775 ("xorg-server-for-tests" ,xorg-server-for-tests)))
776 (inputs
777 `(("dee-icu" ,dee)
778 ("gtk+" ,gtk+)
779 ("json-glib" ,json-glib)
780 ("sqlite" ,sqlite)
781 ("telepathy-glib" ,telepathy-glib)
782 ("python" ,python-wrapper)
783 ("python-rdflib" ,python-rdflib)
784 ("xapian-config" ,xapian)))
785 (propagated-inputs
786 `(("glib" ,glib)))
787 (synopsis "Desktop Activity Logging")
788 (description "Zeitgeist is a service which logs the users’s activities and
789 events, anywhere from files opened to websites visited and conversations. It
790 makes this information readily available for other applications to use. It is
791 able to establish relationships between items based on similarity and usage
792 patterns.")
793 (home-page "https://zeitgeist.freedesktop.org/")
794 (license
795 ;; Dual-licensed
796 (list
797 license:lgpl2.1+
798 license:gpl2+))))
799
800 (define-public gnome-recipes
801 (package
802 (name "gnome-recipes")
803 (version "2.0.4")
804 (source (origin
805 (method git-fetch)
806 (uri (git-reference
807 (url "https://gitlab.gnome.org/GNOME/recipes")
808 (commit version)))
809 (file-name (git-file-name name version))
810 (sha256
811 (base32
812 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
813 (build-system meson-build-system)
814 (arguments
815 `(#:glib-or-gtk? #t
816 #:phases
817 (modify-phases %standard-phases
818 (add-after 'unpack 'skip-gtk-update-icon-cache
819 (lambda _
820 (substitute* "meson_post_install.py"
821 (("gtk-update-icon-cache") (which "true")))
822 #t))
823 (add-after 'unpack 'unpack-libgd
824 (lambda* (#:key inputs #:allow-other-keys)
825 (let ((libgd (assoc-ref inputs "libgd")))
826 (copy-recursively libgd "subprojects/libgd")
827 #t))))))
828 (inputs
829 `(("glib" ,glib)
830 ("gnome-autoar" ,gnome-autoar)
831 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
832 ("gspell" ,gspell)
833 ("gtk+" ,gtk+)
834 ("json-glib" ,json-glib)
835 ("libcanberra" ,libcanberra)
836 ("libsoup" ,libsoup)
837 ("rest" ,rest)))
838 (native-inputs
839 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
840 ("gettext" ,gettext-minimal)
841 ("glib:bin" ,glib "bin")
842 ("itstool" ,itstool)
843 ("libgd"
844 ,(origin
845 (method git-fetch)
846 (uri (git-reference
847 (url "https://gitlab.gnome.org/GNOME/libgd")
848 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
849 (file-name (git-file-name "libgd" version))
850 (sha256
851 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
852 ("pkg-config" ,pkg-config)))
853 (home-page "https://wiki.gnome.org/Apps/Recipes")
854 (synopsis "Discover recipes for preparing food")
855 (description "GNOME Recipes helps you discover what to cook today,
856 tomorrow, the rest of the week and for special occasions.")
857 (license license:gpl3+)))
858
859 (define-public gnome-photos
860 (package
861 (name "gnome-photos")
862 (version "3.34.2")
863 (source
864 (origin
865 (method url-fetch)
866 (uri
867 (string-append "mirror://gnome/sources/" name "/"
868 (version-major+minor version) "/"
869 name "-" version ".tar.xz"))
870 (sha256
871 (base32
872 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
873 (build-system meson-build-system)
874 (arguments
875 `(#:glib-or-gtk? #t
876 #:configure-flags
877 (list "-Ddogtail=false" ; Not available
878 ;; Required for RUNPATH validation.
879 (string-append "-Dc_link_args=-Wl,-rpath="
880 (assoc-ref %outputs "out") "/lib/gnome-photos"))
881 #:phases
882 (modify-phases %standard-phases
883 (add-after 'install 'wrap-gnome-photos
884 (lambda* (#:key inputs outputs #:allow-other-keys)
885 (let*
886 ((out (assoc-ref outputs "out")))
887 (wrap-program (string-append out "/bin/gnome-photos")
888 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
889 #t)))))
890 (native-inputs
891 `(("dbus" ,dbus)
892 ("desktop-file-utils" ,desktop-file-utils)
893 ("gettext" ,gettext-minimal)
894 ("git" ,git-minimal)
895 ("glib:bin" ,glib "bin")
896 ("gobject-introspection" ,gobject-introspection)
897 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
898 ("gtk+:bin" ,gtk+ "bin")
899 ("itstool" ,itstool)
900 ("pkg-config" ,pkg-config)))
901 (inputs
902 `(("babl" ,babl)
903 ("cairo" ,cairo)
904 ("gdk-pixbuf" ,gdk-pixbuf+svg)
905 ("gegl" ,gegl)
906 ("geocode-glib" ,geocode-glib)
907 ("gexiv2" ,gexiv2)
908 ("gnome-online-accounts" ,gnome-online-accounts)
909 ("gnome-online-miners" ,gnome-online-miners)
910 ("grilo" ,grilo)
911 ("grilo-plugins" ,grilo-plugins)
912 ("gtk+" ,gtk+)
913 ("libdazzle" ,libdazzle)
914 ("libgdata" ,libgdata)
915 ("libgfbgraph" ,gfbgraph)
916 ("libjpeg" ,libjpeg-turbo)
917 ("libpng" ,libpng)
918 ("librest" ,rest)
919 ("pygobject" ,python-pygobject)
920 ("tracker" ,tracker)
921 ("tracker-miners" ,tracker-miners)))
922 (synopsis "Access, organize and share your photos on GNOME desktop")
923 (description "GNOME Photos is a simple and elegant replacement for using a
924 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
925 cloud integration is offered through GNOME Online Accounts.")
926 (home-page "https://wiki.gnome.org/Apps/Photos")
927 (license license:gpl3+)))
928
929 (define-public gnome-music
930 (package
931 (name "gnome-music")
932 (version "3.34.5")
933 (source
934 (origin
935 (method url-fetch)
936 (uri
937 (string-append "mirror://gnome/sources/" name "/"
938 (version-major+minor version) "/"
939 name "-" version ".tar.xz"))
940 (sha256
941 (base32
942 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
943 (build-system meson-build-system)
944 (arguments
945 `(#:glib-or-gtk? #t
946 #:phases
947 (modify-phases %standard-phases
948 (add-after 'install 'wrap-gnome-music
949 (lambda* (#:key inputs outputs #:allow-other-keys)
950 (let*
951 ((out (assoc-ref outputs "out"))
952 (pylib (string-append out "/lib/python"
953 ,(version-major+minor
954 (package-version python))
955 "/site-packages")))
956 (wrap-program (string-append out "/bin/gnome-music")
957 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
958 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
959 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
960 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
961 #t)))))
962 (native-inputs
963 `(("desktop-file-utils" ,desktop-file-utils)
964 ("gettext" ,gettext-minimal)
965 ("glib:bin" ,glib "bin")
966 ("gobject-introspection" ,gobject-introspection)
967 ("gtk+:bin" ,gtk+ "bin")
968 ("itstools" ,itstool)
969 ("pkg-config" ,pkg-config)))
970 (inputs
971 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
972 ("grilo" ,grilo)
973 ("grilo-plugins" ,grilo-plugins)
974 ("gst-plugins-base" ,gst-plugins-base)
975 ("gstreamer" ,gstreamer)
976 ("gvfs" ,gvfs)
977 ("libdazzle" ,libdazzle)
978 ("libmediaart" ,libmediaart)
979 ("libsoup" ,libsoup)
980 ("pycairo" ,python-pycairo)
981 ("pygobject" ,python-pygobject)
982 ("tracker" ,tracker)
983 ("tracker-miners" ,tracker-miners)))
984 (synopsis "Simple music player for GNOME desktop")
985 (description "GNOME Music is the new GNOME music playing application that
986 aims to combine an elegant and immersive browsing experience with simple
987 and straightforward controls.")
988 (home-page "https://wiki.gnome.org/Apps/Music")
989 (license license:gpl2+)))
990
991 (define-public portablexdr
992 (package
993 (name "portablexdr")
994 (version "4.9.1")
995 (source
996 (origin
997 (method url-fetch)
998 (uri
999 (string-append "https://people.redhat.com/~rjones/" name "/files/"
1000 name "-" version ".tar.gz"))
1001 (sha256
1002 (base32
1003 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1004 (build-system gnu-build-system)
1005 (synopsis "External Data Representation Library")
1006 (description "PortableXDR is an implementation of External Data
1007 Representation (XDR) Library. It is a standard data serialization format, for
1008 uses such as computer network protocols. It allows data to be transferred
1009 between different kinds of computer systems.")
1010 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1011 (license
1012 (list
1013 license:gpl2+
1014 license:lgpl2.1+))))
1015
1016 (define-public tepl
1017 (package
1018 (name "tepl")
1019 (version "4.4.0")
1020 (source
1021 (origin
1022 (method url-fetch)
1023 (uri
1024 (string-append "mirror://gnome/sources/" name "/"
1025 (version-major+minor version) "/"
1026 name "-" version ".tar.xz"))
1027 (sha256
1028 (base32
1029 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
1030 (build-system glib-or-gtk-build-system)
1031 (arguments
1032 `(#:tests? #f)) ; FIX-ME: Requires gvfs
1033 (native-inputs
1034 `(("gobject-introspection" ,gobject-introspection)
1035 ("pkg-config" ,pkg-config)))
1036 (inputs
1037 `(("amtk" ,amtk)
1038 ("glib" ,glib)
1039 ("gtk+" ,gtk+)
1040 ("gtksourceview" ,gtksourceview)
1041 ("libxml2" ,libxml2)
1042 ("uchardet" ,uchardet)))
1043 (synopsis "Text editor product line")
1044 (description "Tepl is a library that eases the development of
1045 GtkSourceView-based text editors and IDEs.")
1046 (home-page "https://wiki.gnome.org/Projects/Tepl")
1047 (license license:lgpl2.1+)))
1048
1049 (define-public krb5-auth-dialog
1050 (package
1051 (name "krb5-auth-dialog")
1052 (version "3.26.1")
1053 (source
1054 (origin
1055 (method url-fetch)
1056 (uri
1057 (string-append "mirror://gnome/sources/" name "/"
1058 (version-major+minor version) "/"
1059 name "-" version ".tar.xz"))
1060 (sha256
1061 (base32
1062 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1063 (build-system glib-or-gtk-build-system)
1064 (native-inputs
1065 `(("intltool" ,intltool)
1066 ("itstool" ,itstool)
1067 ("libxml2" ,libxml2)
1068 ("pkg-config" ,pkg-config)
1069 ("python-wrapper" ,python-wrapper)))
1070 (inputs
1071 `(("glib" ,glib)
1072 ("gtk+" ,gtk+)
1073 ("libnotify" ,libnotify)
1074 ("mit-krb5" ,mit-krb5)
1075 ("network-manager" ,network-manager)))
1076 (synopsis "Popup dialogs for Kerberos 5")
1077 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1078 tickets, and pops up a dialog when they are about to expire.")
1079 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1080 (license license:gpl2+)))
1081
1082 (define-public notification-daemon
1083 (package
1084 (name "notification-daemon")
1085 (version "3.20.0")
1086 (source
1087 (origin
1088 (method url-fetch)
1089 (uri
1090 (string-append "mirror://gnome/sources/" name "/"
1091 (version-major+minor version) "/"
1092 name "-" version ".tar.xz"))
1093 (sha256
1094 (base32
1095 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1096 (build-system glib-or-gtk-build-system)
1097 (native-inputs
1098 `(("intltool" ,intltool)
1099 ("pkg-config" ,pkg-config)))
1100 (inputs
1101 `(("glib" ,glib)
1102 ("gtk+" ,gtk+)
1103 ("x11" ,libx11)))
1104 (synopsis "Notification Daemon for GNOME Desktop")
1105 (description "Notification-Daemon is the server implementation of the
1106 freedesktop.org desktop notification specification.")
1107 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1108 (license license:gpl2+)))
1109
1110 (define-public mm-common
1111 (package
1112 (name "mm-common")
1113 (version "1.0.3")
1114 (source (origin
1115 (method url-fetch)
1116 (uri (string-append "mirror://gnome/sources/mm-common/"
1117 (version-major+minor version) "/"
1118 "mm-common-" version ".tar.xz"))
1119 (sha256
1120 (base32
1121 "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
1122 (build-system meson-build-system)
1123 (arguments
1124 `(#:meson ,meson-0.55
1125 #:phases
1126 (modify-phases %standard-phases
1127 (add-after 'unpack 'patch
1128 (lambda* (#:key inputs #:allow-other-keys)
1129 (substitute* "util/mm-common-prepare.in"
1130 (("ln") (string-append (assoc-ref inputs "coreutils")
1131 "/bin/ln"))
1132 (("cp") (string-append (assoc-ref inputs "coreutils")
1133 "/bin/cp"))
1134 (("sed") (string-append (assoc-ref inputs "sed")
1135 "/bin/sed"))
1136 (("cat") (string-append (assoc-ref inputs "coreutils")
1137 "/bin/cat")))
1138 #t)))))
1139 (native-inputs
1140 `(("coreutils" ,coreutils)
1141 ("gettext" ,gettext-minimal)
1142 ("pkg-config" ,pkg-config)
1143 ("sed" ,sed)))
1144 (inputs
1145 `(("python" ,python)))
1146 (synopsis "Module of GNOME C++ bindings")
1147 (description "The mm-common module provides the build infrastructure
1148 and utilities shared among the GNOME C++ binding libraries. Release
1149 archives of mm-common include the Doxygen tag file for the GNU C++
1150 Library reference documentation.")
1151 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1152 (license license:gpl2+)))
1153
1154 (define-public phodav
1155 (package
1156 (name "phodav")
1157 (version "2.5")
1158 (source (origin
1159 (method url-fetch)
1160 (uri (string-append "mirror://gnome/sources/" name "/"
1161 (version-major+minor version) "/"
1162 name "-" version ".tar.xz"))
1163 (sha256
1164 (base32
1165 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1166 (build-system meson-build-system)
1167 (arguments
1168 `(#:phases
1169 (modify-phases %standard-phases
1170 (add-after 'unpack 'fix-udev-rules-directory
1171 (lambda* (#:key outputs #:allow-other-keys)
1172 (let* ((out (assoc-ref outputs "out"))
1173 (rules (string-append out "/lib/udev/rules.d")))
1174 (substitute* "data/meson.build"
1175 (("udev\\.get_pkgconfig_variable\\('udevdir'\\)")
1176 (format #f "'~a'" rules))))))
1177 (add-before 'check 'start-virtual-dir-server
1178 ;; The same server when started by tests/virtual-dir returns an
1179 ;; unexpected status (4 instead of 200) and fails a test. It is
1180 ;; unclear why starting it manually here makes it pass.
1181 (lambda _
1182 (system "tests/virtual-dir-server &"))))))
1183 (native-inputs
1184 `(("docbook-xml" ,docbook-xml-4.3)
1185 ("gettext" ,gettext-minimal)
1186 ("glib:bin" ,glib "bin")
1187 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1188 ("gtk-doc" ,gtk-doc/stable)
1189 ("pkg-config" ,pkg-config)))
1190 (inputs
1191 `(("avahi" ,avahi)
1192 ("libgudev" ,libgudev)
1193 ("libsoup" ,libsoup)))
1194 (synopsis "WebDav server implementation using libsoup")
1195 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1196 but it is generic enough to be reused in other projects,
1197 in particular in the GNOME desktop.")
1198 (home-page "https://wiki.gnome.org/phodav")
1199 (license license:lgpl2.1+)))
1200
1201 (define-public gnome-color-manager
1202 (package
1203 (name "gnome-color-manager")
1204 (version "3.32.0")
1205 (source (origin
1206 (method url-fetch)
1207 (uri (string-append "mirror://gnome/sources/" name "/"
1208 (version-major+minor version) "/"
1209 name "-" version ".tar.xz"))
1210 (sha256
1211 (base32
1212 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1213 (build-system meson-build-system)
1214 (arguments
1215 `(#:glib-or-gtk? #t
1216 #:phases
1217 (modify-phases %standard-phases
1218 (add-before
1219 'check 'pre-check
1220 (lambda _
1221 ;; Tests require a running X server.
1222 (system "Xvfb :1 &")
1223 (setenv "DISPLAY" ":1")
1224 #t)))))
1225 (native-inputs
1226 `(("desktop-file-utils" ,desktop-file-utils)
1227 ("gettext" ,gettext-minimal)
1228 ("glib:bin" ,glib "bin")
1229 ("gtk+:bin" ,gtk+ "bin")
1230 ("itstool" ,itstool)
1231 ("pkg-config" ,pkg-config)
1232 ("xorg-server" ,xorg-server-for-tests)))
1233 (inputs
1234 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1235 ("appstream-glib" ,appstream-glib)
1236 ("colord-gtk" ,colord-gtk)
1237 ("exiv2" ,exiv2)
1238 ("gnome-desktop" ,gnome-desktop)
1239 ("libcanberra" ,libcanberra)
1240 ("libexif" ,libexif)
1241 ("libtiff" ,libtiff)
1242 ("libxrandr" ,libxrandr)
1243 ("libxtst" ,libxtst)
1244 ("libxxf86vm" ,libxxf86vm)
1245 ("vte" ,vte)
1246 ("xorgproto" ,xorgproto)))
1247 (synopsis "Color profile manager for the GNOME desktop")
1248 (description "GNOME Color Manager is a session framework that makes
1249 it easy to manage, install and generate color profiles
1250 in the GNOME desktop.")
1251 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1252 (license license:gpl2+)))
1253
1254 (define-public gnome-online-miners
1255 (package
1256 (name "gnome-online-miners")
1257 (version "3.34.0")
1258 (source (origin
1259 (method url-fetch)
1260 (uri (string-append "mirror://gnome/sources/" name "/"
1261 (version-major+minor version) "/"
1262 name "-" version ".tar.xz"))
1263 (sha256
1264 (base32
1265 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1266 (build-system glib-or-gtk-build-system)
1267 (native-inputs
1268 `(("gettext" ,gettext-minimal)
1269 ("glib:bin" ,glib "bin")
1270 ("gobject-introspection" ,gobject-introspection)
1271 ("gtk+:bin" ,gtk+ "bin")
1272 ("pkg-config" ,pkg-config)))
1273 (inputs
1274 `(("gnome-online-accounts" ,gnome-online-accounts)
1275 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1276 ("grilo" ,grilo)
1277 ("libgdata" ,libgdata)
1278 ("libgfbgraph" ,gfbgraph)
1279 ("libzapojit" ,libzapojit)
1280 ("rest" ,rest)
1281 ("tracker" ,tracker)))
1282 (synopsis "Web Crawlers for GNOME")
1283 (description "GNOME Online Miners provides a set of crawlers that
1284 go through your online content and index them locally in Tracker.
1285 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1286 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1287 (license license:gpl2+)))
1288
1289 (define-public gssdp
1290 (package
1291 (name "gssdp")
1292 (version "1.2.3")
1293 (source (origin
1294 (method url-fetch)
1295 (uri (string-append "mirror://gnome/sources/" name "/"
1296 (version-major+minor version) "/"
1297 name "-" version ".tar.xz"))
1298 (sha256
1299 (base32
1300 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1301 (build-system meson-build-system)
1302 (native-inputs
1303 `(("gettext" ,gettext-minimal)
1304 ("glib:bin" ,glib "bin")
1305 ("gobject-introspection" ,gobject-introspection)
1306 ("gtk-doc" ,gtk-doc/stable)
1307 ("pkg-config" ,pkg-config)
1308 ("vala" ,vala)))
1309 (inputs
1310 `(("gtk+" ,gtk+)
1311 ("libsoup" ,libsoup)))
1312 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1313 Protocol} for GNOME")
1314 (description "This package provides a library to handle resource discovery
1315 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1316 a debugging tool, @command{gssdp-device-sniffer}.")
1317 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1318 (license license:lgpl2.0+)))
1319
1320 (define-public gupnp
1321 (package
1322 (name "gupnp")
1323 (version "1.2.4")
1324 (source (origin
1325 (method url-fetch)
1326 (uri (string-append "mirror://gnome/sources/" name "/"
1327 (version-major+minor version) "/"
1328 name "-" version ".tar.xz"))
1329 (sha256
1330 (base32
1331 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1332 (build-system meson-build-system)
1333 (native-inputs
1334 `(("gettext" ,gettext-minimal)
1335 ("glib:bin" ,glib "bin")
1336 ("gobject-introspection" ,gobject-introspection)
1337 ("gtk-doc" ,gtk-doc/stable)
1338 ("pkg-config" ,pkg-config)
1339 ("vala" ,vala)))
1340 (inputs
1341 `(("gssdp" ,gssdp)
1342 ("gtk+" ,gtk+)
1343 ("libsoup" ,libsoup)))
1344 (propagated-inputs
1345 `(;; For ‘org.gnome.system.proxy’.
1346 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
1347 (synopsis "PnP API for GNOME")
1348 (description "This package provides GUPnP, an object-oriented framework
1349 for creating UPnP devices and control points, written in C using
1350 @code{GObject} and @code{libsoup}.")
1351 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1352 (license license:lgpl2.0+)))
1353
1354 (define-public gupnp-dlna
1355 (package
1356 (name "gupnp-dlna")
1357 (version "0.10.5")
1358 (source (origin
1359 (method url-fetch)
1360 (uri (string-append "mirror://gnome/sources/" name "/"
1361 (version-major+minor version) "/"
1362 name "-" version ".tar.xz"))
1363 (sha256
1364 (base32
1365 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1366 (build-system gnu-build-system)
1367 (native-inputs
1368 `(("gettext" ,gettext-minimal)
1369 ("glib:bin" ,glib "bin")
1370 ("gobject-introspection" ,gobject-introspection)
1371 ("gtk-doc" ,gtk-doc/stable)
1372 ("libxml" ,libxml2)
1373 ("pkg-config" ,pkg-config)
1374 ("vala" ,vala)))
1375 (inputs
1376 `(("gstreamer" ,gstreamer)
1377 ("gupnp" ,gupnp)))
1378 (propagated-inputs
1379 `(("gst-plugins-base" ,gst-plugins-base)
1380 ("gst-plugins-good" ,gst-plugins-good)))
1381 (synopsis "GUPnP DLNA for GNOME")
1382 (description "This package provides a small utility library to
1383 support DLNA-related tasks such as media profile guessing, transcoding to a
1384 given profile, etc. DLNA is a subset of UPnP A/V.")
1385 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1386 (license license:lgpl2.0+)))
1387
1388 (define-public gupnp-av
1389 (package
1390 (name "gupnp-av")
1391 (version "0.12.11")
1392 (source (origin
1393 (method url-fetch)
1394 (uri (string-append "mirror://gnome/sources/" name "/"
1395 (version-major+minor version) "/"
1396 name "-" version ".tar.xz"))
1397 (sha256
1398 (base32
1399 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1400 (build-system gnu-build-system)
1401 (native-inputs
1402 `(("gettext" ,gettext-minimal)
1403 ("glib:bin" ,glib "bin")
1404 ("gobject-introspection" ,gobject-introspection)
1405 ("gtk-doc" ,gtk-doc/stable)
1406 ("libxml" ,libxml2)
1407 ("pkg-config" ,pkg-config)))
1408 (inputs
1409 `(("gtk+" ,gtk+)
1410 ("gupnp" ,gupnp)))
1411 (synopsis "GUPnP A/V for GNOME")
1412 (description "This package provides a small library for handling
1413 and implementation of UPnP A/V profiles.")
1414 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1415 (license license:lgpl2.0+)))
1416
1417 (define-public libmediaart
1418 (package
1419 (name "libmediaart")
1420 (version "1.9.5")
1421 (source (origin
1422 (method url-fetch)
1423 (uri (string-append "mirror://gnome/sources/" name "/"
1424 (version-major+minor version) "/"
1425 name "-" version ".tar.xz"))
1426 (sha256
1427 (base32
1428 "1mlw1qgj8nkd9ll6b6h54r1gfdy3zp8a8xqz7qfyfaj85jjgbph7"))))
1429 (build-system meson-build-system)
1430 (arguments
1431 `(#:meson ,meson-next))
1432 (native-inputs
1433 `(("glib:bin" ,glib "bin")
1434 ("pkg-config" ,pkg-config)))
1435 (inputs
1436 `(("gdk-pixbuf" ,gdk-pixbuf)
1437 ("gettext" ,gettext-minimal)
1438 ("gobject-introspection" ,gobject-introspection)
1439 ("gtk+:doc" ,gtk+ "doc")
1440 ("vala" ,vala)))
1441 (synopsis "Media art library for the GNOME desktop")
1442 (description
1443 "The libmediaart library is the foundation for media art caching,
1444 extraction, and lookup for applications on the desktop.")
1445 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1446 (license license:lgpl2.1+)))
1447
1448 (define-public gnome-initial-setup
1449 (package
1450 (name "gnome-initial-setup")
1451 (version "3.32.1")
1452 (source (origin
1453 (method url-fetch)
1454 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1455 (version-major+minor version)
1456 "/gnome-initial-setup-" version ".tar.xz"))
1457 (sha256
1458 (base32
1459 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1460 (build-system meson-build-system)
1461 (arguments
1462 '(#:configure-flags '(;; Enable camera support for user selfie.
1463 "-Dcheese=auto"
1464 "-Dsystemd=false")
1465 #:phases (modify-phases %standard-phases
1466 (add-after 'unpack 'set-gkbd-file-name
1467 (lambda* (#:key inputs #:allow-other-keys)
1468 ;; Allow the "Preview" button in the keyboard layout
1469 ;; selection dialog to display the layout.
1470 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1471 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1472 (("\"gkbd-keyboard-display")
1473 (string-append "\"" libgnomekbd
1474 "/bin/gkbd-keyboard-display")))
1475 #t))))))
1476 (native-inputs
1477 `(("gettext" ,gettext-minimal)
1478 ("glib:bin" ,glib "bin")
1479 ("gobject-introspection" ,gobject-introspection)
1480 ("gtk+:bin" ,gtk+ "bin")
1481 ("pkg-config" ,pkg-config)))
1482 (inputs
1483 `(("accountsservice" ,accountsservice)
1484 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1485 ("gdm" ,gdm)
1486 ("geoclue" ,geoclue)
1487 ("gnome-desktop" ,gnome-desktop)
1488 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1489 ("gnome-online-accounts" ,gnome-online-accounts)
1490 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1491 ("gstreamer" ,gstreamer)
1492 ("ibus" ,ibus)
1493 ("json-glib" ,json-glib)
1494 ("krb5" ,mit-krb5)
1495 ("libgweather" ,libgweather)
1496 ("libnma" ,libnma)
1497 ("libsecret" ,libsecret)
1498 ("network-manager" ,network-manager)
1499 ("packagekit" ,packagekit)
1500 ("polkit" ,polkit)
1501 ("pwquality" ,libpwquality)
1502 ("rest" ,rest)
1503 ("upower" ,upower)
1504 ("webkitgtk" ,webkitgtk)
1505 ("libgnomekbd" ,libgnomekbd)))
1506 (synopsis "Initial setup wizard for GNOME desktop")
1507 (description "This package provides a set-up wizard when a
1508 user logs into GNOME for the first time. It typically provides a
1509 tour of all gnome components and allows the user to set them up.")
1510 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1511 (license license:gpl2)))
1512
1513 (define-public gnome-user-share
1514 (package
1515 (name "gnome-user-share")
1516 (version "3.33.1")
1517 (source (origin
1518 (method url-fetch)
1519 (uri (string-append "mirror://gnome/sources/" name "/"
1520 (version-major+minor version) "/"
1521 name "-" version ".tar.xz"))
1522 (sha256
1523 (base32
1524 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1525 (build-system meson-build-system)
1526 (arguments
1527 `(#:glib-or-gtk? #t
1528 #:configure-flags
1529 `("-Dsystemd=false"
1530 ;; Enable nautilus extension for file sharing.
1531 "-Dnautilus_extension=true")))
1532 (native-inputs
1533 `(("gettext" ,gettext-minimal)
1534 ("glib:bin" ,glib "bin")
1535 ("gobject-introspection" ,gobject-introspection)
1536 ("gtk+:bin" ,gtk+ "bin")
1537 ("pkg-config" ,pkg-config)
1538 ("yelp-tools" ,yelp-tools)))
1539 (inputs
1540 `(("glib" ,glib)
1541 ("gnome-bluetooth" ,gnome-bluetooth)
1542 ("gtk+" ,gtk+)
1543 ("libcanberra" ,libcanberra)
1544 ("libnotify" ,libnotify)
1545 ("nautilus" ,nautilus))) ; For nautilus extension.
1546 (synopsis "File sharing for GNOME desktop")
1547 (description "GNOME User Share is a small package that binds together
1548 various free software projects to bring easy to use user-level file
1549 sharing to the masses.")
1550 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1551 (license license:gpl2+)))
1552
1553 (define-public sushi
1554 (package
1555 (name "sushi")
1556 (version "3.32.1")
1557 (source (origin
1558 (method url-fetch)
1559 (uri (string-append "mirror://gnome/sources/" name "/"
1560 (version-major+minor version) "/"
1561 name "-" version ".tar.xz"))
1562 (sha256
1563 (base32
1564 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1565 (build-system meson-build-system)
1566 (arguments
1567 `(#:glib-or-gtk? #t
1568 #:phases
1569 (modify-phases %standard-phases
1570 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1571 (lambda* (#:key outputs #:allow-other-keys)
1572 (let ((prog (string-append (assoc-ref outputs "out")
1573 "/bin/sushi")))
1574 ;; Put existing typelibs before sushi's deps, so as to correctly
1575 ;; infer gdk-pixbuf
1576 (wrap-program prog
1577 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1578 #t))))))
1579 (native-inputs
1580 `(("glib:bin" ,glib "bin")
1581 ("gettext" ,gettext-minimal)
1582 ("gobject-introspection" ,gobject-introspection)
1583 ("pkg-config" ,pkg-config)))
1584 (inputs
1585 `(("clutter" ,clutter)
1586 ("clutter-gst" ,clutter-gst)
1587 ("clutter-gtk" ,clutter-gtk)
1588 ("evince" ,evince) ; For file previewing.
1589 ("freetype" ,freetype)
1590 ("gdk-pixbuf" ,gdk-pixbuf)
1591 ("gjs" ,gjs)
1592 ("gst-plugins-base" ,gst-plugins-base)
1593 ("gstreamer" ,gstreamer)
1594 ("gtksourceview" ,gtksourceview-3)
1595 ("harfbuzz" ,harfbuzz)
1596 ("libepoxy" ,libepoxy)
1597 ("libmusicbrainz" ,libmusicbrainz)
1598 ("libxml2" ,libxml2)
1599 ("neon" ,neon)
1600 ("webkitgtk" ,webkitgtk)))
1601 (synopsis "File previewer for the GNOME desktop")
1602 (description "Sushi is a DBus-activated service that allows applications to
1603 preview files on the GNOME desktop.")
1604 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1605 (license license:gpl2+)))
1606
1607 (define-public rygel
1608 (package
1609 (name "rygel")
1610 (version "0.38.3")
1611 (source (origin
1612 (method url-fetch)
1613 (uri (string-append "mirror://gnome/sources/" name "/"
1614 (version-major+minor version) "/"
1615 name "-" version ".tar.xz"))
1616 (sha256
1617 (base32
1618 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1619 (build-system gnu-build-system)
1620 (native-inputs
1621 `(("gettext" ,gettext-minimal)
1622 ("gobject-introspection" ,gobject-introspection)
1623 ("gtk-doc" ,gtk-doc/stable)
1624 ("pkg-config" ,pkg-config)
1625 ("vala" ,vala)))
1626 (inputs
1627 `(("gdk-pixbuf" ,gdk-pixbuf)
1628 ("gssdp" ,gssdp)
1629 ("gstreamer" ,gstreamer)
1630 ("gst-plugins-base" ,gst-plugins-base)
1631 ("gtk+" ,gtk+)
1632 ("gupnp" ,gupnp)
1633 ("gupnp-av" ,gupnp-av)
1634 ("gupnp-dlna" ,gupnp-dlna)
1635 ("libgee" ,libgee)
1636 ("libmediaart" ,libmediaart)
1637 ("libsoup" ,libsoup)
1638 ("libxslt" ,libxslt)
1639 ("libunistring" ,libunistring)
1640 ("tracker" ,tracker)))
1641 (synopsis "Share audio, video, and pictures with other devices")
1642 (description
1643 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1644 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1645 pictures, and to control a media player on your home network.
1646
1647 Rygel achieves interoperability with other devices by trying to conform to the
1648 strict requirements of DLNA and by converting media on-the-fly to formats that
1649 client devices can handle.")
1650 (home-page "https://wiki.gnome.org/Projects/Rygel")
1651 (license (list
1652 ;; For logo (data/icons/*).
1653 license:cc-by-sa3.0
1654 ;; For all others.
1655 license:lgpl2.1+))))
1656
1657 (define-public libnma
1658 (package
1659 (name "libnma")
1660 (version "1.8.28")
1661 (source (origin
1662 (method url-fetch)
1663 (uri (string-append "mirror://gnome/sources/" name "/"
1664 (version-major+minor version) "/"
1665 name "-" version ".tar.xz"))
1666 (sha256
1667 (base32
1668 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1669 (build-system meson-build-system)
1670 (arguments
1671 `(#:phases
1672 (modify-phases %standard-phases
1673 (add-after 'unpack 'patch-docbook-xml
1674 (lambda* (#:key inputs #:allow-other-keys)
1675 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1676 "/xml/dtd/docbook")))
1677 (substitute* "libnma-docs.xml"
1678 (("http://.*/docbookx\\.dtd")
1679 (string-append xmldoc "/docbookx.dtd")))
1680 #t))))))
1681 (native-inputs
1682 `(("docbook-xml" ,docbook-xml-4.3)
1683 ("gettext" ,gettext-minimal)
1684 ("glib:bin" ,glib "bin")
1685 ("gtk-doc" ,gtk-doc/stable)
1686 ("gobject-introspection" ,gobject-introspection)
1687 ("pkg-config" ,pkg-config)
1688 ("vala" ,vala)))
1689 (inputs
1690 `(("gcr" ,gcr)
1691 ("gtk+" ,gtk+)
1692 ("iso-codes" ,iso-codes)
1693 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1694 ("network-manager" ,network-manager)))
1695 (synopsis "Network Manager's applet library")
1696 (description "Libnma is an applet library for Network Manager. It was
1697 initially part of network-manager-applet and has now become a separate
1698 project.")
1699 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1700 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1701 ;; "LGPL-2.1+".
1702 (license license:gpl2+)))
1703
1704 (define-public gnome-menus
1705 (package
1706 (name "gnome-menus")
1707 (version "3.32.0")
1708 (source (origin
1709 (method url-fetch)
1710 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1711 (version-major+minor version) "/"
1712 name "-" version ".tar.xz"))
1713 (sha256
1714 (base32
1715 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1716 (build-system gnu-build-system)
1717 (native-inputs
1718 `(("gettext" ,gettext-minimal)
1719 ("glib" ,glib)
1720 ("pkg-config" ,pkg-config)))
1721 (synopsis "Menu support for GNOME desktop")
1722 (description "GNOME Menus contains the libgnome-menu library, the layout
1723 configuration files for the GNOME menu, as well as a simple menu editor.")
1724 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1725 (license license:lgpl2.0+)))
1726
1727 (define-public deja-dup
1728 (package
1729 (name "deja-dup")
1730 (version "40.6")
1731 (source (origin
1732 (method url-fetch)
1733 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1734 version "/deja-dup-" version ".tar.bz2"))
1735 (sha256
1736 (base32
1737 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1738 (build-system meson-build-system)
1739 (arguments
1740 `(#:glib-or-gtk? #t
1741 #:configure-flags
1742 (list
1743 ;; Otherwise, the RUNPATH will lack the final path component.
1744 (string-append "-Dc_link_args=-Wl,-rpath="
1745 (assoc-ref %outputs "out") "/lib/deja-dup"))
1746 #:phases
1747 (modify-phases %standard-phases
1748 (add-after 'unpack 'patch-paths
1749 (lambda* (#:key inputs #:allow-other-keys)
1750 (let ((python (assoc-ref inputs "python")))
1751 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1752 "libdeja/tests/scripts/instance-error.test")
1753 (("/bin/rm")
1754 (which "rm")))
1755 (substitute* "libdeja/tests/runner.vala"
1756 (("/bin/sh")
1757 (which "sh")))
1758 (substitute* "libdeja/tests/scripts/instance-error.test"
1759 (("`which python3`")
1760 (string-append python "/bin/python3"))))))
1761 (add-after 'unpack 'patch-libgpg-error
1762 (lambda* (#:key inputs #:allow-other-keys)
1763 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1764 (substitute* "meson.build"
1765 (("(gpgerror_libs = ).*" _ var)
1766 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1767 #t))
1768 (add-after 'unpack 'skip-gtk-update-icon-cache
1769 ;; Don't create 'icon-theme.cache'.
1770 (lambda _
1771 (substitute* "data/post-install.sh"
1772 (("gtk-update-icon-cache") "true"))
1773 #t)))))
1774 (inputs
1775 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1776 ("duplicity" ,duplicity)
1777 ("python" ,python)
1778 ("python-pygobject" ,python-pygobject)
1779 ("gtk+" ,gtk+)
1780 ("json-glib" ,json-glib)
1781 ("libnotify" ,libnotify)
1782 ("libgpg-error" ,libgpg-error)
1783 ("libsecret" ,libsecret)
1784 ("libsoup" ,libsoup)
1785 ("packagekit" ,packagekit)))
1786 (native-inputs
1787 `(("appstream-glib" ,appstream-glib)
1788 ("desktop-file-utils" ,desktop-file-utils)
1789 ("gettext" ,gettext-minimal)
1790 ("glib" ,glib "bin") ; for glib-compile-schemas.
1791 ("gobject-introspection" ,gobject-introspection)
1792 ("itstool" ,itstool)
1793 ("pkg-config" ,pkg-config)
1794 ("vala" ,vala)))
1795 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1796 (synopsis "Simple backup tool, for regular encrypted backups")
1797 (description
1798 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1799 uses duplicity as the backend, which supports incremental backups and storage
1800 either on a local, or remote machine via a number of methods.")
1801 (license license:gpl3+)))
1802
1803 (define-public gnome-commander
1804 (package
1805 (name "gnome-commander")
1806 (version "1.10.3")
1807 (source
1808 (origin
1809 (method url-fetch)
1810 (uri (string-append "mirror://gnome/sources/" name "/"
1811 (version-major+minor version) "/"
1812 "gnome-commander-" version ".tar.xz"))
1813 (sha256
1814 (base32 "0bis36awb73vhkncq8yr0qlnyaxynqkvmyqbg57ijqwd0m8hh4zg"))))
1815 (build-system glib-or-gtk-build-system)
1816 (native-inputs
1817 `(("desktop-file-utils" ,desktop-file-utils)
1818 ("gcc" ,gcc-8) ;required for -Wcast-function-type
1819 ("gettext" ,gettext-minimal)
1820 ("glib:bin" ,glib "bin")
1821 ("gobject-introspection" ,gobject-introspection)
1822 ("googletest" ,googletest)
1823 ("intltool" ,intltool)
1824 ("itstool" ,itstool)
1825 ("libtool" ,libtool)
1826 ("pkg-config" ,pkg-config)))
1827 (inputs
1828 `(("gconf" ,gconf)
1829 ("gnome-vfs" ,gnome-vfs)
1830 ("gtk+" ,gtk+-2)
1831 ("libxml2" ,libxml2)))
1832 (home-page "https://gcmd.github.io/")
1833 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1834 (description
1835 "GNOME Commander is a two-pane graphical file manager using GNOME
1836 libraries. It aims to fulfill the demands of more advanced users who
1837 like to focus on file management, their work through special applications
1838 and running smart commands.")
1839 (license license:gpl2+)))
1840
1841 (define-public gnome-user-docs
1842 (package
1843 (name "gnome-user-docs")
1844 (version "3.32.3")
1845 (source
1846 (origin
1847 (method url-fetch)
1848 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1849 (version-major+minor version)
1850 "/gnome-user-docs-" version ".tar.xz"))
1851 (sha256
1852 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1853 (build-system gnu-build-system)
1854 (native-inputs
1855 `(("gettext" ,gettext-minimal)
1856 ("itstool" ,itstool)
1857 ("pkg-config" ,pkg-config)
1858 ("xmllint" ,libxml2)))
1859 (synopsis "User documentation for the GNOME desktop")
1860 (description
1861 "The GNOME User Documentation explains how to use the GNOME desktop and its
1862 components. It covers usage and setup of the core GNOME programs by end-users
1863 and system administrators.")
1864 (home-page "https://live.gnome.org/DocumentationProject")
1865 (license license:cc-by3.0)))
1866
1867 (define-public gnome-getting-started-docs
1868 (package
1869 (name "gnome-getting-started-docs")
1870 (version "3.32.2")
1871 (source
1872 (origin
1873 (method url-fetch)
1874 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1875 (version-major+minor version)
1876 "/gnome-getting-started-docs-" version ".tar.xz"))
1877 (sha256
1878 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1879 (build-system gnu-build-system)
1880 (native-inputs
1881 `(("gettext" ,gettext-minimal)
1882 ("itstool" ,itstool)
1883 ("pkg-config" ,pkg-config)
1884 ("xmllint" ,libxml2)))
1885 (synopsis "Help to get new users started with the GNOME desktop")
1886 (description
1887 "The GNOME Getting Started Documentation contains GNOME's intuitive
1888 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1889
1890 It is normally used together with @command{gnome-initial-setup}, but is also
1891 useful as a tutorial and users' guide for new or less experienced users.")
1892 (home-page "https://live.gnome.org/DocumentationProject")
1893 (license license:cc-by-sa3.0)))
1894
1895 (define-public dia
1896 ;; This version from GNOME's repository includes fixes for compiling with
1897 ;; recent versions of the build tools. The latest activity on the
1898 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1899 ;; fixes since.
1900 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1901 (revision "2"))
1902 (package
1903 (name "dia")
1904 (version (git-version "0.97.3" revision commit))
1905 (source (origin
1906 (method git-fetch)
1907 (uri (git-reference
1908 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1909 (commit commit)))
1910 (file-name (git-file-name name version))
1911 (sha256
1912 (base32
1913 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1914 (build-system meson-build-system)
1915 (inputs
1916 `(("graphene" ,graphene)
1917 ("gtk+" ,gtk+-2)
1918 ("libxml2" ,libxml2)
1919 ("libxslt" ,libxslt)
1920 ("poppler" ,poppler)
1921 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1922 ;; ERROR: Unknown method "dependency" in object.
1923 ("python-2" ,python-2)))
1924 (native-inputs
1925 `(("appstream-glib" ,appstream-glib)
1926 ("docbook-xsl" ,docbook-xsl)
1927 ("glib" ,glib "bin")
1928 ("intltool" ,intltool)
1929 ("pkg-config" ,pkg-config)))
1930 (home-page "https://wiki.gnome.org/Apps/Dia")
1931 (synopsis "Diagram creation for GNOME")
1932 (description "Dia can be used to draw different types of diagrams, and
1933 includes support for UML static structure diagrams (class diagrams), entity
1934 relationship modeling, and network diagrams. The program supports various file
1935 formats like PNG, SVG, PDF and EPS.")
1936 (license license:gpl2+))))
1937
1938 ;; This is the unstable release, but it is required for the current stable
1939 ;; release of gvfs (1.38.1).
1940 (define-public libgdata
1941 (package
1942 (name "libgdata")
1943 (version "0.17.9")
1944 (source (origin
1945 (method url-fetch)
1946 (uri (string-append "mirror://gnome/sources/" name "/"
1947 (version-major+minor version) "/"
1948 name "-" version ".tar.xz"))
1949 (sha256
1950 (base32
1951 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1952 (build-system gnu-build-system)
1953 (arguments
1954 '(#:phases
1955 (modify-phases %standard-phases
1956 (add-before 'check 'disable-failing-tests
1957 (lambda _
1958 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1959 ;; They have been removed in libgdata 0.17.6, so just do the same.
1960 (substitute* "gdata/tests/Makefile"
1961 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1962 #t)))))
1963 (native-inputs
1964 `(("glib:bin" ,glib "bin")
1965 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1966 ("intltool" ,intltool)
1967 ("pkg-config" ,pkg-config)
1968 ("uhttpmock" ,uhttpmock)))
1969 (inputs
1970 `(("cyrus-sasl" ,cyrus-sasl)
1971 ("glib-networking" ,glib-networking)))
1972 (propagated-inputs
1973 `(("gcr" ,gcr)
1974 ("glib" ,glib)
1975 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1976 ("json-glib" ,json-glib)
1977 ("liboauth" ,liboauth)
1978 ("libsoup" ,libsoup)
1979 ("libxml2" ,libxml2)))
1980 (home-page "https://wiki.gnome.org/Projects/libgdata")
1981 (synopsis "Library for accessing online service APIs")
1982 (description
1983 "libgdata is a GLib-based library for accessing online service APIs using
1984 the GData protocol — most notably, Google's services. It provides APIs to
1985 access the common Google services, and has full asynchronous support.")
1986 (license license:lgpl2.1+)))
1987
1988 (define-public libgxps
1989 (package
1990 (name "libgxps")
1991 (version "0.3.2")
1992 (source (origin
1993 (method url-fetch)
1994 (uri (string-append "mirror://gnome/sources/" name "/"
1995 (version-major+minor version) "/"
1996 name "-" version ".tar.xz"))
1997 (sha256
1998 (base32
1999 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
2000 (build-system meson-build-system)
2001 (native-inputs
2002 `(("gobject-introspection" ,gobject-introspection)
2003 ("pkg-config" ,pkg-config)))
2004 (inputs
2005 `(("gtk+" ,gtk+)
2006 ("libjpeg" ,libjpeg-turbo)
2007 ("lcms" ,lcms)
2008 ("libtiff" ,libtiff)))
2009 (propagated-inputs
2010 ;; In Requires of libgxps.pc.
2011 `(("cairo" ,cairo)
2012 ("glib" ,glib)
2013 ("libarchive" ,libarchive)))
2014 (home-page "https://wiki.gnome.org/Projects/libgxps")
2015 (synopsis "GObject-based library for handling and rendering XPS documents")
2016 (description
2017 "libgxps is a GObject-based library for handling and rendering XPS
2018 documents. This package also contains binaries that can convert XPS documents
2019 to other formats.")
2020 (license license:lgpl2.1+)))
2021
2022 (define-public gnome-characters
2023 (package
2024 (name "gnome-characters")
2025 (version "3.30.0")
2026 (source
2027 (origin
2028 (method url-fetch)
2029 (uri (string-append "mirror://gnome/sources/"
2030 "gnome-characters/" (version-major+minor version)
2031 "/gnome-characters-" version ".tar.xz"))
2032 (sha256
2033 (base32
2034 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
2035 (build-system meson-build-system)
2036 (arguments
2037 `(#:glib-or-gtk? #t
2038 #:phases (modify-phases %standard-phases
2039 (add-after 'install 'wrap
2040 (lambda* (#:key outputs #:allow-other-keys)
2041 ;; GNOME Characters needs Typelib files from GTK and
2042 ;; gnome-desktop.
2043 (wrap-program (string-append (assoc-ref outputs "out")
2044 "/bin/gnome-characters")
2045 `("GI_TYPELIB_PATH" ":" prefix
2046 (,(getenv "GI_TYPELIB_PATH"))))
2047 #t)))))
2048 (native-inputs
2049 `(("gettext" ,gettext-minimal)
2050 ("glib:bin" ,glib "bin")
2051 ("gtk+:bin" ,gtk+ "bin")
2052 ("pkg-config" ,pkg-config)
2053 ("python" ,python-minimal)))
2054 (inputs
2055 `(("gjs" ,gjs)
2056 ("gtk+" ,gtk+)
2057 ("libunistring" ,libunistring)
2058 ("gnome-desktop" ,gnome-desktop)))
2059 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2060 (synopsis "Find and insert unusual characters")
2061 (description "Characters is a simple utility application to find
2062 and insert unusual characters. It allows you to quickly find the
2063 character you are looking for by searching for keywords.")
2064 (license license:bsd-3)))
2065
2066 (define-public gnome-common
2067 (package
2068 (name "gnome-common")
2069 (version "3.18.0")
2070 (source
2071 (origin
2072 (method url-fetch)
2073 (uri (string-append "mirror://gnome/sources/" name "/"
2074 (version-major+minor version) "/"
2075 name "-" version ".tar.xz"))
2076 (sha256
2077 (base32
2078 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2079 (build-system gnu-build-system)
2080 (home-page "https://www.gnome.org/")
2081 (synopsis "Bootstrap GNOME modules built from Git")
2082 (description "gnome-common contains various files needed to bootstrap
2083 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2084 can be used to configure a source directory checked out from Git and some
2085 commonly used macros.")
2086 (license license:gpl2+)))
2087
2088 (define-public gnome-contacts
2089 (package
2090 (name "gnome-contacts")
2091 (version "3.34")
2092 (source (origin
2093 (method url-fetch)
2094 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2095 (version-major+minor version) "/"
2096 name "-" version ".tar.xz"))
2097 (sha256
2098 (base32
2099 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
2100 (build-system meson-build-system)
2101 (arguments
2102 `(#:configure-flags '("-Dcheese=false")
2103 #:phases
2104 (modify-phases %standard-phases
2105 (add-after 'unpack 'generate-vapis
2106 (lambda* (#:key inputs #:allow-other-keys)
2107 ;; To generate goa's missing .vapi file
2108 (define goa
2109 (assoc-ref inputs "gnome-online-accounts:lib"))
2110
2111 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
2112 "--library=goa-1.0"
2113 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
2114 #t))
2115 (add-after 'unpack 'skip-gtk-update-icon-cache
2116 ;; Don't create 'icon-theme.cache'.
2117 (lambda _
2118 (substitute* "build-aux/meson_post_install.py"
2119 (("gtk-update-icon-cache") "true"))
2120 #t)))))
2121 (native-inputs
2122 `(("glib:bin" ,glib "bin")
2123 ("pkg-config" ,pkg-config)))
2124 (inputs
2125 `(("docbook-xml" ,docbook-xml)
2126 ("dockbook-xsl" ,docbook-xsl)
2127 ("evolution-data-server" ,evolution-data-server)
2128 ("gettext" ,gettext-minimal)
2129 ("gnome-desktop" ,gnome-desktop)
2130 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
2131 ("gobject-introspection" ,gobject-introspection)
2132 ("gst-plugins-base" ,gst-plugins-base)
2133 ("gtk+" ,gtk+)
2134 ("libgee" ,libgee)
2135 ("libxslt" ,libxslt)
2136 ("telepathy-glib" ,telepathy-glib)
2137 ("vala" ,vala)))
2138 (propagated-inputs
2139 `(("folks" ,folks)
2140 ("telepathy-mission-control" ,telepathy-mission-control)))
2141 (synopsis "GNOME's integrated address book")
2142 (description
2143 "GNOME Contacts organizes your contact information from online and
2144 offline sources, providing a centralized place for managing your contacts.")
2145 (home-page "https://wiki.gnome.org/Apps/Contacts")
2146 (license license:gpl2+)))
2147
2148 (define-public gnome-desktop
2149 (package
2150 (name "gnome-desktop")
2151 (version "3.34.2")
2152 (source
2153 (origin
2154 (method url-fetch)
2155 (uri (string-append "mirror://gnome/sources/" name "/"
2156 (version-major+minor version) "/"
2157 name "-" version ".tar.xz"))
2158 (sha256
2159 (base32
2160 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2161 (build-system meson-build-system)
2162 (arguments
2163 '(#:phases
2164 (modify-phases %standard-phases
2165 (add-before 'configure 'patch-path
2166 (lambda* (#:key inputs #:allow-other-keys)
2167 (let ((libc (assoc-ref inputs "libc")))
2168 (substitute* "libgnome-desktop/gnome-languages.c"
2169 (("\"locale\"")
2170 (string-append "\"" libc "/bin/locale\"")))
2171 #t)))
2172 (add-before 'configure 'patch-bubblewrap
2173 (lambda* (#:key inputs #:allow-other-keys)
2174 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2175 (("\"bwrap\",")
2176 (string-append "\"" (which "bwrap") "\","))
2177 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2178 (string-append "\"--ro-bind\", \""
2179 (%store-directory)
2180 "\", \""
2181 (%store-directory)
2182 "\","))
2183 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2184 #t))
2185 (add-before 'check 'pre-check
2186 (lambda* (#:key inputs #:allow-other-keys)
2187 ;; Tests require a running X server and locales.
2188 (system "Xvfb :1 &")
2189 (setenv "DISPLAY" ":1")
2190 (setenv "GUIX_LOCPATH"
2191 (string-append (assoc-ref inputs "glibc-locales")
2192 "/lib/locale"))
2193 #t)))))
2194 (native-inputs
2195 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2196 ("glibc-locales" ,glibc-locales) ; for tests
2197 ("gobject-introspection" ,gobject-introspection)
2198 ("itstool" ,itstool)
2199 ("intltool" ,intltool)
2200 ("pkg-config" ,pkg-config)
2201 ("xmllint" ,libxml2)
2202 ("xorg-server" ,xorg-server-for-tests)))
2203 (propagated-inputs
2204 ;; Required by gnome-desktop-3.0.pc.
2205 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2206 ("gtk+" ,gtk+)
2207 ("iso-codes" ,iso-codes)
2208 ("libseccomp" ,libseccomp)
2209 ("libx11" ,libx11)
2210 ("xkeyboard-config" ,xkeyboard-config)))
2211 (inputs
2212 `(("gdk-pixbuf" ,gdk-pixbuf)
2213 ("glib" ,glib)
2214 ("bubblewrap" ,bubblewrap)
2215 ("libxext" ,libxext)
2216 ("libxkbfile" ,libxkbfile)
2217 ("libxrandr" ,libxrandr)))
2218 (home-page "https://www.gnome.org/")
2219 (synopsis
2220 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2221 (description
2222 "The libgnome-desktop library provides API shared by several applications
2223 on the desktop, but that cannot live in the platform for various reasons.
2224 There is no API or ABI guarantee, although we are doing our best to provide
2225 stability. Documentation for the API is available with gtk-doc.
2226
2227 The gnome-about program helps find which version of GNOME is installed.")
2228 ; Some bits under the LGPL.
2229 (license license:gpl2+)))
2230
2231 (define-public gnome-doc-utils
2232 (package
2233 (name "gnome-doc-utils")
2234 (version "0.20.10")
2235 (source
2236 (origin
2237 (method url-fetch)
2238 (uri (string-append "mirror://gnome/sources/" name "/"
2239 (version-major+minor version) "/"
2240 name "-" version ".tar.xz"))
2241 (sha256
2242 (base32
2243 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2244 (build-system gnu-build-system)
2245 (native-inputs
2246 `(("intltool" ,intltool)
2247 ("docbook-xml" ,docbook-xml-4.4)
2248 ("python2-libxml2" ,python2-libxml2)
2249 ("libxml2" ,libxml2)
2250 ("libxslt" ,libxslt)
2251 ("pkg-config" ,pkg-config)
2252 ("python-2" ,python-2)))
2253 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2254 (synopsis
2255 "Documentation utilities for the Gnome project")
2256 (description
2257 "Gnome-doc-utils is a collection of documentation utilities for the
2258 Gnome project. It includes xml2po tool which makes it easier to translate
2259 and keep up to date translations of documentation.")
2260 (license license:gpl2+))) ; xslt under lgpl
2261
2262 (define-public gnome-disk-utility
2263 (package
2264 (name "gnome-disk-utility")
2265 (version "3.34.0")
2266 (source (origin
2267 (method url-fetch)
2268 (uri (string-append "mirror://gnome/sources/" name "/"
2269 (version-major+minor version) "/"
2270 name "-" version ".tar.xz"))
2271 (sha256
2272 (base32
2273 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2274 (build-system meson-build-system)
2275 (arguments
2276 '(#:configure-flags '("-Dlogind=libelogind")
2277 #:phases
2278 (modify-phases %standard-phases
2279 (add-after 'unpack 'skip-gtk-update-icon-cache
2280 ;; Don't create 'icon-theme.cache'.
2281 (lambda _
2282 (substitute* "meson_post_install.py"
2283 (("gtk-update-icon-cache") "true"))
2284 #t)))))
2285 (native-inputs
2286 `(("glib:bin" ,glib "bin")
2287 ("intltool" ,intltool)
2288 ("pkg-config" ,pkg-config)
2289 ("docbook-xml" ,docbook-xml)
2290 ("docbook-xsl" ,docbook-xsl)
2291 ("libxml2" ,libxml2)
2292 ("libxslt" ,libxslt)))
2293 (inputs
2294 `(("elogind" ,elogind)
2295 ("glib" ,glib)
2296 ("appstream-glib" ,appstream-glib)
2297 ("gnome-settings-daemon" ,gnome-settings-daemon)
2298 ("gtk+" ,gtk+)
2299 ("libcanberra" ,libcanberra)
2300 ("libdvdread" ,libdvdread)
2301 ("libnotify" ,libnotify)
2302 ("libpwquality" ,libpwquality)
2303 ("libsecret" ,libsecret)
2304 ("udisks" ,udisks)))
2305 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2306 (synopsis "Disk management utility for GNOME")
2307 (description "Disk management utility for GNOME.")
2308 (license license:gpl2+)))
2309
2310 (define-public gnome-font-viewer
2311 (package
2312 (name "gnome-font-viewer")
2313 (version "3.30.0")
2314 (source (origin
2315 (method url-fetch)
2316 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2317 (version-major+minor version)
2318 "/gnome-font-viewer-" version ".tar.xz"))
2319 (sha256
2320 (base32
2321 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2322 (build-system meson-build-system)
2323 (arguments
2324 '(#:phases
2325 (modify-phases %standard-phases
2326 (add-after 'unpack 'patch-post-install-script
2327 (lambda _
2328 (substitute* "meson-postinstall.sh"
2329 (("update-desktop-database") (which "true")))
2330 #t))
2331 (add-after 'install 'patch-thumbnailer
2332 (lambda* (#:key outputs #:allow-other-keys)
2333 (let ((out (assoc-ref outputs "out")))
2334 (substitute*
2335 (string-append
2336 out
2337 "/share/thumbnailers/gnome-font-viewer.thumbnailer")
2338 (("gnome-thumbnail-font")
2339 (string-append out "/bin/gnome-thumbnail-font"))))
2340 #t)))))
2341 (native-inputs
2342 `(("gettext" ,gettext-minimal)
2343 ("glib:bin" ,glib "bin")
2344 ("pkg-config" ,pkg-config)))
2345 (inputs
2346 `(("glib" ,glib)
2347 ("gnome-desktop" ,gnome-desktop)
2348 ("gtk+" ,gtk+)))
2349 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2350 (synopsis "GNOME Fonts")
2351 (description "Application to show you the fonts installed on your computer
2352 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2353 the font would look under various sizes.")
2354 (license license:gpl2+)))
2355
2356 (define-public gcr
2357 (package
2358 (name "gcr")
2359 (version "3.34.0")
2360 (source (origin
2361 (method url-fetch)
2362 (uri (string-append "mirror://gnome/sources/" name "/"
2363 (version-major+minor version) "/"
2364 name "-" version ".tar.xz"))
2365 (sha256
2366 (base32
2367 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2368 (build-system gnu-build-system)
2369 (arguments
2370 '(#:phases
2371 (modify-phases %standard-phases
2372 ;; These fail because /var/lib/dbus/machine-id is not present in the
2373 ;; build environment.
2374 (add-after 'unpack 'disable-failing-tests
2375 (lambda _
2376 (substitute* "Makefile.in"
2377 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2378 ""))
2379 #t))
2380 (add-before 'check 'pre-check
2381 (lambda _
2382 ;; Some tests expect to write to $HOME.
2383 (setenv "HOME" "/tmp")
2384 #t)))))
2385 (inputs
2386 `(("dbus" ,dbus)
2387 ("gnupg" ,gnupg) ;called as a child process during tests
2388 ("libgcrypt" ,libgcrypt)))
2389 (native-inputs
2390 `(("python" ,python-wrapper) ;for tests
2391 ("pkg-config" ,pkg-config)
2392 ("gettext" ,gettext-minimal)
2393 ("glib" ,glib "bin")
2394 ("gobject-introspection" ,gobject-introspection)
2395 ("libxml2" ,libxml2)
2396 ("vala" ,vala)
2397 ("xsltproc" ,libxslt)))
2398 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2399 (propagated-inputs
2400 `(("p11-kit" ,p11-kit)
2401 ("glib" ,glib)
2402 ("gtk+" ,gtk+)))
2403 (home-page "https://www.gnome.org")
2404 (synopsis "Libraries for displaying certificates and accessing key stores")
2405 (description
2406 "The GCR package contains libraries used for displaying certificates and
2407 accessing key stores. It also provides the viewer for crypto files on the
2408 GNOME Desktop.")
2409 (license license:lgpl2.1+)))
2410
2411 (define-public gdl
2412 (package
2413 (name "gdl")
2414 (version "3.34.0")
2415 (source (origin
2416 (method git-fetch)
2417 (uri (git-reference
2418 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2419 (commit (string-append "GDL_" (string-map (match-lambda
2420 (#\. #\_)
2421 (c c))
2422 version)))))
2423 (file-name (git-file-name name version))
2424 (sha256
2425 (base32
2426 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2427 (build-system gnu-build-system)
2428 (native-inputs
2429 `(("autoconf" ,autoconf)
2430 ("automake" ,automake)
2431 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2432 ("gnome-common" ,gnome-common)
2433 ("gtk-doc" ,gtk-doc/stable)
2434 ("intltool" ,intltool)
2435 ("pkg-config" ,pkg-config)
2436 ("libtool" ,libtool)
2437 ("which" ,which)))
2438 (inputs
2439 `(("libxml2" ,libxml2)))
2440 (propagated-inputs
2441 ;; The gdl-3.0.pc file 'Requires' GTK+.
2442 `(("gtk+" ,gtk+)))
2443 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2444 (synopsis "GNOME docking library")
2445 (description "This library provides docking features for gtk+.")
2446 (license license:lgpl2.1+)))
2447
2448 ;;; A minimal variant used to break a cycle with Inkscape.
2449 (define-public gdl-minimal
2450 (package/inherit gdl
2451 (name "gdl-minimal")
2452 (arguments
2453 '(#:phases
2454 (modify-phases %standard-phases
2455 (add-after 'unpack 'disable-doc-generation
2456 ;; XXX: There is no easy way to disable generating the
2457 ;; documentation.
2458 (lambda _
2459 (substitute* "configure.in"
2460 (("GTK_DOC_CHECK.*") "")
2461 (("docs/.*") ""))
2462 (substitute* "Makefile.am"
2463 (("gdl docs po") "gdl po"))
2464 #t)))))
2465 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2466
2467 (define-public libgnome-keyring
2468 (package
2469 (name "libgnome-keyring")
2470 (version "3.12.0")
2471 (source (origin
2472 (method url-fetch)
2473 (uri (string-append "mirror://gnome/sources/" name "/"
2474 (version-major+minor version) "/"
2475 name "-" version ".tar.xz"))
2476 (sha256
2477 (base32
2478 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2479 (build-system gnu-build-system)
2480 (inputs
2481 `(("libgcrypt" ,libgcrypt)
2482 ("dbus" ,dbus)))
2483 (native-inputs
2484 `(("pkg-config" ,pkg-config)
2485 ("glib" ,glib "bin")
2486 ("intltool" ,intltool)))
2487 (propagated-inputs
2488 ;; Referred to in .h files and .pc.
2489 `(("glib" ,glib)))
2490 (home-page "https://www.gnome.org")
2491 (synopsis "Accessing passwords from the GNOME keyring")
2492 (description
2493 "Client library to access passwords from the GNOME keyring.")
2494
2495 ;; Though a couple of files are LGPLv2.1+.
2496 (license license:lgpl2.0+)))
2497
2498 (define-public gnome-keyring
2499 (package
2500 (name "gnome-keyring")
2501 (version "3.34.0")
2502 (source (origin
2503 (method url-fetch)
2504 (uri (string-append "mirror://gnome/sources/" name "/"
2505 (version-major+minor version) "/"
2506 name "-" version ".tar.xz"))
2507 (sha256
2508 (base32
2509 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2510 (build-system gnu-build-system)
2511 (arguments
2512 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2513 ;not exist
2514 #:configure-flags
2515 (list
2516 (string-append "--with-pkcs11-config="
2517 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2518 (string-append "--with-pkcs11-modules="
2519 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2520 #:phases
2521 (modify-phases %standard-phases
2522 (add-after 'unpack 'fix-/bin/sh-reference
2523 (lambda _
2524 (substitute* "po/Makefile.in.in"
2525 (("/bin/sh") (which "sh")))
2526 #t))
2527 (add-after 'unpack 'fix-docbook
2528 (lambda* (#:key inputs #:allow-other-keys)
2529 (substitute* "docs/Makefile.am"
2530 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2531 (string-append (assoc-ref inputs "docbook-xsl")
2532 "/xml/xsl/docbook-xsl-"
2533 ,(package-version docbook-xsl)
2534 "/manpages/docbook.xsl")))
2535 (setenv "XML_CATALOG_FILES"
2536 (string-append (assoc-ref inputs "docbook-xml")
2537 "/xml/dtd/docbook/catalog.xml"))
2538 ;; Rerun the whole thing to avoid version mismatch ("This is
2539 ;; Automake 1.15.1, but the definition used by this
2540 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2541 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2542 (invoke "autoconf")
2543 (invoke "aclocal")
2544 (invoke "automake" "-ac"))))))
2545 (inputs
2546 `(("libgcrypt" ,libgcrypt)
2547 ("linux-pam" ,linux-pam)
2548 ("openssh" ,openssh)
2549 ("dbus" ,dbus)
2550 ("gcr" ,gcr)))
2551 (native-inputs
2552 `(("pkg-config" ,pkg-config)
2553 ("glib" ,glib "bin")
2554 ("glib" ,glib) ; for m4 macros
2555 ("python" ,python-2) ;for tests
2556 ("intltool" ,intltool)
2557 ("autoconf" ,autoconf)
2558 ("automake" ,automake)
2559 ("libxslt" ,libxslt) ;for documentation
2560 ("docbook-xml" ,docbook-xml-4.2)
2561 ("docbook-xsl" ,docbook-xsl)))
2562 (propagated-inputs
2563 `(("gcr" ,gcr)))
2564 (home-page "https://www.gnome.org")
2565 (synopsis "Daemon to store passwords and encryption keys")
2566 (description
2567 "gnome-keyring is a program that keeps passwords and other secrets for
2568 users. It is run as a daemon in the session, similar to ssh-agent, and other
2569 applications locate it via an environment variable or D-Bus.
2570
2571 The program can manage several keyrings, each with its own master password,
2572 and there is also a session keyring which is never stored to disk, but
2573 forgotten when the session ends.")
2574 (license license:lgpl2.1+)))
2575
2576 (define-public evince
2577 (package
2578 (name "evince")
2579 (version "3.36.5")
2580 (source (origin
2581 (method url-fetch)
2582 (uri (string-append "mirror://gnome/sources/evince/"
2583 (version-major+minor version) "/"
2584 "evince-" version ".tar.xz"))
2585 (sha256
2586 (base32
2587 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2588 (build-system glib-or-gtk-build-system)
2589 (arguments
2590 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2591 #:phases
2592 (modify-phases %standard-phases
2593 (add-before 'install 'skip-gtk-update-icon-cache
2594 ;; Don't create 'icon-theme.cache'.
2595 (lambda _
2596 (substitute* "data/Makefile"
2597 (("gtk-update-icon-cache") "true"))
2598 #t)))))
2599 (inputs
2600 `(("libarchive" ,libarchive)
2601 ("libgxps" ,libgxps)
2602 ("libspectre" ,libspectre)
2603 ("djvulibre" ,djvulibre)
2604 ("ghostscript" ,ghostscript)
2605 ("poppler" ,poppler)
2606 ("libtiff" ,libtiff)
2607 ;; TODO:
2608 ;; Build libkpathsea as a shared library for DVI support.
2609 ;; ("libkpathsea" ,texlive-bin)
2610 ("gnome-desktop" ,gnome-desktop)
2611 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2612 ("gspell" ,gspell)
2613 ("libgnome-keyring" ,libgnome-keyring)
2614 ("adwaita-icon-theme" ,adwaita-icon-theme)
2615 ("gdk-pixbuf" ,gdk-pixbuf)
2616 ("atk" ,atk)
2617 ("pango" ,pango)
2618 ("gtk+" ,gtk+)
2619 ("glib" ,glib)
2620 ("libxml2" ,libxml2)
2621 ("libsm" ,libsm)
2622 ("libice" ,libice)
2623 ("shared-mime-info" ,shared-mime-info)
2624 ("dconf" ,dconf)
2625 ("libcanberra" ,libcanberra)
2626 ("libsecret" ,libsecret)
2627
2628 ;; For tests.
2629 ("dogtail" ,python2-dogtail)))
2630 (native-inputs
2631 `(("itstool" ,itstool)
2632 ("intltool" ,intltool)
2633 ("glib" ,glib "bin")
2634 ("gobject-introspection" ,gobject-introspection)
2635 ("pkg-config" ,pkg-config)
2636 ("xmllint" ,libxml2)))
2637 (home-page "https://www.gnome.org/projects/evince/")
2638 (synopsis "GNOME's document viewer")
2639 (description
2640 "Evince is a document viewer for multiple document formats. It
2641 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2642 of Evince is to replace the multiple document viewers that exist
2643 on the GNOME Desktop with a single simple application.")
2644 (license license:gpl2+)))
2645
2646 (define-public gsettings-desktop-schemas
2647 (package
2648 (name "gsettings-desktop-schemas")
2649 (version "3.34.0")
2650 (source
2651 (origin
2652 (method url-fetch)
2653 (uri (string-append "mirror://gnome/sources/" name "/"
2654 (version-major+minor version) "/"
2655 name "-" version ".tar.xz"))
2656 (sha256
2657 (base32
2658 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2659 (build-system meson-build-system)
2660 (arguments
2661 '(#:phases (modify-phases %standard-phases
2662 (add-after 'unpack 'patch-schemas
2663 (lambda* (#:key inputs #:allow-other-keys)
2664 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2665 (substitute* (find-files "schemas"
2666 "\\.gschema\\.xml\\.in$")
2667 ;; Provide the correct file name of the default GNOME
2668 ;; background, 'adwaita-timed.xml'.
2669 (("@datadir@/backgrounds/gnome")
2670 (string-append theme "/share/backgrounds/gnome"))
2671 ;; Do not reference fonts, that may not exist.
2672 (("'Source Code Pro 10'") "'Monospace 11'"))
2673 #t))))))
2674 (inputs
2675 `(("glib" ,glib)
2676 ("gnome-backgrounds" ,gnome-backgrounds)))
2677 (native-inputs
2678 `(("intltool" ,intltool)
2679 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2680 ("gobject-introspection" ,gobject-introspection)
2681 ("pkg-config" ,pkg-config)))
2682 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2683 (synopsis
2684 "GNOME settings for various desktop components")
2685 (description
2686 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2687 for settings shared by various components of the GNOME desktop.")
2688 (license license:lgpl2.1+)))
2689
2690 (define-public python-liblarch
2691 (package
2692 (name "python-liblarch")
2693 (version "3.0.1")
2694 (source
2695 (origin
2696 (method git-fetch)
2697 (uri (git-reference
2698 (url "https://github.com/getting-things-gnome/liblarch")
2699 (commit (string-append "v" version))))
2700 (file-name (git-file-name name version))
2701 (sha256
2702 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2703 (build-system python-build-system)
2704 (arguments
2705 `(#:phases
2706 (modify-phases %standard-phases
2707 (add-before 'check 'start-xserver
2708 (lambda* (#:key inputs #:allow-other-keys)
2709 (system (format #f "~a/bin/Xvfb :1 &"
2710 (assoc-ref inputs "xorg-server")))
2711 (setenv "DISPLAY" ":1")
2712 #t)))))
2713 (native-inputs
2714 `(("xorg-server" ,xorg-server-for-tests)))
2715 (inputs
2716 `(("gtk+" ,gtk+)))
2717 (propagated-inputs
2718 `(("python-pygobject" ,python-pygobject)))
2719 (home-page "https://wiki.gnome.org/Projects/liblarch")
2720 (synopsis "Library to easily handle complex data structures")
2721 (description
2722 "Liblarch is a Python library built to easily handle data structures such
2723 as lists, trees and acyclic graphs. There's also a GTK binding that will
2724 allow you to use your data structure in a @code{Gtk.Treeview}.
2725
2726 Liblarch support multiple views of one data structure and complex filtering.
2727 That way, you have a clear separation between your data themselves (Model)
2728 and how they are displayed (View).")
2729 (license license:lgpl3+)))
2730
2731 (define-public gtg
2732 (package
2733 (name "gtg")
2734 (version "0.5")
2735 (source
2736 (origin
2737 (method git-fetch)
2738 (uri (git-reference
2739 (url "https://github.com/getting-things-gnome/gtg")
2740 (commit (string-append "v" version))))
2741 (file-name (git-file-name name version))
2742 (sha256
2743 (base32 "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403"))))
2744 (build-system meson-build-system)
2745 (arguments
2746 `(#:glib-or-gtk? #t
2747 #:phases
2748 (modify-phases %standard-phases
2749 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2750 (lambda* (#:key outputs #:allow-other-keys)
2751 (let ((prog (string-append (assoc-ref outputs "out")
2752 "/bin/gtg"))
2753 (pylib (string-append (assoc-ref outputs "out")
2754 "/lib/python"
2755 ,(version-major+minor
2756 (package-version python))
2757 "/site-packages")))
2758 (wrap-program prog
2759 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
2760 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2761 #t))))))
2762 (native-inputs
2763 `(("desktop-file-utils" ,desktop-file-utils)
2764 ("gettext" ,gettext-minimal)
2765 ("glib:bin" ,glib "bin")
2766 ("gobject-introspection" ,gobject-introspection)
2767 ("gtk+:bin" ,gtk+ "bin")
2768 ("pkg-config" ,pkg-config)))
2769 (inputs
2770 `(("gdk-pixbuf" ,gdk-pixbuf+svg)
2771 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2772 ("gtk+" ,gtk+)
2773 ("pango" ,pango)
2774 ("python-dbus" ,python-dbus)
2775 ("python-liblarch" ,python-liblarch)
2776 ("python-lxml" ,python-lxml)
2777 ("python-pycairo" ,python-pycairo)
2778 ("python-pygobject" ,python-pygobject)
2779 ("python-pyxdg" ,python-pyxdg)))
2780 (home-page "https://wiki.gnome.org/Apps/GTG")
2781 (synopsis "Personal organizer for the GNOME desktop")
2782 (description
2783 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2784 organizer for the GNOME desktop environment inspired by the Getting Things
2785 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2786 and ease of use in mind so it can be used as more than just GTD software.
2787 GTG is intended to help you track everything you need to do and need to
2788 know, from small tasks to large projects.")
2789 (license license:gpl3+)))
2790
2791 (define-public icon-naming-utils
2792 (package
2793 (name "icon-naming-utils")
2794 (version "0.8.90")
2795 (source
2796 (origin
2797 (method url-fetch)
2798 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2799 version ".tar.bz2"))
2800 (sha256
2801 (base32
2802 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2803 (build-system gnu-build-system)
2804 (inputs
2805 `(("perl" ,perl)
2806 ("perl-xml-simple" ,perl-xml-simple)))
2807 (arguments
2808 '(#:phases
2809 (modify-phases %standard-phases
2810 (add-after 'install 'set-load-paths
2811 ;; Tell 'icon-name-mapping' where XML::Simple is.
2812 (lambda* (#:key outputs #:allow-other-keys)
2813 (let* ((out (assoc-ref outputs "out"))
2814 (prog (string-append out "/libexec/icon-name-mapping")))
2815 (wrap-program
2816 prog
2817 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2818 #t)))))
2819 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2820 (synopsis
2821 "Utility to implement the Freedesktop Icon Naming Specification")
2822 (description
2823 "To help with the transition to the Freedesktop Icon Naming
2824 Specification, the icon naming utility maps the icon names used by the
2825 GNOME and KDE desktops to the icon names proposed in the specification.")
2826 (license license:lgpl2.1+)))
2827
2828 (define-public gnome-icon-theme
2829 (package
2830 (name "gnome-icon-theme")
2831 (version "3.12.0")
2832 (source
2833 (origin
2834 (method url-fetch)
2835 (uri (string-append "mirror://gnome/sources/" name "/"
2836 (version-major+minor version) "/"
2837 name "-" version ".tar.xz"))
2838 (sha256
2839 (base32
2840 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2841 (build-system gnu-build-system)
2842 (arguments
2843 '(#:configure-flags
2844 ;; Don't create 'icon-theme.cache'.
2845 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2846 (true (string-append coreutils "/bin/true")))
2847 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2848 (native-inputs
2849 `(("icon-naming-utils" ,icon-naming-utils)
2850 ("intltool" ,intltool)
2851 ("pkg-config" ,pkg-config)))
2852 (home-page "https://wiki.gnome.org/Personalization")
2853 (synopsis "GNOME icon theme")
2854 (description "Icons for the GNOME desktop.")
2855 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2856
2857 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2858 (define-public adwaita-icon-theme
2859 (package (inherit gnome-icon-theme)
2860 (name "adwaita-icon-theme")
2861 (version "3.34.3")
2862 (source (origin
2863 (method url-fetch)
2864 (uri (string-append "mirror://gnome/sources/" name "/"
2865 (version-major+minor version) "/"
2866 name "-" version ".tar.xz"))
2867 (sha256
2868 (base32
2869 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2870 (native-inputs
2871 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2872
2873 (define-public tango-icon-theme
2874 (package
2875 (name "tango-icon-theme")
2876 (version "0.8.90")
2877 (source (origin
2878 (method url-fetch)
2879 (uri (string-append "http://tango.freedesktop.org/releases/"
2880 "tango-icon-theme-" version ".tar.bz2"))
2881 (sha256
2882 (base32
2883 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2884 (build-system gnu-build-system)
2885 (native-inputs
2886 `(("icon-naming-utils" ,icon-naming-utils)
2887 ("intltool" ,intltool)
2888 ("imagemagick" ,imagemagick)
2889 ("pkg-config" ,pkg-config)))
2890 (home-page "http://tango-project.org/")
2891 (synopsis "Tango icon theme")
2892 (description "This is an icon theme that follows the Tango visual
2893 guidelines.")
2894 (license license:public-domain)))
2895
2896 (define-public shared-mime-info
2897 (package
2898 (name "shared-mime-info")
2899 (version "1.15")
2900 (source (origin
2901 (method url-fetch)
2902 (uri (string-append
2903 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2904 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2905 ".tar.xz"))
2906 (sha256
2907 (base32
2908 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2909 (build-system gnu-build-system)
2910 (arguments
2911 ;; The build system appears not to be parallel-safe.
2912 '(#:parallel-build? #f))
2913 (inputs
2914 `(("glib" ,glib)
2915 ("libxml2" ,libxml2)))
2916 (native-inputs
2917 `(("gettext" ,gettext-minimal)
2918 ("itstool" ,itstool)
2919 ("pkg-config" ,pkg-config)))
2920 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2921 (synopsis "Database of common MIME types")
2922 (description
2923 "The shared-mime-info package contains the core database of common types
2924 and the update-mime-database command used to extend it. It requires glib2 to
2925 be installed for building the update command. Additionally, it uses intltool
2926 for translations, though this is only a dependency for the maintainers. This
2927 database is translated at Transifex.")
2928 (license license:gpl2+)))
2929
2930 (define-public system-config-printer
2931 (package
2932 (name "system-config-printer")
2933 (version "1.5.15")
2934 (source
2935 (origin
2936 (method url-fetch)
2937 (uri (string-append
2938 "https://github.com/OpenPrinting/system-config-printer/releases/"
2939 "download/v" version
2940 "/system-config-printer-" version ".tar.xz"))
2941 (sha256
2942 (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv"))))
2943 (build-system glib-or-gtk-build-system)
2944 (arguments
2945 `(#:imported-modules ((guix build python-build-system)
2946 ,@%glib-or-gtk-build-system-modules)
2947 #:phases
2948 (modify-phases %standard-phases
2949 (add-after 'unpack 'patch-Makefile.am
2950 (lambda _
2951 ;; The Makefile generates some scripts, so set a valid shebang
2952 (substitute* "Makefile.am"
2953 (("/bin/bash") (which "bash")))
2954 (delete-file "configure")
2955 #t))
2956 (add-after 'unpack 'patch-docbook-xml
2957 (lambda* (#:key inputs #:allow-other-keys)
2958 ;; Modify the man XML otherwise xmlto tries to access the network
2959 (substitute* "man/system-config-printer.xml"
2960 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2961 (string-append (assoc-ref inputs "docbook-xml")
2962 "/xml/dtd/docbook/")))
2963 #t))
2964 (add-after 'install 'wrap-for-python
2965 (@@ (guix build python-build-system) wrap))
2966 (add-after 'install 'wrap
2967 (lambda* (#:key outputs #:allow-other-keys)
2968 (let ((out (assoc-ref outputs "out"))
2969 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2970 (for-each
2971 (lambda (program)
2972 (wrap-program program
2973 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2974 (map (lambda (name)
2975 (string-append out "/bin/" name))
2976 '("system-config-printer"
2977 "system-config-printer-applet"
2978 "install-printerdriver"
2979 "scp-dbus-service"))))
2980 #t)))))
2981 (inputs
2982 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2983 ("gobject-introspection" ,gobject-introspection)
2984 ("python" ,python)
2985 ("cups" ,cups)
2986 ("gtk+" ,gtk+)
2987 ("python-dbus" ,python-dbus)
2988 ("python-pygobject" ,python-pygobject)
2989 ("python-pycups" ,python-pycups)
2990 ("python-requests" ,python-requests)
2991 ("python-pycairo" ,python-pycairo)
2992 ("libnotify" ,libnotify)
2993 ("packagekit" ,packagekit)))
2994 (native-inputs
2995 `(("pkg-config" ,pkg-config)
2996 ("desktop-file-utils" ,desktop-file-utils)
2997 ("glib" ,glib)
2998 ("autoconf" ,autoconf)
2999 ("automake" ,automake)
3000 ("intltool" ,intltool)
3001 ("xmlto" ,xmlto)
3002 ("docbook-xml" ,docbook-xml-4.1.2)
3003 ("docbook-xsl" ,docbook-xsl)
3004 ("libxml2" ,libxml2)))
3005 (home-page "https://github.com/zdohnal/system-config-printer")
3006 (synopsis "CUPS administration tool")
3007 (description
3008 "system-config-printer is a CUPS administration tool. It's written in
3009 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
3010 configuring CUPS.")
3011 (license license:gpl2+)))
3012
3013 (define-public hicolor-icon-theme
3014 (package
3015 (name "hicolor-icon-theme")
3016 (version "0.17")
3017 (source
3018 (origin
3019 (method url-fetch)
3020 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3021 "hicolor-icon-theme-" version ".tar.xz"))
3022 (sha256
3023 (base32
3024 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3025 (build-system gnu-build-system)
3026 (arguments
3027 `(#:tests? #f)) ; no check target
3028 (home-page "https://icon-theme.freedesktop.org/releases/")
3029 (synopsis
3030 "Freedesktop icon theme")
3031 (description
3032 "Freedesktop icon theme.")
3033 (license license:gpl2)))
3034
3035 (define-public libnotify
3036 (package
3037 (name "libnotify")
3038 (version "0.7.9")
3039 (source
3040 (origin
3041 (method url-fetch)
3042 (uri (string-append "mirror://gnome/sources/" name "/"
3043 (version-major+minor version) "/"
3044 name "-" version ".tar.xz"))
3045 (sha256
3046 (base32
3047 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3048 (build-system meson-build-system)
3049 (arguments
3050 `(#:phases
3051 (modify-phases %standard-phases
3052 (add-after 'unpack 'fix-docbook
3053 (lambda* (#:key inputs #:allow-other-keys)
3054 ;; Don't attempt to download XSL schema.
3055 (substitute* "meson.build"
3056 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3057 /manpages/docbook.xsl")
3058 (string-append (assoc-ref inputs "docbook-xsl")
3059 "/xml/xsl/docbook-xsl-"
3060 ,(package-version docbook-xsl)
3061 "/manpages/docbook.xsl")))
3062 #t)))))
3063 (propagated-inputs
3064 `(;; In Requires of libnotify.pc.
3065 ("gdk-pixbuf" ,gdk-pixbuf)
3066 ("glib" ,glib)))
3067 (inputs
3068 `(("gtk+" ,gtk+)
3069 ("libpng" ,libpng)))
3070 (native-inputs
3071 `(("pkg-config" ,pkg-config)
3072 ("glib" ,glib "bin")
3073 ("gobject-introspection" ,gobject-introspection)
3074
3075 ;; For the documentation.
3076 ("gtk-doc" ,gtk-doc/stable)
3077 ("xsltproc" ,libxslt)
3078 ("docbook-xsl" ,docbook-xsl)))
3079 (home-page "https://developer-next.gnome.org/libnotify/")
3080 (synopsis
3081 "GNOME desktop notification library")
3082 (description
3083 "Libnotify is a library that sends desktop notifications to a
3084 notification daemon, as defined in the Desktop Notifications spec. These
3085 notifications can be used to inform the user about an event or display
3086 some form of information without getting in the user's way.")
3087 (license license:lgpl2.1+)))
3088
3089 (define-public libpeas
3090 (package
3091 (name "libpeas")
3092 (version "1.28.0")
3093 (source
3094 (origin
3095 (method url-fetch)
3096 (uri (string-append "mirror://gnome/sources/" name "/"
3097 (version-major+minor version) "/"
3098 name "-" version ".tar.xz"))
3099 (sha256
3100 (base32
3101 "05cb7drn6arc4gi02wgsvzibigi2riz5gnfnmlb0zmbfnj9ikna2"))))
3102 (build-system meson-build-system)
3103 (arguments
3104 '(#:phases
3105 (modify-phases %standard-phases
3106 (add-before 'check 'start-xserver
3107 (lambda* (#:key inputs #:allow-other-keys)
3108 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3109 (disp ":1"))
3110 (setenv "DISPLAY" disp)
3111 ;; Tests require a running X server.
3112 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3113 #t))))))
3114 (inputs
3115 `(("gtk+" ,gtk+)
3116 ("glade" ,glade3)
3117 ("python" ,python)
3118 ("python-pygobject" ,python-pygobject)))
3119 (native-inputs
3120 `(("pkg-config" ,pkg-config)
3121 ("gettext" ,gettext-minimal)
3122 ("glib:bin" ,glib "bin")
3123 ("gobject-introspection" ,gobject-introspection)
3124 ("xorg-server" ,xorg-server-for-tests)))
3125 (propagated-inputs
3126 ;; The .pc file "Requires" gobject-introspection.
3127 `(("gobject-introspection" ,gobject-introspection)))
3128 (home-page "https://wiki.gnome.org/Libpeas")
3129 (synopsis "GObject plugin system")
3130 (description
3131 "Libpeas is a gobject-based plugin engine, targeted at giving every
3132 application the chance to assume its own extensibility. It also has a set of
3133 features including, but not limited to: multiple extension points; on-demand
3134 (lazy) programming language support for C, Python and JS; simplicity of the
3135 API.")
3136 (license license:lgpl2.0+)))
3137
3138 (define-public gtkglext
3139 (package
3140 (name "gtkglext")
3141 (version "1.2.0")
3142 (source (origin
3143 (method url-fetch)
3144 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3145 version "/gtkglext-" version ".tar.gz"))
3146 (sha256
3147 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3148 (patches (search-patches
3149 "gtkglext-disable-disable-deprecated.patch"))))
3150 (build-system gnu-build-system)
3151 (arguments
3152 `(#:phases
3153 (modify-phases %standard-phases
3154 ;; Fix a collision between a local variable and a definition from
3155 ;; glibc's string.h.
3156 (add-after 'unpack 'fix-collision
3157 (lambda _
3158 (substitute* "gdk/gdkglshapes.c"
3159 ((" index") " triangle_index"))
3160 #t)))))
3161 (inputs `(("gtk+" ,gtk+-2)
3162 ("mesa" ,mesa)
3163 ("glu" ,glu)
3164 ("libx11" ,libx11)
3165 ("libxt" ,libxt)))
3166 (native-inputs `(("pkg-config" ,pkg-config)
3167 ("glib" ,glib "bin")))
3168 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
3169 (home-page "https://projects.gnome.org/gtkglext")
3170 (synopsis "OpenGL extension to GTK+")
3171 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3172 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3173 API add-ons to make GTK+ widgets OpenGL-capable.")
3174 (license license:lgpl2.1+)))
3175
3176 (define-public glade3
3177 (package
3178 (name "glade")
3179 (version "3.36.0")
3180 (source (origin
3181 (method url-fetch)
3182 (uri (string-append "mirror://gnome/sources/" name "/"
3183 (version-major+minor version) "/"
3184 name "-" version ".tar.xz"))
3185 (sha256
3186 (base32
3187 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
3188 (build-system glib-or-gtk-build-system)
3189 (arguments
3190 `(#:phases
3191 (modify-phases %standard-phases
3192 (add-before 'configure 'fix-docbook
3193 (lambda* (#:key inputs #:allow-other-keys)
3194 (substitute* "man/Makefile.in"
3195 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
3196 (string-append (assoc-ref inputs "docbook-xsl")
3197 "/xml/xsl/docbook-xsl-"
3198 ,(package-version docbook-xsl)
3199 "/manpages/docbook.xsl")))
3200 #t))
3201 (add-before 'check 'pre-check
3202 (lambda _
3203 (setenv "HOME" "/tmp")
3204 ;; Tests require a running X server.
3205 (system "Xvfb :1 &")
3206 (setenv "DISPLAY" ":1")
3207 #t)))))
3208 (inputs
3209 `(("gtk+" ,gtk+)
3210 ("libxml2" ,libxml2)))
3211 (native-inputs
3212 `(("hicolor-icon-theme" ,hicolor-icon-theme)
3213 ("intltool" ,intltool)
3214 ("itstool" ,itstool)
3215 ("libxslt" ,libxslt) ;for xsltproc
3216 ("docbook-xml" ,docbook-xml-4.2)
3217 ("docbook-xsl" ,docbook-xsl)
3218 ("python" ,python-2)
3219 ("pkg-config" ,pkg-config)
3220 ("xorg-server" ,xorg-server-for-tests)))
3221 (home-page "https://glade.gnome.org")
3222 (synopsis "GTK+ rapid application development tool")
3223 (description "Glade is a rapid application development (RAD) tool to
3224 enable quick & easy development of user interfaces for the GTK+ toolkit and
3225 the GNOME desktop environment.")
3226 (license license:lgpl2.0+)
3227 (native-search-paths (list (search-path-specification
3228 (variable "GLADE_CATALOG_SEARCH_PATH")
3229 (files '("share/glade/catalogs")))
3230 (search-path-specification
3231 (variable "GLADE_MODULE_SEARCH_PATH")
3232 (files '("lib/glade/modules")))))))
3233
3234 (define-public libcroco
3235 (package
3236 (name "libcroco")
3237 (version "0.6.13")
3238 (source (origin
3239 (method url-fetch)
3240 (uri (string-append "mirror://gnome/sources/" name "/"
3241 (version-major+minor version) "/"
3242 name "-" version ".tar.xz"))
3243 (patches (search-patches "libcroco-CVE-2020-12825.patch"))
3244 (sha256
3245 (base32
3246 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3247 (build-system gnu-build-system)
3248 (native-inputs
3249 `(("pkg-config" ,pkg-config)))
3250 (inputs
3251 `(("glib" ,glib)
3252 ("libxml2" ,libxml2)
3253 ("zlib" ,zlib)))
3254 (home-page "https://github.com/GNOME/libcroco")
3255 (synopsis "CSS2 parsing and manipulation library")
3256 (description
3257 "Libcroco is a standalone CSS2 parsing and manipulation library.
3258 The parser provides a low level event driven SAC-like API and a CSS object
3259 model like API. Libcroco provides a CSS2 selection engine and an experimental
3260 XML/CSS rendering engine.")
3261
3262 ;; LGPLv2.1-only.
3263 (license license:lgpl2.1)))
3264
3265 (define-public libgsf
3266 (package
3267 (name "libgsf")
3268 (version "1.14.47")
3269 (source (origin
3270 (method url-fetch)
3271 (uri (string-append "mirror://gnome/sources/" name "/"
3272 (version-major+minor version) "/"
3273 name "-" version ".tar.xz"))
3274 (sha256
3275 (base32
3276 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3277 (build-system gnu-build-system)
3278 (arguments
3279 '(#:configure-flags '("--disable-static")))
3280 (native-inputs
3281 `(("pkg-config" ,pkg-config)
3282 ("gettext" ,gettext-minimal)
3283
3284 ;; For tests.
3285 ("perl" ,perl)
3286 ("perl-xml-parser" ,perl-xml-parser)))
3287 (inputs
3288 `(("zlib" ,zlib)
3289 ("bzip2" ,bzip2)))
3290 (propagated-inputs
3291 `(("gdk-pixbuf" ,gdk-pixbuf)
3292 ("glib" ,glib)
3293 ("libxml2" ,libxml2)))
3294 (home-page "https://www.gnome.org/projects/libgsf")
3295 (synopsis "GNOME's Structured File Library")
3296 (description
3297 "Libgsf aims to provide an efficient extensible I/O abstraction for
3298 dealing with different structured file formats.")
3299
3300 ;; LGPLv2.1-only.
3301 (license license:lgpl2.1)))
3302
3303 (define-public librsvg
3304 (package
3305 (name "librsvg")
3306 (version "2.40.21")
3307 (source (origin
3308 (method url-fetch)
3309 (uri (string-append "mirror://gnome/sources/" name "/"
3310 (version-major+minor version) "/"
3311 name "-" version ".tar.xz"))
3312 (sha256
3313 (base32
3314 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3315 (build-system gnu-build-system)
3316 (arguments
3317 `(#:configure-flags
3318 (list "--disable-static"
3319 "--enable-vala") ; needed for e.g. gnome-mines
3320 #:phases
3321 (modify-phases %standard-phases
3322 (add-before 'configure 'pre-configure
3323 (lambda* (#:key inputs #:allow-other-keys)
3324 (substitute* "gdk-pixbuf-loader/Makefile.in"
3325 ;; By default the gdk-pixbuf loader is installed under
3326 ;; gdk-pixbuf's prefix. Work around that.
3327 (("gdk_pixbuf_moduledir = .*$")
3328 (string-append "gdk_pixbuf_moduledir = "
3329 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3330 "loaders\n"))
3331 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3332 (("gdk_pixbuf_cache_file = .*$")
3333 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3334 #t))
3335 (add-before 'check 'remove-failing-tests
3336 (lambda _
3337 (with-directory-excursion "tests/fixtures/reftests"
3338 (for-each delete-file
3339 '(;; This test fails on i686:
3340 "svg1.1/masking-path-04-b.svg"
3341 ;; This test fails on armhf:
3342 "svg1.1/masking-mask-01-b.svg"
3343 ;; This test fails on aarch64:
3344 "bugs/777834-empty-text-children.svg")))
3345 #t)))))
3346 (native-inputs
3347 `(("pkg-config" ,pkg-config)
3348 ("vala" ,vala)
3349 ("glib" ,glib "bin") ; glib-mkenums, etc.
3350 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3351 (inputs
3352 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3353 ;; this ancient version of librsvg.
3354 ("pango" ,pango-1.42)
3355 ("libcroco" ,libcroco)
3356 ("bzip2" ,bzip2)
3357 ("libgsf" ,libgsf)
3358 ("libxml2" ,libxml2)))
3359 (propagated-inputs
3360 ;; librsvg-2.0.pc refers to all of that.
3361 `(("cairo" ,cairo)
3362 ("gdk-pixbuf" ,gdk-pixbuf)
3363 ("glib" ,glib)))
3364 (home-page "https://wiki.gnome.org/LibRsvg")
3365 (synopsis "Render SVG files using Cairo")
3366 (description
3367 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3368 library.")
3369 (license license:lgpl2.0+)))
3370
3371 (define-public librsvg-next
3372 (package
3373 (name "librsvg")
3374 (version "2.50.3")
3375 (source (origin
3376 (method url-fetch)
3377 (uri (string-append "mirror://gnome/sources/librsvg/"
3378 (version-major+minor version) "/"
3379 "librsvg-" version ".tar.xz"))
3380 (sha256
3381 (base32
3382 "0n79i4wj9hm0d3bbn4xvknq5ylhqs16pvhaqr1rxspx9wfc8lad4"))
3383 (modules '((guix build utils)))
3384 (snippet
3385 '(begin (delete-file-recursively "vendor")
3386 #t))))
3387 (build-system cargo-build-system)
3388 (outputs '("out" "doc"))
3389 (arguments
3390 `(#:install-source? #f
3391 #:modules
3392 ((guix build cargo-build-system)
3393 (guix build utils)
3394 ((guix build gnu-build-system) #:prefix gnu:))
3395 #:cargo-inputs
3396 (("rust-bitflags" ,rust-bitflags-1)
3397 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3398 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3399 ("rust-cast" ,rust-cast-0.2)
3400 ("rust-cssparser" ,rust-cssparser-0.27)
3401 ("rust-data-url" ,rust-data-url-0.1)
3402 ("rust-encoding" ,rust-encoding-0.2)
3403 ("rust-float-cmp" ,rust-float-cmp-0.8)
3404 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3405 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3406 ("rust-gio" ,rust-gio-0.8)
3407 ("rust-gio-sys" ,rust-gio-sys-0.9)
3408 ("rust-glib" ,rust-glib-0.9)
3409 ("rust-glib-sys" ,rust-glib-sys-0.9)
3410 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3411 ("rust-itertools" ,rust-itertools-0.9)
3412 ("rust-language-tags" ,rust-language-tags-0.2)
3413 ("rust-libc" ,rust-libc-0.2)
3414 ("rust-locale-config" ,rust-locale-config-0.3)
3415 ("rust-markup5ever" ,rust-markup5ever-0.10)
3416 ("rust-nalgebra" ,rust-nalgebra-0.21)
3417 ("rust-num-traits" ,rust-num-traits-0.2)
3418 ("rust-once-cell" ,rust-once-cell-1)
3419 ("rust-pkg-config" ,rust-pkg-config-0.3)
3420 ("rust-pango" ,rust-pango-0.8)
3421 ("rust-pango-sys" ,rust-pango-sys-0.9)
3422 ("rust-pangocairo" ,rust-pangocairo-0.9)
3423 ("rust-rayon" ,rust-rayon-1)
3424 ("rust-rctree" ,rust-rctree-0.3)
3425 ("rust-rgb" ,rust-rgb-0.8)
3426 ("rust-regex" ,rust-regex-1)
3427 ("rust-selectors" ,rust-selectors-0.22)
3428 ("rust-string-cache" ,rust-string-cache-0.8)
3429 ("rust-tinyvec" ,rust-tinyvec-0.3)
3430 ("rust-url" ,rust-url-2)
3431 ("rust-xml5ever" ,rust-xml5ever-0.16))
3432 #:cargo-development-inputs
3433 (("rust-assert-cmd" ,rust-assert-cmd-1)
3434 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3435 ("rust-chrono" ,rust-chrono-0.4)
3436 ("rust-criterion" ,rust-criterion-0.3)
3437 ("rust-float-cmp" ,rust-float-cmp-0.8)
3438 ("rust-lopdf" ,rust-lopdf-0.26)
3439 ("rust-png" ,rust-png-0.16)
3440 ("rust-predicates" ,rust-predicates-1)
3441 ("rust-tempfile" ,rust-tempfile-3))
3442 #:phases
3443 (modify-phases %standard-phases
3444 (add-after 'unpack 'patch-docbook-xml
3445 (lambda* (#:key inputs #:allow-other-keys)
3446 (with-directory-excursion "doc"
3447 (substitute* "rsvg-docs.xml"
3448 (("http://www.oasis-open.org/docbook/xml/4.3/")
3449 (string-append (assoc-ref inputs "docbook-xml")
3450 "/xml/dtd/docbook/"))))
3451 #t))
3452 (add-after 'unpack 'prepare-for-build
3453 (lambda _
3454 ;; In lieu of #:make-flags
3455 (setenv "CC" ,(cc-for-target))
3456 ;; Something about the build environment resists building
3457 ;; successfully with the '--locked' flag.
3458 (substitute* '("Makefile.am" "Makefile.in")
3459 (("--locked") ""))
3460 #t))
3461 (add-before 'configure 'pre-configure
3462 (lambda _
3463 (substitute* "gdk-pixbuf-loader/Makefile.in"
3464 ;; By default the gdk-pixbuf loader is installed under
3465 ;; gdk-pixbuf's prefix. Work around that.
3466 (("gdk_pixbuf_moduledir = .*$")
3467 (string-append "gdk_pixbuf_moduledir = "
3468 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3469 "loaders\n"))
3470 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3471 (("gdk_pixbuf_cache_file = .*$")
3472 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3473 #t))
3474 (add-after 'configure 'gnu-configure
3475 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3476 ((assoc-ref gnu:%standard-phases 'configure)
3477 #:native-inputs native-inputs
3478 #:inputs inputs
3479 #:outputs outputs
3480 #:configure-flags
3481 (list "--disable-static"
3482 "--enable-vala"
3483 (string-append "--with-html-dir="
3484 (assoc-ref %outputs "doc")
3485 "/share/gtk-doc/html")))))
3486 (add-after 'configure 'dont-vendor-self
3487 (lambda* (#:key vendor-dir #:allow-other-keys)
3488 ;; Don't keep the whole tarball in the vendor directory
3489 (delete-file-recursively
3490 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3491 #t))
3492 (replace 'build
3493 (assoc-ref gnu:%standard-phases 'build))
3494 (add-before 'check 'ignore-failing-tests
3495 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3496 (lambda _
3497 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3498 (("fn background_color_option_invalid_color_yields_error" all)
3499 (string-append "#[ignore] " all))
3500 (("fn empty_input_yields_error" all)
3501 (string-append "#[ignore] " all))
3502 (("fn empty_svg_yields_error" all)
3503 (string-append "#[ignore] " all))
3504 (("fn env_source_data_epoch_empty" all)
3505 (string-append "#[ignore] " all))
3506 (("fn env_source_data_epoch_no_digits" all)
3507 (string-append "#[ignore] " all))
3508 (("fn env_source_data_epoch_trailing_garbage" all)
3509 (string-append "#[ignore] " all))
3510 (("fn export_id_option_error" all)
3511 (string-append "#[ignore] " all))
3512 (("fn huge_zoom_factor_yields_error" all)
3513 (string-append "#[ignore] " all))
3514 (("fn multiple_input_files_not_allowed_for_png_output" all)
3515 (string-append "#[ignore] " all))
3516 (("fn stylesheet_option_error" all)
3517 (string-append "#[ignore] " all)))
3518 #t))
3519 (replace 'check
3520 (lambda* args
3521 ((assoc-ref gnu:%standard-phases 'check)
3522 #:test-target "check")))
3523 (replace 'install
3524 (assoc-ref gnu:%standard-phases 'install)))))
3525 (native-inputs
3526 `(("docbook-xml" ,docbook-xml-4.3)
3527 ("glib" ,glib "bin")
3528 ("gobject-introspection" ,gobject-introspection)
3529 ("pkg-config" ,pkg-config)
3530 ("python" ,python-wrapper)
3531 ("ruby" ,ruby)
3532 ("vala" ,vala)))
3533 (inputs
3534 `(("bzip2" ,bzip2)
3535 ("fontconfig" ,fontconfig)
3536 ("freetype" ,freetype)
3537 ("harfbuzz" ,harfbuzz)
3538 ("libcroco" ,libcroco)
3539 ("libgsf" ,libgsf)
3540 ("libxml2" ,libxml2)
3541 ("pango" ,pango)))
3542 (propagated-inputs
3543 `(("cairo" ,cairo)
3544 ("gdk-pixbuf" ,gdk-pixbuf)
3545 ("glib" ,glib)))
3546 (synopsis "SVG rendering library")
3547 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3548 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3549 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3550 diagrams.")
3551 (home-page "https://wiki.gnome.org/LibRsvg")
3552 (license license:lgpl2.1+)))
3553
3554 (define-public libidl
3555 (package
3556 (name "libidl")
3557 (version "0.8.14")
3558 (source (origin
3559 (method url-fetch)
3560 (uri (string-append "mirror://gnome/sources/libIDL/"
3561 (version-major+minor version) "/"
3562 "libIDL-" version ".tar.bz2"))
3563 (sha256
3564 (base32
3565 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3566 (build-system gnu-build-system)
3567 (inputs `(("glib" ,glib)))
3568 (native-inputs
3569 `(("pkg-config" ,pkg-config)
3570 ("flex" ,flex)
3571 ("bison" ,bison)))
3572 (home-page "http://freecode.com/projects/libidl")
3573 (synopsis "Create trees of CORBA Interface Definition Language files")
3574 (description "Libidl is a library for creating trees of CORBA Interface
3575 Definition Language (idl) files, which is a specification for defining
3576 portable interfaces. libidl was initially written for orbit (the orb from the
3577 GNOME project, and the primary means of libidl distribution). However, the
3578 functionality was designed to be as reusable and portable as possible.")
3579 (properties `((upstream-name . "libIDL")))
3580 (license license:lgpl2.0+)))
3581
3582
3583 (define-public orbit2
3584 (package
3585 (name "orbit2")
3586 (version "2.14.19")
3587 (source (origin
3588 (method url-fetch)
3589 (uri (let ((upstream-name "ORBit2"))
3590 (string-append "mirror://gnome/sources/" upstream-name "/"
3591 (version-major+minor version) "/"
3592 upstream-name "-" version ".tar.bz2")))
3593 (sha256
3594 (base32
3595 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3596 (build-system gnu-build-system)
3597 (arguments
3598 `(;; The "timeout-server" test hangs when run in parallel.
3599 #:parallel-tests? #f
3600 #:configure-flags
3601 '(;; We don't need static libraries, plus they don't build reproducibly
3602 ;; (non-deterministic ordering of .o files in the archive.)
3603 "--disable-static"
3604
3605 ;; The programmer kindly gives us a hook to turn off deprecation
3606 ;; warnings ...
3607 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3608 ;; ... which they then completly ignore !!
3609 #:phases
3610 (modify-phases %standard-phases
3611 (add-before 'configure 'ignore-deprecations
3612 (lambda _
3613 (substitute* "linc2/src/Makefile.in"
3614 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3615 #t)))))
3616 (inputs `(("glib" ,glib)
3617 ("libidl" ,libidl)))
3618 (native-inputs
3619 `(("pkg-config" ,pkg-config)))
3620 (home-page "https://projects.gnome.org/orbit2/")
3621 (synopsis "CORBA 2.4-compliant Object Request Broker")
3622 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3623 featuring mature C, C++ and Python bindings.")
3624 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3625 ;; a version. SOME of the code files have licence notices for GPLv2+.
3626 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3627 (license license:gpl2+)
3628 (properties `((upstream-name . "ORBit2")))))
3629
3630
3631 (define-public libbonobo
3632 (package
3633 (name "libbonobo")
3634 (version "2.32.1")
3635 (source (origin
3636 (method url-fetch)
3637 (uri (string-append "mirror://gnome/sources/" name "/"
3638 (version-major+minor version)
3639 "/" name "-" version ".tar.bz2"))
3640 (sha256
3641 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3642 (patches (search-patches
3643 "libbonobo-activation-test-race.patch"))))
3644 (build-system gnu-build-system)
3645 (arguments
3646 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3647 `(#:configure-flags
3648 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3649 ;; ... which they then completly ignore !!
3650 #:phases
3651 (modify-phases %standard-phases
3652 (add-before 'configure 'ignore-deprecations
3653 (lambda _
3654 (substitute* "activation-server/Makefile.in"
3655 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3656 #t)))
3657
3658 ;; There's apparently a race condition between the server stub
3659 ;; generation and linking of the example under 'samples/echo' that can
3660 ;; lead do undefined references when building in parallel, as reported
3661 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3662 ;; Thus, disable parallel builds.
3663 #:parallel-build? #f))
3664 (inputs `(("popt" ,popt)
3665 ("libxml2" ,libxml2)))
3666 ;; The following are Required by the .pc file
3667 (propagated-inputs
3668 `(("glib" ,glib)
3669 ("orbit2" ,orbit2)))
3670 (native-inputs
3671 `(("intltool" ,intltool)
3672 ("pkg-config" ,pkg-config)
3673 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3674 ("flex" ,flex)
3675 ("bison" ,bison)))
3676 (home-page "https://developer.gnome.org/libbonobo/")
3677 (synopsis "Framework for creating reusable components for use in GNOME applications")
3678 (description "Bonobo is a framework for creating reusable components for
3679 use in GNOME applications, built on top of CORBA.")
3680 ;; Licence not explicitly stated. Source files contain no licence notices.
3681 ;; Tarball contains text of both GPLv2 and LGPLv2
3682 ;; GPLv2 covers both conditions
3683 (license license:gpl2+)))
3684
3685
3686 (define-public gconf
3687 (package
3688 (name "gconf")
3689 (version "3.2.6")
3690 (source (origin
3691 (method url-fetch)
3692 (uri
3693 (let ((upstream-name "GConf"))
3694 (string-append "mirror://gnome/sources/" upstream-name "/"
3695 (version-major+minor version) "/"
3696 upstream-name "-" version ".tar.xz")))
3697 (sha256
3698 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3699 (build-system gnu-build-system)
3700 (inputs `(("dbus-glib" ,dbus-glib)
3701 ("libxml2" ,libxml2)))
3702 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3703 ("orbit2" ,orbit2)))
3704 (native-inputs
3705 `(("intltool" ,intltool)
3706 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3707 ("pkg-config" ,pkg-config)))
3708 (home-page "https://projects.gnome.org/gconf/")
3709 (synopsis "Store application preferences")
3710 (description "Gconf is a system for storing application preferences. It
3711 is intended for user preferences; not arbitrary data storage.")
3712 (license license:lgpl2.0+)
3713 (properties '((upstream-name . "GConf")))))
3714
3715
3716 (define-public gnome-mime-data
3717 (package
3718 (name "gnome-mime-data")
3719 (version "2.18.0")
3720 (source (origin
3721 (method url-fetch)
3722 (uri (string-append "mirror://gnome/sources/" name "/"
3723 (version-major+minor version) "/"
3724 name "-" version ".tar.bz2"))
3725 (sha256
3726 (base32
3727 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3728 (build-system gnu-build-system)
3729 (native-inputs
3730 `(("perl" ,perl)
3731 ("intltool" ,intltool)))
3732 (arguments
3733 '(#:phases (modify-phases %standard-phases
3734 (add-after 'configure 'use-our-intltool
3735 (lambda _
3736 ;; Do not use the bundled intltool commands, which lack
3737 ;; the "dotless @INC" fixes of our 'intltool' package.
3738 (substitute* (find-files "." "^Makefile$")
3739 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3740 (string-append "INTLTOOL_" tool " = intltool-"
3741 (string-downcase tool) "\n")))
3742 #t)))))
3743 (home-page "https://www.gnome.org")
3744 (synopsis "Base MIME and Application database for GNOME")
3745 (description "GNOME Mime Data is a module which contains the base MIME
3746 and Application database for GNOME. The data stored by this module is
3747 designed to be accessed through the MIME functions in GnomeVFS.")
3748 (license license:gpl2+)))
3749
3750
3751 (define-public gnome-vfs
3752 (package
3753 (name "gnome-vfs")
3754 (version "2.24.4")
3755 (source (origin
3756 (method url-fetch)
3757 (uri (string-append "mirror://gnome/sources/" name "/"
3758 (version-major+minor version) "/"
3759 name "-" version ".tar.bz2"))
3760 (sha256
3761 (base32
3762 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3763 (build-system gnu-build-system)
3764 (arguments
3765 `(#:phases
3766 (modify-phases %standard-phases
3767 (add-before 'configure 'ignore-deprecations
3768 (lambda _
3769 (substitute* '("libgnomevfs/Makefile.in"
3770 "daemon/Makefile.in")
3771 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3772 #t))
3773 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3774 (lambda _
3775 (substitute* "test/test-async-cancel.c"
3776 (("EXIT_FAILURE") "77"))
3777 #t)))))
3778 (inputs `(("libxml2" ,libxml2)
3779 ("dbus-glib" ,dbus-glib)
3780 ("gconf" ,gconf)
3781 ("gnome-mime-data" ,gnome-mime-data)
3782 ("zlib" ,zlib)))
3783 (native-inputs
3784 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3785 ("intltool" ,intltool)
3786 ("pkg-config" ,pkg-config)))
3787 (home-page "https://developer.gnome.org/gnome-vfs/")
3788 (synopsis "Access files and folders in GNOME applications")
3789 (description
3790 "GnomeVFS is the core library used to access files and folders in GNOME
3791 applications. It provides a file system abstraction which allows applications
3792 to access local and remote files with a single consistent API.")
3793 (license license:lgpl2.0+)))
3794
3795
3796
3797 (define-public libgnome
3798 (package
3799 (name "libgnome")
3800 (version "2.32.1")
3801 (source (origin
3802 (method url-fetch)
3803 (uri (string-append "mirror://gnome/sources/" name "/"
3804 (version-major+minor version) "/"
3805 name "-" version ".tar.bz2"))
3806 (sha256
3807 (base32
3808 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3809 (patches (search-patches "libgnome-encoding.patch"))))
3810 (build-system gnu-build-system)
3811 (arguments
3812 `(#:phases
3813 (modify-phases %standard-phases
3814 (add-before 'configure 'enable-deprecated
3815 (lambda _
3816 (substitute* "libgnome/Makefile.in"
3817 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3818 #t)))))
3819 (inputs `(("libxml2" ,libxml2)))
3820 (native-inputs
3821 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3822 ("intltool" ,intltool)
3823 ("pkg-config" ,pkg-config)))
3824 ;; The following are listed as Required in the .pc file
3825 ;; (except for libcanberra -- which seems to be oversight on the part
3826 ;; of the upstream developers -- anything that links against libgnome,
3827 ;; must also link against libcanberra
3828 (propagated-inputs
3829 `(("libcanberra" ,libcanberra)
3830 ("libbonobo" ,libbonobo)
3831 ("gconf" ,gconf)
3832 ("gnome-vfs" ,gnome-vfs)
3833 ("popt" ,popt))) ;gnome-program.h includes popt.h
3834 (home-page "https://developer.gnome.org/libgnome/")
3835 (synopsis "Useful routines for building applications")
3836 (description "The libgnome library provides a number of useful routines
3837 for building modern applications, including session management, activation of
3838 files and URIs, and displaying help.")
3839 (license license:lgpl2.0+)))
3840
3841
3842 (define-public libart-lgpl
3843 (package
3844 (name "libart-lgpl")
3845 (version "2.3.21")
3846 (source (origin
3847 (method url-fetch)
3848 (uri (let ((upstream-name "libart_lgpl"))
3849 (string-append "mirror://gnome/sources/" upstream-name "/"
3850 (version-major+minor version) "/"
3851 upstream-name "-" version ".tar.bz2")))
3852 (sha256
3853 (base32
3854 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3855 (build-system gnu-build-system)
3856 (native-inputs
3857 `(("pkg-config" ,pkg-config)))
3858 (home-page "https://people.gnome.org/~mathieu/libart")
3859 (synopsis "2D drawing library")
3860 (description "Libart is a 2D drawing library intended as a
3861 high-quality vector-based 2D library with antialiasing and alpha composition.")
3862 (license license:lgpl2.0+)))
3863
3864
3865
3866 (define-public libgnomecanvas
3867 (package
3868 (name "libgnomecanvas")
3869 (version "2.30.3")
3870 (source (origin
3871 (method url-fetch)
3872 (uri (string-append "mirror://gnome/sources/" name "/"
3873 (version-major+minor version) "/"
3874 name "-" version ".tar.gz"))
3875 (sha256
3876 (base32
3877 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3878 (build-system gnu-build-system)
3879 ;; Mentioned as Required in the .pc file
3880 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3881 ("gtk+" ,gtk+-2)))
3882 (native-inputs
3883 `(("intltool" ,intltool)
3884 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3885 ("pkg-config" ,pkg-config)))
3886 (home-page "https://developer.gnome.org/libgnomecanvas/")
3887 (synopsis "Flexible widget for creating interactive structured graphics")
3888 (description "The GnomeCanvas widget provides a flexible widget for
3889 creating interactive structured graphics.")
3890 (license license:lgpl2.0+)))
3891
3892 (define-public libgnomecanvasmm
3893 (package
3894 (name "libgnomecanvasmm")
3895 (version "2.26.0")
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 (sha256
3902 (base32
3903 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3904 (build-system gnu-build-system)
3905 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3906 (native-inputs
3907 `(("gtkmm-2" ,gtkmm-2)
3908 ("pkg-config" ,pkg-config)))
3909 (home-page "https://gtkmm.org")
3910 (synopsis "C++ bindings to the GNOME Canvas library")
3911 (description "C++ bindings to the GNOME Canvas library.")
3912 (license license:lgpl2.0+)))
3913
3914 (define-public libgnomeui
3915 (package
3916 (name "libgnomeui")
3917 (version "2.24.5")
3918 (source (origin
3919 (method url-fetch)
3920 (uri (string-append "mirror://gnome/sources/" name "/"
3921 (version-major+minor version) "/"
3922 name "-" version ".tar.bz2"))
3923 (patches (search-patches "libgnomeui-utf8.patch"))
3924 (sha256
3925 (base32
3926 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3927 (build-system gnu-build-system)
3928 ;; Mentioned as Required in the .pc file
3929 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3930 ("libgnome" ,libgnome)
3931 ("libgnomecanvas" ,libgnomecanvas)
3932 ("libgnome-keyring" ,libgnome-keyring)))
3933 (inputs `(("libjpeg" ,libjpeg-turbo)
3934 ("popt" ,popt)
3935 ("libbonobo" ,libbonobo)
3936 ("libxml2" ,libxml2)
3937 ("libglade" ,libglade)))
3938 (native-inputs
3939 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3940 ("intltool" ,intltool)
3941 ("pkg-config" ,pkg-config)))
3942 (home-page "https://developer.gnome.org/libgnomeui/")
3943 (synopsis "Additional widgets for applications")
3944 (description "The libgnomeui library provides additional widgets for
3945 applications. Many of the widgets from libgnomeui have already been
3946 ported to GTK+.")
3947 (license license:lgpl2.0+)))
3948
3949 (define-public libglade
3950 (package
3951 (name "libglade")
3952 (version "2.6.4")
3953 (source (origin
3954 (method url-fetch)
3955 (uri (string-append "mirror://gnome/sources/" name "/"
3956 (version-major+minor version) "/"
3957 name "-" version ".tar.bz2"))
3958 (sha256
3959 (base32
3960 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3961 (build-system gnu-build-system)
3962 (inputs
3963 `(("python" ,python))) ;; needed for the optional libglade-convert program
3964 (propagated-inputs
3965 `(("gtk+-2" ,gtk+-2)
3966 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3967 (native-inputs
3968 `(("pkg-config" ,pkg-config)))
3969 (home-page "https://developer.gnome.org/libglade")
3970 (synopsis "Load glade interfaces and access the glade built widgets")
3971 (description "Libglade is a library that provides interfaces for loading
3972 graphical interfaces described in glade files and for accessing the
3973 widgets built in the loading process.")
3974 (license license:gpl2+))) ; This is correct. GPL not LGPL
3975
3976 (define-public libgnomeprint
3977 ;; This library has been deprecated since 2006; see
3978 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3979 (package
3980 (name "libgnomeprint")
3981 (version "2.18.8")
3982 (source (origin
3983 (method url-fetch)
3984 (uri (string-append "mirror://gnome/sources/" name "/"
3985 (version-major+minor version) "/"
3986 name "-" version ".tar.bz2"))
3987 (sha256
3988 (base32
3989 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3990 (build-system gnu-build-system)
3991 (inputs
3992 `(("popt" ,popt)
3993 ("libart-lgpl" ,libart-lgpl)
3994 ("gtk+" ,gtk+-2)
3995 ("libxml2" ,libxml2)))
3996 (native-inputs
3997 `(("intltool" ,intltool)
3998 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3999 ("pkg-config" ,pkg-config)))
4000 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
4001 (synopsis "Printing framework for GNOME")
4002 (description
4003 "GNOME-print was a printing framework for GNOME. It has been deprecated
4004 since ca. 2006, when GTK+ itself incorporated printing support.")
4005 (license license:lgpl2.0+)))
4006
4007
4008 (define-public libgnomeprintui
4009 ;; Deprecated; see libgnomeprint.
4010 (package
4011 (name "libgnomeprintui")
4012 (version "2.18.6")
4013 (source (origin
4014 (method url-fetch)
4015 (uri (string-append "mirror://gnome/sources/" name "/"
4016 (version-major+minor version) "/"
4017 name "-" version ".tar.bz2"))
4018 (sha256
4019 (base32
4020 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
4021 (build-system gnu-build-system)
4022 ;; Mentioned as Required in the .pc file
4023 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
4024 (inputs `(("gtk+" ,gtk+-2)
4025 ("glib" ,glib)
4026 ("gnome-icon-theme" ,gnome-icon-theme)
4027 ("libgnomecanvas" ,libgnomecanvas)
4028 ("libxml2" ,libxml2)))
4029 (native-inputs
4030 `(("intltool" ,intltool)
4031 ("pkg-config" ,pkg-config)))
4032 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
4033 (synopsis "Printing framework for GNOME")
4034 (description (package-description libgnomeprint))
4035 (license license:lgpl2.0+)))
4036
4037 (define-public libbonoboui
4038 (package
4039 (name "libbonoboui")
4040 (version "2.24.5")
4041 (source (origin
4042 (method url-fetch)
4043 (uri (string-append "mirror://gnome/sources/" name "/"
4044 (version-major+minor version) "/"
4045 name "-" version ".tar.bz2"))
4046 (sha256
4047 (base32
4048 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4049 (build-system gnu-build-system)
4050 (arguments
4051 `(#:phases
4052 (modify-phases %standard-phases
4053 (add-before 'check 'start-xserver
4054 (lambda* (#:key inputs #:allow-other-keys)
4055 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4056 (disp ":1"))
4057
4058 (setenv "HOME" (getcwd))
4059 (setenv "DISPLAY" disp)
4060 ;; There must be a running X server and make check doesn't start one.
4061 ;; Therefore we must do it.
4062 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4063 ;; Mentioned as Required by the .pc file
4064 (propagated-inputs `(("libxml2" ,libxml2)))
4065 (inputs
4066 `(("popt" ,popt)
4067 ("pangox-compat" ,pangox-compat)
4068 ("libgnome" ,libgnome)
4069 ("libgnomecanvas" ,libgnomecanvas)
4070 ("libglade" ,libglade)))
4071 (native-inputs
4072 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
4073 ("intltool" ,intltool)
4074 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
4075 ("pkg-config" ,pkg-config)))
4076 (home-page "https://developer.gnome.org/libbonoboui/")
4077 (synopsis "Some user interface controls using Bonobo")
4078 (description "The Bonobo UI library provides a number of user interface
4079 controls using the Bonobo component framework.")
4080 (license license:lgpl2.0+)))
4081
4082 (define-public libwnck
4083 (package
4084 (name "libwnck")
4085 (version "3.32.0")
4086 (source (origin
4087 (method url-fetch)
4088 (uri (string-append "mirror://gnome/sources/" name "/"
4089 (version-major+minor version) "/"
4090 name "-" version ".tar.xz"))
4091 (sha256
4092 (base32
4093 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4094 (build-system meson-build-system)
4095 (native-inputs
4096 `(("pkg-config" ,pkg-config)
4097 ("glib" ,glib "bin") ; for glib-mkenums
4098 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
4099 ("intltool" ,intltool)))
4100 (propagated-inputs
4101 `(("gtk+" ,gtk+)
4102 ("libxres" ,libxres)
4103 ("startup-notification" ,startup-notification)))
4104 (home-page "https://developer.gnome.org/libwnck/")
4105 (synopsis "Window Navigator Construction Kit")
4106 (description
4107 "Libwnck is the Window Navigator Construction Kit, a library for use in
4108 writing pagers, tasklists, and more generally applications that are dealing
4109 with window management. It tries hard to respect the Extended Window Manager
4110 Hints specification (EWMH).")
4111 (license license:lgpl2.0+)))
4112
4113 ;; stable version for gtk2, required by xfwm4.
4114 (define-public libwnck-2
4115 (package (inherit libwnck)
4116 (name "libwnck")
4117 (version "2.30.7")
4118 (source (origin
4119 (method url-fetch)
4120 (uri (string-append "mirror://gnome/sources/" name "/"
4121 (version-major+minor version) "/"
4122 name "-" version ".tar.xz"))
4123 (sha256
4124 (base32
4125 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4126 (build-system gnu-build-system)
4127 (native-inputs
4128 `(("pkg-config" ,pkg-config)
4129 ("intltool" ,intltool)))
4130 (propagated-inputs
4131 `(("gtk+" ,gtk+-2)
4132 ("libxres" ,libxres)
4133 ("startup-notification" ,startup-notification)))))
4134
4135 (define-public goffice
4136 (package
4137 (name "goffice")
4138 (version "0.10.50")
4139 (source (origin
4140 (method url-fetch)
4141 (uri (string-append "mirror://gnome/sources/goffice/"
4142 (version-major+minor version) "/"
4143 "goffice-" version ".tar.xz"))
4144 (sha256
4145 (base32 "1p5zbj7cbcfcxd6l8pnph54p6ah1bwf146y810j4bcq8ggf3sp1c"))))
4146 (build-system gnu-build-system)
4147 (outputs '("out"
4148 "doc")) ; 4.0 MiB of gtk-doc
4149 (arguments
4150 '(#:configure-flags (list (string-append "--with-html-dir="
4151 (assoc-ref %outputs "doc")
4152 "/share/gtk-doc/html"))))
4153 (inputs
4154 `(("gtk+" ,gtk+)
4155 ("libgsf" ,libgsf)
4156 ("librsvg" ,librsvg)
4157 ("libxslt" ,libxslt)
4158 ("libxml2" ,libxml2)))
4159 (native-inputs
4160 `(("intltool" ,intltool)
4161 ("glib" ,glib "bin")
4162 ("pkg-config" ,pkg-config)))
4163 (home-page "https://developer.gnome.org/goffice/")
4164 (synopsis "Document-centric objects and utilities")
4165 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4166 (license
4167 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4168 ;; Note: NOT LGPL
4169 (list license:gpl2 license:gpl3))))
4170
4171 (define-public goffice-0.8
4172 (package (inherit goffice)
4173 (version "0.8.17")
4174 (source (origin
4175 (method url-fetch)
4176 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4177 (version-major+minor version) "/"
4178 (package-name goffice) "-" version ".tar.xz"))
4179 (sha256
4180 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4181 (arguments
4182 `(#:phases
4183 (modify-phases %standard-phases
4184 (add-after 'unpack 'fix-pcre-check
4185 (lambda _
4186 ;; Only glib.h can be included directly. See
4187 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4188 (substitute* "configure"
4189 (("glib/gregex\\.h") "glib.h")) #t)))
4190
4191 ,@(package-arguments goffice)))
4192 (propagated-inputs
4193 ;; libgoffice-0.8.pc mentions libgsf-1
4194 `(("libgsf" ,libgsf)))
4195 (inputs
4196 `(("gtk" ,gtk+-2)
4197 ,@(alist-delete "gtk" (package-inputs goffice))))))
4198
4199 (define-public gnumeric
4200 (package
4201 (name "gnumeric")
4202 (version "1.12.50")
4203 (source (origin
4204 (method url-fetch)
4205 (uri (string-append "mirror://gnome/sources/gnumeric/"
4206 (version-major+minor version) "/"
4207 "gnumeric-" version ".tar.xz"))
4208 (sha256
4209 (base32
4210 "1f0lrj5msg80pgjp38jj6rddf352gwddgip7z4lki66n3fx1k23m"))))
4211 (build-system glib-or-gtk-build-system)
4212 (arguments
4213 `(;; The gnumeric developers don't worry much about failing tests.
4214 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4215 #:tests? #f
4216 #:phases
4217 (modify-phases %standard-phases
4218 (add-before
4219 'configure 'pre-conf
4220 (lambda* (#:key outputs #:allow-other-keys)
4221 ;; Make install tries to write into the directory of goffice
4222 ;; I am informed that this only affects the possibility to embed a
4223 ;; spreadsheet inside an Abiword document. So presumably when we
4224 ;; package Abiword we'll have to refer it to this directory.
4225 (substitute* "configure"
4226 (("^GOFFICE_PLUGINS_DIR=.*")
4227 (string-append "GOFFICE_PLUGINS_DIR="
4228 (assoc-ref outputs "out")
4229 "/goffice/plugins"))))))))
4230 (inputs
4231 `(("glib" ,glib)
4232 ("gtk+" ,gtk+)
4233 ("goffice" ,goffice)
4234 ("libgsf" ,libgsf)
4235 ("librsvg" ,librsvg)
4236 ("libxml2" ,libxml2)
4237 ("libxslt" ,libxslt)
4238 ("python" ,python)
4239 ("python-pygobject" ,python-pygobject)
4240 ("zlib" ,zlib)))
4241 (native-inputs
4242 `(("bison" ,bison)
4243 ("docbook-xml" ,docbook-xml)
4244 ("intltool" ,intltool)
4245 ("itstool" ,itstool)
4246 ("glib:bin" ,glib "bin")
4247 ("pkg-config" ,pkg-config)))
4248 (home-page "http://www.gnumeric.org")
4249 (synopsis "Spreadsheet application")
4250 (description
4251 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4252 interoperable with other spreadsheet applications. It has a vast array of
4253 features beyond typical spreadsheet functionality, such as support for linear
4254 and non-linear solvers, statistical analysis, and telecommunication
4255 engineering.")
4256 (license
4257 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4258 (list license:gpl2 license:gpl3))))
4259
4260 (define-public drawing
4261 (package
4262 (name "drawing")
4263 (version "0.8.1")
4264 (source
4265 (origin
4266 (method git-fetch)
4267 (uri (git-reference
4268 (url "https://github.com/maoschanz/drawing")
4269 (commit version)))
4270 (file-name (git-file-name name version))
4271 (sha256
4272 (base32 "0a65mil9w4iw0h6kncg5d15s302sxfx25fpnkfv9pz54nj3hzghk"))))
4273 (build-system meson-build-system)
4274 (arguments
4275 `(#:glib-or-gtk? #t
4276 #:phases
4277 (modify-phases %standard-phases
4278 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
4279 (lambda* (#:key outputs #:allow-other-keys)
4280 (let ((prog (string-append (assoc-ref outputs "out")
4281 "/bin/drawing"))
4282 (pylib (string-append (assoc-ref outputs "out")
4283 "/lib/python"
4284 ,(version-major+minor
4285 (package-version python))
4286 "/site-packages")))
4287 (wrap-program prog
4288 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
4289 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
4290 #t))))))
4291 (native-inputs
4292 `(("desktop-file-utils" ,desktop-file-utils)
4293 ("gettext" ,gettext-minimal)
4294 ("glib:bin" ,glib "bin")
4295 ("gobject-introspection" ,gobject-introspection)
4296 ("gtk+:bin" ,gtk+ "bin")
4297 ("pkg-config" ,pkg-config)))
4298 (inputs
4299 `(("gdk-pixbuf" ,gdk-pixbuf+svg)
4300 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4301 ("gtk+" ,gtk+)
4302 ("pango" ,pango)
4303 ("python-pycairo" ,python-pycairo)
4304 ("python-pygobject" ,python-pygobject)))
4305 (home-page "https://maoschanz.github.io/drawing/")
4306 (synopsis "Basic image editor for GNOME")
4307 (description
4308 "Drawing is a basic image editor aiming at the GNOME desktop.")
4309 (license license:gpl3+)))
4310
4311 (define-public gnome-themes-standard
4312 (package
4313 (name "gnome-themes-standard")
4314 (version "3.22.3")
4315 (source
4316 (origin
4317 (method url-fetch)
4318 (uri (string-append "mirror://gnome/sources/" name "/"
4319 (version-major+minor version) "/" name "-"
4320 version ".tar.xz"))
4321 (sha256
4322 (base32
4323 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4324 (build-system gnu-build-system)
4325 (arguments
4326 '(#:configure-flags
4327 ;; Don't create 'icon-theme.cache'.
4328 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4329 (true (string-append coreutils "/bin/true")))
4330 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4331 (inputs
4332 `(("gtk+" ,gtk+)
4333 ("gtk+-2" ,gtk+-2)
4334 ("librsvg" ,librsvg)
4335 ("libxml2" ,libxml2)
4336 ("glib" ,glib)))
4337 (native-inputs
4338 `(("intltool" ,intltool)
4339 ("glib:bin" ,glib "bin")
4340 ("pkg-config" ,pkg-config)))
4341 (home-page "https://launchpad.net/gnome-themes-standard")
4342 (synopsis "Default GNOME 3 themes")
4343 (description
4344 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4345 (license license:lgpl2.1+)))
4346
4347 (define-public seahorse
4348 (package
4349 (name "seahorse")
4350 (version "3.36.2")
4351 (source
4352 (origin
4353 (method url-fetch)
4354 (uri (string-append "mirror://gnome/sources/" name "/"
4355 (version-major+minor version) "/" name "-"
4356 version ".tar.xz"))
4357 (sha256
4358 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4359 (build-system meson-build-system)
4360 (arguments
4361 '(#:glib-or-gtk? #t
4362 #:phases
4363 (modify-phases %standard-phases
4364 (add-after 'unpack 'skip-gtk-update-icon-cache
4365 ;; Don't create 'icon-theme.cache'.
4366 (lambda _
4367 (substitute* "build-aux/meson_post_install.py"
4368 (("gtk-update-icon-cache") "true"))
4369 #t)))))
4370 (inputs
4371 `(("gtk+" ,gtk+)
4372 ("gcr" ,gcr)
4373 ("gnupg" ,gnupg)
4374 ("gpgme" ,gpgme)
4375 ("openldap" ,openldap)
4376 ("openssh" ,openssh)
4377 ("avahi" ,avahi)
4378 ("libhandy" ,libhandy-0.0)
4379 ("libpwquality" ,libpwquality)
4380 ("libsecret" ,libsecret)
4381 ("libsoup" ,libsoup)))
4382 (native-inputs
4383 `(("gettext" ,gettext-minimal)
4384 ("glib:bin" ,glib "bin")
4385 ("itstool" ,itstool)
4386 ("pkg-config" ,pkg-config)
4387 ("vala" ,vala)
4388 ("xmllint" ,libxml2)))
4389 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4390 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4391 (description
4392 "Seahorse is a GNOME application for managing encryption keys and
4393 passwords in the GNOME keyring.")
4394 (license license:gpl2+)))
4395
4396 (define-public vala
4397 (package
4398 (name "vala")
4399 (version "0.46.5")
4400 (source (origin
4401 (method url-fetch)
4402 (uri (string-append "mirror://gnome/sources/" name "/"
4403 (version-major+minor version) "/"
4404 name "-" version ".tar.xz"))
4405 (sha256
4406 (base32
4407 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4408 (build-system gnu-build-system)
4409 (arguments
4410 '(#:phases
4411 (modify-phases %standard-phases
4412 (add-before 'check 'pre-check
4413 (lambda _
4414 (setenv "CC" "gcc")
4415 (substitute* "valadoc/tests/testrunner.sh"
4416 (("export PKG_CONFIG_PATH=" m)
4417 (string-append m "$PKG_CONFIG_PATH:")))
4418 ;; For missing '/etc/machine-id'.
4419 (setenv "DBUS_FATAL_WARNINGS" "0")
4420 #t)))))
4421 (native-inputs
4422 `(("pkg-config" ,pkg-config)
4423 ("flex" ,flex)
4424 ("bison" ,bison)
4425 ("xsltproc" ,libxslt)
4426 ("dbus" ,dbus) ; for dbus tests
4427 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4428 (inputs
4429 `(("graphviz" ,graphviz)))
4430 (propagated-inputs
4431 `(("glib" ,glib))) ; required by libvala-0.40.pc
4432 (home-page "https://wiki.gnome.org/Projects/Vala/")
4433 (synopsis "Compiler for the GObject type system")
4434 (description
4435 "Vala is a programming language that aims to bring modern programming
4436 language features to GNOME developers without imposing any additional runtime
4437 requirements and without using a different ABI compared to applications and
4438 libraries written in C.")
4439 (license license:lgpl2.1+)))
4440
4441 (define-public vala-0.50
4442 (package
4443 (inherit vala)
4444 (version "0.50.2")
4445 (source (origin
4446 (method url-fetch)
4447 (uri (string-append "mirror://gnome/sources/vala/"
4448 (version-major+minor version) "/"
4449 "vala-" version ".tar.xz"))
4450 (sha256
4451 (base32
4452 "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c"))))))
4453
4454 (define-public vte
4455 (package
4456 (name "vte")
4457 (version "0.60.3")
4458 (source (origin
4459 (method url-fetch)
4460 (uri (string-append "mirror://gnome/sources/vte/"
4461 (version-major+minor version) "/"
4462 "vte-" version ".tar.xz"))
4463 (sha256
4464 (base32
4465 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4466 (build-system meson-build-system)
4467 (arguments
4468 `(#:configure-flags
4469 '("-Dvapi=true"
4470 "-D_systemd=false")))
4471 (native-inputs
4472 `(("pkg-config" ,pkg-config)
4473 ("gettext" ,gettext-minimal)
4474 ("vala" ,vala)
4475 ("gobject-introspection" ,gobject-introspection)
4476 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4477 ("gperf" ,gperf)
4478 ("xmllint" ,libxml2)))
4479 (propagated-inputs
4480 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4481 ("gnutls" ,gnutls) ; ditto
4482 ("pcre2" ,pcre2))) ; ditto
4483 (home-page "https://www.gnome.org/")
4484 (synopsis "Virtual Terminal Emulator")
4485 (description
4486 "VTE is a library (libvte) implementing a terminal emulator widget for
4487 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4488 gnome-terminal, but can also be used to embed a console/terminal in games,
4489 editors, IDEs, etc.")
4490 (license license:lgpl2.1+)))
4491
4492 (define-public vte-ng
4493 (package
4494 (inherit vte)
4495 (name "vte-ng")
4496 (version "0.58.2.a")
4497 (home-page "https://github.com/thestinger/vte-ng")
4498 (source (origin
4499 (method git-fetch)
4500 (uri (git-reference (url home-page) (commit version)))
4501 (file-name (git-file-name name version))
4502 (sha256
4503 (base32
4504 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4505 (build-system meson-build-system)
4506 (native-inputs
4507 `(("gtk-doc" ,gtk-doc/stable)
4508 ,@(package-native-inputs vte)))
4509 (arguments
4510 `(#:configure-flags '("-Ddocs=true")))
4511 (synopsis "Enhanced VTE terminal widget")
4512 (description
4513 "VTE is a library (libvte) implementing a terminal emulator widget for
4514 GTK+, this fork provides additional functions exposed for keyboard text
4515 selection and URL hints.")))
4516
4517 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4518 (define-public vte/gtk+-2
4519 (package (inherit vte)
4520 (name "vte")
4521 (version "0.28.2")
4522 (source (origin
4523 (method url-fetch)
4524 (uri (string-append "mirror://gnome/sources/" name "/"
4525 (version-major+minor version) "/"
4526 name "-" version ".tar.xz"))
4527 (sha256
4528 (base32
4529 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4530 (patches (search-patches
4531 "vte-CVE-2012-2738-pt1.patch"
4532 "vte-CVE-2012-2738-pt2.patch"))))
4533 (build-system gnu-build-system)
4534 (arguments
4535 '(#:configure-flags '("--disable-python")))
4536 (native-inputs
4537 `(("pkg-config" ,pkg-config)
4538 ("intltool" ,intltool)
4539 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4540 (propagated-inputs
4541 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4542 ("ncurses" ,ncurses))))) ; required by libvte.la
4543
4544 (define-public vinagre
4545 (package
4546 (name "vinagre")
4547 (version "3.22.0")
4548 (source (origin
4549 (method url-fetch)
4550 (uri (string-append "mirror://gnome/sources/" name "/"
4551 (version-major+minor version) "/"
4552 name "-" version ".tar.xz"))
4553 (patches (search-patches "vinagre-newer-freerdp.patch"
4554 "vinagre-newer-rdp-parameters.patch"))
4555 (sha256
4556 (base32
4557 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4558 (build-system glib-or-gtk-build-system)
4559 (arguments
4560 ;; Disable -Werror and such, to avoid build failures on compilation
4561 ;; warnings.
4562 '(#:configure-flags '("--enable-compile-warnings=minimum")
4563 #:phases
4564 (modify-phases %standard-phases
4565 (add-before 'install 'skip-gtk-update-icon-cache
4566 (lambda _
4567 ;; Don't create 'icon-theme.cache'
4568 (substitute* (find-files "." "^Makefile$")
4569 (("gtk-update-icon-cache") (which "true")))
4570 #t))
4571 (add-after 'unpack 'patch-configure
4572 (lambda _
4573 (substitute* "configure"
4574 (("freerdp") "freerdp2"))
4575 #t)))))
4576 (native-inputs
4577 `(("pkg-config" ,pkg-config)
4578 ("intltool" ,intltool)
4579 ("itstool" ,itstool)
4580 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4581 (inputs
4582 `(("libxml2" ,libxml2)
4583 ("gtk-vnc" ,gtk-vnc)
4584 ("gnome-keyring" ,gnome-keyring)
4585 ("libsecret" ,libsecret)
4586 ("freerdp" ,freerdp)
4587 ("spice" ,spice)
4588 ("spice-gtk" ,spice-gtk)
4589 ("telepathy-glib" ,telepathy-glib)
4590 ("vte" ,vte)))
4591 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4592 (synopsis "Remote desktop viewer for GNOME")
4593 (description "Vinagre is a remote display client supporting the VNC, SPICE
4594 and RDP protocols.")
4595 (license license:gpl3+)))
4596
4597 (define-public dconf
4598 (package
4599 (name "dconf")
4600 (version "0.36.0")
4601 (source (origin
4602 (method url-fetch)
4603 (uri (string-append
4604 "mirror://gnome/sources/" name "/"
4605 (version-major+minor version) "/"
4606 name "-" version ".tar.xz"))
4607 (sha256
4608 (base32
4609 "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
4610 (build-system meson-build-system)
4611 (propagated-inputs
4612 ;; In Requires of dconf.pc.
4613 `(("glib" ,glib)))
4614 (inputs
4615 `(("gtk+" ,gtk+)
4616 ("dbus" ,dbus)))
4617 (native-inputs
4618 `(("bash-completion" ,bash-completion)
4619 ("libxslt" ,libxslt) ;for xsltproc
4620 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4621 ("docbook-xml" ,docbook-xml-4.2)
4622 ("docbook-xsl" ,docbook-xsl)
4623 ("glib:bin" ,glib "bin")
4624 ("gtk-doc" ,gtk-doc/stable)
4625 ("pkg-config" ,pkg-config)
4626 ("vala" ,vala)))
4627 (arguments
4628 `(#:glib-or-gtk? #t
4629 #:configure-flags '("-Denable-gtk-doc=true")
4630 #:phases (modify-phases %standard-phases
4631 (add-after 'unpack 'increase-test-timeout
4632 (lambda _
4633 ;; On big-memory systems, the engine test may take
4634 ;; much longer than the default of 30 seconds.
4635 (substitute* "tests/meson.build"
4636 (("test\\(unit_test\\[0\\], exe" all)
4637 (string-append all ", timeout : 90")))
4638 #t)))))
4639 (home-page "https://developer.gnome.org/dconf/")
4640 (synopsis "Low-level GNOME configuration system")
4641 (description "Dconf is a low-level configuration system. Its main purpose
4642 is to provide a backend to GSettings on platforms that don't already have
4643 configuration storage systems.")
4644 (license license:lgpl2.1+)))
4645
4646 (define-public json-glib
4647 (package
4648 (name "json-glib")
4649 (version "1.4.4")
4650 (source (origin
4651 (method url-fetch)
4652 (uri (string-append "mirror://gnome/sources/" name "/"
4653 (version-major+minor version) "/"
4654 name "-" version ".tar.xz"))
4655 (sha256
4656 (base32
4657 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4658 (build-system meson-build-system)
4659 (native-inputs
4660 `(("gettext" ,gettext-minimal)
4661 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4662 ("gobject-introspection" ,gobject-introspection)
4663 ("pkg-config" ,pkg-config)))
4664 (propagated-inputs
4665 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4666 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4667 (synopsis "Compiler for the GObject type system")
4668 (description
4669 "JSON-GLib is a C library based on GLib providing serialization and
4670 deserialization support for the JavaScript Object Notation (JSON) format
4671 described by RFC 4627. It provides parser and generator GObject classes and
4672 various wrappers for the complex data types employed by JSON, such as arrays
4673 and objects.")
4674 (license license:lgpl2.1+)))
4675
4676 (define-public libxklavier
4677 (package
4678 (name "libxklavier")
4679 (version "5.4")
4680 (source (origin
4681 ;; Note: There's no tarball at ftp.gnome.org for this version.
4682 (method git-fetch)
4683 (uri (git-reference
4684 (url "https://anongit.freedesktop.org/git/libxklavier")
4685 (commit (string-append "libxklavier-" version))))
4686 (sha256
4687 (base32
4688 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4689 (file-name (git-file-name name version))))
4690 (build-system gnu-build-system)
4691 (arguments
4692 '(#:configure-flags
4693 (list (string-append "--with-xkb-base="
4694 (assoc-ref %build-inputs "xkeyboard-config")
4695 "/share/X11/xkb")
4696 "--disable-xmodmap-support")))
4697 (native-inputs
4698 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4699 ("gobject-introspection" ,gobject-introspection)
4700 ("pkg-config" ,pkg-config)
4701 ("gtk-doc" ,gtk-doc/stable)
4702 ("intltool" ,intltool)
4703 ("which" ,which)
4704 ("autoconf" ,autoconf)
4705 ("automake" ,automake)
4706 ("libtool" ,libtool)))
4707 (propagated-inputs
4708 ;; Required by libxklavier.pc.
4709 `(("glib" ,glib)
4710 ("libxml2" ,libxml2)))
4711 (inputs
4712 `(("iso-codes" ,iso-codes)
4713 ("libxi" ,libxi)
4714 ("libxkbfile" ,libxkbfile)
4715 ("xkbcomp" ,xkbcomp)
4716 ("xkeyboard-config" ,xkeyboard-config)))
4717 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4718 (synopsis "High-level API for X Keyboard Extension")
4719 (description
4720 "LibXklavier is a library providing high-level API for X Keyboard
4721 Extension known as XKB. This library is intended to support XFree86 and other
4722 commercial X servers. It is useful for creating XKB-related software (layout
4723 indicators etc).")
4724 (license license:lgpl2.0+)))
4725
4726 (define-public python2-rsvg
4727 ;; XXX: This is actually a subset of gnome-python-desktop.
4728 (package
4729 (name "python2-rsvg")
4730 (version "2.32.0")
4731 (source
4732 (origin
4733 (method url-fetch)
4734 (uri (string-append
4735 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4736 version ".tar.bz2"))
4737 (sha256
4738 (base32
4739 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4740 (build-system gnu-build-system)
4741 (native-inputs
4742 `(("pkg-config" ,pkg-config)))
4743 (inputs
4744 `(("python" ,python-2)
4745 ("python2-pygtk" ,python2-pygtk)
4746 ("librsvg" ,librsvg)))
4747 (home-page "https://www.gnome.org")
4748 (synopsis "Python bindings to librsvg")
4749 (description
4750 "This package provides Python bindings to librsvg, the SVG rendering
4751 library.")
4752
4753 ;; This is the license of the rsvg bindings. The license of each module
4754 ;; of gnome-python-desktop is given in 'COPYING'.
4755 (license license:lgpl2.1+)))
4756
4757 (define-public glib-networking
4758 (package
4759 (name "glib-networking")
4760 (version "2.62.2")
4761 (source (origin
4762 (method url-fetch)
4763 (uri (string-append "mirror://gnome/sources/glib-networking/"
4764 (version-major+minor version) "/"
4765 "glib-networking-" version ".tar.xz"))
4766 (sha256
4767 (base32
4768 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4769 (build-system meson-build-system)
4770 (arguments
4771 `(#:configure-flags '("-Dlibproxy_support=false")))
4772 (native-inputs
4773 `(("pkg-config" ,pkg-config)
4774 ("intltool" ,intltool)))
4775 (inputs
4776 `(("glib" ,glib)
4777 ("gnutls" ,gnutls)
4778 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4779 (home-page "https://www.gnome.org")
4780 (synopsis "Network-related GIO modules")
4781 (description
4782 "This package contains various network related extensions for the GIO
4783 library.")
4784 (license license:lgpl2.0+)))
4785
4786 (define-public rest
4787 (package
4788 (name "rest")
4789 (version "0.8.1")
4790 (source (origin
4791 (method url-fetch)
4792 (uri (string-append "mirror://gnome/sources/rest/"
4793 (version-major+minor version) "/"
4794 name "-" version ".tar.xz"))
4795 (sha256
4796 (base32
4797 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4798 (build-system gnu-build-system)
4799 (arguments
4800 '(#:tests? #f ; tests require internet connection
4801 #:configure-flags
4802 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4803 (native-inputs
4804 `(("glib-mkenums" ,glib "bin")
4805 ("gobject-introspection" ,gobject-introspection)
4806 ("pkg-config" ,pkg-config)))
4807 (propagated-inputs
4808 ;; rest-0.7.pc refers to all these.
4809 `(("glib" ,glib)
4810 ("libsoup" ,libsoup)
4811 ("libxml2" ,libxml2)))
4812 (home-page "https://www.gtk.org/")
4813 (synopsis "RESTful web api query library")
4814 (description
4815 "This library was designed to make it easier to access web services that
4816 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4817 libxml to ease remote use of the RESTful API.")
4818 (license license:lgpl2.1+)))
4819
4820 (define-public libsoup
4821 (package
4822 (name "libsoup")
4823 (version "2.72.0")
4824 (source (origin
4825 (method url-fetch)
4826 (uri (string-append "mirror://gnome/sources/libsoup/"
4827 (version-major+minor version) "/"
4828 "libsoup-" version ".tar.xz"))
4829 (sha256
4830 (base32
4831 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
4832 (build-system meson-build-system)
4833 (outputs '("out" "doc"))
4834 (arguments
4835 `(#:modules ((guix build utils)
4836 (guix build meson-build-system)
4837 (ice-9 popen))
4838
4839 #:configure-flags '("-Dgtk_doc=true")
4840 #:phases
4841 (modify-phases %standard-phases
4842 (add-after 'unpack 'patch-docbook-xml
4843 (lambda* (#:key inputs #:allow-other-keys)
4844 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
4845 "/xml/dtd/docbook")))
4846 (substitute* (find-files "docs/reference")
4847 (("http://.*/docbookx\\.dtd")
4848 (string-append xmldoc "/docbookx.dtd")))
4849 #t)))
4850 (add-after 'unpack 'adjust-tests
4851 (lambda _
4852 ;; This test fails due to missing /etc/nsswitch.conf
4853 ;; in the build environment.
4854 (substitute* "tests/socket-test.c"
4855 ((".*/sockets/unconnected.*") ""))
4856
4857 ;; These fail because "subdomain.localhost" does not resolve in
4858 ;; the build environment.
4859 (substitute* "tests/hsts-test.c"
4860 ((".*/hsts/basic.*") "")
4861 ((".*/hsts/subdomains.*") "")
4862 ((".*/hsts/superdomain.*") "")
4863 ((".*/hsts/utf8-address.*") ""))
4864 (substitute* "tests/hsts-db-test.c"
4865 ((".*/hsts-db/subdomains.*") ""))
4866
4867 ;; Generate a self-signed certificate that has "localhost" as its
4868 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4869 ;; 3.5.12, tests such as "ssl-tests" fail:
4870 ;;
4871 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4872 ;;
4873 ;; 'certtool' is interactive so we have to pipe it the answers.
4874 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4875 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4876 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4877 (for-each (lambda (line)
4878 (display line pipe)
4879 (newline pipe))
4880 '("" ;Common name
4881 "" ;UID
4882 "Guix" ;Organizational unit name
4883 "GNU" ;Organization name
4884 "" ;Locality name
4885 "" ;State or province
4886 "" ;Country
4887 "" ;subject's domain component (DC)
4888 "" ;E-mail
4889 "" ;serial number
4890 "-1" ;expiration time
4891 "N" ;belong to authority?
4892 "N" ;web client certificate?
4893 "N" ;IPsec IKE?
4894 "Y" ;web server certificate?
4895 "localhost" ;dnsName of subject
4896 "" ;dnsName of subject (end)
4897 "" ;URI of subject
4898 "127.0.0.1" ;IP address of subject
4899 "" ;signing?
4900 "" ;encryption (RSA)?
4901 "" ;data encryption?
4902 "" ;sign OCSP requests?
4903 "" ;sign code?
4904 "" ;time stamping?
4905 "" ;email protection?
4906 "" ;URI of the CRL distribution point
4907 "y" ;above info OK?
4908 ))
4909 (close-pipe pipe))
4910 #t))
4911 (add-after 'install 'move-doc
4912 (lambda* (#:key outputs #:allow-other-keys)
4913 (let ((out (assoc-ref outputs "out"))
4914 (doc (assoc-ref outputs "doc")))
4915 (mkdir-p (string-append doc "/share"))
4916 (copy-recursively (string-append out "/share/gtk-doc")
4917 (string-append doc "/share/gtk-doc"))
4918 (delete-file-recursively (string-append out "/share/gtk-doc"))
4919 #t))))))
4920 (native-inputs
4921 `(("docbook-xml" ,docbook-xml-4.1.2)
4922 ("glib:bin" ,glib "bin") ; for glib-mkenums
4923 ("gobject-introspection" ,gobject-introspection)
4924 ("gtk-doc" ,gtk-doc/stable)
4925 ("intltool" ,intltool)
4926 ("pkg-config" ,pkg-config)
4927 ("python" ,python-wrapper)
4928 ("vala" ,vala)
4929 ("php" ,php)
4930 ("curl" ,curl)
4931 ("gnutls" ,gnutls) ;for 'certtool'
4932 ("httpd" ,httpd)))
4933 (propagated-inputs
4934 ;; libsoup-2.4.pc refers to all of these (except where otherwise noted)
4935 `(("brotli" ,google-brotli)
4936 ("glib" ,glib)
4937 ("glib-networking" ,glib-networking) ; for GIO runtime modules
4938 ("libpsl" ,libpsl)
4939 ("libxml2" ,libxml2)
4940 ("sqlite" ,sqlite)
4941 ("zlib" ,zlib)))
4942 (inputs
4943 `(("mit-krb5" ,mit-krb5)
4944 ("ntlm_auth" ,samba))) ; For ntlm_auth support
4945 (home-page "https://wiki.gnome.org/Projects/libsoup")
4946 (synopsis "GLib-based HTTP Library")
4947 (description
4948 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4949 and the GLib main loop, to integrate well with GNOME applications.")
4950 (license license:lgpl2.0+)))
4951
4952
4953 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4954 (define-public libsoup-minimal
4955 (package/inherit libsoup
4956 (name "libsoup-minimal")
4957 (outputs (delete "doc" (package-outputs libsoup)))
4958 (arguments
4959 (substitute-keyword-arguments (package-arguments libsoup)
4960 ((#:configure-flags configure-flags)
4961 `(delete "-Dgtk_doc=true" ,configure-flags))
4962 ((#:phases phases)
4963 `(modify-phases ,phases
4964 (delete 'move-doc)))))
4965 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4966
4967 (define-public libsecret
4968 (package
4969 (name "libsecret")
4970 (version "0.20.4")
4971 (source (origin
4972 (method url-fetch)
4973 (uri (string-append
4974 "mirror://gnome/sources/libsecret/"
4975 (version-major+minor version) "/"
4976 "libsecret-" version ".tar.xz"))
4977 (sha256
4978 (base32
4979 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
4980 (build-system gnu-build-system)
4981 (outputs '("out" "doc"))
4982 (arguments
4983 `(#:tests? #f ; FIXME: Testing hangs.
4984 #:configure-flags
4985 (list (string-append "--with-html-dir="
4986 (assoc-ref %outputs "doc")
4987 "/share/gtk-doc/html"))))
4988 (native-inputs
4989 `(("gettext" ,gettext-minimal)
4990 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4991 ("gobject-introspection" ,gobject-introspection)
4992 ("pkg-config" ,pkg-config)
4993 ("vala" ,vala)
4994 ("xsltproc" ,libxslt)))
4995 ;; These are needed for the tests.
4996 ;; FIXME: Add gjs once available.
4997 ;("dbus" ,dbus)
4998 ;("python2" ,python-2)
4999 ;("python2-dbus" ,python2-dbus)
5000 ;("python2-pygobject" ,python2-pygobject)
5001 ;("python2-pygobject-2" ,python2-pygobject-2)))
5002 (propagated-inputs
5003 `(("glib" ,glib))) ; required by libsecret-1.pc
5004 (inputs
5005 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
5006 ;; doesn't seem to affect the build result.
5007 `(("docbook-xsl" ,docbook-xsl)
5008 ("libgcrypt" ,libgcrypt)
5009 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
5010 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
5011 (synopsis "GObject bindings for \"Secret Service\" API")
5012 (description
5013 "Libsecret is a GObject based library for storing and retrieving passwords
5014 and other secrets. It communicates with the \"Secret Service\" using DBus.")
5015 (license license:lgpl2.1+)))
5016
5017 (define-public five-or-more
5018 (package
5019 (name "five-or-more")
5020 (version "3.32.2")
5021 (source
5022 (origin
5023 (method url-fetch)
5024 (uri (string-append "mirror://gnome/sources/five-or-more/"
5025 (version-major+minor version) "/"
5026 "five-or-more-" version ".tar.xz"))
5027 (sha256
5028 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
5029 (build-system meson-build-system)
5030 (arguments
5031 '(#:glib-or-gtk? #t
5032 #:phases
5033 (modify-phases %standard-phases
5034 (add-after 'unpack 'skip-gtk-update-icon-cache
5035 (lambda _
5036 (substitute* "meson_post_install.py"
5037 (("gtk-update-icon-cache") (which "true")))
5038 #t)))))
5039 (native-inputs
5040 `(("pkg-config" ,pkg-config)
5041 ("appstream-glib" ,appstream-glib)
5042 ("desktop-file-utils" ,desktop-file-utils)
5043 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5044 ("intltool" ,intltool)
5045 ("itstool" ,itstool)
5046 ("vala" ,vala)
5047 ("xmllint" ,libxml2)))
5048 (inputs
5049 `(("gtk+" ,gtk+)
5050 ("libgnome-games-support" ,libgnome-games-support)
5051 ("librsvg" ,librsvg)))
5052 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
5053 (synopsis "Logic puzzle game")
5054 (description "Five or More is a game where you try to align
5055 five or more objects of the same color and shape causing them to disappear.
5056 On every turn more objects will appear, until the board is full.
5057 Try to last as long as possible.")
5058 (license license:gpl2+)))
5059
5060 (define-public gnome-mines
5061 (package
5062 (name "gnome-mines")
5063 (version "3.36.1")
5064 (source
5065 (origin
5066 (method url-fetch)
5067 (uri (string-append "mirror://gnome/sources/" name "/"
5068 (version-major+minor version) "/"
5069 name "-" version ".tar.xz"))
5070 (sha256
5071 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
5072 (build-system meson-build-system)
5073 (arguments
5074 '(#:glib-or-gtk? #t
5075 #:phases
5076 (modify-phases %standard-phases
5077 (add-after 'unpack 'skip-gtk-update-icon-cache
5078 (lambda _
5079 (substitute* "build-aux/meson_post_install.py"
5080 (("gtk-update-icon-cache") (which "true")))
5081 #t)))))
5082 (native-inputs
5083 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5084 ("pkg-config" ,pkg-config)
5085 ("desktop-file-utils" ,desktop-file-utils)
5086 ("intltool" ,intltool)
5087 ("itstool" ,itstool)
5088 ("vala" ,vala)
5089 ("yelp" ,yelp)
5090 ("appstream-glib" ,appstream-glib)))
5091 (inputs
5092 `(("gtk+" ,gtk+)
5093 ("libgnome-games-support" ,libgnome-games-support)
5094 ("librsvg" ,librsvg)))
5095 (home-page "https://wiki.gnome.org/Apps/Mines")
5096 (synopsis "Minesweeper game")
5097 (description
5098 "Mines (previously gnomine) is a puzzle game where you locate mines
5099 floating in an ocean using only your brain and a little bit of luck.")
5100 (license license:gpl2+)))
5101
5102 (define-public gnome-multi-writer
5103 (package
5104 (name "gnome-multi-writer")
5105 (version "3.35.90")
5106 (source
5107 (origin
5108 (method url-fetch)
5109 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5110 (version-major+minor version) "/"
5111 "gnome-multi-writer-" version ".tar.xz"))
5112 (sha256
5113 (base32
5114 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5115 (build-system meson-build-system)
5116 (arguments
5117 '(#:glib-or-gtk? #t
5118 #:phases
5119 (modify-phases %standard-phases
5120 (add-after 'unpack 'skip-post-install
5121 (lambda _
5122 (substitute* "meson.build"
5123 (("meson.add_install_script" &) (string-append "# " &)))
5124 #t)))))
5125 (native-inputs
5126 `(("glib:bin" ,glib "bin")
5127 ("pkg-config" ,pkg-config)))
5128 (inputs
5129 `(("gtk+" ,gtk+)
5130 ("glib" ,glib) ; for gio
5131 ("gusb" ,gusb)
5132 ("udisks" ,udisks)
5133 ("libgudev" ,libgudev)
5134 ("libcanberra" ,libcanberra)
5135 ("polkit" ,polkit)))
5136 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5137 (synopsis "Write to multiple USB devices at once")
5138 (description
5139 "MultiWriter can be used to write an ISO file to multiple USB devices at
5140 once.")
5141 (license license:gpl2+)))
5142
5143 (define-public gnome-sudoku
5144 (package
5145 (name "gnome-sudoku")
5146 (version "3.34.1")
5147 (source
5148 (origin
5149 (method url-fetch)
5150 (uri (string-append "mirror://gnome/sources/" name "/"
5151 (version-major+minor version) "/"
5152 name "-" version ".tar.xz"))
5153 (sha256
5154 (base32
5155 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
5156 (build-system meson-build-system)
5157 (arguments
5158 '(#:glib-or-gtk? #t
5159 #:phases
5160 (modify-phases %standard-phases
5161 (add-after 'unpack 'skip-gtk-update-icon-cache
5162 (lambda _
5163 (substitute* "build-aux/post_install.py"
5164 (("gtk-update-icon-cache") (which "true")))
5165 #t)))))
5166 (native-inputs
5167 `(("pkg-config" ,pkg-config)
5168 ("desktop-file-utils" ,desktop-file-utils)
5169 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5170 ("intltool" ,intltool)
5171 ("itstool" ,itstool)
5172 ("vala" ,vala)
5173 ("xmllint" ,libxml2)))
5174 (inputs
5175 `(("gtk+" ,gtk+)
5176 ("json-glib" ,json-glib)
5177 ("libgee" ,libgee)
5178 ("librsvg" ,librsvg)
5179 ("qqwing" ,qqwing)))
5180 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5181 (synopsis "Japanese logic game")
5182 (description
5183 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5184 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5185 possible while still providing features that make playing difficult Sudoku
5186 more fun.")
5187 (license license:gpl2+)))
5188
5189 (define-public gnome-terminal
5190 (package
5191 (name "gnome-terminal")
5192 (version "3.34.2")
5193 (source
5194 (origin
5195 (method url-fetch)
5196 (uri (string-append "mirror://gnome/sources/" name "/"
5197 (version-major+minor version) "/"
5198 name "-" version ".tar.xz"))
5199 (sha256
5200 (base32
5201 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
5202 (build-system glib-or-gtk-build-system)
5203 (arguments
5204 '(#:configure-flags
5205 (list "--disable-migration" "--disable-search-provider"
5206 "--without-nautilus-extension")
5207 #:phases
5208 (modify-phases %standard-phases
5209 (add-before 'configure 'patch-/bin/true
5210 (lambda _
5211 (substitute* "configure"
5212 (("/bin/true") (which "true"))))))))
5213 (native-inputs
5214 `(("pkg-config" ,pkg-config)
5215 ("desktop-file-utils" ,desktop-file-utils)
5216 ("intltool" ,intltool)
5217 ("itstool" ,itstool)
5218 ("xmllint" ,libxml2)))
5219 (propagated-inputs
5220 `(("dconf" ,dconf)))
5221 (inputs
5222 `(("gtk+" ,gtk+)
5223 ("vte" ,vte)
5224 ("gnutls" ,gnutls)
5225 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5226 ("util-linux" ,util-linux "lib")
5227 ("vala" ,vala)))
5228 (home-page "https://wiki.gnome.org/Apps/Terminal")
5229 (synopsis "Terminal emulator")
5230 (description
5231 "GNOME Terminal is a terminal emulator application for accessing a
5232 UNIX shell environment which can be used to run programs available on
5233 your system.
5234
5235 It supports several profiles, multiple tabs and implements several
5236 keyboard shortcuts.")
5237 (license license:gpl3+)))
5238
5239 (define-public colord
5240 (package
5241 (name "colord")
5242 (version "1.4.5")
5243 (source
5244 (origin
5245 (method url-fetch)
5246 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5247 "colord-" version ".tar.xz"))
5248 (sha256
5249 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5250 (build-system meson-build-system)
5251 (arguments
5252 '(;; FIXME: One test fails:
5253 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5254 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5255 ;; application/x-zerosize
5256 #:tests? #f
5257 #:glib-or-gtk? #t
5258 #:configure-flags (list "-Dlocalstatedir=/var"
5259 ;; No dep on systemd.
5260 "-Dsystemd=false"
5261 ;; Wants to install to global completion dir;
5262 ;; punt.
5263 "-Dbash_completion=false"
5264 "-Ddaemon_user=colord"
5265 "-Dsane=true"
5266 "-Dvapi=true"
5267 ;; Requires spotread.
5268 "-Dargyllcms_sensor=false"
5269 ;; TODO: Requires docbook2x.
5270 "-Dman=false")
5271 #:phases
5272 (modify-phases %standard-phases
5273 (add-before 'configure 'patch-build-system
5274 (lambda* (#:key outputs #:allow-other-keys)
5275 (substitute* "rules/meson.build"
5276 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5277 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
5278 #t))
5279 (add-before 'configure 'set-sqlite3-file-name
5280 (lambda* (#:key inputs #:allow-other-keys)
5281 ;; "colormgr dump" works by invoking the "sqlite3" command.
5282 ;; Record its absolute file name.
5283 (let ((sqlite (assoc-ref inputs "sqlite")))
5284 (substitute* "client/cd-util.c"
5285 (("\"sqlite3\"")
5286 (string-append "\"" sqlite "/bin/sqlite3\"")))
5287 #t))))))
5288 (native-inputs
5289 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5290 ("gettext" ,gettext-minimal)
5291 ("gobject-introspection" ,gobject-introspection)
5292 ("gtk-doc" ,gtk-doc/stable)
5293 ("pkg-config" ,pkg-config)
5294 ("vala" ,vala)))
5295 (propagated-inputs
5296 ;; colord.pc refers to all these.
5297 `(("glib" ,glib)
5298 ("lcms" ,lcms)
5299 ("udev" ,eudev)))
5300 (inputs
5301 `(("dbus-glib" ,dbus-glib)
5302 ("gusb" ,gusb)
5303 ("libgudev" ,libgudev)
5304 ("libusb" ,libusb)
5305 ("polkit" ,polkit)
5306 ("python" ,python-wrapper)
5307 ("sqlite" ,sqlite)
5308 ("sane-backends" ,sane-backends)))
5309 (home-page "https://www.freedesktop.org/software/colord/")
5310 (synopsis "Color management service")
5311 (description "Colord is a system service that makes it easy to manage,
5312 install and generate color profiles to accurately color manage input and
5313 output devices.")
5314 (license license:gpl2+)))
5315
5316 (define-public geoclue
5317 (package
5318 (name "geoclue")
5319 (version "2.5.7")
5320 (source
5321 (origin
5322 (method url-fetch)
5323 (uri
5324 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5325 version "/geoclue-" version ".tar.bz2"))
5326 (sha256
5327 (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
5328 (patches (search-patches "geoclue-config.patch"))))
5329 (build-system meson-build-system)
5330 (arguments
5331 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
5332 (native-inputs
5333 `(("pkg-config" ,pkg-config)
5334 ("gobject-introspection" ,gobject-introspection)
5335 ("modem-manager" ,modem-manager)
5336 ("libnotify" ,libnotify)
5337 ("gtk-doc" ,gtk-doc/stable)
5338 ("intltool" ,intltool)))
5339 (inputs
5340 `(("avahi" ,avahi)
5341 ("glib:bin" ,glib "bin")
5342 ("glib-networking" ,glib-networking)
5343 ("json-glib" ,json-glib)
5344 ("libsoup" ,libsoup)))
5345 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5346 (synopsis "Geolocation service")
5347 (description "Geoclue is a D-Bus service that provides location
5348 information. The primary goal of the Geoclue project is to make creating
5349 location-aware applications as simple as possible, while the secondary goal is
5350 to ensure that no application can access location information without explicit
5351 permission from user.")
5352 (license license:gpl2+)))
5353
5354 (define-public geocode-glib
5355 (package
5356 (name "geocode-glib")
5357 (version "3.26.2")
5358 (source (origin
5359 (method url-fetch)
5360 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5361 (version-major+minor version) "/"
5362 "geocode-glib-" version ".tar.xz"))
5363 (sha256
5364 (base32
5365 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5366 (build-system meson-build-system)
5367 (arguments
5368 `(#:phases
5369 (modify-phases %standard-phases
5370 ;; The tests require a bunch of locales.
5371 (add-before 'check 'set-locales
5372 (lambda* (#:key inputs #:allow-other-keys)
5373 (setenv "GUIX_LOCPATH"
5374 (string-append (assoc-ref inputs "glibc-locales")
5375 "/lib/locale"))
5376 #t)))))
5377 (native-inputs
5378 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5379 ("glibc-locales" ,glibc-locales) ; for tests
5380 ("gettext" ,gettext-minimal)
5381 ("gobject-introspection" ,gobject-introspection)
5382 ("gtk-doc" ,gtk-doc/stable)
5383 ("pkg-config" ,pkg-config)
5384 ("json-glib" ,json-glib)))
5385 (propagated-inputs
5386 ;; geocode-glib-1.0.pc refers to GIO.
5387 `(("glib" ,glib)))
5388 (inputs
5389 `(("libsoup" ,libsoup)))
5390 (home-page "https://github.com/GNOME/geocode-glib/")
5391 (synopsis "Geocoding and reverse-geocoding library")
5392 (description
5393 "geocode-glib is a convenience library for geocoding (finding longitude,
5394 and latitude from an address) and reverse geocoding (finding an address from
5395 coordinates) using the Nominatim service. geocode-glib caches requests for
5396 faster results and to avoid unnecessary server load.")
5397 (license license:lgpl2.0+)))
5398
5399 (define-public upower
5400 (package
5401 (name "upower")
5402 (version "0.99.12")
5403 (source
5404 (origin
5405 (method git-fetch)
5406 (uri (git-reference
5407 (url "https://gitlab.freedesktop.org/upower/upower")
5408 (commit (string-append "UPOWER_"
5409 (string-map (match-lambda (#\. #\_)
5410 (chr chr))
5411 version)))))
5412 (file-name (git-file-name name version))
5413 (sha256
5414 (base32 "00q63yc8vp5cq05vhpwq3qglapdm8hg0lrqkzdwkphk30qzb6hv6"))
5415 (patches (search-patches "upower-builddir.patch"))
5416 (modules '((guix build utils)))
5417 (snippet
5418 '(begin
5419 ;; Upstream commit
5420 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5421 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5422 ;; 'dbus-configuration-directory' in (gnu services dbus)
5423 ;; expects it in etc/. Thus, move it back to its previous
5424 ;; location.
5425 (substitute* "src/Makefile.am"
5426 (("^dbusconfdir =.*$")
5427 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5428 #t))))
5429 (build-system glib-or-gtk-build-system)
5430 (arguments
5431 '(#:phases
5432 (modify-phases %standard-phases
5433 (add-before 'check 'pre-check
5434 (lambda* (#:key inputs #:allow-other-keys)
5435 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5436 "/lib")))
5437 (setenv "LD_LIBRARY_PATH" umockdev))
5438 #t)))
5439 #:configure-flags (list "--localstatedir=/var"
5440 (string-append "--with-udevrulesdir="
5441 (assoc-ref %outputs "out")
5442 "/lib/udev/rules.d"))))
5443 (native-inputs
5444 `(("autoconf" ,autoconf)
5445 ("automake" ,automake)
5446 ("gobject-introspection" ,gobject-introspection)
5447 ("gtk-doc" ,gtk-doc)
5448 ("intltool" ,intltool)
5449 ("libtool" ,libtool)
5450 ("pkg-config" ,pkg-config)
5451 ("python" ,python)
5452 ("which" ,which) ; for ./autogen.sh
5453
5454 ;; For tests.
5455 ("python-dbus" ,python-dbus)
5456 ("python-dbusmock" ,python-dbusmock)
5457 ("python-pygobject" ,python-pygobject)
5458 ("umockdev" ,umockdev)
5459
5460 ;; For man pages.
5461 ("docbook-xsl" ,docbook-xsl)
5462 ("libxslt" ,libxslt) ; for 'xsltproc'
5463 ("libxml2" ,libxml2))) ; for 'XML_CATALOG_FILES'
5464 (inputs
5465 `(("dbus-glib" ,dbus-glib)
5466 ("libgudev" ,libgudev)
5467 ("libusb" ,libusb)))
5468 (propagated-inputs
5469 ;; In Requires of upower-glib.pc.
5470 `(("glib" ,glib)))
5471 (home-page "https://upower.freedesktop.org/")
5472 (synopsis "System daemon for managing power devices")
5473 (description
5474 "UPower is an abstraction for enumerating power devices,
5475 listening to device events and querying history and statistics. Any
5476 application or service on the system can access the org.freedesktop.UPower
5477 service via the system message bus.")
5478 (license license:gpl2+)))
5479
5480 (define-public libgweather
5481 (package
5482 (name "libgweather")
5483 (version "3.34.0")
5484 (source (origin
5485 (method url-fetch)
5486 (uri (string-append "mirror://gnome/sources/" name "/"
5487 (version-major+minor version) "/"
5488 name "-" version ".tar.xz"))
5489 (sha256
5490 (base32
5491 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5492 (build-system meson-build-system)
5493 (arguments
5494 `(#:tests? #f ; one of two tests requires network access
5495 #:configure-flags
5496 `(,(string-append "-Dzoneinfo_dir="
5497 (assoc-ref %build-inputs "tzdata")
5498 "/share/zoneinfo"))))
5499 (native-inputs
5500 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5501 ("gobject-introspection" ,gobject-introspection)
5502 ("pkg-config" ,pkg-config)
5503 ("vala" ,vala)
5504 ("intltool" ,intltool)))
5505 (propagated-inputs
5506 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5507 ;; libsoup.
5508 `(("gtk+" ,gtk+)
5509 ("gdk-pixbuf" ,gdk-pixbuf)
5510 ("libxml2" ,libxml2)
5511 ("libsoup" ,libsoup)
5512 ("geocode-glib" ,geocode-glib)))
5513 (inputs
5514 `(("tzdata" ,tzdata)))
5515 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5516 (synopsis "Location, time zone, and weather library for GNOME")
5517 (description
5518 "libgweather is a library to access weather information from online
5519 services for numerous locations.")
5520 (license license:gpl2+)))
5521
5522 (define-public gnome-settings-daemon
5523 (package
5524 (name "gnome-settings-daemon")
5525 (version "3.34.1")
5526 (source
5527 (origin
5528 (method url-fetch)
5529 (uri (string-append "mirror://gnome/sources/" name "/"
5530 (version-major+minor version) "/"
5531 name "-" version ".tar.xz"))
5532 (sha256
5533 (base32
5534 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
5535 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5536 (build-system meson-build-system)
5537 (arguments
5538 `(#:glib-or-gtk? #t
5539 #:configure-flags
5540 (list (string-append "-Dudev_dir="
5541 (assoc-ref %outputs "out")
5542 "/lib/udev/rules.d/")
5543 "-Dsystemd=false"
5544 ;; Otherwise, the RUNPATH will lack the final path component.
5545 (string-append "-Dc_link_args=-Wl,-rpath="
5546 (assoc-ref %outputs "out")
5547 "/lib/gnome-settings-daemon-3.0"))
5548
5549 #:phases (modify-phases %standard-phases
5550 (add-before 'configure 'set-baobab-file-name
5551 (lambda* (#:key inputs #:allow-other-keys)
5552 ;; Hard-code the file name of Baobab instead of looking
5553 ;; it up in $PATH. This ensures users get the "Examine"
5554 ;; button in the low disk space notification of GDM even
5555 ;; if they don't have GNOME in their main profile.
5556 (let ((baobab (assoc-ref inputs "baobab")))
5557 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5558 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5559 (string-append "g_strdup (\"" baobab
5560 "/bin/baobab\")")))
5561 #t))))
5562
5563 ;; Color management test can't reach the colord system service.
5564 #:tests? #f))
5565 (native-inputs
5566 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5567 ("pkg-config" ,pkg-config)
5568 ("intltool" ,intltool)
5569 ("xsltproc" ,libxslt)
5570 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5571 ("docbook-xml" ,docbook-xml-4.2)
5572 ("docbook-xsl" ,docbook-xsl)))
5573 (inputs
5574 `(("alsa-lib" ,alsa-lib)
5575 ("baobab" ,baobab)
5576 ("colord" ,colord)
5577 ("libgudev" ,libgudev)
5578 ("upower" ,upower)
5579 ("polkit" ,polkit)
5580 ("pulseaudio" ,pulseaudio)
5581 ("libcanberra" ,libcanberra)
5582 ("libx11" ,libx11)
5583 ("libxtst" ,libxtst)
5584 ("lcms" ,lcms)
5585 ("libnotify" ,libnotify)
5586 ("geoclue" ,geoclue)
5587 ("geocode-glib" ,geocode-glib)
5588 ("libgweather" ,libgweather)
5589 ("gnome-desktop" ,gnome-desktop)
5590 ("nss" ,nss)
5591 ("cups" ,cups)
5592 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5593 ("libwacom" ,libwacom)
5594 ("librsvg" ,librsvg)
5595 ("xf86-input-wacom" ,xf86-input-wacom)
5596 ("wayland" ,wayland)
5597 ("network-manager" ,network-manager)
5598 ("gcr" ,gcr)
5599 ("modem-manager" ,modem-manager)))
5600 (home-page "https://www.gnome.org")
5601 (synopsis "GNOME settings daemon")
5602 (description
5603 "This package contains the daemon responsible for setting the various
5604 parameters of a GNOME session and the applications that run under it. It
5605 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5606 settings, themes, mouse settings, and startup of other daemons.")
5607 (license license:gpl2+)))
5608
5609 (define-public totem-pl-parser
5610 (package
5611 (name "totem-pl-parser")
5612 (version "3.26.6")
5613 (source (origin
5614 (method url-fetch)
5615 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5616 (version-major+minor version) "/"
5617 "totem-pl-parser-" version ".tar.xz"))
5618 (sha256
5619 (base32
5620 "075csd5x0frgf93jvhlqiwv5i0qm24zz3iw17jj7v7fgsml0zpy0"))))
5621 (build-system meson-build-system)
5622 (arguments
5623 ;; FIXME: Tests require gvfs.
5624 `(#:tests? #f))
5625 (native-inputs
5626 `(("intltool" ,intltool)
5627 ("glib" ,glib "bin")
5628 ("gobject-introspection" ,gobject-introspection)
5629 ("pkg-config" ,pkg-config)))
5630 (propagated-inputs
5631 `(("glib" ,glib)
5632 ("gmime" ,gmime)
5633 ("libarchive" ,libarchive)
5634 ("libgcrypt" ,libgcrypt)
5635 ("libxml2" ,libxml2)))
5636 (inputs
5637 `(("libsoup" ,libsoup)))
5638 (home-page "https://projects.gnome.org/totem")
5639 (synopsis "Library to parse and save media playlists for GNOME")
5640 (description "Totem-pl-parser is a GObjects-based library to parse and save
5641 playlists in a variety of formats.")
5642 (license license:lgpl2.0+)))
5643
5644 (define-public aisleriot
5645 (package
5646 (name "aisleriot")
5647 (version "3.22.9")
5648 (source (origin
5649 (method url-fetch)
5650 (uri (string-append "mirror://gnome/sources/aisleriot/"
5651 (version-major+minor version) "/"
5652 "aisleriot-" version ".tar.xz"))
5653 (sha256
5654 (base32
5655 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5656 (build-system glib-or-gtk-build-system)
5657 (arguments
5658 '(#:configure-flags
5659 '("--with-platform=gtk-only"
5660 "--with-card-theme-formats=svg")))
5661 (native-inputs
5662 `(("desktop-file-utils" ,desktop-file-utils)
5663 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5664 ("intltool" ,intltool)
5665 ("itstool" ,itstool)
5666 ("pkg-config" ,pkg-config)
5667 ("xmllint" ,libxml2)))
5668 (inputs
5669 `(("gtk+" ,gtk+)
5670 ("guile" ,guile-2.2)
5671 ("libcanberra" ,libcanberra)
5672 ("librsvg" ,librsvg)))
5673 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5674 (synopsis "Solitaire card games")
5675 (description
5676 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5677 which are easy to play with the aid of a mouse.")
5678 (license license:gpl3+)))
5679
5680 (define-public amtk
5681 (package
5682 (name "amtk")
5683 (version "5.0.2")
5684 (source (origin
5685 (method url-fetch)
5686 (uri (string-append "mirror://gnome/sources/amtk/"
5687 (version-major+minor version) "/"
5688 "amtk-" version ".tar.xz"))
5689 (sha256
5690 (base32
5691 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5692 (build-system gnu-build-system)
5693 (arguments
5694 '(#:configure-flags '("--enable-gtk-doc")))
5695 (native-inputs
5696 `(("gobject-introspection" ,gobject-introspection)
5697 ("glib:bin" ,glib "bin") ; for glib-mkenums
5698 ("gtk-doc" ,gtk-doc/stable)
5699 ("pkg-config" ,pkg-config)))
5700 (inputs
5701 `(("glib" ,glib)
5702 ("gtk+" ,gtk+)))
5703 (home-page "https://wiki.gnome.org/Projects/Amtk")
5704 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5705 (description
5706 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5707 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5708 both a traditional UI or a modern UI with a GtkHeaderBar.")
5709 (license license:lgpl2.1+)))
5710
5711 (define-public devhelp
5712 (package
5713 (name "devhelp")
5714 (version "3.34.0")
5715 (source (origin
5716 (method url-fetch)
5717 (uri (string-append "mirror://gnome/sources/" name "/"
5718 (version-major+minor version) "/"
5719 name "-" version ".tar.xz"))
5720 (sha256
5721 (base32
5722 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5723 (build-system meson-build-system)
5724 (arguments
5725 '(#:glib-or-gtk? #t
5726 #:phases
5727 (modify-phases %standard-phases
5728 (add-after 'unpack 'skip-gtk-update-icon-cache
5729 ;; Don't create 'icon-theme.cache'.
5730 (lambda _
5731 (substitute* "meson_post_install.py"
5732 (("gtk-update-icon-cache") "true"))
5733 #t)))))
5734 (native-inputs
5735 `(("intltool" ,intltool)
5736 ("itstool" ,itstool)
5737 ("gobject-introspection" ,gobject-introspection)
5738 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5739 ("pkg-config" ,pkg-config)))
5740 (inputs
5741 `(("amtk" ,amtk)
5742 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5743 ("webkitgtk" ,webkitgtk)))
5744 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5745 (synopsis "API documentation browser for GNOME")
5746 (description
5747 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5748 natively with GTK-Doc (the API reference system developed for GTK+ and used
5749 throughout GNOME for API documentation).")
5750 (license license:gpl2+)))
5751
5752 (define-public cogl
5753 (package
5754 (name "cogl")
5755 (version "1.22.8")
5756 (source
5757 (origin
5758 (method url-fetch)
5759 (uri (string-append "mirror://gnome/sources/cogl/"
5760 (version-major+minor version) "/"
5761 "cogl-" version ".tar.xz"))
5762 (sha256
5763 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5764 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5765 ;; cogl, corresponding changes may be appropriate in mutter as well.
5766 (build-system gnu-build-system)
5767 (native-inputs
5768 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5769 ("gobject-introspection" ,gobject-introspection)
5770 ("xorg-server" ,xorg-server-for-tests)
5771 ("pkg-config" ,pkg-config)))
5772 (propagated-inputs
5773 `(("glib" ,glib)
5774 ("gdk-pixbuf" ,gdk-pixbuf)
5775 ("libx11" ,libx11)
5776 ("libxext" ,libxext)
5777 ("libxfixes" ,libxfixes)
5778 ("libxdamage" ,libxdamage)
5779 ("libxcomposite" ,libxcomposite)
5780 ("libxrandr" ,libxrandr)))
5781 (inputs
5782 `(("mesa" ,mesa)
5783 ("cairo" ,cairo)
5784 ("pango" ,pango)
5785 ("gstreamer" ,gstreamer)
5786 ("gst-plugins-base" ,gst-plugins-base)
5787 ("wayland" ,wayland)))
5788 (arguments
5789 `(#:disallowed-references (,xorg-server-for-tests)
5790 #:configure-flags (list "--enable-cogl-gst"
5791 "--enable-wayland-egl-platform"
5792 "--enable-wayland-egl-server"
5793
5794 ;; Arrange to pass an absolute file name to
5795 ;; dlopen for libGL.so.
5796 (string-append "--with-gl-libname="
5797 (assoc-ref %build-inputs "mesa")
5798 "/lib/libGL.so"))
5799 #:phases
5800 (modify-phases %standard-phases
5801 (add-after 'unpack 'fix-build-with-mesa-20
5802 (lambda _
5803 ;; Work around a problem with Mesa 20 where some macros used by
5804 ;; Cogl went missing from eglext.h. This can likely be removed
5805 ;; for newer versions of Cogl or Mesa.
5806 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5807 (substitute* '("configure"
5808 "cogl/winsys/cogl-winsys-egl-kms.c")
5809 (("#include <EGL/eglext.h>" all)
5810 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5811 #t))
5812 (add-before 'check 'start-xorg-server
5813 (lambda* (#:key tests? inputs #:allow-other-keys)
5814 (if tests?
5815 (begin
5816 ;; The test suite requires a running X server.
5817 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5818 (assoc-ref inputs "xorg-server")))
5819 (setenv "DISPLAY" ":1")
5820 #t)
5821 (format #t "test suite not run~%"))
5822 #t)))))
5823 (home-page "https://www.cogl3d.org")
5824 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5825 (description
5826 "Cogl is a small library for using 3D graphics hardware to draw pretty
5827 pictures. The API departs from the flat state machine style of OpenGL and is
5828 designed to make it easy to write orthogonal components that can render
5829 without stepping on each others toes.")
5830 (license (list license:expat ; most of the code
5831 license:bsd-3 ; cogl/cogl-point-in-poly.c
5832 license:sgifreeb2.0 ; cogl-path/tesselator/
5833 license:asl2.0)))) ; examples/android/
5834
5835 (define-public clutter
5836 (package
5837 (name "clutter")
5838 (version "1.26.2")
5839 (source
5840 (origin
5841 (method url-fetch)
5842 (uri (string-append "mirror://gnome/sources/" name "/"
5843 (version-major+minor version) "/"
5844 name "-" version ".tar.xz"))
5845 (sha256
5846 (base32
5847 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5848 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5849 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5850 (build-system gnu-build-system)
5851 (outputs '("out"
5852 "doc")) ;9 MiB of gtk-doc HTML pages
5853 (native-inputs
5854 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5855 ("gobject-introspection" ,gobject-introspection)
5856 ("pkg-config" ,pkg-config)
5857 ("xsltproc" ,libxslt)))
5858 (propagated-inputs
5859 `(("cogl" ,cogl)
5860 ("cairo" ,cairo)
5861 ("atk" ,atk)
5862 ("gtk+" ,gtk+)
5863 ("json-glib" ,json-glib)
5864 ("glib" ,glib)
5865 ("libxcomposite" ,libxcomposite)
5866 ("libxdamage" ,libxdamage)
5867 ("libxext" ,libxext)
5868 ("xinput" ,xinput)))
5869 (inputs
5870 `(("libxkbcommon" ,libxkbcommon)
5871 ("udev" ,eudev)))
5872 (arguments
5873 `(#:configure-flags (list "--enable-x11-backend=yes"
5874
5875 ;; This produces share/doc/{clutter,cally}.
5876 (string-append "--with-html-dir="
5877 (assoc-ref %outputs "doc")
5878 "/share/doc"))
5879 ;; XXX FIXME: Get test suite working. It would probably fail in the
5880 ;; same way the cogl tests fail, since clutter is based on cogl.
5881 #:tests? #f))
5882 (home-page "http://www.clutter-project.org")
5883 (synopsis "OpenGL-based interactive canvas library")
5884 (description
5885 "Clutter is an OpenGL-based interactive canvas library, designed for
5886 creating fast, mainly 2D single window applications such as media box UIs,
5887 presentations, kiosk style applications and so on.")
5888 (license license:lgpl2.0+)))
5889
5890 (define-public clutter-gtk
5891 (package
5892 (name "clutter-gtk")
5893 (version "1.8.4")
5894 (source
5895 (origin
5896 (method url-fetch)
5897 (uri (string-append "mirror://gnome/sources/" name "/"
5898 (version-major+minor version) "/"
5899 name "-" version ".tar.xz"))
5900 (sha256
5901 (base32
5902 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5903 (build-system gnu-build-system)
5904 (native-inputs
5905 `(("pkg-config" ,pkg-config)
5906 ("gobject-introspection" ,gobject-introspection)))
5907 (propagated-inputs
5908 ;; clutter-gtk.pc refers to all these.
5909 `(("clutter" ,clutter)
5910 ("gtk+" ,gtk+)))
5911 (home-page "http://www.clutter-project.org")
5912 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5913 (description
5914 "Clutter is an OpenGL-based interactive canvas library, designed for
5915 creating fast, mainly 2D single window applications such as media box UIs,
5916 presentations, kiosk style applications and so on.")
5917 (license license:lgpl2.0+)))
5918
5919 (define-public clutter-gst
5920 (package
5921 (name "clutter-gst")
5922 (version "3.0.27")
5923 (source
5924 (origin
5925 (method url-fetch)
5926 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5927 (version-major+minor version) "/"
5928 "clutter-gst-" version ".tar.xz"))
5929 (sha256
5930 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5931 (build-system gnu-build-system)
5932 (native-inputs
5933 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5934 ("pkg-config" ,pkg-config)
5935 ("gobject-introspection" ,gobject-introspection)))
5936 (inputs
5937 `(("clutter" ,clutter)
5938 ("gstreamer" ,gstreamer)
5939 ("gst-plugins-base" ,gst-plugins-base)))
5940 (home-page "http://www.clutter-project.org")
5941 (synopsis "Integration library for using GStreamer with Clutter")
5942 (description
5943 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5944 It provides a GStreamer sink to upload frames to GL and an actor that
5945 implements the ClutterGstPlayer interface using playbin. Clutter is an
5946 OpenGL-based interactive canvas library.")
5947 (license license:lgpl2.0+)))
5948
5949 (define-public libchamplain
5950 (package
5951 (name "libchamplain")
5952 (version "0.12.16")
5953 (source (origin
5954 (method url-fetch)
5955 (uri (string-append
5956 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5957 version ".tar.xz"))
5958 (sha256
5959 (base32
5960 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5961 (build-system gnu-build-system)
5962 (arguments '(#:configure-flags '("--enable-vala")))
5963 (native-inputs
5964 `(("gobject-introspection" ,gobject-introspection)
5965 ("pkg-config" ,pkg-config)
5966 ("vala" ,vala)))
5967 (propagated-inputs
5968 `(("libsoup" ,libsoup)
5969 ("sqlite" ,sqlite)
5970 ("clutter" ,clutter)
5971 ("clutter-gtk" ,clutter-gtk)
5972 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5973 ("cairo" ,cairo)
5974 ("gtk+3" ,gtk+)
5975 ("glib" ,glib)))
5976 (home-page "https://projects.gnome.org/libchamplain/")
5977 (synopsis "C library providing a ClutterActor to display maps")
5978 (description
5979 "libchamplain is a C library providing a ClutterActor to display maps.
5980 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5981 and Perl bindings are also available. It supports numerous free map sources
5982 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5983 (license license:lgpl2.1+)))
5984
5985 (define-public gom
5986 (package
5987 (name "gom")
5988 (version "0.3.2")
5989 (source
5990 (origin
5991 (method url-fetch)
5992 (uri (string-append "mirror://gnome/sources/gom/"
5993 (version-major+minor version) "/"
5994 "gom-" version ".tar.xz"))
5995 (sha256
5996 (base32
5997 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5998 (build-system gnu-build-system)
5999 (native-inputs
6000 `(("intltool" ,intltool)
6001 ("pkg-config" ,pkg-config)
6002 ("gobject-introspection" ,gobject-introspection)))
6003 (inputs
6004 `(("glib" ,glib)
6005 ("gdk-pixbuf" ,gdk-pixbuf)
6006 ("sqlite" ,sqlite)))
6007 ;; XXX TODO: Figure out how to run the test suite.
6008 (arguments `(#:tests? #f))
6009 (home-page "https://wiki.gnome.org/Projects/Gom")
6010 (synopsis "Object mapper from GObjects to SQLite")
6011 (description
6012 "Gom provides an object mapper from GObjects to SQLite. It helps you
6013 write applications that need to store structured data as well as make complex
6014 queries upon that data.")
6015 (license license:lgpl2.1+)))
6016
6017 (define-public libgnome-games-support
6018 (package
6019 (name "libgnome-games-support")
6020 (version "1.7.1")
6021 (source (origin
6022 (method url-fetch)
6023 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
6024 (version-major+minor version) "/"
6025 "libgnome-games-support-" version ".tar.xz"))
6026 (sha256
6027 (base32
6028 "11g1r3ppb9v8m3anks9gxf7fv1x38vmjiya3lr7zjjv328pb69d6"))))
6029 (build-system meson-build-system)
6030 (arguments
6031 '(#:glib-or-gtk? #t
6032 #:phases
6033 (modify-phases %standard-phases
6034 (add-before 'check 'pre-check
6035 (lambda _
6036 ;; Tests require a writable HOME.
6037 (setenv "HOME" (getcwd))
6038 #t)))))
6039 (native-inputs
6040 `(("intltool" ,intltool)
6041 ("pkg-config" ,pkg-config)
6042 ("vala" ,vala)))
6043 (propagated-inputs
6044 ;; Required by libgnome-games-support-1.0.pc
6045 `(("gtk+" ,gtk+)
6046 ("libgee" ,libgee)))
6047 (home-page "https://www.gnome.org/")
6048 (synopsis "Useful functionality shared among GNOME games")
6049 (description
6050 "libgnome-games-support is a small library intended for internal use by
6051 GNOME Games, but it may be used by others.")
6052 (license license:lgpl3+)))
6053
6054 (define-public gnome-klotski
6055 (package
6056 (name "gnome-klotski")
6057 (version "3.34.0")
6058 (source (origin
6059 (method url-fetch)
6060 (uri (string-append "mirror://gnome/sources/" name "/"
6061 (version-major+minor version) "/"
6062 name "-" version ".tar.xz"))
6063 (sha256
6064 (base32
6065 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
6066 (build-system meson-build-system)
6067 (arguments
6068 '(#:glib-or-gtk? #t
6069 #:phases
6070 (modify-phases %standard-phases
6071 (add-after 'unpack 'skip-gtk-update-icon-cache
6072 ;; Don't create 'icon-theme.cache'.
6073 (lambda _
6074 (substitute* "build-aux/meson_post_install.py"
6075 (("gtk-update-icon-cache") (which "true")))
6076 #t)))))
6077 (native-inputs
6078 `(("desktop-file-utils" ,desktop-file-utils)
6079 ("glib:bin" ,glib "bin") ; for glib-compile-resources
6080 ("intltool" ,intltool)
6081 ("itstool" ,itstool)
6082 ("pkg-config" ,pkg-config)
6083 ("vala" ,vala)
6084 ("xmllint" ,libxml2)))
6085 (inputs
6086 `(("gtk+" ,gtk+)
6087 ("libgnome-games-support" ,libgnome-games-support)
6088 ("librsvg" ,librsvg)))
6089 (home-page "https://wiki.gnome.org/Apps/Klotski")
6090 (synopsis "Sliding block puzzles")
6091 (description
6092 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6093 the patterned block to the area bordered by green markers. To do so, you will
6094 need to slide other blocks out of the way. Complete each puzzle in as few moves
6095 as possible!")
6096 (license license:gpl2+)))
6097
6098 (define-public grilo
6099 (package
6100 (name "grilo")
6101 (version "0.3.12")
6102 (source
6103 (origin
6104 (method url-fetch)
6105 (uri (string-append "mirror://gnome/sources/grilo/"
6106 (version-major+minor version) "/"
6107 "grilo-" version ".tar.xz"))
6108 (sha256
6109 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
6110 (build-system meson-build-system)
6111 (native-inputs
6112 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
6113 ("intltool" ,intltool)
6114 ("pkg-config" ,pkg-config)
6115 ("gobject-introspection" ,gobject-introspection)
6116 ("gtk-doc" ,gtk-doc/stable)
6117 ("vala" ,vala)))
6118 (inputs
6119 `(("cyrus-sasl" ,cyrus-sasl)
6120 ("glib" ,glib)
6121 ("gtk+" ,gtk+)
6122 ("libxml2" ,libxml2)
6123 ("liboauth" ,liboauth)
6124 ("libsoup" ,libsoup)
6125 ("totem-pl-parser" ,totem-pl-parser)))
6126 (native-search-paths
6127 (list (search-path-specification
6128 (variable "GRL_PLUGIN_PATH")
6129 (files (list (string-append "lib/grilo-"
6130 (version-major+minor version)))))))
6131 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6132 (synopsis "Framework for discovering and browsing media")
6133 (description
6134 "Grilo is a framework focused on making media discovery and browsing easy
6135 for application developers.")
6136 (license license:lgpl2.1+)))
6137
6138 (define-public grilo-plugins
6139 (package
6140 (name "grilo-plugins")
6141 (version "0.3.11")
6142 (source
6143 (origin
6144 (method url-fetch)
6145 (uri (string-append "mirror://gnome/sources/" name "/"
6146 (version-major+minor version) "/"
6147 name "-" version ".tar.xz"))
6148 (sha256
6149 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
6150 (build-system meson-build-system)
6151 (native-inputs
6152 `(("gettext" ,gettext-minimal)
6153 ("glib:bin" ,glib "bin")
6154 ("gtk+:bin" ,gtk+ "bin")
6155 ("itstool" ,itstool)
6156 ("pkg-config" ,pkg-config)))
6157 ;; TODO: ahavi, gstreamer
6158 (inputs
6159 `(("grilo" ,grilo)
6160 ;("gmime" ,gmime) ; unused
6161 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6162 ("gom" ,gom)
6163 ;("gssdp" ,gssdp) ; unused
6164 ;("gupnp" ,gupnp) ; unused
6165 ;("gupnp-av" ,gupnp-av) ; unused
6166 ("json-glib" ,json-glib)
6167 ("avahi" ,avahi)
6168 ("libgdata" ,libgdata)
6169 ("libmediaart" ,libmediaart)
6170 ;("librest" ,rest) ; unused
6171 ("libsoup" ,libsoup)
6172 ("totam-pl-parser" ,totem-pl-parser)
6173 ("tracker" ,tracker))) ; unused because it's too old
6174 (arguments
6175 `(#:glib-or-gtk? #t
6176 ;;Disable lua-factory as it needs missing dependencies
6177 #:configure-flags '("-Denable-lua-factory=no")))
6178 (home-page "https://live.gnome.org/Grilo")
6179 (synopsis "Plugins for the Grilo media discovery library")
6180 (description
6181 "Grilo is a framework focused on making media discovery and browsing easy
6182 for application developers. This package provides plugins for common media
6183 discovery protocols.")
6184 (license license:lgpl2.1+)))
6185
6186 (define-public totem
6187 (package
6188 (name "totem")
6189 (version "3.38.1")
6190 (source
6191 (origin
6192 (method url-fetch)
6193 (uri (string-append "mirror://gnome/sources/totem/"
6194 (version-major+minor version) "/"
6195 "totem-" version ".tar.xz"))
6196 (sha256
6197 (base32 "02510lvzvxvmpcs64k6sqix8ysl7sihhhwvp0vmfv7521ryczylg"))))
6198 (build-system meson-build-system)
6199 (native-inputs
6200 `(("pkg-config" ,pkg-config)
6201 ("desktop-file-utils" ,desktop-file-utils)
6202 ("gettext" ,gettext-minimal)
6203 ("gobject-introspection" ,gobject-introspection)
6204 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
6205 ("itstool" ,itstool)
6206 ("xmllint" ,libxml2)
6207 ("xorg-server" ,xorg-server-for-tests)))
6208 (propagated-inputs
6209 `(("dconf" ,dconf)))
6210 (inputs
6211 `(("gtk+" ,gtk+)
6212 ("gdk-pixbuf" ,gdk-pixbuf)
6213 ("atk" ,atk)
6214 ("cairo" ,cairo)
6215 ("dbus-glib" ,dbus-glib)
6216 ("clutter" ,clutter)
6217 ("clutter-gtk" ,clutter-gtk)
6218 ("clutter-gst" ,clutter-gst)
6219 ("xorgproto" ,xorgproto)
6220 ("libxxf86vm" ,libxxf86vm)
6221 ("libxtst" ,libxtst)
6222 ("libxrandr" ,libxrandr)
6223 ("libxml2" ,libxml2)
6224 ("libsoup" ,libsoup)
6225 ("libpeas" ,libpeas)
6226 ("librsvg" ,librsvg)
6227 ("lirc" ,lirc)
6228 ("gnome-desktop" ,gnome-desktop)
6229 ("gstreamer" ,gstreamer)
6230 ("gst-plugins-base" ,gst-plugins-base)
6231 ("gst-plugins-good" ,gst-plugins-good)
6232 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6233 ("adwaita-icon-theme" ,adwaita-icon-theme)
6234 ("python" ,python)
6235 ("python-pygobject" ,python-pygobject)
6236 ("totem-pl-parser" ,totem-pl-parser)
6237 ("grilo" ,grilo)
6238 ("grilo-plugins" ,grilo-plugins)
6239 ("vala" ,vala)))
6240 (arguments
6241 `(#:glib-or-gtk? #t
6242
6243 ;; Disable automatic GStreamer plugin installation via PackageKit and
6244 ;; all that.
6245 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6246
6247 ;; Do not build .a files for the plugins, it's
6248 ;; completely useless. This saves 2 MiB.
6249 "--default-library" "shared")
6250 #:phases
6251 (modify-phases %standard-phases
6252 (add-after 'unpack 'skip-gtk-update-icon-cache
6253 ;; Don't create 'icon-theme.cache'.
6254 (lambda _
6255 (substitute* "meson_post_install.py"
6256 (("gtk-update-icon-cache") "true"))
6257 #t))
6258 (add-before
6259 'install 'disable-cache-generation
6260 (lambda _
6261 (setenv "DESTDIR" "/")
6262 #t))
6263 (add-before
6264 'check 'pre-check
6265 (lambda _
6266 ;; Tests require a running X server.
6267 (system "Xvfb :1 &")
6268 (setenv "DISPLAY" ":1")
6269 #t))
6270 (add-after
6271 'install 'wrap-totem
6272 (lambda* (#:key inputs outputs #:allow-other-keys)
6273 (let ((out (assoc-ref outputs "out"))
6274 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6275 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6276 (wrap-program (string-append out "/bin/totem")
6277 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6278 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6279 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6280 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
6281 #t)))))
6282 (home-page "https://wiki.gnome.org/Apps/Videos")
6283 (synopsis "Simple media player for GNOME based on GStreamer")
6284 (description "Totem is a simple yet featureful media player for GNOME
6285 which can read a large number of file formats.")
6286 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6287 ;; to be used and distributed together with GStreamer and Totem. See
6288 ;; file://COPYING in the source distribution for details.
6289 (license license:gpl2+)))
6290
6291 (define-public rhythmbox
6292 (package
6293 (name "rhythmbox")
6294 (version "3.4.4")
6295 (source (origin
6296 (method url-fetch)
6297 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6298 (version-major+minor version) "/"
6299 "rhythmbox-" version ".tar.xz"))
6300 (sha256
6301 (base32
6302 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6303 (build-system glib-or-gtk-build-system)
6304 (arguments
6305 `(#:configure-flags
6306 (list "--enable-lirc"
6307 "--enable-python"
6308 "--enable-vala"
6309 "--with-brasero"
6310 "--with-gudev"
6311 "--with-libsecret")
6312 #:phases
6313 (modify-phases %standard-phases
6314 (add-after
6315 'install 'wrap-rhythmbox
6316 (lambda* (#:key inputs outputs #:allow-other-keys)
6317 (let ((out (assoc-ref outputs "out"))
6318 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6319 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6320 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6321 (python-path (getenv "PYTHONPATH")))
6322 (wrap-program (string-append out "/bin/rhythmbox")
6323 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6324 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6325 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6326 `("PYTHONPATH" ":" prefix (,python-path))))
6327 #t)))))
6328 (propagated-inputs
6329 `(("dconf" ,dconf)))
6330 (native-inputs
6331 `(("itstool" ,itstool)
6332 ("intltool" ,intltool)
6333 ("glib" ,glib "bin")
6334 ("gobject-introspection" ,gobject-introspection)
6335 ("desktop-file-utils" ,desktop-file-utils)
6336 ("pkg-config" ,pkg-config)
6337 ("xmllint" ,libxml2)))
6338 (inputs
6339 `(("json-glib" ,json-glib)
6340 ("tdb" ,tdb)
6341 ("gnome-desktop" ,gnome-desktop)
6342 ("python" ,python)
6343 ("python-pygobject" ,python2-pygobject)
6344 ("vala" ,vala)
6345 ("gmime" ,gmime)
6346 ("adwaita-icon-theme" ,adwaita-icon-theme)
6347 ("grilo" ,grilo)
6348 ("grilo-plugins" ,grilo-plugins)
6349 ("gstreamer" ,gstreamer)
6350 ("gst-plugins-base" ,gst-plugins-base)
6351 ("gst-plugins-good" ,gst-plugins-good)
6352 ("totem-pl-parser" ,totem-pl-parser)
6353 ("libgudev" ,libgudev)
6354 ;;("libmtp" ,libmtp) FIXME: Not detected
6355 ("libsecret" ,libsecret)
6356 ("libsoup" ,libsoup)
6357 ("libnotify" ,libnotify)
6358 ("libpeas" ,libpeas)
6359 ("lirc" ,lirc)
6360 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6361 ;;("clutter" ,clutter)
6362 ;;("clutter-gtk" ,clutter-gtk)
6363 ;;("clutter-gst" ,clutter-gst)
6364 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6365 ("atk" ,atk)
6366 ("pango" ,pango)
6367 ("gtk+" ,gtk+)
6368 ;; TODO:
6369 ;; * libgpod
6370 ;; * mx
6371 ("brasero" ,brasero)))
6372 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6373 (synopsis "Music player for GNOME")
6374 (description "Rhythmbox is a music playing application for GNOME. It
6375 supports playlists, song ratings, and any codecs installed through gstreamer.")
6376 (license license:gpl2+)))
6377
6378 (define-public eog
6379 (package
6380 (name "eog")
6381 (version "3.34.1")
6382 (source (origin
6383 (method url-fetch)
6384 (uri (string-append "mirror://gnome/sources/" name "/"
6385 (version-major+minor version) "/"
6386 name "-" version ".tar.xz"))
6387 (sha256
6388 (base32
6389 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
6390 (build-system meson-build-system)
6391 (arguments
6392 `(#:configure-flags
6393 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6394 (list (string-append "-Dc_link_args=-Wl,-rpath="
6395 (assoc-ref %outputs "out") "/lib/eog"))
6396 #:phases
6397 (modify-phases %standard-phases
6398 (add-after 'unpack 'skip-gtk-update-icon-cache
6399 ;; Don't create 'icon-theme.cache'.
6400 (lambda _
6401 (substitute* "meson_post_install.py"
6402 (("gtk-update-icon-cache") "true"))
6403 #t))
6404 (add-after 'install 'wrap-eog
6405 (lambda* (#:key outputs #:allow-other-keys)
6406 (let ((out (assoc-ref outputs "out"))
6407 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6408 (wrap-program (string-append out "/bin/eog")
6409 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6410 #t)))))
6411 (propagated-inputs
6412 `(("dconf" ,dconf)))
6413 (native-inputs
6414 `(("intltool" ,intltool)
6415 ("itstool" ,itstool)
6416 ("glib" ,glib "bin")
6417 ("gobject-introspection" ,gobject-introspection)
6418 ("pkg-config" ,pkg-config)
6419 ("xmllint" ,libxml2)))
6420 (inputs
6421 `(("gnome-desktop" ,gnome-desktop)
6422 ("shared-mime-info" ,shared-mime-info)
6423 ("adwaita-icon-theme" ,adwaita-icon-theme)
6424 ("exempi" ,exempi)
6425 ("lcms" ,lcms)
6426 ("libexif" ,libexif)
6427 ("libpeas" ,libpeas)
6428 ("libjpeg" ,libjpeg-turbo)
6429 ("librsvg" ,librsvg-next)
6430 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6431 ("gtk+" ,gtk+)))
6432 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6433 (synopsis "GNOME image viewer")
6434 (description "Eye of GNOME is the GNOME image viewer. It
6435 supports image conversion, rotation, and slideshows.")
6436 (license license:gpl2+)))
6437
6438 (define-public eog-plugins
6439 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6440 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6441 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6442 ;; 'XDG_DATA_DIRS' appropriately set.
6443 (package
6444 (name "eog-plugins")
6445 (version "3.26.4")
6446 (source (origin
6447 (method url-fetch)
6448 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6449 (version-major+minor version) "/"
6450 "eog-plugins-" version ".tar.xz"))
6451 (sha256
6452 (base32
6453 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6454 (build-system gnu-build-system)
6455 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6456 (synopsis "Extensions for the Eye of GNOME image viewer")
6457 (native-inputs
6458 `(("pkg-config" ,pkg-config)
6459 ("gettext" ,gettext-minimal)))
6460 (inputs
6461 `(("eog" ,eog)
6462 ("glib" ,glib)
6463 ("gtk+" ,gtk+)
6464 ("libpeas" ,libpeas)
6465 ("libexif" ,libexif)
6466 ("libchamplain" ,libchamplain)))
6467 (description
6468 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6469 notably:
6470
6471 @itemize
6472 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6473 @item @dfn{Map}, which displays a map of where the picture was taken on the
6474 side panel;
6475 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6476 @end itemize\n")
6477
6478 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6479 ;; long suspicious byte stream that goes to a
6480 ;; ".gresource.eog_postasa_plugin" ELF section.
6481 (license license:gpl2+)))
6482
6483 (define-public libgudev
6484 (package
6485 (name "libgudev")
6486 (version "236")
6487 (source (origin
6488 (method url-fetch)
6489 (uri (string-append "mirror://gnome/sources/" name "/"
6490 version "/" name "-" version ".tar.xz"))
6491 (sha256
6492 (base32
6493 "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
6494 (build-system meson-build-system)
6495 (native-inputs
6496 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6497 ("gobject-introspection" ,gobject-introspection)
6498 ("pkg-config" ,pkg-config)))
6499 (propagated-inputs
6500 `(("glib" ,glib) ; in Requires of gudev-1.0.pc
6501 ("eudev" ,eudev))) ; in Requires.private of gudev-1.0.pc
6502 (inputs
6503 `(("udev" ,eudev)))
6504 (home-page "https://wiki.gnome.org/Projects/libgudev")
6505 (synopsis "GObject bindings for libudev")
6506 (description
6507 "This library provides GObject bindings for libudev. It was originally
6508 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6509 (license license:lgpl2.1+)))
6510
6511 (define-public gvfs
6512 (package
6513 (name "gvfs")
6514 (version "1.40.2")
6515 (source (origin
6516 (method url-fetch)
6517 (uri (string-append "mirror://gnome/sources/gvfs/"
6518 (version-major+minor version) "/"
6519 "gvfs-" version ".tar.xz"))
6520 (sha256
6521 (base32
6522 "07lpcfric3h0302n9b1pwa38mjb76r9s98kg2867y2d1qvzfivxx"))
6523 ;; This patch may be removed when upgrading to version 1.46.x.
6524 (patches
6525 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6526 (build-system meson-build-system)
6527 (arguments
6528 '(#:glib-or-gtk? #t
6529 #:configure-flags
6530 (list "-Dsystemduserunitdir=no"
6531 "-Dtmpfilesdir=no"
6532 ;; Otherwise, the RUNPATH will lack the final path component.
6533 (string-append "-Dc_link_args=-Wl,-rpath="
6534 (assoc-ref %outputs "out") "/lib/gvfs"))))
6535 (native-inputs
6536 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6537 ("gettext" ,gettext-minimal)
6538 ("gtk-doc" ,gtk-doc/stable)
6539 ("pkg-config" ,pkg-config)
6540 ("xsltproc" ,libxslt)))
6541 (inputs
6542 `(("avahi" ,avahi)
6543 ("docbook-xml" ,docbook-xml-4.2)
6544 ("docbook-xsl" ,docbook-xsl)
6545 ("dbus" ,dbus)
6546 ("elogind" ,elogind)
6547 ("fuse" ,fuse)
6548 ("gcr" ,gcr)
6549 ("glib" ,glib)
6550 ("gnome-online-accounts" ,gnome-online-accounts)
6551 ("libarchive" ,libarchive)
6552 ("libbluray" ,libbluray)
6553 ("libcap" ,libcap)
6554 ("libcdio-paranoia" ,libcdio-paranoia)
6555 ("libgcrypt" ,libgcrypt)
6556 ("libgdata" ,libgdata)
6557 ("libgphoto2" ,libgphoto2)
6558 ("libgudev" ,libgudev)
6559 ("libimobiledevice" ,libimobiledevice)
6560 ("libmtp" ,libmtp)
6561 ("libnfs" ,libnfs)
6562 ("libsecret" ,libsecret)
6563 ("libsmbclient" ,samba)
6564 ("libsoup" ,libsoup)
6565 ("libxml2" ,libxml2)
6566 ("openssh" ,openssh)
6567 ("polkit" ,polkit)
6568 ("udisks" ,udisks)))
6569 ;; CVE-2019-{12447,12448,12449} are fixed in the 1.40.2 release.
6570 (properties '((lint-hidden-cve . ("CVE-2019-12447"
6571 "CVE-2019-12448"
6572 "CVE-2019-12449"))))
6573 (home-page "https://wiki.gnome.org/gvfs/")
6574 (synopsis "Userspace virtual file system for GIO")
6575 (description
6576 "GVFS is a userspace virtual file system designed to work with the I/O
6577 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6578 to all applications using the GIO API. It also supports exposing the GVFS
6579 mounts to non-GIO applications using FUSE.
6580
6581 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6582 DAV, and others.")
6583 (license license:lgpl2.0+)))
6584
6585 (define-public gusb
6586 (package
6587 (name "gusb")
6588 (version "0.3.5")
6589 (source (origin
6590 (method git-fetch)
6591 (uri (git-reference
6592 (url "https://github.com/hughsie/libgusb")
6593 (commit version)))
6594 (file-name (git-file-name name version))
6595 (sha256
6596 (base32
6597 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6598 (build-system meson-build-system)
6599 (native-inputs
6600 `(("gobject-introspection" ,gobject-introspection)
6601 ("pkg-config" ,pkg-config)
6602 ("vala" ,vala)
6603 ("gtk-doc" ,gtk-doc/stable)))
6604 (propagated-inputs
6605 ;; Both of these are required by gusb.pc.
6606 `(("glib" ,glib)
6607 ("libusb" ,libusb)))
6608 (arguments
6609 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6610 (home-page "https://github.com/hughsie/libgusb")
6611 (synopsis "GLib binding for libusb1")
6612 (description
6613 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6614 asynchronous control, bulk and interrupt transfers with proper cancellation
6615 and integration into a mainloop. This makes it easy to integrate low level
6616 USB transfers with your high-level application or system daemon.")
6617 (license license:lgpl2.1+)))
6618
6619 (define-public simple-scan
6620 (package
6621 (name "simple-scan")
6622 (version "3.38.2")
6623 (source
6624 (origin
6625 (method url-fetch)
6626 (uri (string-append "mirror://gnome/sources/simple-scan/"
6627 (version-major+minor version) "/"
6628 "simple-scan-" version ".tar.xz"))
6629 (sha256
6630 (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8"))))
6631 (build-system meson-build-system)
6632 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6633 (arguments
6634 '(#:glib-or-gtk? #t))
6635 (inputs
6636 `(("gtk" ,gtk+)
6637 ("zlib" ,zlib)
6638 ("cairo" ,cairo)
6639 ("colord" ,colord)
6640 ("gdk-pixbuf" ,gdk-pixbuf)
6641 ("gusb" ,gusb)
6642 ("libsane" ,sane-backends)))
6643 (native-inputs
6644 `(("gettext" ,gettext-minimal)
6645 ("itstool" ,itstool)
6646 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6647 ("pkg-config" ,pkg-config)
6648 ("vala" ,vala)
6649 ("xmllint" ,libxml2)))
6650 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6651 (synopsis "Document and image scanner")
6652 (description
6653 "Document Scanner is an easy-to-use application that lets you connect your
6654 scanner and quickly capture images and documents in an appropriate format. It
6655 supports any scanner for which a suitable SANE driver is available, which is
6656 almost all of them.")
6657 (license license:gpl3+)))
6658
6659 (define-public eolie
6660 (package
6661 (name "eolie")
6662 (version "0.9.101")
6663 (source (origin
6664 (method url-fetch)
6665 (uri (string-append "https://adishatz.org/eolie/eolie-"
6666 version ".tar.xz"))
6667 (sha256
6668 (base32
6669 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6670 (build-system meson-build-system)
6671 (arguments
6672 `(#:glib-or-gtk? #t
6673 #:phases
6674 (modify-phases %standard-phases
6675 (add-after 'unpack 'skip-gtk-update-icon-cache
6676 ;; Don't create 'icon-theme.cache'.
6677 (lambda _
6678 (substitute* "meson_post_install.py"
6679 (("gtk-update-icon-cache") "true"))
6680 #t))
6681 (add-after 'wrap 'wrap-more
6682 (lambda* (#:key inputs outputs #:allow-other-keys)
6683 (let* ((out (assoc-ref outputs "out"))
6684 ;; These libraries must be on LD_LIBRARY_PATH.
6685 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6686 "atk" "gtk+" "gsettings-desktop-schemas"
6687 "gobject-introspection"))
6688 (path (string-join
6689 (map (lambda (lib)
6690 (string-append (assoc-ref inputs lib) "/lib"))
6691 libs)
6692 ":")))
6693 (wrap-program (string-append out "/bin/eolie")
6694 `("LD_LIBRARY_PATH" ":" prefix (,path))
6695 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6696 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6697 #t)))))
6698 (native-inputs
6699 `(("intltool" ,intltool)
6700 ("itstool" ,itstool)
6701 ("pkg-config" ,pkg-config)
6702 ("python" ,python)
6703 ("glib:bin" ,glib "bin")))
6704 (inputs
6705 `(("gobject-introspection" ,gobject-introspection)
6706 ("glib-networking" ,glib-networking)
6707 ("cairo" ,cairo)
6708 ("gtk+" ,gtk+)
6709 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6710 ("python" ,python-wrapper)
6711 ("python-dateutil" ,python-dateutil)
6712 ("python-pyfxa" ,python-pyfxa)
6713 ("python-pygobject" ,python-pygobject)
6714 ("python-pycairo" ,python-pycairo)
6715 ("python-pycrypto" ,python-pycrypto)
6716 ("libhandy" ,libhandy)
6717 ("libsecret" ,libsecret)
6718 ("gtkspell3" ,gtkspell3)
6719 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6720 ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
6721 ("webkitgtk" ,webkitgtk)))
6722 (home-page "https://wiki.gnome.org/Apps/Eolie")
6723 (synopsis "Web browser for GNOME")
6724 (description
6725 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6726 a secret password store, an adblocker, and a modern UI.")
6727 (license license:gpl3+)))
6728
6729 (define-public epiphany
6730 (package
6731 (name "epiphany")
6732 (version "3.34.4")
6733 (source (origin
6734 (method url-fetch)
6735 (uri (string-append "mirror://gnome/sources/epiphany/"
6736 (version-major+minor version) "/"
6737 "epiphany-" version ".tar.xz"))
6738 (sha256
6739 (base32
6740 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6741
6742 (build-system meson-build-system)
6743 (arguments
6744 '(#:glib-or-gtk? #t
6745 #:phases
6746 (modify-phases %standard-phases
6747 (add-after 'unpack 'skip-gtk-update-icon-cache
6748 ;; Don't create 'icon-theme.cache'.
6749 (lambda _
6750 (substitute* "post_install.py"
6751 (("gtk-update-icon-cache") "true"))
6752 #t))
6753 (add-after 'unpack 'disable-failing-tests
6754 (lambda _
6755 (substitute* "tests/meson.build"
6756 ;; embed_shell fails, because webkitgtk apparently no longer supports
6757 ;; overriding the ftp schema
6758 ;; web_app_utils fails due to missing network access
6759 (("(embed_shell|web_app_utils)_test,")
6760 "find_program('sh'), args: ['-c', 'exit 77'],"))
6761 #t))
6762 (add-before 'check 'pre-check
6763 (lambda _
6764 ;; Tests require a running X server.
6765 (system "Xvfb :1 &")
6766 (setenv "DISPLAY" ":1")
6767 #t)))
6768 #:configure-flags
6769 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6770 (list (string-append "-Dc_link_args=-Wl,-rpath="
6771 (assoc-ref %outputs "out") "/lib/epiphany"))))
6772 (propagated-inputs
6773 `(("dconf" ,dconf)))
6774 (native-inputs
6775 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6776 ("glib:bin" ,glib "bin") ; for glib-mkenums
6777 ("intltool" ,intltool)
6778 ("itstool" ,itstool)
6779 ("pkg-config" ,pkg-config)
6780 ("xmllint" ,libxml2)
6781 ("xorg-server" ,xorg-server-for-tests)))
6782 (inputs
6783 `(("avahi" ,avahi)
6784 ("gcr" ,gcr)
6785 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6786 ("glib-networking" ,glib-networking)
6787 ("gnome-desktop" ,gnome-desktop)
6788 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6789 ("json-glib" ,json-glib)
6790 ("iso-codes" ,iso-codes)
6791 ("libdazzle" ,libdazzle)
6792 ("libnotify" ,libnotify)
6793 ("libsecret" ,libsecret)
6794 ("libxslt" ,libxslt)
6795 ("nettle" ,nettle) ; for hogweed
6796 ("sqlite" ,sqlite)
6797 ("webkitgtk" ,webkitgtk)))
6798 (home-page "https://wiki.gnome.org/Apps/Web")
6799 (synopsis "GNOME web browser")
6800 (description
6801 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6802 principles are simplicity and standards compliance.")
6803 (license license:gpl2+)))
6804
6805 (define-public d-feet
6806 (package
6807 (name "d-feet")
6808 (version "0.3.14")
6809 (source (origin
6810 (method url-fetch)
6811 (uri (string-append "mirror://gnome/sources/" name "/"
6812 (version-major+minor version) "/"
6813 name "-" version ".tar.xz"))
6814 (sha256
6815 (base32
6816 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6817 (build-system glib-or-gtk-build-system)
6818 (arguments
6819 '(#:out-of-source? #f ; tests need to run in the source directory.
6820 #:phases
6821 (modify-phases %standard-phases
6822 (add-before
6823 'check 'pre-check
6824 (lambda _
6825 ;; The test suite requires a running X server.
6826 (system "Xvfb :1 &")
6827 (setenv "DISPLAY" ":1")
6828 ;; Don't fail on missing '/etc/machine-id'.
6829 (setenv "DBUS_FATAL_WARNINGS" "0")
6830 ;; tests.py and window.py don't meet E402:
6831 ;; E402 module level import not at top of file
6832 (substitute* "src/tests/Makefile"
6833 (("--ignore=E123") "--ignore=E123,E402"))
6834 #t))
6835 (add-after
6836 'install 'wrap-program
6837 (lambda* (#:key outputs #:allow-other-keys)
6838 (let ((prog (string-append (assoc-ref outputs "out")
6839 "/bin/d-feet")))
6840 (wrap-program prog
6841 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6842 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6843 #t))))))
6844 (native-inputs
6845 `(("intltool" ,intltool)
6846 ("itstool" ,itstool)
6847 ("pkg-config" ,pkg-config)
6848 ("python-pep8" ,python-pep8)
6849 ("xmllint" ,libxml2)
6850 ("xorg-server" ,xorg-server-for-tests)))
6851 (inputs
6852 `(("gobject-introspection" ,gobject-introspection)
6853 ("gtk+" ,gtk+)
6854 ("python" ,python-wrapper)
6855 ("hicolor-icon-theme" ,hicolor-icon-theme)
6856 ("python-pygobject" ,python-pygobject)))
6857 (home-page "https://wiki.gnome.org/Apps/DFeet")
6858 (synopsis "D-Bus debugger")
6859 (description
6860 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6861 of running programs and invoke methods on those interfaces.")
6862 (license license:gpl2+)))
6863
6864 (define-public yelp-xsl
6865 (package
6866 (name "yelp-xsl")
6867 (version "3.34.2")
6868 (source
6869 (origin
6870 (method url-fetch)
6871 (uri
6872 (string-append "mirror://gnome/sources/" name "/"
6873 (version-major+minor version) "/"
6874 name "-" version ".tar.xz"))
6875 (sha256
6876 (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6877 (build-system gnu-build-system)
6878 (native-inputs
6879 `(("gettext-minimal" ,gettext-minimal)
6880 ("itstool" ,itstool)
6881 ("xmllint" ,libxml2)))
6882 (synopsis "XSL stylesheets for Yelp")
6883 (description "Yelp-XSL is a collection of programs and data files to help
6884 you build, maintain, and distribute documentation. It provides XSLT stylesheets
6885 that can be built upon for help viewers and publishing systems. These
6886 stylesheets output JavaScript and CSS content, and reference images
6887 provided by yelp-xsl. It also redistributes copies of the jQuery and
6888 jQuery.Syntax JavaScript libraries.")
6889 (home-page "https://wiki.gnome.org/Apps/Yelp")
6890 (license
6891 (list
6892 ;; XSLT
6893 license:gpl2+
6894 ;; Images
6895 license:lgpl2.1+
6896 ;; JavaScript
6897 license:expat))))
6898
6899 (define-public yelp
6900 (package
6901 (name "yelp")
6902 (version "3.32.2")
6903 (source (origin
6904 (method url-fetch)
6905 (uri (string-append "mirror://gnome/sources/" name "/"
6906 (version-major+minor version) "/"
6907 name "-" version ".tar.xz"))
6908 (sha256
6909 (base32
6910 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6911 (build-system glib-or-gtk-build-system)
6912 (native-inputs
6913 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6914 ("intltool" ,intltool)
6915 ("itstool" ,itstool)
6916 ("pkg-config" ,pkg-config)))
6917 (propagated-inputs
6918 `(("dconf" ,dconf)))
6919 (inputs
6920 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6921 ("libxslt" ,libxslt)
6922 ("sqlite" ,sqlite)
6923 ("webkitgtk" ,webkitgtk)
6924 ("yelp-xsl" ,yelp-xsl)))
6925 (home-page "https://wiki.gnome.org/Apps/Yelp")
6926 (synopsis "GNOME help browser")
6927 (description
6928 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6929 man, info, and HTML documents. It can locate documents according to the
6930 freedesktop.org help system specification.")
6931 (license license:gpl2+)))
6932
6933 (define-public yelp-tools
6934 (package
6935 (name "yelp-tools")
6936 (version "3.32.2")
6937 (source
6938 (origin
6939 (method url-fetch)
6940 (uri
6941 (string-append "mirror://gnome/sources/" name "/"
6942 (version-major+minor version) "/"
6943 name "-" version ".tar.xz"))
6944 (sha256
6945 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6946 (build-system gnu-build-system)
6947 (native-inputs
6948 `(("pkg-config" ,pkg-config)))
6949 (inputs
6950 `(("yelp-xsl" ,yelp-xsl)))
6951 (propagated-inputs
6952 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6953 `(("itstool" ,itstool)
6954 ("xmllint" ,libxml2)
6955 ("xsltproc" ,libxslt)))
6956 (synopsis "Yelp documentation tools")
6957 (description
6958 "Yelp-tools is a collection of scripts and build utilities to help create,
6959 manage, and publish documentation for Yelp and the web. Most of the heavy
6960 lifting is done by packages like yelp-xsl and itstool. This package just
6961 wraps things up in a developer-friendly way.")
6962 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6963 (license license:gpl2+)))
6964
6965 (define-public libgee
6966 (package
6967 (name "libgee")
6968 (version "0.20.3")
6969 (source (origin
6970 (method url-fetch)
6971 (uri (string-append "mirror://gnome/sources/libgee/"
6972 (version-major+minor version) "/"
6973 "libgee-" version ".tar.xz"))
6974 (sha256
6975 (base32
6976 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6977 (build-system gnu-build-system)
6978 (arguments
6979 `(#:phases
6980 (modify-phases %standard-phases
6981 (add-after 'unpack 'fix-introspection-install-dir
6982 (lambda* (#:key outputs #:allow-other-keys)
6983 (let ((out (assoc-ref outputs "out")))
6984 (substitute* "gee/Makefile.in"
6985 (("@INTROSPECTION_GIRDIR@")
6986 (string-append out "/share/gir-1.0/"))
6987 (("@INTROSPECTION_TYPELIBDIR@")
6988 (string-append out "/lib/girepository-1.0/")))))))))
6989 (native-inputs
6990 `(("glib" ,glib "bin")
6991 ("pkg-config" ,pkg-config)))
6992 (inputs
6993 `(("glib" ,glib)
6994 ("gobject-introspection" ,gobject-introspection)))
6995 (home-page "https://wiki.gnome.org/Projects/Libgee")
6996 (synopsis "GObject collection library")
6997 (description
6998 "Libgee is a utility library providing GObject-based interfaces and
6999 classes for commonly used data structures.")
7000 (license license:lgpl2.1+)))
7001
7002 (define-public gexiv2
7003 (package
7004 (name "gexiv2")
7005 (version "0.12.2")
7006 (source (origin
7007 (method url-fetch)
7008 (uri (string-append "mirror://gnome/sources/" name "/"
7009 (version-major+minor version) "/"
7010 name "-" version ".tar.xz"))
7011 (sha256
7012 (base32
7013 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
7014 (build-system meson-build-system)
7015 (native-inputs
7016 `(("gcr" ,gcr)
7017 ("glib" ,glib "bin")
7018 ("pkg-config" ,pkg-config)
7019 ("vala" ,vala)))
7020 (propagated-inputs
7021 ;; Listed in "Requires" section of gexiv2.pc
7022 `(("exiv2" ,exiv2)))
7023 (inputs
7024 `(("glib" ,glib)
7025 ("gobject-introspection" ,gobject-introspection)))
7026 (home-page "https://wiki.gnome.org/Projects/gexiv2")
7027 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
7028 (description
7029 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
7030 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
7031 metadata in photo and video files of various formats.")
7032 (license license:gpl2+)))
7033
7034 (define-public shotwell
7035 (package
7036 (name "shotwell")
7037 (version "0.30.12")
7038 (source (origin
7039 (method url-fetch)
7040 (uri (string-append "mirror://gnome/sources/shotwell/"
7041 (version-major+minor version) "/"
7042 "shotwell-" version ".tar.xz"))
7043 (sha256
7044 (base32
7045 "1h5crjq59lqi8f8mdkadzi8pc3i9i2ik4lsx2nrhzq486fzdfhw6"))))
7046 (build-system meson-build-system)
7047 (arguments
7048 '(#:glib-or-gtk? #t
7049 #:phases
7050 (modify-phases %standard-phases
7051 (add-after 'unpack 'skip-gtk-update-icon-cache
7052 (lambda _
7053 (substitute* "build-aux/meson/postinstall.py"
7054 (("gtk-update-icon-cache") (which "true"))
7055 (("update-desktop-database") (which "true")))
7056 #t)))))
7057 (propagated-inputs
7058 `(("dconf" ,dconf)))
7059 (native-inputs
7060 `(("gettext" ,gettext-minimal)
7061 ("glib:bin" ,glib "bin")
7062 ("itstool" ,itstool)
7063 ("pkg-config" ,pkg-config)
7064 ("vala" ,vala)))
7065 (inputs
7066 `(("gcr" ,gcr)
7067 ("gexiv2" ,gexiv2)
7068 ("gst-plugins-base" ,gst-plugins-base)
7069 ("gstreamer" ,gstreamer)
7070 ("json-glib" ,json-glib)
7071 ("libgdata" ,libgdata)
7072 ("libgee" ,libgee)
7073 ("libgphoto2" ,libgphoto2)
7074 ("libgudev" ,libgudev)
7075 ("libraw" ,libraw)
7076 ("libsoup" ,libsoup)
7077 ("libxml2" ,libxml2)
7078 ("sqlite" ,sqlite)
7079 ("webkitgtk" ,webkitgtk)))
7080 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7081 (synopsis "Photo manager for GNOME 3")
7082 (description
7083 "Shotwell is a digital photo manager designed for the GNOME desktop
7084 environment. It allows you to import photos from disk or camera, organize
7085 them by keywords and events, view them in full-window or fullscreen mode, and
7086 share them with others via social networking and more.")
7087 (license license:lgpl2.1+)))
7088
7089 (define-public file-roller
7090 (package
7091 (name "file-roller")
7092 (version "3.38.0")
7093 (source (origin
7094 (method url-fetch)
7095 (uri (string-append "mirror://gnome/sources/file-roller/"
7096 (version-major+minor version) "/"
7097 "file-roller-" version ".tar.xz"))
7098 (sha256
7099 (base32
7100 "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj"))))
7101 (build-system meson-build-system)
7102 (native-inputs
7103 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7104 ("intltool" ,intltool)
7105 ("itstool" ,itstool)
7106 ("pkg-config" ,pkg-config)
7107 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7108 ("glib:bin" ,glib "bin")))
7109 ;; TODO: Add libnautilus.
7110 (inputs
7111 `(("gtk+" ,gtk+)
7112 ("gdk-pixbuf" ,gdk-pixbuf)
7113 ("json-glib" ,json-glib)
7114 ("libarchive" ,libarchive)
7115 ("libnotify" ,libnotify)
7116 ("nettle" ,nettle)
7117 ("libxml2" ,libxml2)))
7118 (synopsis "Graphical archive manager for GNOME")
7119 (description "File Roller is an archive manager for the GNOME desktop
7120 environment that allows users to view, unpack, and create compressed archives
7121 such as gzip tarballs.")
7122 (home-page "http://fileroller.sourceforge.net/")
7123 (license license:gpl2+)))
7124
7125 (define-public gnome-session
7126 (package
7127 (name "gnome-session")
7128 (version "3.34.2")
7129 (source (origin
7130 (method url-fetch)
7131 (uri (string-append "mirror://gnome/sources/" name "/"
7132 (version-major+minor version) "/"
7133 name "-" version ".tar.xz"))
7134 (sha256
7135 (base32
7136 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
7137 (arguments
7138 '(#:glib-or-gtk? #t
7139 #:phases
7140 (modify-phases %standard-phases
7141 (add-before 'configure 'pre-configure
7142 (lambda* (#:key outputs #:allow-other-keys)
7143 ;; Use elogind instead of systemd.
7144 (substitute* "meson.build"
7145 (("libsystemd-login") "libelogind")
7146 (("and libsystemd_daemon_dep.found.*") ","))
7147 (substitute* "gnome-session/gsm-systemd.c"
7148 (("#include <systemd/sd-login.h>")
7149 "#include <elogind/sd-login.h>"))
7150 ;; Remove uses of the systemd daemon.
7151 (substitute* "gnome-session/gsm-autostart-app.c"
7152 (("#ifdef HAVE_SYSTEMD") "#if 0"))
7153 #t))
7154 (add-after 'install 'wrap-gnome-session
7155 (lambda* (#:key inputs outputs #:allow-other-keys)
7156 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7157 (let ((glib (assoc-ref inputs "glib:bin"))
7158 (out (assoc-ref outputs "out")))
7159 (wrap-program (string-append out "/bin/gnome-session")
7160 `("PATH" ":" prefix (,(string-append glib "/bin"))))
7161 #t))))
7162
7163 #:configure-flags
7164 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7165 "-Dman=false" ; FIXME: disabled because of docbook validation error
7166 "-Dsystemd_journal=false")))
7167 (build-system meson-build-system)
7168 (native-inputs
7169 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7170 ("pkg-config" ,pkg-config)
7171 ("intltool" ,intltool)
7172 ("xsltproc" ,libxslt)
7173 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
7174 ("docbook-xsl" ,docbook-xsl)
7175 ("docbook-xml" ,docbook-xml)
7176 ("xmlto" ,xmlto)))
7177 (inputs
7178 `(("elogind" ,elogind)
7179 ("gnome-desktop" ,gnome-desktop)
7180 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7181 ("gtk+" ,gtk+)
7182 ("json-glib" ,json-glib)
7183 ("libsm" ,libsm)
7184 ("libxcomposite" ,libxcomposite)
7185 ("libxtst" ,libxtst)
7186 ("mesa" ,mesa)
7187 ("upower" ,upower)
7188 ("xtrans" ,xtrans)))
7189 (synopsis "Session manager for GNOME")
7190 (description
7191 "This package contains the GNOME session manager, as well as a
7192 configuration program to choose applications starting on login.")
7193 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7194 (license license:gpl2+)))
7195
7196 (define-public gjs
7197 (package
7198 (name "gjs")
7199 (version "1.58.3")
7200 (source (origin
7201 (method url-fetch)
7202 (uri (string-append "mirror://gnome/sources/" name "/"
7203 (version-major+minor version) "/"
7204 name "-" version ".tar.xz"))
7205 (sha256
7206 (base32
7207 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
7208 (build-system gnu-build-system)
7209 (arguments
7210 '(#:phases
7211 (modify-phases %standard-phases
7212 (add-before
7213 'check 'pre-check
7214 (lambda _
7215 ;; The test suite requires a running X server.
7216 (system "Xvfb :1 &")
7217 (setenv "DISPLAY" ":1")
7218
7219 ;; For the missing /etc/machine-id.
7220 (setenv "DBUS_FATAL_WARNINGS" "0")
7221
7222 ;; Our mozjs-38 package does not compile the required Intl API
7223 ;; support for these failing tests.
7224 (substitute* "installed-tests/js/testLocale.js"
7225 ((".*toBeDefined.*") "")
7226 ((".*expect\\(datestr\\).*") ""))
7227 (substitute* "installed-tests/scripts/testCommandLine.sh"
7228 (("Valentín") "")
7229 (("☭") ""))
7230 #t)))))
7231 (native-inputs
7232 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
7233 ("pkg-config" ,pkg-config)
7234 ("xmllint" ,libxml2)
7235 ;; For testing
7236 ("dbus-launch" ,dbus)
7237 ("dconf" ,dconf) ; required to properly store settings
7238 ("uuidgen" ,util-linux)
7239 ("xvfb" ,xorg-server-for-tests)))
7240 (propagated-inputs
7241 ;; These are all in the Requires.private field of gjs-1.0.pc.
7242 `(("cairo" ,cairo)
7243 ("gobject-introspection" ,gobject-introspection)
7244 ("mozjs" ,mozjs-60)))
7245 (inputs
7246 `(("gtk+" ,gtk+)
7247 ("readline" ,readline)))
7248 (synopsis "Javascript bindings for GNOME")
7249 (home-page "https://live.gnome.org/Gjs")
7250 (description
7251 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7252 javascript engine and the GObject introspection framework.")
7253 (license license:gpl2+)))
7254
7255 (define-public gedit
7256 (package
7257 (name "gedit")
7258 (version "3.34.1")
7259 (source (origin
7260 (method url-fetch)
7261 (uri (string-append "mirror://gnome/sources/" name "/"
7262 (version-major+minor version) "/"
7263 name "-" version ".tar.xz"))
7264 (sha256
7265 (base32
7266 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7267 (build-system meson-build-system)
7268 (arguments
7269 `(#:glib-or-gtk? #t
7270 #:configure-flags
7271 ;; Otherwise, the RUNPATH will lack the final path component.
7272 (list (string-append "-Dc_link_args=-Wl,-rpath="
7273 (assoc-ref %outputs "out") "/lib/gedit"))
7274
7275 ;; XXX: Generated .h files are sometimes used before being built.
7276 #:parallel-build? #f
7277
7278 #:phases
7279 (modify-phases %standard-phases
7280 (add-after 'unpack 'skip-gtk-update-icon-cache
7281 ;; Don't create 'icon-theme.cache'.
7282 (lambda _
7283 (substitute* "build-aux/meson/post_install.py"
7284 (("gtk-update-icon-cache") (which "true")))
7285 #t))
7286 (add-after 'unpack 'patch-libgd-fetch
7287 (lambda* (#:key inputs #:allow-other-keys)
7288 (let ((libgd (assoc-ref inputs "libgd")))
7289 ;; Calling git is unnecessary because libgd is fetched as a
7290 ;; native input to this package.
7291 (substitute* "meson.build"
7292 ((".*git.*") ""))
7293 (copy-recursively libgd "subprojects/libgd")
7294 #t)))
7295 (add-after 'install 'wrap-gedit
7296 (lambda* (#:key inputs outputs #:allow-other-keys)
7297 (let ((out (assoc-ref outputs "out"))
7298 (gtksourceview (assoc-ref inputs "gtksourceview"))
7299 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7300 (python-path (getenv "PYTHONPATH")))
7301 (wrap-program (string-append out "/bin/gedit")
7302 ;; For plugins.
7303 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7304 `("PYTHONPATH" ":" prefix (,python-path))
7305 ;; For language-specs.
7306 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7307 "/share")))))
7308 #t)))))
7309 (propagated-inputs
7310 `(("dconf" ,dconf)))
7311 (native-inputs
7312 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7313 ("intltool" ,intltool)
7314 ("itstool" ,itstool)
7315 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7316 ("gobject-introspection" ,gobject-introspection)
7317 ("libgd"
7318 ,(origin
7319 (method git-fetch)
7320 (uri (git-reference
7321 (url "https://gitlab.gnome.org/GNOME/libgd")
7322 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7323 (file-name (git-file-name "libgd" version))
7324 (sha256
7325 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7326 ("pkg-config" ,pkg-config)))
7327 (inputs
7328 `(("glib" ,glib)
7329 ("gspell" ,gspell)
7330 ("gtk+" ,gtk+)
7331 ("gtksourceview" ,gtksourceview)
7332 ("libpeas" ,libpeas)
7333 ("libxml2" ,libxml2)
7334 ("iso-codes" ,iso-codes)
7335 ("python-pygobject" ,python-pygobject)
7336 ("python" ,python)
7337 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7338 ("libx11" ,libx11)
7339 ("vala" ,vala)
7340 ("adwaita-icon-theme" ,adwaita-icon-theme)
7341 ("libsoup" ,libsoup)
7342 ("gnome-desktop" ,gnome-desktop)))
7343 (home-page "https://wiki.gnome.org/Apps/Gedit")
7344 (synopsis "GNOME text editor")
7345 (description "While aiming at simplicity and ease of use, gedit is a
7346 powerful general purpose text editor.")
7347 (license license:gpl2+)))
7348
7349 (define-public zenity
7350 (package
7351 (name "zenity")
7352 (version "3.32.0")
7353 (source (origin
7354 (method url-fetch)
7355 (uri (string-append "mirror://gnome/sources/zenity/"
7356 (version-major+minor version) "/"
7357 "zenity-" version ".tar.xz"))
7358 (sha256
7359 (base32
7360 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7361 (build-system gnu-build-system)
7362 (native-inputs
7363 `(("gettext" ,gettext-minimal)
7364 ("itstool" ,itstool)
7365 ("pkg-config" ,pkg-config)))
7366 (inputs
7367 `(("libnotify" ,libnotify)
7368 ("webkitgtk" ,webkitgtk)))
7369 (synopsis "Display graphical dialog boxes from shell scripts")
7370 (home-page "https://www.gnome.org")
7371 (description
7372 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7373 to display dialog boxes from the commandline and shell scripts.")
7374 (license license:lgpl2.0+)))
7375
7376 (define-public mutter
7377 (package
7378 (name "mutter")
7379 (version "3.34.2")
7380 (source (origin
7381 (method url-fetch)
7382 (uri (string-append "mirror://gnome/sources/" name "/"
7383 (version-major+minor version) "/"
7384 name "-" version ".tar.xz"))
7385 (sha256
7386 (base32
7387 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
7388 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7389 ;; versions of cogl and clutter. As a result, many of the inputs,
7390 ;; propagated-inputs, and configure flags used in cogl and clutter are
7391 ;; needed here as well.
7392 (build-system meson-build-system)
7393 (arguments
7394 '(;; XXX: All mutter tests fail with the following error:
7395 ;; Settings schema 'org.gnome.mutter' is not installed
7396 #:tests? #f
7397 #:glib-or-gtk? #t
7398 #:configure-flags
7399 ;; TODO: Enable profiler when Sysprof is packaged.
7400 (list "-Dprofiler=false"
7401 ;; Otherwise, the RUNPATH will lack the final path component.
7402 (string-append "-Dc_link_args=-Wl,-rpath="
7403 (assoc-ref %outputs "out") "/lib:"
7404 (assoc-ref %outputs "out") "/lib/mutter-5")
7405
7406 ;; The following flags are needed for the bundled clutter
7407 (string-append "-Dxwayland_path="
7408 (assoc-ref %build-inputs "xorg-server-xwayland")
7409 "/bin/Xwayland")
7410
7411 ;; the remaining flags are needed for the bundled cogl
7412 (string-append "-Dopengl_libname="
7413 (assoc-ref %build-inputs "mesa")
7414 "/lib/libGL.so"))
7415 #:phases (modify-phases %standard-phases
7416 (add-after 'unpack 'fix-build-with-mesa-20
7417 (lambda _
7418 ;; Mimic upstream commit a444a4c5f58ea516ad for
7419 ;; compatibility with Mesa 20. Remove for 3.36.
7420 (substitute* '("src/backends/meta-egl-ext.h"
7421 "src/backends/meta-egl.c"
7422 "src/backends/meta-egl.h")
7423 (("#include <EGL/eglext\\.h>" all)
7424 (string-append all "\n#include <EGL/eglmesaext.h>")))
7425 (substitute* "cogl/cogl/meson.build"
7426 (("#include <EGL/eglext\\.h>" all)
7427 (string-append all "\\n#include <EGL/eglmesaext.h>")))
7428 #t)))))
7429 (native-inputs
7430 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7431 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7432 ("gobject-introspection" ,gobject-introspection)
7433 ("intltool" ,intltool)
7434 ("pkg-config" ,pkg-config)
7435 ("xorg-server" ,xorg-server-for-tests)
7436 ;; For git build
7437 ("autoconf" ,autoconf)
7438 ("automake" ,automake)
7439 ("libtool" ,libtool)))
7440 (propagated-inputs
7441 `(;; libmutter.pc refers to these:
7442 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7443 ("gtk+" ,gtk+)
7444 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7445 ("atk" ,atk)
7446 ("cairo" ,cairo)
7447 ("gdk-pixbuf" ,gdk-pixbuf)
7448 ("glib" ,glib)
7449 ("json-glib" ,json-glib)
7450 ("libinput" ,libinput)
7451 ("libx11" ,libx11)
7452 ("libxcomposite" ,libxcomposite)
7453 ("libxdamage" ,libxdamage)
7454 ("libxext" ,libxext)
7455 ("libxfixes" ,libxfixes)
7456 ("libxkbcommon" ,libxkbcommon)
7457 ("libxrandr" ,libxrandr)
7458 ("mesa" ,mesa)
7459 ("pango" ,pango)
7460 ("udev" ,eudev)
7461 ("xinput" ,xinput)))
7462 (inputs
7463 `(("elogind" ,elogind)
7464 ("gnome-desktop" ,gnome-desktop)
7465 ("gnome-settings-daemon" ,gnome-settings-daemon)
7466 ("libcanberra-gtk" ,libcanberra)
7467 ("libgudev" ,libgudev)
7468 ("libice" ,libice)
7469 ("libsm" ,libsm)
7470 ("libwacom" ,libwacom)
7471 ("libxkbfile" ,libxkbfile)
7472 ("libxrandr" ,libxrandr)
7473 ("libxtst" ,libxtst)
7474 ("pipewire" ,pipewire)
7475 ("startup-notification" ,startup-notification)
7476 ("upower-glib" ,upower)
7477 ("xkeyboard-config" ,xkeyboard-config)
7478 ("xorg-server-xwayland" ,xorg-server-xwayland)
7479 ("zenity" ,zenity)))
7480 (synopsis "Window and compositing manager")
7481 (home-page "https://www.gnome.org")
7482 (description
7483 "Mutter is a window and compositing manager that displays and manages your
7484 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7485 Clutter toolkit with solid window-management logic inherited from the Metacity
7486 window manager.")
7487 (license license:gpl2+)))
7488
7489 (define-public gnome-online-accounts
7490 (package
7491 (name "gnome-online-accounts")
7492 (version "3.36.0")
7493 (source (origin
7494 (method url-fetch)
7495 (uri (string-append "mirror://gnome/sources/" name "/"
7496 (version-major+minor version) "/"
7497 name "-" version ".tar.xz"))
7498 (sha256
7499 (base32
7500 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7501 (outputs '("out" "lib"))
7502 (build-system glib-or-gtk-build-system)
7503 (arguments
7504 `(#:configure-flags
7505 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7506 #:phases
7507 (modify-phases %standard-phases
7508 (add-before 'configure 'patch-libgoa-output
7509 (lambda* (#:key outputs #:allow-other-keys)
7510 (let ((lib (assoc-ref outputs "lib")))
7511 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7512 (("@prefix@") lib)
7513 (("@exec_prefix@") lib)
7514 (("@libdir@") (string-append lib "/lib"))
7515 (("@includedir@") (string-append lib "/include"))
7516 (("@datadir@") (string-append lib "/share")))
7517 ;; Make sure gobject-introspection knows about the output
7518 ;; too (see <https://bugs.gnu.org/36535>).
7519 (setenv "outputs" "out lib")
7520 #t))))))
7521 (native-inputs
7522 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7523 ("gobject-introspection" ,gobject-introspection)
7524 ("intltool" ,intltool)
7525 ("pkg-config" ,pkg-config)
7526 ("vala" ,vala)
7527 ("xsltproc" ,libxslt)))
7528 (propagated-inputs
7529 `(("glib" ,glib) ; required by goa-1.0.pc
7530 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7531 (inputs
7532 `(("docbook-xsl" ,docbook-xsl)
7533 ("json-glib" ,json-glib)
7534 ("libsecret" ,libsecret)
7535 ("rest" ,rest)
7536 ("webkitgtk" ,webkitgtk)))
7537 (synopsis "Single sign-on framework for GNOME")
7538 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7539 (description
7540 "GNOME Online Accounts provides interfaces so that applications and
7541 libraries in GNOME can access the user's online accounts. It has providers for
7542 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7543 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7544 (license license:lgpl2.0+)))
7545
7546 (define-public evolution-data-server
7547 (package
7548 (name "evolution-data-server")
7549 (version "3.34.2")
7550 (source (origin
7551 (method url-fetch)
7552 (uri (string-append "mirror://gnome/sources/" name "/"
7553 (version-major+minor version) "/"
7554 name "-" version ".tar.xz"))
7555 (patches (search-patches "evolution-data-server-locales.patch"
7556 "evolution-data-server-libical-compat.patch"
7557 "evolution-data-server-CVE-2020-14928.patch"
7558 "evolution-data-server-CVE-2020-16117.patch"))
7559 (sha256
7560 (base32
7561 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7562 (build-system cmake-build-system)
7563 (arguments
7564 '(#:configure-flags
7565 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7566 (runpaths (map (lambda (s)
7567 (string-append lib "/evolution-data-server/" s))
7568 '("addressbook-backends" "calendar-backends"
7569 "camel-providers" "credential-modules"
7570 "registry-modules"))))
7571 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7572 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7573 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7574 "-DENABLE_VALA_BINDINGS=ON"
7575 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7576 (string-append lib "/evolution-data-server;")
7577 (string-join runpaths ";"))
7578 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7579 #:phases
7580 (modify-phases %standard-phases
7581 (add-after 'unpack 'disable-failing-tests
7582 (lambda _
7583 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7584 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7585 (delete-file-recursively "tests/book-migration")
7586 (substitute* "tests/CMakeLists.txt"
7587 (("add_subdirectory\\(book-migration\\)") ""))
7588 #t))
7589 (add-after 'unpack 'patch-paths
7590 (lambda _
7591 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7592 "tests/libedata-book/data-test-utils.c"
7593 "tests/libedata-book/test-book-cache-utils.c"
7594 "tests/libedata-cal/test-cal-cache-utils.c")
7595 (("/bin/rm") (which "rm")))
7596 #t))
7597 (add-before 'configure 'dont-override-rpath
7598 (lambda _
7599 (substitute* "CMakeLists.txt"
7600 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7601 ;; Remove it so the configure flag is respected.
7602 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7603 #t)))))
7604 (native-inputs
7605 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7606 ("gobject-introspection" ,gobject-introspection)
7607 ("gperf" ,gperf)
7608 ("intltool" ,intltool)
7609 ("pkg-config" ,pkg-config)
7610 ("vala" ,vala)
7611 ("python" ,python-wrapper)))
7612 (propagated-inputs
7613 ;; These are all in the Requires field of .pc files.
7614 `(("gtk+" ,gtk+)
7615 ("libical" ,libical)
7616 ("libsecret" ,libsecret)
7617 ("libsoup" ,libsoup)
7618 ("nss" ,nss)
7619 ("sqlite" ,sqlite)))
7620 (inputs
7621 `(("bdb" ,bdb)
7622 ("gcr" ,gcr)
7623 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7624 ("json-glib" ,json-glib)
7625 ("libcanberra" ,libcanberra)
7626 ("libgweather" ,libgweather)
7627 ("mit-krb5" ,mit-krb5)
7628 ("openldap" ,openldap)
7629 ("webkitgtk" ,webkitgtk)))
7630 (synopsis "Store address books and calendars")
7631 (home-page "https://wiki.gnome.org/Apps/Evolution")
7632 (description
7633 "This package provides a unified backend for programs that work with
7634 contacts, tasks, and calendar information. It was originally developed for
7635 Evolution (hence the name), but is now used by other packages as well.")
7636 (license license:lgpl2.0)))
7637
7638 (define-public caribou
7639 (package
7640 (name "caribou")
7641 (version "0.4.21")
7642 (source (origin
7643 (method url-fetch)
7644 (uri (string-append "mirror://gnome/sources/" name "/"
7645 (version-major+minor version) "/"
7646 name "-" version ".tar.xz"))
7647 (sha256
7648 (base32
7649 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7650 (build-system glib-or-gtk-build-system)
7651 (arguments
7652 '(#:phases
7653 (modify-phases %standard-phases
7654 (add-before
7655 'build 'pre-build
7656 (lambda* (#:key outputs #:allow-other-keys)
7657 (let ((out (assoc-ref outputs "out")))
7658 ;; Use absolute shared library path in Caribou-1.0.typelib.
7659 (substitute* "libcaribou/Makefile"
7660 (("--shared-library=libcaribou.so")
7661 (string-append "--shared-library="
7662 out "/lib/libcaribou.so")))
7663 #t)))
7664 (add-after 'install 'wrap-programs
7665 (lambda* (#:key outputs #:allow-other-keys)
7666 (let* ((out (assoc-ref outputs "out"))
7667 (python-path (getenv "PYTHONPATH"))
7668 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7669 (for-each
7670 (lambda (prog)
7671 (wrap-program prog
7672 `("PYTHONPATH" ":" prefix (,python-path))
7673 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7674 (list (string-append out "/bin/caribou-preferences")
7675 (string-append out "/libexec/antler-keyboard"))))
7676 #t)))))
7677 (native-inputs
7678 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7679 ("gobject-introspection" ,gobject-introspection)
7680 ("intltool" ,intltool)
7681 ("pkg-config" ,pkg-config)
7682 ("python" ,python)
7683 ("vala" ,vala)
7684 ("xsltproc" ,libxslt)))
7685 (propagated-inputs
7686 ;; caribou-1.0.pc refers to all these.
7687 `(("libgee" ,libgee)
7688 ("libxklavier" ,libxklavier)
7689 ("libxtst" ,libxtst)
7690 ("gtk+" ,gtk+)))
7691 (inputs
7692 `(("clutter" ,clutter)
7693 ("dconf" ,dconf)
7694 ("gtk+-2" ,gtk+-2)
7695 ("python-pygobject" ,python-pygobject)))
7696 (synopsis "Text entry and UI navigation application")
7697 (home-page "https://wiki.gnome.org/Projects/Caribou")
7698 (description
7699 "Caribou is an input assistive technology intended for switch and pointer
7700 users.")
7701 (license license:lgpl2.1)))
7702
7703 (define-public network-manager
7704 (package
7705 (name "network-manager")
7706 (version "1.24.0")
7707 (source (origin
7708 (method url-fetch)
7709 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7710 (version-major+minor version) "/"
7711 "NetworkManager-" version ".tar.xz"))
7712 (patches (search-patches "network-manager-plugin-path.patch"))
7713 (sha256
7714 (base32
7715 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7716 (modules '((guix build utils)))
7717 (snippet
7718 '(begin
7719 (substitute* "src/devices/wwan/nm-modem-manager.c"
7720 (("systemd") "elogind"))
7721 #t))))
7722 (build-system meson-build-system)
7723 (outputs '("out"
7724 "doc")) ; 8 MiB of gtk-doc HTML
7725 (arguments
7726 `(#:configure-flags
7727 (let ((out (assoc-ref %outputs "out"))
7728 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7729 "/sbin/dhclient")))
7730 (list
7731 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7732 ;; component.
7733 (string-append "-Dc_link_args=-Wl,-rpath="
7734 out "/lib:"
7735 out "/lib/NetworkManager/" ,version)
7736 "-Dsystemd_journal=false"
7737 "-Dsession_tracking=elogind"
7738 "-Dsuspend_resume=elogind"
7739 "-Dsystemdsystemunitdir=no"
7740 "-Dsession_tracking_consolekit=false"
7741 "-Ddhcpcd=no"
7742 "-Ddhcpcanon=no"
7743 "-Dcrypto=gnutls"
7744 "-Diwd=true"
7745 "-Dlibaudit=yes"
7746 "-Dqt=false"
7747 "-Ddocs=true"
7748 "--sysconfdir=/etc"
7749 "--localstatedir=/var"
7750 (string-append "-Dudev_dir="
7751 out "/lib/udev")
7752 (string-append "-Ddbus_conf_dir="
7753 out "/etc/dbus-1/system.d")
7754
7755 (string-append "-Ddhclient=" dhclient)))
7756 #:phases
7757 (modify-phases %standard-phases
7758 (add-before 'configure 'pre-configure
7759 (lambda _
7760 ;; These tests try to test aspects of network-manager's
7761 ;; functionality within restricted containers, but they don't
7762 ;; cope with being already in the Guix build jail as that jail
7763 ;; lacks some features that they would like to proxy over (like
7764 ;; a /sys mount).
7765 (substitute* "src/platform/tests/meson.build"
7766 ((".*test-address-linux.*") "")
7767 ((".*test-cleanup-linux.*") "")
7768 ((".*test-link-linux.*") "")
7769 ((".*test-route-linux.*") ""))
7770 (substitute* "src/devices/tests/meson.build"
7771 ((".*test-acd.*") "")
7772 ((".*test-lldp.*") ""))
7773 #t))
7774 (add-after 'unpack 'patch-docbook-xml
7775 (lambda* (#:key inputs #:allow-other-keys)
7776 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7777 "/xml/dtd/docbook")))
7778 (substitute* (find-files "." ".*\\.(xsl|xml)")
7779 (("http://.*/docbookx\\.dtd")
7780 (string-append xmldoc "/docbookx.dtd")))
7781 #t)))
7782 (add-before 'check 'pre-check
7783 (lambda _
7784 ;; For the missing /etc/machine-id.
7785 (setenv "DBUS_FATAL_WARNINGS" "0")
7786 #t))
7787 (add-before 'install 'no-polkit-magic
7788 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7789 (lambda _
7790 (setenv "PKEXEC_UID" "something")
7791 #t))
7792 (add-after 'install 'move-doc
7793 (lambda* (#:key outputs #:allow-other-keys)
7794 (let ((out (assoc-ref outputs "out"))
7795 (doc (assoc-ref outputs "doc")))
7796 (mkdir-p (string-append doc "/share"))
7797 (for-each (lambda (directory)
7798 (copy-recursively (string-append out directory)
7799 (string-append doc directory))
7800 (delete-file-recursively
7801 (string-append out directory)))
7802 '("/share/doc" "/share/gtk-doc"))
7803 #t))))))
7804 (propagated-inputs
7805 `(("glib" ,glib)))
7806 (native-inputs
7807 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7808 ("gtk-doc" ,gtk-doc/stable)
7809 ("gobject-introspection" ,gobject-introspection)
7810 ("docbook-xml" ,docbook-xml)
7811 ("docbook-xsl" ,docbook-xsl)
7812 ("intltool" ,intltool)
7813 ("libxslt" ,libxslt)
7814 ("libxml2" ,libxml2)
7815 ("pkg-config" ,pkg-config)
7816 ("vala" ,vala)
7817 ;; For testing.
7818 ("python" ,python-wrapper)
7819 ("python-dbus" ,python-dbus)
7820 ("python-pygobject" ,python-pygobject)))
7821 (inputs
7822 `(("curl" ,curl)
7823 ("cyrus-sasl" ,cyrus-sasl)
7824 ("dbus-glib" ,dbus-glib)
7825 ("dnsmasq" ,dnsmasq)
7826 ("eudev" ,eudev)
7827 ("gnutls" ,gnutls)
7828 ("iptables" ,iptables)
7829 ("isc-dhcp" ,isc-dhcp)
7830 ("iwd" ,iwd) ; wpa_supplicant alternative
7831 ("jansson" ,jansson)
7832 ("libaudit" ,audit)
7833 ("libgcrypt" ,libgcrypt)
7834 ("libgudev" ,libgudev)
7835 ("libndp" ,libndp)
7836 ("libnl" ,libnl)
7837 ("libsoup" ,libsoup)
7838 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7839 ("modem-manager" ,modem-manager)
7840 ("newt" ,newt) ;for the 'nmtui' console interface
7841 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7842 ("polkit" ,polkit)
7843 ("ppp" ,ppp)
7844 ("readline" ,readline)
7845 ("util-linux" ,util-linux)
7846 ("elogind" ,elogind)))
7847 (synopsis "Network connection manager")
7848 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7849 (description
7850 "NetworkManager is a system network service that manages your network
7851 devices and connections, attempting to keep active network connectivity when
7852 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7853 devices, and provides VPN integration with a variety of different VPN
7854 services.")
7855 ;; “This NetworkManager project consists of the daemon, client tools, and
7856 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7857 ;; GPL-2.0+.”
7858 (license (list license:gpl2+
7859 license:lgpl2.1+))
7860 (properties '((upstream-name . "NetworkManager")))))
7861
7862 (define-public network-manager-openvpn
7863 (package
7864 (name "network-manager-openvpn")
7865 (version "1.8.12")
7866 (source (origin
7867 (method url-fetch)
7868 (uri (string-append
7869 "mirror://gnome/sources/NetworkManager-openvpn/"
7870 (version-major+minor version)
7871 "/NetworkManager-openvpn-" version ".tar.xz"))
7872 (sha256
7873 (base32
7874 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7875 (build-system gnu-build-system)
7876 (arguments
7877 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7878 #:phases
7879 (modify-phases %standard-phases
7880 (add-after 'configure 'patch-path
7881 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7882 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7883 "/sbin/openvpn"))
7884 (modprobe (string-append (assoc-ref inputs "kmod")
7885 "/bin/modprobe"))
7886 (pretty-ovpn (string-append "\"" ovpn "\"")))
7887 (for-each
7888 (lambda (file)
7889 (substitute* file
7890 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7891 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7892 (("\"/sbin/openvpn\"") pretty-ovpn)
7893 (("/sbin/modprobe") modprobe)))
7894 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7895 #t)))))
7896 (native-inputs
7897 `(("pkg-config" ,pkg-config)
7898 ("intltool" ,intltool)))
7899 (inputs
7900 `(("gtk+" ,gtk+)
7901 ("kmod" ,kmod)
7902 ("openvpn" ,openvpn)
7903 ("network-manager" ,network-manager)
7904 ("libnma" ,libnma)
7905 ("libsecret" ,libsecret)))
7906 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7907 (synopsis "OpenVPN plug-in for NetworkManager")
7908 (description
7909 "This extension of NetworkManager allows it to take care of connections
7910 to virtual private networks (VPNs) via OpenVPN.")
7911 (license license:gpl2+)
7912 (properties `((upstream-name . "NetworkManager-openvpn")))))
7913
7914 (define-public network-manager-vpnc
7915 (package
7916 (name "network-manager-vpnc")
7917 (version "1.2.6")
7918 (source (origin
7919 (method url-fetch)
7920 (uri (string-append
7921 "mirror://gnome/sources/NetworkManager-vpnc/"
7922 (version-major+minor version)
7923 "/NetworkManager-vpnc-" version ".tar.xz"))
7924 (sha256
7925 (base32
7926 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7927 (build-system gnu-build-system)
7928 (arguments
7929 `(#:configure-flags '("--enable-absolute-paths"
7930 "--localstatedir=/var"
7931 ;; libnm-glib has been removed from network-manager
7932 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7933 "--with-libnm-glib=no")
7934 #:phases
7935 (modify-phases %standard-phases
7936 (add-after 'configure 'patch-path
7937 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7938 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7939 "/sbin/vpnc"))
7940 (modprobe (string-append (assoc-ref inputs "kmod")
7941 "/bin/modprobe"))
7942 (pretty-ovpn (string-append "\"" vpnc "\"")))
7943 (substitute* "src/nm-vpnc-service.c"
7944 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7945 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7946 (("\"/sbin/vpnc\"") pretty-ovpn)
7947 (("/sbin/modprobe") modprobe)))
7948 #t)))))
7949 (native-inputs
7950 `(("pkg-config" ,pkg-config)
7951 ("intltool" ,intltool)))
7952 (inputs
7953 `(("gtk+" ,gtk+)
7954 ("kmod" ,kmod)
7955 ("vpnc" ,vpnc)
7956 ("network-manager" ,network-manager)
7957 ("libnma" ,libnma)
7958 ("libsecret" ,libsecret)))
7959 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7960 (synopsis "VPNC plug-in for NetworkManager")
7961 (description
7962 "Support for configuring virtual private networks based on VPNC.
7963 Compatible with Cisco VPN concentrators configured to use IPsec.")
7964 (license license:gpl2+)
7965 (properties `((upstream-name . "NetworkManager-vpnc")))))
7966
7967 (define-public network-manager-openconnect
7968 (package
7969 (name "network-manager-openconnect")
7970 (version "1.2.6")
7971 (source (origin
7972 (method url-fetch)
7973 (uri (string-append
7974 "mirror://gnome/sources/NetworkManager-openconnect/"
7975 (version-major+minor version)
7976 "/NetworkManager-openconnect-" version ".tar.xz"))
7977 (sha256
7978 (base32
7979 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7980 (build-system gnu-build-system)
7981 (arguments
7982 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7983 #:phases
7984 (modify-phases %standard-phases
7985 (add-after 'configure 'patch-path
7986 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7987 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7988 "/sbin/openconnect"))
7989 (modprobe (string-append (assoc-ref inputs "kmod")
7990 "/bin/modprobe"))
7991 (pretty-ovpn (string-append "\"" openconnect "\"")))
7992 (substitute* "src/nm-openconnect-service.c"
7993 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7994 (("/sbin/modprobe") modprobe)))
7995 #t)))))
7996 (native-inputs
7997 `(("intltool" ,intltool)
7998 ("libnma" ,libnma)
7999 ("pkg-config" ,pkg-config)))
8000 (inputs
8001 `(("gcr" ,gcr)
8002 ("gtk+" ,gtk+)
8003 ("kmod" ,kmod)
8004 ("libsecret" ,libsecret)
8005 ("libxml2" ,libxml2)
8006 ("lz4" ,lz4)
8007 ("network-manager" ,network-manager)
8008 ("openconnect" ,openconnect)))
8009 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8010 (synopsis "OpenConnect plug-in for NetworkManager")
8011 (description
8012 "This extension of NetworkManager allows it to take care of connections
8013 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
8014 Cisco's AnyConnect SSL VPN.")
8015 (license license:gpl2+)
8016 (properties `((upstream-name . "NetworkManager-openconnect")
8017
8018 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
8019 ;; file refers to account "nm-openconnect". Specify it here
8020 ;; so that 'network-manager-service-type' creates it.
8021 (user-accounts . ("nm-openconnect"))))))
8022
8023 (define-public mobile-broadband-provider-info
8024 (package
8025 (name "mobile-broadband-provider-info")
8026 (version "20190116")
8027 (source (origin
8028 (method url-fetch)
8029 (uri (string-append
8030 "mirror://gnome/sources/"
8031 "mobile-broadband-provider-info/" version "/"
8032 "mobile-broadband-provider-info-" version ".tar.xz"))
8033 (sha256
8034 (base32
8035 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
8036 (build-system gnu-build-system)
8037 (arguments
8038 `(#:tests? #f)) ; no tests
8039 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8040 (synopsis "Database of broadband connection configuration")
8041 (description "Database of broadband connection configuration.")
8042 (license license:public-domain)))
8043
8044 (define-public network-manager-applet
8045 (package
8046 (name "network-manager-applet")
8047 (version "1.20.0")
8048 (source (origin
8049 (method url-fetch)
8050 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
8051 (version-major+minor version) "/"
8052 "network-manager-applet-" version ".tar.xz"))
8053 (sha256
8054 (base32
8055 "0lsjkbv66hn7acl2pg9h6hz4b700zzv4cjwrwjvy7043blw0bcla"))))
8056 (build-system meson-build-system)
8057 (arguments
8058 '(#:glib-or-gtk? #t
8059 #:configure-flags
8060 '("-Dappindicator=yes")))
8061 (native-inputs
8062 `(("intltool" ,intltool)
8063 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
8064 ("gobject-introspection" ,gobject-introspection)
8065 ("gtk-doc" ,gtk-doc/stable)
8066 ("pkg-config" ,pkg-config)))
8067 (propagated-inputs
8068 ;; libnm-gtk.pc refers to all these.
8069 `(("dbus-glib" ,dbus-glib)
8070 ("gtk+" ,gtk+)
8071 ("network-manager" ,network-manager)
8072 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8073 ("libnma" ,libnma)))
8074 (inputs
8075 `(("gcr" ,gcr)
8076 ("libappindicator" ,libappindicator)
8077 ("libgudev" ,libgudev)
8078 ("libnotify" ,libnotify)
8079 ("libsecret" ,libsecret)
8080 ("libselinux" ,libselinux)
8081 ("jansson" ,jansson) ; for team support
8082 ("modem-manager" ,modem-manager)))
8083 (synopsis "Applet for managing network connections")
8084 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8085 (description
8086 "This package contains a systray applet for NetworkManager. It displays
8087 the available networks and allows users to easily switch between them.")
8088 (license license:gpl2+)))
8089
8090 (define-public libxml++
8091 (package
8092 (name "libxml++")
8093 (version "3.0.1")
8094 (source (origin
8095 (method url-fetch)
8096 (uri (string-append "mirror://gnome/sources/" name "/"
8097 (version-major+minor version) "/"
8098 name "-" version ".tar.xz"))
8099 (sha256
8100 (base32
8101 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
8102 (build-system gnu-build-system)
8103 ;; libxml++-3.0.pc refers to all these.
8104 (propagated-inputs
8105 `(("libxml2" ,libxml2)
8106 ("glibmm" ,glibmm)))
8107 (native-inputs
8108 `(("perl" ,perl)
8109 ("pkg-config" ,pkg-config)))
8110 (home-page "http://libxmlplusplus.sourceforge.net/")
8111 (synopsis "C++ wrapper for XML parser library libxml2")
8112 (description
8113 "This package provides a C++ wrapper for the XML parser library
8114 libxml2.")
8115 (license license:lgpl2.1+)))
8116
8117 (define-public libxml++-2
8118 (package
8119 (inherit libxml++)
8120 (name "libxml++")
8121 (version "2.40.1")
8122 (source (origin
8123 (method url-fetch)
8124 (uri (string-append "mirror://gnome/sources/" name "/"
8125 (version-major+minor version) "/"
8126 name "-" version ".tar.xz"))
8127 (sha256
8128 (base32
8129 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
8130
8131 (define-public gdm
8132 (package
8133 (name "gdm")
8134 (version "3.34.1")
8135 (source (origin
8136 (method url-fetch)
8137 (uri (string-append "mirror://gnome/sources/" name "/"
8138 (version-major+minor version) "/"
8139 name "-" version ".tar.xz"))
8140 (sha256
8141 (base32
8142 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
8143 (patches (search-patches "gdm-default-session.patch"))))
8144 (build-system glib-or-gtk-build-system)
8145 (arguments
8146 '(#:configure-flags
8147 `("--without-plymouth"
8148 "--disable-systemd-journal"
8149
8150 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8151 ;; instead of having to replace it (i.e., stopping the mingetty
8152 ;; service for TTY 1 before starting GDM).
8153 "--with-initial-vt=7"
8154
8155 ;; Use '/etc/environment' for locale settings instead of the
8156 ;; systemd-specific '/etc/locale.conf'.
8157 "--with-lang-file=/etc/environment"
8158
8159 ,(string-append "--with-udevdir="
8160 (assoc-ref %outputs "out") "/lib/udev")
8161
8162 "--localstatedir=/var"
8163 ,(string-append "--with-default-path="
8164 (string-join '("/run/setuid-programs"
8165 "/run/current-system/profile/bin"
8166 "/run/current-system/profile/sbin")
8167 ":"))
8168 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8169 ;; XDG_DATA_DIRS so that it finds its schemas.
8170 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
8171 #:phases
8172 (modify-phases %standard-phases
8173 (add-before
8174 'configure 'pre-configure
8175 (lambda* (#:key inputs outputs #:allow-other-keys)
8176 ;; We don't have <systemd/sd-daemon.h>.
8177 (substitute* '("common/gdm-log.c"
8178 "daemon/gdm-server.c"
8179 "daemon/gdm-session-worker.c"
8180 "daemon/gdm-session-worker-job.c")
8181 (("#include <systemd/sd-daemon\\.h>") ""))
8182 ;; Use elogind for sd-login.
8183 (substitute* '("common/gdm-common.c"
8184 "daemon/gdm-local-display-factory.c"
8185 "daemon/gdm-manager.c"
8186 "libgdm/gdm-user-switching.c")
8187 (("#include <systemd/sd-login\\.h>")
8188 "#include <elogind/sd-login.h>"))
8189 ;; Check for elogind.
8190 (substitute* '("configure")
8191 (("libsystemd")
8192 "libelogind"))
8193 ;; Look for system-installed sessions in
8194 ;; /run/current-system/profile/share.
8195 (substitute* '("libgdm/gdm-sessions.c"
8196 "daemon/gdm-session.c"
8197 "daemon/gdm-display.c"
8198 "daemon/gdm-launch-environment.c")
8199 (("DATADIR \"/x")
8200 "\"/run/current-system/profile/share/x")
8201 (("DATADIR \"/wayland")
8202 "\"/run/current-system/profile/share/wayland")
8203 (("DATADIR \"/gnome")
8204 "\"/run/current-system/profile/share/gnome"))
8205 (let ((propagate '("GDM_CUSTOM_CONF"
8206 "GDM_DBUS_DAEMON"
8207 "GDM_X_SERVER"
8208 "GDM_X_SESSION"
8209 ;; XXX: Remove this once GNOME Shell is
8210 ;; a dependency of GDM.
8211 "XDG_DATA_DIRS")))
8212 (substitute* "daemon/gdm-session.c"
8213 (("set_up_session_environment \\(self\\);")
8214 (apply string-append
8215 "set_up_session_environment (self);\n"
8216 (map (lambda (name)
8217 (string-append
8218 "gdm_session_set_environment_variable "
8219 "(self, \"" name "\","
8220 "g_getenv (\"" name "\"));\n"))
8221 propagate)))))
8222 ;; Find the configuration file using an environment variable.
8223 (substitute* '("common/gdm-settings.c")
8224 (("GDM_CUSTOM_CONF")
8225 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8226 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8227 " : GDM_CUSTOM_CONF)")))
8228 ;; Use service-supplied path to X.
8229 (substitute* '("daemon/gdm-server.c")
8230 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8231 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8232 (substitute* '("daemon/gdm-wayland-session.c"
8233 "daemon/gdm-x-session.c")
8234 (("\"dbus-daemon\"")
8235 "g_getenv (\"GDM_DBUS_DAEMON\")")
8236 (("X_SERVER")
8237 "g_getenv (\"GDM_X_SERVER\")")
8238 (("GDMCONFDIR \"/Xsession\"")
8239 "g_getenv (\"GDM_X_SESSION\")"))
8240 ;; Use an absolute path for GNOME Session.
8241 (substitute* "daemon/gdm-launch-environment.c"
8242 (("\"gnome-session\"")
8243 (string-append "\"" (assoc-ref inputs "gnome-session")
8244 "/bin/gnome-session\"")))
8245 ;; Do not automatically select the placeholder session.
8246 (substitute* "daemon/gdm-session.c"
8247 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8248 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8249 "(g_strcmp0(search_dirs[i], \""
8250 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
8251 "\") == 0 && "
8252 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8253 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8254 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
8255 #t))
8256 ;; GDM requires that there be at least one desktop entry
8257 ;; file. This phase installs a hidden one that simply
8258 ;; fails. This enables users to use GDM with a
8259 ;; '~/.xsession' script with no other desktop entry files.
8260 ;; See <https://bugs.gnu.org/35068>.
8261 (add-after 'install 'install-placeholder-desktop-entry
8262 (lambda* (#:key inputs outputs #:allow-other-keys)
8263 (let* ((out (assoc-ref outputs "out"))
8264 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8265 (fail (string-append sessions "/fail.desktop")))
8266 (mkdir-p sessions)
8267 (with-output-to-file fail
8268 (lambda ()
8269 (for-each
8270 display
8271 '("[Desktop Entry]\n"
8272 "Encoding=UTF-8\n"
8273 "Type=Application\n"
8274 "Name=Fail\n"
8275 "Comment=This session fails immediately.\n"
8276 "NoDisplay=true\n"
8277 "Exec=false\n"))))
8278 #t)))
8279 ;; GDM needs GNOME Session to run these applications. We link
8280 ;; their autostart files in `share/gdm/greeter/autostart'
8281 ;; because GDM explicitly tells GNOME Session to look there.
8282 ;;
8283 ;; XXX: GNOME Shell should be linked here too, but currently
8284 ;; GNOME Shell depends on GDM.
8285 (add-after 'install 'link-autostart-files
8286 (lambda* (#:key inputs outputs #:allow-other-keys)
8287 (let* ((out (assoc-ref outputs "out"))
8288 (autostart (string-append out "/share/gdm/"
8289 "greeter/autostart"))
8290 (settings (assoc-ref inputs "gnome-settings-daemon")))
8291 (mkdir-p autostart)
8292 (with-directory-excursion autostart
8293 (for-each (lambda (desktop)
8294 (symlink desktop (basename desktop)))
8295 (find-files (string-append settings "/etc/xdg"))))
8296 #t))))))
8297 (native-inputs
8298 `(("dconf" ,dconf)
8299 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8300 ("gobject-introspection" ,gobject-introspection)
8301 ("intltool" ,intltool)
8302 ("itstool" ,itstool)
8303 ("pkg-config" ,pkg-config)
8304 ("xmllint" ,libxml2)))
8305 (inputs
8306 `(("accountsservice" ,accountsservice)
8307 ("check" ,check-0.14) ;for testing
8308 ("elogind" ,elogind)
8309 ("gnome-session" ,gnome-session)
8310 ("gnome-settings-daemon" ,gnome-settings-daemon)
8311 ("gtk+" ,gtk+)
8312 ("iso-codes" ,iso-codes)
8313 ("libcanberra" ,libcanberra)
8314 ("linux-pam" ,linux-pam)))
8315 (synopsis "Display manager for GNOME")
8316 (home-page "https://wiki.gnome.org/Projects/GDM/")
8317 (description
8318 "GNOME Display Manager is a system service that is responsible for
8319 providing graphical log-ins and managing local and remote displays.")
8320 (license license:gpl2+)))
8321
8322 (define-public libgtop
8323 (package
8324 (name "libgtop")
8325 (version "2.40.0")
8326 (source (origin
8327 (method url-fetch)
8328 (uri (string-append "mirror://gnome/sources/libgtop/"
8329 (version-major+minor version) "/"
8330 "libgtop-" version ".tar.xz"))
8331 (sha256
8332 (base32
8333 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8334 (build-system gnu-build-system)
8335 (native-inputs
8336 `(("gobject-introspection" ,gobject-introspection)
8337 ("intltool" ,intltool)
8338 ("perl" ,perl)
8339 ("pkg-config" ,pkg-config)))
8340 (propagated-inputs
8341 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8342 (synopsis "Portable system access library")
8343 (home-page "https://www.gnome.org/")
8344 (description
8345 "LibGTop is a library to get system specific data such as CPU and memory
8346 usage and information about running processes.")
8347 (license license:gpl2+)))
8348
8349 (define-public gnome-bluetooth
8350 (package
8351 (name "gnome-bluetooth")
8352 (version "3.34.2")
8353 (source (origin
8354 (method url-fetch)
8355 (uri (string-append "mirror://gnome/sources/" name "/"
8356 (version-major+minor version) "/"
8357 name "-" version ".tar.xz"))
8358 (sha256
8359 (base32
8360 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8361 (build-system meson-build-system)
8362 (native-inputs
8363 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8364 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8365 ("gobject-introspection" ,gobject-introspection)
8366 ("intltool" ,intltool)
8367 ("pkg-config" ,pkg-config)
8368 ("xmllint" ,libxml2)))
8369 (propagated-inputs
8370 ;; gnome-bluetooth-1.0.pc refers to all these.
8371 `(("glib" ,glib)
8372 ("gtk+" ,gtk+)))
8373 (inputs
8374 `(("eudev" ,eudev)
8375 ("libcanberra" ,libcanberra)
8376 ("libnotify" ,libnotify)))
8377 (synopsis "GNOME Bluetooth subsystem")
8378 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8379 (description
8380 "This package contains tools for managing and manipulating Bluetooth
8381 devices using the GNOME desktop.")
8382 (license license:lgpl2.1+)))
8383
8384 (define-public gnome-control-center
8385 (package
8386 (name "gnome-control-center")
8387 (version "3.34.2")
8388 (source (origin
8389 (method url-fetch)
8390 (uri (string-append "mirror://gnome/sources/" name "/"
8391 (version-major+minor version) "/"
8392 name "-" version ".tar.xz"))
8393 (sha256
8394 (base32
8395 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8396 (build-system meson-build-system)
8397 (arguments
8398 '(#:glib-or-gtk? #t
8399 #:configure-flags
8400 (list "-Dcheese=false"
8401 (string-append "-Dgnome_session_libexecdir="
8402 (assoc-ref %build-inputs "gnome-session")
8403 "/libexec"))
8404 #:phases
8405 (modify-phases %standard-phases
8406 (add-before 'configure 'patch-paths
8407 (lambda* (#:key inputs #:allow-other-keys)
8408 (let ((libc (assoc-ref inputs "libc"))
8409 (tzdata (assoc-ref inputs "tzdata"))
8410 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8411 (nm-applet (assoc-ref inputs "network-manager-applet"))
8412 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8413 (substitute* "panels/datetime/tz.h"
8414 (("/usr/share/zoneinfo/zone.tab")
8415 (string-append tzdata "/share/zoneinfo/zone.tab")))
8416 (substitute* "tests/datetime/test-endianess.c"
8417 (("/usr/share/locale")
8418 (string-append libc "/share/locale")))
8419 (substitute* "panels/region/cc-region-panel.c"
8420 (("\"gkbd-keyboard-display")
8421 (string-append "\"" libgnomekbd
8422 "/bin/gkbd-keyboard-display")))
8423 (substitute* '("panels/network/net-device-wifi.c"
8424 "panels/network/net-device.c"
8425 "panels/network/connection-editor/net-connection-editor.c")
8426 (("\"nm-connection-editor")
8427 (string-append "\"" nm-applet
8428 "/bin/nm-connection-editor")))
8429 (substitute* '("panels/user-accounts/run-passwd.c")
8430 (("/usr/bin/passwd")
8431 "/run/setuid-programs/passwd"))
8432 (substitute* "panels/info/cc-info-overview-panel.c"
8433 (("DATADIR \"/gnome/gnome-version.xml\"")
8434 (string-append "\"" gnome-desktop
8435 "/share/gnome/gnome-version.xml\"")))
8436 #t)))
8437 (add-after 'unpack 'skip-gtk-update-icon-cache
8438 ;; Don't create 'icon-theme.cache'.
8439 (lambda _
8440 (substitute* "build-aux/meson/meson_post_install.py"
8441 (("gtk-update-icon-cache") (which "true")))
8442 #t)))))
8443 (native-inputs
8444 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8445 ("intltool" ,intltool)
8446 ("pkg-config" ,pkg-config)
8447 ("xsltproc" ,libxslt)
8448 ;; For tests
8449 ("hicolor-icon-theme" ,hicolor-icon-theme)
8450 ("python-dbusmock" ,python-dbusmock)
8451 ("xorg-server" ,xorg-server-for-tests)))
8452 (inputs
8453 `(("accountsservice" ,accountsservice)
8454 ("clutter-gtk" ,clutter-gtk)
8455 ("colord-gtk" ,colord-gtk)
8456 ("cups" ,cups)
8457 ("dconf" ,dconf)
8458 ("docbook-xsl" ,docbook-xsl)
8459 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8460 ("gnome-bluetooth" ,gnome-bluetooth)
8461 ("gnome-desktop" ,gnome-desktop)
8462 ("gnome-online-accounts" ,gnome-online-accounts)
8463 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8464 ("gnome-session" ,gnome-session)
8465 ("gnome-settings-daemon" ,gnome-settings-daemon)
8466 ("grilo" ,grilo)
8467 ("gsound" ,gsound)
8468 ("ibus" ,ibus)
8469 ("libcanberra" ,libcanberra)
8470 ("libgnomekbd" ,libgnomekbd)
8471 ("libgudev" ,libgudev)
8472 ("libgtop" ,libgtop)
8473 ("libnma" ,libnma)
8474 ("libpwquality" ,libpwquality)
8475 ("libsecret" ,libsecret)
8476 ("libsoup" ,libsoup)
8477 ("libxml2" ,libxml2)
8478 ("libwacom" ,libwacom)
8479 ("mesa" ,mesa)
8480 ("mit-krb5" ,mit-krb5)
8481 ("modem-manager" ,modem-manager)
8482 ("network-manager-applet" ,network-manager-applet)
8483 ("polkit" ,polkit)
8484 ("pulseaudio" ,pulseaudio)
8485 ("smbclient" ,samba)
8486 ("tzdata" ,tzdata)
8487 ("udisks" ,udisks)
8488 ("upower" ,upower)))
8489 (synopsis "Utilities to configure the GNOME desktop")
8490 (home-page "https://www.gnome.org/")
8491 (description
8492 "This package contains configuration applets for the GNOME desktop,
8493 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8494 properties, sound setup, desktop theme and background, user interface
8495 properties, screen resolution, and other GNOME parameters.")
8496 (license license:gpl2+)))
8497
8498 (define-public gnome-shell
8499 (package
8500 (name "gnome-shell")
8501 (version "3.34.5")
8502 (source (origin
8503 (method url-fetch)
8504 (uri (string-append "mirror://gnome/sources/" name "/"
8505 (version-major+minor version) "/"
8506 name "-" version ".tar.xz"))
8507 (sha256
8508 (base32
8509 "0l3mdn7g2c22mdhrqkxvvc1pk2w0v32f2v4a6n1phvaalwcg75nj"))
8510 (patches (search-patches "gnome-shell-CVE-2020-17489.patch"
8511 "gnome-shell-theme.patch"
8512 "gnome-shell-disable-test.patch"))
8513 (modules '((guix build utils)))
8514 (snippet
8515 #~(begin
8516 ;; Copy images for use on the GDM log-in screen.
8517 (copy-file #$(file-append %artwork-repository
8518 "/slim/0.x/background.png")
8519 "data/theme/guix-background.png")
8520 (copy-file #$(file-append %artwork-repository
8521 "/logo/Guix-horizontal-white.svg")
8522 "data/theme/guix-logo.svg")
8523 #t))))
8524 (build-system meson-build-system)
8525 (arguments
8526 `(#:glib-or-gtk? #t
8527 #:disallowed-references ((,glib "bin")
8528 ,inkscape ,libxslt
8529 ,ruby-sass)
8530 #:configure-flags
8531 (list "-Dsystemd=false"
8532 ;; Otherwise, the RUNPATH will lack the final path component.
8533 (string-append "-Dc_link_args=-Wl,-rpath="
8534 (assoc-ref %outputs "out")
8535 "/lib/gnome-shell"))
8536
8537 #:modules ((guix build meson-build-system)
8538 (guix build utils)
8539 (srfi srfi-1))
8540
8541 #:phases
8542 (modify-phases %standard-phases
8543 (add-after 'unpack 'fix-keysdir
8544 (lambda* (#:key outputs #:allow-other-keys)
8545 (let* ((out (assoc-ref outputs "out"))
8546 (keysdir (string-append
8547 out "/share/gnome-control-center/keybindings")))
8548 (substitute* "meson.build"
8549 (("keysdir =.*")
8550 (string-append "keysdir = '" keysdir "'\n")))
8551 #t)))
8552 (add-before 'configure 'convert-logo-to-png
8553 (lambda* (#:key inputs #:allow-other-keys)
8554 ;; Convert the logo from SVG to PNG.
8555 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8556 "data/theme/guix-logo.svg")))
8557 (add-before 'configure 'record-absolute-file-names
8558 (lambda* (#:key inputs #:allow-other-keys)
8559 (substitute* "js/misc/ibusManager.js"
8560 (("'ibus-daemon'")
8561 (string-append "'" (assoc-ref inputs "ibus")
8562 "/bin/ibus-daemon'")))
8563 (substitute* "js/ui/status/keyboard.js"
8564 (("'gkbd-keyboard-display'")
8565 (string-append "'" (assoc-ref inputs "libgnomekbd")
8566 "/bin/gkbd-keyboard-display'")))
8567 #t))
8568 (add-before 'check 'pre-check
8569 (lambda* (#:key inputs #:allow-other-keys)
8570 ;; Tests require a running X server.
8571 (system "Xvfb :1 &")
8572 (setenv "DISPLAY" ":1")
8573 #t))
8574 (add-after 'install 'wrap-programs
8575 (lambda* (#:key inputs outputs #:allow-other-keys)
8576 (let ((out (assoc-ref outputs "out"))
8577 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8578 (python-path (getenv "PYTHONPATH")))
8579 (wrap-program (string-append out "/bin/gnome-shell")
8580 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8581 ;; FIXME: gnome-shell loads these libraries with unqualified
8582 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8583 ;; alternative might be to patch gnome-shell.
8584 `("LD_LIBRARY_PATH" ":" prefix
8585 ,(map (lambda (pkg)
8586 (string-append (assoc-ref inputs pkg) "/lib"))
8587 '("gdk-pixbuf"
8588 "gnome-bluetooth" "librsvg" "libgweather"))))
8589 (for-each
8590 (lambda (prog)
8591 (wrap-program (string-append out "/bin/" prog)
8592 `("PYTHONPATH" ":" prefix (,python-path))
8593 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8594 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8595 #t)))
8596 (replace 'glib-or-gtk-wrap
8597 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8598 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8599 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8600 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8601 ;; phase. Fix that since we don't need these.
8602 (wrap #:inputs (fold alist-delete inputs
8603 '("inkscape" "intltool" "glib:bin"))
8604 #:outputs outputs)))))))
8605 (native-inputs
8606 `(("asciidoc" ,asciidoc)
8607 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8608 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8609 ("gobject-introspection" ,gobject-introspection)
8610 ("inkscape" ,inkscape)
8611 ("intltool" ,intltool)
8612 ("pkg-config" ,pkg-config)
8613 ("python" ,python)
8614 ("ruby-sass" ,ruby-sass)
8615 ("sassc" ,sassc)
8616 ("xsltproc" ,libxslt)
8617 ;; For tests
8618 ("xorg-server" ,xorg-server-for-tests)))
8619 (inputs
8620 `(("accountsservice" ,accountsservice)
8621 ("caribou" ,caribou)
8622 ("docbook-xsl" ,docbook-xsl)
8623 ("evolution-data-server" ,evolution-data-server)
8624 ("gcr" ,gcr)
8625 ("gdm" ,gdm)
8626 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8627 ("gjs" ,gjs)
8628 ("gnome-autoar" ,gnome-autoar)
8629 ("gnome-bluetooth" ,gnome-bluetooth)
8630 ("gnome-desktop" ,gnome-desktop)
8631 ("gnome-settings-daemon" ,gnome-settings-daemon)
8632 ("gst-plugins-base" ,gst-plugins-base)
8633 ("ibus" ,ibus)
8634 ("libcanberra" ,libcanberra)
8635 ("libcroco" ,libcroco)
8636 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8637 ("libgweather" ,libgweather)
8638 ("libnma" ,libnma)
8639 ("libsoup" ,libsoup)
8640 ("mesa-headers" ,mesa-headers)
8641 ("mutter" ,mutter)
8642 ("network-manager-applet" ,network-manager-applet)
8643 ("polkit" ,polkit)
8644 ("pulseaudio" ,pulseaudio)
8645 ("python-pygobject" ,python-pygobject)
8646 ("startup-notification" ,startup-notification)
8647 ("telepathy-logger" ,telepathy-logger)
8648 ("upower" ,upower)
8649 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8650 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8651 ("librsvg" ,librsvg)
8652 ("geoclue" ,geoclue)))
8653 ;; CVE-2019-3820 was fixed before GNOME 3.34 was released, in upstream
8654 ;; commit f0a7395b3006360905ccdc642982f9fc67378927.
8655 (properties '((lint-hidden-cve . ("CVE-2019-3820"))))
8656 (synopsis "Desktop shell for GNOME")
8657 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8658 (description
8659 "GNOME Shell provides core user interface functions for the GNOME desktop,
8660 like switching to windows and launching applications.")
8661 (license license:gpl2+)))
8662
8663 (define-public gtk-vnc
8664 (package
8665 (name "gtk-vnc")
8666 (version "1.0.0")
8667 (source
8668 (origin
8669 (method url-fetch)
8670 (uri
8671 (string-append "mirror://gnome/sources/" name "/"
8672 (version-major+minor version) "/"
8673 name "-" version ".tar.xz"))
8674 (sha256
8675 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8676 (build-system meson-build-system)
8677 (arguments
8678 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8679 (native-inputs
8680 `(("gjs" ,gjs)
8681 ("glib:bin" ,glib "bin")
8682 ("gobject-introspection" ,gobject-introspection)
8683 ("intltool" ,intltool)
8684 ("node" ,node)
8685 ("perl" ,perl)
8686 ("pkg-config" ,pkg-config)
8687 ("python" ,python-wrapper)
8688 ("vala" ,vala)))
8689 (inputs
8690 `(("cairo" ,cairo)
8691 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8692 ("glib" ,glib)
8693 ("gnutls" ,gnutls)
8694 ("libgcrypt" ,libgcrypt)
8695 ("libsasl" ,cyrus-sasl)
8696 ("pulseaudio" ,pulseaudio)
8697 ("x11" ,libx11)
8698 ("zlib" ,zlib)))
8699 (propagated-inputs
8700 `(("gtk+" ,gtk+)))
8701 (synopsis "VNC client viewer widget for GTK+")
8702 (description "GTK-VNC is a project providing client side APIs for the RFB
8703 protocol / VNC remote desktop technology. It is built using coroutines allowing
8704 it to be completely asynchronous while remaining single threaded. It provides a
8705 core C library, and bindings for Python (PyGTK).")
8706 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8707 (license license:lgpl2.1+)))
8708
8709 (define-public gnome-autoar
8710 (package
8711 (name "gnome-autoar")
8712 (version "0.3.3")
8713 (source (origin
8714 (method url-fetch)
8715 (uri (string-append "mirror://gnome/sources/" name "/"
8716 (version-major+minor version) "/"
8717 name "-" version ".tar.xz"))
8718 (sha256
8719 (base32
8720 "012w7rhhpxvlrnnhqy01vwzg1wxqpy8jbqgizn47wnip7bvh0917"))))
8721 (build-system glib-or-gtk-build-system)
8722 (native-inputs
8723 `(("gobject-introspection" ,gobject-introspection)
8724 ("pkg-config" ,pkg-config)))
8725 (propagated-inputs
8726 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8727 (inputs
8728 `(("gtk+" ,gtk+)))
8729 (synopsis "Archives integration support for GNOME")
8730 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8731 (description
8732 "GNOME Autoar is a library which makes creating and extracting archives
8733 easy, safe, and automatic.")
8734 (license license:lgpl2.1+)))
8735
8736 (define-public tracker
8737 (package
8738 (name "tracker")
8739 (version "2.3.5")
8740 (source (origin
8741 (method url-fetch)
8742 (uri (string-append "mirror://gnome/sources/tracker/"
8743 (version-major+minor version) "/"
8744 "tracker-" version ".tar.xz"))
8745 (sha256
8746 (base32
8747 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8748 (build-system meson-build-system)
8749 (arguments
8750 `(#:glib-or-gtk? #t
8751 #:configure-flags
8752 ;; Otherwise, the RUNPATH will lack the final path component.
8753 (list (string-append "-Dc_link_args=-Wl,-rpath="
8754 (assoc-ref %outputs "out") "/lib:"
8755 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8756 #:phases
8757 (modify-phases %standard-phases
8758 (add-before 'check 'pre-check
8759 (lambda _
8760 ;; Some tests expect to write to $HOME.
8761 (setenv "HOME" "/tmp")
8762 #t)))))
8763 (native-inputs
8764 `(("glib:bin" ,glib "bin")
8765 ("gobject-introspection" ,gobject-introspection)
8766 ("python-pygobject" ,python-pygobject)
8767 ("intltool" ,intltool)
8768 ("pkg-config" ,pkg-config)
8769 ("vala" ,vala)))
8770 (inputs
8771 `(("dbus" ,dbus)
8772 ("sqlite" ,sqlite)
8773 ("libxml2" ,libxml2)
8774 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8775 ("json-glib" ,json-glib)
8776 ("libsoup" ,libsoup)))
8777 (synopsis "Metadata database, indexer and search tool")
8778 (home-page "https://wiki.gnome.org/Projects/Tracker")
8779 (description
8780 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8781
8782 It is a middleware component aimed at desktop application developers who want
8783 their apps to browse and search user content. It's not designed to be used
8784 directly by desktop users, but it provides a commandline tool named
8785 @command{tracker} for the adventurous.
8786
8787 Tracker allows your application to instantly perform full-text searches across
8788 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8789 example. This is achieved by indexing the user's home directory in the
8790 background.
8791
8792 Tracker also allows your application to query and list content that the user
8793 has stored. For example, GNOME Music displays all the music files that are
8794 found by Tracker. This means that GNOME Music doesn't need to maintain a
8795 database of its own.
8796
8797 If you need to go beyond simple searches, Tracker is also a linked data
8798 endpoint and it understands SPARQL. ")
8799 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8800 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8801 ;; libstemmer is bsd-3 and the rest is gpl2+.
8802 (license (list license:gpl2+
8803 license:bsd-3
8804 license:lgpl2.1+))))
8805
8806 (define-public tracker-miners
8807 (package
8808 (name "tracker-miners")
8809 (version "2.3.4")
8810 (source (origin
8811 (method url-fetch)
8812 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8813 (version-major+minor version)
8814 "/tracker-miners-" version ".tar.xz"))
8815 (sha256
8816 (base32
8817 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8818 (build-system meson-build-system)
8819 (arguments
8820 `(#:glib-or-gtk? #t
8821 #:configure-flags
8822 (list "-Dminer_rss=false" ; libgrss is required.
8823 ;; Ensure the RUNPATH contains all installed library locations.
8824 (string-append "-Dc_link_args=-Wl,-rpath="
8825 (assoc-ref %outputs "out")
8826 "/lib/tracker-miners-2.0")
8827 ;; TODO: Enable functional tests. Currently, the following error
8828 ;; appears:
8829 ;; Exception: The functional tests require DConf to be the default
8830 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8831 "-Dfunctional_tests=false")))
8832 (native-inputs
8833 `(("dbus" ,dbus)
8834 ("intltool" ,intltool)
8835 ("glib:bin" ,glib "bin")
8836 ("gobject-introspection" ,gobject-introspection)
8837 ("pkg-config" ,pkg-config)
8838 ("python-pygobject" ,python-pygobject)))
8839 (inputs
8840 `(("exempi" ,exempi)
8841 ("ffmpeg" ,ffmpeg)
8842 ("flac" ,flac)
8843 ("giflib" ,giflib)
8844 ("glib" ,glib)
8845 ("gstreamer" ,gstreamer)
8846 ("icu4c" ,icu4c)
8847 ("libcue" ,libcue)
8848 ("libexif" ,libexif)
8849 ("libgsf" ,libgsf)
8850 ("libgxps" ,libgxps)
8851 ("libiptcdata" ,libiptcdata)
8852 ("libjpeg" ,libjpeg-turbo)
8853 ("libosinfo" ,libosinfo)
8854 ("libpng" ,libpng)
8855 ("libseccomp" ,libseccomp)
8856 ("libtiff" ,libtiff)
8857 ("libvorbis" ,libvorbis)
8858 ("libxml2" ,libxml2)
8859 ("poppler" ,poppler)
8860 ("taglib" ,taglib)
8861 ("totem-pl-parser" ,totem-pl-parser)
8862 ("tracker" ,tracker)
8863 ("upower" ,upower)
8864 ("zlib" ,zlib)))
8865 (synopsis "Metadata database, indexer and search tool")
8866 (home-page "https://wiki.gnome.org/Projects/Tracker")
8867 (description
8868 "Tracker is an advanced framework for first class objects with associated
8869 metadata and tags. It provides a one stop solution for all metadata, tags,
8870 shared object databases, search tools and indexing.")
8871 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8872 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8873 (license (list license:gpl2+
8874 license:lgpl2.1+
8875 license:lgpl2.0+))))
8876
8877 (define-public nautilus
8878 (package
8879 (name "nautilus")
8880 (version "3.34.2")
8881 (source (origin
8882 (method url-fetch)
8883 (uri (string-append "mirror://gnome/sources/" name "/"
8884 (version-major+minor version) "/"
8885 name "-" version ".tar.xz"))
8886 (sha256
8887 (base32
8888 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8889 (build-system meson-build-system)
8890 (arguments
8891 '(#:glib-or-gtk? #t
8892 #:phases
8893 (modify-phases %standard-phases
8894 (add-after 'unpack 'skip-gtk-update-icon-cache
8895 ;; Don't create 'icon-theme.cache'.
8896 (lambda _
8897 (substitute* "build-aux/meson/postinstall.py"
8898 (("gtk-update-icon-cache") "true"))
8899 #t)))
8900 ;; XXX: FAIL: check-nautilus
8901 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8902 #:tests? #f))
8903 (native-inputs
8904 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8905 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8906 ("gobject-introspection" ,gobject-introspection)
8907 ("intltool" ,intltool)
8908 ("pkg-config" ,pkg-config)))
8909 (inputs
8910 `(("dconf" ,dconf)
8911 ("gexiv2" ,gexiv2)
8912 ("gvfs" ,gvfs)
8913 ("exempi" ,exempi)
8914 ("gnome-desktop" ,gnome-desktop)
8915 ("gnome-autoar" ,gnome-autoar)
8916 ("gst-plugins-base" ,gst-plugins-base)
8917 ("libseccomp" ,libseccomp)
8918 ("libselinux" ,libselinux)
8919 ("tracker" ,tracker)
8920 ("tracker-miners" ,tracker-miners)
8921 ;; XXX: gtk+ is required by libnautilus-extension.pc
8922 ;;
8923 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8924 ;; package. See:
8925 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8926 ("gtk+" ,gtk+)
8927 ("libexif" ,libexif)
8928 ("libxml2" ,libxml2)))
8929 (synopsis "File manager for GNOME")
8930 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8931 (description
8932 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8933 design and behaviour, giving the user a simple way to navigate and manage its
8934 files.")
8935 (license license:gpl2+)))
8936
8937 (define-public baobab
8938 (package
8939 (name "baobab")
8940 (version "3.38.0")
8941 (source (origin
8942 (method url-fetch)
8943 (uri (string-append
8944 "mirror://gnome/sources/" name "/"
8945 (version-major+minor version) "/"
8946 name "-" version ".tar.xz"))
8947 (sha256
8948 (base32
8949 "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104"))))
8950 (build-system meson-build-system)
8951 (arguments
8952 '(#:glib-or-gtk? #t))
8953 (native-inputs
8954 `(("intltool" ,intltool)
8955 ("pkg-config" ,pkg-config)
8956 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8957 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8958 ("itstool" ,itstool)
8959 ("xmllint" ,libxml2)
8960 ("glib" ,glib "bin")
8961 ("vala" ,vala)))
8962 (inputs
8963 `(("gtk+" ,gtk+)))
8964 (synopsis "Disk usage analyzer for GNOME")
8965 (description
8966 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8967 usage in the GNOME desktop environment. It can easily scan device volumes or
8968 a specific user-requested directory branch (local or remote). Once the scan
8969 is complete it provides a graphical representation of each selected folder.")
8970 (home-page "https://wiki.gnome.org/Apps/Baobab")
8971 (license license:gpl2+)))
8972
8973 (define-public gnome-backgrounds
8974 (package
8975 (name "gnome-backgrounds")
8976 (version "3.34.0")
8977 (source
8978 (origin
8979 (method url-fetch)
8980 (uri (string-append "mirror://gnome/sources/" name "/"
8981 (version-major+minor version) "/"
8982 name "-" version ".tar.xz"))
8983 (sha256
8984 (base32
8985 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8986 (build-system meson-build-system)
8987 (native-inputs
8988 `(("intltool" ,intltool)))
8989 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8990 (synopsis "Background images for the GNOME desktop")
8991 (description
8992 "GNOME backgrounds package contains a collection of graphics files which
8993 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8994 the package creates the proper framework and directory structure so that you
8995 can add your own files to the collection.")
8996 (license (list license:gpl2+
8997 license:cc-by2.0
8998 license:cc-by-sa2.0
8999 license:cc-by-sa3.0))))
9000
9001 (define-public gnome-screenshot
9002 (package
9003 (name "gnome-screenshot")
9004 (version "3.34.0")
9005 (source
9006 (origin
9007 (method url-fetch)
9008 (uri (string-append "mirror://gnome/sources/" name "/"
9009 (version-major+minor version) "/"
9010 name "-" version ".tar.xz"))
9011 (sha256
9012 (base32
9013 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
9014 (build-system meson-build-system)
9015 (arguments
9016 '(#:phases
9017 (modify-phases %standard-phases
9018 (add-after 'unpack 'skip-gtk-update-icon-cache
9019 ;; Don't create 'icon-theme.cache'.
9020 (lambda _
9021 (substitute* "build-aux/postinstall.py"
9022 (("gtk-update-icon-cache") "true"))
9023 #t)))))
9024 (native-inputs
9025 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
9026 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9027 ("intltool" ,intltool)
9028 ("appstream-glib" ,appstream-glib)
9029 ("pkg-config" ,pkg-config)))
9030 (inputs
9031 `(("gtk+" ,gtk+)
9032 ("libcanberra" ,libcanberra)
9033 ("libx11" ,libx11)
9034 ("libxext" ,libxext)))
9035 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
9036 (synopsis "Take pictures of your screen")
9037 (description
9038 "GNOME Screenshot is a utility used for taking screenshots of the entire
9039 screen, a window or a user defined area of the screen, with optional
9040 beautifying border effects.")
9041 (license license:gpl2+)))
9042
9043 (define-public dconf-editor
9044 (package
9045 (name "dconf-editor")
9046 (version "3.34.2")
9047 (source
9048 (origin
9049 (method url-fetch)
9050 (uri (string-append "mirror://gnome/sources/" name "/"
9051 (version-major+minor version) "/"
9052 name "-" version ".tar.xz"))
9053 (sha256
9054 (base32
9055 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
9056 (build-system meson-build-system)
9057 (native-inputs
9058 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9059 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9060 ("intltool" ,intltool)
9061 ("pkg-config" ,pkg-config)
9062 ("vala" ,vala)))
9063 (inputs
9064 `(("dconf" ,dconf)
9065 ("gtk+" ,gtk+)
9066 ("libxml2" ,libxml2)))
9067 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9068 (synopsis "Graphical editor for GNOME's dconf configuration system")
9069 (description
9070 "Dconf-editor is a graphical tool for browsing and editing the dconf
9071 configuration system for GNOME. It allows users to configure desktop
9072 software that do not provide their own configuration interface.")
9073 (license license:lgpl2.1+)))
9074
9075 (define-public gnome-default-applications
9076 (package
9077 (name "gnome-default-applications")
9078 (version "0")
9079 (build-system trivial-build-system)
9080 (source #f)
9081 (propagated-inputs
9082 `(("nautilus" ,nautilus)
9083 ("evince" ,evince)))
9084 (arguments
9085 `(#:modules ((guix build utils))
9086 #:builder
9087 (begin
9088 (use-modules (guix build utils))
9089 (let* ((out (assoc-ref %outputs "out"))
9090 (apps (string-append out "/share/applications")))
9091 (mkdir-p apps)
9092 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9093 (lambda (port)
9094 (format port "[Default Applications]\n")
9095 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9096 (format port "application/pdf=evince.desktop\n")
9097 (format port "application/postscript=evince.desktop\n")))
9098 #t))))
9099 (synopsis "Default MIME type associations for the GNOME desktop")
9100 (description
9101 "Given many installed packages which might handle a given MIME type, a
9102 user running the GNOME desktop probably has some preferences: for example,
9103 that folders be opened by default by the Nautilus file manager, not the Baobab
9104 disk usage analyzer. This package establishes that set of default MIME type
9105 associations for GNOME.")
9106 (license license:gpl3+)
9107 (home-page #f)))
9108
9109 (define-public libgovirt
9110 (package
9111 (name "libgovirt")
9112 (version "0.3.8")
9113 (source (origin
9114 (method url-fetch)
9115 (uri (string-append "mirror://gnome/sources/" name "/"
9116 (version-major+minor version) "/"
9117 name "-" version ".tar.xz"))
9118 (sha256
9119 (base32
9120 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9121 (build-system glib-or-gtk-build-system)
9122 (native-inputs
9123 `(("gettext" ,gettext-minimal)
9124 ("glib:bin" ,glib "bin")
9125 ("gobject-introspection" ,gobject-introspection)
9126 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9127 ("gtk+:bin" ,gtk+ "bin")
9128 ("pkg-config" ,pkg-config)))
9129 (inputs
9130 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
9131 ("librest" ,rest)))
9132 (synopsis "GoVirt Library")
9133 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9134 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9135 (license license:gpl2+)))
9136
9137 (define-public gnome-weather
9138 (package
9139 (name "gnome-weather")
9140 (version "3.34.0")
9141 (source (origin
9142 (method url-fetch)
9143 (uri (string-append "mirror://gnome/sources/" name "/"
9144 (version-major+minor version) "/"
9145 name "-" version ".tar.xz"))
9146 (sha256
9147 (base32
9148 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
9149 (build-system meson-build-system)
9150 (native-inputs
9151 `(("gettext" ,gettext-minimal)
9152 ("glib:bin" ,glib "bin")
9153 ("gobject-introspection" ,gobject-introspection)
9154 ("gtk+:bin" ,gtk+ "bin")
9155 ("pkg-config" ,pkg-config)))
9156 (inputs
9157 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
9158 ("appstream-glib" ,appstream-glib)
9159 ("geoclue" ,geoclue)
9160 ("gdk-pixbuf" ,gdk-pixbuf)
9161 ("gjs" ,gjs)
9162 ("gnome-desktop" ,gnome-desktop)
9163 ("libgweather" ,libgweather)))
9164 (arguments
9165 `(#:glib-or-gtk? #t
9166 #:phases
9167 (modify-phases %standard-phases
9168 (add-after 'install 'fix-desktop-file
9169 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
9170 ;; See https://issues.guix.gnu.org/issue/39324.
9171 (lambda* (#:key outputs #:allow-other-keys)
9172 (let* ((out (assoc-ref outputs "out"))
9173 (applications (string-append out "/share/applications")))
9174 (substitute* (string-append applications "/org.gnome.Weather.desktop")
9175 (("Exec=.*") "Exec=gnome-weather\n"))
9176 #t)))
9177 (add-after 'install 'wrap
9178 (lambda* (#:key inputs outputs #:allow-other-keys)
9179 (let ((out (assoc-ref outputs "out"))
9180 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9181 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
9182 (wrap-program (string-append out "/bin/gnome-weather")
9183 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
9184 #t))))))
9185 (synopsis "Weather monitoring for GNOME desktop")
9186 (description "GNOME Weather is a small application that allows you to
9187 monitor the current weather conditions for your city, or anywhere in the
9188 world.")
9189 (home-page "https://wiki.gnome.org/Apps/Weather")
9190 (license license:gpl2+)))
9191
9192 (define-public gnome
9193 (package
9194 (name "gnome")
9195 (version (package-version gnome-shell))
9196 (source #f)
9197 (build-system trivial-build-system)
9198 (arguments '(#:builder (begin (mkdir %output) #t)))
9199 (propagated-inputs
9200 ;; TODO: Add or remove packages according to:
9201 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
9202 `(
9203 ;; GNOME-Core-OS-Services
9204 ("accountsservice" ,accountsservice)
9205 ("network-manager" ,network-manager)
9206 ("packagekit" ,packagekit)
9207 ("upower" ,upower)
9208 ;; GNOME-Core-Shell
9209 ("adwaita-icon-theme" ,adwaita-icon-theme)
9210 ("gdm" ,gdm)
9211 ("glib-networking" ,glib-networking)
9212 ("gnome-backgrounds" ,gnome-backgrounds)
9213 ("gnome-bluetooth" ,gnome-bluetooth)
9214 ("gnome-color-manager" ,gnome-color-manager)
9215 ("gnome-control-center" ,gnome-control-center)
9216 ("gnome-desktop" ,gnome-desktop)
9217 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
9218 ("gnome-initial-setup" ,gnome-initial-setup)
9219 ("gnome-keyring" ,gnome-keyring)
9220 ("gnome-menus" ,gnome-menus)
9221 ("gnome-session" ,gnome-session)
9222 ("gnome-settings-daemon" ,gnome-settings-daemon)
9223 ("gnome-shell-extensions" ,gnome-shell-extensions)
9224 ("gnome-shell" ,gnome-shell)
9225 ("gnome-themes-extra" ,gnome-themes-extra)
9226 ("gnome-user-docs" ,gnome-user-docs)
9227 ("gnome-user-share" ,gnome-user-share)
9228 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9229 ("gvfs" ,gvfs)
9230 ("mutter" ,mutter)
9231 ("orca" ,orca)
9232 ("rygel" ,rygel)
9233 ("sushi" ,sushi)
9234 ;; GNOME-Core-Utilities
9235 ("baobab" ,baobab)
9236 ("cheese" ,cheese)
9237 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9238 ;; only works on x86_64, so exclude it on other architectures.
9239 ,@(if (string-prefix? "x86_64" (%current-system))
9240 `(("eog" ,eog))
9241 '())
9242 ("epiphany" ,epiphany)
9243 ("evince" ,evince)
9244 ("file-roller" ,file-roller)
9245 ("gedit" ,gedit)
9246 ("gnome-boxes" ,gnome-boxes)
9247 ("gnome-calculator" ,gnome-calculator)
9248 ("gnome-calendar" ,gnome-calendar)
9249 ("gnome-characters" ,gnome-characters)
9250 ("gnome-clocks" ,gnome-clocks)
9251 ("gnome-contacts" ,gnome-contacts)
9252 ("gnome-disk-utility" ,gnome-disk-utility)
9253 ("gnome-font-viewer" ,gnome-font-viewer)
9254 ("gnome-maps" ,gnome-maps)
9255 ; TODO: ("gnome-music" ,gnome-music)
9256 ; TODO: ("gnome-photos" ,gnome-photos)
9257 ("gnome-screenshot" ,gnome-screenshot)
9258 ("gnome-system-monitor" ,gnome-system-monitor)
9259 ("gnome-terminal" ,gnome-terminal)
9260 ("gnome-weather" ,gnome-weather)
9261 ("nautilus" ,nautilus)
9262 ("simple-scan" ,simple-scan)
9263 ("totem" ,totem)
9264 ("yelp" ,yelp)
9265 ;; Others
9266 ("hicolor-icon-theme" ,hicolor-icon-theme)
9267 ("gnome-online-accounts" ,gnome-online-accounts)
9268
9269 ;; Packages not part of GNOME proper but that are needed for a good
9270 ;; experience. See <https://bugs.gnu.org/39646>.
9271 ;; XXX: Find out exactly which ones are needed and why.
9272 ("font-cantarell" ,font-cantarell)
9273 ("font-dejavu" ,font-dejavu)
9274 ("at-spi2-core" ,at-spi2-core)
9275 ("dbus" ,dbus)
9276 ("dconf" ,dconf)
9277 ("desktop-file-utils" ,desktop-file-utils)
9278 ("gnome-default-applications" ,gnome-default-applications)
9279 ("gnome-themes-standard" ,gnome-themes-standard)
9280 ("gst-plugins-base" ,gst-plugins-base)
9281 ("gst-plugins-good" ,gst-plugins-good)
9282 ("gucharmap" ,gucharmap)
9283 ("pinentry-gnome3" ,pinentry-gnome3)
9284 ("pulseaudio" ,pulseaudio)
9285 ("shared-mime-info" ,shared-mime-info)
9286 ("system-config-printer" ,system-config-printer)
9287 ("xdg-user-dirs" ,xdg-user-dirs)
9288 ("yelp" ,yelp)
9289 ("zenity" ,zenity)))
9290 (synopsis "The GNU desktop environment")
9291 (home-page "https://www.gnome.org/")
9292 (description
9293 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9294 applications for browsing the web, editing text and images, creating
9295 documents and diagrams, playing media, scanning, and much more.")
9296 (license license:gpl2+)))
9297
9298 (define-public byzanz
9299 ;; The last stable release of Byzanz was in 2011, but there have been many
9300 ;; useful commits made to the Byzanz repository since then that it would be
9301 ;; silly to use such an old release.
9302 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9303 (package
9304 (name "byzanz")
9305 (version (string-append "0.2-1." (string-take commit 7)))
9306 (source (origin
9307 (method git-fetch)
9308 (uri (git-reference
9309 (url "https://git.gnome.org/browse/byzanz")
9310 (commit commit)))
9311 (file-name (string-append name "-" version "-checkout"))
9312 (sha256
9313 (base32
9314 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9315 (build-system glib-or-gtk-build-system)
9316 (arguments
9317 '(#:phases
9318 (modify-phases %standard-phases
9319 (add-before 'bootstrap 'build-without-Werror
9320 (lambda _
9321 ;; The build system cleverly detects that we're not building from
9322 ;; a release tarball and turns on -Werror for GCC.
9323 ;; Unsurprisingly, there is a warning during compilation that
9324 ;; causes the build to fail unnecessarily, so we remove the flag.
9325 (substitute* '("configure.ac")
9326 (("-Werror") ""))
9327 #t)))))
9328 (native-inputs
9329 `(("autoconf" ,autoconf)
9330 ("automake" ,automake)
9331 ("gnome-common" ,gnome-common)
9332 ("intltool" ,intltool)
9333 ("libtool" ,libtool)
9334 ("pkg-config" ,pkg-config)
9335 ("which" ,which)))
9336 (inputs
9337 `(("glib" ,glib)
9338 ("gstreamer" ,gstreamer)
9339 ("gst-plugins-base" ,gst-plugins-base)
9340 ("gtk+" ,gtk+)))
9341 (synopsis "Desktop recording program")
9342 (description "Byzanz is a simple desktop recording program with a
9343 command-line interface. It can record part or all of an X display for a
9344 specified duration and save it as a GIF encoded animated image file.")
9345 (home-page "https://git.gnome.org/browse/byzanz")
9346 (license license:gpl2+))))
9347
9348 (define-public authenticator
9349 (package
9350 (name "authenticator")
9351 (version "3.32.2")
9352 (source
9353 (origin
9354 (method git-fetch)
9355 (uri (git-reference
9356 (url "https://gitlab.gnome.org/World/Authenticator")
9357 (commit version)))
9358 (file-name (git-file-name name version))
9359 (sha256
9360 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9361 (build-system meson-build-system)
9362 (arguments
9363 `(#:glib-or-gtk? #t
9364 #:phases
9365 (modify-phases %standard-phases
9366 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9367 (lambda* (#:key inputs outputs #:allow-other-keys)
9368 (let ((prog (string-append (assoc-ref outputs "out")
9369 "/bin/authenticator"))
9370 (pylib (string-append (assoc-ref outputs "out")
9371 "/lib/python"
9372 ,(version-major+minor
9373 (package-version python))
9374 "/site-packages")))
9375 (wrap-program prog
9376 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
9377 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9378 #t))))))
9379 (native-inputs
9380 `(("desktop-file-utils" ,desktop-file-utils)
9381 ("gettext" ,gettext-minimal)
9382 ("glib:bin" ,glib "bin")
9383 ("gobject-introspection" ,gobject-introspection)
9384 ("gtk+:bin" ,gtk+ "bin")
9385 ("pkg-config" ,pkg-config)))
9386 (inputs
9387 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9388 ("gtk+" ,gtk+)
9389 ("libhandy" ,libhandy-0.0)
9390 ("libsecret" ,libsecret)
9391 ("python-beautifulsoup4" ,python-beautifulsoup4)
9392 ("python-pillow" ,python-pillow)
9393 ("python-pyfavicon" ,python-pyfavicon)
9394 ("python-pygobject" ,python-pygobject)
9395 ("python-pyotp" ,python-pyotp)
9396 ("python-pyzbar" ,python-pyzbar)
9397 ("yoyo-migrations" ,yoyo-migrations)
9398 ("zbar" ,zbar)))
9399 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9400 (synopsis "Two-factor authentication application built for GNOME")
9401 (description
9402 "Authenticator is a two-factor authentication (2FA) application built for
9403 the GNOME desktop environment.
9404
9405 Features:
9406
9407 @itemize
9408 @item QR code scanner
9409 @item Beautiful UI
9410 @item Huge database of more than 560 supported services
9411 @item Keep your PIN tokens secure by locking the application with a password
9412 @item Automatically fetch an image for services using their favicon
9413 @item The possibility to add new services
9414 @end itemize")
9415 (license license:gpl3+)))
9416
9417 (define-public gsound
9418 (package
9419 (name "gsound")
9420 (version "1.0.2")
9421 (source (origin
9422 (method url-fetch)
9423 (uri (string-append "mirror://gnome/sources/" name "/"
9424 (version-major+minor version) "/"
9425 name "-" version ".tar.xz"))
9426 (sha256
9427 (base32
9428 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9429 (build-system glib-or-gtk-build-system)
9430 (native-inputs
9431 `(("pkg-config" ,pkg-config)
9432 ("gobject-introspection" ,gobject-introspection)
9433 ("vala" ,vala)))
9434 (inputs
9435 `(("glib" ,glib)
9436 ("libcanberra" ,libcanberra)))
9437 (home-page "https://wiki.gnome.org/Projects/GSound")
9438 (synopsis "GObject wrapper for libcanberra")
9439 (description
9440 "GSound is a small library for playing system sounds. It's designed to be
9441 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9442 library.")
9443 (license license:lgpl2.1+)))
9444
9445 (define-public libzapojit
9446 (package
9447 (name "libzapojit")
9448 (version "0.0.3")
9449 (source (origin
9450 (method url-fetch)
9451 (uri (string-append "mirror://gnome/sources/" name "/"
9452 (version-major+minor version) "/"
9453 name "-" version ".tar.xz"))
9454 (sha256
9455 (base32
9456 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9457 (build-system gnu-build-system)
9458 (native-inputs
9459 `(("gobject-introspection" ,gobject-introspection)
9460 ("intltool" ,intltool)
9461 ("pkg-config" ,pkg-config)))
9462 (inputs
9463 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9464 ("json-glib" ,json-glib)
9465 ("rest" ,rest)))
9466 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9467 (synopsis "Library for accessing SkyDrive and Hotmail")
9468 (description
9469 "Libzapojit is a GLib-based library for accessing online service APIs of
9470 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9471 (license license:lgpl2.1+)))
9472
9473 (define-public gnome-clocks
9474 (package
9475 (name "gnome-clocks")
9476 (version "3.34.0")
9477 (source (origin
9478 (method url-fetch)
9479 (uri (string-append "mirror://gnome/sources/" name "/"
9480 (version-major+minor version) "/"
9481 name "-" version ".tar.xz"))
9482 (sha256
9483 (base32
9484 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9485 (build-system meson-build-system)
9486 (arguments
9487 '(#:glib-or-gtk? #t
9488 #:phases
9489 (modify-phases %standard-phases
9490 (add-after 'unpack 'skip-gtk-update-icon-cache
9491 ;; Don't create 'icon-theme.cache'.
9492 (lambda _
9493 (substitute* "build-aux/post-install.py"
9494 (("gtk-update-icon-cache") "true"))
9495 #t)))))
9496 (native-inputs
9497 `(("vala" ,vala)
9498 ("pkg-config" ,pkg-config)
9499 ("glib" ,glib "bin") ; for glib-compile-resources
9500 ("desktop-file-utils" ,desktop-file-utils)
9501 ("gettext" ,gettext-minimal)
9502 ("itstool" ,itstool)))
9503 (inputs
9504 `(("glib" ,glib)
9505 ("gtk+" ,gtk+)
9506 ("gsound" ,gsound)
9507 ("geoclue" ,geoclue)
9508 ("geocode-glib" ,geocode-glib)
9509 ("libgweather" ,libgweather)
9510 ("gnome-desktop" ,gnome-desktop)))
9511 (home-page "https://wiki.gnome.org/Apps/Clocks")
9512 (synopsis "GNOME's clock application")
9513 (description
9514 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9515 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9516 (license license:gpl3+)))
9517
9518 (define-public gnome-calendar
9519 (package
9520 (name "gnome-calendar")
9521 (version "3.34.2")
9522 (source (origin
9523 (method url-fetch)
9524 (uri (string-append "mirror://gnome/sources/" name "/"
9525 (version-major+minor version) "/"
9526 name "-" version ".tar.xz"))
9527 (sha256
9528 (base32
9529 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9530 (build-system meson-build-system)
9531 (arguments
9532 '(#:glib-or-gtk? #t
9533 ;; gnome-calendar has to be installed before the tests can be run
9534 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9535 #:tests? #f
9536 #:phases
9537 (modify-phases %standard-phases
9538 (add-after 'unpack 'skip-gtk-update-icon-cache
9539 ;; Don't create 'icon-theme.cache'.
9540 (lambda _
9541 (substitute* "build-aux/meson/meson_post_install.py"
9542 (("gtk-update-icon-cache") "true"))
9543 #t)))))
9544 (native-inputs
9545 `(("gettext" ,gettext-minimal)
9546 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9547 ("pkg-config" ,pkg-config)))
9548 (inputs
9549 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9550 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9551 ("libdazzle" ,libdazzle)
9552 ("libedataserverui" ,evolution-data-server)
9553 ("libgweather" ,libgweather)
9554 ("geoclue" ,geoclue)))
9555 (propagated-inputs
9556 `(("evolution-data-server" ,evolution-data-server)))
9557 (home-page "https://wiki.gnome.org/Apps/Calendar")
9558 (synopsis "GNOME's calendar application")
9559 (description
9560 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9561 desktop. It supports multiple calendars, month, week and year view.")
9562 (license license:gpl3+)))
9563
9564 (define-public gnome-todo
9565 (package
9566 (name "gnome-todo")
9567 (version "3.28.1")
9568 (source (origin
9569 (method url-fetch)
9570 (uri (string-append "mirror://gnome/sources/" name "/"
9571 (version-major+minor version) "/"
9572 name "-" version ".tar.xz"))
9573 (sha256
9574 (base32
9575 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9576 (patches
9577 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9578 (build-system meson-build-system)
9579 (arguments
9580 '(#:glib-or-gtk? #t
9581 #:phases (modify-phases %standard-phases
9582 (add-after
9583 'install 'wrap-gnome-todo
9584 (lambda* (#:key inputs outputs #:allow-other-keys)
9585 (let ((out (assoc-ref outputs "out"))
9586 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9587 (python-path (getenv "PYTHONPATH")))
9588 (wrap-program (string-append out "/bin/gnome-todo")
9589 ;; XXX: gi plugins are broken.
9590 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9591 ;; For plugins.
9592 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9593 `("PYTHONPATH" ":" prefix (,python-path))))
9594 #t)))))
9595 (native-inputs
9596 `(("gettext" ,gettext-minimal)
9597 ("gobject-introspection" ,gobject-introspection)
9598 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9599 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9600 ("pkg-config" ,pkg-config)))
9601 (inputs
9602 `(("rest" ,rest) ; For Todoist plugin
9603 ("json-glib" ,json-glib) ; For Todoist plugin
9604 ("libedataserverui" ,evolution-data-server)
9605 ("libical" ,libical)
9606 ("libpeas" ,libpeas)
9607 ("python-pygobject" ,python-pygobject)
9608 ("evolution-data-server" ,evolution-data-server)
9609 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9610 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9611 (home-page "https://wiki.gnome.org/Apps/Todo")
9612 (synopsis "GNOME's ToDo Application")
9613 (description
9614 "GNOME To Do is a simplistic personal task manager designed to perfectly
9615 fit the GNOME desktop.")
9616 (license license:gpl3+)))
9617
9618 (define-public gnome-dictionary
9619 (package
9620 (name "gnome-dictionary")
9621 (version "3.26.1")
9622 (source (origin
9623 (method url-fetch)
9624 (uri (string-append "mirror://gnome/sources/" name "/"
9625 (version-major+minor version) "/"
9626 name "-" version ".tar.xz"))
9627 (sha256
9628 (base32
9629 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9630 (build-system meson-build-system)
9631 (arguments '(#:glib-or-gtk? #t
9632 #:phases (modify-phases %standard-phases
9633 (add-after 'unpack 'patch-install-script
9634 (lambda _
9635 ;; This script attempts to compile glib schemas
9636 ;; and create an empty MIME database. We do
9637 ;; that elsewhere, so prevent it from running.
9638 (substitute* "build-aux/post-install.sh"
9639 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9640 #t)))))
9641 (native-inputs
9642 `(("glib:bin" ,glib "bin")
9643 ("gobject-introspection" ,gobject-introspection)
9644 ("intltool" ,intltool)
9645 ("itstool" ,itstool)
9646 ("pkg-config" ,pkg-config)
9647 ("xmllint" ,libxml2)))
9648 (inputs
9649 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9650 ("gtk+" ,gtk+)))
9651 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9652 (synopsis "Look up words in dictionary sources")
9653 (description
9654 "GNOME Dictionary can look for the definition or translation of a word in
9655 existing databases over the internet.")
9656 (license license:gpl3+)))
9657
9658 (define-public gnome-tweaks
9659 (package
9660 (name "gnome-tweaks")
9661 (version "3.34.1")
9662 (source (origin
9663 (method url-fetch)
9664 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9665 (version-major+minor version) "/"
9666 "gnome-tweaks-" version ".tar.xz"))
9667 (patches
9668 (list (search-patch "gnome-tweaks-search-paths.patch")))
9669 (sha256
9670 (base32
9671 "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq"))))
9672 (build-system meson-build-system)
9673 (arguments
9674 `(#:glib-or-gtk? #t
9675 #:configure-flags '("-Dlocalstatedir=/tmp"
9676 "-Dsysconfdir=/tmp")
9677 #:imported-modules ((guix build python-build-system)
9678 ,@%meson-build-system-modules)
9679 #:phases
9680 (modify-phases %standard-phases
9681 (add-after 'unpack 'skip-gtk-update-icon-cache
9682 ;; Don't create 'icon-theme.cache'.
9683 (lambda _
9684 (substitute* "meson-postinstall.py"
9685 (("gtk-update-icon-cache") "true"))
9686 #t))
9687 (add-after 'install 'wrap
9688 (@@ (guix build python-build-system) wrap))
9689 (add-after 'wrap 'wrap-gi-typelib
9690 (lambda* (#:key inputs outputs #:allow-other-keys)
9691 (let ((out (assoc-ref outputs "out"))
9692 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9693 (wrap-program (string-append out "/bin/gnome-tweaks")
9694 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9695 #t)))))
9696 (native-inputs
9697 `(("intltool" ,intltool)
9698 ("pkg-config" ,pkg-config)))
9699 (inputs
9700 `(("gnome-desktop" ,gnome-desktop)
9701 ("gtk+" ,gtk+)
9702 ("gobject-introspection" ,gobject-introspection)
9703 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9704 ("libhandy" ,libhandy-0.0)
9705 ("libnotify" ,libnotify)
9706 ("libsoup" ,libsoup)
9707 ("nautilus" ,nautilus)
9708 ("python" ,python)
9709 ("python-pygobject" ,python-pygobject)))
9710 (synopsis "Customize advanced GNOME 3 options")
9711 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9712 (description
9713 "GNOME Tweaks allows adjusting advanced configuration settings in
9714 GNOME 3. This includes things like the fonts used in user interface elements,
9715 alternative user interface themes, changes in window management behavior,
9716 GNOME Shell appearance and extension, etc.")
9717 (license license:gpl3+)))
9718
9719 (define-public gnome-shell-extensions
9720 (package
9721 (name "gnome-shell-extensions")
9722 (version "3.34.2")
9723 (source (origin
9724 (method url-fetch)
9725 (uri (string-append "mirror://gnome/sources/" name "/"
9726 (version-major+minor version) "/"
9727 name "-" version ".tar.xz"))
9728 (sha256
9729 (base32
9730 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9731 (build-system meson-build-system)
9732 (arguments
9733 '(#:configure-flags '("-Dextension_set=all")))
9734 (native-inputs
9735 `(("glib:bin" ,glib "bin")
9736 ("intltool" ,intltool)
9737 ("pkg-config" ,pkg-config)))
9738 (propagated-inputs
9739 `(("glib" ,glib)))
9740 (synopsis "Extensions for GNOME Shell")
9741 (description "GNOME Shell extensions modify and extend GNOME Shell
9742 functionality and behavior.")
9743 (home-page "https://extensions.gnome.org/")
9744 (license license:gpl3+)))
9745
9746 (define-public folks
9747 (package
9748 (name "folks")
9749 (version "0.13.1")
9750 (source (origin
9751 (method url-fetch)
9752 (uri (string-append
9753 "mirror://gnome/sources/folks/"
9754 (version-major+minor version) "/"
9755 "folks-" version ".tar.xz"))
9756 (sha256
9757 (base32
9758 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9759 (build-system meson-build-system)
9760 (arguments
9761 '(#:phases
9762 (modify-phases %standard-phases
9763 (add-after 'unpack 'skip-gtk-update-icon-cache
9764 ;; Don't create 'icon-theme.cache'.
9765 (lambda _
9766 (substitute* "meson_post_install.py"
9767 (("gtk-update-icon-cache") "true"))
9768 #t)))))
9769 (inputs
9770 `(("bdb" ,bdb)
9771 ("dbus-glib" ,dbus-glib)
9772 ("evolution-data-server" ,evolution-data-server)
9773 ("glib" ,glib)
9774 ("libgee" ,libgee)
9775 ("readline" ,readline)
9776 ("telepathy-glib" ,telepathy-glib)))
9777 (native-inputs
9778 `(("glib:bin" ,glib "bin")
9779 ("gobject-introspection" ,gobject-introspection)
9780 ("intltool" ,intltool)
9781 ("pkg-config" ,pkg-config)
9782 ("vala" ,vala)))
9783 (synopsis "Library to aggregate data about people")
9784 (description "Libfolks is a library that aggregates information about people
9785 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9786 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9787 etc.) to create metacontacts. It's written in Vala, which generates C code when
9788 compiled.")
9789 (home-page "https://wiki.gnome.org/Projects/Folks")
9790 (license license:lgpl2.1+)))
9791
9792 (define-public gfbgraph
9793 (package
9794 (name "gfbgraph")
9795 (version "0.2.4")
9796 (source (origin
9797 (method url-fetch)
9798 (uri (string-append
9799 "mirror://gnome/sources/gfbgraph/"
9800 (version-major+minor version) "/"
9801 "gfbgraph-" version ".tar.xz"))
9802 (sha256
9803 (base32
9804 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9805 (build-system glib-or-gtk-build-system)
9806 (arguments
9807 `(#:tests? #f ; tests appear to require the network
9808 #:configure-flags '("--disable-static"
9809 "--enable-gtk-doc"
9810 "--enable-introspection")))
9811 (native-inputs
9812 `(("gobject-introspection" ,gobject-introspection)
9813 ("gtk-doc" ,gtk-doc/stable)
9814 ("pkg-config" ,pkg-config)
9815
9816 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9817 ("autoconf" ,autoconf)
9818 ("automake" ,automake)
9819 ("libtool" ,libtool)
9820 ("which" ,which)))
9821 (inputs
9822 `(("json-glib" ,json-glib)
9823 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9824 ("rest" ,rest)))
9825 (synopsis "GLib/GObject wrapper for the Facebook API")
9826 (description "This library allows you to use the Facebook API from
9827 GLib/GObject code.")
9828 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9829 (license license:lgpl2.1+)))
9830
9831 (define-public libgnomekbd
9832 (package
9833 (name "libgnomekbd")
9834 (version "3.26.1")
9835 (source (origin
9836 (method url-fetch)
9837 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9838 (version-major+minor version) "/"
9839 "libgnomekbd-" version ".tar.xz"))
9840 (sha256
9841 (base32
9842 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9843 (build-system gnu-build-system)
9844 (native-inputs
9845 `(("pkg-config" ,pkg-config)
9846 ("glib" ,glib "bin")
9847 ("intltool" ,intltool)))
9848 (propagated-inputs
9849 ;; Referred to in .h files and .pc.
9850 `(("glib" ,glib)
9851 ("gtk+" ,gtk+)
9852 ("libxklavier" ,libxklavier)))
9853 (home-page "https://www.gnome.org")
9854 (synopsis "GNOME keyboard configuration library")
9855 (description
9856 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9857 environment, which can notably display keyboard layouts.")
9858 (license license:lgpl2.0+)))
9859
9860 ;;; This package is no longer maintained:
9861 ;;; https://wiki.gnome.org/Attic/LibUnique
9862 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9863 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9864 (define-public libunique
9865 (package
9866 (name "libunique")
9867 (version "3.0.2")
9868 (source (origin
9869 (method url-fetch)
9870 (uri (string-append "mirror://gnome/sources/" name "/"
9871 (version-major+minor version) "/"
9872 name "-" version ".tar.xz"))
9873 (sha256
9874 (base32
9875 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9876 (build-system glib-or-gtk-build-system)
9877 (arguments
9878 `(#:configure-flags '("--disable-static"
9879 "--disable-dbus" ; use gdbus
9880 "--enable-introspection")))
9881 (native-inputs
9882 `(("pkg-config" ,pkg-config)
9883 ("gobject-introspection" ,gobject-introspection)
9884 ("glib:bin" ,glib "bin")
9885 ("gtk-doc" ,gtk-doc/stable)))
9886 (propagated-inputs
9887 ;; Referred to in .h files and .pc.
9888 `(("gtk+" ,gtk+)))
9889 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9890 (synopsis "Library for writing single instance applications")
9891 (description
9892 "Libunique is a library for writing single instance applications. If you
9893 launch a single instance application twice, the second instance will either just
9894 quit or will send a message to the running instance. Libunique makes it easy to
9895 write this kind of application, by providing a base class, taking care of all
9896 the IPC machinery needed to send messages to a running instance, and also
9897 handling the startup notification side.")
9898 (license license:lgpl2.1+)))
9899
9900 (define-public gnome-calculator
9901 (package
9902 (name "gnome-calculator")
9903 (version "3.34.1")
9904 (source
9905 (origin
9906 (method url-fetch)
9907 (uri (string-append "mirror://gnome/sources/" name "/"
9908 (version-major+minor version) "/"
9909 name "-" version ".tar.xz"))
9910 (sha256
9911 (base32
9912 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9913 (build-system meson-build-system)
9914 (arguments '(#:glib-or-gtk? #t))
9915 (native-inputs
9916 `(("gettext" ,gettext-minimal)
9917 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9918 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9919 ("itstool" ,itstool)
9920 ("vala" ,vala)
9921 ("pkg-config" ,pkg-config)))
9922 (inputs
9923 `(("glib" ,glib)
9924 ("gtksourceview" ,gtksourceview)
9925 ("libgee" ,libgee)
9926 ("libsoup" ,libsoup)
9927 ("libxml2" ,libxml2)
9928 ("mpc" ,mpc)
9929 ("mpfr" ,mpfr)))
9930 (home-page "https://wiki.gnome.org/Apps/Calculator")
9931 (synopsis "Desktop calculator")
9932 (description
9933 "Calculator is an application that solves mathematical equations and
9934 is suitable as a default application in a Desktop environment.")
9935 (license license:gpl3)))
9936
9937 (define-public xpad
9938 (package
9939 (name "xpad")
9940 (version "5.1.0")
9941 (source
9942 (origin
9943 (method url-fetch)
9944 (uri (string-append "https://launchpad.net/xpad/trunk/"
9945 version "/+download/"
9946 name "-" version ".tar.bz2"))
9947 (sha256
9948 (base32
9949 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9950 (build-system gnu-build-system)
9951 (native-inputs
9952 `(("autoconf" ,autoconf)
9953 ("automake" ,automake)
9954 ("gtk+:bin" ,gtk+ "bin")
9955 ("intltool" ,intltool)
9956 ("pkg-config" ,pkg-config)))
9957 (inputs
9958 `(("gtksourceview" ,gtksourceview-3)
9959 ("libsm" ,libsm)))
9960 (home-page "https://wiki.gnome.org/Apps/Xpad")
9961 (synopsis "Virtual sticky note")
9962 (description
9963 "Xpad is a sticky note that strives to be simple, fault tolerant,
9964 and customizable. Xpad consists of independent pad windows, each is
9965 basically a text box in which notes can be written.")
9966 (license license:gpl3+)))
9967
9968 (define-public gucharmap
9969 (let ((unicode-files
9970 '(("Blocks.txt"
9971 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9972 ("DerivedAge.txt"
9973 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9974 ("NamesList.txt"
9975 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9976 ("Scripts.txt"
9977 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9978 ("UnicodeData.txt"
9979 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9980 ("Unihan.zip"
9981 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9982 (package
9983 (name "gucharmap")
9984 (version "12.0.1")
9985 (source
9986 (origin
9987 (method url-fetch)
9988 (uri (string-append "mirror://gnome/sources/" name "/"
9989 (version-major+minor version) "/"
9990 name "-" version ".tar.xz"))
9991 (sha256
9992 (base32
9993 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9994 (build-system glib-or-gtk-build-system)
9995 (arguments
9996 `(#:modules ((ice-9 match)
9997 (guix build glib-or-gtk-build-system)
9998 (guix build utils))
9999 #:configure-flags
10000 (list "--with-unicode-data=../unicode-data")
10001 #:phases
10002 (modify-phases %standard-phases
10003 (add-after 'unpack 'prepare-unicode-data
10004 (lambda* (#:key inputs #:allow-other-keys)
10005 (mkdir-p "../unicode-data")
10006 (with-directory-excursion "../unicode-data"
10007 (for-each (match-lambda
10008 ((file _)
10009 (install-file (assoc-ref inputs file) ".")))
10010 ',unicode-files))
10011 #t)))))
10012 (native-inputs
10013 `(("desktop-file-utils" ,desktop-file-utils)
10014 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
10015 ("gobject-introspection" ,gobject-introspection)
10016 ("intltool" ,intltool)
10017 ("itstool" ,itstool)
10018 ("pkg-config" ,pkg-config)
10019 ,@(map (match-lambda
10020 ((file hash)
10021 `(,file
10022 ,(origin
10023 (method url-fetch)
10024 (uri (string-append
10025 "http://www.unicode.org/Public/12.0.0/ucd/"
10026 file))
10027 (sha256 (base32 hash))))))
10028 unicode-files)
10029 ("unzip" ,unzip)))
10030 (inputs
10031 `(("gtk+" ,gtk+)
10032 ("xmllint" ,libxml2)))
10033 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
10034 (synopsis "Unicode character picker and font browser")
10035 (description
10036 "This program allows you to browse through all the available Unicode
10037 characters and categories for the installed fonts, and to examine their
10038 detailed properties. It is an easy way to find the character you might
10039 only know by its Unicode name or code point.")
10040 (license license:gpl3+))))
10041
10042 (define-public bluefish
10043 (package
10044 (name "bluefish")
10045 (version "2.2.12")
10046 (source
10047 (origin
10048 (method url-fetch)
10049 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
10050 "bluefish-" version ".tar.gz"))
10051 (sha256
10052 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
10053 (build-system gnu-build-system)
10054 (native-inputs
10055 `(("desktop-file-utils" ,desktop-file-utils)
10056 ("intltool" ,intltool)
10057 ("pkg-config" ,pkg-config)))
10058 (inputs
10059 `(("enchant" ,enchant)
10060 ("gtk+" ,gtk+)
10061 ("python" ,python-wrapper)
10062 ("xmllint" ,libxml2)
10063 ("gucharmap" ,gucharmap)))
10064 (home-page "http://bluefish.openoffice.nl")
10065 (synopsis "Web development studio")
10066 (description
10067 "Bluefish is an editor aimed at programmers and web developers,
10068 with many options to write web sites, scripts and other code.
10069 Bluefish supports many programming and markup languages.")
10070 (license license:gpl3+)))
10071
10072 (define-public gnome-system-monitor
10073 (package
10074 (name "gnome-system-monitor")
10075 (version "3.32.1")
10076 (source
10077 (origin
10078 (method url-fetch)
10079 (uri (string-append "mirror://gnome/sources/" name "/"
10080 (version-major+minor version) "/"
10081 name "-" version ".tar.xz"))
10082 (sha256
10083 (base32
10084 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
10085 (build-system meson-build-system)
10086 (arguments
10087 '(#:glib-or-gtk? #t
10088 #:configure-flags '("-Dsystemd=false")))
10089 (native-inputs
10090 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
10091 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
10092 ("intltool" ,intltool)
10093 ("itstool" ,itstool)
10094 ("libgtop" ,libgtop)
10095 ("polkit" ,polkit)
10096 ("pkg-config" ,pkg-config)))
10097 (inputs
10098 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
10099 ("gtk+" ,gtk+)
10100 ("gtkmm" ,gtkmm)
10101 ("librsvg" ,librsvg)
10102 ("libxml2" ,libxml2)
10103 ("libwnck" ,libwnck)))
10104 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10105 (synopsis "Process viewer and system resource monitor for GNOME")
10106 (description
10107 "GNOME System Monitor is a GNOME process viewer and system monitor with
10108 an attractive, easy-to-use interface. It has features, such as a tree view
10109 for process dependencies, icons for processes, the ability to hide processes,
10110 graphical time histories of CPU/memory/swap usage and the ability to
10111 kill/reinice processes.")
10112 (license license:gpl2+)))
10113
10114 (define-public python-pyatspi
10115 (package
10116 (name "python-pyatspi")
10117 (version "2.34.0")
10118 (source (origin
10119 (method url-fetch)
10120 (uri (string-append
10121 "mirror://gnome/sources/pyatspi/"
10122 (version-major+minor version)
10123 "/pyatspi-" version ".tar.xz"))
10124 (sha256
10125 (base32
10126 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10127 (build-system gnu-build-system)
10128 (arguments
10129 `(#:phases
10130 (modify-phases %standard-phases
10131 (add-before 'build 'fix-atk-load
10132 (lambda _
10133 (substitute* "pyatspi/__init__.py"
10134 (("from gi.repository import Atspi")
10135 "gi.require_version('Gtk', '3.0')
10136 from gi.repository import Gtk
10137 from gi.repository import Atspi"))
10138 #t)))))
10139 (native-inputs
10140 `(("pkg-config" ,pkg-config)))
10141 (inputs
10142 `(("python" ,python)))
10143 (propagated-inputs
10144 `(("python-pygobject" ,python-pygobject)))
10145 (synopsis "Python client bindings for D-Bus AT-SPI")
10146 (home-page "https://wiki.linuxfoundation.org/accessibility\
10147 /atk/at-spi/at-spi_on_d-bus")
10148 (description
10149 "This package includes a python client library for the AT-SPI D-Bus
10150 accessibility infrastructure.")
10151 (license license:lgpl2.0)
10152 (properties '((upstream-name . "pyatspi")))))
10153
10154 (define-public python2-pyatspi
10155 (package/inherit python-pyatspi
10156 (name "python2-pyatspi")
10157 (inputs
10158 `(("python" ,python-2)))
10159 (propagated-inputs
10160 `(("python-pygobject" ,python2-pygobject)))))
10161
10162 (define-public orca
10163 (package
10164 (name "orca")
10165 (version "3.34.1")
10166 (source (origin
10167 (method url-fetch)
10168 (uri (string-append
10169 "mirror://gnome/sources/" name "/"
10170 (version-major+minor version) "/"
10171 name "-" version ".tar.xz"))
10172 (sha256
10173 (base32
10174 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
10175 (build-system glib-or-gtk-build-system)
10176 (arguments
10177 '(#:phases
10178 (modify-phases %standard-phases
10179 (add-before 'configure 'qualify-xkbcomp
10180 (lambda* (#:key inputs #:allow-other-keys)
10181 (let ((xkbcomp (string-append
10182 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10183 (substitute* "src/orca/orca.py"
10184 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
10185 #t))
10186 (add-after 'install 'wrap-orca
10187 (lambda* (#:key outputs #:allow-other-keys)
10188 (let* ((out (assoc-ref outputs "out"))
10189 (prog (string-append out "/bin/orca")))
10190 (wrap-program prog
10191 `("GI_TYPELIB_PATH" ":" prefix
10192 (,(getenv "GI_TYPELIB_PATH")))
10193 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10194 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10195 `("PYTHONPATH" ":" prefix
10196 (,(getenv "PYTHONPATH")))))
10197 #t)))))
10198 (native-inputs
10199 `(("intltool" ,intltool)
10200 ("itstool" ,itstool)
10201 ("pkg-config" ,pkg-config)
10202 ("xmllint" ,libxml2)))
10203 (inputs
10204 `(("at-spi2-atk" ,at-spi2-atk)
10205 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10206 ("gstreamer" ,gstreamer)
10207 ("gst-plugins-base" ,gst-plugins-base)
10208 ("gst-plugins-good" ,gst-plugins-good)
10209 ("gtk+" ,gtk+)
10210 ("python" ,python)
10211 ("python-pygobject" ,python-pygobject)
10212 ("python-pyatspi" ,python-pyatspi)
10213 ("python-speechd" ,speech-dispatcher)
10214 ("xkbcomp" ,xkbcomp)))
10215 (synopsis
10216 "Screen reader for individuals who are blind or visually impaired")
10217 (home-page "https://wiki.gnome.org/Projects/Orca")
10218 (description
10219 "Orca is a screen reader that provides access to the graphical desktop
10220 via speech and refreshable braille. Orca works with applications and toolkits
10221 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10222 (license license:lgpl2.1+)))
10223
10224 (define-public gspell
10225 (package
10226 (name "gspell")
10227 (version "1.8.2")
10228 (source (origin
10229 (method url-fetch)
10230 (uri (string-append "mirror://gnome/sources/" name "/"
10231 (version-major+minor version) "/"
10232 name "-" version ".tar.xz"))
10233 (sha256
10234 (base32
10235 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10236 (patches (search-patches "gspell-dash-test.patch"))))
10237 (build-system glib-or-gtk-build-system)
10238 (arguments
10239 '(#:configure-flags (list "--enable-vala")
10240 #:phases
10241 (modify-phases %standard-phases
10242 (add-before 'check 'pre-check
10243 (lambda* (#:key inputs #:allow-other-keys)
10244 ;; Tests require a running X server.
10245 (system "Xvfb :1 &")
10246 (setenv "DISPLAY" ":1")
10247
10248 ;; For the missing /etc/machine-id.
10249 (setenv "DBUS_FATAL_WARNINGS" "0")
10250
10251 ;; Allow Enchant and its Aspell backend to find the en_US
10252 ;; dictionary.
10253 (setenv "ASPELL_DICT_DIR"
10254 (string-append (assoc-ref inputs "aspell-dict-en")
10255 "/lib/aspell"))
10256 #t)))))
10257 (inputs
10258 `(("gtk+" ,gtk+)
10259 ("glib" ,glib)
10260 ("iso-codes" ,iso-codes)))
10261 (native-inputs
10262 `(("glib" ,glib "bin")
10263 ("gobject-introspection" ,gobject-introspection)
10264 ("pkg-config" ,pkg-config)
10265 ("vala" ,vala) ;for VAPI, needed by Geary
10266 ("xmllint" ,libxml2)
10267
10268 ;; For tests.
10269 ("aspell-dict-en" ,aspell-dict-en)
10270 ("xorg-server" ,xorg-server-for-tests)))
10271 (propagated-inputs
10272 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
10273 (home-page "https://wiki.gnome.org/Projects/gspell")
10274 (synopsis "GNOME's alternative spell checker")
10275 (description
10276 "gspell provides a flexible API to add spell-checking to a GTK+
10277 application. It provides a GObject API, spell-checking to text entries and
10278 text views, and buttons to choose the language.")
10279 (license license:gpl2+)))
10280
10281 (define-public gnome-planner
10282 (package
10283 (name "gnome-planner")
10284 (version "0.14.6")
10285 (source (origin
10286 (method url-fetch)
10287 (uri (string-append "mirror://gnome/sources/planner/"
10288 (version-major+minor version) "/planner-"
10289 version ".tar.xz"))
10290 (sha256
10291 (base32
10292 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10293 (build-system glib-or-gtk-build-system)
10294 (arguments
10295 ;; Disable the Python bindings because the Planner program functions
10296 ;; without them, and (as of 2017-06-13) we have not packaged all of
10297 ;; packages that are necessary for building the Python bindings.
10298 `(#:configure-flags
10299 (list "--disable-python"
10300 ,@(if (string=? "aarch64-linux" (%current-system))
10301 '("--build=aarch64-unknown-linux-gnu")
10302 '()))))
10303 (inputs
10304 `(("libgnomecanvas" ,libgnomecanvas)
10305 ("libgnomeui" ,libgnomeui)
10306 ("libglade" ,libglade)
10307 ("gnome-vfs" ,gnome-vfs)
10308 ("gconf" ,gconf)
10309 ("libxml2" ,libxml2)
10310 ("libxslt" ,libxslt)
10311 ("gtk+" ,gtk+)
10312 ("glib" ,glib)))
10313 (native-inputs
10314 `(("intltool" ,intltool)
10315 ("scrollkeeper" ,scrollkeeper)
10316 ("pkg-config" ,pkg-config)))
10317 (home-page "https://wiki.gnome.org/Apps/Planner")
10318 (synopsis "Project management software for the GNOME desktop")
10319 (description
10320 "GNOME Planner is a project management tool based on the Work Breakdown
10321 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10322 the resources, tasks, and constraints that you define, Planner generates
10323 various views into a project. For example, Planner can show a Gantt chart of
10324 the project. It can show a detailed summary of tasks including their
10325 duration, cost, and current progress. It can also show a report of resource
10326 utilization that highlights under-utilized and over-utilized resources. These
10327 views can be printed as PDF or PostScript files, or exported to HTML.")
10328 (license license:gpl2+)))
10329
10330 (define-public lollypop
10331 (package
10332 (name "lollypop")
10333 (version "1.4.6")
10334 (source
10335 (origin
10336 (method url-fetch)
10337 (uri (string-append "https://adishatz.org/lollypop/"
10338 "lollypop-" version ".tar.xz"))
10339 (sha256
10340 (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
10341 (build-system meson-build-system)
10342 (arguments
10343 `(#:imported-modules
10344 (,@%meson-build-system-modules
10345 (guix build python-build-system))
10346 #:modules
10347 ((guix build meson-build-system)
10348 ((guix build python-build-system) #:prefix python:)
10349 (guix build utils))
10350 #:glib-or-gtk? #t
10351 #:tests? #f ; no test suite
10352 #:phases
10353 (modify-phases %standard-phases
10354 (add-after 'install 'wrap-program
10355 (lambda* (#:key outputs #:allow-other-keys)
10356 (let ((out (assoc-ref outputs "out"))
10357 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10358 (wrap-program (string-append out "/bin/lollypop")
10359 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10360 #t))
10361 (add-after 'install 'wrap-python
10362 (assoc-ref python:%standard-phases 'wrap)))))
10363 (native-inputs
10364 `(("intltool" ,intltool)
10365 ("itstool" ,itstool)
10366 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10367 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10368 ("pkg-config" ,pkg-config)))
10369 (inputs
10370 `(("glib-networking" ,glib-networking)
10371 ("gobject-introspection" ,gobject-introspection)
10372 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10373 ("gst-plugins-base" ,gst-plugins-base)
10374 ("libnotify" ,libnotify)
10375 ("libsecret" ,libsecret)
10376 ("libhandy" ,libhandy)
10377 ("libsoup" ,libsoup)
10378 ("python" ,python)
10379 ("python-beautifulsoup4" ,python-beautifulsoup4)
10380 ("python-gst" ,python-gst)
10381 ("python-pil" ,python-pillow)
10382 ("python-pycairo" ,python-pycairo)
10383 ("python-pygobject" ,python-pygobject)
10384 ("python-pylast" ,python-pylast)
10385 ("totem-pl-parser" ,totem-pl-parser)
10386 ("webkitgtk" ,webkitgtk)))
10387 (propagated-inputs
10388 `(;; gst-plugins-base is required to start Lollypop,
10389 ;; the others are required to play streaming.
10390 ("gst-plugins-good" ,gst-plugins-good)
10391 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10392 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10393 (synopsis "GNOME music playing application")
10394 (description
10395 "Lollypop is a music player designed to play well with GNOME desktop.
10396 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10397 from artists and tracks from the web. It also fetches cover artworks
10398 automatically and it can stream songs from online music services and charts.")
10399 (license license:gpl3+)))
10400
10401 (define-public gnome-video-effects
10402 (package
10403 (name "gnome-video-effects")
10404 (version "0.5.0")
10405 (source (origin
10406 (method url-fetch)
10407 (uri (string-append "mirror://gnome/sources/" name "/"
10408 (version-major+minor version) "/" name "-"
10409 version ".tar.xz"))
10410 (sha256
10411 (base32
10412 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10413 (build-system meson-build-system)
10414 (native-inputs
10415 `(("gettext" ,gettext-minimal)
10416 ("pkg-config" ,pkg-config)))
10417 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10418 (synopsis "Video effects for Cheese and other GNOME applications")
10419 (description
10420 "A collection of GStreamer video filters and effects to be used in
10421 photo-booth-like software, such as Cheese.")
10422 (license license:gpl2+)))
10423
10424 (define-public cheese
10425 (package
10426 (name "cheese")
10427 (version "3.38.0")
10428 (source (origin
10429 (method url-fetch)
10430 (uri (string-append "mirror://gnome/sources/" name "/"
10431 (version-major+minor version) "/" name "-"
10432 version ".tar.xz"))
10433 (sha256
10434 (base32
10435 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10436 (arguments
10437 `(#:glib-or-gtk? #t
10438 ;; Tests require GDK.
10439 #:tests? #f
10440 #:phases
10441 (modify-phases %standard-phases
10442 (add-after 'unpack 'skip-gtk-update-icon-cache
10443 (lambda _
10444 ;; Don't create 'icon-theme.cache'
10445 (substitute* "meson_post_install.py"
10446 (("gtk-update-icon-cache") (which "true")))
10447 #t))
10448 (add-after 'unpack 'patch-docbook-xml
10449 (lambda* (#:key inputs #:allow-other-keys)
10450 ;; Avoid a network connection attempt during the build.
10451 (substitute* '("docs/reference/cheese.xml"
10452 "docs/reference/cheese-docs.xml")
10453 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10454 (string-append (assoc-ref inputs "docbook-xml")
10455 "/xml/dtd/docbook/docbookx.dtd")))
10456 #t))
10457 (add-after 'install 'wrap-cheese
10458 (lambda* (#:key inputs outputs #:allow-other-keys)
10459 (let ((out (assoc-ref outputs "out"))
10460 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10461 (wrap-program (string-append out "/bin/cheese")
10462 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10463 #t)))))
10464 (build-system meson-build-system)
10465 (native-inputs
10466 `(("docbook-xsl" ,docbook-xsl)
10467 ("docbook-xml" ,docbook-xml-4.3)
10468 ("gettext" ,gettext-minimal)
10469 ("glib:bin" ,glib "bin")
10470 ("gtk-doc" ,gtk-doc/stable)
10471 ("itstool" ,itstool)
10472 ("libxml2" ,libxml2)
10473 ("libxslt" ,libxslt)
10474 ("pkg-config" ,pkg-config)
10475 ("vala" ,vala)))
10476 (propagated-inputs
10477 `(("gnome-video-effects" ,gnome-video-effects)
10478 ("clutter" ,clutter)
10479 ("clutter-gst" ,clutter-gst)
10480 ("clutter-gtk" ,clutter-gtk)
10481 ("libcanberra" ,libcanberra)
10482 ("gdk-pixbuf" ,gdk-pixbuf)
10483 ("glib" ,glib)
10484 ("gstreamer" ,gstreamer)))
10485 (inputs
10486 `(("gnome-desktop" ,gnome-desktop)
10487 ("gobject-introspection" ,gobject-introspection)
10488 ("gst-plugins-base" ,gst-plugins-base)
10489 ("gst-plugins-good" ,gst-plugins-good)
10490 ("gst-plugins-bad" ,gst-plugins-bad)
10491 ("gtk+" ,gtk+)
10492 ("libx11" ,libx11)
10493 ("libxtst" ,libxtst)))
10494 (home-page "https://wiki.gnome.org/Apps/Cheese")
10495 (synopsis "Webcam photo booth software for GNOME")
10496 (description
10497 "Cheese uses your webcam to take photos and videos. Cheese can also
10498 apply fancy special effects and lets you share the fun with others.")
10499 (license license:gpl2+)))
10500
10501 (define-public passwordsafe
10502 (package
10503 (name "passwordsafe")
10504 (version "5.0")
10505 (source
10506 (origin
10507 (method git-fetch)
10508 (uri (git-reference
10509 (url "https://gitlab.gnome.org/World/PasswordSafe")
10510 (commit version)))
10511 (file-name (git-file-name name version))
10512 (sha256
10513 (base32 "1xh64bbg10gnfzlck5jvqy2zk6hbk9cyqgv85xc9kbdvs8n4lhgh"))))
10514 (build-system meson-build-system)
10515 (arguments
10516 `(#:glib-or-gtk? #t
10517 #:phases
10518 (modify-phases %standard-phases
10519 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10520 (lambda* (#:key outputs #:allow-other-keys)
10521 (let ((prog (string-append (assoc-ref outputs "out")
10522 "/bin/gnome-passwordsafe"))
10523 (pylib (string-append (assoc-ref outputs "out")
10524 "/lib/python"
10525 ,(version-major+minor
10526 (package-version python))
10527 "/site-packages")))
10528 (wrap-program prog
10529 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10530 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10531 #t))))))
10532 (native-inputs
10533 `(("desktop-file-utils" ,desktop-file-utils)
10534 ("gettext" ,gettext-minimal)
10535 ("glib:bin" ,glib "bin")
10536 ("gobject-introspection" ,gobject-introspection)
10537 ("gtk+:bin" ,gtk+ "bin")
10538 ("pkg-config" ,pkg-config)))
10539 (inputs
10540 `(("glib" ,glib)
10541 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10542 ("gtk+" ,gtk+)
10543 ("libhandy" ,libhandy)
10544 ("libpwquality" ,libpwquality)
10545 ("python-pygobject" ,python-pygobject)
10546 ("python-pykeepass" ,python-pykeepass)))
10547 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
10548 (synopsis "Password manager for the GNOME desktop")
10549 (description
10550 "Password Safe is a password manager which makes use of the KeePass v4
10551 format. It integrates perfectly with the GNOME desktop and provides an easy
10552 and uncluttered interface for the management of password databases.")
10553 (license license:gpl3+)))
10554
10555 (define-public sound-juicer
10556 (package
10557 (name "sound-juicer")
10558 (version "3.24.0")
10559 (source
10560 (origin
10561 (method url-fetch)
10562 (uri (string-append "mirror://gnome/sources/" name "/"
10563 (version-major+minor version) "/"
10564 name "-" version ".tar.xz"))
10565 (sha256
10566 (base32
10567 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10568 (build-system glib-or-gtk-build-system)
10569 (native-inputs
10570 `(("desktop-file-utils" ,desktop-file-utils)
10571 ("intltool" ,intltool)
10572 ("itstool" ,itstool)
10573 ("pkg-config" ,pkg-config)
10574 ("xmllint" ,libxml2)))
10575 (inputs
10576 `(("gtk+" ,gtk+)
10577 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10578 ("gstreamer" ,gstreamer)
10579 ("gst-plugins-base" ,gst-plugins-base)
10580 ("gst-plugins-good" ,gst-plugins-good)
10581 ("iso-codes" ,iso-codes)
10582 ("libbrasero-media3" ,brasero)
10583 ("libcanberra" ,libcanberra)
10584 ("libdiscid" ,libdiscid)
10585 ("libmusicbrainz" ,libmusicbrainz)
10586 ("neon" ,neon)))
10587 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10588 (synopsis "Audio music cd ripper")
10589 (description "Sound Juicer extracts audio from compact discs and convert it
10590 into audio files that a personal computer or digital audio player can play.
10591 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10592 mp3, Ogg Vorbis and FLAC")
10593 (license license:gpl2+)))
10594
10595 (define-public soundconverter
10596 (package
10597 (name "soundconverter")
10598 (version "3.0.2")
10599 (source
10600 (origin
10601 (method url-fetch)
10602 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10603 version "/+download/"
10604 "soundconverter-" version ".tar.xz"))
10605
10606 (sha256
10607 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10608 (build-system glib-or-gtk-build-system)
10609 (arguments
10610 `(#:imported-modules ((guix build python-build-system)
10611 (guix build glib-or-gtk-build-system)
10612 ,@%gnu-build-system-modules)
10613
10614 #:modules ((guix build glib-or-gtk-build-system)
10615 (guix build utils)
10616 ((guix build gnu-build-system) #:prefix gnu:)
10617 ((guix build python-build-system) #:prefix python:))
10618
10619 #:phases
10620 (modify-phases %standard-phases
10621 (add-after 'install 'wrap-soundconverter-for-python
10622 (assoc-ref python:%standard-phases 'wrap))
10623 (add-after 'install 'wrap-soundconverter
10624 (lambda* (#:key inputs outputs #:allow-other-keys)
10625 (let ((out (assoc-ref outputs "out"))
10626 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10627 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10628 (wrap-program (string-append out "/bin/soundconverter")
10629 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10630 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10631 #t)))))
10632 (native-inputs
10633 `(("intltool" ,intltool)
10634 ("pkg-config" ,pkg-config)
10635 ("glib:bin" ,glib "bin")))
10636 (inputs
10637 `(("gtk+" ,gtk+)
10638 ("python" ,python)
10639 ("python-pygobject" ,python-pygobject)
10640 ("gstreamer" ,gstreamer)
10641 ("gst-plugins-base" ,gst-plugins-base)))
10642 (home-page "https://soundconverter.org/")
10643 (synopsis "Convert between audio formats with a graphical interface")
10644 (description
10645 "SoundConverter supports converting between many audio formats including
10646 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10647 configurable file renaming. ")
10648 (license license:gpl3)))
10649
10650 (define-public workrave
10651 (package
10652 (name "workrave")
10653 (version "1.10.43")
10654 (source
10655 (origin
10656 (method git-fetch)
10657 (uri (git-reference
10658 (url "https://github.com/rcaelers/workrave")
10659 (commit (string-append "v" (string-map
10660 (match-lambda (#\. #\_) (chr chr))
10661 version)))))
10662 (file-name (git-file-name name version))
10663 (sha256
10664 (base32 "1baa9qjzd4b3q1zy5vhvyrx0hyz17mk237373ca48647897kw4cr"))))
10665 (build-system glib-or-gtk-build-system)
10666 (arguments
10667 ;; The only tests are maintainer tests (in po/), which fail.
10668 `(#:tests? #f))
10669 (inputs `(("glib" ,glib)
10670 ("gtk+" ,gtk+)
10671 ("gdk-pixbuf" ,gdk-pixbuf)
10672 ("gtkmm" ,gtkmm)
10673 ("glibmm" ,glibmm)
10674 ("libx11" ,libx11)
10675 ("libxtst" ,libxtst)
10676 ("dconf" ,dconf)
10677 ("libice" ,libice)
10678 ("libsm" ,libsm)
10679 ("libxscrnsaver" ,libxscrnsaver)))
10680 (native-inputs `(("boost" ,boost)
10681 ("pkg-config" ,pkg-config)
10682 ("gettext" ,gettext-minimal)
10683 ("autoconf" ,autoconf)
10684 ("autoconf-archive" , autoconf-archive)
10685 ("automake" ,automake)
10686 ("libtool" ,libtool)
10687 ("intltool" ,intltool)
10688 ("gobject-introspection" ,gobject-introspection)
10689 ("python3" ,python-3)
10690 ("python-jinja2" ,python-jinja2)))
10691 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10692 (description
10693 "Workrave is a program that assists in the recovery and prevention of
10694 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10695 micro-pauses and rest breaks, and restricts you to your daily limit.")
10696 (home-page "http://www.workrave.org")
10697 (license license:gpl3+)))
10698
10699 (define-public ghex
10700 (package
10701 (name "ghex")
10702 (version "3.18.4")
10703 (source (origin
10704 (method url-fetch)
10705 (uri (string-append "mirror://gnome/sources/ghex/"
10706 (version-major+minor version) "/"
10707 "ghex-" version ".tar.xz"))
10708 (sha256
10709 (base32
10710 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10711 (build-system meson-build-system)
10712 (arguments
10713 '(#:glib-or-gtk? #t
10714 #:phases
10715 (modify-phases %standard-phases
10716 (add-after 'unpack 'skip-gtk-update-icon-cache
10717 ;; Don't create 'icon-theme.cache'.
10718 (lambda _
10719 (substitute* "meson_post_install.py"
10720 (("gtk-update-icon-cache") (which "true")))
10721 #t)))))
10722 (native-inputs
10723 `(("pkg-config" ,pkg-config)
10724 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10725 ("gnome-common" ,gnome-common)
10726 ("which" ,which)
10727 ("intltool" ,intltool)
10728 ("yelp-tools" ,yelp-tools)
10729 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10730 (inputs
10731 `(("atk" ,atk)
10732 ("gtk" ,gtk+)))
10733 (synopsis "GNOME hexadecimal editor")
10734 (description "The GHex program can view and edit files in two ways:
10735 hexadecimal or ASCII. It is useful for editing binary files in general.")
10736 (home-page "https://wiki.gnome.org/Apps/Ghex")
10737 (license license:gpl2)))
10738
10739 (define-public libdazzle
10740 (package
10741 (name "libdazzle")
10742 (version "3.37.1")
10743 (source (origin
10744 (method url-fetch)
10745 (uri (string-append "mirror://gnome/sources/libdazzle/"
10746 (version-major+minor version) "/"
10747 "libdazzle-" version ".tar.xz"))
10748 (sha256
10749 (base32
10750 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10751 (build-system meson-build-system)
10752 (arguments
10753 `(#:phases
10754 (modify-phases %standard-phases
10755 (add-before 'check 'pre-check
10756 (lambda _
10757 ;; Tests require a running X server.
10758 (system "Xvfb :1 &")
10759 (setenv "DISPLAY" ":1")
10760 #t)))))
10761 (native-inputs
10762 `(("glib" ,glib "bin") ; glib-compile-resources
10763 ("pkg-config" ,pkg-config)
10764 ;; For tests.
10765 ("xorg-server" ,xorg-server-for-tests)))
10766 (inputs
10767 `(("glib" ,glib)
10768 ("gobject-introspection" ,gobject-introspection)
10769 ("gtk+" ,gtk+)
10770 ("vala" ,vala)))
10771 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10772 (synopsis "Companion library to GObject and Gtk+")
10773 (description "The libdazzle library is a companion library to GObject and
10774 Gtk+. It provides various features that the authors wish were in the
10775 underlying library but cannot for various reasons. In most cases, they are
10776 wildly out of scope for those libraries. In other cases, they are not quite
10777 generic enough to work for everyone.")
10778 (license license:gpl3+)))
10779
10780 (define-public evolution
10781 (package
10782 (name "evolution")
10783 (version "3.34.2")
10784 (source (origin
10785 (method url-fetch)
10786 (uri (string-append "mirror://gnome/sources/evolution/"
10787 (version-major+minor version) "/"
10788 "evolution-" version ".tar.xz"))
10789 (sha256
10790 (base32
10791 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))
10792 (patches (search-patches "evolution-CVE-2020-11879.patch"))))
10793 (build-system cmake-build-system)
10794 (arguments
10795 `(#:imported-modules (,@%cmake-build-system-modules
10796 (guix build glib-or-gtk-build-system))
10797 #:modules ((guix build cmake-build-system)
10798 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10799 (guix build utils))
10800 #:configure-flags
10801 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10802 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10803 ; in four years and cannot be built.
10804 #:phases
10805 (modify-phases %standard-phases
10806 ;; The build system attempts to install user interface modules to the
10807 ;; output directory of the "evolution-data-server" package. This
10808 ;; change redirects that change.
10809 (add-after 'unpack 'patch-ui-module-dir
10810 (lambda* (#:key outputs #:allow-other-keys)
10811 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10812 (("\\$\\{edsuimoduledir\\}")
10813 (string-append (assoc-ref outputs "out")
10814 "/lib/evolution-data-server/ui-modules")))
10815 #t))
10816 (add-after 'install 'glib-or-gtk-compile-schemas
10817 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10818 (add-after 'install 'glib-or-gtk-wrap
10819 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10820 (native-inputs
10821 `(("glib" ,glib "bin") ; glib-mkenums
10822 ("pkg-config" ,pkg-config)
10823 ("intltool" ,intltool)
10824 ("itstool" ,itstool)))
10825 (inputs
10826 `(("enchant" ,enchant)
10827 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10828 ("gcr" ,gcr)
10829 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10830 ("gnome-autoar" ,gnome-autoar)
10831 ("gnome-desktop" ,gnome-desktop)
10832 ("gspell" ,gspell)
10833 ("highlight" ,highlight)
10834 ("libcanberra" ,libcanberra)
10835 ("libgweather" ,libgweather)
10836 ("libnotify" ,libnotify)
10837 ("libsoup" ,libsoup)
10838 ("nss" ,nss)
10839 ("openldap" ,openldap)
10840 ("webkitgtk" ,webkitgtk)
10841 ("ytnef" ,ytnef)))
10842 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10843 (synopsis "Manage your email, contacts and schedule")
10844 (description "Evolution is a personal information management application
10845 that provides integrated mail, calendaring and address book
10846 functionality.")
10847 ;; See COPYING for details.
10848 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10849 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10850 license:lgpl2.1+)))) ; smime/lib/*
10851
10852 (define-public gthumb
10853 (package
10854 (name "gthumb")
10855 (version "3.10.3")
10856 (source (origin
10857 (method url-fetch)
10858 (uri (string-append "mirror://gnome/sources/gthumb/"
10859 (version-major+minor version) "/"
10860 "gthumb-" version ".tar.xz"))
10861 (sha256
10862 (base32
10863 "04n2sgasc03kiczyzkq362pjilj12hq2r5qj07lynqr9rivkzdys"))))
10864 (build-system meson-build-system)
10865 (arguments
10866 `(#:glib-or-gtk? #t
10867 #:configure-flags
10868 ;; Ensure the RUNPATH contains all installed library locations.
10869 (list (string-append "-Dc_link_args=-Wl,-rpath="
10870 (assoc-ref %outputs "out")
10871 "/lib/gthumb/extensions")
10872 (string-append "-Dcpp_link_args=-Wl,-rpath="
10873 (assoc-ref %outputs "out")
10874 "/lib/gthumb/extensions"))))
10875 (native-inputs
10876 `(("pkg-config" ,pkg-config)
10877 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10878 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10879 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10880 ("intltool" ,intltool)
10881 ("itstool" ,itstool)))
10882 (inputs
10883 `(("exiv2" ,exiv2)
10884 ("gtk" ,gtk+)
10885 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10886 ("gstreamer" ,gstreamer)
10887 ("clutter" ,clutter)
10888 ("clutter-gst" ,clutter-gst)
10889 ("clutter-gtk" ,clutter-gtk)
10890 ("libjpeg" ,libjpeg-turbo)
10891 ("libtiff" ,libtiff)
10892 ("libraw" ,libraw)))
10893 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10894 (synopsis "GNOME image viewer and browser")
10895 (description "GThumb is an image viewer, browser, organizer, editor and
10896 advanced image management tool")
10897 (license license:gpl2+)))
10898
10899 (define-public terminator
10900 (package
10901 (name "terminator")
10902 (version "2.1.1")
10903 (source
10904 (origin
10905 (method url-fetch)
10906 (uri (string-append "https://github.com/gnome-terminator/terminator/"
10907 "releases/download/v" version "/"
10908 name "-" version ".tar.gz"))
10909 (sha256
10910 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
10911 (build-system python-build-system)
10912 (native-inputs
10913 `(("gettext" ,gettext-minimal)
10914 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10915 ("gobject-introspection" ,gobject-introspection)
10916 ("intltool" ,intltool)
10917 ("pkg-config" ,pkg-config)
10918 ("python-psutil" ,python-psutil)
10919 ("python-pytest-runner" ,python-pytest-runner)
10920 ("python-pytest" ,python-pytest)))
10921 (inputs
10922 `(("cairo" ,cairo)
10923 ("dbus-glib" ,dbus-glib)
10924 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10925 ("gtk+" ,gtk+)
10926 ("python" ,python-wrapper)
10927 ("python-dbus" ,python-dbus)
10928 ("python-notify2" ,python-notify2)
10929 ("python-pycairo" ,python-pycairo)
10930 ("python-pygobject" ,python-pygobject)
10931 ("vte" ,vte)))
10932 (propagated-inputs
10933 `(("python-configobj" ,python-configobj)))
10934 (arguments
10935 ;; One test out of 28 fails due to dbus-python and python-notify; skip
10936 ;; tests.
10937 `(#:tests? #f
10938 #:imported-modules ((guix build glib-or-gtk-build-system)
10939 ,@%python-build-system-modules)
10940 #:modules ((guix build python-build-system)
10941 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10942 (guix build utils))
10943 #:phases
10944 (modify-phases %standard-phases
10945 (add-after 'unpack 'handle-dbus-python
10946 (lambda _
10947 ;; python-dbus cannot be found but it's really there. See
10948 ;; https://github.com/SpotlightKid/jack-select/issues/2
10949 (substitute* "setup.py"
10950 (("'dbus-python',") ""))
10951 #t))
10952 (add-after 'install 'wrap-program
10953 (lambda* (#:key outputs #:allow-other-keys)
10954 (let ((prog (string-append (assoc-ref outputs "out")
10955 "/bin/terminator"))
10956 (pylib (string-append (assoc-ref outputs "out")
10957 "/lib/python"
10958 ,(version-major+minor
10959 (package-version python))
10960 "/site-packages")))
10961 (wrap-program prog
10962 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10963 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10964 #t)))
10965 (add-after 'wrap-program 'glib-or-gtk-wrap
10966 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10967 (home-page "https://gnome-terminator.org/")
10968 (synopsis "Store and run multiple GNOME terminals in one window")
10969 (description
10970 "Terminator allows you to run multiple GNOME terminals in a grid and
10971 tabs, and it supports drag and drop re-ordering of terminals.")
10972 (license license:gpl2)))
10973
10974 (define-public libhandy
10975 (package
10976 (name "libhandy")
10977 (version "1.2.2")
10978 (source
10979 (origin
10980 (method git-fetch)
10981 (uri (git-reference
10982 (url "https://gitlab.gnome.org/GNOME/libhandy")
10983 (commit version)))
10984 (file-name (git-file-name name version))
10985 (sha256
10986 (base32 "0345x7gif6yjm95y62lww71lj84wfwsr2p32r3iww8shavb8scyk"))))
10987 (build-system meson-build-system)
10988 (arguments
10989 `(#:configure-flags
10990 '("-Dglade_catalog=enabled"
10991 "-Dgtk_doc=true")
10992 #:phases
10993 (modify-phases %standard-phases
10994 (add-before 'check 'pre-check
10995 (lambda _
10996 ;; Tests require a running X server.
10997 (system "Xvfb :1 &")
10998 (setenv "DISPLAY" ":1")
10999 #t)))))
11000 (inputs
11001 `(("gtk+" ,gtk+)
11002 ("glade" ,glade3)
11003 ("libxml2" ,libxml2)))
11004 (native-inputs
11005 `(("glib:bin" ,glib "bin")
11006 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
11007 ("vala" ,vala)
11008 ("gtk-doc" ,gtk-doc/stable)
11009 ("pkg-config" ,pkg-config)
11010 ("gettext" ,gettext-minimal)
11011
11012 ;; Test suite dependencies.
11013 ("xorg-server" ,xorg-server-for-tests)
11014 ("hicolor-icon-theme" ,hicolor-icon-theme)))
11015 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11016 (synopsis "Library full of GTK+ widgets for mobile phones")
11017 (description "The aim of the handy library is to help with developing user
11018 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11019 for usage on small and big screens.")
11020 (license license:lgpl2.1+)))
11021
11022 (define-public libhandy-0.0
11023 (package
11024 (inherit libhandy)
11025 (version "0.0.13")
11026 (source
11027 (origin
11028 (method git-fetch)
11029 (uri (git-reference
11030 (url "https://gitlab.gnome.org/GNOME/libhandy")
11031 (commit (string-append "v" version))))
11032 (file-name (git-file-name "libhandy" version))
11033 (sha256
11034 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11035 (arguments
11036 (substitute-keyword-arguments (package-arguments libhandy)
11037 ((#:configure-flags flags)
11038 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11039
11040 (define-public libgit2-glib
11041 (package
11042 (name "libgit2-glib")
11043 (version "0.99.0.1")
11044 (source (origin
11045 (method url-fetch)
11046 (uri (string-append "mirror://gnome/sources/" name "/"
11047 (version-major+minor version) "/"
11048 name "-" version ".tar.xz"))
11049 (sha256
11050 (base32
11051 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
11052 (build-system meson-build-system)
11053 (native-inputs
11054 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
11055 ("gobject-introspection" ,gobject-introspection)
11056 ("pkg-config" ,pkg-config)
11057 ("python-pygobject" ,python-pygobject)
11058 ("python-wrapper" ,python-wrapper)
11059 ("vala" ,vala)))
11060 (inputs
11061 `(("glib" ,glib)
11062 ("libssh2" ,libssh2)))
11063 (propagated-inputs
11064 `(;; In Requires of libgit2-glib.pc.
11065 ("libgit2" ,libgit2)))
11066 (synopsis "GLib wrapper around the libgit2 Git access library")
11067 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11068 access library. It only implements the core plumbing functions, not really the
11069 higher level porcelain stuff.")
11070 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11071 (license license:gpl2+)))
11072
11073 (define-public gitg
11074 (package
11075 (name "gitg")
11076 (version "3.32.1")
11077 (source (origin
11078 (method url-fetch)
11079 (uri (string-append "mirror://gnome/sources/" name "/"
11080 (version-major+minor version) "/"
11081 name "-" version ".tar.xz"))
11082 (sha256
11083 (base32
11084 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
11085 (build-system meson-build-system)
11086 (arguments
11087 `(#:glib-or-gtk? #t
11088 #:phases
11089 (modify-phases %standard-phases
11090 (add-after 'unpack 'disable-post-install-partially
11091 (lambda _
11092 (substitute* "meson_post_install.py"
11093 (("'python'") ; there are no python sources to compile
11094 (string-append "'" (which "true") "'"))
11095 (("gtk-update-icon-cache") (which "true")))
11096 #t))
11097 (add-after 'unpack 'fix-test-sources
11098 (lambda _
11099 (substitute* "tests/libgitg/test-commit.vala"
11100 (("/bin/bash") (which "bash")))
11101 #t))
11102 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11103 (lambda* (#:key outputs #:allow-other-keys)
11104 (let ((prog (string-append (assoc-ref outputs "out")
11105 "/bin/gitg")))
11106 (wrap-program prog
11107 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11108 #t))))))
11109 (inputs
11110 `(("glib" ,glib)
11111 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11112 ("gtk+" ,gtk+)
11113 ("gtkspell3" ,gtkspell3)
11114 ("gtksourceview" ,gtksourceview-3)
11115 ("json-glib" ,json-glib)
11116 ("libdazzle" ,libdazzle)
11117 ("libgee" ,libgee)
11118 ("libgit2-glib" ,libgit2-glib)
11119 ("libpeas" ,libpeas)
11120 ("libsecret" ,libsecret)
11121 ("libsoup" ,libsoup)
11122 ("libxml2" ,libxml2)))
11123 (native-inputs
11124 `(("glib:bin" ,glib "bin")
11125 ("gtk+:bin" ,gtk+ "bin")
11126 ("gobject-introspection" ,gobject-introspection)
11127 ("intltool" ,intltool)
11128 ("pkg-config" ,pkg-config)
11129 ("vala" ,vala)))
11130 (synopsis "Graphical user interface for git")
11131 (description
11132 "gitg is a graphical user interface for git. It aims at being a small,
11133 fast and convenient tool to visualize the history of git repositories.
11134 Besides visualization, gitg also provides several utilities to manage your
11135 repository and commit your work.")
11136 (home-page "https://wiki.gnome.org/Apps/Gitg")
11137 (license license:gpl2+)))
11138
11139 (define-public gamin
11140 (package
11141 (name "gamin")
11142 (version "0.1.10")
11143 (source (origin
11144 (method url-fetch)
11145 (uri (string-append "mirror://gnome/sources/" name "/"
11146 (version-major+minor version) "/"
11147 name "-" version ".tar.bz2"))
11148 (sha256
11149 (base32
11150 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11151 (build-system gnu-build-system)
11152 (arguments
11153 `(#:phases
11154 (modify-phases %standard-phases
11155 (add-after 'unpack 'remove-deprecated-macro
11156 (lambda _
11157 (substitute* '("server/gam_node.c"
11158 "server/gam_subscription.h"
11159 "server/gam_node.h"
11160 "server/gam_subscription.c")
11161 (("G_CONST_RETURN") "const"))
11162 #t)))))
11163 (inputs
11164 `(("glib" ,glib)))
11165 (native-inputs
11166 `(("intltool" ,intltool)
11167 ("pkg-config" ,pkg-config)))
11168 (home-page "https://people.gnome.org/~veillard/gamin/")
11169 (synopsis "File alteration monitor")
11170 (description
11171 "Gamin is a file and directory monitoring system defined to be a subset
11172 of the FAM (File Alteration Monitor) system. This is a service provided by a
11173 library which detects when a file or a directory has been modified.")
11174 (license license:gpl2+)))
11175
11176 (define-public gnome-mahjongg
11177 (package
11178 (name "gnome-mahjongg")
11179 (version "3.35.1")
11180 (source (origin
11181 (method git-fetch)
11182 (uri (git-reference
11183 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
11184 (commit version)))
11185 (file-name (git-file-name name version))
11186 (sha256
11187 (base32
11188 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
11189 (build-system meson-build-system)
11190 (arguments
11191 `(#:glib-or-gtk? #t))
11192 (native-inputs
11193 `(("appstream-glib" ,appstream-glib)
11194 ("gettext" ,gettext-minimal)
11195 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11196 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11197 ("itstool" ,itstool)
11198 ("pkg-config" ,pkg-config)
11199 ("vala" ,vala)))
11200 (propagated-inputs
11201 `(("dconf" ,dconf)))
11202 (inputs
11203 `(("glib" ,glib)
11204 ("gtk+" ,gtk+)
11205 ("librsvg" ,librsvg)))
11206 (synopsis "Mahjongg tile-matching game")
11207 (description "GNOME Mahjongg is a game based on the classic Chinese
11208 tile-matching game Mahjong. It features multiple board layouts, tile themes,
11209 and a high score table.")
11210 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11211 (license license:gpl2+)))
11212
11213 (define-public gnome-themes-extra
11214 (package
11215 (name "gnome-themes-extra")
11216 (version "3.28")
11217 (source
11218 (origin
11219 (method url-fetch)
11220 (uri (string-append "mirror://gnome/sources/" name "/"
11221 (version-major+minor version) "/" name "-"
11222 version ".tar.xz"))
11223 (sha256
11224 (base32
11225 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11226 (build-system gnu-build-system)
11227 (arguments
11228 '(#:configure-flags
11229 ;; Don't create 'icon-theme.cache'.
11230 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11231 (true (string-append coreutils "/bin/true")))
11232 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11233 (native-inputs
11234 `(("glib:bin" ,glib "bin")
11235 ("intltool" ,intltool)
11236 ("pkg-config" ,pkg-config)))
11237 (inputs
11238 `(("glib" ,glib)
11239 ("gtk+" ,gtk+)
11240 ("gtk+-2" ,gtk+-2)
11241 ("librsvg" ,librsvg)
11242 ("libxml2" ,libxml2)))
11243 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11244 (synopsis "GNOME Extra Themes")
11245 (description "This package provides themes and related elements that don't
11246 really fit in other upstream packages. It offers legacy support for GTK+ 2
11247 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11248 index files needed for Adwaita to be used outside of GNOME.")
11249 (license license:lgpl2.1+)))
11250
11251 (define-public gnote
11252 (package
11253 (name "gnote")
11254 (version "3.38.1")
11255 (source
11256 (origin
11257 (method url-fetch)
11258 (uri (string-append "mirror://gnome/sources/" name "/"
11259 (version-major+minor version) "/"
11260 "gnote-" version ".tar.xz"))
11261 (sha256
11262 (base32 "1adjfjhmsm2d33999khjyzvli6kiz1jlzavn77jhd49kfzhxa9y4"))))
11263 (build-system glib-or-gtk-build-system)
11264 (native-inputs
11265 `(("desktop-file-utils" ,desktop-file-utils)
11266 ("glib:bin" ,glib "bin")
11267 ("gobject-introspection" ,gobject-introspection)
11268 ("intltool" ,intltool)
11269 ("itstool" ,itstool)
11270 ("pkg-config" ,pkg-config)
11271 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
11272 (inputs
11273 `(("glibmm" ,glibmm)
11274 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11275 ("gspell" ,gspell)
11276 ("gtk+" ,gtk+)
11277 ("gtkmm" ,gtkmm)
11278 ("libsecret" ,libsecret)
11279 ("libuuid" ,util-linux "lib")
11280 ("libxml2" ,libxml2)
11281 ("libxslt" ,libxslt)))
11282 (synopsis "Note-taking application for the GNOME desktop")
11283 (description
11284 "Gnote is a note-taking application written for the GNOME desktop
11285 environment.")
11286 (home-page "https://wiki.gnome.org/Apps/Gnote")
11287 (license license:gpl3+)))
11288
11289 (define-public polari
11290 (package
11291 (name "polari")
11292 (version "3.36.3")
11293 (source (origin
11294 (method url-fetch)
11295 (uri (string-append "mirror://gnome/sources/polari/"
11296 (version-major+minor version)
11297 "/polari-" version ".tar.xz"))
11298 (sha256
11299 (base32
11300 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11301 (build-system meson-build-system)
11302 (arguments
11303 `(#:glib-or-gtk? #t
11304 #:phases
11305 (modify-phases %standard-phases
11306 (add-after 'unpack 'skip-gtk-update-icon-cache
11307 (lambda _
11308 (substitute* "meson/meson-postinstall.sh"
11309 (("gtk-update-icon-cache") (which "true")))
11310 #t))
11311 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11312 (lambda* (#:key outputs #:allow-other-keys)
11313 (let ((prog (string-append (assoc-ref outputs "out")
11314 "/bin/polari")))
11315 (wrap-program prog
11316 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11317 #t))))))
11318 (inputs
11319 `(("glib" ,glib)
11320 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11321 ("gspell" ,gspell)
11322 ("gtk+" ,gtk+)
11323 ("gjs" ,gjs)
11324 ("libsecret" ,libsecret)
11325 ("libsoup" ,libsoup)
11326 ("telepathy-glib" ,telepathy-glib)
11327 ("telepathy-logger" ,telepathy-logger)))
11328 (native-inputs
11329 `(("glib:bin" ,glib "bin")
11330 ("gobject-introspection" ,gobject-introspection)
11331 ("intltool" ,intltool)
11332 ("pkg-config" ,pkg-config)
11333 ("yelp-tools" ,yelp-tools)))
11334 (propagated-inputs
11335 `(("telepathy-idle" ,telepathy-idle)
11336 ("telepathy-mission-control" ,telepathy-mission-control)))
11337 (synopsis "Simple IRC Client")
11338 (description
11339 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11340 integrate seamlessly with the GNOME desktop.")
11341 (home-page "https://wiki.gnome.org/Apps/Polari")
11342 (license license:gpl2+)))
11343
11344 (define-public gnome-boxes
11345 (package
11346 (name "gnome-boxes")
11347 (version "3.36.6")
11348 (source
11349 (origin
11350 (method url-fetch)
11351 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11352 (version-major+minor version) "/"
11353 "gnome-boxes-" version ".tar.xz"))
11354 (sha256
11355 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11356 (build-system meson-build-system)
11357 (arguments
11358 '(#:glib-or-gtk? #t
11359 #:configure-flags (list "-Drdp=false"
11360 (string-append "-Dc_link_args=-Wl,-rpath="
11361 (assoc-ref %outputs "out")
11362 "/lib/gnome-boxes"))))
11363 (native-inputs
11364 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11365 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11366 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11367 ("itstool" ,itstool)
11368 ("intltool" ,intltool)
11369 ("vala" ,vala)
11370 ("pkg-config" ,pkg-config)))
11371 (inputs
11372 `(("libarchive" ,libarchive)
11373 ("glib-networking" ,glib-networking) ;for TLS support
11374 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11375 ("gtk" ,gtk+)
11376 ("gtk-vnc" ,gtk-vnc)
11377 ("libosinfo" ,libosinfo)
11378 ("libsecret" ,libsecret)
11379 ("libsoup" ,libsoup)
11380 ("libusb" ,libusb)
11381 ("libvirt" ,libvirt)
11382 ("libvirt-glib" ,libvirt-glib)
11383 ("libxml" ,libxml2)
11384 ("spice-gtk" ,spice-gtk)
11385 ("sparql-query" ,sparql-query)
11386 ("vte" ,vte)
11387 ("webkitgtk" ,webkitgtk)
11388 ("tracker" ,tracker)
11389 ("libgudev" ,libgudev)))
11390 (home-page "https://wiki.gnome.org/Apps/Boxes")
11391 (synopsis "View, access, and manage remote and virtual systems")
11392 (description "GNOME Boxes is a simple application to view, access, and
11393 manage remote and virtual systems. Note that this application requires the
11394 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11395 @command{info '(guix) Virtualization Services'} to learn how to configure
11396 these services on the Guix System.")
11397 (license (list
11398 ;; For data/icons/empty-boxes.png.
11399 license:cc-by2.0
11400 ;; For all others.
11401 license:lgpl2.0+))))
11402
11403 (define-public geary
11404 (package
11405 (name "geary")
11406 (version "3.34.1")
11407 (source (origin
11408 (method git-fetch)
11409 (uri (git-reference
11410 (url "https://gitlab.gnome.org/GNOME/geary")
11411 (commit version)))
11412 (file-name (git-file-name name version))
11413 (sha256
11414 (base32
11415 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))
11416 (patches (search-patches "geary-CVE-2020-24661.patch"))))
11417 (build-system meson-build-system)
11418 (arguments
11419 `(#:glib-or-gtk? #t
11420 #:phases (modify-phases %standard-phases
11421 (add-after 'unpack 'disable-failing-tests
11422 (lambda _
11423 (substitute* "test/meson.build"
11424 (("test\\('client-tests', geary_test_client_bin\\)")
11425 ""))
11426 #t))
11427 (add-after 'unpack 'disable-postinstall-script
11428 (lambda _
11429 (substitute* "meson.build"
11430 (("meson.add_install_script\\(\
11431 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11432 ""))
11433 #t))
11434 (add-before 'check 'setup-xvfb
11435 (lambda _
11436 (system "Xvfb :1 &")
11437 (setenv "DISPLAY" ":1")
11438 #t)))))
11439 (inputs
11440 `(("enchant" ,enchant)
11441 ("folks" ,folks)
11442 ("gcr" ,gcr)
11443 ("glib" ,glib)
11444 ("gmime" ,gmime-2.6)
11445 ("gnome-online-accounts:lib"
11446 ,gnome-online-accounts "lib")
11447 ("gspell" ,gspell)
11448 ("gtk+" ,gtk+)
11449 ("iso-codes" ,iso-codes)
11450 ("json-glib" ,json-glib)
11451 ("libcanberra" ,libcanberra)
11452 ("libgee" ,libgee)
11453 ("libhandy" ,libhandy-0.0)
11454 ("libpeas" ,libpeas)
11455 ("libsecret" ,libsecret)
11456 ("libunwind" ,libunwind)
11457 ("sqlite" ,sqlite)
11458 ("webkitgtk" ,webkitgtk)
11459 ("ytnef" ,ytnef)))
11460 (native-inputs
11461 `(("appstream-glib" ,appstream-glib)
11462 ("cmake-minimal" ,cmake-minimal)
11463 ("desktop-file-utils" ,desktop-file-utils)
11464 ("gettext" ,gettext-minimal)
11465 ("glib:bin" ,glib "bin")
11466 ("gobject-introspection" ,gobject-introspection)
11467 ("itstool" ,itstool)
11468 ("libarchive" ,libarchive)
11469 ("libxml2" ,libxml2)
11470 ("pkg-config" ,pkg-config)
11471 ("vala" ,vala)
11472 ("xvfb" ,xorg-server-for-tests)))
11473 (synopsis "GNOME email application built around conversations")
11474 (description
11475 "Geary collects related messages together into conversations,
11476 making it easy to find and follow your discussions. Full-text and keyword
11477 search makes it easy to find the email you are looking for. Geary's
11478 full-featured composer lets you send rich, styled text with images, links, and
11479 lists, but also send lightweight, easy to read text messages. Geary
11480 automatically picks up your existing GNOME Online Accounts, and adding more is
11481 easy. Geary has a clean, fast, modern interface that works like you want it
11482 to.")
11483 (home-page "https://wiki.gnome.org/Apps/Geary")
11484 (license (list
11485 ;; geary
11486 license:lgpl2.1+
11487 ;; icons
11488 license:cc-by3.0
11489 license:cc-by-sa3.0
11490 license:public-domain
11491 ;; snowball
11492 license:bsd-2))))
11493
11494 (define-public glabels
11495 (package
11496 (name "glabels")
11497 (version "3.4.1")
11498 (source
11499 (origin
11500 (method url-fetch)
11501 (uri (string-append "mirror://gnome/sources/" name "/"
11502 (version-major+minor version) "/"
11503 "glabels-" version ".tar.xz"))
11504 (sha256
11505 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11506 (build-system glib-or-gtk-build-system)
11507 (native-inputs
11508 `(("gettext" ,gettext-minimal)
11509 ("glib:bin" ,glib "bin")
11510 ("intltool" ,intltool)
11511 ("itstool" ,itstool)
11512 ("pkg-config" ,pkg-config)))
11513 (inputs
11514 `(("gtk+" ,gtk+)
11515 ("librsvg" ,librsvg)
11516 ("libxml2" ,libxml2)))
11517 (home-page "https://glabels.org/")
11518 (synopsis "Program for creating labels and business cards")
11519 (description
11520 "gLabels is a program for creating labels and business cards. It is
11521 designed to work with various laser/ink-jet peel-off label and business
11522 card sheets that you’ll find at most office supply stores.")
11523 (license license:gpl3+)))
11524
11525 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11526 (define-public gnome-latex
11527 (package
11528 (name "gnome-latex")
11529 (version "3.36.0")
11530 (source
11531 (origin
11532 (method url-fetch)
11533 (uri (string-append "mirror://gnome/sources/" name "/"
11534 (version-major+minor version) "/"
11535 "gnome-latex-" version ".tar.xz"))
11536 (sha256
11537 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11538 (build-system glib-or-gtk-build-system)
11539 (native-inputs
11540 `(("gettext" ,gettext-minimal)
11541 ("glib:bin" ,glib "bin")
11542 ("gobject-introspection" ,gobject-introspection)
11543 ("gtk-doc" ,gtk-doc/stable)
11544 ("intltool" ,intltool)
11545 ("itstool" ,itstool)
11546 ("pkg-config" ,pkg-config)
11547 ("vala" ,vala)))
11548 (inputs
11549 `(("amtk" ,amtk)
11550 ("dconf" ,dconf)
11551 ("glib" ,glib)
11552 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11553 ("gspell" ,gspell)
11554 ("gtk+" ,gtk+)
11555 ("gtksourceview" ,gtksourceview)
11556 ("libgee" ,libgee)
11557 ("tepl" ,tepl)
11558 ("uchardet" ,uchardet)))
11559 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11560 (synopsis "LaTeX editor for the GNOME desktop")
11561 (description
11562 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11563 such as build tools, completion of LaTeX commands, structure navigation,
11564 symbol tables, document templates, project management, spell-checking, menus
11565 and toolbars.")
11566 (license license:gpl3+)))
11567
11568 (define-public setzer
11569 (package
11570 (name "setzer")
11571 (version "0.4.1")
11572 (source
11573 (origin
11574 (method git-fetch)
11575 (uri (git-reference
11576 (url "https://github.com/cvfosammmm/Setzer")
11577 (commit (string-append "v" version))))
11578 (file-name (git-file-name name version))
11579 (sha256
11580 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
11581 (build-system meson-build-system)
11582 (arguments
11583 `(#:glib-or-gtk? #t
11584 #:phases
11585 (modify-phases %standard-phases
11586 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11587 (lambda* (#:key outputs #:allow-other-keys)
11588 (let ((prog (string-append (assoc-ref outputs "out")
11589 "/bin/setzer"))
11590 (pylib (string-append (assoc-ref outputs "out")
11591 "/lib/python"
11592 ,(version-major+minor
11593 (package-version python))
11594 "/site-packages")))
11595 (wrap-program prog
11596 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
11597 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11598 #t))))))
11599 (native-inputs
11600 `(("desktop-file-utils" ,desktop-file-utils)
11601 ("gettext" ,gettext-minimal)
11602 ("glib:bin" ,glib "bin")
11603 ("gobject-introspection" ,gobject-introspection)
11604 ("gtk+:bin" ,gtk+ "bin")))
11605 (inputs
11606 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11607 ("gspell" ,gspell)
11608 ("gtk+" ,gtk+)
11609 ("gtksourceview" ,gtksourceview)
11610 ("pango" ,pango)
11611 ("poppler" ,poppler)
11612 ("python-pdfminer" ,python-pdfminer-six)
11613 ("python-pycairo" ,python-pycairo)
11614 ("python-pygobject" ,python-pygobject)
11615 ("python-pyxdg" ,python-pyxdg)
11616 ("webkitgtk" ,webkitgtk)
11617 ("xdg-utils" ,xdg-utils)))
11618 (home-page "https://www.cvfosammmm.org/setzer/")
11619 (synopsis "LaTeX editor written in Python with GTK+")
11620 (description
11621 "Setzer is a simple yet full-featured LaTeX editor written in Python with
11622 GTK+. It integrates well with the GNOME desktop environment.")
11623 (license license:gpl3+)))
11624
11625 (define-public apostrophe
11626 (package
11627 (name "apostrophe")
11628 (version "2.4")
11629 (source (origin
11630 (method git-fetch)
11631 (uri (git-reference
11632 (url "https://gitlab.gnome.org/somas/apostrophe")
11633 (commit (string-append "v" version))))
11634 (file-name (git-file-name name version))
11635 (sha256
11636 (base32
11637 "1qzy3zhi18wf42m034s8kcmx9gl05j620x3hf6rnycq2fvy7g4gz"))))
11638 (build-system meson-build-system)
11639 (arguments
11640 `(#:glib-or-gtk? #t
11641 #:phases
11642 (modify-phases %standard-phases
11643 (add-after 'unpack 'patch-meson
11644 (lambda _
11645 (substitute* "build-aux/meson_post_install.py"
11646 (("gtk-update-icon-cache") "true"))
11647 #t))
11648 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11649 (lambda* (#:key inputs outputs #:allow-other-keys)
11650 (let ((prog (string-append (assoc-ref outputs "out")
11651 "/bin/apostrophe"))
11652 (pylib (string-append (assoc-ref outputs "out")
11653 "/lib/python"
11654 ,(version-major+minor
11655 (package-version python))
11656 "/site-packages")))
11657 (wrap-program prog
11658 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
11659 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
11660 `("PATH" prefix (,(string-append (assoc-ref inputs "pandoc")
11661 "/bin"))))
11662 #t))))))
11663 (inputs
11664 `(("glib" ,glib)
11665 ("gobject-introspection" ,gobject-introspection)
11666 ("gspell" ,gspell)
11667 ("gtk+" ,gtk+)
11668 ("libhandy" ,libhandy)
11669 ("pandoc" ,pandoc)
11670 ("python-chardet" ,python-chardet)
11671 ("python-levenshtein" ,python-levenshtein)
11672 ("python-regex" ,python-regex)
11673 ("python-pycairo" ,python-pycairo)
11674 ("python-pygobject" ,python-pygobject)
11675 ("python-pyenchant" ,python-pyenchant)
11676 ("python-pypandoc" ,python-pypandoc)
11677 ("webkitgtk" ,webkitgtk)))
11678 (native-inputs
11679 `(("gettext" ,gettext-minimal)
11680 ("glib:bin" ,glib "bin")
11681 ("pkg-config" ,pkg-config)))
11682 (home-page "https://gitlab.gnome.org/somas/apostrophe")
11683 (synopsis "Markdown editor written in Python with GTK+")
11684 (description "Apostrophe is a GTK+ based distraction free Markdown editor.
11685 It uses pandoc as back-end for parsing Markdown.")
11686 (license license:gpl3)))
11687
11688 (define-public libratbag
11689 (package
11690 (name "libratbag")
11691 (version "0.14")
11692 (source
11693 (origin
11694 (method git-fetch)
11695 (uri (git-reference
11696 (url "https://github.com/libratbag/libratbag")
11697 (commit (string-append "v" version))))
11698 (file-name (git-file-name name version))
11699 (sha256
11700 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11701 (build-system meson-build-system)
11702 (arguments
11703 `(#:configure-flags
11704 (list "-Dsystemd=false"
11705 "-Dlogind-provider=elogind")
11706 #:phases
11707 (modify-phases %standard-phases
11708 (add-after 'install 'wrap
11709 (lambda* (#:key inputs outputs #:allow-other-keys)
11710 (let* ((out (assoc-ref outputs "out"))
11711 (site (string-append
11712 "/lib/python"
11713 ,(version-major+minor (package-version python))
11714 "/site-packages"))
11715 (evdev (string-append
11716 (assoc-ref inputs "python-evdev") site))
11717 (pygo (string-append
11718 (assoc-ref inputs "python-pygobject") site))
11719 (python-wrap
11720 `("PYTHONPATH" = (,evdev ,pygo))))
11721 (wrap-program (string-append out "/bin/" "ratbagctl")
11722 python-wrap)
11723 #t))))))
11724 (native-inputs
11725 `(("check" ,check)
11726 ("pkg-config" ,pkg-config)
11727 ("swig" ,swig)
11728 ("valgrind" ,valgrind)))
11729 (inputs
11730 `(("glib" ,glib)
11731 ("json-glib" ,json-glib)
11732 ("libevdev" ,libevdev)
11733 ("libsystemd" ,elogind)
11734 ("libunistring" ,libunistring)
11735 ("python-evdev" ,python-evdev)
11736 ("python-pygobject" ,python-pygobject)
11737 ("udev" ,eudev)))
11738 (home-page "https://github.com/libratbag/libratbag")
11739 (synopsis "DBus daemon and utility for configuring gaming mice")
11740 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11741 configure input devices, mainly gaming mice. The daemon provides a generic
11742 way to access the various features exposed by these mice and abstracts away
11743 hardware-specific and kernel-specific quirks. There is also the
11744 @command{ratbagctl} command line interface for configuring devices.
11745
11746 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11747 Steelseries.
11748
11749 The ratbagd DBus service can be enabled by adding the following service to
11750 your operating-system definition:
11751
11752 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11753 (license license:expat)))
11754
11755 (define-public piper
11756 (package
11757 (name "piper")
11758 (version "0.5.1")
11759 (source
11760 (origin
11761 (method git-fetch)
11762 (uri (git-reference
11763 (url "https://github.com/libratbag/piper")
11764 (commit version)))
11765 (sha256
11766 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11767 (file-name (git-file-name name version))))
11768 (build-system meson-build-system)
11769 (native-inputs
11770 `(("gettext" ,gettext-minimal)
11771 ("glib:bin" ,glib "bin")
11772 ("gobject-introspection" ,gobject-introspection)
11773 ("pkg-config" ,pkg-config)
11774 ("python-flake8" ,python-flake8)))
11775 (inputs
11776 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11777 ("gtk" ,gtk+)
11778 ("gtk:bin" ,gtk+ "bin")
11779 ("librsvg" ,librsvg)
11780 ("python-evdev" ,python-evdev)
11781 ("python-lxml" ,python-lxml)
11782 ("python-pycairo" ,python-pycairo)
11783 ("python-pygobject" ,python-pygobject)))
11784 (arguments
11785 `(#:imported-modules ((guix build python-build-system)
11786 ,@%meson-build-system-modules)
11787 #:modules (((guix build python-build-system) #:prefix python:)
11788 (guix build meson-build-system)
11789 (guix build utils))
11790 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11791 #:phases
11792 (modify-phases %standard-phases
11793 (add-after 'unpack 'dont-update-gtk-icon-cache
11794 (lambda _
11795 (substitute* "meson.build"
11796 (("meson.add_install_script('meson_install.sh')") ""))
11797 #t))
11798 ;; TODO: Switch to wrap-script when it is fixed.
11799 (add-after 'install 'wrap-python
11800 (assoc-ref python:%standard-phases 'wrap))
11801 (add-after 'wrap-python 'wrap
11802 (lambda* (#:key outputs #:allow-other-keys)
11803 (wrap-program
11804 (string-append (assoc-ref outputs "out" )"/bin/piper")
11805 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11806 #t)))))
11807 (home-page "https://github.com/libratbag/piper/")
11808 (synopsis "Configure bindings and LEDs on gaming mice")
11809 (description "Piper is a GTK+ application for configuring gaming mice with
11810 onboard configuration for key bindings via libratbag. Piper requires
11811 a @command{ratbagd} daemon running with root privileges. It can be run
11812 manually as root, but is preferably configured as a DBus service that can
11813 launch on demand. This can be configured by enabling the following service,
11814 provided there is a DBus service present:
11815
11816 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11817 (license license:gpl2)))
11818
11819 (define-public parlatype
11820 (package
11821 (name "parlatype")
11822 (version "2.1")
11823 (source
11824 (origin
11825 (method git-fetch)
11826 (uri (git-reference
11827 (url "https://github.com/gkarsay/parlatype")
11828 (commit (string-append "v" version))))
11829 (file-name (git-file-name name version))
11830 (sha256
11831 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11832 (build-system meson-build-system)
11833 (arguments
11834 `(#:glib-or-gtk? #t
11835 #:tests? #f ;require internet access
11836 #:phases
11837 (modify-phases %standard-phases
11838 (add-after 'install 'wrap-parlatype
11839 ;; Add gstreamer plugin provided in this package to system's
11840 ;; plugins.
11841 (lambda* (#:key outputs #:allow-other-keys)
11842 (let* ((out (assoc-ref outputs "out"))
11843 (gst-plugin-path (string-append
11844 out "/lib/gstreamer-1.0/"
11845 ":"
11846 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11847 (wrap-program (string-append out "/bin/parlatype")
11848 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11849 #t)))))
11850 (native-inputs
11851 `(("appstream-glib" ,appstream-glib)
11852 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11853 ("gettext" ,gettext-minimal)
11854 ("glib" ,glib "bin") ;for glib-compile-resources
11855 ("pkg-config" ,pkg-config)
11856 ("yelp-tools" ,yelp-tools)))
11857 (inputs
11858 `(("gst-plugins-base" ,gst-plugins-base)
11859 ("gst-plugins-good" ,gst-plugins-good)
11860 ("gstreamer" ,gstreamer)
11861 ("gtk+" ,gtk+)
11862 ("pocketsphinx" ,pocketsphinx)
11863 ("pulseaudio" ,pulseaudio)
11864 ("sphinxbase" ,sphinxbase)))
11865 (home-page "http://gkarsay.github.io/parlatype/")
11866 (synopsis "GNOME audio player for transcription")
11867 (description "Parlatype is an audio player for the GNOME desktop
11868 environment. Its main purpose is the manual transcription of spoken
11869 audio files.")
11870 (license license:gpl3+)))
11871
11872 (define-public jsonrpc-glib
11873 (package
11874 (name "jsonrpc-glib")
11875 (version "3.34.0")
11876 (source (origin
11877 (method url-fetch)
11878 (uri (string-append "mirror://gnome/sources/" name "/"
11879 (version-major+minor version) "/"
11880 name "-" version ".tar.xz"))
11881 (sha256
11882 (base32
11883 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11884 (build-system meson-build-system)
11885 (inputs
11886 `(("json-glib" ,json-glib)
11887 ("glib" ,glib)))
11888 (native-inputs
11889 `(("pkg-config" ,pkg-config)
11890 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11891 ("gobject-introspection" ,gobject-introspection)
11892 ("vala" ,vala)))
11893 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11894 (synopsis "JSON-RPC library for GLib")
11895 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11896 peers in either a synchronous or asynchronous fashion. It also allows
11897 communicating using the GVariant serialization format instead of JSON when
11898 both peers support it. You might want that when communicating on a single
11899 host to avoid parser overhead and memory-allocator fragmentation.")
11900 (license license:lgpl2.1+)))
11901
11902 (define-public feedbackd
11903 (package
11904 (name "feedbackd")
11905 (version "0.0.0+git20200527")
11906 (source (origin
11907 (method git-fetch)
11908 (uri (git-reference
11909 (url "https://source.puri.sm/Librem5/feedbackd.git")
11910 (commit (string-append "v" version))))
11911 (file-name (git-file-name name version))
11912 (sha256
11913 (base32
11914 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11915 (build-system meson-build-system)
11916 (native-inputs
11917 `(("glib:bin" ,glib "bin")
11918 ("gobject-introspection" ,gobject-introspection)
11919 ("pkg-config" ,pkg-config)
11920 ("vala" ,vala)))
11921 (inputs
11922 `(("dbus" ,dbus)
11923 ("gsound" ,gsound)
11924 ("json-glib" ,json-glib)
11925 ("libgudev" ,libgudev)))
11926 (propagated-inputs
11927 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11928 (synopsis "Haptic/visual/audio feedback via DBus")
11929 (description "Feedbackd provides a DBus daemon to act on events to provide
11930 haptic, visual and audio feedback. It offers the libfeedbackd library and
11931 GObject introspection bindings.")
11932 (home-page "https://source.puri.sm/Librem5/feedbackd")
11933 (license (list license:lgpl2.1+ ; libfeedbackd
11934 license:lgpl3+)))) ; the rest
11935
11936 (define-public sysprof
11937 (package
11938 (name "sysprof")
11939 (version "3.36.0")
11940 (source
11941 (origin
11942 (method url-fetch)
11943 (uri (string-append "mirror://gnome/sources/sysprof/"
11944 (version-major+minor version) "/"
11945 "sysprof-" version ".tar.xz"))
11946 (sha256
11947 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11948 (build-system meson-build-system)
11949 (arguments
11950 `(#:configure-flags
11951 (list (string-append "-Dsystemdunitdir="
11952 %output
11953 "/share/systemd"))
11954 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11955 #:phases
11956 (modify-phases %standard-phases
11957 (add-after 'unpack 'patch-install-script
11958 (lambda _
11959 (substitute* "build-aux/meson/post_install.sh"
11960 (("gtk-update-icon-cache") "true")
11961 (("update-desktop-database") "true"))
11962 #t)))))
11963 (inputs
11964 `(("glib" ,glib)
11965 ("gtk+" ,gtk+)
11966 ("libdazzle" ,libdazzle)
11967 ("polkit" ,polkit)))
11968 (native-inputs
11969 `(("gettext" ,gettext-minimal)
11970 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11971 ("itstool" ,itstool)
11972 ("pkg-config" ,pkg-config)
11973 ("xmllint" ,libxml2)))
11974 ;; This home page is so woefully out of date as to be essentially useless.
11975 ;; (home-page "http://www.sysprof.com")
11976 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11977 (synopsis "System-wide performance profiler for GNU/Linux")
11978 (description
11979 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11980 GNU/Linux system including the kernel and all user-space applications. This
11981 helps find the function(s) in which a program spends most of its time.
11982
11983 It uses the kernel's built-in @code{ptrace} feature and handles shared
11984 libraries. Applications do not need to be recompiled--or even restarted.")
11985 (license license:gpl3+)))
11986
11987 (define-public gnome-builder
11988 (package
11989 (name "gnome-builder")
11990 (version "3.36.1")
11991 (source (origin
11992 (method url-fetch)
11993 (uri (string-append "mirror://gnome/sources/" name "/"
11994 (version-major+minor version) "/"
11995 name "-" version ".tar.xz"))
11996 (sha256
11997 (base32
11998 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11999 (build-system meson-build-system)
12000 (arguments
12001 `(#:configure-flags (list "-Dnetwork_tests=false"
12002 ;; TODO: Enable all plugins...
12003 "-Dplugin_clang=false"
12004 "-Dplugin_flatpak=false"
12005 "-Dplugin_glade=false"
12006 ;; XXX: This one has been shown not to work in
12007 ;; <https://issues.guix.gnu.org/45272>
12008 "-Dplugin_jedi=false"
12009 ;; ... except this one.
12010 "-Dplugin_update_manager=false")
12011 #:phases
12012 (modify-phases %standard-phases
12013 (add-after 'unpack 'patch-meson
12014 (lambda* (#:key inputs #:allow-other-keys)
12015 (substitute* "build-aux/meson/post_install.py"
12016 (("gtk-update-icon-cache") "true")
12017 (("update-desktop-database") "true"))
12018 (substitute* "src/libide/meson.build"
12019 (("/usr/lib")
12020 (string-append (assoc-ref inputs "python-pygobject")
12021 "/lib")))
12022 #t))
12023 (add-after 'configure 'fix-ninja
12024 (lambda _
12025 ;; #43296: meson(?) incorrectly assumes we want to link
12026 ;; this PIE against a static libselinux.
12027 (substitute* "build.ninja"
12028 (("libselinux\\.a") "libselinux.so"))
12029 #t))
12030 (add-before 'check 'pre-check
12031 (lambda _
12032 (system "Xvfb :1 &")
12033 (setenv "DISPLAY" ":1")
12034 #t)))))
12035 (inputs
12036 `(("devhelp" ,devhelp)
12037 ("gspell" ,gspell)
12038 ("gtk+" ,gtk+)
12039 ("json-glib" ,json-glib)
12040 ("jsonrpc-glib" ,jsonrpc-glib)
12041 ("libdazzle" ,libdazzle)
12042 ("libgit2-glib" ,libgit2-glib)
12043 ("libpeas" ,libpeas)
12044 ("python-pygobject" ,python-pygobject)
12045 ("sysprof" ,sysprof)
12046 ("template-glib" ,template-glib)
12047 ("vte" ,vte)
12048 ("webkitgtk" ,webkitgtk)))
12049 (propagated-inputs
12050 `(("gtksourceview" ,gtksourceview))) ;needed for settings
12051 (native-inputs
12052 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
12053 ("glib:bin" ,glib "bin")
12054 ("gettext" ,gettext-minimal)
12055 ("pkg-config" ,pkg-config)
12056 ("vala" ,vala)
12057 ("xorg-server" ,xorg-server-for-tests)))
12058 (home-page "https://wiki.gnome.org/Apps/Builder")
12059 (synopsis "Toolsmith for GNOME-based applications")
12060 (description "Builder aims to be an integrated development
12061 environment (IDE) for writing GNOME-based software. It features fuzzy search,
12062 auto-completion, a mini code map, documentation browsing, Git integration, an
12063 integrated profiler via Sysprof, debugging support, and more.")
12064 (license license:gpl3+)))
12065
12066 (define-public komikku
12067 (package
12068 (name "komikku")
12069 (version "0.29.2")
12070 (source
12071 (origin
12072 (method git-fetch)
12073 (uri (git-reference
12074 (url "https://gitlab.com/valos/Komikku/")
12075 (commit (string-append "v" version))))
12076 (file-name (git-file-name name version))
12077 (sha256
12078 (base32
12079 "0g1whk0y3k1cy6ix20gz226ww1vzpb9hinn5d24z6j38mdgqqa5l"))))
12080 (build-system meson-build-system)
12081 (arguments
12082 `(#:glib-or-gtk? #t
12083 #:phases
12084 (modify-phases %standard-phases
12085 (add-after 'unpack 'patch-sources
12086 (lambda _
12087 (substitute* "komikku/utils.py"
12088 (("from komikku\\.servers import get_servers_list")
12089 ;; code following that line should migrate old databases
12090 ;; but the line itself results in an import error
12091 "return data_dir_path"))))
12092 (add-after 'unpack 'skip-gtk-update-icon-cache
12093 (lambda _
12094 (substitute* "meson_post_install.py"
12095 (("gtk-update-icon-cache") (which "true")))
12096 #t))
12097 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12098 (lambda* (#:key outputs #:allow-other-keys)
12099 (let ((prog (string-append (assoc-ref outputs "out")
12100 "/bin/komikku")))
12101 (wrap-program prog
12102 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
12103 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12104 #t))))))
12105 (inputs
12106 `(("gtk+" ,gtk+)
12107 ("libhandy" ,libhandy)
12108 ("libnotify" ,libnotify)
12109 ("libsecret" ,libsecret)
12110 ("python-beautifulsoup4" ,python-beautifulsoup4)
12111 ("python-brotli" ,python-brotli)
12112 ("python-cloudscraper" ,python-cloudscraper)
12113 ("python-dateparser" ,python-dateparser)
12114 ("python-keyring" ,python-keyring)
12115 ("python-lxml" ,python-lxml)
12116 ("python-magic" ,python-magic)
12117 ("python-pillow" ,python-pillow)
12118 ("python-pure-protobuf" ,python-pure-protobuf)
12119 ("python-pycairo" ,python-pycairo)
12120 ("python-pygobject" ,python-pygobject)
12121 ("python-requests" ,python-requests)
12122 ("python-unidecode" ,python-unidecode)
12123 ("webkitgtk" ,webkitgtk)))
12124 (native-inputs
12125 `(("desktop-file-utils" ,desktop-file-utils)
12126 ("gettext" ,gettext-minimal)
12127 ("glib:bin" ,glib "bin")
12128 ("gobject-introspection" ,gobject-introspection)
12129 ("pkg-config" ,pkg-config)))
12130 (home-page "https://gitlab.com/valos/Komikku")
12131 (synopsis "Manga reader for GNOME")
12132 (description "Komikku is an online/offline manga reader for GNOME,
12133 developed with the aim of being used with the Librem 5 phone.")
12134 (license license:gpl3+)))
12135
12136 (define-public libgda
12137 (package
12138 (name "libgda")
12139 (version "5.2.10")
12140 (source
12141 (origin
12142 (method git-fetch)
12143 (uri (git-reference
12144 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
12145 (commit (string-append "LIBGDA_" (string-replace-substring
12146 version "." "_")))))
12147 (file-name (git-file-name name version))
12148 (sha256
12149 (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
12150 (build-system gnu-build-system)
12151 (arguments
12152 `(#:configure-flags '("--enable-vala")
12153 ;; There's a race between check_cnc_lock and check_threaded_cnc
12154 ;; in tests/multi-threading.
12155 #:parallel-tests? #f
12156 #:phases
12157 (modify-phases %standard-phases
12158 (add-after 'unpack 'fix-glade-install
12159 (lambda _
12160 (substitute* "configure.ac"
12161 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
12162 "${datadir}/glade/catalogs")
12163 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
12164 "${datadir}/glade/pixmaps"))
12165 #t))
12166 (add-before 'check 'pre-check
12167 (lambda* (#:key inputs #:allow-other-keys)
12168 ;; Tests require a running X server.
12169 (system "Xvfb :1 &")
12170 (setenv "DISPLAY" ":1")
12171 #t))
12172 (add-after 'install 'symlink-glade-module
12173 (lambda* (#:key outputs #:allow-other-keys)
12174 (let* ((shlib "libgda-ui-5.0.so")
12175 (out (assoc-ref outputs "out"))
12176 (out/lib (string-append out "/lib"))
12177 (moduledir (string-append out/lib "/glade/modules")))
12178 (mkdir-p moduledir)
12179 (symlink (string-append out/lib "/" shlib)
12180 (string-append moduledir "/" shlib))
12181 #t))))))
12182 (propagated-inputs
12183 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
12184 (inputs
12185 `(("glib" ,glib)
12186 ("glade" ,glade3)
12187 ("gtk+" ,gtk+)
12188 ("libsecret" ,libsecret)
12189 ("libxslt" ,libxslt)
12190 ("openssl" ,openssl)
12191 ("vala" ,vala)))
12192 (native-inputs
12193 `(("autoconf" ,autoconf)
12194 ("autoconf-archive" ,autoconf-archive)
12195 ("automake" ,automake)
12196 ("glib:bin" ,glib "bin")
12197 ("gnome-common" ,gnome-common)
12198 ("gobject-introspection" ,gobject-introspection)
12199 ("gtk-doc" ,gtk-doc/stable)
12200 ("intltool" ,intltool)
12201 ("libtool" ,libtool)
12202 ("pkg-config" ,pkg-config)
12203 ("vala" ,vala)
12204 ("which" ,which)
12205 ("xorg-server" ,xorg-server-for-tests)
12206 ("yelp-tools" ,yelp-tools)))
12207 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12208 (synopsis "Uniform data access")
12209 (description
12210 "GNU Data Access (GDA) is an attempt to provide uniform access to
12211 different kinds of data sources (databases, information servers, mail spools,
12212 etc). It is a complete architecture that provides all you need to access
12213 your data.")
12214 (license license:lgpl2.1+)))
12215
12216 (define-public gtranslator
12217 (package
12218 (name "gtranslator")
12219 (version "3.36.0")
12220 (source (origin
12221 (method url-fetch)
12222 (uri (string-append "mirror://gnome/sources/" name "/"
12223 (version-major+minor version) "/"
12224 name "-" version ".tar.xz"))
12225 (sha256
12226 (base32
12227 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
12228 (build-system meson-build-system)
12229 (inputs
12230 `(("json-glib" ,json-glib)
12231 ("jsonrpc-glib" ,jsonrpc-glib)
12232 ("gettext" ,gettext-minimal)
12233 ("glib" ,glib)
12234 ("gtk+" ,gtk+)
12235 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12236 ("gspell" ,gspell)
12237 ("libdazzle" ,libdazzle)
12238 ("libgda" ,libgda)
12239 ("libsoup" ,libsoup)))
12240 (native-inputs
12241 `(("glib:bin" ,glib "bin")
12242 ("itstool" ,itstool)
12243 ("pkg-config" ,pkg-config)))
12244 (propagated-inputs
12245 `(("gtksourceview" ,gtksourceview))) ; required for source view
12246 (arguments
12247 `(#:build-type "release"
12248 #:glib-or-gtk? #t
12249 #:phases
12250 (modify-phases %standard-phases
12251 (add-after 'unpack 'skip-gtk-update-icon-cache
12252 (lambda _
12253 (substitute* "build-aux/meson/meson_post_install.py"
12254 (("gtk-update-icon-cache") (which "true")))
12255 #t)))))
12256 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12257 (synopsis "Translation making program")
12258 (description
12259 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12260 for the GNOME 3.x platform with many features. It aims to be a very complete
12261 editing environment for translation issues within the GNU gettext/GNOME desktop
12262 world.")
12263 (license license:gpl3+)))
12264
12265
12266 (define-public ocrfeeder
12267 (package
12268 (name "ocrfeeder")
12269 (version "0.8.3")
12270 (source (origin
12271 (method url-fetch)
12272 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12273 (version-major+minor version) "/"
12274 "ocrfeeder-" version ".tar.xz"))
12275 (sha256
12276 (base32
12277 "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529"))))
12278 (build-system gnu-build-system)
12279 (arguments
12280 `(#:phases
12281 (modify-phases %standard-phases
12282 (add-after
12283 'install 'wrap-program
12284 (lambda* (#:key outputs #:allow-other-keys)
12285 (let ((prog (string-append (assoc-ref outputs "out")
12286 "/bin/" "ocrfeeder"))
12287 (pylib (string-append (assoc-ref outputs "out")
12288 "/lib/python"
12289 ,(version-major+minor
12290 (package-version python))
12291 "/site-packages")))
12292 (wrap-program prog
12293 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
12294 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12295 #t))))))
12296 (native-inputs
12297 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12298 ("gobject-introspection" ,gobject-introspection)
12299 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12300 ("intltool" ,intltool)
12301 ("itstool" ,itstool)
12302 ("pkg-config" ,pkg-config)
12303 ("xmllint" ,libxml2)))
12304 (inputs
12305 `(("enchant" ,enchant)
12306 ("glib" ,glib)
12307 ("goocanvas" ,goocanvas)
12308 ("gtk" ,gtk+)
12309 ("gtkspell3" ,gtkspell3)
12310 ("libjpeg" ,libjpeg-turbo)
12311 ("libtiff" ,libtiff)
12312 ("libraw" ,libraw)
12313 ("ocrad" ,ocrad)
12314 ("python" ,python-wrapper)
12315 ("python-pygobject" ,python-pygobject)
12316 ("python-odfpy" ,python-odfpy)
12317 ("python-pillow" ,python-pillow)
12318 ("python-pyenchant" ,python-pyenchant)
12319 ("python-reportlab" ,python-reportlab)
12320 ("python-sane" ,python-sane)
12321 ("sane-backends" ,sane-backends)
12322 ("tesseract-ocr" ,tesseract-ocr)))
12323 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12324 (synopsis "Complete OCR Suite")
12325 (description "OCRFeeder is a complete Optical Character Recognition and
12326 Document Analysis and Recognition program.")
12327 (license license:gpl3+)))