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