Import (gnu packages libffi) from (gnu packages gnome).
[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 nss)
145 #:use-module (gnu packages openldap)
146 #:use-module (gnu packages package-management)
147 #:use-module (gnu packages password-utils)
148 #:use-module (gnu packages pcre)
149 #:use-module (gnu packages pdf)
150 #:use-module (gnu packages perl)
151 #:use-module (gnu packages photo)
152 #:use-module (gnu packages php)
153 #:use-module (gnu packages pkg-config)
154 #:use-module (gnu packages polkit)
155 #:use-module (gnu packages popt)
156 #:use-module (gnu packages pretty-print)
157 #:use-module (gnu packages pulseaudio)
158 #:use-module (gnu packages python)
159 #:use-module (gnu packages python-crypto)
160 #:use-module (gnu packages python-web)
161 #:use-module (gnu packages python-xyz)
162 #:use-module (gnu packages rdesktop)
163 #:use-module (gnu packages rdf)
164 #:use-module (gnu packages readline)
165 #:use-module (gnu packages ruby)
166 #:use-module (gnu packages rust)
167 #:use-module (gnu packages samba)
168 #:use-module (gnu packages scanner)
169 #:use-module (gnu packages sdl)
170 #:use-module (gnu packages search)
171 #:use-module (gnu packages selinux)
172 #:use-module (gnu packages slang)
173 #:use-module (gnu packages speech)
174 #:use-module (gnu packages spice)
175 #:use-module (gnu packages sqlite)
176 #:use-module (gnu packages ssh)
177 #:use-module (gnu packages swig)
178 #:use-module (gnu packages tex)
179 #:use-module (gnu packages time)
180 #:use-module (gnu packages tls)
181 #:use-module (gnu packages valgrind)
182 #:use-module (gnu packages version-control)
183 #:use-module (gnu packages video)
184 #:use-module (gnu packages virtualization)
185 #:use-module (gnu packages vpn)
186 #:use-module (gnu packages web)
187 #:use-module (gnu packages webkit)
188 #:use-module (gnu packages xdisorg)
189 #:use-module (gnu packages xiph)
190 #:use-module (gnu packages xml)
191 #:use-module (gnu packages xorg)
192 #:use-module (gnu artwork)
193 #:use-module ((guix build utils) #:select (modify-phases))
194 #:use-module (guix build-system cargo)
195 #:use-module (guix build-system cmake)
196 #:use-module (guix build-system glib-or-gtk)
197 #:use-module (guix build-system gnu)
198 #:use-module (guix build-system meson)
199 #:use-module (guix build-system python)
200 #:use-module (guix build-system trivial)
201 #:use-module (guix download)
202 #:use-module (guix git-download)
203 #:use-module ((guix licenses) #:prefix license:)
204 #:use-module (guix packages)
205 #:use-module (guix utils)
206 #:use-module (guix gexp)
207 #:use-module (guix monads)
208 #:use-module (guix store)
209 #:use-module (ice-9 match)
210 #:use-module (srfi srfi-1))
211
212 (define-public brasero
213 (package
214 (name "brasero")
215 (version "3.12.2")
216 (source (origin
217 (method url-fetch)
218 (uri (string-append "mirror://gnome/sources/brasero/"
219 (version-major+minor version) "/"
220 "brasero-" version ".tar.xz"))
221 (sha256
222 (base32
223 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
224 (build-system glib-or-gtk-build-system)
225 (arguments
226 `(#:configure-flags (list
227 (string-append "--with-girdir="
228 (assoc-ref %outputs "out")
229 "/share/gir-1.0")
230 (string-append "--with-typelibdir="
231 (assoc-ref %outputs "out")
232 "/lib/girepository-1.0"))
233 #:phases
234 (modify-phases %standard-phases
235 (add-before 'configure 'embed-growisofs
236 (lambda* (#:key inputs #:allow-other-keys)
237 (substitute* "plugins/growisofs/burn-growisofs.c"
238 (("\"growisofs") (string-append "\"" (which "growisofs"))))
239 #t)))))
240 (propagated-inputs
241 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
242 (native-inputs
243 `(("intltool" ,intltool)
244 ("itstool" ,itstool)
245 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
246 ("gobject-introspection" ,gobject-introspection)
247 ("pkg-config" ,pkg-config)))
248 (inputs
249 `(("dvd+rw-tools" ,dvd+rw-tools)
250 ("glib" ,glib)
251 ("gnome-doc-utils" ,gnome-doc-utils)
252 ("gstreamer" ,gstreamer)
253 ("gst-plugins-base" ,gst-plugins-base)
254 ("gtk+" ,gtk+)
255 ("libcanberra" ,libcanberra)
256 ("libice" ,libice)
257 ("libnotify" ,libnotify)
258 ("libsm" ,libsm)
259 ("libxml2" ,libxml2)
260 ("totem-pl-parser" ,totem-pl-parser)))
261 (home-page "https://wiki.gnome.org/Apps/Brasero")
262 (synopsis "CD/DVD burning tool for Gnome")
263 (description "Brasero is an application to burn CD/DVD for the Gnome
264 Desktop. It is designed to be as simple as possible and has some unique
265 features to enable users to create their discs easily and quickly.")
266 (license license:gpl2+)))
267
268 (define-public libgrss
269 (package
270 (name "libgrss")
271 (version "0.7.0")
272 (source
273 (origin
274 (method url-fetch)
275 (uri
276 (string-append "mirror://gnome/sources/" name "/"
277 (version-major+minor version) "/"
278 name "-" version ".tar.xz"))
279 (sha256
280 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
281 (build-system glib-or-gtk-build-system)
282 (outputs '("out" "doc"))
283 (arguments
284 `(#:configure-flags
285 (list
286 "--enable-gtk-doc"
287 (string-append "--with-html-dir="
288 (assoc-ref %outputs "doc")
289 "/share/gtk-doc/html"))
290 #:phases
291 (modify-phases %standard-phases
292 (add-after 'unpack 'patch-docbook-xml
293 (lambda* (#:key inputs #:allow-other-keys)
294 (with-directory-excursion "doc/reference"
295 (substitute* "libgrss-docs.sgml"
296 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
297 (string-append (assoc-ref inputs "docbook-xml")
298 "/xml/dtd/docbook/"))))
299 #t)))))
300 (native-inputs
301 `(("docbook-xml" ,docbook-xml-4.1.2)
302 ("gobject-introspection" ,gobject-introspection)
303 ("gtk-doc" ,gtk-doc)
304 ("pkg-config" ,pkg-config)))
305 (propagated-inputs
306 `(("glib" ,glib)
307 ("libsoup" ,libsoup)
308 ("libxml2" ,libxml2)))
309 (synopsis "Glib library for feeds")
310 (description "LibGRSS is a Glib abstaction to handle feeds in RSS, Atom and
311 other formats.")
312 (home-page "https://wiki.gnome.org/Projects/Libgrss")
313 (license license:lgpl3+)))
314
315 (define-public gnome-js-common
316 (package
317 (name "gnome-js-common")
318 (version "0.1.2")
319 (source
320 (origin
321 (method url-fetch)
322 (uri
323 (string-append "mirror://gnome/sources/" name "/"
324 (version-major+minor version) "/"
325 name "-" version ".tar.gz"))
326 (sha256
327 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
328 (build-system glib-or-gtk-build-system)
329 (arguments
330 `(#:configure-flags
331 (list
332 "--disable-static")))
333 (native-inputs
334 `(("gettext" ,gettext-minimal)
335 ("intltool" ,intltool)
336 ("pkg-config" ,pkg-config)))
337 (synopsis "Common JS Modules")
338 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
339 bindings.")
340 (home-page "https://wiki.gnome.org/Projects/Seed")
341 (license license:gpl3+)))
342
343 (define-public seed
344 (package
345 (name "seed")
346 (version "3.8.1")
347 (source
348 (origin
349 (method url-fetch)
350 (uri
351 (string-append "mirror://gnome/sources/" name "/"
352 (version-major+minor version) "/"
353 name "-" version ".tar.xz"))
354 (sha256
355 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
356 (patches
357 (search-patches "seed-webkit.patch"))))
358 (build-system glib-or-gtk-build-system)
359 (outputs '("out" "doc"))
360 (arguments
361 `(#:configure-flags
362 (list
363 "--disable-static"
364 "--enable-xorg-module"
365 (string-append "--with-html-dir="
366 (assoc-ref %outputs "doc")
367 "/share/gtk-doc/html")
368 "--with-webkit=4.0")
369 #:phases
370 (modify-phases %standard-phases
371 ;; The seed-webkit.patch patches configure.ac.
372 ;; So the source files need to be re-bootstrapped.
373 (add-after 'unpack 'trigger-bootstrap
374 (lambda _
375 (for-each delete-file
376 (list
377 "configure"
378 "Makefile.in"))
379 #t))
380 (add-after 'unpack 'patch-tests
381 (lambda* (#:key outputs #:allow-other-keys)
382 (substitute* (find-files "." "\\.js$")
383 (("#!/usr/bin/env seed")
384 (string-append "#!" (getcwd) "/src/seed")))
385 #t))
386 (add-before 'build 'patch-docbook-xml
387 (lambda* (#:key inputs #:allow-other-keys)
388 (with-directory-excursion "doc"
389 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
390 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
391 (string-append (assoc-ref inputs "docbook-xml")
392 "/xml/dtd/docbook/"))))
393 #t)))))
394 (native-inputs
395 `(("autoconf" ,autoconf)
396 ("automake" ,automake)
397 ("docbook-xml" ,docbook-xml-4.1.2)
398 ("gettext" ,gettext-minimal)
399 ("gobject-introspection" ,gobject-introspection)
400 ("gtk-doc" ,gtk-doc)
401 ("intltool" ,intltool)
402 ("libtool" ,libtool)
403 ("pkg-config" ,pkg-config)))
404 (inputs
405 `(("cairo" ,cairo)
406 ("dbus" ,dbus)
407 ("dbus-glib" ,dbus-glib)
408 ("gnome-js-common" ,gnome-js-common)
409 ("gtk+" ,gtk+)
410 ("gtk+-2" ,gtk+-2)
411 ("libffi" ,libffi)
412 ("libxml2" ,libxml2)
413 ("mpfr" ,mpfr)
414 ("readline" ,readline)
415 ("sqlite" ,sqlite)
416 ("xscrnsaver" ,libxscrnsaver)))
417 (propagated-inputs
418 `(("glib" ,glib)
419 ("webkit" ,webkitgtk)))
420 (synopsis "GObject JavaScriptCore bridge")
421 (description "Seed is a library and interpreter, dynamically bridging
422 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
423 GNOME platform. It serves as something which enables you to write standalone
424 applications in JavaScript, or easily enable your application to be extensible
425 in JavaScript.")
426 (home-page "https://wiki.gnome.org/Projects/Seed")
427 (license license:lgpl2.0+)))
428
429 (define-public libdmapsharing
430 (package
431 (name "libdmapsharing")
432 (version "3.9.10")
433 (source
434 (origin
435 (method url-fetch)
436 (uri
437 (string-append "https://www.flyn.org/projects/"
438 name "/" name "-" version ".tar.gz"))
439 (sha256
440 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
441 (build-system glib-or-gtk-build-system)
442 (outputs '("out" "doc"))
443 (arguments
444 `(#:tests? #f ; Tests require networking.
445 #:configure-flags
446 (list
447 "--disable-static"
448 (string-append "--with-html-dir="
449 (assoc-ref %outputs "doc")
450 "/share/gtk-doc/html"))
451 #:phases
452 (modify-phases %standard-phases
453 (add-after 'unpack 'patch-docbook-xml
454 (lambda* (#:key inputs #:allow-other-keys)
455 (with-directory-excursion "doc"
456 (substitute* "libdmapsharing-4.0-docs.xml"
457 (("http://www.oasis-open.org/docbook/xml/4.3/")
458 (string-append (assoc-ref inputs "docbook-xml")
459 "/xml/dtd/docbook/"))))
460 #t)))))
461 (native-inputs
462 `(("check" ,check)
463 ("docbook-xml" ,docbook-xml-4.3)
464 ("gobject-introspection" ,gobject-introspection)
465 ("pedansee" ,pedansee)
466 ("pkg-config" ,pkg-config)
467 ("vala" ,vala)))
468 (inputs
469 `(("avahi" ,avahi)
470 ("gdk-pixbuf" ,gdk-pixbuf+svg)
471 ("gee" ,libgee)
472 ("gst-plugins-base" ,gst-plugins-base)
473 ("gtk+" ,gtk+)))
474 (propagated-inputs
475 `(("glib" ,glib)
476 ("glib-networking" ,glib-networking)
477 ("gstreamer" ,gstreamer)
478 ("libsoup" ,libsoup)))
479 (synopsis "Media management library")
480 (description "Libdmapsharing is a library which allows programs to access,
481 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
482 It is written in C using GObject and libsoup.")
483 (home-page "https://launchpad.net/gtx")
484 (license license:lgpl2.1+)))
485
486 (define-public gtx
487 (package
488 (name "gtx")
489 (version "0.2.2")
490 (source
491 (origin
492 (method url-fetch)
493 (uri
494 (string-append "https://launchpad.net/gtx/trunk/"
495 version "/+download/gtx-" version ".tar.gz"))
496 (sha256
497 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
498 (build-system glib-or-gtk-build-system)
499 (outputs '("out" "doc"))
500 (arguments
501 `(#:configure-flags
502 (list
503 "--disable-static"
504 "--enable-gtk-doc"
505 (string-append "--with-html-dir="
506 (assoc-ref %outputs "doc")
507 "/share/gtk-doc/html"))))
508 (native-inputs
509 `(("gobject-introspection" ,gobject-introspection)
510 ("gtk-doc" ,gtk-doc)
511 ("pkg-config" ,pkg-config)))
512 (propagated-inputs
513 `(("glib" ,glib)))
514 (synopsis "GLib Testing Framework")
515 (description "GTX is a small collection of convenience functions intended to
516 enhance the GLib testing framework. With specific emphasis on easing the pain
517 of writing test cases for asynchronous interactions.")
518 (home-page "https://launchpad.net/gtx")
519 (license license:lgpl2.1+)))
520
521 (define-public dee
522 (package
523 (name "dee")
524 (version "1.2.7")
525 (source
526 (origin
527 (method url-fetch)
528 (uri
529 (string-append "https://launchpad.net/dee/1.0/"
530 version "/+download/dee-" version ".tar.gz"))
531 (sha256
532 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
533 (patches
534 (search-patches "dee-vapi.patch"))))
535 (build-system glib-or-gtk-build-system)
536 (outputs '("out" "doc"))
537 (arguments
538 `(#:configure-flags
539 (list
540 "--disable-maintainer-flags"
541 (string-append "--with-pygi-overrides-dir="
542 (assoc-ref %outputs "out")
543 "/lib/python"
544 ,(version-major+minor
545 (package-version python))
546 "/site-packages/gi/overrides")
547 (string-append "--with-html-dir="
548 (assoc-ref %outputs "doc")
549 "/share/gtk-doc/html"))
550 #:phases
551 (modify-phases %standard-phases
552 (add-after 'unpack 'patch-docbook-xml
553 (lambda* (#:key inputs #:allow-other-keys)
554 (with-directory-excursion "doc/reference/dee-1.0"
555 (substitute* "dee-1.0-docs.sgml"
556 (("http://www.oasis-open.org/docbook/xml/4.3/")
557 (string-append (assoc-ref inputs "docbook-xml")
558 "/xml/dtd/docbook/"))))
559 #t))
560 (add-after 'patch-docbook-xml 'disable-failing-tests
561 (lambda _
562 (substitute* "tests/test-icu.c"
563 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
564 "")
565 (("setup, test_ascii_folder, teardown\\);")
566 ""))
567 #t))
568 (add-before 'check 'pre-check
569 (lambda _
570 ;; Tests require a running dbus-daemon.
571 (system "dbus-daemon &")
572 ;; For missing '/etc/machine-id'.
573 (setenv "DBUS_FATAL_WARNINGS" "0")
574 #t)))))
575 (native-inputs
576 `(("dbus" ,dbus)
577 ("dbus-test-runner" ,dbus-test-runner)
578 ("docbook-xml" ,docbook-xml-4.3)
579 ("gobject-introspection" ,gobject-introspection)
580 ("gtk-doc" ,gtk-doc)
581 ;; Would only be required by configure flag "--enable-extended-tests".
582 ;("gtx" ,gtx)
583 ("pkg-config" ,pkg-config)
584 ("pygobject" ,python-pygobject)
585 ("python" ,python-wrapper)
586 ("vala" ,vala)))
587 (inputs
588 `(("icu" ,icu4c)))
589 (propagated-inputs
590 `(("glib" ,glib)))
591 (synopsis "Model to synchronize multiple instances over DBus")
592 (description "Dee is a library that uses DBus to provide objects allowing
593 you to create Model-View-Controller type programs across DBus. It also consists
594 of utility objects which extend DBus allowing for peer-to-peer discoverability
595 of known objects without needing a central registrar.")
596 (home-page "https://launchpad.net/dee")
597 (license
598 ;; Dual-licensed
599 (list
600 license:lgpl3+
601 license:gpl3+))))
602
603 (define-public zeitgeist
604 (package
605 (name "zeitgeist")
606 (version "1.0.2")
607 (source
608 (origin
609 (method git-fetch)
610 (uri
611 (git-reference
612 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
613 (commit
614 (string-append "v" version))))
615 (file-name
616 (git-file-name name version))
617 (sha256
618 (base32 "0ig3d3j1n0ghaxsgfww6g2hhcdwx8cljwwfmp9jk1nrvkxd6rnmv"))))
619 (build-system glib-or-gtk-build-system)
620 (arguments
621 `(#:configure-flags
622 (list
623 "--enable-explain-queries"
624 "--enable-fts"
625 "--enable-docs")
626 #:phases
627 (modify-phases %standard-phases
628 (add-after 'unpack 'patch-docbook-xml
629 (lambda* (#:key inputs #:allow-other-keys)
630 (with-directory-excursion "doc/libzeitgeist"
631 (substitute* "zeitgeist-gtkdoc-index.sgml"
632 (("http://www.oasis-open.org/docbook/xml/4.3/")
633 (string-append (assoc-ref inputs "docbook-xml")
634 "/xml/dtd/docbook/"))))
635 #t))
636 (add-after 'patch-docbook-xml 'disable-failing-tests
637 (lambda _
638 (substitute* "test/direct/Makefile.am"
639 ((" log-test ")
640 ""))
641 (substitute* "test/c/Makefile.am"
642 ((" test-log ")
643 ""))
644 #t))
645 (add-before 'bootstrap 'remove-autogen-script
646 (lambda _
647 ;; To honor `autoreconf -vif` by build-system.
648 (delete-file "autogen.sh")
649 #t)))))
650 (native-inputs
651 `(("autoconf" ,autoconf)
652 ("automake" ,automake)
653 ("docbook-xml" ,docbook-xml-4.3)
654 ("gettext" ,gettext-minimal)
655 ("gobject-introspection" ,gobject-introspection)
656 ("gtk-doc" ,gtk-doc)
657 ("libtool" ,libtool)
658 ("pkg-config" ,pkg-config)
659 ("vala" ,vala)
660 ("xorg-server-for-tests" ,xorg-server-for-tests)))
661 (inputs
662 `(("dee-icu" ,dee)
663 ("gtk+" ,gtk+)
664 ("json-glib" ,json-glib)
665 ("sqlite" ,sqlite)
666 ("telepathy-glib" ,telepathy-glib)
667 ("python" ,python-wrapper)
668 ("python-rdflib" ,python-rdflib)
669 ("xapian-config" ,xapian)))
670 (propagated-inputs
671 `(("glib" ,glib)))
672 (synopsis "Desktop Activity Logging")
673 (description "Zeitgeist is a service which logs the users’s activities and
674 events, anywhere from files opened to websites visited and conversations. It
675 makes this information readily available for other applications to use. It is
676 able to establish relationships between items based on similarity and usage
677 patterns.")
678 (home-page "https://zeitgeist.freedesktop.org/")
679 (license
680 ;; Dual-licensed
681 (list
682 license:lgpl2.1+
683 license:gpl2+))))
684
685 (define-public libcloudproviders
686 (package
687 (name "libcloudproviders")
688 (version "0.3.1")
689 (source
690 (origin
691 (method url-fetch)
692 (uri
693 (string-append "mirror://gnome/sources/" name "/"
694 (version-major+minor version) "/"
695 name "-" version ".tar.xz"))
696 (sha256
697 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
698 (build-system meson-build-system)
699 (outputs '("out" "doc"))
700 (arguments
701 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
702 #:configure-flags
703 (list
704 "-Denable-gtk-doc=true")
705 #:phases
706 (modify-phases %standard-phases
707 (add-after 'install 'move-doc
708 (lambda* (#:key outputs #:allow-other-keys)
709 (let* ((out (assoc-ref outputs "out"))
710 (doc (assoc-ref outputs "doc")))
711 (mkdir-p (string-append doc "/share"))
712 (rename-file
713 (string-append out "/share/gtk-doc")
714 (string-append doc "/share/gtk-doc"))
715 #t))))))
716 (native-inputs
717 `(("glib:bin" ,glib "bin")
718 ("gobject-introspection" ,gobject-introspection)
719 ("gtk-doc" ,gtk-doc)
720 ("pkg-config" ,pkg-config)
721 ("vala" ,vala)))
722 (inputs
723 `(("glib" ,glib)
724 ("glib-networking" ,glib-networking)))
725 (synopsis "Cloudproviders Integration API")
726 (description "Libcloudproviders is a DBus API that allows cloud storage sync
727 clients to expose their services. Clients such as file managers and desktop
728 environments can then provide integrated access to the cloud providers
729 services.")
730 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
731 (license license:lgpl3+)))
732
733 (define-public sysprof
734 (package
735 (name "sysprof")
736 (version "3.36.0")
737 (source
738 (origin
739 (method url-fetch)
740 (uri
741 (string-append "mirror://gnome/sources/" name "/"
742 (version-major+minor version) "/"
743 name "-" version ".tar.xz"))
744 (sha256
745 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
746 (build-system meson-build-system)
747 (arguments
748 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas.
749 #:configure-flags
750 (list
751 ;; SystemD not required.
752 "-Dsystemdunitdir=/tmp")))
753 (native-inputs
754 `(("desktop-file-utils" ,desktop-file-utils)
755 ("gettext" ,gettext-minimal)
756 ("glib:bin" ,glib "bin")
757 ("gobject-introspection" ,gobject-introspection)
758 ("gtk+:bin" ,gtk+ "bin")
759 ("itstool" ,itstool)
760 ("pkg-config" ,pkg-config)
761 ("xmllint" ,libxml2)))
762 (inputs
763 `(("libdazzle" ,libdazzle)
764 ("libunwind" ,libunwind)
765 ("pango" ,pango)
766 ("polkit" ,polkit)))
767 (propagated-inputs
768 `(("glib" ,glib)
769 ("gtk+" ,gtk+)))
770 (synopsis "Kernel based performance profiler")
771 (description "Sysprof is a sampling profiler that uses a kernel module to
772 generate stacktraces which are then interpreted by the userspace program
773 sysprof.")
774 (home-page "https://wiki.gnome.org/Apps/Sysprof")
775 (license
776 (list
777 ;; For newer codes.
778 license:gpl3+
779 ;; For older codes.
780 license:gpl2+))))
781
782 (define-public gnome-photos
783 (package
784 (name "gnome-photos")
785 (version "3.34.2")
786 (source
787 (origin
788 (method url-fetch)
789 (uri
790 (string-append "mirror://gnome/sources/" name "/"
791 (version-major+minor version) "/"
792 name "-" version ".tar.xz"))
793 (sha256
794 (base32
795 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
796 (build-system meson-build-system)
797 (arguments
798 `(#:glib-or-gtk? #t
799 #:configure-flags
800 (list "-Ddogtail=false" ; Not available
801 ;; Required for RUNPATH validation.
802 (string-append "-Dc_link_args=-Wl,-rpath="
803 (assoc-ref %outputs "out") "/lib/gnome-photos"))
804 #:phases
805 (modify-phases %standard-phases
806 (add-after 'install 'wrap-gnome-photos
807 (lambda* (#:key inputs outputs #:allow-other-keys)
808 (let*
809 ((out (assoc-ref outputs "out")))
810 (wrap-program (string-append out "/bin/gnome-photos")
811 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
812 #t)))))
813 (native-inputs
814 `(("dbus" ,dbus)
815 ("desktop-file-utils" ,desktop-file-utils)
816 ("gettext" ,gettext-minimal)
817 ("git" ,git-minimal)
818 ("glib:bin" ,glib "bin")
819 ("gobject-introspection" ,gobject-introspection)
820 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
821 ("gtk+:bin" ,gtk+ "bin")
822 ("itstool" ,itstool)
823 ("pkg-config" ,pkg-config)))
824 (inputs
825 `(("babl" ,babl)
826 ("cairo" ,cairo)
827 ("gdk-pixbuf" ,gdk-pixbuf+svg)
828 ("gegl" ,gegl)
829 ("geocode-glib" ,geocode-glib)
830 ("gexiv2" ,gexiv2)
831 ("gnome-online-accounts" ,gnome-online-accounts)
832 ("gnome-online-miners" ,gnome-online-miners)
833 ("grilo" ,grilo)
834 ("grilo-plugins" ,grilo-plugins)
835 ("gtk+" ,gtk+)
836 ("libdazzle" ,libdazzle)
837 ("libgdata" ,libgdata)
838 ("libgfbgraph" ,gfbgraph)
839 ("libjpeg" ,libjpeg-turbo)
840 ("libpng" ,libpng)
841 ("librest" ,rest)
842 ("pygobject" ,python-pygobject)
843 ("tracker" ,tracker)
844 ("tracker-miners" ,tracker-miners)))
845 (synopsis "Access, organize and share your photos on GNOME desktop")
846 (description "GNOME Photos is a simple and elegant replacement for using a
847 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
848 cloud integration is offered through GNOME Online Accounts.")
849 (home-page "https://wiki.gnome.org/Apps/Photos")
850 (license license:gpl3+)))
851
852 (define-public gnome-music
853 (package
854 (name "gnome-music")
855 (version "3.34.5")
856 (source
857 (origin
858 (method url-fetch)
859 (uri
860 (string-append "mirror://gnome/sources/" name "/"
861 (version-major+minor version) "/"
862 name "-" version ".tar.xz"))
863 (sha256
864 (base32
865 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
866 (build-system meson-build-system)
867 (arguments
868 `(#:glib-or-gtk? #t
869 #:phases
870 (modify-phases %standard-phases
871 (add-after 'install 'wrap-gnome-music
872 (lambda* (#:key inputs outputs #:allow-other-keys)
873 (let*
874 ((out (assoc-ref outputs "out"))
875 (pylib (string-append out "/lib/python"
876 ,(version-major+minor
877 (package-version python))
878 "/site-packages")))
879 (wrap-program (string-append out "/bin/gnome-music")
880 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
881 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
882 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
883 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
884 #t)))))
885 (native-inputs
886 `(("desktop-file-utils" ,desktop-file-utils)
887 ("gettext" ,gettext-minimal)
888 ("glib:bin" ,glib "bin")
889 ("gobject-introspection" ,gobject-introspection)
890 ("gtk+:bin" ,gtk+ "bin")
891 ("itstools" ,itstool)
892 ("pkg-config" ,pkg-config)))
893 (inputs
894 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
895 ("grilo" ,grilo)
896 ("grilo-plugins" ,grilo-plugins)
897 ("gst-plugins-base" ,gst-plugins-base)
898 ("gstreamer" ,gstreamer)
899 ("gvfs" ,gvfs)
900 ("libdazzle" ,libdazzle)
901 ("libmediaart" ,libmediaart)
902 ("libsoup" ,libsoup)
903 ("pycairo" ,python-pycairo)
904 ("pygobject" ,python-pygobject)
905 ("tracker" ,tracker)
906 ("tracker-miners" ,tracker-miners)))
907 (synopsis "Simple music player for GNOME desktop")
908 (description "GNOME Music is the new GNOME music playing application that
909 aims to combine an elegant and immersive browsing experience with simple
910 and straightforward controls.")
911 (home-page "https://wiki.gnome.org/Apps/Music")
912 (license license:gpl2+)))
913
914 (define-public portablexdr
915 (package
916 (name "portablexdr")
917 (version "4.9.1")
918 (source
919 (origin
920 (method url-fetch)
921 (uri
922 (string-append "https://people.redhat.com/~rjones/" name "/files/"
923 name "-" version ".tar.gz"))
924 (sha256
925 (base32
926 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
927 (build-system gnu-build-system)
928 (synopsis "External Data Representation Library")
929 (description "PortableXDR is an implementation of External Data
930 Representation (XDR) Library. It is a standard data serialization format, for
931 uses such as computer network protocols. It allows data to be transferred
932 between different kinds of computer systems.")
933 (home-page "https://people.redhat.com/~rjones/portablexdr/")
934 (license
935 (list
936 license:gpl2+
937 license:lgpl2.1+))))
938
939 (define-public tepl
940 (package
941 (name "tepl")
942 (version "4.4.0")
943 (source
944 (origin
945 (method url-fetch)
946 (uri
947 (string-append "mirror://gnome/sources/" name "/"
948 (version-major+minor version) "/"
949 name "-" version ".tar.xz"))
950 (sha256
951 (base32
952 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
953 (build-system glib-or-gtk-build-system)
954 (arguments
955 `(#:tests? #f)) ; FIX-ME: Requires gvfs
956 (native-inputs
957 `(("gobject-introspection" ,gobject-introspection)
958 ("pkg-config" ,pkg-config)))
959 (inputs
960 `(("amtk" ,amtk)
961 ("glib" ,glib)
962 ("gtk+" ,gtk+)
963 ("gtksourceview" ,gtksourceview)
964 ("libxml2" ,libxml2)
965 ("uchardet" ,uchardet)))
966 (synopsis "Text editor product line")
967 (description "Tepl is a library that eases the development of
968 GtkSourceView-based text editors and IDEs.")
969 (home-page "https://wiki.gnome.org/Projects/Tepl")
970 (license license:lgpl2.1+)))
971
972 (define-public krb5-auth-dialog
973 (package
974 (name "krb5-auth-dialog")
975 (version "3.26.1")
976 (source
977 (origin
978 (method url-fetch)
979 (uri
980 (string-append "mirror://gnome/sources/" name "/"
981 (version-major+minor version) "/"
982 name "-" version ".tar.xz"))
983 (sha256
984 (base32
985 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
986 (build-system glib-or-gtk-build-system)
987 (native-inputs
988 `(("intltool" ,intltool)
989 ("itstool" ,itstool)
990 ("libxml2" ,libxml2)
991 ("pkg-config" ,pkg-config)
992 ("python-wrapper" ,python-wrapper)))
993 (inputs
994 `(("glib" ,glib)
995 ("gtk+" ,gtk+)
996 ("libnotify" ,libnotify)
997 ("mit-krb5" ,mit-krb5)
998 ("network-manager" ,network-manager)))
999 (synopsis "Popup dialogs for Kerberos 5")
1000 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1001 tickets, and pops up a dialog when they are about to expire.")
1002 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1003 (license license:gpl2+)))
1004
1005 (define-public notification-daemon
1006 (package
1007 (name "notification-daemon")
1008 (version "3.20.0")
1009 (source
1010 (origin
1011 (method url-fetch)
1012 (uri
1013 (string-append "mirror://gnome/sources/" name "/"
1014 (version-major+minor version) "/"
1015 name "-" version ".tar.xz"))
1016 (sha256
1017 (base32
1018 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1019 (build-system glib-or-gtk-build-system)
1020 (native-inputs
1021 `(("intltool" ,intltool)
1022 ("pkg-config" ,pkg-config)))
1023 (inputs
1024 `(("glib" ,glib)
1025 ("gtk+" ,gtk+)
1026 ("x11" ,libx11)))
1027 (synopsis "Notification Daemon for GNOME Desktop")
1028 (description "Notification-Daemon is the server implementation of the
1029 freedesktop.org desktop notification specification.")
1030 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1031 (license license:gpl2+)))
1032
1033 (define-public mm-common
1034 (package
1035 (name "mm-common")
1036 (version "1.0.1")
1037 (source (origin
1038 (method url-fetch)
1039 (uri (string-append "mirror://gnome/sources/mm-common/"
1040 (version-major+minor version) "/"
1041 "mm-common-" version ".tar.xz"))
1042 (sha256
1043 (base32
1044 "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
1045 (build-system meson-build-system)
1046 (arguments
1047 `(#:phases
1048 (modify-phases %standard-phases
1049 (add-after 'unpack 'patch
1050 (lambda* (#:key inputs #:allow-other-keys)
1051 (substitute* "util/mm-common-prepare.in"
1052 (("ln") (string-append (assoc-ref inputs "coreutils")
1053 "/bin/ln"))
1054 (("cp") (string-append (assoc-ref inputs "coreutils")
1055 "/bin/cp"))
1056 (("sed") (string-append (assoc-ref inputs "sed")
1057 "/bin/sed"))
1058 (("cat") (string-append (assoc-ref inputs "coreutils")
1059 "/bin/cat")))
1060 #t)))))
1061 (native-inputs
1062 `(("coreutils" ,coreutils)
1063 ("gettext" ,gettext-minimal)
1064 ("pkg-config" ,pkg-config)
1065 ("sed" ,sed)))
1066 (inputs
1067 `(("python" ,python)))
1068 (synopsis "Module of GNOME C++ bindings")
1069 (description "The mm-common module provides the build infrastructure
1070 and utilities shared among the GNOME C++ binding libraries. Release
1071 archives of mm-common include the Doxygen tag file for the GNU C++
1072 Library reference documentation.")
1073 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1074 (license license:gpl2+)))
1075
1076 (define-public phodav
1077 (package
1078 (name "phodav")
1079 (version "2.4")
1080 (source (origin
1081 (method url-fetch)
1082 (uri (string-append "mirror://gnome/sources/" name "/"
1083 (version-major+minor version) "/"
1084 name "-" version ".tar.xz"))
1085 (sha256
1086 (base32
1087 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
1088 (build-system meson-build-system)
1089 (native-inputs
1090 `(("gettext" ,gettext-minimal)
1091 ("glib:bin" ,glib "bin")
1092 ("gtk-doc" ,gtk-doc)
1093 ("pkg-config" ,pkg-config)))
1094 (inputs
1095 `(("avahi" ,avahi)
1096 ("libgudev" ,libgudev)
1097 ("libsoup" ,libsoup)))
1098 (synopsis "WebDav server implementation using libsoup")
1099 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1100 but it is generic enough to be reused in other projects,
1101 in particular in the GNOME desktop.")
1102 (home-page "https://wiki.gnome.org/phodav")
1103 (license license:lgpl2.1+)))
1104
1105 (define-public gnome-color-manager
1106 (package
1107 (name "gnome-color-manager")
1108 (version "3.32.0")
1109 (source (origin
1110 (method url-fetch)
1111 (uri (string-append "mirror://gnome/sources/" name "/"
1112 (version-major+minor version) "/"
1113 name "-" version ".tar.xz"))
1114 (sha256
1115 (base32
1116 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1117 (build-system meson-build-system)
1118 (arguments
1119 `(#:glib-or-gtk? #t
1120 #:phases
1121 (modify-phases %standard-phases
1122 (add-before
1123 'check 'pre-check
1124 (lambda _
1125 ;; Tests require a running X server.
1126 (system "Xvfb :1 &")
1127 (setenv "DISPLAY" ":1")
1128 #t)))))
1129 (native-inputs
1130 `(("desktop-file-utils" ,desktop-file-utils)
1131 ("gettext" ,gettext-minimal)
1132 ("glib:bin" ,glib "bin")
1133 ("gtk+:bin" ,gtk+ "bin")
1134 ("itstool" ,itstool)
1135 ("pkg-config" ,pkg-config)
1136 ("xorg-server" ,xorg-server-for-tests)))
1137 (inputs
1138 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1139 ("appstream-glib" ,appstream-glib)
1140 ("colord-gtk" ,colord-gtk)
1141 ("exiv2" ,exiv2)
1142 ("gnome-desktop" ,gnome-desktop)
1143 ("libcanberra" ,libcanberra)
1144 ("libexif" ,libexif)
1145 ("libtiff" ,libtiff)
1146 ("libxrandr" ,libxrandr)
1147 ("libxtst" ,libxtst)
1148 ("libxxf86vm" ,libxxf86vm)
1149 ("vte" ,vte)
1150 ("xorgproto" ,xorgproto)))
1151 (synopsis "Color profile manager for the GNOME desktop")
1152 (description "GNOME Color Manager is a session framework that makes
1153 it easy to manage, install and generate color profiles
1154 in the GNOME desktop.")
1155 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1156 (license license:gpl2+)))
1157
1158 (define-public gnome-online-miners
1159 (package
1160 (name "gnome-online-miners")
1161 (version "3.34.0")
1162 (source (origin
1163 (method url-fetch)
1164 (uri (string-append "mirror://gnome/sources/" name "/"
1165 (version-major+minor version) "/"
1166 name "-" version ".tar.xz"))
1167 (sha256
1168 (base32
1169 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1170 (build-system glib-or-gtk-build-system)
1171 (native-inputs
1172 `(("gettext" ,gettext-minimal)
1173 ("glib:bin" ,glib "bin")
1174 ("gobject-introspection" ,gobject-introspection)
1175 ("gtk+:bin" ,gtk+ "bin")
1176 ("pkg-config" ,pkg-config)))
1177 (inputs
1178 `(("gnome-online-accounts" ,gnome-online-accounts)
1179 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1180 ("grilo" ,grilo)
1181 ("libgdata" ,libgdata)
1182 ("libgfbgraph" ,gfbgraph)
1183 ("libzapojit" ,libzapojit)
1184 ("rest" ,rest)
1185 ("tracker" ,tracker)))
1186 (synopsis "Web Crawlers for GNOME")
1187 (description "GNOME Online Miners provides a set of crawlers that
1188 go through your online content and index them locally in Tracker.
1189 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1190 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1191 (license license:gpl2+)))
1192
1193 (define-public gssdp
1194 (package
1195 (name "gssdp")
1196 (version "1.2.3")
1197 (source (origin
1198 (method url-fetch)
1199 (uri (string-append "mirror://gnome/sources/" name "/"
1200 (version-major+minor version) "/"
1201 name "-" version ".tar.xz"))
1202 (sha256
1203 (base32
1204 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1205 (build-system meson-build-system)
1206 (native-inputs
1207 `(("gettext" ,gettext-minimal)
1208 ("glib:bin" ,glib "bin")
1209 ("gobject-introspection" ,gobject-introspection)
1210 ("gtk-doc" ,gtk-doc)
1211 ("pkg-config" ,pkg-config)
1212 ("vala" ,vala)))
1213 (inputs
1214 `(("gtk+" ,gtk+)
1215 ("libsoup" ,libsoup)))
1216 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1217 Protocol} for GNOME")
1218 (description "This package provides a library to handle resource discovery
1219 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1220 a debugging tool, @command{gssdp-device-sniffer}.")
1221 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1222 (license license:lgpl2.0+)))
1223
1224 (define-public gupnp
1225 (package
1226 (name "gupnp")
1227 (version "1.2.4")
1228 (source (origin
1229 (method url-fetch)
1230 (uri (string-append "mirror://gnome/sources/" name "/"
1231 (version-major+minor version) "/"
1232 name "-" version ".tar.xz"))
1233 (sha256
1234 (base32
1235 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1236 (build-system meson-build-system)
1237 (native-inputs
1238 `(("gettext" ,gettext-minimal)
1239 ("glib:bin" ,glib "bin")
1240 ("gobject-introspection" ,gobject-introspection)
1241 ("gtk-doc" ,gtk-doc)
1242 ("pkg-config" ,pkg-config)
1243 ("vala" ,vala)))
1244 (inputs
1245 `(("gssdp" ,gssdp)
1246 ("gtk+" ,gtk+)
1247 ("libsoup" ,libsoup)))
1248 (synopsis "PnP API for GNOME")
1249 (description "This package provides GUPnP, an object-oriented framework
1250 for creating UPnP devices and control points, written in C using
1251 @code{GObject} and @code{libsoup}.")
1252 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1253 (license license:lgpl2.0+)))
1254
1255 (define-public gupnp-dlna
1256 (package
1257 (name "gupnp-dlna")
1258 (version "0.10.5")
1259 (source (origin
1260 (method url-fetch)
1261 (uri (string-append "mirror://gnome/sources/" name "/"
1262 (version-major+minor version) "/"
1263 name "-" version ".tar.xz"))
1264 (sha256
1265 (base32
1266 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1267 (build-system gnu-build-system)
1268 (native-inputs
1269 `(("gettext" ,gettext-minimal)
1270 ("glib:bin" ,glib "bin")
1271 ("gobject-introspection" ,gobject-introspection)
1272 ("gtk-doc" ,gtk-doc)
1273 ("libxml" ,libxml2)
1274 ("pkg-config" ,pkg-config)
1275 ("vala" ,vala)))
1276 (inputs
1277 `(("gstreamer" ,gstreamer)
1278 ("gupnp" ,gupnp)))
1279 (propagated-inputs
1280 `(("gst-plugins-base" ,gst-plugins-base)
1281 ("gst-plugins-good" ,gst-plugins-good)))
1282 (synopsis "GUPnP DLNA for GNOME")
1283 (description "This package provides a small utility library to
1284 support DLNA-related tasks such as media profile guessing, transcoding to a
1285 given profile, etc. DLNA is a subset of UPnP A/V.")
1286 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1287 (license license:lgpl2.0+)))
1288
1289 (define-public gupnp-av
1290 (package
1291 (name "gupnp-av")
1292 (version "0.12.11")
1293 (source (origin
1294 (method url-fetch)
1295 (uri (string-append "mirror://gnome/sources/" name "/"
1296 (version-major+minor version) "/"
1297 name "-" version ".tar.xz"))
1298 (sha256
1299 (base32
1300 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1301 (build-system gnu-build-system)
1302 (native-inputs
1303 `(("gettext" ,gettext-minimal)
1304 ("glib:bin" ,glib "bin")
1305 ("gobject-introspection" ,gobject-introspection)
1306 ("gtk-doc" ,gtk-doc)
1307 ("libxml" ,libxml2)
1308 ("pkg-config" ,pkg-config)))
1309 (inputs
1310 `(("gtk+" ,gtk+)
1311 ("gupnp" ,gupnp)))
1312 (synopsis "GUPnP A/V for GNOME")
1313 (description "This package provides a small library for handling
1314 and implementation of UPnP A/V profiles.")
1315 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1316 (license license:lgpl2.0+)))
1317
1318 (define-public libmediaart
1319 (package
1320 (name "libmediaart")
1321 (version "1.9.4")
1322 (source (origin
1323 (method url-fetch)
1324 (uri (string-append "mirror://gnome/sources/" name "/"
1325 (version-major+minor version) "/"
1326 name "-" version ".tar.xz"))
1327 (sha256
1328 (base32
1329 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
1330 (build-system gnu-build-system)
1331 (native-inputs
1332 `(("glib:bin" ,glib "bin")
1333 ("pkg-config" ,pkg-config)))
1334 (inputs
1335 `(("gdk-pixbuf" ,gdk-pixbuf)
1336 ("gettext" ,gettext-minimal)
1337 ("gobject-introspection" ,gobject-introspection)
1338 ("gtk+:doc", gtk+ "doc")
1339 ("vala" ,vala)))
1340 (synopsis "Media art library for the GNOME desktop")
1341 (description
1342 "The libmediaart library is the foundation for media art caching,
1343 extraction, and lookup for applications on the desktop.")
1344 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1345 (license license:lgpl2.1+)))
1346
1347 (define-public gnome-initial-setup
1348 (package
1349 (name "gnome-initial-setup")
1350 (version "3.32.1")
1351 (source (origin
1352 (method url-fetch)
1353 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1354 (version-major+minor version)
1355 "/gnome-initial-setup-" version ".tar.xz"))
1356 (sha256
1357 (base32
1358 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1359 (build-system meson-build-system)
1360 (arguments
1361 '(#:configure-flags '(;; Enable camera support for user selfie.
1362 "-Dcheese=auto"
1363 "-Dsystemd=false")
1364 #:phases (modify-phases %standard-phases
1365 (add-after 'unpack 'set-gkbd-file-name
1366 (lambda* (#:key inputs #:allow-other-keys)
1367 ;; Allow the "Preview" button in the keyboard layout
1368 ;; selection dialog to display the layout.
1369 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1370 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1371 (("\"gkbd-keyboard-display")
1372 (string-append "\"" libgnomekbd
1373 "/bin/gkbd-keyboard-display")))
1374 #t))))))
1375 (native-inputs
1376 `(("gettext" ,gettext-minimal)
1377 ("glib:bin" ,glib "bin")
1378 ("gobject-introspection" ,gobject-introspection)
1379 ("gtk+:bin" ,gtk+ "bin")
1380 ("pkg-config" ,pkg-config)))
1381 (inputs
1382 `(("accountsservice" ,accountsservice)
1383 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1384 ("gdm" ,gdm)
1385 ("geoclue" ,geoclue)
1386 ("gnome-desktop" ,gnome-desktop)
1387 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1388 ("gnome-online-accounts" ,gnome-online-accounts)
1389 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1390 ("gstreamer" ,gstreamer)
1391 ("ibus" ,ibus)
1392 ("json-glib" ,json-glib)
1393 ("krb5" ,mit-krb5)
1394 ("libgweather" ,libgweather)
1395 ("libnma" ,libnma)
1396 ("libsecret" ,libsecret)
1397 ("network-manager" ,network-manager)
1398 ("packagekit" ,packagekit)
1399 ("polkit" ,polkit)
1400 ("pwquality" ,libpwquality)
1401 ("rest" ,rest)
1402 ("upower" ,upower)
1403 ("webkitgtk" ,webkitgtk)
1404 ("libgnomekbd" ,libgnomekbd)))
1405 (synopsis "Initial setup wizard for GNOME desktop")
1406 (description "This package provides a set-up wizard when a
1407 user logs into GNOME for the first time. It typically provides a
1408 tour of all gnome components and allows the user to set them up.")
1409 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1410 (license license:gpl2)))
1411
1412 (define-public gnome-user-share
1413 (package
1414 (name "gnome-user-share")
1415 (version "3.33.1")
1416 (source (origin
1417 (method url-fetch)
1418 (uri (string-append "mirror://gnome/sources/" name "/"
1419 (version-major+minor version) "/"
1420 name "-" version ".tar.xz"))
1421 (sha256
1422 (base32
1423 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1424 (build-system meson-build-system)
1425 (arguments
1426 `(#:glib-or-gtk? #t
1427 #:configure-flags
1428 `("-Dsystemd=false"
1429 ;; Enable nautilus extension for file sharing.
1430 "-Dnautilus_extension=true")))
1431 (native-inputs
1432 `(("gettext" ,gettext-minimal)
1433 ("glib:bin" ,glib "bin")
1434 ("gobject-introspection" ,gobject-introspection)
1435 ("gtk+:bin" ,gtk+ "bin")
1436 ("pkg-config" ,pkg-config)
1437 ("yelp-tools" ,yelp-tools)))
1438 (inputs
1439 `(("glib" ,glib)
1440 ("gnome-bluetooth" ,gnome-bluetooth)
1441 ("gtk+" ,gtk+)
1442 ("libcanberra" ,libcanberra)
1443 ("libnotify" ,libnotify)
1444 ("nautilus" ,nautilus))) ; For nautilus extension.
1445 (synopsis "File sharing for GNOME desktop")
1446 (description "GNOME User Share is a small package that binds together
1447 various free software projects to bring easy to use user-level file
1448 sharing to the masses.")
1449 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1450 (license license:gpl2+)))
1451
1452 (define-public sushi
1453 (package
1454 (name "sushi")
1455 (version "3.32.1")
1456 (source (origin
1457 (method url-fetch)
1458 (uri (string-append "mirror://gnome/sources/" name "/"
1459 (version-major+minor version) "/"
1460 name "-" version ".tar.xz"))
1461 (sha256
1462 (base32
1463 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1464 (build-system meson-build-system)
1465 (arguments
1466 `(#:glib-or-gtk? #t
1467 #:phases
1468 (modify-phases %standard-phases
1469 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1470 (lambda* (#:key outputs #:allow-other-keys)
1471 (let ((prog (string-append (assoc-ref outputs "out")
1472 "/bin/sushi")))
1473 ;; Put existing typelibs before sushi's deps, so as to correctly
1474 ;; infer gdk-pixbuf
1475 (wrap-program prog
1476 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1477 #t))))))
1478 (native-inputs
1479 `(("glib:bin" ,glib "bin")
1480 ("gettext" ,gettext-minimal)
1481 ("gobject-introspection" ,gobject-introspection)
1482 ("pkg-config" ,pkg-config)))
1483 (inputs
1484 `(("clutter" ,clutter)
1485 ("clutter-gst" ,clutter-gst)
1486 ("clutter-gtk" ,clutter-gtk)
1487 ("evince" ,evince) ; For file previewing.
1488 ("freetype" ,freetype)
1489 ("gdk-pixbuf" ,gdk-pixbuf)
1490 ("gjs" ,gjs)
1491 ("gst-plugins-base" ,gst-plugins-base)
1492 ("gstreamer" ,gstreamer)
1493 ("gtksourceview" ,gtksourceview-3)
1494 ("harfbuzz" ,harfbuzz)
1495 ("libepoxy" ,libepoxy)
1496 ("libmusicbrainz" ,libmusicbrainz)
1497 ("libxml2" ,libxml2)
1498 ("neon" ,neon)
1499 ("webkitgtk" ,webkitgtk)))
1500 (synopsis "File previewer for the GNOME desktop")
1501 (description "Sushi is a DBus-activated service that allows applications to
1502 preview files on the GNOME desktop.")
1503 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1504 (license license:gpl2+)))
1505
1506 (define-public rygel
1507 (package
1508 (name "rygel")
1509 (version "0.38.3")
1510 (source (origin
1511 (method url-fetch)
1512 (uri (string-append "mirror://gnome/sources/" name "/"
1513 (version-major+minor version) "/"
1514 name "-" version ".tar.xz"))
1515 (sha256
1516 (base32
1517 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1518 (build-system gnu-build-system)
1519 (native-inputs
1520 `(("gettext" ,gettext-minimal)
1521 ("gobject-introspection" ,gobject-introspection)
1522 ("gtk-doc" ,gtk-doc)
1523 ("pkg-config" ,pkg-config)
1524 ("vala" ,vala)))
1525 (inputs
1526 `(("gdk-pixbuf" ,gdk-pixbuf)
1527 ("gssdp" ,gssdp)
1528 ("gstreamer" ,gstreamer)
1529 ("gst-plugins-base" ,gst-plugins-base)
1530 ("gtk+" ,gtk+)
1531 ("gupnp" ,gupnp)
1532 ("gupnp-av" ,gupnp-av)
1533 ("gupnp-dlna" ,gupnp-dlna)
1534 ("libgee" ,libgee)
1535 ("libmediaart" ,libmediaart)
1536 ("libsoup" ,libsoup)
1537 ("libxslt" ,libxslt)
1538 ("libunistring" ,libunistring)
1539 ("tracker" ,tracker)))
1540 (synopsis "Share audio, video, and pictures with other devices")
1541 (description
1542 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1543 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1544 pictures, and to control a media player on your home network.
1545
1546 Rygel achieves interoperability with other devices by trying to conform to the
1547 strict requirements of DLNA and by converting media on-the-fly to formats that
1548 client devices can handle.")
1549 (home-page "https://wiki.gnome.org/Projects/Rygel")
1550 (license (list
1551 ;; For logo (data/icons/*).
1552 license:cc-by-sa3.0
1553 ;; For all others.
1554 license:lgpl2.1+))))
1555
1556 (define-public libnma
1557 (package
1558 (name "libnma")
1559 (version "1.8.28")
1560 (source (origin
1561 (method url-fetch)
1562 (uri (string-append "mirror://gnome/sources/" name "/"
1563 (version-major+minor version) "/"
1564 name "-" version ".tar.xz"))
1565 (sha256
1566 (base32
1567 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1568 (build-system meson-build-system)
1569 (arguments
1570 `(#:phases
1571 (modify-phases %standard-phases
1572 (add-after 'unpack 'patch-docbook-xml
1573 (lambda* (#:key inputs #:allow-other-keys)
1574 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1575 "/xml/dtd/docbook")))
1576 (substitute* "libnma-docs.xml"
1577 (("http://.*/docbookx\\.dtd")
1578 (string-append xmldoc "/docbookx.dtd")))
1579 #t))))))
1580 (native-inputs
1581 `(("docbook-xml" ,docbook-xml-4.3)
1582 ("gettext" ,gettext-minimal)
1583 ("glib:bin" ,glib "bin")
1584 ("gtk-doc" ,gtk-doc)
1585 ("gobject-introspection" ,gobject-introspection)
1586 ("pkg-config" ,pkg-config)
1587 ("vala" ,vala)))
1588 (inputs
1589 `(("gcr" ,gcr)
1590 ("gtk+" ,gtk+)
1591 ("iso-codes" ,iso-codes)
1592 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1593 ("network-manager" ,network-manager)))
1594 (synopsis "Network Manager's applet library")
1595 (description "Libnma is an applet library for Network Manager. It was
1596 initially part of network-manager-applet and has now become a separate
1597 project.")
1598 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1599 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1600 ;; "LGPL-2.1+".
1601 (license license:gpl2+)))
1602
1603 (define-public gnome-menus
1604 (package
1605 (name "gnome-menus")
1606 (version "3.32.0")
1607 (source (origin
1608 (method url-fetch)
1609 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1610 (version-major+minor version) "/"
1611 name "-" version ".tar.xz"))
1612 (sha256
1613 (base32
1614 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1615 (build-system gnu-build-system)
1616 (native-inputs
1617 `(("gettext" ,gettext-minimal)
1618 ("glib" ,glib)
1619 ("pkg-config" ,pkg-config)))
1620 (synopsis "Menu support for GNOME desktop")
1621 (description "GNOME Menus contains the libgnome-menu library, the layout
1622 configuration files for the GNOME menu, as well as a simple menu editor.")
1623 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1624 (license license:lgpl2.0+)))
1625
1626 (define-public deja-dup
1627 (package
1628 (name "deja-dup")
1629 (version "40.6")
1630 (source (origin
1631 (method url-fetch)
1632 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1633 version "/deja-dup-" version ".tar.bz2"))
1634 (sha256
1635 (base32
1636 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1637 (build-system meson-build-system)
1638 (arguments
1639 `(#:glib-or-gtk? #t
1640 #:configure-flags
1641 (list
1642 ;; Otherwise, the RUNPATH will lack the final path component.
1643 (string-append "-Dc_link_args=-Wl,-rpath="
1644 (assoc-ref %outputs "out") "/lib/deja-dup"))
1645 #:phases
1646 (modify-phases %standard-phases
1647 (add-after 'unpack 'patch-paths
1648 (lambda* (#:key inputs #:allow-other-keys)
1649 (let ((python (assoc-ref inputs "python")))
1650 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1651 "libdeja/tests/scripts/instance-error.test")
1652 (("/bin/rm")
1653 (which "rm")))
1654 (substitute* "libdeja/tests/runner.vala"
1655 (("/bin/sh")
1656 (which "sh")))
1657 (substitute* "libdeja/tests/scripts/instance-error.test"
1658 (("`which python3`")
1659 (string-append python "/bin/python3"))))))
1660 (add-after 'unpack 'patch-libgpg-error
1661 (lambda* (#:key inputs #:allow-other-keys)
1662 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1663 (substitute* "meson.build"
1664 (("(gpgerror_libs = ).*" _ var)
1665 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1666 #t))
1667 (add-after 'unpack 'skip-gtk-update-icon-cache
1668 ;; Don't create 'icon-theme.cache'.
1669 (lambda _
1670 (substitute* "data/post-install.sh"
1671 (("gtk-update-icon-cache") "true"))
1672 #t)))))
1673 (inputs
1674 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1675 ("duplicity" ,duplicity)
1676 ("python" ,python)
1677 ("python-pygobject" ,python-pygobject)
1678 ("gtk+" ,gtk+)
1679 ("json-glib" ,json-glib)
1680 ("libnotify" ,libnotify)
1681 ("libgpg-error" ,libgpg-error)
1682 ("libsecret" ,libsecret)
1683 ("libsoup" ,libsoup)
1684 ("packagekit" ,packagekit)))
1685 (native-inputs
1686 `(("appstream-glib" ,appstream-glib)
1687 ("desktop-file-utils" ,desktop-file-utils)
1688 ("gettext" ,gettext-minimal)
1689 ("glib" ,glib "bin") ; for glib-compile-schemas.
1690 ("gobject-introspection" ,gobject-introspection)
1691 ("itstool" ,itstool)
1692 ("pkg-config" ,pkg-config)
1693 ("vala" ,vala)))
1694 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1695 (synopsis "Simple backup tool, for regular encrypted backups")
1696 (description
1697 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1698 uses duplicity as the backend, which supports incremental backups and storage
1699 either on a local, or remote machine via a number of methods.")
1700 (license license:gpl3+)))
1701
1702 (define-public gnome-user-docs
1703 (package
1704 (name "gnome-user-docs")
1705 (version "3.32.3")
1706 (source
1707 (origin
1708 (method url-fetch)
1709 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1710 (version-major+minor version)
1711 "/gnome-user-docs-" version ".tar.xz"))
1712 (sha256
1713 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1714 (build-system gnu-build-system)
1715 (native-inputs
1716 `(("gettext" ,gettext-minimal)
1717 ("itstool" ,itstool)
1718 ("pkg-config" ,pkg-config)
1719 ("xmllint" ,libxml2)))
1720 (synopsis "User documentation for the GNOME desktop")
1721 (description
1722 "The GNOME User Documentation explains how to use the GNOME desktop and its
1723 components. It covers usage and setup of the core GNOME programs by end-users
1724 and system administrators.")
1725 (home-page "https://live.gnome.org/DocumentationProject")
1726 (license license:cc-by3.0)))
1727
1728 (define-public gnome-getting-started-docs
1729 (package
1730 (name "gnome-getting-started-docs")
1731 (version "3.32.2")
1732 (source
1733 (origin
1734 (method url-fetch)
1735 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1736 (version-major+minor version)
1737 "/gnome-getting-started-docs-" version ".tar.xz"))
1738 (sha256
1739 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1740 (build-system gnu-build-system)
1741 (native-inputs
1742 `(("gettext" ,gettext-minimal)
1743 ("itstool" ,itstool)
1744 ("pkg-config" ,pkg-config)
1745 ("xmllint" ,libxml2)))
1746 (synopsis "Help to get new users started with the GNOME desktop")
1747 (description
1748 "The GNOME Getting Started Documentation contains GNOME's intuitive
1749 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1750
1751 It is normally used together with @command{gnome-initial-setup}, but is also
1752 useful as a tutorial and users' guide for new or less experienced users.")
1753 (home-page "https://live.gnome.org/DocumentationProject")
1754 (license license:cc-by-sa3.0)))
1755
1756 (define-public dia
1757 ;; This version from GNOME's repository includes fixes for compiling with
1758 ;; recent versions of the build tools. The latest activity on the
1759 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1760 ;; fixes since.
1761 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1762 (revision "2"))
1763 (package
1764 (name "dia")
1765 (version (git-version "0.97.3" revision commit))
1766 (source (origin
1767 (method git-fetch)
1768 (uri (git-reference
1769 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1770 (commit commit)))
1771 (file-name (git-file-name name version))
1772 (sha256
1773 (base32
1774 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1775 (build-system meson-build-system)
1776 (inputs
1777 `(("graphene" ,graphene)
1778 ("gtk+" ,gtk+-2)
1779 ("libxml2" ,libxml2)
1780 ("libxslt" ,libxslt)
1781 ("poppler" ,poppler)
1782 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1783 ;; ERROR: Unknown method "dependency" in object.
1784 ("python-2" ,python-2)))
1785 (native-inputs
1786 `(("appstream-glib" ,appstream-glib)
1787 ("docbook-xsl" ,docbook-xsl)
1788 ("glib" ,glib "bin")
1789 ("intltool" ,intltool)
1790 ("pkg-config" ,pkg-config)))
1791 (home-page "https://wiki.gnome.org/Apps/Dia")
1792 (synopsis "Diagram creation for GNOME")
1793 (description "Dia can be used to draw different types of diagrams, and
1794 includes support for UML static structure diagrams (class diagrams), entity
1795 relationship modeling, and network diagrams. The program supports various file
1796 formats like PNG, SVG, PDF and EPS.")
1797 (license license:gpl2+))))
1798
1799 ;; This is the unstable release, but it is required for the current stable
1800 ;; release of gvfs (1.38.1).
1801 (define-public libgdata
1802 (package
1803 (name "libgdata")
1804 (version "0.17.9")
1805 (source (origin
1806 (method url-fetch)
1807 (uri (string-append "mirror://gnome/sources/" name "/"
1808 (version-major+minor version) "/"
1809 name "-" version ".tar.xz"))
1810 (sha256
1811 (base32
1812 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1813 (build-system gnu-build-system)
1814 (arguments
1815 '(#:phases
1816 (modify-phases %standard-phases
1817 (add-before 'check 'disable-failing-tests
1818 (lambda _
1819 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1820 ;; They have been removed in libgdata 0.17.6, so just do the same.
1821 (substitute* "gdata/tests/Makefile"
1822 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1823 #t)))))
1824 (native-inputs
1825 `(("glib:bin" ,glib "bin")
1826 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1827 ("intltool" ,intltool)
1828 ("pkg-config" ,pkg-config)
1829 ("uhttpmock" ,uhttpmock)))
1830 (inputs
1831 `(("cyrus-sasl" ,cyrus-sasl)
1832 ("glib-networking" ,glib-networking)))
1833 (propagated-inputs
1834 `(("gcr" ,gcr)
1835 ("glib" ,glib)
1836 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1837 ("json-glib" ,json-glib)
1838 ("liboauth" ,liboauth)
1839 ("libsoup" ,libsoup)
1840 ("libxml2" ,libxml2)))
1841 (home-page "https://wiki.gnome.org/Projects/libgdata")
1842 (synopsis "Library for accessing online service APIs")
1843 (description
1844 "libgdata is a GLib-based library for accessing online service APIs using
1845 the GData protocol — most notably, Google's services. It provides APIs to
1846 access the common Google services, and has full asynchronous support.")
1847 (license license:lgpl2.1+)))
1848
1849 (define-public libgxps
1850 (package
1851 (name "libgxps")
1852 (version "0.3.1")
1853 (source (origin
1854 (method url-fetch)
1855 (uri (string-append "mirror://gnome/sources/" name "/"
1856 (version-major+minor version) "/"
1857 name "-" version ".tar.xz"))
1858 (sha256
1859 (base32
1860 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1861 (build-system meson-build-system)
1862 (native-inputs
1863 `(("gobject-introspection" ,gobject-introspection)
1864 ("pkg-config" ,pkg-config)))
1865 (inputs
1866 `(("gtk+" ,gtk+)
1867 ("libjpeg" ,libjpeg-turbo)
1868 ("lcms" ,lcms)
1869 ("libtiff" ,libtiff)))
1870 (propagated-inputs
1871 ;; In Requires of libgxps.pc.
1872 `(("cairo" ,cairo)
1873 ("glib" ,glib)
1874 ("libarchive" ,libarchive)))
1875 (home-page "https://wiki.gnome.org/Projects/libgxps")
1876 (synopsis "GObject-based library for handling and rendering XPS documents")
1877 (description
1878 "libgxps is a GObject-based library for handling and rendering XPS
1879 documents. This package also contains binaries that can convert XPS documents
1880 to other formats.")
1881 (license license:lgpl2.1+)))
1882
1883 (define-public gnome-characters
1884 (package
1885 (name "gnome-characters")
1886 (version "3.30.0")
1887 (source
1888 (origin
1889 (method url-fetch)
1890 (uri (string-append "mirror://gnome/sources/"
1891 "gnome-characters/" (version-major+minor version)
1892 "/gnome-characters-" version ".tar.xz"))
1893 (sha256
1894 (base32
1895 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1896 (build-system meson-build-system)
1897 (arguments
1898 `(#:glib-or-gtk? #t
1899 #:phases (modify-phases %standard-phases
1900 (add-after 'install 'wrap
1901 (lambda* (#:key outputs #:allow-other-keys)
1902 ;; GNOME Characters needs Typelib files from GTK and
1903 ;; gnome-desktop.
1904 (wrap-program (string-append (assoc-ref outputs "out")
1905 "/bin/gnome-characters")
1906 `("GI_TYPELIB_PATH" ":" prefix
1907 (,(getenv "GI_TYPELIB_PATH"))))
1908 #t)))))
1909 (native-inputs
1910 `(("gettext" ,gettext-minimal)
1911 ("glib:bin" ,glib "bin")
1912 ("gtk+:bin" ,gtk+ "bin")
1913 ("pkg-config" ,pkg-config)
1914 ("python" ,python-minimal)))
1915 (inputs
1916 `(("gjs" ,gjs)
1917 ("gtk+" ,gtk+)
1918 ("libunistring" ,libunistring)
1919 ("gnome-desktop" ,gnome-desktop)))
1920 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1921 (synopsis "Find and insert unusual characters")
1922 (description "Characters is a simple utility application to find
1923 and insert unusual characters. It allows you to quickly find the
1924 character you are looking for by searching for keywords.")
1925 (license license:bsd-3)))
1926
1927 (define-public gnome-common
1928 (package
1929 (name "gnome-common")
1930 (version "3.18.0")
1931 (source
1932 (origin
1933 (method url-fetch)
1934 (uri (string-append "mirror://gnome/sources/" name "/"
1935 (version-major+minor version) "/"
1936 name "-" version ".tar.xz"))
1937 (sha256
1938 (base32
1939 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1940 (build-system gnu-build-system)
1941 (home-page "https://www.gnome.org/")
1942 (synopsis "Bootstrap GNOME modules built from Git")
1943 (description "gnome-common contains various files needed to bootstrap
1944 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1945 can be used to configure a source directory checked out from Git and some
1946 commonly used macros.")
1947 (license license:gpl2+)))
1948
1949 (define-public gnome-contacts
1950 (package
1951 (name "gnome-contacts")
1952 (version "3.34")
1953 (source (origin
1954 (method url-fetch)
1955 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1956 (version-major+minor version) "/"
1957 name "-" version ".tar.xz"))
1958 (sha256
1959 (base32
1960 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1961 (build-system meson-build-system)
1962 (arguments
1963 `(#:configure-flags '("-Dcheese=false")
1964 #:phases
1965 (modify-phases %standard-phases
1966 (add-after 'unpack 'generate-vapis
1967 (lambda* (#:key inputs #:allow-other-keys)
1968 ;; To generate goa's missing .vapi file
1969 (define goa
1970 (assoc-ref inputs "gnome-online-accounts:lib"))
1971
1972 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1973 "--library=goa-1.0"
1974 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1975 #t))
1976 (add-after 'unpack 'skip-gtk-update-icon-cache
1977 ;; Don't create 'icon-theme.cache'.
1978 (lambda _
1979 (substitute* "build-aux/meson_post_install.py"
1980 (("gtk-update-icon-cache") "true"))
1981 #t)))))
1982 (native-inputs
1983 `(("glib:bin" ,glib "bin")
1984 ("pkg-config" ,pkg-config)))
1985 (inputs
1986 `(("docbook-xml" ,docbook-xml)
1987 ("dockbook-xsl" ,docbook-xsl)
1988 ("evolution-data-server" ,evolution-data-server)
1989 ("gettext" ,gettext-minimal)
1990 ("gnome-desktop" ,gnome-desktop)
1991 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1992 ("gobject-introspection" ,gobject-introspection)
1993 ("gst-plugins-base" ,gst-plugins-base)
1994 ("gtk+" ,gtk+)
1995 ("libgee" ,libgee)
1996 ("libxslt" ,libxslt)
1997 ("telepathy-glib" ,telepathy-glib)
1998 ("vala" ,vala)))
1999 (propagated-inputs
2000 `(("folks", folks)
2001 ("telepathy-mission-control" ,telepathy-mission-control)))
2002 (synopsis "GNOME's integrated address book")
2003 (description
2004 "GNOME Contacts organizes your contact information from online and
2005 offline sources, providing a centralized place for managing your contacts.")
2006 (home-page "https://wiki.gnome.org/Apps/Contacts")
2007 (license license:gpl2+)))
2008
2009 (define-public gnome-desktop
2010 (package
2011 (name "gnome-desktop")
2012 (version "3.34.2")
2013 (source
2014 (origin
2015 (method url-fetch)
2016 (uri (string-append "mirror://gnome/sources/" name "/"
2017 (version-major+minor version) "/"
2018 name "-" version ".tar.xz"))
2019 (sha256
2020 (base32
2021 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2022 (build-system meson-build-system)
2023 (arguments
2024 '(#:phases
2025 (modify-phases %standard-phases
2026 (add-before 'configure 'patch-path
2027 (lambda* (#:key inputs #:allow-other-keys)
2028 (let ((libc (assoc-ref inputs "libc")))
2029 (substitute* "libgnome-desktop/gnome-languages.c"
2030 (("\"locale\"")
2031 (string-append "\"" libc "/bin/locale\"")))
2032 #t)))
2033 (add-before 'configure 'patch-bubblewrap
2034 (lambda* (#:key inputs #:allow-other-keys)
2035 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2036 (("\"bwrap\",")
2037 (string-append "\"" (which "bwrap") "\","))
2038 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2039 (string-append "\"--ro-bind\", \""
2040 (%store-directory)
2041 "\", \""
2042 (%store-directory)
2043 "\","))
2044 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2045 #t))
2046 (add-before 'check 'pre-check
2047 (lambda* (#:key inputs #:allow-other-keys)
2048 ;; Tests require a running X server and locales.
2049 (system "Xvfb :1 &")
2050 (setenv "DISPLAY" ":1")
2051 (setenv "GUIX_LOCPATH"
2052 (string-append (assoc-ref inputs "glibc-locales")
2053 "/lib/locale"))
2054 #t)))))
2055 (native-inputs
2056 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2057 ("glibc-locales" ,glibc-locales) ; for tests
2058 ("gobject-introspection" ,gobject-introspection)
2059 ("itstool" ,itstool)
2060 ("intltool" ,intltool)
2061 ("pkg-config" ,pkg-config)
2062 ("xmllint" ,libxml2)
2063 ("xorg-server" ,xorg-server-for-tests)))
2064 (propagated-inputs
2065 ;; Required by gnome-desktop-3.0.pc.
2066 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2067 ("gtk+" ,gtk+)
2068 ("iso-codes" ,iso-codes)
2069 ("libseccomp" ,libseccomp)
2070 ("libx11" ,libx11)
2071 ("xkeyboard-config" ,xkeyboard-config)))
2072 (inputs
2073 `(("gdk-pixbuf" ,gdk-pixbuf)
2074 ("glib" ,glib)
2075 ("bubblewrap" ,bubblewrap)
2076 ("libxext" ,libxext)
2077 ("libxkbfile" ,libxkbfile)
2078 ("libxrandr" ,libxrandr)))
2079 (home-page "https://www.gnome.org/")
2080 (synopsis
2081 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2082 (description
2083 "The libgnome-desktop library provides API shared by several applications
2084 on the desktop, but that cannot live in the platform for various reasons.
2085 There is no API or ABI guarantee, although we are doing our best to provide
2086 stability. Documentation for the API is available with gtk-doc.
2087
2088 The gnome-about program helps find which version of GNOME is installed.")
2089 ; Some bits under the LGPL.
2090 (license license:gpl2+)))
2091
2092 (define-public gnome-doc-utils
2093 (package
2094 (name "gnome-doc-utils")
2095 (version "0.20.10")
2096 (source
2097 (origin
2098 (method url-fetch)
2099 (uri (string-append "mirror://gnome/sources/" name "/"
2100 (version-major+minor version) "/"
2101 name "-" version ".tar.xz"))
2102 (sha256
2103 (base32
2104 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2105 (build-system gnu-build-system)
2106 (native-inputs
2107 `(("intltool" ,intltool)
2108 ("docbook-xml" ,docbook-xml-4.4)
2109 ("python2-libxml2" ,python2-libxml2)
2110 ("libxml2" ,libxml2)
2111 ("libxslt" ,libxslt)
2112 ("pkg-config" ,pkg-config)
2113 ("python-2" ,python-2)))
2114 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2115 (synopsis
2116 "Documentation utilities for the Gnome project")
2117 (description
2118 "Gnome-doc-utils is a collection of documentation utilities for the
2119 Gnome project. It includes xml2po tool which makes it easier to translate
2120 and keep up to date translations of documentation.")
2121 (license license:gpl2+))) ; xslt under lgpl
2122
2123 (define-public gnome-disk-utility
2124 (package
2125 (name "gnome-disk-utility")
2126 (version "3.34.0")
2127 (source (origin
2128 (method url-fetch)
2129 (uri (string-append "mirror://gnome/sources/" name "/"
2130 (version-major+minor version) "/"
2131 name "-" version ".tar.xz"))
2132 (sha256
2133 (base32
2134 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2135 (build-system meson-build-system)
2136 (arguments
2137 '(#:configure-flags '("-Dlogind=libelogind")
2138 #:phases
2139 (modify-phases %standard-phases
2140 (add-after 'unpack 'skip-gtk-update-icon-cache
2141 ;; Don't create 'icon-theme.cache'.
2142 (lambda _
2143 (substitute* "meson_post_install.py"
2144 (("gtk-update-icon-cache") "true"))
2145 #t)))))
2146 (native-inputs
2147 `(("glib:bin" ,glib "bin")
2148 ("intltool" ,intltool)
2149 ("pkg-config" ,pkg-config)
2150 ("docbook-xml" ,docbook-xml)
2151 ("docbook-xsl" ,docbook-xsl)
2152 ("libxml2" ,libxml2)
2153 ("libxslt" ,libxslt)))
2154 (inputs
2155 `(("elogind" ,elogind)
2156 ("glib" ,glib)
2157 ("appstream-glib" ,appstream-glib)
2158 ("gnome-settings-daemon" ,gnome-settings-daemon)
2159 ("gtk+" ,gtk+)
2160 ("libcanberra" ,libcanberra)
2161 ("libdvdread" ,libdvdread)
2162 ("libnotify" ,libnotify)
2163 ("libpwquality" ,libpwquality)
2164 ("libsecret" ,libsecret)
2165 ("udisks" ,udisks)))
2166 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2167 (synopsis "Disk management utility for GNOME")
2168 (description "Disk management utility for GNOME.")
2169 (license license:gpl2+)))
2170
2171 (define-public gnome-font-viewer
2172 (package
2173 (name "gnome-font-viewer")
2174 (version "3.30.0")
2175 (source (origin
2176 (method url-fetch)
2177 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2178 (version-major+minor version)
2179 "/gnome-font-viewer-" version ".tar.xz"))
2180 (sha256
2181 (base32
2182 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2183 (build-system meson-build-system)
2184 (arguments
2185 '(#:phases
2186 (modify-phases %standard-phases
2187 (add-after 'unpack 'patch-post-install-script
2188 (lambda _
2189 (substitute* "meson-postinstall.sh"
2190 (("update-desktop-database") (which "true")))
2191 #t)))))
2192 (native-inputs
2193 `(("gettext" ,gettext-minimal)
2194 ("glib:bin" ,glib "bin")
2195 ("pkg-config" ,pkg-config)))
2196 (inputs
2197 `(("glib" ,glib)
2198 ("gnome-desktop" ,gnome-desktop)
2199 ("gtk+" ,gtk+)))
2200 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2201 (synopsis "GNOME Fonts")
2202 (description "Application to show you the fonts installed on your computer
2203 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2204 the font would look under various sizes.")
2205 (license license:gpl2+)))
2206
2207 (define-public gcr
2208 (package
2209 (name "gcr")
2210 (version "3.34.0")
2211 (source (origin
2212 (method url-fetch)
2213 (uri (string-append "mirror://gnome/sources/" name "/"
2214 (version-major+minor version) "/"
2215 name "-" version ".tar.xz"))
2216 (sha256
2217 (base32
2218 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2219 (build-system gnu-build-system)
2220 (arguments
2221 '(#:phases
2222 (modify-phases %standard-phases
2223 ;; These fail because /var/lib/dbus/machine-id is not present in the
2224 ;; build environment.
2225 (add-after 'unpack 'disable-failing-tests
2226 (lambda _
2227 (substitute* "Makefile.in"
2228 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2229 ""))
2230 #t))
2231 (add-before 'check 'pre-check
2232 (lambda _
2233 ;; Some tests expect to write to $HOME.
2234 (setenv "HOME" "/tmp")
2235 #t)))))
2236 (inputs
2237 `(("dbus" ,dbus)
2238 ("gnupg" ,gnupg) ;called as a child process during tests
2239 ("libgcrypt" ,libgcrypt)))
2240 (native-inputs
2241 `(("python" ,python-wrapper) ;for tests
2242 ("pkg-config" ,pkg-config)
2243 ("gettext" ,gettext-minimal)
2244 ("glib" ,glib "bin")
2245 ("gobject-introspection" ,gobject-introspection)
2246 ("libxml2" ,libxml2)
2247 ("vala" ,vala)
2248 ("xsltproc" ,libxslt)))
2249 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2250 (propagated-inputs
2251 `(("p11-kit" ,p11-kit)
2252 ("glib" ,glib)
2253 ("gtk+" ,gtk+)))
2254 (home-page "https://www.gnome.org")
2255 (synopsis "Libraries for displaying certificates and accessing key stores")
2256 (description
2257 "The GCR package contains libraries used for displaying certificates and
2258 accessing key stores. It also provides the viewer for crypto files on the
2259 GNOME Desktop.")
2260 (license license:lgpl2.1+)))
2261
2262 (define-public gdl
2263 (package
2264 (name "gdl")
2265 (version "3.34.0")
2266 (source (origin
2267 (method git-fetch)
2268 (uri (git-reference
2269 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2270 (commit (string-append "GDL_" (string-map (match-lambda
2271 (#\. #\_)
2272 (c c))
2273 version)))))
2274 (file-name (git-file-name name version))
2275 (sha256
2276 (base32
2277 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2278 (build-system gnu-build-system)
2279 (native-inputs
2280 `(("autoconf" ,autoconf)
2281 ("automake" ,automake)
2282 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2283 ("gnome-common" ,gnome-common)
2284 ("gtk-doc" ,gtk-doc)
2285 ("intltool" ,intltool)
2286 ("pkg-config" ,pkg-config)
2287 ("libtool" ,libtool)
2288 ("which" ,which)))
2289 (inputs
2290 `(("libxml2" ,libxml2)))
2291 (propagated-inputs
2292 ;; The gdl-3.0.pc file 'Requires' GTK+.
2293 `(("gtk+" ,gtk+)))
2294 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2295 (synopsis "GNOME docking library")
2296 (description "This library provides docking features for gtk+.")
2297 (license license:lgpl2.1+)))
2298
2299 ;;; A minimal variant used to break a cycle with Inkscape.
2300 (define-public gdl-minimal
2301 (package
2302 (inherit gdl)
2303 (name "gdl-minimal")
2304 (arguments
2305 '(#:phases
2306 (modify-phases %standard-phases
2307 (add-after 'unpack 'disable-doc-generation
2308 ;; XXX: There is no easy way to disable generating the
2309 ;; documentation.
2310 (lambda _
2311 (substitute* "configure.in"
2312 (("GTK_DOC_CHECK.*") "")
2313 (("docs/.*") ""))
2314 (substitute* "Makefile.am"
2315 (("gdl docs po") "gdl po"))
2316 #t)))))
2317 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2318
2319 (define-public libgnome-keyring
2320 (package
2321 (name "libgnome-keyring")
2322 (version "3.12.0")
2323 (source (origin
2324 (method url-fetch)
2325 (uri (string-append "mirror://gnome/sources/" name "/"
2326 (version-major+minor version) "/"
2327 name "-" version ".tar.xz"))
2328 (sha256
2329 (base32
2330 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2331 (build-system gnu-build-system)
2332 (inputs
2333 `(("libgcrypt" ,libgcrypt)
2334 ("dbus" ,dbus)))
2335 (native-inputs
2336 `(("pkg-config" ,pkg-config)
2337 ("glib" ,glib "bin")
2338 ("intltool" ,intltool)))
2339 (propagated-inputs
2340 ;; Referred to in .h files and .pc.
2341 `(("glib" ,glib)))
2342 (home-page "https://www.gnome.org")
2343 (synopsis "Accessing passwords from the GNOME keyring")
2344 (description
2345 "Client library to access passwords from the GNOME keyring.")
2346
2347 ;; Though a couple of files are LGPLv2.1+.
2348 (license license:lgpl2.0+)))
2349
2350 (define-public gnome-keyring
2351 (package
2352 (name "gnome-keyring")
2353 (version "3.34.0")
2354 (source (origin
2355 (method url-fetch)
2356 (uri (string-append "mirror://gnome/sources/" name "/"
2357 (version-major+minor version) "/"
2358 name "-" version ".tar.xz"))
2359 (sha256
2360 (base32
2361 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2362 (build-system gnu-build-system)
2363 (arguments
2364 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2365 ;not exist
2366 #:configure-flags
2367 (list
2368 (string-append "--with-pkcs11-config="
2369 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2370 (string-append "--with-pkcs11-modules="
2371 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2372 #:phases
2373 (modify-phases %standard-phases
2374 (add-after 'unpack 'fix-/bin/sh-reference
2375 (lambda _
2376 (substitute* "po/Makefile.in.in"
2377 (("/bin/sh") (which "sh")))
2378 #t))
2379 (add-after 'unpack 'fix-docbook
2380 (lambda* (#:key inputs #:allow-other-keys)
2381 (substitute* "docs/Makefile.am"
2382 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2383 (string-append (assoc-ref inputs "docbook-xsl")
2384 "/xml/xsl/docbook-xsl-"
2385 ,(package-version docbook-xsl)
2386 "/manpages/docbook.xsl")))
2387 (setenv "XML_CATALOG_FILES"
2388 (string-append (assoc-ref inputs "docbook-xml")
2389 "/xml/dtd/docbook/catalog.xml"))
2390 ;; Rerun the whole thing to avoid version mismatch ("This is
2391 ;; Automake 1.15.1, but the definition used by this
2392 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2393 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2394 (invoke "autoconf")
2395 (invoke "aclocal")
2396 (invoke "automake" "-ac"))))))
2397 (inputs
2398 `(("libgcrypt" ,libgcrypt)
2399 ("linux-pam" ,linux-pam)
2400 ("openssh" ,openssh)
2401 ("dbus" ,dbus)
2402 ("gcr" ,gcr)))
2403 (native-inputs
2404 `(("pkg-config" ,pkg-config)
2405 ("glib" ,glib "bin")
2406 ("glib" ,glib) ; for m4 macros
2407 ("python" ,python-2) ;for tests
2408 ("intltool" ,intltool)
2409 ("autoconf" ,autoconf)
2410 ("automake" ,automake)
2411 ("libxslt" ,libxslt) ;for documentation
2412 ("docbook-xml" ,docbook-xml-4.2)
2413 ("docbook-xsl" ,docbook-xsl)))
2414 (home-page "https://www.gnome.org")
2415 (synopsis "Daemon to store passwords and encryption keys")
2416 (description
2417 "gnome-keyring is a program that keeps passwords and other secrets for
2418 users. It is run as a daemon in the session, similar to ssh-agent, and other
2419 applications locate it via an environment variable or D-Bus.
2420
2421 The program can manage several keyrings, each with its own master password,
2422 and there is also a session keyring which is never stored to disk, but
2423 forgotten when the session ends.")
2424 (license license:lgpl2.1+)))
2425
2426 (define-public evince
2427 (package
2428 (name "evince")
2429 (version "3.36.5")
2430 (source (origin
2431 (method url-fetch)
2432 (uri (string-append "mirror://gnome/sources/evince/"
2433 (version-major+minor version) "/"
2434 "evince-" version ".tar.xz"))
2435 (sha256
2436 (base32
2437 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2438 (build-system glib-or-gtk-build-system)
2439 (arguments
2440 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2441 #:phases
2442 (modify-phases %standard-phases
2443 (add-before 'install 'skip-gtk-update-icon-cache
2444 ;; Don't create 'icon-theme.cache'.
2445 (lambda _
2446 (substitute* "data/Makefile"
2447 (("gtk-update-icon-cache") "true"))
2448 #t)))))
2449 (inputs
2450 `(("libarchive" ,libarchive)
2451 ("libgxps" ,libgxps)
2452 ("libspectre" ,libspectre)
2453 ("djvulibre" ,djvulibre)
2454 ("ghostscript" ,ghostscript)
2455 ("poppler" ,poppler)
2456 ("libtiff" ,libtiff)
2457 ;; TODO:
2458 ;; Build libkpathsea as a shared library for DVI support.
2459 ;; ("libkpathsea" ,texlive-bin)
2460 ("gnome-desktop" ,gnome-desktop)
2461 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2462 ("gspell" ,gspell)
2463 ("libgnome-keyring" ,libgnome-keyring)
2464 ("adwaita-icon-theme" ,adwaita-icon-theme)
2465 ("gdk-pixbuf" ,gdk-pixbuf)
2466 ("atk" ,atk)
2467 ("pango" ,pango)
2468 ("gtk+" ,gtk+)
2469 ("glib" ,glib)
2470 ("libxml2" ,libxml2)
2471 ("libsm" ,libsm)
2472 ("libice" ,libice)
2473 ("shared-mime-info" ,shared-mime-info)
2474 ("dconf" ,dconf)
2475 ("libcanberra" ,libcanberra)
2476 ("libsecret" ,libsecret)
2477
2478 ;; For tests.
2479 ("dogtail" ,python2-dogtail)))
2480 (native-inputs
2481 `(("itstool" ,itstool)
2482 ("intltool" ,intltool)
2483 ("glib" ,glib "bin")
2484 ("gobject-introspection" ,gobject-introspection)
2485 ("pkg-config" ,pkg-config)
2486 ("xmllint" ,libxml2)))
2487 (home-page "https://www.gnome.org/projects/evince/")
2488 (synopsis "GNOME's document viewer")
2489 (description
2490 "Evince is a document viewer for multiple document formats. It
2491 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2492 of Evince is to replace the multiple document viewers that exist
2493 on the GNOME Desktop with a single simple application.")
2494 (license license:gpl2+)))
2495
2496 (define-public gsettings-desktop-schemas
2497 (package
2498 (name "gsettings-desktop-schemas")
2499 (version "3.34.0")
2500 (source
2501 (origin
2502 (method url-fetch)
2503 (uri (string-append "mirror://gnome/sources/" name "/"
2504 (version-major+minor version) "/"
2505 name "-" version ".tar.xz"))
2506 (sha256
2507 (base32
2508 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2509 (build-system meson-build-system)
2510 (arguments
2511 '(#:phases (modify-phases %standard-phases
2512 (add-after 'unpack 'patch-schemas
2513 (lambda* (#:key inputs #:allow-other-keys)
2514 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2515 (substitute* (find-files "schemas"
2516 "\\.gschema\\.xml\\.in$")
2517 ;; Provide the correct file name of the default GNOME
2518 ;; background, 'adwaita-timed.xml'.
2519 (("@datadir@/backgrounds/gnome")
2520 (string-append theme "/share/backgrounds/gnome"))
2521 ;; Do not reference fonts, that may not exist.
2522 (("'Source Code Pro 10'") "'Monospace 11'"))
2523 #t))))))
2524 (inputs
2525 `(("glib" ,glib)
2526 ("gnome-backgrounds" ,gnome-backgrounds)))
2527 (native-inputs
2528 `(("intltool" ,intltool)
2529 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2530 ("gobject-introspection" ,gobject-introspection)
2531 ("pkg-config" ,pkg-config)))
2532 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2533 (synopsis
2534 "GNOME settings for various desktop components")
2535 (description
2536 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2537 for settings shared by various components of the GNOME desktop.")
2538 (license license:lgpl2.1+)))
2539
2540 (define-public icon-naming-utils
2541 (package
2542 (name "icon-naming-utils")
2543 (version "0.8.90")
2544 (source
2545 (origin
2546 (method url-fetch)
2547 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2548 version ".tar.bz2"))
2549 (sha256
2550 (base32
2551 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2552 (build-system gnu-build-system)
2553 (inputs
2554 `(("perl" ,perl)
2555 ("perl-xml-simple" ,perl-xml-simple)))
2556 (arguments
2557 '(#:phases
2558 (modify-phases %standard-phases
2559 (add-after 'install 'set-load-paths
2560 ;; Tell 'icon-name-mapping' where XML::Simple is.
2561 (lambda* (#:key outputs #:allow-other-keys)
2562 (let* ((out (assoc-ref outputs "out"))
2563 (prog (string-append out "/libexec/icon-name-mapping")))
2564 (wrap-program
2565 prog
2566 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2567 #t)))))
2568 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2569 (synopsis
2570 "Utility to implement the Freedesktop Icon Naming Specification")
2571 (description
2572 "To help with the transition to the Freedesktop Icon Naming
2573 Specification, the icon naming utility maps the icon names used by the
2574 GNOME and KDE desktops to the icon names proposed in the specification.")
2575 (license license:lgpl2.1+)))
2576
2577 (define-public gnome-icon-theme
2578 (package
2579 (name "gnome-icon-theme")
2580 (version "3.12.0")
2581 (source
2582 (origin
2583 (method url-fetch)
2584 (uri (string-append "mirror://gnome/sources/" name "/"
2585 (version-major+minor version) "/"
2586 name "-" version ".tar.xz"))
2587 (sha256
2588 (base32
2589 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2590 (build-system gnu-build-system)
2591 (arguments
2592 '(#:configure-flags
2593 ;; Don't create 'icon-theme.cache'.
2594 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2595 (true (string-append coreutils "/bin/true")))
2596 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2597 (native-inputs
2598 `(("icon-naming-utils" ,icon-naming-utils)
2599 ("intltool" ,intltool)
2600 ("pkg-config" ,pkg-config)))
2601 (home-page "https://wiki.gnome.org/Personalization")
2602 (synopsis "GNOME icon theme")
2603 (description "Icons for the GNOME desktop.")
2604 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2605
2606 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2607 (define-public adwaita-icon-theme
2608 (package (inherit gnome-icon-theme)
2609 (name "adwaita-icon-theme")
2610 (version "3.34.3")
2611 (source (origin
2612 (method url-fetch)
2613 (uri (string-append "mirror://gnome/sources/" name "/"
2614 (version-major+minor version) "/"
2615 name "-" version ".tar.xz"))
2616 (sha256
2617 (base32
2618 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2619 (native-inputs
2620 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2621
2622 (define-public tango-icon-theme
2623 (package
2624 (name "tango-icon-theme")
2625 (version "0.8.90")
2626 (source (origin
2627 (method url-fetch)
2628 (uri (string-append "http://tango.freedesktop.org/releases/"
2629 "tango-icon-theme-" version ".tar.bz2"))
2630 (sha256
2631 (base32
2632 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2633 (build-system gnu-build-system)
2634 (native-inputs
2635 `(("icon-naming-utils" ,icon-naming-utils)
2636 ("intltool" ,intltool)
2637 ("imagemagick" ,imagemagick)
2638 ("pkg-config" ,pkg-config)))
2639 (home-page "http://tango-project.org/")
2640 (synopsis "Tango icon theme")
2641 (description "This is an icon theme that follows the Tango visual
2642 guidelines.")
2643 (license license:public-domain)))
2644
2645 (define-public shared-mime-info
2646 (package
2647 (name "shared-mime-info")
2648 (version "1.15")
2649 (source (origin
2650 (method url-fetch)
2651 (uri (string-append
2652 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2653 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2654 ".tar.xz"))
2655 (sha256
2656 (base32
2657 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2658 (build-system gnu-build-system)
2659 (arguments
2660 ;; The build system appears not to be parallel-safe.
2661 '(#:parallel-build? #f))
2662 (inputs
2663 `(("glib" ,glib)
2664 ("libxml2" ,libxml2)))
2665 (native-inputs
2666 `(("gettext" ,gettext-minimal)
2667 ("itstool" ,itstool)
2668 ("pkg-config" ,pkg-config)))
2669 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2670 (synopsis "Database of common MIME types")
2671 (description
2672 "The shared-mime-info package contains the core database of common types
2673 and the update-mime-database command used to extend it. It requires glib2 to
2674 be installed for building the update command. Additionally, it uses intltool
2675 for translations, though this is only a dependency for the maintainers. This
2676 database is translated at Transifex.")
2677 (license license:gpl2+)))
2678
2679 (define-public system-config-printer
2680 (package
2681 (name "system-config-printer")
2682 (version "1.5.12")
2683 (source
2684 (origin
2685 (method url-fetch)
2686 (uri (string-append
2687 "https://github.com/OpenPrinting/system-config-printer/releases/"
2688 "download/" version
2689 "/system-config-printer-" version ".tar.xz"))
2690 (sha256
2691 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
2692 (build-system glib-or-gtk-build-system)
2693 (arguments
2694 `(#:imported-modules ((guix build python-build-system)
2695 ,@%glib-or-gtk-build-system-modules)
2696 #:phases
2697 (modify-phases %standard-phases
2698 (add-after 'unpack 'patch-Makefile.am
2699 (lambda _
2700 ;; The Makefile generates some scripts, so set a valid shebang
2701 (substitute* "Makefile.am"
2702 (("/bin/bash") (which "bash")))
2703 (delete-file "configure")
2704 #t))
2705 (add-after 'unpack 'patch-docbook-xml
2706 (lambda* (#:key inputs #:allow-other-keys)
2707 ;; Modify the man XML otherwise xmlto tries to access the network
2708 (substitute* "man/system-config-printer.xml"
2709 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2710 (string-append (assoc-ref inputs "docbook-xml")
2711 "/xml/dtd/docbook/")))
2712 #t))
2713 (add-after 'install 'wrap-for-python
2714 (@@ (guix build python-build-system) wrap))
2715 (add-after 'install 'wrap
2716 (lambda* (#:key outputs #:allow-other-keys)
2717 (let ((out (assoc-ref outputs "out"))
2718 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2719 (for-each
2720 (lambda (program)
2721 (wrap-program program
2722 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2723 (map (lambda (name)
2724 (string-append out "/bin/" name))
2725 '("system-config-printer"
2726 "system-config-printer-applet"
2727 "install-printerdriver"
2728 "scp-dbus-service"))))
2729 #t)))))
2730 (inputs
2731 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2732 ("gobject-introspection" ,gobject-introspection)
2733 ("python" ,python)
2734 ("cups" ,cups)
2735 ("gtk+" ,gtk+)
2736 ("python-dbus" ,python-dbus)
2737 ("python-pygobject" ,python-pygobject)
2738 ("python-pycups" ,python-pycups)
2739 ("python-requests" ,python-requests)
2740 ("python-pycairo" ,python-pycairo)
2741 ("libnotify" ,libnotify)
2742 ("packagekit" ,packagekit)))
2743 (native-inputs
2744 `(("pkg-config" ,pkg-config)
2745 ("desktop-file-utils" ,desktop-file-utils)
2746 ("glib" ,glib)
2747 ("autoconf" ,autoconf)
2748 ("automake" ,automake)
2749 ("intltool" ,intltool)
2750 ("xmlto" ,xmlto)
2751 ("docbook-xml" ,docbook-xml-4.1.2)
2752 ("docbook-xsl" ,docbook-xsl)
2753 ("libxml2" ,libxml2)))
2754 (home-page "https://github.com/zdohnal/system-config-printer")
2755 (synopsis "CUPS administration tool")
2756 (description
2757 "system-config-printer is a CUPS administration tool. It's written in
2758 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2759 configuring CUPS.")
2760 (license license:gpl2+)))
2761
2762 (define-public hicolor-icon-theme
2763 (package
2764 (name "hicolor-icon-theme")
2765 (version "0.17")
2766 (source
2767 (origin
2768 (method url-fetch)
2769 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2770 "hicolor-icon-theme-" version ".tar.xz"))
2771 (sha256
2772 (base32
2773 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2774 (build-system gnu-build-system)
2775 (arguments
2776 `(#:tests? #f)) ; no check target
2777 (home-page "https://icon-theme.freedesktop.org/releases/")
2778 (synopsis
2779 "Freedesktop icon theme")
2780 (description
2781 "Freedesktop icon theme.")
2782 (license license:gpl2)))
2783
2784 (define-public libnotify
2785 (package
2786 (name "libnotify")
2787 (version "0.7.7")
2788 (source
2789 (origin
2790 (method url-fetch)
2791 (uri (string-append "mirror://gnome/sources/" name "/"
2792 (version-major+minor version) "/"
2793 name "-" version ".tar.xz"))
2794 (sha256
2795 (base32
2796 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2797 (build-system gnu-build-system)
2798 (arguments
2799 `(#:configure-flags '("--disable-static")))
2800 (propagated-inputs
2801 `(;; In Requires of libnotify.pc.
2802 ("gdk-pixbuf" ,gdk-pixbuf)
2803 ("glib" ,glib)))
2804 (inputs
2805 `(("gtk+" ,gtk+)
2806 ("libpng" ,libpng)))
2807 (native-inputs
2808 `(("pkg-config" ,pkg-config)
2809 ("glib" ,glib "bin")
2810 ("gobject-introspection" ,gobject-introspection)))
2811 (home-page "https://developer-next.gnome.org/libnotify/")
2812 (synopsis
2813 "GNOME desktop notification library")
2814 (description
2815 "Libnotify is a library that sends desktop notifications to a
2816 notification daemon, as defined in the Desktop Notifications spec. These
2817 notifications can be used to inform the user about an event or display
2818 some form of information without getting in the user's way.")
2819 (license license:lgpl2.1+)))
2820
2821 (define-public libpeas
2822 (package
2823 (name "libpeas")
2824 (version "1.24.1")
2825 (source
2826 (origin
2827 (method url-fetch)
2828 (uri (string-append "mirror://gnome/sources/" name "/"
2829 (version-major+minor version) "/"
2830 name "-" version ".tar.xz"))
2831 (sha256
2832 (base32
2833 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2834 (build-system meson-build-system)
2835 (arguments
2836 '(#:phases
2837 (modify-phases %standard-phases
2838 (add-before 'check 'start-xserver
2839 (lambda* (#:key inputs #:allow-other-keys)
2840 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2841 (disp ":1"))
2842 (setenv "DISPLAY" disp)
2843 ;; Tests require a running X server.
2844 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2845 #t))))))
2846 (inputs
2847 `(("gtk+" ,gtk+)
2848 ("glade" ,glade3)
2849 ("python" ,python)
2850 ("python-pygobject" ,python-pygobject)))
2851 (native-inputs
2852 `(("pkg-config" ,pkg-config)
2853 ("gettext" ,gettext-minimal)
2854 ("glib:bin" ,glib "bin")
2855 ("gobject-introspection" ,gobject-introspection)
2856 ("xorg-server" ,xorg-server-for-tests)))
2857 (propagated-inputs
2858 ;; The .pc file "Requires" gobject-introspection.
2859 `(("gobject-introspection" ,gobject-introspection)))
2860 (home-page "https://wiki.gnome.org/Libpeas")
2861 (synopsis "GObject plugin system")
2862 (description
2863 "Libpeas is a gobject-based plugin engine, targeted at giving every
2864 application the chance to assume its own extensibility. It also has a set of
2865 features including, but not limited to: multiple extension points; on-demand
2866 (lazy) programming language support for C, Python and JS; simplicity of the
2867 API.")
2868 (license license:lgpl2.0+)))
2869
2870 (define-public gtkglext
2871 (package
2872 (name "gtkglext")
2873 (version "1.2.0")
2874 (source (origin
2875 (method url-fetch)
2876 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2877 version "/gtkglext-" version ".tar.gz"))
2878 (sha256
2879 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2880 (patches (search-patches
2881 "gtkglext-disable-disable-deprecated.patch"))))
2882 (build-system gnu-build-system)
2883 (arguments
2884 `(#:phases
2885 (modify-phases %standard-phases
2886 ;; Fix a collision between a local variable and a definition from
2887 ;; glibc's string.h.
2888 (add-after 'unpack 'fix-collision
2889 (lambda _
2890 (substitute* "gdk/gdkglshapes.c"
2891 ((" index") " triangle_index"))
2892 #t)))))
2893 (inputs `(("gtk+" ,gtk+-2)
2894 ("mesa" ,mesa)
2895 ("glu" ,glu)
2896 ("libx11" ,libx11)
2897 ("libxt" ,libxt)))
2898 (native-inputs `(("pkg-config" ,pkg-config)
2899 ("glib" ,glib "bin")))
2900 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2901 (home-page "https://projects.gnome.org/gtkglext")
2902 (synopsis "OpenGL extension to GTK+")
2903 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2904 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2905 API add-ons to make GTK+ widgets OpenGL-capable.")
2906 (license license:lgpl2.1+)))
2907
2908 (define-public glade3
2909 (package
2910 (name "glade")
2911 (version "3.36.0")
2912 (source (origin
2913 (method url-fetch)
2914 (uri (string-append "mirror://gnome/sources/" name "/"
2915 (version-major+minor version) "/"
2916 name "-" version ".tar.xz"))
2917 (sha256
2918 (base32
2919 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
2920 (build-system glib-or-gtk-build-system)
2921 (arguments
2922 `(#:phases
2923 (modify-phases %standard-phases
2924 (add-before 'configure 'fix-docbook
2925 (lambda* (#:key inputs #:allow-other-keys)
2926 (substitute* "man/Makefile.in"
2927 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2928 (string-append (assoc-ref inputs "docbook-xsl")
2929 "/xml/xsl/docbook-xsl-"
2930 ,(package-version docbook-xsl)
2931 "/manpages/docbook.xsl")))
2932 #t))
2933 (add-before 'check 'pre-check
2934 (lambda _
2935 (setenv "HOME" "/tmp")
2936 ;; Tests require a running X server.
2937 (system "Xvfb :1 &")
2938 (setenv "DISPLAY" ":1")
2939 #t)))))
2940 (inputs
2941 `(("gtk+" ,gtk+)
2942 ("libxml2" ,libxml2)))
2943 (native-inputs
2944 `(("hicolor-icon-theme" ,hicolor-icon-theme)
2945 ("intltool" ,intltool)
2946 ("itstool" ,itstool)
2947 ("libxslt" ,libxslt) ;for xsltproc
2948 ("docbook-xml" ,docbook-xml-4.2)
2949 ("docbook-xsl" ,docbook-xsl)
2950 ("python" ,python-2)
2951 ("pkg-config" ,pkg-config)
2952 ("xorg-server" ,xorg-server-for-tests)))
2953 (home-page "https://glade.gnome.org")
2954 (synopsis "GTK+ rapid application development tool")
2955 (description "Glade is a rapid application development (RAD) tool to
2956 enable quick & easy development of user interfaces for the GTK+ toolkit and
2957 the GNOME desktop environment.")
2958 (license license:lgpl2.0+)))
2959
2960 (define-public libcroco
2961 (package
2962 (name "libcroco")
2963 (version "0.6.13")
2964 (source (origin
2965 (method url-fetch)
2966 (uri (string-append "mirror://gnome/sources/" name "/"
2967 (version-major+minor version) "/"
2968 name "-" version ".tar.xz"))
2969 (sha256
2970 (base32
2971 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2972 (build-system gnu-build-system)
2973 (native-inputs
2974 `(("pkg-config" ,pkg-config)))
2975 (inputs
2976 `(("glib" ,glib)
2977 ("libxml2" ,libxml2)
2978 ("zlib" ,zlib)))
2979 (home-page "https://github.com/GNOME/libcroco")
2980 (synopsis "CSS2 parsing and manipulation library")
2981 (description
2982 "Libcroco is a standalone CSS2 parsing and manipulation library.
2983 The parser provides a low level event driven SAC-like API and a CSS object
2984 model like API. Libcroco provides a CSS2 selection engine and an experimental
2985 XML/CSS rendering engine.")
2986
2987 ;; LGPLv2.1-only.
2988 (license license:lgpl2.1)))
2989
2990 (define-public libgsf
2991 (package
2992 (name "libgsf")
2993 (version "1.14.47")
2994 (source (origin
2995 (method url-fetch)
2996 (uri (string-append "mirror://gnome/sources/" name "/"
2997 (version-major+minor version) "/"
2998 name "-" version ".tar.xz"))
2999 (sha256
3000 (base32
3001 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3002 (build-system gnu-build-system)
3003 (arguments
3004 '(#:configure-flags '("--disable-static")))
3005 (native-inputs
3006 `(("pkg-config" ,pkg-config)
3007 ("gettext" ,gettext-minimal)
3008
3009 ;; For tests.
3010 ("perl" ,perl)
3011 ("perl-xml-parser" ,perl-xml-parser)))
3012 (inputs
3013 `(("zlib" ,zlib)
3014 ("bzip2" ,bzip2)))
3015 (propagated-inputs
3016 `(("gdk-pixbuf" ,gdk-pixbuf)
3017 ("glib" ,glib)
3018 ("libxml2" ,libxml2)))
3019 (home-page "https://www.gnome.org/projects/libgsf")
3020 (synopsis "GNOME's Structured File Library")
3021 (description
3022 "Libgsf aims to provide an efficient extensible I/O abstraction for
3023 dealing with different structured file formats.")
3024
3025 ;; LGPLv2.1-only.
3026 (license license:lgpl2.1)))
3027
3028 (define-public librsvg
3029 (package
3030 (name "librsvg")
3031 (version "2.40.21")
3032 (source (origin
3033 (method url-fetch)
3034 (uri (string-append "mirror://gnome/sources/" name "/"
3035 (version-major+minor version) "/"
3036 name "-" version ".tar.xz"))
3037 (sha256
3038 (base32
3039 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3040 (build-system gnu-build-system)
3041 (arguments
3042 `(#:configure-flags
3043 (list "--disable-static"
3044 "--enable-vala") ; needed for e.g. gnome-mines
3045 #:phases
3046 (modify-phases %standard-phases
3047 (add-before 'configure 'pre-configure
3048 (lambda* (#:key inputs #:allow-other-keys)
3049 (substitute* "gdk-pixbuf-loader/Makefile.in"
3050 ;; By default the gdk-pixbuf loader is installed under
3051 ;; gdk-pixbuf's prefix. Work around that.
3052 (("gdk_pixbuf_moduledir = .*$")
3053 (string-append "gdk_pixbuf_moduledir = "
3054 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3055 "loaders\n"))
3056 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3057 (("gdk_pixbuf_cache_file = .*$")
3058 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3059 #t))
3060 (add-before 'check 'remove-failing-tests
3061 (lambda _
3062 (with-directory-excursion "tests/fixtures/reftests"
3063 (for-each delete-file
3064 '(;; This test fails on i686:
3065 "svg1.1/masking-path-04-b.svg"
3066 ;; This test fails on armhf:
3067 "svg1.1/masking-mask-01-b.svg"
3068 ;; This test fails on aarch64:
3069 "bugs/777834-empty-text-children.svg")))
3070 #t)))))
3071 (native-inputs
3072 `(("pkg-config" ,pkg-config)
3073 ("vala" ,vala)
3074 ("glib" ,glib "bin") ; glib-mkenums, etc.
3075 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3076 (inputs
3077 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3078 ;; this ancient version of librsvg.
3079 ("pango" ,pango-1.42)
3080 ("libcroco" ,libcroco)
3081 ("bzip2" ,bzip2)
3082 ("libgsf" ,libgsf)
3083 ("libxml2" ,libxml2)))
3084 (propagated-inputs
3085 ;; librsvg-2.0.pc refers to all of that.
3086 `(("cairo" ,cairo)
3087 ("gdk-pixbuf" ,gdk-pixbuf)
3088 ("glib" ,glib)))
3089 (home-page "https://wiki.gnome.org/LibRsvg")
3090 (synopsis "Render SVG files using Cairo")
3091 (description
3092 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3093 library.")
3094 (license license:lgpl2.0+)))
3095
3096 (define-public librsvg-next
3097 (package
3098 (inherit librsvg)
3099 (name "librsvg")
3100 (version "2.48.8")
3101 (source (origin
3102 (method url-fetch)
3103 (uri (string-append "mirror://gnome/sources/librsvg/"
3104 (version-major+minor version) "/"
3105 "librsvg-" version ".tar.xz"))
3106 (sha256
3107 (base32
3108 "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l"))
3109 (modules '((guix build utils)))
3110 (snippet
3111 '(begin (delete-file-recursively "vendor")
3112 #t))))
3113 (build-system cargo-build-system)
3114 (arguments
3115 `(#:modules ((guix build cargo-build-system)
3116 (guix build utils)
3117 ((guix build gnu-build-system) #:prefix gnu:))
3118 #:vendor-dir "vendor"
3119 #:cargo-inputs
3120 (("rust-bitflags" ,rust-bitflags-1)
3121 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3122 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3123 ("rust-cast" ,rust-cast-0.2)
3124 ("rust-cssparser" ,rust-cssparser-0.27)
3125 ("rust-data-url" ,rust-data-url-0.1)
3126 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
3127 ("rust-encoding" ,rust-encoding-0.2)
3128 ("rust-float-cmp" ,rust-float-cmp-0.6)
3129 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3130 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3131 ("rust-gio" ,rust-gio-0.8)
3132 ("rust-gio-sys" ,rust-gio-sys-0.9)
3133 ("rust-glib" ,rust-glib-0.9)
3134 ("rust-glib-sys" ,rust-glib-sys-0.9)
3135 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3136 ("rust-itertools" ,rust-itertools-0.8)
3137 ("rust-language-tags" ,rust-language-tags-0.2)
3138 ("rust-libc" ,rust-libc-0.2)
3139 ("rust-locale-config" ,rust-locale-config-0.3)
3140 ("rust-markup5ever" ,rust-markup5ever-0.10)
3141 ("rust-nalgebra" ,rust-nalgebra-0.19)
3142 ("rust-num-traits" ,rust-num-traits-0.2)
3143 ("rust-once-cell" ,rust-once-cell-1.2)
3144 ("rust-pkg-config" ,rust-pkg-config-0.3)
3145 ("rust-pango" ,rust-pango-0.8)
3146 ("rust-pango-sys" ,rust-pango-sys-0.9)
3147 ("rust-pangocairo" ,rust-pangocairo-0.9)
3148 ("rust-rayon" ,rust-rayon-1)
3149 ("rust-rctree" ,rust-rctree-0.3)
3150 ("rust-rgb" ,rust-rgb-0.8)
3151 ("rust-regex" ,rust-regex-1)
3152 ("rust-selectors" ,rust-selectors-0.22)
3153 ("rust-url" ,rust-url-2.1)
3154 ("rust-xml5ever" ,rust-xml5ever-0.16))
3155 #:cargo-development-inputs
3156 (("rust-cairo-rs" ,rust-cairo-rs-0.8)
3157 ("rust-criterion" ,rust-criterion-0.3))
3158 #:phases
3159 (modify-phases %standard-phases
3160 (add-after 'unpack 'prepare-for-build
3161 (lambda _
3162 ;; In lieu of #:make-flags
3163 (setenv "CC" ,(cc-for-target))
3164 ;; Something about the build environment resists building
3165 ;; successfully with the '--locked' flag.
3166 (substitute* '("Makefile.am"
3167 "Makefile.in")
3168 (("--locked") ""))
3169 #t))
3170 (add-before 'configure 'pre-configure
3171 (lambda _
3172 (substitute* "gdk-pixbuf-loader/Makefile.in"
3173 ;; By default the gdk-pixbuf loader is installed under
3174 ;; gdk-pixbuf's prefix. Work around that.
3175 (("gdk_pixbuf_moduledir = .*$")
3176 (string-append "gdk_pixbuf_moduledir = "
3177 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3178 "loaders\n"))
3179 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3180 (("gdk_pixbuf_cache_file = .*$")
3181 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3182 #t))
3183 (add-after 'configure 'gnu-configure
3184 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3185 ((assoc-ref gnu:%standard-phases 'configure)
3186 #:native-inputs native-inputs
3187 #:inputs inputs
3188 #:outputs outputs
3189 #:configure-flags (list "--disable-static"
3190 "--enable-vala"))))
3191 (add-after 'configure 'dont-vendor-self
3192 (lambda* (#:key vendor-dir #:allow-other-keys)
3193 ;; Don't keep the whole tarball in the vendor directory
3194 (delete-file-recursively
3195 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3196 #t))
3197 (replace 'build
3198 (assoc-ref gnu:%standard-phases 'build))
3199 (replace 'check
3200 (lambda* args
3201 ((assoc-ref gnu:%standard-phases 'check)
3202 #:test-target "check")))
3203 (replace 'install
3204 (assoc-ref gnu:%standard-phases 'install)))))
3205 (inputs
3206 `(("pango" ,pango)
3207 ,@(alist-delete "pango" (package-inputs librsvg))))
3208 (license license:lgpl2.1+)))
3209
3210 (define-public libidl
3211 (package
3212 (name "libidl")
3213 (version "0.8.14")
3214 (source (origin
3215 (method url-fetch)
3216 (uri (string-append "mirror://gnome/sources/libIDL/"
3217 (version-major+minor version) "/"
3218 "libIDL-" version ".tar.bz2"))
3219 (sha256
3220 (base32
3221 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3222 (build-system gnu-build-system)
3223 (inputs `(("glib" ,glib)))
3224 (native-inputs
3225 `(("pkg-config" ,pkg-config)
3226 ("flex" ,flex)
3227 ("bison" ,bison)))
3228 (home-page "http://freecode.com/projects/libidl")
3229 (synopsis "Create trees of CORBA Interface Definition Language files")
3230 (description "Libidl is a library for creating trees of CORBA Interface
3231 Definition Language (idl) files, which is a specification for defining
3232 portable interfaces. libidl was initially written for orbit (the orb from the
3233 GNOME project, and the primary means of libidl distribution). However, the
3234 functionality was designed to be as reusable and portable as possible.")
3235 (properties `((upstream-name . "libIDL")))
3236 (license license:lgpl2.0+)))
3237
3238
3239 (define-public orbit2
3240 (package
3241 (name "orbit2")
3242 (version "2.14.19")
3243 (source (origin
3244 (method url-fetch)
3245 (uri (let ((upstream-name "ORBit2"))
3246 (string-append "mirror://gnome/sources/" upstream-name "/"
3247 (version-major+minor version) "/"
3248 upstream-name "-" version ".tar.bz2")))
3249 (sha256
3250 (base32
3251 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3252 (build-system gnu-build-system)
3253 (arguments
3254 `(;; The "timeout-server" test hangs when run in parallel.
3255 #:parallel-tests? #f
3256 #:configure-flags
3257 '(;; We don't need static libraries, plus they don't build reproducibly
3258 ;; (non-deterministic ordering of .o files in the archive.)
3259 "--disable-static"
3260
3261 ;; The programmer kindly gives us a hook to turn off deprecation
3262 ;; warnings ...
3263 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3264 ;; ... which they then completly ignore !!
3265 #:phases
3266 (modify-phases %standard-phases
3267 (add-before 'configure 'ignore-deprecations
3268 (lambda _
3269 (substitute* "linc2/src/Makefile.in"
3270 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3271 #t)))))
3272 (inputs `(("glib" ,glib)
3273 ("libidl" ,libidl)))
3274 (native-inputs
3275 `(("pkg-config" ,pkg-config)))
3276 (home-page "https://projects.gnome.org/orbit2/")
3277 (synopsis "CORBA 2.4-compliant Object Request Broker")
3278 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3279 featuring mature C, C++ and Python bindings.")
3280 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3281 ;; a version. SOME of the code files have licence notices for GPLv2+.
3282 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3283 (license license:gpl2+)
3284 (properties `((upstream-name . "ORBit2")))))
3285
3286
3287 (define-public libbonobo
3288 (package
3289 (name "libbonobo")
3290 (version "2.32.1")
3291 (source (origin
3292 (method url-fetch)
3293 (uri (string-append "mirror://gnome/sources/" name "/"
3294 (version-major+minor version)
3295 "/" name "-" version ".tar.bz2"))
3296 (sha256
3297 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3298 (patches (search-patches
3299 "libbonobo-activation-test-race.patch"))))
3300 (build-system gnu-build-system)
3301 (arguments
3302 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3303 `(#:configure-flags
3304 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3305 ;; ... which they then completly ignore !!
3306 #:phases
3307 (modify-phases %standard-phases
3308 (add-before 'configure 'ignore-deprecations
3309 (lambda _
3310 (substitute* "activation-server/Makefile.in"
3311 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3312 #t)))
3313
3314 ;; There's apparently a race condition between the server stub
3315 ;; generation and linking of the example under 'samples/echo' that can
3316 ;; lead do undefined references when building in parallel, as reported
3317 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3318 ;; Thus, disable parallel builds.
3319 #:parallel-build? #f))
3320 (inputs `(("popt" ,popt)
3321 ("libxml2" ,libxml2)))
3322 ;; The following are Required by the .pc file
3323 (propagated-inputs
3324 `(("glib" ,glib)
3325 ("orbit2" ,orbit2)))
3326 (native-inputs
3327 `(("intltool" ,intltool)
3328 ("pkg-config" ,pkg-config)
3329 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3330 ("flex" ,flex)
3331 ("bison" ,bison)))
3332 (home-page "https://developer.gnome.org/libbonobo/")
3333 (synopsis "Framework for creating reusable components for use in GNOME applications")
3334 (description "Bonobo is a framework for creating reusable components for
3335 use in GNOME applications, built on top of CORBA.")
3336 ;; Licence not explicitly stated. Source files contain no licence notices.
3337 ;; Tarball contains text of both GPLv2 and LGPLv2
3338 ;; GPLv2 covers both conditions
3339 (license license:gpl2+)))
3340
3341
3342 (define-public gconf
3343 (package
3344 (name "gconf")
3345 (version "3.2.6")
3346 (source (origin
3347 (method url-fetch)
3348 (uri
3349 (let ((upstream-name "GConf"))
3350 (string-append "mirror://gnome/sources/" upstream-name "/"
3351 (version-major+minor version) "/"
3352 upstream-name "-" version ".tar.xz")))
3353 (sha256
3354 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3355 (build-system gnu-build-system)
3356 (inputs `(("dbus-glib" ,dbus-glib)
3357 ("libxml2" ,libxml2)))
3358 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3359 ("orbit2" ,orbit2)))
3360 (native-inputs
3361 `(("intltool" ,intltool)
3362 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3363 ("pkg-config" ,pkg-config)))
3364 (home-page "https://projects.gnome.org/gconf/")
3365 (synopsis "Store application preferences")
3366 (description "Gconf is a system for storing application preferences. It
3367 is intended for user preferences; not arbitrary data storage.")
3368 (license license:lgpl2.0+)
3369 (properties '((upstream-name . "GConf")))))
3370
3371
3372 (define-public gnome-mime-data
3373 (package
3374 (name "gnome-mime-data")
3375 (version "2.18.0")
3376 (source (origin
3377 (method url-fetch)
3378 (uri (string-append "mirror://gnome/sources/" name "/"
3379 (version-major+minor version) "/"
3380 name "-" version ".tar.bz2"))
3381 (sha256
3382 (base32
3383 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3384 (build-system gnu-build-system)
3385 (native-inputs
3386 `(("perl" ,perl)
3387 ("intltool" ,intltool)))
3388 (arguments
3389 '(#:phases (modify-phases %standard-phases
3390 (add-after 'configure 'use-our-intltool
3391 (lambda _
3392 ;; Do not use the bundled intltool commands, which lack
3393 ;; the "dotless @INC" fixes of our 'intltool' package.
3394 (substitute* (find-files "." "^Makefile$")
3395 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3396 (string-append "INTLTOOL_" tool " = intltool-"
3397 (string-downcase tool) "\n")))
3398 #t)))))
3399 (home-page "https://www.gnome.org")
3400 (synopsis "Base MIME and Application database for GNOME")
3401 (description "GNOME Mime Data is a module which contains the base MIME
3402 and Application database for GNOME. The data stored by this module is
3403 designed to be accessed through the MIME functions in GnomeVFS.")
3404 (license license:gpl2+)))
3405
3406
3407 (define-public gnome-vfs
3408 (package
3409 (name "gnome-vfs")
3410 (version "2.24.4")
3411 (source (origin
3412 (method url-fetch)
3413 (uri (string-append "mirror://gnome/sources/" name "/"
3414 (version-major+minor version) "/"
3415 name "-" version ".tar.bz2"))
3416 (sha256
3417 (base32
3418 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3419 (build-system gnu-build-system)
3420 (arguments
3421 `(#:phases
3422 (modify-phases %standard-phases
3423 (add-before 'configure 'ignore-deprecations
3424 (lambda _
3425 (substitute* '("libgnomevfs/Makefile.in"
3426 "daemon/Makefile.in")
3427 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3428 #t))
3429 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3430 (lambda _
3431 (substitute* "test/test-async-cancel.c"
3432 (("EXIT_FAILURE") "77"))
3433 #t)))))
3434 (inputs `(("libxml2" ,libxml2)
3435 ("dbus-glib" ,dbus-glib)
3436 ("gconf" ,gconf)
3437 ("gnome-mime-data" ,gnome-mime-data)
3438 ("zlib" ,zlib)))
3439 (native-inputs
3440 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3441 ("intltool" ,intltool)
3442 ("pkg-config" ,pkg-config)))
3443 (home-page "https://developer.gnome.org/gnome-vfs/")
3444 (synopsis "Access files and folders in GNOME applications")
3445 (description
3446 "GnomeVFS is the core library used to access files and folders in GNOME
3447 applications. It provides a file system abstraction which allows applications
3448 to access local and remote files with a single consistent API.")
3449 (license license:lgpl2.0+)))
3450
3451
3452
3453 (define-public libgnome
3454 (package
3455 (name "libgnome")
3456 (version "2.32.1")
3457 (source (origin
3458 (method url-fetch)
3459 (uri (string-append "mirror://gnome/sources/" name "/"
3460 (version-major+minor version) "/"
3461 name "-" version ".tar.bz2"))
3462 (sha256
3463 (base32
3464 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3465 (patches (search-patches "libgnome-encoding.patch"))))
3466 (build-system gnu-build-system)
3467 (arguments
3468 `(#:phases
3469 (modify-phases %standard-phases
3470 (add-before 'configure 'enable-deprecated
3471 (lambda _
3472 (substitute* "libgnome/Makefile.in"
3473 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3474 #t)))))
3475 (inputs `(("libxml2" ,libxml2)))
3476 (native-inputs
3477 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3478 ("intltool" ,intltool)
3479 ("pkg-config" ,pkg-config)))
3480 ;; The following are listed as Required in the .pc file
3481 ;; (except for libcanberra -- which seems to be oversight on the part
3482 ;; of the upstream developers -- anything that links against libgnome,
3483 ;; must also link against libcanberra
3484 (propagated-inputs
3485 `(("libcanberra" ,libcanberra)
3486 ("libbonobo" ,libbonobo)
3487 ("gconf" ,gconf)
3488 ("gnome-vfs" ,gnome-vfs)
3489 ("popt" ,popt))) ;gnome-program.h includes popt.h
3490 (home-page "https://developer.gnome.org/libgnome/")
3491 (synopsis "Useful routines for building applications")
3492 (description "The libgnome library provides a number of useful routines
3493 for building modern applications, including session management, activation of
3494 files and URIs, and displaying help.")
3495 (license license:lgpl2.0+)))
3496
3497
3498 (define-public libart-lgpl
3499 (package
3500 (name "libart-lgpl")
3501 (version "2.3.21")
3502 (source (origin
3503 (method url-fetch)
3504 (uri (let ((upstream-name "libart_lgpl"))
3505 (string-append "mirror://gnome/sources/" upstream-name "/"
3506 (version-major+minor version) "/"
3507 upstream-name "-" version ".tar.bz2")))
3508 (sha256
3509 (base32
3510 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3511 (build-system gnu-build-system)
3512 (native-inputs
3513 `(("pkg-config" ,pkg-config)))
3514 (home-page "https://people.gnome.org/~mathieu/libart")
3515 (synopsis "2D drawing library")
3516 (description "Libart is a 2D drawing library intended as a
3517 high-quality vector-based 2D library with antialiasing and alpha composition.")
3518 (license license:lgpl2.0+)))
3519
3520
3521
3522 (define-public libgnomecanvas
3523 (package
3524 (name "libgnomecanvas")
3525 (version "2.30.3")
3526 (source (origin
3527 (method url-fetch)
3528 (uri (string-append "mirror://gnome/sources/" name "/"
3529 (version-major+minor version) "/"
3530 name "-" version ".tar.gz"))
3531 (sha256
3532 (base32
3533 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3534 (build-system gnu-build-system)
3535 ;; Mentioned as Required in the .pc file
3536 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3537 ("gtk+" ,gtk+-2)))
3538 (native-inputs
3539 `(("intltool" ,intltool)
3540 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3541 ("pkg-config" ,pkg-config)))
3542 (home-page "https://developer.gnome.org/libgnomecanvas/")
3543 (synopsis "Flexible widget for creating interactive structured graphics")
3544 (description "The GnomeCanvas widget provides a flexible widget for
3545 creating interactive structured graphics.")
3546 (license license:lgpl2.0+)))
3547
3548 (define-public libgnomecanvasmm
3549 (package
3550 (name "libgnomecanvasmm")
3551 (version "2.26.0")
3552 (source (origin
3553 (method url-fetch)
3554 (uri (string-append "mirror://gnome/sources/" name "/"
3555 (version-major+minor version) "/"
3556 name "-" version ".tar.bz2"))
3557 (sha256
3558 (base32
3559 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3560 (build-system gnu-build-system)
3561 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3562 (native-inputs
3563 `(("gtkmm-2" ,gtkmm-2)
3564 ("pkg-config" ,pkg-config)))
3565 (home-page "https://gtkmm.org")
3566 (synopsis "C++ bindings to the GNOME Canvas library")
3567 (description "C++ bindings to the GNOME Canvas library.")
3568 (license license:lgpl2.0+)))
3569
3570 (define-public libgnomeui
3571 (package
3572 (name "libgnomeui")
3573 (version "2.24.5")
3574 (source (origin
3575 (method url-fetch)
3576 (uri (string-append "mirror://gnome/sources/" name "/"
3577 (version-major+minor version) "/"
3578 name "-" version ".tar.bz2"))
3579 (patches (search-patches "libgnomeui-utf8.patch"))
3580 (sha256
3581 (base32
3582 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3583 (build-system gnu-build-system)
3584 ;; Mentioned as Required in the .pc file
3585 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3586 ("libgnome" ,libgnome)
3587 ("libgnomecanvas" ,libgnomecanvas)
3588 ("libgnome-keyring" ,libgnome-keyring)))
3589 (inputs `(("libjpeg" ,libjpeg-turbo)
3590 ("popt" ,popt)
3591 ("libbonobo" ,libbonobo)
3592 ("libxml2" ,libxml2)
3593 ("libglade" ,libglade)))
3594 (native-inputs
3595 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3596 ("intltool" ,intltool)
3597 ("pkg-config" ,pkg-config)))
3598 (home-page "https://developer.gnome.org/libgnomeui/")
3599 (synopsis "Additional widgets for applications")
3600 (description "The libgnomeui library provides additional widgets for
3601 applications. Many of the widgets from libgnomeui have already been
3602 ported to GTK+.")
3603 (license license:lgpl2.0+)))
3604
3605 (define-public libglade
3606 (package
3607 (name "libglade")
3608 (version "2.6.4")
3609 (source (origin
3610 (method url-fetch)
3611 (uri (string-append "mirror://gnome/sources/" name "/"
3612 (version-major+minor version) "/"
3613 name "-" version ".tar.bz2"))
3614 (sha256
3615 (base32
3616 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3617 (build-system gnu-build-system)
3618 (inputs
3619 `(("python" ,python))) ;; needed for the optional libglade-convert program
3620 (propagated-inputs
3621 `(("gtk+-2" ,gtk+-2)
3622 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3623 (native-inputs
3624 `(("pkg-config" ,pkg-config)))
3625 (home-page "https://developer.gnome.org/libglade")
3626 (synopsis "Load glade interfaces and access the glade built widgets")
3627 (description "Libglade is a library that provides interfaces for loading
3628 graphical interfaces described in glade files and for accessing the
3629 widgets built in the loading process.")
3630 (license license:gpl2+))) ; This is correct. GPL not LGPL
3631
3632 (define-public libgnomeprint
3633 ;; This library has been deprecated since 2006; see
3634 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3635 (package
3636 (name "libgnomeprint")
3637 (version "2.18.8")
3638 (source (origin
3639 (method url-fetch)
3640 (uri (string-append "mirror://gnome/sources/" name "/"
3641 (version-major+minor version) "/"
3642 name "-" version ".tar.bz2"))
3643 (sha256
3644 (base32
3645 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3646 (build-system gnu-build-system)
3647 (inputs
3648 `(("popt" ,popt)
3649 ("libart-lgpl" ,libart-lgpl)
3650 ("gtk+" ,gtk+-2)
3651 ("libxml2" ,libxml2)))
3652 (native-inputs
3653 `(("intltool" ,intltool)
3654 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3655 ("pkg-config" ,pkg-config)))
3656 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3657 (synopsis "Printing framework for GNOME")
3658 (description
3659 "GNOME-print was a printing framework for GNOME. It has been deprecated
3660 since ca. 2006, when GTK+ itself incorporated printing support.")
3661 (license license:lgpl2.0+)))
3662
3663
3664 (define-public libgnomeprintui
3665 ;; Deprecated; see libgnomeprint.
3666 (package
3667 (name "libgnomeprintui")
3668 (version "2.18.6")
3669 (source (origin
3670 (method url-fetch)
3671 (uri (string-append "mirror://gnome/sources/" name "/"
3672 (version-major+minor version) "/"
3673 name "-" version ".tar.bz2"))
3674 (sha256
3675 (base32
3676 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
3677 (build-system gnu-build-system)
3678 ;; Mentioned as Required in the .pc file
3679 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
3680 (inputs `(("gtk+" ,gtk+-2)
3681 ("glib" ,glib)
3682 ("gnome-icon-theme" ,gnome-icon-theme)
3683 ("libgnomecanvas" ,libgnomecanvas)
3684 ("libxml2" ,libxml2)))
3685 (native-inputs
3686 `(("intltool" ,intltool)
3687 ("pkg-config" ,pkg-config)))
3688 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3689 (synopsis "Printing framework for GNOME")
3690 (description (package-description libgnomeprint))
3691 (license license:lgpl2.0+)))
3692
3693 (define-public libbonoboui
3694 (package
3695 (name "libbonoboui")
3696 (version "2.24.5")
3697 (source (origin
3698 (method url-fetch)
3699 (uri (string-append "mirror://gnome/sources/" name "/"
3700 (version-major+minor version) "/"
3701 name "-" version ".tar.bz2"))
3702 (sha256
3703 (base32
3704 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
3705 (build-system gnu-build-system)
3706 (arguments
3707 `(#:phases
3708 (modify-phases %standard-phases
3709 (add-before 'check 'start-xserver
3710 (lambda* (#:key inputs #:allow-other-keys)
3711 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3712 (disp ":1"))
3713
3714 (setenv "HOME" (getcwd))
3715 (setenv "DISPLAY" disp)
3716 ;; There must be a running X server and make check doesn't start one.
3717 ;; Therefore we must do it.
3718 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
3719 ;; Mentioned as Required by the .pc file
3720 (propagated-inputs `(("libxml2" ,libxml2)))
3721 (inputs
3722 `(("popt" ,popt)
3723 ("pangox-compat" ,pangox-compat)
3724 ("libgnome" ,libgnome)
3725 ("libgnomecanvas" ,libgnomecanvas)
3726 ("libglade" ,libglade)))
3727 (native-inputs
3728 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3729 ("intltool" ,intltool)
3730 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
3731 ("pkg-config" ,pkg-config)))
3732 (home-page "https://developer.gnome.org/libbonoboui/")
3733 (synopsis "Some user interface controls using Bonobo")
3734 (description "The Bonobo UI library provides a number of user interface
3735 controls using the Bonobo component framework.")
3736 (license license:lgpl2.0+)))
3737
3738 (define-public libwnck
3739 (package
3740 (name "libwnck")
3741 (version "3.32.0")
3742 (source (origin
3743 (method url-fetch)
3744 (uri (string-append "mirror://gnome/sources/" name "/"
3745 (version-major+minor version) "/"
3746 name "-" version ".tar.xz"))
3747 (sha256
3748 (base32
3749 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3750 (build-system meson-build-system)
3751 (native-inputs
3752 `(("pkg-config" ,pkg-config)
3753 ("glib" ,glib "bin") ; for glib-mkenums
3754 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3755 ("intltool" ,intltool)))
3756 (propagated-inputs
3757 `(("gtk+" ,gtk+)
3758 ("libxres" ,libxres)
3759 ("startup-notification" ,startup-notification)))
3760 (home-page "https://developer.gnome.org/libwnck/")
3761 (synopsis "Window Navigator Construction Kit")
3762 (description
3763 "Libwnck is the Window Navigator Construction Kit, a library for use in
3764 writing pagers, tasklists, and more generally applications that are dealing
3765 with window management. It tries hard to respect the Extended Window Manager
3766 Hints specification (EWMH).")
3767 (license license:lgpl2.0+)))
3768
3769 ;; stable version for gtk2, required by xfwm4.
3770 (define-public libwnck-2
3771 (package (inherit libwnck)
3772 (name "libwnck")
3773 (version "2.30.7")
3774 (source (origin
3775 (method url-fetch)
3776 (uri (string-append "mirror://gnome/sources/" name "/"
3777 (version-major+minor version) "/"
3778 name "-" version ".tar.xz"))
3779 (sha256
3780 (base32
3781 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
3782 (build-system gnu-build-system)
3783 (native-inputs
3784 `(("pkg-config" ,pkg-config)
3785 ("intltool" ,intltool)))
3786 (propagated-inputs
3787 `(("gtk+" ,gtk+-2)
3788 ("libxres" ,libxres)
3789 ("startup-notification" ,startup-notification)))))
3790
3791 (define-public goffice
3792 (package
3793 (name "goffice")
3794 (version "0.10.47")
3795 (source (origin
3796 (method url-fetch)
3797 (uri (string-append "mirror://gnome/sources/goffice/"
3798 (version-major+minor version) "/"
3799 "goffice-" version ".tar.xz"))
3800 (sha256
3801 (base32 "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215"))))
3802 (build-system gnu-build-system)
3803 (outputs '("out"
3804 "doc")) ; 4.0 MiB of gtk-doc
3805 (arguments
3806 '(#:configure-flags (list (string-append "--with-html-dir="
3807 (assoc-ref %outputs "doc")
3808 "/share/gtk-doc/html"))))
3809 (inputs
3810 `(("gtk+" ,gtk+)
3811 ("libgsf" ,libgsf)
3812 ("librsvg" ,librsvg)
3813 ("libxslt" ,libxslt)
3814 ("libxml2" ,libxml2)))
3815 (native-inputs
3816 `(("intltool" ,intltool)
3817 ("glib" ,glib "bin")
3818 ("pkg-config" ,pkg-config)))
3819 (home-page "https://developer.gnome.org/goffice/")
3820 (synopsis "Document-centric objects and utilities")
3821 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3822 (license
3823 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3824 ;; Note: NOT LGPL
3825 (list license:gpl2 license:gpl3))))
3826
3827 (define-public goffice-0.8
3828 (package (inherit goffice)
3829 (version "0.8.17")
3830 (source (origin
3831 (method url-fetch)
3832 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3833 (version-major+minor version) "/"
3834 (package-name goffice) "-" version ".tar.xz"))
3835 (sha256
3836 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3837 (arguments
3838 `(#:phases
3839 (modify-phases %standard-phases
3840 (add-after 'unpack 'fix-pcre-check
3841 (lambda _
3842 ;; Only glib.h can be included directly. See
3843 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3844 (substitute* "configure"
3845 (("glib/gregex\\.h") "glib.h")) #t)))
3846
3847 ,@(package-arguments goffice)))
3848 (propagated-inputs
3849 ;; libgoffice-0.8.pc mentions libgsf-1
3850 `(("libgsf" ,libgsf)))
3851 (inputs
3852 `(("gtk" ,gtk+-2)
3853 ,@(alist-delete "gtk" (package-inputs goffice))))))
3854
3855 (define-public gnumeric
3856 (package
3857 (name "gnumeric")
3858 (version "1.12.46")
3859 (source (origin
3860 (method url-fetch)
3861 (uri (string-append "mirror://gnome/sources/gnumeric/"
3862 (version-major+minor version) "/"
3863 "gnumeric-" version ".tar.xz"))
3864 (sha256
3865 (base32
3866 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3867 (build-system glib-or-gtk-build-system)
3868 (arguments
3869 `(;; The gnumeric developers don't worry much about failing tests.
3870 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3871 #:tests? #f
3872 #:phases
3873 (modify-phases %standard-phases
3874 (add-before
3875 'configure 'pre-conf
3876 (lambda* (#:key outputs #:allow-other-keys)
3877 ;; Make install tries to write into the directory of goffice
3878 ;; I am informed that this only affects the possibility to embed a
3879 ;; spreadsheet inside an Abiword document. So presumably when we
3880 ;; package Abiword we'll have to refer it to this directory.
3881 (substitute* "configure"
3882 (("^GOFFICE_PLUGINS_DIR=.*")
3883 (string-append "GOFFICE_PLUGINS_DIR="
3884 (assoc-ref outputs "out")
3885 "/goffice/plugins"))))))))
3886 (inputs
3887 `(("glib" ,glib)
3888 ("gtk+" ,gtk+)
3889 ("goffice" ,goffice)
3890 ("libgsf" ,libgsf)
3891 ("librsvg" ,librsvg)
3892 ("libxml2" ,libxml2)
3893 ("libxslt" ,libxslt)
3894 ("python" ,python-2)
3895 ("python2-pygobject" ,python2-pygobject)
3896 ("zlib" ,zlib)))
3897 (native-inputs
3898 `(("bison" ,bison)
3899 ("docbook-xml" ,docbook-xml)
3900 ("intltool" ,intltool)
3901 ("itstool" ,itstool)
3902 ("glib:bin" ,glib "bin")
3903 ("pkg-config" ,pkg-config)))
3904 (home-page "http://www.gnumeric.org")
3905 (synopsis "Spreadsheet application")
3906 (description
3907 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3908 interoperable with other spreadsheet applications. It has a vast array of
3909 features beyond typical spreadsheet functionality, such as support for linear
3910 and non-linear solvers, statistical analysis, and telecommunication
3911 engineering.")
3912 (license
3913 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3914 (list license:gpl2 license:gpl3))))
3915
3916 (define-public gnome-themes-standard
3917 (package
3918 (name "gnome-themes-standard")
3919 (version "3.22.3")
3920 (source
3921 (origin
3922 (method url-fetch)
3923 (uri (string-append "mirror://gnome/sources/" name "/"
3924 (version-major+minor version) "/" name "-"
3925 version ".tar.xz"))
3926 (sha256
3927 (base32
3928 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3929 (build-system gnu-build-system)
3930 (arguments
3931 '(#:configure-flags
3932 ;; Don't create 'icon-theme.cache'.
3933 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3934 (true (string-append coreutils "/bin/true")))
3935 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3936 (inputs
3937 `(("gtk+" ,gtk+)
3938 ("gtk+-2" ,gtk+-2)
3939 ("librsvg" ,librsvg)
3940 ("libxml2" ,libxml2)
3941 ("glib" ,glib)))
3942 (native-inputs
3943 `(("intltool" ,intltool)
3944 ("glib:bin" ,glib "bin")
3945 ("pkg-config" ,pkg-config)))
3946 (home-page "https://launchpad.net/gnome-themes-standard")
3947 (synopsis "Default GNOME 3 themes")
3948 (description
3949 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3950 (license license:lgpl2.1+)))
3951
3952 (define-public seahorse
3953 (package
3954 (name "seahorse")
3955 (version "3.34")
3956 (source
3957 (origin
3958 (method url-fetch)
3959 (uri (string-append "mirror://gnome/sources/" name "/"
3960 (version-major+minor version) "/" name "-"
3961 version ".tar.xz"))
3962 (sha256
3963 (base32
3964 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
3965 (build-system meson-build-system)
3966 (arguments
3967 '(#:glib-or-gtk? #t
3968 #:phases
3969 (modify-phases %standard-phases
3970 (add-after 'unpack 'skip-gtk-update-icon-cache
3971 ;; Don't create 'icon-theme.cache'.
3972 (lambda _
3973 (substitute* "build-aux/meson_post_install.py"
3974 (("gtk-update-icon-cache") "true"))
3975 #t)))))
3976 (inputs
3977 `(("gtk+" ,gtk+)
3978 ("gcr" ,gcr)
3979 ("gnupg" ,gnupg)
3980 ("gpgme" ,gpgme)
3981 ("openldap" ,openldap)
3982 ("openssh" ,openssh)
3983 ("avahi" ,avahi)
3984 ("libpwquality" ,libpwquality)
3985 ("libsecret" ,libsecret)
3986 ("libsoup" ,libsoup)))
3987 (native-inputs
3988 `(("gettext" ,gettext-minimal)
3989 ("glib:bin" ,glib "bin")
3990 ("itstool" ,itstool)
3991 ("pkg-config" ,pkg-config)
3992 ("vala" ,vala)
3993 ("xmllint" ,libxml2)))
3994 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3995 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3996 (description
3997 "Seahorse is a GNOME application for managing encryption keys and
3998 passwords in the GNOME keyring.")
3999 (license license:gpl2+)))
4000
4001 (define-public vala
4002 (package
4003 (name "vala")
4004 (version "0.46.5")
4005 (source (origin
4006 (method url-fetch)
4007 (uri (string-append "mirror://gnome/sources/" name "/"
4008 (version-major+minor version) "/"
4009 name "-" version ".tar.xz"))
4010 (sha256
4011 (base32
4012 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4013 (build-system gnu-build-system)
4014 (arguments
4015 '(#:phases
4016 (modify-phases %standard-phases
4017 (add-before 'check 'pre-check
4018 (lambda _
4019 (setenv "CC" "gcc")
4020 (substitute* "valadoc/tests/testrunner.sh"
4021 (("export PKG_CONFIG_PATH=" m)
4022 (string-append m "$PKG_CONFIG_PATH:")))
4023 ;; For missing '/etc/machine-id'.
4024 (setenv "DBUS_FATAL_WARNINGS" "0")
4025 #t)))))
4026 (native-inputs
4027 `(("pkg-config" ,pkg-config)
4028 ("flex" ,flex)
4029 ("bison" ,bison)
4030 ("xsltproc" ,libxslt)
4031 ("dbus" ,dbus) ; for dbus tests
4032 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4033 (inputs
4034 `(("graphviz" ,graphviz)))
4035 (propagated-inputs
4036 `(("glib" ,glib))) ; required by libvala-0.40.pc
4037 (home-page "https://live.gnome.org/Vala/")
4038 (synopsis "Compiler for the GObject type system")
4039 (description
4040 "Vala is a programming language that aims to bring modern programming
4041 language features to GNOME developers without imposing any additional runtime
4042 requirements and without using a different ABI compared to applications and
4043 libraries written in C.")
4044 (license license:lgpl2.1+)))
4045
4046 (define-public vala-0.48
4047 (package
4048 (inherit vala)
4049 (version "0.48.7")
4050 (source (origin
4051 (method url-fetch)
4052 (uri (string-append "mirror://gnome/sources/vala/"
4053 (version-major+minor version) "/"
4054 "vala-" version ".tar.xz"))
4055 (sha256
4056 (base32
4057 "0lswkb7gj0chas9n3l3dbrm9l71hs77adhvm2v600id2ipi37pi8"))))))
4058
4059 (define-public vte
4060 (package
4061 (name "vte")
4062 (version "0.60.3")
4063 (source (origin
4064 (method url-fetch)
4065 (uri (string-append "mirror://gnome/sources/vte/"
4066 (version-major+minor version) "/"
4067 "vte-" version ".tar.xz"))
4068 (sha256
4069 (base32
4070 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4071 (build-system meson-build-system)
4072 (arguments
4073 `(#:configure-flags
4074 '("-Dvapi=true"
4075 "-D_systemd=false")))
4076 (native-inputs
4077 `(("pkg-config" ,pkg-config)
4078 ("gettext" ,gettext-minimal)
4079 ("vala" ,vala)
4080 ("gobject-introspection" ,gobject-introspection)
4081 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4082 ("gperf" ,gperf)
4083 ("xmllint" ,libxml2)))
4084 (propagated-inputs
4085 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4086 ("gnutls" ,gnutls) ; ditto
4087 ("pcre2" ,pcre2))) ; ditto
4088 (home-page "https://www.gnome.org/")
4089 (synopsis "Virtual Terminal Emulator")
4090 (description
4091 "VTE is a library (libvte) implementing a terminal emulator widget for
4092 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4093 gnome-terminal, but can also be used to embed a console/terminal in games,
4094 editors, IDEs, etc.")
4095 (license license:lgpl2.1+)))
4096
4097 (define-public vte-ng
4098 (package
4099 (inherit vte)
4100 (name "vte-ng")
4101 (version "0.58.2.a")
4102 (home-page "https://github.com/thestinger/vte-ng")
4103 (source (origin
4104 (method git-fetch)
4105 (uri (git-reference (url home-page) (commit version)))
4106 (file-name (git-file-name name version))
4107 (sha256
4108 (base32
4109 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4110 (build-system meson-build-system)
4111 (native-inputs
4112 `(("gtk-doc" ,gtk-doc)
4113 ,@(package-native-inputs vte)))
4114 (arguments
4115 `(#:configure-flags '("-Ddocs=true")))
4116 (synopsis "Enhanced VTE terminal widget")
4117 (description
4118 "VTE is a library (libvte) implementing a terminal emulator widget for
4119 GTK+, this fork provides additional functions exposed for keyboard text
4120 selection and URL hints.")))
4121
4122 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4123 (define-public vte/gtk+-2
4124 (package (inherit vte)
4125 (name "vte")
4126 (version "0.28.2")
4127 (source (origin
4128 (method url-fetch)
4129 (uri (string-append "mirror://gnome/sources/" name "/"
4130 (version-major+minor version) "/"
4131 name "-" version ".tar.xz"))
4132 (sha256
4133 (base32
4134 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4135 (patches (search-patches
4136 "vte-CVE-2012-2738-pt1.patch"
4137 "vte-CVE-2012-2738-pt2.patch"))))
4138 (build-system gnu-build-system)
4139 (arguments
4140 '(#:configure-flags '("--disable-python")))
4141 (native-inputs
4142 `(("pkg-config" ,pkg-config)
4143 ("intltool" ,intltool)
4144 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4145 (propagated-inputs
4146 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4147 ("ncurses" ,ncurses))))) ; required by libvte.la
4148
4149 (define-public vinagre
4150 (package
4151 (name "vinagre")
4152 (version "3.22.0")
4153 (source (origin
4154 (method url-fetch)
4155 (uri (string-append "mirror://gnome/sources/" name "/"
4156 (version-major+minor version) "/"
4157 name "-" version ".tar.xz"))
4158 (patches (search-patches "vinagre-newer-freerdp.patch"
4159 "vinagre-newer-rdp-parameters.patch"))
4160 (sha256
4161 (base32
4162 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4163 (build-system glib-or-gtk-build-system)
4164 (arguments
4165 ;; Disable -Werror and such, to avoid build failures on compilation
4166 ;; warnings.
4167 '(#:configure-flags '("--enable-compile-warnings=minimum")
4168 #:phases
4169 (modify-phases %standard-phases
4170 (add-before 'install 'skip-gtk-update-icon-cache
4171 (lambda _
4172 ;; Don't create 'icon-theme.cache'
4173 (substitute* (find-files "." "^Makefile$")
4174 (("gtk-update-icon-cache") (which "true")))
4175 #t))
4176 (add-after 'unpack 'patch-configure
4177 (lambda _
4178 (substitute* "configure"
4179 (("freerdp") "freerdp2"))
4180 #t)))))
4181 (native-inputs
4182 `(("pkg-config" ,pkg-config)
4183 ("intltool" ,intltool)
4184 ("itstool" ,itstool)
4185 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4186 (inputs
4187 `(("libxml2" ,libxml2)
4188 ("gtk-vnc" ,gtk-vnc)
4189 ("gnome-keyring" ,gnome-keyring)
4190 ("libsecret" ,libsecret)
4191 ("freerdp" ,freerdp)
4192 ("spice" ,spice)
4193 ("spice-gtk" ,spice-gtk)
4194 ("telepathy-glib" ,telepathy-glib)
4195 ("vte" ,vte)))
4196 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4197 (synopsis "Remote desktop viewer for GNOME")
4198 (description "Vinagre is a remote display client supporting the VNC, SPICE
4199 and RDP protocols.")
4200 (license license:gpl3+)))
4201
4202 (define-public dconf
4203 (package
4204 (name "dconf")
4205 (version "0.34.0")
4206 (source (origin
4207 (method url-fetch)
4208 (uri (string-append
4209 "mirror://gnome/sources/" name "/"
4210 (version-major+minor version) "/"
4211 name "-" version ".tar.xz"))
4212 (patches (search-patches "dconf-meson-0.52.patch"))
4213 (sha256
4214 (base32
4215 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
4216 (build-system meson-build-system)
4217 (propagated-inputs
4218 ;; In Requires of dconf.pc.
4219 `(("glib" ,glib)))
4220 (inputs
4221 `(("gtk+" ,gtk+)
4222 ("dbus" ,dbus)))
4223 (native-inputs
4224 `(("bash-completion" ,bash-completion)
4225 ("libxslt" ,libxslt) ;for xsltproc
4226 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4227 ("docbook-xml" ,docbook-xml-4.2)
4228 ("docbook-xsl" ,docbook-xsl)
4229 ("glib:bin" ,glib "bin")
4230 ("gtk-doc" ,gtk-doc)
4231 ("pkg-config" ,pkg-config)
4232 ("vala" ,vala)))
4233 (arguments
4234 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
4235 ; or /etc/machine-id.
4236 #:glib-or-gtk? #t
4237 #:configure-flags '("-Denable-gtk-doc=true")))
4238 (home-page "https://developer.gnome.org/dconf/")
4239 (synopsis "Low-level GNOME configuration system")
4240 (description "Dconf is a low-level configuration system. Its main purpose
4241 is to provide a backend to GSettings on platforms that don't already have
4242 configuration storage systems.")
4243 (license license:lgpl2.1+)))
4244
4245 (define-public json-glib
4246 (package
4247 (name "json-glib")
4248 (version "1.4.4")
4249 (source (origin
4250 (method url-fetch)
4251 (uri (string-append "mirror://gnome/sources/" name "/"
4252 (version-major+minor version) "/"
4253 name "-" version ".tar.xz"))
4254 (sha256
4255 (base32
4256 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4257 (build-system meson-build-system)
4258 (native-inputs
4259 `(("gettext" ,gettext-minimal)
4260 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4261 ("gobject-introspection" ,gobject-introspection)
4262 ("pkg-config" ,pkg-config)))
4263 (propagated-inputs
4264 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4265 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4266 (synopsis "Compiler for the GObject type system")
4267 (description
4268 "JSON-GLib is a C library based on GLib providing serialization and
4269 deserialization support for the JavaScript Object Notation (JSON) format
4270 described by RFC 4627. It provides parser and generator GObject classes and
4271 various wrappers for the complex data types employed by JSON, such as arrays
4272 and objects.")
4273 (license license:lgpl2.1+)))
4274
4275 (define-public libxklavier
4276 (package
4277 (name "libxklavier")
4278 (version "5.4")
4279 (source (origin
4280 ;; Note: There's no tarball at ftp.gnome.org for this version.
4281 (method git-fetch)
4282 (uri (git-reference
4283 (url "https://anongit.freedesktop.org/git/libxklavier")
4284 (commit (string-append "libxklavier-" version))))
4285 (sha256
4286 (base32
4287 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4288 (file-name (git-file-name name version))))
4289 (build-system gnu-build-system)
4290 (arguments
4291 '(#:configure-flags
4292 (list (string-append "--with-xkb-base="
4293 (assoc-ref %build-inputs "xkeyboard-config")
4294 "/share/X11/xkb")
4295 "--disable-xmodmap-support")))
4296 (native-inputs
4297 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4298 ("gobject-introspection" ,gobject-introspection)
4299 ("pkg-config" ,pkg-config)
4300 ("gtk-doc" ,gtk-doc)
4301 ("intltool" ,intltool)
4302 ("which" ,which)
4303 ("autoconf" ,autoconf)
4304 ("automake" ,automake)
4305 ("libtool" ,libtool)))
4306 (propagated-inputs
4307 ;; Required by libxklavier.pc.
4308 `(("glib" ,glib)
4309 ("libxml2" ,libxml2)))
4310 (inputs
4311 `(("iso-codes" ,iso-codes)
4312 ("libxi" ,libxi)
4313 ("libxkbfile" ,libxkbfile)
4314 ("xkbcomp" ,xkbcomp)
4315 ("xkeyboard-config" ,xkeyboard-config)))
4316 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4317 (synopsis "High-level API for X Keyboard Extension")
4318 (description
4319 "LibXklavier is a library providing high-level API for X Keyboard
4320 Extension known as XKB. This library is intended to support XFree86 and other
4321 commercial X servers. It is useful for creating XKB-related software (layout
4322 indicators etc).")
4323 (license license:lgpl2.0+)))
4324
4325 (define-public python2-rsvg
4326 ;; XXX: This is actually a subset of gnome-python-desktop.
4327 (package
4328 (name "python2-rsvg")
4329 (version "2.32.0")
4330 (source
4331 (origin
4332 (method url-fetch)
4333 (uri (string-append
4334 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4335 version ".tar.bz2"))
4336 (sha256
4337 (base32
4338 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4339 (build-system gnu-build-system)
4340 (native-inputs
4341 `(("pkg-config" ,pkg-config)))
4342 (inputs
4343 `(("python" ,python-2)
4344 ("python2-pygtk" ,python2-pygtk)
4345 ("librsvg" ,librsvg)))
4346 (home-page "https://www.gnome.org")
4347 (synopsis "Python bindings to librsvg")
4348 (description
4349 "This package provides Python bindings to librsvg, the SVG rendering
4350 library.")
4351
4352 ;; This is the license of the rsvg bindings. The license of each module
4353 ;; of gnome-python-desktop is given in 'COPYING'.
4354 (license license:lgpl2.1+)))
4355
4356 (define-public glib-networking
4357 (package
4358 (name "glib-networking")
4359 (version "2.62.2")
4360 (source (origin
4361 (method url-fetch)
4362 (uri (string-append "mirror://gnome/sources/glib-networking/"
4363 (version-major+minor version) "/"
4364 "glib-networking-" version ".tar.xz"))
4365 (sha256
4366 (base32
4367 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4368 (build-system meson-build-system)
4369 (arguments
4370 `(#:configure-flags '("-Dlibproxy_support=false")))
4371 (native-inputs
4372 `(("pkg-config" ,pkg-config)
4373 ("intltool" ,intltool)))
4374 (inputs
4375 `(("glib" ,glib)
4376 ("gnutls" ,gnutls)
4377 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4378 (home-page "https://www.gnome.org")
4379 (synopsis "Network-related GIO modules")
4380 (description
4381 "This package contains various network related extensions for the GIO
4382 library.")
4383 (license license:lgpl2.0+)))
4384
4385 (define-public rest
4386 (package
4387 (name "rest")
4388 (version "0.8.1")
4389 (source (origin
4390 (method url-fetch)
4391 (uri (string-append "mirror://gnome/sources/rest/"
4392 (version-major+minor version) "/"
4393 name "-" version ".tar.xz"))
4394 (sha256
4395 (base32
4396 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4397 (build-system gnu-build-system)
4398 (arguments
4399 '(#:tests? #f ; tests require internet connection
4400 #:configure-flags
4401 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4402 (native-inputs
4403 `(("glib-mkenums" ,glib "bin")
4404 ("gobject-introspection" ,gobject-introspection)
4405 ("pkg-config" ,pkg-config)))
4406 (propagated-inputs
4407 ;; rest-0.7.pc refers to all these.
4408 `(("glib" ,glib)
4409 ("libsoup" ,libsoup)
4410 ("libxml2" ,libxml2)))
4411 (home-page "https://www.gtk.org/")
4412 (synopsis "RESTful web api query library")
4413 (description
4414 "This library was designed to make it easier to access web services that
4415 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4416 libxml to ease remote use of the RESTful API.")
4417 (license license:lgpl2.1+)))
4418
4419 (define-public libsoup
4420 (package
4421 (name "libsoup")
4422 (version "2.70.0")
4423 (source (origin
4424 (method url-fetch)
4425 (uri (string-append "mirror://gnome/sources/libsoup/"
4426 (version-major+minor version) "/"
4427 "libsoup-" version ".tar.xz"))
4428 (sha256
4429 (base32
4430 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
4431 (build-system meson-build-system)
4432 (outputs '("out" "doc"))
4433 (arguments
4434 `(#:modules ((guix build utils)
4435 (guix build meson-build-system)
4436 (ice-9 popen))
4437
4438 #:configure-flags '("-Dgtk_doc=true")
4439 #:phases
4440 (modify-phases %standard-phases
4441 (add-after 'unpack 'adjust-tests
4442 (lambda _
4443 ;; This test fails due to missing /etc/nsswitch.conf
4444 ;; in the build environment.
4445 (substitute* "tests/socket-test.c"
4446 ((".*/sockets/unconnected.*") ""))
4447
4448 ;; These fail because "subdomain.localhost" does not resolve in
4449 ;; the build environment.
4450 (substitute* "tests/hsts-test.c"
4451 ((".*/hsts/basic.*") "")
4452 ((".*/hsts/subdomains.*") "")
4453 ((".*/hsts/superdomain.*") "")
4454 ((".*/hsts/utf8-address.*") ""))
4455 (substitute* "tests/hsts-db-test.c"
4456 ((".*/hsts-db/subdomains.*") ""))
4457
4458 ;; Generate a self-signed certificate that has "localhost" as its
4459 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4460 ;; 3.5.12, tests such as "ssl-tests" fail:
4461 ;;
4462 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4463 ;;
4464 ;; 'certtool' is interactive so we have to pipe it the answers.
4465 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4466 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4467 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4468 (for-each (lambda (line)
4469 (display line pipe)
4470 (newline pipe))
4471 '("" ;Common name
4472 "" ;UID
4473 "Guix" ;Organizational unit name
4474 "GNU" ;Organization name
4475 "" ;Locality name
4476 "" ;State or province
4477 "" ;Country
4478 "" ;subject's domain component (DC)
4479 "" ;E-mail
4480 "" ;serial number
4481 "-1" ;expiration time
4482 "N" ;belong to authority?
4483 "N" ;web client certificate?
4484 "N" ;IPsec IKE?
4485 "Y" ;web server certificate?
4486 "localhost" ;dnsName of subject
4487 "" ;dnsName of subject (end)
4488 "" ;URI of subject
4489 "127.0.0.1" ;IP address of subject
4490 "" ;signing?
4491 "" ;encryption (RSA)?
4492 "" ;data encryption?
4493 "" ;sign OCSP requests?
4494 "" ;sign code?
4495 "" ;time stamping?
4496 "" ;email protection?
4497 "" ;URI of the CRL distribution point
4498 "y" ;above info OK?
4499 ))
4500 (close-pipe pipe))
4501 #t))
4502 (add-after 'install 'move-doc
4503 (lambda* (#:key outputs #:allow-other-keys)
4504 (let ((out (assoc-ref outputs "out"))
4505 (doc (assoc-ref outputs "doc")))
4506 (mkdir-p (string-append doc "/share"))
4507 (copy-recursively (string-append out "/share/gtk-doc")
4508 (string-append doc "/share/gtk-doc"))
4509 (delete-file-recursively (string-append out "/share/gtk-doc"))
4510 #t))))))
4511 (native-inputs
4512 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4513 ("gobject-introspection" ,gobject-introspection)
4514 ("gtk-doc" ,gtk-doc)
4515 ("intltool" ,intltool)
4516 ("pkg-config" ,pkg-config)
4517 ("python" ,python-wrapper)
4518 ("vala" ,vala)
4519 ("php" ,php)
4520 ("curl" ,curl)
4521 ("gnutls" ,gnutls) ;for 'certtool'
4522 ("httpd" ,httpd)))
4523 (propagated-inputs
4524 ;; libsoup-2.4.pc refers to all these.
4525 `(("brotli" ,google-brotli)
4526 ("glib" ,glib)
4527 ("libpsl" ,libpsl)
4528 ("libxml2" ,libxml2)
4529 ("sqlite" ,sqlite)
4530 ("zlib" ,zlib)))
4531 (inputs
4532 `(("glib-networking" ,glib-networking)
4533 ("mit-krb5" ,mit-krb5)))
4534 (home-page "https://live.gnome.org/LibSoup/")
4535 (synopsis "GLib-based HTTP Library")
4536 (description
4537 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4538 and the GLib main loop, to integrate well with GNOME applications.")
4539 (license license:lgpl2.0+)))
4540
4541
4542 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4543 (define-public libsoup-minimal
4544 (package
4545 (inherit libsoup)
4546 (name "libsoup-minimal")
4547 (outputs (delete "doc" (package-outputs libsoup)))
4548 (arguments
4549 (substitute-keyword-arguments (package-arguments libsoup)
4550 ((#:configure-flags configure-flags)
4551 `(delete "-Dgtk_doc=true" ,configure-flags))
4552 ((#:phases phases)
4553 `(modify-phases ,phases
4554 (delete 'move-doc)))))
4555 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4556
4557 (define-public libsecret
4558 (package
4559 (name "libsecret")
4560 (version "0.20.3")
4561 (source (origin
4562 (method url-fetch)
4563 (uri (string-append
4564 "mirror://gnome/sources/libsecret/"
4565 (version-major+minor version) "/"
4566 "libsecret-" version ".tar.xz"))
4567 (sha256
4568 (base32
4569 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
4570 (build-system gnu-build-system)
4571 (outputs '("out" "doc"))
4572 (arguments
4573 `(#:tests? #f ; FIXME: Testing hangs.
4574 #:configure-flags
4575 (list (string-append "--with-html-dir="
4576 (assoc-ref %outputs "doc")
4577 "/share/gtk-doc/html"))))
4578 (native-inputs
4579 `(("gettext" ,gettext-minimal)
4580 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4581 ("gobject-introspection" ,gobject-introspection)
4582 ("pkg-config" ,pkg-config)
4583 ("vala" ,vala)
4584 ("xsltproc" ,libxslt)))
4585 ;; These are needed for the tests.
4586 ;; FIXME: Add gjs once available.
4587 ;("dbus" ,dbus)
4588 ;("python2" ,python-2)
4589 ;("python2-dbus" ,python2-dbus)
4590 ;("python2-pygobject" ,python2-pygobject)
4591 ;("python2-pygobject-2" ,python2-pygobject-2)))
4592 (propagated-inputs
4593 `(("glib" ,glib))) ; required by libsecret-1.pc
4594 (inputs
4595 `(("docbook-xsl" ,docbook-xsl)
4596 ("libgcrypt" ,libgcrypt)
4597 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4598 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4599 (synopsis "GObject bindings for \"Secret Service\" API")
4600 (description
4601 "Libsecret is a GObject based library for storing and retrieving passwords
4602 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4603 (license license:lgpl2.1+)))
4604
4605 (define-public five-or-more
4606 (package
4607 (name "five-or-more")
4608 (version "3.32.2")
4609 (source
4610 (origin
4611 (method url-fetch)
4612 (uri (string-append "mirror://gnome/sources/five-or-more/"
4613 (version-major+minor version) "/"
4614 "five-or-more-" version ".tar.xz"))
4615 (sha256
4616 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4617 (build-system meson-build-system)
4618 (arguments
4619 '(#:glib-or-gtk? #t
4620 #:phases
4621 (modify-phases %standard-phases
4622 (add-after 'unpack 'skip-gtk-update-icon-cache
4623 (lambda _
4624 (substitute* "meson_post_install.py"
4625 (("gtk-update-icon-cache") (which "true")))
4626 #t)))))
4627 (native-inputs
4628 `(("pkg-config" ,pkg-config)
4629 ("appstream-glib" ,appstream-glib)
4630 ("desktop-file-utils" ,desktop-file-utils)
4631 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4632 ("intltool" ,intltool)
4633 ("itstool" ,itstool)
4634 ("vala" ,vala)
4635 ("xmllint" ,libxml2)))
4636 (inputs
4637 `(("gtk+" ,gtk+)
4638 ("libgnome-games-support" ,libgnome-games-support)
4639 ("librsvg" ,librsvg)))
4640 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
4641 (synopsis "Logic puzzle game")
4642 (description "Five or More is a game where you try to align
4643 five or more objects of the same color and shape causing them to disappear.
4644 On every turn more objects will appear, until the board is full.
4645 Try to last as long as possible.")
4646 (license license:gpl2+)))
4647
4648 (define-public gnome-mines
4649 (package
4650 (name "gnome-mines")
4651 (version "3.34.0")
4652 (source
4653 (origin
4654 (method url-fetch)
4655 (uri (string-append "mirror://gnome/sources/" name "/"
4656 (version-major+minor version) "/"
4657 name "-" version ".tar.xz"))
4658 (sha256
4659 (base32
4660 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
4661 (build-system meson-build-system)
4662 (arguments
4663 '(#:glib-or-gtk? #t
4664 #:phases
4665 (modify-phases %standard-phases
4666 (add-after 'unpack 'skip-gtk-update-icon-cache
4667 (lambda _
4668 (substitute* "build-aux/meson_post_install.py"
4669 (("gtk-update-icon-cache") (which "true")))
4670 #t)))))
4671 (native-inputs
4672 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
4673 ("pkg-config" ,pkg-config)
4674 ("desktop-file-utils" ,desktop-file-utils)
4675 ("intltool" ,intltool)
4676 ("itstool" ,itstool)
4677 ("vala" ,vala)
4678 ("yelp" ,yelp)
4679 ("appstream-glib" ,appstream-glib)))
4680 (inputs
4681 `(("gtk+" ,gtk+)
4682 ("libgnome-games-support" ,libgnome-games-support)
4683 ("librsvg" ,librsvg)))
4684 (home-page "https://wiki.gnome.org/Apps/Mines")
4685 (synopsis "Minesweeper game")
4686 (description
4687 "Mines (previously gnomine) is a puzzle game where you locate mines
4688 floating in an ocean using only your brain and a little bit of luck.")
4689 (license license:gpl2+)))
4690
4691 (define-public gnome-multi-writer
4692 (package
4693 (name "gnome-multi-writer")
4694 (version "3.35.90")
4695 (source
4696 (origin
4697 (method url-fetch)
4698 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
4699 (version-major+minor version) "/"
4700 "gnome-multi-writer-" version ".tar.xz"))
4701 (sha256
4702 (base32
4703 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
4704 (build-system meson-build-system)
4705 (arguments
4706 '(#:glib-or-gtk? #t
4707 #:phases
4708 (modify-phases %standard-phases
4709 (add-after 'unpack 'skip-post-install
4710 (lambda _
4711 (substitute* "meson.build"
4712 (("meson.add_install_script" &) (string-append "# " &)))
4713 #t)))))
4714 (native-inputs
4715 `(("glib:bin" ,glib "bin")
4716 ("pkg-config" ,pkg-config)))
4717 (inputs
4718 `(("gtk+" ,gtk+)
4719 ("glib" ,glib) ; for gio
4720 ("gusb" ,gusb)
4721 ("udisks" ,udisks)
4722 ("libgudev" ,libgudev)
4723 ("libcanberra" ,libcanberra)
4724 ("polkit" ,polkit)))
4725 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
4726 (synopsis "Write to multiple USB devices at once")
4727 (description
4728 "MultiWriter can be used to write an ISO file to multiple USB devices at
4729 once.")
4730 (license license:gpl2+)))
4731
4732 (define-public gnome-sudoku
4733 (package
4734 (name "gnome-sudoku")
4735 (version "3.34.1")
4736 (source
4737 (origin
4738 (method url-fetch)
4739 (uri (string-append "mirror://gnome/sources/" name "/"
4740 (version-major+minor version) "/"
4741 name "-" version ".tar.xz"))
4742 (sha256
4743 (base32
4744 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
4745 (build-system meson-build-system)
4746 (arguments
4747 '(#:glib-or-gtk? #t
4748 #:phases
4749 (modify-phases %standard-phases
4750 (add-after 'unpack 'skip-gtk-update-icon-cache
4751 (lambda _
4752 (substitute* "build-aux/post_install.py"
4753 (("gtk-update-icon-cache") (which "true")))
4754 #t)))))
4755 (native-inputs
4756 `(("pkg-config" ,pkg-config)
4757 ("desktop-file-utils" ,desktop-file-utils)
4758 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4759 ("intltool" ,intltool)
4760 ("itstool" ,itstool)
4761 ("vala" ,vala)
4762 ("xmllint" ,libxml2)))
4763 (inputs
4764 `(("gtk+" ,gtk+)
4765 ("json-glib" ,json-glib)
4766 ("libgee" ,libgee)
4767 ("librsvg" ,librsvg)
4768 ("qqwing" ,qqwing)))
4769 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4770 (synopsis "Japanese logic game")
4771 (description
4772 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4773 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4774 possible while still providing features that make playing difficult Sudoku
4775 more fun.")
4776 (license license:gpl2+)))
4777
4778 (define-public gnome-terminal
4779 (package
4780 (name "gnome-terminal")
4781 (version "3.34.2")
4782 (source
4783 (origin
4784 (method url-fetch)
4785 (uri (string-append "mirror://gnome/sources/" name "/"
4786 (version-major+minor version) "/"
4787 name "-" version ".tar.xz"))
4788 (sha256
4789 (base32
4790 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
4791 (build-system glib-or-gtk-build-system)
4792 (arguments
4793 '(#:configure-flags
4794 (list "--disable-migration" "--disable-search-provider"
4795 "--without-nautilus-extension")
4796 #:phases
4797 (modify-phases %standard-phases
4798 (add-before 'configure 'patch-/bin/true
4799 (lambda _
4800 (substitute* "configure"
4801 (("/bin/true") (which "true"))))))))
4802 (native-inputs
4803 `(("pkg-config" ,pkg-config)
4804 ("desktop-file-utils" ,desktop-file-utils)
4805 ("intltool" ,intltool)
4806 ("itstool" ,itstool)
4807 ("xmllint" ,libxml2)))
4808 (propagated-inputs
4809 `(("dconf" ,dconf)))
4810 (inputs
4811 `(("gtk+" ,gtk+)
4812 ("vte" ,vte)
4813 ("gnutls" ,gnutls)
4814 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4815 ("util-linux" ,util-linux "lib")
4816 ("vala" ,vala)))
4817 (home-page "https://wiki.gnome.org/Apps/Terminal")
4818 (synopsis "Terminal emulator")
4819 (description
4820 "GNOME Terminal is a terminal emulator application for accessing a
4821 UNIX shell environment which can be used to run programs available on
4822 your system.
4823
4824 It supports several profiles, multiple tabs and implements several
4825 keyboard shortcuts.")
4826 (license license:gpl3+)))
4827
4828 (define-public colord
4829 (package
4830 (name "colord")
4831 (version "1.4.4")
4832 (source
4833 (origin
4834 (method url-fetch)
4835 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
4836 "colord-" version ".tar.xz"))
4837 (sha256
4838 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
4839 (build-system meson-build-system)
4840 (arguments
4841 '(;; FIXME: One test fails:
4842 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4843 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4844 ;; application/x-zerosize
4845 #:tests? #f
4846 #:glib-or-gtk? #t
4847 #:configure-flags (list "-Dlocalstatedir=/var"
4848 ;; No dep on systemd.
4849 "-Dsystemd=false"
4850 ;; Wants to install to global completion dir;
4851 ;; punt.
4852 "-Dbash_completion=false"
4853 "-Ddaemon_user=colord"
4854 "-Dsane=true"
4855 "-Dvapi=true"
4856 ;; Requires spotread.
4857 "-Dargyllcms_sensor=false"
4858 ;; TODO: Requires docbook2x.
4859 "-Dman=false")
4860 #:phases
4861 (modify-phases %standard-phases
4862 (add-before 'configure 'patch-build-system
4863 (lambda* (#:key outputs #:allow-other-keys)
4864 (substitute* "rules/meson.build"
4865 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4866 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4867 #t))
4868 (add-before 'configure 'set-sqlite3-file-name
4869 (lambda* (#:key inputs #:allow-other-keys)
4870 ;; "colormgr dump" works by invoking the "sqlite3" command.
4871 ;; Record its absolute file name.
4872 (let ((sqlite (assoc-ref inputs "sqlite")))
4873 (substitute* "client/cd-util.c"
4874 (("\"sqlite3\"")
4875 (string-append "\"" sqlite "/bin/sqlite3\"")))
4876 #t))))))
4877 (native-inputs
4878 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4879 ("gettext" ,gettext-minimal)
4880 ("gobject-introspection" ,gobject-introspection)
4881 ("gtk-doc" ,gtk-doc)
4882 ("pkg-config" ,pkg-config)
4883 ("vala" ,vala)))
4884 (propagated-inputs
4885 ;; colord.pc refers to all these.
4886 `(("glib" ,glib)
4887 ("lcms" ,lcms)
4888 ("udev" ,eudev)))
4889 (inputs
4890 `(("dbus-glib" ,dbus-glib)
4891 ("gusb" ,gusb)
4892 ("libgudev" ,libgudev)
4893 ("libusb" ,libusb)
4894 ("polkit" ,polkit)
4895 ("python" ,python-wrapper)
4896 ("sqlite" ,sqlite)
4897 ("sane-backends" ,sane-backends)))
4898 (home-page "https://www.freedesktop.org/software/colord/")
4899 (synopsis "Color management service")
4900 (description "Colord is a system service that makes it easy to manage,
4901 install and generate color profiles to accurately color manage input and
4902 output devices.")
4903 (license license:gpl2+)))
4904
4905 (define-public geoclue
4906 (package
4907 (name "geoclue")
4908 (version "2.5.6")
4909 (source
4910 (origin
4911 (method url-fetch)
4912 (uri
4913 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4914 version "/geoclue-" version ".tar.bz2"))
4915 (sha256
4916 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
4917 (patches (search-patches "geoclue-config.patch"))))
4918 (build-system meson-build-system)
4919 (arguments
4920 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4921 (native-inputs
4922 `(("pkg-config" ,pkg-config)
4923 ("gobject-introspection" ,gobject-introspection)
4924 ("modem-manager" ,modem-manager)
4925 ("libnotify" ,libnotify)
4926 ("gtk-doc", gtk-doc)
4927 ("intltool" ,intltool)))
4928 (inputs
4929 `(("avahi" ,avahi)
4930 ("glib:bin" ,glib "bin")
4931 ("glib-networking" ,glib-networking)
4932 ("json-glib" ,json-glib)
4933 ("libsoup" ,libsoup)))
4934 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4935 (synopsis "Geolocation service")
4936 (description "Geoclue is a D-Bus service that provides location
4937 information. The primary goal of the Geoclue project is to make creating
4938 location-aware applications as simple as possible, while the secondary goal is
4939 to ensure that no application can access location information without explicit
4940 permission from user.")
4941 (license license:gpl2+)))
4942
4943 (define-public geocode-glib
4944 (package
4945 (name "geocode-glib")
4946 (version "3.26.1")
4947 (source (origin
4948 (method url-fetch)
4949 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4950 (version-major+minor version) "/"
4951 "geocode-glib-" version ".tar.xz"))
4952 (sha256
4953 (base32
4954 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4955 (build-system meson-build-system)
4956 (arguments
4957 `(#:phases
4958 (modify-phases %standard-phases
4959 ;; The tests require a bunch of locales.
4960 (add-before 'check 'set-locales
4961 (lambda* (#:key inputs #:allow-other-keys)
4962 (setenv "GUIX_LOCPATH"
4963 (string-append (assoc-ref inputs "glibc-locales")
4964 "/lib/locale"))
4965 #t)))))
4966 (native-inputs
4967 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4968 ("glibc-locales" ,glibc-locales) ; for tests
4969 ("gettext" ,gettext-minimal)
4970 ("gobject-introspection" ,gobject-introspection)
4971 ("gtk-doc" ,gtk-doc)
4972 ("pkg-config" ,pkg-config)
4973 ("json-glib" ,json-glib)))
4974 (propagated-inputs
4975 ;; geocode-glib-1.0.pc refers to GIO.
4976 `(("glib" ,glib)))
4977 (inputs
4978 `(("libsoup" ,libsoup)))
4979 (home-page "https://github.com/GNOME/geocode-glib/")
4980 (synopsis "Geocoding and reverse-geocoding library")
4981 (description
4982 "geocode-glib is a convenience library for geocoding (finding longitude,
4983 and latitude from an address) and reverse geocoding (finding an address from
4984 coordinates) using the Nominatim service. geocode-glib caches requests for
4985 faster results and to avoid unnecessary server load.")
4986 (license license:lgpl2.0+)))
4987
4988 (define-public upower
4989 (package
4990 (name "upower")
4991 (version "0.99.11")
4992 (source (origin
4993 (method url-fetch)
4994 (uri (string-append "https://upower.freedesktop.org/releases/"
4995 "upower-" version ".tar.xz"))
4996 (sha256
4997 (base32
4998 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4999 (patches (search-patches "upower-builddir.patch"))
5000 (modules '((guix build utils)))
5001 (snippet
5002 '(begin
5003 ;; Upstream commit
5004 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5005 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5006 ;; 'dbus-configuration-directory' in (gnu services dbus)
5007 ;; expects it in etc/. Thus, move it back to its previous
5008 ;; location.
5009 (substitute* "src/Makefile.in"
5010 (("^dbusconfdir =.*$")
5011 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5012 #t))))
5013 (build-system glib-or-gtk-build-system)
5014 (arguments
5015 '(#:phases
5016 (modify-phases %standard-phases
5017 (add-before 'check 'pre-check
5018 (lambda* (#:key inputs #:allow-other-keys)
5019 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5020 "/lib")))
5021 (setenv "LD_LIBRARY_PATH" umockdev))
5022 #t)))
5023 #:configure-flags (list "--localstatedir=/var"
5024 (string-append "--with-udevrulesdir="
5025 (assoc-ref %outputs "out")
5026 "/lib/udev/rules.d"))))
5027 (native-inputs
5028 `(("gobject-introspection" ,gobject-introspection)
5029 ("pkg-config" ,pkg-config)
5030 ("intltool" ,intltool)
5031 ("python" ,python)
5032
5033 ;; For tests.
5034 ("python-dbus" ,python-dbus)
5035 ("python-dbusmock" ,python-dbusmock)
5036 ("python-pygobject" ,python-pygobject)
5037 ("umockdev" ,umockdev)
5038
5039 ;; For man pages.
5040 ("libxslt" ,libxslt) ;for 'xsltproc'
5041 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5042 ("docbook-xsl" ,docbook-xsl)))
5043 (inputs
5044 `(("dbus-glib" ,dbus-glib)
5045 ("libgudev" ,libgudev)
5046 ("libusb" ,libusb)))
5047 (propagated-inputs
5048 ;; In Requires of upower-glib.pc.
5049 `(("glib" ,glib)))
5050 (home-page "https://upower.freedesktop.org/")
5051 (synopsis "System daemon for managing power devices")
5052 (description
5053 "UPower is an abstraction for enumerating power devices,
5054 listening to device events and querying history and statistics. Any
5055 application or service on the system can access the org.freedesktop.UPower
5056 service via the system message bus.")
5057 (license license:gpl2+)))
5058
5059 (define-public libgweather
5060 (package
5061 (name "libgweather")
5062 (version "3.34.0")
5063 (source (origin
5064 (method url-fetch)
5065 (uri (string-append "mirror://gnome/sources/" name "/"
5066 (version-major+minor version) "/"
5067 name "-" version ".tar.xz"))
5068 (sha256
5069 (base32
5070 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5071 (build-system meson-build-system)
5072 (arguments
5073 `(#:tests? #f ; one of two tests requires network access
5074 #:configure-flags
5075 `(,(string-append "-Dzoneinfo_dir="
5076 (assoc-ref %build-inputs "tzdata")
5077 "/share/zoneinfo"))))
5078 (native-inputs
5079 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5080 ("gobject-introspection" ,gobject-introspection)
5081 ("pkg-config" ,pkg-config)
5082 ("vala" ,vala)
5083 ("intltool" ,intltool)))
5084 (propagated-inputs
5085 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5086 ;; libsoup.
5087 `(("gtk+" ,gtk+)
5088 ("gdk-pixbuf" ,gdk-pixbuf)
5089 ("libxml2" ,libxml2)
5090 ("libsoup" ,libsoup)
5091 ("geocode-glib" ,geocode-glib)))
5092 (inputs
5093 `(("tzdata" ,tzdata)))
5094 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5095 (synopsis "Location, time zone, and weather library for GNOME")
5096 (description
5097 "libgweather is a library to access weather information from online
5098 services for numerous locations.")
5099 (license license:gpl2+)))
5100
5101 (define-public gnome-settings-daemon
5102 (package
5103 (name "gnome-settings-daemon")
5104 (version "3.34.1")
5105 (source
5106 (origin
5107 (method url-fetch)
5108 (uri (string-append "mirror://gnome/sources/" name "/"
5109 (version-major+minor version) "/"
5110 name "-" version ".tar.xz"))
5111 (sha256
5112 (base32
5113 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
5114 (build-system meson-build-system)
5115 (arguments
5116 `(#:glib-or-gtk? #t
5117 #:configure-flags
5118 (list (string-append "-Dudev_dir="
5119 (assoc-ref %outputs "out")
5120 "/lib/udev/rules.d/")
5121 "-Dsystemd=false"
5122 ;; Otherwise, the RUNPATH will lack the final path component.
5123 (string-append "-Dc_link_args=-Wl,-rpath="
5124 (assoc-ref %outputs "out")
5125 "/lib/gnome-settings-daemon-3.0"))
5126 ;; Color management test can't reach the colord system service.
5127 #:tests? #f))
5128 (native-inputs
5129 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5130 ("pkg-config" ,pkg-config)
5131 ("intltool" ,intltool)
5132 ("xsltproc" ,libxslt)
5133 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5134 ("docbook-xml" ,docbook-xml-4.2)
5135 ("docbook-xsl" ,docbook-xsl)))
5136 (inputs
5137 `(("alsa-lib" ,alsa-lib)
5138 ("colord" ,colord)
5139 ("libgudev" ,libgudev)
5140 ("upower" ,upower)
5141 ("polkit" ,polkit)
5142 ("pulseaudio" ,pulseaudio)
5143 ("libcanberra" ,libcanberra)
5144 ("libx11" ,libx11)
5145 ("libxtst" ,libxtst)
5146 ("lcms" ,lcms)
5147 ("libnotify" ,libnotify)
5148 ("geoclue" ,geoclue)
5149 ("geocode-glib" ,geocode-glib)
5150 ("libgweather" ,libgweather)
5151 ("gnome-desktop" ,gnome-desktop)
5152 ("nss" ,nss)
5153 ("cups" ,cups)
5154 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5155 ("libwacom" ,libwacom)
5156 ("librsvg" ,librsvg)
5157 ("xf86-input-wacom" ,xf86-input-wacom)
5158 ("wayland" ,wayland)
5159 ("network-manager" ,network-manager)
5160 ("gcr" ,gcr)
5161 ("modem-manager" ,modem-manager)))
5162 (home-page "https://www.gnome.org")
5163 (synopsis "GNOME settings daemon")
5164 (description
5165 "This package contains the daemon responsible for setting the various
5166 parameters of a GNOME session and the applications that run under it. It
5167 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5168 settings, themes, mouse settings, and startup of other daemons.")
5169 (license license:gpl2+)))
5170
5171 (define-public totem-pl-parser
5172 (package
5173 (name "totem-pl-parser")
5174 (version "3.26.3")
5175 (source (origin
5176 (method url-fetch)
5177 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5178 (version-major+minor version) "/"
5179 "totem-pl-parser-" version ".tar.xz"))
5180 (sha256
5181 (base32
5182 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
5183 (build-system meson-build-system)
5184 (arguments
5185 ;; FIXME: Tests require gvfs.
5186 `(#:tests? #f))
5187 (native-inputs
5188 `(("intltool" ,intltool)
5189 ("glib" ,glib "bin")
5190 ("gobject-introspection" ,gobject-introspection)
5191 ("pkg-config" ,pkg-config)))
5192 (propagated-inputs
5193 `(("glib" ,glib)
5194 ("gmime" ,gmime)
5195 ("libarchive" ,libarchive)
5196 ("libgcrypt" ,libgcrypt)
5197 ("libxml2" ,libxml2)))
5198 (inputs
5199 `(("libsoup" ,libsoup)))
5200 (home-page "https://projects.gnome.org/totem")
5201 (synopsis "Library to parse and save media playlists for GNOME")
5202 (description "Totem-pl-parser is a GObjects-based library to parse and save
5203 playlists in a variety of formats.")
5204 (license license:lgpl2.0+)))
5205
5206 (define-public aisleriot
5207 (package
5208 (name "aisleriot")
5209 (version "3.22.9")
5210 (source (origin
5211 (method url-fetch)
5212 (uri (string-append "mirror://gnome/sources/aisleriot/"
5213 (version-major+minor version) "/"
5214 "aisleriot-" version ".tar.xz"))
5215 (sha256
5216 (base32
5217 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5218 (build-system glib-or-gtk-build-system)
5219 (arguments
5220 '(#:configure-flags
5221 '("--with-platform=gtk-only"
5222 "--with-card-theme-formats=svg")))
5223 (native-inputs
5224 `(("desktop-file-utils" ,desktop-file-utils)
5225 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5226 ("intltool" ,intltool)
5227 ("itstool" ,itstool)
5228 ("pkg-config" ,pkg-config)
5229 ("xmllint" ,libxml2)))
5230 (inputs
5231 `(("gtk+" ,gtk+)
5232 ("guile" ,guile-2.2)
5233 ("libcanberra" ,libcanberra)
5234 ("librsvg" ,librsvg)))
5235 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5236 (synopsis "Solitaire card games")
5237 (description
5238 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5239 which are easy to play with the aid of a mouse.")
5240 (license license:gpl3+)))
5241
5242 (define-public amtk
5243 (package
5244 (name "amtk")
5245 (version "5.0.2")
5246 (source (origin
5247 (method url-fetch)
5248 (uri (string-append "mirror://gnome/sources/amtk/"
5249 (version-major+minor version) "/"
5250 "amtk-" version ".tar.xz"))
5251 (sha256
5252 (base32
5253 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5254 (build-system gnu-build-system)
5255 (arguments
5256 '(#:configure-flags '("--enable-gtk-doc")))
5257 (native-inputs
5258 `(("gobject-introspection" ,gobject-introspection)
5259 ("glib:bin" ,glib "bin") ; for glib-mkenums
5260 ("gtk-doc" ,gtk-doc)
5261 ("pkg-config" ,pkg-config)))
5262 (inputs
5263 `(("glib" ,glib)
5264 ("gtk+" ,gtk+)))
5265 (home-page "https://wiki.gnome.org/Projects/Amtk")
5266 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5267 (description
5268 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5269 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5270 both a traditional UI or a modern UI with a GtkHeaderBar.")
5271 (license license:lgpl2.1+)))
5272
5273 (define-public devhelp
5274 (package
5275 (name "devhelp")
5276 (version "3.34.0")
5277 (source (origin
5278 (method url-fetch)
5279 (uri (string-append "mirror://gnome/sources/" name "/"
5280 (version-major+minor version) "/"
5281 name "-" version ".tar.xz"))
5282 (sha256
5283 (base32
5284 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5285 (build-system meson-build-system)
5286 (arguments
5287 '(#:glib-or-gtk? #t
5288 #:phases
5289 (modify-phases %standard-phases
5290 (add-after 'unpack 'skip-gtk-update-icon-cache
5291 ;; Don't create 'icon-theme.cache'.
5292 (lambda _
5293 (substitute* "meson_post_install.py"
5294 (("gtk-update-icon-cache") "true"))
5295 #t)))))
5296 (native-inputs
5297 `(("intltool" ,intltool)
5298 ("itstool" ,itstool)
5299 ("gobject-introspection" ,gobject-introspection)
5300 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5301 ("pkg-config" ,pkg-config)))
5302 (inputs
5303 `(("amtk" ,amtk)
5304 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5305 ("webkitgtk" ,webkitgtk)))
5306 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5307 (synopsis "API documentation browser for GNOME")
5308 (description
5309 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5310 natively with GTK-Doc (the API reference system developed for GTK+ and used
5311 throughout GNOME for API documentation).")
5312 (license license:gpl2+)))
5313
5314 (define-public cogl
5315 (package
5316 (name "cogl")
5317 (version "1.22.8")
5318 (source
5319 (origin
5320 (method url-fetch)
5321 (uri (string-append "mirror://gnome/sources/cogl/"
5322 (version-major+minor version) "/"
5323 "cogl-" version ".tar.xz"))
5324 (sha256
5325 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5326 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5327 ;; cogl, corresponding changes may be appropriate in mutter as well.
5328 (build-system gnu-build-system)
5329 (native-inputs
5330 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5331 ("gobject-introspection" ,gobject-introspection)
5332 ("xorg-server" ,xorg-server-for-tests)
5333 ("pkg-config" ,pkg-config)))
5334 (propagated-inputs
5335 `(("glib" ,glib)
5336 ("gdk-pixbuf" ,gdk-pixbuf)
5337 ("libx11" ,libx11)
5338 ("libxext" ,libxext)
5339 ("libxfixes" ,libxfixes)
5340 ("libxdamage" ,libxdamage)
5341 ("libxcomposite" ,libxcomposite)
5342 ("libxrandr" ,libxrandr)))
5343 (inputs
5344 `(("mesa" ,mesa)
5345 ("cairo" ,cairo)
5346 ("pango" ,pango)
5347 ("gstreamer" ,gstreamer)
5348 ("gst-plugins-base" ,gst-plugins-base)
5349 ("wayland" ,wayland)))
5350 (arguments
5351 `(#:disallowed-references (,xorg-server-for-tests)
5352 #:configure-flags (list "--enable-cogl-gst"
5353 "--enable-wayland-egl-platform"
5354 "--enable-wayland-egl-server"
5355
5356 ;; Arrange to pass an absolute file name to
5357 ;; dlopen for libGL.so.
5358 (string-append "--with-gl-libname="
5359 (assoc-ref %build-inputs "mesa")
5360 "/lib/libGL.so"))
5361 #:phases
5362 (modify-phases %standard-phases
5363 (add-after 'unpack 'fix-build-with-mesa-20
5364 (lambda _
5365 ;; Work around a problem with Mesa 20 where some macros used by
5366 ;; Cogl went missing from eglext.h. This can likely be removed
5367 ;; for newer versions of Cogl or Mesa.
5368 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5369 (substitute* '("configure"
5370 "cogl/winsys/cogl-winsys-egl-kms.c")
5371 (("#include <EGL/eglext.h>" all)
5372 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5373 #t))
5374 (add-before 'check 'start-xorg-server
5375 (lambda* (#:key tests? inputs #:allow-other-keys)
5376 (if tests?
5377 (begin
5378 ;; The test suite requires a running X server.
5379 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5380 (assoc-ref inputs "xorg-server")))
5381 (setenv "DISPLAY" ":1")
5382 #t)
5383 (format #t "test suite not run~%"))
5384 #t)))))
5385 (home-page "https://www.cogl3d.org")
5386 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5387 (description
5388 "Cogl is a small library for using 3D graphics hardware to draw pretty
5389 pictures. The API departs from the flat state machine style of OpenGL and is
5390 designed to make it easy to write orthogonal components that can render
5391 without stepping on each others toes.")
5392 (license (list license:expat ; most of the code
5393 license:bsd-3 ; cogl/cogl-point-in-poly.c
5394 license:sgifreeb2.0 ; cogl-path/tesselator/
5395 license:asl2.0)))) ; examples/android/
5396
5397 (define-public clutter
5398 (package
5399 (name "clutter")
5400 (version "1.26.2")
5401 (source
5402 (origin
5403 (method url-fetch)
5404 (uri (string-append "mirror://gnome/sources/" name "/"
5405 (version-major+minor version) "/"
5406 name "-" version ".tar.xz"))
5407 (sha256
5408 (base32
5409 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5410 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5411 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5412 (build-system gnu-build-system)
5413 (outputs '("out"
5414 "doc")) ;9 MiB of gtk-doc HTML pages
5415 (native-inputs
5416 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5417 ("gobject-introspection" ,gobject-introspection)
5418 ("pkg-config" ,pkg-config)
5419 ("xsltproc" ,libxslt)))
5420 (propagated-inputs
5421 `(("cogl" ,cogl)
5422 ("cairo" ,cairo)
5423 ("atk" ,atk)
5424 ("gtk+" ,gtk+)
5425 ("json-glib" ,json-glib)
5426 ("glib" ,glib)
5427 ("libxcomposite" ,libxcomposite)
5428 ("libxdamage" ,libxdamage)
5429 ("libxext" ,libxext)
5430 ("xinput" ,xinput)))
5431 (inputs
5432 `(("libxkbcommon" ,libxkbcommon)
5433 ("udev" ,eudev)))
5434 (arguments
5435 `(#:configure-flags (list "--enable-x11-backend=yes"
5436
5437 ;; This produces share/doc/{clutter,cally}.
5438 (string-append "--with-html-dir="
5439 (assoc-ref %outputs "doc")
5440 "/share/doc"))
5441 ;; XXX FIXME: Get test suite working. It would probably fail in the
5442 ;; same way the cogl tests fail, since clutter is based on cogl.
5443 #:tests? #f))
5444 (home-page "http://www.clutter-project.org")
5445 (synopsis "OpenGL-based interactive canvas library")
5446 (description
5447 "Clutter is an OpenGL-based interactive canvas library, designed for
5448 creating fast, mainly 2D single window applications such as media box UIs,
5449 presentations, kiosk style applications and so on.")
5450 (license license:lgpl2.0+)))
5451
5452 (define-public clutter-gtk
5453 (package
5454 (name "clutter-gtk")
5455 (version "1.8.4")
5456 (source
5457 (origin
5458 (method url-fetch)
5459 (uri (string-append "mirror://gnome/sources/" name "/"
5460 (version-major+minor version) "/"
5461 name "-" version ".tar.xz"))
5462 (sha256
5463 (base32
5464 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5465 (build-system gnu-build-system)
5466 (native-inputs
5467 `(("pkg-config" ,pkg-config)
5468 ("gobject-introspection" ,gobject-introspection)))
5469 (propagated-inputs
5470 ;; clutter-gtk.pc refers to all these.
5471 `(("clutter" ,clutter)
5472 ("gtk+" ,gtk+)))
5473 (home-page "http://www.clutter-project.org")
5474 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5475 (description
5476 "Clutter is an OpenGL-based interactive canvas library, designed for
5477 creating fast, mainly 2D single window applications such as media box UIs,
5478 presentations, kiosk style applications and so on.")
5479 (license license:lgpl2.0+)))
5480
5481 (define-public clutter-gst
5482 (package
5483 (name "clutter-gst")
5484 (version "3.0.27")
5485 (source
5486 (origin
5487 (method url-fetch)
5488 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5489 (version-major+minor version) "/"
5490 "clutter-gst-" version ".tar.xz"))
5491 (sha256
5492 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5493 (build-system gnu-build-system)
5494 (native-inputs
5495 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5496 ("pkg-config" ,pkg-config)
5497 ("gobject-introspection" ,gobject-introspection)))
5498 (inputs
5499 `(("clutter" ,clutter)
5500 ("gstreamer" ,gstreamer)
5501 ("gst-plugins-base" ,gst-plugins-base)))
5502 (home-page "http://www.clutter-project.org")
5503 (synopsis "Integration library for using GStreamer with Clutter")
5504 (description
5505 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5506 It provides a GStreamer sink to upload frames to GL and an actor that
5507 implements the ClutterGstPlayer interface using playbin. Clutter is an
5508 OpenGL-based interactive canvas library.")
5509 (license license:lgpl2.0+)))
5510
5511 (define-public libchamplain
5512 (package
5513 (name "libchamplain")
5514 (version "0.12.16")
5515 (source (origin
5516 (method url-fetch)
5517 (uri (string-append
5518 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5519 version ".tar.xz"))
5520 (sha256
5521 (base32
5522 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5523 (build-system gnu-build-system)
5524 (arguments '(#:configure-flags '("--enable-vala")))
5525 (native-inputs
5526 `(("gobject-introspection" ,gobject-introspection)
5527 ("pkg-config" ,pkg-config)
5528 ("vala" ,vala)))
5529 (propagated-inputs
5530 `(("libsoup" ,libsoup)
5531 ("sqlite" ,sqlite)
5532 ("clutter" ,clutter)
5533 ("clutter-gtk" ,clutter-gtk)
5534 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5535 ("cairo" ,cairo)
5536 ("gtk+3" ,gtk+)
5537 ("glib" ,glib)))
5538 (home-page "https://projects.gnome.org/libchamplain/")
5539 (synopsis "C library providing a ClutterActor to display maps")
5540 (description
5541 "libchamplain is a C library providing a ClutterActor to display maps.
5542 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5543 and Perl bindings are also available. It supports numerous free map sources
5544 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5545 (license license:lgpl2.1+)))
5546
5547 (define-public gom
5548 (package
5549 (name "gom")
5550 (version "0.3.2")
5551 (source
5552 (origin
5553 (method url-fetch)
5554 (uri (string-append "mirror://gnome/sources/gom/"
5555 (version-major+minor version) "/"
5556 "gom-" version ".tar.xz"))
5557 (sha256
5558 (base32
5559 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5560 (build-system gnu-build-system)
5561 (native-inputs
5562 `(("intltool" ,intltool)
5563 ("pkg-config" ,pkg-config)
5564 ("gobject-introspection" ,gobject-introspection)))
5565 (inputs
5566 `(("glib" ,glib)
5567 ("gdk-pixbuf" ,gdk-pixbuf)
5568 ("sqlite" ,sqlite)))
5569 ;; XXX TODO: Figure out how to run the test suite.
5570 (arguments `(#:tests? #f))
5571 (home-page "https://wiki.gnome.org/Projects/Gom")
5572 (synopsis "Object mapper from GObjects to SQLite")
5573 (description
5574 "Gom provides an object mapper from GObjects to SQLite. It helps you
5575 write applications that need to store structured data as well as make complex
5576 queries upon that data.")
5577 (license license:lgpl2.1+)))
5578
5579 (define-public libgnome-games-support
5580 (package
5581 (name "libgnome-games-support")
5582 (version "1.4.4")
5583 (source (origin
5584 (method url-fetch)
5585 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5586 (version-major+minor version) "/"
5587 "libgnome-games-support-" version ".tar.xz"))
5588 (sha256
5589 (base32
5590 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5591 (build-system gnu-build-system)
5592 (arguments
5593 '(#:phases
5594 (modify-phases %standard-phases
5595 (add-before 'check 'pre-check
5596 (lambda _
5597 ;; Tests require a writable HOME.
5598 (setenv "HOME" (getcwd))
5599 #t)))))
5600 (native-inputs
5601 `(("intltool" ,intltool)
5602 ("pkg-config" ,pkg-config)
5603 ("vala" ,vala)))
5604 (propagated-inputs
5605 ;; Required by libgnome-games-support-1.0.pc
5606 `(("gtk+" ,gtk+)
5607 ("libgee" ,libgee)))
5608 (home-page "https://www.gnome.org/")
5609 (synopsis "Useful functionality shared among GNOME games")
5610 (description
5611 "libgnome-games-support is a small library intended for internal use by
5612 GNOME Games, but it may be used by others.")
5613 (license license:lgpl3+)))
5614
5615 (define-public gnome-klotski
5616 (package
5617 (name "gnome-klotski")
5618 (version "3.34.0")
5619 (source (origin
5620 (method url-fetch)
5621 (uri (string-append "mirror://gnome/sources/" name "/"
5622 (version-major+minor version) "/"
5623 name "-" version ".tar.xz"))
5624 (sha256
5625 (base32
5626 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
5627 (build-system meson-build-system)
5628 (arguments
5629 '(#:glib-or-gtk? #t
5630 #:phases
5631 (modify-phases %standard-phases
5632 (add-after 'unpack 'skip-gtk-update-icon-cache
5633 ;; Don't create 'icon-theme.cache'.
5634 (lambda _
5635 (substitute* "build-aux/meson_post_install.py"
5636 (("gtk-update-icon-cache") (which "true")))
5637 #t)))))
5638 (native-inputs
5639 `(("desktop-file-utils" ,desktop-file-utils)
5640 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5641 ("intltool" ,intltool)
5642 ("itstool" ,itstool)
5643 ("pkg-config" ,pkg-config)
5644 ("vala" ,vala)
5645 ("xmllint" ,libxml2)))
5646 (inputs
5647 `(("gtk+" ,gtk+)
5648 ("libgnome-games-support" ,libgnome-games-support)
5649 ("librsvg" ,librsvg)))
5650 (home-page "https://wiki.gnome.org/Apps/Klotski")
5651 (synopsis "Sliding block puzzles")
5652 (description
5653 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
5654 the patterned block to the area bordered by green markers. To do so, you will
5655 need to slide other blocks out of the way. Complete each puzzle in as few moves
5656 as possible!")
5657 (license license:gpl2+)))
5658
5659 (define-public grilo
5660 (package
5661 (name "grilo")
5662 (version "0.3.10")
5663 (source
5664 (origin
5665 (method url-fetch)
5666 (uri (string-append "mirror://gnome/sources/" name "/"
5667 (version-major+minor version) "/"
5668 name "-" version ".tar.xz"))
5669 (sha256
5670 (base32
5671 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
5672 (build-system meson-build-system)
5673 (native-inputs
5674 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
5675 ("intltool" ,intltool)
5676 ("pkg-config" ,pkg-config)
5677 ("gobject-introspection" ,gobject-introspection)
5678 ("gtk-doc" ,gtk-doc)
5679 ("vala" ,vala)))
5680 (inputs
5681 `(("cyrus-sasl" ,cyrus-sasl)
5682 ("glib" ,glib)
5683 ("gtk+" ,gtk+)
5684 ("libxml2" ,libxml2)
5685 ("liboauth" ,liboauth)
5686 ("libsoup" ,libsoup)
5687 ("totem-pl-parser" ,totem-pl-parser)))
5688 (native-search-paths
5689 (list (search-path-specification
5690 (variable "GRL_PLUGIN_PATH")
5691 (files (list (string-append "lib/grilo-"
5692 (version-major+minor version)))))))
5693 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
5694 (synopsis "Framework for discovering and browsing media")
5695 (description
5696 "Grilo is a framework focused on making media discovery and browsing easy
5697 for application developers.")
5698 (license license:lgpl2.1+)))
5699
5700 (define-public grilo-plugins
5701 (package
5702 (name "grilo-plugins")
5703 (version "0.3.10")
5704 (source
5705 (origin
5706 (method url-fetch)
5707 (uri (string-append "mirror://gnome/sources/" name "/"
5708 (version-major+minor version) "/"
5709 name "-" version ".tar.xz"))
5710 (sha256
5711 (base32
5712 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
5713 (build-system meson-build-system)
5714 (native-inputs
5715 `(("gettext" ,gettext-minimal)
5716 ("glib:bin" ,glib "bin")
5717 ("gtk+:bin" ,gtk+ "bin")
5718 ("itstool" ,itstool)
5719 ("pkg-config" ,pkg-config)))
5720 ;; TODO: ahavi, gstreamer
5721 (inputs
5722 `(("grilo" ,grilo)
5723 ;("gmime" ,gmime) ; unused
5724 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
5725 ("gom" ,gom)
5726 ;("gssdp" ,gssdp) ; unused
5727 ;("gupnp" ,gupnp) ; unused
5728 ;("gupnp-av" ,gupnp-av) ; unused
5729 ("json-glib" ,json-glib)
5730 ("avahi" ,avahi)
5731 ("libgdata" ,libgdata)
5732 ("libmediaart" ,libmediaart)
5733 ;("librest" ,rest) ; unused
5734 ("libsoup" ,libsoup)
5735 ("totam-pl-parser" ,totem-pl-parser)
5736 ("tracker" ,tracker))) ; unused because it's too old
5737 (arguments
5738 `(#:glib-or-gtk? #t
5739 ;;Disable lua-factory as it needs missing dependencies
5740 #:configure-flags '("-Denable-lua-factory=no")))
5741 (home-page "https://live.gnome.org/Grilo")
5742 (synopsis "Plugins for the Grilo media discovery library")
5743 (description
5744 "Grilo is a framework focused on making media discovery and browsing easy
5745 for application developers. This package provides plugins for common media
5746 discovery protocols.")
5747 (license license:lgpl2.1+)))
5748
5749 (define-public totem
5750 (package
5751 (name "totem")
5752 (version "3.34.1")
5753 (source
5754 (origin
5755 (method url-fetch)
5756 (uri (string-append "mirror://gnome/sources/totem/"
5757 (version-major+minor version) "/"
5758 "totem-" version ".tar.xz"))
5759 (sha256
5760 (base32
5761 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
5762 (build-system meson-build-system)
5763 (native-inputs
5764 `(("pkg-config" ,pkg-config)
5765 ("desktop-file-utils" ,desktop-file-utils)
5766 ("gobject-introspection" ,gobject-introspection)
5767 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
5768 ("intltool" ,intltool)
5769 ("itstool" ,itstool)
5770 ("xmllint" ,libxml2)
5771 ("xorg-server" ,xorg-server-for-tests)))
5772 (propagated-inputs
5773 `(("dconf" ,dconf)))
5774 (inputs
5775 `(("gtk+" ,gtk+)
5776 ("gdk-pixbuf" ,gdk-pixbuf)
5777 ("atk" ,atk)
5778 ("cairo" ,cairo)
5779 ("dbus-glib" ,dbus-glib)
5780 ("clutter" ,clutter)
5781 ("clutter-gtk" ,clutter-gtk)
5782 ("clutter-gst" ,clutter-gst)
5783 ("xorgproto" ,xorgproto)
5784 ("libxxf86vm" ,libxxf86vm)
5785 ("libxtst" ,libxtst)
5786 ("libxrandr" ,libxrandr)
5787 ("libxml2" ,libxml2)
5788 ("libsoup" ,libsoup)
5789 ("libpeas" ,libpeas)
5790 ("librsvg" ,librsvg)
5791 ("lirc" ,lirc)
5792 ("gnome-desktop" ,gnome-desktop)
5793 ("gstreamer" ,gstreamer)
5794 ("gst-plugins-base" ,gst-plugins-base)
5795 ("gst-plugins-good" ,gst-plugins-good)
5796 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5797 ("adwaita-icon-theme" ,adwaita-icon-theme)
5798 ("python" ,python)
5799 ("python-pygobject" ,python-pygobject)
5800 ("totem-pl-parser" ,totem-pl-parser)
5801 ("grilo" ,grilo)
5802 ("grilo-plugins" ,grilo-plugins)
5803 ("vala" ,vala)))
5804 (arguments
5805 `(#:glib-or-gtk? #t
5806
5807 ;; Disable automatic GStreamer plugin installation via PackageKit and
5808 ;; all that.
5809 #:configure-flags '("-D" "enable-easy-codec-installation=no"
5810
5811 ;; Do not build .a files for the plugins, it's
5812 ;; completely useless. This saves 2 MiB.
5813 "--default-library" "shared")
5814 #:phases
5815 (modify-phases %standard-phases
5816 (add-after 'unpack 'skip-gtk-update-icon-cache
5817 ;; Don't create 'icon-theme.cache'.
5818 (lambda _
5819 (substitute* "meson_post_install.py"
5820 (("gtk-update-icon-cache") "true"))
5821 #t))
5822 (add-before
5823 'install 'disable-cache-generation
5824 (lambda _
5825 (setenv "DESTDIR" "/")
5826 #t))
5827 (add-before
5828 'check 'pre-check
5829 (lambda _
5830 ;; Tests require a running X server.
5831 (system "Xvfb :1 &")
5832 (setenv "DISPLAY" ":1")
5833 #t))
5834 (add-after
5835 'install 'wrap-totem
5836 (lambda* (#:key inputs outputs #:allow-other-keys)
5837 (let ((out (assoc-ref outputs "out"))
5838 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5839 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5840 (wrap-program (string-append out "/bin/totem")
5841 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5842 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5843 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5844 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
5845 #t)))))
5846 (home-page "https://wiki.gnome.org/Apps/Videos")
5847 (synopsis "Simple media player for GNOME based on GStreamer")
5848 (description "Totem is a simple yet featureful media player for GNOME
5849 which can read a large number of file formats.")
5850 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5851 ;; to be used and distributed together with GStreamer and Totem. See
5852 ;; file://COPYING in the source distribution for details.
5853 (license license:gpl2+)))
5854
5855 (define-public rhythmbox
5856 (package
5857 (name "rhythmbox")
5858 (version "3.4.4")
5859 (source (origin
5860 (method url-fetch)
5861 (uri (string-append "mirror://gnome/sources/rhythmbox/"
5862 (version-major+minor version) "/"
5863 "rhythmbox-" version ".tar.xz"))
5864 (sha256
5865 (base32
5866 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
5867 (build-system glib-or-gtk-build-system)
5868 (arguments
5869 `(#:configure-flags
5870 (list "--enable-lirc"
5871 "--enable-python"
5872 "--enable-vala"
5873 "--with-brasero"
5874 "--with-gudev"
5875 "--with-libsecret")
5876 #:phases
5877 (modify-phases %standard-phases
5878 (add-after
5879 'install 'wrap-rhythmbox
5880 (lambda* (#:key inputs outputs #:allow-other-keys)
5881 (let ((out (assoc-ref outputs "out"))
5882 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5883 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5884 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5885 (python-path (getenv "PYTHONPATH")))
5886 (wrap-program (string-append out "/bin/rhythmbox")
5887 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5888 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5889 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5890 `("PYTHONPATH" ":" prefix (,python-path))))
5891 #t)))))
5892 (propagated-inputs
5893 `(("dconf" ,dconf)))
5894 (native-inputs
5895 `(("itstool" ,itstool)
5896 ("intltool" ,intltool)
5897 ("glib" ,glib "bin")
5898 ("gobject-introspection" ,gobject-introspection)
5899 ("desktop-file-utils" ,desktop-file-utils)
5900 ("pkg-config" ,pkg-config)
5901 ("xmllint" ,libxml2)))
5902 (inputs
5903 `(("json-glib" ,json-glib)
5904 ("tdb" ,tdb)
5905 ("gnome-desktop" ,gnome-desktop)
5906 ("python" ,python)
5907 ("python-pygobject" ,python2-pygobject)
5908 ("vala" ,vala)
5909 ("gmime" ,gmime)
5910 ("adwaita-icon-theme" ,adwaita-icon-theme)
5911 ("grilo" ,grilo)
5912 ("grilo-plugins" ,grilo-plugins)
5913 ("gstreamer" ,gstreamer)
5914 ("gst-plugins-base" ,gst-plugins-base)
5915 ("gst-plugins-good" ,gst-plugins-good)
5916 ("totem-pl-parser" ,totem-pl-parser)
5917 ("libgudev" ,libgudev)
5918 ;;("libmtp" ,libmtp) FIXME: Not detected
5919 ("libsecret" ,libsecret)
5920 ("libsoup" ,libsoup)
5921 ("libnotify" ,libnotify)
5922 ("libpeas" ,libpeas)
5923 ("lirc" ,lirc)
5924 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5925 ;;("clutter" ,clutter)
5926 ;;("clutter-gtk" ,clutter-gtk)
5927 ;;("clutter-gst" ,clutter-gst)
5928 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5929 ("atk" ,atk)
5930 ("pango" ,pango)
5931 ("gtk+" ,gtk+)
5932 ;; TODO:
5933 ;; * libgpod
5934 ;; * mx
5935 ("brasero" ,brasero)))
5936 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5937 (synopsis "Music player for GNOME")
5938 (description "Rhythmbox is a music playing application for GNOME. It
5939 supports playlists, song ratings, and any codecs installed through gstreamer.")
5940 (license license:gpl2+)))
5941
5942 (define-public eog
5943 (package
5944 (name "eog")
5945 (version "3.34.1")
5946 (source (origin
5947 (method url-fetch)
5948 (uri (string-append "mirror://gnome/sources/" name "/"
5949 (version-major+minor version) "/"
5950 name "-" version ".tar.xz"))
5951 (sha256
5952 (base32
5953 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5954 (build-system meson-build-system)
5955 (arguments
5956 `(#:configure-flags
5957 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5958 (list (string-append "-Dc_link_args=-Wl,-rpath="
5959 (assoc-ref %outputs "out") "/lib/eog"))
5960 #:phases
5961 (modify-phases %standard-phases
5962 (add-after 'unpack 'skip-gtk-update-icon-cache
5963 ;; Don't create 'icon-theme.cache'.
5964 (lambda _
5965 (substitute* "meson_post_install.py"
5966 (("gtk-update-icon-cache") "true"))
5967 #t))
5968 (add-after 'install 'wrap-eog
5969 (lambda* (#:key outputs #:allow-other-keys)
5970 (let ((out (assoc-ref outputs "out"))
5971 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5972 (wrap-program (string-append out "/bin/eog")
5973 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5974 #t)))))
5975 (propagated-inputs
5976 `(("dconf" ,dconf)))
5977 (native-inputs
5978 `(("intltool" ,intltool)
5979 ("itstool" ,itstool)
5980 ("glib" ,glib "bin")
5981 ("gobject-introspection" ,gobject-introspection)
5982 ("pkg-config" ,pkg-config)
5983 ("xmllint" ,libxml2)))
5984 (inputs
5985 `(("gnome-desktop" ,gnome-desktop)
5986 ("shared-mime-info" ,shared-mime-info)
5987 ("adwaita-icon-theme" ,adwaita-icon-theme)
5988 ("exempi" ,exempi)
5989 ("lcms" ,lcms)
5990 ("libexif" ,libexif)
5991 ("libpeas" ,libpeas)
5992 ("libjpeg" ,libjpeg-turbo)
5993 ("librsvg" ,librsvg-next)
5994 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5995 ("gtk+" ,gtk+)))
5996 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5997 (synopsis "GNOME image viewer")
5998 (description "Eye of GNOME is the GNOME image viewer. It
5999 supports image conversion, rotation, and slideshows.")
6000 (license license:gpl2+)))
6001
6002 (define-public eog-plugins
6003 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6004 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6005 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6006 ;; 'XDG_DATA_DIRS' appropriately set.
6007 (package
6008 (name "eog-plugins")
6009 (version "3.26.4")
6010 (source (origin
6011 (method url-fetch)
6012 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6013 (version-major+minor version) "/"
6014 "eog-plugins-" version ".tar.xz"))
6015 (sha256
6016 (base32
6017 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6018 (build-system gnu-build-system)
6019 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6020 (synopsis "Extensions for the Eye of GNOME image viewer")
6021 (native-inputs
6022 `(("pkg-config" ,pkg-config)
6023 ("gettext" ,gettext-minimal)))
6024 (inputs
6025 `(("eog" ,eog)
6026 ("glib" ,glib)
6027 ("gtk+" ,gtk+)
6028 ("libpeas" ,libpeas)
6029 ("libexif" ,libexif)
6030 ("libchamplain" ,libchamplain)))
6031 (description
6032 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6033 notably:
6034
6035 @itemize
6036 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6037 @item @dfn{Map}, which displays a map of where the picture was taken on the
6038 side panel;
6039 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6040 @end itemize\n")
6041
6042 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6043 ;; long suspicious byte stream that goes to a
6044 ;; ".gresource.eog_postasa_plugin" ELF section.
6045 (license license:gpl2+)))
6046
6047 (define-public libgudev
6048 (package
6049 (name "libgudev")
6050 (version "232")
6051 (source (origin
6052 (method url-fetch)
6053 (uri (string-append "mirror://gnome/sources/" name "/"
6054 version "/" name "-" version ".tar.xz"))
6055 (sha256
6056 (base32
6057 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
6058 (build-system gnu-build-system)
6059 (arguments
6060 '(#:configure-flags
6061 ;; umockdev depends on libgudev.
6062 (list "--disable-umockdev")))
6063 (native-inputs
6064 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6065 ("gobject-introspection" ,gobject-introspection)
6066 ("pkg-config" ,pkg-config)))
6067 (propagated-inputs
6068 `(("glib" ,glib))) ; required by gudev-1.0.pc
6069 (inputs
6070 `(("udev" ,eudev)))
6071 (home-page "https://wiki.gnome.org/Projects/libgudev")
6072 (synopsis "GObject bindings for libudev")
6073 (description
6074 "This library provides GObject bindings for libudev. It was originally
6075 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6076 (license license:lgpl2.1+)))
6077
6078 (define-public gvfs
6079 (package
6080 (name "gvfs")
6081 (version "1.40.1")
6082 (source (origin
6083 (method url-fetch)
6084 (uri (string-append "mirror://gnome/sources/gvfs/"
6085 (version-major+minor version) "/"
6086 "gvfs-" version ".tar.xz"))
6087 (sha256
6088 (base32
6089 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
6090 ;; This patch may be removed when upgrading to version 1.46.x.
6091 (patches
6092 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6093 (build-system meson-build-system)
6094 (arguments
6095 '(#:glib-or-gtk? #t
6096 #:configure-flags
6097 (list "-Dsystemduserunitdir=no"
6098 "-Dtmpfilesdir=no"
6099 ;; Otherwise, the RUNPATH will lack the final path component.
6100 (string-append "-Dc_link_args=-Wl,-rpath="
6101 (assoc-ref %outputs "out") "/lib/gvfs"))))
6102 (native-inputs
6103 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6104 ("gettext" ,gettext-minimal)
6105 ("gtk-doc" ,gtk-doc)
6106 ("pkg-config" ,pkg-config)
6107 ("xsltproc" ,libxslt)))
6108 (inputs
6109 `(("avahi" ,avahi)
6110 ("docbook-xml" ,docbook-xml-4.2)
6111 ("docbook-xsl" ,docbook-xsl)
6112 ("dbus" ,dbus)
6113 ("elogind" ,elogind)
6114 ("fuse" ,fuse)
6115 ("gcr" ,gcr)
6116 ("glib" ,glib)
6117 ("gnome-online-accounts" ,gnome-online-accounts)
6118 ("libarchive" ,libarchive)
6119 ("libbluray" ,libbluray)
6120 ("libcap" ,libcap)
6121 ("libcdio-paranoia" ,libcdio-paranoia)
6122 ("libgcrypt" ,libgcrypt)
6123 ("libgdata" ,libgdata)
6124 ("libgphoto2" ,libgphoto2)
6125 ("libgudev" ,libgudev)
6126 ("libimobiledevice" ,libimobiledevice)
6127 ("libmtp" ,libmtp)
6128 ("libnfs" ,libnfs)
6129 ("libsecret" ,libsecret)
6130 ("libsmbclient" ,samba)
6131 ("libsoup" ,libsoup)
6132 ("libxml2" ,libxml2)
6133 ("openssh" ,openssh)
6134 ("polkit" ,polkit)
6135 ("udisks" ,udisks)))
6136 (home-page "https://wiki.gnome.org/gvfs/")
6137 (synopsis "Userspace virtual file system for GIO")
6138 (description
6139 "GVFS is a userspace virtual file system designed to work with the I/O
6140 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6141 to all applications using the GIO API. It also supports exposing the GVFS
6142 mounts to non-GIO applications using FUSE.
6143
6144 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6145 DAV, and others.")
6146 (license license:lgpl2.0+)))
6147
6148 (define-public gusb
6149 (package
6150 (name "gusb")
6151 (version "0.3.0")
6152 (source (origin
6153 (method git-fetch)
6154 (uri (git-reference
6155 (url "https://github.com/hughsie/libgusb")
6156 (commit version)))
6157 (file-name (git-file-name name version))
6158 (sha256
6159 (base32
6160 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
6161 (build-system meson-build-system)
6162 (native-inputs
6163 `(("gobject-introspection" ,gobject-introspection)
6164 ("pkg-config" ,pkg-config)
6165 ("vala" ,vala)
6166 ("gtk-doc" ,gtk-doc)))
6167 (propagated-inputs
6168 ;; Both of these are required by gusb.pc.
6169 `(("glib" ,glib)
6170 ("libusb" ,libusb)))
6171 (arguments
6172 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6173 (home-page "https://github.com/hughsie/libgusb")
6174 (synopsis "GLib binding for libusb1")
6175 (description
6176 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6177 asynchronous control, bulk and interrupt transfers with proper cancellation
6178 and integration into a mainloop. This makes it easy to integrate low level
6179 USB transfers with your high-level application or system daemon.")
6180 (license license:lgpl2.1+)))
6181
6182 (define-public simple-scan
6183 (package
6184 (name "simple-scan")
6185 (version "3.36.3")
6186 (source
6187 (origin
6188 (method url-fetch)
6189 (uri (string-append "mirror://gnome/sources/simple-scan/"
6190 (version-major+minor version) "/"
6191 "simple-scan-" version ".tar.xz"))
6192 (sha256
6193 (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
6194 (build-system meson-build-system)
6195 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6196 (arguments
6197 '(#:glib-or-gtk? #t))
6198 (inputs
6199 `(("gtk" ,gtk+)
6200 ("zlib" ,zlib)
6201 ("cairo" ,cairo)
6202 ("colord" ,colord)
6203 ("gdk-pixbuf" ,gdk-pixbuf)
6204 ("gusb" ,gusb)
6205 ("libsane" ,sane-backends)))
6206 (native-inputs
6207 `(("gettext" ,gettext-minimal)
6208 ("itstool" ,itstool)
6209 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6210 ("pkg-config" ,pkg-config)
6211 ("vala" ,vala)
6212 ("xmllint" ,libxml2)))
6213 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6214 (synopsis "Document and image scanner")
6215 (description
6216 "Document Scanner is an easy-to-use application that lets you connect your
6217 scanner and quickly capture images and documents in an appropriate format. It
6218 supports any scanner for which a suitable SANE driver is available, which is
6219 almost all of them.")
6220 (license license:gpl3+)))
6221
6222 (define-public eolie
6223 (package
6224 (name "eolie")
6225 (version "0.9.98.1")
6226 (source (origin
6227 (method url-fetch)
6228 (uri (string-append "https://adishatz.org/eolie/eolie-"
6229 version ".tar.xz"))
6230 (sha256
6231 (base32
6232 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
6233 (build-system meson-build-system)
6234 (arguments
6235 `(#:glib-or-gtk? #t
6236 #:phases
6237 (modify-phases %standard-phases
6238 (add-after 'unpack 'skip-gtk-update-icon-cache
6239 ;; Don't create 'icon-theme.cache'.
6240 (lambda _
6241 (substitute* "meson_post_install.py"
6242 (("gtk-update-icon-cache") "true"))
6243 #t))
6244 (add-after 'wrap 'wrap-more
6245 (lambda* (#:key inputs outputs #:allow-other-keys)
6246 (let* ((out (assoc-ref outputs "out"))
6247 ;; These libraries must be on LD_LIBRARY_PATH.
6248 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6249 "atk" "gtk+" "gsettings-desktop-schemas"
6250 "gobject-introspection"))
6251 (path (string-join
6252 (map (lambda (lib)
6253 (string-append (assoc-ref inputs lib) "/lib"))
6254 libs)
6255 ":")))
6256 (wrap-program (string-append out "/bin/eolie")
6257 `("LD_LIBRARY_PATH" ":" prefix (,path))
6258 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6259 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6260 #t)))))
6261 (native-inputs
6262 `(("intltool" ,intltool)
6263 ("itstool" ,itstool)
6264 ("pkg-config" ,pkg-config)
6265 ("python" ,python)
6266 ("glib:bin" ,glib "bin")))
6267 (inputs
6268 `(("gobject-introspection" ,gobject-introspection)
6269 ("glib-networking" ,glib-networking)
6270 ("cairo" ,cairo)
6271 ("gtk+" ,gtk+)
6272 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6273 ("python" ,python-wrapper)
6274 ("python-dateutil" ,python-dateutil)
6275 ("python-pyfxa" ,python-pyfxa)
6276 ("python-pygobject" ,python-pygobject)
6277 ("python-pycairo" ,python-pycairo)
6278 ("python-pycrypto" ,python-pycrypto)
6279 ("libsecret" ,libsecret)
6280 ("gtkspell3" ,gtkspell3)
6281 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6282 ("webkitgtk" ,webkitgtk)))
6283 (home-page "https://wiki.gnome.org/Apps/Eolie")
6284 (synopsis "Web browser for GNOME")
6285 (description
6286 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6287 a secret password store, an adblocker, and a modern UI.")
6288 (license license:gpl3+)))
6289
6290 (define-public epiphany
6291 (package
6292 (name "epiphany")
6293 (version "3.34.4")
6294 (source (origin
6295 (method url-fetch)
6296 (uri (string-append "mirror://gnome/sources/epiphany/"
6297 (version-major+minor version) "/"
6298 "epiphany-" version ".tar.xz"))
6299 (sha256
6300 (base32
6301 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6302
6303 (build-system meson-build-system)
6304 (arguments
6305 '(#:glib-or-gtk? #t
6306 #:phases
6307 (modify-phases %standard-phases
6308 (add-after 'unpack 'skip-gtk-update-icon-cache
6309 ;; Don't create 'icon-theme.cache'.
6310 (lambda _
6311 (substitute* "post_install.py"
6312 (("gtk-update-icon-cache") "true"))
6313 #t))
6314 (add-after 'unpack 'disable-failing-tests
6315 (lambda _
6316 (substitute* "tests/meson.build"
6317 ;; embed_shell fails, because webkitgtk apparently no longer supports
6318 ;; overriding the ftp schema
6319 ;; web_app_utils fails due to missing network access
6320 (("(embed_shell|web_app_utils)_test,")
6321 "find_program('sh'), args: ['-c', 'exit 77'],"))
6322 #t))
6323 (add-before 'check 'pre-check
6324 (lambda _
6325 ;; Tests require a running X server.
6326 (system "Xvfb :1 &")
6327 (setenv "DISPLAY" ":1")
6328 #t)))
6329 #:configure-flags
6330 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6331 (list (string-append "-Dc_link_args=-Wl,-rpath="
6332 (assoc-ref %outputs "out") "/lib/epiphany"))))
6333 (propagated-inputs
6334 `(("dconf" ,dconf)))
6335 (native-inputs
6336 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6337 ("glib:bin" ,glib "bin") ; for glib-mkenums
6338 ("intltool" ,intltool)
6339 ("itstool" ,itstool)
6340 ("pkg-config" ,pkg-config)
6341 ("xmllint" ,libxml2)
6342 ("xorg-server" ,xorg-server-for-tests)))
6343 (inputs
6344 `(("avahi" ,avahi)
6345 ("gcr" ,gcr)
6346 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6347 ("glib-networking" ,glib-networking)
6348 ("gnome-desktop" ,gnome-desktop)
6349 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6350 ("json-glib" ,json-glib)
6351 ("iso-codes" ,iso-codes)
6352 ("libdazzle" ,libdazzle)
6353 ("libnotify" ,libnotify)
6354 ("libsecret" ,libsecret)
6355 ("libxslt" ,libxslt)
6356 ("nettle" ,nettle) ; for hogweed
6357 ("sqlite" ,sqlite)
6358 ("webkitgtk" ,webkitgtk)))
6359 (home-page "https://wiki.gnome.org/Apps/Web")
6360 (synopsis "GNOME web browser")
6361 (description
6362 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6363 principles are simplicity and standards compliance.")
6364 (license license:gpl2+)))
6365
6366 (define-public d-feet
6367 (package
6368 (name "d-feet")
6369 (version "0.3.14")
6370 (source (origin
6371 (method url-fetch)
6372 (uri (string-append "mirror://gnome/sources/" name "/"
6373 (version-major+minor version) "/"
6374 name "-" version ".tar.xz"))
6375 (sha256
6376 (base32
6377 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6378 (build-system glib-or-gtk-build-system)
6379 (arguments
6380 '(#:out-of-source? #f ; tests need to run in the source directory.
6381 #:phases
6382 (modify-phases %standard-phases
6383 (add-before
6384 'check 'pre-check
6385 (lambda _
6386 ;; The test suite requires a running X server.
6387 (system "Xvfb :1 &")
6388 (setenv "DISPLAY" ":1")
6389 ;; Don't fail on missing '/etc/machine-id'.
6390 (setenv "DBUS_FATAL_WARNINGS" "0")
6391 ;; tests.py and window.py don't meet E402:
6392 ;; E402 module level import not at top of file
6393 (substitute* "src/tests/Makefile"
6394 (("--ignore=E123") "--ignore=E123,E402"))
6395 #t))
6396 (add-after
6397 'install 'wrap-program
6398 (lambda* (#:key outputs #:allow-other-keys)
6399 (let ((prog (string-append (assoc-ref outputs "out")
6400 "/bin/d-feet")))
6401 (wrap-program prog
6402 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6403 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6404 #t))))))
6405 (native-inputs
6406 `(("intltool" ,intltool)
6407 ("itstool" ,itstool)
6408 ("pkg-config" ,pkg-config)
6409 ("python-pep8" ,python-pep8)
6410 ("xmllint" ,libxml2)
6411 ("xorg-server" ,xorg-server-for-tests)))
6412 (inputs
6413 `(("gobject-introspection" ,gobject-introspection)
6414 ("gtk+" ,gtk+)
6415 ("python" ,python-wrapper)
6416 ("hicolor-icon-theme" ,hicolor-icon-theme)
6417 ("python-pygobject" ,python-pygobject)))
6418 (home-page "https://wiki.gnome.org/Apps/DFeet")
6419 (synopsis "D-Bus debugger")
6420 (description
6421 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6422 of running programs and invoke methods on those interfaces.")
6423 (license license:gpl2+)))
6424
6425 (define-public yelp-xsl
6426 (package
6427 (name "yelp-xsl")
6428 (version "3.34.2")
6429 (source (origin
6430 (method url-fetch)
6431 (uri (string-append "mirror://gnome/sources/" name "/"
6432 (version-major+minor version) "/"
6433 name "-" version ".tar.xz"))
6434 (sha256
6435 (base32
6436 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6437 (build-system gnu-build-system)
6438 (native-inputs
6439 `(("gettext-minimal" ,gettext-minimal)
6440 ("itstool" ,itstool)
6441 ("xmllint" ,libxml2)))
6442 (home-page "https://wiki.gnome.org/Apps/Yelp")
6443 (synopsis "XSL stylesheets for Yelp")
6444 (description
6445 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
6446 to format Docbook and Mallard documents.")
6447 (license license:gpl2+)))
6448
6449 (define-public yelp
6450 (package
6451 (name "yelp")
6452 (version "3.32.2")
6453 (source (origin
6454 (method url-fetch)
6455 (uri (string-append "mirror://gnome/sources/" name "/"
6456 (version-major+minor version) "/"
6457 name "-" version ".tar.xz"))
6458 (sha256
6459 (base32
6460 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6461 (build-system glib-or-gtk-build-system)
6462 (native-inputs
6463 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6464 ("intltool" ,intltool)
6465 ("itstool" ,itstool)
6466 ("pkg-config" ,pkg-config)))
6467 (propagated-inputs
6468 `(("dconf" ,dconf)))
6469 (inputs
6470 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6471 ("libxslt" ,libxslt)
6472 ("sqlite" ,sqlite)
6473 ("webkitgtk" ,webkitgtk)
6474 ("yelp-xsl" ,yelp-xsl)))
6475 (home-page "https://wiki.gnome.org/Apps/Yelp")
6476 (synopsis "GNOME help browser")
6477 (description
6478 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6479 man, info, and HTML documents. It can locate documents according to the
6480 freedesktop.org help system specification.")
6481 (license license:gpl2+)))
6482
6483 (define-public yelp-tools
6484 (package
6485 (name "yelp-tools")
6486 (version "3.32.2")
6487 (source (origin
6488 (method url-fetch)
6489 (uri (string-append "mirror://gnome/sources/" name "/"
6490 (version-major+minor version) "/"
6491 name "-" version ".tar.xz"))
6492 (sha256
6493 (base32
6494 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6495 (build-system gnu-build-system)
6496 (native-inputs
6497 `(("pkg-config" ,pkg-config)))
6498 (propagated-inputs
6499 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6500 `(("itstool" ,itstool)
6501 ("xmllint" ,libxml2)
6502 ("xsltproc" ,libxslt)))
6503 (inputs
6504 `(("yelp-xsl" ,yelp-xsl)))
6505 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6506 (synopsis "Yelp documentation tools")
6507 (description
6508 "Yelp-tools is a collection of scripts and build utilities to help create,
6509 manage, and publish documentation for Yelp and the web. Most of the heavy
6510 lifting is done by packages like yelp-xsl and itstool. This package just
6511 wraps things up in a developer-friendly way.")
6512 (license license:gpl2+)))
6513
6514 (define-public libgee
6515 (package
6516 (name "libgee")
6517 (version "0.20.3")
6518 (source (origin
6519 (method url-fetch)
6520 (uri (string-append "mirror://gnome/sources/libgee/"
6521 (version-major+minor version) "/"
6522 "libgee-" version ".tar.xz"))
6523 (sha256
6524 (base32
6525 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6526 (build-system gnu-build-system)
6527 (arguments
6528 `(#:phases
6529 (modify-phases %standard-phases
6530 (add-after 'unpack 'fix-introspection-install-dir
6531 (lambda* (#:key outputs #:allow-other-keys)
6532 (let ((out (assoc-ref outputs "out")))
6533 (substitute* "gee/Makefile.in"
6534 (("@INTROSPECTION_GIRDIR@")
6535 (string-append out "/share/gir-1.0/"))
6536 (("@INTROSPECTION_TYPELIBDIR@")
6537 (string-append out "/lib/girepository-1.0/")))))))))
6538 (native-inputs
6539 `(("glib" ,glib "bin")
6540 ("pkg-config" ,pkg-config)))
6541 (inputs
6542 `(("glib" ,glib)
6543 ("gobject-introspection" ,gobject-introspection)))
6544 (home-page "https://wiki.gnome.org/Projects/Libgee")
6545 (synopsis "GObject collection library")
6546 (description
6547 "Libgee is a utility library providing GObject-based interfaces and
6548 classes for commonly used data structures.")
6549 (license license:lgpl2.1+)))
6550
6551 (define-public gexiv2
6552 (package
6553 (name "gexiv2")
6554 (version "0.12.1")
6555 (source (origin
6556 (method url-fetch)
6557 (uri (string-append "mirror://gnome/sources/" name "/"
6558 (version-major+minor version) "/"
6559 name "-" version ".tar.xz"))
6560 (sha256
6561 (base32
6562 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
6563 (build-system meson-build-system)
6564 (native-inputs
6565 `(("gcr" ,gcr)
6566 ("glib" ,glib "bin")
6567 ("pkg-config" ,pkg-config)
6568 ("vala" ,vala)))
6569 (propagated-inputs
6570 ;; Listed in "Requires" section of gexiv2.pc
6571 `(("exiv2" ,exiv2)))
6572 (inputs
6573 `(("glib" ,glib)
6574 ("gobject-introspection" ,gobject-introspection)))
6575 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6576 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6577 (description
6578 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6579 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6580 metadata in photo and video files of various formats.")
6581 (license license:gpl2+)))
6582
6583 (define-public shotwell
6584 (package
6585 (name "shotwell")
6586 (version "0.30.9")
6587 (source (origin
6588 (method url-fetch)
6589 (uri (string-append "mirror://gnome/sources/shotwell/"
6590 (version-major+minor version) "/"
6591 "shotwell-" version ".tar.xz"))
6592 (sha256
6593 (base32
6594 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
6595 (build-system meson-build-system)
6596 (arguments
6597 '(#:glib-or-gtk? #t
6598 #:phases
6599 (modify-phases %standard-phases
6600 (add-after 'unpack 'skip-gtk-update-icon-cache
6601 (lambda _
6602 (substitute* "build-aux/meson/postinstall.py"
6603 (("gtk-update-icon-cache") (which "true"))
6604 (("update-desktop-database") (which "true")))
6605 #t)))))
6606 (propagated-inputs
6607 `(("dconf" ,dconf)))
6608 (native-inputs
6609 `(("gettext" ,gettext-minimal)
6610 ("glib:bin" ,glib "bin")
6611 ("itstool" ,itstool)
6612 ("pkg-config" ,pkg-config)
6613 ("vala" ,vala)))
6614 (inputs
6615 `(("gcr" ,gcr)
6616 ("gexiv2" ,gexiv2)
6617 ("gst-plugins-base" ,gst-plugins-base)
6618 ("gstreamer" ,gstreamer)
6619 ("json-glib" ,json-glib)
6620 ("libgdata" ,libgdata)
6621 ("libgee" ,libgee)
6622 ("libgphoto2" ,libgphoto2)
6623 ("libgudev" ,libgudev)
6624 ("libraw" ,libraw)
6625 ("libsoup" ,libsoup)
6626 ("libxml2" ,libxml2)
6627 ("sqlite" ,sqlite)
6628 ("webkitgtk" ,webkitgtk)))
6629 (home-page "https://wiki.gnome.org/Apps/Shotwell")
6630 (synopsis "Photo manager for GNOME 3")
6631 (description
6632 "Shotwell is a digital photo manager designed for the GNOME desktop
6633 environment. It allows you to import photos from disk or camera, organize
6634 them by keywords and events, view them in full-window or fullscreen mode, and
6635 share them with others via social networking and more.")
6636 (license license:lgpl2.1+)))
6637
6638 (define-public file-roller
6639 (package
6640 (name "file-roller")
6641 (version "3.32.3")
6642 (source (origin
6643 (method url-fetch)
6644 (uri (string-append "mirror://gnome/sources/file-roller/"
6645 (version-major+minor version) "/"
6646 "file-roller-" version ".tar.xz"))
6647 (sha256
6648 (base32
6649 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
6650 (build-system meson-build-system)
6651 (native-inputs
6652 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6653 ("intltool" ,intltool)
6654 ("itstool" ,itstool)
6655 ("pkg-config" ,pkg-config)
6656 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6657 ("glib:bin" ,glib "bin")))
6658 ;; TODO: Add libnautilus.
6659 (inputs
6660 `(("gtk+" ,gtk+)
6661 ("gdk-pixbuf" ,gdk-pixbuf)
6662 ("json-glib" ,json-glib)
6663 ("libarchive" ,libarchive)
6664 ("libnotify" ,libnotify)
6665 ("nettle" ,nettle)
6666 ("libxml2" ,libxml2)))
6667 (synopsis "Graphical archive manager for GNOME")
6668 (description "File Roller is an archive manager for the GNOME desktop
6669 environment that allows users to view, unpack, and create compressed archives
6670 such as gzip tarballs.")
6671 (home-page "http://fileroller.sourceforge.net/")
6672 (license license:gpl2+)))
6673
6674 (define-public gnome-session
6675 (package
6676 (name "gnome-session")
6677 (version "3.34.2")
6678 (source (origin
6679 (method url-fetch)
6680 (uri (string-append "mirror://gnome/sources/" name "/"
6681 (version-major+minor version) "/"
6682 name "-" version ".tar.xz"))
6683 (sha256
6684 (base32
6685 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
6686 (arguments
6687 '(#:glib-or-gtk? #t
6688 #:phases
6689 (modify-phases %standard-phases
6690 (add-before 'configure 'pre-configure
6691 (lambda* (#:key outputs #:allow-other-keys)
6692 ;; Use elogind instead of systemd.
6693 (substitute* "meson.build"
6694 (("libsystemd-login") "libelogind")
6695 (("and libsystemd_daemon_dep.found.*") ","))
6696 (substitute* "gnome-session/gsm-systemd.c"
6697 (("#include <systemd/sd-login.h>")
6698 "#include <elogind/sd-login.h>"))
6699 ;; Remove uses of the systemd daemon.
6700 (substitute* "gnome-session/gsm-autostart-app.c"
6701 (("#ifdef HAVE_SYSTEMD") "#if 0"))
6702 #t))
6703 (add-after 'install 'wrap-gnome-session
6704 (lambda* (#:key inputs outputs #:allow-other-keys)
6705 ;; Make sure 'gnome-session' finds the 'gsettings' program.
6706 (let ((glib (assoc-ref inputs "glib:bin"))
6707 (out (assoc-ref outputs "out")))
6708 (wrap-program (string-append out "/bin/gnome-session")
6709 `("PATH" ":" prefix (,(string-append glib "/bin"))))
6710 #t))))
6711
6712 #:configure-flags
6713 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
6714 "-Dman=false" ; FIXME: disabled because of docbook validation error
6715 "-Dsystemd_journal=false")))
6716 (build-system meson-build-system)
6717 (native-inputs
6718 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6719 ("pkg-config" ,pkg-config)
6720 ("intltool" ,intltool)
6721 ("xsltproc" ,libxslt)
6722 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
6723 ("docbook-xsl" ,docbook-xsl)
6724 ("docbook-xml" ,docbook-xml)
6725 ("xmlto" ,xmlto)))
6726 (inputs
6727 `(("elogind" ,elogind)
6728 ("gnome-desktop" ,gnome-desktop)
6729 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6730 ("gtk+" ,gtk+)
6731 ("json-glib" ,json-glib)
6732 ("libsm" ,libsm)
6733 ("libxcomposite" ,libxcomposite)
6734 ("libxtst" ,libxtst)
6735 ("mesa" ,mesa)
6736 ("upower" ,upower)
6737 ("xtrans" ,xtrans)))
6738 (synopsis "Session manager for GNOME")
6739 (description
6740 "This package contains the GNOME session manager, as well as a
6741 configuration program to choose applications starting on login.")
6742 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
6743 (license license:gpl2+)))
6744
6745 (define-public gjs
6746 (package
6747 (name "gjs")
6748 (version "1.58.3")
6749 (source (origin
6750 (method url-fetch)
6751 (uri (string-append "mirror://gnome/sources/" name "/"
6752 (version-major+minor version) "/"
6753 name "-" version ".tar.xz"))
6754 (sha256
6755 (base32
6756 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
6757 (build-system gnu-build-system)
6758 (arguments
6759 '(#:phases
6760 (modify-phases %standard-phases
6761 (add-before
6762 'check 'pre-check
6763 (lambda _
6764 ;; The test suite requires a running X server.
6765 (system "Xvfb :1 &")
6766 (setenv "DISPLAY" ":1")
6767
6768 ;; For the missing /etc/machine-id.
6769 (setenv "DBUS_FATAL_WARNINGS" "0")
6770
6771 ;; Our mozjs-38 package does not compile the required Intl API
6772 ;; support for these failing tests.
6773 (substitute* "installed-tests/js/testLocale.js"
6774 ((".*toBeDefined.*") "")
6775 ((".*expect\\(datestr\\).*") ""))
6776 (substitute* "installed-tests/scripts/testCommandLine.sh"
6777 (("Valentín") "")
6778 (("☭") ""))
6779 #t)))))
6780 (native-inputs
6781 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
6782 ("pkg-config" ,pkg-config)
6783 ("xmllint" ,libxml2)
6784 ;; For testing
6785 ("dbus-launch" ,dbus)
6786 ("dconf" ,dconf) ; required to properly store settings
6787 ("uuidgen" ,util-linux)
6788 ("xvfb" ,xorg-server-for-tests)))
6789 (propagated-inputs
6790 ;; These are all in the Requires.private field of gjs-1.0.pc.
6791 `(("cairo" ,cairo)
6792 ("gobject-introspection" ,gobject-introspection)
6793 ("mozjs" ,mozjs-60)))
6794 (inputs
6795 `(("gtk+" ,gtk+)
6796 ("readline" ,readline)))
6797 (synopsis "Javascript bindings for GNOME")
6798 (home-page "https://live.gnome.org/Gjs")
6799 (description
6800 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6801 javascript engine and the GObject introspection framework.")
6802 (license license:gpl2+)))
6803
6804 (define-public gedit
6805 (package
6806 (name "gedit")
6807 (version "3.34.1")
6808 (source (origin
6809 (method url-fetch)
6810 (uri (string-append "mirror://gnome/sources/" name "/"
6811 (version-major+minor version) "/"
6812 name "-" version ".tar.xz"))
6813 (sha256
6814 (base32
6815 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
6816 (build-system meson-build-system)
6817 (arguments
6818 `(#:glib-or-gtk? #t
6819 #:configure-flags
6820 ;; Otherwise, the RUNPATH will lack the final path component.
6821 (list (string-append "-Dc_link_args=-Wl,-rpath="
6822 (assoc-ref %outputs "out") "/lib/gedit"))
6823
6824 ;; XXX: Generated .h files are sometimes used before being built.
6825 #:parallel-build? #f
6826
6827 #:phases
6828 (modify-phases %standard-phases
6829 (add-after 'unpack 'skip-gtk-update-icon-cache
6830 ;; Don't create 'icon-theme.cache'.
6831 (lambda _
6832 (substitute* "build-aux/meson/post_install.py"
6833 (("gtk-update-icon-cache") (which "true")))
6834 #t))
6835 (add-after 'unpack 'patch-libgd-fetch
6836 (lambda* (#:key inputs #:allow-other-keys)
6837 (let ((libgd (assoc-ref inputs "libgd")))
6838 ;; Calling git is unnecessary because libgd is fetched as a
6839 ;; native input to this package.
6840 (substitute* "meson.build"
6841 ((".*git.*") ""))
6842 (copy-recursively libgd "subprojects/libgd")
6843 #t)))
6844 (add-after 'install 'wrap-gedit
6845 (lambda* (#:key inputs outputs #:allow-other-keys)
6846 (let ((out (assoc-ref outputs "out"))
6847 (gtksourceview (assoc-ref inputs "gtksourceview"))
6848 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6849 (python-path (getenv "PYTHONPATH")))
6850 (wrap-program (string-append out "/bin/gedit")
6851 ;; For plugins.
6852 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6853 `("PYTHONPATH" ":" prefix (,python-path))
6854 ;; For language-specs.
6855 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6856 "/share")))))
6857 #t)))))
6858 (propagated-inputs
6859 `(("dconf" ,dconf)))
6860 (native-inputs
6861 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6862 ("intltool" ,intltool)
6863 ("itstool" ,itstool)
6864 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6865 ("gobject-introspection" ,gobject-introspection)
6866 ("libgd"
6867 ,(origin
6868 (method git-fetch)
6869 (uri (git-reference
6870 (url "https://gitlab.gnome.org/GNOME/libgd")
6871 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6872 (file-name (git-file-name "libgd" version))
6873 (sha256
6874 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6875 ("pkg-config" ,pkg-config)))
6876 (inputs
6877 `(("glib" ,glib)
6878 ("gspell" ,gspell)
6879 ("gtk+" ,gtk+)
6880 ("gtksourceview" ,gtksourceview)
6881 ("libpeas" ,libpeas)
6882 ("libxml2" ,libxml2)
6883 ("iso-codes" ,iso-codes)
6884 ("python-pygobject" ,python-pygobject)
6885 ("python" ,python)
6886 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6887 ("libx11" ,libx11)
6888 ("vala" ,vala)
6889 ("adwaita-icon-theme" ,adwaita-icon-theme)
6890 ("libsoup" ,libsoup)
6891 ("gnome-desktop" ,gnome-desktop)))
6892 (home-page "https://wiki.gnome.org/Apps/Gedit")
6893 (synopsis "GNOME text editor")
6894 (description "While aiming at simplicity and ease of use, gedit is a
6895 powerful general purpose text editor.")
6896 (license license:gpl2+)))
6897
6898 (define-public zenity
6899 (package
6900 (name "zenity")
6901 (version "3.32.0")
6902 (source (origin
6903 (method url-fetch)
6904 (uri (string-append "mirror://gnome/sources/zenity/"
6905 (version-major+minor version) "/"
6906 "zenity-" version ".tar.xz"))
6907 (sha256
6908 (base32
6909 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6910 (build-system gnu-build-system)
6911 (native-inputs
6912 `(("gettext" ,gettext-minimal)
6913 ("itstool" ,itstool)
6914 ("pkg-config" ,pkg-config)))
6915 (inputs
6916 `(("libnotify" ,libnotify)
6917 ("webkitgtk" ,webkitgtk)))
6918 (synopsis "Display graphical dialog boxes from shell scripts")
6919 (home-page "https://www.gnome.org")
6920 (description
6921 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6922 to display dialog boxes from the commandline and shell scripts.")
6923 (license license:lgpl2.0+)))
6924
6925 (define-public mutter
6926 (package
6927 (name "mutter")
6928 (version "3.34.2")
6929 (source (origin
6930 (method url-fetch)
6931 (uri (string-append "mirror://gnome/sources/" name "/"
6932 (version-major+minor version) "/"
6933 name "-" version ".tar.xz"))
6934 (sha256
6935 (base32
6936 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
6937 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6938 ;; versions of cogl and clutter. As a result, many of the inputs,
6939 ;; propagated-inputs, and configure flags used in cogl and clutter are
6940 ;; needed here as well.
6941 (build-system meson-build-system)
6942 (arguments
6943 '(;; XXX: All mutter tests fail with the following error:
6944 ;; Settings schema 'org.gnome.mutter' is not installed
6945 #:tests? #f
6946 #:glib-or-gtk? #t
6947 #:configure-flags
6948 ;; TODO: Enable profiler when Sysprof is packaged.
6949 (list "-Dprofiler=false"
6950 ;; Otherwise, the RUNPATH will lack the final path component.
6951 (string-append "-Dc_link_args=-Wl,-rpath="
6952 (assoc-ref %outputs "out") "/lib:"
6953 (assoc-ref %outputs "out") "/lib/mutter-5")
6954
6955 ;; The following flags are needed for the bundled clutter
6956 (string-append "-Dxwayland_path="
6957 (assoc-ref %build-inputs "xorg-server-xwayland")
6958 "/bin/Xwayland")
6959
6960 ;; the remaining flags are needed for the bundled cogl
6961 (string-append "-Dopengl_libname="
6962 (assoc-ref %build-inputs "mesa")
6963 "/lib/libGL.so"))
6964 #:phases (modify-phases %standard-phases
6965 (add-after 'unpack 'fix-build-with-mesa-20
6966 (lambda _
6967 ;; Mimic upstream commit a444a4c5f58ea516ad for
6968 ;; compatibility with Mesa 20. Remove for 3.36.
6969 (substitute* '("src/backends/meta-egl-ext.h"
6970 "src/backends/meta-egl.c"
6971 "src/backends/meta-egl.h")
6972 (("#include <EGL/eglext\\.h>" all)
6973 (string-append all "\n#include <EGL/eglmesaext.h>")))
6974 (substitute* "cogl/cogl/meson.build"
6975 (("#include <EGL/eglext\\.h>" all)
6976 (string-append all "\\n#include <EGL/eglmesaext.h>")))
6977 #t)))))
6978 (native-inputs
6979 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6980 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6981 ("gobject-introspection" ,gobject-introspection)
6982 ("intltool" ,intltool)
6983 ("pkg-config" ,pkg-config)
6984 ("xorg-server" ,xorg-server-for-tests)
6985 ;; For git build
6986 ("autoconf" ,autoconf)
6987 ("automake" ,automake)
6988 ("libtool" ,libtool)))
6989 (propagated-inputs
6990 `(;; libmutter.pc refers to these:
6991 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6992 ("gtk+" ,gtk+)
6993 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6994 ("atk" ,atk)
6995 ("cairo" ,cairo)
6996 ("gdk-pixbuf" ,gdk-pixbuf)
6997 ("glib" ,glib)
6998 ("json-glib" ,json-glib)
6999 ("libinput" ,libinput)
7000 ("libx11" ,libx11)
7001 ("libxcomposite" ,libxcomposite)
7002 ("libxdamage" ,libxdamage)
7003 ("libxext" ,libxext)
7004 ("libxfixes" ,libxfixes)
7005 ("libxkbcommon" ,libxkbcommon)
7006 ("libxrandr" ,libxrandr)
7007 ("mesa" ,mesa)
7008 ("pango" ,pango)
7009 ("udev" ,eudev)
7010 ("xinput" ,xinput)))
7011 (inputs
7012 `(("elogind" ,elogind)
7013 ("gnome-desktop" ,gnome-desktop)
7014 ("gnome-settings-daemon" ,gnome-settings-daemon)
7015 ("libcanberra-gtk" ,libcanberra)
7016 ("libgudev" ,libgudev)
7017 ("libice" ,libice)
7018 ("libsm" ,libsm)
7019 ("libwacom" ,libwacom)
7020 ("libxkbfile" ,libxkbfile)
7021 ("libxrandr" ,libxrandr)
7022 ("libxtst" ,libxtst)
7023 ("pipewire" ,pipewire)
7024 ("startup-notification" ,startup-notification)
7025 ("upower-glib" ,upower)
7026 ("xkeyboard-config" ,xkeyboard-config)
7027 ("xorg-server-xwayland" ,xorg-server-xwayland)
7028 ("zenity" ,zenity)))
7029 (synopsis "Window and compositing manager")
7030 (home-page "https://www.gnome.org")
7031 (description
7032 "Mutter is a window and compositing manager that displays and manages your
7033 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7034 Clutter toolkit with solid window-management logic inherited from the Metacity
7035 window manager.")
7036 (license license:gpl2+)))
7037
7038 (define-public gnome-online-accounts
7039 (package
7040 (name "gnome-online-accounts")
7041 (version "3.36.0")
7042 (source (origin
7043 (method url-fetch)
7044 (uri (string-append "mirror://gnome/sources/" name "/"
7045 (version-major+minor version) "/"
7046 name "-" version ".tar.xz"))
7047 (sha256
7048 (base32
7049 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7050 (outputs '("out" "lib"))
7051 (build-system glib-or-gtk-build-system)
7052 (arguments
7053 `(#:configure-flags
7054 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7055 #:phases
7056 (modify-phases %standard-phases
7057 (add-before 'configure 'patch-libgoa-output
7058 (lambda* (#:key outputs #:allow-other-keys)
7059 (let ((lib (assoc-ref outputs "lib")))
7060 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7061 (("@prefix@") lib)
7062 (("@exec_prefix@") lib)
7063 (("@libdir@") (string-append lib "/lib"))
7064 (("@includedir@") (string-append lib "/include"))
7065 (("@datadir@") (string-append lib "/share")))
7066 ;; Make sure gobject-introspection knows about the output
7067 ;; too (see <https://bugs.gnu.org/36535>).
7068 (setenv "outputs" "out lib")
7069 #t))))))
7070 (native-inputs
7071 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7072 ("gobject-introspection" ,gobject-introspection)
7073 ("intltool" ,intltool)
7074 ("pkg-config" ,pkg-config)
7075 ("vala" ,vala)
7076 ("xsltproc" ,libxslt)))
7077 (propagated-inputs
7078 `(("glib" ,glib) ; required by goa-1.0.pc
7079 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7080 (inputs
7081 `(("docbook-xsl" ,docbook-xsl)
7082 ("json-glib" ,json-glib)
7083 ("libsecret" ,libsecret)
7084 ("rest" ,rest)
7085 ("webkitgtk" ,webkitgtk)))
7086 (synopsis "Single sign-on framework for GNOME")
7087 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7088 (description
7089 "GNOME Online Accounts provides interfaces so that applications and
7090 libraries in GNOME can access the user's online accounts. It has providers for
7091 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7092 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7093 (license license:lgpl2.0+)))
7094
7095 (define-public evolution-data-server
7096 (package
7097 (name "evolution-data-server")
7098 (version "3.34.2")
7099 (source (origin
7100 (method url-fetch)
7101 (uri (string-append "mirror://gnome/sources/" name "/"
7102 (version-major+minor version) "/"
7103 name "-" version ".tar.xz"))
7104 (patches (search-patches "evolution-data-server-locales.patch"
7105 "evolution-data-server-libical-compat.patch"))
7106 (sha256
7107 (base32
7108 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7109 (build-system cmake-build-system)
7110 (arguments
7111 '(#:configure-flags
7112 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7113 (runpaths (map (lambda (s)
7114 (string-append lib "/evolution-data-server/" s))
7115 '("addressbook-backends" "calendar-backends"
7116 "camel-providers" "credential-modules"
7117 "registry-modules"))))
7118 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7119 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7120 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7121 "-DENABLE_VALA_BINDINGS=ON"
7122 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7123 (string-append lib "/evolution-data-server;")
7124 (string-join runpaths ";"))
7125 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7126 #:phases
7127 (modify-phases %standard-phases
7128 (add-after 'unpack 'disable-failing-tests
7129 (lambda _
7130 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7131 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7132 (delete-file-recursively "tests/book-migration")
7133 (substitute* "tests/CMakeLists.txt"
7134 (("add_subdirectory\\(book-migration\\)") ""))
7135 #t))
7136 (add-after 'unpack 'patch-paths
7137 (lambda _
7138 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7139 "tests/libedata-book/data-test-utils.c"
7140 "tests/libedata-book/test-book-cache-utils.c"
7141 "tests/libedata-cal/test-cal-cache-utils.c")
7142 (("/bin/rm") (which "rm")))
7143 #t))
7144 (add-before 'configure 'dont-override-rpath
7145 (lambda _
7146 (substitute* "CMakeLists.txt"
7147 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7148 ;; Remove it so the configure flag is respected.
7149 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7150 #t)))))
7151 (native-inputs
7152 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7153 ("gobject-introspection" ,gobject-introspection)
7154 ("gperf" ,gperf)
7155 ("intltool" ,intltool)
7156 ("pkg-config" ,pkg-config)
7157 ("vala" ,vala)
7158 ("python" ,python-wrapper)))
7159 (propagated-inputs
7160 ;; These are all in the Requires field of .pc files.
7161 `(("gtk+" ,gtk+)
7162 ("libical" ,libical)
7163 ("libsecret" ,libsecret)
7164 ("libsoup" ,libsoup)
7165 ("nss" ,nss)
7166 ("sqlite" ,sqlite)))
7167 (inputs
7168 `(("bdb" ,bdb)
7169 ("gcr" ,gcr)
7170 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7171 ("json-glib" ,json-glib)
7172 ("libcanberra" ,libcanberra)
7173 ("libgweather" ,libgweather)
7174 ("mit-krb5" ,mit-krb5)
7175 ("openldap" ,openldap)
7176 ("webkitgtk" ,webkitgtk)))
7177 (synopsis "Store address books and calendars")
7178 (home-page "https://wiki.gnome.org/Apps/Evolution")
7179 (description
7180 "This package provides a unified backend for programs that work with
7181 contacts, tasks, and calendar information. It was originally developed for
7182 Evolution (hence the name), but is now used by other packages as well.")
7183 (license license:lgpl2.0)))
7184
7185 (define-public caribou
7186 (package
7187 (name "caribou")
7188 (version "0.4.21")
7189 (source (origin
7190 (method url-fetch)
7191 (uri (string-append "mirror://gnome/sources/" name "/"
7192 (version-major+minor version) "/"
7193 name "-" version ".tar.xz"))
7194 (sha256
7195 (base32
7196 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7197 (build-system glib-or-gtk-build-system)
7198 (arguments
7199 '(#:phases
7200 (modify-phases %standard-phases
7201 (add-before
7202 'build 'pre-build
7203 (lambda* (#:key outputs #:allow-other-keys)
7204 (let ((out (assoc-ref outputs "out")))
7205 ;; Use absolute shared library path in Caribou-1.0.typelib.
7206 (substitute* "libcaribou/Makefile"
7207 (("--shared-library=libcaribou.so")
7208 (string-append "--shared-library="
7209 out "/lib/libcaribou.so")))
7210 #t)))
7211 (add-after 'install 'wrap-programs
7212 (lambda* (#:key outputs #:allow-other-keys)
7213 (let* ((out (assoc-ref outputs "out"))
7214 (python-path (getenv "PYTHONPATH"))
7215 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7216 (for-each
7217 (lambda (prog)
7218 (wrap-program prog
7219 `("PYTHONPATH" ":" prefix (,python-path))
7220 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7221 (list (string-append out "/bin/caribou-preferences")
7222 (string-append out "/libexec/antler-keyboard"))))
7223 #t)))))
7224 (native-inputs
7225 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7226 ("gobject-introspection" ,gobject-introspection)
7227 ("intltool" ,intltool)
7228 ("pkg-config" ,pkg-config)
7229 ("python" ,python)
7230 ("vala" ,vala)
7231 ("xsltproc" ,libxslt)))
7232 (propagated-inputs
7233 ;; caribou-1.0.pc refers to all these.
7234 `(("libgee" ,libgee)
7235 ("libxklavier" ,libxklavier)
7236 ("libxtst" ,libxtst)
7237 ("gtk+" ,gtk+)))
7238 (inputs
7239 `(("clutter" ,clutter)
7240 ("dconf" ,dconf)
7241 ("gtk+-2" ,gtk+-2)
7242 ("python-pygobject" ,python-pygobject)))
7243 (synopsis "Text entry and UI navigation application")
7244 (home-page "https://wiki.gnome.org/Projects/Caribou")
7245 (description
7246 "Caribou is an input assistive technology intended for switch and pointer
7247 users.")
7248 (license license:lgpl2.1)))
7249
7250 (define-public network-manager
7251 (package
7252 (name "network-manager")
7253 (version "1.24.0")
7254 (source (origin
7255 (method url-fetch)
7256 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7257 (version-major+minor version) "/"
7258 "NetworkManager-" version ".tar.xz"))
7259 (patches (search-patches "network-manager-plugin-path.patch"))
7260 (sha256
7261 (base32
7262 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7263 (modules '((guix build utils)))
7264 (snippet
7265 '(begin
7266 (substitute* "src/devices/wwan/nm-modem-manager.c"
7267 (("systemd") "elogind"))
7268 #t))))
7269 (build-system meson-build-system)
7270 (outputs '("out"
7271 "doc")) ; 8 MiB of gtk-doc HTML
7272 (arguments
7273 `(#:configure-flags
7274 (let ((out (assoc-ref %outputs "out"))
7275 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7276 "/sbin/dhclient")))
7277 (list
7278 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7279 ;; component.
7280 (string-append "-Dc_link_args=-Wl,-rpath="
7281 out "/lib:"
7282 out "/lib/NetworkManager/" ,version)
7283 "-Dsystemd_journal=false"
7284 "-Dsession_tracking=elogind"
7285 "-Dsuspend_resume=elogind"
7286 "-Dsystemdsystemunitdir=no"
7287 "-Dsession_tracking_consolekit=false"
7288 "-Ddhcpcd=no"
7289 "-Ddhcpcanon=no"
7290 "-Dcrypto=gnutls"
7291 "-Diwd=true"
7292 "-Dlibaudit=yes"
7293 "-Dqt=false"
7294 "-Ddocs=true"
7295 "--sysconfdir=/etc"
7296 "--localstatedir=/var"
7297 (string-append "-Dudev_dir="
7298 out "/lib/udev")
7299 (string-append "-Ddbus_conf_dir="
7300 out "/etc/dbus-1/system.d")
7301
7302 (string-append "-Ddhclient=" dhclient)))
7303 #:phases
7304 (modify-phases %standard-phases
7305 (add-before 'configure 'pre-configure
7306 (lambda _
7307 ;; These tests try to test aspects of network-manager's
7308 ;; functionality within restricted containers, but they don't
7309 ;; cope with being already in the Guix build jail as that jail
7310 ;; lacks some features that they would like to proxy over (like
7311 ;; a /sys mount).
7312 (substitute* "src/platform/tests/meson.build"
7313 ((".*test-address-linux.*") "")
7314 ((".*test-cleanup-linux.*") "")
7315 ((".*test-link-linux.*") "")
7316 ((".*test-route-linux.*") ""))
7317 (substitute* "src/devices/tests/meson.build"
7318 ((".*test-acd.*") "")
7319 ((".*test-lldp.*") ""))
7320 #t))
7321 (add-after 'unpack 'patch-docbook-xml
7322 (lambda* (#:key inputs #:allow-other-keys)
7323 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7324 "/xml/dtd/docbook")))
7325 (substitute* (find-files "." ".*\\.(xsl|xml)")
7326 (("http://.*/docbookx\\.dtd")
7327 (string-append xmldoc "/docbookx.dtd")))
7328 #t)))
7329 (add-before 'check 'pre-check
7330 (lambda _
7331 ;; For the missing /etc/machine-id.
7332 (setenv "DBUS_FATAL_WARNINGS" "0")
7333 #t))
7334 (add-before 'install 'no-polkit-magic
7335 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7336 (lambda _
7337 (setenv "PKEXEC_UID" "something")
7338 #t))
7339 (add-after 'install 'move-doc
7340 (lambda* (#:key outputs #:allow-other-keys)
7341 (let ((out (assoc-ref outputs "out"))
7342 (doc (assoc-ref outputs "doc")))
7343 (mkdir-p (string-append doc "/share"))
7344 (for-each (lambda (directory)
7345 (copy-recursively (string-append out directory)
7346 (string-append doc directory))
7347 (delete-file-recursively
7348 (string-append out directory)))
7349 '("/share/doc" "/share/gtk-doc"))
7350 #t))))))
7351 (propagated-inputs
7352 `(("glib" ,glib)))
7353 (native-inputs
7354 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7355 ("gtk-doc" ,gtk-doc)
7356 ("gobject-introspection" ,gobject-introspection)
7357 ("docbook-xml" ,docbook-xml)
7358 ("docbook-xsl" ,docbook-xsl)
7359 ("intltool" ,intltool)
7360 ("libxslt" ,libxslt)
7361 ("libxml2" ,libxml2)
7362 ("pkg-config" ,pkg-config)
7363 ("vala" ,vala)
7364 ;; For testing.
7365 ("python" ,python-wrapper)
7366 ("python-dbus" ,python-dbus)
7367 ("python-pygobject" ,python-pygobject)))
7368 (inputs
7369 `(("curl" ,curl)
7370 ("cyrus-sasl" ,cyrus-sasl)
7371 ("dbus-glib" ,dbus-glib)
7372 ("dnsmasq" ,dnsmasq)
7373 ("eudev" ,eudev)
7374 ("gnutls" ,gnutls)
7375 ("iptables" ,iptables)
7376 ("isc-dhcp" ,isc-dhcp)
7377 ("iwd" ,iwd) ; wpa_supplicant alternative
7378 ("jansson" ,jansson)
7379 ("libaudit" ,audit)
7380 ("libgcrypt" ,libgcrypt)
7381 ("libgudev" ,libgudev)
7382 ("libndp" ,libndp)
7383 ("libnl" ,libnl)
7384 ("libsoup" ,libsoup)
7385 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7386 ("modem-manager" ,modem-manager)
7387 ("newt" ,newt) ;for the 'nmtui' console interface
7388 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7389 ("polkit" ,polkit)
7390 ("ppp" ,ppp)
7391 ("readline" ,readline)
7392 ("util-linux" ,util-linux)
7393 ("elogind" ,elogind)))
7394 (synopsis "Network connection manager")
7395 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7396 (description
7397 "NetworkManager is a system network service that manages your network
7398 devices and connections, attempting to keep active network connectivity when
7399 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7400 devices, and provides VPN integration with a variety of different VPN
7401 services.")
7402 ;; “This NetworkManager project consists of the daemon, client tools, and
7403 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7404 ;; GPL-2.0+.”
7405 (license (list license:gpl2+
7406 license:lgpl2.1+))
7407 (properties '((upstream-name . "NetworkManager")))))
7408
7409 (define-public network-manager-openvpn
7410 (package
7411 (name "network-manager-openvpn")
7412 (version "1.8.12")
7413 (source (origin
7414 (method url-fetch)
7415 (uri (string-append
7416 "mirror://gnome/sources/NetworkManager-openvpn/"
7417 (version-major+minor version)
7418 "/NetworkManager-openvpn-" version ".tar.xz"))
7419 (sha256
7420 (base32
7421 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7422 (build-system gnu-build-system)
7423 (arguments
7424 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7425 #:phases
7426 (modify-phases %standard-phases
7427 (add-after 'configure 'patch-path
7428 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7429 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7430 "/sbin/openvpn"))
7431 (modprobe (string-append (assoc-ref inputs "kmod")
7432 "/bin/modprobe"))
7433 (pretty-ovpn (string-append "\"" ovpn "\"")))
7434 (for-each
7435 (lambda (file)
7436 (substitute* file
7437 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7438 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7439 (("\"/sbin/openvpn\"") pretty-ovpn)
7440 (("/sbin/modprobe") modprobe)))
7441 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7442 #t)))))
7443 (native-inputs
7444 `(("pkg-config" ,pkg-config)
7445 ("intltool" ,intltool)))
7446 (inputs
7447 `(("gtk+" ,gtk+)
7448 ("kmod" ,kmod)
7449 ("openvpn" ,openvpn)
7450 ("network-manager" ,network-manager)
7451 ("libnma" ,libnma)
7452 ("libsecret" ,libsecret)))
7453 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7454 (synopsis "OpenVPN plug-in for NetworkManager")
7455 (description
7456 "This extension of NetworkManager allows it to take care of connections
7457 to virtual private networks (VPNs) via OpenVPN.")
7458 (license license:gpl2+)
7459 (properties `((upstream-name . "NetworkManager-openvpn")))))
7460
7461 (define-public network-manager-vpnc
7462 (package
7463 (name "network-manager-vpnc")
7464 (version "1.2.6")
7465 (source (origin
7466 (method url-fetch)
7467 (uri (string-append
7468 "mirror://gnome/sources/NetworkManager-vpnc/"
7469 (version-major+minor version)
7470 "/NetworkManager-vpnc-" version ".tar.xz"))
7471 (sha256
7472 (base32
7473 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7474 (build-system gnu-build-system)
7475 (arguments
7476 `(#:configure-flags '("--enable-absolute-paths"
7477 "--localstatedir=/var"
7478 ;; libnm-glib has been removed from network-manager
7479 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7480 "--with-libnm-glib=no")
7481 #:phases
7482 (modify-phases %standard-phases
7483 (add-after 'configure 'patch-path
7484 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7485 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7486 "/sbin/vpnc"))
7487 (modprobe (string-append (assoc-ref inputs "kmod")
7488 "/bin/modprobe"))
7489 (pretty-ovpn (string-append "\"" vpnc "\"")))
7490 (substitute* "src/nm-vpnc-service.c"
7491 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7492 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7493 (("\"/sbin/vpnc\"") pretty-ovpn)
7494 (("/sbin/modprobe") modprobe)))
7495 #t)))))
7496 (native-inputs
7497 `(("pkg-config" ,pkg-config)
7498 ("intltool" ,intltool)))
7499 (inputs
7500 `(("gtk+" ,gtk+)
7501 ("kmod" ,kmod)
7502 ("vpnc" ,vpnc)
7503 ("network-manager" ,network-manager)
7504 ("libnma" ,libnma)
7505 ("libsecret" ,libsecret)))
7506 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7507 (synopsis "VPNC plug-in for NetworkManager")
7508 (description
7509 "Support for configuring virtual private networks based on VPNC.
7510 Compatible with Cisco VPN concentrators configured to use IPsec.")
7511 (license license:gpl2+)
7512 (properties `((upstream-name . "NetworkManager-vpnc")))))
7513
7514 (define-public network-manager-openconnect
7515 (package
7516 (name "network-manager-openconnect")
7517 (version "1.2.6")
7518 (source (origin
7519 (method url-fetch)
7520 (uri (string-append
7521 "mirror://gnome/sources/NetworkManager-openconnect/"
7522 (version-major+minor version)
7523 "/NetworkManager-openconnect-" version ".tar.xz"))
7524 (sha256
7525 (base32
7526 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7527 (build-system gnu-build-system)
7528 (arguments
7529 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7530 #:phases
7531 (modify-phases %standard-phases
7532 (add-after 'configure 'patch-path
7533 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7534 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7535 "/sbin/openconnect"))
7536 (modprobe (string-append (assoc-ref inputs "kmod")
7537 "/bin/modprobe"))
7538 (pretty-ovpn (string-append "\"" openconnect "\"")))
7539 (substitute* "src/nm-openconnect-service.c"
7540 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7541 (("/sbin/modprobe") modprobe)))
7542 #t)))))
7543 (native-inputs
7544 `(("intltool" ,intltool)
7545 ("libnma" ,libnma)
7546 ("pkg-config" ,pkg-config)))
7547 (inputs
7548 `(("gcr" ,gcr)
7549 ("gtk+" ,gtk+)
7550 ("kmod" ,kmod)
7551 ("libsecret" ,libsecret)
7552 ("libxml2" ,libxml2)
7553 ("lz4" ,lz4)
7554 ("network-manager" ,network-manager)
7555 ("openconnect" ,openconnect)))
7556 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7557 (synopsis "OpenConnect plug-in for NetworkManager")
7558 (description
7559 "This extension of NetworkManager allows it to take care of connections
7560 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7561 Cisco's AnyConnect SSL VPN.")
7562 (license license:gpl2+)
7563 (properties `((upstream-name . "NetworkManager-openconnect")
7564
7565 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7566 ;; file refers to account "nm-openconnect". Specify it here
7567 ;; so that 'network-manager-service-type' creates it.
7568 (user-accounts . ("nm-openconnect"))))))
7569
7570 (define-public mobile-broadband-provider-info
7571 (package
7572 (name "mobile-broadband-provider-info")
7573 (version "20190116")
7574 (source (origin
7575 (method url-fetch)
7576 (uri (string-append
7577 "mirror://gnome/sources/"
7578 "mobile-broadband-provider-info/" version "/"
7579 "mobile-broadband-provider-info-" version ".tar.xz"))
7580 (sha256
7581 (base32
7582 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7583 (build-system gnu-build-system)
7584 (arguments
7585 `(#:tests? #f)) ; no tests
7586 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7587 (synopsis "Database of broadband connection configuration")
7588 (description "Database of broadband connection configuration.")
7589 (license license:public-domain)))
7590
7591 (define-public network-manager-applet
7592 (package
7593 (name "network-manager-applet")
7594 (version "1.16.0")
7595 (source (origin
7596 (method url-fetch)
7597 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7598 (version-major+minor version) "/"
7599 "network-manager-applet-" version ".tar.xz"))
7600 (sha256
7601 (base32
7602 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
7603 (build-system meson-build-system)
7604 (arguments
7605 '(#:glib-or-gtk? #t))
7606 (native-inputs
7607 `(("intltool" ,intltool)
7608 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
7609 ("gobject-introspection" ,gobject-introspection)
7610 ("gtk-doc" ,gtk-doc)
7611 ("pkg-config" ,pkg-config)))
7612 (propagated-inputs
7613 ;; libnm-gtk.pc refers to all these.
7614 `(("dbus-glib" ,dbus-glib)
7615 ("gtk+" ,gtk+)
7616 ("network-manager" ,network-manager)
7617 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7618 ("libnma" ,libnma)))
7619 (inputs
7620 `(("gcr" ,gcr)
7621 ("libgudev" ,libgudev)
7622 ("libnotify" ,libnotify)
7623 ("libsecret" ,libsecret)
7624 ("libselinux" ,libselinux)
7625 ("jansson" ,jansson) ; for team support
7626 ("modem-manager" ,modem-manager)))
7627 (synopsis "Applet for managing network connections")
7628 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7629 (description
7630 "This package contains a systray applet for NetworkManager. It displays
7631 the available networks and allows users to easily switch between them.")
7632 (license license:gpl2+)))
7633
7634 (define-public libxml++
7635 (package
7636 (name "libxml++")
7637 (version "3.0.1")
7638 (source (origin
7639 (method url-fetch)
7640 (uri (string-append "mirror://gnome/sources/" name "/"
7641 (version-major+minor version) "/"
7642 name "-" version ".tar.xz"))
7643 (sha256
7644 (base32
7645 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
7646 (build-system gnu-build-system)
7647 ;; libxml++-3.0.pc refers to all these.
7648 (propagated-inputs
7649 `(("libxml2" ,libxml2)
7650 ("glibmm" ,glibmm)))
7651 (native-inputs
7652 `(("perl" ,perl)
7653 ("pkg-config" ,pkg-config)))
7654 (home-page "http://libxmlplusplus.sourceforge.net/")
7655 (synopsis "C++ wrapper for XML parser library libxml2")
7656 (description
7657 "This package provides a C++ wrapper for the XML parser library
7658 libxml2.")
7659 (license license:lgpl2.1+)))
7660
7661 (define-public libxml++-2
7662 (package
7663 (inherit libxml++)
7664 (name "libxml++")
7665 (version "2.40.1")
7666 (source (origin
7667 (method url-fetch)
7668 (uri (string-append "mirror://gnome/sources/" name "/"
7669 (version-major+minor version) "/"
7670 name "-" version ".tar.xz"))
7671 (sha256
7672 (base32
7673 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
7674
7675 (define-public gdm
7676 (package
7677 (name "gdm")
7678 (version "3.34.1")
7679 (source (origin
7680 (method url-fetch)
7681 (uri (string-append "mirror://gnome/sources/" name "/"
7682 (version-major+minor version) "/"
7683 name "-" version ".tar.xz"))
7684 (sha256
7685 (base32
7686 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
7687 (patches (search-patches "gdm-default-session.patch"))))
7688 (build-system glib-or-gtk-build-system)
7689 (arguments
7690 '(#:configure-flags
7691 `("--without-plymouth"
7692 "--disable-systemd-journal"
7693
7694 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
7695 ;; instead of having to replace it (i.e., stopping the mingetty
7696 ;; service for TTY 1 before starting GDM).
7697 "--with-initial-vt=7"
7698
7699 ;; Use '/etc/environment' for locale settings instead of the
7700 ;; systemd-specific '/etc/locale.conf'.
7701 "--with-lang-file=/etc/environment"
7702
7703 ,(string-append "--with-udevdir="
7704 (assoc-ref %outputs "out") "/lib/udev")
7705
7706 "--localstatedir=/var"
7707 ,(string-append "--with-default-path="
7708 (string-join '("/run/setuid-programs"
7709 "/run/current-system/profile/bin"
7710 "/run/current-system/profile/sbin")
7711 ":"))
7712 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
7713 ;; XDG_DATA_DIRS so that it finds its schemas.
7714 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
7715 #:phases
7716 (modify-phases %standard-phases
7717 (add-before
7718 'configure 'pre-configure
7719 (lambda* (#:key inputs outputs #:allow-other-keys)
7720 ;; We don't have <systemd/sd-daemon.h>.
7721 (substitute* '("common/gdm-log.c"
7722 "daemon/gdm-server.c"
7723 "daemon/gdm-session-worker.c"
7724 "daemon/gdm-session-worker-job.c")
7725 (("#include <systemd/sd-daemon\\.h>") ""))
7726 ;; Use elogind for sd-login.
7727 (substitute* '("common/gdm-common.c"
7728 "daemon/gdm-local-display-factory.c"
7729 "daemon/gdm-manager.c"
7730 "libgdm/gdm-user-switching.c")
7731 (("#include <systemd/sd-login\\.h>")
7732 "#include <elogind/sd-login.h>"))
7733 ;; Check for elogind.
7734 (substitute* '("configure")
7735 (("libsystemd")
7736 "libelogind"))
7737 ;; Look for system-installed sessions in
7738 ;; /run/current-system/profile/share.
7739 (substitute* '("libgdm/gdm-sessions.c"
7740 "daemon/gdm-session.c"
7741 "daemon/gdm-display.c"
7742 "daemon/gdm-launch-environment.c")
7743 (("DATADIR \"/x")
7744 "\"/run/current-system/profile/share/x")
7745 (("DATADIR \"/wayland")
7746 "\"/run/current-system/profile/share/wayland")
7747 (("DATADIR \"/gnome")
7748 "\"/run/current-system/profile/share/gnome"))
7749 (let ((propagate '("GDM_CUSTOM_CONF"
7750 "GDM_DBUS_DAEMON"
7751 "GDM_X_SERVER"
7752 "GDM_X_SESSION"
7753 ;; XXX: Remove this once GNOME Shell is
7754 ;; a dependency of GDM.
7755 "XDG_DATA_DIRS")))
7756 (substitute* "daemon/gdm-session.c"
7757 (("set_up_session_environment \\(self\\);")
7758 (apply string-append
7759 "set_up_session_environment (self);\n"
7760 (map (lambda (name)
7761 (string-append
7762 "gdm_session_set_environment_variable "
7763 "(self, \"" name "\","
7764 "g_getenv (\"" name "\"));\n"))
7765 propagate)))))
7766 ;; Find the configuration file using an environment variable.
7767 (substitute* '("common/gdm-settings.c")
7768 (("GDM_CUSTOM_CONF")
7769 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7770 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7771 " : GDM_CUSTOM_CONF)")))
7772 ;; Use service-supplied path to X.
7773 (substitute* '("daemon/gdm-server.c")
7774 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7775 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
7776 (substitute* '("daemon/gdm-wayland-session.c"
7777 "daemon/gdm-x-session.c")
7778 (("\"dbus-daemon\"")
7779 "g_getenv (\"GDM_DBUS_DAEMON\")")
7780 (("X_SERVER")
7781 "g_getenv (\"GDM_X_SERVER\")")
7782 (("GDMCONFDIR \"/Xsession\"")
7783 "g_getenv (\"GDM_X_SESSION\")"))
7784 ;; Use an absolute path for GNOME Session.
7785 (substitute* "daemon/gdm-launch-environment.c"
7786 (("\"gnome-session\"")
7787 (string-append "\"" (assoc-ref inputs "gnome-session")
7788 "/bin/gnome-session\"")))
7789 ;; Do not automatically select the placeholder session.
7790 (substitute* "daemon/gdm-session.c"
7791 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7792 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7793 "(g_strcmp0(search_dirs[i], \""
7794 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7795 "\") == 0 && "
7796 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7797 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
7798 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
7799 #t))
7800 ;; GDM requires that there be at least one desktop entry
7801 ;; file. This phase installs a hidden one that simply
7802 ;; fails. This enables users to use GDM with a
7803 ;; '~/.xsession' script with no other desktop entry files.
7804 ;; See <https://bugs.gnu.org/35068>.
7805 (add-after 'install 'install-placeholder-desktop-entry
7806 (lambda* (#:key inputs outputs #:allow-other-keys)
7807 (let* ((out (assoc-ref outputs "out"))
7808 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7809 (fail (string-append sessions "/fail.desktop")))
7810 (mkdir-p sessions)
7811 (with-output-to-file fail
7812 (lambda ()
7813 (for-each
7814 display
7815 '("[Desktop Entry]\n"
7816 "Encoding=UTF-8\n"
7817 "Type=Application\n"
7818 "Name=Fail\n"
7819 "Comment=This session fails immediately.\n"
7820 "NoDisplay=true\n"
7821 "Exec=false\n"))))
7822 #t)))
7823 ;; GDM needs GNOME Session to run these applications. We link
7824 ;; their autostart files in `share/gdm/greeter/autostart'
7825 ;; because GDM explicitly tells GNOME Session to look there.
7826 ;;
7827 ;; XXX: GNOME Shell should be linked here too, but currently
7828 ;; GNOME Shell depends on GDM.
7829 (add-after 'install 'link-autostart-files
7830 (lambda* (#:key inputs outputs #:allow-other-keys)
7831 (let* ((out (assoc-ref outputs "out"))
7832 (autostart (string-append out "/share/gdm/"
7833 "greeter/autostart"))
7834 (settings (assoc-ref inputs "gnome-settings-daemon")))
7835 (mkdir-p autostart)
7836 (with-directory-excursion autostart
7837 (for-each (lambda (desktop)
7838 (symlink desktop (basename desktop)))
7839 (find-files (string-append settings "/etc/xdg"))))
7840 #t))))))
7841 (native-inputs
7842 `(("dconf" ,dconf)
7843 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7844 ("gobject-introspection" ,gobject-introspection)
7845 ("intltool" ,intltool)
7846 ("itstool" ,itstool)
7847 ("pkg-config" ,pkg-config)
7848 ("xmllint" ,libxml2)))
7849 (inputs
7850 `(("accountsservice" ,accountsservice)
7851 ("check" ,check) ; for testing
7852 ("elogind" ,elogind)
7853 ("gnome-session" ,gnome-session)
7854 ("gnome-settings-daemon" ,gnome-settings-daemon)
7855 ("gtk+" ,gtk+)
7856 ("iso-codes" ,iso-codes)
7857 ("libcanberra" ,libcanberra)
7858 ("linux-pam" ,linux-pam)))
7859 (synopsis "Display manager for GNOME")
7860 (home-page "https://wiki.gnome.org/Projects/GDM/")
7861 (description
7862 "GNOME Display Manager is a system service that is responsible for
7863 providing graphical log-ins and managing local and remote displays.")
7864 (license license:gpl2+)))
7865
7866 (define-public libgtop
7867 (package
7868 (name "libgtop")
7869 (version "2.40.0")
7870 (source (origin
7871 (method url-fetch)
7872 (uri (string-append "mirror://gnome/sources/libgtop/"
7873 (version-major+minor version) "/"
7874 "libgtop-" version ".tar.xz"))
7875 (sha256
7876 (base32
7877 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7878 (build-system gnu-build-system)
7879 (native-inputs
7880 `(("gobject-introspection" ,gobject-introspection)
7881 ("intltool" ,intltool)
7882 ("perl" ,perl)
7883 ("pkg-config" ,pkg-config)))
7884 (propagated-inputs
7885 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7886 (synopsis "Portable system access library")
7887 (home-page "https://www.gnome.org/")
7888 (description
7889 "LibGTop is a library to get system specific data such as CPU and memory
7890 usage and information about running processes.")
7891 (license license:gpl2+)))
7892
7893 (define-public gnome-bluetooth
7894 (package
7895 (name "gnome-bluetooth")
7896 (version "3.34.0")
7897 (source (origin
7898 (method url-fetch)
7899 (uri (string-append "mirror://gnome/sources/" name "/"
7900 (version-major+minor version) "/"
7901 name "-" version ".tar.xz"))
7902 (sha256
7903 (base32
7904 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
7905 (build-system meson-build-system)
7906 (native-inputs
7907 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7908 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7909 ("gobject-introspection" ,gobject-introspection)
7910 ("intltool" ,intltool)
7911 ("pkg-config" ,pkg-config)
7912 ("xmllint" ,libxml2)))
7913 (propagated-inputs
7914 ;; gnome-bluetooth-1.0.pc refers to all these.
7915 `(("glib" ,glib)
7916 ("gtk+" ,gtk+)))
7917 (inputs
7918 `(("eudev" ,eudev)
7919 ("libcanberra" ,libcanberra)
7920 ("libnotify" ,libnotify)))
7921 (synopsis "GNOME Bluetooth subsystem")
7922 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7923 (description
7924 "This package contains tools for managing and manipulating Bluetooth
7925 devices using the GNOME desktop.")
7926 (license license:lgpl2.1+)))
7927
7928 (define-public gnome-control-center
7929 (package
7930 (name "gnome-control-center")
7931 (version "3.34.2")
7932 (source (origin
7933 (method url-fetch)
7934 (uri (string-append "mirror://gnome/sources/" name "/"
7935 (version-major+minor version) "/"
7936 name "-" version ".tar.xz"))
7937 (sha256
7938 (base32
7939 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7940 (build-system meson-build-system)
7941 (arguments
7942 '(#:glib-or-gtk? #t
7943 #:configure-flags
7944 (list "-Dcheese=false"
7945 (string-append "-Dgnome_session_libexecdir="
7946 (assoc-ref %build-inputs "gnome-session")
7947 "/libexec"))
7948 #:phases
7949 (modify-phases %standard-phases
7950 (add-before 'configure 'patch-paths
7951 (lambda* (#:key inputs #:allow-other-keys)
7952 (let ((libc (assoc-ref inputs "libc"))
7953 (tzdata (assoc-ref inputs "tzdata"))
7954 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7955 (nm-applet (assoc-ref inputs "network-manager-applet"))
7956 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7957 (substitute* "panels/datetime/tz.h"
7958 (("/usr/share/zoneinfo/zone.tab")
7959 (string-append tzdata "/share/zoneinfo/zone.tab")))
7960 (substitute* "tests/datetime/test-endianess.c"
7961 (("/usr/share/locale")
7962 (string-append libc "/share/locale")))
7963 (substitute* "panels/region/cc-region-panel.c"
7964 (("\"gkbd-keyboard-display")
7965 (string-append "\"" libgnomekbd
7966 "/bin/gkbd-keyboard-display")))
7967 (substitute* '("panels/network/net-device-wifi.c"
7968 "panels/network/net-device.c"
7969 "panels/network/connection-editor/net-connection-editor.c")
7970 (("\"nm-connection-editor")
7971 (string-append "\"" nm-applet
7972 "/bin/nm-connection-editor")))
7973 (substitute* '("panels/user-accounts/run-passwd.c")
7974 (("/usr/bin/passwd")
7975 "/run/setuid-programs/passwd"))
7976 (substitute* "panels/info/cc-info-overview-panel.c"
7977 (("DATADIR \"/gnome/gnome-version.xml\"")
7978 (string-append "\"" gnome-desktop
7979 "/share/gnome/gnome-version.xml\"")))
7980 #t)))
7981 (add-after 'unpack 'skip-gtk-update-icon-cache
7982 ;; Don't create 'icon-theme.cache'.
7983 (lambda _
7984 (substitute* "build-aux/meson/meson_post_install.py"
7985 (("gtk-update-icon-cache") (which "true")))
7986 #t)))))
7987 (native-inputs
7988 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7989 ("intltool" ,intltool)
7990 ("pkg-config" ,pkg-config)
7991 ("xsltproc" ,libxslt)
7992 ;; For tests
7993 ("hicolor-icon-theme" ,hicolor-icon-theme)
7994 ("python-dbusmock" ,python-dbusmock)
7995 ("xorg-server" ,xorg-server-for-tests)))
7996 (inputs
7997 `(("accountsservice" ,accountsservice)
7998 ("clutter-gtk" ,clutter-gtk)
7999 ("colord-gtk" ,colord-gtk)
8000 ("cups" ,cups)
8001 ("dconf" ,dconf)
8002 ("docbook-xsl" ,docbook-xsl)
8003 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8004 ("gnome-bluetooth" ,gnome-bluetooth)
8005 ("gnome-desktop" ,gnome-desktop)
8006 ("gnome-online-accounts" ,gnome-online-accounts)
8007 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8008 ("gnome-session" ,gnome-session)
8009 ("gnome-settings-daemon" ,gnome-settings-daemon)
8010 ("grilo" ,grilo)
8011 ("gsound" ,gsound)
8012 ("ibus" ,ibus)
8013 ("libcanberra" ,libcanberra)
8014 ("libgnomekbd" ,libgnomekbd)
8015 ("libgudev" ,libgudev)
8016 ("libgtop" ,libgtop)
8017 ("libnma" ,libnma)
8018 ("libpwquality" ,libpwquality)
8019 ("libsecret" ,libsecret)
8020 ("libsoup" ,libsoup)
8021 ("libxml2" ,libxml2)
8022 ("libwacom" ,libwacom)
8023 ("mesa" ,mesa)
8024 ("mit-krb5" ,mit-krb5)
8025 ("modem-manager" ,modem-manager)
8026 ("network-manager-applet" ,network-manager-applet)
8027 ("polkit" ,polkit)
8028 ("pulseaudio" ,pulseaudio)
8029 ("smbclient" ,samba)
8030 ("tzdata" ,tzdata)
8031 ("udisks" ,udisks)
8032 ("upower" ,upower)))
8033 (synopsis "Utilities to configure the GNOME desktop")
8034 (home-page "https://www.gnome.org/")
8035 (description
8036 "This package contains configuration applets for the GNOME desktop,
8037 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8038 properties, sound setup, desktop theme and background, user interface
8039 properties, screen resolution, and other GNOME parameters.")
8040 (license license:gpl2+)))
8041
8042 (define-public gnome-shell
8043 (package
8044 (name "gnome-shell")
8045 (version "3.34.2")
8046 (source (origin
8047 (method url-fetch)
8048 (uri (string-append "mirror://gnome/sources/" name "/"
8049 (version-major+minor version) "/"
8050 name "-" version ".tar.xz"))
8051 (sha256
8052 (base32
8053 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
8054 (patches (search-patches "gnome-shell-theme.patch"
8055 "gnome-shell-disable-test.patch"))
8056 (modules '((guix build utils)))
8057 (snippet
8058 #~(begin
8059 ;; Copy images for use on the GDM log-in screen.
8060 (copy-file #$(file-append %artwork-repository
8061 "/slim/0.x/background.png")
8062 "data/theme/guix-background.png")
8063 (copy-file #$(file-append %artwork-repository
8064 "/logo/Guix-horizontal-white.svg")
8065 "data/theme/guix-logo.svg")
8066 #t))))
8067 (build-system meson-build-system)
8068 (arguments
8069 `(#:glib-or-gtk? #t
8070 #:disallowed-references ((,glib "bin")
8071 ,inkscape ,libxslt
8072 ,ruby-sass)
8073 #:configure-flags
8074 (list "-Dsystemd=false"
8075 ;; Otherwise, the RUNPATH will lack the final path component.
8076 (string-append "-Dc_link_args=-Wl,-rpath="
8077 (assoc-ref %outputs "out")
8078 "/lib/gnome-shell"))
8079
8080 #:modules ((guix build meson-build-system)
8081 (guix build utils)
8082 (srfi srfi-1))
8083
8084 #:phases
8085 (modify-phases %standard-phases
8086 (add-after 'unpack 'fix-keysdir
8087 (lambda* (#:key outputs #:allow-other-keys)
8088 (let* ((out (assoc-ref outputs "out"))
8089 (keysdir (string-append
8090 out "/share/gnome-control-center/keybindings")))
8091 (substitute* "meson.build"
8092 (("keysdir =.*")
8093 (string-append "keysdir = '" keysdir "'\n")))
8094 #t)))
8095 (add-before 'configure 'convert-logo-to-png
8096 (lambda* (#:key inputs #:allow-other-keys)
8097 ;; Convert the logo from SVG to PNG.
8098 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8099 "data/theme/guix-logo.svg")))
8100 (add-before 'configure 'record-absolute-file-names
8101 (lambda* (#:key inputs #:allow-other-keys)
8102 (substitute* "js/misc/ibusManager.js"
8103 (("'ibus-daemon'")
8104 (string-append "'" (assoc-ref inputs "ibus")
8105 "/bin/ibus-daemon'")))
8106 (substitute* "js/ui/status/keyboard.js"
8107 (("'gkbd-keyboard-display'")
8108 (string-append "'" (assoc-ref inputs "libgnomekbd")
8109 "/bin/gkbd-keyboard-display'")))
8110 #t))
8111 (add-before 'check 'pre-check
8112 (lambda* (#:key inputs #:allow-other-keys)
8113 ;; Tests require a running X server.
8114 (system "Xvfb :1 &")
8115 (setenv "DISPLAY" ":1")
8116 #t))
8117 (add-after 'install 'wrap-programs
8118 (lambda* (#:key inputs outputs #:allow-other-keys)
8119 (let ((out (assoc-ref outputs "out"))
8120 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8121 (python-path (getenv "PYTHONPATH")))
8122 (wrap-program (string-append out "/bin/gnome-shell")
8123 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8124 ;; FIXME: gnome-shell loads these libraries with unqualified
8125 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8126 ;; alternative might be to patch gnome-shell.
8127 `("LD_LIBRARY_PATH" ":" prefix
8128 ,(map (lambda (pkg)
8129 (string-append (assoc-ref inputs pkg) "/lib"))
8130 '("gdk-pixbuf"
8131 "gnome-bluetooth" "librsvg" "libgweather"))))
8132 (for-each
8133 (lambda (prog)
8134 (wrap-program (string-append out "/bin/" prog)
8135 `("PYTHONPATH" ":" prefix (,python-path))
8136 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8137 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8138 #t)))
8139 (replace 'glib-or-gtk-wrap
8140 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8141 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8142 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8143 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8144 ;; phase. Fix that since we don't need these.
8145 (wrap #:inputs (fold alist-delete inputs
8146 '("inkscape" "intltool" "glib:bin"))
8147 #:outputs outputs)))))))
8148 (native-inputs
8149 `(("asciidoc" ,asciidoc)
8150 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8151 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8152 ("gobject-introspection" ,gobject-introspection)
8153 ("inkscape" ,inkscape)
8154 ("intltool" ,intltool)
8155 ("pkg-config" ,pkg-config)
8156 ("python" ,python)
8157 ("ruby-sass" ,ruby-sass)
8158 ("sassc" ,sassc)
8159 ("xsltproc" ,libxslt)
8160 ;; For tests
8161 ("xorg-server" ,xorg-server-for-tests)))
8162 (inputs
8163 `(("accountsservice" ,accountsservice)
8164 ("caribou" ,caribou)
8165 ("docbook-xsl" ,docbook-xsl)
8166 ("evolution-data-server" ,evolution-data-server)
8167 ("gcr" ,gcr)
8168 ("gdm" ,gdm)
8169 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8170 ("gjs" ,gjs)
8171 ("gnome-autoar" ,gnome-autoar)
8172 ("gnome-bluetooth" ,gnome-bluetooth)
8173 ("gnome-desktop" ,gnome-desktop)
8174 ("gnome-settings-daemon" ,gnome-settings-daemon)
8175 ("gst-plugins-base" ,gst-plugins-base)
8176 ("ibus" ,ibus)
8177 ("libcanberra" ,libcanberra)
8178 ("libcroco" ,libcroco)
8179 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8180 ("libgweather" ,libgweather)
8181 ("libnma" ,libnma)
8182 ("libsoup" ,libsoup)
8183 ("mesa-headers" ,mesa-headers)
8184 ("mutter" ,mutter)
8185 ("network-manager-applet" ,network-manager-applet)
8186 ("polkit" ,polkit)
8187 ("pulseaudio" ,pulseaudio)
8188 ("python-pygobject" ,python-pygobject)
8189 ("startup-notification" ,startup-notification)
8190 ("telepathy-logger" ,telepathy-logger)
8191 ("upower" ,upower)
8192 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8193 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8194 ("librsvg" ,librsvg)
8195 ("geoclue" ,geoclue)))
8196 (synopsis "Desktop shell for GNOME")
8197 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8198 (description
8199 "GNOME Shell provides core user interface functions for the GNOME desktop,
8200 like switching to windows and launching applications.")
8201 (license license:gpl2+)))
8202
8203 (define-public gtk-vnc
8204 (package
8205 (name "gtk-vnc")
8206 (version "0.9.0")
8207 (source
8208 (origin
8209 (method url-fetch)
8210 (uri (string-append "mirror://gnome/sources/" name "/"
8211 (version-major+minor version) "/"
8212 name "-" version ".tar.xz"))
8213 (sha256
8214 (base32
8215 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
8216 (build-system gnu-build-system)
8217 (arguments
8218 '(#:configure-flags '("--with-gtk=3.0")))
8219 (propagated-inputs
8220 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
8221 (inputs
8222 `(("cyrus-sasl" ,cyrus-sasl)
8223 ("gnutls" ,gnutls)
8224 ("libgcrypt" ,libgcrypt)
8225 ("pulseaudio" ,pulseaudio)))
8226 (native-inputs
8227 `(("glib:bin" ,glib "bin")
8228 ("gobject-introspection" ,gobject-introspection)
8229 ("intltool" ,intltool)
8230 ("pkg-config" ,pkg-config)
8231 ("python-wrapper" ,python-wrapper)
8232 ("vala" ,vala)))
8233 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8234 (synopsis "VNC viewer widget for GTK+")
8235 (description
8236 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
8237 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
8238 GTK-VNC implements client side RFB protocol and authentication extensions such
8239 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
8240 (license license:lgpl2.1+)))
8241
8242 (define-public gnome-autoar
8243 (package
8244 (name "gnome-autoar")
8245 (version "0.2.4")
8246 (source (origin
8247 (method url-fetch)
8248 (uri (string-append "mirror://gnome/sources/" name "/"
8249 (version-major+minor version) "/"
8250 name "-" version ".tar.xz"))
8251 (sha256
8252 (base32
8253 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
8254 (build-system glib-or-gtk-build-system)
8255 (native-inputs
8256 `(("gobject-introspection" ,gobject-introspection)
8257 ("pkg-config" ,pkg-config)))
8258 (propagated-inputs
8259 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8260 (inputs
8261 `(("gtk+" ,gtk+)))
8262 (synopsis "Archives integration support for GNOME")
8263 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8264 (description
8265 "GNOME Autoar is a library which makes creating and extracting archives
8266 easy, safe, and automatic.")
8267 (license license:lgpl2.1+)))
8268
8269 (define-public tracker
8270 (package
8271 (name "tracker")
8272 (version "2.3.4")
8273 (source (origin
8274 (method url-fetch)
8275 (uri (string-append "mirror://gnome/sources/tracker/"
8276 (version-major+minor version) "/"
8277 "tracker-" version ".tar.xz"))
8278 (sha256
8279 (base32
8280 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
8281 (build-system meson-build-system)
8282 (arguments
8283 `(#:glib-or-gtk? #t
8284 #:configure-flags
8285 ;; Otherwise, the RUNPATH will lack the final path component.
8286 (list (string-append "-Dc_link_args=-Wl,-rpath="
8287 (assoc-ref %outputs "out") "/lib:"
8288 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8289 #:phases
8290 (modify-phases %standard-phases
8291 (add-before 'check 'pre-check
8292 (lambda _
8293 ;; Some tests expect to write to $HOME.
8294 (setenv "HOME" "/tmp")
8295 #t)))))
8296 (native-inputs
8297 `(("glib:bin" ,glib "bin")
8298 ("gobject-introspection" ,gobject-introspection)
8299 ("python-pygobject" ,python-pygobject)
8300 ("intltool" ,intltool)
8301 ("pkg-config" ,pkg-config)
8302 ("vala" ,vala)))
8303 (inputs
8304 `(("dbus" ,dbus)
8305 ("sqlite" ,sqlite)
8306 ("libxml2" ,libxml2)
8307 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8308 ("json-glib" ,json-glib)
8309 ("libsoup" ,libsoup)))
8310 (synopsis "Metadata database, indexer and search tool")
8311 (home-page "https://wiki.gnome.org/Projects/Tracker")
8312 (description
8313 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8314
8315 It is a middleware component aimed at desktop application developers who want
8316 their apps to browse and search user content. It's not designed to be used
8317 directly by desktop users, but it provides a commandline tool named
8318 @command{tracker} for the adventurous.
8319
8320 Tracker allows your application to instantly perform full-text searches across
8321 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8322 example. This is achieved by indexing the user's home directory in the
8323 background.
8324
8325 Tracker also allows your application to query and list content that the user
8326 has stored. For example, GNOME Music displays all the music files that are
8327 found by Tracker. This means that GNOME Music doesn't need to maintain a
8328 database of its own.
8329
8330 If you need to go beyond simple searches, Tracker is also a linked data
8331 endpoint and it understands SPARQL. ")
8332 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8333 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8334 ;; libstemmer is bsd-3 and the rest is gpl2+.
8335 (license (list license:gpl2+
8336 license:bsd-3
8337 license:lgpl2.1+))))
8338
8339 (define-public tracker-miners
8340 (package
8341 (name "tracker-miners")
8342 (version "2.3.3")
8343 (source (origin
8344 (method url-fetch)
8345 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8346 (version-major+minor version)
8347 "/tracker-miners-" version ".tar.xz"))
8348 (sha256
8349 (base32
8350 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
8351 (build-system meson-build-system)
8352 (arguments
8353 `(#:glib-or-gtk? #t
8354 #:configure-flags
8355 (list "-Dminer_rss=false" ; libgrss is required.
8356 ;; Ensure the RUNPATH contains all installed library locations.
8357 (string-append "-Dc_link_args=-Wl,-rpath="
8358 (assoc-ref %outputs "out")
8359 "/lib/tracker-miners-2.0")
8360 ;; TODO: Enable functional tests. Currently, the following error
8361 ;; appears:
8362 ;; Exception: The functional tests require DConf to be the default
8363 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8364 "-Dfunctional_tests=false")))
8365 (native-inputs
8366 `(("dbus" ,dbus)
8367 ("intltool" ,intltool)
8368 ("glib:bin" ,glib "bin")
8369 ("gobject-introspection" ,gobject-introspection)
8370 ("pkg-config" ,pkg-config)
8371 ("python-pygobject" ,python-pygobject)))
8372 (inputs
8373 `(("exempi" ,exempi)
8374 ("ffmpeg" ,ffmpeg)
8375 ("flac" ,flac)
8376 ("giflib" ,giflib)
8377 ("glib" ,glib)
8378 ("gstreamer" ,gstreamer)
8379 ("icu4c" ,icu4c)
8380 ("libcue" ,libcue)
8381 ("libexif" ,libexif)
8382 ("libgsf" ,libgsf)
8383 ("libgxps" ,libgxps)
8384 ("libiptcdata" ,libiptcdata)
8385 ("libjpeg" ,libjpeg-turbo)
8386 ("libosinfo" ,libosinfo)
8387 ("libpng" ,libpng)
8388 ("libseccomp" ,libseccomp)
8389 ("libtiff" ,libtiff)
8390 ("libvorbis" ,libvorbis)
8391 ("libxml2" ,libxml2)
8392 ("poppler" ,poppler)
8393 ("taglib" ,taglib)
8394 ("totem-pl-parser" ,totem-pl-parser)
8395 ("tracker" ,tracker)
8396 ("upower" ,upower)
8397 ("zlib" ,zlib)))
8398 (synopsis "Metadata database, indexer and search tool")
8399 (home-page "https://wiki.gnome.org/Projects/Tracker")
8400 (description
8401 "Tracker is an advanced framework for first class objects with associated
8402 metadata and tags. It provides a one stop solution for all metadata, tags,
8403 shared object databases, search tools and indexing.")
8404 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8405 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8406 (license (list license:gpl2+
8407 license:lgpl2.1+
8408 license:lgpl2.0+))))
8409
8410 (define-public nautilus
8411 (package
8412 (name "nautilus")
8413 (version "3.34.2")
8414 (source (origin
8415 (method url-fetch)
8416 (uri (string-append "mirror://gnome/sources/" name "/"
8417 (version-major+minor version) "/"
8418 name "-" version ".tar.xz"))
8419 (sha256
8420 (base32
8421 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8422 (build-system meson-build-system)
8423 (arguments
8424 '(#:glib-or-gtk? #t
8425 #:phases
8426 (modify-phases %standard-phases
8427 (add-after 'unpack 'skip-gtk-update-icon-cache
8428 ;; Don't create 'icon-theme.cache'.
8429 (lambda _
8430 (substitute* "build-aux/meson/postinstall.py"
8431 (("gtk-update-icon-cache") "true"))
8432 #t)))
8433 ;; XXX: FAIL: check-nautilus
8434 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8435 #:tests? #f))
8436 (native-inputs
8437 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8438 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8439 ("gobject-introspection" ,gobject-introspection)
8440 ("intltool" ,intltool)
8441 ("pkg-config" ,pkg-config)))
8442 (inputs
8443 `(("dconf" ,dconf)
8444 ("gexiv2" ,gexiv2)
8445 ("gvfs" ,gvfs)
8446 ("exempi" ,exempi)
8447 ("gnome-desktop" ,gnome-desktop)
8448 ("gnome-autoar" ,gnome-autoar)
8449 ("gst-plugins-base" ,gst-plugins-base)
8450 ("libseccomp" ,libseccomp)
8451 ("libselinux" ,libselinux)
8452 ("tracker" ,tracker)
8453 ("tracker-miners" ,tracker-miners)
8454 ;; XXX: gtk+ is required by libnautilus-extension.pc
8455 ;;
8456 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8457 ;; package. See:
8458 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8459 ("gtk+" ,gtk+)
8460 ("libexif" ,libexif)
8461 ("libxml2" ,libxml2)))
8462 (synopsis "File manager for GNOME")
8463 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8464 (description
8465 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8466 design and behaviour, giving the user a simple way to navigate and manage its
8467 files.")
8468 (license license:gpl2+)))
8469
8470 (define-public baobab
8471 (package
8472 (name "baobab")
8473 (version "3.32.0")
8474 (source (origin
8475 (method url-fetch)
8476 (uri (string-append
8477 "mirror://gnome/sources/" name "/"
8478 (version-major+minor version) "/"
8479 name "-" version ".tar.xz"))
8480 (sha256
8481 (base32
8482 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
8483 (build-system meson-build-system)
8484 (arguments
8485 '(#:glib-or-gtk? #t))
8486 (native-inputs
8487 `(("intltool" ,intltool)
8488 ("pkg-config" ,pkg-config)
8489 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8490 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8491 ("itstool" ,itstool)
8492 ("xmllint" ,libxml2)
8493 ("glib" ,glib "bin")
8494 ("vala" ,vala)))
8495 (inputs
8496 `(("gtk+" ,gtk+)))
8497 (synopsis "Disk usage analyzer for GNOME")
8498 (description
8499 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8500 usage in the GNOME desktop environment. It can easily scan device volumes or
8501 a specific user-requested directory branch (local or remote). Once the scan
8502 is complete it provides a graphical representation of each selected folder.")
8503 (home-page "https://wiki.gnome.org/Apps/Baobab")
8504 (license license:gpl2+)))
8505
8506 (define-public gnome-backgrounds
8507 (package
8508 (name "gnome-backgrounds")
8509 (version "3.34.0")
8510 (source
8511 (origin
8512 (method url-fetch)
8513 (uri (string-append "mirror://gnome/sources/" name "/"
8514 (version-major+minor version) "/"
8515 name "-" version ".tar.xz"))
8516 (sha256
8517 (base32
8518 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8519 (build-system meson-build-system)
8520 (native-inputs
8521 `(("intltool" ,intltool)))
8522 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8523 (synopsis "Background images for the GNOME desktop")
8524 (description
8525 "GNOME backgrounds package contains a collection of graphics files which
8526 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8527 the package creates the proper framework and directory structure so that you
8528 can add your own files to the collection.")
8529 (license (list license:gpl2+
8530 license:cc-by2.0
8531 license:cc-by-sa2.0
8532 license:cc-by-sa3.0))))
8533
8534 (define-public gnome-screenshot
8535 (package
8536 (name "gnome-screenshot")
8537 (version "3.34.0")
8538 (source
8539 (origin
8540 (method url-fetch)
8541 (uri (string-append "mirror://gnome/sources/" name "/"
8542 (version-major+minor version) "/"
8543 name "-" version ".tar.xz"))
8544 (sha256
8545 (base32
8546 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8547 (build-system meson-build-system)
8548 (arguments
8549 '(#:phases
8550 (modify-phases %standard-phases
8551 (add-after 'unpack 'skip-gtk-update-icon-cache
8552 ;; Don't create 'icon-theme.cache'.
8553 (lambda _
8554 (substitute* "build-aux/postinstall.py"
8555 (("gtk-update-icon-cache") "true"))
8556 #t)))))
8557 (native-inputs
8558 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8559 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8560 ("intltool" ,intltool)
8561 ("appstream-glib" ,appstream-glib)
8562 ("pkg-config" ,pkg-config)))
8563 (inputs
8564 `(("gtk+" ,gtk+)
8565 ("libcanberra" ,libcanberra)
8566 ("libx11" ,libx11)
8567 ("libxext" ,libxext)))
8568 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8569 (synopsis "Take pictures of your screen")
8570 (description
8571 "GNOME Screenshot is a utility used for taking screenshots of the entire
8572 screen, a window or a user defined area of the screen, with optional
8573 beautifying border effects.")
8574 (license license:gpl2+)))
8575
8576 (define-public dconf-editor
8577 (package
8578 (name "dconf-editor")
8579 (version "3.34.2")
8580 (source
8581 (origin
8582 (method url-fetch)
8583 (uri (string-append "mirror://gnome/sources/" name "/"
8584 (version-major+minor version) "/"
8585 name "-" version ".tar.xz"))
8586 (sha256
8587 (base32
8588 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8589 (build-system meson-build-system)
8590 (native-inputs
8591 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8592 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8593 ("intltool" ,intltool)
8594 ("pkg-config" ,pkg-config)
8595 ("vala" ,vala)))
8596 (inputs
8597 `(("dconf" ,dconf)
8598 ("gtk+" ,gtk+)
8599 ("libxml2" ,libxml2)))
8600 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
8601 (synopsis "Graphical editor for GNOME's dconf configuration system")
8602 (description
8603 "Dconf-editor is a graphical tool for browsing and editing the dconf
8604 configuration system for GNOME. It allows users to configure desktop
8605 software that do not provide their own configuration interface.")
8606 (license license:lgpl2.1+)))
8607
8608 (define-public gnome-default-applications
8609 (package
8610 (name "gnome-default-applications")
8611 (version "0")
8612 (build-system trivial-build-system)
8613 (source #f)
8614 (propagated-inputs
8615 `(("nautilus" ,nautilus)
8616 ("evince" ,evince)))
8617 (arguments
8618 `(#:modules ((guix build utils))
8619 #:builder
8620 (begin
8621 (use-modules (guix build utils))
8622 (let* ((out (assoc-ref %outputs "out"))
8623 (apps (string-append out "/share/applications")))
8624 (mkdir-p apps)
8625 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
8626 (lambda (port)
8627 (format port "[Default Applications]\n")
8628 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
8629 (format port "application/pdf=evince.desktop\n")
8630 (format port "application/postscript=evince.desktop\n")))
8631 #t))))
8632 (synopsis "Default MIME type associations for the GNOME desktop")
8633 (description
8634 "Given many installed packages which might handle a given MIME type, a
8635 user running the GNOME desktop probably has some preferences: for example,
8636 that folders be opened by default by the Nautilus file manager, not the Baobab
8637 disk usage analyzer. This package establishes that set of default MIME type
8638 associations for GNOME.")
8639 (license license:gpl3+)
8640 (home-page #f)))
8641
8642 (define-public libgovirt
8643 (package
8644 (name "libgovirt")
8645 (version "0.3.6")
8646 (source (origin
8647 (method url-fetch)
8648 (uri (string-append "mirror://gnome/sources/" name "/"
8649 (version-major+minor version) "/"
8650 name "-" version ".tar.xz"))
8651 (sha256
8652 (base32
8653 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
8654 (build-system glib-or-gtk-build-system)
8655 (native-inputs
8656 `(("gettext" ,gettext-minimal)
8657 ("glib:bin" ,glib "bin")
8658 ("gobject-introspection" ,gobject-introspection)
8659 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8660 ("gtk+:bin" ,gtk+ "bin")
8661 ("pkg-config" ,pkg-config)))
8662 (inputs
8663 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
8664 ("librest" ,rest)))
8665 (synopsis "GoVirt Library")
8666 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
8667 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
8668 (license license:gpl2+)))
8669
8670 (define-public gnome-weather
8671 (package
8672 (name "gnome-weather")
8673 (version "3.34.0")
8674 (source (origin
8675 (method url-fetch)
8676 (uri (string-append "mirror://gnome/sources/" name "/"
8677 (version-major+minor version) "/"
8678 name "-" version ".tar.xz"))
8679 (sha256
8680 (base32
8681 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
8682 (build-system meson-build-system)
8683 (native-inputs
8684 `(("gettext" ,gettext-minimal)
8685 ("glib:bin" ,glib "bin")
8686 ("gobject-introspection" ,gobject-introspection)
8687 ("gtk+:bin" ,gtk+ "bin")
8688 ("pkg-config" ,pkg-config)))
8689 (inputs
8690 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
8691 ("appstream-glib" ,appstream-glib)
8692 ("geoclue" ,geoclue)
8693 ("gdk-pixbuf" ,gdk-pixbuf)
8694 ("gjs" ,gjs)
8695 ("gnome-desktop" ,gnome-desktop)
8696 ("libgweather" ,libgweather)))
8697 (arguments
8698 `(#:glib-or-gtk? #t
8699 #:phases
8700 (modify-phases %standard-phases
8701 (add-after 'install 'fix-desktop-file
8702 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
8703 ;; See https://issues.guix.gnu.org/issue/39324.
8704 (lambda* (#:key outputs #:allow-other-keys)
8705 (let* ((out (assoc-ref outputs "out"))
8706 (applications (string-append out "/share/applications")))
8707 (substitute* (string-append applications "/org.gnome.Weather.desktop")
8708 (("Exec=.*") "Exec=gnome-weather\n"))
8709 #t)))
8710 (add-after 'install 'wrap
8711 (lambda* (#:key inputs outputs #:allow-other-keys)
8712 (let ((out (assoc-ref outputs "out"))
8713 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8714 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
8715 (wrap-program (string-append out "/bin/gnome-weather")
8716 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
8717 #t))))))
8718 (synopsis "Weather monitoring for GNOME desktop")
8719 (description "GNOME Weather is a small application that allows you to
8720 monitor the current weather conditions for your city, or anywhere in the
8721 world.")
8722 (home-page "https://wiki.gnome.org/Apps/Weather")
8723 (license license:gpl2+)))
8724
8725 (define-public gnome
8726 (package
8727 (name "gnome")
8728 (version (package-version gnome-shell))
8729 (source #f)
8730 (build-system trivial-build-system)
8731 (arguments '(#:builder (begin (mkdir %output) #t)))
8732 (propagated-inputs
8733 ;; TODO: Add or remove packages according to:
8734 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
8735 `(
8736 ;; GNOME-Core-OS-Services
8737 ("accountsservice" ,accountsservice)
8738 ("network-manager" ,network-manager)
8739 ("packagekit" ,packagekit)
8740 ("upower" ,upower)
8741 ;; GNOME-Core-Shell
8742 ("adwaita-icon-theme" ,adwaita-icon-theme)
8743 ("gdm" ,gdm)
8744 ("glib-networking" ,glib-networking)
8745 ("gnome-backgrounds" ,gnome-backgrounds)
8746 ("gnome-bluetooth" ,gnome-bluetooth)
8747 ("gnome-color-manager" ,gnome-color-manager)
8748 ("gnome-control-center" ,gnome-control-center)
8749 ("gnome-desktop" ,gnome-desktop)
8750 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8751 ("gnome-initial-setup" ,gnome-initial-setup)
8752 ("gnome-keyring" ,gnome-keyring)
8753 ("gnome-menus" ,gnome-menus)
8754 ("gnome-session" ,gnome-session)
8755 ("gnome-settings-daemon" ,gnome-settings-daemon)
8756 ("gnome-shell-extensions" ,gnome-shell-extensions)
8757 ("gnome-shell" ,gnome-shell)
8758 ("gnome-themes-extra" ,gnome-themes-extra)
8759 ("gnome-user-docs" ,gnome-user-docs)
8760 ("gnome-user-share" ,gnome-user-share)
8761 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8762 ("gvfs" ,gvfs)
8763 ("mutter" ,mutter)
8764 ("orca" ,orca)
8765 ("rygel" ,rygel)
8766 ("sushi" ,sushi)
8767 ;; GNOME-Core-Utilities
8768 ("baobab" ,baobab)
8769 ("cheese" ,cheese)
8770 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8771 ;; only works on x86_64, so exclude it on other architectures.
8772 ,@(if (string-prefix? "x86_64" (%current-system))
8773 `(("eog" ,eog))
8774 '())
8775 ("epiphany" ,epiphany)
8776 ("evince" ,evince)
8777 ("file-roller" ,file-roller)
8778 ("gedit" ,gedit)
8779 ("gnome-boxes" ,gnome-boxes)
8780 ("gnome-calculator" ,gnome-calculator)
8781 ("gnome-calendar" ,gnome-calendar)
8782 ("gnome-characters" ,gnome-characters)
8783 ("gnome-clocks" ,gnome-clocks)
8784 ("gnome-contacts" ,gnome-contacts)
8785 ("gnome-disk-utility" ,gnome-disk-utility)
8786 ("gnome-font-viewer" ,gnome-font-viewer)
8787 ("gnome-maps" ,gnome-maps)
8788 ; TODO: ("gnome-music" ,gnome-music)
8789 ; TODO: ("gnome-photos" ,gnome-photos)
8790 ("gnome-screenshot" ,gnome-screenshot)
8791 ("gnome-system-monitor" ,gnome-system-monitor)
8792 ("gnome-terminal" ,gnome-terminal)
8793 ("gnome-weather" ,gnome-weather)
8794 ("nautilus" ,nautilus)
8795 ("simple-scan" ,simple-scan)
8796 ("totem" ,totem)
8797 ("yelp" ,yelp)
8798 ;; Others
8799 ("hicolor-icon-theme" ,hicolor-icon-theme)
8800 ("gnome-online-accounts" ,gnome-online-accounts)
8801
8802 ;; Packages not part of GNOME proper but that are needed for a good
8803 ;; experience. See <https://bugs.gnu.org/39646>.
8804 ;; XXX: Find out exactly which ones are needed and why.
8805 ("font-cantarell" ,font-cantarell)
8806 ("font-dejavu" ,font-dejavu)
8807 ("at-spi2-core" ,at-spi2-core)
8808 ("dbus" ,dbus)
8809 ("dconf" ,dconf)
8810 ("desktop-file-utils" ,desktop-file-utils)
8811 ("gnome-default-applications" ,gnome-default-applications)
8812 ("gnome-themes-standard" ,gnome-themes-standard)
8813 ("gst-plugins-base" ,gst-plugins-base)
8814 ("gst-plugins-good" ,gst-plugins-good)
8815 ("gucharmap" ,gucharmap)
8816 ("pinentry-gnome3" ,pinentry-gnome3)
8817 ("pulseaudio" ,pulseaudio)
8818 ("shared-mime-info" ,shared-mime-info)
8819 ("system-config-printer" ,system-config-printer)
8820 ("xdg-user-dirs" ,xdg-user-dirs)
8821 ("yelp" ,yelp)
8822 ("zenity" ,zenity)))
8823 (synopsis "The GNU desktop environment")
8824 (home-page "https://www.gnome.org/")
8825 (description
8826 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8827 applications for browsing the web, editing text and images, creating
8828 documents and diagrams, playing media, scanning, and much more.")
8829 (license license:gpl2+)))
8830
8831 (define-public byzanz
8832 ;; The last stable release of Byzanz was in 2011, but there have been many
8833 ;; useful commits made to the Byzanz repository since then that it would be
8834 ;; silly to use such an old release.
8835 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8836 (package
8837 (name "byzanz")
8838 (version (string-append "0.2-1." (string-take commit 7)))
8839 (source (origin
8840 (method git-fetch)
8841 (uri (git-reference
8842 (url "https://git.gnome.org/browse/byzanz")
8843 (commit commit)))
8844 (file-name (string-append name "-" version "-checkout"))
8845 (sha256
8846 (base32
8847 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8848 (build-system glib-or-gtk-build-system)
8849 (arguments
8850 '(#:phases
8851 (modify-phases %standard-phases
8852 (add-before 'bootstrap 'build-without-Werror
8853 (lambda _
8854 ;; The build system cleverly detects that we're not building from
8855 ;; a release tarball and turns on -Werror for GCC.
8856 ;; Unsurprisingly, there is a warning during compilation that
8857 ;; causes the build to fail unnecessarily, so we remove the flag.
8858 (substitute* '("configure.ac")
8859 (("-Werror") ""))
8860 #t)))))
8861 (native-inputs
8862 `(("autoconf" ,autoconf)
8863 ("automake" ,automake)
8864 ("gnome-common" ,gnome-common)
8865 ("intltool" ,intltool)
8866 ("libtool" ,libtool)
8867 ("pkg-config" ,pkg-config)
8868 ("which" ,which)))
8869 (inputs
8870 `(("glib" ,glib)
8871 ("gstreamer" ,gstreamer)
8872 ("gst-plugins-base" ,gst-plugins-base)
8873 ("gtk+" ,gtk+)))
8874 (synopsis "Desktop recording program")
8875 (description "Byzanz is a simple desktop recording program with a
8876 command-line interface. It can record part or all of an X display for a
8877 specified duration and save it as a GIF encoded animated image file.")
8878 (home-page "https://git.gnome.org/browse/byzanz")
8879 (license license:gpl2+))))
8880
8881 (define-public gsound
8882 (package
8883 (name "gsound")
8884 (version "1.0.2")
8885 (source (origin
8886 (method url-fetch)
8887 (uri (string-append "mirror://gnome/sources/" name "/"
8888 (version-major+minor version) "/"
8889 name "-" version ".tar.xz"))
8890 (sha256
8891 (base32
8892 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8893 (build-system glib-or-gtk-build-system)
8894 (native-inputs
8895 `(("pkg-config" ,pkg-config)
8896 ("gobject-introspection" ,gobject-introspection)
8897 ("vala" ,vala)))
8898 (inputs
8899 `(("glib" ,glib)
8900 ("libcanberra" ,libcanberra)))
8901 (home-page "https://wiki.gnome.org/Projects/GSound")
8902 (synopsis "GObject wrapper for libcanberra")
8903 (description
8904 "GSound is a small library for playing system sounds. It's designed to be
8905 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8906 library.")
8907 (license license:lgpl2.1+)))
8908
8909 (define-public libzapojit
8910 (package
8911 (name "libzapojit")
8912 (version "0.0.3")
8913 (source (origin
8914 (method url-fetch)
8915 (uri (string-append "mirror://gnome/sources/" name "/"
8916 (version-major+minor version) "/"
8917 name "-" version ".tar.xz"))
8918 (sha256
8919 (base32
8920 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8921 (build-system gnu-build-system)
8922 (native-inputs
8923 `(("gobject-introspection" ,gobject-introspection)
8924 ("intltool" ,intltool)
8925 ("pkg-config" ,pkg-config)))
8926 (inputs
8927 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8928 ("json-glib" ,json-glib)
8929 ("rest" ,rest)))
8930 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8931 (synopsis "Library for accessing SkyDrive and Hotmail")
8932 (description
8933 "Libzapojit is a GLib-based library for accessing online service APIs of
8934 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8935 (license license:lgpl2.1+)))
8936
8937 (define-public gnome-clocks
8938 (package
8939 (name "gnome-clocks")
8940 (version "3.34.0")
8941 (source (origin
8942 (method url-fetch)
8943 (uri (string-append "mirror://gnome/sources/" name "/"
8944 (version-major+minor version) "/"
8945 name "-" version ".tar.xz"))
8946 (sha256
8947 (base32
8948 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8949 (build-system meson-build-system)
8950 (arguments
8951 '(#:glib-or-gtk? #t
8952 #:phases
8953 (modify-phases %standard-phases
8954 (add-after 'unpack 'skip-gtk-update-icon-cache
8955 ;; Don't create 'icon-theme.cache'.
8956 (lambda _
8957 (substitute* "build-aux/post-install.py"
8958 (("gtk-update-icon-cache") "true"))
8959 #t)))))
8960 (native-inputs
8961 `(("vala" ,vala)
8962 ("pkg-config" ,pkg-config)
8963 ("glib" ,glib "bin") ; for glib-compile-resources
8964 ("desktop-file-utils" ,desktop-file-utils)
8965 ("gettext" ,gettext-minimal)
8966 ("itstool" ,itstool)))
8967 (inputs
8968 `(("glib" ,glib)
8969 ("gtk+" ,gtk+)
8970 ("gsound" ,gsound)
8971 ("geoclue" ,geoclue)
8972 ("geocode-glib" ,geocode-glib)
8973 ("libgweather" ,libgweather)
8974 ("gnome-desktop" ,gnome-desktop)))
8975 (home-page "https://wiki.gnome.org/Apps/Clocks")
8976 (synopsis "GNOME's clock application")
8977 (description
8978 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8979 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8980 (license license:gpl3+)))
8981
8982 (define-public gnome-calendar
8983 (package
8984 (name "gnome-calendar")
8985 (version "3.34.2")
8986 (source (origin
8987 (method url-fetch)
8988 (uri (string-append "mirror://gnome/sources/" name "/"
8989 (version-major+minor version) "/"
8990 name "-" version ".tar.xz"))
8991 (sha256
8992 (base32
8993 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
8994 (build-system meson-build-system)
8995 (arguments
8996 '(#:glib-or-gtk? #t
8997 ;; gnome-calendar has to be installed before the tests can be run
8998 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8999 #:tests? #f
9000 #:phases
9001 (modify-phases %standard-phases
9002 (add-after 'unpack 'skip-gtk-update-icon-cache
9003 ;; Don't create 'icon-theme.cache'.
9004 (lambda _
9005 (substitute* "build-aux/meson/meson_post_install.py"
9006 (("gtk-update-icon-cache") "true"))
9007 #t)))))
9008 (native-inputs
9009 `(("gettext" ,gettext-minimal)
9010 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9011 ("pkg-config" ,pkg-config)))
9012 (inputs
9013 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9014 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9015 ("libdazzle" ,libdazzle)
9016 ("libedataserverui" ,evolution-data-server)
9017 ("libgweather" ,libgweather)
9018 ("geoclue" ,geoclue)))
9019 (propagated-inputs
9020 `(("evolution-data-server" ,evolution-data-server)))
9021 (home-page "https://wiki.gnome.org/Apps/Calendar")
9022 (synopsis "GNOME's calendar application")
9023 (description
9024 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9025 desktop. It supports multiple calendars, month, week and year view.")
9026 (license license:gpl3+)))
9027
9028 (define-public gnome-todo
9029 (package
9030 (name "gnome-todo")
9031 (version "3.28.1")
9032 (source (origin
9033 (method url-fetch)
9034 (uri (string-append "mirror://gnome/sources/" name "/"
9035 (version-major+minor version) "/"
9036 name "-" version ".tar.xz"))
9037 (sha256
9038 (base32
9039 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9040 (patches
9041 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9042 (build-system meson-build-system)
9043 (arguments
9044 '(#:glib-or-gtk? #t
9045 #:phases (modify-phases %standard-phases
9046 (add-after
9047 'install 'wrap-gnome-todo
9048 (lambda* (#:key inputs outputs #:allow-other-keys)
9049 (let ((out (assoc-ref outputs "out"))
9050 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9051 (python-path (getenv "PYTHONPATH")))
9052 (wrap-program (string-append out "/bin/gnome-todo")
9053 ;; XXX: gi plugins are broken.
9054 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9055 ;; For plugins.
9056 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9057 `("PYTHONPATH" ":" prefix (,python-path))))
9058 #t)))))
9059 (native-inputs
9060 `(("gettext" ,gettext-minimal)
9061 ("gobject-introspection" ,gobject-introspection)
9062 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9063 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9064 ("pkg-config" ,pkg-config)))
9065 (inputs
9066 `(("rest" ,rest) ; For Todoist plugin
9067 ("json-glib" ,json-glib) ; For Todoist plugin
9068 ("libedataserverui" ,evolution-data-server)
9069 ("libical" ,libical)
9070 ("libpeas" ,libpeas)
9071 ("python-pygobject" ,python-pygobject)
9072 ("evolution-data-server" ,evolution-data-server)
9073 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9074 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9075 (home-page "https://wiki.gnome.org/Apps/Todo")
9076 (synopsis "GNOME's ToDo Application")
9077 (description
9078 "GNOME To Do is a simplistic personal task manager designed to perfectly
9079 fit the GNOME desktop.")
9080 (license license:gpl3+)))
9081
9082 (define-public gnome-dictionary
9083 (package
9084 (name "gnome-dictionary")
9085 (version "3.26.1")
9086 (source (origin
9087 (method url-fetch)
9088 (uri (string-append "mirror://gnome/sources/" name "/"
9089 (version-major+minor version) "/"
9090 name "-" version ".tar.xz"))
9091 (sha256
9092 (base32
9093 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9094 (build-system meson-build-system)
9095 (arguments '(#:glib-or-gtk? #t
9096 #:phases (modify-phases %standard-phases
9097 (add-after 'unpack 'patch-install-script
9098 (lambda _
9099 ;; This script attempts to compile glib schemas
9100 ;; and create an empty MIME database. We do
9101 ;; that elsewhere, so prevent it from running.
9102 (substitute* "build-aux/post-install.sh"
9103 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9104 #t)))))
9105 (native-inputs
9106 `(("glib:bin" ,glib "bin")
9107 ("gobject-introspection" ,gobject-introspection)
9108 ("intltool" ,intltool)
9109 ("itstool" ,itstool)
9110 ("pkg-config" ,pkg-config)
9111 ("xmllint" ,libxml2)))
9112 (inputs
9113 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9114 ("gtk+" ,gtk+)))
9115 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9116 (synopsis "Look up words in dictionary sources")
9117 (description
9118 "GNOME Dictionary can look for the definition or translation of a word in
9119 existing databases over the internet.")
9120 (license license:gpl3+)))
9121
9122 (define-public gnome-tweaks
9123 (package
9124 (name "gnome-tweaks")
9125 (version "3.34.0")
9126 (source (origin
9127 (method url-fetch)
9128 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9129 (version-major+minor version) "/"
9130 "gnome-tweaks-" version ".tar.xz"))
9131 (patches
9132 (list (search-patch "gnome-tweaks-search-paths.patch")))
9133 (sha256
9134 (base32
9135 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
9136 (build-system meson-build-system)
9137 (arguments
9138 `(#:glib-or-gtk? #t
9139 #:configure-flags '("-Dlocalstatedir=/tmp"
9140 "-Dsysconfdir=/tmp")
9141 #:imported-modules ((guix build python-build-system)
9142 ,@%meson-build-system-modules)
9143 #:phases
9144 (modify-phases %standard-phases
9145 (add-after 'unpack 'skip-gtk-update-icon-cache
9146 ;; Don't create 'icon-theme.cache'.
9147 (lambda _
9148 (substitute* "meson-postinstall.py"
9149 (("gtk-update-icon-cache") "true"))
9150 #t))
9151 (add-after 'install 'wrap
9152 (@@ (guix build python-build-system) wrap))
9153 (add-after 'wrap 'wrap-gi-typelib
9154 (lambda* (#:key inputs outputs #:allow-other-keys)
9155 (let ((out (assoc-ref outputs "out"))
9156 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9157 (wrap-program (string-append out "/bin/gnome-tweaks")
9158 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9159 #t)))))
9160 (native-inputs
9161 `(("intltool" ,intltool)
9162 ("pkg-config" ,pkg-config)))
9163 (inputs
9164 `(("gnome-desktop" ,gnome-desktop)
9165 ("gtk+" ,gtk+)
9166 ("gobject-introspection" ,gobject-introspection)
9167 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9168 ("libhandy" ,libhandy)
9169 ("libnotify" ,libnotify)
9170 ("libsoup" ,libsoup)
9171 ("nautilus" ,nautilus)
9172 ("python" ,python)
9173 ("python-pygobject" ,python-pygobject)))
9174 (synopsis "Customize advanced GNOME 3 options")
9175 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9176 (description
9177 "GNOME Tweaks allows adjusting advanced configuration settings in
9178 GNOME 3. This includes things like the fonts used in user interface elements,
9179 alternative user interface themes, changes in window management behavior,
9180 GNOME Shell appearance and extension, etc.")
9181 (license license:gpl3+)))
9182
9183 (define-public gnome-shell-extensions
9184 (package
9185 (name "gnome-shell-extensions")
9186 (version "3.34.2")
9187 (source (origin
9188 (method url-fetch)
9189 (uri (string-append "mirror://gnome/sources/" name "/"
9190 (version-major+minor version) "/"
9191 name "-" version ".tar.xz"))
9192 (sha256
9193 (base32
9194 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9195 (build-system meson-build-system)
9196 (arguments
9197 '(#:configure-flags '("-Dextension_set=all")))
9198 (native-inputs
9199 `(("glib:bin" ,glib "bin")
9200 ("intltool" ,intltool)
9201 ("pkg-config" ,pkg-config)))
9202 (propagated-inputs
9203 `(("glib" ,glib)))
9204 (synopsis "Extensions for GNOME Shell")
9205 (description "GNOME Shell extensions modify and extend GNOME Shell
9206 functionality and behavior.")
9207 (home-page "https://extensions.gnome.org/")
9208 (license license:gpl3+)))
9209
9210 (define-public arc-theme
9211 (package
9212 (name "arc-theme")
9213 (version "20190917")
9214 (source (origin
9215 (method git-fetch)
9216 (uri (git-reference
9217 (url "https://github.com/NicoHood/arc-theme")
9218 (commit version)))
9219 (file-name (git-file-name name version))
9220 (sha256
9221 (base32
9222 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
9223 (build-system gnu-build-system)
9224 (arguments
9225 '(#:phases
9226 (modify-phases %standard-phases
9227 ;; autogen.sh calls configure at the end of the script.
9228 (replace 'bootstrap
9229 (lambda _ (invoke "autoreconf" "-vfi")))
9230 (add-before 'build 'set-home ;placate Inkscape
9231 (lambda _
9232 (setenv "HOME" (getcwd))
9233 #t)))))
9234 (native-inputs
9235 `(("autoconf" ,autoconf)
9236 ("automake" ,automake)
9237 ("glib" ,glib "bin") ; for glib-compile-resources
9238 ("gnome-shell" ,gnome-shell)
9239 ("gtk+" ,gtk+)
9240 ("inkscape" ,inkscape)
9241 ("optipng" ,optipng)
9242 ("pkg-config" ,pkg-config)
9243 ("sassc" ,sassc/libsass-3.5)))
9244 (synopsis "A flat GTK+ theme with transparent elements")
9245 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
9246 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
9247 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
9248 (home-page "https://github.com/horst3180/arc-theme")
9249 ;; No "or later" language found.
9250 (license license:gpl3+)))
9251
9252 (define-public faba-icon-theme
9253 (package
9254 (name "faba-icon-theme")
9255 (version "4.3")
9256 (source
9257 (origin
9258 (method git-fetch)
9259 (uri (git-reference
9260 (url "https://github.com/snwh/faba-icon-theme")
9261 (commit (string-append "v" version))))
9262 (file-name (git-file-name name version))
9263 (sha256
9264 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
9265 (build-system meson-build-system)
9266 (arguments
9267 `(#:phases
9268 (modify-phases %standard-phases
9269 (add-before 'configure 'disable-post-install
9270 (lambda _
9271 (substitute* "meson.build"
9272 (("meson.add_install_script.*") "")))))))
9273 (native-inputs
9274 `(("autoconf" ,autoconf)
9275 ("automake" ,automake)))
9276 (synopsis "Faba icon theme")
9277 (description
9278 "Faba is a minimal icon set used as a basis for other themes such as
9279 Moka")
9280 (home-page "https://snwh.org/moka")
9281 (license (list license:lgpl3+
9282 license:cc-by-sa4.0))))
9283
9284 (define-public moka-icon-theme
9285 (package
9286 (inherit faba-icon-theme)
9287 (name "moka-icon-theme")
9288 (version "5.4.0")
9289 (source
9290 (origin
9291 (method git-fetch)
9292 (uri (git-reference
9293 (url "https://github.com/snwh/moka-icon-theme")
9294 (commit (string-append "v" version))))
9295 (file-name (git-file-name name version))
9296 (sha256
9297 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
9298 (propagated-inputs
9299 ;; Moka is based on Faba by using it as a fallback icon set instead of
9300 ;; bundling it, so we need to add it as a propagated input.
9301 `(("faba-icon-theme" ,faba-icon-theme)))
9302 (synopsis "Moka icon theme")
9303 (description "Moka is a stylized desktop icon set, designed to be clear,
9304 simple and consistent.")
9305 (license (list license:gpl3+
9306 license:cc-by-sa4.0))))
9307
9308 (define-public arc-icon-theme
9309 (package
9310 (name "arc-icon-theme")
9311 (version "20161122")
9312 (source
9313 (origin
9314 (method git-fetch)
9315 (uri (git-reference
9316 (url "https://github.com/horst3180/arc-icon-theme")
9317 (commit version)))
9318 (file-name (git-file-name name version))
9319 (sha256
9320 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
9321 (build-system gnu-build-system)
9322 (arguments
9323 `(#:phases
9324 (modify-phases %standard-phases
9325 (add-after 'unpack 'disable-configure-during-bootstrap
9326 (lambda _
9327 (substitute* "autogen.sh"
9328 (("^\"\\$srcdir/configure\".*") ""))
9329 #t)))))
9330 (native-inputs
9331 `(("autoconf" ,autoconf)
9332 ("automake" ,automake)))
9333 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
9334 (propagated-inputs
9335 `(("moka-icon-theme" ,moka-icon-theme)))
9336 (synopsis "Arc icon theme")
9337 (description "The Arc icon theme provides a set of icons matching the
9338 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
9339 the Moka icon theme.")
9340 (home-page "https://github.com/horst3180/arc-icon-theme")
9341 (license license:gpl3+)))
9342
9343 (define-public folks
9344 (package
9345 (name "folks")
9346 (version "0.13.1")
9347 (source (origin
9348 (method url-fetch)
9349 (uri (string-append
9350 "mirror://gnome/sources/folks/"
9351 (version-major+minor version) "/"
9352 "folks-" version ".tar.xz"))
9353 (sha256
9354 (base32
9355 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9356 (build-system meson-build-system)
9357 (arguments
9358 '(#:phases
9359 (modify-phases %standard-phases
9360 (add-after 'unpack 'skip-gtk-update-icon-cache
9361 ;; Don't create 'icon-theme.cache'.
9362 (lambda _
9363 (substitute* "meson_post_install.py"
9364 (("gtk-update-icon-cache") "true"))
9365 #t)))))
9366 (inputs
9367 `(("bdb" ,bdb)
9368 ("dbus-glib" ,dbus-glib)
9369 ("evolution-data-server" ,evolution-data-server)
9370 ("glib" ,glib)
9371 ("libgee" ,libgee)
9372 ("readline" ,readline)
9373 ("telepathy-glib" ,telepathy-glib)))
9374 (native-inputs
9375 `(("glib:bin" ,glib "bin")
9376 ("gobject-introspection" ,gobject-introspection)
9377 ("intltool" ,intltool)
9378 ("pkg-config" ,pkg-config)
9379 ("vala" ,vala)))
9380 (synopsis "Library to aggregate data about people")
9381 (description "Libfolks is a library that aggregates information about people
9382 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9383 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9384 etc.) to create metacontacts. It's written in Vala, which generates C code when
9385 compiled.")
9386 (home-page "https://wiki.gnome.org/Projects/Folks")
9387 (license license:lgpl2.1+)))
9388
9389 (define-public gfbgraph
9390 (package
9391 (name "gfbgraph")
9392 (version "0.2.4")
9393 (source (origin
9394 (method url-fetch)
9395 (uri (string-append
9396 "mirror://gnome/sources/gfbgraph/"
9397 (version-major+minor version) "/"
9398 "gfbgraph-" version ".tar.xz"))
9399 (sha256
9400 (base32
9401 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9402 (build-system glib-or-gtk-build-system)
9403 (arguments
9404 `(#:tests? #f ; tests appear to require the network
9405 #:configure-flags '("--disable-static"
9406 "--enable-gtk-doc"
9407 "--enable-introspection")))
9408 (native-inputs
9409 `(("gobject-introspection" ,gobject-introspection)
9410 ("gtk-doc" ,gtk-doc)
9411 ("pkg-config" ,pkg-config)
9412
9413 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9414 ("autoconf" ,autoconf)
9415 ("automake" ,automake)
9416 ("libtool" ,libtool)
9417 ("which" ,which)))
9418 (inputs
9419 `(("json-glib" ,json-glib)
9420 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9421 ("rest" ,rest)))
9422 (synopsis "GLib/GObject wrapper for the Facebook API")
9423 (description "This library allows you to use the Facebook API from
9424 GLib/GObject code.")
9425 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9426 (license license:lgpl2.1+)))
9427
9428 (define-public libgnomekbd
9429 (package
9430 (name "libgnomekbd")
9431 (version "3.26.1")
9432 (source (origin
9433 (method url-fetch)
9434 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9435 (version-major+minor version) "/"
9436 "libgnomekbd-" version ".tar.xz"))
9437 (sha256
9438 (base32
9439 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9440 (build-system gnu-build-system)
9441 (native-inputs
9442 `(("pkg-config" ,pkg-config)
9443 ("glib" ,glib "bin")
9444 ("intltool" ,intltool)))
9445 (propagated-inputs
9446 ;; Referred to in .h files and .pc.
9447 `(("glib" ,glib)
9448 ("gtk+" ,gtk+)
9449 ("libxklavier" ,libxklavier)))
9450 (home-page "https://www.gnome.org")
9451 (synopsis "GNOME keyboard configuration library")
9452 (description
9453 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9454 environment, which can notably display keyboard layouts.")
9455 (license license:lgpl2.0+)))
9456
9457 ;;; This package is no longer maintained:
9458 ;;; https://wiki.gnome.org/Attic/LibUnique
9459 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9460 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9461 (define-public libunique
9462 (package
9463 (name "libunique")
9464 (version "3.0.2")
9465 (source (origin
9466 (method url-fetch)
9467 (uri (string-append "mirror://gnome/sources/" name "/"
9468 (version-major+minor version) "/"
9469 name "-" version ".tar.xz"))
9470 (sha256
9471 (base32
9472 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9473 (build-system glib-or-gtk-build-system)
9474 (arguments
9475 `(#:configure-flags '("--disable-static"
9476 "--disable-dbus" ; use gdbus
9477 "--enable-introspection")))
9478 (native-inputs
9479 `(("pkg-config" ,pkg-config)
9480 ("gobject-introspection" ,gobject-introspection)
9481 ("glib:bin" ,glib "bin")
9482 ("gtk-doc" ,gtk-doc)))
9483 (propagated-inputs
9484 ;; Referred to in .h files and .pc.
9485 `(("gtk+" ,gtk+)))
9486 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9487 (synopsis "Library for writing single instance applications")
9488 (description
9489 "Libunique is a library for writing single instance applications. If you
9490 launch a single instance application twice, the second instance will either just
9491 quit or will send a message to the running instance. Libunique makes it easy to
9492 write this kind of application, by providing a base class, taking care of all
9493 the IPC machinery needed to send messages to a running instance, and also
9494 handling the startup notification side.")
9495 (license license:lgpl2.1+)))
9496
9497 (define-public gnome-calculator
9498 (package
9499 (name "gnome-calculator")
9500 (version "3.34.1")
9501 (source
9502 (origin
9503 (method url-fetch)
9504 (uri (string-append "mirror://gnome/sources/" name "/"
9505 (version-major+minor version) "/"
9506 name "-" version ".tar.xz"))
9507 (sha256
9508 (base32
9509 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9510 (build-system meson-build-system)
9511 (arguments '(#:glib-or-gtk? #t))
9512 (native-inputs
9513 `(("gettext" ,gettext-minimal)
9514 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9515 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9516 ("itstool" ,itstool)
9517 ("vala" ,vala)
9518 ("pkg-config" ,pkg-config)))
9519 (inputs
9520 `(("glib" ,glib)
9521 ("gtksourceview" ,gtksourceview)
9522 ("libgee" ,libgee)
9523 ("libsoup" ,libsoup)
9524 ("libxml2" ,libxml2)
9525 ("mpc" ,mpc)
9526 ("mpfr" ,mpfr)))
9527 (home-page "https://wiki.gnome.org/Apps/Calculator")
9528 (synopsis "Desktop calculator")
9529 (description
9530 "Calculator is an application that solves mathematical equations and
9531 is suitable as a default application in a Desktop environment.")
9532 (license license:gpl3)))
9533
9534 (define-public xpad
9535 (package
9536 (name "xpad")
9537 (version "5.1.0")
9538 (source
9539 (origin
9540 (method url-fetch)
9541 (uri (string-append "https://launchpad.net/xpad/trunk/"
9542 version "/+download/"
9543 name "-" version ".tar.bz2"))
9544 (sha256
9545 (base32
9546 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9547 (build-system gnu-build-system)
9548 (native-inputs
9549 `(("autoconf" ,autoconf)
9550 ("automake" ,automake)
9551 ("gtk+:bin" ,gtk+ "bin")
9552 ("intltool" ,intltool)
9553 ("pkg-config" ,pkg-config)))
9554 (inputs
9555 `(("gtksourceview" ,gtksourceview-3)
9556 ("libsm" ,libsm)))
9557 (home-page "https://wiki.gnome.org/Apps/Xpad")
9558 (synopsis "Virtual sticky note")
9559 (description
9560 "Xpad is a sticky note that strives to be simple, fault tolerant,
9561 and customizable. Xpad consists of independent pad windows, each is
9562 basically a text box in which notes can be written.")
9563 (license license:gpl3+)))
9564
9565 (define-public gucharmap
9566 (let ((unicode-files
9567 '(("Blocks.txt"
9568 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9569 ("DerivedAge.txt"
9570 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9571 ("NamesList.txt"
9572 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9573 ("Scripts.txt"
9574 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9575 ("UnicodeData.txt"
9576 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9577 ("Unihan.zip"
9578 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9579 (package
9580 (name "gucharmap")
9581 (version "12.0.1")
9582 (source
9583 (origin
9584 (method url-fetch)
9585 (uri (string-append "mirror://gnome/sources/" name "/"
9586 (version-major+minor version) "/"
9587 name "-" version ".tar.xz"))
9588 (sha256
9589 (base32
9590 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9591 (build-system glib-or-gtk-build-system)
9592 (arguments
9593 `(#:modules ((ice-9 match)
9594 (guix build glib-or-gtk-build-system)
9595 (guix build utils))
9596 #:configure-flags
9597 (list "--with-unicode-data=../unicode-data")
9598 #:phases
9599 (modify-phases %standard-phases
9600 (add-after 'unpack 'prepare-unicode-data
9601 (lambda* (#:key inputs #:allow-other-keys)
9602 (mkdir-p "../unicode-data")
9603 (with-directory-excursion "../unicode-data"
9604 (for-each (match-lambda
9605 ((file _)
9606 (install-file (assoc-ref inputs file) ".")))
9607 ',unicode-files))
9608 #t)))))
9609 (native-inputs
9610 `(("desktop-file-utils" ,desktop-file-utils)
9611 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9612 ("gobject-introspection" ,gobject-introspection)
9613 ("intltool" ,intltool)
9614 ("itstool" ,itstool)
9615 ("pkg-config" ,pkg-config)
9616 ,@(map (match-lambda
9617 ((file hash)
9618 `(,file
9619 ,(origin
9620 (method url-fetch)
9621 (uri (string-append
9622 "http://www.unicode.org/Public/12.0.0/ucd/"
9623 file))
9624 (sha256 (base32 hash))))))
9625 unicode-files)
9626 ("unzip" ,unzip)))
9627 (inputs
9628 `(("gtk+" ,gtk+)
9629 ("xmllint" ,libxml2)))
9630 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9631 (synopsis "Unicode character picker and font browser")
9632 (description
9633 "This program allows you to browse through all the available Unicode
9634 characters and categories for the installed fonts, and to examine their
9635 detailed properties. It is an easy way to find the character you might
9636 only know by its Unicode name or code point.")
9637 (license license:gpl3+))))
9638
9639 (define-public bluefish
9640 (package
9641 (name "bluefish")
9642 (version "2.2.11")
9643 (source
9644 (origin
9645 (method url-fetch)
9646 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
9647 "bluefish-" version ".tar.gz"))
9648 (sha256
9649 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
9650 (build-system gnu-build-system)
9651 (native-inputs
9652 `(("desktop-file-utils" ,desktop-file-utils)
9653 ("intltool" ,intltool)
9654 ("pkg-config" ,pkg-config)))
9655 (inputs
9656 `(("enchant" ,enchant)
9657 ("gtk+" ,gtk+)
9658 ("python" ,python-wrapper)
9659 ("xmllint" ,libxml2)
9660 ("gucharmap" ,gucharmap)))
9661 (home-page "http://bluefish.openoffice.nl")
9662 (synopsis "Web development studio")
9663 (description
9664 "Bluefish is an editor targeted towards programmers and web developers,
9665 with many options to write web sites, scripts and other code.
9666 Bluefish supports many programming and markup languages.")
9667 (license license:gpl3+)))
9668
9669 (define-public gnome-system-monitor
9670 (package
9671 (name "gnome-system-monitor")
9672 (version "3.32.1")
9673 (source
9674 (origin
9675 (method url-fetch)
9676 (uri (string-append "mirror://gnome/sources/" name "/"
9677 (version-major+minor version) "/"
9678 name "-" version ".tar.xz"))
9679 (sha256
9680 (base32
9681 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
9682 (build-system meson-build-system)
9683 (arguments
9684 '(#:glib-or-gtk? #t
9685 #:configure-flags '("-Dsystemd=false")))
9686 (native-inputs
9687 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
9688 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
9689 ("intltool" ,intltool)
9690 ("itstool" ,itstool)
9691 ("libgtop" ,libgtop)
9692 ("polkit" ,polkit)
9693 ("pkg-config" ,pkg-config)))
9694 (inputs
9695 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
9696 ("gtk+" ,gtk+)
9697 ("gtkmm" ,gtkmm)
9698 ("librsvg" ,librsvg)
9699 ("libxml2" ,libxml2)
9700 ("libwnck" ,libwnck)))
9701 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
9702 (synopsis "Process viewer and system resource monitor for GNOME")
9703 (description
9704 "GNOME System Monitor is a GNOME process viewer and system monitor with
9705 an attractive, easy-to-use interface. It has features, such as a tree view
9706 for process dependencies, icons for processes, the ability to hide processes,
9707 graphical time histories of CPU/memory/swap usage and the ability to
9708 kill/reinice processes.")
9709 (license license:gpl2+)))
9710
9711 (define-public python-pyatspi
9712 (package
9713 (name "python-pyatspi")
9714 (version "2.34.0")
9715 (source (origin
9716 (method url-fetch)
9717 (uri (string-append
9718 "mirror://gnome/sources/pyatspi/"
9719 (version-major+minor version)
9720 "/pyatspi-" version ".tar.xz"))
9721 (sha256
9722 (base32
9723 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
9724 (build-system gnu-build-system)
9725 (arguments
9726 `(#:phases
9727 (modify-phases %standard-phases
9728 (add-before 'build 'fix-atk-load
9729 (lambda _
9730 (substitute* "pyatspi/__init__.py"
9731 (("from gi.repository import Atspi")
9732 "gi.require_version('Gtk', '3.0')
9733 from gi.repository import Gtk
9734 from gi.repository import Atspi"))
9735 #t)))))
9736 (native-inputs
9737 `(("pkg-config" ,pkg-config)))
9738 (inputs
9739 `(("python" ,python)))
9740 (propagated-inputs
9741 `(("python-pygobject" ,python-pygobject)))
9742 (synopsis "Python client bindings for D-Bus AT-SPI")
9743 (home-page "https://wiki.linuxfoundation.org/accessibility\
9744 /atk/at-spi/at-spi_on_d-bus")
9745 (description
9746 "This package includes a python client library for the AT-SPI D-Bus
9747 accessibility infrastructure.")
9748 (license license:lgpl2.0)
9749 (properties '((upstream-name . "pyatspi")))))
9750
9751 (define-public python2-pyatspi
9752 (package
9753 (inherit python-pyatspi)
9754 (name "python2-pyatspi")
9755 (inputs
9756 `(("python" ,python-2)))
9757 (propagated-inputs
9758 `(("python-pygobject" ,python2-pygobject)))))
9759
9760 (define-public orca
9761 (package
9762 (name "orca")
9763 (version "3.34.1")
9764 (source (origin
9765 (method url-fetch)
9766 (uri (string-append
9767 "mirror://gnome/sources/" name "/"
9768 (version-major+minor version) "/"
9769 name "-" version ".tar.xz"))
9770 (sha256
9771 (base32
9772 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
9773 (build-system glib-or-gtk-build-system)
9774 (arguments
9775 '(#:phases
9776 (modify-phases %standard-phases
9777 (add-before 'configure 'qualify-xkbcomp
9778 (lambda* (#:key inputs #:allow-other-keys)
9779 (let ((xkbcomp (string-append
9780 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9781 (substitute* "src/orca/orca.py"
9782 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9783 #t))
9784 (add-after 'install 'wrap-orca
9785 (lambda* (#:key outputs #:allow-other-keys)
9786 (let* ((out (assoc-ref outputs "out"))
9787 (prog (string-append out "/bin/orca")))
9788 (wrap-program prog
9789 `("GI_TYPELIB_PATH" ":" prefix
9790 (,(getenv "GI_TYPELIB_PATH")))
9791 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9792 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9793 `("PYTHONPATH" ":" prefix
9794 (,(getenv "PYTHONPATH")))))
9795 #t)))))
9796 (native-inputs
9797 `(("intltool" ,intltool)
9798 ("itstool" ,itstool)
9799 ("pkg-config" ,pkg-config)
9800 ("xmllint" ,libxml2)))
9801 (inputs
9802 `(("at-spi2-atk" ,at-spi2-atk)
9803 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9804 ("gstreamer" ,gstreamer)
9805 ("gst-plugins-base" ,gst-plugins-base)
9806 ("gst-plugins-good" ,gst-plugins-good)
9807 ("gtk+" ,gtk+)
9808 ("python" ,python)
9809 ("python-pygobject" ,python-pygobject)
9810 ("python-pyatspi" ,python-pyatspi)
9811 ("python-speechd" ,speech-dispatcher)
9812 ("xkbcomp" ,xkbcomp)))
9813 (synopsis
9814 "Screen reader for individuals who are blind or visually impaired")
9815 (home-page "https://wiki.gnome.org/Projects/Orca")
9816 (description
9817 "Orca is a screen reader that provides access to the graphical desktop
9818 via speech and refreshable braille. Orca works with applications and toolkits
9819 that support the Assistive Technology Service Provider Interface (AT-SPI).")
9820 (license license:lgpl2.1+)))
9821
9822 (define-public gspell
9823 (package
9824 (name "gspell")
9825 (version "1.8.2")
9826 (source (origin
9827 (method url-fetch)
9828 (uri (string-append "mirror://gnome/sources/" name "/"
9829 (version-major+minor version) "/"
9830 name "-" version ".tar.xz"))
9831 (sha256
9832 (base32
9833 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
9834 (patches (search-patches "gspell-dash-test.patch"))))
9835 (build-system glib-or-gtk-build-system)
9836 (arguments
9837 '(#:configure-flags (list "--enable-vala")
9838 #:phases
9839 (modify-phases %standard-phases
9840 (add-before 'check 'pre-check
9841 (lambda* (#:key inputs #:allow-other-keys)
9842 ;; Tests require a running X server.
9843 (system "Xvfb :1 &")
9844 (setenv "DISPLAY" ":1")
9845
9846 ;; For the missing /etc/machine-id.
9847 (setenv "DBUS_FATAL_WARNINGS" "0")
9848
9849 ;; Allow Enchant and its Aspell backend to find the en_US
9850 ;; dictionary.
9851 (setenv "ASPELL_DICT_DIR"
9852 (string-append (assoc-ref inputs "aspell-dict-en")
9853 "/lib/aspell"))
9854 #t)))))
9855 (inputs
9856 `(("gtk+" ,gtk+)
9857 ("glib" ,glib)
9858 ("iso-codes" ,iso-codes)))
9859 (native-inputs
9860 `(("glib" ,glib "bin")
9861 ("gobject-introspection" ,gobject-introspection)
9862 ("pkg-config" ,pkg-config)
9863 ("vala" ,vala) ;for VAPI, needed by Geary
9864 ("xmllint" ,libxml2)
9865
9866 ;; For tests.
9867 ("aspell-dict-en" ,aspell-dict-en)
9868 ("xorg-server" ,xorg-server-for-tests)))
9869 (propagated-inputs
9870 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
9871 (home-page "https://wiki.gnome.org/Projects/gspell")
9872 (synopsis "GNOME's alternative spell checker")
9873 (description
9874 "gspell provides a flexible API to add spell-checking to a GTK+
9875 application. It provides a GObject API, spell-checking to text entries and
9876 text views, and buttons to choose the language.")
9877 (license license:gpl2+)))
9878
9879 (define-public gnome-planner
9880 (package
9881 (name "gnome-planner")
9882 (version "0.14.6")
9883 (source (origin
9884 (method url-fetch)
9885 (uri (string-append "mirror://gnome/sources/planner/"
9886 (version-major+minor version) "/planner-"
9887 version ".tar.xz"))
9888 (sha256
9889 (base32
9890 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9891 (build-system glib-or-gtk-build-system)
9892 (arguments
9893 ;; Disable the Python bindings because the Planner program functions
9894 ;; without them, and (as of 2017-06-13) we have not packaged all of
9895 ;; packages that are necessary for building the Python bindings.
9896 `(#:configure-flags
9897 (list "--disable-python"
9898 ,@(if (string=? "aarch64-linux" (%current-system))
9899 '("--build=aarch64-unknown-linux-gnu")
9900 '()))))
9901 (inputs
9902 `(("libgnomecanvas" ,libgnomecanvas)
9903 ("libgnomeui" ,libgnomeui)
9904 ("libglade" ,libglade)
9905 ("gnome-vfs" ,gnome-vfs)
9906 ("gconf" ,gconf)
9907 ("libxml2" ,libxml2)
9908 ("libxslt" ,libxslt)
9909 ("gtk+" ,gtk+)
9910 ("glib" ,glib)))
9911 (native-inputs
9912 `(("intltool" ,intltool)
9913 ("scrollkeeper" ,scrollkeeper)
9914 ("pkg-config" ,pkg-config)))
9915 (home-page "https://wiki.gnome.org/Apps/Planner")
9916 (synopsis "Project management software for the GNOME desktop")
9917 (description
9918 "GNOME Planner is a project management tool based on the Work Breakdown
9919 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9920 the resources, tasks, and constraints that you define, Planner generates
9921 various views into a project. For example, Planner can show a Gantt chart of
9922 the project. It can show a detailed summary of tasks including their
9923 duration, cost, and current progress. It can also show a report of resource
9924 utilization that highlights under-utilized and over-utilized resources. These
9925 views can be printed as PDF or PostScript files, or exported to HTML.")
9926 (license license:gpl2+)))
9927
9928 (define-public lollypop
9929 (package
9930 (name "lollypop")
9931 (version "1.2.32")
9932 (source
9933 (origin
9934 (method url-fetch)
9935 (uri (string-append "https://adishatz.org/lollypop/"
9936 "lollypop-" version ".tar.xz"))
9937 (sha256
9938 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
9939 (build-system meson-build-system)
9940 (arguments
9941 `(#:imported-modules
9942 (,@%meson-build-system-modules
9943 (guix build python-build-system))
9944 #:modules
9945 ((guix build meson-build-system)
9946 ((guix build python-build-system) #:prefix python:)
9947 (guix build utils))
9948 #:glib-or-gtk? #t
9949 #:tests? #f ; no test suite
9950 #:phases
9951 (modify-phases %standard-phases
9952 (add-after 'install 'wrap-program
9953 (lambda* (#:key outputs #:allow-other-keys)
9954 (let ((out (assoc-ref outputs "out"))
9955 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9956 (wrap-program (string-append out "/bin/lollypop")
9957 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9958 #t))
9959 (add-after 'install 'wrap-python
9960 (assoc-ref python:%standard-phases 'wrap)))))
9961 (native-inputs
9962 `(("intltool" ,intltool)
9963 ("itstool" ,itstool)
9964 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9965 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9966 ("pkg-config" ,pkg-config)))
9967 (inputs
9968 `(("gobject-introspection" ,gobject-introspection)
9969 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9970 ("gst-plugins-base" ,gst-plugins-base)
9971 ("libnotify" ,libnotify)
9972 ("libsecret" ,libsecret)
9973 ("libsoup" ,libsoup)
9974 ("python" ,python)
9975 ("python-beautifulsoup4" ,python-beautifulsoup4)
9976 ("python-gst" ,python-gst)
9977 ("python-pil" ,python-pillow)
9978 ("python-pycairo" ,python-pycairo)
9979 ("python-pygobject" ,python-pygobject)
9980 ("python-pylast" ,python-pylast)
9981 ("totem-pl-parser" ,totem-pl-parser)
9982 ("webkitgtk" ,webkitgtk)))
9983 (propagated-inputs
9984 `(;; gst-plugins-base is required to start Lollypop,
9985 ;; the others are required to play streaming.
9986 ("gst-plugins-good" ,gst-plugins-good)
9987 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9988 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9989 (synopsis "GNOME music playing application")
9990 (description
9991 "Lollypop is a music player designed to play well with GNOME desktop.
9992 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9993 from artists and tracks from the web. It also fetches cover artworks
9994 automatically and it can stream songs from online music services and charts.")
9995 (license license:gpl3+)))
9996
9997 (define-public gnome-video-effects
9998 (package
9999 (name "gnome-video-effects")
10000 (version "0.4.3")
10001 (source (origin
10002 (method url-fetch)
10003 (uri (string-append "mirror://gnome/sources/" name "/"
10004 (version-major+minor version) "/" name "-"
10005 version ".tar.xz"))
10006 (sha256
10007 (base32
10008 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
10009 (build-system glib-or-gtk-build-system)
10010 (arguments
10011 `(#:out-of-source? #f))
10012 (native-inputs
10013 `(("glib:bin" ,glib "bin")
10014 ("intltool" ,intltool)
10015 ("gettext" ,gettext-minimal)
10016 ("pkg-config" ,pkg-config)))
10017 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10018 (synopsis "Video effects for Cheese and other GNOME applications")
10019 (description
10020 "A collection of GStreamer video filters and effects to be used in
10021 photo-booth-like software, such as Cheese.")
10022 (license license:gpl2+)))
10023
10024 (define-public cheese
10025 (package
10026 (name "cheese")
10027 (version "3.34.0")
10028 (source (origin
10029 (method url-fetch)
10030 (uri (string-append "mirror://gnome/sources/" name "/"
10031 (version-major+minor version) "/" name "-"
10032 version ".tar.xz"))
10033 (sha256
10034 (base32
10035 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
10036 (arguments
10037 `(#:glib-or-gtk? #t
10038 ;; Tests require GDK.
10039 #:tests? #f
10040 #:phases
10041 (modify-phases %standard-phases
10042 (add-after 'unpack 'skip-gtk-update-icon-cache
10043 (lambda _
10044 ;; Don't create 'icon-theme.cache'
10045 (substitute* "meson_post_install.py"
10046 (("gtk-update-icon-cache") (which "true")))
10047 #t))
10048 (add-after 'install 'wrap-cheese
10049 (lambda* (#:key inputs outputs #:allow-other-keys)
10050 (let ((out (assoc-ref outputs "out"))
10051 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10052 (wrap-program (string-append out "/bin/cheese")
10053 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10054 #t)))))
10055 (build-system meson-build-system)
10056 (native-inputs
10057 `(("docbook-xsl" ,docbook-xsl)
10058 ("glib:bin" ,glib "bin")
10059 ("gtk-doc" ,gtk-doc)
10060 ("intltool" ,intltool)
10061 ("itstool" ,itstool)
10062 ("libxml2" ,libxml2)
10063 ("libxslt" ,libxslt)
10064 ("pkg-config" ,pkg-config)
10065 ("vala" ,vala)))
10066 (propagated-inputs
10067 `(("gnome-video-effects" ,gnome-video-effects)
10068 ("clutter" ,clutter)
10069 ("clutter-gst" ,clutter-gst)
10070 ("clutter-gtk" ,clutter-gtk)
10071 ("libcanberra" ,libcanberra)
10072 ("gdk-pixbuf" ,gdk-pixbuf)
10073 ("glib" ,glib)
10074 ("gstreamer" ,gstreamer)))
10075 (inputs
10076 `(("gnome-desktop" ,gnome-desktop)
10077 ("gobject-introspection" ,gobject-introspection)
10078 ("gst-plugins-base" ,gst-plugins-base)
10079 ("gst-plugins-bad" ,gst-plugins-bad)
10080 ("gtk+" ,gtk+)
10081 ("libx11" ,libx11)
10082 ("libxtst" ,libxtst)))
10083 (home-page "https://wiki.gnome.org/Apps/Cheese")
10084 (synopsis "Webcam photo booth software for GNOME")
10085 (description
10086 "Cheese uses your webcam to take photos and videos. Cheese can also
10087 apply fancy special effects and lets you share the fun with others.")
10088 (license license:gpl2+)))
10089
10090 (define-public sound-juicer
10091 (package
10092 (name "sound-juicer")
10093 (version "3.24.0")
10094 (source
10095 (origin
10096 (method url-fetch)
10097 (uri (string-append "mirror://gnome/sources/" name "/"
10098 (version-major+minor version) "/"
10099 name "-" version ".tar.xz"))
10100 (sha256
10101 (base32
10102 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10103 (build-system glib-or-gtk-build-system)
10104 (native-inputs
10105 `(("desktop-file-utils" ,desktop-file-utils)
10106 ("intltool" ,intltool)
10107 ("itstool" ,itstool)
10108 ("pkg-config" ,pkg-config)
10109 ("xmllint" ,libxml2)))
10110 (inputs
10111 `(("gtk+" ,gtk+)
10112 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10113 ("gstreamer" ,gstreamer)
10114 ("gst-plugins-base" ,gst-plugins-base)
10115 ("gst-plugins-good" ,gst-plugins-good)
10116 ("iso-codes" ,iso-codes)
10117 ("libbrasero-media3" ,brasero)
10118 ("libcanberra" ,libcanberra)
10119 ("libdiscid" ,libdiscid)
10120 ("libmusicbrainz" ,libmusicbrainz)
10121 ("neon" ,neon)))
10122 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10123 (synopsis "Audio music cd ripper")
10124 (description "Sound Juicer extracts audio from compact discs and convert it
10125 into audio files that a personal computer or digital audio player can play.
10126 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10127 mp3, Ogg Vorbis and FLAC")
10128 (license license:gpl2+)))
10129
10130 (define-public soundconverter
10131 (package
10132 (name "soundconverter")
10133 (version "3.0.2")
10134 (source
10135 (origin
10136 (method url-fetch)
10137 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10138 version "/+download/"
10139 "soundconverter-" version ".tar.xz"))
10140
10141 (sha256
10142 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10143 (build-system glib-or-gtk-build-system)
10144 (arguments
10145 `(#:imported-modules ((guix build python-build-system)
10146 (guix build glib-or-gtk-build-system)
10147 ,@%gnu-build-system-modules)
10148
10149 #:modules ((guix build glib-or-gtk-build-system)
10150 (guix build utils)
10151 ((guix build gnu-build-system) #:prefix gnu:)
10152 ((guix build python-build-system) #:prefix python:))
10153
10154 #:phases
10155 (modify-phases %standard-phases
10156 (add-after 'install 'wrap-soundconverter-for-python
10157 (assoc-ref python:%standard-phases 'wrap))
10158 (add-after 'install 'wrap-soundconverter
10159 (lambda* (#:key inputs outputs #:allow-other-keys)
10160 (let ((out (assoc-ref outputs "out"))
10161 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10162 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10163 (wrap-program (string-append out "/bin/soundconverter")
10164 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10165 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10166 #t)))))
10167 (native-inputs
10168 `(("intltool" ,intltool)
10169 ("pkg-config" ,pkg-config)
10170 ("glib:bin" ,glib "bin")))
10171 (inputs
10172 `(("gtk+" ,gtk+)
10173 ("python" ,python)
10174 ("python-pygobject" ,python-pygobject)
10175 ("gstreamer" ,gstreamer)
10176 ("gst-plugins-base" ,gst-plugins-base)))
10177 (home-page "https://soundconverter.org/")
10178 (synopsis "Convert between audio formats with a graphical interface")
10179 (description
10180 "SoundConverter supports converting between many audio formats including
10181 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10182 configurable file renaming. ")
10183 (license license:gpl3)))
10184
10185 (define-public workrave
10186 (package
10187 (name "workrave")
10188 (version "1.10.42")
10189 (source
10190 (origin
10191 (method git-fetch)
10192 (uri (git-reference
10193 (url "https://github.com/rcaelers/workrave")
10194 (commit (string-append "v" (string-map
10195 (match-lambda (#\. #\_) (chr chr))
10196 version)))))
10197 (file-name (git-file-name name version))
10198 (sha256
10199 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
10200 (build-system glib-or-gtk-build-system)
10201 (arguments
10202 ;; The only tests are maintainer tests (in po/), which fail.
10203 `(#:tests? #f))
10204 (inputs `(("glib" ,glib)
10205 ("gtk+" ,gtk+)
10206 ("gdk-pixbuf" ,gdk-pixbuf)
10207 ("gtkmm" ,gtkmm)
10208 ("glibmm" ,glibmm)
10209 ("libx11" ,libx11)
10210 ("libxtst" ,libxtst)
10211 ("dconf" ,dconf)
10212 ("libice" ,libice)
10213 ("libsm" ,libsm)
10214 ("libxscrnsaver" ,libxscrnsaver)))
10215 (native-inputs `(("boost" ,boost)
10216 ("pkg-config" ,pkg-config)
10217 ("gettext" ,gettext-minimal)
10218 ("autoconf" ,autoconf)
10219 ("autoconf-archive" , autoconf-archive)
10220 ("automake" ,automake)
10221 ("libtool" ,libtool)
10222 ("intltool" ,intltool)
10223 ("gobject-introspection" ,gobject-introspection)
10224 ("python3" ,python-3)
10225 ("python-jinja2" ,python-jinja2)))
10226 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10227 (description
10228 "Workrave is a program that assists in the recovery and prevention of
10229 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10230 micro-pauses and rest breaks, and restricts you to your daily limit.")
10231 (home-page "http://www.workrave.org")
10232 (license license:gpl3+)))
10233
10234 (define-public ghex
10235 (package
10236 (name "ghex")
10237 (version "3.18.4")
10238 (source (origin
10239 (method url-fetch)
10240 (uri (string-append "mirror://gnome/sources/ghex/"
10241 (version-major+minor version) "/"
10242 "ghex-" version ".tar.xz"))
10243 (sha256
10244 (base32
10245 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10246 (build-system meson-build-system)
10247 (arguments
10248 '(#:glib-or-gtk? #t
10249 #:phases
10250 (modify-phases %standard-phases
10251 (add-after 'unpack 'skip-gtk-update-icon-cache
10252 ;; Don't create 'icon-theme.cache'.
10253 (lambda _
10254 (substitute* "meson_post_install.py"
10255 (("gtk-update-icon-cache") (which "true")))
10256 #t)))))
10257 (native-inputs
10258 `(("pkg-config" ,pkg-config)
10259 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10260 ("gnome-common" ,gnome-common)
10261 ("which" ,which)
10262 ("intltool" ,intltool)
10263 ("yelp-tools" ,yelp-tools)
10264 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10265 (inputs
10266 `(("atk" ,atk)
10267 ("gtk" ,gtk+)))
10268 (synopsis "GNOME hexadecimal editor")
10269 (description "The GHex program can view and edit files in two ways:
10270 hexadecimal or ASCII. It is useful for editing binary files in general.")
10271 (home-page "https://wiki.gnome.org/Apps/Ghex")
10272 (license license:gpl2)))
10273
10274 (define-public libdazzle
10275 (package
10276 (name "libdazzle")
10277 (version "3.34.1")
10278 (source (origin
10279 (method url-fetch)
10280 (uri (string-append "mirror://gnome/sources/libdazzle/"
10281 (version-major+minor version) "/"
10282 "libdazzle-" version ".tar.xz"))
10283 (sha256
10284 (base32
10285 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
10286 (build-system meson-build-system)
10287 (arguments
10288 `(#:phases
10289 (modify-phases %standard-phases
10290 (add-before 'check 'pre-check
10291 (lambda _
10292 ;; Tests require a running X server.
10293 (system "Xvfb :1 &")
10294 (setenv "DISPLAY" ":1")
10295 #t)))))
10296 (native-inputs
10297 `(("glib" ,glib "bin") ; glib-compile-resources
10298 ("pkg-config" ,pkg-config)
10299 ;; For tests.
10300 ("xorg-server" ,xorg-server-for-tests)))
10301 (inputs
10302 `(("glib" ,glib)
10303 ("gobject-introspection" ,gobject-introspection)
10304 ("gtk+" ,gtk+)
10305 ("vala" ,vala)))
10306 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10307 (synopsis "Companion library to GObject and Gtk+")
10308 (description "The libdazzle library is a companion library to GObject and
10309 Gtk+. It provides various features that the authors wish were in the
10310 underlying library but cannot for various reasons. In most cases, they are
10311 wildly out of scope for those libraries. In other cases, they are not quite
10312 generic enough to work for everyone.")
10313 (license license:gpl3+)))
10314
10315 (define-public evolution
10316 (package
10317 (name "evolution")
10318 (version "3.34.2")
10319 (source (origin
10320 (method url-fetch)
10321 (uri (string-append "mirror://gnome/sources/evolution/"
10322 (version-major+minor version) "/"
10323 "evolution-" version ".tar.xz"))
10324 (sha256
10325 (base32
10326 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
10327 (build-system cmake-build-system)
10328 (arguments
10329 `(#:imported-modules (,@%cmake-build-system-modules
10330 (guix build glib-or-gtk-build-system))
10331 #:modules ((guix build cmake-build-system)
10332 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10333 (guix build utils))
10334 #:configure-flags
10335 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10336 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10337 ; in four years and cannot be built.
10338 #:phases
10339 (modify-phases %standard-phases
10340 ;; The build system attempts to install user interface modules to the
10341 ;; output directory of the "evolution-data-server" package. This
10342 ;; change redirects that change.
10343 (add-after 'unpack 'patch-ui-module-dir
10344 (lambda* (#:key outputs #:allow-other-keys)
10345 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10346 (("\\$\\{edsuimoduledir\\}")
10347 (string-append (assoc-ref outputs "out")
10348 "/lib/evolution-data-server/ui-modules")))
10349 #t))
10350 (add-after 'install 'glib-or-gtk-compile-schemas
10351 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10352 (add-after 'install 'glib-or-gtk-wrap
10353 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10354 (native-inputs
10355 `(("glib" ,glib "bin") ; glib-mkenums
10356 ("pkg-config" ,pkg-config)
10357 ("intltool" ,intltool)
10358 ("itstool" ,itstool)))
10359 (inputs
10360 `(("enchant" ,enchant)
10361 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10362 ("gcr" ,gcr)
10363 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10364 ("gnome-autoar" ,gnome-autoar)
10365 ("gnome-desktop" ,gnome-desktop)
10366 ("gspell" ,gspell)
10367 ("highlight" ,highlight)
10368 ("libcanberra" ,libcanberra)
10369 ("libgweather" ,libgweather)
10370 ("libnotify" ,libnotify)
10371 ("libsoup" ,libsoup)
10372 ("nss" ,nss)
10373 ("openldap" ,openldap)
10374 ("webkitgtk" ,webkitgtk)
10375 ("ytnef" ,ytnef)))
10376 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10377 (synopsis "Manage your email, contacts and schedule")
10378 (description "Evolution is a personal information management application
10379 that provides integrated mail, calendaring and address book
10380 functionality.")
10381 ;; See COPYING for details.
10382 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10383 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10384 license:lgpl2.1+)))) ; smime/lib/*
10385
10386 (define-public gthumb
10387 (package
10388 (name "gthumb")
10389 (version "3.8.2")
10390 (source (origin
10391 (method url-fetch)
10392 (uri (string-append "mirror://gnome/sources/gthumb/"
10393 (version-major+minor version) "/"
10394 "gthumb-" version ".tar.xz"))
10395 (sha256
10396 (base32
10397 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
10398 (build-system meson-build-system)
10399 (arguments
10400 `(#:glib-or-gtk? #t
10401 #:configure-flags
10402 ;; Ensure the RUNPATH contains all installed library locations.
10403 (list (string-append "-Dc_link_args=-Wl,-rpath="
10404 (assoc-ref %outputs "out")
10405 "/lib/gthumb/extensions")
10406 (string-append "-Dcpp_link_args=-Wl,-rpath="
10407 (assoc-ref %outputs "out")
10408 "/lib/gthumb/extensions"))))
10409 (native-inputs
10410 `(("pkg-config" ,pkg-config)
10411 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10412 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10413 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10414 ("intltool" ,intltool)
10415 ("itstool" ,itstool)))
10416 (inputs
10417 `(("exiv2" ,exiv2)
10418 ("gtk" ,gtk+)
10419 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10420 ("gstreamer" ,gstreamer)
10421 ("clutter" ,clutter)
10422 ("clutter-gst" ,clutter-gst)
10423 ("clutter-gtk" ,clutter-gtk)
10424 ("libjpeg" ,libjpeg-turbo)
10425 ("libtiff" ,libtiff)
10426 ("libraw" ,libraw)))
10427 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10428 (synopsis "GNOME image viewer and browser")
10429 (description "GThumb is an image viewer, browser, organizer, editor and
10430 advanced image management tool")
10431 (license license:gpl2+)))
10432
10433 (define-public terminator
10434 (package
10435 (name "terminator")
10436 (version "1.91")
10437 (source (origin
10438 (method url-fetch)
10439 (uri (string-append "https://launchpad.net/" name "/"
10440 "gtk3/" version "/" "+download/"
10441 name "-" version ".tar.gz"))
10442 (sha256
10443 (base32
10444 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
10445 (build-system python-build-system)
10446 (native-inputs
10447 `(("intltool" ,intltool)
10448 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10449 ("gettext" ,gettext-minimal)
10450 ("pkg-config" ,pkg-config)))
10451 (inputs
10452 `(("cairo" ,cairo)
10453 ("gobject-introspection" ,gobject-introspection)
10454 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10455 ("python2-pycairo" ,python2-pycairo)
10456 ("python2-pygobject" ,python2-pygobject)
10457 ("python2-psutil" ,python2-psutil)
10458 ("vte" ,vte)))
10459 (arguments
10460 `(#:python ,python-2 ; Python 3 isn't supported
10461 #:imported-modules ((guix build glib-or-gtk-build-system)
10462 ,@%python-build-system-modules)
10463 #:modules ((guix build python-build-system)
10464 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10465 (guix build utils))
10466 #:phases
10467 (modify-phases %standard-phases
10468 (add-after
10469 'install 'wrap-program
10470 (lambda* (#:key outputs #:allow-other-keys)
10471 (let ((prog (string-append (assoc-ref outputs "out")
10472 "/bin/terminator")))
10473 (wrap-program prog
10474 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
10475 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10476 #t)))
10477 (add-after 'wrap-program 'glib-or-gtk-wrap
10478 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10479 (home-page "https://gnometerminator.blogspot.com/")
10480 (synopsis "Store and run multiple GNOME terminals in one window")
10481 (description
10482 "Terminator allows you to run multiple GNOME terminals in a grid and
10483 +tabs, and it supports drag and drop re-ordering of terminals.")
10484 (license license:gpl2)))
10485
10486 (define-public libhandy
10487 (package
10488 (name "libhandy")
10489 (version "0.0.12")
10490 (source
10491 (origin
10492 (method git-fetch)
10493 (uri (git-reference
10494 (url "https://source.puri.sm/Librem5/libhandy")
10495 (commit (string-append "v" version))))
10496 (file-name (git-file-name name version))
10497 (sha256
10498 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
10499 (build-system meson-build-system)
10500 (arguments
10501 `(#:configure-flags
10502 '("-Dglade_catalog=disabled"
10503 "-Dgtk_doc=true")
10504 #:phases
10505 (modify-phases %standard-phases
10506 (add-before 'check 'pre-check
10507 (lambda _
10508 ;; Tests require a running X server.
10509 (system "Xvfb :1 &")
10510 (setenv "DISPLAY" ":1")
10511 #t)))))
10512 (inputs
10513 `(("gtk+" ,gtk+)))
10514 (native-inputs
10515 `(("glib:bin" ,glib "bin")
10516 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10517 ("vala" ,vala)
10518 ("gtk-doc" ,gtk-doc)
10519 ("pkg-config" ,pkg-config)
10520 ("gettext" ,gettext-minimal)
10521
10522 ;; Test suite dependencies.
10523 ("xorg-server" ,xorg-server-for-tests)
10524 ("hicolor-icon-theme" ,hicolor-icon-theme)))
10525 (home-page "https://source.puri.sm/Librem5/libhandy")
10526 (synopsis "Library full of GTK+ widgets for mobile phones")
10527 (description "The aim of the handy library is to help with developing user
10528 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10529 for usage on small and big screens.")
10530 (license license:lgpl2.1+)))
10531
10532 (define-public libgit2-glib
10533 (package
10534 (name "libgit2-glib")
10535 (version "0.99.0.1")
10536 (source (origin
10537 (method url-fetch)
10538 (uri (string-append "mirror://gnome/sources/" name "/"
10539 (version-major+minor version) "/"
10540 name "-" version ".tar.xz"))
10541 (sha256
10542 (base32
10543 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10544 (build-system meson-build-system)
10545 (native-inputs
10546 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
10547 ("gobject-introspection" ,gobject-introspection)
10548 ("pkg-config" ,pkg-config)
10549 ("python-pygobject" ,python-pygobject)
10550 ("python-wrapper" ,python-wrapper)
10551 ("vala" ,vala)))
10552 (inputs
10553 `(("glib" ,glib)
10554 ("libssh2" ,libssh2)))
10555 (propagated-inputs
10556 `(;; In Requires of libgit2-glib.pc.
10557 ("libgit2" ,libgit2)))
10558 (synopsis "GLib wrapper around the libgit2 Git access library")
10559 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
10560 access library. It only implements the core plumbing functions, not really the
10561 higher level porcelain stuff.")
10562 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
10563 (license license:gpl2+)))
10564
10565 (define-public gitg
10566 (package
10567 (name "gitg")
10568 (version "3.32.1")
10569 (source (origin
10570 (method url-fetch)
10571 (uri (string-append "mirror://gnome/sources/" name "/"
10572 (version-major+minor version) "/"
10573 name "-" version ".tar.xz"))
10574 (sha256
10575 (base32
10576 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
10577 (build-system meson-build-system)
10578 (arguments
10579 `(#:glib-or-gtk? #t
10580 #:phases
10581 (modify-phases %standard-phases
10582 (add-after 'unpack 'disable-post-install-partially
10583 (lambda _
10584 (substitute* "meson_post_install.py"
10585 (("'python'") ; there are no python sources to compile
10586 (string-append "'" (which "true") "'"))
10587 (("gtk-update-icon-cache") (which "true")))
10588 #t))
10589 (add-after 'unpack 'fix-test-sources
10590 (lambda _
10591 (substitute* "tests/libgitg/test-commit.vala"
10592 (("/bin/bash") (which "bash")))
10593 #t))
10594 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10595 (lambda* (#:key outputs #:allow-other-keys)
10596 (let ((prog (string-append (assoc-ref outputs "out")
10597 "/bin/gitg")))
10598 (wrap-program prog
10599 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10600 #t))))))
10601 (inputs
10602 `(("glib" ,glib)
10603 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10604 ("gtk+" ,gtk+)
10605 ("gtkspell3" ,gtkspell3)
10606 ("gtksourceview" ,gtksourceview-3)
10607 ("json-glib" ,json-glib)
10608 ("libdazzle" ,libdazzle)
10609 ("libgee" ,libgee)
10610 ("libgit2-glib" ,libgit2-glib)
10611 ("libpeas" ,libpeas)
10612 ("libsecret" ,libsecret)
10613 ("libsoup" ,libsoup)
10614 ("libxml2" ,libxml2)))
10615 (native-inputs
10616 `(("glib:bin" ,glib "bin")
10617 ("gtk+:bin" ,gtk+ "bin")
10618 ("gobject-introspection" ,gobject-introspection)
10619 ("intltool" ,intltool)
10620 ("pkg-config" ,pkg-config)
10621 ("vala" ,vala)))
10622 (synopsis "Graphical user interface for git")
10623 (description
10624 "gitg is a graphical user interface for git. It aims at being a small,
10625 fast and convenient tool to visualize the history of git repositories.
10626 Besides visualization, gitg also provides several utilities to manage your
10627 repository and commit your work.")
10628 (home-page "https://wiki.gnome.org/Apps/Gitg")
10629 (license license:gpl2+)))
10630
10631 (define-public gamin
10632 (package
10633 (name "gamin")
10634 (version "0.1.10")
10635 (source (origin
10636 (method url-fetch)
10637 (uri (string-append "mirror://gnome/sources/" name "/"
10638 (version-major+minor version) "/"
10639 name "-" version ".tar.bz2"))
10640 (sha256
10641 (base32
10642 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
10643 (build-system gnu-build-system)
10644 (arguments
10645 `(#:phases
10646 (modify-phases %standard-phases
10647 (add-after 'unpack 'remove-deprecated-macro
10648 (lambda _
10649 (substitute* '("server/gam_node.c"
10650 "server/gam_subscription.h"
10651 "server/gam_node.h"
10652 "server/gam_subscription.c")
10653 (("G_CONST_RETURN") "const"))
10654 #t)))))
10655 (inputs
10656 `(("glib" ,glib)))
10657 (native-inputs
10658 `(("intltool" ,intltool)
10659 ("pkg-config" ,pkg-config)))
10660 (home-page "https://people.gnome.org/~veillard/gamin/")
10661 (synopsis "File alteration monitor")
10662 (description
10663 "Gamin is a file and directory monitoring system defined to be a subset
10664 of the FAM (File Alteration Monitor) system. This is a service provided by a
10665 library which detects when a file or a directory has been modified.")
10666 (license license:gpl2+)))
10667
10668 (define-public gnome-mahjongg
10669 (package
10670 (name "gnome-mahjongg")
10671 (version "3.35.1")
10672 (source (origin
10673 (method git-fetch)
10674 (uri (git-reference
10675 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
10676 (commit version)))
10677 (file-name (git-file-name name version))
10678 (sha256
10679 (base32
10680 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
10681 (build-system meson-build-system)
10682 (arguments
10683 `(#:glib-or-gtk? #t))
10684 (native-inputs
10685 `(("appstream-glib" ,appstream-glib)
10686 ("gettext" ,gettext-minimal)
10687 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
10688 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
10689 ("itstool" ,itstool)
10690 ("pkg-config" ,pkg-config)
10691 ("vala" ,vala)))
10692 (propagated-inputs
10693 `(("dconf" ,dconf)))
10694 (inputs
10695 `(("glib" ,glib)
10696 ("gtk+" ,gtk+)
10697 ("librsvg" ,librsvg)))
10698 (synopsis "Mahjongg tile-matching game")
10699 (description "GNOME Mahjongg is a game based on the classic Chinese
10700 tile-matching game Mahjong. It features multiple board layouts, tile themes,
10701 and a high score table.")
10702 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
10703 (license license:gpl2+)))
10704
10705 (define-public gnome-themes-extra
10706 (package
10707 (name "gnome-themes-extra")
10708 (version "3.28")
10709 (source
10710 (origin
10711 (method url-fetch)
10712 (uri (string-append "mirror://gnome/sources/" name "/"
10713 (version-major+minor version) "/" name "-"
10714 version ".tar.xz"))
10715 (sha256
10716 (base32
10717 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
10718 (build-system gnu-build-system)
10719 (arguments
10720 '(#:configure-flags
10721 ;; Don't create 'icon-theme.cache'.
10722 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
10723 (true (string-append coreutils "/bin/true")))
10724 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
10725 (native-inputs
10726 `(("glib:bin" ,glib "bin")
10727 ("intltool" ,intltool)
10728 ("pkg-config" ,pkg-config)))
10729 (inputs
10730 `(("glib" ,glib)
10731 ("gtk+" ,gtk+)
10732 ("gtk+-2" ,gtk+-2)
10733 ("librsvg" ,librsvg)
10734 ("libxml2" ,libxml2)))
10735 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
10736 (synopsis "GNOME Extra Themes")
10737 (description "This package provides themes and related elements that don't
10738 really fit in other upstream packages. It offers legacy support for GTK+ 2
10739 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
10740 index files needed for Adwaita to be used outside of GNOME.")
10741 (license license:lgpl2.1+)))
10742
10743 (define-public polari
10744 (package
10745 (name "polari")
10746 (version "3.32.2")
10747 (source (origin
10748 (method url-fetch)
10749 (uri (string-append "mirror://gnome/sources/polari/"
10750 (version-major+minor version)
10751 "/polari-" version ".tar.xz"))
10752 (sha256
10753 (base32
10754 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
10755 (build-system meson-build-system)
10756 (arguments
10757 `(#:glib-or-gtk? #t
10758 #:phases
10759 (modify-phases %standard-phases
10760 (add-after 'unpack 'skip-gtk-update-icon-cache
10761 (lambda _
10762 (substitute* "meson/meson-postinstall.sh"
10763 (("gtk-update-icon-cache") (which "true")))
10764 #t))
10765 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10766 (lambda* (#:key outputs #:allow-other-keys)
10767 (let ((prog (string-append (assoc-ref outputs "out")
10768 "/bin/polari")))
10769 (wrap-program prog
10770 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10771 #t))))))
10772 (inputs
10773 `(("glib" ,glib)
10774 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10775 ("gspell" ,gspell)
10776 ("gtk+" ,gtk+)
10777 ("gjs" ,gjs)
10778 ("libsecret" ,libsecret)
10779 ("libsoup" ,libsoup)
10780 ("telepathy-glib" ,telepathy-glib)
10781 ("telepathy-logger" ,telepathy-logger)))
10782 (native-inputs
10783 `(("glib:bin" ,glib "bin")
10784 ("gobject-introspection" ,gobject-introspection)
10785 ("intltool" ,intltool)
10786 ("pkg-config" ,pkg-config)
10787 ("yelp-tools" ,yelp-tools)))
10788 (propagated-inputs
10789 `(("telepathy-idle" ,telepathy-idle)
10790 ("telepathy-mission-control" ,telepathy-mission-control)))
10791 (synopsis "Simple IRC Client")
10792 (description
10793 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10794 integrate seamlessly with the GNOME desktop.")
10795 (home-page "https://wiki.gnome.org/Apps/Polari")
10796 (license license:gpl2+)))
10797
10798 (define-public gnome-boxes
10799 (package
10800 (name "gnome-boxes")
10801 (version "3.36.6")
10802 (source
10803 (origin
10804 (method url-fetch)
10805 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10806 (version-major+minor version) "/"
10807 "gnome-boxes-" version ".tar.xz"))
10808 (sha256
10809 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
10810 (build-system meson-build-system)
10811 (arguments
10812 '(#:glib-or-gtk? #t
10813 #:configure-flags (list "-Drdp=false"
10814 (string-append "-Dc_link_args=-Wl,-rpath="
10815 (assoc-ref %outputs "out")
10816 "/lib/gnome-boxes"))))
10817 (native-inputs
10818 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10819 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10820 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10821 ("itstool" ,itstool)
10822 ("intltool" ,intltool)
10823 ("vala" ,vala)
10824 ("pkg-config" ,pkg-config)))
10825 (inputs
10826 `(("libarchive" ,libarchive)
10827 ("glib-networking" ,glib-networking) ;for TLS support
10828 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10829 ("gtk" ,gtk+)
10830 ("gtk-vnc" ,gtk-vnc)
10831 ("libosinfo" ,libosinfo)
10832 ("libsecret" ,libsecret)
10833 ("libsoup" ,libsoup)
10834 ("libusb" ,libusb)
10835 ("libvirt" ,libvirt)
10836 ("libvirt-glib" ,libvirt-glib)
10837 ("libxml" ,libxml2)
10838 ("spice-gtk" ,spice-gtk)
10839 ("sparql-query" ,sparql-query)
10840 ("vte" ,vte)
10841 ("webkitgtk" ,webkitgtk)
10842 ("tracker" ,tracker)
10843 ("libgudev" ,libgudev)))
10844 (home-page "https://wiki.gnome.org/Apps/Boxes")
10845 (synopsis "View, access, and manage remote and virtual systems")
10846 (description "GNOME Boxes is a simple application to view, access, and
10847 manage remote and virtual systems. Note that this application requires the
10848 @code{libvirt} and @code{virtlog} daemons to run. Use the command
10849 @command{info '(guix) Virtualization Services'} to learn how to configure
10850 these services on the Guix System.")
10851 (license (list
10852 ;; For data/icons/empty-boxes.png.
10853 license:cc-by2.0
10854 ;; For all others.
10855 license:lgpl2.0+))))
10856
10857 (define-public geary
10858 (package
10859 (name "geary")
10860 (version "3.34.1")
10861 (source (origin
10862 (method git-fetch)
10863 (uri (git-reference
10864 (url "https://gitlab.gnome.org/GNOME/geary")
10865 (commit version)))
10866 (file-name (git-file-name name version))
10867 (sha256
10868 (base32
10869 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10870 (build-system meson-build-system)
10871 (arguments
10872 `(#:glib-or-gtk? #t
10873 #:phases (modify-phases %standard-phases
10874 (add-after 'unpack 'disable-failing-tests
10875 (lambda _
10876 (substitute* "test/meson.build"
10877 (("test\\('client-tests', geary_test_client_bin\\)")
10878 ""))
10879 #t))
10880 (add-after 'unpack 'disable-postinstall-script
10881 (lambda _
10882 (substitute* "meson.build"
10883 (("meson.add_install_script\\(\
10884 join_paths\\('build-aux', 'post_install.py'\\)\\)")
10885 ""))
10886 #t))
10887 (add-before 'check 'setup-xvfb
10888 (lambda _
10889 (system "Xvfb :1 &")
10890 (setenv "DISPLAY" ":1")
10891 #t)))))
10892 (inputs
10893 `(("enchant" ,enchant)
10894 ("folks" ,folks)
10895 ("gcr" ,gcr)
10896 ("glib" ,glib)
10897 ("gmime" ,gmime-2.6)
10898 ("gnome-online-accounts:lib"
10899 ,gnome-online-accounts "lib")
10900 ("gspell" ,gspell)
10901 ("gtk+" ,gtk+)
10902 ("iso-codes" ,iso-codes)
10903 ("json-glib" ,json-glib)
10904 ("libcanberra" ,libcanberra)
10905 ("libgee" ,libgee)
10906 ("libhandy" ,libhandy)
10907 ("libpeas" ,libpeas)
10908 ("libsecret" ,libsecret)
10909 ("libunwind" ,libunwind)
10910 ("sqlite" ,sqlite)
10911 ("webkitgtk" ,webkitgtk)
10912 ("ytnef" ,ytnef)))
10913 (native-inputs
10914 `(("appstream-glib" ,appstream-glib)
10915 ("cmake-minimal" ,cmake-minimal)
10916 ("desktop-file-utils" ,desktop-file-utils)
10917 ("gettext" ,gettext-minimal)
10918 ("glib:bin" ,glib "bin")
10919 ("gobject-introspection" ,gobject-introspection)
10920 ("itstool" ,itstool)
10921 ("libarchive" ,libarchive)
10922 ("libxml2" ,libxml2)
10923 ("pkg-config" ,pkg-config)
10924 ("vala" ,vala)
10925 ("xvfb" ,xorg-server-for-tests)))
10926 (synopsis "GNOME email application built around conversations")
10927 (description
10928 "Geary collects related messages together into conversations,
10929 making it easy to find and follow your discussions. Full-text and keyword
10930 search makes it easy to find the email you are looking for. Geary's
10931 full-featured composer lets you send rich, styled text with images, links, and
10932 lists, but also send lightweight, easy to read text messages. Geary
10933 automatically picks up your existing GNOME Online Accounts, and adding more is
10934 easy. Geary has a clean, fast, modern interface that works like you want it
10935 to.")
10936 (home-page "https://wiki.gnome.org/Apps/Geary")
10937 (license (list
10938 ;; geary
10939 license:lgpl2.1+
10940 ;; icons
10941 license:cc-by3.0
10942 license:cc-by-sa3.0
10943 license:public-domain
10944 ;; snowball
10945 license:bsd-2))))
10946
10947 (define-public glabels
10948 (package
10949 (name "glabels")
10950 (version "3.4.1")
10951 (source
10952 (origin
10953 (method url-fetch)
10954 (uri (string-append "mirror://gnome/sources/" name "/"
10955 (version-major+minor version) "/"
10956 "glabels-" version ".tar.xz"))
10957 (sha256
10958 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10959 (build-system glib-or-gtk-build-system)
10960 (native-inputs
10961 `(("gettext" ,gettext-minimal)
10962 ("glib:bin" ,glib "bin")
10963 ("intltool" ,intltool)
10964 ("itstool" ,itstool)
10965 ("pkg-config" ,pkg-config)))
10966 (inputs
10967 `(("gtk+" ,gtk+)
10968 ("librsvg" ,librsvg)
10969 ("libxml2" ,libxml2)))
10970 (home-page "https://glabels.org/")
10971 (synopsis "Program for creating labels and business cards")
10972 (description
10973 "gLabels is a program for creating labels and business cards. It is
10974 designed to work with various laser/ink-jet peel-off label and business
10975 card sheets that you’ll find at most office supply stores.")
10976 (license license:gpl3+)))
10977
10978 (define-public libratbag
10979 (package
10980 (name "libratbag")
10981 (version "0.13")
10982 (source
10983 (origin
10984 (method git-fetch)
10985 (uri (git-reference
10986 (url "https://github.com/libratbag/libratbag")
10987 (commit (string-append "v" version))))
10988 (file-name (git-file-name name version))
10989 (sha256
10990 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10991 (build-system meson-build-system)
10992 (arguments
10993 `(#:configure-flags
10994 (list "-Dsystemd=false"
10995 "-Dlogind-provider=elogind")
10996 #:phases
10997 (modify-phases %standard-phases
10998 (add-after 'install 'wrap
10999 (lambda* (#:key inputs outputs #:allow-other-keys)
11000 (let* ((out (assoc-ref outputs "out"))
11001 (site (string-append
11002 "/lib/python"
11003 ,(version-major+minor (package-version python))
11004 "/site-packages"))
11005 (evdev (string-append
11006 (assoc-ref inputs "python-evdev") site))
11007 (pygo (string-append
11008 (assoc-ref inputs "python-pygobject") site))
11009 (python-wrap
11010 `("PYTHONPATH" = (,evdev ,pygo))))
11011 (wrap-program (string-append out "/bin/" "ratbagctl")
11012 python-wrap)
11013 #t))))))
11014 (native-inputs
11015 `(("check" ,check)
11016 ("pkg-config" ,pkg-config)
11017 ("swig" ,swig)
11018 ("valgrind" ,valgrind)))
11019 (inputs
11020 `(("glib" ,glib)
11021 ("json-glib" ,json-glib)
11022 ("libevdev" ,libevdev)
11023 ("libsystemd" ,elogind)
11024 ("libunistring" ,libunistring)
11025 ("python-evdev" ,python-evdev)
11026 ("python-pygobject" ,python-pygobject)
11027 ("udev" ,eudev)))
11028 (home-page "https://github.com/libratbag/libratbag")
11029 (synopsis "DBus daemon and utility for configuring gaming mice")
11030 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11031 configure input devices, mainly gaming mice. The daemon provides a generic
11032 way to access the various features exposed by these mice and abstracts away
11033 hardware-specific and kernel-specific quirks. There is also the
11034 @command{ratbagctl} command line interface for configuring devices.
11035
11036 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11037 Steelseries.
11038
11039 The ratbagd DBus service can be enabled by adding the following service to
11040 your operating-system definition:
11041
11042 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11043 (license license:expat)))
11044
11045 (define-public piper
11046 (package
11047 (name "piper")
11048 (version "0.5")
11049 (source
11050 (origin
11051 (method git-fetch)
11052 (uri (git-reference
11053 (url "https://github.com/libratbag/piper")
11054 (commit version)))
11055 (sha256
11056 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
11057 (file-name (git-file-name name version))))
11058 (build-system meson-build-system)
11059 (native-inputs
11060 `(("gettext" ,gettext-minimal)
11061 ("glib:bin" ,glib "bin")
11062 ("gobject-introspection" ,gobject-introspection)
11063 ("pkg-config" ,pkg-config)
11064 ("python-flake8" ,python-flake8)))
11065 (inputs
11066 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11067 ("gtk" ,gtk+)
11068 ("gtk:bin" ,gtk+ "bin")
11069 ("librsvg" ,librsvg)
11070 ("python-evdev" ,python-evdev)
11071 ("python-lxml" ,python-lxml)
11072 ("python-pycairo" ,python-pycairo)
11073 ("python-pygobject" ,python-pygobject)))
11074 (arguments
11075 `(#:imported-modules ((guix build python-build-system)
11076 ,@%meson-build-system-modules)
11077 #:modules (((guix build python-build-system) #:prefix python:)
11078 (guix build meson-build-system)
11079 (guix build utils))
11080 #:phases
11081 (modify-phases %standard-phases
11082 (add-after 'unpack 'dont-update-gtk-icon-cache
11083 (lambda _
11084 (substitute* "meson.build"
11085 (("meson.add_install_script('meson_install.sh')") ""))
11086 #t))
11087 ;; TODO: Switch to wrap-script when it is fixed.
11088 (add-after 'install 'wrap-python
11089 (assoc-ref python:%standard-phases 'wrap))
11090 (add-after 'wrap-python 'wrap
11091 (lambda* (#:key outputs #:allow-other-keys)
11092 (wrap-program
11093 (string-append (assoc-ref outputs "out" )"/bin/piper")
11094 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11095 #t)))))
11096 (home-page "https://github.com/libratbag/piper/")
11097 (synopsis "Configure bindings and LEDs on gaming mice")
11098 (description "Piper is a GTK+ application for configuring gaming mice with
11099 onboard configuration for key bindings via libratbag. Piper requires
11100 a @command{ratbagd} daemon running with root privileges. It can be run
11101 manually as root, but is preferably configured as a DBus service that can
11102 launch on demand. This can be configured by enabling the following service,
11103 provided there is a DBus service present:
11104
11105 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11106 (license license:gpl2)))
11107
11108 (define-public parlatype
11109 (package
11110 (name "parlatype")
11111 (version "2.1")
11112 (source
11113 (origin
11114 (method git-fetch)
11115 (uri (git-reference
11116 (url "https://github.com/gkarsay/parlatype.git")
11117 (commit (string-append "v" version))))
11118 (file-name (git-file-name name version))
11119 (sha256
11120 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11121 (build-system meson-build-system)
11122 (arguments
11123 `(#:glib-or-gtk? #t
11124 #:tests? #f ;require internet access
11125 #:phases
11126 (modify-phases %standard-phases
11127 (add-after 'install 'wrap-parlatype
11128 ;; Add gstreamer plugin provided in this package to system's
11129 ;; plugins.
11130 (lambda* (#:key outputs #:allow-other-keys)
11131 (let* ((out (assoc-ref outputs "out"))
11132 (gst-plugin-path (string-append
11133 out "/lib/gstreamer-1.0/"
11134 ":"
11135 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11136 (wrap-program (string-append out "/bin/parlatype")
11137 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11138 #t)))))
11139 (native-inputs
11140 `(("appstream-glib" ,appstream-glib)
11141 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11142 ("gettext" ,gettext-minimal)
11143 ("glib" ,glib "bin") ;for glib-compile-resources
11144 ("pkg-config" ,pkg-config)
11145 ("yelp-tools" ,yelp-tools)))
11146 (inputs
11147 `(("gst-plugins-base" ,gst-plugins-base)
11148 ("gst-plugins-good" ,gst-plugins-good)
11149 ("gstreamer" ,gstreamer)
11150 ("gtk+" ,gtk+)
11151 ("pocketsphinx" ,pocketsphinx)
11152 ("pulseaudio" ,pulseaudio)
11153 ("sphinxbase" ,sphinxbase)))
11154 (home-page "http://gkarsay.github.io/parlatype/")
11155 (synopsis "GNOME audio player for transcription")
11156 (description "Parlatype is an audio player for the GNOME desktop
11157 environment. Its main purpose is the manual transcription of spoken
11158 audio files.")
11159 (license license:gpl3+)))
11160
11161 (define-public jsonrpc-glib
11162 (package
11163 (name "jsonrpc-glib")
11164 (version "3.34.0")
11165 (source (origin
11166 (method url-fetch)
11167 (uri (string-append "mirror://gnome/sources/" name "/"
11168 (version-major+minor version) "/"
11169 name "-" version ".tar.xz"))
11170 (sha256
11171 (base32
11172 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11173 (build-system meson-build-system)
11174 (inputs
11175 `(("json-glib" ,json-glib)
11176 ("glib" ,glib)))
11177 (native-inputs
11178 `(("pkg-config" ,pkg-config)
11179 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11180 ("gobject-introspection" ,gobject-introspection)
11181 ("vala" ,vala)))
11182 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11183 (synopsis "JSON-RPC library for GLib")
11184 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11185 peers in either a synchronous or asynchronous fashion. It also allows
11186 communicating using the GVariant serialization format instead of JSON when
11187 both peers support it. You might want that when communicating on a single
11188 host to avoid parser overhead and memory-allocator fragmentation.")
11189 (license license:lgpl2.1+)))
11190
11191 (define-public feedbackd
11192 (package
11193 (name "feedbackd")
11194 (version "0.0.0+git20200527")
11195 (source (origin
11196 (method git-fetch)
11197 (uri (git-reference
11198 (url "https://source.puri.sm/Librem5/feedbackd.git")
11199 (commit (string-append "v" version))))
11200 (file-name (git-file-name name version))
11201 (sha256
11202 (base32
11203 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11204 (build-system meson-build-system)
11205 (native-inputs
11206 `(("glib:bin" ,glib "bin")
11207 ("gobject-introspection" ,gobject-introspection)
11208 ("pkg-config" ,pkg-config)
11209 ("vala" ,vala)))
11210 (inputs
11211 `(("dbus" ,dbus)
11212 ("gsound" ,gsound)
11213 ("json-glib" ,json-glib)
11214 ("libgudev" ,libgudev)))
11215 (propagated-inputs
11216 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11217 (synopsis "Haptic/visual/audio feedback via DBus")
11218 (description "Feedbackd provides a DBus daemon to act on events to provide
11219 haptic, visual and audio feedback. It offers the libfeedbackd library and
11220 GObject introspection bindings.")
11221 (home-page "https://source.puri.sm/Librem5/feedbackd")
11222 (license (list license:lgpl2.1+ ; libfeedbackd
11223 license:lgpl3+)))) ; the rest
11224
11225 (define-public sysprof
11226 (package
11227 (name "sysprof")
11228 (version "3.34.1")
11229 (source (origin
11230 (method url-fetch)
11231 (uri (string-append "mirror://gnome/sources/" name "/"
11232 (version-major+minor version) "/"
11233 name "-" version ".tar.xz"))
11234 (sha256
11235 (base32
11236 "1l4kr1av7933vb4zql9c5lgzivlw64hyky4nr8xin1v5if6vnjw4"))))
11237 (build-system meson-build-system)
11238 (arguments
11239 `(#:configure-flags
11240 (list (string-append "-Dsystemdunitdir="
11241 %output
11242 "/share/systemd"))
11243 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11244 #:phases
11245 (modify-phases %standard-phases
11246 (add-after 'unpack 'patch-install-script
11247 (lambda _
11248 (substitute* "build-aux/meson/post_install.sh"
11249 (("gtk-update-icon-cache") "true")
11250 (("update-desktop-database") "true"))
11251 #t)))))
11252 (inputs
11253 `(("glib" ,glib)
11254 ("gtk+" ,gtk+)
11255 ("libdazzle" ,libdazzle)
11256 ("polkit" ,polkit)))
11257 (native-inputs
11258 `(("gettext" ,gettext-minimal)
11259 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11260 ("itstool" ,itstool)
11261 ("pkg-config" ,pkg-config)
11262 ("xmllint" ,libxml2)))
11263 (home-page "http://www.sysprof.com/")
11264 (synopsis "System-wide performance profiler")
11265 (description "Sysprof is a sampling profiler that uses a kernel module
11266 to generate stacktraces which are then interpreted by the userspace program
11267 @command{sysprof}.")
11268 (license license:gpl3+)))
11269
11270 (define-public gnome-builder
11271 (package
11272 (name "gnome-builder")
11273 (version "3.36.1")
11274 (source (origin
11275 (method url-fetch)
11276 (uri (string-append "mirror://gnome/sources/" name "/"
11277 (version-major+minor version) "/"
11278 name "-" version ".tar.xz"))
11279 (sha256
11280 (base32
11281 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11282 (build-system meson-build-system)
11283 (arguments
11284 `(#:configure-flags (list "-Dnetwork_tests=false"
11285 ;; TODO: Enable all plugins...
11286 "-Dplugin_clang=false"
11287 "-Dplugin_flatpak=false"
11288 "-Dplugin_glade=false"
11289 ;; ... except this one.
11290 "-Dplugin_update_manager=false")
11291 #:phases
11292 (modify-phases %standard-phases
11293 (add-after 'unpack 'patch-meson
11294 (lambda* (#:key inputs #:allow-other-keys)
11295 (substitute* "build-aux/meson/post_install.py"
11296 (("gtk-update-icon-cache") "true")
11297 (("update-desktop-database") "true"))
11298 (substitute* "src/libide/meson.build"
11299 (("/usr/lib")
11300 (string-append (assoc-ref inputs "python-pygobject")
11301 "/lib")))
11302 #t))
11303 (add-before 'check 'pre-check
11304 (lambda _
11305 (system "Xvfb :1 &")
11306 (setenv "DISPLAY" ":1")
11307 #t)))))
11308 (inputs
11309 `(("devhelp" ,devhelp)
11310 ("gspell" ,gspell)
11311 ("gtk+" ,gtk+)
11312 ("json-glib" ,json-glib)
11313 ("jsonrpc-glib" ,jsonrpc-glib)
11314 ("libdazzle" ,libdazzle)
11315 ("libgit2-glib" ,libgit2-glib)
11316 ("libpeas" ,libpeas)
11317 ("python-pygobject" ,python-pygobject)
11318 ("sysprof" ,sysprof)
11319 ("template-glib" ,template-glib)
11320 ("vte" ,vte)
11321 ("webkitgtk" ,webkitgtk)))
11322 (propagated-inputs
11323 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11324 (native-inputs
11325 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11326 ("glib:bin" ,glib "bin")
11327 ("gettext" ,gettext-minimal)
11328 ("pkg-config" ,pkg-config)
11329 ("vala" ,vala)
11330 ("xorg-server" ,xorg-server-for-tests)))
11331 (home-page "https://wiki.gnome.org/Apps/Builder")
11332 (synopsis "Toolsmith for GNOME-based applications")
11333 (description "Builder aims to be an integrated development
11334 environment (IDE) for writing GNOME-based software. It features fuzzy search,
11335 auto-completion, a mini code map, documentation browsing, Git integration, an
11336 integrated profiler via Sysprof, debugging support, and more.")
11337 (license license:gpl3+)))