gnu: Add dee.
[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 libunistring)
130 #:use-module (gnu packages libunwind)
131 #:use-module (gnu packages libusb)
132 #:use-module (gnu packages linux)
133 #:use-module (gnu packages lirc)
134 #:use-module (gnu packages lua)
135 #:use-module (gnu packages mail)
136 #:use-module (gnu packages mp3)
137 #:use-module (gnu packages multiprecision)
138 #:use-module (gnu packages music)
139 #:use-module (gnu packages ncurses)
140 #:use-module (gnu packages nettle)
141 #:use-module (gnu packages networking)
142 #:use-module (gnu packages ninja)
143 #:use-module (gnu packages nss)
144 #:use-module (gnu packages openldap)
145 #:use-module (gnu packages package-management)
146 #:use-module (gnu packages password-utils)
147 #:use-module (gnu packages pcre)
148 #:use-module (gnu packages pdf)
149 #:use-module (gnu packages perl)
150 #:use-module (gnu packages photo)
151 #:use-module (gnu packages php)
152 #:use-module (gnu packages pkg-config)
153 #:use-module (gnu packages polkit)
154 #:use-module (gnu packages popt)
155 #:use-module (gnu packages pretty-print)
156 #:use-module (gnu packages pulseaudio)
157 #:use-module (gnu packages python)
158 #:use-module (gnu packages python-crypto)
159 #:use-module (gnu packages python-web)
160 #:use-module (gnu packages python-xyz)
161 #:use-module (gnu packages rdesktop)
162 #:use-module (gnu packages readline)
163 #:use-module (gnu packages ruby)
164 #:use-module (gnu packages rust)
165 #:use-module (gnu packages samba)
166 #:use-module (gnu packages scanner)
167 #:use-module (gnu packages selinux)
168 #:use-module (gnu packages slang)
169 #:use-module (gnu packages speech)
170 #:use-module (gnu packages spice)
171 #:use-module (gnu packages sqlite)
172 #:use-module (gnu packages ssh)
173 #:use-module (gnu packages swig)
174 #:use-module (gnu packages tex)
175 #:use-module (gnu packages time)
176 #:use-module (gnu packages tls)
177 #:use-module (gnu packages valgrind)
178 #:use-module (gnu packages version-control)
179 #:use-module (gnu packages video)
180 #:use-module (gnu packages virtualization)
181 #:use-module (gnu packages vpn)
182 #:use-module (gnu packages web)
183 #:use-module (gnu packages webkit)
184 #:use-module (gnu packages xdisorg)
185 #:use-module (gnu packages xiph)
186 #:use-module (gnu packages xml)
187 #:use-module (gnu packages xorg)
188 #:use-module (gnu artwork)
189 #:use-module ((guix build utils) #:select (modify-phases))
190 #:use-module (guix build-system cargo)
191 #:use-module (guix build-system cmake)
192 #:use-module (guix build-system glib-or-gtk)
193 #:use-module (guix build-system gnu)
194 #:use-module (guix build-system meson)
195 #:use-module (guix build-system python)
196 #:use-module (guix build-system trivial)
197 #:use-module (guix download)
198 #:use-module (guix git-download)
199 #:use-module ((guix licenses) #:prefix license:)
200 #:use-module (guix packages)
201 #:use-module (guix utils)
202 #:use-module (guix gexp)
203 #:use-module (guix monads)
204 #:use-module (guix store)
205 #:use-module (ice-9 match)
206 #:use-module (srfi srfi-1))
207
208 (define-public brasero
209 (package
210 (name "brasero")
211 (version "3.12.2")
212 (source (origin
213 (method url-fetch)
214 (uri (string-append "mirror://gnome/sources/brasero/"
215 (version-major+minor version) "/"
216 "brasero-" version ".tar.xz"))
217 (sha256
218 (base32
219 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
220 (build-system glib-or-gtk-build-system)
221 (arguments
222 `(#:configure-flags (list
223 (string-append "--with-girdir="
224 (assoc-ref %outputs "out")
225 "/share/gir-1.0")
226 (string-append "--with-typelibdir="
227 (assoc-ref %outputs "out")
228 "/lib/girepository-1.0"))
229 #:phases
230 (modify-phases %standard-phases
231 (add-before 'configure 'embed-growisofs
232 (lambda* (#:key inputs #:allow-other-keys)
233 (substitute* "plugins/growisofs/burn-growisofs.c"
234 (("\"growisofs") (string-append "\"" (which "growisofs"))))
235 #t)))))
236 (propagated-inputs
237 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
238 (native-inputs
239 `(("intltool" ,intltool)
240 ("itstool" ,itstool)
241 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
242 ("gobject-introspection" ,gobject-introspection)
243 ("pkg-config" ,pkg-config)))
244 (inputs
245 `(("dvd+rw-tools" ,dvd+rw-tools)
246 ("glib" ,glib)
247 ("gnome-doc-utils" ,gnome-doc-utils)
248 ("gstreamer" ,gstreamer)
249 ("gst-plugins-base" ,gst-plugins-base)
250 ("gtk+" ,gtk+)
251 ("libcanberra" ,libcanberra)
252 ("libice" ,libice)
253 ("libnotify" ,libnotify)
254 ("libsm" ,libsm)
255 ("libxml2" ,libxml2)
256 ("totem-pl-parser" ,totem-pl-parser)))
257 (home-page "https://wiki.gnome.org/Apps/Brasero")
258 (synopsis "CD/DVD burning tool for Gnome")
259 (description "Brasero is an application to burn CD/DVD for the Gnome
260 Desktop. It is designed to be as simple as possible and has some unique
261 features to enable users to create their discs easily and quickly.")
262 (license license:gpl2+)))
263
264 (define-public gtx
265 (package
266 (name "gtx")
267 (version "0.2.2")
268 (source
269 (origin
270 (method url-fetch)
271 (uri
272 (string-append "https://launchpad.net/gtx/trunk/"
273 version "/+download/gtx-" version ".tar.gz"))
274 (sha256
275 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
276 (build-system glib-or-gtk-build-system)
277 (outputs '("out" "doc"))
278 (arguments
279 `(#:configure-flags
280 (list
281 "--disable-static"
282 "--enable-gtk-doc"
283 (string-append "--with-html-dir="
284 (assoc-ref %outputs "doc")
285 "/share/gtk-doc/html"))))
286 (native-inputs
287 `(("gobject-introspection" ,gobject-introspection)
288 ("gtk-doc" ,gtk-doc)
289 ("pkg-config" ,pkg-config)))
290 (propagated-inputs
291 `(("glib" ,glib)))
292 (synopsis "GLib Testing Framework")
293 (description "GTX is a small collection of convenience functions intended to
294 enhance the GLib testing framework. With specific emphasis on easing the pain
295 of writing test cases for asynchronous interactions.")
296 (home-page "https://launchpad.net/gtx")
297 (license license:lgpl2.1+)))
298
299 (define-public dee
300 (package
301 (name "dee")
302 (version "1.2.7")
303 (source
304 (origin
305 (method url-fetch)
306 (uri
307 (string-append "https://launchpad.net/dee/1.0/"
308 version "/+download/dee-" version ".tar.gz"))
309 (sha256
310 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
311 (patches
312 (search-patches "dee-vapi.patch"))))
313 (build-system glib-or-gtk-build-system)
314 (outputs '("out" "doc"))
315 (arguments
316 `(#:configure-flags
317 (list
318 "--disable-maintainer-flags"
319 (string-append "--with-pygi-overrides-dir="
320 (assoc-ref %outputs "out")
321 "/lib/python"
322 ,(version-major+minor
323 (package-version python))
324 "/site-packages/gi/overrides")
325 (string-append "--with-html-dir="
326 (assoc-ref %outputs "doc")
327 "/share/gtk-doc/html"))
328 #:phases
329 (modify-phases %standard-phases
330 (add-after 'unpack 'patch-docbook-xml
331 (lambda* (#:key inputs #:allow-other-keys)
332 (with-directory-excursion "doc/reference/dee-1.0"
333 (substitute* "dee-1.0-docs.sgml"
334 (("http://www.oasis-open.org/docbook/xml/4.3/")
335 (string-append (assoc-ref inputs "docbook-xml")
336 "/xml/dtd/docbook/"))))
337 #t))
338 (add-after 'patch-docbook-xml 'disable-failing-tests
339 (lambda _
340 (substitute* "tests/test-icu.c"
341 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
342 "")
343 (("setup, test_ascii_folder, teardown\\);")
344 ""))
345 #t))
346 (add-before 'check 'pre-check
347 (lambda _
348 ;; Tests require a running dbus-daemon.
349 (system "dbus-daemon &")
350 ;; For missing '/etc/machine-id'.
351 (setenv "DBUS_FATAL_WARNINGS" "0")
352 #t)))))
353 (native-inputs
354 `(("dbus" ,dbus)
355 ("dbus-test-runner" ,dbus-test-runner)
356 ("docbook-xml" ,docbook-xml-4.3)
357 ("gobject-introspection" ,gobject-introspection)
358 ("gtk-doc" ,gtk-doc)
359 ;; Would only be required by configure flag "--enable-extended-tests".
360 ;("gtx" ,gtx)
361 ("pkg-config" ,pkg-config)
362 ("pygobject" ,python-pygobject)
363 ("python" ,python-wrapper)
364 ("vala" ,vala)))
365 (inputs
366 `(("icu" ,icu4c)))
367 (propagated-inputs
368 `(("glib" ,glib)))
369 (synopsis "Model to synchronize multiple instances over DBus")
370 (description "Dee is a library that uses DBus to provide objects allowing
371 you to create Model-View-Controller type programs across DBus. It also consists
372 of utility objects which extend DBus allowing for peer-to-peer discoverability
373 of known objects without needing a central registrar.")
374 (home-page "https://launchpad.net/dee")
375 (license
376 ;; Dual-licensed
377 (list
378 license:lgpl3+
379 license:gpl3+))))
380
381 (define-public libcloudproviders
382 (package
383 (name "libcloudproviders")
384 (version "0.3.1")
385 (source
386 (origin
387 (method url-fetch)
388 (uri
389 (string-append "mirror://gnome/sources/" name "/"
390 (version-major+minor version) "/"
391 name "-" version ".tar.xz"))
392 (sha256
393 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
394 (build-system meson-build-system)
395 (outputs '("out" "doc"))
396 (arguments
397 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
398 #:configure-flags
399 (list
400 "-Denable-gtk-doc=true")
401 #:phases
402 (modify-phases %standard-phases
403 (add-after 'install 'move-doc
404 (lambda* (#:key outputs #:allow-other-keys)
405 (let* ((out (assoc-ref outputs "out"))
406 (doc (assoc-ref outputs "doc")))
407 (mkdir-p (string-append doc "/share"))
408 (rename-file
409 (string-append out "/share/gtk-doc")
410 (string-append doc "/share/gtk-doc"))
411 #t))))))
412 (native-inputs
413 `(("glib:bin" ,glib "bin")
414 ("gobject-introspection" ,gobject-introspection)
415 ("gtk-doc" ,gtk-doc)
416 ("pkg-config" ,pkg-config)
417 ("vala" ,vala)))
418 (inputs
419 `(("glib" ,glib)
420 ("glib-networking" ,glib-networking)))
421 (synopsis "Cloudproviders Integration API")
422 (description "Libcloudproviders is a DBus API that allows cloud storage sync
423 clients to expose their services. Clients such as file managers and desktop
424 environments can then provide integrated access to the cloud providers
425 services.")
426 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
427 (license license:lgpl3+)))
428
429 (define-public sysprof
430 (package
431 (name "sysprof")
432 (version "3.36.0")
433 (source
434 (origin
435 (method url-fetch)
436 (uri
437 (string-append "mirror://gnome/sources/" name "/"
438 (version-major+minor version) "/"
439 name "-" version ".tar.xz"))
440 (sha256
441 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
442 (build-system meson-build-system)
443 (arguments
444 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas.
445 #:configure-flags
446 (list
447 ;; SystemD not required.
448 "-Dsystemdunitdir=/tmp")))
449 (native-inputs
450 `(("desktop-file-utils" ,desktop-file-utils)
451 ("gettext" ,gettext-minimal)
452 ("glib:bin" ,glib "bin")
453 ("gobject-introspection" ,gobject-introspection)
454 ("gtk+:bin" ,gtk+ "bin")
455 ("itstool" ,itstool)
456 ("pkg-config" ,pkg-config)
457 ("xmllint" ,libxml2)))
458 (inputs
459 `(("libdazzle" ,libdazzle)
460 ("libunwind" ,libunwind)
461 ("pango" ,pango)
462 ("polkit" ,polkit)))
463 (propagated-inputs
464 `(("glib" ,glib)
465 ("gtk+" ,gtk+)))
466 (synopsis "Kernel based performance profiler")
467 (description "Sysprof is a sampling profiler that uses a kernel module to
468 generate stacktraces which are then interpreted by the userspace program
469 sysprof.")
470 (home-page "https://wiki.gnome.org/Apps/Sysprof")
471 (license
472 (list
473 ;; For newer codes.
474 license:gpl3+
475 ;; For older codes.
476 license:gpl2+))))
477
478 (define-public gnome-photos
479 (package
480 (name "gnome-photos")
481 (version "3.34.2")
482 (source
483 (origin
484 (method url-fetch)
485 (uri
486 (string-append "mirror://gnome/sources/" name "/"
487 (version-major+minor version) "/"
488 name "-" version ".tar.xz"))
489 (sha256
490 (base32
491 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
492 (build-system meson-build-system)
493 (arguments
494 `(#:glib-or-gtk? #t
495 #:configure-flags
496 (list "-Ddogtail=false" ; Not available
497 ;; Required for RUNPATH validation.
498 (string-append "-Dc_link_args=-Wl,-rpath="
499 (assoc-ref %outputs "out") "/lib/gnome-photos"))
500 #:phases
501 (modify-phases %standard-phases
502 (add-after 'install 'wrap-gnome-photos
503 (lambda* (#:key inputs outputs #:allow-other-keys)
504 (let*
505 ((out (assoc-ref outputs "out")))
506 (wrap-program (string-append out "/bin/gnome-photos")
507 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
508 #t)))))
509 (native-inputs
510 `(("dbus" ,dbus)
511 ("desktop-file-utils" ,desktop-file-utils)
512 ("gettext" ,gettext-minimal)
513 ("git" ,git-minimal)
514 ("glib:bin" ,glib "bin")
515 ("gobject-introspection" ,gobject-introspection)
516 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
517 ("gtk+:bin" ,gtk+ "bin")
518 ("itstool" ,itstool)
519 ("pkg-config" ,pkg-config)))
520 (inputs
521 `(("babl" ,babl)
522 ("cairo" ,cairo)
523 ("gdk-pixbuf" ,gdk-pixbuf+svg)
524 ("gegl" ,gegl)
525 ("geocode-glib" ,geocode-glib)
526 ("gexiv2" ,gexiv2)
527 ("gnome-online-accounts" ,gnome-online-accounts)
528 ("gnome-online-miners" ,gnome-online-miners)
529 ("grilo" ,grilo)
530 ("grilo-plugins" ,grilo-plugins)
531 ("gtk+" ,gtk+)
532 ("libdazzle" ,libdazzle)
533 ("libgdata" ,libgdata)
534 ("libgfbgraph" ,gfbgraph)
535 ("libjpeg" ,libjpeg-turbo)
536 ("libpng" ,libpng)
537 ("librest" ,rest)
538 ("pygobject" ,python-pygobject)
539 ("tracker" ,tracker)
540 ("tracker-miners" ,tracker-miners)))
541 (synopsis "Access, organize and share your photos on GNOME desktop")
542 (description "GNOME Photos is a simple and elegant replacement for using a
543 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
544 cloud integration is offered through GNOME Online Accounts.")
545 (home-page "https://wiki.gnome.org/Apps/Photos")
546 (license license:gpl3+)))
547
548 (define-public gnome-music
549 (package
550 (name "gnome-music")
551 (version "3.34.5")
552 (source
553 (origin
554 (method url-fetch)
555 (uri
556 (string-append "mirror://gnome/sources/" name "/"
557 (version-major+minor version) "/"
558 name "-" version ".tar.xz"))
559 (sha256
560 (base32
561 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
562 (build-system meson-build-system)
563 (arguments
564 `(#:glib-or-gtk? #t
565 #:phases
566 (modify-phases %standard-phases
567 (add-after 'install 'wrap-gnome-music
568 (lambda* (#:key inputs outputs #:allow-other-keys)
569 (let*
570 ((out (assoc-ref outputs "out"))
571 (pylib (string-append out "/lib/python"
572 ,(version-major+minor
573 (package-version python))
574 "/site-packages")))
575 (wrap-program (string-append out "/bin/gnome-music")
576 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
577 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
578 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
579 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
580 #t)))))
581 (native-inputs
582 `(("desktop-file-utils" ,desktop-file-utils)
583 ("gettext" ,gettext-minimal)
584 ("glib:bin" ,glib "bin")
585 ("gobject-introspection" ,gobject-introspection)
586 ("gtk+:bin" ,gtk+ "bin")
587 ("itstools" ,itstool)
588 ("pkg-config" ,pkg-config)))
589 (inputs
590 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
591 ("grilo" ,grilo)
592 ("grilo-plugins" ,grilo-plugins)
593 ("gst-plugins-base" ,gst-plugins-base)
594 ("gstreamer" ,gstreamer)
595 ("gvfs" ,gvfs)
596 ("libdazzle" ,libdazzle)
597 ("libmediaart" ,libmediaart)
598 ("libsoup" ,libsoup)
599 ("pycairo" ,python-pycairo)
600 ("pygobject" ,python-pygobject)
601 ("tracker" ,tracker)
602 ("tracker-miners" ,tracker-miners)))
603 (synopsis "Simple music player for GNOME desktop")
604 (description "GNOME Music is the new GNOME music playing application that
605 aims to combine an elegant and immersive browsing experience with simple
606 and straightforward controls.")
607 (home-page "https://wiki.gnome.org/Apps/Music")
608 (license license:gpl2+)))
609
610 (define-public portablexdr
611 (package
612 (name "portablexdr")
613 (version "4.9.1")
614 (source
615 (origin
616 (method url-fetch)
617 (uri
618 (string-append "https://people.redhat.com/~rjones/" name "/files/"
619 name "-" version ".tar.gz"))
620 (sha256
621 (base32
622 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
623 (build-system gnu-build-system)
624 (synopsis "External Data Representation Library")
625 (description "PortableXDR is an implementation of External Data
626 Representation (XDR) Library. It is a standard data serialization format, for
627 uses such as computer network protocols. It allows data to be transferred
628 between different kinds of computer systems.")
629 (home-page "https://people.redhat.com/~rjones/portablexdr/")
630 (license
631 (list
632 license:gpl2+
633 license:lgpl2.1+))))
634
635 (define-public tepl
636 (package
637 (name "tepl")
638 (version "4.4.0")
639 (source
640 (origin
641 (method url-fetch)
642 (uri
643 (string-append "mirror://gnome/sources/" name "/"
644 (version-major+minor version) "/"
645 name "-" version ".tar.xz"))
646 (sha256
647 (base32
648 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
649 (build-system glib-or-gtk-build-system)
650 (arguments
651 `(#:tests? #f)) ; FIX-ME: Requires gvfs
652 (native-inputs
653 `(("gobject-introspection" ,gobject-introspection)
654 ("pkg-config" ,pkg-config)))
655 (inputs
656 `(("amtk" ,amtk)
657 ("glib" ,glib)
658 ("gtk+" ,gtk+)
659 ("gtksourceview" ,gtksourceview)
660 ("libxml2" ,libxml2)
661 ("uchardet" ,uchardet)))
662 (synopsis "Text editor product line")
663 (description "Tepl is a library that eases the development of
664 GtkSourceView-based text editors and IDEs.")
665 (home-page "https://wiki.gnome.org/Projects/Tepl")
666 (license license:lgpl2.1+)))
667
668 (define-public krb5-auth-dialog
669 (package
670 (name "krb5-auth-dialog")
671 (version "3.26.1")
672 (source
673 (origin
674 (method url-fetch)
675 (uri
676 (string-append "mirror://gnome/sources/" name "/"
677 (version-major+minor version) "/"
678 name "-" version ".tar.xz"))
679 (sha256
680 (base32
681 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
682 (build-system glib-or-gtk-build-system)
683 (native-inputs
684 `(("intltool" ,intltool)
685 ("itstool" ,itstool)
686 ("libxml2" ,libxml2)
687 ("pkg-config" ,pkg-config)
688 ("python-wrapper" ,python-wrapper)))
689 (inputs
690 `(("glib" ,glib)
691 ("gtk+" ,gtk+)
692 ("libnotify" ,libnotify)
693 ("mit-krb5" ,mit-krb5)
694 ("network-manager" ,network-manager)))
695 (synopsis "Popup dialogs for Kerberos 5")
696 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
697 tickets, and pops up a dialog when they are about to expire.")
698 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
699 (license license:gpl2+)))
700
701 (define-public notification-daemon
702 (package
703 (name "notification-daemon")
704 (version "3.20.0")
705 (source
706 (origin
707 (method url-fetch)
708 (uri
709 (string-append "mirror://gnome/sources/" name "/"
710 (version-major+minor version) "/"
711 name "-" version ".tar.xz"))
712 (sha256
713 (base32
714 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
715 (build-system glib-or-gtk-build-system)
716 (native-inputs
717 `(("intltool" ,intltool)
718 ("pkg-config" ,pkg-config)))
719 (inputs
720 `(("glib" ,glib)
721 ("gtk+" ,gtk+)
722 ("x11" ,libx11)))
723 (synopsis "Notification Daemon for GNOME Desktop")
724 (description "Notification-Daemon is the server implementation of the
725 freedesktop.org desktop notification specification.")
726 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
727 (license license:gpl2+)))
728
729 (define-public mm-common
730 (package
731 (name "mm-common")
732 (version "1.0.1")
733 (source (origin
734 (method url-fetch)
735 (uri (string-append "mirror://gnome/sources/mm-common/"
736 (version-major+minor version) "/"
737 "mm-common-" version ".tar.xz"))
738 (sha256
739 (base32
740 "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
741 (build-system meson-build-system)
742 (arguments
743 `(#:phases
744 (modify-phases %standard-phases
745 (add-after 'unpack 'patch
746 (lambda* (#:key inputs #:allow-other-keys)
747 (substitute* "util/mm-common-prepare.in"
748 (("ln") (string-append (assoc-ref inputs "coreutils")
749 "/bin/ln"))
750 (("cp") (string-append (assoc-ref inputs "coreutils")
751 "/bin/cp"))
752 (("sed") (string-append (assoc-ref inputs "sed")
753 "/bin/sed"))
754 (("cat") (string-append (assoc-ref inputs "coreutils")
755 "/bin/cat")))
756 #t)))))
757 (native-inputs
758 `(("coreutils" ,coreutils)
759 ("gettext" ,gettext-minimal)
760 ("pkg-config" ,pkg-config)
761 ("sed" ,sed)))
762 (inputs
763 `(("python" ,python)))
764 (synopsis "Module of GNOME C++ bindings")
765 (description "The mm-common module provides the build infrastructure
766 and utilities shared among the GNOME C++ binding libraries. Release
767 archives of mm-common include the Doxygen tag file for the GNU C++
768 Library reference documentation.")
769 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
770 (license license:gpl2+)))
771
772 (define-public phodav
773 (package
774 (name "phodav")
775 (version "2.4")
776 (source (origin
777 (method url-fetch)
778 (uri (string-append "mirror://gnome/sources/" name "/"
779 (version-major+minor version) "/"
780 name "-" version ".tar.xz"))
781 (sha256
782 (base32
783 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
784 (build-system meson-build-system)
785 (native-inputs
786 `(("gettext" ,gettext-minimal)
787 ("glib:bin" ,glib "bin")
788 ("gtk-doc" ,gtk-doc)
789 ("pkg-config" ,pkg-config)))
790 (inputs
791 `(("avahi" ,avahi)
792 ("libgudev" ,libgudev)
793 ("libsoup" ,libsoup)))
794 (synopsis "WebDav server implementation using libsoup")
795 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
796 but it is generic enough to be reused in other projects,
797 in particular in the GNOME desktop.")
798 (home-page "https://wiki.gnome.org/phodav")
799 (license license:lgpl2.1+)))
800
801 (define-public gnome-color-manager
802 (package
803 (name "gnome-color-manager")
804 (version "3.32.0")
805 (source (origin
806 (method url-fetch)
807 (uri (string-append "mirror://gnome/sources/" name "/"
808 (version-major+minor version) "/"
809 name "-" version ".tar.xz"))
810 (sha256
811 (base32
812 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
813 (build-system meson-build-system)
814 (arguments
815 `(#:glib-or-gtk? #t
816 #:phases
817 (modify-phases %standard-phases
818 (add-before
819 'check 'pre-check
820 (lambda _
821 ;; Tests require a running X server.
822 (system "Xvfb :1 &")
823 (setenv "DISPLAY" ":1")
824 #t)))))
825 (native-inputs
826 `(("desktop-file-utils" ,desktop-file-utils)
827 ("gettext" ,gettext-minimal)
828 ("glib:bin" ,glib "bin")
829 ("gtk+:bin" ,gtk+ "bin")
830 ("itstool" ,itstool)
831 ("pkg-config" ,pkg-config)
832 ("xorg-server" ,xorg-server-for-tests)))
833 (inputs
834 `(("adwaita-icon-theme" ,adwaita-icon-theme)
835 ("appstream-glib" ,appstream-glib)
836 ("colord-gtk" ,colord-gtk)
837 ("exiv2" ,exiv2)
838 ("gnome-desktop" ,gnome-desktop)
839 ("libcanberra" ,libcanberra)
840 ("libexif" ,libexif)
841 ("libtiff" ,libtiff)
842 ("libxrandr" ,libxrandr)
843 ("libxtst" ,libxtst)
844 ("libxxf86vm" ,libxxf86vm)
845 ("vte" ,vte)
846 ("xorgproto" ,xorgproto)))
847 (synopsis "Color profile manager for the GNOME desktop")
848 (description "GNOME Color Manager is a session framework that makes
849 it easy to manage, install and generate color profiles
850 in the GNOME desktop.")
851 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
852 (license license:gpl2+)))
853
854 (define-public gnome-online-miners
855 (package
856 (name "gnome-online-miners")
857 (version "3.34.0")
858 (source (origin
859 (method url-fetch)
860 (uri (string-append "mirror://gnome/sources/" name "/"
861 (version-major+minor version) "/"
862 name "-" version ".tar.xz"))
863 (sha256
864 (base32
865 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
866 (build-system glib-or-gtk-build-system)
867 (native-inputs
868 `(("gettext" ,gettext-minimal)
869 ("glib:bin" ,glib "bin")
870 ("gobject-introspection" ,gobject-introspection)
871 ("gtk+:bin" ,gtk+ "bin")
872 ("pkg-config" ,pkg-config)))
873 (inputs
874 `(("gnome-online-accounts" ,gnome-online-accounts)
875 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
876 ("grilo" ,grilo)
877 ("libgdata" ,libgdata)
878 ("libgfbgraph" ,gfbgraph)
879 ("libzapojit" ,libzapojit)
880 ("rest" ,rest)
881 ("tracker" ,tracker)))
882 (synopsis "Web Crawlers for GNOME")
883 (description "GNOME Online Miners provides a set of crawlers that
884 go through your online content and index them locally in Tracker.
885 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
886 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
887 (license license:gpl2+)))
888
889 (define-public gssdp
890 (package
891 (name "gssdp")
892 (version "1.2.3")
893 (source (origin
894 (method url-fetch)
895 (uri (string-append "mirror://gnome/sources/" name "/"
896 (version-major+minor version) "/"
897 name "-" version ".tar.xz"))
898 (sha256
899 (base32
900 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
901 (build-system meson-build-system)
902 (native-inputs
903 `(("gettext" ,gettext-minimal)
904 ("glib:bin" ,glib "bin")
905 ("gobject-introspection" ,gobject-introspection)
906 ("gtk-doc" ,gtk-doc)
907 ("pkg-config" ,pkg-config)
908 ("vala" ,vala)))
909 (inputs
910 `(("gtk+" ,gtk+)
911 ("libsoup" ,libsoup)))
912 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
913 Protocol} for GNOME")
914 (description "This package provides a library to handle resource discovery
915 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
916 a debugging tool, @command{gssdp-device-sniffer}.")
917 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
918 (license license:lgpl2.0+)))
919
920 (define-public gupnp
921 (package
922 (name "gupnp")
923 (version "1.2.4")
924 (source (origin
925 (method url-fetch)
926 (uri (string-append "mirror://gnome/sources/" name "/"
927 (version-major+minor version) "/"
928 name "-" version ".tar.xz"))
929 (sha256
930 (base32
931 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
932 (build-system meson-build-system)
933 (native-inputs
934 `(("gettext" ,gettext-minimal)
935 ("glib:bin" ,glib "bin")
936 ("gobject-introspection" ,gobject-introspection)
937 ("gtk-doc" ,gtk-doc)
938 ("pkg-config" ,pkg-config)
939 ("vala" ,vala)))
940 (inputs
941 `(("gssdp" ,gssdp)
942 ("gtk+" ,gtk+)
943 ("libsoup" ,libsoup)))
944 (synopsis "PnP API for GNOME")
945 (description "This package provides GUPnP, an object-oriented framework
946 for creating UPnP devices and control points, written in C using
947 @code{GObject} and @code{libsoup}.")
948 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
949 (license license:lgpl2.0+)))
950
951 (define-public gupnp-dlna
952 (package
953 (name "gupnp-dlna")
954 (version "0.10.5")
955 (source (origin
956 (method url-fetch)
957 (uri (string-append "mirror://gnome/sources/" name "/"
958 (version-major+minor version) "/"
959 name "-" version ".tar.xz"))
960 (sha256
961 (base32
962 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
963 (build-system gnu-build-system)
964 (native-inputs
965 `(("gettext" ,gettext-minimal)
966 ("glib:bin" ,glib "bin")
967 ("gobject-introspection" ,gobject-introspection)
968 ("gtk-doc" ,gtk-doc)
969 ("libxml" ,libxml2)
970 ("pkg-config" ,pkg-config)
971 ("vala" ,vala)))
972 (inputs
973 `(("gstreamer" ,gstreamer)
974 ("gupnp" ,gupnp)))
975 (propagated-inputs
976 `(("gst-plugins-base" ,gst-plugins-base)
977 ("gst-plugins-good" ,gst-plugins-good)))
978 (synopsis "GUPnP DLNA for GNOME")
979 (description "This package provides a small utility library to
980 support DLNA-related tasks such as media profile guessing, transcoding to a
981 given profile, etc. DLNA is a subset of UPnP A/V.")
982 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
983 (license license:lgpl2.0+)))
984
985 (define-public gupnp-av
986 (package
987 (name "gupnp-av")
988 (version "0.12.11")
989 (source (origin
990 (method url-fetch)
991 (uri (string-append "mirror://gnome/sources/" name "/"
992 (version-major+minor version) "/"
993 name "-" version ".tar.xz"))
994 (sha256
995 (base32
996 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
997 (build-system gnu-build-system)
998 (native-inputs
999 `(("gettext" ,gettext-minimal)
1000 ("glib:bin" ,glib "bin")
1001 ("gobject-introspection" ,gobject-introspection)
1002 ("gtk-doc" ,gtk-doc)
1003 ("libxml" ,libxml2)
1004 ("pkg-config" ,pkg-config)))
1005 (inputs
1006 `(("gtk+" ,gtk+)
1007 ("gupnp" ,gupnp)))
1008 (synopsis "GUPnP A/V for GNOME")
1009 (description "This package provides a small library for handling
1010 and implementation of UPnP A/V profiles.")
1011 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1012 (license license:lgpl2.0+)))
1013
1014 (define-public libmediaart
1015 (package
1016 (name "libmediaart")
1017 (version "1.9.4")
1018 (source (origin
1019 (method url-fetch)
1020 (uri (string-append "mirror://gnome/sources/" name "/"
1021 (version-major+minor version) "/"
1022 name "-" version ".tar.xz"))
1023 (sha256
1024 (base32
1025 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
1026 (build-system gnu-build-system)
1027 (native-inputs
1028 `(("glib:bin" ,glib "bin")
1029 ("pkg-config" ,pkg-config)))
1030 (inputs
1031 `(("gdk-pixbuf" ,gdk-pixbuf)
1032 ("gettext" ,gettext-minimal)
1033 ("gobject-introspection" ,gobject-introspection)
1034 ("gtk+:doc", gtk+ "doc")
1035 ("vala" ,vala)))
1036 (synopsis "Media art library for the GNOME desktop")
1037 (description
1038 "The libmediaart library is the foundation for media art caching,
1039 extraction, and lookup for applications on the desktop.")
1040 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1041 (license license:lgpl2.1+)))
1042
1043 (define-public gnome-initial-setup
1044 (package
1045 (name "gnome-initial-setup")
1046 (version "3.32.1")
1047 (source (origin
1048 (method url-fetch)
1049 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1050 (version-major+minor version)
1051 "/gnome-initial-setup-" version ".tar.xz"))
1052 (sha256
1053 (base32
1054 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1055 (build-system meson-build-system)
1056 (arguments
1057 '(#:configure-flags '(;; Enable camera support for user selfie.
1058 "-Dcheese=auto"
1059 "-Dsystemd=false")
1060 #:phases (modify-phases %standard-phases
1061 (add-after 'unpack 'set-gkbd-file-name
1062 (lambda* (#:key inputs #:allow-other-keys)
1063 ;; Allow the "Preview" button in the keyboard layout
1064 ;; selection dialog to display the layout.
1065 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1066 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1067 (("\"gkbd-keyboard-display")
1068 (string-append "\"" libgnomekbd
1069 "/bin/gkbd-keyboard-display")))
1070 #t))))))
1071 (native-inputs
1072 `(("gettext" ,gettext-minimal)
1073 ("glib:bin" ,glib "bin")
1074 ("gobject-introspection" ,gobject-introspection)
1075 ("gtk+:bin" ,gtk+ "bin")
1076 ("pkg-config" ,pkg-config)))
1077 (inputs
1078 `(("accountsservice" ,accountsservice)
1079 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1080 ("gdm" ,gdm)
1081 ("geoclue" ,geoclue)
1082 ("gnome-desktop" ,gnome-desktop)
1083 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1084 ("gnome-online-accounts" ,gnome-online-accounts)
1085 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1086 ("gstreamer" ,gstreamer)
1087 ("ibus" ,ibus)
1088 ("json-glib" ,json-glib)
1089 ("krb5" ,mit-krb5)
1090 ("libgweather" ,libgweather)
1091 ("libnma" ,libnma)
1092 ("libsecret" ,libsecret)
1093 ("network-manager" ,network-manager)
1094 ("packagekit" ,packagekit)
1095 ("polkit" ,polkit)
1096 ("pwquality" ,libpwquality)
1097 ("rest" ,rest)
1098 ("upower" ,upower)
1099 ("webkitgtk" ,webkitgtk)
1100 ("libgnomekbd" ,libgnomekbd)))
1101 (synopsis "Initial setup wizard for GNOME desktop")
1102 (description "This package provides a set-up wizard when a
1103 user logs into GNOME for the first time. It typically provides a
1104 tour of all gnome components and allows the user to set them up.")
1105 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1106 (license license:gpl2)))
1107
1108 (define-public gnome-user-share
1109 (package
1110 (name "gnome-user-share")
1111 (version "3.33.1")
1112 (source (origin
1113 (method url-fetch)
1114 (uri (string-append "mirror://gnome/sources/" name "/"
1115 (version-major+minor version) "/"
1116 name "-" version ".tar.xz"))
1117 (sha256
1118 (base32
1119 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1120 (build-system meson-build-system)
1121 (arguments
1122 `(#:glib-or-gtk? #t
1123 #:configure-flags
1124 `("-Dsystemd=false"
1125 ;; Enable nautilus extension for file sharing.
1126 "-Dnautilus_extension=true")))
1127 (native-inputs
1128 `(("gettext" ,gettext-minimal)
1129 ("glib:bin" ,glib "bin")
1130 ("gobject-introspection" ,gobject-introspection)
1131 ("gtk+:bin" ,gtk+ "bin")
1132 ("pkg-config" ,pkg-config)
1133 ("yelp-tools" ,yelp-tools)))
1134 (inputs
1135 `(("glib" ,glib)
1136 ("gnome-bluetooth" ,gnome-bluetooth)
1137 ("gtk+" ,gtk+)
1138 ("libcanberra" ,libcanberra)
1139 ("libnotify" ,libnotify)
1140 ("nautilus" ,nautilus))) ; For nautilus extension.
1141 (synopsis "File sharing for GNOME desktop")
1142 (description "GNOME User Share is a small package that binds together
1143 various free software projects to bring easy to use user-level file
1144 sharing to the masses.")
1145 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1146 (license license:gpl2+)))
1147
1148 (define-public sushi
1149 (package
1150 (name "sushi")
1151 (version "3.32.1")
1152 (source (origin
1153 (method url-fetch)
1154 (uri (string-append "mirror://gnome/sources/" name "/"
1155 (version-major+minor version) "/"
1156 name "-" version ".tar.xz"))
1157 (sha256
1158 (base32
1159 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1160 (build-system meson-build-system)
1161 (arguments
1162 `(#:glib-or-gtk? #t
1163 #:phases
1164 (modify-phases %standard-phases
1165 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1166 (lambda* (#:key outputs #:allow-other-keys)
1167 (let ((prog (string-append (assoc-ref outputs "out")
1168 "/bin/sushi")))
1169 ;; Put existing typelibs before sushi's deps, so as to correctly
1170 ;; infer gdk-pixbuf
1171 (wrap-program prog
1172 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1173 #t))))))
1174 (native-inputs
1175 `(("glib:bin" ,glib "bin")
1176 ("gettext" ,gettext-minimal)
1177 ("gobject-introspection" ,gobject-introspection)
1178 ("pkg-config" ,pkg-config)))
1179 (inputs
1180 `(("clutter" ,clutter)
1181 ("clutter-gst" ,clutter-gst)
1182 ("clutter-gtk" ,clutter-gtk)
1183 ("evince" ,evince) ; For file previewing.
1184 ("freetype" ,freetype)
1185 ("gdk-pixbuf" ,gdk-pixbuf)
1186 ("gjs" ,gjs)
1187 ("gst-plugins-base" ,gst-plugins-base)
1188 ("gstreamer" ,gstreamer)
1189 ("gtksourceview" ,gtksourceview-3)
1190 ("harfbuzz" ,harfbuzz)
1191 ("libepoxy" ,libepoxy)
1192 ("libmusicbrainz" ,libmusicbrainz)
1193 ("libxml2" ,libxml2)
1194 ("neon" ,neon)
1195 ("webkitgtk" ,webkitgtk)))
1196 (synopsis "File previewer for the GNOME desktop")
1197 (description "Sushi is a DBus-activated service that allows applications to
1198 preview files on the GNOME desktop.")
1199 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1200 (license license:gpl2+)))
1201
1202 (define-public rygel
1203 (package
1204 (name "rygel")
1205 (version "0.38.3")
1206 (source (origin
1207 (method url-fetch)
1208 (uri (string-append "mirror://gnome/sources/" name "/"
1209 (version-major+minor version) "/"
1210 name "-" version ".tar.xz"))
1211 (sha256
1212 (base32
1213 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1214 (build-system gnu-build-system)
1215 (native-inputs
1216 `(("gettext" ,gettext-minimal)
1217 ("gobject-introspection" ,gobject-introspection)
1218 ("gtk-doc" ,gtk-doc)
1219 ("pkg-config" ,pkg-config)
1220 ("vala" ,vala)))
1221 (inputs
1222 `(("gdk-pixbuf" ,gdk-pixbuf)
1223 ("gssdp" ,gssdp)
1224 ("gstreamer" ,gstreamer)
1225 ("gst-plugins-base" ,gst-plugins-base)
1226 ("gtk+" ,gtk+)
1227 ("gupnp" ,gupnp)
1228 ("gupnp-av" ,gupnp-av)
1229 ("gupnp-dlna" ,gupnp-dlna)
1230 ("libgee" ,libgee)
1231 ("libmediaart" ,libmediaart)
1232 ("libsoup" ,libsoup)
1233 ("libxslt" ,libxslt)
1234 ("libunistring" ,libunistring)
1235 ("tracker" ,tracker)))
1236 (synopsis "Share audio, video, and pictures with other devices")
1237 (description
1238 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1239 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1240 pictures, and to control a media player on your home network.
1241
1242 Rygel achieves interoperability with other devices by trying to conform to the
1243 strict requirements of DLNA and by converting media on-the-fly to formats that
1244 client devices can handle.")
1245 (home-page "https://wiki.gnome.org/Projects/Rygel")
1246 (license (list
1247 ;; For logo (data/icons/*).
1248 license:cc-by-sa3.0
1249 ;; For all others.
1250 license:lgpl2.1+))))
1251
1252 (define-public libnma
1253 (package
1254 (name "libnma")
1255 (version "1.8.28")
1256 (source (origin
1257 (method url-fetch)
1258 (uri (string-append "mirror://gnome/sources/" name "/"
1259 (version-major+minor version) "/"
1260 name "-" version ".tar.xz"))
1261 (sha256
1262 (base32
1263 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1264 (build-system meson-build-system)
1265 (arguments
1266 `(#:phases
1267 (modify-phases %standard-phases
1268 (add-after 'unpack 'patch-docbook-xml
1269 (lambda* (#:key inputs #:allow-other-keys)
1270 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1271 "/xml/dtd/docbook")))
1272 (substitute* "libnma-docs.xml"
1273 (("http://.*/docbookx\\.dtd")
1274 (string-append xmldoc "/docbookx.dtd")))
1275 #t))))))
1276 (native-inputs
1277 `(("docbook-xml" ,docbook-xml-4.3)
1278 ("gettext" ,gettext-minimal)
1279 ("glib:bin" ,glib "bin")
1280 ("gtk-doc" ,gtk-doc)
1281 ("gobject-introspection" ,gobject-introspection)
1282 ("pkg-config" ,pkg-config)
1283 ("vala" ,vala)))
1284 (inputs
1285 `(("gcr" ,gcr)
1286 ("gtk+" ,gtk+)
1287 ("iso-codes" ,iso-codes)
1288 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1289 ("network-manager" ,network-manager)))
1290 (synopsis "Network Manager's applet library")
1291 (description "Libnma is an applet library for Network Manager. It was
1292 initially part of network-manager-applet and has now become a separate
1293 project.")
1294 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1295 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1296 ;; "LGPL-2.1+".
1297 (license license:gpl2+)))
1298
1299 (define-public gnome-menus
1300 (package
1301 (name "gnome-menus")
1302 (version "3.32.0")
1303 (source (origin
1304 (method url-fetch)
1305 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1306 (version-major+minor version) "/"
1307 name "-" version ".tar.xz"))
1308 (sha256
1309 (base32
1310 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1311 (build-system gnu-build-system)
1312 (native-inputs
1313 `(("gettext" ,gettext-minimal)
1314 ("glib" ,glib)
1315 ("pkg-config" ,pkg-config)))
1316 (synopsis "Menu support for GNOME desktop")
1317 (description "GNOME Menus contains the libgnome-menu library, the layout
1318 configuration files for the GNOME menu, as well as a simple menu editor.")
1319 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1320 (license license:lgpl2.0+)))
1321
1322 (define-public deja-dup
1323 (package
1324 (name "deja-dup")
1325 (version "40.6")
1326 (source (origin
1327 (method url-fetch)
1328 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1329 version "/deja-dup-" version ".tar.bz2"))
1330 (sha256
1331 (base32
1332 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1333 (build-system meson-build-system)
1334 (arguments
1335 `(#:glib-or-gtk? #t
1336 #:configure-flags
1337 (list
1338 ;; Otherwise, the RUNPATH will lack the final path component.
1339 (string-append "-Dc_link_args=-Wl,-rpath="
1340 (assoc-ref %outputs "out") "/lib/deja-dup"))
1341 #:phases
1342 (modify-phases %standard-phases
1343 (add-after 'unpack 'patch-paths
1344 (lambda* (#:key inputs #:allow-other-keys)
1345 (let ((python (assoc-ref inputs "python")))
1346 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1347 "libdeja/tests/scripts/instance-error.test")
1348 (("/bin/rm")
1349 (which "rm")))
1350 (substitute* "libdeja/tests/runner.vala"
1351 (("/bin/sh")
1352 (which "sh")))
1353 (substitute* "libdeja/tests/scripts/instance-error.test"
1354 (("`which python3`")
1355 (string-append python "/bin/python3"))))))
1356 (add-after 'unpack 'patch-libgpg-error
1357 (lambda* (#:key inputs #:allow-other-keys)
1358 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1359 (substitute* "meson.build"
1360 (("(gpgerror_libs = ).*" _ var)
1361 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1362 #t))
1363 (add-after 'unpack 'skip-gtk-update-icon-cache
1364 ;; Don't create 'icon-theme.cache'.
1365 (lambda _
1366 (substitute* "data/post-install.sh"
1367 (("gtk-update-icon-cache") "true"))
1368 #t)))))
1369 (inputs
1370 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1371 ("duplicity" ,duplicity)
1372 ("python" ,python)
1373 ("python-pygobject" ,python-pygobject)
1374 ("gtk+" ,gtk+)
1375 ("json-glib" ,json-glib)
1376 ("libnotify" ,libnotify)
1377 ("libgpg-error" ,libgpg-error)
1378 ("libsecret" ,libsecret)
1379 ("libsoup" ,libsoup)
1380 ("packagekit" ,packagekit)))
1381 (native-inputs
1382 `(("appstream-glib" ,appstream-glib)
1383 ("desktop-file-utils" ,desktop-file-utils)
1384 ("gettext" ,gettext-minimal)
1385 ("glib" ,glib "bin") ; for glib-compile-schemas.
1386 ("gobject-introspection" ,gobject-introspection)
1387 ("itstool" ,itstool)
1388 ("pkg-config" ,pkg-config)
1389 ("vala" ,vala)))
1390 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1391 (synopsis "Simple backup tool, for regular encrypted backups")
1392 (description
1393 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1394 uses duplicity as the backend, which supports incremental backups and storage
1395 either on a local, or remote machine via a number of methods.")
1396 (license license:gpl3+)))
1397
1398 (define-public gnome-user-docs
1399 (package
1400 (name "gnome-user-docs")
1401 (version "3.32.3")
1402 (source
1403 (origin
1404 (method url-fetch)
1405 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1406 (version-major+minor version)
1407 "/gnome-user-docs-" version ".tar.xz"))
1408 (sha256
1409 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1410 (build-system gnu-build-system)
1411 (native-inputs
1412 `(("gettext" ,gettext-minimal)
1413 ("itstool" ,itstool)
1414 ("pkg-config" ,pkg-config)
1415 ("xmllint" ,libxml2)))
1416 (synopsis "User documentation for the GNOME desktop")
1417 (description
1418 "The GNOME User Documentation explains how to use the GNOME desktop and its
1419 components. It covers usage and setup of the core GNOME programs by end-users
1420 and system administrators.")
1421 (home-page "https://live.gnome.org/DocumentationProject")
1422 (license license:cc-by3.0)))
1423
1424 (define-public gnome-getting-started-docs
1425 (package
1426 (name "gnome-getting-started-docs")
1427 (version "3.32.2")
1428 (source
1429 (origin
1430 (method url-fetch)
1431 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1432 (version-major+minor version)
1433 "/gnome-getting-started-docs-" version ".tar.xz"))
1434 (sha256
1435 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1436 (build-system gnu-build-system)
1437 (native-inputs
1438 `(("gettext" ,gettext-minimal)
1439 ("itstool" ,itstool)
1440 ("pkg-config" ,pkg-config)
1441 ("xmllint" ,libxml2)))
1442 (synopsis "Help to get new users started with the GNOME desktop")
1443 (description
1444 "The GNOME Getting Started Documentation contains GNOME's intuitive
1445 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1446
1447 It is normally used together with @command{gnome-initial-setup}, but is also
1448 useful as a tutorial and users' guide for new or less experienced users.")
1449 (home-page "https://live.gnome.org/DocumentationProject")
1450 (license license:cc-by-sa3.0)))
1451
1452 (define-public dia
1453 ;; This version from GNOME's repository includes fixes for compiling with
1454 ;; recent versions of the build tools. The latest activity on the
1455 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1456 ;; fixes since.
1457 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1458 (revision "2"))
1459 (package
1460 (name "dia")
1461 (version (git-version "0.97.3" revision commit))
1462 (source (origin
1463 (method git-fetch)
1464 (uri (git-reference
1465 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1466 (commit commit)))
1467 (file-name (git-file-name name version))
1468 (sha256
1469 (base32
1470 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1471 (build-system meson-build-system)
1472 (inputs
1473 `(("graphene" ,graphene)
1474 ("gtk+" ,gtk+-2)
1475 ("libxml2" ,libxml2)
1476 ("libxslt" ,libxslt)
1477 ("poppler" ,poppler)
1478 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1479 ;; ERROR: Unknown method "dependency" in object.
1480 ("python-2" ,python-2)))
1481 (native-inputs
1482 `(("appstream-glib" ,appstream-glib)
1483 ("docbook-xsl" ,docbook-xsl)
1484 ("glib" ,glib "bin")
1485 ("intltool" ,intltool)
1486 ("pkg-config" ,pkg-config)))
1487 (home-page "https://wiki.gnome.org/Apps/Dia")
1488 (synopsis "Diagram creation for GNOME")
1489 (description "Dia can be used to draw different types of diagrams, and
1490 includes support for UML static structure diagrams (class diagrams), entity
1491 relationship modeling, and network diagrams. The program supports various file
1492 formats like PNG, SVG, PDF and EPS.")
1493 (license license:gpl2+))))
1494
1495 ;; This is the unstable release, but it is required for the current stable
1496 ;; release of gvfs (1.38.1).
1497 (define-public libgdata
1498 (package
1499 (name "libgdata")
1500 (version "0.17.9")
1501 (source (origin
1502 (method url-fetch)
1503 (uri (string-append "mirror://gnome/sources/" name "/"
1504 (version-major+minor version) "/"
1505 name "-" version ".tar.xz"))
1506 (sha256
1507 (base32
1508 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1509 (build-system gnu-build-system)
1510 (arguments
1511 '(#:phases
1512 (modify-phases %standard-phases
1513 (add-before 'check 'disable-failing-tests
1514 (lambda _
1515 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1516 ;; They have been removed in libgdata 0.17.6, so just do the same.
1517 (substitute* "gdata/tests/Makefile"
1518 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1519 #t)))))
1520 (native-inputs
1521 `(("glib:bin" ,glib "bin")
1522 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1523 ("intltool" ,intltool)
1524 ("pkg-config" ,pkg-config)
1525 ("uhttpmock" ,uhttpmock)))
1526 (inputs
1527 `(("cyrus-sasl" ,cyrus-sasl)
1528 ("glib-networking" ,glib-networking)))
1529 (propagated-inputs
1530 `(("gcr" ,gcr)
1531 ("glib" ,glib)
1532 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1533 ("json-glib" ,json-glib)
1534 ("liboauth" ,liboauth)
1535 ("libsoup" ,libsoup)
1536 ("libxml2" ,libxml2)))
1537 (home-page "https://wiki.gnome.org/Projects/libgdata")
1538 (synopsis "Library for accessing online service APIs")
1539 (description
1540 "libgdata is a GLib-based library for accessing online service APIs using
1541 the GData protocol — most notably, Google's services. It provides APIs to
1542 access the common Google services, and has full asynchronous support.")
1543 (license license:lgpl2.1+)))
1544
1545 (define-public libgxps
1546 (package
1547 (name "libgxps")
1548 (version "0.3.1")
1549 (source (origin
1550 (method url-fetch)
1551 (uri (string-append "mirror://gnome/sources/" name "/"
1552 (version-major+minor version) "/"
1553 name "-" version ".tar.xz"))
1554 (sha256
1555 (base32
1556 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1557 (build-system meson-build-system)
1558 (native-inputs
1559 `(("gobject-introspection" ,gobject-introspection)
1560 ("pkg-config" ,pkg-config)))
1561 (inputs
1562 `(("gtk+" ,gtk+)
1563 ("libjpeg" ,libjpeg-turbo)
1564 ("lcms" ,lcms)
1565 ("libtiff" ,libtiff)))
1566 (propagated-inputs
1567 ;; In Requires of libgxps.pc.
1568 `(("cairo" ,cairo)
1569 ("glib" ,glib)
1570 ("libarchive" ,libarchive)))
1571 (home-page "https://wiki.gnome.org/Projects/libgxps")
1572 (synopsis "GObject-based library for handling and rendering XPS documents")
1573 (description
1574 "libgxps is a GObject-based library for handling and rendering XPS
1575 documents. This package also contains binaries that can convert XPS documents
1576 to other formats.")
1577 (license license:lgpl2.1+)))
1578
1579 (define-public gnome-characters
1580 (package
1581 (name "gnome-characters")
1582 (version "3.30.0")
1583 (source
1584 (origin
1585 (method url-fetch)
1586 (uri (string-append "mirror://gnome/sources/"
1587 "gnome-characters/" (version-major+minor version)
1588 "/gnome-characters-" version ".tar.xz"))
1589 (sha256
1590 (base32
1591 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1592 (build-system meson-build-system)
1593 (arguments
1594 `(#:glib-or-gtk? #t
1595 #:phases (modify-phases %standard-phases
1596 (add-after 'install 'wrap
1597 (lambda* (#:key outputs #:allow-other-keys)
1598 ;; GNOME Characters needs Typelib files from GTK and
1599 ;; gnome-desktop.
1600 (wrap-program (string-append (assoc-ref outputs "out")
1601 "/bin/gnome-characters")
1602 `("GI_TYPELIB_PATH" ":" prefix
1603 (,(getenv "GI_TYPELIB_PATH"))))
1604 #t)))))
1605 (native-inputs
1606 `(("gettext" ,gettext-minimal)
1607 ("glib:bin" ,glib "bin")
1608 ("gtk+:bin" ,gtk+ "bin")
1609 ("pkg-config" ,pkg-config)
1610 ("python" ,python-minimal)))
1611 (inputs
1612 `(("gjs" ,gjs)
1613 ("gtk+" ,gtk+)
1614 ("libunistring" ,libunistring)
1615 ("gnome-desktop" ,gnome-desktop)))
1616 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1617 (synopsis "Find and insert unusual characters")
1618 (description "Characters is a simple utility application to find
1619 and insert unusual characters. It allows you to quickly find the
1620 character you are looking for by searching for keywords.")
1621 (license license:bsd-3)))
1622
1623 (define-public gnome-common
1624 (package
1625 (name "gnome-common")
1626 (version "3.18.0")
1627 (source
1628 (origin
1629 (method url-fetch)
1630 (uri (string-append "mirror://gnome/sources/" name "/"
1631 (version-major+minor version) "/"
1632 name "-" version ".tar.xz"))
1633 (sha256
1634 (base32
1635 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1636 (build-system gnu-build-system)
1637 (home-page "https://www.gnome.org/")
1638 (synopsis "Bootstrap GNOME modules built from Git")
1639 (description "gnome-common contains various files needed to bootstrap
1640 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1641 can be used to configure a source directory checked out from Git and some
1642 commonly used macros.")
1643 (license license:gpl2+)))
1644
1645 (define-public gnome-contacts
1646 (package
1647 (name "gnome-contacts")
1648 (version "3.34")
1649 (source (origin
1650 (method url-fetch)
1651 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1652 (version-major+minor version) "/"
1653 name "-" version ".tar.xz"))
1654 (sha256
1655 (base32
1656 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1657 (build-system meson-build-system)
1658 (arguments
1659 `(#:configure-flags '("-Dcheese=false")
1660 #:phases
1661 (modify-phases %standard-phases
1662 (add-after 'unpack 'generate-vapis
1663 (lambda* (#:key inputs #:allow-other-keys)
1664 ;; To generate goa's missing .vapi file
1665 (define goa
1666 (assoc-ref inputs "gnome-online-accounts:lib"))
1667
1668 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1669 "--library=goa-1.0"
1670 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1671 #t))
1672 (add-after 'unpack 'skip-gtk-update-icon-cache
1673 ;; Don't create 'icon-theme.cache'.
1674 (lambda _
1675 (substitute* "build-aux/meson_post_install.py"
1676 (("gtk-update-icon-cache") "true"))
1677 #t)))))
1678 (native-inputs
1679 `(("glib:bin" ,glib "bin")
1680 ("pkg-config" ,pkg-config)))
1681 (inputs
1682 `(("docbook-xml" ,docbook-xml)
1683 ("dockbook-xsl" ,docbook-xsl)
1684 ("evolution-data-server" ,evolution-data-server)
1685 ("gettext" ,gettext-minimal)
1686 ("gnome-desktop" ,gnome-desktop)
1687 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1688 ("gobject-introspection" ,gobject-introspection)
1689 ("gst-plugins-base" ,gst-plugins-base)
1690 ("gtk+" ,gtk+)
1691 ("libgee" ,libgee)
1692 ("libxslt" ,libxslt)
1693 ("telepathy-glib" ,telepathy-glib)
1694 ("vala" ,vala)))
1695 (propagated-inputs
1696 `(("folks", folks)
1697 ("telepathy-mission-control" ,telepathy-mission-control)))
1698 (synopsis "GNOME's integrated address book")
1699 (description
1700 "GNOME Contacts organizes your contact information from online and
1701 offline sources, providing a centralized place for managing your contacts.")
1702 (home-page "https://wiki.gnome.org/Apps/Contacts")
1703 (license license:gpl2+)))
1704
1705 (define-public gnome-desktop
1706 (package
1707 (name "gnome-desktop")
1708 (version "3.34.2")
1709 (source
1710 (origin
1711 (method url-fetch)
1712 (uri (string-append "mirror://gnome/sources/" name "/"
1713 (version-major+minor version) "/"
1714 name "-" version ".tar.xz"))
1715 (sha256
1716 (base32
1717 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
1718 (build-system meson-build-system)
1719 (arguments
1720 '(#:phases
1721 (modify-phases %standard-phases
1722 (add-before 'configure 'patch-path
1723 (lambda* (#:key inputs #:allow-other-keys)
1724 (let ((libc (assoc-ref inputs "libc")))
1725 (substitute* "libgnome-desktop/gnome-languages.c"
1726 (("\"locale\"")
1727 (string-append "\"" libc "/bin/locale\"")))
1728 #t)))
1729 (add-before 'configure 'patch-bubblewrap
1730 (lambda* (#:key inputs #:allow-other-keys)
1731 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
1732 (("\"bwrap\",")
1733 (string-append "\"" (which "bwrap") "\","))
1734 (("\"--ro-bind\", \"/usr\", \"/usr\",")
1735 (string-append "\"--ro-bind\", \""
1736 (%store-directory)
1737 "\", \""
1738 (%store-directory)
1739 "\","))
1740 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
1741 #t))
1742 (add-before 'check 'pre-check
1743 (lambda* (#:key inputs #:allow-other-keys)
1744 ;; Tests require a running X server and locales.
1745 (system "Xvfb :1 &")
1746 (setenv "DISPLAY" ":1")
1747 (setenv "GUIX_LOCPATH"
1748 (string-append (assoc-ref inputs "glibc-locales")
1749 "/lib/locale"))
1750 #t)))))
1751 (native-inputs
1752 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1753 ("glibc-locales" ,glibc-locales) ; for tests
1754 ("gobject-introspection" ,gobject-introspection)
1755 ("itstool" ,itstool)
1756 ("intltool" ,intltool)
1757 ("pkg-config" ,pkg-config)
1758 ("xmllint" ,libxml2)
1759 ("xorg-server" ,xorg-server-for-tests)))
1760 (propagated-inputs
1761 ;; Required by gnome-desktop-3.0.pc.
1762 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1763 ("gtk+" ,gtk+)
1764 ("iso-codes" ,iso-codes)
1765 ("libseccomp" ,libseccomp)
1766 ("libx11" ,libx11)
1767 ("xkeyboard-config" ,xkeyboard-config)))
1768 (inputs
1769 `(("gdk-pixbuf" ,gdk-pixbuf)
1770 ("glib" ,glib)
1771 ("bubblewrap" ,bubblewrap)
1772 ("libxext" ,libxext)
1773 ("libxkbfile" ,libxkbfile)
1774 ("libxrandr" ,libxrandr)))
1775 (home-page "https://www.gnome.org/")
1776 (synopsis
1777 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1778 (description
1779 "The libgnome-desktop library provides API shared by several applications
1780 on the desktop, but that cannot live in the platform for various reasons.
1781 There is no API or ABI guarantee, although we are doing our best to provide
1782 stability. Documentation for the API is available with gtk-doc.
1783
1784 The gnome-about program helps find which version of GNOME is installed.")
1785 ; Some bits under the LGPL.
1786 (license license:gpl2+)))
1787
1788 (define-public gnome-doc-utils
1789 (package
1790 (name "gnome-doc-utils")
1791 (version "0.20.10")
1792 (source
1793 (origin
1794 (method url-fetch)
1795 (uri (string-append "mirror://gnome/sources/" name "/"
1796 (version-major+minor version) "/"
1797 name "-" version ".tar.xz"))
1798 (sha256
1799 (base32
1800 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1801 (build-system gnu-build-system)
1802 (native-inputs
1803 `(("intltool" ,intltool)
1804 ("docbook-xml" ,docbook-xml-4.4)
1805 ("python2-libxml2" ,python2-libxml2)
1806 ("libxml2" ,libxml2)
1807 ("libxslt" ,libxslt)
1808 ("pkg-config" ,pkg-config)
1809 ("python-2" ,python-2)))
1810 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1811 (synopsis
1812 "Documentation utilities for the Gnome project")
1813 (description
1814 "Gnome-doc-utils is a collection of documentation utilities for the
1815 Gnome project. It includes xml2po tool which makes it easier to translate
1816 and keep up to date translations of documentation.")
1817 (license license:gpl2+))) ; xslt under lgpl
1818
1819 (define-public gnome-disk-utility
1820 (package
1821 (name "gnome-disk-utility")
1822 (version "3.34.0")
1823 (source (origin
1824 (method url-fetch)
1825 (uri (string-append "mirror://gnome/sources/" name "/"
1826 (version-major+minor version) "/"
1827 name "-" version ".tar.xz"))
1828 (sha256
1829 (base32
1830 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
1831 (build-system meson-build-system)
1832 (arguments
1833 '(#:configure-flags '("-Dlogind=libelogind")
1834 #:phases
1835 (modify-phases %standard-phases
1836 (add-after 'unpack 'skip-gtk-update-icon-cache
1837 ;; Don't create 'icon-theme.cache'.
1838 (lambda _
1839 (substitute* "meson_post_install.py"
1840 (("gtk-update-icon-cache") "true"))
1841 #t)))))
1842 (native-inputs
1843 `(("glib:bin" ,glib "bin")
1844 ("intltool" ,intltool)
1845 ("pkg-config" ,pkg-config)
1846 ("docbook-xml" ,docbook-xml)
1847 ("docbook-xsl" ,docbook-xsl)
1848 ("libxml2" ,libxml2)
1849 ("libxslt" ,libxslt)))
1850 (inputs
1851 `(("elogind" ,elogind)
1852 ("glib" ,glib)
1853 ("appstream-glib" ,appstream-glib)
1854 ("gnome-settings-daemon" ,gnome-settings-daemon)
1855 ("gtk+" ,gtk+)
1856 ("libcanberra" ,libcanberra)
1857 ("libdvdread" ,libdvdread)
1858 ("libnotify" ,libnotify)
1859 ("libpwquality" ,libpwquality)
1860 ("libsecret" ,libsecret)
1861 ("udisks" ,udisks)))
1862 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1863 (synopsis "Disk management utility for GNOME")
1864 (description "Disk management utility for GNOME.")
1865 (license license:gpl2+)))
1866
1867 (define-public gnome-font-viewer
1868 (package
1869 (name "gnome-font-viewer")
1870 (version "3.30.0")
1871 (source (origin
1872 (method url-fetch)
1873 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1874 (version-major+minor version)
1875 "/gnome-font-viewer-" version ".tar.xz"))
1876 (sha256
1877 (base32
1878 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1879 (build-system meson-build-system)
1880 (arguments
1881 '(#:phases
1882 (modify-phases %standard-phases
1883 (add-after 'unpack 'patch-post-install-script
1884 (lambda _
1885 (substitute* "meson-postinstall.sh"
1886 (("update-desktop-database") (which "true")))
1887 #t)))))
1888 (native-inputs
1889 `(("gettext" ,gettext-minimal)
1890 ("glib:bin" ,glib "bin")
1891 ("pkg-config" ,pkg-config)))
1892 (inputs
1893 `(("glib" ,glib)
1894 ("gnome-desktop" ,gnome-desktop)
1895 ("gtk+" ,gtk+)))
1896 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1897 (synopsis "GNOME Fonts")
1898 (description "Application to show you the fonts installed on your computer
1899 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1900 the font would look under various sizes.")
1901 (license license:gpl2+)))
1902
1903 (define-public gcr
1904 (package
1905 (name "gcr")
1906 (version "3.34.0")
1907 (source (origin
1908 (method url-fetch)
1909 (uri (string-append "mirror://gnome/sources/" name "/"
1910 (version-major+minor version) "/"
1911 name "-" version ".tar.xz"))
1912 (sha256
1913 (base32
1914 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
1915 (build-system gnu-build-system)
1916 (arguments
1917 '(#:phases
1918 (modify-phases %standard-phases
1919 ;; These fail because /var/lib/dbus/machine-id is not present in the
1920 ;; build environment.
1921 (add-after 'unpack 'disable-failing-tests
1922 (lambda _
1923 (substitute* "Makefile.in"
1924 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1925 ""))
1926 #t))
1927 (add-before 'check 'pre-check
1928 (lambda _
1929 ;; Some tests expect to write to $HOME.
1930 (setenv "HOME" "/tmp")
1931 #t)))))
1932 (inputs
1933 `(("dbus" ,dbus)
1934 ("gnupg" ,gnupg) ;called as a child process during tests
1935 ("libgcrypt" ,libgcrypt)))
1936 (native-inputs
1937 `(("python" ,python-wrapper) ;for tests
1938 ("pkg-config" ,pkg-config)
1939 ("gettext" ,gettext-minimal)
1940 ("glib" ,glib "bin")
1941 ("gobject-introspection" ,gobject-introspection)
1942 ("libxml2" ,libxml2)
1943 ("vala" ,vala)
1944 ("xsltproc" ,libxslt)))
1945 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1946 (propagated-inputs
1947 `(("p11-kit" ,p11-kit)
1948 ("glib" ,glib)
1949 ("gtk+" ,gtk+)))
1950 (home-page "https://www.gnome.org")
1951 (synopsis "Libraries for displaying certificates and accessing key stores")
1952 (description
1953 "The GCR package contains libraries used for displaying certificates and
1954 accessing key stores. It also provides the viewer for crypto files on the
1955 GNOME Desktop.")
1956 (license license:lgpl2.1+)))
1957
1958 (define-public gdl
1959 (package
1960 (name "gdl")
1961 (version "3.34.0")
1962 (source (origin
1963 (method git-fetch)
1964 (uri (git-reference
1965 (url "https://gitlab.gnome.org/GNOME/gdl.git")
1966 (commit (string-append "GDL_" (string-map (match-lambda
1967 (#\. #\_)
1968 (c c))
1969 version)))))
1970 (file-name (git-file-name name version))
1971 (sha256
1972 (base32
1973 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
1974 (build-system gnu-build-system)
1975 (native-inputs
1976 `(("autoconf" ,autoconf)
1977 ("automake" ,automake)
1978 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1979 ("gnome-common" ,gnome-common)
1980 ("gtk-doc" ,gtk-doc)
1981 ("intltool" ,intltool)
1982 ("pkg-config" ,pkg-config)
1983 ("libtool" ,libtool)
1984 ("which" ,which)))
1985 (inputs
1986 `(("libxml2" ,libxml2)))
1987 (propagated-inputs
1988 ;; The gdl-3.0.pc file 'Requires' GTK+.
1989 `(("gtk+" ,gtk+)))
1990 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
1991 (synopsis "GNOME docking library")
1992 (description "This library provides docking features for gtk+.")
1993 (license license:lgpl2.1+)))
1994
1995 ;;; A minimal variant used to break a cycle with Inkscape.
1996 (define-public gdl-minimal
1997 (package
1998 (inherit gdl)
1999 (name "gdl-minimal")
2000 (arguments
2001 '(#:phases
2002 (modify-phases %standard-phases
2003 (add-after 'unpack 'disable-doc-generation
2004 ;; XXX: There is no easy way to disable generating the
2005 ;; documentation.
2006 (lambda _
2007 (substitute* "configure.in"
2008 (("GTK_DOC_CHECK.*") "")
2009 (("docs/.*") ""))
2010 (substitute* "Makefile.am"
2011 (("gdl docs po") "gdl po"))
2012 #t)))))
2013 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2014
2015 (define-public libgnome-keyring
2016 (package
2017 (name "libgnome-keyring")
2018 (version "3.12.0")
2019 (source (origin
2020 (method url-fetch)
2021 (uri (string-append "mirror://gnome/sources/" name "/"
2022 (version-major+minor version) "/"
2023 name "-" version ".tar.xz"))
2024 (sha256
2025 (base32
2026 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2027 (build-system gnu-build-system)
2028 (inputs
2029 `(("libgcrypt" ,libgcrypt)
2030 ("dbus" ,dbus)))
2031 (native-inputs
2032 `(("pkg-config" ,pkg-config)
2033 ("glib" ,glib "bin")
2034 ("intltool" ,intltool)))
2035 (propagated-inputs
2036 ;; Referred to in .h files and .pc.
2037 `(("glib" ,glib)))
2038 (home-page "https://www.gnome.org")
2039 (synopsis "Accessing passwords from the GNOME keyring")
2040 (description
2041 "Client library to access passwords from the GNOME keyring.")
2042
2043 ;; Though a couple of files are LGPLv2.1+.
2044 (license license:lgpl2.0+)))
2045
2046 (define-public gnome-keyring
2047 (package
2048 (name "gnome-keyring")
2049 (version "3.34.0")
2050 (source (origin
2051 (method url-fetch)
2052 (uri (string-append "mirror://gnome/sources/" name "/"
2053 (version-major+minor version) "/"
2054 name "-" version ".tar.xz"))
2055 (sha256
2056 (base32
2057 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2058 (build-system gnu-build-system)
2059 (arguments
2060 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2061 ;not exist
2062 #:configure-flags
2063 (list
2064 (string-append "--with-pkcs11-config="
2065 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2066 (string-append "--with-pkcs11-modules="
2067 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2068 #:phases
2069 (modify-phases %standard-phases
2070 (add-after 'unpack 'fix-/bin/sh-reference
2071 (lambda _
2072 (substitute* "po/Makefile.in.in"
2073 (("/bin/sh") (which "sh")))
2074 #t))
2075 (add-after 'unpack 'fix-docbook
2076 (lambda* (#:key inputs #:allow-other-keys)
2077 (substitute* "docs/Makefile.am"
2078 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2079 (string-append (assoc-ref inputs "docbook-xsl")
2080 "/xml/xsl/docbook-xsl-"
2081 ,(package-version docbook-xsl)
2082 "/manpages/docbook.xsl")))
2083 (setenv "XML_CATALOG_FILES"
2084 (string-append (assoc-ref inputs "docbook-xml")
2085 "/xml/dtd/docbook/catalog.xml"))
2086 ;; Rerun the whole thing to avoid version mismatch ("This is
2087 ;; Automake 1.15.1, but the definition used by this
2088 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2089 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2090 (invoke "autoconf")
2091 (invoke "aclocal")
2092 (invoke "automake" "-ac"))))))
2093 (inputs
2094 `(("libgcrypt" ,libgcrypt)
2095 ("linux-pam" ,linux-pam)
2096 ("openssh" ,openssh)
2097 ("dbus" ,dbus)
2098 ("gcr" ,gcr)))
2099 (native-inputs
2100 `(("pkg-config" ,pkg-config)
2101 ("glib" ,glib "bin")
2102 ("glib" ,glib) ; for m4 macros
2103 ("python" ,python-2) ;for tests
2104 ("intltool" ,intltool)
2105 ("autoconf" ,autoconf)
2106 ("automake" ,automake)
2107 ("libxslt" ,libxslt) ;for documentation
2108 ("docbook-xml" ,docbook-xml-4.2)
2109 ("docbook-xsl" ,docbook-xsl)))
2110 (home-page "https://www.gnome.org")
2111 (synopsis "Daemon to store passwords and encryption keys")
2112 (description
2113 "gnome-keyring is a program that keeps passwords and other secrets for
2114 users. It is run as a daemon in the session, similar to ssh-agent, and other
2115 applications locate it via an environment variable or D-Bus.
2116
2117 The program can manage several keyrings, each with its own master password,
2118 and there is also a session keyring which is never stored to disk, but
2119 forgotten when the session ends.")
2120 (license license:lgpl2.1+)))
2121
2122 (define-public evince
2123 (package
2124 (name "evince")
2125 (version "3.36.5")
2126 (source (origin
2127 (method url-fetch)
2128 (uri (string-append "mirror://gnome/sources/evince/"
2129 (version-major+minor version) "/"
2130 "evince-" version ".tar.xz"))
2131 (sha256
2132 (base32
2133 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2134 (build-system glib-or-gtk-build-system)
2135 (arguments
2136 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2137 #:phases
2138 (modify-phases %standard-phases
2139 (add-before 'install 'skip-gtk-update-icon-cache
2140 ;; Don't create 'icon-theme.cache'.
2141 (lambda _
2142 (substitute* "data/Makefile"
2143 (("gtk-update-icon-cache") "true"))
2144 #t)))))
2145 (inputs
2146 `(("libarchive" ,libarchive)
2147 ("libgxps" ,libgxps)
2148 ("libspectre" ,libspectre)
2149 ("djvulibre" ,djvulibre)
2150 ("ghostscript" ,ghostscript)
2151 ("poppler" ,poppler)
2152 ("libtiff" ,libtiff)
2153 ;; TODO:
2154 ;; Build libkpathsea as a shared library for DVI support.
2155 ;; ("libkpathsea" ,texlive-bin)
2156 ("gnome-desktop" ,gnome-desktop)
2157 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2158 ("gspell" ,gspell)
2159 ("libgnome-keyring" ,libgnome-keyring)
2160 ("adwaita-icon-theme" ,adwaita-icon-theme)
2161 ("gdk-pixbuf" ,gdk-pixbuf)
2162 ("atk" ,atk)
2163 ("pango" ,pango)
2164 ("gtk+" ,gtk+)
2165 ("glib" ,glib)
2166 ("libxml2" ,libxml2)
2167 ("libsm" ,libsm)
2168 ("libice" ,libice)
2169 ("shared-mime-info" ,shared-mime-info)
2170 ("dconf" ,dconf)
2171 ("libcanberra" ,libcanberra)
2172 ("libsecret" ,libsecret)
2173
2174 ;; For tests.
2175 ("dogtail" ,python2-dogtail)))
2176 (native-inputs
2177 `(("itstool" ,itstool)
2178 ("intltool" ,intltool)
2179 ("glib" ,glib "bin")
2180 ("gobject-introspection" ,gobject-introspection)
2181 ("pkg-config" ,pkg-config)
2182 ("xmllint" ,libxml2)))
2183 (home-page "https://www.gnome.org/projects/evince/")
2184 (synopsis "GNOME's document viewer")
2185 (description
2186 "Evince is a document viewer for multiple document formats. It
2187 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2188 of Evince is to replace the multiple document viewers that exist
2189 on the GNOME Desktop with a single simple application.")
2190 (license license:gpl2+)))
2191
2192 (define-public gsettings-desktop-schemas
2193 (package
2194 (name "gsettings-desktop-schemas")
2195 (version "3.34.0")
2196 (source
2197 (origin
2198 (method url-fetch)
2199 (uri (string-append "mirror://gnome/sources/" name "/"
2200 (version-major+minor version) "/"
2201 name "-" version ".tar.xz"))
2202 (sha256
2203 (base32
2204 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2205 (build-system meson-build-system)
2206 (arguments
2207 '(#:phases (modify-phases %standard-phases
2208 (add-after 'unpack 'patch-schemas
2209 (lambda* (#:key inputs #:allow-other-keys)
2210 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2211 (substitute* (find-files "schemas"
2212 "\\.gschema\\.xml\\.in$")
2213 ;; Provide the correct file name of the default GNOME
2214 ;; background, 'adwaita-timed.xml'.
2215 (("@datadir@/backgrounds/gnome")
2216 (string-append theme "/share/backgrounds/gnome"))
2217 ;; Do not reference fonts, that may not exist.
2218 (("'Source Code Pro 10'") "'Monospace 11'"))
2219 #t))))))
2220 (inputs
2221 `(("glib" ,glib)
2222 ("gnome-backgrounds" ,gnome-backgrounds)))
2223 (native-inputs
2224 `(("intltool" ,intltool)
2225 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2226 ("gobject-introspection" ,gobject-introspection)
2227 ("pkg-config" ,pkg-config)))
2228 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2229 (synopsis
2230 "GNOME settings for various desktop components")
2231 (description
2232 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2233 for settings shared by various components of the GNOME desktop.")
2234 (license license:lgpl2.1+)))
2235
2236 (define-public icon-naming-utils
2237 (package
2238 (name "icon-naming-utils")
2239 (version "0.8.90")
2240 (source
2241 (origin
2242 (method url-fetch)
2243 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2244 version ".tar.bz2"))
2245 (sha256
2246 (base32
2247 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2248 (build-system gnu-build-system)
2249 (inputs
2250 `(("perl" ,perl)
2251 ("perl-xml-simple" ,perl-xml-simple)))
2252 (arguments
2253 '(#:phases
2254 (modify-phases %standard-phases
2255 (add-after 'install 'set-load-paths
2256 ;; Tell 'icon-name-mapping' where XML::Simple is.
2257 (lambda* (#:key outputs #:allow-other-keys)
2258 (let* ((out (assoc-ref outputs "out"))
2259 (prog (string-append out "/libexec/icon-name-mapping")))
2260 (wrap-program
2261 prog
2262 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2263 #t)))))
2264 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2265 (synopsis
2266 "Utility to implement the Freedesktop Icon Naming Specification")
2267 (description
2268 "To help with the transition to the Freedesktop Icon Naming
2269 Specification, the icon naming utility maps the icon names used by the
2270 GNOME and KDE desktops to the icon names proposed in the specification.")
2271 (license license:lgpl2.1+)))
2272
2273 (define-public gnome-icon-theme
2274 (package
2275 (name "gnome-icon-theme")
2276 (version "3.12.0")
2277 (source
2278 (origin
2279 (method url-fetch)
2280 (uri (string-append "mirror://gnome/sources/" name "/"
2281 (version-major+minor version) "/"
2282 name "-" version ".tar.xz"))
2283 (sha256
2284 (base32
2285 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2286 (build-system gnu-build-system)
2287 (arguments
2288 '(#:configure-flags
2289 ;; Don't create 'icon-theme.cache'.
2290 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2291 (true (string-append coreutils "/bin/true")))
2292 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2293 (native-inputs
2294 `(("icon-naming-utils" ,icon-naming-utils)
2295 ("intltool" ,intltool)
2296 ("pkg-config" ,pkg-config)))
2297 (home-page "https://wiki.gnome.org/Personalization")
2298 (synopsis "GNOME icon theme")
2299 (description "Icons for the GNOME desktop.")
2300 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2301
2302 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2303 (define-public adwaita-icon-theme
2304 (package (inherit gnome-icon-theme)
2305 (name "adwaita-icon-theme")
2306 (version "3.34.3")
2307 (source (origin
2308 (method url-fetch)
2309 (uri (string-append "mirror://gnome/sources/" name "/"
2310 (version-major+minor version) "/"
2311 name "-" version ".tar.xz"))
2312 (sha256
2313 (base32
2314 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2315 (native-inputs
2316 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2317
2318 (define-public tango-icon-theme
2319 (package
2320 (name "tango-icon-theme")
2321 (version "0.8.90")
2322 (source (origin
2323 (method url-fetch)
2324 (uri (string-append "http://tango.freedesktop.org/releases/"
2325 "tango-icon-theme-" version ".tar.bz2"))
2326 (sha256
2327 (base32
2328 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2329 (build-system gnu-build-system)
2330 (native-inputs
2331 `(("icon-naming-utils" ,icon-naming-utils)
2332 ("intltool" ,intltool)
2333 ("imagemagick" ,imagemagick)
2334 ("pkg-config" ,pkg-config)))
2335 (home-page "http://tango-project.org/")
2336 (synopsis "Tango icon theme")
2337 (description "This is an icon theme that follows the Tango visual
2338 guidelines.")
2339 (license license:public-domain)))
2340
2341 (define-public shared-mime-info
2342 (package
2343 (name "shared-mime-info")
2344 (version "1.15")
2345 (source (origin
2346 (method url-fetch)
2347 (uri (string-append
2348 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2349 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2350 ".tar.xz"))
2351 (sha256
2352 (base32
2353 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2354 (build-system gnu-build-system)
2355 (arguments
2356 ;; The build system appears not to be parallel-safe.
2357 '(#:parallel-build? #f))
2358 (inputs
2359 `(("glib" ,glib)
2360 ("libxml2" ,libxml2)))
2361 (native-inputs
2362 `(("gettext" ,gettext-minimal)
2363 ("itstool" ,itstool)
2364 ("pkg-config" ,pkg-config)))
2365 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2366 (synopsis "Database of common MIME types")
2367 (description
2368 "The shared-mime-info package contains the core database of common types
2369 and the update-mime-database command used to extend it. It requires glib2 to
2370 be installed for building the update command. Additionally, it uses intltool
2371 for translations, though this is only a dependency for the maintainers. This
2372 database is translated at Transifex.")
2373 (license license:gpl2+)))
2374
2375 (define-public system-config-printer
2376 (package
2377 (name "system-config-printer")
2378 (version "1.5.12")
2379 (source
2380 (origin
2381 (method url-fetch)
2382 (uri (string-append
2383 "https://github.com/OpenPrinting/system-config-printer/releases/"
2384 "download/" version
2385 "/system-config-printer-" version ".tar.xz"))
2386 (sha256
2387 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
2388 (build-system glib-or-gtk-build-system)
2389 (arguments
2390 `(#:imported-modules ((guix build python-build-system)
2391 ,@%glib-or-gtk-build-system-modules)
2392 #:phases
2393 (modify-phases %standard-phases
2394 (add-after 'unpack 'patch-Makefile.am
2395 (lambda _
2396 ;; The Makefile generates some scripts, so set a valid shebang
2397 (substitute* "Makefile.am"
2398 (("/bin/bash") (which "bash")))
2399 (delete-file "configure")
2400 #t))
2401 (add-after 'unpack 'patch-docbook-xml
2402 (lambda* (#:key inputs #:allow-other-keys)
2403 ;; Modify the man XML otherwise xmlto tries to access the network
2404 (substitute* "man/system-config-printer.xml"
2405 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2406 (string-append (assoc-ref inputs "docbook-xml")
2407 "/xml/dtd/docbook/")))
2408 #t))
2409 (add-after 'install 'wrap-for-python
2410 (@@ (guix build python-build-system) wrap))
2411 (add-after 'install 'wrap
2412 (lambda* (#:key outputs #:allow-other-keys)
2413 (let ((out (assoc-ref outputs "out"))
2414 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2415 (for-each
2416 (lambda (program)
2417 (wrap-program program
2418 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2419 (map (lambda (name)
2420 (string-append out "/bin/" name))
2421 '("system-config-printer"
2422 "system-config-printer-applet"
2423 "install-printerdriver"
2424 "scp-dbus-service"))))
2425 #t)))))
2426 (inputs
2427 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2428 ("gobject-introspection" ,gobject-introspection)
2429 ("python" ,python)
2430 ("cups" ,cups)
2431 ("gtk+" ,gtk+)
2432 ("python-dbus" ,python-dbus)
2433 ("python-pygobject" ,python-pygobject)
2434 ("python-pycups" ,python-pycups)
2435 ("python-requests" ,python-requests)
2436 ("python-pycairo" ,python-pycairo)
2437 ("libnotify" ,libnotify)
2438 ("packagekit" ,packagekit)))
2439 (native-inputs
2440 `(("pkg-config" ,pkg-config)
2441 ("desktop-file-utils" ,desktop-file-utils)
2442 ("glib" ,glib)
2443 ("autoconf" ,autoconf)
2444 ("automake" ,automake)
2445 ("intltool" ,intltool)
2446 ("xmlto" ,xmlto)
2447 ("docbook-xml" ,docbook-xml-4.1.2)
2448 ("docbook-xsl" ,docbook-xsl)
2449 ("libxml2" ,libxml2)))
2450 (home-page "https://github.com/zdohnal/system-config-printer")
2451 (synopsis "CUPS administration tool")
2452 (description
2453 "system-config-printer is a CUPS administration tool. It's written in
2454 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2455 configuring CUPS.")
2456 (license license:gpl2+)))
2457
2458 (define-public hicolor-icon-theme
2459 (package
2460 (name "hicolor-icon-theme")
2461 (version "0.17")
2462 (source
2463 (origin
2464 (method url-fetch)
2465 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2466 "hicolor-icon-theme-" version ".tar.xz"))
2467 (sha256
2468 (base32
2469 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2470 (build-system gnu-build-system)
2471 (arguments
2472 `(#:tests? #f)) ; no check target
2473 (home-page "https://icon-theme.freedesktop.org/releases/")
2474 (synopsis
2475 "Freedesktop icon theme")
2476 (description
2477 "Freedesktop icon theme.")
2478 (license license:gpl2)))
2479
2480 (define-public libnotify
2481 (package
2482 (name "libnotify")
2483 (version "0.7.7")
2484 (source
2485 (origin
2486 (method url-fetch)
2487 (uri (string-append "mirror://gnome/sources/" name "/"
2488 (version-major+minor version) "/"
2489 name "-" version ".tar.xz"))
2490 (sha256
2491 (base32
2492 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2493 (build-system gnu-build-system)
2494 (arguments
2495 `(#:configure-flags '("--disable-static")))
2496 (propagated-inputs
2497 `(;; In Requires of libnotify.pc.
2498 ("gdk-pixbuf" ,gdk-pixbuf)
2499 ("glib" ,glib)))
2500 (inputs
2501 `(("gtk+" ,gtk+)
2502 ("libpng" ,libpng)))
2503 (native-inputs
2504 `(("pkg-config" ,pkg-config)
2505 ("glib" ,glib "bin")
2506 ("gobject-introspection" ,gobject-introspection)))
2507 (home-page "https://developer-next.gnome.org/libnotify/")
2508 (synopsis
2509 "GNOME desktop notification library")
2510 (description
2511 "Libnotify is a library that sends desktop notifications to a
2512 notification daemon, as defined in the Desktop Notifications spec. These
2513 notifications can be used to inform the user about an event or display
2514 some form of information without getting in the user's way.")
2515 (license license:lgpl2.1+)))
2516
2517 (define-public libpeas
2518 (package
2519 (name "libpeas")
2520 (version "1.24.1")
2521 (source
2522 (origin
2523 (method url-fetch)
2524 (uri (string-append "mirror://gnome/sources/" name "/"
2525 (version-major+minor version) "/"
2526 name "-" version ".tar.xz"))
2527 (sha256
2528 (base32
2529 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2530 (build-system meson-build-system)
2531 (arguments
2532 '(#:phases
2533 (modify-phases %standard-phases
2534 (add-before 'check 'start-xserver
2535 (lambda* (#:key inputs #:allow-other-keys)
2536 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2537 (disp ":1"))
2538 (setenv "DISPLAY" disp)
2539 ;; Tests require a running X server.
2540 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2541 #t))))))
2542 (inputs
2543 `(("gtk+" ,gtk+)
2544 ("glade" ,glade3)
2545 ("python" ,python)
2546 ("python-pygobject" ,python-pygobject)))
2547 (native-inputs
2548 `(("pkg-config" ,pkg-config)
2549 ("gettext" ,gettext-minimal)
2550 ("glib:bin" ,glib "bin")
2551 ("gobject-introspection" ,gobject-introspection)
2552 ("xorg-server" ,xorg-server-for-tests)))
2553 (propagated-inputs
2554 ;; The .pc file "Requires" gobject-introspection.
2555 `(("gobject-introspection" ,gobject-introspection)))
2556 (home-page "https://wiki.gnome.org/Libpeas")
2557 (synopsis "GObject plugin system")
2558 (description
2559 "Libpeas is a gobject-based plugin engine, targeted at giving every
2560 application the chance to assume its own extensibility. It also has a set of
2561 features including, but not limited to: multiple extension points; on-demand
2562 (lazy) programming language support for C, Python and JS; simplicity of the
2563 API.")
2564 (license license:lgpl2.0+)))
2565
2566 (define-public gtkglext
2567 (package
2568 (name "gtkglext")
2569 (version "1.2.0")
2570 (source (origin
2571 (method url-fetch)
2572 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2573 version "/gtkglext-" version ".tar.gz"))
2574 (sha256
2575 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2576 (patches (search-patches
2577 "gtkglext-disable-disable-deprecated.patch"))))
2578 (build-system gnu-build-system)
2579 (arguments
2580 `(#:phases
2581 (modify-phases %standard-phases
2582 ;; Fix a collision between a local variable and a definition from
2583 ;; glibc's string.h.
2584 (add-after 'unpack 'fix-collision
2585 (lambda _
2586 (substitute* "gdk/gdkglshapes.c"
2587 ((" index") " triangle_index"))
2588 #t)))))
2589 (inputs `(("gtk+" ,gtk+-2)
2590 ("mesa" ,mesa)
2591 ("glu" ,glu)
2592 ("libx11" ,libx11)
2593 ("libxt" ,libxt)))
2594 (native-inputs `(("pkg-config" ,pkg-config)
2595 ("glib" ,glib "bin")))
2596 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2597 (home-page "https://projects.gnome.org/gtkglext")
2598 (synopsis "OpenGL extension to GTK+")
2599 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2600 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2601 API add-ons to make GTK+ widgets OpenGL-capable.")
2602 (license license:lgpl2.1+)))
2603
2604 (define-public glade3
2605 (package
2606 (name "glade")
2607 (version "3.36.0")
2608 (source (origin
2609 (method url-fetch)
2610 (uri (string-append "mirror://gnome/sources/" name "/"
2611 (version-major+minor version) "/"
2612 name "-" version ".tar.xz"))
2613 (sha256
2614 (base32
2615 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
2616 (build-system glib-or-gtk-build-system)
2617 (arguments
2618 `(#:phases
2619 (modify-phases %standard-phases
2620 (add-before 'configure 'fix-docbook
2621 (lambda* (#:key inputs #:allow-other-keys)
2622 (substitute* "man/Makefile.in"
2623 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2624 (string-append (assoc-ref inputs "docbook-xsl")
2625 "/xml/xsl/docbook-xsl-"
2626 ,(package-version docbook-xsl)
2627 "/manpages/docbook.xsl")))
2628 #t))
2629 (add-before 'check 'pre-check
2630 (lambda _
2631 (setenv "HOME" "/tmp")
2632 ;; Tests require a running X server.
2633 (system "Xvfb :1 &")
2634 (setenv "DISPLAY" ":1")
2635 #t)))))
2636 (inputs
2637 `(("gtk+" ,gtk+)
2638 ("libxml2" ,libxml2)))
2639 (native-inputs
2640 `(("hicolor-icon-theme" ,hicolor-icon-theme)
2641 ("intltool" ,intltool)
2642 ("itstool" ,itstool)
2643 ("libxslt" ,libxslt) ;for xsltproc
2644 ("docbook-xml" ,docbook-xml-4.2)
2645 ("docbook-xsl" ,docbook-xsl)
2646 ("python" ,python-2)
2647 ("pkg-config" ,pkg-config)
2648 ("xorg-server" ,xorg-server-for-tests)))
2649 (home-page "https://glade.gnome.org")
2650 (synopsis "GTK+ rapid application development tool")
2651 (description "Glade is a rapid application development (RAD) tool to
2652 enable quick & easy development of user interfaces for the GTK+ toolkit and
2653 the GNOME desktop environment.")
2654 (license license:lgpl2.0+)))
2655
2656 (define-public libcroco
2657 (package
2658 (name "libcroco")
2659 (version "0.6.13")
2660 (source (origin
2661 (method url-fetch)
2662 (uri (string-append "mirror://gnome/sources/" name "/"
2663 (version-major+minor version) "/"
2664 name "-" version ".tar.xz"))
2665 (sha256
2666 (base32
2667 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2668 (build-system gnu-build-system)
2669 (native-inputs
2670 `(("pkg-config" ,pkg-config)))
2671 (inputs
2672 `(("glib" ,glib)
2673 ("libxml2" ,libxml2)
2674 ("zlib" ,zlib)))
2675 (home-page "https://github.com/GNOME/libcroco")
2676 (synopsis "CSS2 parsing and manipulation library")
2677 (description
2678 "Libcroco is a standalone CSS2 parsing and manipulation library.
2679 The parser provides a low level event driven SAC-like API and a CSS object
2680 model like API. Libcroco provides a CSS2 selection engine and an experimental
2681 XML/CSS rendering engine.")
2682
2683 ;; LGPLv2.1-only.
2684 (license license:lgpl2.1)))
2685
2686 (define-public libgsf
2687 (package
2688 (name "libgsf")
2689 (version "1.14.47")
2690 (source (origin
2691 (method url-fetch)
2692 (uri (string-append "mirror://gnome/sources/" name "/"
2693 (version-major+minor version) "/"
2694 name "-" version ".tar.xz"))
2695 (sha256
2696 (base32
2697 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
2698 (build-system gnu-build-system)
2699 (arguments
2700 '(#:configure-flags '("--disable-static")))
2701 (native-inputs
2702 `(("pkg-config" ,pkg-config)
2703 ("gettext" ,gettext-minimal)
2704
2705 ;; For tests.
2706 ("perl" ,perl)
2707 ("perl-xml-parser" ,perl-xml-parser)))
2708 (inputs
2709 `(("zlib" ,zlib)
2710 ("bzip2" ,bzip2)))
2711 (propagated-inputs
2712 `(("gdk-pixbuf" ,gdk-pixbuf)
2713 ("glib" ,glib)
2714 ("libxml2" ,libxml2)))
2715 (home-page "https://www.gnome.org/projects/libgsf")
2716 (synopsis "GNOME's Structured File Library")
2717 (description
2718 "Libgsf aims to provide an efficient extensible I/O abstraction for
2719 dealing with different structured file formats.")
2720
2721 ;; LGPLv2.1-only.
2722 (license license:lgpl2.1)))
2723
2724 (define-public librsvg
2725 (package
2726 (name "librsvg")
2727 (version "2.40.21")
2728 (source (origin
2729 (method url-fetch)
2730 (uri (string-append "mirror://gnome/sources/" name "/"
2731 (version-major+minor version) "/"
2732 name "-" version ".tar.xz"))
2733 (sha256
2734 (base32
2735 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
2736 (build-system gnu-build-system)
2737 (arguments
2738 `(#:configure-flags
2739 (list "--disable-static"
2740 "--enable-vala") ; needed for e.g. gnome-mines
2741 #:phases
2742 (modify-phases %standard-phases
2743 (add-before 'configure 'pre-configure
2744 (lambda* (#:key inputs #:allow-other-keys)
2745 (substitute* "gdk-pixbuf-loader/Makefile.in"
2746 ;; By default the gdk-pixbuf loader is installed under
2747 ;; gdk-pixbuf's prefix. Work around that.
2748 (("gdk_pixbuf_moduledir = .*$")
2749 (string-append "gdk_pixbuf_moduledir = "
2750 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2751 "loaders\n"))
2752 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2753 (("gdk_pixbuf_cache_file = .*$")
2754 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2755 #t))
2756 (add-before 'check 'remove-failing-tests
2757 (lambda _
2758 (with-directory-excursion "tests/fixtures/reftests"
2759 (for-each delete-file
2760 '(;; This test fails on i686:
2761 "svg1.1/masking-path-04-b.svg"
2762 ;; This test fails on armhf:
2763 "svg1.1/masking-mask-01-b.svg"
2764 ;; This test fails on aarch64:
2765 "bugs/777834-empty-text-children.svg")))
2766 #t)))))
2767 (native-inputs
2768 `(("pkg-config" ,pkg-config)
2769 ("vala" ,vala)
2770 ("glib" ,glib "bin") ; glib-mkenums, etc.
2771 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2772 (inputs
2773 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2774 ;; this ancient version of librsvg.
2775 ("pango" ,pango-1.42)
2776 ("libcroco" ,libcroco)
2777 ("bzip2" ,bzip2)
2778 ("libgsf" ,libgsf)
2779 ("libxml2" ,libxml2)))
2780 (propagated-inputs
2781 ;; librsvg-2.0.pc refers to all of that.
2782 `(("cairo" ,cairo)
2783 ("gdk-pixbuf" ,gdk-pixbuf)
2784 ("glib" ,glib)))
2785 (home-page "https://wiki.gnome.org/LibRsvg")
2786 (synopsis "Render SVG files using Cairo")
2787 (description
2788 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2789 library.")
2790 (license license:lgpl2.0+)))
2791
2792 (define-public librsvg-next
2793 (package
2794 (inherit librsvg)
2795 (name "librsvg")
2796 (version "2.48.8")
2797 (source (origin
2798 (method url-fetch)
2799 (uri (string-append "mirror://gnome/sources/librsvg/"
2800 (version-major+minor version) "/"
2801 "librsvg-" version ".tar.xz"))
2802 (sha256
2803 (base32
2804 "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l"))
2805 (modules '((guix build utils)))
2806 (snippet
2807 '(begin (delete-file-recursively "vendor")
2808 #t))))
2809 (build-system cargo-build-system)
2810 (arguments
2811 `(#:modules ((guix build cargo-build-system)
2812 (guix build utils)
2813 ((guix build gnu-build-system) #:prefix gnu:))
2814 #:vendor-dir "vendor"
2815 #:cargo-inputs
2816 (("rust-bitflags" ,rust-bitflags-1)
2817 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
2818 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2819 ("rust-cast" ,rust-cast-0.2)
2820 ("rust-cssparser" ,rust-cssparser-0.27)
2821 ("rust-data-url" ,rust-data-url-0.1)
2822 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2823 ("rust-encoding" ,rust-encoding-0.2)
2824 ("rust-float-cmp" ,rust-float-cmp-0.6)
2825 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
2826 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2827 ("rust-gio" ,rust-gio-0.8)
2828 ("rust-gio-sys" ,rust-gio-sys-0.9)
2829 ("rust-glib" ,rust-glib-0.9)
2830 ("rust-glib-sys" ,rust-glib-sys-0.9)
2831 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2832 ("rust-itertools" ,rust-itertools-0.8)
2833 ("rust-language-tags" ,rust-language-tags-0.2)
2834 ("rust-libc" ,rust-libc-0.2)
2835 ("rust-locale-config" ,rust-locale-config-0.3)
2836 ("rust-markup5ever" ,rust-markup5ever-0.10)
2837 ("rust-nalgebra" ,rust-nalgebra-0.19)
2838 ("rust-num-traits" ,rust-num-traits-0.2)
2839 ("rust-once-cell" ,rust-once-cell-1.2)
2840 ("rust-pkg-config" ,rust-pkg-config-0.3)
2841 ("rust-pango" ,rust-pango-0.8)
2842 ("rust-pango-sys" ,rust-pango-sys-0.9)
2843 ("rust-pangocairo" ,rust-pangocairo-0.9)
2844 ("rust-rayon" ,rust-rayon-1)
2845 ("rust-rctree" ,rust-rctree-0.3)
2846 ("rust-rgb" ,rust-rgb-0.8)
2847 ("rust-regex" ,rust-regex-1)
2848 ("rust-selectors" ,rust-selectors-0.22)
2849 ("rust-url" ,rust-url-2.1)
2850 ("rust-xml5ever" ,rust-xml5ever-0.16))
2851 #:cargo-development-inputs
2852 (("rust-cairo-rs" ,rust-cairo-rs-0.8)
2853 ("rust-criterion" ,rust-criterion-0.3))
2854 #:phases
2855 (modify-phases %standard-phases
2856 (add-after 'unpack 'prepare-for-build
2857 (lambda _
2858 ;; In lieu of #:make-flags
2859 (setenv "CC" ,(cc-for-target))
2860 ;; Something about the build environment resists building
2861 ;; successfully with the '--locked' flag.
2862 (substitute* '("Makefile.am"
2863 "Makefile.in")
2864 (("--locked") ""))
2865 #t))
2866 (add-before 'configure 'pre-configure
2867 (lambda _
2868 (substitute* "gdk-pixbuf-loader/Makefile.in"
2869 ;; By default the gdk-pixbuf loader is installed under
2870 ;; gdk-pixbuf's prefix. Work around that.
2871 (("gdk_pixbuf_moduledir = .*$")
2872 (string-append "gdk_pixbuf_moduledir = "
2873 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2874 "loaders\n"))
2875 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2876 (("gdk_pixbuf_cache_file = .*$")
2877 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2878 #t))
2879 (add-after 'configure 'gnu-configure
2880 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
2881 ((assoc-ref gnu:%standard-phases 'configure)
2882 #:native-inputs native-inputs
2883 #:inputs inputs
2884 #:outputs outputs
2885 #:configure-flags (list "--disable-static"
2886 "--enable-vala"))))
2887 (add-after 'configure 'dont-vendor-self
2888 (lambda* (#:key vendor-dir #:allow-other-keys)
2889 ;; Don't keep the whole tarball in the vendor directory
2890 (delete-file-recursively
2891 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2892 #t))
2893 (replace 'build
2894 (assoc-ref gnu:%standard-phases 'build))
2895 (replace 'check
2896 (lambda* args
2897 ((assoc-ref gnu:%standard-phases 'check)
2898 #:test-target "check")))
2899 (replace 'install
2900 (assoc-ref gnu:%standard-phases 'install)))))
2901 (inputs
2902 `(("pango" ,pango)
2903 ,@(alist-delete "pango" (package-inputs librsvg))))
2904 (license license:lgpl2.1+)))
2905
2906 (define-public libidl
2907 (package
2908 (name "libidl")
2909 (version "0.8.14")
2910 (source (origin
2911 (method url-fetch)
2912 (uri (string-append "mirror://gnome/sources/libIDL/"
2913 (version-major+minor version) "/"
2914 "libIDL-" version ".tar.bz2"))
2915 (sha256
2916 (base32
2917 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2918 (build-system gnu-build-system)
2919 (inputs `(("glib" ,glib)))
2920 (native-inputs
2921 `(("pkg-config" ,pkg-config)
2922 ("flex" ,flex)
2923 ("bison" ,bison)))
2924 (home-page "http://freecode.com/projects/libidl")
2925 (synopsis "Create trees of CORBA Interface Definition Language files")
2926 (description "Libidl is a library for creating trees of CORBA Interface
2927 Definition Language (idl) files, which is a specification for defining
2928 portable interfaces. libidl was initially written for orbit (the orb from the
2929 GNOME project, and the primary means of libidl distribution). However, the
2930 functionality was designed to be as reusable and portable as possible.")
2931 (properties `((upstream-name . "libIDL")))
2932 (license license:lgpl2.0+)))
2933
2934
2935 (define-public orbit2
2936 (package
2937 (name "orbit2")
2938 (version "2.14.19")
2939 (source (origin
2940 (method url-fetch)
2941 (uri (let ((upstream-name "ORBit2"))
2942 (string-append "mirror://gnome/sources/" upstream-name "/"
2943 (version-major+minor version) "/"
2944 upstream-name "-" version ".tar.bz2")))
2945 (sha256
2946 (base32
2947 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2948 (build-system gnu-build-system)
2949 (arguments
2950 `(;; The "timeout-server" test hangs when run in parallel.
2951 #:parallel-tests? #f
2952 #:configure-flags
2953 '(;; We don't need static libraries, plus they don't build reproducibly
2954 ;; (non-deterministic ordering of .o files in the archive.)
2955 "--disable-static"
2956
2957 ;; The programmer kindly gives us a hook to turn off deprecation
2958 ;; warnings ...
2959 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2960 ;; ... which they then completly ignore !!
2961 #:phases
2962 (modify-phases %standard-phases
2963 (add-before 'configure 'ignore-deprecations
2964 (lambda _
2965 (substitute* "linc2/src/Makefile.in"
2966 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2967 #t)))))
2968 (inputs `(("glib" ,glib)
2969 ("libidl" ,libidl)))
2970 (native-inputs
2971 `(("pkg-config" ,pkg-config)))
2972 (home-page "https://projects.gnome.org/orbit2/")
2973 (synopsis "CORBA 2.4-compliant Object Request Broker")
2974 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2975 featuring mature C, C++ and Python bindings.")
2976 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2977 ;; a version. SOME of the code files have licence notices for GPLv2+.
2978 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2979 (license license:gpl2+)
2980 (properties `((upstream-name . "ORBit2")))))
2981
2982
2983 (define-public libbonobo
2984 (package
2985 (name "libbonobo")
2986 (version "2.32.1")
2987 (source (origin
2988 (method url-fetch)
2989 (uri (string-append "mirror://gnome/sources/" name "/"
2990 (version-major+minor version)
2991 "/" name "-" version ".tar.bz2"))
2992 (sha256
2993 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2994 (patches (search-patches
2995 "libbonobo-activation-test-race.patch"))))
2996 (build-system gnu-build-system)
2997 (arguments
2998 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2999 `(#:configure-flags
3000 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3001 ;; ... which they then completly ignore !!
3002 #:phases
3003 (modify-phases %standard-phases
3004 (add-before 'configure 'ignore-deprecations
3005 (lambda _
3006 (substitute* "activation-server/Makefile.in"
3007 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3008 #t)))
3009
3010 ;; There's apparently a race condition between the server stub
3011 ;; generation and linking of the example under 'samples/echo' that can
3012 ;; lead do undefined references when building in parallel, as reported
3013 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3014 ;; Thus, disable parallel builds.
3015 #:parallel-build? #f))
3016 (inputs `(("popt" ,popt)
3017 ("libxml2" ,libxml2)))
3018 ;; The following are Required by the .pc file
3019 (propagated-inputs
3020 `(("glib" ,glib)
3021 ("orbit2" ,orbit2)))
3022 (native-inputs
3023 `(("intltool" ,intltool)
3024 ("pkg-config" ,pkg-config)
3025 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3026 ("flex" ,flex)
3027 ("bison" ,bison)))
3028 (home-page "https://developer.gnome.org/libbonobo/")
3029 (synopsis "Framework for creating reusable components for use in GNOME applications")
3030 (description "Bonobo is a framework for creating reusable components for
3031 use in GNOME applications, built on top of CORBA.")
3032 ;; Licence not explicitly stated. Source files contain no licence notices.
3033 ;; Tarball contains text of both GPLv2 and LGPLv2
3034 ;; GPLv2 covers both conditions
3035 (license license:gpl2+)))
3036
3037
3038 (define-public gconf
3039 (package
3040 (name "gconf")
3041 (version "3.2.6")
3042 (source (origin
3043 (method url-fetch)
3044 (uri
3045 (let ((upstream-name "GConf"))
3046 (string-append "mirror://gnome/sources/" upstream-name "/"
3047 (version-major+minor version) "/"
3048 upstream-name "-" version ".tar.xz")))
3049 (sha256
3050 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3051 (build-system gnu-build-system)
3052 (inputs `(("dbus-glib" ,dbus-glib)
3053 ("libxml2" ,libxml2)))
3054 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3055 ("orbit2" ,orbit2)))
3056 (native-inputs
3057 `(("intltool" ,intltool)
3058 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3059 ("pkg-config" ,pkg-config)))
3060 (home-page "https://projects.gnome.org/gconf/")
3061 (synopsis "Store application preferences")
3062 (description "Gconf is a system for storing application preferences. It
3063 is intended for user preferences; not arbitrary data storage.")
3064 (license license:lgpl2.0+)
3065 (properties '((upstream-name . "GConf")))))
3066
3067
3068 (define-public gnome-mime-data
3069 (package
3070 (name "gnome-mime-data")
3071 (version "2.18.0")
3072 (source (origin
3073 (method url-fetch)
3074 (uri (string-append "mirror://gnome/sources/" name "/"
3075 (version-major+minor version) "/"
3076 name "-" version ".tar.bz2"))
3077 (sha256
3078 (base32
3079 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3080 (build-system gnu-build-system)
3081 (native-inputs
3082 `(("perl" ,perl)
3083 ("intltool" ,intltool)))
3084 (arguments
3085 '(#:phases (modify-phases %standard-phases
3086 (add-after 'configure 'use-our-intltool
3087 (lambda _
3088 ;; Do not use the bundled intltool commands, which lack
3089 ;; the "dotless @INC" fixes of our 'intltool' package.
3090 (substitute* (find-files "." "^Makefile$")
3091 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3092 (string-append "INTLTOOL_" tool " = intltool-"
3093 (string-downcase tool) "\n")))
3094 #t)))))
3095 (home-page "https://www.gnome.org")
3096 (synopsis "Base MIME and Application database for GNOME")
3097 (description "GNOME Mime Data is a module which contains the base MIME
3098 and Application database for GNOME. The data stored by this module is
3099 designed to be accessed through the MIME functions in GnomeVFS.")
3100 (license license:gpl2+)))
3101
3102
3103 (define-public gnome-vfs
3104 (package
3105 (name "gnome-vfs")
3106 (version "2.24.4")
3107 (source (origin
3108 (method url-fetch)
3109 (uri (string-append "mirror://gnome/sources/" name "/"
3110 (version-major+minor version) "/"
3111 name "-" version ".tar.bz2"))
3112 (sha256
3113 (base32
3114 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3115 (build-system gnu-build-system)
3116 (arguments
3117 `(#:phases
3118 (modify-phases %standard-phases
3119 (add-before 'configure 'ignore-deprecations
3120 (lambda _
3121 (substitute* '("libgnomevfs/Makefile.in"
3122 "daemon/Makefile.in")
3123 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3124 #t))
3125 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3126 (lambda _
3127 (substitute* "test/test-async-cancel.c"
3128 (("EXIT_FAILURE") "77"))
3129 #t)))))
3130 (inputs `(("libxml2" ,libxml2)
3131 ("dbus-glib" ,dbus-glib)
3132 ("gconf" ,gconf)
3133 ("gnome-mime-data" ,gnome-mime-data)
3134 ("zlib" ,zlib)))
3135 (native-inputs
3136 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3137 ("intltool" ,intltool)
3138 ("pkg-config" ,pkg-config)))
3139 (home-page "https://developer.gnome.org/gnome-vfs/")
3140 (synopsis "Access files and folders in GNOME applications")
3141 (description
3142 "GnomeVFS is the core library used to access files and folders in GNOME
3143 applications. It provides a file system abstraction which allows applications
3144 to access local and remote files with a single consistent API.")
3145 (license license:lgpl2.0+)))
3146
3147
3148
3149 (define-public libgnome
3150 (package
3151 (name "libgnome")
3152 (version "2.32.1")
3153 (source (origin
3154 (method url-fetch)
3155 (uri (string-append "mirror://gnome/sources/" name "/"
3156 (version-major+minor version) "/"
3157 name "-" version ".tar.bz2"))
3158 (sha256
3159 (base32
3160 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3161 (patches (search-patches "libgnome-encoding.patch"))))
3162 (build-system gnu-build-system)
3163 (arguments
3164 `(#:phases
3165 (modify-phases %standard-phases
3166 (add-before 'configure 'enable-deprecated
3167 (lambda _
3168 (substitute* "libgnome/Makefile.in"
3169 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3170 #t)))))
3171 (inputs `(("libxml2" ,libxml2)))
3172 (native-inputs
3173 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3174 ("intltool" ,intltool)
3175 ("pkg-config" ,pkg-config)))
3176 ;; The following are listed as Required in the .pc file
3177 ;; (except for libcanberra -- which seems to be oversight on the part
3178 ;; of the upstream developers -- anything that links against libgnome,
3179 ;; must also link against libcanberra
3180 (propagated-inputs
3181 `(("libcanberra" ,libcanberra)
3182 ("libbonobo" ,libbonobo)
3183 ("gconf" ,gconf)
3184 ("gnome-vfs" ,gnome-vfs)
3185 ("popt" ,popt))) ;gnome-program.h includes popt.h
3186 (home-page "https://developer.gnome.org/libgnome/")
3187 (synopsis "Useful routines for building applications")
3188 (description "The libgnome library provides a number of useful routines
3189 for building modern applications, including session management, activation of
3190 files and URIs, and displaying help.")
3191 (license license:lgpl2.0+)))
3192
3193
3194 (define-public libart-lgpl
3195 (package
3196 (name "libart-lgpl")
3197 (version "2.3.21")
3198 (source (origin
3199 (method url-fetch)
3200 (uri (let ((upstream-name "libart_lgpl"))
3201 (string-append "mirror://gnome/sources/" upstream-name "/"
3202 (version-major+minor version) "/"
3203 upstream-name "-" version ".tar.bz2")))
3204 (sha256
3205 (base32
3206 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3207 (build-system gnu-build-system)
3208 (native-inputs
3209 `(("pkg-config" ,pkg-config)))
3210 (home-page "https://people.gnome.org/~mathieu/libart")
3211 (synopsis "2D drawing library")
3212 (description "Libart is a 2D drawing library intended as a
3213 high-quality vector-based 2D library with antialiasing and alpha composition.")
3214 (license license:lgpl2.0+)))
3215
3216
3217
3218 (define-public libgnomecanvas
3219 (package
3220 (name "libgnomecanvas")
3221 (version "2.30.3")
3222 (source (origin
3223 (method url-fetch)
3224 (uri (string-append "mirror://gnome/sources/" name "/"
3225 (version-major+minor version) "/"
3226 name "-" version ".tar.gz"))
3227 (sha256
3228 (base32
3229 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3230 (build-system gnu-build-system)
3231 ;; Mentioned as Required in the .pc file
3232 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3233 ("gtk+" ,gtk+-2)))
3234 (native-inputs
3235 `(("intltool" ,intltool)
3236 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3237 ("pkg-config" ,pkg-config)))
3238 (home-page "https://developer.gnome.org/libgnomecanvas/")
3239 (synopsis "Flexible widget for creating interactive structured graphics")
3240 (description "The GnomeCanvas widget provides a flexible widget for
3241 creating interactive structured graphics.")
3242 (license license:lgpl2.0+)))
3243
3244 (define-public libgnomecanvasmm
3245 (package
3246 (name "libgnomecanvasmm")
3247 (version "2.26.0")
3248 (source (origin
3249 (method url-fetch)
3250 (uri (string-append "mirror://gnome/sources/" name "/"
3251 (version-major+minor version) "/"
3252 name "-" version ".tar.bz2"))
3253 (sha256
3254 (base32
3255 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3256 (build-system gnu-build-system)
3257 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3258 (native-inputs
3259 `(("gtkmm-2" ,gtkmm-2)
3260 ("pkg-config" ,pkg-config)))
3261 (home-page "https://gtkmm.org")
3262 (synopsis "C++ bindings to the GNOME Canvas library")
3263 (description "C++ bindings to the GNOME Canvas library.")
3264 (license license:lgpl2.0+)))
3265
3266 (define-public libgnomeui
3267 (package
3268 (name "libgnomeui")
3269 (version "2.24.5")
3270 (source (origin
3271 (method url-fetch)
3272 (uri (string-append "mirror://gnome/sources/" name "/"
3273 (version-major+minor version) "/"
3274 name "-" version ".tar.bz2"))
3275 (patches (search-patches "libgnomeui-utf8.patch"))
3276 (sha256
3277 (base32
3278 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3279 (build-system gnu-build-system)
3280 ;; Mentioned as Required in the .pc file
3281 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3282 ("libgnome" ,libgnome)
3283 ("libgnomecanvas" ,libgnomecanvas)
3284 ("libgnome-keyring" ,libgnome-keyring)))
3285 (inputs `(("libjpeg" ,libjpeg-turbo)
3286 ("popt" ,popt)
3287 ("libbonobo" ,libbonobo)
3288 ("libxml2" ,libxml2)
3289 ("libglade" ,libglade)))
3290 (native-inputs
3291 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3292 ("intltool" ,intltool)
3293 ("pkg-config" ,pkg-config)))
3294 (home-page "https://developer.gnome.org/libgnomeui/")
3295 (synopsis "Additional widgets for applications")
3296 (description "The libgnomeui library provides additional widgets for
3297 applications. Many of the widgets from libgnomeui have already been
3298 ported to GTK+.")
3299 (license license:lgpl2.0+)))
3300
3301 (define-public libglade
3302 (package
3303 (name "libglade")
3304 (version "2.6.4")
3305 (source (origin
3306 (method url-fetch)
3307 (uri (string-append "mirror://gnome/sources/" name "/"
3308 (version-major+minor version) "/"
3309 name "-" version ".tar.bz2"))
3310 (sha256
3311 (base32
3312 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3313 (build-system gnu-build-system)
3314 (inputs
3315 `(("python" ,python))) ;; needed for the optional libglade-convert program
3316 (propagated-inputs
3317 `(("gtk+-2" ,gtk+-2)
3318 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3319 (native-inputs
3320 `(("pkg-config" ,pkg-config)))
3321 (home-page "https://developer.gnome.org/libglade")
3322 (synopsis "Load glade interfaces and access the glade built widgets")
3323 (description "Libglade is a library that provides interfaces for loading
3324 graphical interfaces described in glade files and for accessing the
3325 widgets built in the loading process.")
3326 (license license:gpl2+))) ; This is correct. GPL not LGPL
3327
3328 (define-public libgnomeprint
3329 ;; This library has been deprecated since 2006; see
3330 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3331 (package
3332 (name "libgnomeprint")
3333 (version "2.18.8")
3334 (source (origin
3335 (method url-fetch)
3336 (uri (string-append "mirror://gnome/sources/" name "/"
3337 (version-major+minor version) "/"
3338 name "-" version ".tar.bz2"))
3339 (sha256
3340 (base32
3341 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3342 (build-system gnu-build-system)
3343 (inputs
3344 `(("popt" ,popt)
3345 ("libart-lgpl" ,libart-lgpl)
3346 ("gtk+" ,gtk+-2)
3347 ("libxml2" ,libxml2)))
3348 (native-inputs
3349 `(("intltool" ,intltool)
3350 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3351 ("pkg-config" ,pkg-config)))
3352 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3353 (synopsis "Printing framework for GNOME")
3354 (description
3355 "GNOME-print was a printing framework for GNOME. It has been deprecated
3356 since ca. 2006, when GTK+ itself incorporated printing support.")
3357 (license license:lgpl2.0+)))
3358
3359
3360 (define-public libgnomeprintui
3361 ;; Deprecated; see libgnomeprint.
3362 (package
3363 (name "libgnomeprintui")
3364 (version "2.18.6")
3365 (source (origin
3366 (method url-fetch)
3367 (uri (string-append "mirror://gnome/sources/" name "/"
3368 (version-major+minor version) "/"
3369 name "-" version ".tar.bz2"))
3370 (sha256
3371 (base32
3372 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
3373 (build-system gnu-build-system)
3374 ;; Mentioned as Required in the .pc file
3375 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
3376 (inputs `(("gtk+" ,gtk+-2)
3377 ("glib" ,glib)
3378 ("gnome-icon-theme" ,gnome-icon-theme)
3379 ("libgnomecanvas" ,libgnomecanvas)
3380 ("libxml2" ,libxml2)))
3381 (native-inputs
3382 `(("intltool" ,intltool)
3383 ("pkg-config" ,pkg-config)))
3384 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3385 (synopsis "Printing framework for GNOME")
3386 (description (package-description libgnomeprint))
3387 (license license:lgpl2.0+)))
3388
3389 (define-public libbonoboui
3390 (package
3391 (name "libbonoboui")
3392 (version "2.24.5")
3393 (source (origin
3394 (method url-fetch)
3395 (uri (string-append "mirror://gnome/sources/" name "/"
3396 (version-major+minor version) "/"
3397 name "-" version ".tar.bz2"))
3398 (sha256
3399 (base32
3400 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
3401 (build-system gnu-build-system)
3402 (arguments
3403 `(#:phases
3404 (modify-phases %standard-phases
3405 (add-before 'check 'start-xserver
3406 (lambda* (#:key inputs #:allow-other-keys)
3407 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3408 (disp ":1"))
3409
3410 (setenv "HOME" (getcwd))
3411 (setenv "DISPLAY" disp)
3412 ;; There must be a running X server and make check doesn't start one.
3413 ;; Therefore we must do it.
3414 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
3415 ;; Mentioned as Required by the .pc file
3416 (propagated-inputs `(("libxml2" ,libxml2)))
3417 (inputs
3418 `(("popt" ,popt)
3419 ("pangox-compat" ,pangox-compat)
3420 ("libgnome" ,libgnome)
3421 ("libgnomecanvas" ,libgnomecanvas)
3422 ("libglade" ,libglade)))
3423 (native-inputs
3424 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3425 ("intltool" ,intltool)
3426 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
3427 ("pkg-config" ,pkg-config)))
3428 (home-page "https://developer.gnome.org/libbonoboui/")
3429 (synopsis "Some user interface controls using Bonobo")
3430 (description "The Bonobo UI library provides a number of user interface
3431 controls using the Bonobo component framework.")
3432 (license license:lgpl2.0+)))
3433
3434 (define-public libwnck
3435 (package
3436 (name "libwnck")
3437 (version "3.32.0")
3438 (source (origin
3439 (method url-fetch)
3440 (uri (string-append "mirror://gnome/sources/" name "/"
3441 (version-major+minor version) "/"
3442 name "-" version ".tar.xz"))
3443 (sha256
3444 (base32
3445 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3446 (build-system meson-build-system)
3447 (native-inputs
3448 `(("pkg-config" ,pkg-config)
3449 ("glib" ,glib "bin") ; for glib-mkenums
3450 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3451 ("intltool" ,intltool)))
3452 (propagated-inputs
3453 `(("gtk+" ,gtk+)
3454 ("libxres" ,libxres)
3455 ("startup-notification" ,startup-notification)))
3456 (home-page "https://developer.gnome.org/libwnck/")
3457 (synopsis "Window Navigator Construction Kit")
3458 (description
3459 "Libwnck is the Window Navigator Construction Kit, a library for use in
3460 writing pagers, tasklists, and more generally applications that are dealing
3461 with window management. It tries hard to respect the Extended Window Manager
3462 Hints specification (EWMH).")
3463 (license license:lgpl2.0+)))
3464
3465 ;; stable version for gtk2, required by xfwm4.
3466 (define-public libwnck-2
3467 (package (inherit libwnck)
3468 (name "libwnck")
3469 (version "2.30.7")
3470 (source (origin
3471 (method url-fetch)
3472 (uri (string-append "mirror://gnome/sources/" name "/"
3473 (version-major+minor version) "/"
3474 name "-" version ".tar.xz"))
3475 (sha256
3476 (base32
3477 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
3478 (build-system gnu-build-system)
3479 (native-inputs
3480 `(("pkg-config" ,pkg-config)
3481 ("intltool" ,intltool)))
3482 (propagated-inputs
3483 `(("gtk+" ,gtk+-2)
3484 ("libxres" ,libxres)
3485 ("startup-notification" ,startup-notification)))))
3486
3487 (define-public goffice
3488 (package
3489 (name "goffice")
3490 (version "0.10.47")
3491 (source (origin
3492 (method url-fetch)
3493 (uri (string-append "mirror://gnome/sources/goffice/"
3494 (version-major+minor version) "/"
3495 "goffice-" version ".tar.xz"))
3496 (sha256
3497 (base32 "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215"))))
3498 (build-system gnu-build-system)
3499 (outputs '("out"
3500 "doc")) ; 4.0 MiB of gtk-doc
3501 (arguments
3502 '(#:configure-flags (list (string-append "--with-html-dir="
3503 (assoc-ref %outputs "doc")
3504 "/share/gtk-doc/html"))))
3505 (inputs
3506 `(("gtk+" ,gtk+)
3507 ("libgsf" ,libgsf)
3508 ("librsvg" ,librsvg)
3509 ("libxslt" ,libxslt)
3510 ("libxml2" ,libxml2)))
3511 (native-inputs
3512 `(("intltool" ,intltool)
3513 ("glib" ,glib "bin")
3514 ("pkg-config" ,pkg-config)))
3515 (home-page "https://developer.gnome.org/goffice/")
3516 (synopsis "Document-centric objects and utilities")
3517 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3518 (license
3519 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3520 ;; Note: NOT LGPL
3521 (list license:gpl2 license:gpl3))))
3522
3523 (define-public goffice-0.8
3524 (package (inherit goffice)
3525 (version "0.8.17")
3526 (source (origin
3527 (method url-fetch)
3528 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3529 (version-major+minor version) "/"
3530 (package-name goffice) "-" version ".tar.xz"))
3531 (sha256
3532 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3533 (arguments
3534 `(#:phases
3535 (modify-phases %standard-phases
3536 (add-after 'unpack 'fix-pcre-check
3537 (lambda _
3538 ;; Only glib.h can be included directly. See
3539 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3540 (substitute* "configure"
3541 (("glib/gregex\\.h") "glib.h")) #t)))
3542
3543 ,@(package-arguments goffice)))
3544 (propagated-inputs
3545 ;; libgoffice-0.8.pc mentions libgsf-1
3546 `(("libgsf" ,libgsf)))
3547 (inputs
3548 `(("gtk" ,gtk+-2)
3549 ,@(alist-delete "gtk" (package-inputs goffice))))))
3550
3551 (define-public gnumeric
3552 (package
3553 (name "gnumeric")
3554 (version "1.12.46")
3555 (source (origin
3556 (method url-fetch)
3557 (uri (string-append "mirror://gnome/sources/gnumeric/"
3558 (version-major+minor version) "/"
3559 "gnumeric-" version ".tar.xz"))
3560 (sha256
3561 (base32
3562 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3563 (build-system glib-or-gtk-build-system)
3564 (arguments
3565 `(;; The gnumeric developers don't worry much about failing tests.
3566 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3567 #:tests? #f
3568 #:phases
3569 (modify-phases %standard-phases
3570 (add-before
3571 'configure 'pre-conf
3572 (lambda* (#:key outputs #:allow-other-keys)
3573 ;; Make install tries to write into the directory of goffice
3574 ;; I am informed that this only affects the possibility to embed a
3575 ;; spreadsheet inside an Abiword document. So presumably when we
3576 ;; package Abiword we'll have to refer it to this directory.
3577 (substitute* "configure"
3578 (("^GOFFICE_PLUGINS_DIR=.*")
3579 (string-append "GOFFICE_PLUGINS_DIR="
3580 (assoc-ref outputs "out")
3581 "/goffice/plugins"))))))))
3582 (inputs
3583 `(("glib" ,glib)
3584 ("gtk+" ,gtk+)
3585 ("goffice" ,goffice)
3586 ("libgsf" ,libgsf)
3587 ("librsvg" ,librsvg)
3588 ("libxml2" ,libxml2)
3589 ("libxslt" ,libxslt)
3590 ("python" ,python-2)
3591 ("python2-pygobject" ,python2-pygobject)
3592 ("zlib" ,zlib)))
3593 (native-inputs
3594 `(("bison" ,bison)
3595 ("docbook-xml" ,docbook-xml)
3596 ("intltool" ,intltool)
3597 ("itstool" ,itstool)
3598 ("glib:bin" ,glib "bin")
3599 ("pkg-config" ,pkg-config)))
3600 (home-page "http://www.gnumeric.org")
3601 (synopsis "Spreadsheet application")
3602 (description
3603 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3604 interoperable with other spreadsheet applications. It has a vast array of
3605 features beyond typical spreadsheet functionality, such as support for linear
3606 and non-linear solvers, statistical analysis, and telecommunication
3607 engineering.")
3608 (license
3609 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3610 (list license:gpl2 license:gpl3))))
3611
3612 (define-public gnome-themes-standard
3613 (package
3614 (name "gnome-themes-standard")
3615 (version "3.22.3")
3616 (source
3617 (origin
3618 (method url-fetch)
3619 (uri (string-append "mirror://gnome/sources/" name "/"
3620 (version-major+minor version) "/" name "-"
3621 version ".tar.xz"))
3622 (sha256
3623 (base32
3624 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3625 (build-system gnu-build-system)
3626 (arguments
3627 '(#:configure-flags
3628 ;; Don't create 'icon-theme.cache'.
3629 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3630 (true (string-append coreutils "/bin/true")))
3631 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3632 (inputs
3633 `(("gtk+" ,gtk+)
3634 ("gtk+-2" ,gtk+-2)
3635 ("librsvg" ,librsvg)
3636 ("libxml2" ,libxml2)
3637 ("glib" ,glib)))
3638 (native-inputs
3639 `(("intltool" ,intltool)
3640 ("glib:bin" ,glib "bin")
3641 ("pkg-config" ,pkg-config)))
3642 (home-page "https://launchpad.net/gnome-themes-standard")
3643 (synopsis "Default GNOME 3 themes")
3644 (description
3645 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3646 (license license:lgpl2.1+)))
3647
3648 (define-public seahorse
3649 (package
3650 (name "seahorse")
3651 (version "3.34")
3652 (source
3653 (origin
3654 (method url-fetch)
3655 (uri (string-append "mirror://gnome/sources/" name "/"
3656 (version-major+minor version) "/" name "-"
3657 version ".tar.xz"))
3658 (sha256
3659 (base32
3660 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
3661 (build-system meson-build-system)
3662 (arguments
3663 '(#:glib-or-gtk? #t
3664 #:phases
3665 (modify-phases %standard-phases
3666 (add-after 'unpack 'skip-gtk-update-icon-cache
3667 ;; Don't create 'icon-theme.cache'.
3668 (lambda _
3669 (substitute* "build-aux/meson_post_install.py"
3670 (("gtk-update-icon-cache") "true"))
3671 #t)))))
3672 (inputs
3673 `(("gtk+" ,gtk+)
3674 ("gcr" ,gcr)
3675 ("gnupg" ,gnupg)
3676 ("gpgme" ,gpgme)
3677 ("openldap" ,openldap)
3678 ("openssh" ,openssh)
3679 ("avahi" ,avahi)
3680 ("libpwquality" ,libpwquality)
3681 ("libsecret" ,libsecret)
3682 ("libsoup" ,libsoup)))
3683 (native-inputs
3684 `(("gettext" ,gettext-minimal)
3685 ("glib:bin" ,glib "bin")
3686 ("itstool" ,itstool)
3687 ("pkg-config" ,pkg-config)
3688 ("vala" ,vala)
3689 ("xmllint" ,libxml2)))
3690 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3691 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3692 (description
3693 "Seahorse is a GNOME application for managing encryption keys and
3694 passwords in the GNOME keyring.")
3695 (license license:gpl2+)))
3696
3697 (define-public vala
3698 (package
3699 (name "vala")
3700 (version "0.46.5")
3701 (source (origin
3702 (method url-fetch)
3703 (uri (string-append "mirror://gnome/sources/" name "/"
3704 (version-major+minor version) "/"
3705 name "-" version ".tar.xz"))
3706 (sha256
3707 (base32
3708 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
3709 (build-system gnu-build-system)
3710 (arguments
3711 '(#:phases
3712 (modify-phases %standard-phases
3713 (add-before 'check 'pre-check
3714 (lambda _
3715 (setenv "CC" "gcc")
3716 (substitute* "valadoc/tests/testrunner.sh"
3717 (("export PKG_CONFIG_PATH=" m)
3718 (string-append m "$PKG_CONFIG_PATH:")))
3719 ;; For missing '/etc/machine-id'.
3720 (setenv "DBUS_FATAL_WARNINGS" "0")
3721 #t)))))
3722 (native-inputs
3723 `(("pkg-config" ,pkg-config)
3724 ("flex" ,flex)
3725 ("bison" ,bison)
3726 ("xsltproc" ,libxslt)
3727 ("dbus" ,dbus) ; for dbus tests
3728 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3729 (inputs
3730 `(("graphviz" ,graphviz)))
3731 (propagated-inputs
3732 `(("glib" ,glib))) ; required by libvala-0.40.pc
3733 (home-page "https://live.gnome.org/Vala/")
3734 (synopsis "Compiler for the GObject type system")
3735 (description
3736 "Vala is a programming language that aims to bring modern programming
3737 language features to GNOME developers without imposing any additional runtime
3738 requirements and without using a different ABI compared to applications and
3739 libraries written in C.")
3740 (license license:lgpl2.1+)))
3741
3742 (define-public vala-0.48
3743 (package
3744 (inherit vala)
3745 (version "0.48.7")
3746 (source (origin
3747 (method url-fetch)
3748 (uri (string-append "mirror://gnome/sources/vala/"
3749 (version-major+minor version) "/"
3750 "vala-" version ".tar.xz"))
3751 (sha256
3752 (base32
3753 "0lswkb7gj0chas9n3l3dbrm9l71hs77adhvm2v600id2ipi37pi8"))))))
3754
3755 (define-public vte
3756 (package
3757 (name "vte")
3758 (version "0.60.3")
3759 (source (origin
3760 (method url-fetch)
3761 (uri (string-append "mirror://gnome/sources/vte/"
3762 (version-major+minor version) "/"
3763 "vte-" version ".tar.xz"))
3764 (sha256
3765 (base32
3766 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
3767 (build-system meson-build-system)
3768 (arguments
3769 `(#:configure-flags
3770 '("-Dvapi=true"
3771 "-D_systemd=false")))
3772 (native-inputs
3773 `(("pkg-config" ,pkg-config)
3774 ("gettext" ,gettext-minimal)
3775 ("vala" ,vala)
3776 ("gobject-introspection" ,gobject-introspection)
3777 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3778 ("gperf" ,gperf)
3779 ("xmllint" ,libxml2)))
3780 (propagated-inputs
3781 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3782 ("gnutls" ,gnutls) ; ditto
3783 ("pcre2" ,pcre2))) ; ditto
3784 (home-page "https://www.gnome.org/")
3785 (synopsis "Virtual Terminal Emulator")
3786 (description
3787 "VTE is a library (libvte) implementing a terminal emulator widget for
3788 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3789 gnome-terminal, but can also be used to embed a console/terminal in games,
3790 editors, IDEs, etc.")
3791 (license license:lgpl2.1+)))
3792
3793 (define-public vte-ng
3794 (package
3795 (inherit vte)
3796 (name "vte-ng")
3797 (version "0.58.2.a")
3798 (home-page "https://github.com/thestinger/vte-ng")
3799 (source (origin
3800 (method git-fetch)
3801 (uri (git-reference (url home-page) (commit version)))
3802 (file-name (git-file-name name version))
3803 (sha256
3804 (base32
3805 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3806 (build-system meson-build-system)
3807 (native-inputs
3808 `(("gtk-doc" ,gtk-doc)
3809 ,@(package-native-inputs vte)))
3810 (arguments
3811 `(#:configure-flags '("-Ddocs=true")))
3812 (synopsis "Enhanced VTE terminal widget")
3813 (description
3814 "VTE is a library (libvte) implementing a terminal emulator widget for
3815 GTK+, this fork provides additional functions exposed for keyboard text
3816 selection and URL hints.")))
3817
3818 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
3819 (define-public vte/gtk+-2
3820 (package (inherit vte)
3821 (name "vte")
3822 (version "0.28.2")
3823 (source (origin
3824 (method url-fetch)
3825 (uri (string-append "mirror://gnome/sources/" name "/"
3826 (version-major+minor version) "/"
3827 name "-" version ".tar.xz"))
3828 (sha256
3829 (base32
3830 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3831 (patches (search-patches
3832 "vte-CVE-2012-2738-pt1.patch"
3833 "vte-CVE-2012-2738-pt2.patch"))))
3834 (build-system gnu-build-system)
3835 (arguments
3836 '(#:configure-flags '("--disable-python")))
3837 (native-inputs
3838 `(("pkg-config" ,pkg-config)
3839 ("intltool" ,intltool)
3840 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3841 (propagated-inputs
3842 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3843 ("ncurses" ,ncurses))))) ; required by libvte.la
3844
3845 (define-public vinagre
3846 (package
3847 (name "vinagre")
3848 (version "3.22.0")
3849 (source (origin
3850 (method url-fetch)
3851 (uri (string-append "mirror://gnome/sources/" name "/"
3852 (version-major+minor version) "/"
3853 name "-" version ".tar.xz"))
3854 (patches (search-patches "vinagre-newer-freerdp.patch"
3855 "vinagre-newer-rdp-parameters.patch"))
3856 (sha256
3857 (base32
3858 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3859 (build-system glib-or-gtk-build-system)
3860 (arguments
3861 ;; Disable -Werror and such, to avoid build failures on compilation
3862 ;; warnings.
3863 '(#:configure-flags '("--enable-compile-warnings=minimum")
3864 #:phases
3865 (modify-phases %standard-phases
3866 (add-before 'install 'skip-gtk-update-icon-cache
3867 (lambda _
3868 ;; Don't create 'icon-theme.cache'
3869 (substitute* (find-files "." "^Makefile$")
3870 (("gtk-update-icon-cache") (which "true")))
3871 #t))
3872 (add-after 'unpack 'patch-configure
3873 (lambda _
3874 (substitute* "configure"
3875 (("freerdp") "freerdp2"))
3876 #t)))))
3877 (native-inputs
3878 `(("pkg-config" ,pkg-config)
3879 ("intltool" ,intltool)
3880 ("itstool" ,itstool)
3881 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3882 (inputs
3883 `(("libxml2" ,libxml2)
3884 ("gtk-vnc" ,gtk-vnc)
3885 ("gnome-keyring" ,gnome-keyring)
3886 ("libsecret" ,libsecret)
3887 ("freerdp" ,freerdp)
3888 ("spice" ,spice)
3889 ("spice-gtk" ,spice-gtk)
3890 ("telepathy-glib" ,telepathy-glib)
3891 ("vte" ,vte)))
3892 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3893 (synopsis "Remote desktop viewer for GNOME")
3894 (description "Vinagre is a remote display client supporting the VNC, SPICE
3895 and RDP protocols.")
3896 (license license:gpl3+)))
3897
3898 (define-public dconf
3899 (package
3900 (name "dconf")
3901 (version "0.34.0")
3902 (source (origin
3903 (method url-fetch)
3904 (uri (string-append
3905 "mirror://gnome/sources/" name "/"
3906 (version-major+minor version) "/"
3907 name "-" version ".tar.xz"))
3908 (patches (search-patches "dconf-meson-0.52.patch"))
3909 (sha256
3910 (base32
3911 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
3912 (build-system meson-build-system)
3913 (propagated-inputs
3914 ;; In Requires of dconf.pc.
3915 `(("glib" ,glib)))
3916 (inputs
3917 `(("gtk+" ,gtk+)
3918 ("dbus" ,dbus)))
3919 (native-inputs
3920 `(("bash-completion" ,bash-completion)
3921 ("libxslt" ,libxslt) ;for xsltproc
3922 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3923 ("docbook-xml" ,docbook-xml-4.2)
3924 ("docbook-xsl" ,docbook-xsl)
3925 ("glib:bin" ,glib "bin")
3926 ("gtk-doc" ,gtk-doc)
3927 ("pkg-config" ,pkg-config)
3928 ("vala" ,vala)))
3929 (arguments
3930 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3931 ; or /etc/machine-id.
3932 #:glib-or-gtk? #t
3933 #:configure-flags '("-Denable-gtk-doc=true")))
3934 (home-page "https://developer.gnome.org/dconf/")
3935 (synopsis "Low-level GNOME configuration system")
3936 (description "Dconf is a low-level configuration system. Its main purpose
3937 is to provide a backend to GSettings on platforms that don't already have
3938 configuration storage systems.")
3939 (license license:lgpl2.1+)))
3940
3941 (define-public json-glib
3942 (package
3943 (name "json-glib")
3944 (version "1.4.4")
3945 (source (origin
3946 (method url-fetch)
3947 (uri (string-append "mirror://gnome/sources/" name "/"
3948 (version-major+minor version) "/"
3949 name "-" version ".tar.xz"))
3950 (sha256
3951 (base32
3952 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3953 (build-system meson-build-system)
3954 (native-inputs
3955 `(("gettext" ,gettext-minimal)
3956 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3957 ("gobject-introspection" ,gobject-introspection)
3958 ("pkg-config" ,pkg-config)))
3959 (propagated-inputs
3960 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3961 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3962 (synopsis "Compiler for the GObject type system")
3963 (description
3964 "JSON-GLib is a C library based on GLib providing serialization and
3965 deserialization support for the JavaScript Object Notation (JSON) format
3966 described by RFC 4627. It provides parser and generator GObject classes and
3967 various wrappers for the complex data types employed by JSON, such as arrays
3968 and objects.")
3969 (license license:lgpl2.1+)))
3970
3971 (define-public libxklavier
3972 (package
3973 (name "libxklavier")
3974 (version "5.4")
3975 (source (origin
3976 ;; Note: There's no tarball at ftp.gnome.org for this version.
3977 (method git-fetch)
3978 (uri (git-reference
3979 (url "https://anongit.freedesktop.org/git/libxklavier")
3980 (commit (string-append "libxklavier-" version))))
3981 (sha256
3982 (base32
3983 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3984 (file-name (git-file-name name version))))
3985 (build-system gnu-build-system)
3986 (arguments
3987 '(#:configure-flags
3988 (list (string-append "--with-xkb-base="
3989 (assoc-ref %build-inputs "xkeyboard-config")
3990 "/share/X11/xkb")
3991 "--disable-xmodmap-support")))
3992 (native-inputs
3993 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3994 ("gobject-introspection" ,gobject-introspection)
3995 ("pkg-config" ,pkg-config)
3996 ("gtk-doc" ,gtk-doc)
3997 ("intltool" ,intltool)
3998 ("which" ,which)
3999 ("autoconf" ,autoconf)
4000 ("automake" ,automake)
4001 ("libtool" ,libtool)))
4002 (propagated-inputs
4003 ;; Required by libxklavier.pc.
4004 `(("glib" ,glib)
4005 ("libxml2" ,libxml2)))
4006 (inputs
4007 `(("iso-codes" ,iso-codes)
4008 ("libxi" ,libxi)
4009 ("libxkbfile" ,libxkbfile)
4010 ("xkbcomp" ,xkbcomp)
4011 ("xkeyboard-config" ,xkeyboard-config)))
4012 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4013 (synopsis "High-level API for X Keyboard Extension")
4014 (description
4015 "LibXklavier is a library providing high-level API for X Keyboard
4016 Extension known as XKB. This library is intended to support XFree86 and other
4017 commercial X servers. It is useful for creating XKB-related software (layout
4018 indicators etc).")
4019 (license license:lgpl2.0+)))
4020
4021 (define-public python2-rsvg
4022 ;; XXX: This is actually a subset of gnome-python-desktop.
4023 (package
4024 (name "python2-rsvg")
4025 (version "2.32.0")
4026 (source
4027 (origin
4028 (method url-fetch)
4029 (uri (string-append
4030 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4031 version ".tar.bz2"))
4032 (sha256
4033 (base32
4034 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4035 (build-system gnu-build-system)
4036 (native-inputs
4037 `(("pkg-config" ,pkg-config)))
4038 (inputs
4039 `(("python" ,python-2)
4040 ("python2-pygtk" ,python2-pygtk)
4041 ("librsvg" ,librsvg)))
4042 (home-page "https://www.gnome.org")
4043 (synopsis "Python bindings to librsvg")
4044 (description
4045 "This package provides Python bindings to librsvg, the SVG rendering
4046 library.")
4047
4048 ;; This is the license of the rsvg bindings. The license of each module
4049 ;; of gnome-python-desktop is given in 'COPYING'.
4050 (license license:lgpl2.1+)))
4051
4052 (define-public glib-networking
4053 (package
4054 (name "glib-networking")
4055 (version "2.62.2")
4056 (source (origin
4057 (method url-fetch)
4058 (uri (string-append "mirror://gnome/sources/glib-networking/"
4059 (version-major+minor version) "/"
4060 "glib-networking-" version ".tar.xz"))
4061 (sha256
4062 (base32
4063 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4064 (build-system meson-build-system)
4065 (arguments
4066 `(#:configure-flags '("-Dlibproxy_support=false")))
4067 (native-inputs
4068 `(("pkg-config" ,pkg-config)
4069 ("intltool" ,intltool)))
4070 (inputs
4071 `(("glib" ,glib)
4072 ("gnutls" ,gnutls)
4073 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4074 (home-page "https://www.gnome.org")
4075 (synopsis "Network-related GIO modules")
4076 (description
4077 "This package contains various network related extensions for the GIO
4078 library.")
4079 (license license:lgpl2.0+)))
4080
4081 (define-public rest
4082 (package
4083 (name "rest")
4084 (version "0.8.1")
4085 (source (origin
4086 (method url-fetch)
4087 (uri (string-append "mirror://gnome/sources/rest/"
4088 (version-major+minor version) "/"
4089 name "-" version ".tar.xz"))
4090 (sha256
4091 (base32
4092 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4093 (build-system gnu-build-system)
4094 (arguments
4095 '(#:tests? #f ; tests require internet connection
4096 #:configure-flags
4097 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4098 (native-inputs
4099 `(("glib-mkenums" ,glib "bin")
4100 ("gobject-introspection" ,gobject-introspection)
4101 ("pkg-config" ,pkg-config)))
4102 (propagated-inputs
4103 ;; rest-0.7.pc refers to all these.
4104 `(("glib" ,glib)
4105 ("libsoup" ,libsoup)
4106 ("libxml2" ,libxml2)))
4107 (home-page "https://www.gtk.org/")
4108 (synopsis "RESTful web api query library")
4109 (description
4110 "This library was designed to make it easier to access web services that
4111 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4112 libxml to ease remote use of the RESTful API.")
4113 (license license:lgpl2.1+)))
4114
4115 (define-public libsoup
4116 (package
4117 (name "libsoup")
4118 (version "2.70.0")
4119 (source (origin
4120 (method url-fetch)
4121 (uri (string-append "mirror://gnome/sources/libsoup/"
4122 (version-major+minor version) "/"
4123 "libsoup-" version ".tar.xz"))
4124 (sha256
4125 (base32
4126 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
4127 (build-system meson-build-system)
4128 (outputs '("out" "doc"))
4129 (arguments
4130 `(#:modules ((guix build utils)
4131 (guix build meson-build-system)
4132 (ice-9 popen))
4133
4134 #:configure-flags '("-Dgtk_doc=true")
4135 #:phases
4136 (modify-phases %standard-phases
4137 (add-after 'unpack 'adjust-tests
4138 (lambda _
4139 ;; This test fails due to missing /etc/nsswitch.conf
4140 ;; in the build environment.
4141 (substitute* "tests/socket-test.c"
4142 ((".*/sockets/unconnected.*") ""))
4143
4144 ;; These fail because "subdomain.localhost" does not resolve in
4145 ;; the build environment.
4146 (substitute* "tests/hsts-test.c"
4147 ((".*/hsts/basic.*") "")
4148 ((".*/hsts/subdomains.*") "")
4149 ((".*/hsts/superdomain.*") "")
4150 ((".*/hsts/utf8-address.*") ""))
4151 (substitute* "tests/hsts-db-test.c"
4152 ((".*/hsts-db/subdomains.*") ""))
4153
4154 ;; Generate a self-signed certificate that has "localhost" as its
4155 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4156 ;; 3.5.12, tests such as "ssl-tests" fail:
4157 ;;
4158 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4159 ;;
4160 ;; 'certtool' is interactive so we have to pipe it the answers.
4161 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4162 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4163 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4164 (for-each (lambda (line)
4165 (display line pipe)
4166 (newline pipe))
4167 '("" ;Common name
4168 "" ;UID
4169 "Guix" ;Organizational unit name
4170 "GNU" ;Organization name
4171 "" ;Locality name
4172 "" ;State or province
4173 "" ;Country
4174 "" ;subject's domain component (DC)
4175 "" ;E-mail
4176 "" ;serial number
4177 "-1" ;expiration time
4178 "N" ;belong to authority?
4179 "N" ;web client certificate?
4180 "N" ;IPsec IKE?
4181 "Y" ;web server certificate?
4182 "localhost" ;dnsName of subject
4183 "" ;dnsName of subject (end)
4184 "" ;URI of subject
4185 "127.0.0.1" ;IP address of subject
4186 "" ;signing?
4187 "" ;encryption (RSA)?
4188 "" ;data encryption?
4189 "" ;sign OCSP requests?
4190 "" ;sign code?
4191 "" ;time stamping?
4192 "" ;email protection?
4193 "" ;URI of the CRL distribution point
4194 "y" ;above info OK?
4195 ))
4196 (close-pipe pipe))
4197 #t))
4198 (add-after 'install 'move-doc
4199 (lambda* (#:key outputs #:allow-other-keys)
4200 (let ((out (assoc-ref outputs "out"))
4201 (doc (assoc-ref outputs "doc")))
4202 (mkdir-p (string-append doc "/share"))
4203 (copy-recursively (string-append out "/share/gtk-doc")
4204 (string-append doc "/share/gtk-doc"))
4205 (delete-file-recursively (string-append out "/share/gtk-doc"))
4206 #t))))))
4207 (native-inputs
4208 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4209 ("gobject-introspection" ,gobject-introspection)
4210 ("gtk-doc" ,gtk-doc)
4211 ("intltool" ,intltool)
4212 ("pkg-config" ,pkg-config)
4213 ("python" ,python-wrapper)
4214 ("vala" ,vala)
4215 ("php" ,php)
4216 ("curl" ,curl)
4217 ("gnutls" ,gnutls) ;for 'certtool'
4218 ("httpd" ,httpd)))
4219 (propagated-inputs
4220 ;; libsoup-2.4.pc refers to all these.
4221 `(("brotli" ,google-brotli)
4222 ("glib" ,glib)
4223 ("libpsl" ,libpsl)
4224 ("libxml2" ,libxml2)
4225 ("sqlite" ,sqlite)
4226 ("zlib" ,zlib)))
4227 (inputs
4228 `(("glib-networking" ,glib-networking)
4229 ("mit-krb5" ,mit-krb5)))
4230 (home-page "https://live.gnome.org/LibSoup/")
4231 (synopsis "GLib-based HTTP Library")
4232 (description
4233 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4234 and the GLib main loop, to integrate well with GNOME applications.")
4235 (license license:lgpl2.0+)))
4236
4237
4238 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4239 (define-public libsoup-minimal
4240 (package
4241 (inherit libsoup)
4242 (name "libsoup-minimal")
4243 (outputs (delete "doc" (package-outputs libsoup)))
4244 (arguments
4245 (substitute-keyword-arguments (package-arguments libsoup)
4246 ((#:configure-flags configure-flags)
4247 `(delete "-Dgtk_doc=true" ,configure-flags))
4248 ((#:phases phases)
4249 `(modify-phases ,phases
4250 (delete 'move-doc)))))
4251 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4252
4253 (define-public libsecret
4254 (package
4255 (name "libsecret")
4256 (version "0.20.3")
4257 (source (origin
4258 (method url-fetch)
4259 (uri (string-append
4260 "mirror://gnome/sources/libsecret/"
4261 (version-major+minor version) "/"
4262 "libsecret-" version ".tar.xz"))
4263 (sha256
4264 (base32
4265 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
4266 (build-system gnu-build-system)
4267 (outputs '("out" "doc"))
4268 (arguments
4269 `(#:tests? #f ; FIXME: Testing hangs.
4270 #:configure-flags
4271 (list (string-append "--with-html-dir="
4272 (assoc-ref %outputs "doc")
4273 "/share/gtk-doc/html"))))
4274 (native-inputs
4275 `(("gettext" ,gettext-minimal)
4276 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4277 ("gobject-introspection" ,gobject-introspection)
4278 ("pkg-config" ,pkg-config)
4279 ("vala" ,vala)
4280 ("xsltproc" ,libxslt)))
4281 ;; These are needed for the tests.
4282 ;; FIXME: Add gjs once available.
4283 ;("dbus" ,dbus)
4284 ;("python2" ,python-2)
4285 ;("python2-dbus" ,python2-dbus)
4286 ;("python2-pygobject" ,python2-pygobject)
4287 ;("python2-pygobject-2" ,python2-pygobject-2)))
4288 (propagated-inputs
4289 `(("glib" ,glib))) ; required by libsecret-1.pc
4290 (inputs
4291 `(("docbook-xsl" ,docbook-xsl)
4292 ("libgcrypt" ,libgcrypt)
4293 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4294 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4295 (synopsis "GObject bindings for \"Secret Service\" API")
4296 (description
4297 "Libsecret is a GObject based library for storing and retrieving passwords
4298 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4299 (license license:lgpl2.1+)))
4300
4301 (define-public five-or-more
4302 (package
4303 (name "five-or-more")
4304 (version "3.32.2")
4305 (source
4306 (origin
4307 (method url-fetch)
4308 (uri (string-append "mirror://gnome/sources/five-or-more/"
4309 (version-major+minor version) "/"
4310 "five-or-more-" version ".tar.xz"))
4311 (sha256
4312 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4313 (build-system meson-build-system)
4314 (arguments
4315 '(#:glib-or-gtk? #t
4316 #:phases
4317 (modify-phases %standard-phases
4318 (add-after 'unpack 'skip-gtk-update-icon-cache
4319 (lambda _
4320 (substitute* "meson_post_install.py"
4321 (("gtk-update-icon-cache") (which "true")))
4322 #t)))))
4323 (native-inputs
4324 `(("pkg-config" ,pkg-config)
4325 ("appstream-glib" ,appstream-glib)
4326 ("desktop-file-utils" ,desktop-file-utils)
4327 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4328 ("intltool" ,intltool)
4329 ("itstool" ,itstool)
4330 ("vala" ,vala)
4331 ("xmllint" ,libxml2)))
4332 (inputs
4333 `(("gtk+" ,gtk+)
4334 ("libgnome-games-support" ,libgnome-games-support)
4335 ("librsvg" ,librsvg)))
4336 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
4337 (synopsis "Logic puzzle game")
4338 (description "Five or More is a game where you try to align
4339 five or more objects of the same color and shape causing them to disappear.
4340 On every turn more objects will appear, until the board is full.
4341 Try to last as long as possible.")
4342 (license license:gpl2+)))
4343
4344 (define-public gnome-mines
4345 (package
4346 (name "gnome-mines")
4347 (version "3.34.0")
4348 (source
4349 (origin
4350 (method url-fetch)
4351 (uri (string-append "mirror://gnome/sources/" name "/"
4352 (version-major+minor version) "/"
4353 name "-" version ".tar.xz"))
4354 (sha256
4355 (base32
4356 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
4357 (build-system meson-build-system)
4358 (arguments
4359 '(#:glib-or-gtk? #t
4360 #:phases
4361 (modify-phases %standard-phases
4362 (add-after 'unpack 'skip-gtk-update-icon-cache
4363 (lambda _
4364 (substitute* "build-aux/meson_post_install.py"
4365 (("gtk-update-icon-cache") (which "true")))
4366 #t)))))
4367 (native-inputs
4368 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
4369 ("pkg-config" ,pkg-config)
4370 ("desktop-file-utils" ,desktop-file-utils)
4371 ("intltool" ,intltool)
4372 ("itstool" ,itstool)
4373 ("vala" ,vala)
4374 ("yelp" ,yelp)
4375 ("appstream-glib" ,appstream-glib)))
4376 (inputs
4377 `(("gtk+" ,gtk+)
4378 ("libgnome-games-support" ,libgnome-games-support)
4379 ("librsvg" ,librsvg)))
4380 (home-page "https://wiki.gnome.org/Apps/Mines")
4381 (synopsis "Minesweeper game")
4382 (description
4383 "Mines (previously gnomine) is a puzzle game where you locate mines
4384 floating in an ocean using only your brain and a little bit of luck.")
4385 (license license:gpl2+)))
4386
4387 (define-public gnome-multi-writer
4388 (package
4389 (name "gnome-multi-writer")
4390 (version "3.35.90")
4391 (source
4392 (origin
4393 (method url-fetch)
4394 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
4395 (version-major+minor version) "/"
4396 "gnome-multi-writer-" version ".tar.xz"))
4397 (sha256
4398 (base32
4399 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
4400 (build-system meson-build-system)
4401 (arguments
4402 '(#:glib-or-gtk? #t
4403 #:phases
4404 (modify-phases %standard-phases
4405 (add-after 'unpack 'skip-post-install
4406 (lambda _
4407 (substitute* "meson.build"
4408 (("meson.add_install_script" &) (string-append "# " &)))
4409 #t)))))
4410 (native-inputs
4411 `(("glib:bin" ,glib "bin")
4412 ("pkg-config" ,pkg-config)))
4413 (inputs
4414 `(("gtk+" ,gtk+)
4415 ("glib" ,glib) ; for gio
4416 ("gusb" ,gusb)
4417 ("udisks" ,udisks)
4418 ("libgudev" ,libgudev)
4419 ("libcanberra" ,libcanberra)
4420 ("polkit" ,polkit)))
4421 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
4422 (synopsis "Write to multiple USB devices at once")
4423 (description
4424 "MultiWriter can be used to write an ISO file to multiple USB devices at
4425 once.")
4426 (license license:gpl2+)))
4427
4428 (define-public gnome-sudoku
4429 (package
4430 (name "gnome-sudoku")
4431 (version "3.34.1")
4432 (source
4433 (origin
4434 (method url-fetch)
4435 (uri (string-append "mirror://gnome/sources/" name "/"
4436 (version-major+minor version) "/"
4437 name "-" version ".tar.xz"))
4438 (sha256
4439 (base32
4440 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
4441 (build-system meson-build-system)
4442 (arguments
4443 '(#:glib-or-gtk? #t
4444 #:phases
4445 (modify-phases %standard-phases
4446 (add-after 'unpack 'skip-gtk-update-icon-cache
4447 (lambda _
4448 (substitute* "build-aux/post_install.py"
4449 (("gtk-update-icon-cache") (which "true")))
4450 #t)))))
4451 (native-inputs
4452 `(("pkg-config" ,pkg-config)
4453 ("desktop-file-utils" ,desktop-file-utils)
4454 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4455 ("intltool" ,intltool)
4456 ("itstool" ,itstool)
4457 ("vala" ,vala)
4458 ("xmllint" ,libxml2)))
4459 (inputs
4460 `(("gtk+" ,gtk+)
4461 ("json-glib" ,json-glib)
4462 ("libgee" ,libgee)
4463 ("librsvg" ,librsvg)
4464 ("qqwing" ,qqwing)))
4465 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4466 (synopsis "Japanese logic game")
4467 (description
4468 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4469 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4470 possible while still providing features that make playing difficult Sudoku
4471 more fun.")
4472 (license license:gpl2+)))
4473
4474 (define-public gnome-terminal
4475 (package
4476 (name "gnome-terminal")
4477 (version "3.34.2")
4478 (source
4479 (origin
4480 (method url-fetch)
4481 (uri (string-append "mirror://gnome/sources/" name "/"
4482 (version-major+minor version) "/"
4483 name "-" version ".tar.xz"))
4484 (sha256
4485 (base32
4486 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
4487 (build-system glib-or-gtk-build-system)
4488 (arguments
4489 '(#:configure-flags
4490 (list "--disable-migration" "--disable-search-provider"
4491 "--without-nautilus-extension")
4492 #:phases
4493 (modify-phases %standard-phases
4494 (add-before 'configure 'patch-/bin/true
4495 (lambda _
4496 (substitute* "configure"
4497 (("/bin/true") (which "true"))))))))
4498 (native-inputs
4499 `(("pkg-config" ,pkg-config)
4500 ("desktop-file-utils" ,desktop-file-utils)
4501 ("intltool" ,intltool)
4502 ("itstool" ,itstool)
4503 ("xmllint" ,libxml2)))
4504 (propagated-inputs
4505 `(("dconf" ,dconf)))
4506 (inputs
4507 `(("gtk+" ,gtk+)
4508 ("vte" ,vte)
4509 ("gnutls" ,gnutls)
4510 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4511 ("util-linux" ,util-linux "lib")
4512 ("vala" ,vala)))
4513 (home-page "https://wiki.gnome.org/Apps/Terminal")
4514 (synopsis "Terminal emulator")
4515 (description
4516 "GNOME Terminal is a terminal emulator application for accessing a
4517 UNIX shell environment which can be used to run programs available on
4518 your system.
4519
4520 It supports several profiles, multiple tabs and implements several
4521 keyboard shortcuts.")
4522 (license license:gpl3+)))
4523
4524 (define-public colord
4525 (package
4526 (name "colord")
4527 (version "1.4.4")
4528 (source
4529 (origin
4530 (method url-fetch)
4531 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
4532 "colord-" version ".tar.xz"))
4533 (sha256
4534 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
4535 (build-system meson-build-system)
4536 (arguments
4537 '(;; FIXME: One test fails:
4538 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4539 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4540 ;; application/x-zerosize
4541 #:tests? #f
4542 #:glib-or-gtk? #t
4543 #:configure-flags (list "-Dlocalstatedir=/var"
4544 ;; No dep on systemd.
4545 "-Dsystemd=false"
4546 ;; Wants to install to global completion dir;
4547 ;; punt.
4548 "-Dbash_completion=false"
4549 "-Ddaemon_user=colord"
4550 "-Dsane=true"
4551 "-Dvapi=true"
4552 ;; Requires spotread.
4553 "-Dargyllcms_sensor=false"
4554 ;; TODO: Requires docbook2x.
4555 "-Dman=false")
4556 #:phases
4557 (modify-phases %standard-phases
4558 (add-before 'configure 'patch-build-system
4559 (lambda* (#:key outputs #:allow-other-keys)
4560 (substitute* "rules/meson.build"
4561 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4562 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4563 #t))
4564 (add-before 'configure 'set-sqlite3-file-name
4565 (lambda* (#:key inputs #:allow-other-keys)
4566 ;; "colormgr dump" works by invoking the "sqlite3" command.
4567 ;; Record its absolute file name.
4568 (let ((sqlite (assoc-ref inputs "sqlite")))
4569 (substitute* "client/cd-util.c"
4570 (("\"sqlite3\"")
4571 (string-append "\"" sqlite "/bin/sqlite3\"")))
4572 #t))))))
4573 (native-inputs
4574 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4575 ("gettext" ,gettext-minimal)
4576 ("gobject-introspection" ,gobject-introspection)
4577 ("gtk-doc" ,gtk-doc)
4578 ("pkg-config" ,pkg-config)
4579 ("vala" ,vala)))
4580 (propagated-inputs
4581 ;; colord.pc refers to all these.
4582 `(("glib" ,glib)
4583 ("lcms" ,lcms)
4584 ("udev" ,eudev)))
4585 (inputs
4586 `(("dbus-glib" ,dbus-glib)
4587 ("gusb" ,gusb)
4588 ("libgudev" ,libgudev)
4589 ("libusb" ,libusb)
4590 ("polkit" ,polkit)
4591 ("python" ,python-wrapper)
4592 ("sqlite" ,sqlite)
4593 ("sane-backends" ,sane-backends)))
4594 (home-page "https://www.freedesktop.org/software/colord/")
4595 (synopsis "Color management service")
4596 (description "Colord is a system service that makes it easy to manage,
4597 install and generate color profiles to accurately color manage input and
4598 output devices.")
4599 (license license:gpl2+)))
4600
4601 (define-public geoclue
4602 (package
4603 (name "geoclue")
4604 (version "2.5.6")
4605 (source
4606 (origin
4607 (method url-fetch)
4608 (uri
4609 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4610 version "/geoclue-" version ".tar.bz2"))
4611 (sha256
4612 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
4613 (patches (search-patches "geoclue-config.patch"))))
4614 (build-system meson-build-system)
4615 (arguments
4616 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4617 (native-inputs
4618 `(("pkg-config" ,pkg-config)
4619 ("gobject-introspection" ,gobject-introspection)
4620 ("modem-manager" ,modem-manager)
4621 ("libnotify" ,libnotify)
4622 ("gtk-doc", gtk-doc)
4623 ("intltool" ,intltool)))
4624 (inputs
4625 `(("avahi" ,avahi)
4626 ("glib:bin" ,glib "bin")
4627 ("glib-networking" ,glib-networking)
4628 ("json-glib" ,json-glib)
4629 ("libsoup" ,libsoup)))
4630 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4631 (synopsis "Geolocation service")
4632 (description "Geoclue is a D-Bus service that provides location
4633 information. The primary goal of the Geoclue project is to make creating
4634 location-aware applications as simple as possible, while the secondary goal is
4635 to ensure that no application can access location information without explicit
4636 permission from user.")
4637 (license license:gpl2+)))
4638
4639 (define-public geocode-glib
4640 (package
4641 (name "geocode-glib")
4642 (version "3.26.1")
4643 (source (origin
4644 (method url-fetch)
4645 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4646 (version-major+minor version) "/"
4647 "geocode-glib-" version ".tar.xz"))
4648 (sha256
4649 (base32
4650 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4651 (build-system meson-build-system)
4652 (arguments
4653 `(#:phases
4654 (modify-phases %standard-phases
4655 ;; The tests require a bunch of locales.
4656 (add-before 'check 'set-locales
4657 (lambda* (#:key inputs #:allow-other-keys)
4658 (setenv "GUIX_LOCPATH"
4659 (string-append (assoc-ref inputs "glibc-locales")
4660 "/lib/locale"))
4661 #t)))))
4662 (native-inputs
4663 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4664 ("glibc-locales" ,glibc-locales) ; for tests
4665 ("gettext" ,gettext-minimal)
4666 ("gobject-introspection" ,gobject-introspection)
4667 ("gtk-doc" ,gtk-doc)
4668 ("pkg-config" ,pkg-config)
4669 ("json-glib" ,json-glib)))
4670 (propagated-inputs
4671 ;; geocode-glib-1.0.pc refers to GIO.
4672 `(("glib" ,glib)))
4673 (inputs
4674 `(("libsoup" ,libsoup)))
4675 (home-page "https://github.com/GNOME/geocode-glib/")
4676 (synopsis "Geocoding and reverse-geocoding library")
4677 (description
4678 "geocode-glib is a convenience library for geocoding (finding longitude,
4679 and latitude from an address) and reverse geocoding (finding an address from
4680 coordinates) using the Nominatim service. geocode-glib caches requests for
4681 faster results and to avoid unnecessary server load.")
4682 (license license:lgpl2.0+)))
4683
4684 (define-public upower
4685 (package
4686 (name "upower")
4687 (version "0.99.11")
4688 (source (origin
4689 (method url-fetch)
4690 (uri (string-append "https://upower.freedesktop.org/releases/"
4691 "upower-" version ".tar.xz"))
4692 (sha256
4693 (base32
4694 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4695 (patches (search-patches "upower-builddir.patch"))
4696 (modules '((guix build utils)))
4697 (snippet
4698 '(begin
4699 ;; Upstream commit
4700 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4701 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4702 ;; 'dbus-configuration-directory' in (gnu services dbus)
4703 ;; expects it in etc/. Thus, move it back to its previous
4704 ;; location.
4705 (substitute* "src/Makefile.in"
4706 (("^dbusconfdir =.*$")
4707 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4708 #t))))
4709 (build-system glib-or-gtk-build-system)
4710 (arguments
4711 '(#:phases
4712 (modify-phases %standard-phases
4713 (add-before 'check 'pre-check
4714 (lambda* (#:key inputs #:allow-other-keys)
4715 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4716 "/lib")))
4717 (setenv "LD_LIBRARY_PATH" umockdev))
4718 #t)))
4719 #:configure-flags (list "--localstatedir=/var"
4720 (string-append "--with-udevrulesdir="
4721 (assoc-ref %outputs "out")
4722 "/lib/udev/rules.d"))))
4723 (native-inputs
4724 `(("gobject-introspection" ,gobject-introspection)
4725 ("pkg-config" ,pkg-config)
4726 ("intltool" ,intltool)
4727 ("python" ,python)
4728
4729 ;; For tests.
4730 ("python-dbus" ,python-dbus)
4731 ("python-dbusmock" ,python-dbusmock)
4732 ("python-pygobject" ,python-pygobject)
4733 ("umockdev" ,umockdev)
4734
4735 ;; For man pages.
4736 ("libxslt" ,libxslt) ;for 'xsltproc'
4737 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4738 ("docbook-xsl" ,docbook-xsl)))
4739 (inputs
4740 `(("dbus-glib" ,dbus-glib)
4741 ("libgudev" ,libgudev)
4742 ("libusb" ,libusb)))
4743 (propagated-inputs
4744 ;; In Requires of upower-glib.pc.
4745 `(("glib" ,glib)))
4746 (home-page "https://upower.freedesktop.org/")
4747 (synopsis "System daemon for managing power devices")
4748 (description
4749 "UPower is an abstraction for enumerating power devices,
4750 listening to device events and querying history and statistics. Any
4751 application or service on the system can access the org.freedesktop.UPower
4752 service via the system message bus.")
4753 (license license:gpl2+)))
4754
4755 (define-public libgweather
4756 (package
4757 (name "libgweather")
4758 (version "3.34.0")
4759 (source (origin
4760 (method url-fetch)
4761 (uri (string-append "mirror://gnome/sources/" name "/"
4762 (version-major+minor version) "/"
4763 name "-" version ".tar.xz"))
4764 (sha256
4765 (base32
4766 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
4767 (build-system meson-build-system)
4768 (arguments
4769 `(#:tests? #f ; one of two tests requires network access
4770 #:configure-flags
4771 `(,(string-append "-Dzoneinfo_dir="
4772 (assoc-ref %build-inputs "tzdata")
4773 "/share/zoneinfo"))))
4774 (native-inputs
4775 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4776 ("gobject-introspection" ,gobject-introspection)
4777 ("pkg-config" ,pkg-config)
4778 ("vala" ,vala)
4779 ("intltool" ,intltool)))
4780 (propagated-inputs
4781 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4782 ;; libsoup.
4783 `(("gtk+" ,gtk+)
4784 ("gdk-pixbuf" ,gdk-pixbuf)
4785 ("libxml2" ,libxml2)
4786 ("libsoup" ,libsoup)
4787 ("geocode-glib" ,geocode-glib)))
4788 (inputs
4789 `(("tzdata" ,tzdata)))
4790 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4791 (synopsis "Location, time zone, and weather library for GNOME")
4792 (description
4793 "libgweather is a library to access weather information from online
4794 services for numerous locations.")
4795 (license license:gpl2+)))
4796
4797 (define-public gnome-settings-daemon
4798 (package
4799 (name "gnome-settings-daemon")
4800 (version "3.34.1")
4801 (source
4802 (origin
4803 (method url-fetch)
4804 (uri (string-append "mirror://gnome/sources/" name "/"
4805 (version-major+minor version) "/"
4806 name "-" version ".tar.xz"))
4807 (sha256
4808 (base32
4809 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
4810 (build-system meson-build-system)
4811 (arguments
4812 `(#:glib-or-gtk? #t
4813 #:configure-flags
4814 (list (string-append "-Dudev_dir="
4815 (assoc-ref %outputs "out")
4816 "/lib/udev/rules.d/")
4817 "-Dsystemd=false"
4818 ;; Otherwise, the RUNPATH will lack the final path component.
4819 (string-append "-Dc_link_args=-Wl,-rpath="
4820 (assoc-ref %outputs "out")
4821 "/lib/gnome-settings-daemon-3.0"))
4822 ;; Color management test can't reach the colord system service.
4823 #:tests? #f))
4824 (native-inputs
4825 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4826 ("pkg-config" ,pkg-config)
4827 ("intltool" ,intltool)
4828 ("xsltproc" ,libxslt)
4829 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4830 ("docbook-xml" ,docbook-xml-4.2)
4831 ("docbook-xsl" ,docbook-xsl)))
4832 (inputs
4833 `(("alsa-lib" ,alsa-lib)
4834 ("colord" ,colord)
4835 ("libgudev" ,libgudev)
4836 ("upower" ,upower)
4837 ("polkit" ,polkit)
4838 ("pulseaudio" ,pulseaudio)
4839 ("libcanberra" ,libcanberra)
4840 ("libx11" ,libx11)
4841 ("libxtst" ,libxtst)
4842 ("lcms" ,lcms)
4843 ("libnotify" ,libnotify)
4844 ("geoclue" ,geoclue)
4845 ("geocode-glib" ,geocode-glib)
4846 ("libgweather" ,libgweather)
4847 ("gnome-desktop" ,gnome-desktop)
4848 ("nss" ,nss)
4849 ("cups" ,cups)
4850 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4851 ("libwacom" ,libwacom)
4852 ("librsvg" ,librsvg)
4853 ("xf86-input-wacom" ,xf86-input-wacom)
4854 ("wayland" ,wayland)
4855 ("network-manager" ,network-manager)
4856 ("gcr" ,gcr)
4857 ("modem-manager" ,modem-manager)))
4858 (home-page "https://www.gnome.org")
4859 (synopsis "GNOME settings daemon")
4860 (description
4861 "This package contains the daemon responsible for setting the various
4862 parameters of a GNOME session and the applications that run under it. It
4863 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4864 settings, themes, mouse settings, and startup of other daemons.")
4865 (license license:gpl2+)))
4866
4867 (define-public totem-pl-parser
4868 (package
4869 (name "totem-pl-parser")
4870 (version "3.26.3")
4871 (source (origin
4872 (method url-fetch)
4873 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4874 (version-major+minor version) "/"
4875 "totem-pl-parser-" version ".tar.xz"))
4876 (sha256
4877 (base32
4878 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4879 (build-system meson-build-system)
4880 (arguments
4881 ;; FIXME: Tests require gvfs.
4882 `(#:tests? #f))
4883 (native-inputs
4884 `(("intltool" ,intltool)
4885 ("glib" ,glib "bin")
4886 ("gobject-introspection" ,gobject-introspection)
4887 ("pkg-config" ,pkg-config)))
4888 (propagated-inputs
4889 `(("glib" ,glib)
4890 ("gmime" ,gmime)
4891 ("libarchive" ,libarchive)
4892 ("libgcrypt" ,libgcrypt)
4893 ("libxml2" ,libxml2)))
4894 (inputs
4895 `(("libsoup" ,libsoup)))
4896 (home-page "https://projects.gnome.org/totem")
4897 (synopsis "Library to parse and save media playlists for GNOME")
4898 (description "Totem-pl-parser is a GObjects-based library to parse and save
4899 playlists in a variety of formats.")
4900 (license license:lgpl2.0+)))
4901
4902 (define-public aisleriot
4903 (package
4904 (name "aisleriot")
4905 (version "3.22.9")
4906 (source (origin
4907 (method url-fetch)
4908 (uri (string-append "mirror://gnome/sources/aisleriot/"
4909 (version-major+minor version) "/"
4910 "aisleriot-" version ".tar.xz"))
4911 (sha256
4912 (base32
4913 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4914 (build-system glib-or-gtk-build-system)
4915 (arguments
4916 '(#:configure-flags
4917 '("--with-platform=gtk-only"
4918 "--with-card-theme-formats=svg")))
4919 (native-inputs
4920 `(("desktop-file-utils" ,desktop-file-utils)
4921 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4922 ("intltool" ,intltool)
4923 ("itstool" ,itstool)
4924 ("pkg-config" ,pkg-config)
4925 ("xmllint" ,libxml2)))
4926 (inputs
4927 `(("gtk+" ,gtk+)
4928 ("guile" ,guile-2.2)
4929 ("libcanberra" ,libcanberra)
4930 ("librsvg" ,librsvg)))
4931 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4932 (synopsis "Solitaire card games")
4933 (description
4934 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4935 which are easy to play with the aid of a mouse.")
4936 (license license:gpl3+)))
4937
4938 (define-public amtk
4939 (package
4940 (name "amtk")
4941 (version "5.0.2")
4942 (source (origin
4943 (method url-fetch)
4944 (uri (string-append "mirror://gnome/sources/amtk/"
4945 (version-major+minor version) "/"
4946 "amtk-" version ".tar.xz"))
4947 (sha256
4948 (base32
4949 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
4950 (build-system gnu-build-system)
4951 (arguments
4952 '(#:configure-flags '("--enable-gtk-doc")))
4953 (native-inputs
4954 `(("gobject-introspection" ,gobject-introspection)
4955 ("glib:bin" ,glib "bin") ; for glib-mkenums
4956 ("gtk-doc" ,gtk-doc)
4957 ("pkg-config" ,pkg-config)))
4958 (inputs
4959 `(("glib" ,glib)
4960 ("gtk+" ,gtk+)))
4961 (home-page "https://wiki.gnome.org/Projects/Amtk")
4962 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4963 (description
4964 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4965 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4966 both a traditional UI or a modern UI with a GtkHeaderBar.")
4967 (license license:lgpl2.1+)))
4968
4969 (define-public devhelp
4970 (package
4971 (name "devhelp")
4972 (version "3.34.0")
4973 (source (origin
4974 (method url-fetch)
4975 (uri (string-append "mirror://gnome/sources/" name "/"
4976 (version-major+minor version) "/"
4977 name "-" version ".tar.xz"))
4978 (sha256
4979 (base32
4980 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
4981 (build-system meson-build-system)
4982 (arguments
4983 '(#:glib-or-gtk? #t
4984 #:phases
4985 (modify-phases %standard-phases
4986 (add-after 'unpack 'skip-gtk-update-icon-cache
4987 ;; Don't create 'icon-theme.cache'.
4988 (lambda _
4989 (substitute* "meson_post_install.py"
4990 (("gtk-update-icon-cache") "true"))
4991 #t)))))
4992 (native-inputs
4993 `(("intltool" ,intltool)
4994 ("itstool" ,itstool)
4995 ("gobject-introspection" ,gobject-introspection)
4996 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4997 ("pkg-config" ,pkg-config)))
4998 (inputs
4999 `(("amtk" ,amtk)
5000 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5001 ("webkitgtk" ,webkitgtk)))
5002 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5003 (synopsis "API documentation browser for GNOME")
5004 (description
5005 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5006 natively with GTK-Doc (the API reference system developed for GTK+ and used
5007 throughout GNOME for API documentation).")
5008 (license license:gpl2+)))
5009
5010 (define-public cogl
5011 (package
5012 (name "cogl")
5013 (version "1.22.8")
5014 (source
5015 (origin
5016 (method url-fetch)
5017 (uri (string-append "mirror://gnome/sources/cogl/"
5018 (version-major+minor version) "/"
5019 "cogl-" version ".tar.xz"))
5020 (sha256
5021 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5022 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5023 ;; cogl, corresponding changes may be appropriate in mutter as well.
5024 (build-system gnu-build-system)
5025 (native-inputs
5026 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5027 ("gobject-introspection" ,gobject-introspection)
5028 ("xorg-server" ,xorg-server-for-tests)
5029 ("pkg-config" ,pkg-config)))
5030 (propagated-inputs
5031 `(("glib" ,glib)
5032 ("gdk-pixbuf" ,gdk-pixbuf)
5033 ("libx11" ,libx11)
5034 ("libxext" ,libxext)
5035 ("libxfixes" ,libxfixes)
5036 ("libxdamage" ,libxdamage)
5037 ("libxcomposite" ,libxcomposite)
5038 ("libxrandr" ,libxrandr)))
5039 (inputs
5040 `(("mesa" ,mesa)
5041 ("cairo" ,cairo)
5042 ("pango" ,pango)
5043 ("gstreamer" ,gstreamer)
5044 ("gst-plugins-base" ,gst-plugins-base)
5045 ("wayland" ,wayland)))
5046 (arguments
5047 `(#:disallowed-references (,xorg-server-for-tests)
5048 #:configure-flags (list "--enable-cogl-gst"
5049 "--enable-wayland-egl-platform"
5050 "--enable-wayland-egl-server"
5051
5052 ;; Arrange to pass an absolute file name to
5053 ;; dlopen for libGL.so.
5054 (string-append "--with-gl-libname="
5055 (assoc-ref %build-inputs "mesa")
5056 "/lib/libGL.so"))
5057 #:phases
5058 (modify-phases %standard-phases
5059 (add-after 'unpack 'fix-build-with-mesa-20
5060 (lambda _
5061 ;; Work around a problem with Mesa 20 where some macros used by
5062 ;; Cogl went missing from eglext.h. This can likely be removed
5063 ;; for newer versions of Cogl or Mesa.
5064 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5065 (substitute* '("configure"
5066 "cogl/winsys/cogl-winsys-egl-kms.c")
5067 (("#include <EGL/eglext.h>" all)
5068 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5069 #t))
5070 (add-before 'check 'start-xorg-server
5071 (lambda* (#:key tests? inputs #:allow-other-keys)
5072 (if tests?
5073 (begin
5074 ;; The test suite requires a running X server.
5075 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5076 (assoc-ref inputs "xorg-server")))
5077 (setenv "DISPLAY" ":1")
5078 #t)
5079 (format #t "test suite not run~%"))
5080 #t)))))
5081 (home-page "https://www.cogl3d.org")
5082 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5083 (description
5084 "Cogl is a small library for using 3D graphics hardware to draw pretty
5085 pictures. The API departs from the flat state machine style of OpenGL and is
5086 designed to make it easy to write orthogonal components that can render
5087 without stepping on each others toes.")
5088 (license (list license:expat ; most of the code
5089 license:bsd-3 ; cogl/cogl-point-in-poly.c
5090 license:sgifreeb2.0 ; cogl-path/tesselator/
5091 license:asl2.0)))) ; examples/android/
5092
5093 (define-public clutter
5094 (package
5095 (name "clutter")
5096 (version "1.26.2")
5097 (source
5098 (origin
5099 (method url-fetch)
5100 (uri (string-append "mirror://gnome/sources/" name "/"
5101 (version-major+minor version) "/"
5102 name "-" version ".tar.xz"))
5103 (sha256
5104 (base32
5105 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5106 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5107 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5108 (build-system gnu-build-system)
5109 (outputs '("out"
5110 "doc")) ;9 MiB of gtk-doc HTML pages
5111 (native-inputs
5112 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5113 ("gobject-introspection" ,gobject-introspection)
5114 ("pkg-config" ,pkg-config)
5115 ("xsltproc" ,libxslt)))
5116 (propagated-inputs
5117 `(("cogl" ,cogl)
5118 ("cairo" ,cairo)
5119 ("atk" ,atk)
5120 ("gtk+" ,gtk+)
5121 ("json-glib" ,json-glib)
5122 ("glib" ,glib)
5123 ("libxcomposite" ,libxcomposite)
5124 ("libxdamage" ,libxdamage)
5125 ("libxext" ,libxext)
5126 ("xinput" ,xinput)))
5127 (inputs
5128 `(("libxkbcommon" ,libxkbcommon)
5129 ("udev" ,eudev)))
5130 (arguments
5131 `(#:configure-flags (list "--enable-x11-backend=yes"
5132
5133 ;; This produces share/doc/{clutter,cally}.
5134 (string-append "--with-html-dir="
5135 (assoc-ref %outputs "doc")
5136 "/share/doc"))
5137 ;; XXX FIXME: Get test suite working. It would probably fail in the
5138 ;; same way the cogl tests fail, since clutter is based on cogl.
5139 #:tests? #f))
5140 (home-page "http://www.clutter-project.org")
5141 (synopsis "OpenGL-based interactive canvas library")
5142 (description
5143 "Clutter is an OpenGL-based interactive canvas library, designed for
5144 creating fast, mainly 2D single window applications such as media box UIs,
5145 presentations, kiosk style applications and so on.")
5146 (license license:lgpl2.0+)))
5147
5148 (define-public clutter-gtk
5149 (package
5150 (name "clutter-gtk")
5151 (version "1.8.4")
5152 (source
5153 (origin
5154 (method url-fetch)
5155 (uri (string-append "mirror://gnome/sources/" name "/"
5156 (version-major+minor version) "/"
5157 name "-" version ".tar.xz"))
5158 (sha256
5159 (base32
5160 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5161 (build-system gnu-build-system)
5162 (native-inputs
5163 `(("pkg-config" ,pkg-config)
5164 ("gobject-introspection" ,gobject-introspection)))
5165 (propagated-inputs
5166 ;; clutter-gtk.pc refers to all these.
5167 `(("clutter" ,clutter)
5168 ("gtk+" ,gtk+)))
5169 (home-page "http://www.clutter-project.org")
5170 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5171 (description
5172 "Clutter is an OpenGL-based interactive canvas library, designed for
5173 creating fast, mainly 2D single window applications such as media box UIs,
5174 presentations, kiosk style applications and so on.")
5175 (license license:lgpl2.0+)))
5176
5177 (define-public clutter-gst
5178 (package
5179 (name "clutter-gst")
5180 (version "3.0.27")
5181 (source
5182 (origin
5183 (method url-fetch)
5184 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5185 (version-major+minor version) "/"
5186 "clutter-gst-" version ".tar.xz"))
5187 (sha256
5188 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5189 (build-system gnu-build-system)
5190 (native-inputs
5191 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5192 ("pkg-config" ,pkg-config)
5193 ("gobject-introspection" ,gobject-introspection)))
5194 (inputs
5195 `(("clutter" ,clutter)
5196 ("gstreamer" ,gstreamer)
5197 ("gst-plugins-base" ,gst-plugins-base)))
5198 (home-page "http://www.clutter-project.org")
5199 (synopsis "Integration library for using GStreamer with Clutter")
5200 (description
5201 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5202 It provides a GStreamer sink to upload frames to GL and an actor that
5203 implements the ClutterGstPlayer interface using playbin. Clutter is an
5204 OpenGL-based interactive canvas library.")
5205 (license license:lgpl2.0+)))
5206
5207 (define-public libchamplain
5208 (package
5209 (name "libchamplain")
5210 (version "0.12.16")
5211 (source (origin
5212 (method url-fetch)
5213 (uri (string-append
5214 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5215 version ".tar.xz"))
5216 (sha256
5217 (base32
5218 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5219 (build-system gnu-build-system)
5220 (arguments '(#:configure-flags '("--enable-vala")))
5221 (native-inputs
5222 `(("gobject-introspection" ,gobject-introspection)
5223 ("pkg-config" ,pkg-config)
5224 ("vala" ,vala)))
5225 (propagated-inputs
5226 `(("libsoup" ,libsoup)
5227 ("sqlite" ,sqlite)
5228 ("clutter" ,clutter)
5229 ("clutter-gtk" ,clutter-gtk)
5230 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5231 ("cairo" ,cairo)
5232 ("gtk+3" ,gtk+)
5233 ("glib" ,glib)))
5234 (home-page "https://projects.gnome.org/libchamplain/")
5235 (synopsis "C library providing a ClutterActor to display maps")
5236 (description
5237 "libchamplain is a C library providing a ClutterActor to display maps.
5238 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5239 and Perl bindings are also available. It supports numerous free map sources
5240 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5241 (license license:lgpl2.1+)))
5242
5243 (define-public gom
5244 (package
5245 (name "gom")
5246 (version "0.3.2")
5247 (source
5248 (origin
5249 (method url-fetch)
5250 (uri (string-append "mirror://gnome/sources/gom/"
5251 (version-major+minor version) "/"
5252 "gom-" version ".tar.xz"))
5253 (sha256
5254 (base32
5255 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5256 (build-system gnu-build-system)
5257 (native-inputs
5258 `(("intltool" ,intltool)
5259 ("pkg-config" ,pkg-config)
5260 ("gobject-introspection" ,gobject-introspection)))
5261 (inputs
5262 `(("glib" ,glib)
5263 ("gdk-pixbuf" ,gdk-pixbuf)
5264 ("sqlite" ,sqlite)))
5265 ;; XXX TODO: Figure out how to run the test suite.
5266 (arguments `(#:tests? #f))
5267 (home-page "https://wiki.gnome.org/Projects/Gom")
5268 (synopsis "Object mapper from GObjects to SQLite")
5269 (description
5270 "Gom provides an object mapper from GObjects to SQLite. It helps you
5271 write applications that need to store structured data as well as make complex
5272 queries upon that data.")
5273 (license license:lgpl2.1+)))
5274
5275 (define-public libgnome-games-support
5276 (package
5277 (name "libgnome-games-support")
5278 (version "1.4.4")
5279 (source (origin
5280 (method url-fetch)
5281 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5282 (version-major+minor version) "/"
5283 "libgnome-games-support-" version ".tar.xz"))
5284 (sha256
5285 (base32
5286 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5287 (build-system gnu-build-system)
5288 (arguments
5289 '(#:phases
5290 (modify-phases %standard-phases
5291 (add-before 'check 'pre-check
5292 (lambda _
5293 ;; Tests require a writable HOME.
5294 (setenv "HOME" (getcwd))
5295 #t)))))
5296 (native-inputs
5297 `(("intltool" ,intltool)
5298 ("pkg-config" ,pkg-config)
5299 ("vala" ,vala)))
5300 (propagated-inputs
5301 ;; Required by libgnome-games-support-1.0.pc
5302 `(("gtk+" ,gtk+)
5303 ("libgee" ,libgee)))
5304 (home-page "https://www.gnome.org/")
5305 (synopsis "Useful functionality shared among GNOME games")
5306 (description
5307 "libgnome-games-support is a small library intended for internal use by
5308 GNOME Games, but it may be used by others.")
5309 (license license:lgpl3+)))
5310
5311 (define-public gnome-klotski
5312 (package
5313 (name "gnome-klotski")
5314 (version "3.34.0")
5315 (source (origin
5316 (method url-fetch)
5317 (uri (string-append "mirror://gnome/sources/" name "/"
5318 (version-major+minor version) "/"
5319 name "-" version ".tar.xz"))
5320 (sha256
5321 (base32
5322 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
5323 (build-system meson-build-system)
5324 (arguments
5325 '(#:glib-or-gtk? #t
5326 #:phases
5327 (modify-phases %standard-phases
5328 (add-after 'unpack 'skip-gtk-update-icon-cache
5329 ;; Don't create 'icon-theme.cache'.
5330 (lambda _
5331 (substitute* "build-aux/meson_post_install.py"
5332 (("gtk-update-icon-cache") (which "true")))
5333 #t)))))
5334 (native-inputs
5335 `(("desktop-file-utils" ,desktop-file-utils)
5336 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5337 ("intltool" ,intltool)
5338 ("itstool" ,itstool)
5339 ("pkg-config" ,pkg-config)
5340 ("vala" ,vala)
5341 ("xmllint" ,libxml2)))
5342 (inputs
5343 `(("gtk+" ,gtk+)
5344 ("libgnome-games-support" ,libgnome-games-support)
5345 ("librsvg" ,librsvg)))
5346 (home-page "https://wiki.gnome.org/Apps/Klotski")
5347 (synopsis "Sliding block puzzles")
5348 (description
5349 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
5350 the patterned block to the area bordered by green markers. To do so, you will
5351 need to slide other blocks out of the way. Complete each puzzle in as few moves
5352 as possible!")
5353 (license license:gpl2+)))
5354
5355 (define-public grilo
5356 (package
5357 (name "grilo")
5358 (version "0.3.10")
5359 (source
5360 (origin
5361 (method url-fetch)
5362 (uri (string-append "mirror://gnome/sources/" name "/"
5363 (version-major+minor version) "/"
5364 name "-" version ".tar.xz"))
5365 (sha256
5366 (base32
5367 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
5368 (build-system meson-build-system)
5369 (native-inputs
5370 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
5371 ("intltool" ,intltool)
5372 ("pkg-config" ,pkg-config)
5373 ("gobject-introspection" ,gobject-introspection)
5374 ("gtk-doc" ,gtk-doc)
5375 ("vala" ,vala)))
5376 (inputs
5377 `(("cyrus-sasl" ,cyrus-sasl)
5378 ("glib" ,glib)
5379 ("gtk+" ,gtk+)
5380 ("libxml2" ,libxml2)
5381 ("liboauth" ,liboauth)
5382 ("libsoup" ,libsoup)
5383 ("totem-pl-parser" ,totem-pl-parser)))
5384 (native-search-paths
5385 (list (search-path-specification
5386 (variable "GRL_PLUGIN_PATH")
5387 (files (list (string-append "lib/grilo-"
5388 (version-major+minor version)))))))
5389 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
5390 (synopsis "Framework for discovering and browsing media")
5391 (description
5392 "Grilo is a framework focused on making media discovery and browsing easy
5393 for application developers.")
5394 (license license:lgpl2.1+)))
5395
5396 (define-public grilo-plugins
5397 (package
5398 (name "grilo-plugins")
5399 (version "0.3.10")
5400 (source
5401 (origin
5402 (method url-fetch)
5403 (uri (string-append "mirror://gnome/sources/" name "/"
5404 (version-major+minor version) "/"
5405 name "-" version ".tar.xz"))
5406 (sha256
5407 (base32
5408 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
5409 (build-system meson-build-system)
5410 (native-inputs
5411 `(("gettext" ,gettext-minimal)
5412 ("glib:bin" ,glib "bin")
5413 ("gtk+:bin" ,gtk+ "bin")
5414 ("itstool" ,itstool)
5415 ("pkg-config" ,pkg-config)))
5416 ;; TODO: ahavi, gstreamer
5417 (inputs
5418 `(("grilo" ,grilo)
5419 ;("gmime" ,gmime) ; unused
5420 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
5421 ("gom" ,gom)
5422 ;("gssdp" ,gssdp) ; unused
5423 ;("gupnp" ,gupnp) ; unused
5424 ;("gupnp-av" ,gupnp-av) ; unused
5425 ("json-glib" ,json-glib)
5426 ("avahi" ,avahi)
5427 ("libgdata" ,libgdata)
5428 ("libmediaart" ,libmediaart)
5429 ;("librest" ,rest) ; unused
5430 ("libsoup" ,libsoup)
5431 ("totam-pl-parser" ,totem-pl-parser)
5432 ("tracker" ,tracker))) ; unused because it's too old
5433 (arguments
5434 `(#:glib-or-gtk? #t
5435 ;;Disable lua-factory as it needs missing dependencies
5436 #:configure-flags '("-Denable-lua-factory=no")))
5437 (home-page "https://live.gnome.org/Grilo")
5438 (synopsis "Plugins for the Grilo media discovery library")
5439 (description
5440 "Grilo is a framework focused on making media discovery and browsing easy
5441 for application developers. This package provides plugins for common media
5442 discovery protocols.")
5443 (license license:lgpl2.1+)))
5444
5445 (define-public totem
5446 (package
5447 (name "totem")
5448 (version "3.34.1")
5449 (source
5450 (origin
5451 (method url-fetch)
5452 (uri (string-append "mirror://gnome/sources/totem/"
5453 (version-major+minor version) "/"
5454 "totem-" version ".tar.xz"))
5455 (sha256
5456 (base32
5457 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
5458 (build-system meson-build-system)
5459 (native-inputs
5460 `(("pkg-config" ,pkg-config)
5461 ("desktop-file-utils" ,desktop-file-utils)
5462 ("gobject-introspection" ,gobject-introspection)
5463 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
5464 ("intltool" ,intltool)
5465 ("itstool" ,itstool)
5466 ("xmllint" ,libxml2)
5467 ("xorg-server" ,xorg-server-for-tests)))
5468 (propagated-inputs
5469 `(("dconf" ,dconf)))
5470 (inputs
5471 `(("gtk+" ,gtk+)
5472 ("gdk-pixbuf" ,gdk-pixbuf)
5473 ("atk" ,atk)
5474 ("cairo" ,cairo)
5475 ("dbus-glib" ,dbus-glib)
5476 ("clutter" ,clutter)
5477 ("clutter-gtk" ,clutter-gtk)
5478 ("clutter-gst" ,clutter-gst)
5479 ("xorgproto" ,xorgproto)
5480 ("libxxf86vm" ,libxxf86vm)
5481 ("libxtst" ,libxtst)
5482 ("libxrandr" ,libxrandr)
5483 ("libxml2" ,libxml2)
5484 ("libsoup" ,libsoup)
5485 ("libpeas" ,libpeas)
5486 ("librsvg" ,librsvg)
5487 ("lirc" ,lirc)
5488 ("gnome-desktop" ,gnome-desktop)
5489 ("gstreamer" ,gstreamer)
5490 ("gst-plugins-base" ,gst-plugins-base)
5491 ("gst-plugins-good" ,gst-plugins-good)
5492 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5493 ("adwaita-icon-theme" ,adwaita-icon-theme)
5494 ("python" ,python)
5495 ("python-pygobject" ,python-pygobject)
5496 ("totem-pl-parser" ,totem-pl-parser)
5497 ("grilo" ,grilo)
5498 ("grilo-plugins" ,grilo-plugins)
5499 ("vala" ,vala)))
5500 (arguments
5501 `(#:glib-or-gtk? #t
5502
5503 ;; Disable automatic GStreamer plugin installation via PackageKit and
5504 ;; all that.
5505 #:configure-flags '("-D" "enable-easy-codec-installation=no"
5506
5507 ;; Do not build .a files for the plugins, it's
5508 ;; completely useless. This saves 2 MiB.
5509 "--default-library" "shared")
5510 #:phases
5511 (modify-phases %standard-phases
5512 (add-after 'unpack 'skip-gtk-update-icon-cache
5513 ;; Don't create 'icon-theme.cache'.
5514 (lambda _
5515 (substitute* "meson_post_install.py"
5516 (("gtk-update-icon-cache") "true"))
5517 #t))
5518 (add-before
5519 'install 'disable-cache-generation
5520 (lambda _
5521 (setenv "DESTDIR" "/")
5522 #t))
5523 (add-before
5524 'check 'pre-check
5525 (lambda _
5526 ;; Tests require a running X server.
5527 (system "Xvfb :1 &")
5528 (setenv "DISPLAY" ":1")
5529 #t))
5530 (add-after
5531 'install 'wrap-totem
5532 (lambda* (#:key inputs outputs #:allow-other-keys)
5533 (let ((out (assoc-ref outputs "out"))
5534 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5535 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5536 (wrap-program (string-append out "/bin/totem")
5537 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5538 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5539 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5540 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
5541 #t)))))
5542 (home-page "https://wiki.gnome.org/Apps/Videos")
5543 (synopsis "Simple media player for GNOME based on GStreamer")
5544 (description "Totem is a simple yet featureful media player for GNOME
5545 which can read a large number of file formats.")
5546 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5547 ;; to be used and distributed together with GStreamer and Totem. See
5548 ;; file://COPYING in the source distribution for details.
5549 (license license:gpl2+)))
5550
5551 (define-public rhythmbox
5552 (package
5553 (name "rhythmbox")
5554 (version "3.4.4")
5555 (source (origin
5556 (method url-fetch)
5557 (uri (string-append "mirror://gnome/sources/rhythmbox/"
5558 (version-major+minor version) "/"
5559 "rhythmbox-" version ".tar.xz"))
5560 (sha256
5561 (base32
5562 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
5563 (build-system glib-or-gtk-build-system)
5564 (arguments
5565 `(#:configure-flags
5566 (list "--enable-lirc"
5567 "--enable-python"
5568 "--enable-vala"
5569 "--with-brasero"
5570 "--with-gudev"
5571 "--with-libsecret")
5572 #:phases
5573 (modify-phases %standard-phases
5574 (add-after
5575 'install 'wrap-rhythmbox
5576 (lambda* (#:key inputs outputs #:allow-other-keys)
5577 (let ((out (assoc-ref outputs "out"))
5578 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5579 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5580 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5581 (python-path (getenv "PYTHONPATH")))
5582 (wrap-program (string-append out "/bin/rhythmbox")
5583 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5584 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5585 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5586 `("PYTHONPATH" ":" prefix (,python-path))))
5587 #t)))))
5588 (propagated-inputs
5589 `(("dconf" ,dconf)))
5590 (native-inputs
5591 `(("itstool" ,itstool)
5592 ("intltool" ,intltool)
5593 ("glib" ,glib "bin")
5594 ("gobject-introspection" ,gobject-introspection)
5595 ("desktop-file-utils" ,desktop-file-utils)
5596 ("pkg-config" ,pkg-config)
5597 ("xmllint" ,libxml2)))
5598 (inputs
5599 `(("json-glib" ,json-glib)
5600 ("tdb" ,tdb)
5601 ("gnome-desktop" ,gnome-desktop)
5602 ("python" ,python)
5603 ("python-pygobject" ,python2-pygobject)
5604 ("vala" ,vala)
5605 ("gmime" ,gmime)
5606 ("adwaita-icon-theme" ,adwaita-icon-theme)
5607 ("grilo" ,grilo)
5608 ("grilo-plugins" ,grilo-plugins)
5609 ("gstreamer" ,gstreamer)
5610 ("gst-plugins-base" ,gst-plugins-base)
5611 ("gst-plugins-good" ,gst-plugins-good)
5612 ("totem-pl-parser" ,totem-pl-parser)
5613 ("libgudev" ,libgudev)
5614 ;;("libmtp" ,libmtp) FIXME: Not detected
5615 ("libsecret" ,libsecret)
5616 ("libsoup" ,libsoup)
5617 ("libnotify" ,libnotify)
5618 ("libpeas" ,libpeas)
5619 ("lirc" ,lirc)
5620 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5621 ;;("clutter" ,clutter)
5622 ;;("clutter-gtk" ,clutter-gtk)
5623 ;;("clutter-gst" ,clutter-gst)
5624 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5625 ("atk" ,atk)
5626 ("pango" ,pango)
5627 ("gtk+" ,gtk+)
5628 ;; TODO:
5629 ;; * libgpod
5630 ;; * mx
5631 ("brasero" ,brasero)))
5632 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5633 (synopsis "Music player for GNOME")
5634 (description "Rhythmbox is a music playing application for GNOME. It
5635 supports playlists, song ratings, and any codecs installed through gstreamer.")
5636 (license license:gpl2+)))
5637
5638 (define-public eog
5639 (package
5640 (name "eog")
5641 (version "3.34.1")
5642 (source (origin
5643 (method url-fetch)
5644 (uri (string-append "mirror://gnome/sources/" name "/"
5645 (version-major+minor version) "/"
5646 name "-" version ".tar.xz"))
5647 (sha256
5648 (base32
5649 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5650 (build-system meson-build-system)
5651 (arguments
5652 `(#:configure-flags
5653 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5654 (list (string-append "-Dc_link_args=-Wl,-rpath="
5655 (assoc-ref %outputs "out") "/lib/eog"))
5656 #:phases
5657 (modify-phases %standard-phases
5658 (add-after 'unpack 'skip-gtk-update-icon-cache
5659 ;; Don't create 'icon-theme.cache'.
5660 (lambda _
5661 (substitute* "meson_post_install.py"
5662 (("gtk-update-icon-cache") "true"))
5663 #t))
5664 (add-after 'install 'wrap-eog
5665 (lambda* (#:key outputs #:allow-other-keys)
5666 (let ((out (assoc-ref outputs "out"))
5667 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5668 (wrap-program (string-append out "/bin/eog")
5669 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5670 #t)))))
5671 (propagated-inputs
5672 `(("dconf" ,dconf)))
5673 (native-inputs
5674 `(("intltool" ,intltool)
5675 ("itstool" ,itstool)
5676 ("glib" ,glib "bin")
5677 ("gobject-introspection" ,gobject-introspection)
5678 ("pkg-config" ,pkg-config)
5679 ("xmllint" ,libxml2)))
5680 (inputs
5681 `(("gnome-desktop" ,gnome-desktop)
5682 ("shared-mime-info" ,shared-mime-info)
5683 ("adwaita-icon-theme" ,adwaita-icon-theme)
5684 ("exempi" ,exempi)
5685 ("lcms" ,lcms)
5686 ("libexif" ,libexif)
5687 ("libpeas" ,libpeas)
5688 ("libjpeg" ,libjpeg-turbo)
5689 ("librsvg" ,librsvg-next)
5690 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5691 ("gtk+" ,gtk+)))
5692 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5693 (synopsis "GNOME image viewer")
5694 (description "Eye of GNOME is the GNOME image viewer. It
5695 supports image conversion, rotation, and slideshows.")
5696 (license license:gpl2+)))
5697
5698 (define-public eog-plugins
5699 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5700 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5701 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5702 ;; 'XDG_DATA_DIRS' appropriately set.
5703 (package
5704 (name "eog-plugins")
5705 (version "3.26.4")
5706 (source (origin
5707 (method url-fetch)
5708 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5709 (version-major+minor version) "/"
5710 "eog-plugins-" version ".tar.xz"))
5711 (sha256
5712 (base32
5713 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5714 (build-system gnu-build-system)
5715 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5716 (synopsis "Extensions for the Eye of GNOME image viewer")
5717 (native-inputs
5718 `(("pkg-config" ,pkg-config)
5719 ("gettext" ,gettext-minimal)))
5720 (inputs
5721 `(("eog" ,eog)
5722 ("glib" ,glib)
5723 ("gtk+" ,gtk+)
5724 ("libpeas" ,libpeas)
5725 ("libexif" ,libexif)
5726 ("libchamplain" ,libchamplain)))
5727 (description
5728 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5729 notably:
5730
5731 @itemize
5732 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5733 @item @dfn{Map}, which displays a map of where the picture was taken on the
5734 side panel;
5735 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5736 @end itemize\n")
5737
5738 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5739 ;; long suspicious byte stream that goes to a
5740 ;; ".gresource.eog_postasa_plugin" ELF section.
5741 (license license:gpl2+)))
5742
5743 (define-public libgudev
5744 (package
5745 (name "libgudev")
5746 (version "232")
5747 (source (origin
5748 (method url-fetch)
5749 (uri (string-append "mirror://gnome/sources/" name "/"
5750 version "/" name "-" version ".tar.xz"))
5751 (sha256
5752 (base32
5753 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5754 (build-system gnu-build-system)
5755 (arguments
5756 '(#:configure-flags
5757 ;; umockdev depends on libgudev.
5758 (list "--disable-umockdev")))
5759 (native-inputs
5760 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5761 ("gobject-introspection" ,gobject-introspection)
5762 ("pkg-config" ,pkg-config)))
5763 (propagated-inputs
5764 `(("glib" ,glib))) ; required by gudev-1.0.pc
5765 (inputs
5766 `(("udev" ,eudev)))
5767 (home-page "https://wiki.gnome.org/Projects/libgudev")
5768 (synopsis "GObject bindings for libudev")
5769 (description
5770 "This library provides GObject bindings for libudev. It was originally
5771 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5772 (license license:lgpl2.1+)))
5773
5774 (define-public gvfs
5775 (package
5776 (name "gvfs")
5777 (version "1.40.1")
5778 (source (origin
5779 (method url-fetch)
5780 (uri (string-append "mirror://gnome/sources/gvfs/"
5781 (version-major+minor version) "/"
5782 "gvfs-" version ".tar.xz"))
5783 (sha256
5784 (base32
5785 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
5786 ;; This patch may be removed when upgrading to version 1.46.x.
5787 (patches
5788 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
5789 (build-system meson-build-system)
5790 (arguments
5791 '(#:glib-or-gtk? #t
5792 #:configure-flags
5793 (list "-Dsystemduserunitdir=no"
5794 "-Dtmpfilesdir=no"
5795 ;; Otherwise, the RUNPATH will lack the final path component.
5796 (string-append "-Dc_link_args=-Wl,-rpath="
5797 (assoc-ref %outputs "out") "/lib/gvfs"))))
5798 (native-inputs
5799 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5800 ("gettext" ,gettext-minimal)
5801 ("gtk-doc" ,gtk-doc)
5802 ("pkg-config" ,pkg-config)
5803 ("xsltproc" ,libxslt)))
5804 (inputs
5805 `(("avahi" ,avahi)
5806 ("docbook-xml" ,docbook-xml-4.2)
5807 ("docbook-xsl" ,docbook-xsl)
5808 ("dbus" ,dbus)
5809 ("elogind" ,elogind)
5810 ("fuse" ,fuse)
5811 ("gcr" ,gcr)
5812 ("glib" ,glib)
5813 ("gnome-online-accounts" ,gnome-online-accounts)
5814 ("libarchive" ,libarchive)
5815 ("libbluray" ,libbluray)
5816 ("libcap" ,libcap)
5817 ("libcdio-paranoia" ,libcdio-paranoia)
5818 ("libgcrypt" ,libgcrypt)
5819 ("libgdata" ,libgdata)
5820 ("libgphoto2" ,libgphoto2)
5821 ("libgudev" ,libgudev)
5822 ("libimobiledevice" ,libimobiledevice)
5823 ("libmtp" ,libmtp)
5824 ("libnfs" ,libnfs)
5825 ("libsecret" ,libsecret)
5826 ("libsmbclient" ,samba)
5827 ("libsoup" ,libsoup)
5828 ("libxml2" ,libxml2)
5829 ("openssh" ,openssh)
5830 ("polkit" ,polkit)
5831 ("udisks" ,udisks)))
5832 (home-page "https://wiki.gnome.org/gvfs/")
5833 (synopsis "Userspace virtual file system for GIO")
5834 (description
5835 "GVFS is a userspace virtual file system designed to work with the I/O
5836 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5837 to all applications using the GIO API. It also supports exposing the GVFS
5838 mounts to non-GIO applications using FUSE.
5839
5840 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5841 DAV, and others.")
5842 (license license:lgpl2.0+)))
5843
5844 (define-public gusb
5845 (package
5846 (name "gusb")
5847 (version "0.3.0")
5848 (source (origin
5849 (method git-fetch)
5850 (uri (git-reference
5851 (url "https://github.com/hughsie/libgusb")
5852 (commit version)))
5853 (file-name (git-file-name name version))
5854 (sha256
5855 (base32
5856 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5857 (build-system meson-build-system)
5858 (native-inputs
5859 `(("gobject-introspection" ,gobject-introspection)
5860 ("pkg-config" ,pkg-config)
5861 ("vala" ,vala)
5862 ("gtk-doc" ,gtk-doc)))
5863 (propagated-inputs
5864 ;; Both of these are required by gusb.pc.
5865 `(("glib" ,glib)
5866 ("libusb" ,libusb)))
5867 (arguments
5868 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5869 (home-page "https://github.com/hughsie/libgusb")
5870 (synopsis "GLib binding for libusb1")
5871 (description
5872 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5873 asynchronous control, bulk and interrupt transfers with proper cancellation
5874 and integration into a mainloop. This makes it easy to integrate low level
5875 USB transfers with your high-level application or system daemon.")
5876 (license license:lgpl2.1+)))
5877
5878 (define-public simple-scan
5879 (package
5880 (name "simple-scan")
5881 (version "3.36.3")
5882 (source
5883 (origin
5884 (method url-fetch)
5885 (uri (string-append "mirror://gnome/sources/simple-scan/"
5886 (version-major+minor version) "/"
5887 "simple-scan-" version ".tar.xz"))
5888 (sha256
5889 (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
5890 (build-system meson-build-system)
5891 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5892 (arguments
5893 '(#:glib-or-gtk? #t))
5894 (inputs
5895 `(("gtk" ,gtk+)
5896 ("zlib" ,zlib)
5897 ("cairo" ,cairo)
5898 ("colord" ,colord)
5899 ("gdk-pixbuf" ,gdk-pixbuf)
5900 ("gusb" ,gusb)
5901 ("libsane" ,sane-backends)))
5902 (native-inputs
5903 `(("gettext" ,gettext-minimal)
5904 ("itstool" ,itstool)
5905 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5906 ("pkg-config" ,pkg-config)
5907 ("vala" ,vala)
5908 ("xmllint" ,libxml2)))
5909 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5910 (synopsis "Document and image scanner")
5911 (description
5912 "Document Scanner is an easy-to-use application that lets you connect your
5913 scanner and quickly capture images and documents in an appropriate format. It
5914 supports any scanner for which a suitable SANE driver is available, which is
5915 almost all of them.")
5916 (license license:gpl3+)))
5917
5918 (define-public eolie
5919 (package
5920 (name "eolie")
5921 (version "0.9.98.1")
5922 (source (origin
5923 (method url-fetch)
5924 (uri (string-append "https://adishatz.org/eolie/eolie-"
5925 version ".tar.xz"))
5926 (sha256
5927 (base32
5928 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
5929 (build-system meson-build-system)
5930 (arguments
5931 `(#:glib-or-gtk? #t
5932 #:phases
5933 (modify-phases %standard-phases
5934 (add-after 'unpack 'skip-gtk-update-icon-cache
5935 ;; Don't create 'icon-theme.cache'.
5936 (lambda _
5937 (substitute* "meson_post_install.py"
5938 (("gtk-update-icon-cache") "true"))
5939 #t))
5940 (add-after 'wrap 'wrap-more
5941 (lambda* (#:key inputs outputs #:allow-other-keys)
5942 (let* ((out (assoc-ref outputs "out"))
5943 ;; These libraries must be on LD_LIBRARY_PATH.
5944 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5945 "atk" "gtk+" "gsettings-desktop-schemas"
5946 "gobject-introspection"))
5947 (path (string-join
5948 (map (lambda (lib)
5949 (string-append (assoc-ref inputs lib) "/lib"))
5950 libs)
5951 ":")))
5952 (wrap-program (string-append out "/bin/eolie")
5953 `("LD_LIBRARY_PATH" ":" prefix (,path))
5954 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5955 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5956 #t)))))
5957 (native-inputs
5958 `(("intltool" ,intltool)
5959 ("itstool" ,itstool)
5960 ("pkg-config" ,pkg-config)
5961 ("python" ,python)
5962 ("glib:bin" ,glib "bin")))
5963 (inputs
5964 `(("gobject-introspection" ,gobject-introspection)
5965 ("glib-networking" ,glib-networking)
5966 ("cairo" ,cairo)
5967 ("gtk+" ,gtk+)
5968 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5969 ("python" ,python-wrapper)
5970 ("python-dateutil" ,python-dateutil)
5971 ("python-pyfxa" ,python-pyfxa)
5972 ("python-pygobject" ,python-pygobject)
5973 ("python-pycairo" ,python-pycairo)
5974 ("python-pycrypto" ,python-pycrypto)
5975 ("libsecret" ,libsecret)
5976 ("gtkspell3" ,gtkspell3)
5977 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5978 ("webkitgtk" ,webkitgtk)))
5979 (home-page "https://wiki.gnome.org/Apps/Eolie")
5980 (synopsis "Web browser for GNOME")
5981 (description
5982 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5983 a secret password store, an adblocker, and a modern UI.")
5984 (license license:gpl3+)))
5985
5986 (define-public epiphany
5987 (package
5988 (name "epiphany")
5989 (version "3.34.4")
5990 (source (origin
5991 (method url-fetch)
5992 (uri (string-append "mirror://gnome/sources/epiphany/"
5993 (version-major+minor version) "/"
5994 "epiphany-" version ".tar.xz"))
5995 (sha256
5996 (base32
5997 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
5998
5999 (build-system meson-build-system)
6000 (arguments
6001 '(#:glib-or-gtk? #t
6002 #:phases
6003 (modify-phases %standard-phases
6004 (add-after 'unpack 'skip-gtk-update-icon-cache
6005 ;; Don't create 'icon-theme.cache'.
6006 (lambda _
6007 (substitute* "post_install.py"
6008 (("gtk-update-icon-cache") "true"))
6009 #t))
6010 (add-after 'unpack 'disable-failing-tests
6011 (lambda _
6012 (substitute* "tests/meson.build"
6013 ;; embed_shell fails, because webkitgtk apparently no longer supports
6014 ;; overriding the ftp schema
6015 ;; web_app_utils fails due to missing network access
6016 (("(embed_shell|web_app_utils)_test,")
6017 "find_program('sh'), args: ['-c', 'exit 77'],"))
6018 #t))
6019 (add-before 'check 'pre-check
6020 (lambda _
6021 ;; Tests require a running X server.
6022 (system "Xvfb :1 &")
6023 (setenv "DISPLAY" ":1")
6024 #t)))
6025 #:configure-flags
6026 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6027 (list (string-append "-Dc_link_args=-Wl,-rpath="
6028 (assoc-ref %outputs "out") "/lib/epiphany"))))
6029 (propagated-inputs
6030 `(("dconf" ,dconf)))
6031 (native-inputs
6032 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6033 ("glib:bin" ,glib "bin") ; for glib-mkenums
6034 ("intltool" ,intltool)
6035 ("itstool" ,itstool)
6036 ("pkg-config" ,pkg-config)
6037 ("xmllint" ,libxml2)
6038 ("xorg-server" ,xorg-server-for-tests)))
6039 (inputs
6040 `(("avahi" ,avahi)
6041 ("gcr" ,gcr)
6042 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6043 ("glib-networking" ,glib-networking)
6044 ("gnome-desktop" ,gnome-desktop)
6045 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6046 ("json-glib" ,json-glib)
6047 ("iso-codes" ,iso-codes)
6048 ("libdazzle" ,libdazzle)
6049 ("libnotify" ,libnotify)
6050 ("libsecret" ,libsecret)
6051 ("libxslt" ,libxslt)
6052 ("nettle" ,nettle) ; for hogweed
6053 ("sqlite" ,sqlite)
6054 ("webkitgtk" ,webkitgtk)))
6055 (home-page "https://wiki.gnome.org/Apps/Web")
6056 (synopsis "GNOME web browser")
6057 (description
6058 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6059 principles are simplicity and standards compliance.")
6060 (license license:gpl2+)))
6061
6062 (define-public d-feet
6063 (package
6064 (name "d-feet")
6065 (version "0.3.14")
6066 (source (origin
6067 (method url-fetch)
6068 (uri (string-append "mirror://gnome/sources/" name "/"
6069 (version-major+minor version) "/"
6070 name "-" version ".tar.xz"))
6071 (sha256
6072 (base32
6073 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6074 (build-system glib-or-gtk-build-system)
6075 (arguments
6076 '(#:out-of-source? #f ; tests need to run in the source directory.
6077 #:phases
6078 (modify-phases %standard-phases
6079 (add-before
6080 'check 'pre-check
6081 (lambda _
6082 ;; The test suite requires a running X server.
6083 (system "Xvfb :1 &")
6084 (setenv "DISPLAY" ":1")
6085 ;; Don't fail on missing '/etc/machine-id'.
6086 (setenv "DBUS_FATAL_WARNINGS" "0")
6087 ;; tests.py and window.py don't meet E402:
6088 ;; E402 module level import not at top of file
6089 (substitute* "src/tests/Makefile"
6090 (("--ignore=E123") "--ignore=E123,E402"))
6091 #t))
6092 (add-after
6093 'install 'wrap-program
6094 (lambda* (#:key outputs #:allow-other-keys)
6095 (let ((prog (string-append (assoc-ref outputs "out")
6096 "/bin/d-feet")))
6097 (wrap-program prog
6098 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6099 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6100 #t))))))
6101 (native-inputs
6102 `(("intltool" ,intltool)
6103 ("itstool" ,itstool)
6104 ("pkg-config" ,pkg-config)
6105 ("python-pep8" ,python-pep8)
6106 ("xmllint" ,libxml2)
6107 ("xorg-server" ,xorg-server-for-tests)))
6108 (inputs
6109 `(("gobject-introspection" ,gobject-introspection)
6110 ("gtk+" ,gtk+)
6111 ("python" ,python-wrapper)
6112 ("hicolor-icon-theme" ,hicolor-icon-theme)
6113 ("python-pygobject" ,python-pygobject)))
6114 (home-page "https://wiki.gnome.org/Apps/DFeet")
6115 (synopsis "D-Bus debugger")
6116 (description
6117 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6118 of running programs and invoke methods on those interfaces.")
6119 (license license:gpl2+)))
6120
6121 (define-public yelp-xsl
6122 (package
6123 (name "yelp-xsl")
6124 (version "3.34.2")
6125 (source (origin
6126 (method url-fetch)
6127 (uri (string-append "mirror://gnome/sources/" name "/"
6128 (version-major+minor version) "/"
6129 name "-" version ".tar.xz"))
6130 (sha256
6131 (base32
6132 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6133 (build-system gnu-build-system)
6134 (native-inputs
6135 `(("gettext-minimal" ,gettext-minimal)
6136 ("itstool" ,itstool)
6137 ("xmllint" ,libxml2)))
6138 (home-page "https://wiki.gnome.org/Apps/Yelp")
6139 (synopsis "XSL stylesheets for Yelp")
6140 (description
6141 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
6142 to format Docbook and Mallard documents.")
6143 (license license:gpl2+)))
6144
6145 (define-public yelp
6146 (package
6147 (name "yelp")
6148 (version "3.32.2")
6149 (source (origin
6150 (method url-fetch)
6151 (uri (string-append "mirror://gnome/sources/" name "/"
6152 (version-major+minor version) "/"
6153 name "-" version ".tar.xz"))
6154 (sha256
6155 (base32
6156 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6157 (build-system glib-or-gtk-build-system)
6158 (native-inputs
6159 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6160 ("intltool" ,intltool)
6161 ("itstool" ,itstool)
6162 ("pkg-config" ,pkg-config)))
6163 (propagated-inputs
6164 `(("dconf" ,dconf)))
6165 (inputs
6166 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6167 ("libxslt" ,libxslt)
6168 ("sqlite" ,sqlite)
6169 ("webkitgtk" ,webkitgtk)
6170 ("yelp-xsl" ,yelp-xsl)))
6171 (home-page "https://wiki.gnome.org/Apps/Yelp")
6172 (synopsis "GNOME help browser")
6173 (description
6174 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6175 man, info, and HTML documents. It can locate documents according to the
6176 freedesktop.org help system specification.")
6177 (license license:gpl2+)))
6178
6179 (define-public yelp-tools
6180 (package
6181 (name "yelp-tools")
6182 (version "3.32.2")
6183 (source (origin
6184 (method url-fetch)
6185 (uri (string-append "mirror://gnome/sources/" name "/"
6186 (version-major+minor version) "/"
6187 name "-" version ".tar.xz"))
6188 (sha256
6189 (base32
6190 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6191 (build-system gnu-build-system)
6192 (native-inputs
6193 `(("pkg-config" ,pkg-config)))
6194 (propagated-inputs
6195 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6196 `(("itstool" ,itstool)
6197 ("xmllint" ,libxml2)
6198 ("xsltproc" ,libxslt)))
6199 (inputs
6200 `(("yelp-xsl" ,yelp-xsl)))
6201 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6202 (synopsis "Yelp documentation tools")
6203 (description
6204 "Yelp-tools is a collection of scripts and build utilities to help create,
6205 manage, and publish documentation for Yelp and the web. Most of the heavy
6206 lifting is done by packages like yelp-xsl and itstool. This package just
6207 wraps things up in a developer-friendly way.")
6208 (license license:gpl2+)))
6209
6210 (define-public libgee
6211 (package
6212 (name "libgee")
6213 (version "0.20.3")
6214 (source (origin
6215 (method url-fetch)
6216 (uri (string-append "mirror://gnome/sources/libgee/"
6217 (version-major+minor version) "/"
6218 "libgee-" version ".tar.xz"))
6219 (sha256
6220 (base32
6221 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6222 (build-system gnu-build-system)
6223 (arguments
6224 `(#:phases
6225 (modify-phases %standard-phases
6226 (add-after 'unpack 'fix-introspection-install-dir
6227 (lambda* (#:key outputs #:allow-other-keys)
6228 (let ((out (assoc-ref outputs "out")))
6229 (substitute* "gee/Makefile.in"
6230 (("@INTROSPECTION_GIRDIR@")
6231 (string-append out "/share/gir-1.0/"))
6232 (("@INTROSPECTION_TYPELIBDIR@")
6233 (string-append out "/lib/girepository-1.0/")))))))))
6234 (native-inputs
6235 `(("glib" ,glib "bin")
6236 ("pkg-config" ,pkg-config)))
6237 (inputs
6238 `(("glib" ,glib)
6239 ("gobject-introspection" ,gobject-introspection)))
6240 (home-page "https://wiki.gnome.org/Projects/Libgee")
6241 (synopsis "GObject collection library")
6242 (description
6243 "Libgee is a utility library providing GObject-based interfaces and
6244 classes for commonly used data structures.")
6245 (license license:lgpl2.1+)))
6246
6247 (define-public gexiv2
6248 (package
6249 (name "gexiv2")
6250 (version "0.12.1")
6251 (source (origin
6252 (method url-fetch)
6253 (uri (string-append "mirror://gnome/sources/" name "/"
6254 (version-major+minor version) "/"
6255 name "-" version ".tar.xz"))
6256 (sha256
6257 (base32
6258 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
6259 (build-system meson-build-system)
6260 (native-inputs
6261 `(("gcr" ,gcr)
6262 ("glib" ,glib "bin")
6263 ("pkg-config" ,pkg-config)
6264 ("vala" ,vala)))
6265 (propagated-inputs
6266 ;; Listed in "Requires" section of gexiv2.pc
6267 `(("exiv2" ,exiv2)))
6268 (inputs
6269 `(("glib" ,glib)
6270 ("gobject-introspection" ,gobject-introspection)))
6271 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6272 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6273 (description
6274 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6275 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6276 metadata in photo and video files of various formats.")
6277 (license license:gpl2+)))
6278
6279 (define-public shotwell
6280 (package
6281 (name "shotwell")
6282 (version "0.30.9")
6283 (source (origin
6284 (method url-fetch)
6285 (uri (string-append "mirror://gnome/sources/shotwell/"
6286 (version-major+minor version) "/"
6287 "shotwell-" version ".tar.xz"))
6288 (sha256
6289 (base32
6290 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
6291 (build-system meson-build-system)
6292 (arguments
6293 '(#:glib-or-gtk? #t
6294 #:phases
6295 (modify-phases %standard-phases
6296 (add-after 'unpack 'skip-gtk-update-icon-cache
6297 (lambda _
6298 (substitute* "build-aux/meson/postinstall.py"
6299 (("gtk-update-icon-cache") (which "true"))
6300 (("update-desktop-database") (which "true")))
6301 #t)))))
6302 (propagated-inputs
6303 `(("dconf" ,dconf)))
6304 (native-inputs
6305 `(("gettext" ,gettext-minimal)
6306 ("glib:bin" ,glib "bin")
6307 ("itstool" ,itstool)
6308 ("pkg-config" ,pkg-config)
6309 ("vala" ,vala)))
6310 (inputs
6311 `(("gcr" ,gcr)
6312 ("gexiv2" ,gexiv2)
6313 ("gst-plugins-base" ,gst-plugins-base)
6314 ("gstreamer" ,gstreamer)
6315 ("json-glib" ,json-glib)
6316 ("libgdata" ,libgdata)
6317 ("libgee" ,libgee)
6318 ("libgphoto2" ,libgphoto2)
6319 ("libgudev" ,libgudev)
6320 ("libraw" ,libraw)
6321 ("libsoup" ,libsoup)
6322 ("libxml2" ,libxml2)
6323 ("sqlite" ,sqlite)
6324 ("webkitgtk" ,webkitgtk)))
6325 (home-page "https://wiki.gnome.org/Apps/Shotwell")
6326 (synopsis "Photo manager for GNOME 3")
6327 (description
6328 "Shotwell is a digital photo manager designed for the GNOME desktop
6329 environment. It allows you to import photos from disk or camera, organize
6330 them by keywords and events, view them in full-window or fullscreen mode, and
6331 share them with others via social networking and more.")
6332 (license license:lgpl2.1+)))
6333
6334 (define-public file-roller
6335 (package
6336 (name "file-roller")
6337 (version "3.32.3")
6338 (source (origin
6339 (method url-fetch)
6340 (uri (string-append "mirror://gnome/sources/file-roller/"
6341 (version-major+minor version) "/"
6342 "file-roller-" version ".tar.xz"))
6343 (sha256
6344 (base32
6345 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
6346 (build-system meson-build-system)
6347 (native-inputs
6348 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6349 ("intltool" ,intltool)
6350 ("itstool" ,itstool)
6351 ("pkg-config" ,pkg-config)
6352 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6353 ("glib:bin" ,glib "bin")))
6354 ;; TODO: Add libnautilus.
6355 (inputs
6356 `(("gtk+" ,gtk+)
6357 ("gdk-pixbuf" ,gdk-pixbuf)
6358 ("json-glib" ,json-glib)
6359 ("libarchive" ,libarchive)
6360 ("libnotify" ,libnotify)
6361 ("nettle" ,nettle)
6362 ("libxml2" ,libxml2)))
6363 (synopsis "Graphical archive manager for GNOME")
6364 (description "File Roller is an archive manager for the GNOME desktop
6365 environment that allows users to view, unpack, and create compressed archives
6366 such as gzip tarballs.")
6367 (home-page "http://fileroller.sourceforge.net/")
6368 (license license:gpl2+)))
6369
6370 (define-public gnome-session
6371 (package
6372 (name "gnome-session")
6373 (version "3.34.2")
6374 (source (origin
6375 (method url-fetch)
6376 (uri (string-append "mirror://gnome/sources/" name "/"
6377 (version-major+minor version) "/"
6378 name "-" version ".tar.xz"))
6379 (sha256
6380 (base32
6381 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
6382 (arguments
6383 '(#:glib-or-gtk? #t
6384 #:phases
6385 (modify-phases %standard-phases
6386 (add-before 'configure 'pre-configure
6387 (lambda* (#:key outputs #:allow-other-keys)
6388 ;; Use elogind instead of systemd.
6389 (substitute* "meson.build"
6390 (("libsystemd-login") "libelogind")
6391 (("and libsystemd_daemon_dep.found.*") ","))
6392 (substitute* "gnome-session/gsm-systemd.c"
6393 (("#include <systemd/sd-login.h>")
6394 "#include <elogind/sd-login.h>"))
6395 ;; Remove uses of the systemd daemon.
6396 (substitute* "gnome-session/gsm-autostart-app.c"
6397 (("#ifdef HAVE_SYSTEMD") "#if 0"))
6398 #t))
6399 (add-after 'install 'wrap-gnome-session
6400 (lambda* (#:key inputs outputs #:allow-other-keys)
6401 ;; Make sure 'gnome-session' finds the 'gsettings' program.
6402 (let ((glib (assoc-ref inputs "glib:bin"))
6403 (out (assoc-ref outputs "out")))
6404 (wrap-program (string-append out "/bin/gnome-session")
6405 `("PATH" ":" prefix (,(string-append glib "/bin"))))
6406 #t))))
6407
6408 #:configure-flags
6409 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
6410 "-Dman=false" ; FIXME: disabled because of docbook validation error
6411 "-Dsystemd_journal=false")))
6412 (build-system meson-build-system)
6413 (native-inputs
6414 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6415 ("pkg-config" ,pkg-config)
6416 ("intltool" ,intltool)
6417 ("xsltproc" ,libxslt)
6418 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
6419 ("docbook-xsl" ,docbook-xsl)
6420 ("docbook-xml" ,docbook-xml)
6421 ("xmlto" ,xmlto)))
6422 (inputs
6423 `(("elogind" ,elogind)
6424 ("gnome-desktop" ,gnome-desktop)
6425 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6426 ("gtk+" ,gtk+)
6427 ("json-glib" ,json-glib)
6428 ("libsm" ,libsm)
6429 ("libxcomposite" ,libxcomposite)
6430 ("libxtst" ,libxtst)
6431 ("mesa" ,mesa)
6432 ("upower" ,upower)
6433 ("xtrans" ,xtrans)))
6434 (synopsis "Session manager for GNOME")
6435 (description
6436 "This package contains the GNOME session manager, as well as a
6437 configuration program to choose applications starting on login.")
6438 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
6439 (license license:gpl2+)))
6440
6441 (define-public gjs
6442 (package
6443 (name "gjs")
6444 (version "1.58.3")
6445 (source (origin
6446 (method url-fetch)
6447 (uri (string-append "mirror://gnome/sources/" name "/"
6448 (version-major+minor version) "/"
6449 name "-" version ".tar.xz"))
6450 (sha256
6451 (base32
6452 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
6453 (build-system gnu-build-system)
6454 (arguments
6455 '(#:phases
6456 (modify-phases %standard-phases
6457 (add-before
6458 'check 'pre-check
6459 (lambda _
6460 ;; The test suite requires a running X server.
6461 (system "Xvfb :1 &")
6462 (setenv "DISPLAY" ":1")
6463
6464 ;; For the missing /etc/machine-id.
6465 (setenv "DBUS_FATAL_WARNINGS" "0")
6466
6467 ;; Our mozjs-38 package does not compile the required Intl API
6468 ;; support for these failing tests.
6469 (substitute* "installed-tests/js/testLocale.js"
6470 ((".*toBeDefined.*") "")
6471 ((".*expect\\(datestr\\).*") ""))
6472 (substitute* "installed-tests/scripts/testCommandLine.sh"
6473 (("Valentín") "")
6474 (("☭") ""))
6475 #t)))))
6476 (native-inputs
6477 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
6478 ("pkg-config" ,pkg-config)
6479 ("xmllint" ,libxml2)
6480 ;; For testing
6481 ("dbus-launch" ,dbus)
6482 ("dconf" ,dconf) ; required to properly store settings
6483 ("uuidgen" ,util-linux)
6484 ("xvfb" ,xorg-server-for-tests)))
6485 (propagated-inputs
6486 ;; These are all in the Requires.private field of gjs-1.0.pc.
6487 `(("cairo" ,cairo)
6488 ("gobject-introspection" ,gobject-introspection)
6489 ("mozjs" ,mozjs-60)))
6490 (inputs
6491 `(("gtk+" ,gtk+)
6492 ("readline" ,readline)))
6493 (synopsis "Javascript bindings for GNOME")
6494 (home-page "https://live.gnome.org/Gjs")
6495 (description
6496 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6497 javascript engine and the GObject introspection framework.")
6498 (license license:gpl2+)))
6499
6500 (define-public gedit
6501 (package
6502 (name "gedit")
6503 (version "3.34.1")
6504 (source (origin
6505 (method url-fetch)
6506 (uri (string-append "mirror://gnome/sources/" name "/"
6507 (version-major+minor version) "/"
6508 name "-" version ".tar.xz"))
6509 (sha256
6510 (base32
6511 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
6512 (build-system meson-build-system)
6513 (arguments
6514 `(#:glib-or-gtk? #t
6515 #:configure-flags
6516 ;; Otherwise, the RUNPATH will lack the final path component.
6517 (list (string-append "-Dc_link_args=-Wl,-rpath="
6518 (assoc-ref %outputs "out") "/lib/gedit"))
6519
6520 ;; XXX: Generated .h files are sometimes used before being built.
6521 #:parallel-build? #f
6522
6523 #:phases
6524 (modify-phases %standard-phases
6525 (add-after 'unpack 'skip-gtk-update-icon-cache
6526 ;; Don't create 'icon-theme.cache'.
6527 (lambda _
6528 (substitute* "build-aux/meson/post_install.py"
6529 (("gtk-update-icon-cache") (which "true")))
6530 #t))
6531 (add-after 'unpack 'patch-libgd-fetch
6532 (lambda* (#:key inputs #:allow-other-keys)
6533 (let ((libgd (assoc-ref inputs "libgd")))
6534 ;; Calling git is unnecessary because libgd is fetched as a
6535 ;; native input to this package.
6536 (substitute* "meson.build"
6537 ((".*git.*") ""))
6538 (copy-recursively libgd "subprojects/libgd")
6539 #t)))
6540 (add-after 'install 'wrap-gedit
6541 (lambda* (#:key inputs outputs #:allow-other-keys)
6542 (let ((out (assoc-ref outputs "out"))
6543 (gtksourceview (assoc-ref inputs "gtksourceview"))
6544 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6545 (python-path (getenv "PYTHONPATH")))
6546 (wrap-program (string-append out "/bin/gedit")
6547 ;; For plugins.
6548 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6549 `("PYTHONPATH" ":" prefix (,python-path))
6550 ;; For language-specs.
6551 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6552 "/share")))))
6553 #t)))))
6554 (propagated-inputs
6555 `(("dconf" ,dconf)))
6556 (native-inputs
6557 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6558 ("intltool" ,intltool)
6559 ("itstool" ,itstool)
6560 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6561 ("gobject-introspection" ,gobject-introspection)
6562 ("libgd"
6563 ,(origin
6564 (method git-fetch)
6565 (uri (git-reference
6566 (url "https://gitlab.gnome.org/GNOME/libgd")
6567 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6568 (file-name (git-file-name "libgd" version))
6569 (sha256
6570 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6571 ("pkg-config" ,pkg-config)))
6572 (inputs
6573 `(("glib" ,glib)
6574 ("gspell" ,gspell)
6575 ("gtk+" ,gtk+)
6576 ("gtksourceview" ,gtksourceview)
6577 ("libpeas" ,libpeas)
6578 ("libxml2" ,libxml2)
6579 ("iso-codes" ,iso-codes)
6580 ("python-pygobject" ,python-pygobject)
6581 ("python" ,python)
6582 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6583 ("libx11" ,libx11)
6584 ("vala" ,vala)
6585 ("adwaita-icon-theme" ,adwaita-icon-theme)
6586 ("libsoup" ,libsoup)
6587 ("gnome-desktop" ,gnome-desktop)))
6588 (home-page "https://wiki.gnome.org/Apps/Gedit")
6589 (synopsis "GNOME text editor")
6590 (description "While aiming at simplicity and ease of use, gedit is a
6591 powerful general purpose text editor.")
6592 (license license:gpl2+)))
6593
6594 (define-public zenity
6595 (package
6596 (name "zenity")
6597 (version "3.32.0")
6598 (source (origin
6599 (method url-fetch)
6600 (uri (string-append "mirror://gnome/sources/zenity/"
6601 (version-major+minor version) "/"
6602 "zenity-" version ".tar.xz"))
6603 (sha256
6604 (base32
6605 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6606 (build-system gnu-build-system)
6607 (native-inputs
6608 `(("gettext" ,gettext-minimal)
6609 ("itstool" ,itstool)
6610 ("pkg-config" ,pkg-config)))
6611 (inputs
6612 `(("libnotify" ,libnotify)
6613 ("webkitgtk" ,webkitgtk)))
6614 (synopsis "Display graphical dialog boxes from shell scripts")
6615 (home-page "https://www.gnome.org")
6616 (description
6617 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6618 to display dialog boxes from the commandline and shell scripts.")
6619 (license license:lgpl2.0+)))
6620
6621 (define-public mutter
6622 (package
6623 (name "mutter")
6624 (version "3.34.2")
6625 (source (origin
6626 (method url-fetch)
6627 (uri (string-append "mirror://gnome/sources/" name "/"
6628 (version-major+minor version) "/"
6629 name "-" version ".tar.xz"))
6630 (sha256
6631 (base32
6632 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
6633 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6634 ;; versions of cogl and clutter. As a result, many of the inputs,
6635 ;; propagated-inputs, and configure flags used in cogl and clutter are
6636 ;; needed here as well.
6637 (build-system meson-build-system)
6638 (arguments
6639 '(;; XXX: All mutter tests fail with the following error:
6640 ;; Settings schema 'org.gnome.mutter' is not installed
6641 #:tests? #f
6642 #:glib-or-gtk? #t
6643 #:configure-flags
6644 ;; TODO: Enable profiler when Sysprof is packaged.
6645 (list "-Dprofiler=false"
6646 ;; Otherwise, the RUNPATH will lack the final path component.
6647 (string-append "-Dc_link_args=-Wl,-rpath="
6648 (assoc-ref %outputs "out") "/lib:"
6649 (assoc-ref %outputs "out") "/lib/mutter-5")
6650
6651 ;; The following flags are needed for the bundled clutter
6652 (string-append "-Dxwayland_path="
6653 (assoc-ref %build-inputs "xorg-server-xwayland")
6654 "/bin/Xwayland")
6655
6656 ;; the remaining flags are needed for the bundled cogl
6657 (string-append "-Dopengl_libname="
6658 (assoc-ref %build-inputs "mesa")
6659 "/lib/libGL.so"))
6660 #:phases (modify-phases %standard-phases
6661 (add-after 'unpack 'fix-build-with-mesa-20
6662 (lambda _
6663 ;; Mimic upstream commit a444a4c5f58ea516ad for
6664 ;; compatibility with Mesa 20. Remove for 3.36.
6665 (substitute* '("src/backends/meta-egl-ext.h"
6666 "src/backends/meta-egl.c"
6667 "src/backends/meta-egl.h")
6668 (("#include <EGL/eglext\\.h>" all)
6669 (string-append all "\n#include <EGL/eglmesaext.h>")))
6670 (substitute* "cogl/cogl/meson.build"
6671 (("#include <EGL/eglext\\.h>" all)
6672 (string-append all "\\n#include <EGL/eglmesaext.h>")))
6673 #t)))))
6674 (native-inputs
6675 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6676 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6677 ("gobject-introspection" ,gobject-introspection)
6678 ("intltool" ,intltool)
6679 ("pkg-config" ,pkg-config)
6680 ("xorg-server" ,xorg-server-for-tests)
6681 ;; For git build
6682 ("autoconf" ,autoconf)
6683 ("automake" ,automake)
6684 ("libtool" ,libtool)))
6685 (propagated-inputs
6686 `(;; libmutter.pc refers to these:
6687 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6688 ("gtk+" ,gtk+)
6689 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6690 ("atk" ,atk)
6691 ("cairo" ,cairo)
6692 ("gdk-pixbuf" ,gdk-pixbuf)
6693 ("glib" ,glib)
6694 ("json-glib" ,json-glib)
6695 ("libinput" ,libinput)
6696 ("libx11" ,libx11)
6697 ("libxcomposite" ,libxcomposite)
6698 ("libxdamage" ,libxdamage)
6699 ("libxext" ,libxext)
6700 ("libxfixes" ,libxfixes)
6701 ("libxkbcommon" ,libxkbcommon)
6702 ("libxrandr" ,libxrandr)
6703 ("mesa" ,mesa)
6704 ("pango" ,pango)
6705 ("udev" ,eudev)
6706 ("xinput" ,xinput)))
6707 (inputs
6708 `(("elogind" ,elogind)
6709 ("gnome-desktop" ,gnome-desktop)
6710 ("gnome-settings-daemon" ,gnome-settings-daemon)
6711 ("libcanberra-gtk" ,libcanberra)
6712 ("libgudev" ,libgudev)
6713 ("libice" ,libice)
6714 ("libsm" ,libsm)
6715 ("libwacom" ,libwacom)
6716 ("libxkbfile" ,libxkbfile)
6717 ("libxrandr" ,libxrandr)
6718 ("libxtst" ,libxtst)
6719 ("pipewire" ,pipewire)
6720 ("startup-notification" ,startup-notification)
6721 ("upower-glib" ,upower)
6722 ("xkeyboard-config" ,xkeyboard-config)
6723 ("xorg-server-xwayland" ,xorg-server-xwayland)
6724 ("zenity" ,zenity)))
6725 (synopsis "Window and compositing manager")
6726 (home-page "https://www.gnome.org")
6727 (description
6728 "Mutter is a window and compositing manager that displays and manages your
6729 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6730 Clutter toolkit with solid window-management logic inherited from the Metacity
6731 window manager.")
6732 (license license:gpl2+)))
6733
6734 (define-public gnome-online-accounts
6735 (package
6736 (name "gnome-online-accounts")
6737 (version "3.36.0")
6738 (source (origin
6739 (method url-fetch)
6740 (uri (string-append "mirror://gnome/sources/" name "/"
6741 (version-major+minor version) "/"
6742 name "-" version ".tar.xz"))
6743 (sha256
6744 (base32
6745 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
6746 (outputs '("out" "lib"))
6747 (build-system glib-or-gtk-build-system)
6748 (arguments
6749 `(#:configure-flags
6750 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6751 #:phases
6752 (modify-phases %standard-phases
6753 (add-before 'configure 'patch-libgoa-output
6754 (lambda* (#:key outputs #:allow-other-keys)
6755 (let ((lib (assoc-ref outputs "lib")))
6756 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6757 (("@prefix@") lib)
6758 (("@exec_prefix@") lib)
6759 (("@libdir@") (string-append lib "/lib"))
6760 (("@includedir@") (string-append lib "/include"))
6761 (("@datadir@") (string-append lib "/share")))
6762 ;; Make sure gobject-introspection knows about the output
6763 ;; too (see <https://bugs.gnu.org/36535>).
6764 (setenv "outputs" "out lib")
6765 #t))))))
6766 (native-inputs
6767 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6768 ("gobject-introspection" ,gobject-introspection)
6769 ("intltool" ,intltool)
6770 ("pkg-config" ,pkg-config)
6771 ("vala" ,vala)
6772 ("xsltproc" ,libxslt)))
6773 (propagated-inputs
6774 `(("glib" ,glib) ; required by goa-1.0.pc
6775 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6776 (inputs
6777 `(("docbook-xsl" ,docbook-xsl)
6778 ("json-glib" ,json-glib)
6779 ("libsecret" ,libsecret)
6780 ("rest" ,rest)
6781 ("webkitgtk" ,webkitgtk)))
6782 (synopsis "Single sign-on framework for GNOME")
6783 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6784 (description
6785 "GNOME Online Accounts provides interfaces so that applications and
6786 libraries in GNOME can access the user's online accounts. It has providers for
6787 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6788 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6789 (license license:lgpl2.0+)))
6790
6791 (define-public evolution-data-server
6792 (package
6793 (name "evolution-data-server")
6794 (version "3.34.2")
6795 (source (origin
6796 (method url-fetch)
6797 (uri (string-append "mirror://gnome/sources/" name "/"
6798 (version-major+minor version) "/"
6799 name "-" version ".tar.xz"))
6800 (patches (search-patches "evolution-data-server-locales.patch"
6801 "evolution-data-server-libical-compat.patch"))
6802 (sha256
6803 (base32
6804 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
6805 (build-system cmake-build-system)
6806 (arguments
6807 '(#:configure-flags
6808 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6809 (runpaths (map (lambda (s)
6810 (string-append lib "/evolution-data-server/" s))
6811 '("addressbook-backends" "calendar-backends"
6812 "camel-providers" "credential-modules"
6813 "registry-modules"))))
6814 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6815 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6816 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6817 "-DENABLE_VALA_BINDINGS=ON"
6818 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6819 (string-append lib "/evolution-data-server;")
6820 (string-join runpaths ";"))
6821 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6822 #:phases
6823 (modify-phases %standard-phases
6824 (add-after 'unpack 'disable-failing-tests
6825 (lambda _
6826 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6827 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6828 (delete-file-recursively "tests/book-migration")
6829 (substitute* "tests/CMakeLists.txt"
6830 (("add_subdirectory\\(book-migration\\)") ""))
6831 #t))
6832 (add-after 'unpack 'patch-paths
6833 (lambda _
6834 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6835 "tests/libedata-book/data-test-utils.c"
6836 "tests/libedata-book/test-book-cache-utils.c"
6837 "tests/libedata-cal/test-cal-cache-utils.c")
6838 (("/bin/rm") (which "rm")))
6839 #t))
6840 (add-before 'configure 'dont-override-rpath
6841 (lambda _
6842 (substitute* "CMakeLists.txt"
6843 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6844 ;; Remove it so the configure flag is respected.
6845 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6846 #t)))))
6847 (native-inputs
6848 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6849 ("gobject-introspection" ,gobject-introspection)
6850 ("gperf" ,gperf)
6851 ("intltool" ,intltool)
6852 ("pkg-config" ,pkg-config)
6853 ("vala" ,vala)
6854 ("python" ,python-wrapper)))
6855 (propagated-inputs
6856 ;; These are all in the Requires field of .pc files.
6857 `(("gtk+" ,gtk+)
6858 ("libical" ,libical)
6859 ("libsecret" ,libsecret)
6860 ("libsoup" ,libsoup)
6861 ("nss" ,nss)
6862 ("sqlite" ,sqlite)))
6863 (inputs
6864 `(("bdb" ,bdb)
6865 ("gcr" ,gcr)
6866 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6867 ("json-glib" ,json-glib)
6868 ("libcanberra" ,libcanberra)
6869 ("libgweather" ,libgweather)
6870 ("mit-krb5" ,mit-krb5)
6871 ("openldap" ,openldap)
6872 ("webkitgtk" ,webkitgtk)))
6873 (synopsis "Store address books and calendars")
6874 (home-page "https://wiki.gnome.org/Apps/Evolution")
6875 (description
6876 "This package provides a unified backend for programs that work with
6877 contacts, tasks, and calendar information. It was originally developed for
6878 Evolution (hence the name), but is now used by other packages as well.")
6879 (license license:lgpl2.0)))
6880
6881 (define-public caribou
6882 (package
6883 (name "caribou")
6884 (version "0.4.21")
6885 (source (origin
6886 (method url-fetch)
6887 (uri (string-append "mirror://gnome/sources/" name "/"
6888 (version-major+minor version) "/"
6889 name "-" version ".tar.xz"))
6890 (sha256
6891 (base32
6892 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6893 (build-system glib-or-gtk-build-system)
6894 (arguments
6895 '(#:phases
6896 (modify-phases %standard-phases
6897 (add-before
6898 'build 'pre-build
6899 (lambda* (#:key outputs #:allow-other-keys)
6900 (let ((out (assoc-ref outputs "out")))
6901 ;; Use absolute shared library path in Caribou-1.0.typelib.
6902 (substitute* "libcaribou/Makefile"
6903 (("--shared-library=libcaribou.so")
6904 (string-append "--shared-library="
6905 out "/lib/libcaribou.so")))
6906 #t)))
6907 (add-after 'install 'wrap-programs
6908 (lambda* (#:key outputs #:allow-other-keys)
6909 (let* ((out (assoc-ref outputs "out"))
6910 (python-path (getenv "PYTHONPATH"))
6911 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6912 (for-each
6913 (lambda (prog)
6914 (wrap-program prog
6915 `("PYTHONPATH" ":" prefix (,python-path))
6916 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6917 (list (string-append out "/bin/caribou-preferences")
6918 (string-append out "/libexec/antler-keyboard"))))
6919 #t)))))
6920 (native-inputs
6921 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6922 ("gobject-introspection" ,gobject-introspection)
6923 ("intltool" ,intltool)
6924 ("pkg-config" ,pkg-config)
6925 ("python" ,python)
6926 ("vala" ,vala)
6927 ("xsltproc" ,libxslt)))
6928 (propagated-inputs
6929 ;; caribou-1.0.pc refers to all these.
6930 `(("libgee" ,libgee)
6931 ("libxklavier" ,libxklavier)
6932 ("libxtst" ,libxtst)
6933 ("gtk+" ,gtk+)))
6934 (inputs
6935 `(("clutter" ,clutter)
6936 ("dconf" ,dconf)
6937 ("gtk+-2" ,gtk+-2)
6938 ("python-pygobject" ,python-pygobject)))
6939 (synopsis "Text entry and UI navigation application")
6940 (home-page "https://wiki.gnome.org/Projects/Caribou")
6941 (description
6942 "Caribou is an input assistive technology intended for switch and pointer
6943 users.")
6944 (license license:lgpl2.1)))
6945
6946 (define-public network-manager
6947 (package
6948 (name "network-manager")
6949 (version "1.24.0")
6950 (source (origin
6951 (method url-fetch)
6952 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6953 (version-major+minor version) "/"
6954 "NetworkManager-" version ".tar.xz"))
6955 (patches (search-patches "network-manager-plugin-path.patch"))
6956 (sha256
6957 (base32
6958 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
6959 (modules '((guix build utils)))
6960 (snippet
6961 '(begin
6962 (substitute* "src/devices/wwan/nm-modem-manager.c"
6963 (("systemd") "elogind"))
6964 #t))))
6965 (build-system meson-build-system)
6966 (outputs '("out"
6967 "doc")) ; 8 MiB of gtk-doc HTML
6968 (arguments
6969 `(#:configure-flags
6970 (let ((out (assoc-ref %outputs "out"))
6971 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6972 "/sbin/dhclient")))
6973 (list
6974 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6975 ;; component.
6976 (string-append "-Dc_link_args=-Wl,-rpath="
6977 out "/lib:"
6978 out "/lib/NetworkManager/" ,version)
6979 "-Dsystemd_journal=false"
6980 "-Dsession_tracking=elogind"
6981 "-Dsuspend_resume=elogind"
6982 "-Dsystemdsystemunitdir=no"
6983 "-Dsession_tracking_consolekit=false"
6984 "-Ddhcpcd=no"
6985 "-Ddhcpcanon=no"
6986 "-Dcrypto=gnutls"
6987 "-Diwd=true"
6988 "-Dlibaudit=yes"
6989 "-Dqt=false"
6990 "-Ddocs=true"
6991 "--sysconfdir=/etc"
6992 "--localstatedir=/var"
6993 (string-append "-Dudev_dir="
6994 out "/lib/udev")
6995 (string-append "-Ddbus_conf_dir="
6996 out "/etc/dbus-1/system.d")
6997
6998 (string-append "-Ddhclient=" dhclient)))
6999 #:phases
7000 (modify-phases %standard-phases
7001 (add-before 'configure 'pre-configure
7002 (lambda _
7003 ;; These tests try to test aspects of network-manager's
7004 ;; functionality within restricted containers, but they don't
7005 ;; cope with being already in the Guix build jail as that jail
7006 ;; lacks some features that they would like to proxy over (like
7007 ;; a /sys mount).
7008 (substitute* "src/platform/tests/meson.build"
7009 ((".*test-address-linux.*") "")
7010 ((".*test-cleanup-linux.*") "")
7011 ((".*test-link-linux.*") "")
7012 ((".*test-route-linux.*") ""))
7013 (substitute* "src/devices/tests/meson.build"
7014 ((".*test-acd.*") "")
7015 ((".*test-lldp.*") ""))
7016 #t))
7017 (add-after 'unpack 'patch-docbook-xml
7018 (lambda* (#:key inputs #:allow-other-keys)
7019 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7020 "/xml/dtd/docbook")))
7021 (substitute* (find-files "." ".*\\.(xsl|xml)")
7022 (("http://.*/docbookx\\.dtd")
7023 (string-append xmldoc "/docbookx.dtd")))
7024 #t)))
7025 (add-before 'check 'pre-check
7026 (lambda _
7027 ;; For the missing /etc/machine-id.
7028 (setenv "DBUS_FATAL_WARNINGS" "0")
7029 #t))
7030 (add-before 'install 'no-polkit-magic
7031 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7032 (lambda _
7033 (setenv "PKEXEC_UID" "something")
7034 #t))
7035 (add-after 'install 'move-doc
7036 (lambda* (#:key outputs #:allow-other-keys)
7037 (let ((out (assoc-ref outputs "out"))
7038 (doc (assoc-ref outputs "doc")))
7039 (mkdir-p (string-append doc "/share"))
7040 (for-each (lambda (directory)
7041 (copy-recursively (string-append out directory)
7042 (string-append doc directory))
7043 (delete-file-recursively
7044 (string-append out directory)))
7045 '("/share/doc" "/share/gtk-doc"))
7046 #t))))))
7047 (propagated-inputs
7048 `(("glib" ,glib)))
7049 (native-inputs
7050 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7051 ("gtk-doc" ,gtk-doc)
7052 ("gobject-introspection" ,gobject-introspection)
7053 ("docbook-xml" ,docbook-xml)
7054 ("docbook-xsl" ,docbook-xsl)
7055 ("intltool" ,intltool)
7056 ("libxslt" ,libxslt)
7057 ("libxml2" ,libxml2)
7058 ("pkg-config" ,pkg-config)
7059 ("vala" ,vala)
7060 ;; For testing.
7061 ("python" ,python-wrapper)
7062 ("python-dbus" ,python-dbus)
7063 ("python-pygobject" ,python-pygobject)))
7064 (inputs
7065 `(("curl" ,curl)
7066 ("cyrus-sasl" ,cyrus-sasl)
7067 ("dbus-glib" ,dbus-glib)
7068 ("dnsmasq" ,dnsmasq)
7069 ("eudev" ,eudev)
7070 ("gnutls" ,gnutls)
7071 ("iptables" ,iptables)
7072 ("isc-dhcp" ,isc-dhcp)
7073 ("iwd" ,iwd) ; wpa_supplicant alternative
7074 ("jansson" ,jansson)
7075 ("libaudit" ,audit)
7076 ("libgcrypt" ,libgcrypt)
7077 ("libgudev" ,libgudev)
7078 ("libndp" ,libndp)
7079 ("libnl" ,libnl)
7080 ("libsoup" ,libsoup)
7081 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7082 ("modem-manager" ,modem-manager)
7083 ("newt" ,newt) ;for the 'nmtui' console interface
7084 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7085 ("polkit" ,polkit)
7086 ("ppp" ,ppp)
7087 ("readline" ,readline)
7088 ("util-linux" ,util-linux)
7089 ("elogind" ,elogind)))
7090 (synopsis "Network connection manager")
7091 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7092 (description
7093 "NetworkManager is a system network service that manages your network
7094 devices and connections, attempting to keep active network connectivity when
7095 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7096 devices, and provides VPN integration with a variety of different VPN
7097 services.")
7098 ;; “This NetworkManager project consists of the daemon, client tools, and
7099 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7100 ;; GPL-2.0+.”
7101 (license (list license:gpl2+
7102 license:lgpl2.1+))
7103 (properties '((upstream-name . "NetworkManager")))))
7104
7105 (define-public network-manager-openvpn
7106 (package
7107 (name "network-manager-openvpn")
7108 (version "1.8.12")
7109 (source (origin
7110 (method url-fetch)
7111 (uri (string-append
7112 "mirror://gnome/sources/NetworkManager-openvpn/"
7113 (version-major+minor version)
7114 "/NetworkManager-openvpn-" version ".tar.xz"))
7115 (sha256
7116 (base32
7117 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7118 (build-system gnu-build-system)
7119 (arguments
7120 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7121 #:phases
7122 (modify-phases %standard-phases
7123 (add-after 'configure 'patch-path
7124 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7125 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7126 "/sbin/openvpn"))
7127 (modprobe (string-append (assoc-ref inputs "kmod")
7128 "/bin/modprobe"))
7129 (pretty-ovpn (string-append "\"" ovpn "\"")))
7130 (for-each
7131 (lambda (file)
7132 (substitute* file
7133 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7134 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7135 (("\"/sbin/openvpn\"") pretty-ovpn)
7136 (("/sbin/modprobe") modprobe)))
7137 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7138 #t)))))
7139 (native-inputs
7140 `(("pkg-config" ,pkg-config)
7141 ("intltool" ,intltool)))
7142 (inputs
7143 `(("gtk+" ,gtk+)
7144 ("kmod" ,kmod)
7145 ("openvpn" ,openvpn)
7146 ("network-manager" ,network-manager)
7147 ("libnma" ,libnma)
7148 ("libsecret" ,libsecret)))
7149 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7150 (synopsis "OpenVPN plug-in for NetworkManager")
7151 (description
7152 "This extension of NetworkManager allows it to take care of connections
7153 to virtual private networks (VPNs) via OpenVPN.")
7154 (license license:gpl2+)
7155 (properties `((upstream-name . "NetworkManager-openvpn")))))
7156
7157 (define-public network-manager-vpnc
7158 (package
7159 (name "network-manager-vpnc")
7160 (version "1.2.6")
7161 (source (origin
7162 (method url-fetch)
7163 (uri (string-append
7164 "mirror://gnome/sources/NetworkManager-vpnc/"
7165 (version-major+minor version)
7166 "/NetworkManager-vpnc-" version ".tar.xz"))
7167 (sha256
7168 (base32
7169 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7170 (build-system gnu-build-system)
7171 (arguments
7172 `(#:configure-flags '("--enable-absolute-paths"
7173 "--localstatedir=/var"
7174 ;; libnm-glib has been removed from network-manager
7175 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7176 "--with-libnm-glib=no")
7177 #:phases
7178 (modify-phases %standard-phases
7179 (add-after 'configure 'patch-path
7180 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7181 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7182 "/sbin/vpnc"))
7183 (modprobe (string-append (assoc-ref inputs "kmod")
7184 "/bin/modprobe"))
7185 (pretty-ovpn (string-append "\"" vpnc "\"")))
7186 (substitute* "src/nm-vpnc-service.c"
7187 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7188 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7189 (("\"/sbin/vpnc\"") pretty-ovpn)
7190 (("/sbin/modprobe") modprobe)))
7191 #t)))))
7192 (native-inputs
7193 `(("pkg-config" ,pkg-config)
7194 ("intltool" ,intltool)))
7195 (inputs
7196 `(("gtk+" ,gtk+)
7197 ("kmod" ,kmod)
7198 ("vpnc" ,vpnc)
7199 ("network-manager" ,network-manager)
7200 ("libnma" ,libnma)
7201 ("libsecret" ,libsecret)))
7202 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7203 (synopsis "VPNC plug-in for NetworkManager")
7204 (description
7205 "Support for configuring virtual private networks based on VPNC.
7206 Compatible with Cisco VPN concentrators configured to use IPsec.")
7207 (license license:gpl2+)
7208 (properties `((upstream-name . "NetworkManager-vpnc")))))
7209
7210 (define-public network-manager-openconnect
7211 (package
7212 (name "network-manager-openconnect")
7213 (version "1.2.6")
7214 (source (origin
7215 (method url-fetch)
7216 (uri (string-append
7217 "mirror://gnome/sources/NetworkManager-openconnect/"
7218 (version-major+minor version)
7219 "/NetworkManager-openconnect-" version ".tar.xz"))
7220 (sha256
7221 (base32
7222 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7223 (build-system gnu-build-system)
7224 (arguments
7225 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7226 #:phases
7227 (modify-phases %standard-phases
7228 (add-after 'configure 'patch-path
7229 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7230 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7231 "/sbin/openconnect"))
7232 (modprobe (string-append (assoc-ref inputs "kmod")
7233 "/bin/modprobe"))
7234 (pretty-ovpn (string-append "\"" openconnect "\"")))
7235 (substitute* "src/nm-openconnect-service.c"
7236 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7237 (("/sbin/modprobe") modprobe)))
7238 #t)))))
7239 (native-inputs
7240 `(("intltool" ,intltool)
7241 ("libnma" ,libnma)
7242 ("pkg-config" ,pkg-config)))
7243 (inputs
7244 `(("gcr" ,gcr)
7245 ("gtk+" ,gtk+)
7246 ("kmod" ,kmod)
7247 ("libsecret" ,libsecret)
7248 ("libxml2" ,libxml2)
7249 ("lz4" ,lz4)
7250 ("network-manager" ,network-manager)
7251 ("openconnect" ,openconnect)))
7252 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7253 (synopsis "OpenConnect plug-in for NetworkManager")
7254 (description
7255 "This extension of NetworkManager allows it to take care of connections
7256 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7257 Cisco's AnyConnect SSL VPN.")
7258 (license license:gpl2+)
7259 (properties `((upstream-name . "NetworkManager-openconnect")
7260
7261 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7262 ;; file refers to account "nm-openconnect". Specify it here
7263 ;; so that 'network-manager-service-type' creates it.
7264 (user-accounts . ("nm-openconnect"))))))
7265
7266 (define-public mobile-broadband-provider-info
7267 (package
7268 (name "mobile-broadband-provider-info")
7269 (version "20190116")
7270 (source (origin
7271 (method url-fetch)
7272 (uri (string-append
7273 "mirror://gnome/sources/"
7274 "mobile-broadband-provider-info/" version "/"
7275 "mobile-broadband-provider-info-" version ".tar.xz"))
7276 (sha256
7277 (base32
7278 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7279 (build-system gnu-build-system)
7280 (arguments
7281 `(#:tests? #f)) ; no tests
7282 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7283 (synopsis "Database of broadband connection configuration")
7284 (description "Database of broadband connection configuration.")
7285 (license license:public-domain)))
7286
7287 (define-public network-manager-applet
7288 (package
7289 (name "network-manager-applet")
7290 (version "1.16.0")
7291 (source (origin
7292 (method url-fetch)
7293 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7294 (version-major+minor version) "/"
7295 "network-manager-applet-" version ".tar.xz"))
7296 (sha256
7297 (base32
7298 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
7299 (build-system meson-build-system)
7300 (arguments
7301 '(#:glib-or-gtk? #t))
7302 (native-inputs
7303 `(("intltool" ,intltool)
7304 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
7305 ("gobject-introspection" ,gobject-introspection)
7306 ("gtk-doc" ,gtk-doc)
7307 ("pkg-config" ,pkg-config)))
7308 (propagated-inputs
7309 ;; libnm-gtk.pc refers to all these.
7310 `(("dbus-glib" ,dbus-glib)
7311 ("gtk+" ,gtk+)
7312 ("network-manager" ,network-manager)
7313 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7314 ("libnma" ,libnma)))
7315 (inputs
7316 `(("gcr" ,gcr)
7317 ("libgudev" ,libgudev)
7318 ("libnotify" ,libnotify)
7319 ("libsecret" ,libsecret)
7320 ("libselinux" ,libselinux)
7321 ("jansson" ,jansson) ; for team support
7322 ("modem-manager" ,modem-manager)))
7323 (synopsis "Applet for managing network connections")
7324 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7325 (description
7326 "This package contains a systray applet for NetworkManager. It displays
7327 the available networks and allows users to easily switch between them.")
7328 (license license:gpl2+)))
7329
7330 (define-public libxml++
7331 (package
7332 (name "libxml++")
7333 (version "3.0.1")
7334 (source (origin
7335 (method url-fetch)
7336 (uri (string-append "mirror://gnome/sources/" name "/"
7337 (version-major+minor version) "/"
7338 name "-" version ".tar.xz"))
7339 (sha256
7340 (base32
7341 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
7342 (build-system gnu-build-system)
7343 ;; libxml++-3.0.pc refers to all these.
7344 (propagated-inputs
7345 `(("libxml2" ,libxml2)
7346 ("glibmm" ,glibmm)))
7347 (native-inputs
7348 `(("perl" ,perl)
7349 ("pkg-config" ,pkg-config)))
7350 (home-page "http://libxmlplusplus.sourceforge.net/")
7351 (synopsis "C++ wrapper for XML parser library libxml2")
7352 (description
7353 "This package provides a C++ wrapper for the XML parser library
7354 libxml2.")
7355 (license license:lgpl2.1+)))
7356
7357 (define-public libxml++-2
7358 (package
7359 (inherit libxml++)
7360 (name "libxml++")
7361 (version "2.40.1")
7362 (source (origin
7363 (method url-fetch)
7364 (uri (string-append "mirror://gnome/sources/" name "/"
7365 (version-major+minor version) "/"
7366 name "-" version ".tar.xz"))
7367 (sha256
7368 (base32
7369 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
7370
7371 (define-public gdm
7372 (package
7373 (name "gdm")
7374 (version "3.34.1")
7375 (source (origin
7376 (method url-fetch)
7377 (uri (string-append "mirror://gnome/sources/" name "/"
7378 (version-major+minor version) "/"
7379 name "-" version ".tar.xz"))
7380 (sha256
7381 (base32
7382 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
7383 (patches (search-patches "gdm-default-session.patch"))))
7384 (build-system glib-or-gtk-build-system)
7385 (arguments
7386 '(#:configure-flags
7387 `("--without-plymouth"
7388 "--disable-systemd-journal"
7389
7390 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
7391 ;; instead of having to replace it (i.e., stopping the mingetty
7392 ;; service for TTY 1 before starting GDM).
7393 "--with-initial-vt=7"
7394
7395 ;; Use '/etc/environment' for locale settings instead of the
7396 ;; systemd-specific '/etc/locale.conf'.
7397 "--with-lang-file=/etc/environment"
7398
7399 ,(string-append "--with-udevdir="
7400 (assoc-ref %outputs "out") "/lib/udev")
7401
7402 "--localstatedir=/var"
7403 ,(string-append "--with-default-path="
7404 (string-join '("/run/setuid-programs"
7405 "/run/current-system/profile/bin"
7406 "/run/current-system/profile/sbin")
7407 ":"))
7408 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
7409 ;; XDG_DATA_DIRS so that it finds its schemas.
7410 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
7411 #:phases
7412 (modify-phases %standard-phases
7413 (add-before
7414 'configure 'pre-configure
7415 (lambda* (#:key inputs outputs #:allow-other-keys)
7416 ;; We don't have <systemd/sd-daemon.h>.
7417 (substitute* '("common/gdm-log.c"
7418 "daemon/gdm-server.c"
7419 "daemon/gdm-session-worker.c"
7420 "daemon/gdm-session-worker-job.c")
7421 (("#include <systemd/sd-daemon\\.h>") ""))
7422 ;; Use elogind for sd-login.
7423 (substitute* '("common/gdm-common.c"
7424 "daemon/gdm-local-display-factory.c"
7425 "daemon/gdm-manager.c"
7426 "libgdm/gdm-user-switching.c")
7427 (("#include <systemd/sd-login\\.h>")
7428 "#include <elogind/sd-login.h>"))
7429 ;; Check for elogind.
7430 (substitute* '("configure")
7431 (("libsystemd")
7432 "libelogind"))
7433 ;; Look for system-installed sessions in
7434 ;; /run/current-system/profile/share.
7435 (substitute* '("libgdm/gdm-sessions.c"
7436 "daemon/gdm-session.c"
7437 "daemon/gdm-display.c"
7438 "daemon/gdm-launch-environment.c")
7439 (("DATADIR \"/x")
7440 "\"/run/current-system/profile/share/x")
7441 (("DATADIR \"/wayland")
7442 "\"/run/current-system/profile/share/wayland")
7443 (("DATADIR \"/gnome")
7444 "\"/run/current-system/profile/share/gnome"))
7445 (let ((propagate '("GDM_CUSTOM_CONF"
7446 "GDM_DBUS_DAEMON"
7447 "GDM_X_SERVER"
7448 "GDM_X_SESSION"
7449 ;; XXX: Remove this once GNOME Shell is
7450 ;; a dependency of GDM.
7451 "XDG_DATA_DIRS")))
7452 (substitute* "daemon/gdm-session.c"
7453 (("set_up_session_environment \\(self\\);")
7454 (apply string-append
7455 "set_up_session_environment (self);\n"
7456 (map (lambda (name)
7457 (string-append
7458 "gdm_session_set_environment_variable "
7459 "(self, \"" name "\","
7460 "g_getenv (\"" name "\"));\n"))
7461 propagate)))))
7462 ;; Find the configuration file using an environment variable.
7463 (substitute* '("common/gdm-settings.c")
7464 (("GDM_CUSTOM_CONF")
7465 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7466 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7467 " : GDM_CUSTOM_CONF)")))
7468 ;; Use service-supplied path to X.
7469 (substitute* '("daemon/gdm-server.c")
7470 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7471 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
7472 (substitute* '("daemon/gdm-wayland-session.c"
7473 "daemon/gdm-x-session.c")
7474 (("\"dbus-daemon\"")
7475 "g_getenv (\"GDM_DBUS_DAEMON\")")
7476 (("X_SERVER")
7477 "g_getenv (\"GDM_X_SERVER\")")
7478 (("GDMCONFDIR \"/Xsession\"")
7479 "g_getenv (\"GDM_X_SESSION\")"))
7480 ;; Use an absolute path for GNOME Session.
7481 (substitute* "daemon/gdm-launch-environment.c"
7482 (("\"gnome-session\"")
7483 (string-append "\"" (assoc-ref inputs "gnome-session")
7484 "/bin/gnome-session\"")))
7485 ;; Do not automatically select the placeholder session.
7486 (substitute* "daemon/gdm-session.c"
7487 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7488 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7489 "(g_strcmp0(search_dirs[i], \""
7490 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7491 "\") == 0 && "
7492 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7493 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
7494 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
7495 #t))
7496 ;; GDM requires that there be at least one desktop entry
7497 ;; file. This phase installs a hidden one that simply
7498 ;; fails. This enables users to use GDM with a
7499 ;; '~/.xsession' script with no other desktop entry files.
7500 ;; See <https://bugs.gnu.org/35068>.
7501 (add-after 'install 'install-placeholder-desktop-entry
7502 (lambda* (#:key inputs outputs #:allow-other-keys)
7503 (let* ((out (assoc-ref outputs "out"))
7504 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7505 (fail (string-append sessions "/fail.desktop")))
7506 (mkdir-p sessions)
7507 (with-output-to-file fail
7508 (lambda ()
7509 (for-each
7510 display
7511 '("[Desktop Entry]\n"
7512 "Encoding=UTF-8\n"
7513 "Type=Application\n"
7514 "Name=Fail\n"
7515 "Comment=This session fails immediately.\n"
7516 "NoDisplay=true\n"
7517 "Exec=false\n"))))
7518 #t)))
7519 ;; GDM needs GNOME Session to run these applications. We link
7520 ;; their autostart files in `share/gdm/greeter/autostart'
7521 ;; because GDM explicitly tells GNOME Session to look there.
7522 ;;
7523 ;; XXX: GNOME Shell should be linked here too, but currently
7524 ;; GNOME Shell depends on GDM.
7525 (add-after 'install 'link-autostart-files
7526 (lambda* (#:key inputs outputs #:allow-other-keys)
7527 (let* ((out (assoc-ref outputs "out"))
7528 (autostart (string-append out "/share/gdm/"
7529 "greeter/autostart"))
7530 (settings (assoc-ref inputs "gnome-settings-daemon")))
7531 (mkdir-p autostart)
7532 (with-directory-excursion autostart
7533 (for-each (lambda (desktop)
7534 (symlink desktop (basename desktop)))
7535 (find-files (string-append settings "/etc/xdg"))))
7536 #t))))))
7537 (native-inputs
7538 `(("dconf" ,dconf)
7539 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7540 ("gobject-introspection" ,gobject-introspection)
7541 ("intltool" ,intltool)
7542 ("itstool" ,itstool)
7543 ("pkg-config" ,pkg-config)
7544 ("xmllint" ,libxml2)))
7545 (inputs
7546 `(("accountsservice" ,accountsservice)
7547 ("check" ,check) ; for testing
7548 ("elogind" ,elogind)
7549 ("gnome-session" ,gnome-session)
7550 ("gnome-settings-daemon" ,gnome-settings-daemon)
7551 ("gtk+" ,gtk+)
7552 ("iso-codes" ,iso-codes)
7553 ("libcanberra" ,libcanberra)
7554 ("linux-pam" ,linux-pam)))
7555 (synopsis "Display manager for GNOME")
7556 (home-page "https://wiki.gnome.org/Projects/GDM/")
7557 (description
7558 "GNOME Display Manager is a system service that is responsible for
7559 providing graphical log-ins and managing local and remote displays.")
7560 (license license:gpl2+)))
7561
7562 (define-public libgtop
7563 (package
7564 (name "libgtop")
7565 (version "2.40.0")
7566 (source (origin
7567 (method url-fetch)
7568 (uri (string-append "mirror://gnome/sources/libgtop/"
7569 (version-major+minor version) "/"
7570 "libgtop-" version ".tar.xz"))
7571 (sha256
7572 (base32
7573 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7574 (build-system gnu-build-system)
7575 (native-inputs
7576 `(("gobject-introspection" ,gobject-introspection)
7577 ("intltool" ,intltool)
7578 ("perl" ,perl)
7579 ("pkg-config" ,pkg-config)))
7580 (propagated-inputs
7581 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7582 (synopsis "Portable system access library")
7583 (home-page "https://www.gnome.org/")
7584 (description
7585 "LibGTop is a library to get system specific data such as CPU and memory
7586 usage and information about running processes.")
7587 (license license:gpl2+)))
7588
7589 (define-public gnome-bluetooth
7590 (package
7591 (name "gnome-bluetooth")
7592 (version "3.34.0")
7593 (source (origin
7594 (method url-fetch)
7595 (uri (string-append "mirror://gnome/sources/" name "/"
7596 (version-major+minor version) "/"
7597 name "-" version ".tar.xz"))
7598 (sha256
7599 (base32
7600 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
7601 (build-system meson-build-system)
7602 (native-inputs
7603 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7604 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7605 ("gobject-introspection" ,gobject-introspection)
7606 ("intltool" ,intltool)
7607 ("pkg-config" ,pkg-config)
7608 ("xmllint" ,libxml2)))
7609 (propagated-inputs
7610 ;; gnome-bluetooth-1.0.pc refers to all these.
7611 `(("glib" ,glib)
7612 ("gtk+" ,gtk+)))
7613 (inputs
7614 `(("eudev" ,eudev)
7615 ("libcanberra" ,libcanberra)
7616 ("libnotify" ,libnotify)))
7617 (synopsis "GNOME Bluetooth subsystem")
7618 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7619 (description
7620 "This package contains tools for managing and manipulating Bluetooth
7621 devices using the GNOME desktop.")
7622 (license license:lgpl2.1+)))
7623
7624 (define-public gnome-control-center
7625 (package
7626 (name "gnome-control-center")
7627 (version "3.34.2")
7628 (source (origin
7629 (method url-fetch)
7630 (uri (string-append "mirror://gnome/sources/" name "/"
7631 (version-major+minor version) "/"
7632 name "-" version ".tar.xz"))
7633 (sha256
7634 (base32
7635 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7636 (build-system meson-build-system)
7637 (arguments
7638 '(#:glib-or-gtk? #t
7639 #:configure-flags
7640 (list "-Dcheese=false"
7641 (string-append "-Dgnome_session_libexecdir="
7642 (assoc-ref %build-inputs "gnome-session")
7643 "/libexec"))
7644 #:phases
7645 (modify-phases %standard-phases
7646 (add-before 'configure 'patch-paths
7647 (lambda* (#:key inputs #:allow-other-keys)
7648 (let ((libc (assoc-ref inputs "libc"))
7649 (tzdata (assoc-ref inputs "tzdata"))
7650 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7651 (nm-applet (assoc-ref inputs "network-manager-applet"))
7652 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7653 (substitute* "panels/datetime/tz.h"
7654 (("/usr/share/zoneinfo/zone.tab")
7655 (string-append tzdata "/share/zoneinfo/zone.tab")))
7656 (substitute* "tests/datetime/test-endianess.c"
7657 (("/usr/share/locale")
7658 (string-append libc "/share/locale")))
7659 (substitute* "panels/region/cc-region-panel.c"
7660 (("\"gkbd-keyboard-display")
7661 (string-append "\"" libgnomekbd
7662 "/bin/gkbd-keyboard-display")))
7663 (substitute* '("panels/network/net-device-wifi.c"
7664 "panels/network/net-device.c"
7665 "panels/network/connection-editor/net-connection-editor.c")
7666 (("\"nm-connection-editor")
7667 (string-append "\"" nm-applet
7668 "/bin/nm-connection-editor")))
7669 (substitute* '("panels/user-accounts/run-passwd.c")
7670 (("/usr/bin/passwd")
7671 "/run/setuid-programs/passwd"))
7672 (substitute* "panels/info/cc-info-overview-panel.c"
7673 (("DATADIR \"/gnome/gnome-version.xml\"")
7674 (string-append "\"" gnome-desktop
7675 "/share/gnome/gnome-version.xml\"")))
7676 #t)))
7677 (add-after 'unpack 'skip-gtk-update-icon-cache
7678 ;; Don't create 'icon-theme.cache'.
7679 (lambda _
7680 (substitute* "build-aux/meson/meson_post_install.py"
7681 (("gtk-update-icon-cache") (which "true")))
7682 #t)))))
7683 (native-inputs
7684 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7685 ("intltool" ,intltool)
7686 ("pkg-config" ,pkg-config)
7687 ("xsltproc" ,libxslt)
7688 ;; For tests
7689 ("hicolor-icon-theme" ,hicolor-icon-theme)
7690 ("python-dbusmock" ,python-dbusmock)
7691 ("xorg-server" ,xorg-server-for-tests)))
7692 (inputs
7693 `(("accountsservice" ,accountsservice)
7694 ("clutter-gtk" ,clutter-gtk)
7695 ("colord-gtk" ,colord-gtk)
7696 ("cups" ,cups)
7697 ("dconf" ,dconf)
7698 ("docbook-xsl" ,docbook-xsl)
7699 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7700 ("gnome-bluetooth" ,gnome-bluetooth)
7701 ("gnome-desktop" ,gnome-desktop)
7702 ("gnome-online-accounts" ,gnome-online-accounts)
7703 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7704 ("gnome-session" ,gnome-session)
7705 ("gnome-settings-daemon" ,gnome-settings-daemon)
7706 ("grilo" ,grilo)
7707 ("gsound" ,gsound)
7708 ("ibus" ,ibus)
7709 ("libcanberra" ,libcanberra)
7710 ("libgnomekbd" ,libgnomekbd)
7711 ("libgudev" ,libgudev)
7712 ("libgtop" ,libgtop)
7713 ("libnma" ,libnma)
7714 ("libpwquality" ,libpwquality)
7715 ("libsecret" ,libsecret)
7716 ("libsoup" ,libsoup)
7717 ("libxml2" ,libxml2)
7718 ("libwacom" ,libwacom)
7719 ("mesa" ,mesa)
7720 ("mit-krb5" ,mit-krb5)
7721 ("modem-manager" ,modem-manager)
7722 ("network-manager-applet" ,network-manager-applet)
7723 ("polkit" ,polkit)
7724 ("pulseaudio" ,pulseaudio)
7725 ("smbclient" ,samba)
7726 ("tzdata" ,tzdata)
7727 ("udisks" ,udisks)
7728 ("upower" ,upower)))
7729 (synopsis "Utilities to configure the GNOME desktop")
7730 (home-page "https://www.gnome.org/")
7731 (description
7732 "This package contains configuration applets for the GNOME desktop,
7733 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7734 properties, sound setup, desktop theme and background, user interface
7735 properties, screen resolution, and other GNOME parameters.")
7736 (license license:gpl2+)))
7737
7738 (define-public gnome-shell
7739 (package
7740 (name "gnome-shell")
7741 (version "3.34.2")
7742 (source (origin
7743 (method url-fetch)
7744 (uri (string-append "mirror://gnome/sources/" name "/"
7745 (version-major+minor version) "/"
7746 name "-" version ".tar.xz"))
7747 (sha256
7748 (base32
7749 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7750 (patches (search-patches "gnome-shell-theme.patch"
7751 "gnome-shell-disable-test.patch"))
7752 (modules '((guix build utils)))
7753 (snippet
7754 #~(begin
7755 ;; Copy images for use on the GDM log-in screen.
7756 (copy-file #$(file-append %artwork-repository
7757 "/slim/0.x/background.png")
7758 "data/theme/guix-background.png")
7759 (copy-file #$(file-append %artwork-repository
7760 "/logo/Guix-horizontal-white.svg")
7761 "data/theme/guix-logo.svg")
7762 #t))))
7763 (build-system meson-build-system)
7764 (arguments
7765 `(#:glib-or-gtk? #t
7766 #:disallowed-references ((,glib "bin")
7767 ,inkscape ,libxslt
7768 ,ruby-sass)
7769 #:configure-flags
7770 (list "-Dsystemd=false"
7771 ;; Otherwise, the RUNPATH will lack the final path component.
7772 (string-append "-Dc_link_args=-Wl,-rpath="
7773 (assoc-ref %outputs "out")
7774 "/lib/gnome-shell"))
7775
7776 #:modules ((guix build meson-build-system)
7777 (guix build utils)
7778 (srfi srfi-1))
7779
7780 #:phases
7781 (modify-phases %standard-phases
7782 (add-after 'unpack 'fix-keysdir
7783 (lambda* (#:key outputs #:allow-other-keys)
7784 (let* ((out (assoc-ref outputs "out"))
7785 (keysdir (string-append
7786 out "/share/gnome-control-center/keybindings")))
7787 (substitute* "meson.build"
7788 (("keysdir =.*")
7789 (string-append "keysdir = '" keysdir "'\n")))
7790 #t)))
7791 (add-before 'configure 'convert-logo-to-png
7792 (lambda* (#:key inputs #:allow-other-keys)
7793 ;; Convert the logo from SVG to PNG.
7794 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7795 "data/theme/guix-logo.svg")))
7796 (add-before 'configure 'record-absolute-file-names
7797 (lambda* (#:key inputs #:allow-other-keys)
7798 (substitute* "js/misc/ibusManager.js"
7799 (("'ibus-daemon'")
7800 (string-append "'" (assoc-ref inputs "ibus")
7801 "/bin/ibus-daemon'")))
7802 (substitute* "js/ui/status/keyboard.js"
7803 (("'gkbd-keyboard-display'")
7804 (string-append "'" (assoc-ref inputs "libgnomekbd")
7805 "/bin/gkbd-keyboard-display'")))
7806 #t))
7807 (add-before 'check 'pre-check
7808 (lambda* (#:key inputs #:allow-other-keys)
7809 ;; Tests require a running X server.
7810 (system "Xvfb :1 &")
7811 (setenv "DISPLAY" ":1")
7812 #t))
7813 (add-after 'install 'wrap-programs
7814 (lambda* (#:key inputs outputs #:allow-other-keys)
7815 (let ((out (assoc-ref outputs "out"))
7816 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7817 (python-path (getenv "PYTHONPATH")))
7818 (wrap-program (string-append out "/bin/gnome-shell")
7819 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7820 ;; FIXME: gnome-shell loads these libraries with unqualified
7821 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7822 ;; alternative might be to patch gnome-shell.
7823 `("LD_LIBRARY_PATH" ":" prefix
7824 ,(map (lambda (pkg)
7825 (string-append (assoc-ref inputs pkg) "/lib"))
7826 '("gdk-pixbuf"
7827 "gnome-bluetooth" "librsvg" "libgweather"))))
7828 (for-each
7829 (lambda (prog)
7830 (wrap-program (string-append out "/bin/" prog)
7831 `("PYTHONPATH" ":" prefix (,python-path))
7832 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7833 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7834 #t)))
7835 (replace 'glib-or-gtk-wrap
7836 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7837 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7838 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7839 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7840 ;; phase. Fix that since we don't need these.
7841 (wrap #:inputs (fold alist-delete inputs
7842 '("inkscape" "intltool" "glib:bin"))
7843 #:outputs outputs)))))))
7844 (native-inputs
7845 `(("asciidoc" ,asciidoc)
7846 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7847 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7848 ("gobject-introspection" ,gobject-introspection)
7849 ("inkscape" ,inkscape)
7850 ("intltool" ,intltool)
7851 ("pkg-config" ,pkg-config)
7852 ("python" ,python)
7853 ("ruby-sass" ,ruby-sass)
7854 ("sassc" ,sassc)
7855 ("xsltproc" ,libxslt)
7856 ;; For tests
7857 ("xorg-server" ,xorg-server-for-tests)))
7858 (inputs
7859 `(("accountsservice" ,accountsservice)
7860 ("caribou" ,caribou)
7861 ("docbook-xsl" ,docbook-xsl)
7862 ("evolution-data-server" ,evolution-data-server)
7863 ("gcr" ,gcr)
7864 ("gdm" ,gdm)
7865 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7866 ("gjs" ,gjs)
7867 ("gnome-autoar" ,gnome-autoar)
7868 ("gnome-bluetooth" ,gnome-bluetooth)
7869 ("gnome-desktop" ,gnome-desktop)
7870 ("gnome-settings-daemon" ,gnome-settings-daemon)
7871 ("gst-plugins-base" ,gst-plugins-base)
7872 ("ibus" ,ibus)
7873 ("libcanberra" ,libcanberra)
7874 ("libcroco" ,libcroco)
7875 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7876 ("libgweather" ,libgweather)
7877 ("libnma" ,libnma)
7878 ("libsoup" ,libsoup)
7879 ("mesa-headers" ,mesa-headers)
7880 ("mutter" ,mutter)
7881 ("network-manager-applet" ,network-manager-applet)
7882 ("polkit" ,polkit)
7883 ("pulseaudio" ,pulseaudio)
7884 ("python-pygobject" ,python-pygobject)
7885 ("startup-notification" ,startup-notification)
7886 ("telepathy-logger" ,telepathy-logger)
7887 ("upower" ,upower)
7888 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7889 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7890 ("librsvg" ,librsvg)
7891 ("geoclue" ,geoclue)))
7892 (synopsis "Desktop shell for GNOME")
7893 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7894 (description
7895 "GNOME Shell provides core user interface functions for the GNOME desktop,
7896 like switching to windows and launching applications.")
7897 (license license:gpl2+)))
7898
7899 (define-public gtk-vnc
7900 (package
7901 (name "gtk-vnc")
7902 (version "0.9.0")
7903 (source
7904 (origin
7905 (method url-fetch)
7906 (uri (string-append "mirror://gnome/sources/" name "/"
7907 (version-major+minor version) "/"
7908 name "-" version ".tar.xz"))
7909 (sha256
7910 (base32
7911 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7912 (build-system gnu-build-system)
7913 (arguments
7914 '(#:configure-flags '("--with-gtk=3.0")))
7915 (propagated-inputs
7916 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7917 (inputs
7918 `(("cyrus-sasl" ,cyrus-sasl)
7919 ("gnutls" ,gnutls)
7920 ("libgcrypt" ,libgcrypt)
7921 ("pulseaudio" ,pulseaudio)))
7922 (native-inputs
7923 `(("glib:bin" ,glib "bin")
7924 ("gobject-introspection" ,gobject-introspection)
7925 ("intltool" ,intltool)
7926 ("pkg-config" ,pkg-config)
7927 ("python-wrapper" ,python-wrapper)
7928 ("vala" ,vala)))
7929 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7930 (synopsis "VNC viewer widget for GTK+")
7931 (description
7932 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7933 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7934 GTK-VNC implements client side RFB protocol and authentication extensions such
7935 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7936 (license license:lgpl2.1+)))
7937
7938 (define-public gnome-autoar
7939 (package
7940 (name "gnome-autoar")
7941 (version "0.2.4")
7942 (source (origin
7943 (method url-fetch)
7944 (uri (string-append "mirror://gnome/sources/" name "/"
7945 (version-major+minor version) "/"
7946 name "-" version ".tar.xz"))
7947 (sha256
7948 (base32
7949 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
7950 (build-system glib-or-gtk-build-system)
7951 (native-inputs
7952 `(("gobject-introspection" ,gobject-introspection)
7953 ("pkg-config" ,pkg-config)))
7954 (propagated-inputs
7955 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
7956 (inputs
7957 `(("gtk+" ,gtk+)))
7958 (synopsis "Archives integration support for GNOME")
7959 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7960 (description
7961 "GNOME Autoar is a library which makes creating and extracting archives
7962 easy, safe, and automatic.")
7963 (license license:lgpl2.1+)))
7964
7965 (define-public tracker
7966 (package
7967 (name "tracker")
7968 (version "2.3.4")
7969 (source (origin
7970 (method url-fetch)
7971 (uri (string-append "mirror://gnome/sources/tracker/"
7972 (version-major+minor version) "/"
7973 "tracker-" version ".tar.xz"))
7974 (sha256
7975 (base32
7976 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7977 (build-system meson-build-system)
7978 (arguments
7979 `(#:glib-or-gtk? #t
7980 #:configure-flags
7981 ;; Otherwise, the RUNPATH will lack the final path component.
7982 (list (string-append "-Dc_link_args=-Wl,-rpath="
7983 (assoc-ref %outputs "out") "/lib:"
7984 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7985 #:phases
7986 (modify-phases %standard-phases
7987 (add-before 'check 'pre-check
7988 (lambda _
7989 ;; Some tests expect to write to $HOME.
7990 (setenv "HOME" "/tmp")
7991 #t)))))
7992 (native-inputs
7993 `(("glib:bin" ,glib "bin")
7994 ("gobject-introspection" ,gobject-introspection)
7995 ("python-pygobject" ,python-pygobject)
7996 ("intltool" ,intltool)
7997 ("pkg-config" ,pkg-config)
7998 ("vala" ,vala)))
7999 (inputs
8000 `(("dbus" ,dbus)
8001 ("sqlite" ,sqlite)
8002 ("libxml2" ,libxml2)
8003 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8004 ("json-glib" ,json-glib)
8005 ("libsoup" ,libsoup)))
8006 (synopsis "Metadata database, indexer and search tool")
8007 (home-page "https://wiki.gnome.org/Projects/Tracker")
8008 (description
8009 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8010
8011 It is a middleware component aimed at desktop application developers who want
8012 their apps to browse and search user content. It's not designed to be used
8013 directly by desktop users, but it provides a commandline tool named
8014 @command{tracker} for the adventurous.
8015
8016 Tracker allows your application to instantly perform full-text searches across
8017 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8018 example. This is achieved by indexing the user's home directory in the
8019 background.
8020
8021 Tracker also allows your application to query and list content that the user
8022 has stored. For example, GNOME Music displays all the music files that are
8023 found by Tracker. This means that GNOME Music doesn't need to maintain a
8024 database of its own.
8025
8026 If you need to go beyond simple searches, Tracker is also a linked data
8027 endpoint and it understands SPARQL. ")
8028 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8029 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8030 ;; libstemmer is bsd-3 and the rest is gpl2+.
8031 (license (list license:gpl2+
8032 license:bsd-3
8033 license:lgpl2.1+))))
8034
8035 (define-public tracker-miners
8036 (package
8037 (name "tracker-miners")
8038 (version "2.3.3")
8039 (source (origin
8040 (method url-fetch)
8041 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8042 (version-major+minor version)
8043 "/tracker-miners-" version ".tar.xz"))
8044 (sha256
8045 (base32
8046 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
8047 (build-system meson-build-system)
8048 (arguments
8049 `(#:glib-or-gtk? #t
8050 #:configure-flags
8051 (list "-Dminer_rss=false" ; libgrss is required.
8052 ;; Ensure the RUNPATH contains all installed library locations.
8053 (string-append "-Dc_link_args=-Wl,-rpath="
8054 (assoc-ref %outputs "out")
8055 "/lib/tracker-miners-2.0")
8056 ;; TODO: Enable functional tests. Currently, the following error
8057 ;; appears:
8058 ;; Exception: The functional tests require DConf to be the default
8059 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8060 "-Dfunctional_tests=false")))
8061 (native-inputs
8062 `(("dbus" ,dbus)
8063 ("intltool" ,intltool)
8064 ("glib:bin" ,glib "bin")
8065 ("gobject-introspection" ,gobject-introspection)
8066 ("pkg-config" ,pkg-config)
8067 ("python-pygobject" ,python-pygobject)))
8068 (inputs
8069 `(("exempi" ,exempi)
8070 ("ffmpeg" ,ffmpeg)
8071 ("flac" ,flac)
8072 ("giflib" ,giflib)
8073 ("glib" ,glib)
8074 ("gstreamer" ,gstreamer)
8075 ("icu4c" ,icu4c)
8076 ("libcue" ,libcue)
8077 ("libexif" ,libexif)
8078 ("libgsf" ,libgsf)
8079 ("libgxps" ,libgxps)
8080 ("libiptcdata" ,libiptcdata)
8081 ("libjpeg" ,libjpeg-turbo)
8082 ("libosinfo" ,libosinfo)
8083 ("libpng" ,libpng)
8084 ("libseccomp" ,libseccomp)
8085 ("libtiff" ,libtiff)
8086 ("libvorbis" ,libvorbis)
8087 ("libxml2" ,libxml2)
8088 ("poppler" ,poppler)
8089 ("taglib" ,taglib)
8090 ("totem-pl-parser" ,totem-pl-parser)
8091 ("tracker" ,tracker)
8092 ("upower" ,upower)
8093 ("zlib" ,zlib)))
8094 (synopsis "Metadata database, indexer and search tool")
8095 (home-page "https://wiki.gnome.org/Projects/Tracker")
8096 (description
8097 "Tracker is an advanced framework for first class objects with associated
8098 metadata and tags. It provides a one stop solution for all metadata, tags,
8099 shared object databases, search tools and indexing.")
8100 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8101 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8102 (license (list license:gpl2+
8103 license:lgpl2.1+
8104 license:lgpl2.0+))))
8105
8106 (define-public nautilus
8107 (package
8108 (name "nautilus")
8109 (version "3.34.2")
8110 (source (origin
8111 (method url-fetch)
8112 (uri (string-append "mirror://gnome/sources/" name "/"
8113 (version-major+minor version) "/"
8114 name "-" version ".tar.xz"))
8115 (sha256
8116 (base32
8117 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8118 (build-system meson-build-system)
8119 (arguments
8120 '(#:glib-or-gtk? #t
8121 #:phases
8122 (modify-phases %standard-phases
8123 (add-after 'unpack 'skip-gtk-update-icon-cache
8124 ;; Don't create 'icon-theme.cache'.
8125 (lambda _
8126 (substitute* "build-aux/meson/postinstall.py"
8127 (("gtk-update-icon-cache") "true"))
8128 #t)))
8129 ;; XXX: FAIL: check-nautilus
8130 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8131 #:tests? #f))
8132 (native-inputs
8133 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8134 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8135 ("gobject-introspection" ,gobject-introspection)
8136 ("intltool" ,intltool)
8137 ("pkg-config" ,pkg-config)))
8138 (inputs
8139 `(("dconf" ,dconf)
8140 ("gexiv2" ,gexiv2)
8141 ("gvfs" ,gvfs)
8142 ("exempi" ,exempi)
8143 ("gnome-desktop" ,gnome-desktop)
8144 ("gnome-autoar" ,gnome-autoar)
8145 ("gst-plugins-base" ,gst-plugins-base)
8146 ("libseccomp" ,libseccomp)
8147 ("libselinux" ,libselinux)
8148 ("tracker" ,tracker)
8149 ("tracker-miners" ,tracker-miners)
8150 ;; XXX: gtk+ is required by libnautilus-extension.pc
8151 ;;
8152 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8153 ;; package. See:
8154 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8155 ("gtk+" ,gtk+)
8156 ("libexif" ,libexif)
8157 ("libxml2" ,libxml2)))
8158 (synopsis "File manager for GNOME")
8159 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8160 (description
8161 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8162 design and behaviour, giving the user a simple way to navigate and manage its
8163 files.")
8164 (license license:gpl2+)))
8165
8166 (define-public baobab
8167 (package
8168 (name "baobab")
8169 (version "3.32.0")
8170 (source (origin
8171 (method url-fetch)
8172 (uri (string-append
8173 "mirror://gnome/sources/" name "/"
8174 (version-major+minor version) "/"
8175 name "-" version ".tar.xz"))
8176 (sha256
8177 (base32
8178 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
8179 (build-system meson-build-system)
8180 (arguments
8181 '(#:glib-or-gtk? #t))
8182 (native-inputs
8183 `(("intltool" ,intltool)
8184 ("pkg-config" ,pkg-config)
8185 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8186 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8187 ("itstool" ,itstool)
8188 ("xmllint" ,libxml2)
8189 ("glib" ,glib "bin")
8190 ("vala" ,vala)))
8191 (inputs
8192 `(("gtk+" ,gtk+)))
8193 (synopsis "Disk usage analyzer for GNOME")
8194 (description
8195 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8196 usage in the GNOME desktop environment. It can easily scan device volumes or
8197 a specific user-requested directory branch (local or remote). Once the scan
8198 is complete it provides a graphical representation of each selected folder.")
8199 (home-page "https://wiki.gnome.org/Apps/Baobab")
8200 (license license:gpl2+)))
8201
8202 (define-public gnome-backgrounds
8203 (package
8204 (name "gnome-backgrounds")
8205 (version "3.34.0")
8206 (source
8207 (origin
8208 (method url-fetch)
8209 (uri (string-append "mirror://gnome/sources/" name "/"
8210 (version-major+minor version) "/"
8211 name "-" version ".tar.xz"))
8212 (sha256
8213 (base32
8214 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8215 (build-system meson-build-system)
8216 (native-inputs
8217 `(("intltool" ,intltool)))
8218 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8219 (synopsis "Background images for the GNOME desktop")
8220 (description
8221 "GNOME backgrounds package contains a collection of graphics files which
8222 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8223 the package creates the proper framework and directory structure so that you
8224 can add your own files to the collection.")
8225 (license (list license:gpl2+
8226 license:cc-by2.0
8227 license:cc-by-sa2.0
8228 license:cc-by-sa3.0))))
8229
8230 (define-public gnome-screenshot
8231 (package
8232 (name "gnome-screenshot")
8233 (version "3.34.0")
8234 (source
8235 (origin
8236 (method url-fetch)
8237 (uri (string-append "mirror://gnome/sources/" name "/"
8238 (version-major+minor version) "/"
8239 name "-" version ".tar.xz"))
8240 (sha256
8241 (base32
8242 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8243 (build-system meson-build-system)
8244 (arguments
8245 '(#:phases
8246 (modify-phases %standard-phases
8247 (add-after 'unpack 'skip-gtk-update-icon-cache
8248 ;; Don't create 'icon-theme.cache'.
8249 (lambda _
8250 (substitute* "build-aux/postinstall.py"
8251 (("gtk-update-icon-cache") "true"))
8252 #t)))))
8253 (native-inputs
8254 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8255 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8256 ("intltool" ,intltool)
8257 ("appstream-glib" ,appstream-glib)
8258 ("pkg-config" ,pkg-config)))
8259 (inputs
8260 `(("gtk+" ,gtk+)
8261 ("libcanberra" ,libcanberra)
8262 ("libx11" ,libx11)
8263 ("libxext" ,libxext)))
8264 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8265 (synopsis "Take pictures of your screen")
8266 (description
8267 "GNOME Screenshot is a utility used for taking screenshots of the entire
8268 screen, a window or a user defined area of the screen, with optional
8269 beautifying border effects.")
8270 (license license:gpl2+)))
8271
8272 (define-public dconf-editor
8273 (package
8274 (name "dconf-editor")
8275 (version "3.34.2")
8276 (source
8277 (origin
8278 (method url-fetch)
8279 (uri (string-append "mirror://gnome/sources/" name "/"
8280 (version-major+minor version) "/"
8281 name "-" version ".tar.xz"))
8282 (sha256
8283 (base32
8284 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8285 (build-system meson-build-system)
8286 (native-inputs
8287 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8288 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8289 ("intltool" ,intltool)
8290 ("pkg-config" ,pkg-config)
8291 ("vala" ,vala)))
8292 (inputs
8293 `(("dconf" ,dconf)
8294 ("gtk+" ,gtk+)
8295 ("libxml2" ,libxml2)))
8296 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
8297 (synopsis "Graphical editor for GNOME's dconf configuration system")
8298 (description
8299 "Dconf-editor is a graphical tool for browsing and editing the dconf
8300 configuration system for GNOME. It allows users to configure desktop
8301 software that do not provide their own configuration interface.")
8302 (license license:lgpl2.1+)))
8303
8304 (define-public gnome-default-applications
8305 (package
8306 (name "gnome-default-applications")
8307 (version "0")
8308 (build-system trivial-build-system)
8309 (source #f)
8310 (propagated-inputs
8311 `(("nautilus" ,nautilus)
8312 ("evince" ,evince)))
8313 (arguments
8314 `(#:modules ((guix build utils))
8315 #:builder
8316 (begin
8317 (use-modules (guix build utils))
8318 (let* ((out (assoc-ref %outputs "out"))
8319 (apps (string-append out "/share/applications")))
8320 (mkdir-p apps)
8321 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
8322 (lambda (port)
8323 (format port "[Default Applications]\n")
8324 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
8325 (format port "application/pdf=evince.desktop\n")
8326 (format port "application/postscript=evince.desktop\n")))
8327 #t))))
8328 (synopsis "Default MIME type associations for the GNOME desktop")
8329 (description
8330 "Given many installed packages which might handle a given MIME type, a
8331 user running the GNOME desktop probably has some preferences: for example,
8332 that folders be opened by default by the Nautilus file manager, not the Baobab
8333 disk usage analyzer. This package establishes that set of default MIME type
8334 associations for GNOME.")
8335 (license license:gpl3+)
8336 (home-page #f)))
8337
8338 (define-public libgovirt
8339 (package
8340 (name "libgovirt")
8341 (version "0.3.6")
8342 (source (origin
8343 (method url-fetch)
8344 (uri (string-append "mirror://gnome/sources/" name "/"
8345 (version-major+minor version) "/"
8346 name "-" version ".tar.xz"))
8347 (sha256
8348 (base32
8349 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
8350 (build-system glib-or-gtk-build-system)
8351 (native-inputs
8352 `(("gettext" ,gettext-minimal)
8353 ("glib:bin" ,glib "bin")
8354 ("gobject-introspection" ,gobject-introspection)
8355 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8356 ("gtk+:bin" ,gtk+ "bin")
8357 ("pkg-config" ,pkg-config)))
8358 (inputs
8359 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
8360 ("librest" ,rest)))
8361 (synopsis "GoVirt Library")
8362 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
8363 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
8364 (license license:gpl2+)))
8365
8366 (define-public gnome-weather
8367 (package
8368 (name "gnome-weather")
8369 (version "3.34.0")
8370 (source (origin
8371 (method url-fetch)
8372 (uri (string-append "mirror://gnome/sources/" name "/"
8373 (version-major+minor version) "/"
8374 name "-" version ".tar.xz"))
8375 (sha256
8376 (base32
8377 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
8378 (build-system meson-build-system)
8379 (native-inputs
8380 `(("gettext" ,gettext-minimal)
8381 ("glib:bin" ,glib "bin")
8382 ("gobject-introspection" ,gobject-introspection)
8383 ("gtk+:bin" ,gtk+ "bin")
8384 ("pkg-config" ,pkg-config)))
8385 (inputs
8386 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
8387 ("appstream-glib" ,appstream-glib)
8388 ("geoclue" ,geoclue)
8389 ("gdk-pixbuf" ,gdk-pixbuf)
8390 ("gjs" ,gjs)
8391 ("gnome-desktop" ,gnome-desktop)
8392 ("libgweather" ,libgweather)))
8393 (arguments
8394 `(#:glib-or-gtk? #t
8395 #:phases
8396 (modify-phases %standard-phases
8397 (add-after 'install 'fix-desktop-file
8398 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
8399 ;; See https://issues.guix.gnu.org/issue/39324.
8400 (lambda* (#:key outputs #:allow-other-keys)
8401 (let* ((out (assoc-ref outputs "out"))
8402 (applications (string-append out "/share/applications")))
8403 (substitute* (string-append applications "/org.gnome.Weather.desktop")
8404 (("Exec=.*") "Exec=gnome-weather\n"))
8405 #t)))
8406 (add-after 'install 'wrap
8407 (lambda* (#:key inputs outputs #:allow-other-keys)
8408 (let ((out (assoc-ref outputs "out"))
8409 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8410 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
8411 (wrap-program (string-append out "/bin/gnome-weather")
8412 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
8413 #t))))))
8414 (synopsis "Weather monitoring for GNOME desktop")
8415 (description "GNOME Weather is a small application that allows you to
8416 monitor the current weather conditions for your city, or anywhere in the
8417 world.")
8418 (home-page "https://wiki.gnome.org/Apps/Weather")
8419 (license license:gpl2+)))
8420
8421 (define-public gnome
8422 (package
8423 (name "gnome")
8424 (version (package-version gnome-shell))
8425 (source #f)
8426 (build-system trivial-build-system)
8427 (arguments '(#:builder (begin (mkdir %output) #t)))
8428 (propagated-inputs
8429 ;; TODO: Add or remove packages according to:
8430 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
8431 `(
8432 ;; GNOME-Core-OS-Services
8433 ("accountsservice" ,accountsservice)
8434 ("network-manager" ,network-manager)
8435 ("packagekit" ,packagekit)
8436 ("upower" ,upower)
8437 ;; GNOME-Core-Shell
8438 ("adwaita-icon-theme" ,adwaita-icon-theme)
8439 ("gdm" ,gdm)
8440 ("glib-networking" ,glib-networking)
8441 ("gnome-backgrounds" ,gnome-backgrounds)
8442 ("gnome-bluetooth" ,gnome-bluetooth)
8443 ("gnome-color-manager" ,gnome-color-manager)
8444 ("gnome-control-center" ,gnome-control-center)
8445 ("gnome-desktop" ,gnome-desktop)
8446 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8447 ("gnome-initial-setup" ,gnome-initial-setup)
8448 ("gnome-keyring" ,gnome-keyring)
8449 ("gnome-menus" ,gnome-menus)
8450 ("gnome-session" ,gnome-session)
8451 ("gnome-settings-daemon" ,gnome-settings-daemon)
8452 ("gnome-shell-extensions" ,gnome-shell-extensions)
8453 ("gnome-shell" ,gnome-shell)
8454 ("gnome-themes-extra" ,gnome-themes-extra)
8455 ("gnome-user-docs" ,gnome-user-docs)
8456 ("gnome-user-share" ,gnome-user-share)
8457 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8458 ("gvfs" ,gvfs)
8459 ("mutter" ,mutter)
8460 ("orca" ,orca)
8461 ("rygel" ,rygel)
8462 ("sushi" ,sushi)
8463 ;; GNOME-Core-Utilities
8464 ("baobab" ,baobab)
8465 ("cheese" ,cheese)
8466 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8467 ;; only works on x86_64, so exclude it on other architectures.
8468 ,@(if (string-prefix? "x86_64" (%current-system))
8469 `(("eog" ,eog))
8470 '())
8471 ("epiphany" ,epiphany)
8472 ("evince" ,evince)
8473 ("file-roller" ,file-roller)
8474 ("gedit" ,gedit)
8475 ("gnome-boxes" ,gnome-boxes)
8476 ("gnome-calculator" ,gnome-calculator)
8477 ("gnome-calendar" ,gnome-calendar)
8478 ("gnome-characters" ,gnome-characters)
8479 ("gnome-clocks" ,gnome-clocks)
8480 ("gnome-contacts" ,gnome-contacts)
8481 ("gnome-disk-utility" ,gnome-disk-utility)
8482 ("gnome-font-viewer" ,gnome-font-viewer)
8483 ("gnome-maps" ,gnome-maps)
8484 ; TODO: ("gnome-music" ,gnome-music)
8485 ; TODO: ("gnome-photos" ,gnome-photos)
8486 ("gnome-screenshot" ,gnome-screenshot)
8487 ("gnome-system-monitor" ,gnome-system-monitor)
8488 ("gnome-terminal" ,gnome-terminal)
8489 ("gnome-weather" ,gnome-weather)
8490 ("nautilus" ,nautilus)
8491 ("simple-scan" ,simple-scan)
8492 ("totem" ,totem)
8493 ("yelp" ,yelp)
8494 ;; Others
8495 ("hicolor-icon-theme" ,hicolor-icon-theme)
8496 ("gnome-online-accounts" ,gnome-online-accounts)
8497
8498 ;; Packages not part of GNOME proper but that are needed for a good
8499 ;; experience. See <https://bugs.gnu.org/39646>.
8500 ;; XXX: Find out exactly which ones are needed and why.
8501 ("font-cantarell" ,font-cantarell)
8502 ("font-dejavu" ,font-dejavu)
8503 ("at-spi2-core" ,at-spi2-core)
8504 ("dbus" ,dbus)
8505 ("dconf" ,dconf)
8506 ("desktop-file-utils" ,desktop-file-utils)
8507 ("gnome-default-applications" ,gnome-default-applications)
8508 ("gnome-themes-standard" ,gnome-themes-standard)
8509 ("gst-plugins-base" ,gst-plugins-base)
8510 ("gst-plugins-good" ,gst-plugins-good)
8511 ("gucharmap" ,gucharmap)
8512 ("pinentry-gnome3" ,pinentry-gnome3)
8513 ("pulseaudio" ,pulseaudio)
8514 ("shared-mime-info" ,shared-mime-info)
8515 ("system-config-printer" ,system-config-printer)
8516 ("xdg-user-dirs" ,xdg-user-dirs)
8517 ("yelp" ,yelp)
8518 ("zenity" ,zenity)))
8519 (synopsis "The GNU desktop environment")
8520 (home-page "https://www.gnome.org/")
8521 (description
8522 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8523 applications for browsing the web, editing text and images, creating
8524 documents and diagrams, playing media, scanning, and much more.")
8525 (license license:gpl2+)))
8526
8527 (define-public byzanz
8528 ;; The last stable release of Byzanz was in 2011, but there have been many
8529 ;; useful commits made to the Byzanz repository since then that it would be
8530 ;; silly to use such an old release.
8531 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8532 (package
8533 (name "byzanz")
8534 (version (string-append "0.2-1." (string-take commit 7)))
8535 (source (origin
8536 (method git-fetch)
8537 (uri (git-reference
8538 (url "https://git.gnome.org/browse/byzanz")
8539 (commit commit)))
8540 (file-name (string-append name "-" version "-checkout"))
8541 (sha256
8542 (base32
8543 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8544 (build-system glib-or-gtk-build-system)
8545 (arguments
8546 '(#:phases
8547 (modify-phases %standard-phases
8548 (add-before 'bootstrap 'build-without-Werror
8549 (lambda _
8550 ;; The build system cleverly detects that we're not building from
8551 ;; a release tarball and turns on -Werror for GCC.
8552 ;; Unsurprisingly, there is a warning during compilation that
8553 ;; causes the build to fail unnecessarily, so we remove the flag.
8554 (substitute* '("configure.ac")
8555 (("-Werror") ""))
8556 #t)))))
8557 (native-inputs
8558 `(("autoconf" ,autoconf)
8559 ("automake" ,automake)
8560 ("gnome-common" ,gnome-common)
8561 ("intltool" ,intltool)
8562 ("libtool" ,libtool)
8563 ("pkg-config" ,pkg-config)
8564 ("which" ,which)))
8565 (inputs
8566 `(("glib" ,glib)
8567 ("gstreamer" ,gstreamer)
8568 ("gst-plugins-base" ,gst-plugins-base)
8569 ("gtk+" ,gtk+)))
8570 (synopsis "Desktop recording program")
8571 (description "Byzanz is a simple desktop recording program with a
8572 command-line interface. It can record part or all of an X display for a
8573 specified duration and save it as a GIF encoded animated image file.")
8574 (home-page "https://git.gnome.org/browse/byzanz")
8575 (license license:gpl2+))))
8576
8577 (define-public gsound
8578 (package
8579 (name "gsound")
8580 (version "1.0.2")
8581 (source (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 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8589 (build-system glib-or-gtk-build-system)
8590 (native-inputs
8591 `(("pkg-config" ,pkg-config)
8592 ("gobject-introspection" ,gobject-introspection)
8593 ("vala" ,vala)))
8594 (inputs
8595 `(("glib" ,glib)
8596 ("libcanberra" ,libcanberra)))
8597 (home-page "https://wiki.gnome.org/Projects/GSound")
8598 (synopsis "GObject wrapper for libcanberra")
8599 (description
8600 "GSound is a small library for playing system sounds. It's designed to be
8601 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8602 library.")
8603 (license license:lgpl2.1+)))
8604
8605 (define-public libzapojit
8606 (package
8607 (name "libzapojit")
8608 (version "0.0.3")
8609 (source (origin
8610 (method url-fetch)
8611 (uri (string-append "mirror://gnome/sources/" name "/"
8612 (version-major+minor version) "/"
8613 name "-" version ".tar.xz"))
8614 (sha256
8615 (base32
8616 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8617 (build-system gnu-build-system)
8618 (native-inputs
8619 `(("gobject-introspection" ,gobject-introspection)
8620 ("intltool" ,intltool)
8621 ("pkg-config" ,pkg-config)))
8622 (inputs
8623 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8624 ("json-glib" ,json-glib)
8625 ("rest" ,rest)))
8626 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8627 (synopsis "Library for accessing SkyDrive and Hotmail")
8628 (description
8629 "Libzapojit is a GLib-based library for accessing online service APIs of
8630 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8631 (license license:lgpl2.1+)))
8632
8633 (define-public gnome-clocks
8634 (package
8635 (name "gnome-clocks")
8636 (version "3.34.0")
8637 (source (origin
8638 (method url-fetch)
8639 (uri (string-append "mirror://gnome/sources/" name "/"
8640 (version-major+minor version) "/"
8641 name "-" version ".tar.xz"))
8642 (sha256
8643 (base32
8644 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8645 (build-system meson-build-system)
8646 (arguments
8647 '(#:glib-or-gtk? #t
8648 #:phases
8649 (modify-phases %standard-phases
8650 (add-after 'unpack 'skip-gtk-update-icon-cache
8651 ;; Don't create 'icon-theme.cache'.
8652 (lambda _
8653 (substitute* "build-aux/post-install.py"
8654 (("gtk-update-icon-cache") "true"))
8655 #t)))))
8656 (native-inputs
8657 `(("vala" ,vala)
8658 ("pkg-config" ,pkg-config)
8659 ("glib" ,glib "bin") ; for glib-compile-resources
8660 ("desktop-file-utils" ,desktop-file-utils)
8661 ("gettext" ,gettext-minimal)
8662 ("itstool" ,itstool)))
8663 (inputs
8664 `(("glib" ,glib)
8665 ("gtk+" ,gtk+)
8666 ("gsound" ,gsound)
8667 ("geoclue" ,geoclue)
8668 ("geocode-glib" ,geocode-glib)
8669 ("libgweather" ,libgweather)
8670 ("gnome-desktop" ,gnome-desktop)))
8671 (home-page "https://wiki.gnome.org/Apps/Clocks")
8672 (synopsis "GNOME's clock application")
8673 (description
8674 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8675 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8676 (license license:gpl3+)))
8677
8678 (define-public gnome-calendar
8679 (package
8680 (name "gnome-calendar")
8681 (version "3.34.2")
8682 (source (origin
8683 (method url-fetch)
8684 (uri (string-append "mirror://gnome/sources/" name "/"
8685 (version-major+minor version) "/"
8686 name "-" version ".tar.xz"))
8687 (sha256
8688 (base32
8689 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
8690 (build-system meson-build-system)
8691 (arguments
8692 '(#:glib-or-gtk? #t
8693 ;; gnome-calendar has to be installed before the tests can be run
8694 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8695 #:tests? #f
8696 #:phases
8697 (modify-phases %standard-phases
8698 (add-after 'unpack 'skip-gtk-update-icon-cache
8699 ;; Don't create 'icon-theme.cache'.
8700 (lambda _
8701 (substitute* "build-aux/meson/meson_post_install.py"
8702 (("gtk-update-icon-cache") "true"))
8703 #t)))))
8704 (native-inputs
8705 `(("gettext" ,gettext-minimal)
8706 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8707 ("pkg-config" ,pkg-config)))
8708 (inputs
8709 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8710 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8711 ("libdazzle" ,libdazzle)
8712 ("libedataserverui" ,evolution-data-server)
8713 ("libgweather" ,libgweather)
8714 ("geoclue" ,geoclue)))
8715 (propagated-inputs
8716 `(("evolution-data-server" ,evolution-data-server)))
8717 (home-page "https://wiki.gnome.org/Apps/Calendar")
8718 (synopsis "GNOME's calendar application")
8719 (description
8720 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8721 desktop. It supports multiple calendars, month, week and year view.")
8722 (license license:gpl3+)))
8723
8724 (define-public gnome-todo
8725 (package
8726 (name "gnome-todo")
8727 (version "3.28.1")
8728 (source (origin
8729 (method url-fetch)
8730 (uri (string-append "mirror://gnome/sources/" name "/"
8731 (version-major+minor version) "/"
8732 name "-" version ".tar.xz"))
8733 (sha256
8734 (base32
8735 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8736 (patches
8737 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
8738 (build-system meson-build-system)
8739 (arguments
8740 '(#:glib-or-gtk? #t
8741 #:phases (modify-phases %standard-phases
8742 (add-after
8743 'install 'wrap-gnome-todo
8744 (lambda* (#:key inputs outputs #:allow-other-keys)
8745 (let ((out (assoc-ref outputs "out"))
8746 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8747 (python-path (getenv "PYTHONPATH")))
8748 (wrap-program (string-append out "/bin/gnome-todo")
8749 ;; XXX: gi plugins are broken.
8750 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8751 ;; For plugins.
8752 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8753 `("PYTHONPATH" ":" prefix (,python-path))))
8754 #t)))))
8755 (native-inputs
8756 `(("gettext" ,gettext-minimal)
8757 ("gobject-introspection" ,gobject-introspection)
8758 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8759 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8760 ("pkg-config" ,pkg-config)))
8761 (inputs
8762 `(("rest" ,rest) ; For Todoist plugin
8763 ("json-glib" ,json-glib) ; For Todoist plugin
8764 ("libedataserverui" ,evolution-data-server)
8765 ("libical" ,libical)
8766 ("libpeas" ,libpeas)
8767 ("python-pygobject" ,python-pygobject)
8768 ("evolution-data-server" ,evolution-data-server)
8769 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8770 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8771 (home-page "https://wiki.gnome.org/Apps/Todo")
8772 (synopsis "GNOME's ToDo Application")
8773 (description
8774 "GNOME To Do is a simplistic personal task manager designed to perfectly
8775 fit the GNOME desktop.")
8776 (license license:gpl3+)))
8777
8778 (define-public gnome-dictionary
8779 (package
8780 (name "gnome-dictionary")
8781 (version "3.26.1")
8782 (source (origin
8783 (method url-fetch)
8784 (uri (string-append "mirror://gnome/sources/" name "/"
8785 (version-major+minor version) "/"
8786 name "-" version ".tar.xz"))
8787 (sha256
8788 (base32
8789 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8790 (build-system meson-build-system)
8791 (arguments '(#:glib-or-gtk? #t
8792 #:phases (modify-phases %standard-phases
8793 (add-after 'unpack 'patch-install-script
8794 (lambda _
8795 ;; This script attempts to compile glib schemas
8796 ;; and create an empty MIME database. We do
8797 ;; that elsewhere, so prevent it from running.
8798 (substitute* "build-aux/post-install.sh"
8799 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8800 #t)))))
8801 (native-inputs
8802 `(("glib:bin" ,glib "bin")
8803 ("gobject-introspection" ,gobject-introspection)
8804 ("intltool" ,intltool)
8805 ("itstool" ,itstool)
8806 ("pkg-config" ,pkg-config)
8807 ("xmllint" ,libxml2)))
8808 (inputs
8809 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8810 ("gtk+" ,gtk+)))
8811 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8812 (synopsis "Look up words in dictionary sources")
8813 (description
8814 "GNOME Dictionary can look for the definition or translation of a word in
8815 existing databases over the internet.")
8816 (license license:gpl3+)))
8817
8818 (define-public gnome-tweaks
8819 (package
8820 (name "gnome-tweaks")
8821 (version "3.34.0")
8822 (source (origin
8823 (method url-fetch)
8824 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8825 (version-major+minor version) "/"
8826 "gnome-tweaks-" version ".tar.xz"))
8827 (patches
8828 (list (search-patch "gnome-tweaks-search-paths.patch")))
8829 (sha256
8830 (base32
8831 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
8832 (build-system meson-build-system)
8833 (arguments
8834 `(#:glib-or-gtk? #t
8835 #:configure-flags '("-Dlocalstatedir=/tmp"
8836 "-Dsysconfdir=/tmp")
8837 #:imported-modules ((guix build python-build-system)
8838 ,@%meson-build-system-modules)
8839 #:phases
8840 (modify-phases %standard-phases
8841 (add-after 'unpack 'skip-gtk-update-icon-cache
8842 ;; Don't create 'icon-theme.cache'.
8843 (lambda _
8844 (substitute* "meson-postinstall.py"
8845 (("gtk-update-icon-cache") "true"))
8846 #t))
8847 (add-after 'install 'wrap
8848 (@@ (guix build python-build-system) wrap))
8849 (add-after 'wrap 'wrap-gi-typelib
8850 (lambda* (#:key inputs outputs #:allow-other-keys)
8851 (let ((out (assoc-ref outputs "out"))
8852 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8853 (wrap-program (string-append out "/bin/gnome-tweaks")
8854 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8855 #t)))))
8856 (native-inputs
8857 `(("intltool" ,intltool)
8858 ("pkg-config" ,pkg-config)))
8859 (inputs
8860 `(("gnome-desktop" ,gnome-desktop)
8861 ("gtk+" ,gtk+)
8862 ("gobject-introspection" ,gobject-introspection)
8863 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8864 ("libhandy" ,libhandy)
8865 ("libnotify" ,libnotify)
8866 ("libsoup" ,libsoup)
8867 ("nautilus" ,nautilus)
8868 ("python" ,python)
8869 ("python-pygobject" ,python-pygobject)))
8870 (synopsis "Customize advanced GNOME 3 options")
8871 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8872 (description
8873 "GNOME Tweaks allows adjusting advanced configuration settings in
8874 GNOME 3. This includes things like the fonts used in user interface elements,
8875 alternative user interface themes, changes in window management behavior,
8876 GNOME Shell appearance and extension, etc.")
8877 (license license:gpl3+)))
8878
8879 (define-public gnome-shell-extensions
8880 (package
8881 (name "gnome-shell-extensions")
8882 (version "3.34.2")
8883 (source (origin
8884 (method url-fetch)
8885 (uri (string-append "mirror://gnome/sources/" name "/"
8886 (version-major+minor version) "/"
8887 name "-" version ".tar.xz"))
8888 (sha256
8889 (base32
8890 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
8891 (build-system meson-build-system)
8892 (arguments
8893 '(#:configure-flags '("-Dextension_set=all")))
8894 (native-inputs
8895 `(("glib:bin" ,glib "bin")
8896 ("intltool" ,intltool)
8897 ("pkg-config" ,pkg-config)))
8898 (propagated-inputs
8899 `(("glib" ,glib)))
8900 (synopsis "Extensions for GNOME Shell")
8901 (description "GNOME Shell extensions modify and extend GNOME Shell
8902 functionality and behavior.")
8903 (home-page "https://extensions.gnome.org/")
8904 (license license:gpl3+)))
8905
8906 (define-public arc-theme
8907 (package
8908 (name "arc-theme")
8909 (version "20190917")
8910 (source (origin
8911 (method git-fetch)
8912 (uri (git-reference
8913 (url "https://github.com/NicoHood/arc-theme")
8914 (commit version)))
8915 (file-name (git-file-name name version))
8916 (sha256
8917 (base32
8918 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8919 (build-system gnu-build-system)
8920 (arguments
8921 '(#:phases
8922 (modify-phases %standard-phases
8923 ;; autogen.sh calls configure at the end of the script.
8924 (replace 'bootstrap
8925 (lambda _ (invoke "autoreconf" "-vfi")))
8926 (add-before 'build 'set-home ;placate Inkscape
8927 (lambda _
8928 (setenv "HOME" (getcwd))
8929 #t)))))
8930 (native-inputs
8931 `(("autoconf" ,autoconf)
8932 ("automake" ,automake)
8933 ("glib" ,glib "bin") ; for glib-compile-resources
8934 ("gnome-shell" ,gnome-shell)
8935 ("gtk+" ,gtk+)
8936 ("inkscape" ,inkscape)
8937 ("optipng" ,optipng)
8938 ("pkg-config" ,pkg-config)
8939 ("sassc" ,sassc/libsass-3.5)))
8940 (synopsis "A flat GTK+ theme with transparent elements")
8941 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8942 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8943 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8944 (home-page "https://github.com/horst3180/arc-theme")
8945 ;; No "or later" language found.
8946 (license license:gpl3+)))
8947
8948 (define-public faba-icon-theme
8949 (package
8950 (name "faba-icon-theme")
8951 (version "4.3")
8952 (source
8953 (origin
8954 (method git-fetch)
8955 (uri (git-reference
8956 (url "https://github.com/snwh/faba-icon-theme")
8957 (commit (string-append "v" version))))
8958 (file-name (git-file-name name version))
8959 (sha256
8960 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8961 (build-system meson-build-system)
8962 (arguments
8963 `(#:phases
8964 (modify-phases %standard-phases
8965 (add-before 'configure 'disable-post-install
8966 (lambda _
8967 (substitute* "meson.build"
8968 (("meson.add_install_script.*") "")))))))
8969 (native-inputs
8970 `(("autoconf" ,autoconf)
8971 ("automake" ,automake)))
8972 (synopsis "Faba icon theme")
8973 (description
8974 "Faba is a minimal icon set used as a basis for other themes such as
8975 Moka")
8976 (home-page "https://snwh.org/moka")
8977 (license (list license:lgpl3+
8978 license:cc-by-sa4.0))))
8979
8980 (define-public moka-icon-theme
8981 (package
8982 (inherit faba-icon-theme)
8983 (name "moka-icon-theme")
8984 (version "5.4.0")
8985 (source
8986 (origin
8987 (method git-fetch)
8988 (uri (git-reference
8989 (url "https://github.com/snwh/moka-icon-theme")
8990 (commit (string-append "v" version))))
8991 (file-name (git-file-name name version))
8992 (sha256
8993 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8994 (propagated-inputs
8995 ;; Moka is based on Faba by using it as a fallback icon set instead of
8996 ;; bundling it, so we need to add it as a propagated input.
8997 `(("faba-icon-theme" ,faba-icon-theme)))
8998 (synopsis "Moka icon theme")
8999 (description "Moka is a stylized desktop icon set, designed to be clear,
9000 simple and consistent.")
9001 (license (list license:gpl3+
9002 license:cc-by-sa4.0))))
9003
9004 (define-public arc-icon-theme
9005 (package
9006 (name "arc-icon-theme")
9007 (version "20161122")
9008 (source
9009 (origin
9010 (method git-fetch)
9011 (uri (git-reference
9012 (url "https://github.com/horst3180/arc-icon-theme")
9013 (commit version)))
9014 (file-name (git-file-name name version))
9015 (sha256
9016 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
9017 (build-system gnu-build-system)
9018 (arguments
9019 `(#:phases
9020 (modify-phases %standard-phases
9021 (add-after 'unpack 'disable-configure-during-bootstrap
9022 (lambda _
9023 (substitute* "autogen.sh"
9024 (("^\"\\$srcdir/configure\".*") ""))
9025 #t)))))
9026 (native-inputs
9027 `(("autoconf" ,autoconf)
9028 ("automake" ,automake)))
9029 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
9030 (propagated-inputs
9031 `(("moka-icon-theme" ,moka-icon-theme)))
9032 (synopsis "Arc icon theme")
9033 (description "The Arc icon theme provides a set of icons matching the
9034 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
9035 the Moka icon theme.")
9036 (home-page "https://github.com/horst3180/arc-icon-theme")
9037 (license license:gpl3+)))
9038
9039 (define-public folks
9040 (package
9041 (name "folks")
9042 (version "0.13.1")
9043 (source (origin
9044 (method url-fetch)
9045 (uri (string-append
9046 "mirror://gnome/sources/folks/"
9047 (version-major+minor version) "/"
9048 "folks-" version ".tar.xz"))
9049 (sha256
9050 (base32
9051 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9052 (build-system meson-build-system)
9053 (arguments
9054 '(#:phases
9055 (modify-phases %standard-phases
9056 (add-after 'unpack 'skip-gtk-update-icon-cache
9057 ;; Don't create 'icon-theme.cache'.
9058 (lambda _
9059 (substitute* "meson_post_install.py"
9060 (("gtk-update-icon-cache") "true"))
9061 #t)))))
9062 (inputs
9063 `(("bdb" ,bdb)
9064 ("dbus-glib" ,dbus-glib)
9065 ("evolution-data-server" ,evolution-data-server)
9066 ("glib" ,glib)
9067 ("libgee" ,libgee)
9068 ("readline" ,readline)
9069 ("telepathy-glib" ,telepathy-glib)))
9070 (native-inputs
9071 `(("glib:bin" ,glib "bin")
9072 ("gobject-introspection" ,gobject-introspection)
9073 ("intltool" ,intltool)
9074 ("pkg-config" ,pkg-config)
9075 ("vala" ,vala)))
9076 (synopsis "Library to aggregate data about people")
9077 (description "Libfolks is a library that aggregates information about people
9078 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9079 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9080 etc.) to create metacontacts. It's written in Vala, which generates C code when
9081 compiled.")
9082 (home-page "https://wiki.gnome.org/Projects/Folks")
9083 (license license:lgpl2.1+)))
9084
9085 (define-public gfbgraph
9086 (package
9087 (name "gfbgraph")
9088 (version "0.2.4")
9089 (source (origin
9090 (method url-fetch)
9091 (uri (string-append
9092 "mirror://gnome/sources/gfbgraph/"
9093 (version-major+minor version) "/"
9094 "gfbgraph-" version ".tar.xz"))
9095 (sha256
9096 (base32
9097 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9098 (build-system glib-or-gtk-build-system)
9099 (arguments
9100 `(#:tests? #f ; tests appear to require the network
9101 #:configure-flags '("--disable-static"
9102 "--enable-gtk-doc"
9103 "--enable-introspection")))
9104 (native-inputs
9105 `(("gobject-introspection" ,gobject-introspection)
9106 ("gtk-doc" ,gtk-doc)
9107 ("pkg-config" ,pkg-config)
9108
9109 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9110 ("autoconf" ,autoconf)
9111 ("automake" ,automake)
9112 ("libtool" ,libtool)
9113 ("which" ,which)))
9114 (inputs
9115 `(("json-glib" ,json-glib)
9116 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9117 ("rest" ,rest)))
9118 (synopsis "GLib/GObject wrapper for the Facebook API")
9119 (description "This library allows you to use the Facebook API from
9120 GLib/GObject code.")
9121 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9122 (license license:lgpl2.1+)))
9123
9124 (define-public libgnomekbd
9125 (package
9126 (name "libgnomekbd")
9127 (version "3.26.1")
9128 (source (origin
9129 (method url-fetch)
9130 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9131 (version-major+minor version) "/"
9132 "libgnomekbd-" version ".tar.xz"))
9133 (sha256
9134 (base32
9135 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9136 (build-system gnu-build-system)
9137 (native-inputs
9138 `(("pkg-config" ,pkg-config)
9139 ("glib" ,glib "bin")
9140 ("intltool" ,intltool)))
9141 (propagated-inputs
9142 ;; Referred to in .h files and .pc.
9143 `(("glib" ,glib)
9144 ("gtk+" ,gtk+)
9145 ("libxklavier" ,libxklavier)))
9146 (home-page "https://www.gnome.org")
9147 (synopsis "GNOME keyboard configuration library")
9148 (description
9149 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9150 environment, which can notably display keyboard layouts.")
9151 (license license:lgpl2.0+)))
9152
9153 ;;; This package is no longer maintained:
9154 ;;; https://wiki.gnome.org/Attic/LibUnique
9155 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9156 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9157 (define-public libunique
9158 (package
9159 (name "libunique")
9160 (version "3.0.2")
9161 (source (origin
9162 (method url-fetch)
9163 (uri (string-append "mirror://gnome/sources/" name "/"
9164 (version-major+minor version) "/"
9165 name "-" version ".tar.xz"))
9166 (sha256
9167 (base32
9168 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9169 (build-system glib-or-gtk-build-system)
9170 (arguments
9171 `(#:configure-flags '("--disable-static"
9172 "--disable-dbus" ; use gdbus
9173 "--enable-introspection")))
9174 (native-inputs
9175 `(("pkg-config" ,pkg-config)
9176 ("gobject-introspection" ,gobject-introspection)
9177 ("glib:bin" ,glib "bin")
9178 ("gtk-doc" ,gtk-doc)))
9179 (propagated-inputs
9180 ;; Referred to in .h files and .pc.
9181 `(("gtk+" ,gtk+)))
9182 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9183 (synopsis "Library for writing single instance applications")
9184 (description
9185 "Libunique is a library for writing single instance applications. If you
9186 launch a single instance application twice, the second instance will either just
9187 quit or will send a message to the running instance. Libunique makes it easy to
9188 write this kind of application, by providing a base class, taking care of all
9189 the IPC machinery needed to send messages to a running instance, and also
9190 handling the startup notification side.")
9191 (license license:lgpl2.1+)))
9192
9193 (define-public gnome-calculator
9194 (package
9195 (name "gnome-calculator")
9196 (version "3.34.1")
9197 (source
9198 (origin
9199 (method url-fetch)
9200 (uri (string-append "mirror://gnome/sources/" name "/"
9201 (version-major+minor version) "/"
9202 name "-" version ".tar.xz"))
9203 (sha256
9204 (base32
9205 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9206 (build-system meson-build-system)
9207 (arguments '(#:glib-or-gtk? #t))
9208 (native-inputs
9209 `(("gettext" ,gettext-minimal)
9210 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9211 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9212 ("itstool" ,itstool)
9213 ("vala" ,vala)
9214 ("pkg-config" ,pkg-config)))
9215 (inputs
9216 `(("glib" ,glib)
9217 ("gtksourceview" ,gtksourceview)
9218 ("libgee" ,libgee)
9219 ("libsoup" ,libsoup)
9220 ("libxml2" ,libxml2)
9221 ("mpc" ,mpc)
9222 ("mpfr" ,mpfr)))
9223 (home-page "https://wiki.gnome.org/Apps/Calculator")
9224 (synopsis "Desktop calculator")
9225 (description
9226 "Calculator is an application that solves mathematical equations and
9227 is suitable as a default application in a Desktop environment.")
9228 (license license:gpl3)))
9229
9230 (define-public xpad
9231 (package
9232 (name "xpad")
9233 (version "5.1.0")
9234 (source
9235 (origin
9236 (method url-fetch)
9237 (uri (string-append "https://launchpad.net/xpad/trunk/"
9238 version "/+download/"
9239 name "-" version ".tar.bz2"))
9240 (sha256
9241 (base32
9242 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9243 (build-system gnu-build-system)
9244 (native-inputs
9245 `(("autoconf" ,autoconf)
9246 ("automake" ,automake)
9247 ("gtk+:bin" ,gtk+ "bin")
9248 ("intltool" ,intltool)
9249 ("pkg-config" ,pkg-config)))
9250 (inputs
9251 `(("gtksourceview" ,gtksourceview-3)
9252 ("libsm" ,libsm)))
9253 (home-page "https://wiki.gnome.org/Apps/Xpad")
9254 (synopsis "Virtual sticky note")
9255 (description
9256 "Xpad is a sticky note that strives to be simple, fault tolerant,
9257 and customizable. Xpad consists of independent pad windows, each is
9258 basically a text box in which notes can be written.")
9259 (license license:gpl3+)))
9260
9261 (define-public gucharmap
9262 (let ((unicode-files
9263 '(("Blocks.txt"
9264 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9265 ("DerivedAge.txt"
9266 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9267 ("NamesList.txt"
9268 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9269 ("Scripts.txt"
9270 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9271 ("UnicodeData.txt"
9272 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9273 ("Unihan.zip"
9274 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9275 (package
9276 (name "gucharmap")
9277 (version "12.0.1")
9278 (source
9279 (origin
9280 (method url-fetch)
9281 (uri (string-append "mirror://gnome/sources/" name "/"
9282 (version-major+minor version) "/"
9283 name "-" version ".tar.xz"))
9284 (sha256
9285 (base32
9286 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9287 (build-system glib-or-gtk-build-system)
9288 (arguments
9289 `(#:modules ((ice-9 match)
9290 (guix build glib-or-gtk-build-system)
9291 (guix build utils))
9292 #:configure-flags
9293 (list "--with-unicode-data=../unicode-data")
9294 #:phases
9295 (modify-phases %standard-phases
9296 (add-after 'unpack 'prepare-unicode-data
9297 (lambda* (#:key inputs #:allow-other-keys)
9298 (mkdir-p "../unicode-data")
9299 (with-directory-excursion "../unicode-data"
9300 (for-each (match-lambda
9301 ((file _)
9302 (install-file (assoc-ref inputs file) ".")))
9303 ',unicode-files))
9304 #t)))))
9305 (native-inputs
9306 `(("desktop-file-utils" ,desktop-file-utils)
9307 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9308 ("gobject-introspection" ,gobject-introspection)
9309 ("intltool" ,intltool)
9310 ("itstool" ,itstool)
9311 ("pkg-config" ,pkg-config)
9312 ,@(map (match-lambda
9313 ((file hash)
9314 `(,file
9315 ,(origin
9316 (method url-fetch)
9317 (uri (string-append
9318 "http://www.unicode.org/Public/12.0.0/ucd/"
9319 file))
9320 (sha256 (base32 hash))))))
9321 unicode-files)
9322 ("unzip" ,unzip)))
9323 (inputs
9324 `(("gtk+" ,gtk+)
9325 ("xmllint" ,libxml2)))
9326 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9327 (synopsis "Unicode character picker and font browser")
9328 (description
9329 "This program allows you to browse through all the available Unicode
9330 characters and categories for the installed fonts, and to examine their
9331 detailed properties. It is an easy way to find the character you might
9332 only know by its Unicode name or code point.")
9333 (license license:gpl3+))))
9334
9335 (define-public bluefish
9336 (package
9337 (name "bluefish")
9338 (version "2.2.11")
9339 (source
9340 (origin
9341 (method url-fetch)
9342 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
9343 "bluefish-" version ".tar.gz"))
9344 (sha256
9345 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
9346 (build-system gnu-build-system)
9347 (native-inputs
9348 `(("desktop-file-utils" ,desktop-file-utils)
9349 ("intltool" ,intltool)
9350 ("pkg-config" ,pkg-config)))
9351 (inputs
9352 `(("enchant" ,enchant)
9353 ("gtk+" ,gtk+)
9354 ("python" ,python-wrapper)
9355 ("xmllint" ,libxml2)
9356 ("gucharmap" ,gucharmap)))
9357 (home-page "http://bluefish.openoffice.nl")
9358 (synopsis "Web development studio")
9359 (description
9360 "Bluefish is an editor targeted towards programmers and web developers,
9361 with many options to write web sites, scripts and other code.
9362 Bluefish supports many programming and markup languages.")
9363 (license license:gpl3+)))
9364
9365 (define-public gnome-system-monitor
9366 (package
9367 (name "gnome-system-monitor")
9368 (version "3.32.1")
9369 (source
9370 (origin
9371 (method url-fetch)
9372 (uri (string-append "mirror://gnome/sources/" name "/"
9373 (version-major+minor version) "/"
9374 name "-" version ".tar.xz"))
9375 (sha256
9376 (base32
9377 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
9378 (build-system meson-build-system)
9379 (arguments
9380 '(#:glib-or-gtk? #t
9381 #:configure-flags '("-Dsystemd=false")))
9382 (native-inputs
9383 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
9384 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
9385 ("intltool" ,intltool)
9386 ("itstool" ,itstool)
9387 ("libgtop" ,libgtop)
9388 ("polkit" ,polkit)
9389 ("pkg-config" ,pkg-config)))
9390 (inputs
9391 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
9392 ("gtk+" ,gtk+)
9393 ("gtkmm" ,gtkmm)
9394 ("librsvg" ,librsvg)
9395 ("libxml2" ,libxml2)
9396 ("libwnck" ,libwnck)))
9397 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
9398 (synopsis "Process viewer and system resource monitor for GNOME")
9399 (description
9400 "GNOME System Monitor is a GNOME process viewer and system monitor with
9401 an attractive, easy-to-use interface. It has features, such as a tree view
9402 for process dependencies, icons for processes, the ability to hide processes,
9403 graphical time histories of CPU/memory/swap usage and the ability to
9404 kill/reinice processes.")
9405 (license license:gpl2+)))
9406
9407 (define-public python-pyatspi
9408 (package
9409 (name "python-pyatspi")
9410 (version "2.34.0")
9411 (source (origin
9412 (method url-fetch)
9413 (uri (string-append
9414 "mirror://gnome/sources/pyatspi/"
9415 (version-major+minor version)
9416 "/pyatspi-" version ".tar.xz"))
9417 (sha256
9418 (base32
9419 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
9420 (build-system gnu-build-system)
9421 (arguments
9422 `(#:phases
9423 (modify-phases %standard-phases
9424 (add-before 'build 'fix-atk-load
9425 (lambda _
9426 (substitute* "pyatspi/__init__.py"
9427 (("from gi.repository import Atspi")
9428 "gi.require_version('Gtk', '3.0')
9429 from gi.repository import Gtk
9430 from gi.repository import Atspi"))
9431 #t)))))
9432 (native-inputs
9433 `(("pkg-config" ,pkg-config)))
9434 (inputs
9435 `(("python" ,python)))
9436 (propagated-inputs
9437 `(("python-pygobject" ,python-pygobject)))
9438 (synopsis "Python client bindings for D-Bus AT-SPI")
9439 (home-page "https://wiki.linuxfoundation.org/accessibility\
9440 /atk/at-spi/at-spi_on_d-bus")
9441 (description
9442 "This package includes a python client library for the AT-SPI D-Bus
9443 accessibility infrastructure.")
9444 (license license:lgpl2.0)
9445 (properties '((upstream-name . "pyatspi")))))
9446
9447 (define-public python2-pyatspi
9448 (package
9449 (inherit python-pyatspi)
9450 (name "python2-pyatspi")
9451 (inputs
9452 `(("python" ,python-2)))
9453 (propagated-inputs
9454 `(("python-pygobject" ,python2-pygobject)))))
9455
9456 (define-public orca
9457 (package
9458 (name "orca")
9459 (version "3.34.1")
9460 (source (origin
9461 (method url-fetch)
9462 (uri (string-append
9463 "mirror://gnome/sources/" name "/"
9464 (version-major+minor version) "/"
9465 name "-" version ".tar.xz"))
9466 (sha256
9467 (base32
9468 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
9469 (build-system glib-or-gtk-build-system)
9470 (arguments
9471 '(#:phases
9472 (modify-phases %standard-phases
9473 (add-before 'configure 'qualify-xkbcomp
9474 (lambda* (#:key inputs #:allow-other-keys)
9475 (let ((xkbcomp (string-append
9476 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9477 (substitute* "src/orca/orca.py"
9478 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9479 #t))
9480 (add-after 'install 'wrap-orca
9481 (lambda* (#:key outputs #:allow-other-keys)
9482 (let* ((out (assoc-ref outputs "out"))
9483 (prog (string-append out "/bin/orca")))
9484 (wrap-program prog
9485 `("GI_TYPELIB_PATH" ":" prefix
9486 (,(getenv "GI_TYPELIB_PATH")))
9487 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9488 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9489 `("PYTHONPATH" ":" prefix
9490 (,(getenv "PYTHONPATH")))))
9491 #t)))))
9492 (native-inputs
9493 `(("intltool" ,intltool)
9494 ("itstool" ,itstool)
9495 ("pkg-config" ,pkg-config)
9496 ("xmllint" ,libxml2)))
9497 (inputs
9498 `(("at-spi2-atk" ,at-spi2-atk)
9499 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9500 ("gstreamer" ,gstreamer)
9501 ("gst-plugins-base" ,gst-plugins-base)
9502 ("gst-plugins-good" ,gst-plugins-good)
9503 ("gtk+" ,gtk+)
9504 ("python" ,python)
9505 ("python-pygobject" ,python-pygobject)
9506 ("python-pyatspi" ,python-pyatspi)
9507 ("python-speechd" ,speech-dispatcher)
9508 ("xkbcomp" ,xkbcomp)))
9509 (synopsis
9510 "Screen reader for individuals who are blind or visually impaired")
9511 (home-page "https://wiki.gnome.org/Projects/Orca")
9512 (description
9513 "Orca is a screen reader that provides access to the graphical desktop
9514 via speech and refreshable braille. Orca works with applications and toolkits
9515 that support the Assistive Technology Service Provider Interface (AT-SPI).")
9516 (license license:lgpl2.1+)))
9517
9518 (define-public gspell
9519 (package
9520 (name "gspell")
9521 (version "1.8.2")
9522 (source (origin
9523 (method url-fetch)
9524 (uri (string-append "mirror://gnome/sources/" name "/"
9525 (version-major+minor version) "/"
9526 name "-" version ".tar.xz"))
9527 (sha256
9528 (base32
9529 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
9530 (patches (search-patches "gspell-dash-test.patch"))))
9531 (build-system glib-or-gtk-build-system)
9532 (arguments
9533 '(#:configure-flags (list "--enable-vala")
9534 #:phases
9535 (modify-phases %standard-phases
9536 (add-before 'check 'pre-check
9537 (lambda* (#:key inputs #:allow-other-keys)
9538 ;; Tests require a running X server.
9539 (system "Xvfb :1 &")
9540 (setenv "DISPLAY" ":1")
9541
9542 ;; For the missing /etc/machine-id.
9543 (setenv "DBUS_FATAL_WARNINGS" "0")
9544
9545 ;; Allow Enchant and its Aspell backend to find the en_US
9546 ;; dictionary.
9547 (setenv "ASPELL_DICT_DIR"
9548 (string-append (assoc-ref inputs "aspell-dict-en")
9549 "/lib/aspell"))
9550 #t)))))
9551 (inputs
9552 `(("gtk+" ,gtk+)
9553 ("glib" ,glib)
9554 ("iso-codes" ,iso-codes)))
9555 (native-inputs
9556 `(("glib" ,glib "bin")
9557 ("gobject-introspection" ,gobject-introspection)
9558 ("pkg-config" ,pkg-config)
9559 ("vala" ,vala) ;for VAPI, needed by Geary
9560 ("xmllint" ,libxml2)
9561
9562 ;; For tests.
9563 ("aspell-dict-en" ,aspell-dict-en)
9564 ("xorg-server" ,xorg-server-for-tests)))
9565 (propagated-inputs
9566 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
9567 (home-page "https://wiki.gnome.org/Projects/gspell")
9568 (synopsis "GNOME's alternative spell checker")
9569 (description
9570 "gspell provides a flexible API to add spell-checking to a GTK+
9571 application. It provides a GObject API, spell-checking to text entries and
9572 text views, and buttons to choose the language.")
9573 (license license:gpl2+)))
9574
9575 (define-public gnome-planner
9576 (package
9577 (name "gnome-planner")
9578 (version "0.14.6")
9579 (source (origin
9580 (method url-fetch)
9581 (uri (string-append "mirror://gnome/sources/planner/"
9582 (version-major+minor version) "/planner-"
9583 version ".tar.xz"))
9584 (sha256
9585 (base32
9586 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9587 (build-system glib-or-gtk-build-system)
9588 (arguments
9589 ;; Disable the Python bindings because the Planner program functions
9590 ;; without them, and (as of 2017-06-13) we have not packaged all of
9591 ;; packages that are necessary for building the Python bindings.
9592 `(#:configure-flags
9593 (list "--disable-python"
9594 ,@(if (string=? "aarch64-linux" (%current-system))
9595 '("--build=aarch64-unknown-linux-gnu")
9596 '()))))
9597 (inputs
9598 `(("libgnomecanvas" ,libgnomecanvas)
9599 ("libgnomeui" ,libgnomeui)
9600 ("libglade" ,libglade)
9601 ("gnome-vfs" ,gnome-vfs)
9602 ("gconf" ,gconf)
9603 ("libxml2" ,libxml2)
9604 ("libxslt" ,libxslt)
9605 ("gtk+" ,gtk+)
9606 ("glib" ,glib)))
9607 (native-inputs
9608 `(("intltool" ,intltool)
9609 ("scrollkeeper" ,scrollkeeper)
9610 ("pkg-config" ,pkg-config)))
9611 (home-page "https://wiki.gnome.org/Apps/Planner")
9612 (synopsis "Project management software for the GNOME desktop")
9613 (description
9614 "GNOME Planner is a project management tool based on the Work Breakdown
9615 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9616 the resources, tasks, and constraints that you define, Planner generates
9617 various views into a project. For example, Planner can show a Gantt chart of
9618 the project. It can show a detailed summary of tasks including their
9619 duration, cost, and current progress. It can also show a report of resource
9620 utilization that highlights under-utilized and over-utilized resources. These
9621 views can be printed as PDF or PostScript files, or exported to HTML.")
9622 (license license:gpl2+)))
9623
9624 (define-public lollypop
9625 (package
9626 (name "lollypop")
9627 (version "1.2.32")
9628 (source
9629 (origin
9630 (method url-fetch)
9631 (uri (string-append "https://adishatz.org/lollypop/"
9632 "lollypop-" version ".tar.xz"))
9633 (sha256
9634 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
9635 (build-system meson-build-system)
9636 (arguments
9637 `(#:imported-modules
9638 (,@%meson-build-system-modules
9639 (guix build python-build-system))
9640 #:modules
9641 ((guix build meson-build-system)
9642 ((guix build python-build-system) #:prefix python:)
9643 (guix build utils))
9644 #:glib-or-gtk? #t
9645 #:tests? #f ; no test suite
9646 #:phases
9647 (modify-phases %standard-phases
9648 (add-after 'install 'wrap-program
9649 (lambda* (#:key outputs #:allow-other-keys)
9650 (let ((out (assoc-ref outputs "out"))
9651 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9652 (wrap-program (string-append out "/bin/lollypop")
9653 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9654 #t))
9655 (add-after 'install 'wrap-python
9656 (assoc-ref python:%standard-phases 'wrap)))))
9657 (native-inputs
9658 `(("intltool" ,intltool)
9659 ("itstool" ,itstool)
9660 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9661 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9662 ("pkg-config" ,pkg-config)))
9663 (inputs
9664 `(("gobject-introspection" ,gobject-introspection)
9665 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9666 ("gst-plugins-base" ,gst-plugins-base)
9667 ("libnotify" ,libnotify)
9668 ("libsecret" ,libsecret)
9669 ("libsoup" ,libsoup)
9670 ("python" ,python)
9671 ("python-beautifulsoup4" ,python-beautifulsoup4)
9672 ("python-gst" ,python-gst)
9673 ("python-pil" ,python-pillow)
9674 ("python-pycairo" ,python-pycairo)
9675 ("python-pygobject" ,python-pygobject)
9676 ("python-pylast" ,python-pylast)
9677 ("totem-pl-parser" ,totem-pl-parser)
9678 ("webkitgtk" ,webkitgtk)))
9679 (propagated-inputs
9680 `(;; gst-plugins-base is required to start Lollypop,
9681 ;; the others are required to play streaming.
9682 ("gst-plugins-good" ,gst-plugins-good)
9683 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9684 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9685 (synopsis "GNOME music playing application")
9686 (description
9687 "Lollypop is a music player designed to play well with GNOME desktop.
9688 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9689 from artists and tracks from the web. It also fetches cover artworks
9690 automatically and it can stream songs from online music services and charts.")
9691 (license license:gpl3+)))
9692
9693 (define-public gnome-video-effects
9694 (package
9695 (name "gnome-video-effects")
9696 (version "0.4.3")
9697 (source (origin
9698 (method url-fetch)
9699 (uri (string-append "mirror://gnome/sources/" name "/"
9700 (version-major+minor version) "/" name "-"
9701 version ".tar.xz"))
9702 (sha256
9703 (base32
9704 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9705 (build-system glib-or-gtk-build-system)
9706 (arguments
9707 `(#:out-of-source? #f))
9708 (native-inputs
9709 `(("glib:bin" ,glib "bin")
9710 ("intltool" ,intltool)
9711 ("gettext" ,gettext-minimal)
9712 ("pkg-config" ,pkg-config)))
9713 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9714 (synopsis "Video effects for Cheese and other GNOME applications")
9715 (description
9716 "A collection of GStreamer video filters and effects to be used in
9717 photo-booth-like software, such as Cheese.")
9718 (license license:gpl2+)))
9719
9720 (define-public cheese
9721 (package
9722 (name "cheese")
9723 (version "3.34.0")
9724 (source (origin
9725 (method url-fetch)
9726 (uri (string-append "mirror://gnome/sources/" name "/"
9727 (version-major+minor version) "/" name "-"
9728 version ".tar.xz"))
9729 (sha256
9730 (base32
9731 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
9732 (arguments
9733 `(#:glib-or-gtk? #t
9734 ;; Tests require GDK.
9735 #:tests? #f
9736 #:phases
9737 (modify-phases %standard-phases
9738 (add-after 'unpack 'skip-gtk-update-icon-cache
9739 (lambda _
9740 ;; Don't create 'icon-theme.cache'
9741 (substitute* "meson_post_install.py"
9742 (("gtk-update-icon-cache") (which "true")))
9743 #t))
9744 (add-after 'install 'wrap-cheese
9745 (lambda* (#:key inputs outputs #:allow-other-keys)
9746 (let ((out (assoc-ref outputs "out"))
9747 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9748 (wrap-program (string-append out "/bin/cheese")
9749 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9750 #t)))))
9751 (build-system meson-build-system)
9752 (native-inputs
9753 `(("docbook-xsl" ,docbook-xsl)
9754 ("glib:bin" ,glib "bin")
9755 ("gtk-doc" ,gtk-doc)
9756 ("intltool" ,intltool)
9757 ("itstool" ,itstool)
9758 ("libxml2" ,libxml2)
9759 ("libxslt" ,libxslt)
9760 ("pkg-config" ,pkg-config)
9761 ("vala" ,vala)))
9762 (propagated-inputs
9763 `(("gnome-video-effects" ,gnome-video-effects)
9764 ("clutter" ,clutter)
9765 ("clutter-gst" ,clutter-gst)
9766 ("clutter-gtk" ,clutter-gtk)
9767 ("libcanberra" ,libcanberra)
9768 ("gdk-pixbuf" ,gdk-pixbuf)
9769 ("glib" ,glib)
9770 ("gstreamer" ,gstreamer)))
9771 (inputs
9772 `(("gnome-desktop" ,gnome-desktop)
9773 ("gobject-introspection" ,gobject-introspection)
9774 ("gst-plugins-base" ,gst-plugins-base)
9775 ("gst-plugins-bad" ,gst-plugins-bad)
9776 ("gtk+" ,gtk+)
9777 ("libx11" ,libx11)
9778 ("libxtst" ,libxtst)))
9779 (home-page "https://wiki.gnome.org/Apps/Cheese")
9780 (synopsis "Webcam photo booth software for GNOME")
9781 (description
9782 "Cheese uses your webcam to take photos and videos. Cheese can also
9783 apply fancy special effects and lets you share the fun with others.")
9784 (license license:gpl2+)))
9785
9786 (define-public sound-juicer
9787 (package
9788 (name "sound-juicer")
9789 (version "3.24.0")
9790 (source
9791 (origin
9792 (method url-fetch)
9793 (uri (string-append "mirror://gnome/sources/" name "/"
9794 (version-major+minor version) "/"
9795 name "-" version ".tar.xz"))
9796 (sha256
9797 (base32
9798 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9799 (build-system glib-or-gtk-build-system)
9800 (native-inputs
9801 `(("desktop-file-utils" ,desktop-file-utils)
9802 ("intltool" ,intltool)
9803 ("itstool" ,itstool)
9804 ("pkg-config" ,pkg-config)
9805 ("xmllint" ,libxml2)))
9806 (inputs
9807 `(("gtk+" ,gtk+)
9808 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9809 ("gstreamer" ,gstreamer)
9810 ("gst-plugins-base" ,gst-plugins-base)
9811 ("gst-plugins-good" ,gst-plugins-good)
9812 ("iso-codes" ,iso-codes)
9813 ("libbrasero-media3" ,brasero)
9814 ("libcanberra" ,libcanberra)
9815 ("libdiscid" ,libdiscid)
9816 ("libmusicbrainz" ,libmusicbrainz)
9817 ("neon" ,neon)))
9818 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9819 (synopsis "Audio music cd ripper")
9820 (description "Sound Juicer extracts audio from compact discs and convert it
9821 into audio files that a personal computer or digital audio player can play.
9822 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9823 mp3, Ogg Vorbis and FLAC")
9824 (license license:gpl2+)))
9825
9826 (define-public soundconverter
9827 (package
9828 (name "soundconverter")
9829 (version "3.0.2")
9830 (source
9831 (origin
9832 (method url-fetch)
9833 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9834 version "/+download/"
9835 "soundconverter-" version ".tar.xz"))
9836
9837 (sha256
9838 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
9839 (build-system glib-or-gtk-build-system)
9840 (arguments
9841 `(#:imported-modules ((guix build python-build-system)
9842 (guix build glib-or-gtk-build-system)
9843 ,@%gnu-build-system-modules)
9844
9845 #:modules ((guix build glib-or-gtk-build-system)
9846 (guix build utils)
9847 ((guix build gnu-build-system) #:prefix gnu:)
9848 ((guix build python-build-system) #:prefix python:))
9849
9850 #:phases
9851 (modify-phases %standard-phases
9852 (add-after 'install 'wrap-soundconverter-for-python
9853 (assoc-ref python:%standard-phases 'wrap))
9854 (add-after 'install 'wrap-soundconverter
9855 (lambda* (#:key inputs outputs #:allow-other-keys)
9856 (let ((out (assoc-ref outputs "out"))
9857 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9858 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9859 (wrap-program (string-append out "/bin/soundconverter")
9860 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9861 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9862 #t)))))
9863 (native-inputs
9864 `(("intltool" ,intltool)
9865 ("pkg-config" ,pkg-config)
9866 ("glib:bin" ,glib "bin")))
9867 (inputs
9868 `(("gtk+" ,gtk+)
9869 ("python" ,python)
9870 ("python-pygobject" ,python-pygobject)
9871 ("gstreamer" ,gstreamer)
9872 ("gst-plugins-base" ,gst-plugins-base)))
9873 (home-page "https://soundconverter.org/")
9874 (synopsis "Convert between audio formats with a graphical interface")
9875 (description
9876 "SoundConverter supports converting between many audio formats including
9877 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9878 configurable file renaming. ")
9879 (license license:gpl3)))
9880
9881 (define-public workrave
9882 (package
9883 (name "workrave")
9884 (version "1.10.42")
9885 (source
9886 (origin
9887 (method git-fetch)
9888 (uri (git-reference
9889 (url "https://github.com/rcaelers/workrave")
9890 (commit (string-append "v" (string-map
9891 (match-lambda (#\. #\_) (chr chr))
9892 version)))))
9893 (file-name (git-file-name name version))
9894 (sha256
9895 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
9896 (build-system glib-or-gtk-build-system)
9897 (arguments
9898 ;; The only tests are maintainer tests (in po/), which fail.
9899 `(#:tests? #f))
9900 (inputs `(("glib" ,glib)
9901 ("gtk+" ,gtk+)
9902 ("gdk-pixbuf" ,gdk-pixbuf)
9903 ("gtkmm" ,gtkmm)
9904 ("glibmm" ,glibmm)
9905 ("libx11" ,libx11)
9906 ("libxtst" ,libxtst)
9907 ("dconf" ,dconf)
9908 ("libice" ,libice)
9909 ("libsm" ,libsm)
9910 ("libxscrnsaver" ,libxscrnsaver)))
9911 (native-inputs `(("boost" ,boost)
9912 ("pkg-config" ,pkg-config)
9913 ("gettext" ,gettext-minimal)
9914 ("autoconf" ,autoconf)
9915 ("autoconf-archive" , autoconf-archive)
9916 ("automake" ,automake)
9917 ("libtool" ,libtool)
9918 ("intltool" ,intltool)
9919 ("gobject-introspection" ,gobject-introspection)
9920 ("python3" ,python-3)
9921 ("python-jinja2" ,python-jinja2)))
9922 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9923 (description
9924 "Workrave is a program that assists in the recovery and prevention of
9925 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9926 micro-pauses and rest breaks, and restricts you to your daily limit.")
9927 (home-page "http://www.workrave.org")
9928 (license license:gpl3+)))
9929
9930 (define-public ghex
9931 (package
9932 (name "ghex")
9933 (version "3.18.4")
9934 (source (origin
9935 (method url-fetch)
9936 (uri (string-append "mirror://gnome/sources/ghex/"
9937 (version-major+minor version) "/"
9938 "ghex-" version ".tar.xz"))
9939 (sha256
9940 (base32
9941 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9942 (build-system meson-build-system)
9943 (arguments
9944 '(#:glib-or-gtk? #t
9945 #:phases
9946 (modify-phases %standard-phases
9947 (add-after 'unpack 'skip-gtk-update-icon-cache
9948 ;; Don't create 'icon-theme.cache'.
9949 (lambda _
9950 (substitute* "meson_post_install.py"
9951 (("gtk-update-icon-cache") (which "true")))
9952 #t)))))
9953 (native-inputs
9954 `(("pkg-config" ,pkg-config)
9955 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9956 ("gnome-common" ,gnome-common)
9957 ("which" ,which)
9958 ("intltool" ,intltool)
9959 ("yelp-tools" ,yelp-tools)
9960 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9961 (inputs
9962 `(("atk" ,atk)
9963 ("gtk" ,gtk+)))
9964 (synopsis "GNOME hexadecimal editor")
9965 (description "The GHex program can view and edit files in two ways:
9966 hexadecimal or ASCII. It is useful for editing binary files in general.")
9967 (home-page "https://wiki.gnome.org/Apps/Ghex")
9968 (license license:gpl2)))
9969
9970 (define-public libdazzle
9971 (package
9972 (name "libdazzle")
9973 (version "3.34.1")
9974 (source (origin
9975 (method url-fetch)
9976 (uri (string-append "mirror://gnome/sources/libdazzle/"
9977 (version-major+minor version) "/"
9978 "libdazzle-" version ".tar.xz"))
9979 (sha256
9980 (base32
9981 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
9982 (build-system meson-build-system)
9983 (arguments
9984 `(#:phases
9985 (modify-phases %standard-phases
9986 (add-before 'check 'pre-check
9987 (lambda _
9988 ;; Tests require a running X server.
9989 (system "Xvfb :1 &")
9990 (setenv "DISPLAY" ":1")
9991 #t)))))
9992 (native-inputs
9993 `(("glib" ,glib "bin") ; glib-compile-resources
9994 ("pkg-config" ,pkg-config)
9995 ;; For tests.
9996 ("xorg-server" ,xorg-server-for-tests)))
9997 (inputs
9998 `(("glib" ,glib)
9999 ("gobject-introspection" ,gobject-introspection)
10000 ("gtk+" ,gtk+)
10001 ("vala" ,vala)))
10002 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10003 (synopsis "Companion library to GObject and Gtk+")
10004 (description "The libdazzle library is a companion library to GObject and
10005 Gtk+. It provides various features that the authors wish were in the
10006 underlying library but cannot for various reasons. In most cases, they are
10007 wildly out of scope for those libraries. In other cases, they are not quite
10008 generic enough to work for everyone.")
10009 (license license:gpl3+)))
10010
10011 (define-public evolution
10012 (package
10013 (name "evolution")
10014 (version "3.34.2")
10015 (source (origin
10016 (method url-fetch)
10017 (uri (string-append "mirror://gnome/sources/evolution/"
10018 (version-major+minor version) "/"
10019 "evolution-" version ".tar.xz"))
10020 (sha256
10021 (base32
10022 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
10023 (build-system cmake-build-system)
10024 (arguments
10025 `(#:imported-modules (,@%cmake-build-system-modules
10026 (guix build glib-or-gtk-build-system))
10027 #:modules ((guix build cmake-build-system)
10028 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10029 (guix build utils))
10030 #:configure-flags
10031 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10032 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10033 ; in four years and cannot be built.
10034 #:phases
10035 (modify-phases %standard-phases
10036 ;; The build system attempts to install user interface modules to the
10037 ;; output directory of the "evolution-data-server" package. This
10038 ;; change redirects that change.
10039 (add-after 'unpack 'patch-ui-module-dir
10040 (lambda* (#:key outputs #:allow-other-keys)
10041 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10042 (("\\$\\{edsuimoduledir\\}")
10043 (string-append (assoc-ref outputs "out")
10044 "/lib/evolution-data-server/ui-modules")))
10045 #t))
10046 (add-after 'install 'glib-or-gtk-compile-schemas
10047 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10048 (add-after 'install 'glib-or-gtk-wrap
10049 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10050 (native-inputs
10051 `(("glib" ,glib "bin") ; glib-mkenums
10052 ("pkg-config" ,pkg-config)
10053 ("intltool" ,intltool)
10054 ("itstool" ,itstool)))
10055 (inputs
10056 `(("enchant" ,enchant)
10057 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10058 ("gcr" ,gcr)
10059 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10060 ("gnome-autoar" ,gnome-autoar)
10061 ("gnome-desktop" ,gnome-desktop)
10062 ("gspell" ,gspell)
10063 ("highlight" ,highlight)
10064 ("libcanberra" ,libcanberra)
10065 ("libgweather" ,libgweather)
10066 ("libnotify" ,libnotify)
10067 ("libsoup" ,libsoup)
10068 ("nss" ,nss)
10069 ("openldap" ,openldap)
10070 ("webkitgtk" ,webkitgtk)
10071 ("ytnef" ,ytnef)))
10072 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10073 (synopsis "Manage your email, contacts and schedule")
10074 (description "Evolution is a personal information management application
10075 that provides integrated mail, calendaring and address book
10076 functionality.")
10077 ;; See COPYING for details.
10078 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10079 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10080 license:lgpl2.1+)))) ; smime/lib/*
10081
10082 (define-public gthumb
10083 (package
10084 (name "gthumb")
10085 (version "3.8.2")
10086 (source (origin
10087 (method url-fetch)
10088 (uri (string-append "mirror://gnome/sources/gthumb/"
10089 (version-major+minor version) "/"
10090 "gthumb-" version ".tar.xz"))
10091 (sha256
10092 (base32
10093 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
10094 (build-system meson-build-system)
10095 (arguments
10096 `(#:glib-or-gtk? #t
10097 #:configure-flags
10098 ;; Ensure the RUNPATH contains all installed library locations.
10099 (list (string-append "-Dc_link_args=-Wl,-rpath="
10100 (assoc-ref %outputs "out")
10101 "/lib/gthumb/extensions")
10102 (string-append "-Dcpp_link_args=-Wl,-rpath="
10103 (assoc-ref %outputs "out")
10104 "/lib/gthumb/extensions"))))
10105 (native-inputs
10106 `(("pkg-config" ,pkg-config)
10107 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10108 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10109 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10110 ("intltool" ,intltool)
10111 ("itstool" ,itstool)))
10112 (inputs
10113 `(("exiv2" ,exiv2)
10114 ("gtk" ,gtk+)
10115 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10116 ("gstreamer" ,gstreamer)
10117 ("clutter" ,clutter)
10118 ("clutter-gst" ,clutter-gst)
10119 ("clutter-gtk" ,clutter-gtk)
10120 ("libjpeg" ,libjpeg-turbo)
10121 ("libtiff" ,libtiff)
10122 ("libraw" ,libraw)))
10123 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10124 (synopsis "GNOME image viewer and browser")
10125 (description "GThumb is an image viewer, browser, organizer, editor and
10126 advanced image management tool")
10127 (license license:gpl2+)))
10128
10129 (define-public terminator
10130 (package
10131 (name "terminator")
10132 (version "1.91")
10133 (source (origin
10134 (method url-fetch)
10135 (uri (string-append "https://launchpad.net/" name "/"
10136 "gtk3/" version "/" "+download/"
10137 name "-" version ".tar.gz"))
10138 (sha256
10139 (base32
10140 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
10141 (build-system python-build-system)
10142 (native-inputs
10143 `(("intltool" ,intltool)
10144 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10145 ("gettext" ,gettext-minimal)
10146 ("pkg-config" ,pkg-config)))
10147 (inputs
10148 `(("cairo" ,cairo)
10149 ("gobject-introspection" ,gobject-introspection)
10150 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10151 ("python2-pycairo" ,python2-pycairo)
10152 ("python2-pygobject" ,python2-pygobject)
10153 ("python2-psutil" ,python2-psutil)
10154 ("vte" ,vte)))
10155 (arguments
10156 `(#:python ,python-2 ; Python 3 isn't supported
10157 #:imported-modules ((guix build glib-or-gtk-build-system)
10158 ,@%python-build-system-modules)
10159 #:modules ((guix build python-build-system)
10160 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10161 (guix build utils))
10162 #:phases
10163 (modify-phases %standard-phases
10164 (add-after
10165 'install 'wrap-program
10166 (lambda* (#:key outputs #:allow-other-keys)
10167 (let ((prog (string-append (assoc-ref outputs "out")
10168 "/bin/terminator")))
10169 (wrap-program prog
10170 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
10171 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10172 #t)))
10173 (add-after 'wrap-program 'glib-or-gtk-wrap
10174 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10175 (home-page "https://gnometerminator.blogspot.com/")
10176 (synopsis "Store and run multiple GNOME terminals in one window")
10177 (description
10178 "Terminator allows you to run multiple GNOME terminals in a grid and
10179 +tabs, and it supports drag and drop re-ordering of terminals.")
10180 (license license:gpl2)))
10181
10182 (define-public libhandy
10183 (package
10184 (name "libhandy")
10185 (version "0.0.12")
10186 (source
10187 (origin
10188 (method git-fetch)
10189 (uri (git-reference
10190 (url "https://source.puri.sm/Librem5/libhandy")
10191 (commit (string-append "v" version))))
10192 (file-name (git-file-name name version))
10193 (sha256
10194 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
10195 (build-system meson-build-system)
10196 (arguments
10197 `(#:configure-flags
10198 '("-Dglade_catalog=disabled"
10199 "-Dgtk_doc=true")
10200 #:phases
10201 (modify-phases %standard-phases
10202 (add-before 'check 'pre-check
10203 (lambda _
10204 ;; Tests require a running X server.
10205 (system "Xvfb :1 &")
10206 (setenv "DISPLAY" ":1")
10207 #t)))))
10208 (inputs
10209 `(("gtk+" ,gtk+)))
10210 (native-inputs
10211 `(("glib:bin" ,glib "bin")
10212 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10213 ("vala" ,vala)
10214 ("gtk-doc" ,gtk-doc)
10215 ("pkg-config" ,pkg-config)
10216 ("gettext" ,gettext-minimal)
10217
10218 ;; Test suite dependencies.
10219 ("xorg-server" ,xorg-server-for-tests)
10220 ("hicolor-icon-theme" ,hicolor-icon-theme)))
10221 (home-page "https://source.puri.sm/Librem5/libhandy")
10222 (synopsis "Library full of GTK+ widgets for mobile phones")
10223 (description "The aim of the handy library is to help with developing user
10224 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10225 for usage on small and big screens.")
10226 (license license:lgpl2.1+)))
10227
10228 (define-public libgit2-glib
10229 (package
10230 (name "libgit2-glib")
10231 (version "0.99.0.1")
10232 (source (origin
10233 (method url-fetch)
10234 (uri (string-append "mirror://gnome/sources/" name "/"
10235 (version-major+minor version) "/"
10236 name "-" version ".tar.xz"))
10237 (sha256
10238 (base32
10239 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10240 (build-system meson-build-system)
10241 (native-inputs
10242 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
10243 ("gobject-introspection" ,gobject-introspection)
10244 ("pkg-config" ,pkg-config)
10245 ("python-pygobject" ,python-pygobject)
10246 ("python-wrapper" ,python-wrapper)
10247 ("vala" ,vala)))
10248 (inputs
10249 `(("glib" ,glib)
10250 ("libssh2" ,libssh2)))
10251 (propagated-inputs
10252 `(;; In Requires of libgit2-glib.pc.
10253 ("libgit2" ,libgit2)))
10254 (synopsis "GLib wrapper around the libgit2 Git access library")
10255 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
10256 access library. It only implements the core plumbing functions, not really the
10257 higher level porcelain stuff.")
10258 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
10259 (license license:gpl2+)))
10260
10261 (define-public gitg
10262 (package
10263 (name "gitg")
10264 (version "3.32.1")
10265 (source (origin
10266 (method url-fetch)
10267 (uri (string-append "mirror://gnome/sources/" name "/"
10268 (version-major+minor version) "/"
10269 name "-" version ".tar.xz"))
10270 (sha256
10271 (base32
10272 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
10273 (build-system meson-build-system)
10274 (arguments
10275 `(#:glib-or-gtk? #t
10276 #:phases
10277 (modify-phases %standard-phases
10278 (add-after 'unpack 'disable-post-install-partially
10279 (lambda _
10280 (substitute* "meson_post_install.py"
10281 (("'python'") ; there are no python sources to compile
10282 (string-append "'" (which "true") "'"))
10283 (("gtk-update-icon-cache") (which "true")))
10284 #t))
10285 (add-after 'unpack 'fix-test-sources
10286 (lambda _
10287 (substitute* "tests/libgitg/test-commit.vala"
10288 (("/bin/bash") (which "bash")))
10289 #t))
10290 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10291 (lambda* (#:key outputs #:allow-other-keys)
10292 (let ((prog (string-append (assoc-ref outputs "out")
10293 "/bin/gitg")))
10294 (wrap-program prog
10295 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10296 #t))))))
10297 (inputs
10298 `(("glib" ,glib)
10299 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10300 ("gtk+" ,gtk+)
10301 ("gtkspell3" ,gtkspell3)
10302 ("gtksourceview" ,gtksourceview-3)
10303 ("json-glib" ,json-glib)
10304 ("libdazzle" ,libdazzle)
10305 ("libgee" ,libgee)
10306 ("libgit2-glib" ,libgit2-glib)
10307 ("libpeas" ,libpeas)
10308 ("libsecret" ,libsecret)
10309 ("libsoup" ,libsoup)
10310 ("libxml2" ,libxml2)))
10311 (native-inputs
10312 `(("glib:bin" ,glib "bin")
10313 ("gtk+:bin" ,gtk+ "bin")
10314 ("gobject-introspection" ,gobject-introspection)
10315 ("intltool" ,intltool)
10316 ("pkg-config" ,pkg-config)
10317 ("vala" ,vala)))
10318 (synopsis "Graphical user interface for git")
10319 (description
10320 "gitg is a graphical user interface for git. It aims at being a small,
10321 fast and convenient tool to visualize the history of git repositories.
10322 Besides visualization, gitg also provides several utilities to manage your
10323 repository and commit your work.")
10324 (home-page "https://wiki.gnome.org/Apps/Gitg")
10325 (license license:gpl2+)))
10326
10327 (define-public gamin
10328 (package
10329 (name "gamin")
10330 (version "0.1.10")
10331 (source (origin
10332 (method url-fetch)
10333 (uri (string-append "mirror://gnome/sources/" name "/"
10334 (version-major+minor version) "/"
10335 name "-" version ".tar.bz2"))
10336 (sha256
10337 (base32
10338 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
10339 (build-system gnu-build-system)
10340 (arguments
10341 `(#:phases
10342 (modify-phases %standard-phases
10343 (add-after 'unpack 'remove-deprecated-macro
10344 (lambda _
10345 (substitute* '("server/gam_node.c"
10346 "server/gam_subscription.h"
10347 "server/gam_node.h"
10348 "server/gam_subscription.c")
10349 (("G_CONST_RETURN") "const"))
10350 #t)))))
10351 (inputs
10352 `(("glib" ,glib)))
10353 (native-inputs
10354 `(("intltool" ,intltool)
10355 ("pkg-config" ,pkg-config)))
10356 (home-page "https://people.gnome.org/~veillard/gamin/")
10357 (synopsis "File alteration monitor")
10358 (description
10359 "Gamin is a file and directory monitoring system defined to be a subset
10360 of the FAM (File Alteration Monitor) system. This is a service provided by a
10361 library which detects when a file or a directory has been modified.")
10362 (license license:gpl2+)))
10363
10364 (define-public gnome-mahjongg
10365 (package
10366 (name "gnome-mahjongg")
10367 (version "3.35.1")
10368 (source (origin
10369 (method git-fetch)
10370 (uri (git-reference
10371 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
10372 (commit version)))
10373 (file-name (git-file-name name version))
10374 (sha256
10375 (base32
10376 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
10377 (build-system meson-build-system)
10378 (arguments
10379 `(#:glib-or-gtk? #t))
10380 (native-inputs
10381 `(("appstream-glib" ,appstream-glib)
10382 ("gettext" ,gettext-minimal)
10383 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
10384 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
10385 ("itstool" ,itstool)
10386 ("pkg-config" ,pkg-config)
10387 ("vala" ,vala)))
10388 (propagated-inputs
10389 `(("dconf" ,dconf)))
10390 (inputs
10391 `(("glib" ,glib)
10392 ("gtk+" ,gtk+)
10393 ("librsvg" ,librsvg)))
10394 (synopsis "Mahjongg tile-matching game")
10395 (description "GNOME Mahjongg is a game based on the classic Chinese
10396 tile-matching game Mahjong. It features multiple board layouts, tile themes,
10397 and a high score table.")
10398 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
10399 (license license:gpl2+)))
10400
10401 (define-public gnome-themes-extra
10402 (package
10403 (name "gnome-themes-extra")
10404 (version "3.28")
10405 (source
10406 (origin
10407 (method url-fetch)
10408 (uri (string-append "mirror://gnome/sources/" name "/"
10409 (version-major+minor version) "/" name "-"
10410 version ".tar.xz"))
10411 (sha256
10412 (base32
10413 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
10414 (build-system gnu-build-system)
10415 (arguments
10416 '(#:configure-flags
10417 ;; Don't create 'icon-theme.cache'.
10418 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
10419 (true (string-append coreutils "/bin/true")))
10420 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
10421 (native-inputs
10422 `(("glib:bin" ,glib "bin")
10423 ("intltool" ,intltool)
10424 ("pkg-config" ,pkg-config)))
10425 (inputs
10426 `(("glib" ,glib)
10427 ("gtk+" ,gtk+)
10428 ("gtk+-2" ,gtk+-2)
10429 ("librsvg" ,librsvg)
10430 ("libxml2" ,libxml2)))
10431 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
10432 (synopsis "GNOME Extra Themes")
10433 (description "This package provides themes and related elements that don't
10434 really fit in other upstream packages. It offers legacy support for GTK+ 2
10435 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
10436 index files needed for Adwaita to be used outside of GNOME.")
10437 (license license:lgpl2.1+)))
10438
10439 (define-public polari
10440 (package
10441 (name "polari")
10442 (version "3.32.2")
10443 (source (origin
10444 (method url-fetch)
10445 (uri (string-append "mirror://gnome/sources/polari/"
10446 (version-major+minor version)
10447 "/polari-" version ".tar.xz"))
10448 (sha256
10449 (base32
10450 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
10451 (build-system meson-build-system)
10452 (arguments
10453 `(#:glib-or-gtk? #t
10454 #:phases
10455 (modify-phases %standard-phases
10456 (add-after 'unpack 'skip-gtk-update-icon-cache
10457 (lambda _
10458 (substitute* "meson/meson-postinstall.sh"
10459 (("gtk-update-icon-cache") (which "true")))
10460 #t))
10461 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10462 (lambda* (#:key outputs #:allow-other-keys)
10463 (let ((prog (string-append (assoc-ref outputs "out")
10464 "/bin/polari")))
10465 (wrap-program prog
10466 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10467 #t))))))
10468 (inputs
10469 `(("glib" ,glib)
10470 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10471 ("gspell" ,gspell)
10472 ("gtk+" ,gtk+)
10473 ("gjs" ,gjs)
10474 ("libsecret" ,libsecret)
10475 ("libsoup" ,libsoup)
10476 ("telepathy-glib" ,telepathy-glib)
10477 ("telepathy-logger" ,telepathy-logger)))
10478 (native-inputs
10479 `(("glib:bin" ,glib "bin")
10480 ("gobject-introspection" ,gobject-introspection)
10481 ("intltool" ,intltool)
10482 ("pkg-config" ,pkg-config)
10483 ("yelp-tools" ,yelp-tools)))
10484 (propagated-inputs
10485 `(("telepathy-idle" ,telepathy-idle)
10486 ("telepathy-mission-control" ,telepathy-mission-control)))
10487 (synopsis "Simple IRC Client")
10488 (description
10489 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10490 integrate seamlessly with the GNOME desktop.")
10491 (home-page "https://wiki.gnome.org/Apps/Polari")
10492 (license license:gpl2+)))
10493
10494 (define-public gnome-boxes
10495 (package
10496 (name "gnome-boxes")
10497 (version "3.36.6")
10498 (source
10499 (origin
10500 (method url-fetch)
10501 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10502 (version-major+minor version) "/"
10503 "gnome-boxes-" version ".tar.xz"))
10504 (sha256
10505 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
10506 (build-system meson-build-system)
10507 (arguments
10508 '(#:glib-or-gtk? #t
10509 #:configure-flags (list "-Drdp=false"
10510 (string-append "-Dc_link_args=-Wl,-rpath="
10511 (assoc-ref %outputs "out")
10512 "/lib/gnome-boxes"))))
10513 (native-inputs
10514 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10515 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10516 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10517 ("itstool" ,itstool)
10518 ("intltool" ,intltool)
10519 ("vala" ,vala)
10520 ("pkg-config" ,pkg-config)))
10521 (inputs
10522 `(("libarchive" ,libarchive)
10523 ("glib-networking" ,glib-networking) ;for TLS support
10524 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10525 ("gtk" ,gtk+)
10526 ("gtk-vnc" ,gtk-vnc)
10527 ("libosinfo" ,libosinfo)
10528 ("libsecret" ,libsecret)
10529 ("libsoup" ,libsoup)
10530 ("libusb" ,libusb)
10531 ("libvirt" ,libvirt)
10532 ("libvirt-glib" ,libvirt-glib)
10533 ("libxml" ,libxml2)
10534 ("spice-gtk" ,spice-gtk)
10535 ("sparql-query" ,sparql-query)
10536 ("vte" ,vte)
10537 ("webkitgtk" ,webkitgtk)
10538 ("tracker" ,tracker)
10539 ("libgudev" ,libgudev)))
10540 (home-page "https://wiki.gnome.org/Apps/Boxes")
10541 (synopsis "View, access, and manage remote and virtual systems")
10542 (description "GNOME Boxes is a simple application to view, access, and
10543 manage remote and virtual systems. Note that this application requires the
10544 @code{libvirt} and @code{virtlog} daemons to run. Use the command
10545 @command{info '(guix) Virtualization Services'} to learn how to configure
10546 these services on the Guix System.")
10547 (license (list
10548 ;; For data/icons/empty-boxes.png.
10549 license:cc-by2.0
10550 ;; For all others.
10551 license:lgpl2.0+))))
10552
10553 (define-public geary
10554 (package
10555 (name "geary")
10556 (version "3.34.1")
10557 (source (origin
10558 (method git-fetch)
10559 (uri (git-reference
10560 (url "https://gitlab.gnome.org/GNOME/geary")
10561 (commit version)))
10562 (file-name (git-file-name name version))
10563 (sha256
10564 (base32
10565 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10566 (build-system meson-build-system)
10567 (arguments
10568 `(#:glib-or-gtk? #t
10569 #:phases (modify-phases %standard-phases
10570 (add-after 'unpack 'disable-failing-tests
10571 (lambda _
10572 (substitute* "test/meson.build"
10573 (("test\\('client-tests', geary_test_client_bin\\)")
10574 ""))
10575 #t))
10576 (add-after 'unpack 'disable-postinstall-script
10577 (lambda _
10578 (substitute* "meson.build"
10579 (("meson.add_install_script\\(\
10580 join_paths\\('build-aux', 'post_install.py'\\)\\)")
10581 ""))
10582 #t))
10583 (add-before 'check 'setup-xvfb
10584 (lambda _
10585 (system "Xvfb :1 &")
10586 (setenv "DISPLAY" ":1")
10587 #t)))))
10588 (inputs
10589 `(("enchant" ,enchant)
10590 ("folks" ,folks)
10591 ("gcr" ,gcr)
10592 ("glib" ,glib)
10593 ("gmime" ,gmime-2.6)
10594 ("gnome-online-accounts:lib"
10595 ,gnome-online-accounts "lib")
10596 ("gspell" ,gspell)
10597 ("gtk+" ,gtk+)
10598 ("iso-codes" ,iso-codes)
10599 ("json-glib" ,json-glib)
10600 ("libcanberra" ,libcanberra)
10601 ("libgee" ,libgee)
10602 ("libhandy" ,libhandy)
10603 ("libpeas" ,libpeas)
10604 ("libsecret" ,libsecret)
10605 ("libunwind" ,libunwind)
10606 ("sqlite" ,sqlite)
10607 ("webkitgtk" ,webkitgtk)
10608 ("ytnef" ,ytnef)))
10609 (native-inputs
10610 `(("appstream-glib" ,appstream-glib)
10611 ("cmake-minimal" ,cmake-minimal)
10612 ("desktop-file-utils" ,desktop-file-utils)
10613 ("gettext" ,gettext-minimal)
10614 ("glib:bin" ,glib "bin")
10615 ("gobject-introspection" ,gobject-introspection)
10616 ("itstool" ,itstool)
10617 ("libarchive" ,libarchive)
10618 ("libxml2" ,libxml2)
10619 ("pkg-config" ,pkg-config)
10620 ("vala" ,vala)
10621 ("xvfb" ,xorg-server-for-tests)))
10622 (synopsis "GNOME email application built around conversations")
10623 (description
10624 "Geary collects related messages together into conversations,
10625 making it easy to find and follow your discussions. Full-text and keyword
10626 search makes it easy to find the email you are looking for. Geary's
10627 full-featured composer lets you send rich, styled text with images, links, and
10628 lists, but also send lightweight, easy to read text messages. Geary
10629 automatically picks up your existing GNOME Online Accounts, and adding more is
10630 easy. Geary has a clean, fast, modern interface that works like you want it
10631 to.")
10632 (home-page "https://wiki.gnome.org/Apps/Geary")
10633 (license (list
10634 ;; geary
10635 license:lgpl2.1+
10636 ;; icons
10637 license:cc-by3.0
10638 license:cc-by-sa3.0
10639 license:public-domain
10640 ;; snowball
10641 license:bsd-2))))
10642
10643 (define-public glabels
10644 (package
10645 (name "glabels")
10646 (version "3.4.1")
10647 (source
10648 (origin
10649 (method url-fetch)
10650 (uri (string-append "mirror://gnome/sources/" name "/"
10651 (version-major+minor version) "/"
10652 "glabels-" version ".tar.xz"))
10653 (sha256
10654 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10655 (build-system glib-or-gtk-build-system)
10656 (native-inputs
10657 `(("gettext" ,gettext-minimal)
10658 ("glib:bin" ,glib "bin")
10659 ("intltool" ,intltool)
10660 ("itstool" ,itstool)
10661 ("pkg-config" ,pkg-config)))
10662 (inputs
10663 `(("gtk+" ,gtk+)
10664 ("librsvg" ,librsvg)
10665 ("libxml2" ,libxml2)))
10666 (home-page "https://glabels.org/")
10667 (synopsis "Program for creating labels and business cards")
10668 (description
10669 "gLabels is a program for creating labels and business cards. It is
10670 designed to work with various laser/ink-jet peel-off label and business
10671 card sheets that you’ll find at most office supply stores.")
10672 (license license:gpl3+)))
10673
10674 (define-public libratbag
10675 (package
10676 (name "libratbag")
10677 (version "0.13")
10678 (source
10679 (origin
10680 (method git-fetch)
10681 (uri (git-reference
10682 (url "https://github.com/libratbag/libratbag")
10683 (commit (string-append "v" version))))
10684 (file-name (git-file-name name version))
10685 (sha256
10686 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10687 (build-system meson-build-system)
10688 (arguments
10689 `(#:configure-flags
10690 (list "-Dsystemd=false"
10691 "-Dlogind-provider=elogind")
10692 #:phases
10693 (modify-phases %standard-phases
10694 (add-after 'install 'wrap
10695 (lambda* (#:key inputs outputs #:allow-other-keys)
10696 (let* ((out (assoc-ref outputs "out"))
10697 (site (string-append
10698 "/lib/python"
10699 ,(version-major+minor (package-version python))
10700 "/site-packages"))
10701 (evdev (string-append
10702 (assoc-ref inputs "python-evdev") site))
10703 (pygo (string-append
10704 (assoc-ref inputs "python-pygobject") site))
10705 (python-wrap
10706 `("PYTHONPATH" = (,evdev ,pygo))))
10707 (wrap-program (string-append out "/bin/" "ratbagctl")
10708 python-wrap)
10709 #t))))))
10710 (native-inputs
10711 `(("check" ,check)
10712 ("pkg-config" ,pkg-config)
10713 ("swig" ,swig)
10714 ("valgrind" ,valgrind)))
10715 (inputs
10716 `(("glib" ,glib)
10717 ("json-glib" ,json-glib)
10718 ("libevdev" ,libevdev)
10719 ("libsystemd" ,elogind)
10720 ("libunistring" ,libunistring)
10721 ("python-evdev" ,python-evdev)
10722 ("python-pygobject" ,python-pygobject)
10723 ("udev" ,eudev)))
10724 (home-page "https://github.com/libratbag/libratbag")
10725 (synopsis "DBus daemon and utility for configuring gaming mice")
10726 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10727 configure input devices, mainly gaming mice. The daemon provides a generic
10728 way to access the various features exposed by these mice and abstracts away
10729 hardware-specific and kernel-specific quirks. There is also the
10730 @command{ratbagctl} command line interface for configuring devices.
10731
10732 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10733 Steelseries.
10734
10735 The ratbagd DBus service can be enabled by adding the following service to
10736 your operating-system definition:
10737
10738 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10739 (license license:expat)))
10740
10741 (define-public piper
10742 (package
10743 (name "piper")
10744 (version "0.5")
10745 (source
10746 (origin
10747 (method git-fetch)
10748 (uri (git-reference
10749 (url "https://github.com/libratbag/piper")
10750 (commit version)))
10751 (sha256
10752 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10753 (file-name (git-file-name name version))))
10754 (build-system meson-build-system)
10755 (native-inputs
10756 `(("gettext" ,gettext-minimal)
10757 ("glib:bin" ,glib "bin")
10758 ("gobject-introspection" ,gobject-introspection)
10759 ("pkg-config" ,pkg-config)
10760 ("python-flake8" ,python-flake8)))
10761 (inputs
10762 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10763 ("gtk" ,gtk+)
10764 ("gtk:bin" ,gtk+ "bin")
10765 ("librsvg" ,librsvg)
10766 ("python-evdev" ,python-evdev)
10767 ("python-lxml" ,python-lxml)
10768 ("python-pycairo" ,python-pycairo)
10769 ("python-pygobject" ,python-pygobject)))
10770 (arguments
10771 `(#:imported-modules ((guix build python-build-system)
10772 ,@%meson-build-system-modules)
10773 #:modules (((guix build python-build-system) #:prefix python:)
10774 (guix build meson-build-system)
10775 (guix build utils))
10776 #:phases
10777 (modify-phases %standard-phases
10778 (add-after 'unpack 'dont-update-gtk-icon-cache
10779 (lambda _
10780 (substitute* "meson.build"
10781 (("meson.add_install_script('meson_install.sh')") ""))
10782 #t))
10783 ;; TODO: Switch to wrap-script when it is fixed.
10784 (add-after 'install 'wrap-python
10785 (assoc-ref python:%standard-phases 'wrap))
10786 (add-after 'wrap-python 'wrap
10787 (lambda* (#:key outputs #:allow-other-keys)
10788 (wrap-program
10789 (string-append (assoc-ref outputs "out" )"/bin/piper")
10790 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10791 #t)))))
10792 (home-page "https://github.com/libratbag/piper/")
10793 (synopsis "Configure bindings and LEDs on gaming mice")
10794 (description "Piper is a GTK+ application for configuring gaming mice with
10795 onboard configuration for key bindings via libratbag. Piper requires
10796 a @command{ratbagd} daemon running with root privileges. It can be run
10797 manually as root, but is preferably configured as a DBus service that can
10798 launch on demand. This can be configured by enabling the following service,
10799 provided there is a DBus service present:
10800
10801 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10802 (license license:gpl2)))
10803
10804 (define-public parlatype
10805 (package
10806 (name "parlatype")
10807 (version "2.1")
10808 (source
10809 (origin
10810 (method git-fetch)
10811 (uri (git-reference
10812 (url "https://github.com/gkarsay/parlatype.git")
10813 (commit (string-append "v" version))))
10814 (file-name (git-file-name name version))
10815 (sha256
10816 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
10817 (build-system meson-build-system)
10818 (arguments
10819 `(#:glib-or-gtk? #t
10820 #:tests? #f ;require internet access
10821 #:phases
10822 (modify-phases %standard-phases
10823 (add-after 'install 'wrap-parlatype
10824 ;; Add gstreamer plugin provided in this package to system's
10825 ;; plugins.
10826 (lambda* (#:key outputs #:allow-other-keys)
10827 (let* ((out (assoc-ref outputs "out"))
10828 (gst-plugin-path (string-append
10829 out "/lib/gstreamer-1.0/"
10830 ":"
10831 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10832 (wrap-program (string-append out "/bin/parlatype")
10833 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10834 #t)))))
10835 (native-inputs
10836 `(("appstream-glib" ,appstream-glib)
10837 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10838 ("gettext" ,gettext-minimal)
10839 ("glib" ,glib "bin") ;for glib-compile-resources
10840 ("pkg-config" ,pkg-config)
10841 ("yelp-tools" ,yelp-tools)))
10842 (inputs
10843 `(("gst-plugins-base" ,gst-plugins-base)
10844 ("gst-plugins-good" ,gst-plugins-good)
10845 ("gstreamer" ,gstreamer)
10846 ("gtk+" ,gtk+)
10847 ("pocketsphinx" ,pocketsphinx)
10848 ("pulseaudio" ,pulseaudio)
10849 ("sphinxbase" ,sphinxbase)))
10850 (home-page "http://gkarsay.github.io/parlatype/")
10851 (synopsis "GNOME audio player for transcription")
10852 (description "Parlatype is an audio player for the GNOME desktop
10853 environment. Its main purpose is the manual transcription of spoken
10854 audio files.")
10855 (license license:gpl3+)))
10856
10857 (define-public jsonrpc-glib
10858 (package
10859 (name "jsonrpc-glib")
10860 (version "3.34.0")
10861 (source (origin
10862 (method url-fetch)
10863 (uri (string-append "mirror://gnome/sources/" name "/"
10864 (version-major+minor version) "/"
10865 name "-" version ".tar.xz"))
10866 (sha256
10867 (base32
10868 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10869 (build-system meson-build-system)
10870 (inputs
10871 `(("json-glib" ,json-glib)
10872 ("glib" ,glib)))
10873 (native-inputs
10874 `(("pkg-config" ,pkg-config)
10875 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10876 ("gobject-introspection" ,gobject-introspection)
10877 ("vala" ,vala)))
10878 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10879 (synopsis "JSON-RPC library for GLib")
10880 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10881 peers in either a synchronous or asynchronous fashion. It also allows
10882 communicating using the GVariant serialization format instead of JSON when
10883 both peers support it. You might want that when communicating on a single
10884 host to avoid parser overhead and memory-allocator fragmentation.")
10885 (license license:lgpl2.1+)))
10886
10887 (define-public feedbackd
10888 (package
10889 (name "feedbackd")
10890 (version "0.0.0+git20200527")
10891 (source (origin
10892 (method git-fetch)
10893 (uri (git-reference
10894 (url "https://source.puri.sm/Librem5/feedbackd.git")
10895 (commit (string-append "v" version))))
10896 (file-name (git-file-name name version))
10897 (sha256
10898 (base32
10899 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
10900 (build-system meson-build-system)
10901 (native-inputs
10902 `(("glib:bin" ,glib "bin")
10903 ("gobject-introspection" ,gobject-introspection)
10904 ("pkg-config" ,pkg-config)
10905 ("vala" ,vala)))
10906 (inputs
10907 `(("dbus" ,dbus)
10908 ("gsound" ,gsound)
10909 ("json-glib" ,json-glib)
10910 ("libgudev" ,libgudev)))
10911 (propagated-inputs
10912 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
10913 (synopsis "Haptic/visual/audio feedback via DBus")
10914 (description "Feedbackd provides a DBus daemon to act on events to provide
10915 haptic, visual and audio feedback. It offers the libfeedbackd library and
10916 GObject introspection bindings.")
10917 (home-page "https://source.puri.sm/Librem5/feedbackd")
10918 (license (list license:lgpl2.1+ ; libfeedbackd
10919 license:lgpl3+)))) ; the rest
10920
10921 (define-public sysprof
10922 (package
10923 (name "sysprof")
10924 (version "3.34.1")
10925 (source (origin
10926 (method url-fetch)
10927 (uri (string-append "mirror://gnome/sources/" name "/"
10928 (version-major+minor version) "/"
10929 name "-" version ".tar.xz"))
10930 (sha256
10931 (base32
10932 "1l4kr1av7933vb4zql9c5lgzivlw64hyky4nr8xin1v5if6vnjw4"))))
10933 (build-system meson-build-system)
10934 (arguments
10935 `(#:configure-flags
10936 (list (string-append "-Dsystemdunitdir="
10937 %output
10938 "/share/systemd"))
10939 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
10940 #:phases
10941 (modify-phases %standard-phases
10942 (add-after 'unpack 'patch-install-script
10943 (lambda _
10944 (substitute* "build-aux/meson/post_install.sh"
10945 (("gtk-update-icon-cache") "true")
10946 (("update-desktop-database") "true"))
10947 #t)))))
10948 (inputs
10949 `(("glib" ,glib)
10950 ("gtk+" ,gtk+)
10951 ("libdazzle" ,libdazzle)
10952 ("polkit" ,polkit)))
10953 (native-inputs
10954 `(("gettext" ,gettext-minimal)
10955 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
10956 ("itstool" ,itstool)
10957 ("pkg-config" ,pkg-config)
10958 ("xmllint" ,libxml2)))
10959 (home-page "http://www.sysprof.com/")
10960 (synopsis "System-wide performance profiler")
10961 (description "Sysprof is a sampling profiler that uses a kernel module
10962 to generate stacktraces which are then interpreted by the userspace program
10963 @command{sysprof}.")
10964 (license license:gpl3+)))
10965
10966 (define-public gnome-builder
10967 (package
10968 (name "gnome-builder")
10969 (version "3.36.1")
10970 (source (origin
10971 (method url-fetch)
10972 (uri (string-append "mirror://gnome/sources/" name "/"
10973 (version-major+minor version) "/"
10974 name "-" version ".tar.xz"))
10975 (sha256
10976 (base32
10977 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
10978 (build-system meson-build-system)
10979 (arguments
10980 `(#:configure-flags (list "-Dnetwork_tests=false"
10981 ;; TODO: Enable all plugins...
10982 "-Dplugin_clang=false"
10983 "-Dplugin_flatpak=false"
10984 "-Dplugin_glade=false"
10985 ;; ... except this one.
10986 "-Dplugin_update_manager=false")
10987 #:phases
10988 (modify-phases %standard-phases
10989 (add-after 'unpack 'patch-meson
10990 (lambda* (#:key inputs #:allow-other-keys)
10991 (substitute* "build-aux/meson/post_install.py"
10992 (("gtk-update-icon-cache") "true")
10993 (("update-desktop-database") "true"))
10994 (substitute* "src/libide/meson.build"
10995 (("/usr/lib")
10996 (string-append (assoc-ref inputs "python-pygobject")
10997 "/lib")))
10998 #t))
10999 (add-before 'check 'pre-check
11000 (lambda _
11001 (system "Xvfb :1 &")
11002 (setenv "DISPLAY" ":1")
11003 #t)))))
11004 (inputs
11005 `(("devhelp" ,devhelp)
11006 ("gspell" ,gspell)
11007 ("gtk+" ,gtk+)
11008 ("json-glib" ,json-glib)
11009 ("jsonrpc-glib" ,jsonrpc-glib)
11010 ("libdazzle" ,libdazzle)
11011 ("libgit2-glib" ,libgit2-glib)
11012 ("libpeas" ,libpeas)
11013 ("python-pygobject" ,python-pygobject)
11014 ("sysprof" ,sysprof)
11015 ("template-glib" ,template-glib)
11016 ("vte" ,vte)
11017 ("webkitgtk" ,webkitgtk)))
11018 (propagated-inputs
11019 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11020 (native-inputs
11021 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11022 ("glib:bin" ,glib "bin")
11023 ("gettext" ,gettext-minimal)
11024 ("pkg-config" ,pkg-config)
11025 ("vala" ,vala)
11026 ("xorg-server" ,xorg-server-for-tests)))
11027 (home-page "https://wiki.gnome.org/Apps/Builder")
11028 (synopsis "Toolsmith for GNOME-based applications")
11029 (description "Builder aims to be an integrated development
11030 environment (IDE) for writing GNOME-based software. It features fuzzy search,
11031 auto-completion, a mini code map, documentation browsing, Git integration, an
11032 integrated profiler via Sysprof, debugging support, and more.")
11033 (license license:gpl3+)))