gnu: Add libgda.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016, 2020 Eric Bavier <bavier@posteo.net>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 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, 2017, 2018, 2019, 2020 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 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 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
58 ;;;
59 ;;; This file is part of GNU Guix.
60 ;;;
61 ;;; GNU Guix is free software; you can redistribute it and/or modify it
62 ;;; under the terms of the GNU General Public License as published by
63 ;;; the Free Software Foundation; either version 3 of the License, or (at
64 ;;; your option) any later version.
65 ;;;
66 ;;; GNU Guix is distributed in the hope that it will be useful, but
67 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
68 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
69 ;;; GNU General Public License for more details.
70 ;;;
71 ;;; You should have received a copy of the GNU General Public License
72 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
73
74 (define-module (gnu packages gnome)
75 #:use-module (gnu packages)
76 #:use-module (gnu packages admin)
77 #:use-module (gnu packages aspell)
78 #:use-module (gnu packages autotools)
79 #:use-module (gnu packages avahi)
80 #:use-module (gnu packages backup)
81 #:use-module (gnu packages base)
82 #:use-module (gnu packages bash)
83 #:use-module (gnu packages bison)
84 #:use-module (gnu packages boost)
85 #:use-module (gnu packages build-tools)
86 #:use-module (gnu packages calendar)
87 #:use-module (gnu packages cdrom)
88 #:use-module (gnu packages check)
89 #:use-module (gnu packages cmake)
90 #:use-module (gnu packages compression)
91 #:use-module (gnu packages crates-io)
92 #:use-module (gnu packages cups)
93 #:use-module (gnu packages curl)
94 #:use-module (gnu packages cyrus-sasl)
95 #:use-module (gnu packages databases)
96 #:use-module (gnu packages dbm)
97 #:use-module (gnu packages djvu)
98 #:use-module (gnu packages dns)
99 #:use-module (gnu packages docbook)
100 #:use-module (gnu packages documentation)
101 #:use-module (gnu packages enchant)
102 #:use-module (gnu packages flex)
103 #:use-module (gnu packages fonts)
104 #:use-module (gnu packages file-systems)
105 #:use-module (gnu packages fontutils)
106 #:use-module (gnu packages freedesktop)
107 #:use-module (gnu packages game-development)
108 #:use-module (gnu packages gettext)
109 #:use-module (gnu packages ghostscript)
110 #:use-module (gnu packages gimp)
111 #:use-module (gnu packages gl)
112 #:use-module (gnu packages glib)
113 #:use-module (gnu packages gnupg)
114 #:use-module (gnu packages gnuzilla)
115 #:use-module (gnu packages geo)
116 #:use-module (gnu packages gperf)
117 #:use-module (gnu packages graphviz)
118 #:use-module (gnu packages gstreamer)
119 #:use-module (gnu packages gtk)
120 #:use-module (gnu packages guile)
121 #:use-module (gnu packages ibus)
122 #:use-module (gnu packages icu4c)
123 #:use-module (gnu packages image)
124 #:use-module (gnu packages imagemagick)
125 #:use-module (gnu packages inkscape)
126 #:use-module (gnu packages iso-codes)
127 #:use-module (gnu packages kerberos)
128 #:use-module (gnu packages libcanberra)
129 #:use-module (gnu packages libffi)
130 #:use-module (gnu packages libunistring)
131 #:use-module (gnu packages libunwind)
132 #:use-module (gnu packages libusb)
133 #:use-module (gnu packages linux)
134 #:use-module (gnu packages lirc)
135 #:use-module (gnu packages lua)
136 #:use-module (gnu packages mail)
137 #:use-module (gnu packages mp3)
138 #:use-module (gnu packages multiprecision)
139 #:use-module (gnu packages music)
140 #:use-module (gnu packages ncurses)
141 #:use-module (gnu packages nettle)
142 #:use-module (gnu packages networking)
143 #:use-module (gnu packages ninja)
144 #:use-module (gnu packages node)
145 #:use-module (gnu packages nss)
146 #:use-module (gnu packages openldap)
147 #:use-module (gnu packages package-management)
148 #:use-module (gnu packages password-utils)
149 #:use-module (gnu packages pcre)
150 #:use-module (gnu packages pdf)
151 #:use-module (gnu packages perl)
152 #:use-module (gnu packages photo)
153 #:use-module (gnu packages php)
154 #:use-module (gnu packages pkg-config)
155 #:use-module (gnu packages polkit)
156 #:use-module (gnu packages popt)
157 #:use-module (gnu packages pretty-print)
158 #:use-module (gnu packages protobuf)
159 #:use-module (gnu packages pulseaudio)
160 #:use-module (gnu packages python)
161 #:use-module (gnu packages python-crypto)
162 #:use-module (gnu packages python-web)
163 #:use-module (gnu packages python-xyz)
164 #:use-module (gnu packages rdesktop)
165 #:use-module (gnu packages rdf)
166 #:use-module (gnu packages readline)
167 #:use-module (gnu packages ruby)
168 #:use-module (gnu packages rust)
169 #:use-module (gnu packages samba)
170 #:use-module (gnu packages scanner)
171 #:use-module (gnu packages sdl)
172 #:use-module (gnu packages search)
173 #:use-module (gnu packages selinux)
174 #:use-module (gnu packages slang)
175 #:use-module (gnu packages speech)
176 #:use-module (gnu packages spice)
177 #:use-module (gnu packages sqlite)
178 #:use-module (gnu packages ssh)
179 #:use-module (gnu packages swig)
180 #:use-module (gnu packages tex)
181 #:use-module (gnu packages time)
182 #:use-module (gnu packages tls)
183 #:use-module (gnu packages valgrind)
184 #:use-module (gnu packages version-control)
185 #:use-module (gnu packages video)
186 #:use-module (gnu packages virtualization)
187 #:use-module (gnu packages vpn)
188 #:use-module (gnu packages web)
189 #:use-module (gnu packages webkit)
190 #:use-module (gnu packages xdisorg)
191 #:use-module (gnu packages xiph)
192 #:use-module (gnu packages xml)
193 #:use-module (gnu packages xorg)
194 #:use-module (gnu artwork)
195 #:use-module ((guix build utils) #:select (modify-phases))
196 #:use-module (guix build-system cargo)
197 #:use-module (guix build-system cmake)
198 #:use-module (guix build-system glib-or-gtk)
199 #:use-module (guix build-system gnu)
200 #:use-module (guix build-system meson)
201 #:use-module (guix build-system python)
202 #:use-module (guix build-system trivial)
203 #:use-module (guix download)
204 #:use-module (guix git-download)
205 #:use-module ((guix licenses) #:prefix license:)
206 #:use-module (guix packages)
207 #:use-module (guix utils)
208 #:use-module (guix gexp)
209 #:use-module (guix monads)
210 #:use-module (guix store)
211 #:use-module (ice-9 match)
212 #:use-module (srfi srfi-1))
213
214 (define-public brasero
215 (package
216 (name "brasero")
217 (version "3.12.2")
218 (source (origin
219 (method url-fetch)
220 (uri (string-append "mirror://gnome/sources/brasero/"
221 (version-major+minor version) "/"
222 "brasero-" version ".tar.xz"))
223 (sha256
224 (base32
225 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
226 (build-system glib-or-gtk-build-system)
227 (arguments
228 `(#:configure-flags (list
229 (string-append "--with-girdir="
230 (assoc-ref %outputs "out")
231 "/share/gir-1.0")
232 (string-append "--with-typelibdir="
233 (assoc-ref %outputs "out")
234 "/lib/girepository-1.0"))
235 #:phases
236 (modify-phases %standard-phases
237 (add-before 'configure 'embed-growisofs
238 (lambda* (#:key inputs #:allow-other-keys)
239 (substitute* "plugins/growisofs/burn-growisofs.c"
240 (("\"growisofs") (string-append "\"" (which "growisofs"))))
241 #t)))))
242 (propagated-inputs
243 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
244 (native-inputs
245 `(("intltool" ,intltool)
246 ("itstool" ,itstool)
247 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
248 ("gobject-introspection" ,gobject-introspection)
249 ("pkg-config" ,pkg-config)))
250 (inputs
251 `(("dvd+rw-tools" ,dvd+rw-tools)
252 ("glib" ,glib)
253 ("gnome-doc-utils" ,gnome-doc-utils)
254 ("gstreamer" ,gstreamer)
255 ("gst-plugins-base" ,gst-plugins-base)
256 ("gtk+" ,gtk+)
257 ("libcanberra" ,libcanberra)
258 ("libice" ,libice)
259 ("libnotify" ,libnotify)
260 ("libsm" ,libsm)
261 ("libxml2" ,libxml2)
262 ("totem-pl-parser" ,totem-pl-parser)))
263 (home-page "https://wiki.gnome.org/Apps/Brasero")
264 (synopsis "CD/DVD burning tool for Gnome")
265 (description "Brasero is an application to burn CD/DVD for the Gnome
266 Desktop. It is designed to be as simple as possible and has some unique
267 features to enable users to create their discs easily and quickly.")
268 (license license:gpl2+)))
269
270 (define-public libcloudproviders
271 (package
272 (name "libcloudproviders")
273 (version "0.3.1")
274 (source
275 (origin
276 (method url-fetch)
277 (uri
278 (string-append "mirror://gnome/sources/" name "/"
279 (version-major+minor version) "/"
280 name "-" version ".tar.xz"))
281 (sha256
282 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
283 (build-system meson-build-system)
284 (outputs '("out" "doc"))
285 (arguments
286 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
287 #:configure-flags
288 (list
289 "-Denable-gtk-doc=true")
290 #:phases
291 (modify-phases %standard-phases
292 (add-after 'install 'move-doc
293 (lambda* (#:key outputs #:allow-other-keys)
294 (let* ((out (assoc-ref outputs "out"))
295 (doc (assoc-ref outputs "doc")))
296 (mkdir-p (string-append doc "/share"))
297 (rename-file
298 (string-append out "/share/gtk-doc")
299 (string-append doc "/share/gtk-doc"))
300 #t))))))
301 (native-inputs
302 `(("glib:bin" ,glib "bin")
303 ("gobject-introspection" ,gobject-introspection)
304 ("gtk-doc" ,gtk-doc)
305 ("pkg-config" ,pkg-config)
306 ("vala" ,vala)))
307 (inputs
308 `(("glib" ,glib)
309 ("glib-networking" ,glib-networking)))
310 (synopsis "Cloudproviders Integration API")
311 (description "Libcloudproviders is a DBus API that allows cloud storage sync
312 clients to expose their services. Clients such as file managers and desktop
313 environments can then provide integrated access to the cloud providers
314 services.")
315 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
316 (license license:lgpl3+)))
317
318 (define-public libgrss
319 (package
320 (name "libgrss")
321 (version "0.7.0")
322 (source
323 (origin
324 (method url-fetch)
325 (uri
326 (string-append "mirror://gnome/sources/" name "/"
327 (version-major+minor version) "/"
328 name "-" version ".tar.xz"))
329 (sha256
330 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
331 (build-system glib-or-gtk-build-system)
332 (outputs '("out" "doc"))
333 (arguments
334 `(#:configure-flags
335 (list
336 "--enable-gtk-doc"
337 (string-append "--with-html-dir="
338 (assoc-ref %outputs "doc")
339 "/share/gtk-doc/html"))
340 #:phases
341 (modify-phases %standard-phases
342 (add-after 'unpack 'patch-docbook-xml
343 (lambda* (#:key inputs #:allow-other-keys)
344 (with-directory-excursion "doc/reference"
345 (substitute* "libgrss-docs.sgml"
346 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
347 (string-append (assoc-ref inputs "docbook-xml")
348 "/xml/dtd/docbook/"))))
349 #t)))))
350 (native-inputs
351 `(("docbook-xml" ,docbook-xml-4.1.2)
352 ("gobject-introspection" ,gobject-introspection)
353 ("gtk-doc" ,gtk-doc)
354 ("pkg-config" ,pkg-config)))
355 (propagated-inputs
356 `(("glib" ,glib)
357 ("libsoup" ,libsoup)
358 ("libxml2" ,libxml2)))
359 (synopsis "Glib library for feeds")
360 (description "LibGRSS is a Glib abstaction to handle feeds in RSS, Atom and
361 other formats.")
362 (home-page "https://wiki.gnome.org/Projects/Libgrss")
363 (license license:lgpl3+)))
364
365 (define-public gnome-js-common
366 (package
367 (name "gnome-js-common")
368 (version "0.1.2")
369 (source
370 (origin
371 (method url-fetch)
372 (uri
373 (string-append "mirror://gnome/sources/" name "/"
374 (version-major+minor version) "/"
375 name "-" version ".tar.gz"))
376 (sha256
377 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
378 (build-system glib-or-gtk-build-system)
379 (arguments
380 `(#:configure-flags
381 (list
382 "--disable-static")))
383 (native-inputs
384 `(("gettext" ,gettext-minimal)
385 ("intltool" ,intltool)
386 ("pkg-config" ,pkg-config)))
387 (synopsis "Common JS Modules")
388 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
389 bindings.")
390 (home-page "https://wiki.gnome.org/Projects/Seed")
391 (license license:gpl3+)))
392
393 (define-public seed
394 (package
395 (name "seed")
396 (version "3.8.1")
397 (source
398 (origin
399 (method url-fetch)
400 (uri
401 (string-append "mirror://gnome/sources/" name "/"
402 (version-major+minor version) "/"
403 name "-" version ".tar.xz"))
404 (sha256
405 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
406 (patches
407 (search-patches "seed-webkit.patch"))))
408 (build-system glib-or-gtk-build-system)
409 (outputs '("out" "doc"))
410 (arguments
411 `(#:configure-flags
412 (list
413 "--disable-static"
414 "--enable-xorg-module"
415 (string-append "--with-html-dir="
416 (assoc-ref %outputs "doc")
417 "/share/gtk-doc/html")
418 "--with-webkit=4.0")
419 #:phases
420 (modify-phases %standard-phases
421 ;; The seed-webkit.patch patches configure.ac.
422 ;; So the source files need to be re-bootstrapped.
423 (add-after 'unpack 'trigger-bootstrap
424 (lambda _
425 (for-each delete-file
426 (list
427 "configure"
428 "Makefile.in"))
429 #t))
430 (add-after 'unpack 'patch-tests
431 (lambda* (#:key outputs #:allow-other-keys)
432 (substitute* (find-files "." "\\.js$")
433 (("#!/usr/bin/env seed")
434 (string-append "#!" (getcwd) "/src/seed")))
435 #t))
436 (add-before 'build 'patch-docbook-xml
437 (lambda* (#:key inputs #:allow-other-keys)
438 (with-directory-excursion "doc"
439 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
440 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
441 (string-append (assoc-ref inputs "docbook-xml")
442 "/xml/dtd/docbook/"))))
443 #t)))))
444 (native-inputs
445 `(("autoconf" ,autoconf)
446 ("automake" ,automake)
447 ("docbook-xml" ,docbook-xml-4.1.2)
448 ("gettext" ,gettext-minimal)
449 ("gobject-introspection" ,gobject-introspection)
450 ("gtk-doc" ,gtk-doc)
451 ("intltool" ,intltool)
452 ("libtool" ,libtool)
453 ("pkg-config" ,pkg-config)))
454 (inputs
455 `(("cairo" ,cairo)
456 ("dbus" ,dbus)
457 ("dbus-glib" ,dbus-glib)
458 ("gnome-js-common" ,gnome-js-common)
459 ("gtk+" ,gtk+)
460 ("gtk+-2" ,gtk+-2)
461 ("libffi" ,libffi)
462 ("libxml2" ,libxml2)
463 ("mpfr" ,mpfr)
464 ("readline" ,readline)
465 ("sqlite" ,sqlite)
466 ("xscrnsaver" ,libxscrnsaver)))
467 (propagated-inputs
468 `(("glib" ,glib)
469 ("webkit" ,webkitgtk)))
470 (synopsis "GObject JavaScriptCore bridge")
471 (description "Seed is a library and interpreter, dynamically bridging
472 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
473 GNOME platform. It serves as something which enables you to write standalone
474 applications in JavaScript, or easily enable your application to be extensible
475 in JavaScript.")
476 (home-page "https://wiki.gnome.org/Projects/Seed")
477 (license license:lgpl2.0+)))
478
479 (define-public libdmapsharing
480 (package
481 (name "libdmapsharing")
482 (version "3.9.10")
483 (source
484 (origin
485 (method url-fetch)
486 (uri
487 (string-append "https://www.flyn.org/projects/"
488 name "/" name "-" version ".tar.gz"))
489 (sha256
490 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
491 (build-system glib-or-gtk-build-system)
492 (outputs '("out" "doc"))
493 (arguments
494 `(#:tests? #f ; Tests require networking.
495 #:configure-flags
496 (list
497 "--disable-static"
498 (string-append "--with-html-dir="
499 (assoc-ref %outputs "doc")
500 "/share/gtk-doc/html"))
501 #:phases
502 (modify-phases %standard-phases
503 (add-after 'unpack 'patch-docbook-xml
504 (lambda* (#:key inputs #:allow-other-keys)
505 (with-directory-excursion "doc"
506 (substitute* "libdmapsharing-4.0-docs.xml"
507 (("http://www.oasis-open.org/docbook/xml/4.3/")
508 (string-append (assoc-ref inputs "docbook-xml")
509 "/xml/dtd/docbook/"))))
510 #t)))))
511 (native-inputs
512 `(("check" ,check)
513 ("docbook-xml" ,docbook-xml-4.3)
514 ("gobject-introspection" ,gobject-introspection)
515 ("pedansee" ,pedansee)
516 ("pkg-config" ,pkg-config)
517 ("vala" ,vala)))
518 (inputs
519 `(("avahi" ,avahi)
520 ("gdk-pixbuf" ,gdk-pixbuf+svg)
521 ("gee" ,libgee)
522 ("gst-plugins-base" ,gst-plugins-base)
523 ("gtk+" ,gtk+)))
524 (propagated-inputs
525 `(("glib" ,glib)
526 ("glib-networking" ,glib-networking)
527 ("gstreamer" ,gstreamer)
528 ("libsoup" ,libsoup)))
529 (synopsis "Media management library")
530 (description "Libdmapsharing is a library which allows programs to access,
531 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
532 It is written in C using GObject and libsoup.")
533 (home-page "https://launchpad.net/gtx")
534 (license license:lgpl2.1+)))
535
536 (define-public gtx
537 (package
538 (name "gtx")
539 (version "0.2.2")
540 (source
541 (origin
542 (method url-fetch)
543 (uri
544 (string-append "https://launchpad.net/gtx/trunk/"
545 version "/+download/gtx-" version ".tar.gz"))
546 (sha256
547 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
548 (build-system glib-or-gtk-build-system)
549 (outputs '("out" "doc"))
550 (arguments
551 `(#:configure-flags
552 (list
553 "--disable-static"
554 "--enable-gtk-doc"
555 (string-append "--with-html-dir="
556 (assoc-ref %outputs "doc")
557 "/share/gtk-doc/html"))))
558 (native-inputs
559 `(("gobject-introspection" ,gobject-introspection)
560 ("gtk-doc" ,gtk-doc)
561 ("pkg-config" ,pkg-config)))
562 (propagated-inputs
563 `(("glib" ,glib)))
564 (synopsis "GLib Testing Framework")
565 (description "GTX is a small collection of convenience functions intended to
566 enhance the GLib testing framework. With specific emphasis on easing the pain
567 of writing test cases for asynchronous interactions.")
568 (home-page "https://launchpad.net/gtx")
569 (license license:lgpl2.1+)))
570
571 (define-public dee
572 (package
573 (name "dee")
574 (version "1.2.7")
575 (source
576 (origin
577 (method url-fetch)
578 (uri
579 (string-append "https://launchpad.net/dee/1.0/"
580 version "/+download/dee-" version ".tar.gz"))
581 (sha256
582 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
583 (patches
584 (search-patches "dee-vapi.patch"))))
585 (build-system glib-or-gtk-build-system)
586 (outputs '("out" "doc"))
587 (arguments
588 `(#:configure-flags
589 (list
590 "--disable-maintainer-flags"
591 (string-append "--with-pygi-overrides-dir="
592 (assoc-ref %outputs "out")
593 "/lib/python"
594 ,(version-major+minor
595 (package-version python))
596 "/site-packages/gi/overrides")
597 (string-append "--with-html-dir="
598 (assoc-ref %outputs "doc")
599 "/share/gtk-doc/html"))
600 #:phases
601 (modify-phases %standard-phases
602 (add-after 'unpack 'patch-docbook-xml
603 (lambda* (#:key inputs #:allow-other-keys)
604 (with-directory-excursion "doc/reference/dee-1.0"
605 (substitute* "dee-1.0-docs.sgml"
606 (("http://www.oasis-open.org/docbook/xml/4.3/")
607 (string-append (assoc-ref inputs "docbook-xml")
608 "/xml/dtd/docbook/"))))
609 #t))
610 (add-after 'patch-docbook-xml 'disable-failing-tests
611 (lambda _
612 (substitute* "tests/test-icu.c"
613 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
614 "")
615 (("setup, test_ascii_folder, teardown\\);")
616 ""))
617 #t))
618 (add-before 'check 'pre-check
619 (lambda _
620 ;; Tests require a running dbus-daemon.
621 (system "dbus-daemon &")
622 ;; For missing '/etc/machine-id'.
623 (setenv "DBUS_FATAL_WARNINGS" "0")
624 #t)))))
625 (native-inputs
626 `(("dbus" ,dbus)
627 ("dbus-test-runner" ,dbus-test-runner)
628 ("docbook-xml" ,docbook-xml-4.3)
629 ("gobject-introspection" ,gobject-introspection)
630 ("gtk-doc" ,gtk-doc)
631 ;; Would only be required by configure flag "--enable-extended-tests".
632 ;("gtx" ,gtx)
633 ("pkg-config" ,pkg-config)
634 ("pygobject" ,python-pygobject)
635 ("python" ,python-wrapper)
636 ("vala" ,vala)))
637 (inputs
638 `(("icu" ,icu4c)))
639 (propagated-inputs
640 `(("glib" ,glib)))
641 (synopsis "Model to synchronize multiple instances over DBus")
642 (description "Dee is a library that uses DBus to provide objects allowing
643 you to create Model-View-Controller type programs across DBus. It also consists
644 of utility objects which extend DBus allowing for peer-to-peer discoverability
645 of known objects without needing a central registrar.")
646 (home-page "https://launchpad.net/dee")
647 (license
648 ;; Dual-licensed
649 (list
650 license:lgpl3+
651 license:gpl3+))))
652
653 (define-public zeitgeist
654 (package
655 (name "zeitgeist")
656 (version "1.0.2")
657 (source
658 (origin
659 (method git-fetch)
660 (uri
661 (git-reference
662 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
663 (commit
664 (string-append "v" version))))
665 (file-name
666 (git-file-name name version))
667 (sha256
668 (base32 "0ig3d3j1n0ghaxsgfww6g2hhcdwx8cljwwfmp9jk1nrvkxd6rnmv"))))
669 (build-system glib-or-gtk-build-system)
670 (arguments
671 `(#:configure-flags
672 (list
673 "--enable-explain-queries"
674 "--enable-fts"
675 "--enable-docs")
676 #:phases
677 (modify-phases %standard-phases
678 (add-after 'unpack 'patch-docbook-xml
679 (lambda* (#:key inputs #:allow-other-keys)
680 (with-directory-excursion "doc/libzeitgeist"
681 (substitute* "zeitgeist-gtkdoc-index.sgml"
682 (("http://www.oasis-open.org/docbook/xml/4.3/")
683 (string-append (assoc-ref inputs "docbook-xml")
684 "/xml/dtd/docbook/"))))
685 #t))
686 (add-after 'patch-docbook-xml 'disable-failing-tests
687 (lambda _
688 (substitute* "test/direct/Makefile.am"
689 ((" log-test ")
690 ""))
691 (substitute* "test/c/Makefile.am"
692 ((" test-log ")
693 ""))
694 #t))
695 (add-before 'bootstrap 'remove-autogen-script
696 (lambda _
697 ;; To honor `autoreconf -vif` by build-system.
698 (delete-file "autogen.sh")
699 #t)))))
700 (native-inputs
701 `(("autoconf" ,autoconf)
702 ("automake" ,automake)
703 ("docbook-xml" ,docbook-xml-4.3)
704 ("gettext" ,gettext-minimal)
705 ("gobject-introspection" ,gobject-introspection)
706 ("gtk-doc" ,gtk-doc)
707 ("libtool" ,libtool)
708 ("pkg-config" ,pkg-config)
709 ("vala" ,vala)
710 ("xorg-server-for-tests" ,xorg-server-for-tests)))
711 (inputs
712 `(("dee-icu" ,dee)
713 ("gtk+" ,gtk+)
714 ("json-glib" ,json-glib)
715 ("sqlite" ,sqlite)
716 ("telepathy-glib" ,telepathy-glib)
717 ("python" ,python-wrapper)
718 ("python-rdflib" ,python-rdflib)
719 ("xapian-config" ,xapian)))
720 (propagated-inputs
721 `(("glib" ,glib)))
722 (synopsis "Desktop Activity Logging")
723 (description "Zeitgeist is a service which logs the users’s activities and
724 events, anywhere from files opened to websites visited and conversations. It
725 makes this information readily available for other applications to use. It is
726 able to establish relationships between items based on similarity and usage
727 patterns.")
728 (home-page "https://zeitgeist.freedesktop.org/")
729 (license
730 ;; Dual-licensed
731 (list
732 license:lgpl2.1+
733 license:gpl2+))))
734
735 (define-public gnome-photos
736 (package
737 (name "gnome-photos")
738 (version "3.34.2")
739 (source
740 (origin
741 (method url-fetch)
742 (uri
743 (string-append "mirror://gnome/sources/" name "/"
744 (version-major+minor version) "/"
745 name "-" version ".tar.xz"))
746 (sha256
747 (base32
748 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
749 (build-system meson-build-system)
750 (arguments
751 `(#:glib-or-gtk? #t
752 #:configure-flags
753 (list "-Ddogtail=false" ; Not available
754 ;; Required for RUNPATH validation.
755 (string-append "-Dc_link_args=-Wl,-rpath="
756 (assoc-ref %outputs "out") "/lib/gnome-photos"))
757 #:phases
758 (modify-phases %standard-phases
759 (add-after 'install 'wrap-gnome-photos
760 (lambda* (#:key inputs outputs #:allow-other-keys)
761 (let*
762 ((out (assoc-ref outputs "out")))
763 (wrap-program (string-append out "/bin/gnome-photos")
764 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
765 #t)))))
766 (native-inputs
767 `(("dbus" ,dbus)
768 ("desktop-file-utils" ,desktop-file-utils)
769 ("gettext" ,gettext-minimal)
770 ("git" ,git-minimal)
771 ("glib:bin" ,glib "bin")
772 ("gobject-introspection" ,gobject-introspection)
773 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
774 ("gtk+:bin" ,gtk+ "bin")
775 ("itstool" ,itstool)
776 ("pkg-config" ,pkg-config)))
777 (inputs
778 `(("babl" ,babl)
779 ("cairo" ,cairo)
780 ("gdk-pixbuf" ,gdk-pixbuf+svg)
781 ("gegl" ,gegl)
782 ("geocode-glib" ,geocode-glib)
783 ("gexiv2" ,gexiv2)
784 ("gnome-online-accounts" ,gnome-online-accounts)
785 ("gnome-online-miners" ,gnome-online-miners)
786 ("grilo" ,grilo)
787 ("grilo-plugins" ,grilo-plugins)
788 ("gtk+" ,gtk+)
789 ("libdazzle" ,libdazzle)
790 ("libgdata" ,libgdata)
791 ("libgfbgraph" ,gfbgraph)
792 ("libjpeg" ,libjpeg-turbo)
793 ("libpng" ,libpng)
794 ("librest" ,rest)
795 ("pygobject" ,python-pygobject)
796 ("tracker" ,tracker)
797 ("tracker-miners" ,tracker-miners)))
798 (synopsis "Access, organize and share your photos on GNOME desktop")
799 (description "GNOME Photos is a simple and elegant replacement for using a
800 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
801 cloud integration is offered through GNOME Online Accounts.")
802 (home-page "https://wiki.gnome.org/Apps/Photos")
803 (license license:gpl3+)))
804
805 (define-public gnome-music
806 (package
807 (name "gnome-music")
808 (version "3.34.5")
809 (source
810 (origin
811 (method url-fetch)
812 (uri
813 (string-append "mirror://gnome/sources/" name "/"
814 (version-major+minor version) "/"
815 name "-" version ".tar.xz"))
816 (sha256
817 (base32
818 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
819 (build-system meson-build-system)
820 (arguments
821 `(#:glib-or-gtk? #t
822 #:phases
823 (modify-phases %standard-phases
824 (add-after 'install 'wrap-gnome-music
825 (lambda* (#:key inputs outputs #:allow-other-keys)
826 (let*
827 ((out (assoc-ref outputs "out"))
828 (pylib (string-append out "/lib/python"
829 ,(version-major+minor
830 (package-version python))
831 "/site-packages")))
832 (wrap-program (string-append out "/bin/gnome-music")
833 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
834 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
835 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
836 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
837 #t)))))
838 (native-inputs
839 `(("desktop-file-utils" ,desktop-file-utils)
840 ("gettext" ,gettext-minimal)
841 ("glib:bin" ,glib "bin")
842 ("gobject-introspection" ,gobject-introspection)
843 ("gtk+:bin" ,gtk+ "bin")
844 ("itstools" ,itstool)
845 ("pkg-config" ,pkg-config)))
846 (inputs
847 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
848 ("grilo" ,grilo)
849 ("grilo-plugins" ,grilo-plugins)
850 ("gst-plugins-base" ,gst-plugins-base)
851 ("gstreamer" ,gstreamer)
852 ("gvfs" ,gvfs)
853 ("libdazzle" ,libdazzle)
854 ("libmediaart" ,libmediaart)
855 ("libsoup" ,libsoup)
856 ("pycairo" ,python-pycairo)
857 ("pygobject" ,python-pygobject)
858 ("tracker" ,tracker)
859 ("tracker-miners" ,tracker-miners)))
860 (synopsis "Simple music player for GNOME desktop")
861 (description "GNOME Music is the new GNOME music playing application that
862 aims to combine an elegant and immersive browsing experience with simple
863 and straightforward controls.")
864 (home-page "https://wiki.gnome.org/Apps/Music")
865 (license license:gpl2+)))
866
867 (define-public portablexdr
868 (package
869 (name "portablexdr")
870 (version "4.9.1")
871 (source
872 (origin
873 (method url-fetch)
874 (uri
875 (string-append "https://people.redhat.com/~rjones/" name "/files/"
876 name "-" version ".tar.gz"))
877 (sha256
878 (base32
879 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
880 (build-system gnu-build-system)
881 (synopsis "External Data Representation Library")
882 (description "PortableXDR is an implementation of External Data
883 Representation (XDR) Library. It is a standard data serialization format, for
884 uses such as computer network protocols. It allows data to be transferred
885 between different kinds of computer systems.")
886 (home-page "https://people.redhat.com/~rjones/portablexdr/")
887 (license
888 (list
889 license:gpl2+
890 license:lgpl2.1+))))
891
892 (define-public tepl
893 (package
894 (name "tepl")
895 (version "4.4.0")
896 (source
897 (origin
898 (method url-fetch)
899 (uri
900 (string-append "mirror://gnome/sources/" name "/"
901 (version-major+minor version) "/"
902 name "-" version ".tar.xz"))
903 (sha256
904 (base32
905 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
906 (build-system glib-or-gtk-build-system)
907 (arguments
908 `(#:tests? #f)) ; FIX-ME: Requires gvfs
909 (native-inputs
910 `(("gobject-introspection" ,gobject-introspection)
911 ("pkg-config" ,pkg-config)))
912 (inputs
913 `(("amtk" ,amtk)
914 ("glib" ,glib)
915 ("gtk+" ,gtk+)
916 ("gtksourceview" ,gtksourceview)
917 ("libxml2" ,libxml2)
918 ("uchardet" ,uchardet)))
919 (synopsis "Text editor product line")
920 (description "Tepl is a library that eases the development of
921 GtkSourceView-based text editors and IDEs.")
922 (home-page "https://wiki.gnome.org/Projects/Tepl")
923 (license license:lgpl2.1+)))
924
925 (define-public krb5-auth-dialog
926 (package
927 (name "krb5-auth-dialog")
928 (version "3.26.1")
929 (source
930 (origin
931 (method url-fetch)
932 (uri
933 (string-append "mirror://gnome/sources/" name "/"
934 (version-major+minor version) "/"
935 name "-" version ".tar.xz"))
936 (sha256
937 (base32
938 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
939 (build-system glib-or-gtk-build-system)
940 (native-inputs
941 `(("intltool" ,intltool)
942 ("itstool" ,itstool)
943 ("libxml2" ,libxml2)
944 ("pkg-config" ,pkg-config)
945 ("python-wrapper" ,python-wrapper)))
946 (inputs
947 `(("glib" ,glib)
948 ("gtk+" ,gtk+)
949 ("libnotify" ,libnotify)
950 ("mit-krb5" ,mit-krb5)
951 ("network-manager" ,network-manager)))
952 (synopsis "Popup dialogs for Kerberos 5")
953 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
954 tickets, and pops up a dialog when they are about to expire.")
955 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
956 (license license:gpl2+)))
957
958 (define-public notification-daemon
959 (package
960 (name "notification-daemon")
961 (version "3.20.0")
962 (source
963 (origin
964 (method url-fetch)
965 (uri
966 (string-append "mirror://gnome/sources/" name "/"
967 (version-major+minor version) "/"
968 name "-" version ".tar.xz"))
969 (sha256
970 (base32
971 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
972 (build-system glib-or-gtk-build-system)
973 (native-inputs
974 `(("intltool" ,intltool)
975 ("pkg-config" ,pkg-config)))
976 (inputs
977 `(("glib" ,glib)
978 ("gtk+" ,gtk+)
979 ("x11" ,libx11)))
980 (synopsis "Notification Daemon for GNOME Desktop")
981 (description "Notification-Daemon is the server implementation of the
982 freedesktop.org desktop notification specification.")
983 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
984 (license license:gpl2+)))
985
986 (define-public mm-common
987 (package
988 (name "mm-common")
989 (version "1.0.1")
990 (source (origin
991 (method url-fetch)
992 (uri (string-append "mirror://gnome/sources/mm-common/"
993 (version-major+minor version) "/"
994 "mm-common-" version ".tar.xz"))
995 (sha256
996 (base32
997 "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
998 (build-system meson-build-system)
999 (arguments
1000 `(#:phases
1001 (modify-phases %standard-phases
1002 (add-after 'unpack 'patch
1003 (lambda* (#:key inputs #:allow-other-keys)
1004 (substitute* "util/mm-common-prepare.in"
1005 (("ln") (string-append (assoc-ref inputs "coreutils")
1006 "/bin/ln"))
1007 (("cp") (string-append (assoc-ref inputs "coreutils")
1008 "/bin/cp"))
1009 (("sed") (string-append (assoc-ref inputs "sed")
1010 "/bin/sed"))
1011 (("cat") (string-append (assoc-ref inputs "coreutils")
1012 "/bin/cat")))
1013 #t)))))
1014 (native-inputs
1015 `(("coreutils" ,coreutils)
1016 ("gettext" ,gettext-minimal)
1017 ("pkg-config" ,pkg-config)
1018 ("sed" ,sed)))
1019 (inputs
1020 `(("python" ,python)))
1021 (synopsis "Module of GNOME C++ bindings")
1022 (description "The mm-common module provides the build infrastructure
1023 and utilities shared among the GNOME C++ binding libraries. Release
1024 archives of mm-common include the Doxygen tag file for the GNU C++
1025 Library reference documentation.")
1026 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1027 (license license:gpl2+)))
1028
1029 (define-public phodav
1030 (package
1031 (name "phodav")
1032 (version "2.5")
1033 (source (origin
1034 (method url-fetch)
1035 (uri (string-append "mirror://gnome/sources/" name "/"
1036 (version-major+minor version) "/"
1037 name "-" version ".tar.xz"))
1038 (sha256
1039 (base32
1040 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1041 (build-system meson-build-system)
1042 (arguments
1043 `(#:phases
1044 (modify-phases %standard-phases
1045 (add-before 'check 'start-virtual-dir-server
1046 ;; The same server when started by tests/virtual-dir returns an
1047 ;; unexpected status (4 instead of 200) and fails a test. It is
1048 ;; unclear why starting it manually here makes it pass.
1049 (lambda _
1050 (system "tests/virtual-dir-server &")
1051 #t)))))
1052 (native-inputs
1053 `(("docbook-xml" ,docbook-xml-4.3)
1054 ("gettext" ,gettext-minimal)
1055 ("glib:bin" ,glib "bin")
1056 ("gtk-doc" ,gtk-doc)
1057 ("pkg-config" ,pkg-config)))
1058 (inputs
1059 `(("avahi" ,avahi)
1060 ("libgudev" ,libgudev)
1061 ("libsoup" ,libsoup)))
1062 (synopsis "WebDav server implementation using libsoup")
1063 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1064 but it is generic enough to be reused in other projects,
1065 in particular in the GNOME desktop.")
1066 (home-page "https://wiki.gnome.org/phodav")
1067 (license license:lgpl2.1+)))
1068
1069 (define-public gnome-color-manager
1070 (package
1071 (name "gnome-color-manager")
1072 (version "3.32.0")
1073 (source (origin
1074 (method url-fetch)
1075 (uri (string-append "mirror://gnome/sources/" name "/"
1076 (version-major+minor version) "/"
1077 name "-" version ".tar.xz"))
1078 (sha256
1079 (base32
1080 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1081 (build-system meson-build-system)
1082 (arguments
1083 `(#:glib-or-gtk? #t
1084 #:phases
1085 (modify-phases %standard-phases
1086 (add-before
1087 'check 'pre-check
1088 (lambda _
1089 ;; Tests require a running X server.
1090 (system "Xvfb :1 &")
1091 (setenv "DISPLAY" ":1")
1092 #t)))))
1093 (native-inputs
1094 `(("desktop-file-utils" ,desktop-file-utils)
1095 ("gettext" ,gettext-minimal)
1096 ("glib:bin" ,glib "bin")
1097 ("gtk+:bin" ,gtk+ "bin")
1098 ("itstool" ,itstool)
1099 ("pkg-config" ,pkg-config)
1100 ("xorg-server" ,xorg-server-for-tests)))
1101 (inputs
1102 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1103 ("appstream-glib" ,appstream-glib)
1104 ("colord-gtk" ,colord-gtk)
1105 ("exiv2" ,exiv2)
1106 ("gnome-desktop" ,gnome-desktop)
1107 ("libcanberra" ,libcanberra)
1108 ("libexif" ,libexif)
1109 ("libtiff" ,libtiff)
1110 ("libxrandr" ,libxrandr)
1111 ("libxtst" ,libxtst)
1112 ("libxxf86vm" ,libxxf86vm)
1113 ("vte" ,vte)
1114 ("xorgproto" ,xorgproto)))
1115 (synopsis "Color profile manager for the GNOME desktop")
1116 (description "GNOME Color Manager is a session framework that makes
1117 it easy to manage, install and generate color profiles
1118 in the GNOME desktop.")
1119 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1120 (license license:gpl2+)))
1121
1122 (define-public gnome-online-miners
1123 (package
1124 (name "gnome-online-miners")
1125 (version "3.34.0")
1126 (source (origin
1127 (method url-fetch)
1128 (uri (string-append "mirror://gnome/sources/" name "/"
1129 (version-major+minor version) "/"
1130 name "-" version ".tar.xz"))
1131 (sha256
1132 (base32
1133 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1134 (build-system glib-or-gtk-build-system)
1135 (native-inputs
1136 `(("gettext" ,gettext-minimal)
1137 ("glib:bin" ,glib "bin")
1138 ("gobject-introspection" ,gobject-introspection)
1139 ("gtk+:bin" ,gtk+ "bin")
1140 ("pkg-config" ,pkg-config)))
1141 (inputs
1142 `(("gnome-online-accounts" ,gnome-online-accounts)
1143 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1144 ("grilo" ,grilo)
1145 ("libgdata" ,libgdata)
1146 ("libgfbgraph" ,gfbgraph)
1147 ("libzapojit" ,libzapojit)
1148 ("rest" ,rest)
1149 ("tracker" ,tracker)))
1150 (synopsis "Web Crawlers for GNOME")
1151 (description "GNOME Online Miners provides a set of crawlers that
1152 go through your online content and index them locally in Tracker.
1153 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1154 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1155 (license license:gpl2+)))
1156
1157 (define-public gssdp
1158 (package
1159 (name "gssdp")
1160 (version "1.2.3")
1161 (source (origin
1162 (method url-fetch)
1163 (uri (string-append "mirror://gnome/sources/" name "/"
1164 (version-major+minor version) "/"
1165 name "-" version ".tar.xz"))
1166 (sha256
1167 (base32
1168 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1169 (build-system meson-build-system)
1170 (native-inputs
1171 `(("gettext" ,gettext-minimal)
1172 ("glib:bin" ,glib "bin")
1173 ("gobject-introspection" ,gobject-introspection)
1174 ("gtk-doc" ,gtk-doc)
1175 ("pkg-config" ,pkg-config)
1176 ("vala" ,vala)))
1177 (inputs
1178 `(("gtk+" ,gtk+)
1179 ("libsoup" ,libsoup)))
1180 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1181 Protocol} for GNOME")
1182 (description "This package provides a library to handle resource discovery
1183 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1184 a debugging tool, @command{gssdp-device-sniffer}.")
1185 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1186 (license license:lgpl2.0+)))
1187
1188 (define-public gupnp
1189 (package
1190 (name "gupnp")
1191 (version "1.2.4")
1192 (source (origin
1193 (method url-fetch)
1194 (uri (string-append "mirror://gnome/sources/" name "/"
1195 (version-major+minor version) "/"
1196 name "-" version ".tar.xz"))
1197 (sha256
1198 (base32
1199 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1200 (build-system meson-build-system)
1201 (native-inputs
1202 `(("gettext" ,gettext-minimal)
1203 ("glib:bin" ,glib "bin")
1204 ("gobject-introspection" ,gobject-introspection)
1205 ("gtk-doc" ,gtk-doc)
1206 ("pkg-config" ,pkg-config)
1207 ("vala" ,vala)))
1208 (inputs
1209 `(("gssdp" ,gssdp)
1210 ("gtk+" ,gtk+)
1211 ("libsoup" ,libsoup)))
1212 (synopsis "PnP API for GNOME")
1213 (description "This package provides GUPnP, an object-oriented framework
1214 for creating UPnP devices and control points, written in C using
1215 @code{GObject} and @code{libsoup}.")
1216 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1217 (license license:lgpl2.0+)))
1218
1219 (define-public gupnp-dlna
1220 (package
1221 (name "gupnp-dlna")
1222 (version "0.10.5")
1223 (source (origin
1224 (method url-fetch)
1225 (uri (string-append "mirror://gnome/sources/" name "/"
1226 (version-major+minor version) "/"
1227 name "-" version ".tar.xz"))
1228 (sha256
1229 (base32
1230 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1231 (build-system gnu-build-system)
1232 (native-inputs
1233 `(("gettext" ,gettext-minimal)
1234 ("glib:bin" ,glib "bin")
1235 ("gobject-introspection" ,gobject-introspection)
1236 ("gtk-doc" ,gtk-doc)
1237 ("libxml" ,libxml2)
1238 ("pkg-config" ,pkg-config)
1239 ("vala" ,vala)))
1240 (inputs
1241 `(("gstreamer" ,gstreamer)
1242 ("gupnp" ,gupnp)))
1243 (propagated-inputs
1244 `(("gst-plugins-base" ,gst-plugins-base)
1245 ("gst-plugins-good" ,gst-plugins-good)))
1246 (synopsis "GUPnP DLNA for GNOME")
1247 (description "This package provides a small utility library to
1248 support DLNA-related tasks such as media profile guessing, transcoding to a
1249 given profile, etc. DLNA is a subset of UPnP A/V.")
1250 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1251 (license license:lgpl2.0+)))
1252
1253 (define-public gupnp-av
1254 (package
1255 (name "gupnp-av")
1256 (version "0.12.11")
1257 (source (origin
1258 (method url-fetch)
1259 (uri (string-append "mirror://gnome/sources/" name "/"
1260 (version-major+minor version) "/"
1261 name "-" version ".tar.xz"))
1262 (sha256
1263 (base32
1264 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1265 (build-system gnu-build-system)
1266 (native-inputs
1267 `(("gettext" ,gettext-minimal)
1268 ("glib:bin" ,glib "bin")
1269 ("gobject-introspection" ,gobject-introspection)
1270 ("gtk-doc" ,gtk-doc)
1271 ("libxml" ,libxml2)
1272 ("pkg-config" ,pkg-config)))
1273 (inputs
1274 `(("gtk+" ,gtk+)
1275 ("gupnp" ,gupnp)))
1276 (synopsis "GUPnP A/V for GNOME")
1277 (description "This package provides a small library for handling
1278 and implementation of UPnP A/V profiles.")
1279 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1280 (license license:lgpl2.0+)))
1281
1282 (define-public libmediaart
1283 (package
1284 (name "libmediaart")
1285 (version "1.9.4")
1286 (source (origin
1287 (method url-fetch)
1288 (uri (string-append "mirror://gnome/sources/" name "/"
1289 (version-major+minor version) "/"
1290 name "-" version ".tar.xz"))
1291 (sha256
1292 (base32
1293 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
1294 (build-system gnu-build-system)
1295 (native-inputs
1296 `(("glib:bin" ,glib "bin")
1297 ("pkg-config" ,pkg-config)))
1298 (inputs
1299 `(("gdk-pixbuf" ,gdk-pixbuf)
1300 ("gettext" ,gettext-minimal)
1301 ("gobject-introspection" ,gobject-introspection)
1302 ("gtk+:doc", gtk+ "doc")
1303 ("vala" ,vala)))
1304 (synopsis "Media art library for the GNOME desktop")
1305 (description
1306 "The libmediaart library is the foundation for media art caching,
1307 extraction, and lookup for applications on the desktop.")
1308 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1309 (license license:lgpl2.1+)))
1310
1311 (define-public gnome-initial-setup
1312 (package
1313 (name "gnome-initial-setup")
1314 (version "3.32.1")
1315 (source (origin
1316 (method url-fetch)
1317 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1318 (version-major+minor version)
1319 "/gnome-initial-setup-" version ".tar.xz"))
1320 (sha256
1321 (base32
1322 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1323 (build-system meson-build-system)
1324 (arguments
1325 '(#:configure-flags '(;; Enable camera support for user selfie.
1326 "-Dcheese=auto"
1327 "-Dsystemd=false")
1328 #:phases (modify-phases %standard-phases
1329 (add-after 'unpack 'set-gkbd-file-name
1330 (lambda* (#:key inputs #:allow-other-keys)
1331 ;; Allow the "Preview" button in the keyboard layout
1332 ;; selection dialog to display the layout.
1333 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1334 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1335 (("\"gkbd-keyboard-display")
1336 (string-append "\"" libgnomekbd
1337 "/bin/gkbd-keyboard-display")))
1338 #t))))))
1339 (native-inputs
1340 `(("gettext" ,gettext-minimal)
1341 ("glib:bin" ,glib "bin")
1342 ("gobject-introspection" ,gobject-introspection)
1343 ("gtk+:bin" ,gtk+ "bin")
1344 ("pkg-config" ,pkg-config)))
1345 (inputs
1346 `(("accountsservice" ,accountsservice)
1347 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1348 ("gdm" ,gdm)
1349 ("geoclue" ,geoclue)
1350 ("gnome-desktop" ,gnome-desktop)
1351 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1352 ("gnome-online-accounts" ,gnome-online-accounts)
1353 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1354 ("gstreamer" ,gstreamer)
1355 ("ibus" ,ibus)
1356 ("json-glib" ,json-glib)
1357 ("krb5" ,mit-krb5)
1358 ("libgweather" ,libgweather)
1359 ("libnma" ,libnma)
1360 ("libsecret" ,libsecret)
1361 ("network-manager" ,network-manager)
1362 ("packagekit" ,packagekit)
1363 ("polkit" ,polkit)
1364 ("pwquality" ,libpwquality)
1365 ("rest" ,rest)
1366 ("upower" ,upower)
1367 ("webkitgtk" ,webkitgtk)
1368 ("libgnomekbd" ,libgnomekbd)))
1369 (synopsis "Initial setup wizard for GNOME desktop")
1370 (description "This package provides a set-up wizard when a
1371 user logs into GNOME for the first time. It typically provides a
1372 tour of all gnome components and allows the user to set them up.")
1373 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1374 (license license:gpl2)))
1375
1376 (define-public gnome-user-share
1377 (package
1378 (name "gnome-user-share")
1379 (version "3.33.1")
1380 (source (origin
1381 (method url-fetch)
1382 (uri (string-append "mirror://gnome/sources/" name "/"
1383 (version-major+minor version) "/"
1384 name "-" version ".tar.xz"))
1385 (sha256
1386 (base32
1387 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1388 (build-system meson-build-system)
1389 (arguments
1390 `(#:glib-or-gtk? #t
1391 #:configure-flags
1392 `("-Dsystemd=false"
1393 ;; Enable nautilus extension for file sharing.
1394 "-Dnautilus_extension=true")))
1395 (native-inputs
1396 `(("gettext" ,gettext-minimal)
1397 ("glib:bin" ,glib "bin")
1398 ("gobject-introspection" ,gobject-introspection)
1399 ("gtk+:bin" ,gtk+ "bin")
1400 ("pkg-config" ,pkg-config)
1401 ("yelp-tools" ,yelp-tools)))
1402 (inputs
1403 `(("glib" ,glib)
1404 ("gnome-bluetooth" ,gnome-bluetooth)
1405 ("gtk+" ,gtk+)
1406 ("libcanberra" ,libcanberra)
1407 ("libnotify" ,libnotify)
1408 ("nautilus" ,nautilus))) ; For nautilus extension.
1409 (synopsis "File sharing for GNOME desktop")
1410 (description "GNOME User Share is a small package that binds together
1411 various free software projects to bring easy to use user-level file
1412 sharing to the masses.")
1413 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1414 (license license:gpl2+)))
1415
1416 (define-public sushi
1417 (package
1418 (name "sushi")
1419 (version "3.32.1")
1420 (source (origin
1421 (method url-fetch)
1422 (uri (string-append "mirror://gnome/sources/" name "/"
1423 (version-major+minor version) "/"
1424 name "-" version ".tar.xz"))
1425 (sha256
1426 (base32
1427 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1428 (build-system meson-build-system)
1429 (arguments
1430 `(#:glib-or-gtk? #t
1431 #:phases
1432 (modify-phases %standard-phases
1433 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1434 (lambda* (#:key outputs #:allow-other-keys)
1435 (let ((prog (string-append (assoc-ref outputs "out")
1436 "/bin/sushi")))
1437 ;; Put existing typelibs before sushi's deps, so as to correctly
1438 ;; infer gdk-pixbuf
1439 (wrap-program prog
1440 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1441 #t))))))
1442 (native-inputs
1443 `(("glib:bin" ,glib "bin")
1444 ("gettext" ,gettext-minimal)
1445 ("gobject-introspection" ,gobject-introspection)
1446 ("pkg-config" ,pkg-config)))
1447 (inputs
1448 `(("clutter" ,clutter)
1449 ("clutter-gst" ,clutter-gst)
1450 ("clutter-gtk" ,clutter-gtk)
1451 ("evince" ,evince) ; For file previewing.
1452 ("freetype" ,freetype)
1453 ("gdk-pixbuf" ,gdk-pixbuf)
1454 ("gjs" ,gjs)
1455 ("gst-plugins-base" ,gst-plugins-base)
1456 ("gstreamer" ,gstreamer)
1457 ("gtksourceview" ,gtksourceview-3)
1458 ("harfbuzz" ,harfbuzz)
1459 ("libepoxy" ,libepoxy)
1460 ("libmusicbrainz" ,libmusicbrainz)
1461 ("libxml2" ,libxml2)
1462 ("neon" ,neon)
1463 ("webkitgtk" ,webkitgtk)))
1464 (synopsis "File previewer for the GNOME desktop")
1465 (description "Sushi is a DBus-activated service that allows applications to
1466 preview files on the GNOME desktop.")
1467 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1468 (license license:gpl2+)))
1469
1470 (define-public rygel
1471 (package
1472 (name "rygel")
1473 (version "0.38.3")
1474 (source (origin
1475 (method url-fetch)
1476 (uri (string-append "mirror://gnome/sources/" name "/"
1477 (version-major+minor version) "/"
1478 name "-" version ".tar.xz"))
1479 (sha256
1480 (base32
1481 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1482 (build-system gnu-build-system)
1483 (native-inputs
1484 `(("gettext" ,gettext-minimal)
1485 ("gobject-introspection" ,gobject-introspection)
1486 ("gtk-doc" ,gtk-doc)
1487 ("pkg-config" ,pkg-config)
1488 ("vala" ,vala)))
1489 (inputs
1490 `(("gdk-pixbuf" ,gdk-pixbuf)
1491 ("gssdp" ,gssdp)
1492 ("gstreamer" ,gstreamer)
1493 ("gst-plugins-base" ,gst-plugins-base)
1494 ("gtk+" ,gtk+)
1495 ("gupnp" ,gupnp)
1496 ("gupnp-av" ,gupnp-av)
1497 ("gupnp-dlna" ,gupnp-dlna)
1498 ("libgee" ,libgee)
1499 ("libmediaart" ,libmediaart)
1500 ("libsoup" ,libsoup)
1501 ("libxslt" ,libxslt)
1502 ("libunistring" ,libunistring)
1503 ("tracker" ,tracker)))
1504 (synopsis "Share audio, video, and pictures with other devices")
1505 (description
1506 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1507 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1508 pictures, and to control a media player on your home network.
1509
1510 Rygel achieves interoperability with other devices by trying to conform to the
1511 strict requirements of DLNA and by converting media on-the-fly to formats that
1512 client devices can handle.")
1513 (home-page "https://wiki.gnome.org/Projects/Rygel")
1514 (license (list
1515 ;; For logo (data/icons/*).
1516 license:cc-by-sa3.0
1517 ;; For all others.
1518 license:lgpl2.1+))))
1519
1520 (define-public libnma
1521 (package
1522 (name "libnma")
1523 (version "1.8.28")
1524 (source (origin
1525 (method url-fetch)
1526 (uri (string-append "mirror://gnome/sources/" name "/"
1527 (version-major+minor version) "/"
1528 name "-" version ".tar.xz"))
1529 (sha256
1530 (base32
1531 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1532 (build-system meson-build-system)
1533 (arguments
1534 `(#:phases
1535 (modify-phases %standard-phases
1536 (add-after 'unpack 'patch-docbook-xml
1537 (lambda* (#:key inputs #:allow-other-keys)
1538 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1539 "/xml/dtd/docbook")))
1540 (substitute* "libnma-docs.xml"
1541 (("http://.*/docbookx\\.dtd")
1542 (string-append xmldoc "/docbookx.dtd")))
1543 #t))))))
1544 (native-inputs
1545 `(("docbook-xml" ,docbook-xml-4.3)
1546 ("gettext" ,gettext-minimal)
1547 ("glib:bin" ,glib "bin")
1548 ("gtk-doc" ,gtk-doc)
1549 ("gobject-introspection" ,gobject-introspection)
1550 ("pkg-config" ,pkg-config)
1551 ("vala" ,vala)))
1552 (inputs
1553 `(("gcr" ,gcr)
1554 ("gtk+" ,gtk+)
1555 ("iso-codes" ,iso-codes)
1556 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1557 ("network-manager" ,network-manager)))
1558 (synopsis "Network Manager's applet library")
1559 (description "Libnma is an applet library for Network Manager. It was
1560 initially part of network-manager-applet and has now become a separate
1561 project.")
1562 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1563 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1564 ;; "LGPL-2.1+".
1565 (license license:gpl2+)))
1566
1567 (define-public gnome-menus
1568 (package
1569 (name "gnome-menus")
1570 (version "3.32.0")
1571 (source (origin
1572 (method url-fetch)
1573 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1574 (version-major+minor version) "/"
1575 name "-" version ".tar.xz"))
1576 (sha256
1577 (base32
1578 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1579 (build-system gnu-build-system)
1580 (native-inputs
1581 `(("gettext" ,gettext-minimal)
1582 ("glib" ,glib)
1583 ("pkg-config" ,pkg-config)))
1584 (synopsis "Menu support for GNOME desktop")
1585 (description "GNOME Menus contains the libgnome-menu library, the layout
1586 configuration files for the GNOME menu, as well as a simple menu editor.")
1587 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1588 (license license:lgpl2.0+)))
1589
1590 (define-public deja-dup
1591 (package
1592 (name "deja-dup")
1593 (version "40.6")
1594 (source (origin
1595 (method url-fetch)
1596 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1597 version "/deja-dup-" version ".tar.bz2"))
1598 (sha256
1599 (base32
1600 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1601 (build-system meson-build-system)
1602 (arguments
1603 `(#:glib-or-gtk? #t
1604 #:configure-flags
1605 (list
1606 ;; Otherwise, the RUNPATH will lack the final path component.
1607 (string-append "-Dc_link_args=-Wl,-rpath="
1608 (assoc-ref %outputs "out") "/lib/deja-dup"))
1609 #:phases
1610 (modify-phases %standard-phases
1611 (add-after 'unpack 'patch-paths
1612 (lambda* (#:key inputs #:allow-other-keys)
1613 (let ((python (assoc-ref inputs "python")))
1614 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1615 "libdeja/tests/scripts/instance-error.test")
1616 (("/bin/rm")
1617 (which "rm")))
1618 (substitute* "libdeja/tests/runner.vala"
1619 (("/bin/sh")
1620 (which "sh")))
1621 (substitute* "libdeja/tests/scripts/instance-error.test"
1622 (("`which python3`")
1623 (string-append python "/bin/python3"))))))
1624 (add-after 'unpack 'patch-libgpg-error
1625 (lambda* (#:key inputs #:allow-other-keys)
1626 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1627 (substitute* "meson.build"
1628 (("(gpgerror_libs = ).*" _ var)
1629 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1630 #t))
1631 (add-after 'unpack 'skip-gtk-update-icon-cache
1632 ;; Don't create 'icon-theme.cache'.
1633 (lambda _
1634 (substitute* "data/post-install.sh"
1635 (("gtk-update-icon-cache") "true"))
1636 #t)))))
1637 (inputs
1638 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1639 ("duplicity" ,duplicity)
1640 ("python" ,python)
1641 ("python-pygobject" ,python-pygobject)
1642 ("gtk+" ,gtk+)
1643 ("json-glib" ,json-glib)
1644 ("libnotify" ,libnotify)
1645 ("libgpg-error" ,libgpg-error)
1646 ("libsecret" ,libsecret)
1647 ("libsoup" ,libsoup)
1648 ("packagekit" ,packagekit)))
1649 (native-inputs
1650 `(("appstream-glib" ,appstream-glib)
1651 ("desktop-file-utils" ,desktop-file-utils)
1652 ("gettext" ,gettext-minimal)
1653 ("glib" ,glib "bin") ; for glib-compile-schemas.
1654 ("gobject-introspection" ,gobject-introspection)
1655 ("itstool" ,itstool)
1656 ("pkg-config" ,pkg-config)
1657 ("vala" ,vala)))
1658 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1659 (synopsis "Simple backup tool, for regular encrypted backups")
1660 (description
1661 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1662 uses duplicity as the backend, which supports incremental backups and storage
1663 either on a local, or remote machine via a number of methods.")
1664 (license license:gpl3+)))
1665
1666 (define-public gnome-user-docs
1667 (package
1668 (name "gnome-user-docs")
1669 (version "3.32.3")
1670 (source
1671 (origin
1672 (method url-fetch)
1673 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1674 (version-major+minor version)
1675 "/gnome-user-docs-" version ".tar.xz"))
1676 (sha256
1677 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1678 (build-system gnu-build-system)
1679 (native-inputs
1680 `(("gettext" ,gettext-minimal)
1681 ("itstool" ,itstool)
1682 ("pkg-config" ,pkg-config)
1683 ("xmllint" ,libxml2)))
1684 (synopsis "User documentation for the GNOME desktop")
1685 (description
1686 "The GNOME User Documentation explains how to use the GNOME desktop and its
1687 components. It covers usage and setup of the core GNOME programs by end-users
1688 and system administrators.")
1689 (home-page "https://live.gnome.org/DocumentationProject")
1690 (license license:cc-by3.0)))
1691
1692 (define-public gnome-getting-started-docs
1693 (package
1694 (name "gnome-getting-started-docs")
1695 (version "3.32.2")
1696 (source
1697 (origin
1698 (method url-fetch)
1699 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1700 (version-major+minor version)
1701 "/gnome-getting-started-docs-" version ".tar.xz"))
1702 (sha256
1703 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1704 (build-system gnu-build-system)
1705 (native-inputs
1706 `(("gettext" ,gettext-minimal)
1707 ("itstool" ,itstool)
1708 ("pkg-config" ,pkg-config)
1709 ("xmllint" ,libxml2)))
1710 (synopsis "Help to get new users started with the GNOME desktop")
1711 (description
1712 "The GNOME Getting Started Documentation contains GNOME's intuitive
1713 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1714
1715 It is normally used together with @command{gnome-initial-setup}, but is also
1716 useful as a tutorial and users' guide for new or less experienced users.")
1717 (home-page "https://live.gnome.org/DocumentationProject")
1718 (license license:cc-by-sa3.0)))
1719
1720 (define-public dia
1721 ;; This version from GNOME's repository includes fixes for compiling with
1722 ;; recent versions of the build tools. The latest activity on the
1723 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1724 ;; fixes since.
1725 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1726 (revision "2"))
1727 (package
1728 (name "dia")
1729 (version (git-version "0.97.3" revision commit))
1730 (source (origin
1731 (method git-fetch)
1732 (uri (git-reference
1733 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1734 (commit commit)))
1735 (file-name (git-file-name name version))
1736 (sha256
1737 (base32
1738 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1739 (build-system meson-build-system)
1740 (inputs
1741 `(("graphene" ,graphene)
1742 ("gtk+" ,gtk+-2)
1743 ("libxml2" ,libxml2)
1744 ("libxslt" ,libxslt)
1745 ("poppler" ,poppler)
1746 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1747 ;; ERROR: Unknown method "dependency" in object.
1748 ("python-2" ,python-2)))
1749 (native-inputs
1750 `(("appstream-glib" ,appstream-glib)
1751 ("docbook-xsl" ,docbook-xsl)
1752 ("glib" ,glib "bin")
1753 ("intltool" ,intltool)
1754 ("pkg-config" ,pkg-config)))
1755 (home-page "https://wiki.gnome.org/Apps/Dia")
1756 (synopsis "Diagram creation for GNOME")
1757 (description "Dia can be used to draw different types of diagrams, and
1758 includes support for UML static structure diagrams (class diagrams), entity
1759 relationship modeling, and network diagrams. The program supports various file
1760 formats like PNG, SVG, PDF and EPS.")
1761 (license license:gpl2+))))
1762
1763 ;; This is the unstable release, but it is required for the current stable
1764 ;; release of gvfs (1.38.1).
1765 (define-public libgdata
1766 (package
1767 (name "libgdata")
1768 (version "0.17.9")
1769 (source (origin
1770 (method url-fetch)
1771 (uri (string-append "mirror://gnome/sources/" name "/"
1772 (version-major+minor version) "/"
1773 name "-" version ".tar.xz"))
1774 (sha256
1775 (base32
1776 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1777 (build-system gnu-build-system)
1778 (arguments
1779 '(#:phases
1780 (modify-phases %standard-phases
1781 (add-before 'check 'disable-failing-tests
1782 (lambda _
1783 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1784 ;; They have been removed in libgdata 0.17.6, so just do the same.
1785 (substitute* "gdata/tests/Makefile"
1786 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1787 #t)))))
1788 (native-inputs
1789 `(("glib:bin" ,glib "bin")
1790 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1791 ("intltool" ,intltool)
1792 ("pkg-config" ,pkg-config)
1793 ("uhttpmock" ,uhttpmock)))
1794 (inputs
1795 `(("cyrus-sasl" ,cyrus-sasl)
1796 ("glib-networking" ,glib-networking)))
1797 (propagated-inputs
1798 `(("gcr" ,gcr)
1799 ("glib" ,glib)
1800 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1801 ("json-glib" ,json-glib)
1802 ("liboauth" ,liboauth)
1803 ("libsoup" ,libsoup)
1804 ("libxml2" ,libxml2)))
1805 (home-page "https://wiki.gnome.org/Projects/libgdata")
1806 (synopsis "Library for accessing online service APIs")
1807 (description
1808 "libgdata is a GLib-based library for accessing online service APIs using
1809 the GData protocol — most notably, Google's services. It provides APIs to
1810 access the common Google services, and has full asynchronous support.")
1811 (license license:lgpl2.1+)))
1812
1813 (define-public libgxps
1814 (package
1815 (name "libgxps")
1816 (version "0.3.1")
1817 (source (origin
1818 (method url-fetch)
1819 (uri (string-append "mirror://gnome/sources/" name "/"
1820 (version-major+minor version) "/"
1821 name "-" version ".tar.xz"))
1822 (sha256
1823 (base32
1824 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1825 (build-system meson-build-system)
1826 (native-inputs
1827 `(("gobject-introspection" ,gobject-introspection)
1828 ("pkg-config" ,pkg-config)))
1829 (inputs
1830 `(("gtk+" ,gtk+)
1831 ("libjpeg" ,libjpeg-turbo)
1832 ("lcms" ,lcms)
1833 ("libtiff" ,libtiff)))
1834 (propagated-inputs
1835 ;; In Requires of libgxps.pc.
1836 `(("cairo" ,cairo)
1837 ("glib" ,glib)
1838 ("libarchive" ,libarchive)))
1839 (home-page "https://wiki.gnome.org/Projects/libgxps")
1840 (synopsis "GObject-based library for handling and rendering XPS documents")
1841 (description
1842 "libgxps is a GObject-based library for handling and rendering XPS
1843 documents. This package also contains binaries that can convert XPS documents
1844 to other formats.")
1845 (license license:lgpl2.1+)))
1846
1847 (define-public gnome-characters
1848 (package
1849 (name "gnome-characters")
1850 (version "3.30.0")
1851 (source
1852 (origin
1853 (method url-fetch)
1854 (uri (string-append "mirror://gnome/sources/"
1855 "gnome-characters/" (version-major+minor version)
1856 "/gnome-characters-" version ".tar.xz"))
1857 (sha256
1858 (base32
1859 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1860 (build-system meson-build-system)
1861 (arguments
1862 `(#:glib-or-gtk? #t
1863 #:phases (modify-phases %standard-phases
1864 (add-after 'install 'wrap
1865 (lambda* (#:key outputs #:allow-other-keys)
1866 ;; GNOME Characters needs Typelib files from GTK and
1867 ;; gnome-desktop.
1868 (wrap-program (string-append (assoc-ref outputs "out")
1869 "/bin/gnome-characters")
1870 `("GI_TYPELIB_PATH" ":" prefix
1871 (,(getenv "GI_TYPELIB_PATH"))))
1872 #t)))))
1873 (native-inputs
1874 `(("gettext" ,gettext-minimal)
1875 ("glib:bin" ,glib "bin")
1876 ("gtk+:bin" ,gtk+ "bin")
1877 ("pkg-config" ,pkg-config)
1878 ("python" ,python-minimal)))
1879 (inputs
1880 `(("gjs" ,gjs)
1881 ("gtk+" ,gtk+)
1882 ("libunistring" ,libunistring)
1883 ("gnome-desktop" ,gnome-desktop)))
1884 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1885 (synopsis "Find and insert unusual characters")
1886 (description "Characters is a simple utility application to find
1887 and insert unusual characters. It allows you to quickly find the
1888 character you are looking for by searching for keywords.")
1889 (license license:bsd-3)))
1890
1891 (define-public gnome-common
1892 (package
1893 (name "gnome-common")
1894 (version "3.18.0")
1895 (source
1896 (origin
1897 (method url-fetch)
1898 (uri (string-append "mirror://gnome/sources/" name "/"
1899 (version-major+minor version) "/"
1900 name "-" version ".tar.xz"))
1901 (sha256
1902 (base32
1903 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1904 (build-system gnu-build-system)
1905 (home-page "https://www.gnome.org/")
1906 (synopsis "Bootstrap GNOME modules built from Git")
1907 (description "gnome-common contains various files needed to bootstrap
1908 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1909 can be used to configure a source directory checked out from Git and some
1910 commonly used macros.")
1911 (license license:gpl2+)))
1912
1913 (define-public gnome-contacts
1914 (package
1915 (name "gnome-contacts")
1916 (version "3.34")
1917 (source (origin
1918 (method url-fetch)
1919 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1920 (version-major+minor version) "/"
1921 name "-" version ".tar.xz"))
1922 (sha256
1923 (base32
1924 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1925 (build-system meson-build-system)
1926 (arguments
1927 `(#:configure-flags '("-Dcheese=false")
1928 #:phases
1929 (modify-phases %standard-phases
1930 (add-after 'unpack 'generate-vapis
1931 (lambda* (#:key inputs #:allow-other-keys)
1932 ;; To generate goa's missing .vapi file
1933 (define goa
1934 (assoc-ref inputs "gnome-online-accounts:lib"))
1935
1936 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1937 "--library=goa-1.0"
1938 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1939 #t))
1940 (add-after 'unpack 'skip-gtk-update-icon-cache
1941 ;; Don't create 'icon-theme.cache'.
1942 (lambda _
1943 (substitute* "build-aux/meson_post_install.py"
1944 (("gtk-update-icon-cache") "true"))
1945 #t)))))
1946 (native-inputs
1947 `(("glib:bin" ,glib "bin")
1948 ("pkg-config" ,pkg-config)))
1949 (inputs
1950 `(("docbook-xml" ,docbook-xml)
1951 ("dockbook-xsl" ,docbook-xsl)
1952 ("evolution-data-server" ,evolution-data-server)
1953 ("gettext" ,gettext-minimal)
1954 ("gnome-desktop" ,gnome-desktop)
1955 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1956 ("gobject-introspection" ,gobject-introspection)
1957 ("gst-plugins-base" ,gst-plugins-base)
1958 ("gtk+" ,gtk+)
1959 ("libgee" ,libgee)
1960 ("libxslt" ,libxslt)
1961 ("telepathy-glib" ,telepathy-glib)
1962 ("vala" ,vala)))
1963 (propagated-inputs
1964 `(("folks", folks)
1965 ("telepathy-mission-control" ,telepathy-mission-control)))
1966 (synopsis "GNOME's integrated address book")
1967 (description
1968 "GNOME Contacts organizes your contact information from online and
1969 offline sources, providing a centralized place for managing your contacts.")
1970 (home-page "https://wiki.gnome.org/Apps/Contacts")
1971 (license license:gpl2+)))
1972
1973 (define-public gnome-desktop
1974 (package
1975 (name "gnome-desktop")
1976 (version "3.34.2")
1977 (source
1978 (origin
1979 (method url-fetch)
1980 (uri (string-append "mirror://gnome/sources/" name "/"
1981 (version-major+minor version) "/"
1982 name "-" version ".tar.xz"))
1983 (sha256
1984 (base32
1985 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
1986 (build-system meson-build-system)
1987 (arguments
1988 '(#:phases
1989 (modify-phases %standard-phases
1990 (add-before 'configure 'patch-path
1991 (lambda* (#:key inputs #:allow-other-keys)
1992 (let ((libc (assoc-ref inputs "libc")))
1993 (substitute* "libgnome-desktop/gnome-languages.c"
1994 (("\"locale\"")
1995 (string-append "\"" libc "/bin/locale\"")))
1996 #t)))
1997 (add-before 'configure 'patch-bubblewrap
1998 (lambda* (#:key inputs #:allow-other-keys)
1999 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2000 (("\"bwrap\",")
2001 (string-append "\"" (which "bwrap") "\","))
2002 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2003 (string-append "\"--ro-bind\", \""
2004 (%store-directory)
2005 "\", \""
2006 (%store-directory)
2007 "\","))
2008 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2009 #t))
2010 (add-before 'check 'pre-check
2011 (lambda* (#:key inputs #:allow-other-keys)
2012 ;; Tests require a running X server and locales.
2013 (system "Xvfb :1 &")
2014 (setenv "DISPLAY" ":1")
2015 (setenv "GUIX_LOCPATH"
2016 (string-append (assoc-ref inputs "glibc-locales")
2017 "/lib/locale"))
2018 #t)))))
2019 (native-inputs
2020 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2021 ("glibc-locales" ,glibc-locales) ; for tests
2022 ("gobject-introspection" ,gobject-introspection)
2023 ("itstool" ,itstool)
2024 ("intltool" ,intltool)
2025 ("pkg-config" ,pkg-config)
2026 ("xmllint" ,libxml2)
2027 ("xorg-server" ,xorg-server-for-tests)))
2028 (propagated-inputs
2029 ;; Required by gnome-desktop-3.0.pc.
2030 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2031 ("gtk+" ,gtk+)
2032 ("iso-codes" ,iso-codes)
2033 ("libseccomp" ,libseccomp)
2034 ("libx11" ,libx11)
2035 ("xkeyboard-config" ,xkeyboard-config)))
2036 (inputs
2037 `(("gdk-pixbuf" ,gdk-pixbuf)
2038 ("glib" ,glib)
2039 ("bubblewrap" ,bubblewrap)
2040 ("libxext" ,libxext)
2041 ("libxkbfile" ,libxkbfile)
2042 ("libxrandr" ,libxrandr)))
2043 (home-page "https://www.gnome.org/")
2044 (synopsis
2045 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2046 (description
2047 "The libgnome-desktop library provides API shared by several applications
2048 on the desktop, but that cannot live in the platform for various reasons.
2049 There is no API or ABI guarantee, although we are doing our best to provide
2050 stability. Documentation for the API is available with gtk-doc.
2051
2052 The gnome-about program helps find which version of GNOME is installed.")
2053 ; Some bits under the LGPL.
2054 (license license:gpl2+)))
2055
2056 (define-public gnome-doc-utils
2057 (package
2058 (name "gnome-doc-utils")
2059 (version "0.20.10")
2060 (source
2061 (origin
2062 (method url-fetch)
2063 (uri (string-append "mirror://gnome/sources/" name "/"
2064 (version-major+minor version) "/"
2065 name "-" version ".tar.xz"))
2066 (sha256
2067 (base32
2068 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2069 (build-system gnu-build-system)
2070 (native-inputs
2071 `(("intltool" ,intltool)
2072 ("docbook-xml" ,docbook-xml-4.4)
2073 ("python2-libxml2" ,python2-libxml2)
2074 ("libxml2" ,libxml2)
2075 ("libxslt" ,libxslt)
2076 ("pkg-config" ,pkg-config)
2077 ("python-2" ,python-2)))
2078 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2079 (synopsis
2080 "Documentation utilities for the Gnome project")
2081 (description
2082 "Gnome-doc-utils is a collection of documentation utilities for the
2083 Gnome project. It includes xml2po tool which makes it easier to translate
2084 and keep up to date translations of documentation.")
2085 (license license:gpl2+))) ; xslt under lgpl
2086
2087 (define-public gnome-disk-utility
2088 (package
2089 (name "gnome-disk-utility")
2090 (version "3.34.0")
2091 (source (origin
2092 (method url-fetch)
2093 (uri (string-append "mirror://gnome/sources/" name "/"
2094 (version-major+minor version) "/"
2095 name "-" version ".tar.xz"))
2096 (sha256
2097 (base32
2098 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2099 (build-system meson-build-system)
2100 (arguments
2101 '(#:configure-flags '("-Dlogind=libelogind")
2102 #:phases
2103 (modify-phases %standard-phases
2104 (add-after 'unpack 'skip-gtk-update-icon-cache
2105 ;; Don't create 'icon-theme.cache'.
2106 (lambda _
2107 (substitute* "meson_post_install.py"
2108 (("gtk-update-icon-cache") "true"))
2109 #t)))))
2110 (native-inputs
2111 `(("glib:bin" ,glib "bin")
2112 ("intltool" ,intltool)
2113 ("pkg-config" ,pkg-config)
2114 ("docbook-xml" ,docbook-xml)
2115 ("docbook-xsl" ,docbook-xsl)
2116 ("libxml2" ,libxml2)
2117 ("libxslt" ,libxslt)))
2118 (inputs
2119 `(("elogind" ,elogind)
2120 ("glib" ,glib)
2121 ("appstream-glib" ,appstream-glib)
2122 ("gnome-settings-daemon" ,gnome-settings-daemon)
2123 ("gtk+" ,gtk+)
2124 ("libcanberra" ,libcanberra)
2125 ("libdvdread" ,libdvdread)
2126 ("libnotify" ,libnotify)
2127 ("libpwquality" ,libpwquality)
2128 ("libsecret" ,libsecret)
2129 ("udisks" ,udisks)))
2130 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2131 (synopsis "Disk management utility for GNOME")
2132 (description "Disk management utility for GNOME.")
2133 (license license:gpl2+)))
2134
2135 (define-public gnome-font-viewer
2136 (package
2137 (name "gnome-font-viewer")
2138 (version "3.30.0")
2139 (source (origin
2140 (method url-fetch)
2141 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2142 (version-major+minor version)
2143 "/gnome-font-viewer-" version ".tar.xz"))
2144 (sha256
2145 (base32
2146 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2147 (build-system meson-build-system)
2148 (arguments
2149 '(#:phases
2150 (modify-phases %standard-phases
2151 (add-after 'unpack 'patch-post-install-script
2152 (lambda _
2153 (substitute* "meson-postinstall.sh"
2154 (("update-desktop-database") (which "true")))
2155 #t)))))
2156 (native-inputs
2157 `(("gettext" ,gettext-minimal)
2158 ("glib:bin" ,glib "bin")
2159 ("pkg-config" ,pkg-config)))
2160 (inputs
2161 `(("glib" ,glib)
2162 ("gnome-desktop" ,gnome-desktop)
2163 ("gtk+" ,gtk+)))
2164 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2165 (synopsis "GNOME Fonts")
2166 (description "Application to show you the fonts installed on your computer
2167 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2168 the font would look under various sizes.")
2169 (license license:gpl2+)))
2170
2171 (define-public gcr
2172 (package
2173 (name "gcr")
2174 (version "3.34.0")
2175 (source (origin
2176 (method url-fetch)
2177 (uri (string-append "mirror://gnome/sources/" name "/"
2178 (version-major+minor version) "/"
2179 name "-" version ".tar.xz"))
2180 (sha256
2181 (base32
2182 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2183 (build-system gnu-build-system)
2184 (arguments
2185 '(#:phases
2186 (modify-phases %standard-phases
2187 ;; These fail because /var/lib/dbus/machine-id is not present in the
2188 ;; build environment.
2189 (add-after 'unpack 'disable-failing-tests
2190 (lambda _
2191 (substitute* "Makefile.in"
2192 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2193 ""))
2194 #t))
2195 (add-before 'check 'pre-check
2196 (lambda _
2197 ;; Some tests expect to write to $HOME.
2198 (setenv "HOME" "/tmp")
2199 #t)))))
2200 (inputs
2201 `(("dbus" ,dbus)
2202 ("gnupg" ,gnupg) ;called as a child process during tests
2203 ("libgcrypt" ,libgcrypt)))
2204 (native-inputs
2205 `(("python" ,python-wrapper) ;for tests
2206 ("pkg-config" ,pkg-config)
2207 ("gettext" ,gettext-minimal)
2208 ("glib" ,glib "bin")
2209 ("gobject-introspection" ,gobject-introspection)
2210 ("libxml2" ,libxml2)
2211 ("vala" ,vala)
2212 ("xsltproc" ,libxslt)))
2213 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2214 (propagated-inputs
2215 `(("p11-kit" ,p11-kit)
2216 ("glib" ,glib)
2217 ("gtk+" ,gtk+)))
2218 (home-page "https://www.gnome.org")
2219 (synopsis "Libraries for displaying certificates and accessing key stores")
2220 (description
2221 "The GCR package contains libraries used for displaying certificates and
2222 accessing key stores. It also provides the viewer for crypto files on the
2223 GNOME Desktop.")
2224 (license license:lgpl2.1+)))
2225
2226 (define-public gdl
2227 (package
2228 (name "gdl")
2229 (version "3.34.0")
2230 (source (origin
2231 (method git-fetch)
2232 (uri (git-reference
2233 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2234 (commit (string-append "GDL_" (string-map (match-lambda
2235 (#\. #\_)
2236 (c c))
2237 version)))))
2238 (file-name (git-file-name name version))
2239 (sha256
2240 (base32
2241 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2242 (build-system gnu-build-system)
2243 (native-inputs
2244 `(("autoconf" ,autoconf)
2245 ("automake" ,automake)
2246 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2247 ("gnome-common" ,gnome-common)
2248 ("gtk-doc" ,gtk-doc)
2249 ("intltool" ,intltool)
2250 ("pkg-config" ,pkg-config)
2251 ("libtool" ,libtool)
2252 ("which" ,which)))
2253 (inputs
2254 `(("libxml2" ,libxml2)))
2255 (propagated-inputs
2256 ;; The gdl-3.0.pc file 'Requires' GTK+.
2257 `(("gtk+" ,gtk+)))
2258 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2259 (synopsis "GNOME docking library")
2260 (description "This library provides docking features for gtk+.")
2261 (license license:lgpl2.1+)))
2262
2263 ;;; A minimal variant used to break a cycle with Inkscape.
2264 (define-public gdl-minimal
2265 (package
2266 (inherit gdl)
2267 (name "gdl-minimal")
2268 (arguments
2269 '(#:phases
2270 (modify-phases %standard-phases
2271 (add-after 'unpack 'disable-doc-generation
2272 ;; XXX: There is no easy way to disable generating the
2273 ;; documentation.
2274 (lambda _
2275 (substitute* "configure.in"
2276 (("GTK_DOC_CHECK.*") "")
2277 (("docs/.*") ""))
2278 (substitute* "Makefile.am"
2279 (("gdl docs po") "gdl po"))
2280 #t)))))
2281 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2282
2283 (define-public libgnome-keyring
2284 (package
2285 (name "libgnome-keyring")
2286 (version "3.12.0")
2287 (source (origin
2288 (method url-fetch)
2289 (uri (string-append "mirror://gnome/sources/" name "/"
2290 (version-major+minor version) "/"
2291 name "-" version ".tar.xz"))
2292 (sha256
2293 (base32
2294 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2295 (build-system gnu-build-system)
2296 (inputs
2297 `(("libgcrypt" ,libgcrypt)
2298 ("dbus" ,dbus)))
2299 (native-inputs
2300 `(("pkg-config" ,pkg-config)
2301 ("glib" ,glib "bin")
2302 ("intltool" ,intltool)))
2303 (propagated-inputs
2304 ;; Referred to in .h files and .pc.
2305 `(("glib" ,glib)))
2306 (home-page "https://www.gnome.org")
2307 (synopsis "Accessing passwords from the GNOME keyring")
2308 (description
2309 "Client library to access passwords from the GNOME keyring.")
2310
2311 ;; Though a couple of files are LGPLv2.1+.
2312 (license license:lgpl2.0+)))
2313
2314 (define-public gnome-keyring
2315 (package
2316 (name "gnome-keyring")
2317 (version "3.34.0")
2318 (source (origin
2319 (method url-fetch)
2320 (uri (string-append "mirror://gnome/sources/" name "/"
2321 (version-major+minor version) "/"
2322 name "-" version ".tar.xz"))
2323 (sha256
2324 (base32
2325 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2326 (build-system gnu-build-system)
2327 (arguments
2328 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2329 ;not exist
2330 #:configure-flags
2331 (list
2332 (string-append "--with-pkcs11-config="
2333 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2334 (string-append "--with-pkcs11-modules="
2335 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2336 #:phases
2337 (modify-phases %standard-phases
2338 (add-after 'unpack 'fix-/bin/sh-reference
2339 (lambda _
2340 (substitute* "po/Makefile.in.in"
2341 (("/bin/sh") (which "sh")))
2342 #t))
2343 (add-after 'unpack 'fix-docbook
2344 (lambda* (#:key inputs #:allow-other-keys)
2345 (substitute* "docs/Makefile.am"
2346 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2347 (string-append (assoc-ref inputs "docbook-xsl")
2348 "/xml/xsl/docbook-xsl-"
2349 ,(package-version docbook-xsl)
2350 "/manpages/docbook.xsl")))
2351 (setenv "XML_CATALOG_FILES"
2352 (string-append (assoc-ref inputs "docbook-xml")
2353 "/xml/dtd/docbook/catalog.xml"))
2354 ;; Rerun the whole thing to avoid version mismatch ("This is
2355 ;; Automake 1.15.1, but the definition used by this
2356 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2357 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2358 (invoke "autoconf")
2359 (invoke "aclocal")
2360 (invoke "automake" "-ac"))))))
2361 (inputs
2362 `(("libgcrypt" ,libgcrypt)
2363 ("linux-pam" ,linux-pam)
2364 ("openssh" ,openssh)
2365 ("dbus" ,dbus)
2366 ("gcr" ,gcr)))
2367 (native-inputs
2368 `(("pkg-config" ,pkg-config)
2369 ("glib" ,glib "bin")
2370 ("glib" ,glib) ; for m4 macros
2371 ("python" ,python-2) ;for tests
2372 ("intltool" ,intltool)
2373 ("autoconf" ,autoconf)
2374 ("automake" ,automake)
2375 ("libxslt" ,libxslt) ;for documentation
2376 ("docbook-xml" ,docbook-xml-4.2)
2377 ("docbook-xsl" ,docbook-xsl)))
2378 (home-page "https://www.gnome.org")
2379 (synopsis "Daemon to store passwords and encryption keys")
2380 (description
2381 "gnome-keyring is a program that keeps passwords and other secrets for
2382 users. It is run as a daemon in the session, similar to ssh-agent, and other
2383 applications locate it via an environment variable or D-Bus.
2384
2385 The program can manage several keyrings, each with its own master password,
2386 and there is also a session keyring which is never stored to disk, but
2387 forgotten when the session ends.")
2388 (license license:lgpl2.1+)))
2389
2390 (define-public evince
2391 (package
2392 (name "evince")
2393 (version "3.36.5")
2394 (source (origin
2395 (method url-fetch)
2396 (uri (string-append "mirror://gnome/sources/evince/"
2397 (version-major+minor version) "/"
2398 "evince-" version ".tar.xz"))
2399 (sha256
2400 (base32
2401 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2402 (build-system glib-or-gtk-build-system)
2403 (arguments
2404 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2405 #:phases
2406 (modify-phases %standard-phases
2407 (add-before 'install 'skip-gtk-update-icon-cache
2408 ;; Don't create 'icon-theme.cache'.
2409 (lambda _
2410 (substitute* "data/Makefile"
2411 (("gtk-update-icon-cache") "true"))
2412 #t)))))
2413 (inputs
2414 `(("libarchive" ,libarchive)
2415 ("libgxps" ,libgxps)
2416 ("libspectre" ,libspectre)
2417 ("djvulibre" ,djvulibre)
2418 ("ghostscript" ,ghostscript)
2419 ("poppler" ,poppler)
2420 ("libtiff" ,libtiff)
2421 ;; TODO:
2422 ;; Build libkpathsea as a shared library for DVI support.
2423 ;; ("libkpathsea" ,texlive-bin)
2424 ("gnome-desktop" ,gnome-desktop)
2425 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2426 ("gspell" ,gspell)
2427 ("libgnome-keyring" ,libgnome-keyring)
2428 ("adwaita-icon-theme" ,adwaita-icon-theme)
2429 ("gdk-pixbuf" ,gdk-pixbuf)
2430 ("atk" ,atk)
2431 ("pango" ,pango)
2432 ("gtk+" ,gtk+)
2433 ("glib" ,glib)
2434 ("libxml2" ,libxml2)
2435 ("libsm" ,libsm)
2436 ("libice" ,libice)
2437 ("shared-mime-info" ,shared-mime-info)
2438 ("dconf" ,dconf)
2439 ("libcanberra" ,libcanberra)
2440 ("libsecret" ,libsecret)
2441
2442 ;; For tests.
2443 ("dogtail" ,python2-dogtail)))
2444 (native-inputs
2445 `(("itstool" ,itstool)
2446 ("intltool" ,intltool)
2447 ("glib" ,glib "bin")
2448 ("gobject-introspection" ,gobject-introspection)
2449 ("pkg-config" ,pkg-config)
2450 ("xmllint" ,libxml2)))
2451 (home-page "https://www.gnome.org/projects/evince/")
2452 (synopsis "GNOME's document viewer")
2453 (description
2454 "Evince is a document viewer for multiple document formats. It
2455 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2456 of Evince is to replace the multiple document viewers that exist
2457 on the GNOME Desktop with a single simple application.")
2458 (license license:gpl2+)))
2459
2460 (define-public gsettings-desktop-schemas
2461 (package
2462 (name "gsettings-desktop-schemas")
2463 (version "3.34.0")
2464 (source
2465 (origin
2466 (method url-fetch)
2467 (uri (string-append "mirror://gnome/sources/" name "/"
2468 (version-major+minor version) "/"
2469 name "-" version ".tar.xz"))
2470 (sha256
2471 (base32
2472 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2473 (build-system meson-build-system)
2474 (arguments
2475 '(#:phases (modify-phases %standard-phases
2476 (add-after 'unpack 'patch-schemas
2477 (lambda* (#:key inputs #:allow-other-keys)
2478 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2479 (substitute* (find-files "schemas"
2480 "\\.gschema\\.xml\\.in$")
2481 ;; Provide the correct file name of the default GNOME
2482 ;; background, 'adwaita-timed.xml'.
2483 (("@datadir@/backgrounds/gnome")
2484 (string-append theme "/share/backgrounds/gnome"))
2485 ;; Do not reference fonts, that may not exist.
2486 (("'Source Code Pro 10'") "'Monospace 11'"))
2487 #t))))))
2488 (inputs
2489 `(("glib" ,glib)
2490 ("gnome-backgrounds" ,gnome-backgrounds)))
2491 (native-inputs
2492 `(("intltool" ,intltool)
2493 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2494 ("gobject-introspection" ,gobject-introspection)
2495 ("pkg-config" ,pkg-config)))
2496 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2497 (synopsis
2498 "GNOME settings for various desktop components")
2499 (description
2500 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2501 for settings shared by various components of the GNOME desktop.")
2502 (license license:lgpl2.1+)))
2503
2504 (define-public icon-naming-utils
2505 (package
2506 (name "icon-naming-utils")
2507 (version "0.8.90")
2508 (source
2509 (origin
2510 (method url-fetch)
2511 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2512 version ".tar.bz2"))
2513 (sha256
2514 (base32
2515 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2516 (build-system gnu-build-system)
2517 (inputs
2518 `(("perl" ,perl)
2519 ("perl-xml-simple" ,perl-xml-simple)))
2520 (arguments
2521 '(#:phases
2522 (modify-phases %standard-phases
2523 (add-after 'install 'set-load-paths
2524 ;; Tell 'icon-name-mapping' where XML::Simple is.
2525 (lambda* (#:key outputs #:allow-other-keys)
2526 (let* ((out (assoc-ref outputs "out"))
2527 (prog (string-append out "/libexec/icon-name-mapping")))
2528 (wrap-program
2529 prog
2530 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2531 #t)))))
2532 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2533 (synopsis
2534 "Utility to implement the Freedesktop Icon Naming Specification")
2535 (description
2536 "To help with the transition to the Freedesktop Icon Naming
2537 Specification, the icon naming utility maps the icon names used by the
2538 GNOME and KDE desktops to the icon names proposed in the specification.")
2539 (license license:lgpl2.1+)))
2540
2541 (define-public gnome-icon-theme
2542 (package
2543 (name "gnome-icon-theme")
2544 (version "3.12.0")
2545 (source
2546 (origin
2547 (method url-fetch)
2548 (uri (string-append "mirror://gnome/sources/" name "/"
2549 (version-major+minor version) "/"
2550 name "-" version ".tar.xz"))
2551 (sha256
2552 (base32
2553 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2554 (build-system gnu-build-system)
2555 (arguments
2556 '(#:configure-flags
2557 ;; Don't create 'icon-theme.cache'.
2558 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2559 (true (string-append coreutils "/bin/true")))
2560 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2561 (native-inputs
2562 `(("icon-naming-utils" ,icon-naming-utils)
2563 ("intltool" ,intltool)
2564 ("pkg-config" ,pkg-config)))
2565 (home-page "https://wiki.gnome.org/Personalization")
2566 (synopsis "GNOME icon theme")
2567 (description "Icons for the GNOME desktop.")
2568 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2569
2570 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2571 (define-public adwaita-icon-theme
2572 (package (inherit gnome-icon-theme)
2573 (name "adwaita-icon-theme")
2574 (version "3.34.3")
2575 (source (origin
2576 (method url-fetch)
2577 (uri (string-append "mirror://gnome/sources/" name "/"
2578 (version-major+minor version) "/"
2579 name "-" version ".tar.xz"))
2580 (sha256
2581 (base32
2582 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2583 (native-inputs
2584 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2585
2586 (define-public tango-icon-theme
2587 (package
2588 (name "tango-icon-theme")
2589 (version "0.8.90")
2590 (source (origin
2591 (method url-fetch)
2592 (uri (string-append "http://tango.freedesktop.org/releases/"
2593 "tango-icon-theme-" version ".tar.bz2"))
2594 (sha256
2595 (base32
2596 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2597 (build-system gnu-build-system)
2598 (native-inputs
2599 `(("icon-naming-utils" ,icon-naming-utils)
2600 ("intltool" ,intltool)
2601 ("imagemagick" ,imagemagick)
2602 ("pkg-config" ,pkg-config)))
2603 (home-page "http://tango-project.org/")
2604 (synopsis "Tango icon theme")
2605 (description "This is an icon theme that follows the Tango visual
2606 guidelines.")
2607 (license license:public-domain)))
2608
2609 (define-public shared-mime-info
2610 (package
2611 (name "shared-mime-info")
2612 (version "1.15")
2613 (source (origin
2614 (method url-fetch)
2615 (uri (string-append
2616 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2617 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2618 ".tar.xz"))
2619 (sha256
2620 (base32
2621 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2622 (build-system gnu-build-system)
2623 (arguments
2624 ;; The build system appears not to be parallel-safe.
2625 '(#:parallel-build? #f))
2626 (inputs
2627 `(("glib" ,glib)
2628 ("libxml2" ,libxml2)))
2629 (native-inputs
2630 `(("gettext" ,gettext-minimal)
2631 ("itstool" ,itstool)
2632 ("pkg-config" ,pkg-config)))
2633 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2634 (synopsis "Database of common MIME types")
2635 (description
2636 "The shared-mime-info package contains the core database of common types
2637 and the update-mime-database command used to extend it. It requires glib2 to
2638 be installed for building the update command. Additionally, it uses intltool
2639 for translations, though this is only a dependency for the maintainers. This
2640 database is translated at Transifex.")
2641 (license license:gpl2+)))
2642
2643 (define-public system-config-printer
2644 (package
2645 (name "system-config-printer")
2646 (version "1.5.12")
2647 (source
2648 (origin
2649 (method url-fetch)
2650 (uri (string-append
2651 "https://github.com/OpenPrinting/system-config-printer/releases/"
2652 "download/" version
2653 "/system-config-printer-" version ".tar.xz"))
2654 (sha256
2655 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
2656 (build-system glib-or-gtk-build-system)
2657 (arguments
2658 `(#:imported-modules ((guix build python-build-system)
2659 ,@%glib-or-gtk-build-system-modules)
2660 #:phases
2661 (modify-phases %standard-phases
2662 (add-after 'unpack 'patch-Makefile.am
2663 (lambda _
2664 ;; The Makefile generates some scripts, so set a valid shebang
2665 (substitute* "Makefile.am"
2666 (("/bin/bash") (which "bash")))
2667 (delete-file "configure")
2668 #t))
2669 (add-after 'unpack 'patch-docbook-xml
2670 (lambda* (#:key inputs #:allow-other-keys)
2671 ;; Modify the man XML otherwise xmlto tries to access the network
2672 (substitute* "man/system-config-printer.xml"
2673 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2674 (string-append (assoc-ref inputs "docbook-xml")
2675 "/xml/dtd/docbook/")))
2676 #t))
2677 (add-after 'install 'wrap-for-python
2678 (@@ (guix build python-build-system) wrap))
2679 (add-after 'install 'wrap
2680 (lambda* (#:key outputs #:allow-other-keys)
2681 (let ((out (assoc-ref outputs "out"))
2682 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2683 (for-each
2684 (lambda (program)
2685 (wrap-program program
2686 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2687 (map (lambda (name)
2688 (string-append out "/bin/" name))
2689 '("system-config-printer"
2690 "system-config-printer-applet"
2691 "install-printerdriver"
2692 "scp-dbus-service"))))
2693 #t)))))
2694 (inputs
2695 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2696 ("gobject-introspection" ,gobject-introspection)
2697 ("python" ,python)
2698 ("cups" ,cups)
2699 ("gtk+" ,gtk+)
2700 ("python-dbus" ,python-dbus)
2701 ("python-pygobject" ,python-pygobject)
2702 ("python-pycups" ,python-pycups)
2703 ("python-requests" ,python-requests)
2704 ("python-pycairo" ,python-pycairo)
2705 ("libnotify" ,libnotify)
2706 ("packagekit" ,packagekit)))
2707 (native-inputs
2708 `(("pkg-config" ,pkg-config)
2709 ("desktop-file-utils" ,desktop-file-utils)
2710 ("glib" ,glib)
2711 ("autoconf" ,autoconf)
2712 ("automake" ,automake)
2713 ("intltool" ,intltool)
2714 ("xmlto" ,xmlto)
2715 ("docbook-xml" ,docbook-xml-4.1.2)
2716 ("docbook-xsl" ,docbook-xsl)
2717 ("libxml2" ,libxml2)))
2718 (home-page "https://github.com/zdohnal/system-config-printer")
2719 (synopsis "CUPS administration tool")
2720 (description
2721 "system-config-printer is a CUPS administration tool. It's written in
2722 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2723 configuring CUPS.")
2724 (license license:gpl2+)))
2725
2726 (define-public hicolor-icon-theme
2727 (package
2728 (name "hicolor-icon-theme")
2729 (version "0.17")
2730 (source
2731 (origin
2732 (method url-fetch)
2733 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2734 "hicolor-icon-theme-" version ".tar.xz"))
2735 (sha256
2736 (base32
2737 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2738 (build-system gnu-build-system)
2739 (arguments
2740 `(#:tests? #f)) ; no check target
2741 (home-page "https://icon-theme.freedesktop.org/releases/")
2742 (synopsis
2743 "Freedesktop icon theme")
2744 (description
2745 "Freedesktop icon theme.")
2746 (license license:gpl2)))
2747
2748 (define-public libnotify
2749 (package
2750 (name "libnotify")
2751 (version "0.7.7")
2752 (source
2753 (origin
2754 (method url-fetch)
2755 (uri (string-append "mirror://gnome/sources/" name "/"
2756 (version-major+minor version) "/"
2757 name "-" version ".tar.xz"))
2758 (sha256
2759 (base32
2760 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2761 (build-system gnu-build-system)
2762 (arguments
2763 `(#:configure-flags '("--disable-static")))
2764 (propagated-inputs
2765 `(;; In Requires of libnotify.pc.
2766 ("gdk-pixbuf" ,gdk-pixbuf)
2767 ("glib" ,glib)))
2768 (inputs
2769 `(("gtk+" ,gtk+)
2770 ("libpng" ,libpng)))
2771 (native-inputs
2772 `(("pkg-config" ,pkg-config)
2773 ("glib" ,glib "bin")
2774 ("gobject-introspection" ,gobject-introspection)))
2775 (home-page "https://developer-next.gnome.org/libnotify/")
2776 (synopsis
2777 "GNOME desktop notification library")
2778 (description
2779 "Libnotify is a library that sends desktop notifications to a
2780 notification daemon, as defined in the Desktop Notifications spec. These
2781 notifications can be used to inform the user about an event or display
2782 some form of information without getting in the user's way.")
2783 (license license:lgpl2.1+)))
2784
2785 (define-public libpeas
2786 (package
2787 (name "libpeas")
2788 (version "1.24.1")
2789 (source
2790 (origin
2791 (method url-fetch)
2792 (uri (string-append "mirror://gnome/sources/" name "/"
2793 (version-major+minor version) "/"
2794 name "-" version ".tar.xz"))
2795 (sha256
2796 (base32
2797 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2798 (build-system meson-build-system)
2799 (arguments
2800 '(#:phases
2801 (modify-phases %standard-phases
2802 (add-before 'check 'start-xserver
2803 (lambda* (#:key inputs #:allow-other-keys)
2804 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2805 (disp ":1"))
2806 (setenv "DISPLAY" disp)
2807 ;; Tests require a running X server.
2808 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2809 #t))))))
2810 (inputs
2811 `(("gtk+" ,gtk+)
2812 ("glade" ,glade3)
2813 ("python" ,python)
2814 ("python-pygobject" ,python-pygobject)))
2815 (native-inputs
2816 `(("pkg-config" ,pkg-config)
2817 ("gettext" ,gettext-minimal)
2818 ("glib:bin" ,glib "bin")
2819 ("gobject-introspection" ,gobject-introspection)
2820 ("xorg-server" ,xorg-server-for-tests)))
2821 (propagated-inputs
2822 ;; The .pc file "Requires" gobject-introspection.
2823 `(("gobject-introspection" ,gobject-introspection)))
2824 (home-page "https://wiki.gnome.org/Libpeas")
2825 (synopsis "GObject plugin system")
2826 (description
2827 "Libpeas is a gobject-based plugin engine, targeted at giving every
2828 application the chance to assume its own extensibility. It also has a set of
2829 features including, but not limited to: multiple extension points; on-demand
2830 (lazy) programming language support for C, Python and JS; simplicity of the
2831 API.")
2832 (license license:lgpl2.0+)))
2833
2834 (define-public gtkglext
2835 (package
2836 (name "gtkglext")
2837 (version "1.2.0")
2838 (source (origin
2839 (method url-fetch)
2840 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2841 version "/gtkglext-" version ".tar.gz"))
2842 (sha256
2843 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2844 (patches (search-patches
2845 "gtkglext-disable-disable-deprecated.patch"))))
2846 (build-system gnu-build-system)
2847 (arguments
2848 `(#:phases
2849 (modify-phases %standard-phases
2850 ;; Fix a collision between a local variable and a definition from
2851 ;; glibc's string.h.
2852 (add-after 'unpack 'fix-collision
2853 (lambda _
2854 (substitute* "gdk/gdkglshapes.c"
2855 ((" index") " triangle_index"))
2856 #t)))))
2857 (inputs `(("gtk+" ,gtk+-2)
2858 ("mesa" ,mesa)
2859 ("glu" ,glu)
2860 ("libx11" ,libx11)
2861 ("libxt" ,libxt)))
2862 (native-inputs `(("pkg-config" ,pkg-config)
2863 ("glib" ,glib "bin")))
2864 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2865 (home-page "https://projects.gnome.org/gtkglext")
2866 (synopsis "OpenGL extension to GTK+")
2867 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2868 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2869 API add-ons to make GTK+ widgets OpenGL-capable.")
2870 (license license:lgpl2.1+)))
2871
2872 (define-public glade3
2873 (package
2874 (name "glade")
2875 (version "3.36.0")
2876 (source (origin
2877 (method url-fetch)
2878 (uri (string-append "mirror://gnome/sources/" name "/"
2879 (version-major+minor version) "/"
2880 name "-" version ".tar.xz"))
2881 (sha256
2882 (base32
2883 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
2884 (build-system glib-or-gtk-build-system)
2885 (arguments
2886 `(#:phases
2887 (modify-phases %standard-phases
2888 (add-before 'configure 'fix-docbook
2889 (lambda* (#:key inputs #:allow-other-keys)
2890 (substitute* "man/Makefile.in"
2891 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2892 (string-append (assoc-ref inputs "docbook-xsl")
2893 "/xml/xsl/docbook-xsl-"
2894 ,(package-version docbook-xsl)
2895 "/manpages/docbook.xsl")))
2896 #t))
2897 (add-before 'check 'pre-check
2898 (lambda _
2899 (setenv "HOME" "/tmp")
2900 ;; Tests require a running X server.
2901 (system "Xvfb :1 &")
2902 (setenv "DISPLAY" ":1")
2903 #t)))))
2904 (inputs
2905 `(("gtk+" ,gtk+)
2906 ("libxml2" ,libxml2)))
2907 (native-inputs
2908 `(("hicolor-icon-theme" ,hicolor-icon-theme)
2909 ("intltool" ,intltool)
2910 ("itstool" ,itstool)
2911 ("libxslt" ,libxslt) ;for xsltproc
2912 ("docbook-xml" ,docbook-xml-4.2)
2913 ("docbook-xsl" ,docbook-xsl)
2914 ("python" ,python-2)
2915 ("pkg-config" ,pkg-config)
2916 ("xorg-server" ,xorg-server-for-tests)))
2917 (home-page "https://glade.gnome.org")
2918 (synopsis "GTK+ rapid application development tool")
2919 (description "Glade is a rapid application development (RAD) tool to
2920 enable quick & easy development of user interfaces for the GTK+ toolkit and
2921 the GNOME desktop environment.")
2922 (license license:lgpl2.0+)
2923 (native-search-paths (list (search-path-specification
2924 (variable "GLADE_CATALOG_SEARCH_PATH")
2925 (files '("share/glade/catalogs")))
2926 (search-path-specification
2927 (variable "GLADE_MODULE_SEARCH_PATH")
2928 (files '("lib/glade/modules")))))))
2929
2930 (define-public libcroco
2931 (package
2932 (name "libcroco")
2933 (version "0.6.13")
2934 (source (origin
2935 (method url-fetch)
2936 (uri (string-append "mirror://gnome/sources/" name "/"
2937 (version-major+minor version) "/"
2938 name "-" version ".tar.xz"))
2939 (sha256
2940 (base32
2941 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2942 (build-system gnu-build-system)
2943 (native-inputs
2944 `(("pkg-config" ,pkg-config)))
2945 (inputs
2946 `(("glib" ,glib)
2947 ("libxml2" ,libxml2)
2948 ("zlib" ,zlib)))
2949 (home-page "https://github.com/GNOME/libcroco")
2950 (synopsis "CSS2 parsing and manipulation library")
2951 (description
2952 "Libcroco is a standalone CSS2 parsing and manipulation library.
2953 The parser provides a low level event driven SAC-like API and a CSS object
2954 model like API. Libcroco provides a CSS2 selection engine and an experimental
2955 XML/CSS rendering engine.")
2956
2957 ;; LGPLv2.1-only.
2958 (license license:lgpl2.1)))
2959
2960 (define-public libgsf
2961 (package
2962 (name "libgsf")
2963 (version "1.14.47")
2964 (source (origin
2965 (method url-fetch)
2966 (uri (string-append "mirror://gnome/sources/" name "/"
2967 (version-major+minor version) "/"
2968 name "-" version ".tar.xz"))
2969 (sha256
2970 (base32
2971 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
2972 (build-system gnu-build-system)
2973 (arguments
2974 '(#:configure-flags '("--disable-static")))
2975 (native-inputs
2976 `(("pkg-config" ,pkg-config)
2977 ("gettext" ,gettext-minimal)
2978
2979 ;; For tests.
2980 ("perl" ,perl)
2981 ("perl-xml-parser" ,perl-xml-parser)))
2982 (inputs
2983 `(("zlib" ,zlib)
2984 ("bzip2" ,bzip2)))
2985 (propagated-inputs
2986 `(("gdk-pixbuf" ,gdk-pixbuf)
2987 ("glib" ,glib)
2988 ("libxml2" ,libxml2)))
2989 (home-page "https://www.gnome.org/projects/libgsf")
2990 (synopsis "GNOME's Structured File Library")
2991 (description
2992 "Libgsf aims to provide an efficient extensible I/O abstraction for
2993 dealing with different structured file formats.")
2994
2995 ;; LGPLv2.1-only.
2996 (license license:lgpl2.1)))
2997
2998 (define-public librsvg
2999 (package
3000 (name "librsvg")
3001 (version "2.40.21")
3002 (source (origin
3003 (method url-fetch)
3004 (uri (string-append "mirror://gnome/sources/" name "/"
3005 (version-major+minor version) "/"
3006 name "-" version ".tar.xz"))
3007 (sha256
3008 (base32
3009 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3010 (build-system gnu-build-system)
3011 (arguments
3012 `(#:configure-flags
3013 (list "--disable-static"
3014 "--enable-vala") ; needed for e.g. gnome-mines
3015 #:phases
3016 (modify-phases %standard-phases
3017 (add-before 'configure 'pre-configure
3018 (lambda* (#:key inputs #:allow-other-keys)
3019 (substitute* "gdk-pixbuf-loader/Makefile.in"
3020 ;; By default the gdk-pixbuf loader is installed under
3021 ;; gdk-pixbuf's prefix. Work around that.
3022 (("gdk_pixbuf_moduledir = .*$")
3023 (string-append "gdk_pixbuf_moduledir = "
3024 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3025 "loaders\n"))
3026 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3027 (("gdk_pixbuf_cache_file = .*$")
3028 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3029 #t))
3030 (add-before 'check 'remove-failing-tests
3031 (lambda _
3032 (with-directory-excursion "tests/fixtures/reftests"
3033 (for-each delete-file
3034 '(;; This test fails on i686:
3035 "svg1.1/masking-path-04-b.svg"
3036 ;; This test fails on armhf:
3037 "svg1.1/masking-mask-01-b.svg"
3038 ;; This test fails on aarch64:
3039 "bugs/777834-empty-text-children.svg")))
3040 #t)))))
3041 (native-inputs
3042 `(("pkg-config" ,pkg-config)
3043 ("vala" ,vala)
3044 ("glib" ,glib "bin") ; glib-mkenums, etc.
3045 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3046 (inputs
3047 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3048 ;; this ancient version of librsvg.
3049 ("pango" ,pango-1.42)
3050 ("libcroco" ,libcroco)
3051 ("bzip2" ,bzip2)
3052 ("libgsf" ,libgsf)
3053 ("libxml2" ,libxml2)))
3054 (propagated-inputs
3055 ;; librsvg-2.0.pc refers to all of that.
3056 `(("cairo" ,cairo)
3057 ("gdk-pixbuf" ,gdk-pixbuf)
3058 ("glib" ,glib)))
3059 (home-page "https://wiki.gnome.org/LibRsvg")
3060 (synopsis "Render SVG files using Cairo")
3061 (description
3062 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3063 library.")
3064 (license license:lgpl2.0+)))
3065
3066 (define-public librsvg-next
3067 (package
3068 (name "librsvg")
3069 (version "2.48.8")
3070 (source (origin
3071 (method url-fetch)
3072 (uri (string-append "mirror://gnome/sources/librsvg/"
3073 (version-major+minor version) "/"
3074 "librsvg-" version ".tar.xz"))
3075 (sha256
3076 (base32
3077 "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l"))
3078 (modules '((guix build utils)))
3079 (snippet
3080 '(begin (delete-file-recursively "vendor")
3081 #t))))
3082 (build-system cargo-build-system)
3083 (outputs '("out" "doc"))
3084 (arguments
3085 `(#:modules
3086 ((guix build cargo-build-system)
3087 (guix build utils)
3088 ((guix build gnu-build-system) #:prefix gnu:))
3089 #:cargo-inputs
3090 (("rust-bitflags" ,rust-bitflags-1)
3091 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3092 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3093 ("rust-cast" ,rust-cast-0.2)
3094 ("rust-cssparser" ,rust-cssparser-0.27)
3095 ("rust-data-url" ,rust-data-url-0.1)
3096 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
3097 ("rust-encoding" ,rust-encoding-0.2)
3098 ("rust-float-cmp" ,rust-float-cmp-0.6)
3099 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3100 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3101 ("rust-gio" ,rust-gio-0.8)
3102 ("rust-gio-sys" ,rust-gio-sys-0.9)
3103 ("rust-glib" ,rust-glib-0.9)
3104 ("rust-glib-sys" ,rust-glib-sys-0.9)
3105 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3106 ("rust-itertools" ,rust-itertools-0.8)
3107 ("rust-language-tags" ,rust-language-tags-0.2)
3108 ("rust-libc" ,rust-libc-0.2)
3109 ("rust-locale-config" ,rust-locale-config-0.3)
3110 ("rust-markup5ever" ,rust-markup5ever-0.10)
3111 ("rust-nalgebra" ,rust-nalgebra-0.19)
3112 ("rust-num-traits" ,rust-num-traits-0.2)
3113 ("rust-once-cell" ,rust-once-cell-1.2)
3114 ("rust-pkg-config" ,rust-pkg-config-0.3)
3115 ("rust-pango" ,rust-pango-0.8)
3116 ("rust-pango-sys" ,rust-pango-sys-0.9)
3117 ("rust-pangocairo" ,rust-pangocairo-0.9)
3118 ("rust-rayon" ,rust-rayon-1)
3119 ("rust-rctree" ,rust-rctree-0.3)
3120 ("rust-rgb" ,rust-rgb-0.8)
3121 ("rust-regex" ,rust-regex-1)
3122 ("rust-selectors" ,rust-selectors-0.22)
3123 ("rust-url" ,rust-url-2.1)
3124 ("rust-xml5ever" ,rust-xml5ever-0.16))
3125 #:cargo-development-inputs
3126 (("rust-cairo-rs" ,rust-cairo-rs-0.8)
3127 ("rust-criterion" ,rust-criterion-0.3))
3128 #:phases
3129 (modify-phases %standard-phases
3130 (add-after 'unpack 'patch-docbook-xml
3131 (lambda* (#:key inputs #:allow-other-keys)
3132 (with-directory-excursion "doc"
3133 (substitute* "rsvg-docs.xml"
3134 (("http://www.oasis-open.org/docbook/xml/4.3/")
3135 (string-append (assoc-ref inputs "docbook-xml")
3136 "/xml/dtd/docbook/"))))
3137 #t))
3138 (add-after 'unpack 'prepare-for-build
3139 (lambda _
3140 ;; In lieu of #:make-flags
3141 (setenv "CC" ,(cc-for-target))
3142 ;; Something about the build environment resists building
3143 ;; successfully with the '--locked' flag.
3144 (substitute* '("Makefile.am" "Makefile.in")
3145 (("--locked") ""))
3146 #t))
3147 (add-before 'configure 'pre-configure
3148 (lambda _
3149 (substitute* "gdk-pixbuf-loader/Makefile.in"
3150 ;; By default the gdk-pixbuf loader is installed under
3151 ;; gdk-pixbuf's prefix. Work around that.
3152 (("gdk_pixbuf_moduledir = .*$")
3153 (string-append "gdk_pixbuf_moduledir = "
3154 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3155 "loaders\n"))
3156 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3157 (("gdk_pixbuf_cache_file = .*$")
3158 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3159 #t))
3160 (add-after 'configure 'gnu-configure
3161 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3162 ((assoc-ref gnu:%standard-phases 'configure)
3163 #:native-inputs native-inputs
3164 #:inputs inputs
3165 #:outputs outputs
3166 #:configure-flags
3167 (list "--disable-static"
3168 "--enable-vala"
3169 (string-append "--with-html-dir="
3170 (assoc-ref %outputs "doc")
3171 "/share/gtk-doc/html")))))
3172 (add-after 'configure 'dont-vendor-self
3173 (lambda* (#:key vendor-dir #:allow-other-keys)
3174 ;; Don't keep the whole tarball in the vendor directory
3175 (delete-file-recursively
3176 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3177 #t))
3178 (replace 'build
3179 (assoc-ref gnu:%standard-phases 'build))
3180 (replace 'check
3181 (lambda* args
3182 ((assoc-ref gnu:%standard-phases 'check)
3183 #:test-target "check")))
3184 (replace 'install
3185 (assoc-ref gnu:%standard-phases 'install)))))
3186 (native-inputs
3187 `(("docbook-xml" ,docbook-xml-4.3)
3188 ("glib" ,glib "bin")
3189 ("gobject-introspection" ,gobject-introspection)
3190 ("pkg-config" ,pkg-config)
3191 ("python" ,python-wrapper)
3192 ("ruby" ,ruby)
3193 ("vala" ,vala)))
3194 (inputs
3195 `(("bzip2" ,bzip2)
3196 ("fontconfig" ,fontconfig)
3197 ("freetype" ,freetype)
3198 ("harfbuzz" ,harfbuzz)
3199 ("libcroco" ,libcroco)
3200 ("libgsf" ,libgsf)
3201 ("libxml2" ,libxml2)
3202 ("pango" ,pango)))
3203 (propagated-inputs
3204 `(("cairo" ,cairo)
3205 ("gdk-pixbuf" ,gdk-pixbuf)
3206 ("glib" ,glib)))
3207 (synopsis "SVG rendering library")
3208 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3209 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3210 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3211 diagrams.")
3212 (home-page "https://wiki.gnome.org/LibRsvg")
3213 (license license:lgpl2.1+)))
3214
3215 (define-public libidl
3216 (package
3217 (name "libidl")
3218 (version "0.8.14")
3219 (source (origin
3220 (method url-fetch)
3221 (uri (string-append "mirror://gnome/sources/libIDL/"
3222 (version-major+minor version) "/"
3223 "libIDL-" version ".tar.bz2"))
3224 (sha256
3225 (base32
3226 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3227 (build-system gnu-build-system)
3228 (inputs `(("glib" ,glib)))
3229 (native-inputs
3230 `(("pkg-config" ,pkg-config)
3231 ("flex" ,flex)
3232 ("bison" ,bison)))
3233 (home-page "http://freecode.com/projects/libidl")
3234 (synopsis "Create trees of CORBA Interface Definition Language files")
3235 (description "Libidl is a library for creating trees of CORBA Interface
3236 Definition Language (idl) files, which is a specification for defining
3237 portable interfaces. libidl was initially written for orbit (the orb from the
3238 GNOME project, and the primary means of libidl distribution). However, the
3239 functionality was designed to be as reusable and portable as possible.")
3240 (properties `((upstream-name . "libIDL")))
3241 (license license:lgpl2.0+)))
3242
3243
3244 (define-public orbit2
3245 (package
3246 (name "orbit2")
3247 (version "2.14.19")
3248 (source (origin
3249 (method url-fetch)
3250 (uri (let ((upstream-name "ORBit2"))
3251 (string-append "mirror://gnome/sources/" upstream-name "/"
3252 (version-major+minor version) "/"
3253 upstream-name "-" version ".tar.bz2")))
3254 (sha256
3255 (base32
3256 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3257 (build-system gnu-build-system)
3258 (arguments
3259 `(;; The "timeout-server" test hangs when run in parallel.
3260 #:parallel-tests? #f
3261 #:configure-flags
3262 '(;; We don't need static libraries, plus they don't build reproducibly
3263 ;; (non-deterministic ordering of .o files in the archive.)
3264 "--disable-static"
3265
3266 ;; The programmer kindly gives us a hook to turn off deprecation
3267 ;; warnings ...
3268 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3269 ;; ... which they then completly ignore !!
3270 #:phases
3271 (modify-phases %standard-phases
3272 (add-before 'configure 'ignore-deprecations
3273 (lambda _
3274 (substitute* "linc2/src/Makefile.in"
3275 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3276 #t)))))
3277 (inputs `(("glib" ,glib)
3278 ("libidl" ,libidl)))
3279 (native-inputs
3280 `(("pkg-config" ,pkg-config)))
3281 (home-page "https://projects.gnome.org/orbit2/")
3282 (synopsis "CORBA 2.4-compliant Object Request Broker")
3283 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3284 featuring mature C, C++ and Python bindings.")
3285 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3286 ;; a version. SOME of the code files have licence notices for GPLv2+.
3287 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3288 (license license:gpl2+)
3289 (properties `((upstream-name . "ORBit2")))))
3290
3291
3292 (define-public libbonobo
3293 (package
3294 (name "libbonobo")
3295 (version "2.32.1")
3296 (source (origin
3297 (method url-fetch)
3298 (uri (string-append "mirror://gnome/sources/" name "/"
3299 (version-major+minor version)
3300 "/" name "-" version ".tar.bz2"))
3301 (sha256
3302 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3303 (patches (search-patches
3304 "libbonobo-activation-test-race.patch"))))
3305 (build-system gnu-build-system)
3306 (arguments
3307 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3308 `(#:configure-flags
3309 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3310 ;; ... which they then completly ignore !!
3311 #:phases
3312 (modify-phases %standard-phases
3313 (add-before 'configure 'ignore-deprecations
3314 (lambda _
3315 (substitute* "activation-server/Makefile.in"
3316 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3317 #t)))
3318
3319 ;; There's apparently a race condition between the server stub
3320 ;; generation and linking of the example under 'samples/echo' that can
3321 ;; lead do undefined references when building in parallel, as reported
3322 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3323 ;; Thus, disable parallel builds.
3324 #:parallel-build? #f))
3325 (inputs `(("popt" ,popt)
3326 ("libxml2" ,libxml2)))
3327 ;; The following are Required by the .pc file
3328 (propagated-inputs
3329 `(("glib" ,glib)
3330 ("orbit2" ,orbit2)))
3331 (native-inputs
3332 `(("intltool" ,intltool)
3333 ("pkg-config" ,pkg-config)
3334 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3335 ("flex" ,flex)
3336 ("bison" ,bison)))
3337 (home-page "https://developer.gnome.org/libbonobo/")
3338 (synopsis "Framework for creating reusable components for use in GNOME applications")
3339 (description "Bonobo is a framework for creating reusable components for
3340 use in GNOME applications, built on top of CORBA.")
3341 ;; Licence not explicitly stated. Source files contain no licence notices.
3342 ;; Tarball contains text of both GPLv2 and LGPLv2
3343 ;; GPLv2 covers both conditions
3344 (license license:gpl2+)))
3345
3346
3347 (define-public gconf
3348 (package
3349 (name "gconf")
3350 (version "3.2.6")
3351 (source (origin
3352 (method url-fetch)
3353 (uri
3354 (let ((upstream-name "GConf"))
3355 (string-append "mirror://gnome/sources/" upstream-name "/"
3356 (version-major+minor version) "/"
3357 upstream-name "-" version ".tar.xz")))
3358 (sha256
3359 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3360 (build-system gnu-build-system)
3361 (inputs `(("dbus-glib" ,dbus-glib)
3362 ("libxml2" ,libxml2)))
3363 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3364 ("orbit2" ,orbit2)))
3365 (native-inputs
3366 `(("intltool" ,intltool)
3367 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3368 ("pkg-config" ,pkg-config)))
3369 (home-page "https://projects.gnome.org/gconf/")
3370 (synopsis "Store application preferences")
3371 (description "Gconf is a system for storing application preferences. It
3372 is intended for user preferences; not arbitrary data storage.")
3373 (license license:lgpl2.0+)
3374 (properties '((upstream-name . "GConf")))))
3375
3376
3377 (define-public gnome-mime-data
3378 (package
3379 (name "gnome-mime-data")
3380 (version "2.18.0")
3381 (source (origin
3382 (method url-fetch)
3383 (uri (string-append "mirror://gnome/sources/" name "/"
3384 (version-major+minor version) "/"
3385 name "-" version ".tar.bz2"))
3386 (sha256
3387 (base32
3388 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3389 (build-system gnu-build-system)
3390 (native-inputs
3391 `(("perl" ,perl)
3392 ("intltool" ,intltool)))
3393 (arguments
3394 '(#:phases (modify-phases %standard-phases
3395 (add-after 'configure 'use-our-intltool
3396 (lambda _
3397 ;; Do not use the bundled intltool commands, which lack
3398 ;; the "dotless @INC" fixes of our 'intltool' package.
3399 (substitute* (find-files "." "^Makefile$")
3400 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3401 (string-append "INTLTOOL_" tool " = intltool-"
3402 (string-downcase tool) "\n")))
3403 #t)))))
3404 (home-page "https://www.gnome.org")
3405 (synopsis "Base MIME and Application database for GNOME")
3406 (description "GNOME Mime Data is a module which contains the base MIME
3407 and Application database for GNOME. The data stored by this module is
3408 designed to be accessed through the MIME functions in GnomeVFS.")
3409 (license license:gpl2+)))
3410
3411
3412 (define-public gnome-vfs
3413 (package
3414 (name "gnome-vfs")
3415 (version "2.24.4")
3416 (source (origin
3417 (method url-fetch)
3418 (uri (string-append "mirror://gnome/sources/" name "/"
3419 (version-major+minor version) "/"
3420 name "-" version ".tar.bz2"))
3421 (sha256
3422 (base32
3423 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3424 (build-system gnu-build-system)
3425 (arguments
3426 `(#:phases
3427 (modify-phases %standard-phases
3428 (add-before 'configure 'ignore-deprecations
3429 (lambda _
3430 (substitute* '("libgnomevfs/Makefile.in"
3431 "daemon/Makefile.in")
3432 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3433 #t))
3434 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3435 (lambda _
3436 (substitute* "test/test-async-cancel.c"
3437 (("EXIT_FAILURE") "77"))
3438 #t)))))
3439 (inputs `(("libxml2" ,libxml2)
3440 ("dbus-glib" ,dbus-glib)
3441 ("gconf" ,gconf)
3442 ("gnome-mime-data" ,gnome-mime-data)
3443 ("zlib" ,zlib)))
3444 (native-inputs
3445 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3446 ("intltool" ,intltool)
3447 ("pkg-config" ,pkg-config)))
3448 (home-page "https://developer.gnome.org/gnome-vfs/")
3449 (synopsis "Access files and folders in GNOME applications")
3450 (description
3451 "GnomeVFS is the core library used to access files and folders in GNOME
3452 applications. It provides a file system abstraction which allows applications
3453 to access local and remote files with a single consistent API.")
3454 (license license:lgpl2.0+)))
3455
3456
3457
3458 (define-public libgnome
3459 (package
3460 (name "libgnome")
3461 (version "2.32.1")
3462 (source (origin
3463 (method url-fetch)
3464 (uri (string-append "mirror://gnome/sources/" name "/"
3465 (version-major+minor version) "/"
3466 name "-" version ".tar.bz2"))
3467 (sha256
3468 (base32
3469 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3470 (patches (search-patches "libgnome-encoding.patch"))))
3471 (build-system gnu-build-system)
3472 (arguments
3473 `(#:phases
3474 (modify-phases %standard-phases
3475 (add-before 'configure 'enable-deprecated
3476 (lambda _
3477 (substitute* "libgnome/Makefile.in"
3478 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3479 #t)))))
3480 (inputs `(("libxml2" ,libxml2)))
3481 (native-inputs
3482 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3483 ("intltool" ,intltool)
3484 ("pkg-config" ,pkg-config)))
3485 ;; The following are listed as Required in the .pc file
3486 ;; (except for libcanberra -- which seems to be oversight on the part
3487 ;; of the upstream developers -- anything that links against libgnome,
3488 ;; must also link against libcanberra
3489 (propagated-inputs
3490 `(("libcanberra" ,libcanberra)
3491 ("libbonobo" ,libbonobo)
3492 ("gconf" ,gconf)
3493 ("gnome-vfs" ,gnome-vfs)
3494 ("popt" ,popt))) ;gnome-program.h includes popt.h
3495 (home-page "https://developer.gnome.org/libgnome/")
3496 (synopsis "Useful routines for building applications")
3497 (description "The libgnome library provides a number of useful routines
3498 for building modern applications, including session management, activation of
3499 files and URIs, and displaying help.")
3500 (license license:lgpl2.0+)))
3501
3502
3503 (define-public libart-lgpl
3504 (package
3505 (name "libart-lgpl")
3506 (version "2.3.21")
3507 (source (origin
3508 (method url-fetch)
3509 (uri (let ((upstream-name "libart_lgpl"))
3510 (string-append "mirror://gnome/sources/" upstream-name "/"
3511 (version-major+minor version) "/"
3512 upstream-name "-" version ".tar.bz2")))
3513 (sha256
3514 (base32
3515 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3516 (build-system gnu-build-system)
3517 (native-inputs
3518 `(("pkg-config" ,pkg-config)))
3519 (home-page "https://people.gnome.org/~mathieu/libart")
3520 (synopsis "2D drawing library")
3521 (description "Libart is a 2D drawing library intended as a
3522 high-quality vector-based 2D library with antialiasing and alpha composition.")
3523 (license license:lgpl2.0+)))
3524
3525
3526
3527 (define-public libgnomecanvas
3528 (package
3529 (name "libgnomecanvas")
3530 (version "2.30.3")
3531 (source (origin
3532 (method url-fetch)
3533 (uri (string-append "mirror://gnome/sources/" name "/"
3534 (version-major+minor version) "/"
3535 name "-" version ".tar.gz"))
3536 (sha256
3537 (base32
3538 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3539 (build-system gnu-build-system)
3540 ;; Mentioned as Required in the .pc file
3541 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3542 ("gtk+" ,gtk+-2)))
3543 (native-inputs
3544 `(("intltool" ,intltool)
3545 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3546 ("pkg-config" ,pkg-config)))
3547 (home-page "https://developer.gnome.org/libgnomecanvas/")
3548 (synopsis "Flexible widget for creating interactive structured graphics")
3549 (description "The GnomeCanvas widget provides a flexible widget for
3550 creating interactive structured graphics.")
3551 (license license:lgpl2.0+)))
3552
3553 (define-public libgnomecanvasmm
3554 (package
3555 (name "libgnomecanvasmm")
3556 (version "2.26.0")
3557 (source (origin
3558 (method url-fetch)
3559 (uri (string-append "mirror://gnome/sources/" name "/"
3560 (version-major+minor version) "/"
3561 name "-" version ".tar.bz2"))
3562 (sha256
3563 (base32
3564 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3565 (build-system gnu-build-system)
3566 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3567 (native-inputs
3568 `(("gtkmm-2" ,gtkmm-2)
3569 ("pkg-config" ,pkg-config)))
3570 (home-page "https://gtkmm.org")
3571 (synopsis "C++ bindings to the GNOME Canvas library")
3572 (description "C++ bindings to the GNOME Canvas library.")
3573 (license license:lgpl2.0+)))
3574
3575 (define-public libgnomeui
3576 (package
3577 (name "libgnomeui")
3578 (version "2.24.5")
3579 (source (origin
3580 (method url-fetch)
3581 (uri (string-append "mirror://gnome/sources/" name "/"
3582 (version-major+minor version) "/"
3583 name "-" version ".tar.bz2"))
3584 (patches (search-patches "libgnomeui-utf8.patch"))
3585 (sha256
3586 (base32
3587 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3588 (build-system gnu-build-system)
3589 ;; Mentioned as Required in the .pc file
3590 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3591 ("libgnome" ,libgnome)
3592 ("libgnomecanvas" ,libgnomecanvas)
3593 ("libgnome-keyring" ,libgnome-keyring)))
3594 (inputs `(("libjpeg" ,libjpeg-turbo)
3595 ("popt" ,popt)
3596 ("libbonobo" ,libbonobo)
3597 ("libxml2" ,libxml2)
3598 ("libglade" ,libglade)))
3599 (native-inputs
3600 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3601 ("intltool" ,intltool)
3602 ("pkg-config" ,pkg-config)))
3603 (home-page "https://developer.gnome.org/libgnomeui/")
3604 (synopsis "Additional widgets for applications")
3605 (description "The libgnomeui library provides additional widgets for
3606 applications. Many of the widgets from libgnomeui have already been
3607 ported to GTK+.")
3608 (license license:lgpl2.0+)))
3609
3610 (define-public libglade
3611 (package
3612 (name "libglade")
3613 (version "2.6.4")
3614 (source (origin
3615 (method url-fetch)
3616 (uri (string-append "mirror://gnome/sources/" name "/"
3617 (version-major+minor version) "/"
3618 name "-" version ".tar.bz2"))
3619 (sha256
3620 (base32
3621 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3622 (build-system gnu-build-system)
3623 (inputs
3624 `(("python" ,python))) ;; needed for the optional libglade-convert program
3625 (propagated-inputs
3626 `(("gtk+-2" ,gtk+-2)
3627 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3628 (native-inputs
3629 `(("pkg-config" ,pkg-config)))
3630 (home-page "https://developer.gnome.org/libglade")
3631 (synopsis "Load glade interfaces and access the glade built widgets")
3632 (description "Libglade is a library that provides interfaces for loading
3633 graphical interfaces described in glade files and for accessing the
3634 widgets built in the loading process.")
3635 (license license:gpl2+))) ; This is correct. GPL not LGPL
3636
3637 (define-public libgnomeprint
3638 ;; This library has been deprecated since 2006; see
3639 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3640 (package
3641 (name "libgnomeprint")
3642 (version "2.18.8")
3643 (source (origin
3644 (method url-fetch)
3645 (uri (string-append "mirror://gnome/sources/" name "/"
3646 (version-major+minor version) "/"
3647 name "-" version ".tar.bz2"))
3648 (sha256
3649 (base32
3650 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3651 (build-system gnu-build-system)
3652 (inputs
3653 `(("popt" ,popt)
3654 ("libart-lgpl" ,libart-lgpl)
3655 ("gtk+" ,gtk+-2)
3656 ("libxml2" ,libxml2)))
3657 (native-inputs
3658 `(("intltool" ,intltool)
3659 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3660 ("pkg-config" ,pkg-config)))
3661 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3662 (synopsis "Printing framework for GNOME")
3663 (description
3664 "GNOME-print was a printing framework for GNOME. It has been deprecated
3665 since ca. 2006, when GTK+ itself incorporated printing support.")
3666 (license license:lgpl2.0+)))
3667
3668
3669 (define-public libgnomeprintui
3670 ;; Deprecated; see libgnomeprint.
3671 (package
3672 (name "libgnomeprintui")
3673 (version "2.18.6")
3674 (source (origin
3675 (method url-fetch)
3676 (uri (string-append "mirror://gnome/sources/" name "/"
3677 (version-major+minor version) "/"
3678 name "-" version ".tar.bz2"))
3679 (sha256
3680 (base32
3681 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
3682 (build-system gnu-build-system)
3683 ;; Mentioned as Required in the .pc file
3684 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
3685 (inputs `(("gtk+" ,gtk+-2)
3686 ("glib" ,glib)
3687 ("gnome-icon-theme" ,gnome-icon-theme)
3688 ("libgnomecanvas" ,libgnomecanvas)
3689 ("libxml2" ,libxml2)))
3690 (native-inputs
3691 `(("intltool" ,intltool)
3692 ("pkg-config" ,pkg-config)))
3693 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3694 (synopsis "Printing framework for GNOME")
3695 (description (package-description libgnomeprint))
3696 (license license:lgpl2.0+)))
3697
3698 (define-public libbonoboui
3699 (package
3700 (name "libbonoboui")
3701 (version "2.24.5")
3702 (source (origin
3703 (method url-fetch)
3704 (uri (string-append "mirror://gnome/sources/" name "/"
3705 (version-major+minor version) "/"
3706 name "-" version ".tar.bz2"))
3707 (sha256
3708 (base32
3709 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
3710 (build-system gnu-build-system)
3711 (arguments
3712 `(#:phases
3713 (modify-phases %standard-phases
3714 (add-before 'check 'start-xserver
3715 (lambda* (#:key inputs #:allow-other-keys)
3716 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3717 (disp ":1"))
3718
3719 (setenv "HOME" (getcwd))
3720 (setenv "DISPLAY" disp)
3721 ;; There must be a running X server and make check doesn't start one.
3722 ;; Therefore we must do it.
3723 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
3724 ;; Mentioned as Required by the .pc file
3725 (propagated-inputs `(("libxml2" ,libxml2)))
3726 (inputs
3727 `(("popt" ,popt)
3728 ("pangox-compat" ,pangox-compat)
3729 ("libgnome" ,libgnome)
3730 ("libgnomecanvas" ,libgnomecanvas)
3731 ("libglade" ,libglade)))
3732 (native-inputs
3733 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3734 ("intltool" ,intltool)
3735 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
3736 ("pkg-config" ,pkg-config)))
3737 (home-page "https://developer.gnome.org/libbonoboui/")
3738 (synopsis "Some user interface controls using Bonobo")
3739 (description "The Bonobo UI library provides a number of user interface
3740 controls using the Bonobo component framework.")
3741 (license license:lgpl2.0+)))
3742
3743 (define-public libwnck
3744 (package
3745 (name "libwnck")
3746 (version "3.32.0")
3747 (source (origin
3748 (method url-fetch)
3749 (uri (string-append "mirror://gnome/sources/" name "/"
3750 (version-major+minor version) "/"
3751 name "-" version ".tar.xz"))
3752 (sha256
3753 (base32
3754 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3755 (build-system meson-build-system)
3756 (native-inputs
3757 `(("pkg-config" ,pkg-config)
3758 ("glib" ,glib "bin") ; for glib-mkenums
3759 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3760 ("intltool" ,intltool)))
3761 (propagated-inputs
3762 `(("gtk+" ,gtk+)
3763 ("libxres" ,libxres)
3764 ("startup-notification" ,startup-notification)))
3765 (home-page "https://developer.gnome.org/libwnck/")
3766 (synopsis "Window Navigator Construction Kit")
3767 (description
3768 "Libwnck is the Window Navigator Construction Kit, a library for use in
3769 writing pagers, tasklists, and more generally applications that are dealing
3770 with window management. It tries hard to respect the Extended Window Manager
3771 Hints specification (EWMH).")
3772 (license license:lgpl2.0+)))
3773
3774 ;; stable version for gtk2, required by xfwm4.
3775 (define-public libwnck-2
3776 (package (inherit libwnck)
3777 (name "libwnck")
3778 (version "2.30.7")
3779 (source (origin
3780 (method url-fetch)
3781 (uri (string-append "mirror://gnome/sources/" name "/"
3782 (version-major+minor version) "/"
3783 name "-" version ".tar.xz"))
3784 (sha256
3785 (base32
3786 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
3787 (build-system gnu-build-system)
3788 (native-inputs
3789 `(("pkg-config" ,pkg-config)
3790 ("intltool" ,intltool)))
3791 (propagated-inputs
3792 `(("gtk+" ,gtk+-2)
3793 ("libxres" ,libxres)
3794 ("startup-notification" ,startup-notification)))))
3795
3796 (define-public goffice
3797 (package
3798 (name "goffice")
3799 (version "0.10.47")
3800 (source (origin
3801 (method url-fetch)
3802 (uri (string-append "mirror://gnome/sources/goffice/"
3803 (version-major+minor version) "/"
3804 "goffice-" version ".tar.xz"))
3805 (sha256
3806 (base32 "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215"))))
3807 (build-system gnu-build-system)
3808 (outputs '("out"
3809 "doc")) ; 4.0 MiB of gtk-doc
3810 (arguments
3811 '(#:configure-flags (list (string-append "--with-html-dir="
3812 (assoc-ref %outputs "doc")
3813 "/share/gtk-doc/html"))))
3814 (inputs
3815 `(("gtk+" ,gtk+)
3816 ("libgsf" ,libgsf)
3817 ("librsvg" ,librsvg)
3818 ("libxslt" ,libxslt)
3819 ("libxml2" ,libxml2)))
3820 (native-inputs
3821 `(("intltool" ,intltool)
3822 ("glib" ,glib "bin")
3823 ("pkg-config" ,pkg-config)))
3824 (home-page "https://developer.gnome.org/goffice/")
3825 (synopsis "Document-centric objects and utilities")
3826 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3827 (license
3828 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3829 ;; Note: NOT LGPL
3830 (list license:gpl2 license:gpl3))))
3831
3832 (define-public goffice-0.8
3833 (package (inherit goffice)
3834 (version "0.8.17")
3835 (source (origin
3836 (method url-fetch)
3837 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3838 (version-major+minor version) "/"
3839 (package-name goffice) "-" version ".tar.xz"))
3840 (sha256
3841 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3842 (arguments
3843 `(#:phases
3844 (modify-phases %standard-phases
3845 (add-after 'unpack 'fix-pcre-check
3846 (lambda _
3847 ;; Only glib.h can be included directly. See
3848 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3849 (substitute* "configure"
3850 (("glib/gregex\\.h") "glib.h")) #t)))
3851
3852 ,@(package-arguments goffice)))
3853 (propagated-inputs
3854 ;; libgoffice-0.8.pc mentions libgsf-1
3855 `(("libgsf" ,libgsf)))
3856 (inputs
3857 `(("gtk" ,gtk+-2)
3858 ,@(alist-delete "gtk" (package-inputs goffice))))))
3859
3860 (define-public gnumeric
3861 (package
3862 (name "gnumeric")
3863 (version "1.12.46")
3864 (source (origin
3865 (method url-fetch)
3866 (uri (string-append "mirror://gnome/sources/gnumeric/"
3867 (version-major+minor version) "/"
3868 "gnumeric-" version ".tar.xz"))
3869 (sha256
3870 (base32
3871 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3872 (build-system glib-or-gtk-build-system)
3873 (arguments
3874 `(;; The gnumeric developers don't worry much about failing tests.
3875 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3876 #:tests? #f
3877 #:phases
3878 (modify-phases %standard-phases
3879 (add-before
3880 'configure 'pre-conf
3881 (lambda* (#:key outputs #:allow-other-keys)
3882 ;; Make install tries to write into the directory of goffice
3883 ;; I am informed that this only affects the possibility to embed a
3884 ;; spreadsheet inside an Abiword document. So presumably when we
3885 ;; package Abiword we'll have to refer it to this directory.
3886 (substitute* "configure"
3887 (("^GOFFICE_PLUGINS_DIR=.*")
3888 (string-append "GOFFICE_PLUGINS_DIR="
3889 (assoc-ref outputs "out")
3890 "/goffice/plugins"))))))))
3891 (inputs
3892 `(("glib" ,glib)
3893 ("gtk+" ,gtk+)
3894 ("goffice" ,goffice)
3895 ("libgsf" ,libgsf)
3896 ("librsvg" ,librsvg)
3897 ("libxml2" ,libxml2)
3898 ("libxslt" ,libxslt)
3899 ("python" ,python-2)
3900 ("python2-pygobject" ,python2-pygobject)
3901 ("zlib" ,zlib)))
3902 (native-inputs
3903 `(("bison" ,bison)
3904 ("docbook-xml" ,docbook-xml)
3905 ("intltool" ,intltool)
3906 ("itstool" ,itstool)
3907 ("glib:bin" ,glib "bin")
3908 ("pkg-config" ,pkg-config)))
3909 (home-page "http://www.gnumeric.org")
3910 (synopsis "Spreadsheet application")
3911 (description
3912 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3913 interoperable with other spreadsheet applications. It has a vast array of
3914 features beyond typical spreadsheet functionality, such as support for linear
3915 and non-linear solvers, statistical analysis, and telecommunication
3916 engineering.")
3917 (license
3918 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3919 (list license:gpl2 license:gpl3))))
3920
3921 (define-public gnome-themes-standard
3922 (package
3923 (name "gnome-themes-standard")
3924 (version "3.22.3")
3925 (source
3926 (origin
3927 (method url-fetch)
3928 (uri (string-append "mirror://gnome/sources/" name "/"
3929 (version-major+minor version) "/" name "-"
3930 version ".tar.xz"))
3931 (sha256
3932 (base32
3933 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3934 (build-system gnu-build-system)
3935 (arguments
3936 '(#:configure-flags
3937 ;; Don't create 'icon-theme.cache'.
3938 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3939 (true (string-append coreutils "/bin/true")))
3940 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3941 (inputs
3942 `(("gtk+" ,gtk+)
3943 ("gtk+-2" ,gtk+-2)
3944 ("librsvg" ,librsvg)
3945 ("libxml2" ,libxml2)
3946 ("glib" ,glib)))
3947 (native-inputs
3948 `(("intltool" ,intltool)
3949 ("glib:bin" ,glib "bin")
3950 ("pkg-config" ,pkg-config)))
3951 (home-page "https://launchpad.net/gnome-themes-standard")
3952 (synopsis "Default GNOME 3 themes")
3953 (description
3954 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3955 (license license:lgpl2.1+)))
3956
3957 (define-public seahorse
3958 (package
3959 (name "seahorse")
3960 (version "3.34")
3961 (source
3962 (origin
3963 (method url-fetch)
3964 (uri (string-append "mirror://gnome/sources/" name "/"
3965 (version-major+minor version) "/" name "-"
3966 version ".tar.xz"))
3967 (sha256
3968 (base32
3969 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
3970 (build-system meson-build-system)
3971 (arguments
3972 '(#:glib-or-gtk? #t
3973 #:phases
3974 (modify-phases %standard-phases
3975 (add-after 'unpack 'skip-gtk-update-icon-cache
3976 ;; Don't create 'icon-theme.cache'.
3977 (lambda _
3978 (substitute* "build-aux/meson_post_install.py"
3979 (("gtk-update-icon-cache") "true"))
3980 #t)))))
3981 (inputs
3982 `(("gtk+" ,gtk+)
3983 ("gcr" ,gcr)
3984 ("gnupg" ,gnupg)
3985 ("gpgme" ,gpgme)
3986 ("openldap" ,openldap)
3987 ("openssh" ,openssh)
3988 ("avahi" ,avahi)
3989 ("libpwquality" ,libpwquality)
3990 ("libsecret" ,libsecret)
3991 ("libsoup" ,libsoup)))
3992 (native-inputs
3993 `(("gettext" ,gettext-minimal)
3994 ("glib:bin" ,glib "bin")
3995 ("itstool" ,itstool)
3996 ("pkg-config" ,pkg-config)
3997 ("vala" ,vala)
3998 ("xmllint" ,libxml2)))
3999 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4000 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4001 (description
4002 "Seahorse is a GNOME application for managing encryption keys and
4003 passwords in the GNOME keyring.")
4004 (license license:gpl2+)))
4005
4006 (define-public vala
4007 (package
4008 (name "vala")
4009 (version "0.46.5")
4010 (source (origin
4011 (method url-fetch)
4012 (uri (string-append "mirror://gnome/sources/" name "/"
4013 (version-major+minor version) "/"
4014 name "-" version ".tar.xz"))
4015 (sha256
4016 (base32
4017 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4018 (build-system gnu-build-system)
4019 (arguments
4020 '(#:phases
4021 (modify-phases %standard-phases
4022 (add-before 'check 'pre-check
4023 (lambda _
4024 (setenv "CC" "gcc")
4025 (substitute* "valadoc/tests/testrunner.sh"
4026 (("export PKG_CONFIG_PATH=" m)
4027 (string-append m "$PKG_CONFIG_PATH:")))
4028 ;; For missing '/etc/machine-id'.
4029 (setenv "DBUS_FATAL_WARNINGS" "0")
4030 #t)))))
4031 (native-inputs
4032 `(("pkg-config" ,pkg-config)
4033 ("flex" ,flex)
4034 ("bison" ,bison)
4035 ("xsltproc" ,libxslt)
4036 ("dbus" ,dbus) ; for dbus tests
4037 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4038 (inputs
4039 `(("graphviz" ,graphviz)))
4040 (propagated-inputs
4041 `(("glib" ,glib))) ; required by libvala-0.40.pc
4042 (home-page "https://live.gnome.org/Vala/")
4043 (synopsis "Compiler for the GObject type system")
4044 (description
4045 "Vala is a programming language that aims to bring modern programming
4046 language features to GNOME developers without imposing any additional runtime
4047 requirements and without using a different ABI compared to applications and
4048 libraries written in C.")
4049 (license license:lgpl2.1+)))
4050
4051 (define-public vala-0.48
4052 (package
4053 (inherit vala)
4054 (version "0.48.9")
4055 (source (origin
4056 (method url-fetch)
4057 (uri (string-append "mirror://gnome/sources/vala/"
4058 (version-major+minor version) "/"
4059 "vala-" version ".tar.xz"))
4060 (sha256
4061 (base32
4062 "1agyrvslv2yh9ikiw7k5nw6j6il1l2zrzfan0pzdpb9xpg9idslw"))))))
4063
4064 (define-public vte
4065 (package
4066 (name "vte")
4067 (version "0.60.3")
4068 (source (origin
4069 (method url-fetch)
4070 (uri (string-append "mirror://gnome/sources/vte/"
4071 (version-major+minor version) "/"
4072 "vte-" version ".tar.xz"))
4073 (sha256
4074 (base32
4075 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4076 (build-system meson-build-system)
4077 (arguments
4078 `(#:configure-flags
4079 '("-Dvapi=true"
4080 "-D_systemd=false")))
4081 (native-inputs
4082 `(("pkg-config" ,pkg-config)
4083 ("gettext" ,gettext-minimal)
4084 ("vala" ,vala)
4085 ("gobject-introspection" ,gobject-introspection)
4086 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4087 ("gperf" ,gperf)
4088 ("xmllint" ,libxml2)))
4089 (propagated-inputs
4090 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4091 ("gnutls" ,gnutls) ; ditto
4092 ("pcre2" ,pcre2))) ; ditto
4093 (home-page "https://www.gnome.org/")
4094 (synopsis "Virtual Terminal Emulator")
4095 (description
4096 "VTE is a library (libvte) implementing a terminal emulator widget for
4097 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4098 gnome-terminal, but can also be used to embed a console/terminal in games,
4099 editors, IDEs, etc.")
4100 (license license:lgpl2.1+)))
4101
4102 (define-public vte-ng
4103 (package
4104 (inherit vte)
4105 (name "vte-ng")
4106 (version "0.58.2.a")
4107 (home-page "https://github.com/thestinger/vte-ng")
4108 (source (origin
4109 (method git-fetch)
4110 (uri (git-reference (url home-page) (commit version)))
4111 (file-name (git-file-name name version))
4112 (sha256
4113 (base32
4114 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4115 (build-system meson-build-system)
4116 (native-inputs
4117 `(("gtk-doc" ,gtk-doc)
4118 ,@(package-native-inputs vte)))
4119 (arguments
4120 `(#:configure-flags '("-Ddocs=true")))
4121 (synopsis "Enhanced VTE terminal widget")
4122 (description
4123 "VTE is a library (libvte) implementing a terminal emulator widget for
4124 GTK+, this fork provides additional functions exposed for keyboard text
4125 selection and URL hints.")))
4126
4127 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4128 (define-public vte/gtk+-2
4129 (package (inherit vte)
4130 (name "vte")
4131 (version "0.28.2")
4132 (source (origin
4133 (method url-fetch)
4134 (uri (string-append "mirror://gnome/sources/" name "/"
4135 (version-major+minor version) "/"
4136 name "-" version ".tar.xz"))
4137 (sha256
4138 (base32
4139 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4140 (patches (search-patches
4141 "vte-CVE-2012-2738-pt1.patch"
4142 "vte-CVE-2012-2738-pt2.patch"))))
4143 (build-system gnu-build-system)
4144 (arguments
4145 '(#:configure-flags '("--disable-python")))
4146 (native-inputs
4147 `(("pkg-config" ,pkg-config)
4148 ("intltool" ,intltool)
4149 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4150 (propagated-inputs
4151 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4152 ("ncurses" ,ncurses))))) ; required by libvte.la
4153
4154 (define-public vinagre
4155 (package
4156 (name "vinagre")
4157 (version "3.22.0")
4158 (source (origin
4159 (method url-fetch)
4160 (uri (string-append "mirror://gnome/sources/" name "/"
4161 (version-major+minor version) "/"
4162 name "-" version ".tar.xz"))
4163 (patches (search-patches "vinagre-newer-freerdp.patch"
4164 "vinagre-newer-rdp-parameters.patch"))
4165 (sha256
4166 (base32
4167 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4168 (build-system glib-or-gtk-build-system)
4169 (arguments
4170 ;; Disable -Werror and such, to avoid build failures on compilation
4171 ;; warnings.
4172 '(#:configure-flags '("--enable-compile-warnings=minimum")
4173 #:phases
4174 (modify-phases %standard-phases
4175 (add-before 'install 'skip-gtk-update-icon-cache
4176 (lambda _
4177 ;; Don't create 'icon-theme.cache'
4178 (substitute* (find-files "." "^Makefile$")
4179 (("gtk-update-icon-cache") (which "true")))
4180 #t))
4181 (add-after 'unpack 'patch-configure
4182 (lambda _
4183 (substitute* "configure"
4184 (("freerdp") "freerdp2"))
4185 #t)))))
4186 (native-inputs
4187 `(("pkg-config" ,pkg-config)
4188 ("intltool" ,intltool)
4189 ("itstool" ,itstool)
4190 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4191 (inputs
4192 `(("libxml2" ,libxml2)
4193 ("gtk-vnc" ,gtk-vnc)
4194 ("gnome-keyring" ,gnome-keyring)
4195 ("libsecret" ,libsecret)
4196 ("freerdp" ,freerdp)
4197 ("spice" ,spice)
4198 ("spice-gtk" ,spice-gtk)
4199 ("telepathy-glib" ,telepathy-glib)
4200 ("vte" ,vte)))
4201 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4202 (synopsis "Remote desktop viewer for GNOME")
4203 (description "Vinagre is a remote display client supporting the VNC, SPICE
4204 and RDP protocols.")
4205 (license license:gpl3+)))
4206
4207 (define-public dconf
4208 (package
4209 (name "dconf")
4210 (version "0.34.0")
4211 (source (origin
4212 (method url-fetch)
4213 (uri (string-append
4214 "mirror://gnome/sources/" name "/"
4215 (version-major+minor version) "/"
4216 name "-" version ".tar.xz"))
4217 (patches (search-patches "dconf-meson-0.52.patch"))
4218 (sha256
4219 (base32
4220 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
4221 (build-system meson-build-system)
4222 (propagated-inputs
4223 ;; In Requires of dconf.pc.
4224 `(("glib" ,glib)))
4225 (inputs
4226 `(("gtk+" ,gtk+)
4227 ("dbus" ,dbus)))
4228 (native-inputs
4229 `(("bash-completion" ,bash-completion)
4230 ("libxslt" ,libxslt) ;for xsltproc
4231 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4232 ("docbook-xml" ,docbook-xml-4.2)
4233 ("docbook-xsl" ,docbook-xsl)
4234 ("glib:bin" ,glib "bin")
4235 ("gtk-doc" ,gtk-doc)
4236 ("pkg-config" ,pkg-config)
4237 ("vala" ,vala)))
4238 (arguments
4239 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
4240 ; or /etc/machine-id.
4241 #:glib-or-gtk? #t
4242 #:configure-flags '("-Denable-gtk-doc=true")))
4243 (home-page "https://developer.gnome.org/dconf/")
4244 (synopsis "Low-level GNOME configuration system")
4245 (description "Dconf is a low-level configuration system. Its main purpose
4246 is to provide a backend to GSettings on platforms that don't already have
4247 configuration storage systems.")
4248 (license license:lgpl2.1+)))
4249
4250 (define-public json-glib
4251 (package
4252 (name "json-glib")
4253 (version "1.4.4")
4254 (source (origin
4255 (method url-fetch)
4256 (uri (string-append "mirror://gnome/sources/" name "/"
4257 (version-major+minor version) "/"
4258 name "-" version ".tar.xz"))
4259 (sha256
4260 (base32
4261 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4262 (build-system meson-build-system)
4263 (native-inputs
4264 `(("gettext" ,gettext-minimal)
4265 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4266 ("gobject-introspection" ,gobject-introspection)
4267 ("pkg-config" ,pkg-config)))
4268 (propagated-inputs
4269 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4270 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4271 (synopsis "Compiler for the GObject type system")
4272 (description
4273 "JSON-GLib is a C library based on GLib providing serialization and
4274 deserialization support for the JavaScript Object Notation (JSON) format
4275 described by RFC 4627. It provides parser and generator GObject classes and
4276 various wrappers for the complex data types employed by JSON, such as arrays
4277 and objects.")
4278 (license license:lgpl2.1+)))
4279
4280 (define-public libxklavier
4281 (package
4282 (name "libxklavier")
4283 (version "5.4")
4284 (source (origin
4285 ;; Note: There's no tarball at ftp.gnome.org for this version.
4286 (method git-fetch)
4287 (uri (git-reference
4288 (url "https://anongit.freedesktop.org/git/libxklavier")
4289 (commit (string-append "libxklavier-" version))))
4290 (sha256
4291 (base32
4292 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4293 (file-name (git-file-name name version))))
4294 (build-system gnu-build-system)
4295 (arguments
4296 '(#:configure-flags
4297 (list (string-append "--with-xkb-base="
4298 (assoc-ref %build-inputs "xkeyboard-config")
4299 "/share/X11/xkb")
4300 "--disable-xmodmap-support")))
4301 (native-inputs
4302 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4303 ("gobject-introspection" ,gobject-introspection)
4304 ("pkg-config" ,pkg-config)
4305 ("gtk-doc" ,gtk-doc)
4306 ("intltool" ,intltool)
4307 ("which" ,which)
4308 ("autoconf" ,autoconf)
4309 ("automake" ,automake)
4310 ("libtool" ,libtool)))
4311 (propagated-inputs
4312 ;; Required by libxklavier.pc.
4313 `(("glib" ,glib)
4314 ("libxml2" ,libxml2)))
4315 (inputs
4316 `(("iso-codes" ,iso-codes)
4317 ("libxi" ,libxi)
4318 ("libxkbfile" ,libxkbfile)
4319 ("xkbcomp" ,xkbcomp)
4320 ("xkeyboard-config" ,xkeyboard-config)))
4321 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4322 (synopsis "High-level API for X Keyboard Extension")
4323 (description
4324 "LibXklavier is a library providing high-level API for X Keyboard
4325 Extension known as XKB. This library is intended to support XFree86 and other
4326 commercial X servers. It is useful for creating XKB-related software (layout
4327 indicators etc).")
4328 (license license:lgpl2.0+)))
4329
4330 (define-public python2-rsvg
4331 ;; XXX: This is actually a subset of gnome-python-desktop.
4332 (package
4333 (name "python2-rsvg")
4334 (version "2.32.0")
4335 (source
4336 (origin
4337 (method url-fetch)
4338 (uri (string-append
4339 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4340 version ".tar.bz2"))
4341 (sha256
4342 (base32
4343 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4344 (build-system gnu-build-system)
4345 (native-inputs
4346 `(("pkg-config" ,pkg-config)))
4347 (inputs
4348 `(("python" ,python-2)
4349 ("python2-pygtk" ,python2-pygtk)
4350 ("librsvg" ,librsvg)))
4351 (home-page "https://www.gnome.org")
4352 (synopsis "Python bindings to librsvg")
4353 (description
4354 "This package provides Python bindings to librsvg, the SVG rendering
4355 library.")
4356
4357 ;; This is the license of the rsvg bindings. The license of each module
4358 ;; of gnome-python-desktop is given in 'COPYING'.
4359 (license license:lgpl2.1+)))
4360
4361 (define-public glib-networking
4362 (package
4363 (name "glib-networking")
4364 (version "2.62.2")
4365 (source (origin
4366 (method url-fetch)
4367 (uri (string-append "mirror://gnome/sources/glib-networking/"
4368 (version-major+minor version) "/"
4369 "glib-networking-" version ".tar.xz"))
4370 (sha256
4371 (base32
4372 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4373 (build-system meson-build-system)
4374 (arguments
4375 `(#:configure-flags '("-Dlibproxy_support=false")))
4376 (native-inputs
4377 `(("pkg-config" ,pkg-config)
4378 ("intltool" ,intltool)))
4379 (inputs
4380 `(("glib" ,glib)
4381 ("gnutls" ,gnutls)
4382 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4383 (home-page "https://www.gnome.org")
4384 (synopsis "Network-related GIO modules")
4385 (description
4386 "This package contains various network related extensions for the GIO
4387 library.")
4388 (license license:lgpl2.0+)))
4389
4390 (define-public rest
4391 (package
4392 (name "rest")
4393 (version "0.8.1")
4394 (source (origin
4395 (method url-fetch)
4396 (uri (string-append "mirror://gnome/sources/rest/"
4397 (version-major+minor version) "/"
4398 name "-" version ".tar.xz"))
4399 (sha256
4400 (base32
4401 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4402 (build-system gnu-build-system)
4403 (arguments
4404 '(#:tests? #f ; tests require internet connection
4405 #:configure-flags
4406 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4407 (native-inputs
4408 `(("glib-mkenums" ,glib "bin")
4409 ("gobject-introspection" ,gobject-introspection)
4410 ("pkg-config" ,pkg-config)))
4411 (propagated-inputs
4412 ;; rest-0.7.pc refers to all these.
4413 `(("glib" ,glib)
4414 ("libsoup" ,libsoup)
4415 ("libxml2" ,libxml2)))
4416 (home-page "https://www.gtk.org/")
4417 (synopsis "RESTful web api query library")
4418 (description
4419 "This library was designed to make it easier to access web services that
4420 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4421 libxml to ease remote use of the RESTful API.")
4422 (license license:lgpl2.1+)))
4423
4424 (define-public libsoup
4425 (package
4426 (name "libsoup")
4427 (version "2.70.0")
4428 (source (origin
4429 (method url-fetch)
4430 (uri (string-append "mirror://gnome/sources/libsoup/"
4431 (version-major+minor version) "/"
4432 "libsoup-" version ".tar.xz"))
4433 (sha256
4434 (base32
4435 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
4436 (build-system meson-build-system)
4437 (outputs '("out" "doc"))
4438 (arguments
4439 `(#:modules ((guix build utils)
4440 (guix build meson-build-system)
4441 (ice-9 popen))
4442
4443 #:configure-flags '("-Dgtk_doc=true")
4444 #:phases
4445 (modify-phases %standard-phases
4446 (add-after 'unpack 'adjust-tests
4447 (lambda _
4448 ;; This test fails due to missing /etc/nsswitch.conf
4449 ;; in the build environment.
4450 (substitute* "tests/socket-test.c"
4451 ((".*/sockets/unconnected.*") ""))
4452
4453 ;; These fail because "subdomain.localhost" does not resolve in
4454 ;; the build environment.
4455 (substitute* "tests/hsts-test.c"
4456 ((".*/hsts/basic.*") "")
4457 ((".*/hsts/subdomains.*") "")
4458 ((".*/hsts/superdomain.*") "")
4459 ((".*/hsts/utf8-address.*") ""))
4460 (substitute* "tests/hsts-db-test.c"
4461 ((".*/hsts-db/subdomains.*") ""))
4462
4463 ;; Generate a self-signed certificate that has "localhost" as its
4464 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4465 ;; 3.5.12, tests such as "ssl-tests" fail:
4466 ;;
4467 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4468 ;;
4469 ;; 'certtool' is interactive so we have to pipe it the answers.
4470 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4471 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4472 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4473 (for-each (lambda (line)
4474 (display line pipe)
4475 (newline pipe))
4476 '("" ;Common name
4477 "" ;UID
4478 "Guix" ;Organizational unit name
4479 "GNU" ;Organization name
4480 "" ;Locality name
4481 "" ;State or province
4482 "" ;Country
4483 "" ;subject's domain component (DC)
4484 "" ;E-mail
4485 "" ;serial number
4486 "-1" ;expiration time
4487 "N" ;belong to authority?
4488 "N" ;web client certificate?
4489 "N" ;IPsec IKE?
4490 "Y" ;web server certificate?
4491 "localhost" ;dnsName of subject
4492 "" ;dnsName of subject (end)
4493 "" ;URI of subject
4494 "127.0.0.1" ;IP address of subject
4495 "" ;signing?
4496 "" ;encryption (RSA)?
4497 "" ;data encryption?
4498 "" ;sign OCSP requests?
4499 "" ;sign code?
4500 "" ;time stamping?
4501 "" ;email protection?
4502 "" ;URI of the CRL distribution point
4503 "y" ;above info OK?
4504 ))
4505 (close-pipe pipe))
4506 #t))
4507 (add-after 'install 'move-doc
4508 (lambda* (#:key outputs #:allow-other-keys)
4509 (let ((out (assoc-ref outputs "out"))
4510 (doc (assoc-ref outputs "doc")))
4511 (mkdir-p (string-append doc "/share"))
4512 (copy-recursively (string-append out "/share/gtk-doc")
4513 (string-append doc "/share/gtk-doc"))
4514 (delete-file-recursively (string-append out "/share/gtk-doc"))
4515 #t))))))
4516 (native-inputs
4517 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4518 ("gobject-introspection" ,gobject-introspection)
4519 ("gtk-doc" ,gtk-doc)
4520 ("intltool" ,intltool)
4521 ("pkg-config" ,pkg-config)
4522 ("python" ,python-wrapper)
4523 ("vala" ,vala)
4524 ("php" ,php)
4525 ("curl" ,curl)
4526 ("gnutls" ,gnutls) ;for 'certtool'
4527 ("httpd" ,httpd)))
4528 (propagated-inputs
4529 ;; libsoup-2.4.pc refers to all these.
4530 `(("brotli" ,google-brotli)
4531 ("glib" ,glib)
4532 ("libpsl" ,libpsl)
4533 ("libxml2" ,libxml2)
4534 ("sqlite" ,sqlite)
4535 ("zlib" ,zlib)))
4536 (inputs
4537 `(("glib-networking" ,glib-networking)
4538 ("mit-krb5" ,mit-krb5)))
4539 (home-page "https://live.gnome.org/LibSoup/")
4540 (synopsis "GLib-based HTTP Library")
4541 (description
4542 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4543 and the GLib main loop, to integrate well with GNOME applications.")
4544 (license license:lgpl2.0+)))
4545
4546
4547 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4548 (define-public libsoup-minimal
4549 (package
4550 (inherit libsoup)
4551 (name "libsoup-minimal")
4552 (outputs (delete "doc" (package-outputs libsoup)))
4553 (arguments
4554 (substitute-keyword-arguments (package-arguments libsoup)
4555 ((#:configure-flags configure-flags)
4556 `(delete "-Dgtk_doc=true" ,configure-flags))
4557 ((#:phases phases)
4558 `(modify-phases ,phases
4559 (delete 'move-doc)))))
4560 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4561
4562 (define-public libsecret
4563 (package
4564 (name "libsecret")
4565 (version "0.20.3")
4566 (source (origin
4567 (method url-fetch)
4568 (uri (string-append
4569 "mirror://gnome/sources/libsecret/"
4570 (version-major+minor version) "/"
4571 "libsecret-" version ".tar.xz"))
4572 (sha256
4573 (base32
4574 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
4575 (build-system gnu-build-system)
4576 (outputs '("out" "doc"))
4577 (arguments
4578 `(#:tests? #f ; FIXME: Testing hangs.
4579 #:configure-flags
4580 (list (string-append "--with-html-dir="
4581 (assoc-ref %outputs "doc")
4582 "/share/gtk-doc/html"))))
4583 (native-inputs
4584 `(("gettext" ,gettext-minimal)
4585 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4586 ("gobject-introspection" ,gobject-introspection)
4587 ("pkg-config" ,pkg-config)
4588 ("vala" ,vala)
4589 ("xsltproc" ,libxslt)))
4590 ;; These are needed for the tests.
4591 ;; FIXME: Add gjs once available.
4592 ;("dbus" ,dbus)
4593 ;("python2" ,python-2)
4594 ;("python2-dbus" ,python2-dbus)
4595 ;("python2-pygobject" ,python2-pygobject)
4596 ;("python2-pygobject-2" ,python2-pygobject-2)))
4597 (propagated-inputs
4598 `(("glib" ,glib))) ; required by libsecret-1.pc
4599 (inputs
4600 `(("docbook-xsl" ,docbook-xsl)
4601 ("libgcrypt" ,libgcrypt)
4602 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4603 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4604 (synopsis "GObject bindings for \"Secret Service\" API")
4605 (description
4606 "Libsecret is a GObject based library for storing and retrieving passwords
4607 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4608 (license license:lgpl2.1+)))
4609
4610 (define-public five-or-more
4611 (package
4612 (name "five-or-more")
4613 (version "3.32.2")
4614 (source
4615 (origin
4616 (method url-fetch)
4617 (uri (string-append "mirror://gnome/sources/five-or-more/"
4618 (version-major+minor version) "/"
4619 "five-or-more-" version ".tar.xz"))
4620 (sha256
4621 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4622 (build-system meson-build-system)
4623 (arguments
4624 '(#:glib-or-gtk? #t
4625 #:phases
4626 (modify-phases %standard-phases
4627 (add-after 'unpack 'skip-gtk-update-icon-cache
4628 (lambda _
4629 (substitute* "meson_post_install.py"
4630 (("gtk-update-icon-cache") (which "true")))
4631 #t)))))
4632 (native-inputs
4633 `(("pkg-config" ,pkg-config)
4634 ("appstream-glib" ,appstream-glib)
4635 ("desktop-file-utils" ,desktop-file-utils)
4636 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4637 ("intltool" ,intltool)
4638 ("itstool" ,itstool)
4639 ("vala" ,vala)
4640 ("xmllint" ,libxml2)))
4641 (inputs
4642 `(("gtk+" ,gtk+)
4643 ("libgnome-games-support" ,libgnome-games-support)
4644 ("librsvg" ,librsvg)))
4645 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
4646 (synopsis "Logic puzzle game")
4647 (description "Five or More is a game where you try to align
4648 five or more objects of the same color and shape causing them to disappear.
4649 On every turn more objects will appear, until the board is full.
4650 Try to last as long as possible.")
4651 (license license:gpl2+)))
4652
4653 (define-public gnome-mines
4654 (package
4655 (name "gnome-mines")
4656 (version "3.36.1")
4657 (source
4658 (origin
4659 (method url-fetch)
4660 (uri (string-append "mirror://gnome/sources/" name "/"
4661 (version-major+minor version) "/"
4662 name "-" version ".tar.xz"))
4663 (sha256
4664 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
4665 (build-system meson-build-system)
4666 (arguments
4667 '(#:glib-or-gtk? #t
4668 #:phases
4669 (modify-phases %standard-phases
4670 (add-after 'unpack 'skip-gtk-update-icon-cache
4671 (lambda _
4672 (substitute* "build-aux/meson_post_install.py"
4673 (("gtk-update-icon-cache") (which "true")))
4674 #t)))))
4675 (native-inputs
4676 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
4677 ("pkg-config" ,pkg-config)
4678 ("desktop-file-utils" ,desktop-file-utils)
4679 ("intltool" ,intltool)
4680 ("itstool" ,itstool)
4681 ("vala" ,vala)
4682 ("yelp" ,yelp)
4683 ("appstream-glib" ,appstream-glib)))
4684 (inputs
4685 `(("gtk+" ,gtk+)
4686 ("libgnome-games-support" ,libgnome-games-support)
4687 ("librsvg" ,librsvg)))
4688 (home-page "https://wiki.gnome.org/Apps/Mines")
4689 (synopsis "Minesweeper game")
4690 (description
4691 "Mines (previously gnomine) is a puzzle game where you locate mines
4692 floating in an ocean using only your brain and a little bit of luck.")
4693 (license license:gpl2+)))
4694
4695 (define-public gnome-multi-writer
4696 (package
4697 (name "gnome-multi-writer")
4698 (version "3.35.90")
4699 (source
4700 (origin
4701 (method url-fetch)
4702 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
4703 (version-major+minor version) "/"
4704 "gnome-multi-writer-" version ".tar.xz"))
4705 (sha256
4706 (base32
4707 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
4708 (build-system meson-build-system)
4709 (arguments
4710 '(#:glib-or-gtk? #t
4711 #:phases
4712 (modify-phases %standard-phases
4713 (add-after 'unpack 'skip-post-install
4714 (lambda _
4715 (substitute* "meson.build"
4716 (("meson.add_install_script" &) (string-append "# " &)))
4717 #t)))))
4718 (native-inputs
4719 `(("glib:bin" ,glib "bin")
4720 ("pkg-config" ,pkg-config)))
4721 (inputs
4722 `(("gtk+" ,gtk+)
4723 ("glib" ,glib) ; for gio
4724 ("gusb" ,gusb)
4725 ("udisks" ,udisks)
4726 ("libgudev" ,libgudev)
4727 ("libcanberra" ,libcanberra)
4728 ("polkit" ,polkit)))
4729 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
4730 (synopsis "Write to multiple USB devices at once")
4731 (description
4732 "MultiWriter can be used to write an ISO file to multiple USB devices at
4733 once.")
4734 (license license:gpl2+)))
4735
4736 (define-public gnome-sudoku
4737 (package
4738 (name "gnome-sudoku")
4739 (version "3.34.1")
4740 (source
4741 (origin
4742 (method url-fetch)
4743 (uri (string-append "mirror://gnome/sources/" name "/"
4744 (version-major+minor version) "/"
4745 name "-" version ".tar.xz"))
4746 (sha256
4747 (base32
4748 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
4749 (build-system meson-build-system)
4750 (arguments
4751 '(#:glib-or-gtk? #t
4752 #:phases
4753 (modify-phases %standard-phases
4754 (add-after 'unpack 'skip-gtk-update-icon-cache
4755 (lambda _
4756 (substitute* "build-aux/post_install.py"
4757 (("gtk-update-icon-cache") (which "true")))
4758 #t)))))
4759 (native-inputs
4760 `(("pkg-config" ,pkg-config)
4761 ("desktop-file-utils" ,desktop-file-utils)
4762 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4763 ("intltool" ,intltool)
4764 ("itstool" ,itstool)
4765 ("vala" ,vala)
4766 ("xmllint" ,libxml2)))
4767 (inputs
4768 `(("gtk+" ,gtk+)
4769 ("json-glib" ,json-glib)
4770 ("libgee" ,libgee)
4771 ("librsvg" ,librsvg)
4772 ("qqwing" ,qqwing)))
4773 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4774 (synopsis "Japanese logic game")
4775 (description
4776 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4777 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4778 possible while still providing features that make playing difficult Sudoku
4779 more fun.")
4780 (license license:gpl2+)))
4781
4782 (define-public gnome-terminal
4783 (package
4784 (name "gnome-terminal")
4785 (version "3.34.2")
4786 (source
4787 (origin
4788 (method url-fetch)
4789 (uri (string-append "mirror://gnome/sources/" name "/"
4790 (version-major+minor version) "/"
4791 name "-" version ".tar.xz"))
4792 (sha256
4793 (base32
4794 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
4795 (build-system glib-or-gtk-build-system)
4796 (arguments
4797 '(#:configure-flags
4798 (list "--disable-migration" "--disable-search-provider"
4799 "--without-nautilus-extension")
4800 #:phases
4801 (modify-phases %standard-phases
4802 (add-before 'configure 'patch-/bin/true
4803 (lambda _
4804 (substitute* "configure"
4805 (("/bin/true") (which "true"))))))))
4806 (native-inputs
4807 `(("pkg-config" ,pkg-config)
4808 ("desktop-file-utils" ,desktop-file-utils)
4809 ("intltool" ,intltool)
4810 ("itstool" ,itstool)
4811 ("xmllint" ,libxml2)))
4812 (propagated-inputs
4813 `(("dconf" ,dconf)))
4814 (inputs
4815 `(("gtk+" ,gtk+)
4816 ("vte" ,vte)
4817 ("gnutls" ,gnutls)
4818 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4819 ("util-linux" ,util-linux "lib")
4820 ("vala" ,vala)))
4821 (home-page "https://wiki.gnome.org/Apps/Terminal")
4822 (synopsis "Terminal emulator")
4823 (description
4824 "GNOME Terminal is a terminal emulator application for accessing a
4825 UNIX shell environment which can be used to run programs available on
4826 your system.
4827
4828 It supports several profiles, multiple tabs and implements several
4829 keyboard shortcuts.")
4830 (license license:gpl3+)))
4831
4832 (define-public colord
4833 (package
4834 (name "colord")
4835 (version "1.4.4")
4836 (source
4837 (origin
4838 (method url-fetch)
4839 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
4840 "colord-" version ".tar.xz"))
4841 (sha256
4842 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
4843 (build-system meson-build-system)
4844 (arguments
4845 '(;; FIXME: One test fails:
4846 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4847 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4848 ;; application/x-zerosize
4849 #:tests? #f
4850 #:glib-or-gtk? #t
4851 #:configure-flags (list "-Dlocalstatedir=/var"
4852 ;; No dep on systemd.
4853 "-Dsystemd=false"
4854 ;; Wants to install to global completion dir;
4855 ;; punt.
4856 "-Dbash_completion=false"
4857 "-Ddaemon_user=colord"
4858 "-Dsane=true"
4859 "-Dvapi=true"
4860 ;; Requires spotread.
4861 "-Dargyllcms_sensor=false"
4862 ;; TODO: Requires docbook2x.
4863 "-Dman=false")
4864 #:phases
4865 (modify-phases %standard-phases
4866 (add-before 'configure 'patch-build-system
4867 (lambda* (#:key outputs #:allow-other-keys)
4868 (substitute* "rules/meson.build"
4869 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4870 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4871 #t))
4872 (add-before 'configure 'set-sqlite3-file-name
4873 (lambda* (#:key inputs #:allow-other-keys)
4874 ;; "colormgr dump" works by invoking the "sqlite3" command.
4875 ;; Record its absolute file name.
4876 (let ((sqlite (assoc-ref inputs "sqlite")))
4877 (substitute* "client/cd-util.c"
4878 (("\"sqlite3\"")
4879 (string-append "\"" sqlite "/bin/sqlite3\"")))
4880 #t))))))
4881 (native-inputs
4882 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4883 ("gettext" ,gettext-minimal)
4884 ("gobject-introspection" ,gobject-introspection)
4885 ("gtk-doc" ,gtk-doc)
4886 ("pkg-config" ,pkg-config)
4887 ("vala" ,vala)))
4888 (propagated-inputs
4889 ;; colord.pc refers to all these.
4890 `(("glib" ,glib)
4891 ("lcms" ,lcms)
4892 ("udev" ,eudev)))
4893 (inputs
4894 `(("dbus-glib" ,dbus-glib)
4895 ("gusb" ,gusb)
4896 ("libgudev" ,libgudev)
4897 ("libusb" ,libusb)
4898 ("polkit" ,polkit)
4899 ("python" ,python-wrapper)
4900 ("sqlite" ,sqlite)
4901 ("sane-backends" ,sane-backends)))
4902 (home-page "https://www.freedesktop.org/software/colord/")
4903 (synopsis "Color management service")
4904 (description "Colord is a system service that makes it easy to manage,
4905 install and generate color profiles to accurately color manage input and
4906 output devices.")
4907 (license license:gpl2+)))
4908
4909 (define-public geoclue
4910 (package
4911 (name "geoclue")
4912 (version "2.5.6")
4913 (source
4914 (origin
4915 (method url-fetch)
4916 (uri
4917 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4918 version "/geoclue-" version ".tar.bz2"))
4919 (sha256
4920 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
4921 (patches (search-patches "geoclue-config.patch"))))
4922 (build-system meson-build-system)
4923 (arguments
4924 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4925 (native-inputs
4926 `(("pkg-config" ,pkg-config)
4927 ("gobject-introspection" ,gobject-introspection)
4928 ("modem-manager" ,modem-manager)
4929 ("libnotify" ,libnotify)
4930 ("gtk-doc", gtk-doc)
4931 ("intltool" ,intltool)))
4932 (inputs
4933 `(("avahi" ,avahi)
4934 ("glib:bin" ,glib "bin")
4935 ("glib-networking" ,glib-networking)
4936 ("json-glib" ,json-glib)
4937 ("libsoup" ,libsoup)))
4938 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4939 (synopsis "Geolocation service")
4940 (description "Geoclue is a D-Bus service that provides location
4941 information. The primary goal of the Geoclue project is to make creating
4942 location-aware applications as simple as possible, while the secondary goal is
4943 to ensure that no application can access location information without explicit
4944 permission from user.")
4945 (license license:gpl2+)))
4946
4947 (define-public geocode-glib
4948 (package
4949 (name "geocode-glib")
4950 (version "3.26.2")
4951 (source (origin
4952 (method url-fetch)
4953 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4954 (version-major+minor version) "/"
4955 "geocode-glib-" version ".tar.xz"))
4956 (sha256
4957 (base32
4958 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
4959 (build-system meson-build-system)
4960 (arguments
4961 `(#:phases
4962 (modify-phases %standard-phases
4963 ;; The tests require a bunch of locales.
4964 (add-before 'check 'set-locales
4965 (lambda* (#:key inputs #:allow-other-keys)
4966 (setenv "GUIX_LOCPATH"
4967 (string-append (assoc-ref inputs "glibc-locales")
4968 "/lib/locale"))
4969 #t)))))
4970 (native-inputs
4971 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4972 ("glibc-locales" ,glibc-locales) ; for tests
4973 ("gettext" ,gettext-minimal)
4974 ("gobject-introspection" ,gobject-introspection)
4975 ("gtk-doc" ,gtk-doc)
4976 ("pkg-config" ,pkg-config)
4977 ("json-glib" ,json-glib)))
4978 (propagated-inputs
4979 ;; geocode-glib-1.0.pc refers to GIO.
4980 `(("glib" ,glib)))
4981 (inputs
4982 `(("libsoup" ,libsoup)))
4983 (home-page "https://github.com/GNOME/geocode-glib/")
4984 (synopsis "Geocoding and reverse-geocoding library")
4985 (description
4986 "geocode-glib is a convenience library for geocoding (finding longitude,
4987 and latitude from an address) and reverse geocoding (finding an address from
4988 coordinates) using the Nominatim service. geocode-glib caches requests for
4989 faster results and to avoid unnecessary server load.")
4990 (license license:lgpl2.0+)))
4991
4992 (define-public upower
4993 (package
4994 (name "upower")
4995 (version "0.99.11")
4996 (source (origin
4997 (method url-fetch)
4998 (uri (string-append "https://upower.freedesktop.org/releases/"
4999 "upower-" version ".tar.xz"))
5000 (sha256
5001 (base32
5002 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5003 (patches (search-patches "upower-builddir.patch"))
5004 (modules '((guix build utils)))
5005 (snippet
5006 '(begin
5007 ;; Upstream commit
5008 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5009 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5010 ;; 'dbus-configuration-directory' in (gnu services dbus)
5011 ;; expects it in etc/. Thus, move it back to its previous
5012 ;; location.
5013 (substitute* "src/Makefile.in"
5014 (("^dbusconfdir =.*$")
5015 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5016 #t))))
5017 (build-system glib-or-gtk-build-system)
5018 (arguments
5019 '(#:phases
5020 (modify-phases %standard-phases
5021 (add-before 'check 'pre-check
5022 (lambda* (#:key inputs #:allow-other-keys)
5023 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5024 "/lib")))
5025 (setenv "LD_LIBRARY_PATH" umockdev))
5026 #t)))
5027 #:configure-flags (list "--localstatedir=/var"
5028 (string-append "--with-udevrulesdir="
5029 (assoc-ref %outputs "out")
5030 "/lib/udev/rules.d"))))
5031 (native-inputs
5032 `(("gobject-introspection" ,gobject-introspection)
5033 ("pkg-config" ,pkg-config)
5034 ("intltool" ,intltool)
5035 ("python" ,python)
5036
5037 ;; For tests.
5038 ("python-dbus" ,python-dbus)
5039 ("python-dbusmock" ,python-dbusmock)
5040 ("python-pygobject" ,python-pygobject)
5041 ("umockdev" ,umockdev)
5042
5043 ;; For man pages.
5044 ("libxslt" ,libxslt) ;for 'xsltproc'
5045 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5046 ("docbook-xsl" ,docbook-xsl)))
5047 (inputs
5048 `(("dbus-glib" ,dbus-glib)
5049 ("libgudev" ,libgudev)
5050 ("libusb" ,libusb)))
5051 (propagated-inputs
5052 ;; In Requires of upower-glib.pc.
5053 `(("glib" ,glib)))
5054 (home-page "https://upower.freedesktop.org/")
5055 (synopsis "System daemon for managing power devices")
5056 (description
5057 "UPower is an abstraction for enumerating power devices,
5058 listening to device events and querying history and statistics. Any
5059 application or service on the system can access the org.freedesktop.UPower
5060 service via the system message bus.")
5061 (license license:gpl2+)))
5062
5063 (define-public libgweather
5064 (package
5065 (name "libgweather")
5066 (version "3.34.0")
5067 (source (origin
5068 (method url-fetch)
5069 (uri (string-append "mirror://gnome/sources/" name "/"
5070 (version-major+minor version) "/"
5071 name "-" version ".tar.xz"))
5072 (sha256
5073 (base32
5074 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5075 (build-system meson-build-system)
5076 (arguments
5077 `(#:tests? #f ; one of two tests requires network access
5078 #:configure-flags
5079 `(,(string-append "-Dzoneinfo_dir="
5080 (assoc-ref %build-inputs "tzdata")
5081 "/share/zoneinfo"))))
5082 (native-inputs
5083 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5084 ("gobject-introspection" ,gobject-introspection)
5085 ("pkg-config" ,pkg-config)
5086 ("vala" ,vala)
5087 ("intltool" ,intltool)))
5088 (propagated-inputs
5089 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5090 ;; libsoup.
5091 `(("gtk+" ,gtk+)
5092 ("gdk-pixbuf" ,gdk-pixbuf)
5093 ("libxml2" ,libxml2)
5094 ("libsoup" ,libsoup)
5095 ("geocode-glib" ,geocode-glib)))
5096 (inputs
5097 `(("tzdata" ,tzdata)))
5098 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5099 (synopsis "Location, time zone, and weather library for GNOME")
5100 (description
5101 "libgweather is a library to access weather information from online
5102 services for numerous locations.")
5103 (license license:gpl2+)))
5104
5105 (define-public gnome-settings-daemon
5106 (package
5107 (name "gnome-settings-daemon")
5108 (version "3.34.1")
5109 (source
5110 (origin
5111 (method url-fetch)
5112 (uri (string-append "mirror://gnome/sources/" name "/"
5113 (version-major+minor version) "/"
5114 name "-" version ".tar.xz"))
5115 (sha256
5116 (base32
5117 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
5118 (build-system meson-build-system)
5119 (arguments
5120 `(#:glib-or-gtk? #t
5121 #:configure-flags
5122 (list (string-append "-Dudev_dir="
5123 (assoc-ref %outputs "out")
5124 "/lib/udev/rules.d/")
5125 "-Dsystemd=false"
5126 ;; Otherwise, the RUNPATH will lack the final path component.
5127 (string-append "-Dc_link_args=-Wl,-rpath="
5128 (assoc-ref %outputs "out")
5129 "/lib/gnome-settings-daemon-3.0"))
5130 ;; Color management test can't reach the colord system service.
5131 #:tests? #f))
5132 (native-inputs
5133 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5134 ("pkg-config" ,pkg-config)
5135 ("intltool" ,intltool)
5136 ("xsltproc" ,libxslt)
5137 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5138 ("docbook-xml" ,docbook-xml-4.2)
5139 ("docbook-xsl" ,docbook-xsl)))
5140 (inputs
5141 `(("alsa-lib" ,alsa-lib)
5142 ("colord" ,colord)
5143 ("libgudev" ,libgudev)
5144 ("upower" ,upower)
5145 ("polkit" ,polkit)
5146 ("pulseaudio" ,pulseaudio)
5147 ("libcanberra" ,libcanberra)
5148 ("libx11" ,libx11)
5149 ("libxtst" ,libxtst)
5150 ("lcms" ,lcms)
5151 ("libnotify" ,libnotify)
5152 ("geoclue" ,geoclue)
5153 ("geocode-glib" ,geocode-glib)
5154 ("libgweather" ,libgweather)
5155 ("gnome-desktop" ,gnome-desktop)
5156 ("nss" ,nss)
5157 ("cups" ,cups)
5158 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5159 ("libwacom" ,libwacom)
5160 ("librsvg" ,librsvg)
5161 ("xf86-input-wacom" ,xf86-input-wacom)
5162 ("wayland" ,wayland)
5163 ("network-manager" ,network-manager)
5164 ("gcr" ,gcr)
5165 ("modem-manager" ,modem-manager)))
5166 (home-page "https://www.gnome.org")
5167 (synopsis "GNOME settings daemon")
5168 (description
5169 "This package contains the daemon responsible for setting the various
5170 parameters of a GNOME session and the applications that run under it. It
5171 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5172 settings, themes, mouse settings, and startup of other daemons.")
5173 (license license:gpl2+)))
5174
5175 (define-public totem-pl-parser
5176 (package
5177 (name "totem-pl-parser")
5178 (version "3.26.5")
5179 (source (origin
5180 (method url-fetch)
5181 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5182 (version-major+minor version) "/"
5183 "totem-pl-parser-" version ".tar.xz"))
5184 (sha256
5185 (base32
5186 "132jihnf51zs98yjkc6jxyqib4f3dawpjm17g4bj4j78y93dww2k"))))
5187 (build-system meson-build-system)
5188 (arguments
5189 ;; FIXME: Tests require gvfs.
5190 `(#:tests? #f))
5191 (native-inputs
5192 `(("intltool" ,intltool)
5193 ("glib" ,glib "bin")
5194 ("gobject-introspection" ,gobject-introspection)
5195 ("pkg-config" ,pkg-config)))
5196 (propagated-inputs
5197 `(("glib" ,glib)
5198 ("gmime" ,gmime)
5199 ("libarchive" ,libarchive)
5200 ("libgcrypt" ,libgcrypt)
5201 ("libxml2" ,libxml2)))
5202 (inputs
5203 `(("libsoup" ,libsoup)))
5204 (home-page "https://projects.gnome.org/totem")
5205 (synopsis "Library to parse and save media playlists for GNOME")
5206 (description "Totem-pl-parser is a GObjects-based library to parse and save
5207 playlists in a variety of formats.")
5208 (license license:lgpl2.0+)))
5209
5210 (define-public aisleriot
5211 (package
5212 (name "aisleriot")
5213 (version "3.22.9")
5214 (source (origin
5215 (method url-fetch)
5216 (uri (string-append "mirror://gnome/sources/aisleriot/"
5217 (version-major+minor version) "/"
5218 "aisleriot-" version ".tar.xz"))
5219 (sha256
5220 (base32
5221 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5222 (build-system glib-or-gtk-build-system)
5223 (arguments
5224 '(#:configure-flags
5225 '("--with-platform=gtk-only"
5226 "--with-card-theme-formats=svg")))
5227 (native-inputs
5228 `(("desktop-file-utils" ,desktop-file-utils)
5229 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5230 ("intltool" ,intltool)
5231 ("itstool" ,itstool)
5232 ("pkg-config" ,pkg-config)
5233 ("xmllint" ,libxml2)))
5234 (inputs
5235 `(("gtk+" ,gtk+)
5236 ("guile" ,guile-2.2)
5237 ("libcanberra" ,libcanberra)
5238 ("librsvg" ,librsvg)))
5239 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5240 (synopsis "Solitaire card games")
5241 (description
5242 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5243 which are easy to play with the aid of a mouse.")
5244 (license license:gpl3+)))
5245
5246 (define-public amtk
5247 (package
5248 (name "amtk")
5249 (version "5.0.2")
5250 (source (origin
5251 (method url-fetch)
5252 (uri (string-append "mirror://gnome/sources/amtk/"
5253 (version-major+minor version) "/"
5254 "amtk-" version ".tar.xz"))
5255 (sha256
5256 (base32
5257 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5258 (build-system gnu-build-system)
5259 (arguments
5260 '(#:configure-flags '("--enable-gtk-doc")))
5261 (native-inputs
5262 `(("gobject-introspection" ,gobject-introspection)
5263 ("glib:bin" ,glib "bin") ; for glib-mkenums
5264 ("gtk-doc" ,gtk-doc)
5265 ("pkg-config" ,pkg-config)))
5266 (inputs
5267 `(("glib" ,glib)
5268 ("gtk+" ,gtk+)))
5269 (home-page "https://wiki.gnome.org/Projects/Amtk")
5270 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5271 (description
5272 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5273 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5274 both a traditional UI or a modern UI with a GtkHeaderBar.")
5275 (license license:lgpl2.1+)))
5276
5277 (define-public devhelp
5278 (package
5279 (name "devhelp")
5280 (version "3.34.0")
5281 (source (origin
5282 (method url-fetch)
5283 (uri (string-append "mirror://gnome/sources/" name "/"
5284 (version-major+minor version) "/"
5285 name "-" version ".tar.xz"))
5286 (sha256
5287 (base32
5288 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5289 (build-system meson-build-system)
5290 (arguments
5291 '(#:glib-or-gtk? #t
5292 #:phases
5293 (modify-phases %standard-phases
5294 (add-after 'unpack 'skip-gtk-update-icon-cache
5295 ;; Don't create 'icon-theme.cache'.
5296 (lambda _
5297 (substitute* "meson_post_install.py"
5298 (("gtk-update-icon-cache") "true"))
5299 #t)))))
5300 (native-inputs
5301 `(("intltool" ,intltool)
5302 ("itstool" ,itstool)
5303 ("gobject-introspection" ,gobject-introspection)
5304 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5305 ("pkg-config" ,pkg-config)))
5306 (inputs
5307 `(("amtk" ,amtk)
5308 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5309 ("webkitgtk" ,webkitgtk)))
5310 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5311 (synopsis "API documentation browser for GNOME")
5312 (description
5313 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5314 natively with GTK-Doc (the API reference system developed for GTK+ and used
5315 throughout GNOME for API documentation).")
5316 (license license:gpl2+)))
5317
5318 (define-public cogl
5319 (package
5320 (name "cogl")
5321 (version "1.22.8")
5322 (source
5323 (origin
5324 (method url-fetch)
5325 (uri (string-append "mirror://gnome/sources/cogl/"
5326 (version-major+minor version) "/"
5327 "cogl-" version ".tar.xz"))
5328 (sha256
5329 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5330 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5331 ;; cogl, corresponding changes may be appropriate in mutter as well.
5332 (build-system gnu-build-system)
5333 (native-inputs
5334 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5335 ("gobject-introspection" ,gobject-introspection)
5336 ("xorg-server" ,xorg-server-for-tests)
5337 ("pkg-config" ,pkg-config)))
5338 (propagated-inputs
5339 `(("glib" ,glib)
5340 ("gdk-pixbuf" ,gdk-pixbuf)
5341 ("libx11" ,libx11)
5342 ("libxext" ,libxext)
5343 ("libxfixes" ,libxfixes)
5344 ("libxdamage" ,libxdamage)
5345 ("libxcomposite" ,libxcomposite)
5346 ("libxrandr" ,libxrandr)))
5347 (inputs
5348 `(("mesa" ,mesa)
5349 ("cairo" ,cairo)
5350 ("pango" ,pango)
5351 ("gstreamer" ,gstreamer)
5352 ("gst-plugins-base" ,gst-plugins-base)
5353 ("wayland" ,wayland)))
5354 (arguments
5355 `(#:disallowed-references (,xorg-server-for-tests)
5356 #:configure-flags (list "--enable-cogl-gst"
5357 "--enable-wayland-egl-platform"
5358 "--enable-wayland-egl-server"
5359
5360 ;; Arrange to pass an absolute file name to
5361 ;; dlopen for libGL.so.
5362 (string-append "--with-gl-libname="
5363 (assoc-ref %build-inputs "mesa")
5364 "/lib/libGL.so"))
5365 #:phases
5366 (modify-phases %standard-phases
5367 (add-after 'unpack 'fix-build-with-mesa-20
5368 (lambda _
5369 ;; Work around a problem with Mesa 20 where some macros used by
5370 ;; Cogl went missing from eglext.h. This can likely be removed
5371 ;; for newer versions of Cogl or Mesa.
5372 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5373 (substitute* '("configure"
5374 "cogl/winsys/cogl-winsys-egl-kms.c")
5375 (("#include <EGL/eglext.h>" all)
5376 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5377 #t))
5378 (add-before 'check 'start-xorg-server
5379 (lambda* (#:key tests? inputs #:allow-other-keys)
5380 (if tests?
5381 (begin
5382 ;; The test suite requires a running X server.
5383 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5384 (assoc-ref inputs "xorg-server")))
5385 (setenv "DISPLAY" ":1")
5386 #t)
5387 (format #t "test suite not run~%"))
5388 #t)))))
5389 (home-page "https://www.cogl3d.org")
5390 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5391 (description
5392 "Cogl is a small library for using 3D graphics hardware to draw pretty
5393 pictures. The API departs from the flat state machine style of OpenGL and is
5394 designed to make it easy to write orthogonal components that can render
5395 without stepping on each others toes.")
5396 (license (list license:expat ; most of the code
5397 license:bsd-3 ; cogl/cogl-point-in-poly.c
5398 license:sgifreeb2.0 ; cogl-path/tesselator/
5399 license:asl2.0)))) ; examples/android/
5400
5401 (define-public clutter
5402 (package
5403 (name "clutter")
5404 (version "1.26.2")
5405 (source
5406 (origin
5407 (method url-fetch)
5408 (uri (string-append "mirror://gnome/sources/" name "/"
5409 (version-major+minor version) "/"
5410 name "-" version ".tar.xz"))
5411 (sha256
5412 (base32
5413 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5414 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5415 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5416 (build-system gnu-build-system)
5417 (outputs '("out"
5418 "doc")) ;9 MiB of gtk-doc HTML pages
5419 (native-inputs
5420 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5421 ("gobject-introspection" ,gobject-introspection)
5422 ("pkg-config" ,pkg-config)
5423 ("xsltproc" ,libxslt)))
5424 (propagated-inputs
5425 `(("cogl" ,cogl)
5426 ("cairo" ,cairo)
5427 ("atk" ,atk)
5428 ("gtk+" ,gtk+)
5429 ("json-glib" ,json-glib)
5430 ("glib" ,glib)
5431 ("libxcomposite" ,libxcomposite)
5432 ("libxdamage" ,libxdamage)
5433 ("libxext" ,libxext)
5434 ("xinput" ,xinput)))
5435 (inputs
5436 `(("libxkbcommon" ,libxkbcommon)
5437 ("udev" ,eudev)))
5438 (arguments
5439 `(#:configure-flags (list "--enable-x11-backend=yes"
5440
5441 ;; This produces share/doc/{clutter,cally}.
5442 (string-append "--with-html-dir="
5443 (assoc-ref %outputs "doc")
5444 "/share/doc"))
5445 ;; XXX FIXME: Get test suite working. It would probably fail in the
5446 ;; same way the cogl tests fail, since clutter is based on cogl.
5447 #:tests? #f))
5448 (home-page "http://www.clutter-project.org")
5449 (synopsis "OpenGL-based interactive canvas library")
5450 (description
5451 "Clutter is an OpenGL-based interactive canvas library, designed for
5452 creating fast, mainly 2D single window applications such as media box UIs,
5453 presentations, kiosk style applications and so on.")
5454 (license license:lgpl2.0+)))
5455
5456 (define-public clutter-gtk
5457 (package
5458 (name "clutter-gtk")
5459 (version "1.8.4")
5460 (source
5461 (origin
5462 (method url-fetch)
5463 (uri (string-append "mirror://gnome/sources/" name "/"
5464 (version-major+minor version) "/"
5465 name "-" version ".tar.xz"))
5466 (sha256
5467 (base32
5468 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5469 (build-system gnu-build-system)
5470 (native-inputs
5471 `(("pkg-config" ,pkg-config)
5472 ("gobject-introspection" ,gobject-introspection)))
5473 (propagated-inputs
5474 ;; clutter-gtk.pc refers to all these.
5475 `(("clutter" ,clutter)
5476 ("gtk+" ,gtk+)))
5477 (home-page "http://www.clutter-project.org")
5478 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5479 (description
5480 "Clutter is an OpenGL-based interactive canvas library, designed for
5481 creating fast, mainly 2D single window applications such as media box UIs,
5482 presentations, kiosk style applications and so on.")
5483 (license license:lgpl2.0+)))
5484
5485 (define-public clutter-gst
5486 (package
5487 (name "clutter-gst")
5488 (version "3.0.27")
5489 (source
5490 (origin
5491 (method url-fetch)
5492 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5493 (version-major+minor version) "/"
5494 "clutter-gst-" version ".tar.xz"))
5495 (sha256
5496 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5497 (build-system gnu-build-system)
5498 (native-inputs
5499 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5500 ("pkg-config" ,pkg-config)
5501 ("gobject-introspection" ,gobject-introspection)))
5502 (inputs
5503 `(("clutter" ,clutter)
5504 ("gstreamer" ,gstreamer)
5505 ("gst-plugins-base" ,gst-plugins-base)))
5506 (home-page "http://www.clutter-project.org")
5507 (synopsis "Integration library for using GStreamer with Clutter")
5508 (description
5509 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5510 It provides a GStreamer sink to upload frames to GL and an actor that
5511 implements the ClutterGstPlayer interface using playbin. Clutter is an
5512 OpenGL-based interactive canvas library.")
5513 (license license:lgpl2.0+)))
5514
5515 (define-public libchamplain
5516 (package
5517 (name "libchamplain")
5518 (version "0.12.16")
5519 (source (origin
5520 (method url-fetch)
5521 (uri (string-append
5522 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5523 version ".tar.xz"))
5524 (sha256
5525 (base32
5526 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5527 (build-system gnu-build-system)
5528 (arguments '(#:configure-flags '("--enable-vala")))
5529 (native-inputs
5530 `(("gobject-introspection" ,gobject-introspection)
5531 ("pkg-config" ,pkg-config)
5532 ("vala" ,vala)))
5533 (propagated-inputs
5534 `(("libsoup" ,libsoup)
5535 ("sqlite" ,sqlite)
5536 ("clutter" ,clutter)
5537 ("clutter-gtk" ,clutter-gtk)
5538 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5539 ("cairo" ,cairo)
5540 ("gtk+3" ,gtk+)
5541 ("glib" ,glib)))
5542 (home-page "https://projects.gnome.org/libchamplain/")
5543 (synopsis "C library providing a ClutterActor to display maps")
5544 (description
5545 "libchamplain is a C library providing a ClutterActor to display maps.
5546 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5547 and Perl bindings are also available. It supports numerous free map sources
5548 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5549 (license license:lgpl2.1+)))
5550
5551 (define-public gom
5552 (package
5553 (name "gom")
5554 (version "0.3.2")
5555 (source
5556 (origin
5557 (method url-fetch)
5558 (uri (string-append "mirror://gnome/sources/gom/"
5559 (version-major+minor version) "/"
5560 "gom-" version ".tar.xz"))
5561 (sha256
5562 (base32
5563 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5564 (build-system gnu-build-system)
5565 (native-inputs
5566 `(("intltool" ,intltool)
5567 ("pkg-config" ,pkg-config)
5568 ("gobject-introspection" ,gobject-introspection)))
5569 (inputs
5570 `(("glib" ,glib)
5571 ("gdk-pixbuf" ,gdk-pixbuf)
5572 ("sqlite" ,sqlite)))
5573 ;; XXX TODO: Figure out how to run the test suite.
5574 (arguments `(#:tests? #f))
5575 (home-page "https://wiki.gnome.org/Projects/Gom")
5576 (synopsis "Object mapper from GObjects to SQLite")
5577 (description
5578 "Gom provides an object mapper from GObjects to SQLite. It helps you
5579 write applications that need to store structured data as well as make complex
5580 queries upon that data.")
5581 (license license:lgpl2.1+)))
5582
5583 (define-public libgnome-games-support
5584 (package
5585 (name "libgnome-games-support")
5586 (version "1.4.4")
5587 (source (origin
5588 (method url-fetch)
5589 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5590 (version-major+minor version) "/"
5591 "libgnome-games-support-" version ".tar.xz"))
5592 (sha256
5593 (base32
5594 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5595 (build-system gnu-build-system)
5596 (arguments
5597 '(#:phases
5598 (modify-phases %standard-phases
5599 (add-before 'check 'pre-check
5600 (lambda _
5601 ;; Tests require a writable HOME.
5602 (setenv "HOME" (getcwd))
5603 #t)))))
5604 (native-inputs
5605 `(("intltool" ,intltool)
5606 ("pkg-config" ,pkg-config)
5607 ("vala" ,vala)))
5608 (propagated-inputs
5609 ;; Required by libgnome-games-support-1.0.pc
5610 `(("gtk+" ,gtk+)
5611 ("libgee" ,libgee)))
5612 (home-page "https://www.gnome.org/")
5613 (synopsis "Useful functionality shared among GNOME games")
5614 (description
5615 "libgnome-games-support is a small library intended for internal use by
5616 GNOME Games, but it may be used by others.")
5617 (license license:lgpl3+)))
5618
5619 (define-public gnome-klotski
5620 (package
5621 (name "gnome-klotski")
5622 (version "3.34.0")
5623 (source (origin
5624 (method url-fetch)
5625 (uri (string-append "mirror://gnome/sources/" name "/"
5626 (version-major+minor version) "/"
5627 name "-" version ".tar.xz"))
5628 (sha256
5629 (base32
5630 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
5631 (build-system meson-build-system)
5632 (arguments
5633 '(#:glib-or-gtk? #t
5634 #:phases
5635 (modify-phases %standard-phases
5636 (add-after 'unpack 'skip-gtk-update-icon-cache
5637 ;; Don't create 'icon-theme.cache'.
5638 (lambda _
5639 (substitute* "build-aux/meson_post_install.py"
5640 (("gtk-update-icon-cache") (which "true")))
5641 #t)))))
5642 (native-inputs
5643 `(("desktop-file-utils" ,desktop-file-utils)
5644 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5645 ("intltool" ,intltool)
5646 ("itstool" ,itstool)
5647 ("pkg-config" ,pkg-config)
5648 ("vala" ,vala)
5649 ("xmllint" ,libxml2)))
5650 (inputs
5651 `(("gtk+" ,gtk+)
5652 ("libgnome-games-support" ,libgnome-games-support)
5653 ("librsvg" ,librsvg)))
5654 (home-page "https://wiki.gnome.org/Apps/Klotski")
5655 (synopsis "Sliding block puzzles")
5656 (description
5657 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
5658 the patterned block to the area bordered by green markers. To do so, you will
5659 need to slide other blocks out of the way. Complete each puzzle in as few moves
5660 as possible!")
5661 (license license:gpl2+)))
5662
5663 (define-public grilo
5664 (package
5665 (name "grilo")
5666 (version "0.3.12")
5667 (source
5668 (origin
5669 (method url-fetch)
5670 (uri (string-append "mirror://gnome/sources/grilo/"
5671 (version-major+minor version) "/"
5672 "grilo-" version ".tar.xz"))
5673 (sha256
5674 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
5675 (build-system meson-build-system)
5676 (native-inputs
5677 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
5678 ("intltool" ,intltool)
5679 ("pkg-config" ,pkg-config)
5680 ("gobject-introspection" ,gobject-introspection)
5681 ("gtk-doc" ,gtk-doc)
5682 ("vala" ,vala)))
5683 (inputs
5684 `(("cyrus-sasl" ,cyrus-sasl)
5685 ("glib" ,glib)
5686 ("gtk+" ,gtk+)
5687 ("libxml2" ,libxml2)
5688 ("liboauth" ,liboauth)
5689 ("libsoup" ,libsoup)
5690 ("totem-pl-parser" ,totem-pl-parser)))
5691 (native-search-paths
5692 (list (search-path-specification
5693 (variable "GRL_PLUGIN_PATH")
5694 (files (list (string-append "lib/grilo-"
5695 (version-major+minor version)))))))
5696 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
5697 (synopsis "Framework for discovering and browsing media")
5698 (description
5699 "Grilo is a framework focused on making media discovery and browsing easy
5700 for application developers.")
5701 (license license:lgpl2.1+)))
5702
5703 (define-public grilo-plugins
5704 (package
5705 (name "grilo-plugins")
5706 (version "0.3.11")
5707 (source
5708 (origin
5709 (method url-fetch)
5710 (uri (string-append "mirror://gnome/sources/" name "/"
5711 (version-major+minor version) "/"
5712 name "-" version ".tar.xz"))
5713 (sha256
5714 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
5715 (build-system meson-build-system)
5716 (native-inputs
5717 `(("gettext" ,gettext-minimal)
5718 ("glib:bin" ,glib "bin")
5719 ("gtk+:bin" ,gtk+ "bin")
5720 ("itstool" ,itstool)
5721 ("pkg-config" ,pkg-config)))
5722 ;; TODO: ahavi, gstreamer
5723 (inputs
5724 `(("grilo" ,grilo)
5725 ;("gmime" ,gmime) ; unused
5726 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
5727 ("gom" ,gom)
5728 ;("gssdp" ,gssdp) ; unused
5729 ;("gupnp" ,gupnp) ; unused
5730 ;("gupnp-av" ,gupnp-av) ; unused
5731 ("json-glib" ,json-glib)
5732 ("avahi" ,avahi)
5733 ("libgdata" ,libgdata)
5734 ("libmediaart" ,libmediaart)
5735 ;("librest" ,rest) ; unused
5736 ("libsoup" ,libsoup)
5737 ("totam-pl-parser" ,totem-pl-parser)
5738 ("tracker" ,tracker))) ; unused because it's too old
5739 (arguments
5740 `(#:glib-or-gtk? #t
5741 ;;Disable lua-factory as it needs missing dependencies
5742 #:configure-flags '("-Denable-lua-factory=no")))
5743 (home-page "https://live.gnome.org/Grilo")
5744 (synopsis "Plugins for the Grilo media discovery library")
5745 (description
5746 "Grilo is a framework focused on making media discovery and browsing easy
5747 for application developers. This package provides plugins for common media
5748 discovery protocols.")
5749 (license license:lgpl2.1+)))
5750
5751 (define-public totem
5752 (package
5753 (name "totem")
5754 (version "3.34.1")
5755 (source
5756 (origin
5757 (method url-fetch)
5758 (uri (string-append "mirror://gnome/sources/totem/"
5759 (version-major+minor version) "/"
5760 "totem-" version ".tar.xz"))
5761 (sha256
5762 (base32
5763 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
5764 (build-system meson-build-system)
5765 (native-inputs
5766 `(("pkg-config" ,pkg-config)
5767 ("desktop-file-utils" ,desktop-file-utils)
5768 ("gobject-introspection" ,gobject-introspection)
5769 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
5770 ("intltool" ,intltool)
5771 ("itstool" ,itstool)
5772 ("xmllint" ,libxml2)
5773 ("xorg-server" ,xorg-server-for-tests)))
5774 (propagated-inputs
5775 `(("dconf" ,dconf)))
5776 (inputs
5777 `(("gtk+" ,gtk+)
5778 ("gdk-pixbuf" ,gdk-pixbuf)
5779 ("atk" ,atk)
5780 ("cairo" ,cairo)
5781 ("dbus-glib" ,dbus-glib)
5782 ("clutter" ,clutter)
5783 ("clutter-gtk" ,clutter-gtk)
5784 ("clutter-gst" ,clutter-gst)
5785 ("xorgproto" ,xorgproto)
5786 ("libxxf86vm" ,libxxf86vm)
5787 ("libxtst" ,libxtst)
5788 ("libxrandr" ,libxrandr)
5789 ("libxml2" ,libxml2)
5790 ("libsoup" ,libsoup)
5791 ("libpeas" ,libpeas)
5792 ("librsvg" ,librsvg)
5793 ("lirc" ,lirc)
5794 ("gnome-desktop" ,gnome-desktop)
5795 ("gstreamer" ,gstreamer)
5796 ("gst-plugins-base" ,gst-plugins-base)
5797 ("gst-plugins-good" ,gst-plugins-good)
5798 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5799 ("adwaita-icon-theme" ,adwaita-icon-theme)
5800 ("python" ,python)
5801 ("python-pygobject" ,python-pygobject)
5802 ("totem-pl-parser" ,totem-pl-parser)
5803 ("grilo" ,grilo)
5804 ("grilo-plugins" ,grilo-plugins)
5805 ("vala" ,vala)))
5806 (arguments
5807 `(#:glib-or-gtk? #t
5808
5809 ;; Disable automatic GStreamer plugin installation via PackageKit and
5810 ;; all that.
5811 #:configure-flags '("-D" "enable-easy-codec-installation=no"
5812
5813 ;; Do not build .a files for the plugins, it's
5814 ;; completely useless. This saves 2 MiB.
5815 "--default-library" "shared")
5816 #:phases
5817 (modify-phases %standard-phases
5818 (add-after 'unpack 'skip-gtk-update-icon-cache
5819 ;; Don't create 'icon-theme.cache'.
5820 (lambda _
5821 (substitute* "meson_post_install.py"
5822 (("gtk-update-icon-cache") "true"))
5823 #t))
5824 (add-before
5825 'install 'disable-cache-generation
5826 (lambda _
5827 (setenv "DESTDIR" "/")
5828 #t))
5829 (add-before
5830 'check 'pre-check
5831 (lambda _
5832 ;; Tests require a running X server.
5833 (system "Xvfb :1 &")
5834 (setenv "DISPLAY" ":1")
5835 #t))
5836 (add-after
5837 'install 'wrap-totem
5838 (lambda* (#:key inputs outputs #:allow-other-keys)
5839 (let ((out (assoc-ref outputs "out"))
5840 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5841 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5842 (wrap-program (string-append out "/bin/totem")
5843 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5844 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5845 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5846 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
5847 #t)))))
5848 (home-page "https://wiki.gnome.org/Apps/Videos")
5849 (synopsis "Simple media player for GNOME based on GStreamer")
5850 (description "Totem is a simple yet featureful media player for GNOME
5851 which can read a large number of file formats.")
5852 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5853 ;; to be used and distributed together with GStreamer and Totem. See
5854 ;; file://COPYING in the source distribution for details.
5855 (license license:gpl2+)))
5856
5857 (define-public rhythmbox
5858 (package
5859 (name "rhythmbox")
5860 (version "3.4.4")
5861 (source (origin
5862 (method url-fetch)
5863 (uri (string-append "mirror://gnome/sources/rhythmbox/"
5864 (version-major+minor version) "/"
5865 "rhythmbox-" version ".tar.xz"))
5866 (sha256
5867 (base32
5868 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
5869 (build-system glib-or-gtk-build-system)
5870 (arguments
5871 `(#:configure-flags
5872 (list "--enable-lirc"
5873 "--enable-python"
5874 "--enable-vala"
5875 "--with-brasero"
5876 "--with-gudev"
5877 "--with-libsecret")
5878 #:phases
5879 (modify-phases %standard-phases
5880 (add-after
5881 'install 'wrap-rhythmbox
5882 (lambda* (#:key inputs outputs #:allow-other-keys)
5883 (let ((out (assoc-ref outputs "out"))
5884 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5885 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5886 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5887 (python-path (getenv "PYTHONPATH")))
5888 (wrap-program (string-append out "/bin/rhythmbox")
5889 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5890 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5891 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5892 `("PYTHONPATH" ":" prefix (,python-path))))
5893 #t)))))
5894 (propagated-inputs
5895 `(("dconf" ,dconf)))
5896 (native-inputs
5897 `(("itstool" ,itstool)
5898 ("intltool" ,intltool)
5899 ("glib" ,glib "bin")
5900 ("gobject-introspection" ,gobject-introspection)
5901 ("desktop-file-utils" ,desktop-file-utils)
5902 ("pkg-config" ,pkg-config)
5903 ("xmllint" ,libxml2)))
5904 (inputs
5905 `(("json-glib" ,json-glib)
5906 ("tdb" ,tdb)
5907 ("gnome-desktop" ,gnome-desktop)
5908 ("python" ,python)
5909 ("python-pygobject" ,python2-pygobject)
5910 ("vala" ,vala)
5911 ("gmime" ,gmime)
5912 ("adwaita-icon-theme" ,adwaita-icon-theme)
5913 ("grilo" ,grilo)
5914 ("grilo-plugins" ,grilo-plugins)
5915 ("gstreamer" ,gstreamer)
5916 ("gst-plugins-base" ,gst-plugins-base)
5917 ("gst-plugins-good" ,gst-plugins-good)
5918 ("totem-pl-parser" ,totem-pl-parser)
5919 ("libgudev" ,libgudev)
5920 ;;("libmtp" ,libmtp) FIXME: Not detected
5921 ("libsecret" ,libsecret)
5922 ("libsoup" ,libsoup)
5923 ("libnotify" ,libnotify)
5924 ("libpeas" ,libpeas)
5925 ("lirc" ,lirc)
5926 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5927 ;;("clutter" ,clutter)
5928 ;;("clutter-gtk" ,clutter-gtk)
5929 ;;("clutter-gst" ,clutter-gst)
5930 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5931 ("atk" ,atk)
5932 ("pango" ,pango)
5933 ("gtk+" ,gtk+)
5934 ;; TODO:
5935 ;; * libgpod
5936 ;; * mx
5937 ("brasero" ,brasero)))
5938 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5939 (synopsis "Music player for GNOME")
5940 (description "Rhythmbox is a music playing application for GNOME. It
5941 supports playlists, song ratings, and any codecs installed through gstreamer.")
5942 (license license:gpl2+)))
5943
5944 (define-public eog
5945 (package
5946 (name "eog")
5947 (version "3.34.1")
5948 (source (origin
5949 (method url-fetch)
5950 (uri (string-append "mirror://gnome/sources/" name "/"
5951 (version-major+minor version) "/"
5952 name "-" version ".tar.xz"))
5953 (sha256
5954 (base32
5955 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5956 (build-system meson-build-system)
5957 (arguments
5958 `(#:configure-flags
5959 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5960 (list (string-append "-Dc_link_args=-Wl,-rpath="
5961 (assoc-ref %outputs "out") "/lib/eog"))
5962 #:phases
5963 (modify-phases %standard-phases
5964 (add-after 'unpack 'skip-gtk-update-icon-cache
5965 ;; Don't create 'icon-theme.cache'.
5966 (lambda _
5967 (substitute* "meson_post_install.py"
5968 (("gtk-update-icon-cache") "true"))
5969 #t))
5970 (add-after 'install 'wrap-eog
5971 (lambda* (#:key outputs #:allow-other-keys)
5972 (let ((out (assoc-ref outputs "out"))
5973 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5974 (wrap-program (string-append out "/bin/eog")
5975 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5976 #t)))))
5977 (propagated-inputs
5978 `(("dconf" ,dconf)))
5979 (native-inputs
5980 `(("intltool" ,intltool)
5981 ("itstool" ,itstool)
5982 ("glib" ,glib "bin")
5983 ("gobject-introspection" ,gobject-introspection)
5984 ("pkg-config" ,pkg-config)
5985 ("xmllint" ,libxml2)))
5986 (inputs
5987 `(("gnome-desktop" ,gnome-desktop)
5988 ("shared-mime-info" ,shared-mime-info)
5989 ("adwaita-icon-theme" ,adwaita-icon-theme)
5990 ("exempi" ,exempi)
5991 ("lcms" ,lcms)
5992 ("libexif" ,libexif)
5993 ("libpeas" ,libpeas)
5994 ("libjpeg" ,libjpeg-turbo)
5995 ("librsvg" ,librsvg-next)
5996 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5997 ("gtk+" ,gtk+)))
5998 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5999 (synopsis "GNOME image viewer")
6000 (description "Eye of GNOME is the GNOME image viewer. It
6001 supports image conversion, rotation, and slideshows.")
6002 (license license:gpl2+)))
6003
6004 (define-public eog-plugins
6005 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6006 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6007 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6008 ;; 'XDG_DATA_DIRS' appropriately set.
6009 (package
6010 (name "eog-plugins")
6011 (version "3.26.4")
6012 (source (origin
6013 (method url-fetch)
6014 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6015 (version-major+minor version) "/"
6016 "eog-plugins-" version ".tar.xz"))
6017 (sha256
6018 (base32
6019 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6020 (build-system gnu-build-system)
6021 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6022 (synopsis "Extensions for the Eye of GNOME image viewer")
6023 (native-inputs
6024 `(("pkg-config" ,pkg-config)
6025 ("gettext" ,gettext-minimal)))
6026 (inputs
6027 `(("eog" ,eog)
6028 ("glib" ,glib)
6029 ("gtk+" ,gtk+)
6030 ("libpeas" ,libpeas)
6031 ("libexif" ,libexif)
6032 ("libchamplain" ,libchamplain)))
6033 (description
6034 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6035 notably:
6036
6037 @itemize
6038 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6039 @item @dfn{Map}, which displays a map of where the picture was taken on the
6040 side panel;
6041 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6042 @end itemize\n")
6043
6044 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6045 ;; long suspicious byte stream that goes to a
6046 ;; ".gresource.eog_postasa_plugin" ELF section.
6047 (license license:gpl2+)))
6048
6049 (define-public libgudev
6050 (package
6051 (name "libgudev")
6052 (version "232")
6053 (source (origin
6054 (method url-fetch)
6055 (uri (string-append "mirror://gnome/sources/" name "/"
6056 version "/" name "-" version ".tar.xz"))
6057 (sha256
6058 (base32
6059 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
6060 (build-system gnu-build-system)
6061 (arguments
6062 '(#:configure-flags
6063 ;; umockdev depends on libgudev.
6064 (list "--disable-umockdev")))
6065 (native-inputs
6066 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6067 ("gobject-introspection" ,gobject-introspection)
6068 ("pkg-config" ,pkg-config)))
6069 (propagated-inputs
6070 `(("glib" ,glib))) ; required by gudev-1.0.pc
6071 (inputs
6072 `(("udev" ,eudev)))
6073 (home-page "https://wiki.gnome.org/Projects/libgudev")
6074 (synopsis "GObject bindings for libudev")
6075 (description
6076 "This library provides GObject bindings for libudev. It was originally
6077 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6078 (license license:lgpl2.1+)))
6079
6080 (define-public gvfs
6081 (package
6082 (name "gvfs")
6083 (version "1.40.1")
6084 (source (origin
6085 (method url-fetch)
6086 (uri (string-append "mirror://gnome/sources/gvfs/"
6087 (version-major+minor version) "/"
6088 "gvfs-" version ".tar.xz"))
6089 (sha256
6090 (base32
6091 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
6092 ;; This patch may be removed when upgrading to version 1.46.x.
6093 (patches
6094 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6095 (build-system meson-build-system)
6096 (arguments
6097 '(#:glib-or-gtk? #t
6098 #:configure-flags
6099 (list "-Dsystemduserunitdir=no"
6100 "-Dtmpfilesdir=no"
6101 ;; Otherwise, the RUNPATH will lack the final path component.
6102 (string-append "-Dc_link_args=-Wl,-rpath="
6103 (assoc-ref %outputs "out") "/lib/gvfs"))))
6104 (native-inputs
6105 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6106 ("gettext" ,gettext-minimal)
6107 ("gtk-doc" ,gtk-doc)
6108 ("pkg-config" ,pkg-config)
6109 ("xsltproc" ,libxslt)))
6110 (inputs
6111 `(("avahi" ,avahi)
6112 ("docbook-xml" ,docbook-xml-4.2)
6113 ("docbook-xsl" ,docbook-xsl)
6114 ("dbus" ,dbus)
6115 ("elogind" ,elogind)
6116 ("fuse" ,fuse)
6117 ("gcr" ,gcr)
6118 ("glib" ,glib)
6119 ("gnome-online-accounts" ,gnome-online-accounts)
6120 ("libarchive" ,libarchive)
6121 ("libbluray" ,libbluray)
6122 ("libcap" ,libcap)
6123 ("libcdio-paranoia" ,libcdio-paranoia)
6124 ("libgcrypt" ,libgcrypt)
6125 ("libgdata" ,libgdata)
6126 ("libgphoto2" ,libgphoto2)
6127 ("libgudev" ,libgudev)
6128 ("libimobiledevice" ,libimobiledevice)
6129 ("libmtp" ,libmtp)
6130 ("libnfs" ,libnfs)
6131 ("libsecret" ,libsecret)
6132 ("libsmbclient" ,samba)
6133 ("libsoup" ,libsoup)
6134 ("libxml2" ,libxml2)
6135 ("openssh" ,openssh)
6136 ("polkit" ,polkit)
6137 ("udisks" ,udisks)))
6138 (home-page "https://wiki.gnome.org/gvfs/")
6139 (synopsis "Userspace virtual file system for GIO")
6140 (description
6141 "GVFS is a userspace virtual file system designed to work with the I/O
6142 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6143 to all applications using the GIO API. It also supports exposing the GVFS
6144 mounts to non-GIO applications using FUSE.
6145
6146 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6147 DAV, and others.")
6148 (license license:lgpl2.0+)))
6149
6150 (define-public gusb
6151 (package
6152 (name "gusb")
6153 (version "0.3.0")
6154 (source (origin
6155 (method git-fetch)
6156 (uri (git-reference
6157 (url "https://github.com/hughsie/libgusb")
6158 (commit version)))
6159 (file-name (git-file-name name version))
6160 (sha256
6161 (base32
6162 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
6163 (build-system meson-build-system)
6164 (native-inputs
6165 `(("gobject-introspection" ,gobject-introspection)
6166 ("pkg-config" ,pkg-config)
6167 ("vala" ,vala)
6168 ("gtk-doc" ,gtk-doc)))
6169 (propagated-inputs
6170 ;; Both of these are required by gusb.pc.
6171 `(("glib" ,glib)
6172 ("libusb" ,libusb)))
6173 (arguments
6174 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6175 (home-page "https://github.com/hughsie/libgusb")
6176 (synopsis "GLib binding for libusb1")
6177 (description
6178 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6179 asynchronous control, bulk and interrupt transfers with proper cancellation
6180 and integration into a mainloop. This makes it easy to integrate low level
6181 USB transfers with your high-level application or system daemon.")
6182 (license license:lgpl2.1+)))
6183
6184 (define-public simple-scan
6185 (package
6186 (name "simple-scan")
6187 (version "3.36.6")
6188 (source
6189 (origin
6190 (method url-fetch)
6191 (uri (string-append "mirror://gnome/sources/simple-scan/"
6192 (version-major+minor version) "/"
6193 "simple-scan-" version ".tar.xz"))
6194 (sha256
6195 (base32 "0x9hzqnji5l966yy2k5gppl8hqasn3sd5an4sr8srjmncxcs80ys"))))
6196 (build-system meson-build-system)
6197 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6198 (arguments
6199 '(#:glib-or-gtk? #t))
6200 (inputs
6201 `(("gtk" ,gtk+)
6202 ("zlib" ,zlib)
6203 ("cairo" ,cairo)
6204 ("colord" ,colord)
6205 ("gdk-pixbuf" ,gdk-pixbuf)
6206 ("gusb" ,gusb)
6207 ("libsane" ,sane-backends)))
6208 (native-inputs
6209 `(("gettext" ,gettext-minimal)
6210 ("itstool" ,itstool)
6211 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6212 ("pkg-config" ,pkg-config)
6213 ("vala" ,vala)
6214 ("xmllint" ,libxml2)))
6215 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6216 (synopsis "Document and image scanner")
6217 (description
6218 "Document Scanner is an easy-to-use application that lets you connect your
6219 scanner and quickly capture images and documents in an appropriate format. It
6220 supports any scanner for which a suitable SANE driver is available, which is
6221 almost all of them.")
6222 (license license:gpl3+)))
6223
6224 (define-public eolie
6225 (package
6226 (name "eolie")
6227 (version "0.9.98.1")
6228 (source (origin
6229 (method url-fetch)
6230 (uri (string-append "https://adishatz.org/eolie/eolie-"
6231 version ".tar.xz"))
6232 (sha256
6233 (base32
6234 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
6235 (build-system meson-build-system)
6236 (arguments
6237 `(#:glib-or-gtk? #t
6238 #:phases
6239 (modify-phases %standard-phases
6240 (add-after 'unpack 'skip-gtk-update-icon-cache
6241 ;; Don't create 'icon-theme.cache'.
6242 (lambda _
6243 (substitute* "meson_post_install.py"
6244 (("gtk-update-icon-cache") "true"))
6245 #t))
6246 (add-after 'wrap 'wrap-more
6247 (lambda* (#:key inputs outputs #:allow-other-keys)
6248 (let* ((out (assoc-ref outputs "out"))
6249 ;; These libraries must be on LD_LIBRARY_PATH.
6250 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6251 "atk" "gtk+" "gsettings-desktop-schemas"
6252 "gobject-introspection"))
6253 (path (string-join
6254 (map (lambda (lib)
6255 (string-append (assoc-ref inputs lib) "/lib"))
6256 libs)
6257 ":")))
6258 (wrap-program (string-append out "/bin/eolie")
6259 `("LD_LIBRARY_PATH" ":" prefix (,path))
6260 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6261 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6262 #t)))))
6263 (native-inputs
6264 `(("intltool" ,intltool)
6265 ("itstool" ,itstool)
6266 ("pkg-config" ,pkg-config)
6267 ("python" ,python)
6268 ("glib:bin" ,glib "bin")))
6269 (inputs
6270 `(("gobject-introspection" ,gobject-introspection)
6271 ("glib-networking" ,glib-networking)
6272 ("cairo" ,cairo)
6273 ("gtk+" ,gtk+)
6274 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6275 ("python" ,python-wrapper)
6276 ("python-dateutil" ,python-dateutil)
6277 ("python-pyfxa" ,python-pyfxa)
6278 ("python-pygobject" ,python-pygobject)
6279 ("python-pycairo" ,python-pycairo)
6280 ("python-pycrypto" ,python-pycrypto)
6281 ("libsecret" ,libsecret)
6282 ("gtkspell3" ,gtkspell3)
6283 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6284 ("webkitgtk" ,webkitgtk)))
6285 (home-page "https://wiki.gnome.org/Apps/Eolie")
6286 (synopsis "Web browser for GNOME")
6287 (description
6288 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6289 a secret password store, an adblocker, and a modern UI.")
6290 (license license:gpl3+)))
6291
6292 (define-public epiphany
6293 (package
6294 (name "epiphany")
6295 (version "3.34.4")
6296 (source (origin
6297 (method url-fetch)
6298 (uri (string-append "mirror://gnome/sources/epiphany/"
6299 (version-major+minor version) "/"
6300 "epiphany-" version ".tar.xz"))
6301 (sha256
6302 (base32
6303 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6304
6305 (build-system meson-build-system)
6306 (arguments
6307 '(#:glib-or-gtk? #t
6308 #:phases
6309 (modify-phases %standard-phases
6310 (add-after 'unpack 'skip-gtk-update-icon-cache
6311 ;; Don't create 'icon-theme.cache'.
6312 (lambda _
6313 (substitute* "post_install.py"
6314 (("gtk-update-icon-cache") "true"))
6315 #t))
6316 (add-after 'unpack 'disable-failing-tests
6317 (lambda _
6318 (substitute* "tests/meson.build"
6319 ;; embed_shell fails, because webkitgtk apparently no longer supports
6320 ;; overriding the ftp schema
6321 ;; web_app_utils fails due to missing network access
6322 (("(embed_shell|web_app_utils)_test,")
6323 "find_program('sh'), args: ['-c', 'exit 77'],"))
6324 #t))
6325 (add-before 'check 'pre-check
6326 (lambda _
6327 ;; Tests require a running X server.
6328 (system "Xvfb :1 &")
6329 (setenv "DISPLAY" ":1")
6330 #t)))
6331 #:configure-flags
6332 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6333 (list (string-append "-Dc_link_args=-Wl,-rpath="
6334 (assoc-ref %outputs "out") "/lib/epiphany"))))
6335 (propagated-inputs
6336 `(("dconf" ,dconf)))
6337 (native-inputs
6338 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6339 ("glib:bin" ,glib "bin") ; for glib-mkenums
6340 ("intltool" ,intltool)
6341 ("itstool" ,itstool)
6342 ("pkg-config" ,pkg-config)
6343 ("xmllint" ,libxml2)
6344 ("xorg-server" ,xorg-server-for-tests)))
6345 (inputs
6346 `(("avahi" ,avahi)
6347 ("gcr" ,gcr)
6348 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6349 ("glib-networking" ,glib-networking)
6350 ("gnome-desktop" ,gnome-desktop)
6351 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6352 ("json-glib" ,json-glib)
6353 ("iso-codes" ,iso-codes)
6354 ("libdazzle" ,libdazzle)
6355 ("libnotify" ,libnotify)
6356 ("libsecret" ,libsecret)
6357 ("libxslt" ,libxslt)
6358 ("nettle" ,nettle) ; for hogweed
6359 ("sqlite" ,sqlite)
6360 ("webkitgtk" ,webkitgtk)))
6361 (home-page "https://wiki.gnome.org/Apps/Web")
6362 (synopsis "GNOME web browser")
6363 (description
6364 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6365 principles are simplicity and standards compliance.")
6366 (license license:gpl2+)))
6367
6368 (define-public d-feet
6369 (package
6370 (name "d-feet")
6371 (version "0.3.14")
6372 (source (origin
6373 (method url-fetch)
6374 (uri (string-append "mirror://gnome/sources/" name "/"
6375 (version-major+minor version) "/"
6376 name "-" version ".tar.xz"))
6377 (sha256
6378 (base32
6379 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6380 (build-system glib-or-gtk-build-system)
6381 (arguments
6382 '(#:out-of-source? #f ; tests need to run in the source directory.
6383 #:phases
6384 (modify-phases %standard-phases
6385 (add-before
6386 'check 'pre-check
6387 (lambda _
6388 ;; The test suite requires a running X server.
6389 (system "Xvfb :1 &")
6390 (setenv "DISPLAY" ":1")
6391 ;; Don't fail on missing '/etc/machine-id'.
6392 (setenv "DBUS_FATAL_WARNINGS" "0")
6393 ;; tests.py and window.py don't meet E402:
6394 ;; E402 module level import not at top of file
6395 (substitute* "src/tests/Makefile"
6396 (("--ignore=E123") "--ignore=E123,E402"))
6397 #t))
6398 (add-after
6399 'install 'wrap-program
6400 (lambda* (#:key outputs #:allow-other-keys)
6401 (let ((prog (string-append (assoc-ref outputs "out")
6402 "/bin/d-feet")))
6403 (wrap-program prog
6404 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6405 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6406 #t))))))
6407 (native-inputs
6408 `(("intltool" ,intltool)
6409 ("itstool" ,itstool)
6410 ("pkg-config" ,pkg-config)
6411 ("python-pep8" ,python-pep8)
6412 ("xmllint" ,libxml2)
6413 ("xorg-server" ,xorg-server-for-tests)))
6414 (inputs
6415 `(("gobject-introspection" ,gobject-introspection)
6416 ("gtk+" ,gtk+)
6417 ("python" ,python-wrapper)
6418 ("hicolor-icon-theme" ,hicolor-icon-theme)
6419 ("python-pygobject" ,python-pygobject)))
6420 (home-page "https://wiki.gnome.org/Apps/DFeet")
6421 (synopsis "D-Bus debugger")
6422 (description
6423 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6424 of running programs and invoke methods on those interfaces.")
6425 (license license:gpl2+)))
6426
6427 (define-public yelp-xsl
6428 (package
6429 (name "yelp-xsl")
6430 (version "3.34.2")
6431 (source (origin
6432 (method url-fetch)
6433 (uri (string-append "mirror://gnome/sources/" name "/"
6434 (version-major+minor version) "/"
6435 name "-" version ".tar.xz"))
6436 (sha256
6437 (base32
6438 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6439 (build-system gnu-build-system)
6440 (native-inputs
6441 `(("gettext-minimal" ,gettext-minimal)
6442 ("itstool" ,itstool)
6443 ("xmllint" ,libxml2)))
6444 (home-page "https://wiki.gnome.org/Apps/Yelp")
6445 (synopsis "XSL stylesheets for Yelp")
6446 (description
6447 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
6448 to format Docbook and Mallard documents.")
6449 (license license:gpl2+)))
6450
6451 (define-public yelp
6452 (package
6453 (name "yelp")
6454 (version "3.32.2")
6455 (source (origin
6456 (method url-fetch)
6457 (uri (string-append "mirror://gnome/sources/" name "/"
6458 (version-major+minor version) "/"
6459 name "-" version ".tar.xz"))
6460 (sha256
6461 (base32
6462 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6463 (build-system glib-or-gtk-build-system)
6464 (native-inputs
6465 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6466 ("intltool" ,intltool)
6467 ("itstool" ,itstool)
6468 ("pkg-config" ,pkg-config)))
6469 (propagated-inputs
6470 `(("dconf" ,dconf)))
6471 (inputs
6472 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6473 ("libxslt" ,libxslt)
6474 ("sqlite" ,sqlite)
6475 ("webkitgtk" ,webkitgtk)
6476 ("yelp-xsl" ,yelp-xsl)))
6477 (home-page "https://wiki.gnome.org/Apps/Yelp")
6478 (synopsis "GNOME help browser")
6479 (description
6480 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6481 man, info, and HTML documents. It can locate documents according to the
6482 freedesktop.org help system specification.")
6483 (license license:gpl2+)))
6484
6485 (define-public yelp-tools
6486 (package
6487 (name "yelp-tools")
6488 (version "3.32.2")
6489 (source (origin
6490 (method url-fetch)
6491 (uri (string-append "mirror://gnome/sources/" name "/"
6492 (version-major+minor version) "/"
6493 name "-" version ".tar.xz"))
6494 (sha256
6495 (base32
6496 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6497 (build-system gnu-build-system)
6498 (native-inputs
6499 `(("pkg-config" ,pkg-config)))
6500 (propagated-inputs
6501 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6502 `(("itstool" ,itstool)
6503 ("xmllint" ,libxml2)
6504 ("xsltproc" ,libxslt)))
6505 (inputs
6506 `(("yelp-xsl" ,yelp-xsl)))
6507 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6508 (synopsis "Yelp documentation tools")
6509 (description
6510 "Yelp-tools is a collection of scripts and build utilities to help create,
6511 manage, and publish documentation for Yelp and the web. Most of the heavy
6512 lifting is done by packages like yelp-xsl and itstool. This package just
6513 wraps things up in a developer-friendly way.")
6514 (license license:gpl2+)))
6515
6516 (define-public libgee
6517 (package
6518 (name "libgee")
6519 (version "0.20.3")
6520 (source (origin
6521 (method url-fetch)
6522 (uri (string-append "mirror://gnome/sources/libgee/"
6523 (version-major+minor version) "/"
6524 "libgee-" version ".tar.xz"))
6525 (sha256
6526 (base32
6527 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6528 (build-system gnu-build-system)
6529 (arguments
6530 `(#:phases
6531 (modify-phases %standard-phases
6532 (add-after 'unpack 'fix-introspection-install-dir
6533 (lambda* (#:key outputs #:allow-other-keys)
6534 (let ((out (assoc-ref outputs "out")))
6535 (substitute* "gee/Makefile.in"
6536 (("@INTROSPECTION_GIRDIR@")
6537 (string-append out "/share/gir-1.0/"))
6538 (("@INTROSPECTION_TYPELIBDIR@")
6539 (string-append out "/lib/girepository-1.0/")))))))))
6540 (native-inputs
6541 `(("glib" ,glib "bin")
6542 ("pkg-config" ,pkg-config)))
6543 (inputs
6544 `(("glib" ,glib)
6545 ("gobject-introspection" ,gobject-introspection)))
6546 (home-page "https://wiki.gnome.org/Projects/Libgee")
6547 (synopsis "GObject collection library")
6548 (description
6549 "Libgee is a utility library providing GObject-based interfaces and
6550 classes for commonly used data structures.")
6551 (license license:lgpl2.1+)))
6552
6553 (define-public gexiv2
6554 (package
6555 (name "gexiv2")
6556 (version "0.12.1")
6557 (source (origin
6558 (method url-fetch)
6559 (uri (string-append "mirror://gnome/sources/" name "/"
6560 (version-major+minor version) "/"
6561 name "-" version ".tar.xz"))
6562 (sha256
6563 (base32
6564 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
6565 (build-system meson-build-system)
6566 (native-inputs
6567 `(("gcr" ,gcr)
6568 ("glib" ,glib "bin")
6569 ("pkg-config" ,pkg-config)
6570 ("vala" ,vala)))
6571 (propagated-inputs
6572 ;; Listed in "Requires" section of gexiv2.pc
6573 `(("exiv2" ,exiv2)))
6574 (inputs
6575 `(("glib" ,glib)
6576 ("gobject-introspection" ,gobject-introspection)))
6577 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6578 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6579 (description
6580 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6581 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6582 metadata in photo and video files of various formats.")
6583 (license license:gpl2+)))
6584
6585 (define-public shotwell
6586 (package
6587 (name "shotwell")
6588 (version "0.30.9")
6589 (source (origin
6590 (method url-fetch)
6591 (uri (string-append "mirror://gnome/sources/shotwell/"
6592 (version-major+minor version) "/"
6593 "shotwell-" version ".tar.xz"))
6594 (sha256
6595 (base32
6596 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
6597 (build-system meson-build-system)
6598 (arguments
6599 '(#:glib-or-gtk? #t
6600 #:phases
6601 (modify-phases %standard-phases
6602 (add-after 'unpack 'skip-gtk-update-icon-cache
6603 (lambda _
6604 (substitute* "build-aux/meson/postinstall.py"
6605 (("gtk-update-icon-cache") (which "true"))
6606 (("update-desktop-database") (which "true")))
6607 #t)))))
6608 (propagated-inputs
6609 `(("dconf" ,dconf)))
6610 (native-inputs
6611 `(("gettext" ,gettext-minimal)
6612 ("glib:bin" ,glib "bin")
6613 ("itstool" ,itstool)
6614 ("pkg-config" ,pkg-config)
6615 ("vala" ,vala)))
6616 (inputs
6617 `(("gcr" ,gcr)
6618 ("gexiv2" ,gexiv2)
6619 ("gst-plugins-base" ,gst-plugins-base)
6620 ("gstreamer" ,gstreamer)
6621 ("json-glib" ,json-glib)
6622 ("libgdata" ,libgdata)
6623 ("libgee" ,libgee)
6624 ("libgphoto2" ,libgphoto2)
6625 ("libgudev" ,libgudev)
6626 ("libraw" ,libraw)
6627 ("libsoup" ,libsoup)
6628 ("libxml2" ,libxml2)
6629 ("sqlite" ,sqlite)
6630 ("webkitgtk" ,webkitgtk)))
6631 (home-page "https://wiki.gnome.org/Apps/Shotwell")
6632 (synopsis "Photo manager for GNOME 3")
6633 (description
6634 "Shotwell is a digital photo manager designed for the GNOME desktop
6635 environment. It allows you to import photos from disk or camera, organize
6636 them by keywords and events, view them in full-window or fullscreen mode, and
6637 share them with others via social networking and more.")
6638 (license license:lgpl2.1+)))
6639
6640 (define-public file-roller
6641 (package
6642 (name "file-roller")
6643 (version "3.32.3")
6644 (source (origin
6645 (method url-fetch)
6646 (uri (string-append "mirror://gnome/sources/file-roller/"
6647 (version-major+minor version) "/"
6648 "file-roller-" version ".tar.xz"))
6649 (sha256
6650 (base32
6651 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
6652 (build-system meson-build-system)
6653 (native-inputs
6654 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6655 ("intltool" ,intltool)
6656 ("itstool" ,itstool)
6657 ("pkg-config" ,pkg-config)
6658 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6659 ("glib:bin" ,glib "bin")))
6660 ;; TODO: Add libnautilus.
6661 (inputs
6662 `(("gtk+" ,gtk+)
6663 ("gdk-pixbuf" ,gdk-pixbuf)
6664 ("json-glib" ,json-glib)
6665 ("libarchive" ,libarchive)
6666 ("libnotify" ,libnotify)
6667 ("nettle" ,nettle)
6668 ("libxml2" ,libxml2)))
6669 (synopsis "Graphical archive manager for GNOME")
6670 (description "File Roller is an archive manager for the GNOME desktop
6671 environment that allows users to view, unpack, and create compressed archives
6672 such as gzip tarballs.")
6673 (home-page "http://fileroller.sourceforge.net/")
6674 (license license:gpl2+)))
6675
6676 (define-public gnome-session
6677 (package
6678 (name "gnome-session")
6679 (version "3.34.2")
6680 (source (origin
6681 (method url-fetch)
6682 (uri (string-append "mirror://gnome/sources/" name "/"
6683 (version-major+minor version) "/"
6684 name "-" version ".tar.xz"))
6685 (sha256
6686 (base32
6687 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
6688 (arguments
6689 '(#:glib-or-gtk? #t
6690 #:phases
6691 (modify-phases %standard-phases
6692 (add-before 'configure 'pre-configure
6693 (lambda* (#:key outputs #:allow-other-keys)
6694 ;; Use elogind instead of systemd.
6695 (substitute* "meson.build"
6696 (("libsystemd-login") "libelogind")
6697 (("and libsystemd_daemon_dep.found.*") ","))
6698 (substitute* "gnome-session/gsm-systemd.c"
6699 (("#include <systemd/sd-login.h>")
6700 "#include <elogind/sd-login.h>"))
6701 ;; Remove uses of the systemd daemon.
6702 (substitute* "gnome-session/gsm-autostart-app.c"
6703 (("#ifdef HAVE_SYSTEMD") "#if 0"))
6704 #t))
6705 (add-after 'install 'wrap-gnome-session
6706 (lambda* (#:key inputs outputs #:allow-other-keys)
6707 ;; Make sure 'gnome-session' finds the 'gsettings' program.
6708 (let ((glib (assoc-ref inputs "glib:bin"))
6709 (out (assoc-ref outputs "out")))
6710 (wrap-program (string-append out "/bin/gnome-session")
6711 `("PATH" ":" prefix (,(string-append glib "/bin"))))
6712 #t))))
6713
6714 #:configure-flags
6715 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
6716 "-Dman=false" ; FIXME: disabled because of docbook validation error
6717 "-Dsystemd_journal=false")))
6718 (build-system meson-build-system)
6719 (native-inputs
6720 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6721 ("pkg-config" ,pkg-config)
6722 ("intltool" ,intltool)
6723 ("xsltproc" ,libxslt)
6724 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
6725 ("docbook-xsl" ,docbook-xsl)
6726 ("docbook-xml" ,docbook-xml)
6727 ("xmlto" ,xmlto)))
6728 (inputs
6729 `(("elogind" ,elogind)
6730 ("gnome-desktop" ,gnome-desktop)
6731 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6732 ("gtk+" ,gtk+)
6733 ("json-glib" ,json-glib)
6734 ("libsm" ,libsm)
6735 ("libxcomposite" ,libxcomposite)
6736 ("libxtst" ,libxtst)
6737 ("mesa" ,mesa)
6738 ("upower" ,upower)
6739 ("xtrans" ,xtrans)))
6740 (synopsis "Session manager for GNOME")
6741 (description
6742 "This package contains the GNOME session manager, as well as a
6743 configuration program to choose applications starting on login.")
6744 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
6745 (license license:gpl2+)))
6746
6747 (define-public gjs
6748 (package
6749 (name "gjs")
6750 (version "1.58.3")
6751 (source (origin
6752 (method url-fetch)
6753 (uri (string-append "mirror://gnome/sources/" name "/"
6754 (version-major+minor version) "/"
6755 name "-" version ".tar.xz"))
6756 (sha256
6757 (base32
6758 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
6759 (build-system gnu-build-system)
6760 (arguments
6761 '(#:phases
6762 (modify-phases %standard-phases
6763 (add-before
6764 'check 'pre-check
6765 (lambda _
6766 ;; The test suite requires a running X server.
6767 (system "Xvfb :1 &")
6768 (setenv "DISPLAY" ":1")
6769
6770 ;; For the missing /etc/machine-id.
6771 (setenv "DBUS_FATAL_WARNINGS" "0")
6772
6773 ;; Our mozjs-38 package does not compile the required Intl API
6774 ;; support for these failing tests.
6775 (substitute* "installed-tests/js/testLocale.js"
6776 ((".*toBeDefined.*") "")
6777 ((".*expect\\(datestr\\).*") ""))
6778 (substitute* "installed-tests/scripts/testCommandLine.sh"
6779 (("Valentín") "")
6780 (("☭") ""))
6781 #t)))))
6782 (native-inputs
6783 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
6784 ("pkg-config" ,pkg-config)
6785 ("xmllint" ,libxml2)
6786 ;; For testing
6787 ("dbus-launch" ,dbus)
6788 ("dconf" ,dconf) ; required to properly store settings
6789 ("uuidgen" ,util-linux)
6790 ("xvfb" ,xorg-server-for-tests)))
6791 (propagated-inputs
6792 ;; These are all in the Requires.private field of gjs-1.0.pc.
6793 `(("cairo" ,cairo)
6794 ("gobject-introspection" ,gobject-introspection)
6795 ("mozjs" ,mozjs-60)))
6796 (inputs
6797 `(("gtk+" ,gtk+)
6798 ("readline" ,readline)))
6799 (synopsis "Javascript bindings for GNOME")
6800 (home-page "https://live.gnome.org/Gjs")
6801 (description
6802 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6803 javascript engine and the GObject introspection framework.")
6804 (license license:gpl2+)))
6805
6806 (define-public gedit
6807 (package
6808 (name "gedit")
6809 (version "3.34.1")
6810 (source (origin
6811 (method url-fetch)
6812 (uri (string-append "mirror://gnome/sources/" name "/"
6813 (version-major+minor version) "/"
6814 name "-" version ".tar.xz"))
6815 (sha256
6816 (base32
6817 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
6818 (build-system meson-build-system)
6819 (arguments
6820 `(#:glib-or-gtk? #t
6821 #:configure-flags
6822 ;; Otherwise, the RUNPATH will lack the final path component.
6823 (list (string-append "-Dc_link_args=-Wl,-rpath="
6824 (assoc-ref %outputs "out") "/lib/gedit"))
6825
6826 ;; XXX: Generated .h files are sometimes used before being built.
6827 #:parallel-build? #f
6828
6829 #:phases
6830 (modify-phases %standard-phases
6831 (add-after 'unpack 'skip-gtk-update-icon-cache
6832 ;; Don't create 'icon-theme.cache'.
6833 (lambda _
6834 (substitute* "build-aux/meson/post_install.py"
6835 (("gtk-update-icon-cache") (which "true")))
6836 #t))
6837 (add-after 'unpack 'patch-libgd-fetch
6838 (lambda* (#:key inputs #:allow-other-keys)
6839 (let ((libgd (assoc-ref inputs "libgd")))
6840 ;; Calling git is unnecessary because libgd is fetched as a
6841 ;; native input to this package.
6842 (substitute* "meson.build"
6843 ((".*git.*") ""))
6844 (copy-recursively libgd "subprojects/libgd")
6845 #t)))
6846 (add-after 'install 'wrap-gedit
6847 (lambda* (#:key inputs outputs #:allow-other-keys)
6848 (let ((out (assoc-ref outputs "out"))
6849 (gtksourceview (assoc-ref inputs "gtksourceview"))
6850 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6851 (python-path (getenv "PYTHONPATH")))
6852 (wrap-program (string-append out "/bin/gedit")
6853 ;; For plugins.
6854 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6855 `("PYTHONPATH" ":" prefix (,python-path))
6856 ;; For language-specs.
6857 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6858 "/share")))))
6859 #t)))))
6860 (propagated-inputs
6861 `(("dconf" ,dconf)))
6862 (native-inputs
6863 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6864 ("intltool" ,intltool)
6865 ("itstool" ,itstool)
6866 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6867 ("gobject-introspection" ,gobject-introspection)
6868 ("libgd"
6869 ,(origin
6870 (method git-fetch)
6871 (uri (git-reference
6872 (url "https://gitlab.gnome.org/GNOME/libgd")
6873 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6874 (file-name (git-file-name "libgd" version))
6875 (sha256
6876 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6877 ("pkg-config" ,pkg-config)))
6878 (inputs
6879 `(("glib" ,glib)
6880 ("gspell" ,gspell)
6881 ("gtk+" ,gtk+)
6882 ("gtksourceview" ,gtksourceview)
6883 ("libpeas" ,libpeas)
6884 ("libxml2" ,libxml2)
6885 ("iso-codes" ,iso-codes)
6886 ("python-pygobject" ,python-pygobject)
6887 ("python" ,python)
6888 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6889 ("libx11" ,libx11)
6890 ("vala" ,vala)
6891 ("adwaita-icon-theme" ,adwaita-icon-theme)
6892 ("libsoup" ,libsoup)
6893 ("gnome-desktop" ,gnome-desktop)))
6894 (home-page "https://wiki.gnome.org/Apps/Gedit")
6895 (synopsis "GNOME text editor")
6896 (description "While aiming at simplicity and ease of use, gedit is a
6897 powerful general purpose text editor.")
6898 (license license:gpl2+)))
6899
6900 (define-public zenity
6901 (package
6902 (name "zenity")
6903 (version "3.32.0")
6904 (source (origin
6905 (method url-fetch)
6906 (uri (string-append "mirror://gnome/sources/zenity/"
6907 (version-major+minor version) "/"
6908 "zenity-" version ".tar.xz"))
6909 (sha256
6910 (base32
6911 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6912 (build-system gnu-build-system)
6913 (native-inputs
6914 `(("gettext" ,gettext-minimal)
6915 ("itstool" ,itstool)
6916 ("pkg-config" ,pkg-config)))
6917 (inputs
6918 `(("libnotify" ,libnotify)
6919 ("webkitgtk" ,webkitgtk)))
6920 (synopsis "Display graphical dialog boxes from shell scripts")
6921 (home-page "https://www.gnome.org")
6922 (description
6923 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6924 to display dialog boxes from the commandline and shell scripts.")
6925 (license license:lgpl2.0+)))
6926
6927 (define-public mutter
6928 (package
6929 (name "mutter")
6930 (version "3.34.2")
6931 (source (origin
6932 (method url-fetch)
6933 (uri (string-append "mirror://gnome/sources/" name "/"
6934 (version-major+minor version) "/"
6935 name "-" version ".tar.xz"))
6936 (sha256
6937 (base32
6938 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
6939 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6940 ;; versions of cogl and clutter. As a result, many of the inputs,
6941 ;; propagated-inputs, and configure flags used in cogl and clutter are
6942 ;; needed here as well.
6943 (build-system meson-build-system)
6944 (arguments
6945 '(;; XXX: All mutter tests fail with the following error:
6946 ;; Settings schema 'org.gnome.mutter' is not installed
6947 #:tests? #f
6948 #:glib-or-gtk? #t
6949 #:configure-flags
6950 ;; TODO: Enable profiler when Sysprof is packaged.
6951 (list "-Dprofiler=false"
6952 ;; Otherwise, the RUNPATH will lack the final path component.
6953 (string-append "-Dc_link_args=-Wl,-rpath="
6954 (assoc-ref %outputs "out") "/lib:"
6955 (assoc-ref %outputs "out") "/lib/mutter-5")
6956
6957 ;; The following flags are needed for the bundled clutter
6958 (string-append "-Dxwayland_path="
6959 (assoc-ref %build-inputs "xorg-server-xwayland")
6960 "/bin/Xwayland")
6961
6962 ;; the remaining flags are needed for the bundled cogl
6963 (string-append "-Dopengl_libname="
6964 (assoc-ref %build-inputs "mesa")
6965 "/lib/libGL.so"))
6966 #:phases (modify-phases %standard-phases
6967 (add-after 'unpack 'fix-build-with-mesa-20
6968 (lambda _
6969 ;; Mimic upstream commit a444a4c5f58ea516ad for
6970 ;; compatibility with Mesa 20. Remove for 3.36.
6971 (substitute* '("src/backends/meta-egl-ext.h"
6972 "src/backends/meta-egl.c"
6973 "src/backends/meta-egl.h")
6974 (("#include <EGL/eglext\\.h>" all)
6975 (string-append all "\n#include <EGL/eglmesaext.h>")))
6976 (substitute* "cogl/cogl/meson.build"
6977 (("#include <EGL/eglext\\.h>" all)
6978 (string-append all "\\n#include <EGL/eglmesaext.h>")))
6979 #t)))))
6980 (native-inputs
6981 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6982 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6983 ("gobject-introspection" ,gobject-introspection)
6984 ("intltool" ,intltool)
6985 ("pkg-config" ,pkg-config)
6986 ("xorg-server" ,xorg-server-for-tests)
6987 ;; For git build
6988 ("autoconf" ,autoconf)
6989 ("automake" ,automake)
6990 ("libtool" ,libtool)))
6991 (propagated-inputs
6992 `(;; libmutter.pc refers to these:
6993 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6994 ("gtk+" ,gtk+)
6995 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6996 ("atk" ,atk)
6997 ("cairo" ,cairo)
6998 ("gdk-pixbuf" ,gdk-pixbuf)
6999 ("glib" ,glib)
7000 ("json-glib" ,json-glib)
7001 ("libinput" ,libinput)
7002 ("libx11" ,libx11)
7003 ("libxcomposite" ,libxcomposite)
7004 ("libxdamage" ,libxdamage)
7005 ("libxext" ,libxext)
7006 ("libxfixes" ,libxfixes)
7007 ("libxkbcommon" ,libxkbcommon)
7008 ("libxrandr" ,libxrandr)
7009 ("mesa" ,mesa)
7010 ("pango" ,pango)
7011 ("udev" ,eudev)
7012 ("xinput" ,xinput)))
7013 (inputs
7014 `(("elogind" ,elogind)
7015 ("gnome-desktop" ,gnome-desktop)
7016 ("gnome-settings-daemon" ,gnome-settings-daemon)
7017 ("libcanberra-gtk" ,libcanberra)
7018 ("libgudev" ,libgudev)
7019 ("libice" ,libice)
7020 ("libsm" ,libsm)
7021 ("libwacom" ,libwacom)
7022 ("libxkbfile" ,libxkbfile)
7023 ("libxrandr" ,libxrandr)
7024 ("libxtst" ,libxtst)
7025 ("pipewire" ,pipewire)
7026 ("startup-notification" ,startup-notification)
7027 ("upower-glib" ,upower)
7028 ("xkeyboard-config" ,xkeyboard-config)
7029 ("xorg-server-xwayland" ,xorg-server-xwayland)
7030 ("zenity" ,zenity)))
7031 (synopsis "Window and compositing manager")
7032 (home-page "https://www.gnome.org")
7033 (description
7034 "Mutter is a window and compositing manager that displays and manages your
7035 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7036 Clutter toolkit with solid window-management logic inherited from the Metacity
7037 window manager.")
7038 (license license:gpl2+)))
7039
7040 (define-public gnome-online-accounts
7041 (package
7042 (name "gnome-online-accounts")
7043 (version "3.36.0")
7044 (source (origin
7045 (method url-fetch)
7046 (uri (string-append "mirror://gnome/sources/" name "/"
7047 (version-major+minor version) "/"
7048 name "-" version ".tar.xz"))
7049 (sha256
7050 (base32
7051 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7052 (outputs '("out" "lib"))
7053 (build-system glib-or-gtk-build-system)
7054 (arguments
7055 `(#:configure-flags
7056 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7057 #:phases
7058 (modify-phases %standard-phases
7059 (add-before 'configure 'patch-libgoa-output
7060 (lambda* (#:key outputs #:allow-other-keys)
7061 (let ((lib (assoc-ref outputs "lib")))
7062 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7063 (("@prefix@") lib)
7064 (("@exec_prefix@") lib)
7065 (("@libdir@") (string-append lib "/lib"))
7066 (("@includedir@") (string-append lib "/include"))
7067 (("@datadir@") (string-append lib "/share")))
7068 ;; Make sure gobject-introspection knows about the output
7069 ;; too (see <https://bugs.gnu.org/36535>).
7070 (setenv "outputs" "out lib")
7071 #t))))))
7072 (native-inputs
7073 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7074 ("gobject-introspection" ,gobject-introspection)
7075 ("intltool" ,intltool)
7076 ("pkg-config" ,pkg-config)
7077 ("vala" ,vala)
7078 ("xsltproc" ,libxslt)))
7079 (propagated-inputs
7080 `(("glib" ,glib) ; required by goa-1.0.pc
7081 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7082 (inputs
7083 `(("docbook-xsl" ,docbook-xsl)
7084 ("json-glib" ,json-glib)
7085 ("libsecret" ,libsecret)
7086 ("rest" ,rest)
7087 ("webkitgtk" ,webkitgtk)))
7088 (synopsis "Single sign-on framework for GNOME")
7089 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7090 (description
7091 "GNOME Online Accounts provides interfaces so that applications and
7092 libraries in GNOME can access the user's online accounts. It has providers for
7093 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7094 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7095 (license license:lgpl2.0+)))
7096
7097 (define-public evolution-data-server
7098 (package
7099 (name "evolution-data-server")
7100 (version "3.34.2")
7101 (source (origin
7102 (method url-fetch)
7103 (uri (string-append "mirror://gnome/sources/" name "/"
7104 (version-major+minor version) "/"
7105 name "-" version ".tar.xz"))
7106 (patches (search-patches "evolution-data-server-locales.patch"
7107 "evolution-data-server-libical-compat.patch"))
7108 (sha256
7109 (base32
7110 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7111 (build-system cmake-build-system)
7112 (arguments
7113 '(#:configure-flags
7114 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7115 (runpaths (map (lambda (s)
7116 (string-append lib "/evolution-data-server/" s))
7117 '("addressbook-backends" "calendar-backends"
7118 "camel-providers" "credential-modules"
7119 "registry-modules"))))
7120 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7121 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7122 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7123 "-DENABLE_VALA_BINDINGS=ON"
7124 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7125 (string-append lib "/evolution-data-server;")
7126 (string-join runpaths ";"))
7127 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7128 #:phases
7129 (modify-phases %standard-phases
7130 (add-after 'unpack 'disable-failing-tests
7131 (lambda _
7132 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7133 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7134 (delete-file-recursively "tests/book-migration")
7135 (substitute* "tests/CMakeLists.txt"
7136 (("add_subdirectory\\(book-migration\\)") ""))
7137 #t))
7138 (add-after 'unpack 'patch-paths
7139 (lambda _
7140 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7141 "tests/libedata-book/data-test-utils.c"
7142 "tests/libedata-book/test-book-cache-utils.c"
7143 "tests/libedata-cal/test-cal-cache-utils.c")
7144 (("/bin/rm") (which "rm")))
7145 #t))
7146 (add-before 'configure 'dont-override-rpath
7147 (lambda _
7148 (substitute* "CMakeLists.txt"
7149 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7150 ;; Remove it so the configure flag is respected.
7151 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7152 #t)))))
7153 (native-inputs
7154 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7155 ("gobject-introspection" ,gobject-introspection)
7156 ("gperf" ,gperf)
7157 ("intltool" ,intltool)
7158 ("pkg-config" ,pkg-config)
7159 ("vala" ,vala)
7160 ("python" ,python-wrapper)))
7161 (propagated-inputs
7162 ;; These are all in the Requires field of .pc files.
7163 `(("gtk+" ,gtk+)
7164 ("libical" ,libical)
7165 ("libsecret" ,libsecret)
7166 ("libsoup" ,libsoup)
7167 ("nss" ,nss)
7168 ("sqlite" ,sqlite)))
7169 (inputs
7170 `(("bdb" ,bdb)
7171 ("gcr" ,gcr)
7172 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7173 ("json-glib" ,json-glib)
7174 ("libcanberra" ,libcanberra)
7175 ("libgweather" ,libgweather)
7176 ("mit-krb5" ,mit-krb5)
7177 ("openldap" ,openldap)
7178 ("webkitgtk" ,webkitgtk)))
7179 (synopsis "Store address books and calendars")
7180 (home-page "https://wiki.gnome.org/Apps/Evolution")
7181 (description
7182 "This package provides a unified backend for programs that work with
7183 contacts, tasks, and calendar information. It was originally developed for
7184 Evolution (hence the name), but is now used by other packages as well.")
7185 (license license:lgpl2.0)))
7186
7187 (define-public caribou
7188 (package
7189 (name "caribou")
7190 (version "0.4.21")
7191 (source (origin
7192 (method url-fetch)
7193 (uri (string-append "mirror://gnome/sources/" name "/"
7194 (version-major+minor version) "/"
7195 name "-" version ".tar.xz"))
7196 (sha256
7197 (base32
7198 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7199 (build-system glib-or-gtk-build-system)
7200 (arguments
7201 '(#:phases
7202 (modify-phases %standard-phases
7203 (add-before
7204 'build 'pre-build
7205 (lambda* (#:key outputs #:allow-other-keys)
7206 (let ((out (assoc-ref outputs "out")))
7207 ;; Use absolute shared library path in Caribou-1.0.typelib.
7208 (substitute* "libcaribou/Makefile"
7209 (("--shared-library=libcaribou.so")
7210 (string-append "--shared-library="
7211 out "/lib/libcaribou.so")))
7212 #t)))
7213 (add-after 'install 'wrap-programs
7214 (lambda* (#:key outputs #:allow-other-keys)
7215 (let* ((out (assoc-ref outputs "out"))
7216 (python-path (getenv "PYTHONPATH"))
7217 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7218 (for-each
7219 (lambda (prog)
7220 (wrap-program prog
7221 `("PYTHONPATH" ":" prefix (,python-path))
7222 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7223 (list (string-append out "/bin/caribou-preferences")
7224 (string-append out "/libexec/antler-keyboard"))))
7225 #t)))))
7226 (native-inputs
7227 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7228 ("gobject-introspection" ,gobject-introspection)
7229 ("intltool" ,intltool)
7230 ("pkg-config" ,pkg-config)
7231 ("python" ,python)
7232 ("vala" ,vala)
7233 ("xsltproc" ,libxslt)))
7234 (propagated-inputs
7235 ;; caribou-1.0.pc refers to all these.
7236 `(("libgee" ,libgee)
7237 ("libxklavier" ,libxklavier)
7238 ("libxtst" ,libxtst)
7239 ("gtk+" ,gtk+)))
7240 (inputs
7241 `(("clutter" ,clutter)
7242 ("dconf" ,dconf)
7243 ("gtk+-2" ,gtk+-2)
7244 ("python-pygobject" ,python-pygobject)))
7245 (synopsis "Text entry and UI navigation application")
7246 (home-page "https://wiki.gnome.org/Projects/Caribou")
7247 (description
7248 "Caribou is an input assistive technology intended for switch and pointer
7249 users.")
7250 (license license:lgpl2.1)))
7251
7252 (define-public network-manager
7253 (package
7254 (name "network-manager")
7255 (version "1.24.0")
7256 (source (origin
7257 (method url-fetch)
7258 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7259 (version-major+minor version) "/"
7260 "NetworkManager-" version ".tar.xz"))
7261 (patches (search-patches "network-manager-plugin-path.patch"))
7262 (sha256
7263 (base32
7264 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7265 (modules '((guix build utils)))
7266 (snippet
7267 '(begin
7268 (substitute* "src/devices/wwan/nm-modem-manager.c"
7269 (("systemd") "elogind"))
7270 #t))))
7271 (build-system meson-build-system)
7272 (outputs '("out"
7273 "doc")) ; 8 MiB of gtk-doc HTML
7274 (arguments
7275 `(#:configure-flags
7276 (let ((out (assoc-ref %outputs "out"))
7277 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7278 "/sbin/dhclient")))
7279 (list
7280 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7281 ;; component.
7282 (string-append "-Dc_link_args=-Wl,-rpath="
7283 out "/lib:"
7284 out "/lib/NetworkManager/" ,version)
7285 "-Dsystemd_journal=false"
7286 "-Dsession_tracking=elogind"
7287 "-Dsuspend_resume=elogind"
7288 "-Dsystemdsystemunitdir=no"
7289 "-Dsession_tracking_consolekit=false"
7290 "-Ddhcpcd=no"
7291 "-Ddhcpcanon=no"
7292 "-Dcrypto=gnutls"
7293 "-Diwd=true"
7294 "-Dlibaudit=yes"
7295 "-Dqt=false"
7296 "-Ddocs=true"
7297 "--sysconfdir=/etc"
7298 "--localstatedir=/var"
7299 (string-append "-Dudev_dir="
7300 out "/lib/udev")
7301 (string-append "-Ddbus_conf_dir="
7302 out "/etc/dbus-1/system.d")
7303
7304 (string-append "-Ddhclient=" dhclient)))
7305 #:phases
7306 (modify-phases %standard-phases
7307 (add-before 'configure 'pre-configure
7308 (lambda _
7309 ;; These tests try to test aspects of network-manager's
7310 ;; functionality within restricted containers, but they don't
7311 ;; cope with being already in the Guix build jail as that jail
7312 ;; lacks some features that they would like to proxy over (like
7313 ;; a /sys mount).
7314 (substitute* "src/platform/tests/meson.build"
7315 ((".*test-address-linux.*") "")
7316 ((".*test-cleanup-linux.*") "")
7317 ((".*test-link-linux.*") "")
7318 ((".*test-route-linux.*") ""))
7319 (substitute* "src/devices/tests/meson.build"
7320 ((".*test-acd.*") "")
7321 ((".*test-lldp.*") ""))
7322 #t))
7323 (add-after 'unpack 'patch-docbook-xml
7324 (lambda* (#:key inputs #:allow-other-keys)
7325 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7326 "/xml/dtd/docbook")))
7327 (substitute* (find-files "." ".*\\.(xsl|xml)")
7328 (("http://.*/docbookx\\.dtd")
7329 (string-append xmldoc "/docbookx.dtd")))
7330 #t)))
7331 (add-before 'check 'pre-check
7332 (lambda _
7333 ;; For the missing /etc/machine-id.
7334 (setenv "DBUS_FATAL_WARNINGS" "0")
7335 #t))
7336 (add-before 'install 'no-polkit-magic
7337 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7338 (lambda _
7339 (setenv "PKEXEC_UID" "something")
7340 #t))
7341 (add-after 'install 'move-doc
7342 (lambda* (#:key outputs #:allow-other-keys)
7343 (let ((out (assoc-ref outputs "out"))
7344 (doc (assoc-ref outputs "doc")))
7345 (mkdir-p (string-append doc "/share"))
7346 (for-each (lambda (directory)
7347 (copy-recursively (string-append out directory)
7348 (string-append doc directory))
7349 (delete-file-recursively
7350 (string-append out directory)))
7351 '("/share/doc" "/share/gtk-doc"))
7352 #t))))))
7353 (propagated-inputs
7354 `(("glib" ,glib)))
7355 (native-inputs
7356 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7357 ("gtk-doc" ,gtk-doc)
7358 ("gobject-introspection" ,gobject-introspection)
7359 ("docbook-xml" ,docbook-xml)
7360 ("docbook-xsl" ,docbook-xsl)
7361 ("intltool" ,intltool)
7362 ("libxslt" ,libxslt)
7363 ("libxml2" ,libxml2)
7364 ("pkg-config" ,pkg-config)
7365 ("vala" ,vala)
7366 ;; For testing.
7367 ("python" ,python-wrapper)
7368 ("python-dbus" ,python-dbus)
7369 ("python-pygobject" ,python-pygobject)))
7370 (inputs
7371 `(("curl" ,curl)
7372 ("cyrus-sasl" ,cyrus-sasl)
7373 ("dbus-glib" ,dbus-glib)
7374 ("dnsmasq" ,dnsmasq)
7375 ("eudev" ,eudev)
7376 ("gnutls" ,gnutls)
7377 ("iptables" ,iptables)
7378 ("isc-dhcp" ,isc-dhcp)
7379 ("iwd" ,iwd) ; wpa_supplicant alternative
7380 ("jansson" ,jansson)
7381 ("libaudit" ,audit)
7382 ("libgcrypt" ,libgcrypt)
7383 ("libgudev" ,libgudev)
7384 ("libndp" ,libndp)
7385 ("libnl" ,libnl)
7386 ("libsoup" ,libsoup)
7387 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7388 ("modem-manager" ,modem-manager)
7389 ("newt" ,newt) ;for the 'nmtui' console interface
7390 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7391 ("polkit" ,polkit)
7392 ("ppp" ,ppp)
7393 ("readline" ,readline)
7394 ("util-linux" ,util-linux)
7395 ("elogind" ,elogind)))
7396 (synopsis "Network connection manager")
7397 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7398 (description
7399 "NetworkManager is a system network service that manages your network
7400 devices and connections, attempting to keep active network connectivity when
7401 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7402 devices, and provides VPN integration with a variety of different VPN
7403 services.")
7404 ;; “This NetworkManager project consists of the daemon, client tools, and
7405 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7406 ;; GPL-2.0+.”
7407 (license (list license:gpl2+
7408 license:lgpl2.1+))
7409 (properties '((upstream-name . "NetworkManager")))))
7410
7411 (define-public network-manager-openvpn
7412 (package
7413 (name "network-manager-openvpn")
7414 (version "1.8.12")
7415 (source (origin
7416 (method url-fetch)
7417 (uri (string-append
7418 "mirror://gnome/sources/NetworkManager-openvpn/"
7419 (version-major+minor version)
7420 "/NetworkManager-openvpn-" version ".tar.xz"))
7421 (sha256
7422 (base32
7423 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7424 (build-system gnu-build-system)
7425 (arguments
7426 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7427 #:phases
7428 (modify-phases %standard-phases
7429 (add-after 'configure 'patch-path
7430 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7431 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7432 "/sbin/openvpn"))
7433 (modprobe (string-append (assoc-ref inputs "kmod")
7434 "/bin/modprobe"))
7435 (pretty-ovpn (string-append "\"" ovpn "\"")))
7436 (for-each
7437 (lambda (file)
7438 (substitute* file
7439 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7440 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7441 (("\"/sbin/openvpn\"") pretty-ovpn)
7442 (("/sbin/modprobe") modprobe)))
7443 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7444 #t)))))
7445 (native-inputs
7446 `(("pkg-config" ,pkg-config)
7447 ("intltool" ,intltool)))
7448 (inputs
7449 `(("gtk+" ,gtk+)
7450 ("kmod" ,kmod)
7451 ("openvpn" ,openvpn)
7452 ("network-manager" ,network-manager)
7453 ("libnma" ,libnma)
7454 ("libsecret" ,libsecret)))
7455 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7456 (synopsis "OpenVPN plug-in for NetworkManager")
7457 (description
7458 "This extension of NetworkManager allows it to take care of connections
7459 to virtual private networks (VPNs) via OpenVPN.")
7460 (license license:gpl2+)
7461 (properties `((upstream-name . "NetworkManager-openvpn")))))
7462
7463 (define-public network-manager-vpnc
7464 (package
7465 (name "network-manager-vpnc")
7466 (version "1.2.6")
7467 (source (origin
7468 (method url-fetch)
7469 (uri (string-append
7470 "mirror://gnome/sources/NetworkManager-vpnc/"
7471 (version-major+minor version)
7472 "/NetworkManager-vpnc-" version ".tar.xz"))
7473 (sha256
7474 (base32
7475 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7476 (build-system gnu-build-system)
7477 (arguments
7478 `(#:configure-flags '("--enable-absolute-paths"
7479 "--localstatedir=/var"
7480 ;; libnm-glib has been removed from network-manager
7481 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7482 "--with-libnm-glib=no")
7483 #:phases
7484 (modify-phases %standard-phases
7485 (add-after 'configure 'patch-path
7486 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7487 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7488 "/sbin/vpnc"))
7489 (modprobe (string-append (assoc-ref inputs "kmod")
7490 "/bin/modprobe"))
7491 (pretty-ovpn (string-append "\"" vpnc "\"")))
7492 (substitute* "src/nm-vpnc-service.c"
7493 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7494 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7495 (("\"/sbin/vpnc\"") pretty-ovpn)
7496 (("/sbin/modprobe") modprobe)))
7497 #t)))))
7498 (native-inputs
7499 `(("pkg-config" ,pkg-config)
7500 ("intltool" ,intltool)))
7501 (inputs
7502 `(("gtk+" ,gtk+)
7503 ("kmod" ,kmod)
7504 ("vpnc" ,vpnc)
7505 ("network-manager" ,network-manager)
7506 ("libnma" ,libnma)
7507 ("libsecret" ,libsecret)))
7508 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7509 (synopsis "VPNC plug-in for NetworkManager")
7510 (description
7511 "Support for configuring virtual private networks based on VPNC.
7512 Compatible with Cisco VPN concentrators configured to use IPsec.")
7513 (license license:gpl2+)
7514 (properties `((upstream-name . "NetworkManager-vpnc")))))
7515
7516 (define-public network-manager-openconnect
7517 (package
7518 (name "network-manager-openconnect")
7519 (version "1.2.6")
7520 (source (origin
7521 (method url-fetch)
7522 (uri (string-append
7523 "mirror://gnome/sources/NetworkManager-openconnect/"
7524 (version-major+minor version)
7525 "/NetworkManager-openconnect-" version ".tar.xz"))
7526 (sha256
7527 (base32
7528 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7529 (build-system gnu-build-system)
7530 (arguments
7531 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7532 #:phases
7533 (modify-phases %standard-phases
7534 (add-after 'configure 'patch-path
7535 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7536 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7537 "/sbin/openconnect"))
7538 (modprobe (string-append (assoc-ref inputs "kmod")
7539 "/bin/modprobe"))
7540 (pretty-ovpn (string-append "\"" openconnect "\"")))
7541 (substitute* "src/nm-openconnect-service.c"
7542 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7543 (("/sbin/modprobe") modprobe)))
7544 #t)))))
7545 (native-inputs
7546 `(("intltool" ,intltool)
7547 ("libnma" ,libnma)
7548 ("pkg-config" ,pkg-config)))
7549 (inputs
7550 `(("gcr" ,gcr)
7551 ("gtk+" ,gtk+)
7552 ("kmod" ,kmod)
7553 ("libsecret" ,libsecret)
7554 ("libxml2" ,libxml2)
7555 ("lz4" ,lz4)
7556 ("network-manager" ,network-manager)
7557 ("openconnect" ,openconnect)))
7558 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7559 (synopsis "OpenConnect plug-in for NetworkManager")
7560 (description
7561 "This extension of NetworkManager allows it to take care of connections
7562 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7563 Cisco's AnyConnect SSL VPN.")
7564 (license license:gpl2+)
7565 (properties `((upstream-name . "NetworkManager-openconnect")
7566
7567 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7568 ;; file refers to account "nm-openconnect". Specify it here
7569 ;; so that 'network-manager-service-type' creates it.
7570 (user-accounts . ("nm-openconnect"))))))
7571
7572 (define-public mobile-broadband-provider-info
7573 (package
7574 (name "mobile-broadband-provider-info")
7575 (version "20190116")
7576 (source (origin
7577 (method url-fetch)
7578 (uri (string-append
7579 "mirror://gnome/sources/"
7580 "mobile-broadband-provider-info/" version "/"
7581 "mobile-broadband-provider-info-" version ".tar.xz"))
7582 (sha256
7583 (base32
7584 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7585 (build-system gnu-build-system)
7586 (arguments
7587 `(#:tests? #f)) ; no tests
7588 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7589 (synopsis "Database of broadband connection configuration")
7590 (description "Database of broadband connection configuration.")
7591 (license license:public-domain)))
7592
7593 (define-public network-manager-applet
7594 (package
7595 (name "network-manager-applet")
7596 (version "1.16.0")
7597 (source (origin
7598 (method url-fetch)
7599 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7600 (version-major+minor version) "/"
7601 "network-manager-applet-" version ".tar.xz"))
7602 (sha256
7603 (base32
7604 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
7605 (build-system meson-build-system)
7606 (arguments
7607 '(#:glib-or-gtk? #t))
7608 (native-inputs
7609 `(("intltool" ,intltool)
7610 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
7611 ("gobject-introspection" ,gobject-introspection)
7612 ("gtk-doc" ,gtk-doc)
7613 ("pkg-config" ,pkg-config)))
7614 (propagated-inputs
7615 ;; libnm-gtk.pc refers to all these.
7616 `(("dbus-glib" ,dbus-glib)
7617 ("gtk+" ,gtk+)
7618 ("network-manager" ,network-manager)
7619 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7620 ("libnma" ,libnma)))
7621 (inputs
7622 `(("gcr" ,gcr)
7623 ("libgudev" ,libgudev)
7624 ("libnotify" ,libnotify)
7625 ("libsecret" ,libsecret)
7626 ("libselinux" ,libselinux)
7627 ("jansson" ,jansson) ; for team support
7628 ("modem-manager" ,modem-manager)))
7629 (synopsis "Applet for managing network connections")
7630 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7631 (description
7632 "This package contains a systray applet for NetworkManager. It displays
7633 the available networks and allows users to easily switch between them.")
7634 (license license:gpl2+)))
7635
7636 (define-public libxml++
7637 (package
7638 (name "libxml++")
7639 (version "3.0.1")
7640 (source (origin
7641 (method url-fetch)
7642 (uri (string-append "mirror://gnome/sources/" name "/"
7643 (version-major+minor version) "/"
7644 name "-" version ".tar.xz"))
7645 (sha256
7646 (base32
7647 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
7648 (build-system gnu-build-system)
7649 ;; libxml++-3.0.pc refers to all these.
7650 (propagated-inputs
7651 `(("libxml2" ,libxml2)
7652 ("glibmm" ,glibmm)))
7653 (native-inputs
7654 `(("perl" ,perl)
7655 ("pkg-config" ,pkg-config)))
7656 (home-page "http://libxmlplusplus.sourceforge.net/")
7657 (synopsis "C++ wrapper for XML parser library libxml2")
7658 (description
7659 "This package provides a C++ wrapper for the XML parser library
7660 libxml2.")
7661 (license license:lgpl2.1+)))
7662
7663 (define-public libxml++-2
7664 (package
7665 (inherit libxml++)
7666 (name "libxml++")
7667 (version "2.40.1")
7668 (source (origin
7669 (method url-fetch)
7670 (uri (string-append "mirror://gnome/sources/" name "/"
7671 (version-major+minor version) "/"
7672 name "-" version ".tar.xz"))
7673 (sha256
7674 (base32
7675 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
7676
7677 (define-public gdm
7678 (package
7679 (name "gdm")
7680 (version "3.34.1")
7681 (source (origin
7682 (method url-fetch)
7683 (uri (string-append "mirror://gnome/sources/" name "/"
7684 (version-major+minor version) "/"
7685 name "-" version ".tar.xz"))
7686 (sha256
7687 (base32
7688 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
7689 (patches (search-patches "gdm-default-session.patch"))))
7690 (build-system glib-or-gtk-build-system)
7691 (arguments
7692 '(#:configure-flags
7693 `("--without-plymouth"
7694 "--disable-systemd-journal"
7695
7696 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
7697 ;; instead of having to replace it (i.e., stopping the mingetty
7698 ;; service for TTY 1 before starting GDM).
7699 "--with-initial-vt=7"
7700
7701 ;; Use '/etc/environment' for locale settings instead of the
7702 ;; systemd-specific '/etc/locale.conf'.
7703 "--with-lang-file=/etc/environment"
7704
7705 ,(string-append "--with-udevdir="
7706 (assoc-ref %outputs "out") "/lib/udev")
7707
7708 "--localstatedir=/var"
7709 ,(string-append "--with-default-path="
7710 (string-join '("/run/setuid-programs"
7711 "/run/current-system/profile/bin"
7712 "/run/current-system/profile/sbin")
7713 ":"))
7714 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
7715 ;; XDG_DATA_DIRS so that it finds its schemas.
7716 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
7717 #:phases
7718 (modify-phases %standard-phases
7719 (add-before
7720 'configure 'pre-configure
7721 (lambda* (#:key inputs outputs #:allow-other-keys)
7722 ;; We don't have <systemd/sd-daemon.h>.
7723 (substitute* '("common/gdm-log.c"
7724 "daemon/gdm-server.c"
7725 "daemon/gdm-session-worker.c"
7726 "daemon/gdm-session-worker-job.c")
7727 (("#include <systemd/sd-daemon\\.h>") ""))
7728 ;; Use elogind for sd-login.
7729 (substitute* '("common/gdm-common.c"
7730 "daemon/gdm-local-display-factory.c"
7731 "daemon/gdm-manager.c"
7732 "libgdm/gdm-user-switching.c")
7733 (("#include <systemd/sd-login\\.h>")
7734 "#include <elogind/sd-login.h>"))
7735 ;; Check for elogind.
7736 (substitute* '("configure")
7737 (("libsystemd")
7738 "libelogind"))
7739 ;; Look for system-installed sessions in
7740 ;; /run/current-system/profile/share.
7741 (substitute* '("libgdm/gdm-sessions.c"
7742 "daemon/gdm-session.c"
7743 "daemon/gdm-display.c"
7744 "daemon/gdm-launch-environment.c")
7745 (("DATADIR \"/x")
7746 "\"/run/current-system/profile/share/x")
7747 (("DATADIR \"/wayland")
7748 "\"/run/current-system/profile/share/wayland")
7749 (("DATADIR \"/gnome")
7750 "\"/run/current-system/profile/share/gnome"))
7751 (let ((propagate '("GDM_CUSTOM_CONF"
7752 "GDM_DBUS_DAEMON"
7753 "GDM_X_SERVER"
7754 "GDM_X_SESSION"
7755 ;; XXX: Remove this once GNOME Shell is
7756 ;; a dependency of GDM.
7757 "XDG_DATA_DIRS")))
7758 (substitute* "daemon/gdm-session.c"
7759 (("set_up_session_environment \\(self\\);")
7760 (apply string-append
7761 "set_up_session_environment (self);\n"
7762 (map (lambda (name)
7763 (string-append
7764 "gdm_session_set_environment_variable "
7765 "(self, \"" name "\","
7766 "g_getenv (\"" name "\"));\n"))
7767 propagate)))))
7768 ;; Find the configuration file using an environment variable.
7769 (substitute* '("common/gdm-settings.c")
7770 (("GDM_CUSTOM_CONF")
7771 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7772 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7773 " : GDM_CUSTOM_CONF)")))
7774 ;; Use service-supplied path to X.
7775 (substitute* '("daemon/gdm-server.c")
7776 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7777 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
7778 (substitute* '("daemon/gdm-wayland-session.c"
7779 "daemon/gdm-x-session.c")
7780 (("\"dbus-daemon\"")
7781 "g_getenv (\"GDM_DBUS_DAEMON\")")
7782 (("X_SERVER")
7783 "g_getenv (\"GDM_X_SERVER\")")
7784 (("GDMCONFDIR \"/Xsession\"")
7785 "g_getenv (\"GDM_X_SESSION\")"))
7786 ;; Use an absolute path for GNOME Session.
7787 (substitute* "daemon/gdm-launch-environment.c"
7788 (("\"gnome-session\"")
7789 (string-append "\"" (assoc-ref inputs "gnome-session")
7790 "/bin/gnome-session\"")))
7791 ;; Do not automatically select the placeholder session.
7792 (substitute* "daemon/gdm-session.c"
7793 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7794 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7795 "(g_strcmp0(search_dirs[i], \""
7796 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7797 "\") == 0 && "
7798 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7799 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
7800 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
7801 #t))
7802 ;; GDM requires that there be at least one desktop entry
7803 ;; file. This phase installs a hidden one that simply
7804 ;; fails. This enables users to use GDM with a
7805 ;; '~/.xsession' script with no other desktop entry files.
7806 ;; See <https://bugs.gnu.org/35068>.
7807 (add-after 'install 'install-placeholder-desktop-entry
7808 (lambda* (#:key inputs outputs #:allow-other-keys)
7809 (let* ((out (assoc-ref outputs "out"))
7810 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7811 (fail (string-append sessions "/fail.desktop")))
7812 (mkdir-p sessions)
7813 (with-output-to-file fail
7814 (lambda ()
7815 (for-each
7816 display
7817 '("[Desktop Entry]\n"
7818 "Encoding=UTF-8\n"
7819 "Type=Application\n"
7820 "Name=Fail\n"
7821 "Comment=This session fails immediately.\n"
7822 "NoDisplay=true\n"
7823 "Exec=false\n"))))
7824 #t)))
7825 ;; GDM needs GNOME Session to run these applications. We link
7826 ;; their autostart files in `share/gdm/greeter/autostart'
7827 ;; because GDM explicitly tells GNOME Session to look there.
7828 ;;
7829 ;; XXX: GNOME Shell should be linked here too, but currently
7830 ;; GNOME Shell depends on GDM.
7831 (add-after 'install 'link-autostart-files
7832 (lambda* (#:key inputs outputs #:allow-other-keys)
7833 (let* ((out (assoc-ref outputs "out"))
7834 (autostart (string-append out "/share/gdm/"
7835 "greeter/autostart"))
7836 (settings (assoc-ref inputs "gnome-settings-daemon")))
7837 (mkdir-p autostart)
7838 (with-directory-excursion autostart
7839 (for-each (lambda (desktop)
7840 (symlink desktop (basename desktop)))
7841 (find-files (string-append settings "/etc/xdg"))))
7842 #t))))))
7843 (native-inputs
7844 `(("dconf" ,dconf)
7845 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7846 ("gobject-introspection" ,gobject-introspection)
7847 ("intltool" ,intltool)
7848 ("itstool" ,itstool)
7849 ("pkg-config" ,pkg-config)
7850 ("xmllint" ,libxml2)))
7851 (inputs
7852 `(("accountsservice" ,accountsservice)
7853 ("check" ,check) ; for testing
7854 ("elogind" ,elogind)
7855 ("gnome-session" ,gnome-session)
7856 ("gnome-settings-daemon" ,gnome-settings-daemon)
7857 ("gtk+" ,gtk+)
7858 ("iso-codes" ,iso-codes)
7859 ("libcanberra" ,libcanberra)
7860 ("linux-pam" ,linux-pam)))
7861 (synopsis "Display manager for GNOME")
7862 (home-page "https://wiki.gnome.org/Projects/GDM/")
7863 (description
7864 "GNOME Display Manager is a system service that is responsible for
7865 providing graphical log-ins and managing local and remote displays.")
7866 (license license:gpl2+)))
7867
7868 (define-public libgtop
7869 (package
7870 (name "libgtop")
7871 (version "2.40.0")
7872 (source (origin
7873 (method url-fetch)
7874 (uri (string-append "mirror://gnome/sources/libgtop/"
7875 (version-major+minor version) "/"
7876 "libgtop-" version ".tar.xz"))
7877 (sha256
7878 (base32
7879 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7880 (build-system gnu-build-system)
7881 (native-inputs
7882 `(("gobject-introspection" ,gobject-introspection)
7883 ("intltool" ,intltool)
7884 ("perl" ,perl)
7885 ("pkg-config" ,pkg-config)))
7886 (propagated-inputs
7887 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7888 (synopsis "Portable system access library")
7889 (home-page "https://www.gnome.org/")
7890 (description
7891 "LibGTop is a library to get system specific data such as CPU and memory
7892 usage and information about running processes.")
7893 (license license:gpl2+)))
7894
7895 (define-public gnome-bluetooth
7896 (package
7897 (name "gnome-bluetooth")
7898 (version "3.34.0")
7899 (source (origin
7900 (method url-fetch)
7901 (uri (string-append "mirror://gnome/sources/" name "/"
7902 (version-major+minor version) "/"
7903 name "-" version ".tar.xz"))
7904 (sha256
7905 (base32
7906 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
7907 (build-system meson-build-system)
7908 (native-inputs
7909 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7910 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7911 ("gobject-introspection" ,gobject-introspection)
7912 ("intltool" ,intltool)
7913 ("pkg-config" ,pkg-config)
7914 ("xmllint" ,libxml2)))
7915 (propagated-inputs
7916 ;; gnome-bluetooth-1.0.pc refers to all these.
7917 `(("glib" ,glib)
7918 ("gtk+" ,gtk+)))
7919 (inputs
7920 `(("eudev" ,eudev)
7921 ("libcanberra" ,libcanberra)
7922 ("libnotify" ,libnotify)))
7923 (synopsis "GNOME Bluetooth subsystem")
7924 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7925 (description
7926 "This package contains tools for managing and manipulating Bluetooth
7927 devices using the GNOME desktop.")
7928 (license license:lgpl2.1+)))
7929
7930 (define-public gnome-control-center
7931 (package
7932 (name "gnome-control-center")
7933 (version "3.34.2")
7934 (source (origin
7935 (method url-fetch)
7936 (uri (string-append "mirror://gnome/sources/" name "/"
7937 (version-major+minor version) "/"
7938 name "-" version ".tar.xz"))
7939 (sha256
7940 (base32
7941 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7942 (build-system meson-build-system)
7943 (arguments
7944 '(#:glib-or-gtk? #t
7945 #:configure-flags
7946 (list "-Dcheese=false"
7947 (string-append "-Dgnome_session_libexecdir="
7948 (assoc-ref %build-inputs "gnome-session")
7949 "/libexec"))
7950 #:phases
7951 (modify-phases %standard-phases
7952 (add-before 'configure 'patch-paths
7953 (lambda* (#:key inputs #:allow-other-keys)
7954 (let ((libc (assoc-ref inputs "libc"))
7955 (tzdata (assoc-ref inputs "tzdata"))
7956 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7957 (nm-applet (assoc-ref inputs "network-manager-applet"))
7958 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7959 (substitute* "panels/datetime/tz.h"
7960 (("/usr/share/zoneinfo/zone.tab")
7961 (string-append tzdata "/share/zoneinfo/zone.tab")))
7962 (substitute* "tests/datetime/test-endianess.c"
7963 (("/usr/share/locale")
7964 (string-append libc "/share/locale")))
7965 (substitute* "panels/region/cc-region-panel.c"
7966 (("\"gkbd-keyboard-display")
7967 (string-append "\"" libgnomekbd
7968 "/bin/gkbd-keyboard-display")))
7969 (substitute* '("panels/network/net-device-wifi.c"
7970 "panels/network/net-device.c"
7971 "panels/network/connection-editor/net-connection-editor.c")
7972 (("\"nm-connection-editor")
7973 (string-append "\"" nm-applet
7974 "/bin/nm-connection-editor")))
7975 (substitute* '("panels/user-accounts/run-passwd.c")
7976 (("/usr/bin/passwd")
7977 "/run/setuid-programs/passwd"))
7978 (substitute* "panels/info/cc-info-overview-panel.c"
7979 (("DATADIR \"/gnome/gnome-version.xml\"")
7980 (string-append "\"" gnome-desktop
7981 "/share/gnome/gnome-version.xml\"")))
7982 #t)))
7983 (add-after 'unpack 'skip-gtk-update-icon-cache
7984 ;; Don't create 'icon-theme.cache'.
7985 (lambda _
7986 (substitute* "build-aux/meson/meson_post_install.py"
7987 (("gtk-update-icon-cache") (which "true")))
7988 #t)))))
7989 (native-inputs
7990 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7991 ("intltool" ,intltool)
7992 ("pkg-config" ,pkg-config)
7993 ("xsltproc" ,libxslt)
7994 ;; For tests
7995 ("hicolor-icon-theme" ,hicolor-icon-theme)
7996 ("python-dbusmock" ,python-dbusmock)
7997 ("xorg-server" ,xorg-server-for-tests)))
7998 (inputs
7999 `(("accountsservice" ,accountsservice)
8000 ("clutter-gtk" ,clutter-gtk)
8001 ("colord-gtk" ,colord-gtk)
8002 ("cups" ,cups)
8003 ("dconf" ,dconf)
8004 ("docbook-xsl" ,docbook-xsl)
8005 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8006 ("gnome-bluetooth" ,gnome-bluetooth)
8007 ("gnome-desktop" ,gnome-desktop)
8008 ("gnome-online-accounts" ,gnome-online-accounts)
8009 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8010 ("gnome-session" ,gnome-session)
8011 ("gnome-settings-daemon" ,gnome-settings-daemon)
8012 ("grilo" ,grilo)
8013 ("gsound" ,gsound)
8014 ("ibus" ,ibus)
8015 ("libcanberra" ,libcanberra)
8016 ("libgnomekbd" ,libgnomekbd)
8017 ("libgudev" ,libgudev)
8018 ("libgtop" ,libgtop)
8019 ("libnma" ,libnma)
8020 ("libpwquality" ,libpwquality)
8021 ("libsecret" ,libsecret)
8022 ("libsoup" ,libsoup)
8023 ("libxml2" ,libxml2)
8024 ("libwacom" ,libwacom)
8025 ("mesa" ,mesa)
8026 ("mit-krb5" ,mit-krb5)
8027 ("modem-manager" ,modem-manager)
8028 ("network-manager-applet" ,network-manager-applet)
8029 ("polkit" ,polkit)
8030 ("pulseaudio" ,pulseaudio)
8031 ("smbclient" ,samba)
8032 ("tzdata" ,tzdata)
8033 ("udisks" ,udisks)
8034 ("upower" ,upower)))
8035 (synopsis "Utilities to configure the GNOME desktop")
8036 (home-page "https://www.gnome.org/")
8037 (description
8038 "This package contains configuration applets for the GNOME desktop,
8039 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8040 properties, sound setup, desktop theme and background, user interface
8041 properties, screen resolution, and other GNOME parameters.")
8042 (license license:gpl2+)))
8043
8044 (define-public gnome-shell
8045 (package
8046 (name "gnome-shell")
8047 (version "3.34.2")
8048 (source (origin
8049 (method url-fetch)
8050 (uri (string-append "mirror://gnome/sources/" name "/"
8051 (version-major+minor version) "/"
8052 name "-" version ".tar.xz"))
8053 (sha256
8054 (base32
8055 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
8056 (patches (search-patches "gnome-shell-theme.patch"
8057 "gnome-shell-disable-test.patch"))
8058 (modules '((guix build utils)))
8059 (snippet
8060 #~(begin
8061 ;; Copy images for use on the GDM log-in screen.
8062 (copy-file #$(file-append %artwork-repository
8063 "/slim/0.x/background.png")
8064 "data/theme/guix-background.png")
8065 (copy-file #$(file-append %artwork-repository
8066 "/logo/Guix-horizontal-white.svg")
8067 "data/theme/guix-logo.svg")
8068 #t))))
8069 (build-system meson-build-system)
8070 (arguments
8071 `(#:glib-or-gtk? #t
8072 #:disallowed-references ((,glib "bin")
8073 ,inkscape ,libxslt
8074 ,ruby-sass)
8075 #:configure-flags
8076 (list "-Dsystemd=false"
8077 ;; Otherwise, the RUNPATH will lack the final path component.
8078 (string-append "-Dc_link_args=-Wl,-rpath="
8079 (assoc-ref %outputs "out")
8080 "/lib/gnome-shell"))
8081
8082 #:modules ((guix build meson-build-system)
8083 (guix build utils)
8084 (srfi srfi-1))
8085
8086 #:phases
8087 (modify-phases %standard-phases
8088 (add-after 'unpack 'fix-keysdir
8089 (lambda* (#:key outputs #:allow-other-keys)
8090 (let* ((out (assoc-ref outputs "out"))
8091 (keysdir (string-append
8092 out "/share/gnome-control-center/keybindings")))
8093 (substitute* "meson.build"
8094 (("keysdir =.*")
8095 (string-append "keysdir = '" keysdir "'\n")))
8096 #t)))
8097 (add-before 'configure 'convert-logo-to-png
8098 (lambda* (#:key inputs #:allow-other-keys)
8099 ;; Convert the logo from SVG to PNG.
8100 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8101 "data/theme/guix-logo.svg")))
8102 (add-before 'configure 'record-absolute-file-names
8103 (lambda* (#:key inputs #:allow-other-keys)
8104 (substitute* "js/misc/ibusManager.js"
8105 (("'ibus-daemon'")
8106 (string-append "'" (assoc-ref inputs "ibus")
8107 "/bin/ibus-daemon'")))
8108 (substitute* "js/ui/status/keyboard.js"
8109 (("'gkbd-keyboard-display'")
8110 (string-append "'" (assoc-ref inputs "libgnomekbd")
8111 "/bin/gkbd-keyboard-display'")))
8112 #t))
8113 (add-before 'check 'pre-check
8114 (lambda* (#:key inputs #:allow-other-keys)
8115 ;; Tests require a running X server.
8116 (system "Xvfb :1 &")
8117 (setenv "DISPLAY" ":1")
8118 #t))
8119 (add-after 'install 'wrap-programs
8120 (lambda* (#:key inputs outputs #:allow-other-keys)
8121 (let ((out (assoc-ref outputs "out"))
8122 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8123 (python-path (getenv "PYTHONPATH")))
8124 (wrap-program (string-append out "/bin/gnome-shell")
8125 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8126 ;; FIXME: gnome-shell loads these libraries with unqualified
8127 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8128 ;; alternative might be to patch gnome-shell.
8129 `("LD_LIBRARY_PATH" ":" prefix
8130 ,(map (lambda (pkg)
8131 (string-append (assoc-ref inputs pkg) "/lib"))
8132 '("gdk-pixbuf"
8133 "gnome-bluetooth" "librsvg" "libgweather"))))
8134 (for-each
8135 (lambda (prog)
8136 (wrap-program (string-append out "/bin/" prog)
8137 `("PYTHONPATH" ":" prefix (,python-path))
8138 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8139 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8140 #t)))
8141 (replace 'glib-or-gtk-wrap
8142 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8143 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8144 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8145 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8146 ;; phase. Fix that since we don't need these.
8147 (wrap #:inputs (fold alist-delete inputs
8148 '("inkscape" "intltool" "glib:bin"))
8149 #:outputs outputs)))))))
8150 (native-inputs
8151 `(("asciidoc" ,asciidoc)
8152 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8153 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8154 ("gobject-introspection" ,gobject-introspection)
8155 ("inkscape" ,inkscape)
8156 ("intltool" ,intltool)
8157 ("pkg-config" ,pkg-config)
8158 ("python" ,python)
8159 ("ruby-sass" ,ruby-sass)
8160 ("sassc" ,sassc)
8161 ("xsltproc" ,libxslt)
8162 ;; For tests
8163 ("xorg-server" ,xorg-server-for-tests)))
8164 (inputs
8165 `(("accountsservice" ,accountsservice)
8166 ("caribou" ,caribou)
8167 ("docbook-xsl" ,docbook-xsl)
8168 ("evolution-data-server" ,evolution-data-server)
8169 ("gcr" ,gcr)
8170 ("gdm" ,gdm)
8171 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8172 ("gjs" ,gjs)
8173 ("gnome-autoar" ,gnome-autoar)
8174 ("gnome-bluetooth" ,gnome-bluetooth)
8175 ("gnome-desktop" ,gnome-desktop)
8176 ("gnome-settings-daemon" ,gnome-settings-daemon)
8177 ("gst-plugins-base" ,gst-plugins-base)
8178 ("ibus" ,ibus)
8179 ("libcanberra" ,libcanberra)
8180 ("libcroco" ,libcroco)
8181 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8182 ("libgweather" ,libgweather)
8183 ("libnma" ,libnma)
8184 ("libsoup" ,libsoup)
8185 ("mesa-headers" ,mesa-headers)
8186 ("mutter" ,mutter)
8187 ("network-manager-applet" ,network-manager-applet)
8188 ("polkit" ,polkit)
8189 ("pulseaudio" ,pulseaudio)
8190 ("python-pygobject" ,python-pygobject)
8191 ("startup-notification" ,startup-notification)
8192 ("telepathy-logger" ,telepathy-logger)
8193 ("upower" ,upower)
8194 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8195 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8196 ("librsvg" ,librsvg)
8197 ("geoclue" ,geoclue)))
8198 (synopsis "Desktop shell for GNOME")
8199 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8200 (description
8201 "GNOME Shell provides core user interface functions for the GNOME desktop,
8202 like switching to windows and launching applications.")
8203 (license license:gpl2+)))
8204
8205 (define-public gtk-vnc
8206 (package
8207 (name "gtk-vnc")
8208 (version "1.0.0")
8209 (source
8210 (origin
8211 (method url-fetch)
8212 (uri
8213 (string-append "mirror://gnome/sources/" name "/"
8214 (version-major+minor version) "/"
8215 name "-" version ".tar.xz"))
8216 (sha256
8217 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8218 (build-system meson-build-system)
8219 (arguments
8220 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8221 (native-inputs
8222 `(("gjs" ,gjs)
8223 ("glib:bin" ,glib "bin")
8224 ("gobject-introspection" ,gobject-introspection)
8225 ("intltool" ,intltool)
8226 ("node" ,node)
8227 ("perl" ,perl)
8228 ("pkg-config" ,pkg-config)
8229 ("python" ,python-wrapper)
8230 ("vala" ,vala)))
8231 (inputs
8232 `(("cairo" ,cairo)
8233 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8234 ("glib" ,glib)
8235 ("gnutls" ,gnutls)
8236 ("libgcrypt" ,libgcrypt)
8237 ("libsasl" ,cyrus-sasl)
8238 ("pulseaudio" ,pulseaudio)
8239 ("x11" ,libx11)
8240 ("zlib" ,zlib)))
8241 (propagated-inputs
8242 `(("gtk+" ,gtk+)))
8243 (synopsis "VNC client viewer widget for GTK+")
8244 (description "GTK-VNC is a project providing client side APIs for the RFB
8245 protocol / VNC remote desktop technology. It is built using coroutines allowing
8246 it to be completely asynchronous while remaining single threaded. It provides a
8247 core C library, and bindings for Python (PyGTK).")
8248 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8249 (license license:lgpl2.1+)))
8250
8251 (define-public gnome-autoar
8252 (package
8253 (name "gnome-autoar")
8254 (version "0.2.4")
8255 (source (origin
8256 (method url-fetch)
8257 (uri (string-append "mirror://gnome/sources/" name "/"
8258 (version-major+minor version) "/"
8259 name "-" version ".tar.xz"))
8260 (sha256
8261 (base32
8262 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
8263 (build-system glib-or-gtk-build-system)
8264 (native-inputs
8265 `(("gobject-introspection" ,gobject-introspection)
8266 ("pkg-config" ,pkg-config)))
8267 (propagated-inputs
8268 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8269 (inputs
8270 `(("gtk+" ,gtk+)))
8271 (synopsis "Archives integration support for GNOME")
8272 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8273 (description
8274 "GNOME Autoar is a library which makes creating and extracting archives
8275 easy, safe, and automatic.")
8276 (license license:lgpl2.1+)))
8277
8278 (define-public tracker
8279 (package
8280 (name "tracker")
8281 (version "2.3.5")
8282 (source (origin
8283 (method url-fetch)
8284 (uri (string-append "mirror://gnome/sources/tracker/"
8285 (version-major+minor version) "/"
8286 "tracker-" version ".tar.xz"))
8287 (sha256
8288 (base32
8289 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8290 (build-system meson-build-system)
8291 (arguments
8292 `(#:glib-or-gtk? #t
8293 #:configure-flags
8294 ;; Otherwise, the RUNPATH will lack the final path component.
8295 (list (string-append "-Dc_link_args=-Wl,-rpath="
8296 (assoc-ref %outputs "out") "/lib:"
8297 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8298 #:phases
8299 (modify-phases %standard-phases
8300 (add-before 'check 'pre-check
8301 (lambda _
8302 ;; Some tests expect to write to $HOME.
8303 (setenv "HOME" "/tmp")
8304 #t)))))
8305 (native-inputs
8306 `(("glib:bin" ,glib "bin")
8307 ("gobject-introspection" ,gobject-introspection)
8308 ("python-pygobject" ,python-pygobject)
8309 ("intltool" ,intltool)
8310 ("pkg-config" ,pkg-config)
8311 ("vala" ,vala)))
8312 (inputs
8313 `(("dbus" ,dbus)
8314 ("sqlite" ,sqlite)
8315 ("libxml2" ,libxml2)
8316 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8317 ("json-glib" ,json-glib)
8318 ("libsoup" ,libsoup)))
8319 (synopsis "Metadata database, indexer and search tool")
8320 (home-page "https://wiki.gnome.org/Projects/Tracker")
8321 (description
8322 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8323
8324 It is a middleware component aimed at desktop application developers who want
8325 their apps to browse and search user content. It's not designed to be used
8326 directly by desktop users, but it provides a commandline tool named
8327 @command{tracker} for the adventurous.
8328
8329 Tracker allows your application to instantly perform full-text searches across
8330 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8331 example. This is achieved by indexing the user's home directory in the
8332 background.
8333
8334 Tracker also allows your application to query and list content that the user
8335 has stored. For example, GNOME Music displays all the music files that are
8336 found by Tracker. This means that GNOME Music doesn't need to maintain a
8337 database of its own.
8338
8339 If you need to go beyond simple searches, Tracker is also a linked data
8340 endpoint and it understands SPARQL. ")
8341 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8342 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8343 ;; libstemmer is bsd-3 and the rest is gpl2+.
8344 (license (list license:gpl2+
8345 license:bsd-3
8346 license:lgpl2.1+))))
8347
8348 (define-public tracker-miners
8349 (package
8350 (name "tracker-miners")
8351 (version "2.3.4")
8352 (source (origin
8353 (method url-fetch)
8354 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8355 (version-major+minor version)
8356 "/tracker-miners-" version ".tar.xz"))
8357 (sha256
8358 (base32
8359 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8360 (build-system meson-build-system)
8361 (arguments
8362 `(#:glib-or-gtk? #t
8363 #:configure-flags
8364 (list "-Dminer_rss=false" ; libgrss is required.
8365 ;; Ensure the RUNPATH contains all installed library locations.
8366 (string-append "-Dc_link_args=-Wl,-rpath="
8367 (assoc-ref %outputs "out")
8368 "/lib/tracker-miners-2.0")
8369 ;; TODO: Enable functional tests. Currently, the following error
8370 ;; appears:
8371 ;; Exception: The functional tests require DConf to be the default
8372 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8373 "-Dfunctional_tests=false")))
8374 (native-inputs
8375 `(("dbus" ,dbus)
8376 ("intltool" ,intltool)
8377 ("glib:bin" ,glib "bin")
8378 ("gobject-introspection" ,gobject-introspection)
8379 ("pkg-config" ,pkg-config)
8380 ("python-pygobject" ,python-pygobject)))
8381 (inputs
8382 `(("exempi" ,exempi)
8383 ("ffmpeg" ,ffmpeg)
8384 ("flac" ,flac)
8385 ("giflib" ,giflib)
8386 ("glib" ,glib)
8387 ("gstreamer" ,gstreamer)
8388 ("icu4c" ,icu4c)
8389 ("libcue" ,libcue)
8390 ("libexif" ,libexif)
8391 ("libgsf" ,libgsf)
8392 ("libgxps" ,libgxps)
8393 ("libiptcdata" ,libiptcdata)
8394 ("libjpeg" ,libjpeg-turbo)
8395 ("libosinfo" ,libosinfo)
8396 ("libpng" ,libpng)
8397 ("libseccomp" ,libseccomp)
8398 ("libtiff" ,libtiff)
8399 ("libvorbis" ,libvorbis)
8400 ("libxml2" ,libxml2)
8401 ("poppler" ,poppler)
8402 ("taglib" ,taglib)
8403 ("totem-pl-parser" ,totem-pl-parser)
8404 ("tracker" ,tracker)
8405 ("upower" ,upower)
8406 ("zlib" ,zlib)))
8407 (synopsis "Metadata database, indexer and search tool")
8408 (home-page "https://wiki.gnome.org/Projects/Tracker")
8409 (description
8410 "Tracker is an advanced framework for first class objects with associated
8411 metadata and tags. It provides a one stop solution for all metadata, tags,
8412 shared object databases, search tools and indexing.")
8413 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8414 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8415 (license (list license:gpl2+
8416 license:lgpl2.1+
8417 license:lgpl2.0+))))
8418
8419 (define-public nautilus
8420 (package
8421 (name "nautilus")
8422 (version "3.34.2")
8423 (source (origin
8424 (method url-fetch)
8425 (uri (string-append "mirror://gnome/sources/" name "/"
8426 (version-major+minor version) "/"
8427 name "-" version ".tar.xz"))
8428 (sha256
8429 (base32
8430 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8431 (build-system meson-build-system)
8432 (arguments
8433 '(#:glib-or-gtk? #t
8434 #:phases
8435 (modify-phases %standard-phases
8436 (add-after 'unpack 'skip-gtk-update-icon-cache
8437 ;; Don't create 'icon-theme.cache'.
8438 (lambda _
8439 (substitute* "build-aux/meson/postinstall.py"
8440 (("gtk-update-icon-cache") "true"))
8441 #t)))
8442 ;; XXX: FAIL: check-nautilus
8443 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8444 #:tests? #f))
8445 (native-inputs
8446 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8447 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8448 ("gobject-introspection" ,gobject-introspection)
8449 ("intltool" ,intltool)
8450 ("pkg-config" ,pkg-config)))
8451 (inputs
8452 `(("dconf" ,dconf)
8453 ("gexiv2" ,gexiv2)
8454 ("gvfs" ,gvfs)
8455 ("exempi" ,exempi)
8456 ("gnome-desktop" ,gnome-desktop)
8457 ("gnome-autoar" ,gnome-autoar)
8458 ("gst-plugins-base" ,gst-plugins-base)
8459 ("libseccomp" ,libseccomp)
8460 ("libselinux" ,libselinux)
8461 ("tracker" ,tracker)
8462 ("tracker-miners" ,tracker-miners)
8463 ;; XXX: gtk+ is required by libnautilus-extension.pc
8464 ;;
8465 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8466 ;; package. See:
8467 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8468 ("gtk+" ,gtk+)
8469 ("libexif" ,libexif)
8470 ("libxml2" ,libxml2)))
8471 (synopsis "File manager for GNOME")
8472 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8473 (description
8474 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8475 design and behaviour, giving the user a simple way to navigate and manage its
8476 files.")
8477 (license license:gpl2+)))
8478
8479 (define-public baobab
8480 (package
8481 (name "baobab")
8482 (version "3.32.0")
8483 (source (origin
8484 (method url-fetch)
8485 (uri (string-append
8486 "mirror://gnome/sources/" name "/"
8487 (version-major+minor version) "/"
8488 name "-" version ".tar.xz"))
8489 (sha256
8490 (base32
8491 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
8492 (build-system meson-build-system)
8493 (arguments
8494 '(#:glib-or-gtk? #t))
8495 (native-inputs
8496 `(("intltool" ,intltool)
8497 ("pkg-config" ,pkg-config)
8498 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8499 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8500 ("itstool" ,itstool)
8501 ("xmllint" ,libxml2)
8502 ("glib" ,glib "bin")
8503 ("vala" ,vala)))
8504 (inputs
8505 `(("gtk+" ,gtk+)))
8506 (synopsis "Disk usage analyzer for GNOME")
8507 (description
8508 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8509 usage in the GNOME desktop environment. It can easily scan device volumes or
8510 a specific user-requested directory branch (local or remote). Once the scan
8511 is complete it provides a graphical representation of each selected folder.")
8512 (home-page "https://wiki.gnome.org/Apps/Baobab")
8513 (license license:gpl2+)))
8514
8515 (define-public gnome-backgrounds
8516 (package
8517 (name "gnome-backgrounds")
8518 (version "3.34.0")
8519 (source
8520 (origin
8521 (method url-fetch)
8522 (uri (string-append "mirror://gnome/sources/" name "/"
8523 (version-major+minor version) "/"
8524 name "-" version ".tar.xz"))
8525 (sha256
8526 (base32
8527 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8528 (build-system meson-build-system)
8529 (native-inputs
8530 `(("intltool" ,intltool)))
8531 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8532 (synopsis "Background images for the GNOME desktop")
8533 (description
8534 "GNOME backgrounds package contains a collection of graphics files which
8535 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8536 the package creates the proper framework and directory structure so that you
8537 can add your own files to the collection.")
8538 (license (list license:gpl2+
8539 license:cc-by2.0
8540 license:cc-by-sa2.0
8541 license:cc-by-sa3.0))))
8542
8543 (define-public gnome-screenshot
8544 (package
8545 (name "gnome-screenshot")
8546 (version "3.34.0")
8547 (source
8548 (origin
8549 (method url-fetch)
8550 (uri (string-append "mirror://gnome/sources/" name "/"
8551 (version-major+minor version) "/"
8552 name "-" version ".tar.xz"))
8553 (sha256
8554 (base32
8555 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8556 (build-system meson-build-system)
8557 (arguments
8558 '(#:phases
8559 (modify-phases %standard-phases
8560 (add-after 'unpack 'skip-gtk-update-icon-cache
8561 ;; Don't create 'icon-theme.cache'.
8562 (lambda _
8563 (substitute* "build-aux/postinstall.py"
8564 (("gtk-update-icon-cache") "true"))
8565 #t)))))
8566 (native-inputs
8567 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8568 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8569 ("intltool" ,intltool)
8570 ("appstream-glib" ,appstream-glib)
8571 ("pkg-config" ,pkg-config)))
8572 (inputs
8573 `(("gtk+" ,gtk+)
8574 ("libcanberra" ,libcanberra)
8575 ("libx11" ,libx11)
8576 ("libxext" ,libxext)))
8577 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8578 (synopsis "Take pictures of your screen")
8579 (description
8580 "GNOME Screenshot is a utility used for taking screenshots of the entire
8581 screen, a window or a user defined area of the screen, with optional
8582 beautifying border effects.")
8583 (license license:gpl2+)))
8584
8585 (define-public dconf-editor
8586 (package
8587 (name "dconf-editor")
8588 (version "3.34.2")
8589 (source
8590 (origin
8591 (method url-fetch)
8592 (uri (string-append "mirror://gnome/sources/" name "/"
8593 (version-major+minor version) "/"
8594 name "-" version ".tar.xz"))
8595 (sha256
8596 (base32
8597 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8598 (build-system meson-build-system)
8599 (native-inputs
8600 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8601 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8602 ("intltool" ,intltool)
8603 ("pkg-config" ,pkg-config)
8604 ("vala" ,vala)))
8605 (inputs
8606 `(("dconf" ,dconf)
8607 ("gtk+" ,gtk+)
8608 ("libxml2" ,libxml2)))
8609 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
8610 (synopsis "Graphical editor for GNOME's dconf configuration system")
8611 (description
8612 "Dconf-editor is a graphical tool for browsing and editing the dconf
8613 configuration system for GNOME. It allows users to configure desktop
8614 software that do not provide their own configuration interface.")
8615 (license license:lgpl2.1+)))
8616
8617 (define-public gnome-default-applications
8618 (package
8619 (name "gnome-default-applications")
8620 (version "0")
8621 (build-system trivial-build-system)
8622 (source #f)
8623 (propagated-inputs
8624 `(("nautilus" ,nautilus)
8625 ("evince" ,evince)))
8626 (arguments
8627 `(#:modules ((guix build utils))
8628 #:builder
8629 (begin
8630 (use-modules (guix build utils))
8631 (let* ((out (assoc-ref %outputs "out"))
8632 (apps (string-append out "/share/applications")))
8633 (mkdir-p apps)
8634 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
8635 (lambda (port)
8636 (format port "[Default Applications]\n")
8637 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
8638 (format port "application/pdf=evince.desktop\n")
8639 (format port "application/postscript=evince.desktop\n")))
8640 #t))))
8641 (synopsis "Default MIME type associations for the GNOME desktop")
8642 (description
8643 "Given many installed packages which might handle a given MIME type, a
8644 user running the GNOME desktop probably has some preferences: for example,
8645 that folders be opened by default by the Nautilus file manager, not the Baobab
8646 disk usage analyzer. This package establishes that set of default MIME type
8647 associations for GNOME.")
8648 (license license:gpl3+)
8649 (home-page #f)))
8650
8651 (define-public libgovirt
8652 (package
8653 (name "libgovirt")
8654 (version "0.3.6")
8655 (source (origin
8656 (method url-fetch)
8657 (uri (string-append "mirror://gnome/sources/" name "/"
8658 (version-major+minor version) "/"
8659 name "-" version ".tar.xz"))
8660 (sha256
8661 (base32
8662 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
8663 (build-system glib-or-gtk-build-system)
8664 (native-inputs
8665 `(("gettext" ,gettext-minimal)
8666 ("glib:bin" ,glib "bin")
8667 ("gobject-introspection" ,gobject-introspection)
8668 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8669 ("gtk+:bin" ,gtk+ "bin")
8670 ("pkg-config" ,pkg-config)))
8671 (inputs
8672 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
8673 ("librest" ,rest)))
8674 (synopsis "GoVirt Library")
8675 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
8676 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
8677 (license license:gpl2+)))
8678
8679 (define-public gnome-weather
8680 (package
8681 (name "gnome-weather")
8682 (version "3.34.0")
8683 (source (origin
8684 (method url-fetch)
8685 (uri (string-append "mirror://gnome/sources/" name "/"
8686 (version-major+minor version) "/"
8687 name "-" version ".tar.xz"))
8688 (sha256
8689 (base32
8690 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
8691 (build-system meson-build-system)
8692 (native-inputs
8693 `(("gettext" ,gettext-minimal)
8694 ("glib:bin" ,glib "bin")
8695 ("gobject-introspection" ,gobject-introspection)
8696 ("gtk+:bin" ,gtk+ "bin")
8697 ("pkg-config" ,pkg-config)))
8698 (inputs
8699 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
8700 ("appstream-glib" ,appstream-glib)
8701 ("geoclue" ,geoclue)
8702 ("gdk-pixbuf" ,gdk-pixbuf)
8703 ("gjs" ,gjs)
8704 ("gnome-desktop" ,gnome-desktop)
8705 ("libgweather" ,libgweather)))
8706 (arguments
8707 `(#:glib-or-gtk? #t
8708 #:phases
8709 (modify-phases %standard-phases
8710 (add-after 'install 'fix-desktop-file
8711 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
8712 ;; See https://issues.guix.gnu.org/issue/39324.
8713 (lambda* (#:key outputs #:allow-other-keys)
8714 (let* ((out (assoc-ref outputs "out"))
8715 (applications (string-append out "/share/applications")))
8716 (substitute* (string-append applications "/org.gnome.Weather.desktop")
8717 (("Exec=.*") "Exec=gnome-weather\n"))
8718 #t)))
8719 (add-after 'install 'wrap
8720 (lambda* (#:key inputs outputs #:allow-other-keys)
8721 (let ((out (assoc-ref outputs "out"))
8722 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8723 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
8724 (wrap-program (string-append out "/bin/gnome-weather")
8725 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
8726 #t))))))
8727 (synopsis "Weather monitoring for GNOME desktop")
8728 (description "GNOME Weather is a small application that allows you to
8729 monitor the current weather conditions for your city, or anywhere in the
8730 world.")
8731 (home-page "https://wiki.gnome.org/Apps/Weather")
8732 (license license:gpl2+)))
8733
8734 (define-public gnome
8735 (package
8736 (name "gnome")
8737 (version (package-version gnome-shell))
8738 (source #f)
8739 (build-system trivial-build-system)
8740 (arguments '(#:builder (begin (mkdir %output) #t)))
8741 (propagated-inputs
8742 ;; TODO: Add or remove packages according to:
8743 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
8744 `(
8745 ;; GNOME-Core-OS-Services
8746 ("accountsservice" ,accountsservice)
8747 ("network-manager" ,network-manager)
8748 ("packagekit" ,packagekit)
8749 ("upower" ,upower)
8750 ;; GNOME-Core-Shell
8751 ("adwaita-icon-theme" ,adwaita-icon-theme)
8752 ("gdm" ,gdm)
8753 ("glib-networking" ,glib-networking)
8754 ("gnome-backgrounds" ,gnome-backgrounds)
8755 ("gnome-bluetooth" ,gnome-bluetooth)
8756 ("gnome-color-manager" ,gnome-color-manager)
8757 ("gnome-control-center" ,gnome-control-center)
8758 ("gnome-desktop" ,gnome-desktop)
8759 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8760 ("gnome-initial-setup" ,gnome-initial-setup)
8761 ("gnome-keyring" ,gnome-keyring)
8762 ("gnome-menus" ,gnome-menus)
8763 ("gnome-session" ,gnome-session)
8764 ("gnome-settings-daemon" ,gnome-settings-daemon)
8765 ("gnome-shell-extensions" ,gnome-shell-extensions)
8766 ("gnome-shell" ,gnome-shell)
8767 ("gnome-themes-extra" ,gnome-themes-extra)
8768 ("gnome-user-docs" ,gnome-user-docs)
8769 ("gnome-user-share" ,gnome-user-share)
8770 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8771 ("gvfs" ,gvfs)
8772 ("mutter" ,mutter)
8773 ("orca" ,orca)
8774 ("rygel" ,rygel)
8775 ("sushi" ,sushi)
8776 ;; GNOME-Core-Utilities
8777 ("baobab" ,baobab)
8778 ("cheese" ,cheese)
8779 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8780 ;; only works on x86_64, so exclude it on other architectures.
8781 ,@(if (string-prefix? "x86_64" (%current-system))
8782 `(("eog" ,eog))
8783 '())
8784 ("epiphany" ,epiphany)
8785 ("evince" ,evince)
8786 ("file-roller" ,file-roller)
8787 ("gedit" ,gedit)
8788 ("gnome-boxes" ,gnome-boxes)
8789 ("gnome-calculator" ,gnome-calculator)
8790 ("gnome-calendar" ,gnome-calendar)
8791 ("gnome-characters" ,gnome-characters)
8792 ("gnome-clocks" ,gnome-clocks)
8793 ("gnome-contacts" ,gnome-contacts)
8794 ("gnome-disk-utility" ,gnome-disk-utility)
8795 ("gnome-font-viewer" ,gnome-font-viewer)
8796 ("gnome-maps" ,gnome-maps)
8797 ; TODO: ("gnome-music" ,gnome-music)
8798 ; TODO: ("gnome-photos" ,gnome-photos)
8799 ("gnome-screenshot" ,gnome-screenshot)
8800 ("gnome-system-monitor" ,gnome-system-monitor)
8801 ("gnome-terminal" ,gnome-terminal)
8802 ("gnome-weather" ,gnome-weather)
8803 ("nautilus" ,nautilus)
8804 ("simple-scan" ,simple-scan)
8805 ("totem" ,totem)
8806 ("yelp" ,yelp)
8807 ;; Others
8808 ("hicolor-icon-theme" ,hicolor-icon-theme)
8809 ("gnome-online-accounts" ,gnome-online-accounts)
8810
8811 ;; Packages not part of GNOME proper but that are needed for a good
8812 ;; experience. See <https://bugs.gnu.org/39646>.
8813 ;; XXX: Find out exactly which ones are needed and why.
8814 ("font-cantarell" ,font-cantarell)
8815 ("font-dejavu" ,font-dejavu)
8816 ("at-spi2-core" ,at-spi2-core)
8817 ("dbus" ,dbus)
8818 ("dconf" ,dconf)
8819 ("desktop-file-utils" ,desktop-file-utils)
8820 ("gnome-default-applications" ,gnome-default-applications)
8821 ("gnome-themes-standard" ,gnome-themes-standard)
8822 ("gst-plugins-base" ,gst-plugins-base)
8823 ("gst-plugins-good" ,gst-plugins-good)
8824 ("gucharmap" ,gucharmap)
8825 ("pinentry-gnome3" ,pinentry-gnome3)
8826 ("pulseaudio" ,pulseaudio)
8827 ("shared-mime-info" ,shared-mime-info)
8828 ("system-config-printer" ,system-config-printer)
8829 ("xdg-user-dirs" ,xdg-user-dirs)
8830 ("yelp" ,yelp)
8831 ("zenity" ,zenity)))
8832 (synopsis "The GNU desktop environment")
8833 (home-page "https://www.gnome.org/")
8834 (description
8835 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8836 applications for browsing the web, editing text and images, creating
8837 documents and diagrams, playing media, scanning, and much more.")
8838 (license license:gpl2+)))
8839
8840 (define-public byzanz
8841 ;; The last stable release of Byzanz was in 2011, but there have been many
8842 ;; useful commits made to the Byzanz repository since then that it would be
8843 ;; silly to use such an old release.
8844 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8845 (package
8846 (name "byzanz")
8847 (version (string-append "0.2-1." (string-take commit 7)))
8848 (source (origin
8849 (method git-fetch)
8850 (uri (git-reference
8851 (url "https://git.gnome.org/browse/byzanz")
8852 (commit commit)))
8853 (file-name (string-append name "-" version "-checkout"))
8854 (sha256
8855 (base32
8856 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8857 (build-system glib-or-gtk-build-system)
8858 (arguments
8859 '(#:phases
8860 (modify-phases %standard-phases
8861 (add-before 'bootstrap 'build-without-Werror
8862 (lambda _
8863 ;; The build system cleverly detects that we're not building from
8864 ;; a release tarball and turns on -Werror for GCC.
8865 ;; Unsurprisingly, there is a warning during compilation that
8866 ;; causes the build to fail unnecessarily, so we remove the flag.
8867 (substitute* '("configure.ac")
8868 (("-Werror") ""))
8869 #t)))))
8870 (native-inputs
8871 `(("autoconf" ,autoconf)
8872 ("automake" ,automake)
8873 ("gnome-common" ,gnome-common)
8874 ("intltool" ,intltool)
8875 ("libtool" ,libtool)
8876 ("pkg-config" ,pkg-config)
8877 ("which" ,which)))
8878 (inputs
8879 `(("glib" ,glib)
8880 ("gstreamer" ,gstreamer)
8881 ("gst-plugins-base" ,gst-plugins-base)
8882 ("gtk+" ,gtk+)))
8883 (synopsis "Desktop recording program")
8884 (description "Byzanz is a simple desktop recording program with a
8885 command-line interface. It can record part or all of an X display for a
8886 specified duration and save it as a GIF encoded animated image file.")
8887 (home-page "https://git.gnome.org/browse/byzanz")
8888 (license license:gpl2+))))
8889
8890 (define-public gsound
8891 (package
8892 (name "gsound")
8893 (version "1.0.2")
8894 (source (origin
8895 (method url-fetch)
8896 (uri (string-append "mirror://gnome/sources/" name "/"
8897 (version-major+minor version) "/"
8898 name "-" version ".tar.xz"))
8899 (sha256
8900 (base32
8901 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8902 (build-system glib-or-gtk-build-system)
8903 (native-inputs
8904 `(("pkg-config" ,pkg-config)
8905 ("gobject-introspection" ,gobject-introspection)
8906 ("vala" ,vala)))
8907 (inputs
8908 `(("glib" ,glib)
8909 ("libcanberra" ,libcanberra)))
8910 (home-page "https://wiki.gnome.org/Projects/GSound")
8911 (synopsis "GObject wrapper for libcanberra")
8912 (description
8913 "GSound is a small library for playing system sounds. It's designed to be
8914 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8915 library.")
8916 (license license:lgpl2.1+)))
8917
8918 (define-public libzapojit
8919 (package
8920 (name "libzapojit")
8921 (version "0.0.3")
8922 (source (origin
8923 (method url-fetch)
8924 (uri (string-append "mirror://gnome/sources/" name "/"
8925 (version-major+minor version) "/"
8926 name "-" version ".tar.xz"))
8927 (sha256
8928 (base32
8929 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8930 (build-system gnu-build-system)
8931 (native-inputs
8932 `(("gobject-introspection" ,gobject-introspection)
8933 ("intltool" ,intltool)
8934 ("pkg-config" ,pkg-config)))
8935 (inputs
8936 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8937 ("json-glib" ,json-glib)
8938 ("rest" ,rest)))
8939 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8940 (synopsis "Library for accessing SkyDrive and Hotmail")
8941 (description
8942 "Libzapojit is a GLib-based library for accessing online service APIs of
8943 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8944 (license license:lgpl2.1+)))
8945
8946 (define-public gnome-clocks
8947 (package
8948 (name "gnome-clocks")
8949 (version "3.34.0")
8950 (source (origin
8951 (method url-fetch)
8952 (uri (string-append "mirror://gnome/sources/" name "/"
8953 (version-major+minor version) "/"
8954 name "-" version ".tar.xz"))
8955 (sha256
8956 (base32
8957 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8958 (build-system meson-build-system)
8959 (arguments
8960 '(#:glib-or-gtk? #t
8961 #:phases
8962 (modify-phases %standard-phases
8963 (add-after 'unpack 'skip-gtk-update-icon-cache
8964 ;; Don't create 'icon-theme.cache'.
8965 (lambda _
8966 (substitute* "build-aux/post-install.py"
8967 (("gtk-update-icon-cache") "true"))
8968 #t)))))
8969 (native-inputs
8970 `(("vala" ,vala)
8971 ("pkg-config" ,pkg-config)
8972 ("glib" ,glib "bin") ; for glib-compile-resources
8973 ("desktop-file-utils" ,desktop-file-utils)
8974 ("gettext" ,gettext-minimal)
8975 ("itstool" ,itstool)))
8976 (inputs
8977 `(("glib" ,glib)
8978 ("gtk+" ,gtk+)
8979 ("gsound" ,gsound)
8980 ("geoclue" ,geoclue)
8981 ("geocode-glib" ,geocode-glib)
8982 ("libgweather" ,libgweather)
8983 ("gnome-desktop" ,gnome-desktop)))
8984 (home-page "https://wiki.gnome.org/Apps/Clocks")
8985 (synopsis "GNOME's clock application")
8986 (description
8987 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8988 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8989 (license license:gpl3+)))
8990
8991 (define-public gnome-calendar
8992 (package
8993 (name "gnome-calendar")
8994 (version "3.34.2")
8995 (source (origin
8996 (method url-fetch)
8997 (uri (string-append "mirror://gnome/sources/" name "/"
8998 (version-major+minor version) "/"
8999 name "-" version ".tar.xz"))
9000 (sha256
9001 (base32
9002 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9003 (build-system meson-build-system)
9004 (arguments
9005 '(#:glib-or-gtk? #t
9006 ;; gnome-calendar has to be installed before the tests can be run
9007 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9008 #:tests? #f
9009 #:phases
9010 (modify-phases %standard-phases
9011 (add-after 'unpack 'skip-gtk-update-icon-cache
9012 ;; Don't create 'icon-theme.cache'.
9013 (lambda _
9014 (substitute* "build-aux/meson/meson_post_install.py"
9015 (("gtk-update-icon-cache") "true"))
9016 #t)))))
9017 (native-inputs
9018 `(("gettext" ,gettext-minimal)
9019 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9020 ("pkg-config" ,pkg-config)))
9021 (inputs
9022 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9023 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9024 ("libdazzle" ,libdazzle)
9025 ("libedataserverui" ,evolution-data-server)
9026 ("libgweather" ,libgweather)
9027 ("geoclue" ,geoclue)))
9028 (propagated-inputs
9029 `(("evolution-data-server" ,evolution-data-server)))
9030 (home-page "https://wiki.gnome.org/Apps/Calendar")
9031 (synopsis "GNOME's calendar application")
9032 (description
9033 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9034 desktop. It supports multiple calendars, month, week and year view.")
9035 (license license:gpl3+)))
9036
9037 (define-public gnome-todo
9038 (package
9039 (name "gnome-todo")
9040 (version "3.28.1")
9041 (source (origin
9042 (method url-fetch)
9043 (uri (string-append "mirror://gnome/sources/" name "/"
9044 (version-major+minor version) "/"
9045 name "-" version ".tar.xz"))
9046 (sha256
9047 (base32
9048 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9049 (patches
9050 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9051 (build-system meson-build-system)
9052 (arguments
9053 '(#:glib-or-gtk? #t
9054 #:phases (modify-phases %standard-phases
9055 (add-after
9056 'install 'wrap-gnome-todo
9057 (lambda* (#:key inputs outputs #:allow-other-keys)
9058 (let ((out (assoc-ref outputs "out"))
9059 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9060 (python-path (getenv "PYTHONPATH")))
9061 (wrap-program (string-append out "/bin/gnome-todo")
9062 ;; XXX: gi plugins are broken.
9063 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9064 ;; For plugins.
9065 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9066 `("PYTHONPATH" ":" prefix (,python-path))))
9067 #t)))))
9068 (native-inputs
9069 `(("gettext" ,gettext-minimal)
9070 ("gobject-introspection" ,gobject-introspection)
9071 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9072 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9073 ("pkg-config" ,pkg-config)))
9074 (inputs
9075 `(("rest" ,rest) ; For Todoist plugin
9076 ("json-glib" ,json-glib) ; For Todoist plugin
9077 ("libedataserverui" ,evolution-data-server)
9078 ("libical" ,libical)
9079 ("libpeas" ,libpeas)
9080 ("python-pygobject" ,python-pygobject)
9081 ("evolution-data-server" ,evolution-data-server)
9082 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9083 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9084 (home-page "https://wiki.gnome.org/Apps/Todo")
9085 (synopsis "GNOME's ToDo Application")
9086 (description
9087 "GNOME To Do is a simplistic personal task manager designed to perfectly
9088 fit the GNOME desktop.")
9089 (license license:gpl3+)))
9090
9091 (define-public gnome-dictionary
9092 (package
9093 (name "gnome-dictionary")
9094 (version "3.26.1")
9095 (source (origin
9096 (method url-fetch)
9097 (uri (string-append "mirror://gnome/sources/" name "/"
9098 (version-major+minor version) "/"
9099 name "-" version ".tar.xz"))
9100 (sha256
9101 (base32
9102 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9103 (build-system meson-build-system)
9104 (arguments '(#:glib-or-gtk? #t
9105 #:phases (modify-phases %standard-phases
9106 (add-after 'unpack 'patch-install-script
9107 (lambda _
9108 ;; This script attempts to compile glib schemas
9109 ;; and create an empty MIME database. We do
9110 ;; that elsewhere, so prevent it from running.
9111 (substitute* "build-aux/post-install.sh"
9112 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9113 #t)))))
9114 (native-inputs
9115 `(("glib:bin" ,glib "bin")
9116 ("gobject-introspection" ,gobject-introspection)
9117 ("intltool" ,intltool)
9118 ("itstool" ,itstool)
9119 ("pkg-config" ,pkg-config)
9120 ("xmllint" ,libxml2)))
9121 (inputs
9122 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9123 ("gtk+" ,gtk+)))
9124 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9125 (synopsis "Look up words in dictionary sources")
9126 (description
9127 "GNOME Dictionary can look for the definition or translation of a word in
9128 existing databases over the internet.")
9129 (license license:gpl3+)))
9130
9131 (define-public gnome-tweaks
9132 (package
9133 (name "gnome-tweaks")
9134 (version "3.34.0")
9135 (source (origin
9136 (method url-fetch)
9137 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9138 (version-major+minor version) "/"
9139 "gnome-tweaks-" version ".tar.xz"))
9140 (patches
9141 (list (search-patch "gnome-tweaks-search-paths.patch")))
9142 (sha256
9143 (base32
9144 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
9145 (build-system meson-build-system)
9146 (arguments
9147 `(#:glib-or-gtk? #t
9148 #:configure-flags '("-Dlocalstatedir=/tmp"
9149 "-Dsysconfdir=/tmp")
9150 #:imported-modules ((guix build python-build-system)
9151 ,@%meson-build-system-modules)
9152 #:phases
9153 (modify-phases %standard-phases
9154 (add-after 'unpack 'skip-gtk-update-icon-cache
9155 ;; Don't create 'icon-theme.cache'.
9156 (lambda _
9157 (substitute* "meson-postinstall.py"
9158 (("gtk-update-icon-cache") "true"))
9159 #t))
9160 (add-after 'install 'wrap
9161 (@@ (guix build python-build-system) wrap))
9162 (add-after 'wrap 'wrap-gi-typelib
9163 (lambda* (#:key inputs outputs #:allow-other-keys)
9164 (let ((out (assoc-ref outputs "out"))
9165 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9166 (wrap-program (string-append out "/bin/gnome-tweaks")
9167 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9168 #t)))))
9169 (native-inputs
9170 `(("intltool" ,intltool)
9171 ("pkg-config" ,pkg-config)))
9172 (inputs
9173 `(("gnome-desktop" ,gnome-desktop)
9174 ("gtk+" ,gtk+)
9175 ("gobject-introspection" ,gobject-introspection)
9176 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9177 ("libhandy" ,libhandy-0.0)
9178 ("libnotify" ,libnotify)
9179 ("libsoup" ,libsoup)
9180 ("nautilus" ,nautilus)
9181 ("python" ,python)
9182 ("python-pygobject" ,python-pygobject)))
9183 (synopsis "Customize advanced GNOME 3 options")
9184 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9185 (description
9186 "GNOME Tweaks allows adjusting advanced configuration settings in
9187 GNOME 3. This includes things like the fonts used in user interface elements,
9188 alternative user interface themes, changes in window management behavior,
9189 GNOME Shell appearance and extension, etc.")
9190 (license license:gpl3+)))
9191
9192 (define-public gnome-shell-extensions
9193 (package
9194 (name "gnome-shell-extensions")
9195 (version "3.34.2")
9196 (source (origin
9197 (method url-fetch)
9198 (uri (string-append "mirror://gnome/sources/" name "/"
9199 (version-major+minor version) "/"
9200 name "-" version ".tar.xz"))
9201 (sha256
9202 (base32
9203 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9204 (build-system meson-build-system)
9205 (arguments
9206 '(#:configure-flags '("-Dextension_set=all")))
9207 (native-inputs
9208 `(("glib:bin" ,glib "bin")
9209 ("intltool" ,intltool)
9210 ("pkg-config" ,pkg-config)))
9211 (propagated-inputs
9212 `(("glib" ,glib)))
9213 (synopsis "Extensions for GNOME Shell")
9214 (description "GNOME Shell extensions modify and extend GNOME Shell
9215 functionality and behavior.")
9216 (home-page "https://extensions.gnome.org/")
9217 (license license:gpl3+)))
9218
9219 (define-public arc-theme
9220 (package
9221 (name "arc-theme")
9222 (version "20190917")
9223 (source (origin
9224 (method git-fetch)
9225 (uri (git-reference
9226 (url "https://github.com/NicoHood/arc-theme")
9227 (commit version)))
9228 (file-name (git-file-name name version))
9229 (sha256
9230 (base32
9231 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
9232 (build-system gnu-build-system)
9233 (arguments
9234 '(#:phases
9235 (modify-phases %standard-phases
9236 ;; autogen.sh calls configure at the end of the script.
9237 (replace 'bootstrap
9238 (lambda _ (invoke "autoreconf" "-vfi")))
9239 (add-before 'build 'set-home ;placate Inkscape
9240 (lambda _
9241 (setenv "HOME" (getcwd))
9242 #t)))))
9243 (native-inputs
9244 `(("autoconf" ,autoconf)
9245 ("automake" ,automake)
9246 ("glib" ,glib "bin") ; for glib-compile-resources
9247 ("gnome-shell" ,gnome-shell)
9248 ("gtk+" ,gtk+)
9249 ("inkscape" ,inkscape)
9250 ("optipng" ,optipng)
9251 ("pkg-config" ,pkg-config)
9252 ("sassc" ,sassc/libsass-3.5)))
9253 (synopsis "A flat GTK+ theme with transparent elements")
9254 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
9255 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
9256 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
9257 (home-page "https://github.com/horst3180/arc-theme")
9258 ;; No "or later" language found.
9259 (license license:gpl3+)))
9260
9261 (define-public faba-icon-theme
9262 (package
9263 (name "faba-icon-theme")
9264 (version "4.3")
9265 (source
9266 (origin
9267 (method git-fetch)
9268 (uri (git-reference
9269 (url "https://github.com/snwh/faba-icon-theme")
9270 (commit (string-append "v" version))))
9271 (file-name (git-file-name name version))
9272 (sha256
9273 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
9274 (build-system meson-build-system)
9275 (arguments
9276 `(#:phases
9277 (modify-phases %standard-phases
9278 (add-before 'configure 'disable-post-install
9279 (lambda _
9280 (substitute* "meson.build"
9281 (("meson.add_install_script.*") "")))))))
9282 (native-inputs
9283 `(("autoconf" ,autoconf)
9284 ("automake" ,automake)))
9285 (synopsis "Faba icon theme")
9286 (description
9287 "Faba is a minimal icon set used as a basis for other themes such as
9288 Moka")
9289 (home-page "https://snwh.org/moka")
9290 (license (list license:lgpl3+
9291 license:cc-by-sa4.0))))
9292
9293 (define-public moka-icon-theme
9294 (package
9295 (inherit faba-icon-theme)
9296 (name "moka-icon-theme")
9297 (version "5.4.0")
9298 (source
9299 (origin
9300 (method git-fetch)
9301 (uri (git-reference
9302 (url "https://github.com/snwh/moka-icon-theme")
9303 (commit (string-append "v" version))))
9304 (file-name (git-file-name name version))
9305 (sha256
9306 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
9307 (propagated-inputs
9308 ;; Moka is based on Faba by using it as a fallback icon set instead of
9309 ;; bundling it, so we need to add it as a propagated input.
9310 `(("faba-icon-theme" ,faba-icon-theme)))
9311 (synopsis "Moka icon theme")
9312 (description "Moka is a stylized desktop icon set, designed to be clear,
9313 simple and consistent.")
9314 (license (list license:gpl3+
9315 license:cc-by-sa4.0))))
9316
9317 (define-public arc-icon-theme
9318 (package
9319 (name "arc-icon-theme")
9320 (version "20161122")
9321 (source
9322 (origin
9323 (method git-fetch)
9324 (uri (git-reference
9325 (url "https://github.com/horst3180/arc-icon-theme")
9326 (commit version)))
9327 (file-name (git-file-name name version))
9328 (sha256
9329 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
9330 (build-system gnu-build-system)
9331 (arguments
9332 `(#:phases
9333 (modify-phases %standard-phases
9334 (add-after 'unpack 'disable-configure-during-bootstrap
9335 (lambda _
9336 (substitute* "autogen.sh"
9337 (("^\"\\$srcdir/configure\".*") ""))
9338 #t)))))
9339 (native-inputs
9340 `(("autoconf" ,autoconf)
9341 ("automake" ,automake)))
9342 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
9343 (propagated-inputs
9344 `(("moka-icon-theme" ,moka-icon-theme)))
9345 (synopsis "Arc icon theme")
9346 (description "The Arc icon theme provides a set of icons matching the
9347 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
9348 the Moka icon theme.")
9349 (home-page "https://github.com/horst3180/arc-icon-theme")
9350 (license license:gpl3+)))
9351
9352 (define-public folks
9353 (package
9354 (name "folks")
9355 (version "0.13.1")
9356 (source (origin
9357 (method url-fetch)
9358 (uri (string-append
9359 "mirror://gnome/sources/folks/"
9360 (version-major+minor version) "/"
9361 "folks-" version ".tar.xz"))
9362 (sha256
9363 (base32
9364 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9365 (build-system meson-build-system)
9366 (arguments
9367 '(#:phases
9368 (modify-phases %standard-phases
9369 (add-after 'unpack 'skip-gtk-update-icon-cache
9370 ;; Don't create 'icon-theme.cache'.
9371 (lambda _
9372 (substitute* "meson_post_install.py"
9373 (("gtk-update-icon-cache") "true"))
9374 #t)))))
9375 (inputs
9376 `(("bdb" ,bdb)
9377 ("dbus-glib" ,dbus-glib)
9378 ("evolution-data-server" ,evolution-data-server)
9379 ("glib" ,glib)
9380 ("libgee" ,libgee)
9381 ("readline" ,readline)
9382 ("telepathy-glib" ,telepathy-glib)))
9383 (native-inputs
9384 `(("glib:bin" ,glib "bin")
9385 ("gobject-introspection" ,gobject-introspection)
9386 ("intltool" ,intltool)
9387 ("pkg-config" ,pkg-config)
9388 ("vala" ,vala)))
9389 (synopsis "Library to aggregate data about people")
9390 (description "Libfolks is a library that aggregates information about people
9391 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9392 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9393 etc.) to create metacontacts. It's written in Vala, which generates C code when
9394 compiled.")
9395 (home-page "https://wiki.gnome.org/Projects/Folks")
9396 (license license:lgpl2.1+)))
9397
9398 (define-public gfbgraph
9399 (package
9400 (name "gfbgraph")
9401 (version "0.2.4")
9402 (source (origin
9403 (method url-fetch)
9404 (uri (string-append
9405 "mirror://gnome/sources/gfbgraph/"
9406 (version-major+minor version) "/"
9407 "gfbgraph-" version ".tar.xz"))
9408 (sha256
9409 (base32
9410 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9411 (build-system glib-or-gtk-build-system)
9412 (arguments
9413 `(#:tests? #f ; tests appear to require the network
9414 #:configure-flags '("--disable-static"
9415 "--enable-gtk-doc"
9416 "--enable-introspection")))
9417 (native-inputs
9418 `(("gobject-introspection" ,gobject-introspection)
9419 ("gtk-doc" ,gtk-doc)
9420 ("pkg-config" ,pkg-config)
9421
9422 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9423 ("autoconf" ,autoconf)
9424 ("automake" ,automake)
9425 ("libtool" ,libtool)
9426 ("which" ,which)))
9427 (inputs
9428 `(("json-glib" ,json-glib)
9429 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9430 ("rest" ,rest)))
9431 (synopsis "GLib/GObject wrapper for the Facebook API")
9432 (description "This library allows you to use the Facebook API from
9433 GLib/GObject code.")
9434 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9435 (license license:lgpl2.1+)))
9436
9437 (define-public libgnomekbd
9438 (package
9439 (name "libgnomekbd")
9440 (version "3.26.1")
9441 (source (origin
9442 (method url-fetch)
9443 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9444 (version-major+minor version) "/"
9445 "libgnomekbd-" version ".tar.xz"))
9446 (sha256
9447 (base32
9448 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9449 (build-system gnu-build-system)
9450 (native-inputs
9451 `(("pkg-config" ,pkg-config)
9452 ("glib" ,glib "bin")
9453 ("intltool" ,intltool)))
9454 (propagated-inputs
9455 ;; Referred to in .h files and .pc.
9456 `(("glib" ,glib)
9457 ("gtk+" ,gtk+)
9458 ("libxklavier" ,libxklavier)))
9459 (home-page "https://www.gnome.org")
9460 (synopsis "GNOME keyboard configuration library")
9461 (description
9462 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9463 environment, which can notably display keyboard layouts.")
9464 (license license:lgpl2.0+)))
9465
9466 ;;; This package is no longer maintained:
9467 ;;; https://wiki.gnome.org/Attic/LibUnique
9468 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9469 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9470 (define-public libunique
9471 (package
9472 (name "libunique")
9473 (version "3.0.2")
9474 (source (origin
9475 (method url-fetch)
9476 (uri (string-append "mirror://gnome/sources/" name "/"
9477 (version-major+minor version) "/"
9478 name "-" version ".tar.xz"))
9479 (sha256
9480 (base32
9481 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9482 (build-system glib-or-gtk-build-system)
9483 (arguments
9484 `(#:configure-flags '("--disable-static"
9485 "--disable-dbus" ; use gdbus
9486 "--enable-introspection")))
9487 (native-inputs
9488 `(("pkg-config" ,pkg-config)
9489 ("gobject-introspection" ,gobject-introspection)
9490 ("glib:bin" ,glib "bin")
9491 ("gtk-doc" ,gtk-doc)))
9492 (propagated-inputs
9493 ;; Referred to in .h files and .pc.
9494 `(("gtk+" ,gtk+)))
9495 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9496 (synopsis "Library for writing single instance applications")
9497 (description
9498 "Libunique is a library for writing single instance applications. If you
9499 launch a single instance application twice, the second instance will either just
9500 quit or will send a message to the running instance. Libunique makes it easy to
9501 write this kind of application, by providing a base class, taking care of all
9502 the IPC machinery needed to send messages to a running instance, and also
9503 handling the startup notification side.")
9504 (license license:lgpl2.1+)))
9505
9506 (define-public gnome-calculator
9507 (package
9508 (name "gnome-calculator")
9509 (version "3.34.1")
9510 (source
9511 (origin
9512 (method url-fetch)
9513 (uri (string-append "mirror://gnome/sources/" name "/"
9514 (version-major+minor version) "/"
9515 name "-" version ".tar.xz"))
9516 (sha256
9517 (base32
9518 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9519 (build-system meson-build-system)
9520 (arguments '(#:glib-or-gtk? #t))
9521 (native-inputs
9522 `(("gettext" ,gettext-minimal)
9523 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9524 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9525 ("itstool" ,itstool)
9526 ("vala" ,vala)
9527 ("pkg-config" ,pkg-config)))
9528 (inputs
9529 `(("glib" ,glib)
9530 ("gtksourceview" ,gtksourceview)
9531 ("libgee" ,libgee)
9532 ("libsoup" ,libsoup)
9533 ("libxml2" ,libxml2)
9534 ("mpc" ,mpc)
9535 ("mpfr" ,mpfr)))
9536 (home-page "https://wiki.gnome.org/Apps/Calculator")
9537 (synopsis "Desktop calculator")
9538 (description
9539 "Calculator is an application that solves mathematical equations and
9540 is suitable as a default application in a Desktop environment.")
9541 (license license:gpl3)))
9542
9543 (define-public xpad
9544 (package
9545 (name "xpad")
9546 (version "5.1.0")
9547 (source
9548 (origin
9549 (method url-fetch)
9550 (uri (string-append "https://launchpad.net/xpad/trunk/"
9551 version "/+download/"
9552 name "-" version ".tar.bz2"))
9553 (sha256
9554 (base32
9555 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9556 (build-system gnu-build-system)
9557 (native-inputs
9558 `(("autoconf" ,autoconf)
9559 ("automake" ,automake)
9560 ("gtk+:bin" ,gtk+ "bin")
9561 ("intltool" ,intltool)
9562 ("pkg-config" ,pkg-config)))
9563 (inputs
9564 `(("gtksourceview" ,gtksourceview-3)
9565 ("libsm" ,libsm)))
9566 (home-page "https://wiki.gnome.org/Apps/Xpad")
9567 (synopsis "Virtual sticky note")
9568 (description
9569 "Xpad is a sticky note that strives to be simple, fault tolerant,
9570 and customizable. Xpad consists of independent pad windows, each is
9571 basically a text box in which notes can be written.")
9572 (license license:gpl3+)))
9573
9574 (define-public gucharmap
9575 (let ((unicode-files
9576 '(("Blocks.txt"
9577 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9578 ("DerivedAge.txt"
9579 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9580 ("NamesList.txt"
9581 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9582 ("Scripts.txt"
9583 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9584 ("UnicodeData.txt"
9585 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9586 ("Unihan.zip"
9587 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9588 (package
9589 (name "gucharmap")
9590 (version "12.0.1")
9591 (source
9592 (origin
9593 (method url-fetch)
9594 (uri (string-append "mirror://gnome/sources/" name "/"
9595 (version-major+minor version) "/"
9596 name "-" version ".tar.xz"))
9597 (sha256
9598 (base32
9599 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9600 (build-system glib-or-gtk-build-system)
9601 (arguments
9602 `(#:modules ((ice-9 match)
9603 (guix build glib-or-gtk-build-system)
9604 (guix build utils))
9605 #:configure-flags
9606 (list "--with-unicode-data=../unicode-data")
9607 #:phases
9608 (modify-phases %standard-phases
9609 (add-after 'unpack 'prepare-unicode-data
9610 (lambda* (#:key inputs #:allow-other-keys)
9611 (mkdir-p "../unicode-data")
9612 (with-directory-excursion "../unicode-data"
9613 (for-each (match-lambda
9614 ((file _)
9615 (install-file (assoc-ref inputs file) ".")))
9616 ',unicode-files))
9617 #t)))))
9618 (native-inputs
9619 `(("desktop-file-utils" ,desktop-file-utils)
9620 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9621 ("gobject-introspection" ,gobject-introspection)
9622 ("intltool" ,intltool)
9623 ("itstool" ,itstool)
9624 ("pkg-config" ,pkg-config)
9625 ,@(map (match-lambda
9626 ((file hash)
9627 `(,file
9628 ,(origin
9629 (method url-fetch)
9630 (uri (string-append
9631 "http://www.unicode.org/Public/12.0.0/ucd/"
9632 file))
9633 (sha256 (base32 hash))))))
9634 unicode-files)
9635 ("unzip" ,unzip)))
9636 (inputs
9637 `(("gtk+" ,gtk+)
9638 ("xmllint" ,libxml2)))
9639 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9640 (synopsis "Unicode character picker and font browser")
9641 (description
9642 "This program allows you to browse through all the available Unicode
9643 characters and categories for the installed fonts, and to examine their
9644 detailed properties. It is an easy way to find the character you might
9645 only know by its Unicode name or code point.")
9646 (license license:gpl3+))))
9647
9648 (define-public bluefish
9649 (package
9650 (name "bluefish")
9651 (version "2.2.11")
9652 (source
9653 (origin
9654 (method url-fetch)
9655 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
9656 "bluefish-" version ".tar.gz"))
9657 (sha256
9658 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
9659 (build-system gnu-build-system)
9660 (native-inputs
9661 `(("desktop-file-utils" ,desktop-file-utils)
9662 ("intltool" ,intltool)
9663 ("pkg-config" ,pkg-config)))
9664 (inputs
9665 `(("enchant" ,enchant)
9666 ("gtk+" ,gtk+)
9667 ("python" ,python-wrapper)
9668 ("xmllint" ,libxml2)
9669 ("gucharmap" ,gucharmap)))
9670 (home-page "http://bluefish.openoffice.nl")
9671 (synopsis "Web development studio")
9672 (description
9673 "Bluefish is an editor targeted towards programmers and web developers,
9674 with many options to write web sites, scripts and other code.
9675 Bluefish supports many programming and markup languages.")
9676 (license license:gpl3+)))
9677
9678 (define-public gnome-system-monitor
9679 (package
9680 (name "gnome-system-monitor")
9681 (version "3.32.1")
9682 (source
9683 (origin
9684 (method url-fetch)
9685 (uri (string-append "mirror://gnome/sources/" name "/"
9686 (version-major+minor version) "/"
9687 name "-" version ".tar.xz"))
9688 (sha256
9689 (base32
9690 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
9691 (build-system meson-build-system)
9692 (arguments
9693 '(#:glib-or-gtk? #t
9694 #:configure-flags '("-Dsystemd=false")))
9695 (native-inputs
9696 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
9697 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
9698 ("intltool" ,intltool)
9699 ("itstool" ,itstool)
9700 ("libgtop" ,libgtop)
9701 ("polkit" ,polkit)
9702 ("pkg-config" ,pkg-config)))
9703 (inputs
9704 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
9705 ("gtk+" ,gtk+)
9706 ("gtkmm" ,gtkmm)
9707 ("librsvg" ,librsvg)
9708 ("libxml2" ,libxml2)
9709 ("libwnck" ,libwnck)))
9710 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
9711 (synopsis "Process viewer and system resource monitor for GNOME")
9712 (description
9713 "GNOME System Monitor is a GNOME process viewer and system monitor with
9714 an attractive, easy-to-use interface. It has features, such as a tree view
9715 for process dependencies, icons for processes, the ability to hide processes,
9716 graphical time histories of CPU/memory/swap usage and the ability to
9717 kill/reinice processes.")
9718 (license license:gpl2+)))
9719
9720 (define-public python-pyatspi
9721 (package
9722 (name "python-pyatspi")
9723 (version "2.34.0")
9724 (source (origin
9725 (method url-fetch)
9726 (uri (string-append
9727 "mirror://gnome/sources/pyatspi/"
9728 (version-major+minor version)
9729 "/pyatspi-" version ".tar.xz"))
9730 (sha256
9731 (base32
9732 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
9733 (build-system gnu-build-system)
9734 (arguments
9735 `(#:phases
9736 (modify-phases %standard-phases
9737 (add-before 'build 'fix-atk-load
9738 (lambda _
9739 (substitute* "pyatspi/__init__.py"
9740 (("from gi.repository import Atspi")
9741 "gi.require_version('Gtk', '3.0')
9742 from gi.repository import Gtk
9743 from gi.repository import Atspi"))
9744 #t)))))
9745 (native-inputs
9746 `(("pkg-config" ,pkg-config)))
9747 (inputs
9748 `(("python" ,python)))
9749 (propagated-inputs
9750 `(("python-pygobject" ,python-pygobject)))
9751 (synopsis "Python client bindings for D-Bus AT-SPI")
9752 (home-page "https://wiki.linuxfoundation.org/accessibility\
9753 /atk/at-spi/at-spi_on_d-bus")
9754 (description
9755 "This package includes a python client library for the AT-SPI D-Bus
9756 accessibility infrastructure.")
9757 (license license:lgpl2.0)
9758 (properties '((upstream-name . "pyatspi")))))
9759
9760 (define-public python2-pyatspi
9761 (package
9762 (inherit python-pyatspi)
9763 (name "python2-pyatspi")
9764 (inputs
9765 `(("python" ,python-2)))
9766 (propagated-inputs
9767 `(("python-pygobject" ,python2-pygobject)))))
9768
9769 (define-public orca
9770 (package
9771 (name "orca")
9772 (version "3.34.1")
9773 (source (origin
9774 (method url-fetch)
9775 (uri (string-append
9776 "mirror://gnome/sources/" name "/"
9777 (version-major+minor version) "/"
9778 name "-" version ".tar.xz"))
9779 (sha256
9780 (base32
9781 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
9782 (build-system glib-or-gtk-build-system)
9783 (arguments
9784 '(#:phases
9785 (modify-phases %standard-phases
9786 (add-before 'configure 'qualify-xkbcomp
9787 (lambda* (#:key inputs #:allow-other-keys)
9788 (let ((xkbcomp (string-append
9789 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9790 (substitute* "src/orca/orca.py"
9791 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9792 #t))
9793 (add-after 'install 'wrap-orca
9794 (lambda* (#:key outputs #:allow-other-keys)
9795 (let* ((out (assoc-ref outputs "out"))
9796 (prog (string-append out "/bin/orca")))
9797 (wrap-program prog
9798 `("GI_TYPELIB_PATH" ":" prefix
9799 (,(getenv "GI_TYPELIB_PATH")))
9800 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9801 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9802 `("PYTHONPATH" ":" prefix
9803 (,(getenv "PYTHONPATH")))))
9804 #t)))))
9805 (native-inputs
9806 `(("intltool" ,intltool)
9807 ("itstool" ,itstool)
9808 ("pkg-config" ,pkg-config)
9809 ("xmllint" ,libxml2)))
9810 (inputs
9811 `(("at-spi2-atk" ,at-spi2-atk)
9812 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9813 ("gstreamer" ,gstreamer)
9814 ("gst-plugins-base" ,gst-plugins-base)
9815 ("gst-plugins-good" ,gst-plugins-good)
9816 ("gtk+" ,gtk+)
9817 ("python" ,python)
9818 ("python-pygobject" ,python-pygobject)
9819 ("python-pyatspi" ,python-pyatspi)
9820 ("python-speechd" ,speech-dispatcher)
9821 ("xkbcomp" ,xkbcomp)))
9822 (synopsis
9823 "Screen reader for individuals who are blind or visually impaired")
9824 (home-page "https://wiki.gnome.org/Projects/Orca")
9825 (description
9826 "Orca is a screen reader that provides access to the graphical desktop
9827 via speech and refreshable braille. Orca works with applications and toolkits
9828 that support the Assistive Technology Service Provider Interface (AT-SPI).")
9829 (license license:lgpl2.1+)))
9830
9831 (define-public gspell
9832 (package
9833 (name "gspell")
9834 (version "1.8.2")
9835 (source (origin
9836 (method url-fetch)
9837 (uri (string-append "mirror://gnome/sources/" name "/"
9838 (version-major+minor version) "/"
9839 name "-" version ".tar.xz"))
9840 (sha256
9841 (base32
9842 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
9843 (patches (search-patches "gspell-dash-test.patch"))))
9844 (build-system glib-or-gtk-build-system)
9845 (arguments
9846 '(#:configure-flags (list "--enable-vala")
9847 #:phases
9848 (modify-phases %standard-phases
9849 (add-before 'check 'pre-check
9850 (lambda* (#:key inputs #:allow-other-keys)
9851 ;; Tests require a running X server.
9852 (system "Xvfb :1 &")
9853 (setenv "DISPLAY" ":1")
9854
9855 ;; For the missing /etc/machine-id.
9856 (setenv "DBUS_FATAL_WARNINGS" "0")
9857
9858 ;; Allow Enchant and its Aspell backend to find the en_US
9859 ;; dictionary.
9860 (setenv "ASPELL_DICT_DIR"
9861 (string-append (assoc-ref inputs "aspell-dict-en")
9862 "/lib/aspell"))
9863 #t)))))
9864 (inputs
9865 `(("gtk+" ,gtk+)
9866 ("glib" ,glib)
9867 ("iso-codes" ,iso-codes)))
9868 (native-inputs
9869 `(("glib" ,glib "bin")
9870 ("gobject-introspection" ,gobject-introspection)
9871 ("pkg-config" ,pkg-config)
9872 ("vala" ,vala) ;for VAPI, needed by Geary
9873 ("xmllint" ,libxml2)
9874
9875 ;; For tests.
9876 ("aspell-dict-en" ,aspell-dict-en)
9877 ("xorg-server" ,xorg-server-for-tests)))
9878 (propagated-inputs
9879 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
9880 (home-page "https://wiki.gnome.org/Projects/gspell")
9881 (synopsis "GNOME's alternative spell checker")
9882 (description
9883 "gspell provides a flexible API to add spell-checking to a GTK+
9884 application. It provides a GObject API, spell-checking to text entries and
9885 text views, and buttons to choose the language.")
9886 (license license:gpl2+)))
9887
9888 (define-public gnome-planner
9889 (package
9890 (name "gnome-planner")
9891 (version "0.14.6")
9892 (source (origin
9893 (method url-fetch)
9894 (uri (string-append "mirror://gnome/sources/planner/"
9895 (version-major+minor version) "/planner-"
9896 version ".tar.xz"))
9897 (sha256
9898 (base32
9899 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9900 (build-system glib-or-gtk-build-system)
9901 (arguments
9902 ;; Disable the Python bindings because the Planner program functions
9903 ;; without them, and (as of 2017-06-13) we have not packaged all of
9904 ;; packages that are necessary for building the Python bindings.
9905 `(#:configure-flags
9906 (list "--disable-python"
9907 ,@(if (string=? "aarch64-linux" (%current-system))
9908 '("--build=aarch64-unknown-linux-gnu")
9909 '()))))
9910 (inputs
9911 `(("libgnomecanvas" ,libgnomecanvas)
9912 ("libgnomeui" ,libgnomeui)
9913 ("libglade" ,libglade)
9914 ("gnome-vfs" ,gnome-vfs)
9915 ("gconf" ,gconf)
9916 ("libxml2" ,libxml2)
9917 ("libxslt" ,libxslt)
9918 ("gtk+" ,gtk+)
9919 ("glib" ,glib)))
9920 (native-inputs
9921 `(("intltool" ,intltool)
9922 ("scrollkeeper" ,scrollkeeper)
9923 ("pkg-config" ,pkg-config)))
9924 (home-page "https://wiki.gnome.org/Apps/Planner")
9925 (synopsis "Project management software for the GNOME desktop")
9926 (description
9927 "GNOME Planner is a project management tool based on the Work Breakdown
9928 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9929 the resources, tasks, and constraints that you define, Planner generates
9930 various views into a project. For example, Planner can show a Gantt chart of
9931 the project. It can show a detailed summary of tasks including their
9932 duration, cost, and current progress. It can also show a report of resource
9933 utilization that highlights under-utilized and over-utilized resources. These
9934 views can be printed as PDF or PostScript files, or exported to HTML.")
9935 (license license:gpl2+)))
9936
9937 (define-public lollypop
9938 (package
9939 (name "lollypop")
9940 (version "1.2.32")
9941 (source
9942 (origin
9943 (method url-fetch)
9944 (uri (string-append "https://adishatz.org/lollypop/"
9945 "lollypop-" version ".tar.xz"))
9946 (sha256
9947 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
9948 (build-system meson-build-system)
9949 (arguments
9950 `(#:imported-modules
9951 (,@%meson-build-system-modules
9952 (guix build python-build-system))
9953 #:modules
9954 ((guix build meson-build-system)
9955 ((guix build python-build-system) #:prefix python:)
9956 (guix build utils))
9957 #:glib-or-gtk? #t
9958 #:tests? #f ; no test suite
9959 #:phases
9960 (modify-phases %standard-phases
9961 (add-after 'install 'wrap-program
9962 (lambda* (#:key outputs #:allow-other-keys)
9963 (let ((out (assoc-ref outputs "out"))
9964 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9965 (wrap-program (string-append out "/bin/lollypop")
9966 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9967 #t))
9968 (add-after 'install 'wrap-python
9969 (assoc-ref python:%standard-phases 'wrap)))))
9970 (native-inputs
9971 `(("intltool" ,intltool)
9972 ("itstool" ,itstool)
9973 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9974 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9975 ("pkg-config" ,pkg-config)))
9976 (inputs
9977 `(("gobject-introspection" ,gobject-introspection)
9978 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9979 ("gst-plugins-base" ,gst-plugins-base)
9980 ("libnotify" ,libnotify)
9981 ("libsecret" ,libsecret)
9982 ("libsoup" ,libsoup)
9983 ("python" ,python)
9984 ("python-beautifulsoup4" ,python-beautifulsoup4)
9985 ("python-gst" ,python-gst)
9986 ("python-pil" ,python-pillow)
9987 ("python-pycairo" ,python-pycairo)
9988 ("python-pygobject" ,python-pygobject)
9989 ("python-pylast" ,python-pylast)
9990 ("totem-pl-parser" ,totem-pl-parser)
9991 ("webkitgtk" ,webkitgtk)))
9992 (propagated-inputs
9993 `(;; gst-plugins-base is required to start Lollypop,
9994 ;; the others are required to play streaming.
9995 ("gst-plugins-good" ,gst-plugins-good)
9996 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9997 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9998 (synopsis "GNOME music playing application")
9999 (description
10000 "Lollypop is a music player designed to play well with GNOME desktop.
10001 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10002 from artists and tracks from the web. It also fetches cover artworks
10003 automatically and it can stream songs from online music services and charts.")
10004 (license license:gpl3+)))
10005
10006 (define-public gnome-video-effects
10007 (package
10008 (name "gnome-video-effects")
10009 (version "0.4.3")
10010 (source (origin
10011 (method url-fetch)
10012 (uri (string-append "mirror://gnome/sources/" name "/"
10013 (version-major+minor version) "/" name "-"
10014 version ".tar.xz"))
10015 (sha256
10016 (base32
10017 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
10018 (build-system glib-or-gtk-build-system)
10019 (arguments
10020 `(#:out-of-source? #f))
10021 (native-inputs
10022 `(("glib:bin" ,glib "bin")
10023 ("intltool" ,intltool)
10024 ("gettext" ,gettext-minimal)
10025 ("pkg-config" ,pkg-config)))
10026 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10027 (synopsis "Video effects for Cheese and other GNOME applications")
10028 (description
10029 "A collection of GStreamer video filters and effects to be used in
10030 photo-booth-like software, such as Cheese.")
10031 (license license:gpl2+)))
10032
10033 (define-public cheese
10034 (package
10035 (name "cheese")
10036 (version "3.34.0")
10037 (source (origin
10038 (method url-fetch)
10039 (uri (string-append "mirror://gnome/sources/" name "/"
10040 (version-major+minor version) "/" name "-"
10041 version ".tar.xz"))
10042 (sha256
10043 (base32
10044 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
10045 (arguments
10046 `(#:glib-or-gtk? #t
10047 ;; Tests require GDK.
10048 #:tests? #f
10049 #:phases
10050 (modify-phases %standard-phases
10051 (add-after 'unpack 'skip-gtk-update-icon-cache
10052 (lambda _
10053 ;; Don't create 'icon-theme.cache'
10054 (substitute* "meson_post_install.py"
10055 (("gtk-update-icon-cache") (which "true")))
10056 #t))
10057 (add-after 'install 'wrap-cheese
10058 (lambda* (#:key inputs outputs #:allow-other-keys)
10059 (let ((out (assoc-ref outputs "out"))
10060 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10061 (wrap-program (string-append out "/bin/cheese")
10062 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10063 #t)))))
10064 (build-system meson-build-system)
10065 (native-inputs
10066 `(("docbook-xsl" ,docbook-xsl)
10067 ("glib:bin" ,glib "bin")
10068 ("gtk-doc" ,gtk-doc)
10069 ("intltool" ,intltool)
10070 ("itstool" ,itstool)
10071 ("libxml2" ,libxml2)
10072 ("libxslt" ,libxslt)
10073 ("pkg-config" ,pkg-config)
10074 ("vala" ,vala)))
10075 (propagated-inputs
10076 `(("gnome-video-effects" ,gnome-video-effects)
10077 ("clutter" ,clutter)
10078 ("clutter-gst" ,clutter-gst)
10079 ("clutter-gtk" ,clutter-gtk)
10080 ("libcanberra" ,libcanberra)
10081 ("gdk-pixbuf" ,gdk-pixbuf)
10082 ("glib" ,glib)
10083 ("gstreamer" ,gstreamer)))
10084 (inputs
10085 `(("gnome-desktop" ,gnome-desktop)
10086 ("gobject-introspection" ,gobject-introspection)
10087 ("gst-plugins-base" ,gst-plugins-base)
10088 ("gst-plugins-bad" ,gst-plugins-bad)
10089 ("gtk+" ,gtk+)
10090 ("libx11" ,libx11)
10091 ("libxtst" ,libxtst)))
10092 (home-page "https://wiki.gnome.org/Apps/Cheese")
10093 (synopsis "Webcam photo booth software for GNOME")
10094 (description
10095 "Cheese uses your webcam to take photos and videos. Cheese can also
10096 apply fancy special effects and lets you share the fun with others.")
10097 (license license:gpl2+)))
10098
10099 (define-public sound-juicer
10100 (package
10101 (name "sound-juicer")
10102 (version "3.24.0")
10103 (source
10104 (origin
10105 (method url-fetch)
10106 (uri (string-append "mirror://gnome/sources/" name "/"
10107 (version-major+minor version) "/"
10108 name "-" version ".tar.xz"))
10109 (sha256
10110 (base32
10111 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10112 (build-system glib-or-gtk-build-system)
10113 (native-inputs
10114 `(("desktop-file-utils" ,desktop-file-utils)
10115 ("intltool" ,intltool)
10116 ("itstool" ,itstool)
10117 ("pkg-config" ,pkg-config)
10118 ("xmllint" ,libxml2)))
10119 (inputs
10120 `(("gtk+" ,gtk+)
10121 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10122 ("gstreamer" ,gstreamer)
10123 ("gst-plugins-base" ,gst-plugins-base)
10124 ("gst-plugins-good" ,gst-plugins-good)
10125 ("iso-codes" ,iso-codes)
10126 ("libbrasero-media3" ,brasero)
10127 ("libcanberra" ,libcanberra)
10128 ("libdiscid" ,libdiscid)
10129 ("libmusicbrainz" ,libmusicbrainz)
10130 ("neon" ,neon)))
10131 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10132 (synopsis "Audio music cd ripper")
10133 (description "Sound Juicer extracts audio from compact discs and convert it
10134 into audio files that a personal computer or digital audio player can play.
10135 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10136 mp3, Ogg Vorbis and FLAC")
10137 (license license:gpl2+)))
10138
10139 (define-public soundconverter
10140 (package
10141 (name "soundconverter")
10142 (version "3.0.2")
10143 (source
10144 (origin
10145 (method url-fetch)
10146 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10147 version "/+download/"
10148 "soundconverter-" version ".tar.xz"))
10149
10150 (sha256
10151 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10152 (build-system glib-or-gtk-build-system)
10153 (arguments
10154 `(#:imported-modules ((guix build python-build-system)
10155 (guix build glib-or-gtk-build-system)
10156 ,@%gnu-build-system-modules)
10157
10158 #:modules ((guix build glib-or-gtk-build-system)
10159 (guix build utils)
10160 ((guix build gnu-build-system) #:prefix gnu:)
10161 ((guix build python-build-system) #:prefix python:))
10162
10163 #:phases
10164 (modify-phases %standard-phases
10165 (add-after 'install 'wrap-soundconverter-for-python
10166 (assoc-ref python:%standard-phases 'wrap))
10167 (add-after 'install 'wrap-soundconverter
10168 (lambda* (#:key inputs outputs #:allow-other-keys)
10169 (let ((out (assoc-ref outputs "out"))
10170 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10171 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10172 (wrap-program (string-append out "/bin/soundconverter")
10173 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10174 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10175 #t)))))
10176 (native-inputs
10177 `(("intltool" ,intltool)
10178 ("pkg-config" ,pkg-config)
10179 ("glib:bin" ,glib "bin")))
10180 (inputs
10181 `(("gtk+" ,gtk+)
10182 ("python" ,python)
10183 ("python-pygobject" ,python-pygobject)
10184 ("gstreamer" ,gstreamer)
10185 ("gst-plugins-base" ,gst-plugins-base)))
10186 (home-page "https://soundconverter.org/")
10187 (synopsis "Convert between audio formats with a graphical interface")
10188 (description
10189 "SoundConverter supports converting between many audio formats including
10190 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10191 configurable file renaming. ")
10192 (license license:gpl3)))
10193
10194 (define-public workrave
10195 (package
10196 (name "workrave")
10197 (version "1.10.42")
10198 (source
10199 (origin
10200 (method git-fetch)
10201 (uri (git-reference
10202 (url "https://github.com/rcaelers/workrave")
10203 (commit (string-append "v" (string-map
10204 (match-lambda (#\. #\_) (chr chr))
10205 version)))))
10206 (file-name (git-file-name name version))
10207 (sha256
10208 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
10209 (build-system glib-or-gtk-build-system)
10210 (arguments
10211 ;; The only tests are maintainer tests (in po/), which fail.
10212 `(#:tests? #f))
10213 (inputs `(("glib" ,glib)
10214 ("gtk+" ,gtk+)
10215 ("gdk-pixbuf" ,gdk-pixbuf)
10216 ("gtkmm" ,gtkmm)
10217 ("glibmm" ,glibmm)
10218 ("libx11" ,libx11)
10219 ("libxtst" ,libxtst)
10220 ("dconf" ,dconf)
10221 ("libice" ,libice)
10222 ("libsm" ,libsm)
10223 ("libxscrnsaver" ,libxscrnsaver)))
10224 (native-inputs `(("boost" ,boost)
10225 ("pkg-config" ,pkg-config)
10226 ("gettext" ,gettext-minimal)
10227 ("autoconf" ,autoconf)
10228 ("autoconf-archive" , autoconf-archive)
10229 ("automake" ,automake)
10230 ("libtool" ,libtool)
10231 ("intltool" ,intltool)
10232 ("gobject-introspection" ,gobject-introspection)
10233 ("python3" ,python-3)
10234 ("python-jinja2" ,python-jinja2)))
10235 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10236 (description
10237 "Workrave is a program that assists in the recovery and prevention of
10238 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10239 micro-pauses and rest breaks, and restricts you to your daily limit.")
10240 (home-page "http://www.workrave.org")
10241 (license license:gpl3+)))
10242
10243 (define-public ghex
10244 (package
10245 (name "ghex")
10246 (version "3.18.4")
10247 (source (origin
10248 (method url-fetch)
10249 (uri (string-append "mirror://gnome/sources/ghex/"
10250 (version-major+minor version) "/"
10251 "ghex-" version ".tar.xz"))
10252 (sha256
10253 (base32
10254 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10255 (build-system meson-build-system)
10256 (arguments
10257 '(#:glib-or-gtk? #t
10258 #:phases
10259 (modify-phases %standard-phases
10260 (add-after 'unpack 'skip-gtk-update-icon-cache
10261 ;; Don't create 'icon-theme.cache'.
10262 (lambda _
10263 (substitute* "meson_post_install.py"
10264 (("gtk-update-icon-cache") (which "true")))
10265 #t)))))
10266 (native-inputs
10267 `(("pkg-config" ,pkg-config)
10268 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10269 ("gnome-common" ,gnome-common)
10270 ("which" ,which)
10271 ("intltool" ,intltool)
10272 ("yelp-tools" ,yelp-tools)
10273 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10274 (inputs
10275 `(("atk" ,atk)
10276 ("gtk" ,gtk+)))
10277 (synopsis "GNOME hexadecimal editor")
10278 (description "The GHex program can view and edit files in two ways:
10279 hexadecimal or ASCII. It is useful for editing binary files in general.")
10280 (home-page "https://wiki.gnome.org/Apps/Ghex")
10281 (license license:gpl2)))
10282
10283 (define-public libdazzle
10284 (package
10285 (name "libdazzle")
10286 (version "3.37.1")
10287 (source (origin
10288 (method url-fetch)
10289 (uri (string-append "mirror://gnome/sources/libdazzle/"
10290 (version-major+minor version) "/"
10291 "libdazzle-" version ".tar.xz"))
10292 (sha256
10293 (base32
10294 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10295 (build-system meson-build-system)
10296 (arguments
10297 `(#:phases
10298 (modify-phases %standard-phases
10299 (add-before 'check 'pre-check
10300 (lambda _
10301 ;; Tests require a running X server.
10302 (system "Xvfb :1 &")
10303 (setenv "DISPLAY" ":1")
10304 #t)))))
10305 (native-inputs
10306 `(("glib" ,glib "bin") ; glib-compile-resources
10307 ("pkg-config" ,pkg-config)
10308 ;; For tests.
10309 ("xorg-server" ,xorg-server-for-tests)))
10310 (inputs
10311 `(("glib" ,glib)
10312 ("gobject-introspection" ,gobject-introspection)
10313 ("gtk+" ,gtk+)
10314 ("vala" ,vala)))
10315 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10316 (synopsis "Companion library to GObject and Gtk+")
10317 (description "The libdazzle library is a companion library to GObject and
10318 Gtk+. It provides various features that the authors wish were in the
10319 underlying library but cannot for various reasons. In most cases, they are
10320 wildly out of scope for those libraries. In other cases, they are not quite
10321 generic enough to work for everyone.")
10322 (license license:gpl3+)))
10323
10324 (define-public evolution
10325 (package
10326 (name "evolution")
10327 (version "3.34.2")
10328 (source (origin
10329 (method url-fetch)
10330 (uri (string-append "mirror://gnome/sources/evolution/"
10331 (version-major+minor version) "/"
10332 "evolution-" version ".tar.xz"))
10333 (sha256
10334 (base32
10335 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
10336 (build-system cmake-build-system)
10337 (arguments
10338 `(#:imported-modules (,@%cmake-build-system-modules
10339 (guix build glib-or-gtk-build-system))
10340 #:modules ((guix build cmake-build-system)
10341 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10342 (guix build utils))
10343 #:configure-flags
10344 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10345 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10346 ; in four years and cannot be built.
10347 #:phases
10348 (modify-phases %standard-phases
10349 ;; The build system attempts to install user interface modules to the
10350 ;; output directory of the "evolution-data-server" package. This
10351 ;; change redirects that change.
10352 (add-after 'unpack 'patch-ui-module-dir
10353 (lambda* (#:key outputs #:allow-other-keys)
10354 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10355 (("\\$\\{edsuimoduledir\\}")
10356 (string-append (assoc-ref outputs "out")
10357 "/lib/evolution-data-server/ui-modules")))
10358 #t))
10359 (add-after 'install 'glib-or-gtk-compile-schemas
10360 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10361 (add-after 'install 'glib-or-gtk-wrap
10362 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10363 (native-inputs
10364 `(("glib" ,glib "bin") ; glib-mkenums
10365 ("pkg-config" ,pkg-config)
10366 ("intltool" ,intltool)
10367 ("itstool" ,itstool)))
10368 (inputs
10369 `(("enchant" ,enchant)
10370 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10371 ("gcr" ,gcr)
10372 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10373 ("gnome-autoar" ,gnome-autoar)
10374 ("gnome-desktop" ,gnome-desktop)
10375 ("gspell" ,gspell)
10376 ("highlight" ,highlight)
10377 ("libcanberra" ,libcanberra)
10378 ("libgweather" ,libgweather)
10379 ("libnotify" ,libnotify)
10380 ("libsoup" ,libsoup)
10381 ("nss" ,nss)
10382 ("openldap" ,openldap)
10383 ("webkitgtk" ,webkitgtk)
10384 ("ytnef" ,ytnef)))
10385 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10386 (synopsis "Manage your email, contacts and schedule")
10387 (description "Evolution is a personal information management application
10388 that provides integrated mail, calendaring and address book
10389 functionality.")
10390 ;; See COPYING for details.
10391 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10392 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10393 license:lgpl2.1+)))) ; smime/lib/*
10394
10395 (define-public gthumb
10396 (package
10397 (name "gthumb")
10398 (version "3.8.2")
10399 (source (origin
10400 (method url-fetch)
10401 (uri (string-append "mirror://gnome/sources/gthumb/"
10402 (version-major+minor version) "/"
10403 "gthumb-" version ".tar.xz"))
10404 (sha256
10405 (base32
10406 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
10407 (build-system meson-build-system)
10408 (arguments
10409 `(#:glib-or-gtk? #t
10410 #:configure-flags
10411 ;; Ensure the RUNPATH contains all installed library locations.
10412 (list (string-append "-Dc_link_args=-Wl,-rpath="
10413 (assoc-ref %outputs "out")
10414 "/lib/gthumb/extensions")
10415 (string-append "-Dcpp_link_args=-Wl,-rpath="
10416 (assoc-ref %outputs "out")
10417 "/lib/gthumb/extensions"))))
10418 (native-inputs
10419 `(("pkg-config" ,pkg-config)
10420 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10421 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10422 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10423 ("intltool" ,intltool)
10424 ("itstool" ,itstool)))
10425 (inputs
10426 `(("exiv2" ,exiv2)
10427 ("gtk" ,gtk+)
10428 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10429 ("gstreamer" ,gstreamer)
10430 ("clutter" ,clutter)
10431 ("clutter-gst" ,clutter-gst)
10432 ("clutter-gtk" ,clutter-gtk)
10433 ("libjpeg" ,libjpeg-turbo)
10434 ("libtiff" ,libtiff)
10435 ("libraw" ,libraw)))
10436 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10437 (synopsis "GNOME image viewer and browser")
10438 (description "GThumb is an image viewer, browser, organizer, editor and
10439 advanced image management tool")
10440 (license license:gpl2+)))
10441
10442 (define-public terminator
10443 (package
10444 (name "terminator")
10445 (version "1.91")
10446 (source (origin
10447 (method url-fetch)
10448 (uri (string-append "https://launchpad.net/" name "/"
10449 "gtk3/" version "/" "+download/"
10450 name "-" version ".tar.gz"))
10451 (sha256
10452 (base32
10453 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
10454 (build-system python-build-system)
10455 (native-inputs
10456 `(("intltool" ,intltool)
10457 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10458 ("gettext" ,gettext-minimal)
10459 ("pkg-config" ,pkg-config)))
10460 (inputs
10461 `(("cairo" ,cairo)
10462 ("gobject-introspection" ,gobject-introspection)
10463 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10464 ("python2-pycairo" ,python2-pycairo)
10465 ("python2-pygobject" ,python2-pygobject)
10466 ("python2-psutil" ,python2-psutil)
10467 ("vte" ,vte)))
10468 (arguments
10469 `(#:python ,python-2 ; Python 3 isn't supported
10470 #:imported-modules ((guix build glib-or-gtk-build-system)
10471 ,@%python-build-system-modules)
10472 #:modules ((guix build python-build-system)
10473 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10474 (guix build utils))
10475 #:phases
10476 (modify-phases %standard-phases
10477 (add-after
10478 'install 'wrap-program
10479 (lambda* (#:key outputs #:allow-other-keys)
10480 (let ((prog (string-append (assoc-ref outputs "out")
10481 "/bin/terminator")))
10482 (wrap-program prog
10483 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
10484 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10485 #t)))
10486 (add-after 'wrap-program 'glib-or-gtk-wrap
10487 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10488 (home-page "https://gnometerminator.blogspot.com/")
10489 (synopsis "Store and run multiple GNOME terminals in one window")
10490 (description
10491 "Terminator allows you to run multiple GNOME terminals in a grid and
10492 +tabs, and it supports drag and drop re-ordering of terminals.")
10493 (license license:gpl2)))
10494
10495 (define-public libhandy
10496 (package
10497 (name "libhandy")
10498 (version "1.0.0")
10499 (source
10500 (origin
10501 (method git-fetch)
10502 (uri (git-reference
10503 (url "https://gitlab.gnome.org/GNOME/libhandy")
10504 (commit version)))
10505 (file-name (git-file-name name version))
10506 (sha256
10507 (base32 "193y09yy0302x8fkyrnq591m805xp68bkd93fl5qggxi52k8pj0v"))))
10508 (build-system meson-build-system)
10509 (arguments
10510 `(#:configure-flags
10511 '("-Dglade_catalog=enabled"
10512 "-Dgtk_doc=true")
10513 #:phases
10514 (modify-phases %standard-phases
10515 (add-before 'check 'pre-check
10516 (lambda _
10517 ;; Tests require a running X server.
10518 (system "Xvfb :1 &")
10519 (setenv "DISPLAY" ":1")
10520 #t)))))
10521 (inputs
10522 `(("gtk+" ,gtk+)
10523 ("glade" ,glade3)
10524 ("libxml2" ,libxml2)))
10525 (native-inputs
10526 `(("glib:bin" ,glib "bin")
10527 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10528 ("vala" ,vala)
10529 ("gtk-doc" ,gtk-doc)
10530 ("pkg-config" ,pkg-config)
10531 ("gettext" ,gettext-minimal)
10532
10533 ;; Test suite dependencies.
10534 ("xorg-server" ,xorg-server-for-tests)
10535 ("hicolor-icon-theme" ,hicolor-icon-theme)))
10536 (home-page "https://source.puri.sm/Librem5/libhandy")
10537 (synopsis "Library full of GTK+ widgets for mobile phones")
10538 (description "The aim of the handy library is to help with developing user
10539 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10540 for usage on small and big screens.")
10541 (license license:lgpl2.1+)))
10542
10543 (define-public libhandy-0.0
10544 (package
10545 (inherit libhandy)
10546 (version "0.0.13")
10547 (source
10548 (origin
10549 (method git-fetch)
10550 (uri (git-reference
10551 (url "https://gitlab.gnome.org/GNOME/libhandy")
10552 (commit (string-append "v" version))))
10553 (file-name (git-file-name "libhandy" version))
10554 (sha256
10555 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
10556 (arguments
10557 (substitute-keyword-arguments (package-arguments libhandy)
10558 ((#:configure-flags flags)
10559 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
10560
10561 (define-public libgit2-glib
10562 (package
10563 (name "libgit2-glib")
10564 (version "0.99.0.1")
10565 (source (origin
10566 (method url-fetch)
10567 (uri (string-append "mirror://gnome/sources/" name "/"
10568 (version-major+minor version) "/"
10569 name "-" version ".tar.xz"))
10570 (sha256
10571 (base32
10572 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10573 (build-system meson-build-system)
10574 (native-inputs
10575 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
10576 ("gobject-introspection" ,gobject-introspection)
10577 ("pkg-config" ,pkg-config)
10578 ("python-pygobject" ,python-pygobject)
10579 ("python-wrapper" ,python-wrapper)
10580 ("vala" ,vala)))
10581 (inputs
10582 `(("glib" ,glib)
10583 ("libssh2" ,libssh2)))
10584 (propagated-inputs
10585 `(;; In Requires of libgit2-glib.pc.
10586 ("libgit2" ,libgit2)))
10587 (synopsis "GLib wrapper around the libgit2 Git access library")
10588 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
10589 access library. It only implements the core plumbing functions, not really the
10590 higher level porcelain stuff.")
10591 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
10592 (license license:gpl2+)))
10593
10594 (define-public gitg
10595 (package
10596 (name "gitg")
10597 (version "3.32.1")
10598 (source (origin
10599 (method url-fetch)
10600 (uri (string-append "mirror://gnome/sources/" name "/"
10601 (version-major+minor version) "/"
10602 name "-" version ".tar.xz"))
10603 (sha256
10604 (base32
10605 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
10606 (build-system meson-build-system)
10607 (arguments
10608 `(#:glib-or-gtk? #t
10609 #:phases
10610 (modify-phases %standard-phases
10611 (add-after 'unpack 'disable-post-install-partially
10612 (lambda _
10613 (substitute* "meson_post_install.py"
10614 (("'python'") ; there are no python sources to compile
10615 (string-append "'" (which "true") "'"))
10616 (("gtk-update-icon-cache") (which "true")))
10617 #t))
10618 (add-after 'unpack 'fix-test-sources
10619 (lambda _
10620 (substitute* "tests/libgitg/test-commit.vala"
10621 (("/bin/bash") (which "bash")))
10622 #t))
10623 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10624 (lambda* (#:key outputs #:allow-other-keys)
10625 (let ((prog (string-append (assoc-ref outputs "out")
10626 "/bin/gitg")))
10627 (wrap-program prog
10628 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10629 #t))))))
10630 (inputs
10631 `(("glib" ,glib)
10632 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10633 ("gtk+" ,gtk+)
10634 ("gtkspell3" ,gtkspell3)
10635 ("gtksourceview" ,gtksourceview-3)
10636 ("json-glib" ,json-glib)
10637 ("libdazzle" ,libdazzle)
10638 ("libgee" ,libgee)
10639 ("libgit2-glib" ,libgit2-glib)
10640 ("libpeas" ,libpeas)
10641 ("libsecret" ,libsecret)
10642 ("libsoup" ,libsoup)
10643 ("libxml2" ,libxml2)))
10644 (native-inputs
10645 `(("glib:bin" ,glib "bin")
10646 ("gtk+:bin" ,gtk+ "bin")
10647 ("gobject-introspection" ,gobject-introspection)
10648 ("intltool" ,intltool)
10649 ("pkg-config" ,pkg-config)
10650 ("vala" ,vala)))
10651 (synopsis "Graphical user interface for git")
10652 (description
10653 "gitg is a graphical user interface for git. It aims at being a small,
10654 fast and convenient tool to visualize the history of git repositories.
10655 Besides visualization, gitg also provides several utilities to manage your
10656 repository and commit your work.")
10657 (home-page "https://wiki.gnome.org/Apps/Gitg")
10658 (license license:gpl2+)))
10659
10660 (define-public gamin
10661 (package
10662 (name "gamin")
10663 (version "0.1.10")
10664 (source (origin
10665 (method url-fetch)
10666 (uri (string-append "mirror://gnome/sources/" name "/"
10667 (version-major+minor version) "/"
10668 name "-" version ".tar.bz2"))
10669 (sha256
10670 (base32
10671 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
10672 (build-system gnu-build-system)
10673 (arguments
10674 `(#:phases
10675 (modify-phases %standard-phases
10676 (add-after 'unpack 'remove-deprecated-macro
10677 (lambda _
10678 (substitute* '("server/gam_node.c"
10679 "server/gam_subscription.h"
10680 "server/gam_node.h"
10681 "server/gam_subscription.c")
10682 (("G_CONST_RETURN") "const"))
10683 #t)))))
10684 (inputs
10685 `(("glib" ,glib)))
10686 (native-inputs
10687 `(("intltool" ,intltool)
10688 ("pkg-config" ,pkg-config)))
10689 (home-page "https://people.gnome.org/~veillard/gamin/")
10690 (synopsis "File alteration monitor")
10691 (description
10692 "Gamin is a file and directory monitoring system defined to be a subset
10693 of the FAM (File Alteration Monitor) system. This is a service provided by a
10694 library which detects when a file or a directory has been modified.")
10695 (license license:gpl2+)))
10696
10697 (define-public gnome-mahjongg
10698 (package
10699 (name "gnome-mahjongg")
10700 (version "3.35.1")
10701 (source (origin
10702 (method git-fetch)
10703 (uri (git-reference
10704 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
10705 (commit version)))
10706 (file-name (git-file-name name version))
10707 (sha256
10708 (base32
10709 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
10710 (build-system meson-build-system)
10711 (arguments
10712 `(#:glib-or-gtk? #t))
10713 (native-inputs
10714 `(("appstream-glib" ,appstream-glib)
10715 ("gettext" ,gettext-minimal)
10716 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
10717 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
10718 ("itstool" ,itstool)
10719 ("pkg-config" ,pkg-config)
10720 ("vala" ,vala)))
10721 (propagated-inputs
10722 `(("dconf" ,dconf)))
10723 (inputs
10724 `(("glib" ,glib)
10725 ("gtk+" ,gtk+)
10726 ("librsvg" ,librsvg)))
10727 (synopsis "Mahjongg tile-matching game")
10728 (description "GNOME Mahjongg is a game based on the classic Chinese
10729 tile-matching game Mahjong. It features multiple board layouts, tile themes,
10730 and a high score table.")
10731 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
10732 (license license:gpl2+)))
10733
10734 (define-public gnome-themes-extra
10735 (package
10736 (name "gnome-themes-extra")
10737 (version "3.28")
10738 (source
10739 (origin
10740 (method url-fetch)
10741 (uri (string-append "mirror://gnome/sources/" name "/"
10742 (version-major+minor version) "/" name "-"
10743 version ".tar.xz"))
10744 (sha256
10745 (base32
10746 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
10747 (build-system gnu-build-system)
10748 (arguments
10749 '(#:configure-flags
10750 ;; Don't create 'icon-theme.cache'.
10751 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
10752 (true (string-append coreutils "/bin/true")))
10753 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
10754 (native-inputs
10755 `(("glib:bin" ,glib "bin")
10756 ("intltool" ,intltool)
10757 ("pkg-config" ,pkg-config)))
10758 (inputs
10759 `(("glib" ,glib)
10760 ("gtk+" ,gtk+)
10761 ("gtk+-2" ,gtk+-2)
10762 ("librsvg" ,librsvg)
10763 ("libxml2" ,libxml2)))
10764 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
10765 (synopsis "GNOME Extra Themes")
10766 (description "This package provides themes and related elements that don't
10767 really fit in other upstream packages. It offers legacy support for GTK+ 2
10768 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
10769 index files needed for Adwaita to be used outside of GNOME.")
10770 (license license:lgpl2.1+)))
10771
10772 (define-public polari
10773 (package
10774 (name "polari")
10775 (version "3.36.3")
10776 (source (origin
10777 (method url-fetch)
10778 (uri (string-append "mirror://gnome/sources/polari/"
10779 (version-major+minor version)
10780 "/polari-" version ".tar.xz"))
10781 (sha256
10782 (base32
10783 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
10784 (build-system meson-build-system)
10785 (arguments
10786 `(#:glib-or-gtk? #t
10787 #:phases
10788 (modify-phases %standard-phases
10789 (add-after 'unpack 'skip-gtk-update-icon-cache
10790 (lambda _
10791 (substitute* "meson/meson-postinstall.sh"
10792 (("gtk-update-icon-cache") (which "true")))
10793 #t))
10794 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10795 (lambda* (#:key outputs #:allow-other-keys)
10796 (let ((prog (string-append (assoc-ref outputs "out")
10797 "/bin/polari")))
10798 (wrap-program prog
10799 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10800 #t))))))
10801 (inputs
10802 `(("glib" ,glib)
10803 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10804 ("gspell" ,gspell)
10805 ("gtk+" ,gtk+)
10806 ("gjs" ,gjs)
10807 ("libsecret" ,libsecret)
10808 ("libsoup" ,libsoup)
10809 ("telepathy-glib" ,telepathy-glib)
10810 ("telepathy-logger" ,telepathy-logger)))
10811 (native-inputs
10812 `(("glib:bin" ,glib "bin")
10813 ("gobject-introspection" ,gobject-introspection)
10814 ("intltool" ,intltool)
10815 ("pkg-config" ,pkg-config)
10816 ("yelp-tools" ,yelp-tools)))
10817 (propagated-inputs
10818 `(("telepathy-idle" ,telepathy-idle)
10819 ("telepathy-mission-control" ,telepathy-mission-control)))
10820 (synopsis "Simple IRC Client")
10821 (description
10822 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10823 integrate seamlessly with the GNOME desktop.")
10824 (home-page "https://wiki.gnome.org/Apps/Polari")
10825 (license license:gpl2+)))
10826
10827 (define-public gnome-boxes
10828 (package
10829 (name "gnome-boxes")
10830 (version "3.36.6")
10831 (source
10832 (origin
10833 (method url-fetch)
10834 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10835 (version-major+minor version) "/"
10836 "gnome-boxes-" version ".tar.xz"))
10837 (sha256
10838 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
10839 (build-system meson-build-system)
10840 (arguments
10841 '(#:glib-or-gtk? #t
10842 #:configure-flags (list "-Drdp=false"
10843 (string-append "-Dc_link_args=-Wl,-rpath="
10844 (assoc-ref %outputs "out")
10845 "/lib/gnome-boxes"))))
10846 (native-inputs
10847 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10848 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10849 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10850 ("itstool" ,itstool)
10851 ("intltool" ,intltool)
10852 ("vala" ,vala)
10853 ("pkg-config" ,pkg-config)))
10854 (inputs
10855 `(("libarchive" ,libarchive)
10856 ("glib-networking" ,glib-networking) ;for TLS support
10857 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10858 ("gtk" ,gtk+)
10859 ("gtk-vnc" ,gtk-vnc)
10860 ("libosinfo" ,libosinfo)
10861 ("libsecret" ,libsecret)
10862 ("libsoup" ,libsoup)
10863 ("libusb" ,libusb)
10864 ("libvirt" ,libvirt)
10865 ("libvirt-glib" ,libvirt-glib)
10866 ("libxml" ,libxml2)
10867 ("spice-gtk" ,spice-gtk)
10868 ("sparql-query" ,sparql-query)
10869 ("vte" ,vte)
10870 ("webkitgtk" ,webkitgtk)
10871 ("tracker" ,tracker)
10872 ("libgudev" ,libgudev)))
10873 (home-page "https://wiki.gnome.org/Apps/Boxes")
10874 (synopsis "View, access, and manage remote and virtual systems")
10875 (description "GNOME Boxes is a simple application to view, access, and
10876 manage remote and virtual systems. Note that this application requires the
10877 @code{libvirt} and @code{virtlog} daemons to run. Use the command
10878 @command{info '(guix) Virtualization Services'} to learn how to configure
10879 these services on the Guix System.")
10880 (license (list
10881 ;; For data/icons/empty-boxes.png.
10882 license:cc-by2.0
10883 ;; For all others.
10884 license:lgpl2.0+))))
10885
10886 (define-public geary
10887 (package
10888 (name "geary")
10889 (version "3.34.1")
10890 (source (origin
10891 (method git-fetch)
10892 (uri (git-reference
10893 (url "https://gitlab.gnome.org/GNOME/geary")
10894 (commit version)))
10895 (file-name (git-file-name name version))
10896 (sha256
10897 (base32
10898 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10899 (build-system meson-build-system)
10900 (arguments
10901 `(#:glib-or-gtk? #t
10902 #:phases (modify-phases %standard-phases
10903 (add-after 'unpack 'disable-failing-tests
10904 (lambda _
10905 (substitute* "test/meson.build"
10906 (("test\\('client-tests', geary_test_client_bin\\)")
10907 ""))
10908 #t))
10909 (add-after 'unpack 'disable-postinstall-script
10910 (lambda _
10911 (substitute* "meson.build"
10912 (("meson.add_install_script\\(\
10913 join_paths\\('build-aux', 'post_install.py'\\)\\)")
10914 ""))
10915 #t))
10916 (add-before 'check 'setup-xvfb
10917 (lambda _
10918 (system "Xvfb :1 &")
10919 (setenv "DISPLAY" ":1")
10920 #t)))))
10921 (inputs
10922 `(("enchant" ,enchant)
10923 ("folks" ,folks)
10924 ("gcr" ,gcr)
10925 ("glib" ,glib)
10926 ("gmime" ,gmime-2.6)
10927 ("gnome-online-accounts:lib"
10928 ,gnome-online-accounts "lib")
10929 ("gspell" ,gspell)
10930 ("gtk+" ,gtk+)
10931 ("iso-codes" ,iso-codes)
10932 ("json-glib" ,json-glib)
10933 ("libcanberra" ,libcanberra)
10934 ("libgee" ,libgee)
10935 ("libhandy" ,libhandy-0.0)
10936 ("libpeas" ,libpeas)
10937 ("libsecret" ,libsecret)
10938 ("libunwind" ,libunwind)
10939 ("sqlite" ,sqlite)
10940 ("webkitgtk" ,webkitgtk)
10941 ("ytnef" ,ytnef)))
10942 (native-inputs
10943 `(("appstream-glib" ,appstream-glib)
10944 ("cmake-minimal" ,cmake-minimal)
10945 ("desktop-file-utils" ,desktop-file-utils)
10946 ("gettext" ,gettext-minimal)
10947 ("glib:bin" ,glib "bin")
10948 ("gobject-introspection" ,gobject-introspection)
10949 ("itstool" ,itstool)
10950 ("libarchive" ,libarchive)
10951 ("libxml2" ,libxml2)
10952 ("pkg-config" ,pkg-config)
10953 ("vala" ,vala)
10954 ("xvfb" ,xorg-server-for-tests)))
10955 (synopsis "GNOME email application built around conversations")
10956 (description
10957 "Geary collects related messages together into conversations,
10958 making it easy to find and follow your discussions. Full-text and keyword
10959 search makes it easy to find the email you are looking for. Geary's
10960 full-featured composer lets you send rich, styled text with images, links, and
10961 lists, but also send lightweight, easy to read text messages. Geary
10962 automatically picks up your existing GNOME Online Accounts, and adding more is
10963 easy. Geary has a clean, fast, modern interface that works like you want it
10964 to.")
10965 (home-page "https://wiki.gnome.org/Apps/Geary")
10966 (license (list
10967 ;; geary
10968 license:lgpl2.1+
10969 ;; icons
10970 license:cc-by3.0
10971 license:cc-by-sa3.0
10972 license:public-domain
10973 ;; snowball
10974 license:bsd-2))))
10975
10976 (define-public glabels
10977 (package
10978 (name "glabels")
10979 (version "3.4.1")
10980 (source
10981 (origin
10982 (method url-fetch)
10983 (uri (string-append "mirror://gnome/sources/" name "/"
10984 (version-major+minor version) "/"
10985 "glabels-" version ".tar.xz"))
10986 (sha256
10987 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10988 (build-system glib-or-gtk-build-system)
10989 (native-inputs
10990 `(("gettext" ,gettext-minimal)
10991 ("glib:bin" ,glib "bin")
10992 ("intltool" ,intltool)
10993 ("itstool" ,itstool)
10994 ("pkg-config" ,pkg-config)))
10995 (inputs
10996 `(("gtk+" ,gtk+)
10997 ("librsvg" ,librsvg)
10998 ("libxml2" ,libxml2)))
10999 (home-page "https://glabels.org/")
11000 (synopsis "Program for creating labels and business cards")
11001 (description
11002 "gLabels is a program for creating labels and business cards. It is
11003 designed to work with various laser/ink-jet peel-off label and business
11004 card sheets that you’ll find at most office supply stores.")
11005 (license license:gpl3+)))
11006
11007 (define-public libratbag
11008 (package
11009 (name "libratbag")
11010 (version "0.14")
11011 (source
11012 (origin
11013 (method git-fetch)
11014 (uri (git-reference
11015 (url "https://github.com/libratbag/libratbag")
11016 (commit (string-append "v" version))))
11017 (file-name (git-file-name name version))
11018 (sha256
11019 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11020 (build-system meson-build-system)
11021 (arguments
11022 `(#:configure-flags
11023 (list "-Dsystemd=false"
11024 "-Dlogind-provider=elogind")
11025 #:phases
11026 (modify-phases %standard-phases
11027 (add-after 'install 'wrap
11028 (lambda* (#:key inputs outputs #:allow-other-keys)
11029 (let* ((out (assoc-ref outputs "out"))
11030 (site (string-append
11031 "/lib/python"
11032 ,(version-major+minor (package-version python))
11033 "/site-packages"))
11034 (evdev (string-append
11035 (assoc-ref inputs "python-evdev") site))
11036 (pygo (string-append
11037 (assoc-ref inputs "python-pygobject") site))
11038 (python-wrap
11039 `("PYTHONPATH" = (,evdev ,pygo))))
11040 (wrap-program (string-append out "/bin/" "ratbagctl")
11041 python-wrap)
11042 #t))))))
11043 (native-inputs
11044 `(("check" ,check)
11045 ("pkg-config" ,pkg-config)
11046 ("swig" ,swig)
11047 ("valgrind" ,valgrind)))
11048 (inputs
11049 `(("glib" ,glib)
11050 ("json-glib" ,json-glib)
11051 ("libevdev" ,libevdev)
11052 ("libsystemd" ,elogind)
11053 ("libunistring" ,libunistring)
11054 ("python-evdev" ,python-evdev)
11055 ("python-pygobject" ,python-pygobject)
11056 ("udev" ,eudev)))
11057 (home-page "https://github.com/libratbag/libratbag")
11058 (synopsis "DBus daemon and utility for configuring gaming mice")
11059 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11060 configure input devices, mainly gaming mice. The daemon provides a generic
11061 way to access the various features exposed by these mice and abstracts away
11062 hardware-specific and kernel-specific quirks. There is also the
11063 @command{ratbagctl} command line interface for configuring devices.
11064
11065 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11066 Steelseries.
11067
11068 The ratbagd DBus service can be enabled by adding the following service to
11069 your operating-system definition:
11070
11071 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11072 (license license:expat)))
11073
11074 (define-public piper
11075 (package
11076 (name "piper")
11077 (version "0.5.1")
11078 (source
11079 (origin
11080 (method git-fetch)
11081 (uri (git-reference
11082 (url "https://github.com/libratbag/piper")
11083 (commit version)))
11084 (sha256
11085 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11086 (file-name (git-file-name name version))))
11087 (build-system meson-build-system)
11088 (native-inputs
11089 `(("gettext" ,gettext-minimal)
11090 ("glib:bin" ,glib "bin")
11091 ("gobject-introspection" ,gobject-introspection)
11092 ("pkg-config" ,pkg-config)
11093 ("python-flake8" ,python-flake8)))
11094 (inputs
11095 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11096 ("gtk" ,gtk+)
11097 ("gtk:bin" ,gtk+ "bin")
11098 ("librsvg" ,librsvg)
11099 ("python-evdev" ,python-evdev)
11100 ("python-lxml" ,python-lxml)
11101 ("python-pycairo" ,python-pycairo)
11102 ("python-pygobject" ,python-pygobject)))
11103 (arguments
11104 `(#:imported-modules ((guix build python-build-system)
11105 ,@%meson-build-system-modules)
11106 #:modules (((guix build python-build-system) #:prefix python:)
11107 (guix build meson-build-system)
11108 (guix build utils))
11109 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11110 #:phases
11111 (modify-phases %standard-phases
11112 (add-after 'unpack 'dont-update-gtk-icon-cache
11113 (lambda _
11114 (substitute* "meson.build"
11115 (("meson.add_install_script('meson_install.sh')") ""))
11116 #t))
11117 ;; TODO: Switch to wrap-script when it is fixed.
11118 (add-after 'install 'wrap-python
11119 (assoc-ref python:%standard-phases 'wrap))
11120 (add-after 'wrap-python 'wrap
11121 (lambda* (#:key outputs #:allow-other-keys)
11122 (wrap-program
11123 (string-append (assoc-ref outputs "out" )"/bin/piper")
11124 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11125 #t)))))
11126 (home-page "https://github.com/libratbag/piper/")
11127 (synopsis "Configure bindings and LEDs on gaming mice")
11128 (description "Piper is a GTK+ application for configuring gaming mice with
11129 onboard configuration for key bindings via libratbag. Piper requires
11130 a @command{ratbagd} daemon running with root privileges. It can be run
11131 manually as root, but is preferably configured as a DBus service that can
11132 launch on demand. This can be configured by enabling the following service,
11133 provided there is a DBus service present:
11134
11135 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11136 (license license:gpl2)))
11137
11138 (define-public parlatype
11139 (package
11140 (name "parlatype")
11141 (version "2.1")
11142 (source
11143 (origin
11144 (method git-fetch)
11145 (uri (git-reference
11146 (url "https://github.com/gkarsay/parlatype.git")
11147 (commit (string-append "v" version))))
11148 (file-name (git-file-name name version))
11149 (sha256
11150 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11151 (build-system meson-build-system)
11152 (arguments
11153 `(#:glib-or-gtk? #t
11154 #:tests? #f ;require internet access
11155 #:phases
11156 (modify-phases %standard-phases
11157 (add-after 'install 'wrap-parlatype
11158 ;; Add gstreamer plugin provided in this package to system's
11159 ;; plugins.
11160 (lambda* (#:key outputs #:allow-other-keys)
11161 (let* ((out (assoc-ref outputs "out"))
11162 (gst-plugin-path (string-append
11163 out "/lib/gstreamer-1.0/"
11164 ":"
11165 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11166 (wrap-program (string-append out "/bin/parlatype")
11167 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11168 #t)))))
11169 (native-inputs
11170 `(("appstream-glib" ,appstream-glib)
11171 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11172 ("gettext" ,gettext-minimal)
11173 ("glib" ,glib "bin") ;for glib-compile-resources
11174 ("pkg-config" ,pkg-config)
11175 ("yelp-tools" ,yelp-tools)))
11176 (inputs
11177 `(("gst-plugins-base" ,gst-plugins-base)
11178 ("gst-plugins-good" ,gst-plugins-good)
11179 ("gstreamer" ,gstreamer)
11180 ("gtk+" ,gtk+)
11181 ("pocketsphinx" ,pocketsphinx)
11182 ("pulseaudio" ,pulseaudio)
11183 ("sphinxbase" ,sphinxbase)))
11184 (home-page "http://gkarsay.github.io/parlatype/")
11185 (synopsis "GNOME audio player for transcription")
11186 (description "Parlatype is an audio player for the GNOME desktop
11187 environment. Its main purpose is the manual transcription of spoken
11188 audio files.")
11189 (license license:gpl3+)))
11190
11191 (define-public jsonrpc-glib
11192 (package
11193 (name "jsonrpc-glib")
11194 (version "3.34.0")
11195 (source (origin
11196 (method url-fetch)
11197 (uri (string-append "mirror://gnome/sources/" name "/"
11198 (version-major+minor version) "/"
11199 name "-" version ".tar.xz"))
11200 (sha256
11201 (base32
11202 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11203 (build-system meson-build-system)
11204 (inputs
11205 `(("json-glib" ,json-glib)
11206 ("glib" ,glib)))
11207 (native-inputs
11208 `(("pkg-config" ,pkg-config)
11209 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11210 ("gobject-introspection" ,gobject-introspection)
11211 ("vala" ,vala)))
11212 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11213 (synopsis "JSON-RPC library for GLib")
11214 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11215 peers in either a synchronous or asynchronous fashion. It also allows
11216 communicating using the GVariant serialization format instead of JSON when
11217 both peers support it. You might want that when communicating on a single
11218 host to avoid parser overhead and memory-allocator fragmentation.")
11219 (license license:lgpl2.1+)))
11220
11221 (define-public feedbackd
11222 (package
11223 (name "feedbackd")
11224 (version "0.0.0+git20200527")
11225 (source (origin
11226 (method git-fetch)
11227 (uri (git-reference
11228 (url "https://source.puri.sm/Librem5/feedbackd.git")
11229 (commit (string-append "v" version))))
11230 (file-name (git-file-name name version))
11231 (sha256
11232 (base32
11233 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11234 (build-system meson-build-system)
11235 (native-inputs
11236 `(("glib:bin" ,glib "bin")
11237 ("gobject-introspection" ,gobject-introspection)
11238 ("pkg-config" ,pkg-config)
11239 ("vala" ,vala)))
11240 (inputs
11241 `(("dbus" ,dbus)
11242 ("gsound" ,gsound)
11243 ("json-glib" ,json-glib)
11244 ("libgudev" ,libgudev)))
11245 (propagated-inputs
11246 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11247 (synopsis "Haptic/visual/audio feedback via DBus")
11248 (description "Feedbackd provides a DBus daemon to act on events to provide
11249 haptic, visual and audio feedback. It offers the libfeedbackd library and
11250 GObject introspection bindings.")
11251 (home-page "https://source.puri.sm/Librem5/feedbackd")
11252 (license (list license:lgpl2.1+ ; libfeedbackd
11253 license:lgpl3+)))) ; the rest
11254
11255 (define-public sysprof
11256 (package
11257 (name "sysprof")
11258 (version "3.36.0")
11259 (source
11260 (origin
11261 (method url-fetch)
11262 (uri (string-append "mirror://gnome/sources/sysprof/"
11263 (version-major+minor version) "/"
11264 "sysprof-" version ".tar.xz"))
11265 (sha256
11266 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11267 (build-system meson-build-system)
11268 (arguments
11269 `(#:configure-flags
11270 (list (string-append "-Dsystemdunitdir="
11271 %output
11272 "/share/systemd"))
11273 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11274 #:phases
11275 (modify-phases %standard-phases
11276 (add-after 'unpack 'patch-install-script
11277 (lambda _
11278 (substitute* "build-aux/meson/post_install.sh"
11279 (("gtk-update-icon-cache") "true")
11280 (("update-desktop-database") "true"))
11281 #t)))))
11282 (inputs
11283 `(("glib" ,glib)
11284 ("gtk+" ,gtk+)
11285 ("libdazzle" ,libdazzle)
11286 ("polkit" ,polkit)))
11287 (native-inputs
11288 `(("gettext" ,gettext-minimal)
11289 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11290 ("itstool" ,itstool)
11291 ("pkg-config" ,pkg-config)
11292 ("xmllint" ,libxml2)))
11293 ;; This home page is so woefully out of date as to be essentially useless.
11294 ;; (home-page "http://www.sysprof.com")
11295 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11296 (synopsis "System-wide performance profiler for GNU/Linux")
11297 (description
11298 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11299 GNU/Linux system including the kernel and all user-space applications. This
11300 helps find the function(s) in which a program spends most of its time.
11301
11302 It uses the kernel's built-in @code{ptrace} feature and handles shared
11303 libraries. Applications do not need to be recompiled--or even restarted.")
11304 (license license:gpl3+)))
11305
11306 (define-public gnome-builder
11307 (package
11308 (name "gnome-builder")
11309 (version "3.36.1")
11310 (source (origin
11311 (method url-fetch)
11312 (uri (string-append "mirror://gnome/sources/" name "/"
11313 (version-major+minor version) "/"
11314 name "-" version ".tar.xz"))
11315 (sha256
11316 (base32
11317 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11318 (build-system meson-build-system)
11319 (arguments
11320 `(#:configure-flags (list "-Dnetwork_tests=false"
11321 ;; TODO: Enable all plugins...
11322 "-Dplugin_clang=false"
11323 "-Dplugin_flatpak=false"
11324 "-Dplugin_glade=false"
11325 ;; ... except this one.
11326 "-Dplugin_update_manager=false")
11327 #:phases
11328 (modify-phases %standard-phases
11329 (add-after 'unpack 'patch-meson
11330 (lambda* (#:key inputs #:allow-other-keys)
11331 (substitute* "build-aux/meson/post_install.py"
11332 (("gtk-update-icon-cache") "true")
11333 (("update-desktop-database") "true"))
11334 (substitute* "src/libide/meson.build"
11335 (("/usr/lib")
11336 (string-append (assoc-ref inputs "python-pygobject")
11337 "/lib")))
11338 #t))
11339 (add-before 'check 'pre-check
11340 (lambda _
11341 (system "Xvfb :1 &")
11342 (setenv "DISPLAY" ":1")
11343 #t)))))
11344 (inputs
11345 `(("devhelp" ,devhelp)
11346 ("gspell" ,gspell)
11347 ("gtk+" ,gtk+)
11348 ("json-glib" ,json-glib)
11349 ("jsonrpc-glib" ,jsonrpc-glib)
11350 ("libdazzle" ,libdazzle)
11351 ("libgit2-glib" ,libgit2-glib)
11352 ("libpeas" ,libpeas)
11353 ("python-pygobject" ,python-pygobject)
11354 ("sysprof" ,sysprof)
11355 ("template-glib" ,template-glib)
11356 ("vte" ,vte)
11357 ("webkitgtk" ,webkitgtk)))
11358 (propagated-inputs
11359 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11360 (native-inputs
11361 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11362 ("glib:bin" ,glib "bin")
11363 ("gettext" ,gettext-minimal)
11364 ("pkg-config" ,pkg-config)
11365 ("vala" ,vala)
11366 ("xorg-server" ,xorg-server-for-tests)))
11367 (home-page "https://wiki.gnome.org/Apps/Builder")
11368 (synopsis "Toolsmith for GNOME-based applications")
11369 (description "Builder aims to be an integrated development
11370 environment (IDE) for writing GNOME-based software. It features fuzzy search,
11371 auto-completion, a mini code map, documentation browsing, Git integration, an
11372 integrated profiler via Sysprof, debugging support, and more.")
11373 (license license:gpl3+)))
11374
11375 (define-public komikku
11376 (package
11377 (name "komikku")
11378 (version "0.19.0")
11379 (source
11380 (origin
11381 (method git-fetch)
11382 (uri (git-reference
11383 (url "https://gitlab.com/valos/Komikku/")
11384 (commit (string-append "v" version))))
11385 (file-name (git-file-name name version))
11386 (sha256
11387 (base32
11388 "16d7k500nd9klnjqqcgk3glhv2sy78yndkz3n0x7lynvblsy45kk"))))
11389 (build-system meson-build-system)
11390 (arguments
11391 `(#:glib-or-gtk? #t
11392 #:phases
11393 (modify-phases %standard-phases
11394 (add-after 'unpack 'patch-sources
11395 (lambda _
11396 (substitute* "komikku/utils.py"
11397 (("from komikku\\.servers import get_servers_list")
11398 ;; code following that line should migrate old databases
11399 ;; but the line itself results in an import error
11400 "return data_dir_path"))))
11401 (add-after 'unpack 'skip-gtk-update-icon-cache
11402 (lambda _
11403 (substitute* "meson_post_install.py"
11404 (("gtk-update-icon-cache") (which "true")))
11405 #t))
11406 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11407 (lambda* (#:key outputs #:allow-other-keys)
11408 (let ((prog (string-append (assoc-ref outputs "out")
11409 "/bin/komikku")))
11410 (wrap-program prog
11411 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
11412 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11413 #t))))))
11414 (inputs
11415 `(("gtk+" ,gtk+)
11416 ("libhandy" ,libhandy)
11417 ("libnotify" ,libnotify)
11418 ("libsecret" ,libsecret)
11419 ("python-beautifulsoup4" ,python-beautifulsoup4)
11420 ("python-cloudscraper" ,python-cloudscraper)
11421 ("python-dateparser" ,python-dateparser)
11422 ("python-keyring" ,python-keyring)
11423 ("python-lxml" ,python-lxml)
11424 ("python-magic" ,python-magic)
11425 ("python-pillow" ,python-pillow)
11426 ("python-pure-protobuf" ,python-pure-protobuf)
11427 ("python-pycairo" ,python-pycairo)
11428 ("python-pygobject" ,python-pygobject)
11429 ("python-unidecode" ,python-unidecode)))
11430 (native-inputs
11431 `(("desktop-file-utils" ,desktop-file-utils)
11432 ("gettext" ,gettext-minimal)
11433 ("glib:bin" ,glib "bin")
11434 ("gobject-introspection" ,gobject-introspection)
11435 ("pkg-config" ,pkg-config)))
11436 (home-page "https://gitlab.com/valos/Komikku")
11437 (synopsis "Manga reader for GNOME")
11438 (description "Komikku is an online/offline manga reader for GNOME,
11439 developed with the aim of being used with the Librem 5 phone.")
11440 (license license:gpl3+)))
11441
11442 (define-public libgda
11443 (package
11444 (name "libgda")
11445 (version "5.2.9")
11446 (source
11447 (origin
11448 (method git-fetch)
11449 (uri (git-reference
11450 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
11451 (commit "LIBGDA_5_2_9")))
11452 (file-name (git-file-name name version))
11453 (sha256
11454 (base32
11455 "122anbk15vj2dfxrw7s48b6zwlpp7cyppshxizynvf3zmc0ygw3j"))))
11456 (build-system gnu-build-system)
11457 (arguments
11458 `(#:configure-flags '("--enable-vala")
11459 ;; There's a race between check_cnc_lock and check_threaded_cnc
11460 ;; in tests/multi-threading.
11461 #:parallel-tests? #f
11462 #:phases
11463 (modify-phases %standard-phases
11464 (add-after 'unpack 'fix-glade-install
11465 (lambda _
11466 (substitute* "configure.ac"
11467 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
11468 "${datadir}/glade/catalogs")
11469 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
11470 "${datadir}/glade/pixmaps"))
11471 #t))
11472 (add-before 'check 'pre-check
11473 (lambda* (#:key inputs #:allow-other-keys)
11474 ;; Tests require a running X server.
11475 (system "Xvfb :1 &")
11476 (setenv "DISPLAY" ":1")
11477 #t))
11478 (add-after 'install 'symlink-glade-module
11479 (lambda* (#:key outputs #:allow-other-keys)
11480 (let* ((shlib "libgda-ui-5.0.so")
11481 (out (assoc-ref outputs "out"))
11482 (out/lib (string-append out "/lib"))
11483 (moduledir (string-append out/lib "/glade/modules")))
11484 (mkdir-p moduledir)
11485 (symlink (string-append out/lib "/" shlib)
11486 (string-append moduledir "/" shlib))
11487 #t))))))
11488 (propagated-inputs
11489 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
11490 (inputs
11491 `(("glib" ,glib)
11492 ("glade" ,glade3)
11493 ("gtk+" ,gtk+)
11494 ("libsecret" ,libsecret)
11495 ("libxslt" ,libxslt)
11496 ("openssl" ,openssl)
11497 ("vala" ,vala)))
11498 (native-inputs
11499 `(("autoconf" ,autoconf)
11500 ("automake" ,automake)
11501 ("glib:bin" ,glib "bin")
11502 ("gnome-common" ,gnome-common)
11503 ("gobject-introspection" ,gobject-introspection)
11504 ("gtk-doc" ,gtk-doc)
11505 ("intltool" ,intltool)
11506 ("libtool" ,libtool)
11507 ("pkg-config" ,pkg-config)
11508 ("vala" ,vala)
11509 ("which" ,which)
11510 ("xorg-server" ,xorg-server-for-tests)
11511 ("yelp-tools" ,yelp-tools)))
11512 (home-page "https://gitlab.gnome.org/GNOME/libgda")
11513 (synopsis "Uniform data access")
11514 (description
11515 "GNU Data Access (GDA) is an attempt to provide uniform access to
11516 different kinds of data sources (databases, information servers, mail spools,
11517 etc). It is a complete architecture that provides all you need to access
11518 your data.")
11519 (license license:lgpl2.1+)))