gnu: gnome-shell: Fix CVE-2020-17489.
[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, 2021 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017, 2020 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
54 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
58 ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
59 ;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org>
60 ;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org>
61 ;;;
62 ;;; This file is part of GNU Guix.
63 ;;;
64 ;;; GNU Guix is free software; you can redistribute it and/or modify it
65 ;;; under the terms of the GNU General Public License as published by
66 ;;; the Free Software Foundation; either version 3 of the License, or (at
67 ;;; your option) any later version.
68 ;;;
69 ;;; GNU Guix is distributed in the hope that it will be useful, but
70 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
71 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
72 ;;; GNU General Public License for more details.
73 ;;;
74 ;;; You should have received a copy of the GNU General Public License
75 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
76
77 (define-module (gnu packages gnome)
78 #:use-module (gnu packages)
79 #:use-module (gnu packages admin)
80 #:use-module (gnu packages aidc)
81 #:use-module (gnu packages aspell)
82 #:use-module (gnu packages autotools)
83 #:use-module (gnu packages avahi)
84 #:use-module (gnu packages backup)
85 #:use-module (gnu packages base)
86 #:use-module (gnu packages bash)
87 #:use-module (gnu packages bison)
88 #:use-module (gnu packages boost)
89 #:use-module (gnu packages build-tools)
90 #:use-module (gnu packages calendar)
91 #:use-module (gnu packages cdrom)
92 #:use-module (gnu packages check)
93 #:use-module (gnu packages cmake)
94 #:use-module (gnu packages compression)
95 #:use-module (gnu packages crates-io)
96 #:use-module (gnu packages crates-graphics)
97 #:use-module (gnu packages crates-gtk)
98 #:use-module (gnu packages cups)
99 #:use-module (gnu packages curl)
100 #:use-module (gnu packages cyrus-sasl)
101 #:use-module (gnu packages databases)
102 #:use-module (gnu packages dbm)
103 #:use-module (gnu packages djvu)
104 #:use-module (gnu packages dns)
105 #:use-module (gnu packages docbook)
106 #:use-module (gnu packages documentation)
107 #:use-module (gnu packages enchant)
108 #:use-module (gnu packages flex)
109 #:use-module (gnu packages fonts)
110 #:use-module (gnu packages file-systems)
111 #:use-module (gnu packages fontutils)
112 #:use-module (gnu packages freedesktop)
113 #:use-module (gnu packages game-development)
114 #:use-module (gnu packages gcc)
115 #:use-module (gnu packages gettext)
116 #:use-module (gnu packages ghostscript)
117 #:use-module (gnu packages gimp)
118 #:use-module (gnu packages gl)
119 #:use-module (gnu packages glib)
120 #:use-module (gnu packages gnupg)
121 #:use-module (gnu packages gnuzilla)
122 #:use-module (gnu packages geo)
123 #:use-module (gnu packages gperf)
124 #:use-module (gnu packages graphviz)
125 #:use-module (gnu packages gstreamer)
126 #:use-module (gnu packages gtk)
127 #:use-module (gnu packages guile)
128 #:use-module (gnu packages ibus)
129 #:use-module (gnu packages icu4c)
130 #:use-module (gnu packages image)
131 #:use-module (gnu packages imagemagick)
132 #:use-module (gnu packages inkscape)
133 #:use-module (gnu packages iso-codes)
134 #:use-module (gnu packages kerberos)
135 #:use-module (gnu packages libcanberra)
136 #:use-module (gnu packages libffi)
137 #:use-module (gnu packages libunistring)
138 #:use-module (gnu packages libunwind)
139 #:use-module (gnu packages libusb)
140 #:use-module (gnu packages linux)
141 #:use-module (gnu packages lirc)
142 #:use-module (gnu packages lua)
143 #:use-module (gnu packages mail)
144 #:use-module (gnu packages mp3)
145 #:use-module (gnu packages multiprecision)
146 #:use-module (gnu packages music)
147 #:use-module (gnu packages ncurses)
148 #:use-module (gnu packages nettle)
149 #:use-module (gnu packages networking)
150 #:use-module (gnu packages ninja)
151 #:use-module (gnu packages node)
152 #:use-module (gnu packages nss)
153 #:use-module (gnu packages ocr)
154 #:use-module (gnu packages openldap)
155 #:use-module (gnu packages package-management)
156 #:use-module (gnu packages password-utils)
157 #:use-module (gnu packages pcre)
158 #:use-module (gnu packages pdf)
159 #:use-module (gnu packages perl)
160 #:use-module (gnu packages photo)
161 #:use-module (gnu packages php)
162 #:use-module (gnu packages pkg-config)
163 #:use-module (gnu packages polkit)
164 #:use-module (gnu packages popt)
165 #:use-module (gnu packages pretty-print)
166 #:use-module (gnu packages protobuf)
167 #:use-module (gnu packages pulseaudio)
168 #:use-module (gnu packages python)
169 #:use-module (gnu packages python-crypto)
170 #:use-module (gnu packages python-web)
171 #:use-module (gnu packages python-xyz)
172 #:use-module (gnu packages rdesktop)
173 #:use-module (gnu packages rdf)
174 #:use-module (gnu packages readline)
175 #:use-module (gnu packages ruby)
176 #:use-module (gnu packages rust)
177 #:use-module (gnu packages samba)
178 #:use-module (gnu packages scanner)
179 #:use-module (gnu packages sdl)
180 #:use-module (gnu packages search)
181 #:use-module (gnu packages selinux)
182 #:use-module (gnu packages slang)
183 #:use-module (gnu packages speech)
184 #:use-module (gnu packages spice)
185 #:use-module (gnu packages sqlite)
186 #:use-module (gnu packages ssh)
187 #:use-module (gnu packages swig)
188 #:use-module (gnu packages tex)
189 #:use-module (gnu packages time)
190 #:use-module (gnu packages tls)
191 #:use-module (gnu packages valgrind)
192 #:use-module (gnu packages version-control)
193 #:use-module (gnu packages video)
194 #:use-module (gnu packages virtualization)
195 #:use-module (gnu packages vpn)
196 #:use-module (gnu packages web)
197 #:use-module (gnu packages webkit)
198 #:use-module (gnu packages xdisorg)
199 #:use-module (gnu packages xiph)
200 #:use-module (gnu packages xml)
201 #:use-module (gnu packages xorg)
202 #:use-module (gnu artwork)
203 #:use-module ((guix build utils) #:select (modify-phases))
204 #:use-module (guix build-system cargo)
205 #:use-module (guix build-system cmake)
206 #:use-module (guix build-system glib-or-gtk)
207 #:use-module (guix build-system gnu)
208 #:use-module (guix build-system meson)
209 #:use-module (guix build-system python)
210 #:use-module (guix build-system trivial)
211 #:use-module (guix download)
212 #:use-module (guix git-download)
213 #:use-module ((guix licenses) #:prefix license:)
214 #:use-module (guix packages)
215 #:use-module (guix utils)
216 #:use-module (guix gexp)
217 #:use-module (guix monads)
218 #:use-module (guix store)
219 #:use-module (ice-9 match)
220 #:use-module (srfi srfi-1))
221
222 (define-public gupnp-igd
223 (package
224 (name "gupnp-igd")
225 (version "1.2.0")
226 (source
227 (origin
228 (method url-fetch)
229 (uri
230 (string-append "mirror://gnome/sources/" name "/"
231 (version-major+minor version) "/"
232 name "-" version ".tar.xz"))
233 (sha256
234 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
235 (build-system meson-build-system)
236 (outputs '("out" "doc"))
237 (arguments
238 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
239 #:configure-flags (list "-Dgtk_doc=true")
240 #:phases
241 (modify-phases %standard-phases
242 (add-after 'unpack 'patch-docbook-xml
243 (lambda* (#:key inputs #:allow-other-keys)
244 (with-directory-excursion "doc"
245 (substitute* "gupnp-igd-docs.xml"
246 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
247 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
248 "/xml/dtd/docbook/"))))
249 #t))
250 (add-after 'install 'move-doc
251 (lambda* (#:key outputs #:allow-other-keys)
252 (let* ((out (assoc-ref outputs "out"))
253 (doc (assoc-ref outputs "doc")))
254 (mkdir-p (string-append doc "/share"))
255 (rename-file
256 (string-append out "/share/gtk-doc")
257 (string-append doc "/share/gtk-doc"))
258 #t))))))
259 (native-inputs
260 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
261 ("docbook-xsl" ,docbook-xsl)
262 ("glib:bin" ,glib "bin")
263 ("gobject-introspection" ,gobject-introspection)
264 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
265 ("gtk-doc" ,gtk-doc)
266 ("pkg-config" ,pkg-config)))
267 (propagated-inputs
268 `(("glib" ,glib)
269 ("glib-networking" ,glib-networking)
270 ("gssdp" ,gssdp)
271 ("gupnp" ,gupnp)
272 ("libsoup" ,libsoup)))
273 (synopsis "UPnP IGD for GNOME")
274 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
275 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
276 (license license:lgpl2.1+)))
277
278 (define-public brasero
279 (package
280 (name "brasero")
281 (version "3.12.2")
282 (source (origin
283 (method url-fetch)
284 (uri (string-append "mirror://gnome/sources/brasero/"
285 (version-major+minor version) "/"
286 "brasero-" version ".tar.xz"))
287 (sha256
288 (base32
289 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
290 (build-system glib-or-gtk-build-system)
291 (arguments
292 `(#:configure-flags (list
293 (string-append "--with-girdir="
294 (assoc-ref %outputs "out")
295 "/share/gir-1.0")
296 (string-append "--with-typelibdir="
297 (assoc-ref %outputs "out")
298 "/lib/girepository-1.0"))
299 #:phases
300 (modify-phases %standard-phases
301 (add-before 'configure 'embed-growisofs
302 (lambda* (#:key inputs #:allow-other-keys)
303 (substitute* "plugins/growisofs/burn-growisofs.c"
304 (("\"growisofs") (string-append "\"" (which "growisofs"))))
305 #t)))))
306 (propagated-inputs
307 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
308 (native-inputs
309 `(("intltool" ,intltool)
310 ("itstool" ,itstool)
311 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
312 ("gobject-introspection" ,gobject-introspection)
313 ("pkg-config" ,pkg-config)))
314 (inputs
315 `(("dvd+rw-tools" ,dvd+rw-tools)
316 ("glib" ,glib)
317 ("gnome-doc-utils" ,gnome-doc-utils)
318 ("gstreamer" ,gstreamer)
319 ("gst-plugins-base" ,gst-plugins-base)
320 ("gtk+" ,gtk+)
321 ("libcanberra" ,libcanberra)
322 ("libice" ,libice)
323 ("libnotify" ,libnotify)
324 ("libsm" ,libsm)
325 ("libxml2" ,libxml2)
326 ("totem-pl-parser" ,totem-pl-parser)))
327 (home-page "https://wiki.gnome.org/Apps/Brasero")
328 (synopsis "CD/DVD burning tool for Gnome")
329 (description "Brasero is an application to burn CD/DVD for the Gnome
330 Desktop. It is designed to be as simple as possible and has some unique
331 features to enable users to create their discs easily and quickly.")
332 (license license:gpl2+)))
333
334 (define-public libcloudproviders
335 (package
336 (name "libcloudproviders")
337 (version "0.3.1")
338 (source
339 (origin
340 (method url-fetch)
341 (uri
342 (string-append "mirror://gnome/sources/" name "/"
343 (version-major+minor version) "/"
344 name "-" version ".tar.xz"))
345 (sha256
346 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
347 (build-system meson-build-system)
348 (outputs '("out" "doc"))
349 (arguments
350 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
351 #:configure-flags
352 (list
353 "-Denable-gtk-doc=true")
354 #:phases
355 (modify-phases %standard-phases
356 (add-after 'install 'move-doc
357 (lambda* (#:key outputs #:allow-other-keys)
358 (let* ((out (assoc-ref outputs "out"))
359 (doc (assoc-ref outputs "doc")))
360 (mkdir-p (string-append doc "/share"))
361 (rename-file
362 (string-append out "/share/gtk-doc")
363 (string-append doc "/share/gtk-doc"))
364 #t))))))
365 (native-inputs
366 `(("glib:bin" ,glib "bin")
367 ("gobject-introspection" ,gobject-introspection)
368 ("gtk-doc" ,gtk-doc)
369 ("pkg-config" ,pkg-config)
370 ("vala" ,vala)))
371 (inputs
372 `(("glib" ,glib)
373 ("glib-networking" ,glib-networking)))
374 (synopsis "Cloudproviders Integration API")
375 (description "Libcloudproviders is a DBus API that allows cloud storage sync
376 clients to expose their services. Clients such as file managers and desktop
377 environments can then provide integrated access to the cloud providers
378 services.")
379 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
380 (license license:lgpl3+)))
381
382 (define-public libgrss
383 (package
384 (name "libgrss")
385 (version "0.7.0")
386 (source
387 (origin
388 (method url-fetch)
389 (uri
390 (string-append "mirror://gnome/sources/" name "/"
391 (version-major+minor version) "/"
392 name "-" version ".tar.xz"))
393 (sha256
394 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
395 (build-system glib-or-gtk-build-system)
396 (outputs '("out" "doc"))
397 (arguments
398 `(#:configure-flags
399 (list
400 "--enable-gtk-doc"
401 (string-append "--with-html-dir="
402 (assoc-ref %outputs "doc")
403 "/share/gtk-doc/html"))
404 #:phases
405 (modify-phases %standard-phases
406 (add-after 'unpack 'patch-docbook-xml
407 (lambda* (#:key inputs #:allow-other-keys)
408 (with-directory-excursion "doc/reference"
409 (substitute* "libgrss-docs.sgml"
410 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
411 (string-append (assoc-ref inputs "docbook-xml")
412 "/xml/dtd/docbook/"))))
413 #t)))))
414 (native-inputs
415 `(("docbook-xml" ,docbook-xml-4.1.2)
416 ("gobject-introspection" ,gobject-introspection)
417 ("gtk-doc" ,gtk-doc)
418 ("pkg-config" ,pkg-config)))
419 (propagated-inputs
420 `(("glib" ,glib)
421 ("libsoup" ,libsoup)
422 ("libxml2" ,libxml2)))
423 (synopsis "Glib library for feeds")
424 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
425 and other formats.")
426 (home-page "https://wiki.gnome.org/Projects/Libgrss")
427 (license license:lgpl3+)))
428
429 (define-public gnome-js-common
430 (package
431 (name "gnome-js-common")
432 (version "0.1.2")
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.gz"))
440 (sha256
441 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
442 (build-system glib-or-gtk-build-system)
443 (arguments
444 `(#:configure-flags
445 (list
446 "--disable-static")))
447 (native-inputs
448 `(("gettext" ,gettext-minimal)
449 ("intltool" ,intltool)
450 ("pkg-config" ,pkg-config)))
451 (synopsis "Common JS Modules")
452 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
453 bindings.")
454 (home-page "https://wiki.gnome.org/Projects/Seed")
455 (license license:gpl3+)))
456
457 (define-public seed
458 (package
459 (name "seed")
460 (version "3.8.1")
461 (source
462 (origin
463 (method url-fetch)
464 (uri
465 (string-append "mirror://gnome/sources/" name "/"
466 (version-major+minor version) "/"
467 name "-" version ".tar.xz"))
468 (sha256
469 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
470 (patches
471 (search-patches "seed-webkit.patch"))))
472 (build-system glib-or-gtk-build-system)
473 (outputs '("out" "doc"))
474 (arguments
475 `(#:configure-flags
476 (list
477 "--disable-static"
478 "--enable-xorg-module"
479 (string-append "--with-html-dir="
480 (assoc-ref %outputs "doc")
481 "/share/gtk-doc/html")
482 "--with-webkit=4.0")
483 #:phases
484 (modify-phases %standard-phases
485 ;; The seed-webkit.patch patches configure.ac.
486 ;; So the source files need to be re-bootstrapped.
487 (add-after 'unpack 'trigger-bootstrap
488 (lambda _
489 (for-each delete-file
490 (list
491 "configure"
492 "Makefile.in"))
493 #t))
494 (add-after 'unpack 'patch-tests
495 (lambda* (#:key outputs #:allow-other-keys)
496 (substitute* (find-files "." "\\.js$")
497 (("#!/usr/bin/env seed")
498 (string-append "#!" (getcwd) "/src/seed")))
499 #t))
500 (add-before 'build 'patch-docbook-xml
501 (lambda* (#:key inputs #:allow-other-keys)
502 (with-directory-excursion "doc"
503 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
504 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
505 (string-append (assoc-ref inputs "docbook-xml")
506 "/xml/dtd/docbook/"))))
507 #t)))))
508 (native-inputs
509 `(("autoconf" ,autoconf)
510 ("automake" ,automake)
511 ("docbook-xml" ,docbook-xml-4.1.2)
512 ("gettext" ,gettext-minimal)
513 ("gobject-introspection" ,gobject-introspection)
514 ("gtk-doc" ,gtk-doc)
515 ("intltool" ,intltool)
516 ("libtool" ,libtool)
517 ("pkg-config" ,pkg-config)))
518 (inputs
519 `(("cairo" ,cairo)
520 ("dbus" ,dbus)
521 ("dbus-glib" ,dbus-glib)
522 ("gnome-js-common" ,gnome-js-common)
523 ("gtk+" ,gtk+)
524 ("gtk+-2" ,gtk+-2)
525 ("libffi" ,libffi)
526 ("libxml2" ,libxml2)
527 ("mpfr" ,mpfr)
528 ("readline" ,readline)
529 ("sqlite" ,sqlite)
530 ("xscrnsaver" ,libxscrnsaver)))
531 (propagated-inputs
532 `(("glib" ,glib)
533 ("webkit" ,webkitgtk)))
534 (synopsis "GObject JavaScriptCore bridge")
535 (description "Seed is a library and interpreter, dynamically bridging
536 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
537 GNOME platform. It serves as something which enables you to write standalone
538 applications in JavaScript, or easily enable your application to be extensible
539 in JavaScript.")
540 (home-page "https://wiki.gnome.org/Projects/Seed")
541 (license license:lgpl2.0+)))
542
543 (define-public libdmapsharing
544 (package
545 (name "libdmapsharing")
546 (version "3.9.10")
547 (source
548 (origin
549 (method url-fetch)
550 (uri
551 (string-append "https://www.flyn.org/projects/"
552 name "/" name "-" version ".tar.gz"))
553 (sha256
554 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
555 (build-system glib-or-gtk-build-system)
556 (outputs '("out" "doc"))
557 (arguments
558 `(#:tests? #f ; Tests require networking.
559 #:configure-flags
560 (list
561 "--disable-static"
562 (string-append "--with-html-dir="
563 (assoc-ref %outputs "doc")
564 "/share/gtk-doc/html"))
565 #:phases
566 (modify-phases %standard-phases
567 (add-after 'unpack 'patch-docbook-xml
568 (lambda* (#:key inputs #:allow-other-keys)
569 (with-directory-excursion "doc"
570 (substitute* "libdmapsharing-4.0-docs.xml"
571 (("http://www.oasis-open.org/docbook/xml/4.3/")
572 (string-append (assoc-ref inputs "docbook-xml")
573 "/xml/dtd/docbook/"))))
574 #t)))))
575 (native-inputs
576 `(("check" ,check)
577 ("docbook-xml" ,docbook-xml-4.3)
578 ("gobject-introspection" ,gobject-introspection)
579 ("pedansee" ,pedansee)
580 ("pkg-config" ,pkg-config)
581 ("vala" ,vala)))
582 (inputs
583 `(("avahi" ,avahi)
584 ("gdk-pixbuf" ,gdk-pixbuf+svg)
585 ("gee" ,libgee)
586 ("gst-plugins-base" ,gst-plugins-base)
587 ("gtk+" ,gtk+)))
588 (propagated-inputs
589 `(("glib" ,glib)
590 ("glib-networking" ,glib-networking)
591 ("gstreamer" ,gstreamer)
592 ("libsoup" ,libsoup)))
593 (synopsis "Media management library")
594 (description "Libdmapsharing is a library which allows programs to access,
595 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
596 It is written in C using GObject and libsoup.")
597 (home-page "https://launchpad.net/gtx")
598 (license license:lgpl2.1+)))
599
600 (define-public gtx
601 (package
602 (name "gtx")
603 (version "0.2.2")
604 (source
605 (origin
606 (method url-fetch)
607 (uri
608 (string-append "https://launchpad.net/gtx/trunk/"
609 version "/+download/gtx-" version ".tar.gz"))
610 (sha256
611 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
612 (build-system glib-or-gtk-build-system)
613 (outputs '("out" "doc"))
614 (arguments
615 `(#:configure-flags
616 (list
617 "--disable-static"
618 "--enable-gtk-doc"
619 (string-append "--with-html-dir="
620 (assoc-ref %outputs "doc")
621 "/share/gtk-doc/html"))))
622 (native-inputs
623 `(("gobject-introspection" ,gobject-introspection)
624 ("gtk-doc" ,gtk-doc)
625 ("pkg-config" ,pkg-config)))
626 (propagated-inputs
627 `(("glib" ,glib)))
628 (synopsis "GLib Testing Framework")
629 (description "GTX is a small collection of convenience functions intended to
630 enhance the GLib testing framework. With specific emphasis on easing the pain
631 of writing test cases for asynchronous interactions.")
632 (home-page "https://launchpad.net/gtx")
633 (license license:lgpl2.1+)))
634
635 (define-public dee
636 (package
637 (name "dee")
638 (version "1.2.7")
639 (source
640 (origin
641 (method url-fetch)
642 (uri
643 (string-append "https://launchpad.net/dee/1.0/"
644 version "/+download/dee-" version ".tar.gz"))
645 (sha256
646 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
647 (patches
648 (search-patches "dee-vapi.patch"))))
649 (build-system glib-or-gtk-build-system)
650 (outputs '("out" "doc"))
651 (arguments
652 `(#:configure-flags
653 (list
654 "--disable-maintainer-flags"
655 (string-append "--with-pygi-overrides-dir="
656 (assoc-ref %outputs "out")
657 "/lib/python"
658 ,(version-major+minor
659 (package-version python))
660 "/site-packages/gi/overrides")
661 (string-append "--with-html-dir="
662 (assoc-ref %outputs "doc")
663 "/share/gtk-doc/html"))
664 #:phases
665 (modify-phases %standard-phases
666 (add-after 'unpack 'patch-docbook-xml
667 (lambda* (#:key inputs #:allow-other-keys)
668 (with-directory-excursion "doc/reference/dee-1.0"
669 (substitute* "dee-1.0-docs.sgml"
670 (("http://www.oasis-open.org/docbook/xml/4.3/")
671 (string-append (assoc-ref inputs "docbook-xml")
672 "/xml/dtd/docbook/"))))
673 #t))
674 (add-after 'patch-docbook-xml 'disable-failing-tests
675 (lambda _
676 (substitute* "tests/test-icu.c"
677 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
678 "")
679 (("setup, test_ascii_folder, teardown\\);")
680 ""))
681 #t))
682 (add-before 'check 'pre-check
683 (lambda _
684 ;; Tests require a running dbus-daemon.
685 (system "dbus-daemon &")
686 ;; For missing '/etc/machine-id'.
687 (setenv "DBUS_FATAL_WARNINGS" "0")
688 #t)))))
689 (native-inputs
690 `(("dbus" ,dbus)
691 ("dbus-test-runner" ,dbus-test-runner)
692 ("docbook-xml" ,docbook-xml-4.3)
693 ("gobject-introspection" ,gobject-introspection)
694 ("gtk-doc" ,gtk-doc)
695 ;; Would only be required by configure flag "--enable-extended-tests".
696 ;("gtx" ,gtx)
697 ("pkg-config" ,pkg-config)
698 ("pygobject" ,python-pygobject)
699 ("python" ,python-wrapper)
700 ("vala" ,vala)))
701 (inputs
702 `(("icu" ,icu4c)))
703 (propagated-inputs
704 `(("glib" ,glib)))
705 (synopsis "Model to synchronize multiple instances over DBus")
706 (description "Dee is a library that uses DBus to provide objects allowing
707 you to create Model-View-Controller type programs across DBus. It also consists
708 of utility objects which extend DBus allowing for peer-to-peer discoverability
709 of known objects without needing a central registrar.")
710 (home-page "https://launchpad.net/dee")
711 (license
712 ;; Dual-licensed
713 (list
714 license:lgpl3+
715 license:gpl3+))))
716
717 (define-public zeitgeist
718 (package
719 (name "zeitgeist")
720 (version "1.0.3")
721 (source
722 (origin
723 (method git-fetch)
724 (uri
725 (git-reference
726 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
727 (commit
728 (string-append "v" version))))
729 (file-name
730 (git-file-name name version))
731 (sha256
732 (base32 "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp"))))
733 (build-system glib-or-gtk-build-system)
734 (arguments
735 `(#:configure-flags
736 (list
737 "--enable-explain-queries"
738 "--enable-fts"
739 "--enable-docs")
740 #:phases
741 (modify-phases %standard-phases
742 (add-after 'unpack 'patch-docbook-xml
743 (lambda* (#:key inputs #:allow-other-keys)
744 (with-directory-excursion "doc/libzeitgeist"
745 (substitute* "zeitgeist-gtkdoc-index.sgml"
746 (("http://www.oasis-open.org/docbook/xml/4.3/")
747 (string-append (assoc-ref inputs "docbook-xml")
748 "/xml/dtd/docbook/"))))
749 #t))
750 (add-after 'patch-docbook-xml 'disable-failing-tests
751 (lambda _
752 (substitute* "test/direct/Makefile.am"
753 ((" log-test ")
754 ""))
755 (substitute* "test/c/Makefile.am"
756 ((" test-log ")
757 ""))
758 #t))
759 (add-before 'bootstrap 'remove-autogen-script
760 (lambda _
761 ;; To honor `autoreconf -vif` by build-system.
762 (delete-file "autogen.sh")
763 #t)))))
764 (native-inputs
765 `(("autoconf" ,autoconf)
766 ("automake" ,automake)
767 ("docbook-xml" ,docbook-xml-4.3)
768 ("gettext" ,gettext-minimal)
769 ("gobject-introspection" ,gobject-introspection)
770 ("gtk-doc" ,gtk-doc)
771 ("libtool" ,libtool)
772 ("pkg-config" ,pkg-config)
773 ("vala" ,vala)
774 ("xorg-server-for-tests" ,xorg-server-for-tests)))
775 (inputs
776 `(("dee-icu" ,dee)
777 ("gtk+" ,gtk+)
778 ("json-glib" ,json-glib)
779 ("sqlite" ,sqlite)
780 ("telepathy-glib" ,telepathy-glib)
781 ("python" ,python-wrapper)
782 ("python-rdflib" ,python-rdflib)
783 ("xapian-config" ,xapian)))
784 (propagated-inputs
785 `(("glib" ,glib)))
786 (synopsis "Desktop Activity Logging")
787 (description "Zeitgeist is a service which logs the users’s activities and
788 events, anywhere from files opened to websites visited and conversations. It
789 makes this information readily available for other applications to use. It is
790 able to establish relationships between items based on similarity and usage
791 patterns.")
792 (home-page "https://zeitgeist.freedesktop.org/")
793 (license
794 ;; Dual-licensed
795 (list
796 license:lgpl2.1+
797 license:gpl2+))))
798
799 (define-public gnome-recipes
800 (package
801 (name "gnome-recipes")
802 (version "2.0.4")
803 (source (origin
804 (method git-fetch)
805 (uri (git-reference
806 (url "https://gitlab.gnome.org/GNOME/recipes")
807 (commit version)))
808 (file-name (git-file-name name version))
809 (sha256
810 (base32
811 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
812 (build-system meson-build-system)
813 (arguments
814 `(#:glib-or-gtk? #t
815 #:phases
816 (modify-phases %standard-phases
817 (add-after 'unpack 'skip-gtk-update-icon-cache
818 (lambda _
819 (substitute* "meson_post_install.py"
820 (("gtk-update-icon-cache") (which "true")))
821 #t))
822 (add-after 'unpack 'unpack-libgd
823 (lambda* (#:key inputs #:allow-other-keys)
824 (let ((libgd (assoc-ref inputs "libgd")))
825 (copy-recursively libgd "subprojects/libgd")
826 #t))))))
827 (inputs
828 `(("glib" ,glib)
829 ("gnome-autoar" ,gnome-autoar)
830 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
831 ("gspell" ,gspell)
832 ("gtk+" ,gtk+)
833 ("json-glib" ,json-glib)
834 ("libcanberra" ,libcanberra)
835 ("libsoup" ,libsoup)
836 ("rest" ,rest)))
837 (native-inputs
838 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
839 ("gettext" ,gettext-minimal)
840 ("glib:bin" ,glib "bin")
841 ("itstool" ,itstool)
842 ("libgd"
843 ,(origin
844 (method git-fetch)
845 (uri (git-reference
846 (url "https://gitlab.gnome.org/GNOME/libgd")
847 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
848 (file-name (git-file-name "libgd" version))
849 (sha256
850 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
851 ("pkg-config" ,pkg-config)))
852 (home-page "https://wiki.gnome.org/Apps/Recipes")
853 (synopsis "Discover recipes for preparing food")
854 (description "GNOME Recipes helps you discover what to cook today,
855 tomorrow, the rest of the week and for special occasions.")
856 (license license:gpl3+)))
857
858 (define-public gnome-photos
859 (package
860 (name "gnome-photos")
861 (version "3.34.2")
862 (source
863 (origin
864 (method url-fetch)
865 (uri
866 (string-append "mirror://gnome/sources/" name "/"
867 (version-major+minor version) "/"
868 name "-" version ".tar.xz"))
869 (sha256
870 (base32
871 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
872 (build-system meson-build-system)
873 (arguments
874 `(#:glib-or-gtk? #t
875 #:configure-flags
876 (list "-Ddogtail=false" ; Not available
877 ;; Required for RUNPATH validation.
878 (string-append "-Dc_link_args=-Wl,-rpath="
879 (assoc-ref %outputs "out") "/lib/gnome-photos"))
880 #:phases
881 (modify-phases %standard-phases
882 (add-after 'install 'wrap-gnome-photos
883 (lambda* (#:key inputs outputs #:allow-other-keys)
884 (let*
885 ((out (assoc-ref outputs "out")))
886 (wrap-program (string-append out "/bin/gnome-photos")
887 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
888 #t)))))
889 (native-inputs
890 `(("dbus" ,dbus)
891 ("desktop-file-utils" ,desktop-file-utils)
892 ("gettext" ,gettext-minimal)
893 ("git" ,git-minimal)
894 ("glib:bin" ,glib "bin")
895 ("gobject-introspection" ,gobject-introspection)
896 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
897 ("gtk+:bin" ,gtk+ "bin")
898 ("itstool" ,itstool)
899 ("pkg-config" ,pkg-config)))
900 (inputs
901 `(("babl" ,babl)
902 ("cairo" ,cairo)
903 ("gdk-pixbuf" ,gdk-pixbuf+svg)
904 ("gegl" ,gegl)
905 ("geocode-glib" ,geocode-glib)
906 ("gexiv2" ,gexiv2)
907 ("gnome-online-accounts" ,gnome-online-accounts)
908 ("gnome-online-miners" ,gnome-online-miners)
909 ("grilo" ,grilo)
910 ("grilo-plugins" ,grilo-plugins)
911 ("gtk+" ,gtk+)
912 ("libdazzle" ,libdazzle)
913 ("libgdata" ,libgdata)
914 ("libgfbgraph" ,gfbgraph)
915 ("libjpeg" ,libjpeg-turbo)
916 ("libpng" ,libpng)
917 ("librest" ,rest)
918 ("pygobject" ,python-pygobject)
919 ("tracker" ,tracker)
920 ("tracker-miners" ,tracker-miners)))
921 (synopsis "Access, organize and share your photos on GNOME desktop")
922 (description "GNOME Photos is a simple and elegant replacement for using a
923 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
924 cloud integration is offered through GNOME Online Accounts.")
925 (home-page "https://wiki.gnome.org/Apps/Photos")
926 (license license:gpl3+)))
927
928 (define-public gnome-music
929 (package
930 (name "gnome-music")
931 (version "3.34.5")
932 (source
933 (origin
934 (method url-fetch)
935 (uri
936 (string-append "mirror://gnome/sources/" name "/"
937 (version-major+minor version) "/"
938 name "-" version ".tar.xz"))
939 (sha256
940 (base32
941 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
942 (build-system meson-build-system)
943 (arguments
944 `(#:glib-or-gtk? #t
945 #:phases
946 (modify-phases %standard-phases
947 (add-after 'install 'wrap-gnome-music
948 (lambda* (#:key inputs outputs #:allow-other-keys)
949 (let*
950 ((out (assoc-ref outputs "out"))
951 (pylib (string-append out "/lib/python"
952 ,(version-major+minor
953 (package-version python))
954 "/site-packages")))
955 (wrap-program (string-append out "/bin/gnome-music")
956 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
957 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
958 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
959 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
960 #t)))))
961 (native-inputs
962 `(("desktop-file-utils" ,desktop-file-utils)
963 ("gettext" ,gettext-minimal)
964 ("glib:bin" ,glib "bin")
965 ("gobject-introspection" ,gobject-introspection)
966 ("gtk+:bin" ,gtk+ "bin")
967 ("itstools" ,itstool)
968 ("pkg-config" ,pkg-config)))
969 (inputs
970 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
971 ("grilo" ,grilo)
972 ("grilo-plugins" ,grilo-plugins)
973 ("gst-plugins-base" ,gst-plugins-base)
974 ("gstreamer" ,gstreamer)
975 ("gvfs" ,gvfs)
976 ("libdazzle" ,libdazzle)
977 ("libmediaart" ,libmediaart)
978 ("libsoup" ,libsoup)
979 ("pycairo" ,python-pycairo)
980 ("pygobject" ,python-pygobject)
981 ("tracker" ,tracker)
982 ("tracker-miners" ,tracker-miners)))
983 (synopsis "Simple music player for GNOME desktop")
984 (description "GNOME Music is the new GNOME music playing application that
985 aims to combine an elegant and immersive browsing experience with simple
986 and straightforward controls.")
987 (home-page "https://wiki.gnome.org/Apps/Music")
988 (license license:gpl2+)))
989
990 (define-public portablexdr
991 (package
992 (name "portablexdr")
993 (version "4.9.1")
994 (source
995 (origin
996 (method url-fetch)
997 (uri
998 (string-append "https://people.redhat.com/~rjones/" name "/files/"
999 name "-" version ".tar.gz"))
1000 (sha256
1001 (base32
1002 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1003 (build-system gnu-build-system)
1004 (synopsis "External Data Representation Library")
1005 (description "PortableXDR is an implementation of External Data
1006 Representation (XDR) Library. It is a standard data serialization format, for
1007 uses such as computer network protocols. It allows data to be transferred
1008 between different kinds of computer systems.")
1009 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1010 (license
1011 (list
1012 license:gpl2+
1013 license:lgpl2.1+))))
1014
1015 (define-public tepl
1016 (package
1017 (name "tepl")
1018 (version "4.4.0")
1019 (source
1020 (origin
1021 (method url-fetch)
1022 (uri
1023 (string-append "mirror://gnome/sources/" name "/"
1024 (version-major+minor version) "/"
1025 name "-" version ".tar.xz"))
1026 (sha256
1027 (base32
1028 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
1029 (build-system glib-or-gtk-build-system)
1030 (arguments
1031 `(#:tests? #f)) ; FIX-ME: Requires gvfs
1032 (native-inputs
1033 `(("gobject-introspection" ,gobject-introspection)
1034 ("pkg-config" ,pkg-config)))
1035 (inputs
1036 `(("amtk" ,amtk)
1037 ("glib" ,glib)
1038 ("gtk+" ,gtk+)
1039 ("gtksourceview" ,gtksourceview)
1040 ("libxml2" ,libxml2)
1041 ("uchardet" ,uchardet)))
1042 (synopsis "Text editor product line")
1043 (description "Tepl is a library that eases the development of
1044 GtkSourceView-based text editors and IDEs.")
1045 (home-page "https://wiki.gnome.org/Projects/Tepl")
1046 (license license:lgpl2.1+)))
1047
1048 (define-public krb5-auth-dialog
1049 (package
1050 (name "krb5-auth-dialog")
1051 (version "3.26.1")
1052 (source
1053 (origin
1054 (method url-fetch)
1055 (uri
1056 (string-append "mirror://gnome/sources/" name "/"
1057 (version-major+minor version) "/"
1058 name "-" version ".tar.xz"))
1059 (sha256
1060 (base32
1061 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1062 (build-system glib-or-gtk-build-system)
1063 (native-inputs
1064 `(("intltool" ,intltool)
1065 ("itstool" ,itstool)
1066 ("libxml2" ,libxml2)
1067 ("pkg-config" ,pkg-config)
1068 ("python-wrapper" ,python-wrapper)))
1069 (inputs
1070 `(("glib" ,glib)
1071 ("gtk+" ,gtk+)
1072 ("libnotify" ,libnotify)
1073 ("mit-krb5" ,mit-krb5)
1074 ("network-manager" ,network-manager)))
1075 (synopsis "Popup dialogs for Kerberos 5")
1076 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1077 tickets, and pops up a dialog when they are about to expire.")
1078 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1079 (license license:gpl2+)))
1080
1081 (define-public notification-daemon
1082 (package
1083 (name "notification-daemon")
1084 (version "3.20.0")
1085 (source
1086 (origin
1087 (method url-fetch)
1088 (uri
1089 (string-append "mirror://gnome/sources/" name "/"
1090 (version-major+minor version) "/"
1091 name "-" version ".tar.xz"))
1092 (sha256
1093 (base32
1094 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1095 (build-system glib-or-gtk-build-system)
1096 (native-inputs
1097 `(("intltool" ,intltool)
1098 ("pkg-config" ,pkg-config)))
1099 (inputs
1100 `(("glib" ,glib)
1101 ("gtk+" ,gtk+)
1102 ("x11" ,libx11)))
1103 (synopsis "Notification Daemon for GNOME Desktop")
1104 (description "Notification-Daemon is the server implementation of the
1105 freedesktop.org desktop notification specification.")
1106 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1107 (license license:gpl2+)))
1108
1109 (define-public mm-common
1110 (package
1111 (name "mm-common")
1112 (version "1.0.2")
1113 (source (origin
1114 (method url-fetch)
1115 (uri (string-append "mirror://gnome/sources/mm-common/"
1116 (version-major+minor version) "/"
1117 "mm-common-" version ".tar.xz"))
1118 (sha256
1119 (base32
1120 "07b4s5ckcz9q5gwx8vchim19mhfgl8wysqwi30pndks3m4zrzad2"))))
1121 (build-system meson-build-system)
1122 (arguments
1123 `(#:phases
1124 (modify-phases %standard-phases
1125 (add-after 'unpack 'patch
1126 (lambda* (#:key inputs #:allow-other-keys)
1127 (substitute* "util/mm-common-prepare.in"
1128 (("ln") (string-append (assoc-ref inputs "coreutils")
1129 "/bin/ln"))
1130 (("cp") (string-append (assoc-ref inputs "coreutils")
1131 "/bin/cp"))
1132 (("sed") (string-append (assoc-ref inputs "sed")
1133 "/bin/sed"))
1134 (("cat") (string-append (assoc-ref inputs "coreutils")
1135 "/bin/cat")))
1136 #t)))))
1137 (native-inputs
1138 `(("coreutils" ,coreutils)
1139 ("gettext" ,gettext-minimal)
1140 ("pkg-config" ,pkg-config)
1141 ("sed" ,sed)))
1142 (inputs
1143 `(("python" ,python)))
1144 (synopsis "Module of GNOME C++ bindings")
1145 (description "The mm-common module provides the build infrastructure
1146 and utilities shared among the GNOME C++ binding libraries. Release
1147 archives of mm-common include the Doxygen tag file for the GNU C++
1148 Library reference documentation.")
1149 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1150 (license license:gpl2+)))
1151
1152 (define-public phodav
1153 (package
1154 (name "phodav")
1155 (version "2.5")
1156 (source (origin
1157 (method url-fetch)
1158 (uri (string-append "mirror://gnome/sources/" name "/"
1159 (version-major+minor version) "/"
1160 name "-" version ".tar.xz"))
1161 (sha256
1162 (base32
1163 "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
1164 (build-system meson-build-system)
1165 (arguments
1166 `(#:phases
1167 (modify-phases %standard-phases
1168 (add-before 'check 'start-virtual-dir-server
1169 ;; The same server when started by tests/virtual-dir returns an
1170 ;; unexpected status (4 instead of 200) and fails a test. It is
1171 ;; unclear why starting it manually here makes it pass.
1172 (lambda _
1173 (system "tests/virtual-dir-server &")
1174 #t)))))
1175 (native-inputs
1176 `(("docbook-xml" ,docbook-xml-4.3)
1177 ("gettext" ,gettext-minimal)
1178 ("glib:bin" ,glib "bin")
1179 ("gtk-doc" ,gtk-doc)
1180 ("pkg-config" ,pkg-config)))
1181 (inputs
1182 `(("avahi" ,avahi)
1183 ("libgudev" ,libgudev)
1184 ("libsoup" ,libsoup)))
1185 (synopsis "WebDav server implementation using libsoup")
1186 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1187 but it is generic enough to be reused in other projects,
1188 in particular in the GNOME desktop.")
1189 (home-page "https://wiki.gnome.org/phodav")
1190 (license license:lgpl2.1+)))
1191
1192 (define-public gnome-color-manager
1193 (package
1194 (name "gnome-color-manager")
1195 (version "3.32.0")
1196 (source (origin
1197 (method url-fetch)
1198 (uri (string-append "mirror://gnome/sources/" name "/"
1199 (version-major+minor version) "/"
1200 name "-" version ".tar.xz"))
1201 (sha256
1202 (base32
1203 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1204 (build-system meson-build-system)
1205 (arguments
1206 `(#:glib-or-gtk? #t
1207 #:phases
1208 (modify-phases %standard-phases
1209 (add-before
1210 'check 'pre-check
1211 (lambda _
1212 ;; Tests require a running X server.
1213 (system "Xvfb :1 &")
1214 (setenv "DISPLAY" ":1")
1215 #t)))))
1216 (native-inputs
1217 `(("desktop-file-utils" ,desktop-file-utils)
1218 ("gettext" ,gettext-minimal)
1219 ("glib:bin" ,glib "bin")
1220 ("gtk+:bin" ,gtk+ "bin")
1221 ("itstool" ,itstool)
1222 ("pkg-config" ,pkg-config)
1223 ("xorg-server" ,xorg-server-for-tests)))
1224 (inputs
1225 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1226 ("appstream-glib" ,appstream-glib)
1227 ("colord-gtk" ,colord-gtk)
1228 ("exiv2" ,exiv2)
1229 ("gnome-desktop" ,gnome-desktop)
1230 ("libcanberra" ,libcanberra)
1231 ("libexif" ,libexif)
1232 ("libtiff" ,libtiff)
1233 ("libxrandr" ,libxrandr)
1234 ("libxtst" ,libxtst)
1235 ("libxxf86vm" ,libxxf86vm)
1236 ("vte" ,vte)
1237 ("xorgproto" ,xorgproto)))
1238 (synopsis "Color profile manager for the GNOME desktop")
1239 (description "GNOME Color Manager is a session framework that makes
1240 it easy to manage, install and generate color profiles
1241 in the GNOME desktop.")
1242 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1243 (license license:gpl2+)))
1244
1245 (define-public gnome-online-miners
1246 (package
1247 (name "gnome-online-miners")
1248 (version "3.34.0")
1249 (source (origin
1250 (method url-fetch)
1251 (uri (string-append "mirror://gnome/sources/" name "/"
1252 (version-major+minor version) "/"
1253 name "-" version ".tar.xz"))
1254 (sha256
1255 (base32
1256 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
1257 (build-system glib-or-gtk-build-system)
1258 (native-inputs
1259 `(("gettext" ,gettext-minimal)
1260 ("glib:bin" ,glib "bin")
1261 ("gobject-introspection" ,gobject-introspection)
1262 ("gtk+:bin" ,gtk+ "bin")
1263 ("pkg-config" ,pkg-config)))
1264 (inputs
1265 `(("gnome-online-accounts" ,gnome-online-accounts)
1266 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1267 ("grilo" ,grilo)
1268 ("libgdata" ,libgdata)
1269 ("libgfbgraph" ,gfbgraph)
1270 ("libzapojit" ,libzapojit)
1271 ("rest" ,rest)
1272 ("tracker" ,tracker)))
1273 (synopsis "Web Crawlers for GNOME")
1274 (description "GNOME Online Miners provides a set of crawlers that
1275 go through your online content and index them locally in Tracker.
1276 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1277 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1278 (license license:gpl2+)))
1279
1280 (define-public gssdp
1281 (package
1282 (name "gssdp")
1283 (version "1.2.3")
1284 (source (origin
1285 (method url-fetch)
1286 (uri (string-append "mirror://gnome/sources/" name "/"
1287 (version-major+minor version) "/"
1288 name "-" version ".tar.xz"))
1289 (sha256
1290 (base32
1291 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
1292 (build-system meson-build-system)
1293 (native-inputs
1294 `(("gettext" ,gettext-minimal)
1295 ("glib:bin" ,glib "bin")
1296 ("gobject-introspection" ,gobject-introspection)
1297 ("gtk-doc" ,gtk-doc)
1298 ("pkg-config" ,pkg-config)
1299 ("vala" ,vala)))
1300 (inputs
1301 `(("gtk+" ,gtk+)
1302 ("libsoup" ,libsoup)))
1303 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1304 Protocol} for GNOME")
1305 (description "This package provides a library to handle resource discovery
1306 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1307 a debugging tool, @command{gssdp-device-sniffer}.")
1308 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1309 (license license:lgpl2.0+)))
1310
1311 (define-public gupnp
1312 (package
1313 (name "gupnp")
1314 (version "1.2.4")
1315 (source (origin
1316 (method url-fetch)
1317 (uri (string-append "mirror://gnome/sources/" name "/"
1318 (version-major+minor version) "/"
1319 name "-" version ".tar.xz"))
1320 (sha256
1321 (base32
1322 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
1323 (build-system meson-build-system)
1324 (native-inputs
1325 `(("gettext" ,gettext-minimal)
1326 ("glib:bin" ,glib "bin")
1327 ("gobject-introspection" ,gobject-introspection)
1328 ("gtk-doc" ,gtk-doc)
1329 ("pkg-config" ,pkg-config)
1330 ("vala" ,vala)))
1331 (inputs
1332 `(("gssdp" ,gssdp)
1333 ("gtk+" ,gtk+)
1334 ("libsoup" ,libsoup)))
1335 (synopsis "PnP API for GNOME")
1336 (description "This package provides GUPnP, an object-oriented framework
1337 for creating UPnP devices and control points, written in C using
1338 @code{GObject} and @code{libsoup}.")
1339 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1340 (license license:lgpl2.0+)))
1341
1342 (define-public gupnp-dlna
1343 (package
1344 (name "gupnp-dlna")
1345 (version "0.10.5")
1346 (source (origin
1347 (method url-fetch)
1348 (uri (string-append "mirror://gnome/sources/" name "/"
1349 (version-major+minor version) "/"
1350 name "-" version ".tar.xz"))
1351 (sha256
1352 (base32
1353 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1354 (build-system gnu-build-system)
1355 (native-inputs
1356 `(("gettext" ,gettext-minimal)
1357 ("glib:bin" ,glib "bin")
1358 ("gobject-introspection" ,gobject-introspection)
1359 ("gtk-doc" ,gtk-doc)
1360 ("libxml" ,libxml2)
1361 ("pkg-config" ,pkg-config)
1362 ("vala" ,vala)))
1363 (inputs
1364 `(("gstreamer" ,gstreamer)
1365 ("gupnp" ,gupnp)))
1366 (propagated-inputs
1367 `(("gst-plugins-base" ,gst-plugins-base)
1368 ("gst-plugins-good" ,gst-plugins-good)))
1369 (synopsis "GUPnP DLNA for GNOME")
1370 (description "This package provides a small utility library to
1371 support DLNA-related tasks such as media profile guessing, transcoding to a
1372 given profile, etc. DLNA is a subset of UPnP A/V.")
1373 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1374 (license license:lgpl2.0+)))
1375
1376 (define-public gupnp-av
1377 (package
1378 (name "gupnp-av")
1379 (version "0.12.11")
1380 (source (origin
1381 (method url-fetch)
1382 (uri (string-append "mirror://gnome/sources/" name "/"
1383 (version-major+minor version) "/"
1384 name "-" version ".tar.xz"))
1385 (sha256
1386 (base32
1387 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1388 (build-system gnu-build-system)
1389 (native-inputs
1390 `(("gettext" ,gettext-minimal)
1391 ("glib:bin" ,glib "bin")
1392 ("gobject-introspection" ,gobject-introspection)
1393 ("gtk-doc" ,gtk-doc)
1394 ("libxml" ,libxml2)
1395 ("pkg-config" ,pkg-config)))
1396 (inputs
1397 `(("gtk+" ,gtk+)
1398 ("gupnp" ,gupnp)))
1399 (synopsis "GUPnP A/V for GNOME")
1400 (description "This package provides a small library for handling
1401 and implementation of UPnP A/V profiles.")
1402 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1403 (license license:lgpl2.0+)))
1404
1405 (define-public libmediaart
1406 (package
1407 (name "libmediaart")
1408 (version "1.9.4")
1409 (source (origin
1410 (method url-fetch)
1411 (uri (string-append "mirror://gnome/sources/" name "/"
1412 (version-major+minor version) "/"
1413 name "-" version ".tar.xz"))
1414 (sha256
1415 (base32
1416 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
1417 (build-system gnu-build-system)
1418 (native-inputs
1419 `(("glib:bin" ,glib "bin")
1420 ("pkg-config" ,pkg-config)))
1421 (inputs
1422 `(("gdk-pixbuf" ,gdk-pixbuf)
1423 ("gettext" ,gettext-minimal)
1424 ("gobject-introspection" ,gobject-introspection)
1425 ("gtk+:doc" ,gtk+ "doc")
1426 ("vala" ,vala)))
1427 (synopsis "Media art library for the GNOME desktop")
1428 (description
1429 "The libmediaart library is the foundation for media art caching,
1430 extraction, and lookup for applications on the desktop.")
1431 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1432 (license license:lgpl2.1+)))
1433
1434 (define-public gnome-initial-setup
1435 (package
1436 (name "gnome-initial-setup")
1437 (version "3.32.1")
1438 (source (origin
1439 (method url-fetch)
1440 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1441 (version-major+minor version)
1442 "/gnome-initial-setup-" version ".tar.xz"))
1443 (sha256
1444 (base32
1445 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1446 (build-system meson-build-system)
1447 (arguments
1448 '(#:configure-flags '(;; Enable camera support for user selfie.
1449 "-Dcheese=auto"
1450 "-Dsystemd=false")
1451 #:phases (modify-phases %standard-phases
1452 (add-after 'unpack 'set-gkbd-file-name
1453 (lambda* (#:key inputs #:allow-other-keys)
1454 ;; Allow the "Preview" button in the keyboard layout
1455 ;; selection dialog to display the layout.
1456 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1457 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1458 (("\"gkbd-keyboard-display")
1459 (string-append "\"" libgnomekbd
1460 "/bin/gkbd-keyboard-display")))
1461 #t))))))
1462 (native-inputs
1463 `(("gettext" ,gettext-minimal)
1464 ("glib:bin" ,glib "bin")
1465 ("gobject-introspection" ,gobject-introspection)
1466 ("gtk+:bin" ,gtk+ "bin")
1467 ("pkg-config" ,pkg-config)))
1468 (inputs
1469 `(("accountsservice" ,accountsservice)
1470 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1471 ("gdm" ,gdm)
1472 ("geoclue" ,geoclue)
1473 ("gnome-desktop" ,gnome-desktop)
1474 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1475 ("gnome-online-accounts" ,gnome-online-accounts)
1476 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1477 ("gstreamer" ,gstreamer)
1478 ("ibus" ,ibus)
1479 ("json-glib" ,json-glib)
1480 ("krb5" ,mit-krb5)
1481 ("libgweather" ,libgweather)
1482 ("libnma" ,libnma)
1483 ("libsecret" ,libsecret)
1484 ("network-manager" ,network-manager)
1485 ("packagekit" ,packagekit)
1486 ("polkit" ,polkit)
1487 ("pwquality" ,libpwquality)
1488 ("rest" ,rest)
1489 ("upower" ,upower)
1490 ("webkitgtk" ,webkitgtk)
1491 ("libgnomekbd" ,libgnomekbd)))
1492 (synopsis "Initial setup wizard for GNOME desktop")
1493 (description "This package provides a set-up wizard when a
1494 user logs into GNOME for the first time. It typically provides a
1495 tour of all gnome components and allows the user to set them up.")
1496 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1497 (license license:gpl2)))
1498
1499 (define-public gnome-user-share
1500 (package
1501 (name "gnome-user-share")
1502 (version "3.33.1")
1503 (source (origin
1504 (method url-fetch)
1505 (uri (string-append "mirror://gnome/sources/" name "/"
1506 (version-major+minor version) "/"
1507 name "-" version ".tar.xz"))
1508 (sha256
1509 (base32
1510 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1511 (build-system meson-build-system)
1512 (arguments
1513 `(#:glib-or-gtk? #t
1514 #:configure-flags
1515 `("-Dsystemd=false"
1516 ;; Enable nautilus extension for file sharing.
1517 "-Dnautilus_extension=true")))
1518 (native-inputs
1519 `(("gettext" ,gettext-minimal)
1520 ("glib:bin" ,glib "bin")
1521 ("gobject-introspection" ,gobject-introspection)
1522 ("gtk+:bin" ,gtk+ "bin")
1523 ("pkg-config" ,pkg-config)
1524 ("yelp-tools" ,yelp-tools)))
1525 (inputs
1526 `(("glib" ,glib)
1527 ("gnome-bluetooth" ,gnome-bluetooth)
1528 ("gtk+" ,gtk+)
1529 ("libcanberra" ,libcanberra)
1530 ("libnotify" ,libnotify)
1531 ("nautilus" ,nautilus))) ; For nautilus extension.
1532 (synopsis "File sharing for GNOME desktop")
1533 (description "GNOME User Share is a small package that binds together
1534 various free software projects to bring easy to use user-level file
1535 sharing to the masses.")
1536 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1537 (license license:gpl2+)))
1538
1539 (define-public sushi
1540 (package
1541 (name "sushi")
1542 (version "3.32.1")
1543 (source (origin
1544 (method url-fetch)
1545 (uri (string-append "mirror://gnome/sources/" name "/"
1546 (version-major+minor version) "/"
1547 name "-" version ".tar.xz"))
1548 (sha256
1549 (base32
1550 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1551 (build-system meson-build-system)
1552 (arguments
1553 `(#:glib-or-gtk? #t
1554 #:phases
1555 (modify-phases %standard-phases
1556 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1557 (lambda* (#:key outputs #:allow-other-keys)
1558 (let ((prog (string-append (assoc-ref outputs "out")
1559 "/bin/sushi")))
1560 ;; Put existing typelibs before sushi's deps, so as to correctly
1561 ;; infer gdk-pixbuf
1562 (wrap-program prog
1563 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1564 #t))))))
1565 (native-inputs
1566 `(("glib:bin" ,glib "bin")
1567 ("gettext" ,gettext-minimal)
1568 ("gobject-introspection" ,gobject-introspection)
1569 ("pkg-config" ,pkg-config)))
1570 (inputs
1571 `(("clutter" ,clutter)
1572 ("clutter-gst" ,clutter-gst)
1573 ("clutter-gtk" ,clutter-gtk)
1574 ("evince" ,evince) ; For file previewing.
1575 ("freetype" ,freetype)
1576 ("gdk-pixbuf" ,gdk-pixbuf)
1577 ("gjs" ,gjs)
1578 ("gst-plugins-base" ,gst-plugins-base)
1579 ("gstreamer" ,gstreamer)
1580 ("gtksourceview" ,gtksourceview-3)
1581 ("harfbuzz" ,harfbuzz)
1582 ("libepoxy" ,libepoxy)
1583 ("libmusicbrainz" ,libmusicbrainz)
1584 ("libxml2" ,libxml2)
1585 ("neon" ,neon)
1586 ("webkitgtk" ,webkitgtk)))
1587 (synopsis "File previewer for the GNOME desktop")
1588 (description "Sushi is a DBus-activated service that allows applications to
1589 preview files on the GNOME desktop.")
1590 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1591 (license license:gpl2+)))
1592
1593 (define-public rygel
1594 (package
1595 (name "rygel")
1596 (version "0.38.3")
1597 (source (origin
1598 (method url-fetch)
1599 (uri (string-append "mirror://gnome/sources/" name "/"
1600 (version-major+minor version) "/"
1601 name "-" version ".tar.xz"))
1602 (sha256
1603 (base32
1604 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1605 (build-system gnu-build-system)
1606 (native-inputs
1607 `(("gettext" ,gettext-minimal)
1608 ("gobject-introspection" ,gobject-introspection)
1609 ("gtk-doc" ,gtk-doc)
1610 ("pkg-config" ,pkg-config)
1611 ("vala" ,vala)))
1612 (inputs
1613 `(("gdk-pixbuf" ,gdk-pixbuf)
1614 ("gssdp" ,gssdp)
1615 ("gstreamer" ,gstreamer)
1616 ("gst-plugins-base" ,gst-plugins-base)
1617 ("gtk+" ,gtk+)
1618 ("gupnp" ,gupnp)
1619 ("gupnp-av" ,gupnp-av)
1620 ("gupnp-dlna" ,gupnp-dlna)
1621 ("libgee" ,libgee)
1622 ("libmediaart" ,libmediaart)
1623 ("libsoup" ,libsoup)
1624 ("libxslt" ,libxslt)
1625 ("libunistring" ,libunistring)
1626 ("tracker" ,tracker)))
1627 (synopsis "Share audio, video, and pictures with other devices")
1628 (description
1629 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1630 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1631 pictures, and to control a media player on your home network.
1632
1633 Rygel achieves interoperability with other devices by trying to conform to the
1634 strict requirements of DLNA and by converting media on-the-fly to formats that
1635 client devices can handle.")
1636 (home-page "https://wiki.gnome.org/Projects/Rygel")
1637 (license (list
1638 ;; For logo (data/icons/*).
1639 license:cc-by-sa3.0
1640 ;; For all others.
1641 license:lgpl2.1+))))
1642
1643 (define-public libnma
1644 (package
1645 (name "libnma")
1646 (version "1.8.28")
1647 (source (origin
1648 (method url-fetch)
1649 (uri (string-append "mirror://gnome/sources/" name "/"
1650 (version-major+minor version) "/"
1651 name "-" version ".tar.xz"))
1652 (sha256
1653 (base32
1654 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1655 (build-system meson-build-system)
1656 (arguments
1657 `(#:phases
1658 (modify-phases %standard-phases
1659 (add-after 'unpack 'patch-docbook-xml
1660 (lambda* (#:key inputs #:allow-other-keys)
1661 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1662 "/xml/dtd/docbook")))
1663 (substitute* "libnma-docs.xml"
1664 (("http://.*/docbookx\\.dtd")
1665 (string-append xmldoc "/docbookx.dtd")))
1666 #t))))))
1667 (native-inputs
1668 `(("docbook-xml" ,docbook-xml-4.3)
1669 ("gettext" ,gettext-minimal)
1670 ("glib:bin" ,glib "bin")
1671 ("gtk-doc" ,gtk-doc)
1672 ("gobject-introspection" ,gobject-introspection)
1673 ("pkg-config" ,pkg-config)
1674 ("vala" ,vala)))
1675 (inputs
1676 `(("gcr" ,gcr)
1677 ("gtk+" ,gtk+)
1678 ("iso-codes" ,iso-codes)
1679 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1680 ("network-manager" ,network-manager)))
1681 (synopsis "Network Manager's applet library")
1682 (description "Libnma is an applet library for Network Manager. It was
1683 initially part of network-manager-applet and has now become a separate
1684 project.")
1685 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1686 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1687 ;; "LGPL-2.1+".
1688 (license license:gpl2+)))
1689
1690 (define-public gnome-menus
1691 (package
1692 (name "gnome-menus")
1693 (version "3.32.0")
1694 (source (origin
1695 (method url-fetch)
1696 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1697 (version-major+minor version) "/"
1698 name "-" version ".tar.xz"))
1699 (sha256
1700 (base32
1701 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1702 (build-system gnu-build-system)
1703 (native-inputs
1704 `(("gettext" ,gettext-minimal)
1705 ("glib" ,glib)
1706 ("pkg-config" ,pkg-config)))
1707 (synopsis "Menu support for GNOME desktop")
1708 (description "GNOME Menus contains the libgnome-menu library, the layout
1709 configuration files for the GNOME menu, as well as a simple menu editor.")
1710 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1711 (license license:lgpl2.0+)))
1712
1713 (define-public deja-dup
1714 (package
1715 (name "deja-dup")
1716 (version "40.6")
1717 (source (origin
1718 (method url-fetch)
1719 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1720 version "/deja-dup-" version ".tar.bz2"))
1721 (sha256
1722 (base32
1723 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1724 (build-system meson-build-system)
1725 (arguments
1726 `(#:glib-or-gtk? #t
1727 #:configure-flags
1728 (list
1729 ;; Otherwise, the RUNPATH will lack the final path component.
1730 (string-append "-Dc_link_args=-Wl,-rpath="
1731 (assoc-ref %outputs "out") "/lib/deja-dup"))
1732 #:phases
1733 (modify-phases %standard-phases
1734 (add-after 'unpack 'patch-paths
1735 (lambda* (#:key inputs #:allow-other-keys)
1736 (let ((python (assoc-ref inputs "python")))
1737 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1738 "libdeja/tests/scripts/instance-error.test")
1739 (("/bin/rm")
1740 (which "rm")))
1741 (substitute* "libdeja/tests/runner.vala"
1742 (("/bin/sh")
1743 (which "sh")))
1744 (substitute* "libdeja/tests/scripts/instance-error.test"
1745 (("`which python3`")
1746 (string-append python "/bin/python3"))))))
1747 (add-after 'unpack 'patch-libgpg-error
1748 (lambda* (#:key inputs #:allow-other-keys)
1749 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1750 (substitute* "meson.build"
1751 (("(gpgerror_libs = ).*" _ var)
1752 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1753 #t))
1754 (add-after 'unpack 'skip-gtk-update-icon-cache
1755 ;; Don't create 'icon-theme.cache'.
1756 (lambda _
1757 (substitute* "data/post-install.sh"
1758 (("gtk-update-icon-cache") "true"))
1759 #t)))))
1760 (inputs
1761 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1762 ("duplicity" ,duplicity)
1763 ("python" ,python)
1764 ("python-pygobject" ,python-pygobject)
1765 ("gtk+" ,gtk+)
1766 ("json-glib" ,json-glib)
1767 ("libnotify" ,libnotify)
1768 ("libgpg-error" ,libgpg-error)
1769 ("libsecret" ,libsecret)
1770 ("libsoup" ,libsoup)
1771 ("packagekit" ,packagekit)))
1772 (native-inputs
1773 `(("appstream-glib" ,appstream-glib)
1774 ("desktop-file-utils" ,desktop-file-utils)
1775 ("gettext" ,gettext-minimal)
1776 ("glib" ,glib "bin") ; for glib-compile-schemas.
1777 ("gobject-introspection" ,gobject-introspection)
1778 ("itstool" ,itstool)
1779 ("pkg-config" ,pkg-config)
1780 ("vala" ,vala)))
1781 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1782 (synopsis "Simple backup tool, for regular encrypted backups")
1783 (description
1784 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1785 uses duplicity as the backend, which supports incremental backups and storage
1786 either on a local, or remote machine via a number of methods.")
1787 (license license:gpl3+)))
1788
1789 (define-public gnome-commander
1790 (package
1791 (name "gnome-commander")
1792 (version "1.10.3")
1793 (source
1794 (origin
1795 (method url-fetch)
1796 (uri (string-append "mirror://gnome/sources/" name "/"
1797 (version-major+minor version) "/"
1798 "gnome-commander-" version ".tar.xz"))
1799 (sha256
1800 (base32 "0bis36awb73vhkncq8yr0qlnyaxynqkvmyqbg57ijqwd0m8hh4zg"))))
1801 (build-system glib-or-gtk-build-system)
1802 (native-inputs
1803 `(("desktop-file-utils" ,desktop-file-utils)
1804 ("gcc" ,gcc-8) ;required for -Wcast-function-type
1805 ("gettext" ,gettext-minimal)
1806 ("glib:bin" ,glib "bin")
1807 ("gobject-introspection" ,gobject-introspection)
1808 ("googletest" ,googletest)
1809 ("intltool" ,intltool)
1810 ("itstool" ,itstool)
1811 ("libtool" ,libtool)
1812 ("pkg-config" ,pkg-config)))
1813 (inputs
1814 `(("gconf" ,gconf)
1815 ("gnome-vfs" ,gnome-vfs)
1816 ("gtk+" ,gtk+-2)
1817 ("libxml2" ,libxml2)))
1818 (home-page "https://gcmd.github.io/")
1819 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1820 (description
1821 "GNOME Commander is a two-pane graphical file manager using GNOME
1822 libraries. It aims to fulfill the demands of more advanced users who
1823 like to focus on file management, their work through special applications
1824 and running smart commands.")
1825 (license license:gpl2+)))
1826
1827 (define-public gnome-user-docs
1828 (package
1829 (name "gnome-user-docs")
1830 (version "3.32.3")
1831 (source
1832 (origin
1833 (method url-fetch)
1834 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1835 (version-major+minor version)
1836 "/gnome-user-docs-" version ".tar.xz"))
1837 (sha256
1838 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1839 (build-system gnu-build-system)
1840 (native-inputs
1841 `(("gettext" ,gettext-minimal)
1842 ("itstool" ,itstool)
1843 ("pkg-config" ,pkg-config)
1844 ("xmllint" ,libxml2)))
1845 (synopsis "User documentation for the GNOME desktop")
1846 (description
1847 "The GNOME User Documentation explains how to use the GNOME desktop and its
1848 components. It covers usage and setup of the core GNOME programs by end-users
1849 and system administrators.")
1850 (home-page "https://live.gnome.org/DocumentationProject")
1851 (license license:cc-by3.0)))
1852
1853 (define-public gnome-getting-started-docs
1854 (package
1855 (name "gnome-getting-started-docs")
1856 (version "3.32.2")
1857 (source
1858 (origin
1859 (method url-fetch)
1860 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1861 (version-major+minor version)
1862 "/gnome-getting-started-docs-" version ".tar.xz"))
1863 (sha256
1864 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1865 (build-system gnu-build-system)
1866 (native-inputs
1867 `(("gettext" ,gettext-minimal)
1868 ("itstool" ,itstool)
1869 ("pkg-config" ,pkg-config)
1870 ("xmllint" ,libxml2)))
1871 (synopsis "Help to get new users started with the GNOME desktop")
1872 (description
1873 "The GNOME Getting Started Documentation contains GNOME's intuitive
1874 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1875
1876 It is normally used together with @command{gnome-initial-setup}, but is also
1877 useful as a tutorial and users' guide for new or less experienced users.")
1878 (home-page "https://live.gnome.org/DocumentationProject")
1879 (license license:cc-by-sa3.0)))
1880
1881 (define-public dia
1882 ;; This version from GNOME's repository includes fixes for compiling with
1883 ;; recent versions of the build tools. The latest activity on the
1884 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1885 ;; fixes since.
1886 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1887 (revision "2"))
1888 (package
1889 (name "dia")
1890 (version (git-version "0.97.3" revision commit))
1891 (source (origin
1892 (method git-fetch)
1893 (uri (git-reference
1894 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1895 (commit commit)))
1896 (file-name (git-file-name name version))
1897 (sha256
1898 (base32
1899 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1900 (build-system meson-build-system)
1901 (inputs
1902 `(("graphene" ,graphene)
1903 ("gtk+" ,gtk+-2)
1904 ("libxml2" ,libxml2)
1905 ("libxslt" ,libxslt)
1906 ("poppler" ,poppler)
1907 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1908 ;; ERROR: Unknown method "dependency" in object.
1909 ("python-2" ,python-2)))
1910 (native-inputs
1911 `(("appstream-glib" ,appstream-glib)
1912 ("docbook-xsl" ,docbook-xsl)
1913 ("glib" ,glib "bin")
1914 ("intltool" ,intltool)
1915 ("pkg-config" ,pkg-config)))
1916 (home-page "https://wiki.gnome.org/Apps/Dia")
1917 (synopsis "Diagram creation for GNOME")
1918 (description "Dia can be used to draw different types of diagrams, and
1919 includes support for UML static structure diagrams (class diagrams), entity
1920 relationship modeling, and network diagrams. The program supports various file
1921 formats like PNG, SVG, PDF and EPS.")
1922 (license license:gpl2+))))
1923
1924 ;; This is the unstable release, but it is required for the current stable
1925 ;; release of gvfs (1.38.1).
1926 (define-public libgdata
1927 (package
1928 (name "libgdata")
1929 (version "0.17.9")
1930 (source (origin
1931 (method url-fetch)
1932 (uri (string-append "mirror://gnome/sources/" name "/"
1933 (version-major+minor version) "/"
1934 name "-" version ".tar.xz"))
1935 (sha256
1936 (base32
1937 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1938 (build-system gnu-build-system)
1939 (arguments
1940 '(#:phases
1941 (modify-phases %standard-phases
1942 (add-before 'check 'disable-failing-tests
1943 (lambda _
1944 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1945 ;; They have been removed in libgdata 0.17.6, so just do the same.
1946 (substitute* "gdata/tests/Makefile"
1947 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1948 #t)))))
1949 (native-inputs
1950 `(("glib:bin" ,glib "bin")
1951 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1952 ("intltool" ,intltool)
1953 ("pkg-config" ,pkg-config)
1954 ("uhttpmock" ,uhttpmock)))
1955 (inputs
1956 `(("cyrus-sasl" ,cyrus-sasl)
1957 ("glib-networking" ,glib-networking)))
1958 (propagated-inputs
1959 `(("gcr" ,gcr)
1960 ("glib" ,glib)
1961 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1962 ("json-glib" ,json-glib)
1963 ("liboauth" ,liboauth)
1964 ("libsoup" ,libsoup)
1965 ("libxml2" ,libxml2)))
1966 (home-page "https://wiki.gnome.org/Projects/libgdata")
1967 (synopsis "Library for accessing online service APIs")
1968 (description
1969 "libgdata is a GLib-based library for accessing online service APIs using
1970 the GData protocol — most notably, Google's services. It provides APIs to
1971 access the common Google services, and has full asynchronous support.")
1972 (license license:lgpl2.1+)))
1973
1974 (define-public libgxps
1975 (package
1976 (name "libgxps")
1977 (version "0.3.2")
1978 (source (origin
1979 (method url-fetch)
1980 (uri (string-append "mirror://gnome/sources/" name "/"
1981 (version-major+minor version) "/"
1982 name "-" version ".tar.xz"))
1983 (sha256
1984 (base32
1985 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
1986 (build-system meson-build-system)
1987 (native-inputs
1988 `(("gobject-introspection" ,gobject-introspection)
1989 ("pkg-config" ,pkg-config)))
1990 (inputs
1991 `(("gtk+" ,gtk+)
1992 ("libjpeg" ,libjpeg-turbo)
1993 ("lcms" ,lcms)
1994 ("libtiff" ,libtiff)))
1995 (propagated-inputs
1996 ;; In Requires of libgxps.pc.
1997 `(("cairo" ,cairo)
1998 ("glib" ,glib)
1999 ("libarchive" ,libarchive)))
2000 (home-page "https://wiki.gnome.org/Projects/libgxps")
2001 (synopsis "GObject-based library for handling and rendering XPS documents")
2002 (description
2003 "libgxps is a GObject-based library for handling and rendering XPS
2004 documents. This package also contains binaries that can convert XPS documents
2005 to other formats.")
2006 (license license:lgpl2.1+)))
2007
2008 (define-public gnome-characters
2009 (package
2010 (name "gnome-characters")
2011 (version "3.30.0")
2012 (source
2013 (origin
2014 (method url-fetch)
2015 (uri (string-append "mirror://gnome/sources/"
2016 "gnome-characters/" (version-major+minor version)
2017 "/gnome-characters-" version ".tar.xz"))
2018 (sha256
2019 (base32
2020 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
2021 (build-system meson-build-system)
2022 (arguments
2023 `(#:glib-or-gtk? #t
2024 #:phases (modify-phases %standard-phases
2025 (add-after 'install 'wrap
2026 (lambda* (#:key outputs #:allow-other-keys)
2027 ;; GNOME Characters needs Typelib files from GTK and
2028 ;; gnome-desktop.
2029 (wrap-program (string-append (assoc-ref outputs "out")
2030 "/bin/gnome-characters")
2031 `("GI_TYPELIB_PATH" ":" prefix
2032 (,(getenv "GI_TYPELIB_PATH"))))
2033 #t)))))
2034 (native-inputs
2035 `(("gettext" ,gettext-minimal)
2036 ("glib:bin" ,glib "bin")
2037 ("gtk+:bin" ,gtk+ "bin")
2038 ("pkg-config" ,pkg-config)
2039 ("python" ,python-minimal)))
2040 (inputs
2041 `(("gjs" ,gjs)
2042 ("gtk+" ,gtk+)
2043 ("libunistring" ,libunistring)
2044 ("gnome-desktop" ,gnome-desktop)))
2045 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2046 (synopsis "Find and insert unusual characters")
2047 (description "Characters is a simple utility application to find
2048 and insert unusual characters. It allows you to quickly find the
2049 character you are looking for by searching for keywords.")
2050 (license license:bsd-3)))
2051
2052 (define-public gnome-common
2053 (package
2054 (name "gnome-common")
2055 (version "3.18.0")
2056 (source
2057 (origin
2058 (method url-fetch)
2059 (uri (string-append "mirror://gnome/sources/" name "/"
2060 (version-major+minor version) "/"
2061 name "-" version ".tar.xz"))
2062 (sha256
2063 (base32
2064 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2065 (build-system gnu-build-system)
2066 (home-page "https://www.gnome.org/")
2067 (synopsis "Bootstrap GNOME modules built from Git")
2068 (description "gnome-common contains various files needed to bootstrap
2069 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2070 can be used to configure a source directory checked out from Git and some
2071 commonly used macros.")
2072 (license license:gpl2+)))
2073
2074 (define-public gnome-contacts
2075 (package
2076 (name "gnome-contacts")
2077 (version "3.34")
2078 (source (origin
2079 (method url-fetch)
2080 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2081 (version-major+minor version) "/"
2082 name "-" version ".tar.xz"))
2083 (sha256
2084 (base32
2085 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
2086 (build-system meson-build-system)
2087 (arguments
2088 `(#:configure-flags '("-Dcheese=false")
2089 #:phases
2090 (modify-phases %standard-phases
2091 (add-after 'unpack 'generate-vapis
2092 (lambda* (#:key inputs #:allow-other-keys)
2093 ;; To generate goa's missing .vapi file
2094 (define goa
2095 (assoc-ref inputs "gnome-online-accounts:lib"))
2096
2097 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
2098 "--library=goa-1.0"
2099 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
2100 #t))
2101 (add-after 'unpack 'skip-gtk-update-icon-cache
2102 ;; Don't create 'icon-theme.cache'.
2103 (lambda _
2104 (substitute* "build-aux/meson_post_install.py"
2105 (("gtk-update-icon-cache") "true"))
2106 #t)))))
2107 (native-inputs
2108 `(("glib:bin" ,glib "bin")
2109 ("pkg-config" ,pkg-config)))
2110 (inputs
2111 `(("docbook-xml" ,docbook-xml)
2112 ("dockbook-xsl" ,docbook-xsl)
2113 ("evolution-data-server" ,evolution-data-server)
2114 ("gettext" ,gettext-minimal)
2115 ("gnome-desktop" ,gnome-desktop)
2116 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
2117 ("gobject-introspection" ,gobject-introspection)
2118 ("gst-plugins-base" ,gst-plugins-base)
2119 ("gtk+" ,gtk+)
2120 ("libgee" ,libgee)
2121 ("libxslt" ,libxslt)
2122 ("telepathy-glib" ,telepathy-glib)
2123 ("vala" ,vala)))
2124 (propagated-inputs
2125 `(("folks" ,folks)
2126 ("telepathy-mission-control" ,telepathy-mission-control)))
2127 (synopsis "GNOME's integrated address book")
2128 (description
2129 "GNOME Contacts organizes your contact information from online and
2130 offline sources, providing a centralized place for managing your contacts.")
2131 (home-page "https://wiki.gnome.org/Apps/Contacts")
2132 (license license:gpl2+)))
2133
2134 (define-public gnome-desktop
2135 (package
2136 (name "gnome-desktop")
2137 (version "3.34.2")
2138 (source
2139 (origin
2140 (method url-fetch)
2141 (uri (string-append "mirror://gnome/sources/" name "/"
2142 (version-major+minor version) "/"
2143 name "-" version ".tar.xz"))
2144 (sha256
2145 (base32
2146 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
2147 (build-system meson-build-system)
2148 (arguments
2149 '(#:phases
2150 (modify-phases %standard-phases
2151 (add-before 'configure 'patch-path
2152 (lambda* (#:key inputs #:allow-other-keys)
2153 (let ((libc (assoc-ref inputs "libc")))
2154 (substitute* "libgnome-desktop/gnome-languages.c"
2155 (("\"locale\"")
2156 (string-append "\"" libc "/bin/locale\"")))
2157 #t)))
2158 (add-before 'configure 'patch-bubblewrap
2159 (lambda* (#:key inputs #:allow-other-keys)
2160 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2161 (("\"bwrap\",")
2162 (string-append "\"" (which "bwrap") "\","))
2163 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2164 (string-append "\"--ro-bind\", \""
2165 (%store-directory)
2166 "\", \""
2167 (%store-directory)
2168 "\","))
2169 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
2170 #t))
2171 (add-before 'check 'pre-check
2172 (lambda* (#:key inputs #:allow-other-keys)
2173 ;; Tests require a running X server and locales.
2174 (system "Xvfb :1 &")
2175 (setenv "DISPLAY" ":1")
2176 (setenv "GUIX_LOCPATH"
2177 (string-append (assoc-ref inputs "glibc-locales")
2178 "/lib/locale"))
2179 #t)))))
2180 (native-inputs
2181 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2182 ("glibc-locales" ,glibc-locales) ; for tests
2183 ("gobject-introspection" ,gobject-introspection)
2184 ("itstool" ,itstool)
2185 ("intltool" ,intltool)
2186 ("pkg-config" ,pkg-config)
2187 ("xmllint" ,libxml2)
2188 ("xorg-server" ,xorg-server-for-tests)))
2189 (propagated-inputs
2190 ;; Required by gnome-desktop-3.0.pc.
2191 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2192 ("gtk+" ,gtk+)
2193 ("iso-codes" ,iso-codes)
2194 ("libseccomp" ,libseccomp)
2195 ("libx11" ,libx11)
2196 ("xkeyboard-config" ,xkeyboard-config)))
2197 (inputs
2198 `(("gdk-pixbuf" ,gdk-pixbuf)
2199 ("glib" ,glib)
2200 ("bubblewrap" ,bubblewrap)
2201 ("libxext" ,libxext)
2202 ("libxkbfile" ,libxkbfile)
2203 ("libxrandr" ,libxrandr)))
2204 (home-page "https://www.gnome.org/")
2205 (synopsis
2206 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2207 (description
2208 "The libgnome-desktop library provides API shared by several applications
2209 on the desktop, but that cannot live in the platform for various reasons.
2210 There is no API or ABI guarantee, although we are doing our best to provide
2211 stability. Documentation for the API is available with gtk-doc.
2212
2213 The gnome-about program helps find which version of GNOME is installed.")
2214 ; Some bits under the LGPL.
2215 (license license:gpl2+)))
2216
2217 (define-public gnome-doc-utils
2218 (package
2219 (name "gnome-doc-utils")
2220 (version "0.20.10")
2221 (source
2222 (origin
2223 (method url-fetch)
2224 (uri (string-append "mirror://gnome/sources/" name "/"
2225 (version-major+minor version) "/"
2226 name "-" version ".tar.xz"))
2227 (sha256
2228 (base32
2229 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2230 (build-system gnu-build-system)
2231 (native-inputs
2232 `(("intltool" ,intltool)
2233 ("docbook-xml" ,docbook-xml-4.4)
2234 ("python2-libxml2" ,python2-libxml2)
2235 ("libxml2" ,libxml2)
2236 ("libxslt" ,libxslt)
2237 ("pkg-config" ,pkg-config)
2238 ("python-2" ,python-2)))
2239 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2240 (synopsis
2241 "Documentation utilities for the Gnome project")
2242 (description
2243 "Gnome-doc-utils is a collection of documentation utilities for the
2244 Gnome project. It includes xml2po tool which makes it easier to translate
2245 and keep up to date translations of documentation.")
2246 (license license:gpl2+))) ; xslt under lgpl
2247
2248 (define-public gnome-disk-utility
2249 (package
2250 (name "gnome-disk-utility")
2251 (version "3.34.0")
2252 (source (origin
2253 (method url-fetch)
2254 (uri (string-append "mirror://gnome/sources/" name "/"
2255 (version-major+minor version) "/"
2256 name "-" version ".tar.xz"))
2257 (sha256
2258 (base32
2259 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
2260 (build-system meson-build-system)
2261 (arguments
2262 '(#:configure-flags '("-Dlogind=libelogind")
2263 #:phases
2264 (modify-phases %standard-phases
2265 (add-after 'unpack 'skip-gtk-update-icon-cache
2266 ;; Don't create 'icon-theme.cache'.
2267 (lambda _
2268 (substitute* "meson_post_install.py"
2269 (("gtk-update-icon-cache") "true"))
2270 #t)))))
2271 (native-inputs
2272 `(("glib:bin" ,glib "bin")
2273 ("intltool" ,intltool)
2274 ("pkg-config" ,pkg-config)
2275 ("docbook-xml" ,docbook-xml)
2276 ("docbook-xsl" ,docbook-xsl)
2277 ("libxml2" ,libxml2)
2278 ("libxslt" ,libxslt)))
2279 (inputs
2280 `(("elogind" ,elogind)
2281 ("glib" ,glib)
2282 ("appstream-glib" ,appstream-glib)
2283 ("gnome-settings-daemon" ,gnome-settings-daemon)
2284 ("gtk+" ,gtk+)
2285 ("libcanberra" ,libcanberra)
2286 ("libdvdread" ,libdvdread)
2287 ("libnotify" ,libnotify)
2288 ("libpwquality" ,libpwquality)
2289 ("libsecret" ,libsecret)
2290 ("udisks" ,udisks)))
2291 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2292 (synopsis "Disk management utility for GNOME")
2293 (description "Disk management utility for GNOME.")
2294 (license license:gpl2+)))
2295
2296 (define-public gnome-font-viewer
2297 (package
2298 (name "gnome-font-viewer")
2299 (version "3.30.0")
2300 (source (origin
2301 (method url-fetch)
2302 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2303 (version-major+minor version)
2304 "/gnome-font-viewer-" version ".tar.xz"))
2305 (sha256
2306 (base32
2307 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2308 (build-system meson-build-system)
2309 (arguments
2310 '(#:phases
2311 (modify-phases %standard-phases
2312 (add-after 'unpack 'patch-post-install-script
2313 (lambda _
2314 (substitute* "meson-postinstall.sh"
2315 (("update-desktop-database") (which "true")))
2316 #t))
2317 (add-after 'install 'patch-thumbnailer
2318 (lambda* (#:key outputs #:allow-other-keys)
2319 (let ((out (assoc-ref outputs "out")))
2320 (substitute*
2321 (string-append
2322 out
2323 "/share/thumbnailers/gnome-font-viewer.thumbnailer")
2324 (("gnome-thumbnail-font")
2325 (string-append out "/bin/gnome-thumbnail-font"))))
2326 #t)))))
2327 (native-inputs
2328 `(("gettext" ,gettext-minimal)
2329 ("glib:bin" ,glib "bin")
2330 ("pkg-config" ,pkg-config)))
2331 (inputs
2332 `(("glib" ,glib)
2333 ("gnome-desktop" ,gnome-desktop)
2334 ("gtk+" ,gtk+)))
2335 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2336 (synopsis "GNOME Fonts")
2337 (description "Application to show you the fonts installed on your computer
2338 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2339 the font would look under various sizes.")
2340 (license license:gpl2+)))
2341
2342 (define-public gcr
2343 (package
2344 (name "gcr")
2345 (version "3.34.0")
2346 (source (origin
2347 (method url-fetch)
2348 (uri (string-append "mirror://gnome/sources/" name "/"
2349 (version-major+minor version) "/"
2350 name "-" version ".tar.xz"))
2351 (sha256
2352 (base32
2353 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
2354 (build-system gnu-build-system)
2355 (arguments
2356 '(#:phases
2357 (modify-phases %standard-phases
2358 ;; These fail because /var/lib/dbus/machine-id is not present in the
2359 ;; build environment.
2360 (add-after 'unpack 'disable-failing-tests
2361 (lambda _
2362 (substitute* "Makefile.in"
2363 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2364 ""))
2365 #t))
2366 (add-before 'check 'pre-check
2367 (lambda _
2368 ;; Some tests expect to write to $HOME.
2369 (setenv "HOME" "/tmp")
2370 #t)))))
2371 (inputs
2372 `(("dbus" ,dbus)
2373 ("gnupg" ,gnupg) ;called as a child process during tests
2374 ("libgcrypt" ,libgcrypt)))
2375 (native-inputs
2376 `(("python" ,python-wrapper) ;for tests
2377 ("pkg-config" ,pkg-config)
2378 ("gettext" ,gettext-minimal)
2379 ("glib" ,glib "bin")
2380 ("gobject-introspection" ,gobject-introspection)
2381 ("libxml2" ,libxml2)
2382 ("vala" ,vala)
2383 ("xsltproc" ,libxslt)))
2384 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2385 (propagated-inputs
2386 `(("p11-kit" ,p11-kit)
2387 ("glib" ,glib)
2388 ("gtk+" ,gtk+)))
2389 (home-page "https://www.gnome.org")
2390 (synopsis "Libraries for displaying certificates and accessing key stores")
2391 (description
2392 "The GCR package contains libraries used for displaying certificates and
2393 accessing key stores. It also provides the viewer for crypto files on the
2394 GNOME Desktop.")
2395 (license license:lgpl2.1+)))
2396
2397 (define-public gdl
2398 (package
2399 (name "gdl")
2400 (version "3.34.0")
2401 (source (origin
2402 (method git-fetch)
2403 (uri (git-reference
2404 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2405 (commit (string-append "GDL_" (string-map (match-lambda
2406 (#\. #\_)
2407 (c c))
2408 version)))))
2409 (file-name (git-file-name name version))
2410 (sha256
2411 (base32
2412 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2413 (build-system gnu-build-system)
2414 (native-inputs
2415 `(("autoconf" ,autoconf)
2416 ("automake" ,automake)
2417 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2418 ("gnome-common" ,gnome-common)
2419 ("gtk-doc" ,gtk-doc)
2420 ("intltool" ,intltool)
2421 ("pkg-config" ,pkg-config)
2422 ("libtool" ,libtool)
2423 ("which" ,which)))
2424 (inputs
2425 `(("libxml2" ,libxml2)))
2426 (propagated-inputs
2427 ;; The gdl-3.0.pc file 'Requires' GTK+.
2428 `(("gtk+" ,gtk+)))
2429 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2430 (synopsis "GNOME docking library")
2431 (description "This library provides docking features for gtk+.")
2432 (license license:lgpl2.1+)))
2433
2434 ;;; A minimal variant used to break a cycle with Inkscape.
2435 (define-public gdl-minimal
2436 (package
2437 (inherit gdl)
2438 (name "gdl-minimal")
2439 (arguments
2440 '(#:phases
2441 (modify-phases %standard-phases
2442 (add-after 'unpack 'disable-doc-generation
2443 ;; XXX: There is no easy way to disable generating the
2444 ;; documentation.
2445 (lambda _
2446 (substitute* "configure.in"
2447 (("GTK_DOC_CHECK.*") "")
2448 (("docs/.*") ""))
2449 (substitute* "Makefile.am"
2450 (("gdl docs po") "gdl po"))
2451 #t)))))
2452 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2453
2454 (define-public libgnome-keyring
2455 (package
2456 (name "libgnome-keyring")
2457 (version "3.12.0")
2458 (source (origin
2459 (method url-fetch)
2460 (uri (string-append "mirror://gnome/sources/" name "/"
2461 (version-major+minor version) "/"
2462 name "-" version ".tar.xz"))
2463 (sha256
2464 (base32
2465 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2466 (build-system gnu-build-system)
2467 (inputs
2468 `(("libgcrypt" ,libgcrypt)
2469 ("dbus" ,dbus)))
2470 (native-inputs
2471 `(("pkg-config" ,pkg-config)
2472 ("glib" ,glib "bin")
2473 ("intltool" ,intltool)))
2474 (propagated-inputs
2475 ;; Referred to in .h files and .pc.
2476 `(("glib" ,glib)))
2477 (home-page "https://www.gnome.org")
2478 (synopsis "Accessing passwords from the GNOME keyring")
2479 (description
2480 "Client library to access passwords from the GNOME keyring.")
2481
2482 ;; Though a couple of files are LGPLv2.1+.
2483 (license license:lgpl2.0+)))
2484
2485 (define-public gnome-keyring
2486 (package
2487 (name "gnome-keyring")
2488 (version "3.34.0")
2489 (source (origin
2490 (method url-fetch)
2491 (uri (string-append "mirror://gnome/sources/" name "/"
2492 (version-major+minor version) "/"
2493 name "-" version ".tar.xz"))
2494 (sha256
2495 (base32
2496 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
2497 (build-system gnu-build-system)
2498 (arguments
2499 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2500 ;not exist
2501 #:configure-flags
2502 (list
2503 (string-append "--with-pkcs11-config="
2504 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2505 (string-append "--with-pkcs11-modules="
2506 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2507 #:phases
2508 (modify-phases %standard-phases
2509 (add-after 'unpack 'fix-/bin/sh-reference
2510 (lambda _
2511 (substitute* "po/Makefile.in.in"
2512 (("/bin/sh") (which "sh")))
2513 #t))
2514 (add-after 'unpack 'fix-docbook
2515 (lambda* (#:key inputs #:allow-other-keys)
2516 (substitute* "docs/Makefile.am"
2517 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2518 (string-append (assoc-ref inputs "docbook-xsl")
2519 "/xml/xsl/docbook-xsl-"
2520 ,(package-version docbook-xsl)
2521 "/manpages/docbook.xsl")))
2522 (setenv "XML_CATALOG_FILES"
2523 (string-append (assoc-ref inputs "docbook-xml")
2524 "/xml/dtd/docbook/catalog.xml"))
2525 ;; Rerun the whole thing to avoid version mismatch ("This is
2526 ;; Automake 1.15.1, but the definition used by this
2527 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2528 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2529 (invoke "autoconf")
2530 (invoke "aclocal")
2531 (invoke "automake" "-ac"))))))
2532 (inputs
2533 `(("libgcrypt" ,libgcrypt)
2534 ("linux-pam" ,linux-pam)
2535 ("openssh" ,openssh)
2536 ("dbus" ,dbus)
2537 ("gcr" ,gcr)))
2538 (native-inputs
2539 `(("pkg-config" ,pkg-config)
2540 ("glib" ,glib "bin")
2541 ("glib" ,glib) ; for m4 macros
2542 ("python" ,python-2) ;for tests
2543 ("intltool" ,intltool)
2544 ("autoconf" ,autoconf)
2545 ("automake" ,automake)
2546 ("libxslt" ,libxslt) ;for documentation
2547 ("docbook-xml" ,docbook-xml-4.2)
2548 ("docbook-xsl" ,docbook-xsl)))
2549 (propagated-inputs
2550 `(("gcr" ,gcr)))
2551 (home-page "https://www.gnome.org")
2552 (synopsis "Daemon to store passwords and encryption keys")
2553 (description
2554 "gnome-keyring is a program that keeps passwords and other secrets for
2555 users. It is run as a daemon in the session, similar to ssh-agent, and other
2556 applications locate it via an environment variable or D-Bus.
2557
2558 The program can manage several keyrings, each with its own master password,
2559 and there is also a session keyring which is never stored to disk, but
2560 forgotten when the session ends.")
2561 (license license:lgpl2.1+)))
2562
2563 (define-public evince
2564 (package
2565 (name "evince")
2566 (version "3.36.5")
2567 (source (origin
2568 (method url-fetch)
2569 (uri (string-append "mirror://gnome/sources/evince/"
2570 (version-major+minor version) "/"
2571 "evince-" version ".tar.xz"))
2572 (sha256
2573 (base32
2574 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2575 (build-system glib-or-gtk-build-system)
2576 (arguments
2577 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2578 #:phases
2579 (modify-phases %standard-phases
2580 (add-before 'install 'skip-gtk-update-icon-cache
2581 ;; Don't create 'icon-theme.cache'.
2582 (lambda _
2583 (substitute* "data/Makefile"
2584 (("gtk-update-icon-cache") "true"))
2585 #t)))))
2586 (inputs
2587 `(("libarchive" ,libarchive)
2588 ("libgxps" ,libgxps)
2589 ("libspectre" ,libspectre)
2590 ("djvulibre" ,djvulibre)
2591 ("ghostscript" ,ghostscript)
2592 ("poppler" ,poppler)
2593 ("libtiff" ,libtiff)
2594 ;; TODO:
2595 ;; Build libkpathsea as a shared library for DVI support.
2596 ;; ("libkpathsea" ,texlive-bin)
2597 ("gnome-desktop" ,gnome-desktop)
2598 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2599 ("gspell" ,gspell)
2600 ("libgnome-keyring" ,libgnome-keyring)
2601 ("adwaita-icon-theme" ,adwaita-icon-theme)
2602 ("gdk-pixbuf" ,gdk-pixbuf)
2603 ("atk" ,atk)
2604 ("pango" ,pango)
2605 ("gtk+" ,gtk+)
2606 ("glib" ,glib)
2607 ("libxml2" ,libxml2)
2608 ("libsm" ,libsm)
2609 ("libice" ,libice)
2610 ("shared-mime-info" ,shared-mime-info)
2611 ("dconf" ,dconf)
2612 ("libcanberra" ,libcanberra)
2613 ("libsecret" ,libsecret)
2614
2615 ;; For tests.
2616 ("dogtail" ,python2-dogtail)))
2617 (native-inputs
2618 `(("itstool" ,itstool)
2619 ("intltool" ,intltool)
2620 ("glib" ,glib "bin")
2621 ("gobject-introspection" ,gobject-introspection)
2622 ("pkg-config" ,pkg-config)
2623 ("xmllint" ,libxml2)))
2624 (home-page "https://www.gnome.org/projects/evince/")
2625 (synopsis "GNOME's document viewer")
2626 (description
2627 "Evince is a document viewer for multiple document formats. It
2628 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2629 of Evince is to replace the multiple document viewers that exist
2630 on the GNOME Desktop with a single simple application.")
2631 (license license:gpl2+)))
2632
2633 (define-public gsettings-desktop-schemas
2634 (package
2635 (name "gsettings-desktop-schemas")
2636 (version "3.34.0")
2637 (source
2638 (origin
2639 (method url-fetch)
2640 (uri (string-append "mirror://gnome/sources/" name "/"
2641 (version-major+minor version) "/"
2642 name "-" version ".tar.xz"))
2643 (sha256
2644 (base32
2645 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2646 (build-system meson-build-system)
2647 (arguments
2648 '(#:phases (modify-phases %standard-phases
2649 (add-after 'unpack 'patch-schemas
2650 (lambda* (#:key inputs #:allow-other-keys)
2651 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2652 (substitute* (find-files "schemas"
2653 "\\.gschema\\.xml\\.in$")
2654 ;; Provide the correct file name of the default GNOME
2655 ;; background, 'adwaita-timed.xml'.
2656 (("@datadir@/backgrounds/gnome")
2657 (string-append theme "/share/backgrounds/gnome"))
2658 ;; Do not reference fonts, that may not exist.
2659 (("'Source Code Pro 10'") "'Monospace 11'"))
2660 #t))))))
2661 (inputs
2662 `(("glib" ,glib)
2663 ("gnome-backgrounds" ,gnome-backgrounds)))
2664 (native-inputs
2665 `(("intltool" ,intltool)
2666 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2667 ("gobject-introspection" ,gobject-introspection)
2668 ("pkg-config" ,pkg-config)))
2669 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2670 (synopsis
2671 "GNOME settings for various desktop components")
2672 (description
2673 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2674 for settings shared by various components of the GNOME desktop.")
2675 (license license:lgpl2.1+)))
2676
2677 (define-public python-liblarch
2678 (package
2679 (name "python-liblarch")
2680 (version "3.0.1")
2681 (source
2682 (origin
2683 (method git-fetch)
2684 (uri (git-reference
2685 (url "https://github.com/getting-things-gnome/liblarch")
2686 (commit (string-append "v" version))))
2687 (file-name (git-file-name name version))
2688 (sha256
2689 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2690 (build-system python-build-system)
2691 (arguments
2692 `(#:phases
2693 (modify-phases %standard-phases
2694 (add-before 'check 'start-xserver
2695 (lambda* (#:key inputs #:allow-other-keys)
2696 (system (format #f "~a/bin/Xvfb :1 &"
2697 (assoc-ref inputs "xorg-server")))
2698 (setenv "DISPLAY" ":1")
2699 #t)))))
2700 (native-inputs
2701 `(("xorg-server" ,xorg-server-for-tests)))
2702 (inputs
2703 `(("gtk+" ,gtk+)))
2704 (propagated-inputs
2705 `(("python-pygobject" ,python-pygobject)))
2706 (home-page "https://wiki.gnome.org/Projects/liblarch")
2707 (synopsis "Library to easily handle complex data structures")
2708 (description
2709 "Liblarch is a Python library built to easily handle data structures such
2710 as lists, trees and acyclic graphs. There's also a GTK binding that will
2711 allow you to use your data structure in a @code{Gtk.Treeview}.
2712
2713 Liblarch support multiple views of one data structure and complex filtering.
2714 That way, you have a clear separation between your data themselves (Model)
2715 and how they are displayed (View).")
2716 (license license:lgpl3+)))
2717
2718 (define-public gtg
2719 (package
2720 (name "gtg")
2721 (version "0.4")
2722 (source
2723 (origin
2724 (method git-fetch)
2725 (uri (git-reference
2726 (url "https://github.com/getting-things-gnome/gtg")
2727 (commit (string-append "v" version))))
2728 (file-name (git-file-name name version))
2729 (sha256
2730 (base32 "0r28vyr88rj3kd3cg4gj7sd29wadjchi92wzmbx67d4hlg25h8kk"))))
2731 (build-system meson-build-system)
2732 (arguments
2733 `(#:glib-or-gtk? #t
2734 #:phases
2735 (modify-phases %standard-phases
2736 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2737 (lambda* (#:key outputs #:allow-other-keys)
2738 (let ((prog (string-append (assoc-ref outputs "out")
2739 "/bin/gtg"))
2740 (pylib (string-append (assoc-ref outputs "out")
2741 "/lib/python"
2742 ,(version-major+minor
2743 (package-version python))
2744 "/site-packages")))
2745 (wrap-program prog
2746 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
2747 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2748 #t))))))
2749 (native-inputs
2750 `(("desktop-file-utils" ,desktop-file-utils)
2751 ("gettext" ,gettext-minimal)
2752 ("glib:bin" ,glib "bin")
2753 ("gobject-introspection" ,gobject-introspection)
2754 ("gtk+:bin" ,gtk+ "bin")
2755 ("pkg-config" ,pkg-config)))
2756 (inputs
2757 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2758 ("gtk+" ,gtk+)
2759 ("python-dbus" ,python-dbus)
2760 ("python-liblarch" ,python-liblarch)
2761 ("python-pycairo" ,python-pycairo)
2762 ("python-pygobject" ,python-pygobject)
2763 ("python-pyxdg" ,python-pyxdg)))
2764 (home-page "https://wiki.gnome.org/Apps/GTG")
2765 (synopsis "Personal organizer for the GNOME desktop")
2766 (description
2767 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2768 organizer for the GNOME desktop environment inspired by the Getting Things
2769 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2770 and ease of use in mind so it can be used as more than just GTD software.
2771 GTG is intended to help you track everything you need to do and need to
2772 know, from small tasks to large projects.")
2773 (license license:gpl3+)))
2774
2775 (define-public icon-naming-utils
2776 (package
2777 (name "icon-naming-utils")
2778 (version "0.8.90")
2779 (source
2780 (origin
2781 (method url-fetch)
2782 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2783 version ".tar.bz2"))
2784 (sha256
2785 (base32
2786 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2787 (build-system gnu-build-system)
2788 (inputs
2789 `(("perl" ,perl)
2790 ("perl-xml-simple" ,perl-xml-simple)))
2791 (arguments
2792 '(#:phases
2793 (modify-phases %standard-phases
2794 (add-after 'install 'set-load-paths
2795 ;; Tell 'icon-name-mapping' where XML::Simple is.
2796 (lambda* (#:key outputs #:allow-other-keys)
2797 (let* ((out (assoc-ref outputs "out"))
2798 (prog (string-append out "/libexec/icon-name-mapping")))
2799 (wrap-program
2800 prog
2801 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2802 #t)))))
2803 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2804 (synopsis
2805 "Utility to implement the Freedesktop Icon Naming Specification")
2806 (description
2807 "To help with the transition to the Freedesktop Icon Naming
2808 Specification, the icon naming utility maps the icon names used by the
2809 GNOME and KDE desktops to the icon names proposed in the specification.")
2810 (license license:lgpl2.1+)))
2811
2812 (define-public gnome-icon-theme
2813 (package
2814 (name "gnome-icon-theme")
2815 (version "3.12.0")
2816 (source
2817 (origin
2818 (method url-fetch)
2819 (uri (string-append "mirror://gnome/sources/" name "/"
2820 (version-major+minor version) "/"
2821 name "-" version ".tar.xz"))
2822 (sha256
2823 (base32
2824 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2825 (build-system gnu-build-system)
2826 (arguments
2827 '(#:configure-flags
2828 ;; Don't create 'icon-theme.cache'.
2829 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2830 (true (string-append coreutils "/bin/true")))
2831 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2832 (native-inputs
2833 `(("icon-naming-utils" ,icon-naming-utils)
2834 ("intltool" ,intltool)
2835 ("pkg-config" ,pkg-config)))
2836 (home-page "https://wiki.gnome.org/Personalization")
2837 (synopsis "GNOME icon theme")
2838 (description "Icons for the GNOME desktop.")
2839 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2840
2841 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2842 (define-public adwaita-icon-theme
2843 (package (inherit gnome-icon-theme)
2844 (name "adwaita-icon-theme")
2845 (version "3.34.3")
2846 (source (origin
2847 (method url-fetch)
2848 (uri (string-append "mirror://gnome/sources/" name "/"
2849 (version-major+minor version) "/"
2850 name "-" version ".tar.xz"))
2851 (sha256
2852 (base32
2853 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2854 (native-inputs
2855 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2856
2857 (define-public tango-icon-theme
2858 (package
2859 (name "tango-icon-theme")
2860 (version "0.8.90")
2861 (source (origin
2862 (method url-fetch)
2863 (uri (string-append "http://tango.freedesktop.org/releases/"
2864 "tango-icon-theme-" version ".tar.bz2"))
2865 (sha256
2866 (base32
2867 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2868 (build-system gnu-build-system)
2869 (native-inputs
2870 `(("icon-naming-utils" ,icon-naming-utils)
2871 ("intltool" ,intltool)
2872 ("imagemagick" ,imagemagick)
2873 ("pkg-config" ,pkg-config)))
2874 (home-page "http://tango-project.org/")
2875 (synopsis "Tango icon theme")
2876 (description "This is an icon theme that follows the Tango visual
2877 guidelines.")
2878 (license license:public-domain)))
2879
2880 (define-public shared-mime-info
2881 (package
2882 (name "shared-mime-info")
2883 (version "1.15")
2884 (source (origin
2885 (method url-fetch)
2886 (uri (string-append
2887 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2888 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2889 ".tar.xz"))
2890 (sha256
2891 (base32
2892 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2893 (build-system gnu-build-system)
2894 (arguments
2895 ;; The build system appears not to be parallel-safe.
2896 '(#:parallel-build? #f))
2897 (inputs
2898 `(("glib" ,glib)
2899 ("libxml2" ,libxml2)))
2900 (native-inputs
2901 `(("gettext" ,gettext-minimal)
2902 ("itstool" ,itstool)
2903 ("pkg-config" ,pkg-config)))
2904 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2905 (synopsis "Database of common MIME types")
2906 (description
2907 "The shared-mime-info package contains the core database of common types
2908 and the update-mime-database command used to extend it. It requires glib2 to
2909 be installed for building the update command. Additionally, it uses intltool
2910 for translations, though this is only a dependency for the maintainers. This
2911 database is translated at Transifex.")
2912 (license license:gpl2+)))
2913
2914 (define-public system-config-printer
2915 (package
2916 (name "system-config-printer")
2917 (version "1.5.15")
2918 (source
2919 (origin
2920 (method url-fetch)
2921 (uri (string-append
2922 "https://github.com/OpenPrinting/system-config-printer/releases/"
2923 "download/v" version
2924 "/system-config-printer-" version ".tar.xz"))
2925 (sha256
2926 (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv"))))
2927 (build-system glib-or-gtk-build-system)
2928 (arguments
2929 `(#:imported-modules ((guix build python-build-system)
2930 ,@%glib-or-gtk-build-system-modules)
2931 #:phases
2932 (modify-phases %standard-phases
2933 (add-after 'unpack 'patch-Makefile.am
2934 (lambda _
2935 ;; The Makefile generates some scripts, so set a valid shebang
2936 (substitute* "Makefile.am"
2937 (("/bin/bash") (which "bash")))
2938 (delete-file "configure")
2939 #t))
2940 (add-after 'unpack 'patch-docbook-xml
2941 (lambda* (#:key inputs #:allow-other-keys)
2942 ;; Modify the man XML otherwise xmlto tries to access the network
2943 (substitute* "man/system-config-printer.xml"
2944 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2945 (string-append (assoc-ref inputs "docbook-xml")
2946 "/xml/dtd/docbook/")))
2947 #t))
2948 (add-after 'install 'wrap-for-python
2949 (@@ (guix build python-build-system) wrap))
2950 (add-after 'install 'wrap
2951 (lambda* (#:key outputs #:allow-other-keys)
2952 (let ((out (assoc-ref outputs "out"))
2953 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2954 (for-each
2955 (lambda (program)
2956 (wrap-program program
2957 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2958 (map (lambda (name)
2959 (string-append out "/bin/" name))
2960 '("system-config-printer"
2961 "system-config-printer-applet"
2962 "install-printerdriver"
2963 "scp-dbus-service"))))
2964 #t)))))
2965 (inputs
2966 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2967 ("gobject-introspection" ,gobject-introspection)
2968 ("python" ,python)
2969 ("cups" ,cups)
2970 ("gtk+" ,gtk+)
2971 ("python-dbus" ,python-dbus)
2972 ("python-pygobject" ,python-pygobject)
2973 ("python-pycups" ,python-pycups)
2974 ("python-requests" ,python-requests)
2975 ("python-pycairo" ,python-pycairo)
2976 ("libnotify" ,libnotify)
2977 ("packagekit" ,packagekit)))
2978 (native-inputs
2979 `(("pkg-config" ,pkg-config)
2980 ("desktop-file-utils" ,desktop-file-utils)
2981 ("glib" ,glib)
2982 ("autoconf" ,autoconf)
2983 ("automake" ,automake)
2984 ("intltool" ,intltool)
2985 ("xmlto" ,xmlto)
2986 ("docbook-xml" ,docbook-xml-4.1.2)
2987 ("docbook-xsl" ,docbook-xsl)
2988 ("libxml2" ,libxml2)))
2989 (home-page "https://github.com/zdohnal/system-config-printer")
2990 (synopsis "CUPS administration tool")
2991 (description
2992 "system-config-printer is a CUPS administration tool. It's written in
2993 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2994 configuring CUPS.")
2995 (license license:gpl2+)))
2996
2997 (define-public hicolor-icon-theme
2998 (package
2999 (name "hicolor-icon-theme")
3000 (version "0.17")
3001 (source
3002 (origin
3003 (method url-fetch)
3004 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3005 "hicolor-icon-theme-" version ".tar.xz"))
3006 (sha256
3007 (base32
3008 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3009 (build-system gnu-build-system)
3010 (arguments
3011 `(#:tests? #f)) ; no check target
3012 (home-page "https://icon-theme.freedesktop.org/releases/")
3013 (synopsis
3014 "Freedesktop icon theme")
3015 (description
3016 "Freedesktop icon theme.")
3017 (license license:gpl2)))
3018
3019 (define-public libnotify
3020 (package
3021 (name "libnotify")
3022 (version "0.7.9")
3023 (source
3024 (origin
3025 (method url-fetch)
3026 (uri (string-append "mirror://gnome/sources/" name "/"
3027 (version-major+minor version) "/"
3028 name "-" version ".tar.xz"))
3029 (sha256
3030 (base32
3031 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3032 (build-system meson-build-system)
3033 (arguments
3034 `(#:phases
3035 (modify-phases %standard-phases
3036 (add-after 'unpack 'fix-docbook
3037 (lambda* (#:key inputs #:allow-other-keys)
3038 ;; Don't attempt to download XSL schema.
3039 (substitute* "meson.build"
3040 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3041 /manpages/docbook.xsl")
3042 (string-append (assoc-ref inputs "docbook-xsl")
3043 "/xml/xsl/docbook-xsl-"
3044 ,(package-version docbook-xsl)
3045 "/manpages/docbook.xsl")))
3046 #t)))))
3047 (propagated-inputs
3048 `(;; In Requires of libnotify.pc.
3049 ("gdk-pixbuf" ,gdk-pixbuf)
3050 ("glib" ,glib)))
3051 (inputs
3052 `(("gtk+" ,gtk+)
3053 ("libpng" ,libpng)))
3054 (native-inputs
3055 `(("pkg-config" ,pkg-config)
3056 ("glib" ,glib "bin")
3057 ("gobject-introspection" ,gobject-introspection)
3058
3059 ;; For the documentation.
3060 ("gtk-doc" ,gtk-doc)
3061 ("xsltproc" ,libxslt)
3062 ("docbook-xsl" ,docbook-xsl)))
3063 (home-page "https://developer-next.gnome.org/libnotify/")
3064 (synopsis
3065 "GNOME desktop notification library")
3066 (description
3067 "Libnotify is a library that sends desktop notifications to a
3068 notification daemon, as defined in the Desktop Notifications spec. These
3069 notifications can be used to inform the user about an event or display
3070 some form of information without getting in the user's way.")
3071 (license license:lgpl2.1+)))
3072
3073 (define-public libpeas
3074 (package
3075 (name "libpeas")
3076 (version "1.28.0")
3077 (source
3078 (origin
3079 (method url-fetch)
3080 (uri (string-append "mirror://gnome/sources/" name "/"
3081 (version-major+minor version) "/"
3082 name "-" version ".tar.xz"))
3083 (sha256
3084 (base32
3085 "05cb7drn6arc4gi02wgsvzibigi2riz5gnfnmlb0zmbfnj9ikna2"))))
3086 (build-system meson-build-system)
3087 (arguments
3088 '(#:phases
3089 (modify-phases %standard-phases
3090 (add-before 'check 'start-xserver
3091 (lambda* (#:key inputs #:allow-other-keys)
3092 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3093 (disp ":1"))
3094 (setenv "DISPLAY" disp)
3095 ;; Tests require a running X server.
3096 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3097 #t))))))
3098 (inputs
3099 `(("gtk+" ,gtk+)
3100 ("glade" ,glade3)
3101 ("python" ,python)
3102 ("python-pygobject" ,python-pygobject)))
3103 (native-inputs
3104 `(("pkg-config" ,pkg-config)
3105 ("gettext" ,gettext-minimal)
3106 ("glib:bin" ,glib "bin")
3107 ("gobject-introspection" ,gobject-introspection)
3108 ("xorg-server" ,xorg-server-for-tests)))
3109 (propagated-inputs
3110 ;; The .pc file "Requires" gobject-introspection.
3111 `(("gobject-introspection" ,gobject-introspection)))
3112 (home-page "https://wiki.gnome.org/Libpeas")
3113 (synopsis "GObject plugin system")
3114 (description
3115 "Libpeas is a gobject-based plugin engine, targeted at giving every
3116 application the chance to assume its own extensibility. It also has a set of
3117 features including, but not limited to: multiple extension points; on-demand
3118 (lazy) programming language support for C, Python and JS; simplicity of the
3119 API.")
3120 (license license:lgpl2.0+)))
3121
3122 (define-public gtkglext
3123 (package
3124 (name "gtkglext")
3125 (version "1.2.0")
3126 (source (origin
3127 (method url-fetch)
3128 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3129 version "/gtkglext-" version ".tar.gz"))
3130 (sha256
3131 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3132 (patches (search-patches
3133 "gtkglext-disable-disable-deprecated.patch"))))
3134 (build-system gnu-build-system)
3135 (arguments
3136 `(#:phases
3137 (modify-phases %standard-phases
3138 ;; Fix a collision between a local variable and a definition from
3139 ;; glibc's string.h.
3140 (add-after 'unpack 'fix-collision
3141 (lambda _
3142 (substitute* "gdk/gdkglshapes.c"
3143 ((" index") " triangle_index"))
3144 #t)))))
3145 (inputs `(("gtk+" ,gtk+-2)
3146 ("mesa" ,mesa)
3147 ("glu" ,glu)
3148 ("libx11" ,libx11)
3149 ("libxt" ,libxt)))
3150 (native-inputs `(("pkg-config" ,pkg-config)
3151 ("glib" ,glib "bin")))
3152 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
3153 (home-page "https://projects.gnome.org/gtkglext")
3154 (synopsis "OpenGL extension to GTK+")
3155 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3156 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3157 API add-ons to make GTK+ widgets OpenGL-capable.")
3158 (license license:lgpl2.1+)))
3159
3160 (define-public glade3
3161 (package
3162 (name "glade")
3163 (version "3.36.0")
3164 (source (origin
3165 (method url-fetch)
3166 (uri (string-append "mirror://gnome/sources/" name "/"
3167 (version-major+minor version) "/"
3168 name "-" version ".tar.xz"))
3169 (sha256
3170 (base32
3171 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
3172 (build-system glib-or-gtk-build-system)
3173 (arguments
3174 `(#:phases
3175 (modify-phases %standard-phases
3176 (add-before 'configure 'fix-docbook
3177 (lambda* (#:key inputs #:allow-other-keys)
3178 (substitute* "man/Makefile.in"
3179 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
3180 (string-append (assoc-ref inputs "docbook-xsl")
3181 "/xml/xsl/docbook-xsl-"
3182 ,(package-version docbook-xsl)
3183 "/manpages/docbook.xsl")))
3184 #t))
3185 (add-before 'check 'pre-check
3186 (lambda _
3187 (setenv "HOME" "/tmp")
3188 ;; Tests require a running X server.
3189 (system "Xvfb :1 &")
3190 (setenv "DISPLAY" ":1")
3191 #t)))))
3192 (inputs
3193 `(("gtk+" ,gtk+)
3194 ("libxml2" ,libxml2)))
3195 (native-inputs
3196 `(("hicolor-icon-theme" ,hicolor-icon-theme)
3197 ("intltool" ,intltool)
3198 ("itstool" ,itstool)
3199 ("libxslt" ,libxslt) ;for xsltproc
3200 ("docbook-xml" ,docbook-xml-4.2)
3201 ("docbook-xsl" ,docbook-xsl)
3202 ("python" ,python-2)
3203 ("pkg-config" ,pkg-config)
3204 ("xorg-server" ,xorg-server-for-tests)))
3205 (home-page "https://glade.gnome.org")
3206 (synopsis "GTK+ rapid application development tool")
3207 (description "Glade is a rapid application development (RAD) tool to
3208 enable quick & easy development of user interfaces for the GTK+ toolkit and
3209 the GNOME desktop environment.")
3210 (license license:lgpl2.0+)
3211 (native-search-paths (list (search-path-specification
3212 (variable "GLADE_CATALOG_SEARCH_PATH")
3213 (files '("share/glade/catalogs")))
3214 (search-path-specification
3215 (variable "GLADE_MODULE_SEARCH_PATH")
3216 (files '("lib/glade/modules")))))))
3217
3218 (define-public libcroco
3219 (package
3220 (name "libcroco")
3221 (version "0.6.13")
3222 (source (origin
3223 (method url-fetch)
3224 (uri (string-append "mirror://gnome/sources/" name "/"
3225 (version-major+minor version) "/"
3226 name "-" version ".tar.xz"))
3227 (sha256
3228 (base32
3229 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3230 (replacement libcroco/fixed)
3231 (build-system gnu-build-system)
3232 (native-inputs
3233 `(("pkg-config" ,pkg-config)))
3234 (inputs
3235 `(("glib" ,glib)
3236 ("libxml2" ,libxml2)
3237 ("zlib" ,zlib)))
3238 (home-page "https://github.com/GNOME/libcroco")
3239 (synopsis "CSS2 parsing and manipulation library")
3240 (description
3241 "Libcroco is a standalone CSS2 parsing and manipulation library.
3242 The parser provides a low level event driven SAC-like API and a CSS object
3243 model like API. Libcroco provides a CSS2 selection engine and an experimental
3244 XML/CSS rendering engine.")
3245
3246 ;; LGPLv2.1-only.
3247 (license license:lgpl2.1)))
3248
3249 (define-public libcroco/fixed
3250 (package
3251 (inherit libcroco)
3252 (name "libcroco")
3253 (version "0.6.13")
3254 (source (origin
3255 (method url-fetch)
3256 (uri (string-append "mirror://gnome/sources/" name "/"
3257 (version-major+minor version) "/"
3258 name "-" version ".tar.xz"))
3259 (sha256
3260 (base32
3261 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))
3262 (patches (search-patches "libcroco-CVE-2020-12825.patch"))))))
3263
3264 (define-public libgsf
3265 (package
3266 (name "libgsf")
3267 (version "1.14.47")
3268 (source (origin
3269 (method url-fetch)
3270 (uri (string-append "mirror://gnome/sources/" name "/"
3271 (version-major+minor version) "/"
3272 name "-" version ".tar.xz"))
3273 (sha256
3274 (base32
3275 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
3276 (build-system gnu-build-system)
3277 (arguments
3278 '(#:configure-flags '("--disable-static")))
3279 (native-inputs
3280 `(("pkg-config" ,pkg-config)
3281 ("gettext" ,gettext-minimal)
3282
3283 ;; For tests.
3284 ("perl" ,perl)
3285 ("perl-xml-parser" ,perl-xml-parser)))
3286 (inputs
3287 `(("zlib" ,zlib)
3288 ("bzip2" ,bzip2)))
3289 (propagated-inputs
3290 `(("gdk-pixbuf" ,gdk-pixbuf)
3291 ("glib" ,glib)
3292 ("libxml2" ,libxml2)))
3293 (home-page "https://www.gnome.org/projects/libgsf")
3294 (synopsis "GNOME's Structured File Library")
3295 (description
3296 "Libgsf aims to provide an efficient extensible I/O abstraction for
3297 dealing with different structured file formats.")
3298
3299 ;; LGPLv2.1-only.
3300 (license license:lgpl2.1)))
3301
3302 (define-public librsvg
3303 (package
3304 (name "librsvg")
3305 (version "2.40.21")
3306 (source (origin
3307 (method url-fetch)
3308 (uri (string-append "mirror://gnome/sources/" name "/"
3309 (version-major+minor version) "/"
3310 name "-" version ".tar.xz"))
3311 (sha256
3312 (base32
3313 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3314 (build-system gnu-build-system)
3315 (arguments
3316 `(#:configure-flags
3317 (list "--disable-static"
3318 "--enable-vala") ; needed for e.g. gnome-mines
3319 #:phases
3320 (modify-phases %standard-phases
3321 (add-before 'configure 'pre-configure
3322 (lambda* (#:key inputs #:allow-other-keys)
3323 (substitute* "gdk-pixbuf-loader/Makefile.in"
3324 ;; By default the gdk-pixbuf loader is installed under
3325 ;; gdk-pixbuf's prefix. Work around that.
3326 (("gdk_pixbuf_moduledir = .*$")
3327 (string-append "gdk_pixbuf_moduledir = "
3328 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3329 "loaders\n"))
3330 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3331 (("gdk_pixbuf_cache_file = .*$")
3332 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3333 #t))
3334 (add-before 'check 'remove-failing-tests
3335 (lambda _
3336 (with-directory-excursion "tests/fixtures/reftests"
3337 (for-each delete-file
3338 '(;; This test fails on i686:
3339 "svg1.1/masking-path-04-b.svg"
3340 ;; This test fails on armhf:
3341 "svg1.1/masking-mask-01-b.svg"
3342 ;; This test fails on aarch64:
3343 "bugs/777834-empty-text-children.svg")))
3344 #t)))))
3345 (native-inputs
3346 `(("pkg-config" ,pkg-config)
3347 ("vala" ,vala)
3348 ("glib" ,glib "bin") ; glib-mkenums, etc.
3349 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3350 (inputs
3351 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3352 ;; this ancient version of librsvg.
3353 ("pango" ,pango-1.42)
3354 ("libcroco" ,libcroco)
3355 ("bzip2" ,bzip2)
3356 ("libgsf" ,libgsf)
3357 ("libxml2" ,libxml2)))
3358 (propagated-inputs
3359 ;; librsvg-2.0.pc refers to all of that.
3360 `(("cairo" ,cairo)
3361 ("gdk-pixbuf" ,gdk-pixbuf)
3362 ("glib" ,glib)))
3363 (home-page "https://wiki.gnome.org/LibRsvg")
3364 (synopsis "Render SVG files using Cairo")
3365 (description
3366 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3367 library.")
3368 (license license:lgpl2.0+)))
3369
3370 (define-public librsvg-next
3371 (package
3372 (name "librsvg")
3373 (version "2.50.2")
3374 (source (origin
3375 (method url-fetch)
3376 (uri (string-append "mirror://gnome/sources/librsvg/"
3377 (version-major+minor version) "/"
3378 "librsvg-" version ".tar.xz"))
3379 (sha256
3380 (base32
3381 "1lsnl08b5pjf01q3agixjd53islw5rqkc38r31rlmm2crrqz44b2"))
3382 (modules '((guix build utils)))
3383 (snippet
3384 '(begin (delete-file-recursively "vendor")
3385 #t))))
3386 (build-system cargo-build-system)
3387 (outputs '("out" "doc"))
3388 (arguments
3389 `(#:modules
3390 ((guix build cargo-build-system)
3391 (guix build utils)
3392 ((guix build gnu-build-system) #:prefix gnu:))
3393 #:cargo-inputs
3394 (("rust-bitflags" ,rust-bitflags-1)
3395 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3396 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3397 ("rust-cast" ,rust-cast-0.2)
3398 ("rust-cssparser" ,rust-cssparser-0.27)
3399 ("rust-data-url" ,rust-data-url-0.1)
3400 ("rust-encoding" ,rust-encoding-0.2)
3401 ("rust-float-cmp" ,rust-float-cmp-0.8)
3402 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3403 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3404 ("rust-gio" ,rust-gio-0.8)
3405 ("rust-gio-sys" ,rust-gio-sys-0.9)
3406 ("rust-glib" ,rust-glib-0.9)
3407 ("rust-glib-sys" ,rust-glib-sys-0.9)
3408 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3409 ("rust-itertools" ,rust-itertools-0.9)
3410 ("rust-language-tags" ,rust-language-tags-0.2)
3411 ("rust-libc" ,rust-libc-0.2)
3412 ("rust-locale-config" ,rust-locale-config-0.3)
3413 ("rust-markup5ever" ,rust-markup5ever-0.10)
3414 ("rust-nalgebra" ,rust-nalgebra-0.21)
3415 ("rust-num-traits" ,rust-num-traits-0.2)
3416 ("rust-once-cell" ,rust-once-cell-1)
3417 ("rust-pkg-config" ,rust-pkg-config-0.3)
3418 ("rust-pango" ,rust-pango-0.8)
3419 ("rust-pango-sys" ,rust-pango-sys-0.9)
3420 ("rust-pangocairo" ,rust-pangocairo-0.9)
3421 ("rust-rayon" ,rust-rayon-1)
3422 ("rust-rctree" ,rust-rctree-0.3)
3423 ("rust-rgb" ,rust-rgb-0.8)
3424 ("rust-regex" ,rust-regex-1)
3425 ("rust-selectors" ,rust-selectors-0.22)
3426 ("rust-string-cache" ,rust-string-cache-0.8)
3427 ("rust-tinyvec" ,rust-tinyvec-0.3)
3428 ("rust-url" ,rust-url-2)
3429 ("rust-xml5ever" ,rust-xml5ever-0.16))
3430 #:cargo-development-inputs
3431 (("rust-assert-cmd" ,rust-assert-cmd-1)
3432 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3433 ("rust-chrono" ,rust-chrono-0.4)
3434 ("rust-criterion" ,rust-criterion-0.3)
3435 ("rust-float-cmp" ,rust-float-cmp-0.8)
3436 ("rust-lopdf" ,rust-lopdf-0.25)
3437 ("rust-png" ,rust-png-0.16)
3438 ("rust-predicates" ,rust-predicates-1)
3439 ("rust-tempfile" ,rust-tempfile-3))
3440 #:phases
3441 (modify-phases %standard-phases
3442 (add-after 'unpack 'patch-docbook-xml
3443 (lambda* (#:key inputs #:allow-other-keys)
3444 (with-directory-excursion "doc"
3445 (substitute* "rsvg-docs.xml"
3446 (("http://www.oasis-open.org/docbook/xml/4.3/")
3447 (string-append (assoc-ref inputs "docbook-xml")
3448 "/xml/dtd/docbook/"))))
3449 #t))
3450 (add-after 'unpack 'prepare-for-build
3451 (lambda _
3452 ;; In lieu of #:make-flags
3453 (setenv "CC" ,(cc-for-target))
3454 ;; Something about the build environment resists building
3455 ;; successfully with the '--locked' flag.
3456 (substitute* '("Makefile.am" "Makefile.in")
3457 (("--locked") ""))
3458 #t))
3459 (add-before 'configure 'pre-configure
3460 (lambda _
3461 (substitute* "gdk-pixbuf-loader/Makefile.in"
3462 ;; By default the gdk-pixbuf loader is installed under
3463 ;; gdk-pixbuf's prefix. Work around that.
3464 (("gdk_pixbuf_moduledir = .*$")
3465 (string-append "gdk_pixbuf_moduledir = "
3466 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3467 "loaders\n"))
3468 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3469 (("gdk_pixbuf_cache_file = .*$")
3470 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3471 #t))
3472 (add-after 'configure 'gnu-configure
3473 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3474 ((assoc-ref gnu:%standard-phases 'configure)
3475 #:native-inputs native-inputs
3476 #:inputs inputs
3477 #:outputs outputs
3478 #:configure-flags
3479 (list "--disable-static"
3480 "--enable-vala"
3481 (string-append "--with-html-dir="
3482 (assoc-ref %outputs "doc")
3483 "/share/gtk-doc/html")))))
3484 (add-after 'configure 'dont-vendor-self
3485 (lambda* (#:key vendor-dir #:allow-other-keys)
3486 ;; Don't keep the whole tarball in the vendor directory
3487 (delete-file-recursively
3488 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3489 #t))
3490 (replace 'build
3491 (assoc-ref gnu:%standard-phases 'build))
3492 (add-before 'check 'ignore-failing-tests
3493 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3494 (lambda _
3495 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3496 (("fn background_color_option_invalid_color_yields_error" all)
3497 (string-append "#[ignore] " all))
3498 (("fn empty_input_yields_error" all)
3499 (string-append "#[ignore] " all))
3500 (("fn empty_svg_yields_error" all)
3501 (string-append "#[ignore] " all))
3502 (("fn env_source_data_epoch_empty" all)
3503 (string-append "#[ignore] " all))
3504 (("fn env_source_data_epoch_no_digits" all)
3505 (string-append "#[ignore] " all))
3506 (("fn env_source_data_epoch_trailing_garbage" all)
3507 (string-append "#[ignore] " all))
3508 (("fn export_id_option_error" all)
3509 (string-append "#[ignore] " all))
3510 (("fn huge_zoom_factor_yields_error" all)
3511 (string-append "#[ignore] " all))
3512 (("fn multiple_input_files_not_allowed_for_png_output" all)
3513 (string-append "#[ignore] " all))
3514 (("fn stylesheet_option_error" all)
3515 (string-append "#[ignore] " all)))
3516 #t))
3517 (replace 'check
3518 (lambda* args
3519 ((assoc-ref gnu:%standard-phases 'check)
3520 #:test-target "check")))
3521 (replace 'install
3522 (assoc-ref gnu:%standard-phases 'install)))))
3523 (native-inputs
3524 `(("docbook-xml" ,docbook-xml-4.3)
3525 ("glib" ,glib "bin")
3526 ("gobject-introspection" ,gobject-introspection)
3527 ("pkg-config" ,pkg-config)
3528 ("python" ,python-wrapper)
3529 ("ruby" ,ruby)
3530 ("vala" ,vala)))
3531 (inputs
3532 `(("bzip2" ,bzip2)
3533 ("fontconfig" ,fontconfig)
3534 ("freetype" ,freetype)
3535 ("harfbuzz" ,harfbuzz)
3536 ("libcroco" ,libcroco)
3537 ("libgsf" ,libgsf)
3538 ("libxml2" ,libxml2)
3539 ("pango" ,pango)))
3540 (propagated-inputs
3541 `(("cairo" ,cairo)
3542 ("gdk-pixbuf" ,gdk-pixbuf)
3543 ("glib" ,glib)))
3544 (synopsis "SVG rendering library")
3545 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3546 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3547 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3548 diagrams.")
3549 (home-page "https://wiki.gnome.org/LibRsvg")
3550 (license license:lgpl2.1+)))
3551
3552 (define-public libidl
3553 (package
3554 (name "libidl")
3555 (version "0.8.14")
3556 (source (origin
3557 (method url-fetch)
3558 (uri (string-append "mirror://gnome/sources/libIDL/"
3559 (version-major+minor version) "/"
3560 "libIDL-" version ".tar.bz2"))
3561 (sha256
3562 (base32
3563 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3564 (build-system gnu-build-system)
3565 (inputs `(("glib" ,glib)))
3566 (native-inputs
3567 `(("pkg-config" ,pkg-config)
3568 ("flex" ,flex)
3569 ("bison" ,bison)))
3570 (home-page "http://freecode.com/projects/libidl")
3571 (synopsis "Create trees of CORBA Interface Definition Language files")
3572 (description "Libidl is a library for creating trees of CORBA Interface
3573 Definition Language (idl) files, which is a specification for defining
3574 portable interfaces. libidl was initially written for orbit (the orb from the
3575 GNOME project, and the primary means of libidl distribution). However, the
3576 functionality was designed to be as reusable and portable as possible.")
3577 (properties `((upstream-name . "libIDL")))
3578 (license license:lgpl2.0+)))
3579
3580
3581 (define-public orbit2
3582 (package
3583 (name "orbit2")
3584 (version "2.14.19")
3585 (source (origin
3586 (method url-fetch)
3587 (uri (let ((upstream-name "ORBit2"))
3588 (string-append "mirror://gnome/sources/" upstream-name "/"
3589 (version-major+minor version) "/"
3590 upstream-name "-" version ".tar.bz2")))
3591 (sha256
3592 (base32
3593 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3594 (build-system gnu-build-system)
3595 (arguments
3596 `(;; The "timeout-server" test hangs when run in parallel.
3597 #:parallel-tests? #f
3598 #:configure-flags
3599 '(;; We don't need static libraries, plus they don't build reproducibly
3600 ;; (non-deterministic ordering of .o files in the archive.)
3601 "--disable-static"
3602
3603 ;; The programmer kindly gives us a hook to turn off deprecation
3604 ;; warnings ...
3605 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3606 ;; ... which they then completly ignore !!
3607 #:phases
3608 (modify-phases %standard-phases
3609 (add-before 'configure 'ignore-deprecations
3610 (lambda _
3611 (substitute* "linc2/src/Makefile.in"
3612 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3613 #t)))))
3614 (inputs `(("glib" ,glib)
3615 ("libidl" ,libidl)))
3616 (native-inputs
3617 `(("pkg-config" ,pkg-config)))
3618 (home-page "https://projects.gnome.org/orbit2/")
3619 (synopsis "CORBA 2.4-compliant Object Request Broker")
3620 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3621 featuring mature C, C++ and Python bindings.")
3622 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3623 ;; a version. SOME of the code files have licence notices for GPLv2+.
3624 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3625 (license license:gpl2+)
3626 (properties `((upstream-name . "ORBit2")))))
3627
3628
3629 (define-public libbonobo
3630 (package
3631 (name "libbonobo")
3632 (version "2.32.1")
3633 (source (origin
3634 (method url-fetch)
3635 (uri (string-append "mirror://gnome/sources/" name "/"
3636 (version-major+minor version)
3637 "/" name "-" version ".tar.bz2"))
3638 (sha256
3639 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3640 (patches (search-patches
3641 "libbonobo-activation-test-race.patch"))))
3642 (build-system gnu-build-system)
3643 (arguments
3644 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3645 `(#:configure-flags
3646 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3647 ;; ... which they then completly ignore !!
3648 #:phases
3649 (modify-phases %standard-phases
3650 (add-before 'configure 'ignore-deprecations
3651 (lambda _
3652 (substitute* "activation-server/Makefile.in"
3653 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3654 #t)))
3655
3656 ;; There's apparently a race condition between the server stub
3657 ;; generation and linking of the example under 'samples/echo' that can
3658 ;; lead do undefined references when building in parallel, as reported
3659 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3660 ;; Thus, disable parallel builds.
3661 #:parallel-build? #f))
3662 (inputs `(("popt" ,popt)
3663 ("libxml2" ,libxml2)))
3664 ;; The following are Required by the .pc file
3665 (propagated-inputs
3666 `(("glib" ,glib)
3667 ("orbit2" ,orbit2)))
3668 (native-inputs
3669 `(("intltool" ,intltool)
3670 ("pkg-config" ,pkg-config)
3671 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3672 ("flex" ,flex)
3673 ("bison" ,bison)))
3674 (home-page "https://developer.gnome.org/libbonobo/")
3675 (synopsis "Framework for creating reusable components for use in GNOME applications")
3676 (description "Bonobo is a framework for creating reusable components for
3677 use in GNOME applications, built on top of CORBA.")
3678 ;; Licence not explicitly stated. Source files contain no licence notices.
3679 ;; Tarball contains text of both GPLv2 and LGPLv2
3680 ;; GPLv2 covers both conditions
3681 (license license:gpl2+)))
3682
3683
3684 (define-public gconf
3685 (package
3686 (name "gconf")
3687 (version "3.2.6")
3688 (source (origin
3689 (method url-fetch)
3690 (uri
3691 (let ((upstream-name "GConf"))
3692 (string-append "mirror://gnome/sources/" upstream-name "/"
3693 (version-major+minor version) "/"
3694 upstream-name "-" version ".tar.xz")))
3695 (sha256
3696 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3697 (build-system gnu-build-system)
3698 (inputs `(("dbus-glib" ,dbus-glib)
3699 ("libxml2" ,libxml2)))
3700 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3701 ("orbit2" ,orbit2)))
3702 (native-inputs
3703 `(("intltool" ,intltool)
3704 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3705 ("pkg-config" ,pkg-config)))
3706 (home-page "https://projects.gnome.org/gconf/")
3707 (synopsis "Store application preferences")
3708 (description "Gconf is a system for storing application preferences. It
3709 is intended for user preferences; not arbitrary data storage.")
3710 (license license:lgpl2.0+)
3711 (properties '((upstream-name . "GConf")))))
3712
3713
3714 (define-public gnome-mime-data
3715 (package
3716 (name "gnome-mime-data")
3717 (version "2.18.0")
3718 (source (origin
3719 (method url-fetch)
3720 (uri (string-append "mirror://gnome/sources/" name "/"
3721 (version-major+minor version) "/"
3722 name "-" version ".tar.bz2"))
3723 (sha256
3724 (base32
3725 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3726 (build-system gnu-build-system)
3727 (native-inputs
3728 `(("perl" ,perl)
3729 ("intltool" ,intltool)))
3730 (arguments
3731 '(#:phases (modify-phases %standard-phases
3732 (add-after 'configure 'use-our-intltool
3733 (lambda _
3734 ;; Do not use the bundled intltool commands, which lack
3735 ;; the "dotless @INC" fixes of our 'intltool' package.
3736 (substitute* (find-files "." "^Makefile$")
3737 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3738 (string-append "INTLTOOL_" tool " = intltool-"
3739 (string-downcase tool) "\n")))
3740 #t)))))
3741 (home-page "https://www.gnome.org")
3742 (synopsis "Base MIME and Application database for GNOME")
3743 (description "GNOME Mime Data is a module which contains the base MIME
3744 and Application database for GNOME. The data stored by this module is
3745 designed to be accessed through the MIME functions in GnomeVFS.")
3746 (license license:gpl2+)))
3747
3748
3749 (define-public gnome-vfs
3750 (package
3751 (name "gnome-vfs")
3752 (version "2.24.4")
3753 (source (origin
3754 (method url-fetch)
3755 (uri (string-append "mirror://gnome/sources/" name "/"
3756 (version-major+minor version) "/"
3757 name "-" version ".tar.bz2"))
3758 (sha256
3759 (base32
3760 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3761 (build-system gnu-build-system)
3762 (arguments
3763 `(#:phases
3764 (modify-phases %standard-phases
3765 (add-before 'configure 'ignore-deprecations
3766 (lambda _
3767 (substitute* '("libgnomevfs/Makefile.in"
3768 "daemon/Makefile.in")
3769 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3770 #t))
3771 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3772 (lambda _
3773 (substitute* "test/test-async-cancel.c"
3774 (("EXIT_FAILURE") "77"))
3775 #t)))))
3776 (inputs `(("libxml2" ,libxml2)
3777 ("dbus-glib" ,dbus-glib)
3778 ("gconf" ,gconf)
3779 ("gnome-mime-data" ,gnome-mime-data)
3780 ("zlib" ,zlib)))
3781 (native-inputs
3782 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3783 ("intltool" ,intltool)
3784 ("pkg-config" ,pkg-config)))
3785 (home-page "https://developer.gnome.org/gnome-vfs/")
3786 (synopsis "Access files and folders in GNOME applications")
3787 (description
3788 "GnomeVFS is the core library used to access files and folders in GNOME
3789 applications. It provides a file system abstraction which allows applications
3790 to access local and remote files with a single consistent API.")
3791 (license license:lgpl2.0+)))
3792
3793
3794
3795 (define-public libgnome
3796 (package
3797 (name "libgnome")
3798 (version "2.32.1")
3799 (source (origin
3800 (method url-fetch)
3801 (uri (string-append "mirror://gnome/sources/" name "/"
3802 (version-major+minor version) "/"
3803 name "-" version ".tar.bz2"))
3804 (sha256
3805 (base32
3806 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3807 (patches (search-patches "libgnome-encoding.patch"))))
3808 (build-system gnu-build-system)
3809 (arguments
3810 `(#:phases
3811 (modify-phases %standard-phases
3812 (add-before 'configure 'enable-deprecated
3813 (lambda _
3814 (substitute* "libgnome/Makefile.in"
3815 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3816 #t)))))
3817 (inputs `(("libxml2" ,libxml2)))
3818 (native-inputs
3819 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3820 ("intltool" ,intltool)
3821 ("pkg-config" ,pkg-config)))
3822 ;; The following are listed as Required in the .pc file
3823 ;; (except for libcanberra -- which seems to be oversight on the part
3824 ;; of the upstream developers -- anything that links against libgnome,
3825 ;; must also link against libcanberra
3826 (propagated-inputs
3827 `(("libcanberra" ,libcanberra)
3828 ("libbonobo" ,libbonobo)
3829 ("gconf" ,gconf)
3830 ("gnome-vfs" ,gnome-vfs)
3831 ("popt" ,popt))) ;gnome-program.h includes popt.h
3832 (home-page "https://developer.gnome.org/libgnome/")
3833 (synopsis "Useful routines for building applications")
3834 (description "The libgnome library provides a number of useful routines
3835 for building modern applications, including session management, activation of
3836 files and URIs, and displaying help.")
3837 (license license:lgpl2.0+)))
3838
3839
3840 (define-public libart-lgpl
3841 (package
3842 (name "libart-lgpl")
3843 (version "2.3.21")
3844 (source (origin
3845 (method url-fetch)
3846 (uri (let ((upstream-name "libart_lgpl"))
3847 (string-append "mirror://gnome/sources/" upstream-name "/"
3848 (version-major+minor version) "/"
3849 upstream-name "-" version ".tar.bz2")))
3850 (sha256
3851 (base32
3852 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3853 (build-system gnu-build-system)
3854 (native-inputs
3855 `(("pkg-config" ,pkg-config)))
3856 (home-page "https://people.gnome.org/~mathieu/libart")
3857 (synopsis "2D drawing library")
3858 (description "Libart is a 2D drawing library intended as a
3859 high-quality vector-based 2D library with antialiasing and alpha composition.")
3860 (license license:lgpl2.0+)))
3861
3862
3863
3864 (define-public libgnomecanvas
3865 (package
3866 (name "libgnomecanvas")
3867 (version "2.30.3")
3868 (source (origin
3869 (method url-fetch)
3870 (uri (string-append "mirror://gnome/sources/" name "/"
3871 (version-major+minor version) "/"
3872 name "-" version ".tar.gz"))
3873 (sha256
3874 (base32
3875 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3876 (build-system gnu-build-system)
3877 ;; Mentioned as Required in the .pc file
3878 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3879 ("gtk+" ,gtk+-2)))
3880 (native-inputs
3881 `(("intltool" ,intltool)
3882 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3883 ("pkg-config" ,pkg-config)))
3884 (home-page "https://developer.gnome.org/libgnomecanvas/")
3885 (synopsis "Flexible widget for creating interactive structured graphics")
3886 (description "The GnomeCanvas widget provides a flexible widget for
3887 creating interactive structured graphics.")
3888 (license license:lgpl2.0+)))
3889
3890 (define-public libgnomecanvasmm
3891 (package
3892 (name "libgnomecanvasmm")
3893 (version "2.26.0")
3894 (source (origin
3895 (method url-fetch)
3896 (uri (string-append "mirror://gnome/sources/" name "/"
3897 (version-major+minor version) "/"
3898 name "-" version ".tar.bz2"))
3899 (sha256
3900 (base32
3901 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3902 (build-system gnu-build-system)
3903 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3904 (native-inputs
3905 `(("gtkmm-2" ,gtkmm-2)
3906 ("pkg-config" ,pkg-config)))
3907 (home-page "https://gtkmm.org")
3908 (synopsis "C++ bindings to the GNOME Canvas library")
3909 (description "C++ bindings to the GNOME Canvas library.")
3910 (license license:lgpl2.0+)))
3911
3912 (define-public libgnomeui
3913 (package
3914 (name "libgnomeui")
3915 (version "2.24.5")
3916 (source (origin
3917 (method url-fetch)
3918 (uri (string-append "mirror://gnome/sources/" name "/"
3919 (version-major+minor version) "/"
3920 name "-" version ".tar.bz2"))
3921 (patches (search-patches "libgnomeui-utf8.patch"))
3922 (sha256
3923 (base32
3924 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3925 (build-system gnu-build-system)
3926 ;; Mentioned as Required in the .pc file
3927 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3928 ("libgnome" ,libgnome)
3929 ("libgnomecanvas" ,libgnomecanvas)
3930 ("libgnome-keyring" ,libgnome-keyring)))
3931 (inputs `(("libjpeg" ,libjpeg-turbo)
3932 ("popt" ,popt)
3933 ("libbonobo" ,libbonobo)
3934 ("libxml2" ,libxml2)
3935 ("libglade" ,libglade)))
3936 (native-inputs
3937 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3938 ("intltool" ,intltool)
3939 ("pkg-config" ,pkg-config)))
3940 (home-page "https://developer.gnome.org/libgnomeui/")
3941 (synopsis "Additional widgets for applications")
3942 (description "The libgnomeui library provides additional widgets for
3943 applications. Many of the widgets from libgnomeui have already been
3944 ported to GTK+.")
3945 (license license:lgpl2.0+)))
3946
3947 (define-public libglade
3948 (package
3949 (name "libglade")
3950 (version "2.6.4")
3951 (source (origin
3952 (method url-fetch)
3953 (uri (string-append "mirror://gnome/sources/" name "/"
3954 (version-major+minor version) "/"
3955 name "-" version ".tar.bz2"))
3956 (sha256
3957 (base32
3958 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3959 (build-system gnu-build-system)
3960 (inputs
3961 `(("python" ,python))) ;; needed for the optional libglade-convert program
3962 (propagated-inputs
3963 `(("gtk+-2" ,gtk+-2)
3964 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3965 (native-inputs
3966 `(("pkg-config" ,pkg-config)))
3967 (home-page "https://developer.gnome.org/libglade")
3968 (synopsis "Load glade interfaces and access the glade built widgets")
3969 (description "Libglade is a library that provides interfaces for loading
3970 graphical interfaces described in glade files and for accessing the
3971 widgets built in the loading process.")
3972 (license license:gpl2+))) ; This is correct. GPL not LGPL
3973
3974 (define-public libgnomeprint
3975 ;; This library has been deprecated since 2006; see
3976 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3977 (package
3978 (name "libgnomeprint")
3979 (version "2.18.8")
3980 (source (origin
3981 (method url-fetch)
3982 (uri (string-append "mirror://gnome/sources/" name "/"
3983 (version-major+minor version) "/"
3984 name "-" version ".tar.bz2"))
3985 (sha256
3986 (base32
3987 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3988 (build-system gnu-build-system)
3989 (inputs
3990 `(("popt" ,popt)
3991 ("libart-lgpl" ,libart-lgpl)
3992 ("gtk+" ,gtk+-2)
3993 ("libxml2" ,libxml2)))
3994 (native-inputs
3995 `(("intltool" ,intltool)
3996 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3997 ("pkg-config" ,pkg-config)))
3998 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3999 (synopsis "Printing framework for GNOME")
4000 (description
4001 "GNOME-print was a printing framework for GNOME. It has been deprecated
4002 since ca. 2006, when GTK+ itself incorporated printing support.")
4003 (license license:lgpl2.0+)))
4004
4005
4006 (define-public libgnomeprintui
4007 ;; Deprecated; see libgnomeprint.
4008 (package
4009 (name "libgnomeprintui")
4010 (version "2.18.6")
4011 (source (origin
4012 (method url-fetch)
4013 (uri (string-append "mirror://gnome/sources/" name "/"
4014 (version-major+minor version) "/"
4015 name "-" version ".tar.bz2"))
4016 (sha256
4017 (base32
4018 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
4019 (build-system gnu-build-system)
4020 ;; Mentioned as Required in the .pc file
4021 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
4022 (inputs `(("gtk+" ,gtk+-2)
4023 ("glib" ,glib)
4024 ("gnome-icon-theme" ,gnome-icon-theme)
4025 ("libgnomecanvas" ,libgnomecanvas)
4026 ("libxml2" ,libxml2)))
4027 (native-inputs
4028 `(("intltool" ,intltool)
4029 ("pkg-config" ,pkg-config)))
4030 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
4031 (synopsis "Printing framework for GNOME")
4032 (description (package-description libgnomeprint))
4033 (license license:lgpl2.0+)))
4034
4035 (define-public libbonoboui
4036 (package
4037 (name "libbonoboui")
4038 (version "2.24.5")
4039 (source (origin
4040 (method url-fetch)
4041 (uri (string-append "mirror://gnome/sources/" name "/"
4042 (version-major+minor version) "/"
4043 name "-" version ".tar.bz2"))
4044 (sha256
4045 (base32
4046 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4047 (build-system gnu-build-system)
4048 (arguments
4049 `(#:phases
4050 (modify-phases %standard-phases
4051 (add-before 'check 'start-xserver
4052 (lambda* (#:key inputs #:allow-other-keys)
4053 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4054 (disp ":1"))
4055
4056 (setenv "HOME" (getcwd))
4057 (setenv "DISPLAY" disp)
4058 ;; There must be a running X server and make check doesn't start one.
4059 ;; Therefore we must do it.
4060 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4061 ;; Mentioned as Required by the .pc file
4062 (propagated-inputs `(("libxml2" ,libxml2)))
4063 (inputs
4064 `(("popt" ,popt)
4065 ("pangox-compat" ,pangox-compat)
4066 ("libgnome" ,libgnome)
4067 ("libgnomecanvas" ,libgnomecanvas)
4068 ("libglade" ,libglade)))
4069 (native-inputs
4070 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
4071 ("intltool" ,intltool)
4072 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
4073 ("pkg-config" ,pkg-config)))
4074 (home-page "https://developer.gnome.org/libbonoboui/")
4075 (synopsis "Some user interface controls using Bonobo")
4076 (description "The Bonobo UI library provides a number of user interface
4077 controls using the Bonobo component framework.")
4078 (license license:lgpl2.0+)))
4079
4080 (define-public libwnck
4081 (package
4082 (name "libwnck")
4083 (version "3.32.0")
4084 (source (origin
4085 (method url-fetch)
4086 (uri (string-append "mirror://gnome/sources/" name "/"
4087 (version-major+minor version) "/"
4088 name "-" version ".tar.xz"))
4089 (sha256
4090 (base32
4091 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4092 (build-system meson-build-system)
4093 (native-inputs
4094 `(("pkg-config" ,pkg-config)
4095 ("glib" ,glib "bin") ; for glib-mkenums
4096 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
4097 ("intltool" ,intltool)))
4098 (propagated-inputs
4099 `(("gtk+" ,gtk+)
4100 ("libxres" ,libxres)
4101 ("startup-notification" ,startup-notification)))
4102 (home-page "https://developer.gnome.org/libwnck/")
4103 (synopsis "Window Navigator Construction Kit")
4104 (description
4105 "Libwnck is the Window Navigator Construction Kit, a library for use in
4106 writing pagers, tasklists, and more generally applications that are dealing
4107 with window management. It tries hard to respect the Extended Window Manager
4108 Hints specification (EWMH).")
4109 (license license:lgpl2.0+)))
4110
4111 ;; stable version for gtk2, required by xfwm4.
4112 (define-public libwnck-2
4113 (package (inherit libwnck)
4114 (name "libwnck")
4115 (version "2.30.7")
4116 (source (origin
4117 (method url-fetch)
4118 (uri (string-append "mirror://gnome/sources/" name "/"
4119 (version-major+minor version) "/"
4120 name "-" version ".tar.xz"))
4121 (sha256
4122 (base32
4123 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4124 (build-system gnu-build-system)
4125 (native-inputs
4126 `(("pkg-config" ,pkg-config)
4127 ("intltool" ,intltool)))
4128 (propagated-inputs
4129 `(("gtk+" ,gtk+-2)
4130 ("libxres" ,libxres)
4131 ("startup-notification" ,startup-notification)))))
4132
4133 (define-public goffice
4134 (package
4135 (name "goffice")
4136 (version "0.10.48")
4137 (source (origin
4138 (method url-fetch)
4139 (uri (string-append "mirror://gnome/sources/goffice/"
4140 (version-major+minor version) "/"
4141 "goffice-" version ".tar.xz"))
4142 (sha256
4143 (base32 "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4"))))
4144 (build-system gnu-build-system)
4145 (outputs '("out"
4146 "doc")) ; 4.0 MiB of gtk-doc
4147 (arguments
4148 '(#:configure-flags (list (string-append "--with-html-dir="
4149 (assoc-ref %outputs "doc")
4150 "/share/gtk-doc/html"))))
4151 (inputs
4152 `(("gtk+" ,gtk+)
4153 ("libgsf" ,libgsf)
4154 ("librsvg" ,librsvg)
4155 ("libxslt" ,libxslt)
4156 ("libxml2" ,libxml2)))
4157 (native-inputs
4158 `(("intltool" ,intltool)
4159 ("glib" ,glib "bin")
4160 ("pkg-config" ,pkg-config)))
4161 (home-page "https://developer.gnome.org/goffice/")
4162 (synopsis "Document-centric objects and utilities")
4163 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4164 (license
4165 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4166 ;; Note: NOT LGPL
4167 (list license:gpl2 license:gpl3))))
4168
4169 (define-public goffice-0.8
4170 (package (inherit goffice)
4171 (version "0.8.17")
4172 (source (origin
4173 (method url-fetch)
4174 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4175 (version-major+minor version) "/"
4176 (package-name goffice) "-" version ".tar.xz"))
4177 (sha256
4178 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4179 (arguments
4180 `(#:phases
4181 (modify-phases %standard-phases
4182 (add-after 'unpack 'fix-pcre-check
4183 (lambda _
4184 ;; Only glib.h can be included directly. See
4185 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4186 (substitute* "configure"
4187 (("glib/gregex\\.h") "glib.h")) #t)))
4188
4189 ,@(package-arguments goffice)))
4190 (propagated-inputs
4191 ;; libgoffice-0.8.pc mentions libgsf-1
4192 `(("libgsf" ,libgsf)))
4193 (inputs
4194 `(("gtk" ,gtk+-2)
4195 ,@(alist-delete "gtk" (package-inputs goffice))))))
4196
4197 (define-public gnumeric
4198 (package
4199 (name "gnumeric")
4200 (version "1.12.48")
4201 (source (origin
4202 (method url-fetch)
4203 (uri (string-append "mirror://gnome/sources/gnumeric/"
4204 (version-major+minor version) "/"
4205 "gnumeric-" version ".tar.xz"))
4206 (sha256
4207 (base32
4208 "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p"))))
4209 (build-system glib-or-gtk-build-system)
4210 (arguments
4211 `(;; The gnumeric developers don't worry much about failing tests.
4212 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4213 #:tests? #f
4214 #:phases
4215 (modify-phases %standard-phases
4216 (add-before
4217 'configure 'pre-conf
4218 (lambda* (#:key outputs #:allow-other-keys)
4219 ;; Make install tries to write into the directory of goffice
4220 ;; I am informed that this only affects the possibility to embed a
4221 ;; spreadsheet inside an Abiword document. So presumably when we
4222 ;; package Abiword we'll have to refer it to this directory.
4223 (substitute* "configure"
4224 (("^GOFFICE_PLUGINS_DIR=.*")
4225 (string-append "GOFFICE_PLUGINS_DIR="
4226 (assoc-ref outputs "out")
4227 "/goffice/plugins"))))))))
4228 (inputs
4229 `(("glib" ,glib)
4230 ("gtk+" ,gtk+)
4231 ("goffice" ,goffice)
4232 ("libgsf" ,libgsf)
4233 ("librsvg" ,librsvg)
4234 ("libxml2" ,libxml2)
4235 ("libxslt" ,libxslt)
4236 ("python" ,python)
4237 ("python-pygobject" ,python-pygobject)
4238 ("zlib" ,zlib)))
4239 (native-inputs
4240 `(("bison" ,bison)
4241 ("docbook-xml" ,docbook-xml)
4242 ("intltool" ,intltool)
4243 ("itstool" ,itstool)
4244 ("glib:bin" ,glib "bin")
4245 ("pkg-config" ,pkg-config)))
4246 (home-page "http://www.gnumeric.org")
4247 (synopsis "Spreadsheet application")
4248 (description
4249 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4250 interoperable with other spreadsheet applications. It has a vast array of
4251 features beyond typical spreadsheet functionality, such as support for linear
4252 and non-linear solvers, statistical analysis, and telecommunication
4253 engineering.")
4254 (license
4255 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4256 (list license:gpl2 license:gpl3))))
4257
4258 (define-public gnome-themes-standard
4259 (package
4260 (name "gnome-themes-standard")
4261 (version "3.22.3")
4262 (source
4263 (origin
4264 (method url-fetch)
4265 (uri (string-append "mirror://gnome/sources/" name "/"
4266 (version-major+minor version) "/" name "-"
4267 version ".tar.xz"))
4268 (sha256
4269 (base32
4270 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
4271 (build-system gnu-build-system)
4272 (arguments
4273 '(#:configure-flags
4274 ;; Don't create 'icon-theme.cache'.
4275 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
4276 (true (string-append coreutils "/bin/true")))
4277 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
4278 (inputs
4279 `(("gtk+" ,gtk+)
4280 ("gtk+-2" ,gtk+-2)
4281 ("librsvg" ,librsvg)
4282 ("libxml2" ,libxml2)
4283 ("glib" ,glib)))
4284 (native-inputs
4285 `(("intltool" ,intltool)
4286 ("glib:bin" ,glib "bin")
4287 ("pkg-config" ,pkg-config)))
4288 (home-page "https://launchpad.net/gnome-themes-standard")
4289 (synopsis "Default GNOME 3 themes")
4290 (description
4291 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
4292 (license license:lgpl2.1+)))
4293
4294 (define-public seahorse
4295 (package
4296 (name "seahorse")
4297 (version "3.36.2")
4298 (source
4299 (origin
4300 (method url-fetch)
4301 (uri (string-append "mirror://gnome/sources/" name "/"
4302 (version-major+minor version) "/" name "-"
4303 version ".tar.xz"))
4304 (sha256
4305 (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
4306 (build-system meson-build-system)
4307 (arguments
4308 '(#:glib-or-gtk? #t
4309 #:phases
4310 (modify-phases %standard-phases
4311 (add-after 'unpack 'skip-gtk-update-icon-cache
4312 ;; Don't create 'icon-theme.cache'.
4313 (lambda _
4314 (substitute* "build-aux/meson_post_install.py"
4315 (("gtk-update-icon-cache") "true"))
4316 #t)))))
4317 (inputs
4318 `(("gtk+" ,gtk+)
4319 ("gcr" ,gcr)
4320 ("gnupg" ,gnupg)
4321 ("gpgme" ,gpgme)
4322 ("openldap" ,openldap)
4323 ("openssh" ,openssh)
4324 ("avahi" ,avahi)
4325 ("libhandy" ,libhandy-0.0)
4326 ("libpwquality" ,libpwquality)
4327 ("libsecret" ,libsecret)
4328 ("libsoup" ,libsoup)))
4329 (native-inputs
4330 `(("gettext" ,gettext-minimal)
4331 ("glib:bin" ,glib "bin")
4332 ("itstool" ,itstool)
4333 ("pkg-config" ,pkg-config)
4334 ("vala" ,vala)
4335 ("xmllint" ,libxml2)))
4336 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4337 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4338 (description
4339 "Seahorse is a GNOME application for managing encryption keys and
4340 passwords in the GNOME keyring.")
4341 (license license:gpl2+)))
4342
4343 (define-public vala
4344 (package
4345 (name "vala")
4346 (version "0.46.5")
4347 (source (origin
4348 (method url-fetch)
4349 (uri (string-append "mirror://gnome/sources/" name "/"
4350 (version-major+minor version) "/"
4351 name "-" version ".tar.xz"))
4352 (sha256
4353 (base32
4354 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
4355 (build-system gnu-build-system)
4356 (arguments
4357 '(#:phases
4358 (modify-phases %standard-phases
4359 (add-before 'check 'pre-check
4360 (lambda _
4361 (setenv "CC" "gcc")
4362 (substitute* "valadoc/tests/testrunner.sh"
4363 (("export PKG_CONFIG_PATH=" m)
4364 (string-append m "$PKG_CONFIG_PATH:")))
4365 ;; For missing '/etc/machine-id'.
4366 (setenv "DBUS_FATAL_WARNINGS" "0")
4367 #t)))))
4368 (native-inputs
4369 `(("pkg-config" ,pkg-config)
4370 ("flex" ,flex)
4371 ("bison" ,bison)
4372 ("xsltproc" ,libxslt)
4373 ("dbus" ,dbus) ; for dbus tests
4374 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
4375 (inputs
4376 `(("graphviz" ,graphviz)))
4377 (propagated-inputs
4378 `(("glib" ,glib))) ; required by libvala-0.40.pc
4379 (home-page "https://wiki.gnome.org/Projects/Vala/")
4380 (synopsis "Compiler for the GObject type system")
4381 (description
4382 "Vala is a programming language that aims to bring modern programming
4383 language features to GNOME developers without imposing any additional runtime
4384 requirements and without using a different ABI compared to applications and
4385 libraries written in C.")
4386 (license license:lgpl2.1+)))
4387
4388 (define-public vala-0.50
4389 (package
4390 (inherit vala)
4391 (version "0.50.2")
4392 (source (origin
4393 (method url-fetch)
4394 (uri (string-append "mirror://gnome/sources/vala/"
4395 (version-major+minor version) "/"
4396 "vala-" version ".tar.xz"))
4397 (sha256
4398 (base32
4399 "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c"))))))
4400
4401 (define-public vte
4402 (package
4403 (name "vte")
4404 (version "0.60.3")
4405 (source (origin
4406 (method url-fetch)
4407 (uri (string-append "mirror://gnome/sources/vte/"
4408 (version-major+minor version) "/"
4409 "vte-" version ".tar.xz"))
4410 (sha256
4411 (base32
4412 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
4413 (build-system meson-build-system)
4414 (arguments
4415 `(#:configure-flags
4416 '("-Dvapi=true"
4417 "-D_systemd=false")))
4418 (native-inputs
4419 `(("pkg-config" ,pkg-config)
4420 ("gettext" ,gettext-minimal)
4421 ("vala" ,vala)
4422 ("gobject-introspection" ,gobject-introspection)
4423 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
4424 ("gperf" ,gperf)
4425 ("xmllint" ,libxml2)))
4426 (propagated-inputs
4427 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4428 ("gnutls" ,gnutls) ; ditto
4429 ("pcre2" ,pcre2))) ; ditto
4430 (home-page "https://www.gnome.org/")
4431 (synopsis "Virtual Terminal Emulator")
4432 (description
4433 "VTE is a library (libvte) implementing a terminal emulator widget for
4434 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4435 gnome-terminal, but can also be used to embed a console/terminal in games,
4436 editors, IDEs, etc.")
4437 (license license:lgpl2.1+)))
4438
4439 (define-public vte-ng
4440 (package
4441 (inherit vte)
4442 (name "vte-ng")
4443 (version "0.58.2.a")
4444 (home-page "https://github.com/thestinger/vte-ng")
4445 (source (origin
4446 (method git-fetch)
4447 (uri (git-reference (url home-page) (commit version)))
4448 (file-name (git-file-name name version))
4449 (sha256
4450 (base32
4451 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4452 (build-system meson-build-system)
4453 (native-inputs
4454 `(("gtk-doc" ,gtk-doc)
4455 ,@(package-native-inputs vte)))
4456 (arguments
4457 `(#:configure-flags '("-Ddocs=true")))
4458 (synopsis "Enhanced VTE terminal widget")
4459 (description
4460 "VTE is a library (libvte) implementing a terminal emulator widget for
4461 GTK+, this fork provides additional functions exposed for keyboard text
4462 selection and URL hints.")))
4463
4464 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4465 (define-public vte/gtk+-2
4466 (package (inherit vte)
4467 (name "vte")
4468 (version "0.28.2")
4469 (source (origin
4470 (method url-fetch)
4471 (uri (string-append "mirror://gnome/sources/" name "/"
4472 (version-major+minor version) "/"
4473 name "-" version ".tar.xz"))
4474 (sha256
4475 (base32
4476 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4477 (patches (search-patches
4478 "vte-CVE-2012-2738-pt1.patch"
4479 "vte-CVE-2012-2738-pt2.patch"))))
4480 (build-system gnu-build-system)
4481 (arguments
4482 '(#:configure-flags '("--disable-python")))
4483 (native-inputs
4484 `(("pkg-config" ,pkg-config)
4485 ("intltool" ,intltool)
4486 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4487 (propagated-inputs
4488 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4489 ("ncurses" ,ncurses))))) ; required by libvte.la
4490
4491 (define-public vinagre
4492 (package
4493 (name "vinagre")
4494 (version "3.22.0")
4495 (source (origin
4496 (method url-fetch)
4497 (uri (string-append "mirror://gnome/sources/" name "/"
4498 (version-major+minor version) "/"
4499 name "-" version ".tar.xz"))
4500 (patches (search-patches "vinagre-newer-freerdp.patch"
4501 "vinagre-newer-rdp-parameters.patch"))
4502 (sha256
4503 (base32
4504 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4505 (build-system glib-or-gtk-build-system)
4506 (arguments
4507 ;; Disable -Werror and such, to avoid build failures on compilation
4508 ;; warnings.
4509 '(#:configure-flags '("--enable-compile-warnings=minimum")
4510 #:phases
4511 (modify-phases %standard-phases
4512 (add-before 'install 'skip-gtk-update-icon-cache
4513 (lambda _
4514 ;; Don't create 'icon-theme.cache'
4515 (substitute* (find-files "." "^Makefile$")
4516 (("gtk-update-icon-cache") (which "true")))
4517 #t))
4518 (add-after 'unpack 'patch-configure
4519 (lambda _
4520 (substitute* "configure"
4521 (("freerdp") "freerdp2"))
4522 #t)))))
4523 (native-inputs
4524 `(("pkg-config" ,pkg-config)
4525 ("intltool" ,intltool)
4526 ("itstool" ,itstool)
4527 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4528 (inputs
4529 `(("libxml2" ,libxml2)
4530 ("gtk-vnc" ,gtk-vnc)
4531 ("gnome-keyring" ,gnome-keyring)
4532 ("libsecret" ,libsecret)
4533 ("freerdp" ,freerdp)
4534 ("spice" ,spice)
4535 ("spice-gtk" ,spice-gtk)
4536 ("telepathy-glib" ,telepathy-glib)
4537 ("vte" ,vte)))
4538 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4539 (synopsis "Remote desktop viewer for GNOME")
4540 (description "Vinagre is a remote display client supporting the VNC, SPICE
4541 and RDP protocols.")
4542 (license license:gpl3+)))
4543
4544 (define-public dconf
4545 (package
4546 (name "dconf")
4547 (version "0.36.0")
4548 (source (origin
4549 (method url-fetch)
4550 (uri (string-append
4551 "mirror://gnome/sources/" name "/"
4552 (version-major+minor version) "/"
4553 name "-" version ".tar.xz"))
4554 (sha256
4555 (base32
4556 "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
4557 (build-system meson-build-system)
4558 (propagated-inputs
4559 ;; In Requires of dconf.pc.
4560 `(("glib" ,glib)))
4561 (inputs
4562 `(("gtk+" ,gtk+)
4563 ("dbus" ,dbus)))
4564 (native-inputs
4565 `(("bash-completion" ,bash-completion)
4566 ("libxslt" ,libxslt) ;for xsltproc
4567 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4568 ("docbook-xml" ,docbook-xml-4.2)
4569 ("docbook-xsl" ,docbook-xsl)
4570 ("glib:bin" ,glib "bin")
4571 ("gtk-doc" ,gtk-doc)
4572 ("pkg-config" ,pkg-config)
4573 ("vala" ,vala)))
4574 (arguments
4575 `(#:glib-or-gtk? #t
4576 #:configure-flags '("-Denable-gtk-doc=true")
4577 #:phases (modify-phases %standard-phases
4578 (add-after 'unpack 'increase-test-timeout
4579 (lambda _
4580 ;; On big-memory systems, the engine test may take
4581 ;; much longer than the default of 30 seconds.
4582 (substitute* "tests/meson.build"
4583 (("test\\(unit_test\\[0\\], exe" all)
4584 (string-append all ", timeout : 90")))
4585 #t)))))
4586 (home-page "https://developer.gnome.org/dconf/")
4587 (synopsis "Low-level GNOME configuration system")
4588 (description "Dconf is a low-level configuration system. Its main purpose
4589 is to provide a backend to GSettings on platforms that don't already have
4590 configuration storage systems.")
4591 (license license:lgpl2.1+)))
4592
4593 (define-public json-glib
4594 (package
4595 (name "json-glib")
4596 (version "1.4.4")
4597 (source (origin
4598 (method url-fetch)
4599 (uri (string-append "mirror://gnome/sources/" name "/"
4600 (version-major+minor version) "/"
4601 name "-" version ".tar.xz"))
4602 (sha256
4603 (base32
4604 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
4605 (build-system meson-build-system)
4606 (native-inputs
4607 `(("gettext" ,gettext-minimal)
4608 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4609 ("gobject-introspection" ,gobject-introspection)
4610 ("pkg-config" ,pkg-config)))
4611 (propagated-inputs
4612 `(("glib" ,glib))) ;according to json-glib-1.0.pc
4613 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4614 (synopsis "Compiler for the GObject type system")
4615 (description
4616 "JSON-GLib is a C library based on GLib providing serialization and
4617 deserialization support for the JavaScript Object Notation (JSON) format
4618 described by RFC 4627. It provides parser and generator GObject classes and
4619 various wrappers for the complex data types employed by JSON, such as arrays
4620 and objects.")
4621 (license license:lgpl2.1+)))
4622
4623 (define-public libxklavier
4624 (package
4625 (name "libxklavier")
4626 (version "5.4")
4627 (source (origin
4628 ;; Note: There's no tarball at ftp.gnome.org for this version.
4629 (method git-fetch)
4630 (uri (git-reference
4631 (url "https://anongit.freedesktop.org/git/libxklavier")
4632 (commit (string-append "libxklavier-" version))))
4633 (sha256
4634 (base32
4635 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4636 (file-name (git-file-name name version))))
4637 (build-system gnu-build-system)
4638 (arguments
4639 '(#:configure-flags
4640 (list (string-append "--with-xkb-base="
4641 (assoc-ref %build-inputs "xkeyboard-config")
4642 "/share/X11/xkb")
4643 "--disable-xmodmap-support")))
4644 (native-inputs
4645 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4646 ("gobject-introspection" ,gobject-introspection)
4647 ("pkg-config" ,pkg-config)
4648 ("gtk-doc" ,gtk-doc)
4649 ("intltool" ,intltool)
4650 ("which" ,which)
4651 ("autoconf" ,autoconf)
4652 ("automake" ,automake)
4653 ("libtool" ,libtool)))
4654 (propagated-inputs
4655 ;; Required by libxklavier.pc.
4656 `(("glib" ,glib)
4657 ("libxml2" ,libxml2)))
4658 (inputs
4659 `(("iso-codes" ,iso-codes)
4660 ("libxi" ,libxi)
4661 ("libxkbfile" ,libxkbfile)
4662 ("xkbcomp" ,xkbcomp)
4663 ("xkeyboard-config" ,xkeyboard-config)))
4664 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4665 (synopsis "High-level API for X Keyboard Extension")
4666 (description
4667 "LibXklavier is a library providing high-level API for X Keyboard
4668 Extension known as XKB. This library is intended to support XFree86 and other
4669 commercial X servers. It is useful for creating XKB-related software (layout
4670 indicators etc).")
4671 (license license:lgpl2.0+)))
4672
4673 (define-public python2-rsvg
4674 ;; XXX: This is actually a subset of gnome-python-desktop.
4675 (package
4676 (name "python2-rsvg")
4677 (version "2.32.0")
4678 (source
4679 (origin
4680 (method url-fetch)
4681 (uri (string-append
4682 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4683 version ".tar.bz2"))
4684 (sha256
4685 (base32
4686 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4687 (build-system gnu-build-system)
4688 (native-inputs
4689 `(("pkg-config" ,pkg-config)))
4690 (inputs
4691 `(("python" ,python-2)
4692 ("python2-pygtk" ,python2-pygtk)
4693 ("librsvg" ,librsvg)))
4694 (home-page "https://www.gnome.org")
4695 (synopsis "Python bindings to librsvg")
4696 (description
4697 "This package provides Python bindings to librsvg, the SVG rendering
4698 library.")
4699
4700 ;; This is the license of the rsvg bindings. The license of each module
4701 ;; of gnome-python-desktop is given in 'COPYING'.
4702 (license license:lgpl2.1+)))
4703
4704 (define-public glib-networking
4705 (package
4706 (name "glib-networking")
4707 (version "2.62.2")
4708 (source (origin
4709 (method url-fetch)
4710 (uri (string-append "mirror://gnome/sources/glib-networking/"
4711 (version-major+minor version) "/"
4712 "glib-networking-" version ".tar.xz"))
4713 (sha256
4714 (base32
4715 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
4716 (build-system meson-build-system)
4717 (arguments
4718 `(#:configure-flags '("-Dlibproxy_support=false")))
4719 (native-inputs
4720 `(("pkg-config" ,pkg-config)
4721 ("intltool" ,intltool)))
4722 (inputs
4723 `(("glib" ,glib)
4724 ("gnutls" ,gnutls)
4725 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
4726 (home-page "https://www.gnome.org")
4727 (synopsis "Network-related GIO modules")
4728 (description
4729 "This package contains various network related extensions for the GIO
4730 library.")
4731 (license license:lgpl2.0+)))
4732
4733 (define-public rest
4734 (package
4735 (name "rest")
4736 (version "0.8.1")
4737 (source (origin
4738 (method url-fetch)
4739 (uri (string-append "mirror://gnome/sources/rest/"
4740 (version-major+minor version) "/"
4741 name "-" version ".tar.xz"))
4742 (sha256
4743 (base32
4744 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4745 (build-system gnu-build-system)
4746 (arguments
4747 '(#:tests? #f ; tests require internet connection
4748 #:configure-flags
4749 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4750 (native-inputs
4751 `(("glib-mkenums" ,glib "bin")
4752 ("gobject-introspection" ,gobject-introspection)
4753 ("pkg-config" ,pkg-config)))
4754 (propagated-inputs
4755 ;; rest-0.7.pc refers to all these.
4756 `(("glib" ,glib)
4757 ("libsoup" ,libsoup)
4758 ("libxml2" ,libxml2)))
4759 (home-page "https://www.gtk.org/")
4760 (synopsis "RESTful web api query library")
4761 (description
4762 "This library was designed to make it easier to access web services that
4763 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4764 libxml to ease remote use of the RESTful API.")
4765 (license license:lgpl2.1+)))
4766
4767 (define-public libsoup
4768 (package
4769 (name "libsoup")
4770 (version "2.72.0")
4771 (source (origin
4772 (method url-fetch)
4773 (uri (string-append "mirror://gnome/sources/libsoup/"
4774 (version-major+minor version) "/"
4775 "libsoup-" version ".tar.xz"))
4776 (sha256
4777 (base32
4778 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
4779 (build-system meson-build-system)
4780 (outputs '("out" "doc"))
4781 (arguments
4782 `(#:modules ((guix build utils)
4783 (guix build meson-build-system)
4784 (ice-9 popen))
4785
4786 #:configure-flags '("-Dgtk_doc=true")
4787 #:phases
4788 (modify-phases %standard-phases
4789 (add-after 'unpack 'patch-docbook-xml
4790 (lambda* (#:key inputs #:allow-other-keys)
4791 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
4792 "/xml/dtd/docbook")))
4793 (substitute* (find-files "docs/reference")
4794 (("http://.*/docbookx\\.dtd")
4795 (string-append xmldoc "/docbookx.dtd")))
4796 #t)))
4797 (add-after 'unpack 'adjust-tests
4798 (lambda _
4799 ;; This test fails due to missing /etc/nsswitch.conf
4800 ;; in the build environment.
4801 (substitute* "tests/socket-test.c"
4802 ((".*/sockets/unconnected.*") ""))
4803
4804 ;; These fail because "subdomain.localhost" does not resolve in
4805 ;; the build environment.
4806 (substitute* "tests/hsts-test.c"
4807 ((".*/hsts/basic.*") "")
4808 ((".*/hsts/subdomains.*") "")
4809 ((".*/hsts/superdomain.*") "")
4810 ((".*/hsts/utf8-address.*") ""))
4811 (substitute* "tests/hsts-db-test.c"
4812 ((".*/hsts-db/subdomains.*") ""))
4813
4814 ;; Generate a self-signed certificate that has "localhost" as its
4815 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4816 ;; 3.5.12, tests such as "ssl-tests" fail:
4817 ;;
4818 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4819 ;;
4820 ;; 'certtool' is interactive so we have to pipe it the answers.
4821 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4822 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4823 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4824 (for-each (lambda (line)
4825 (display line pipe)
4826 (newline pipe))
4827 '("" ;Common name
4828 "" ;UID
4829 "Guix" ;Organizational unit name
4830 "GNU" ;Organization name
4831 "" ;Locality name
4832 "" ;State or province
4833 "" ;Country
4834 "" ;subject's domain component (DC)
4835 "" ;E-mail
4836 "" ;serial number
4837 "-1" ;expiration time
4838 "N" ;belong to authority?
4839 "N" ;web client certificate?
4840 "N" ;IPsec IKE?
4841 "Y" ;web server certificate?
4842 "localhost" ;dnsName of subject
4843 "" ;dnsName of subject (end)
4844 "" ;URI of subject
4845 "127.0.0.1" ;IP address of subject
4846 "" ;signing?
4847 "" ;encryption (RSA)?
4848 "" ;data encryption?
4849 "" ;sign OCSP requests?
4850 "" ;sign code?
4851 "" ;time stamping?
4852 "" ;email protection?
4853 "" ;URI of the CRL distribution point
4854 "y" ;above info OK?
4855 ))
4856 (close-pipe pipe))
4857 #t))
4858 (add-after 'install 'move-doc
4859 (lambda* (#:key outputs #:allow-other-keys)
4860 (let ((out (assoc-ref outputs "out"))
4861 (doc (assoc-ref outputs "doc")))
4862 (mkdir-p (string-append doc "/share"))
4863 (copy-recursively (string-append out "/share/gtk-doc")
4864 (string-append doc "/share/gtk-doc"))
4865 (delete-file-recursively (string-append out "/share/gtk-doc"))
4866 #t))))))
4867 (native-inputs
4868 `(("docbook-xml" ,docbook-xml-4.1.2)
4869 ("glib:bin" ,glib "bin") ; for glib-mkenums
4870 ("gobject-introspection" ,gobject-introspection)
4871 ("gtk-doc" ,gtk-doc)
4872 ("intltool" ,intltool)
4873 ("pkg-config" ,pkg-config)
4874 ("python" ,python-wrapper)
4875 ("vala" ,vala)
4876 ("php" ,php)
4877 ("curl" ,curl)
4878 ("gnutls" ,gnutls) ;for 'certtool'
4879 ("httpd" ,httpd)))
4880 (propagated-inputs
4881 ;; libsoup-2.4.pc refers to all these.
4882 `(("brotli" ,google-brotli)
4883 ("glib" ,glib)
4884 ("libpsl" ,libpsl)
4885 ("libxml2" ,libxml2)
4886 ("sqlite" ,sqlite)
4887 ("zlib" ,zlib)))
4888 (inputs
4889 `(("glib-networking" ,glib-networking)
4890 ("mit-krb5" ,mit-krb5)))
4891 (home-page "https://live.gnome.org/LibSoup/")
4892 (synopsis "GLib-based HTTP Library")
4893 (description
4894 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4895 and the GLib main loop, to integrate well with GNOME applications.")
4896 (license license:lgpl2.0+)))
4897
4898
4899 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4900 (define-public libsoup-minimal
4901 (package
4902 (inherit libsoup)
4903 (name "libsoup-minimal")
4904 (outputs (delete "doc" (package-outputs libsoup)))
4905 (arguments
4906 (substitute-keyword-arguments (package-arguments libsoup)
4907 ((#:configure-flags configure-flags)
4908 `(delete "-Dgtk_doc=true" ,configure-flags))
4909 ((#:phases phases)
4910 `(modify-phases ,phases
4911 (delete 'move-doc)))))
4912 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4913
4914 (define-public libsecret
4915 (package
4916 (name "libsecret")
4917 (version "0.20.4")
4918 (source (origin
4919 (method url-fetch)
4920 (uri (string-append
4921 "mirror://gnome/sources/libsecret/"
4922 (version-major+minor version) "/"
4923 "libsecret-" version ".tar.xz"))
4924 (sha256
4925 (base32
4926 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
4927 (build-system gnu-build-system)
4928 (outputs '("out" "doc"))
4929 (arguments
4930 `(#:tests? #f ; FIXME: Testing hangs.
4931 #:configure-flags
4932 (list (string-append "--with-html-dir="
4933 (assoc-ref %outputs "doc")
4934 "/share/gtk-doc/html"))))
4935 (native-inputs
4936 `(("gettext" ,gettext-minimal)
4937 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4938 ("gobject-introspection" ,gobject-introspection)
4939 ("pkg-config" ,pkg-config)
4940 ("vala" ,vala)
4941 ("xsltproc" ,libxslt)))
4942 ;; These are needed for the tests.
4943 ;; FIXME: Add gjs once available.
4944 ;("dbus" ,dbus)
4945 ;("python2" ,python-2)
4946 ;("python2-dbus" ,python2-dbus)
4947 ;("python2-pygobject" ,python2-pygobject)
4948 ;("python2-pygobject-2" ,python2-pygobject-2)))
4949 (propagated-inputs
4950 `(("glib" ,glib))) ; required by libsecret-1.pc
4951 (inputs
4952 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
4953 ;; doesn't seem to affect the build result.
4954 `(("docbook-xsl" ,docbook-xsl)
4955 ("libgcrypt" ,libgcrypt)
4956 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4957 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4958 (synopsis "GObject bindings for \"Secret Service\" API")
4959 (description
4960 "Libsecret is a GObject based library for storing and retrieving passwords
4961 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4962 (license license:lgpl2.1+)))
4963
4964 (define-public five-or-more
4965 (package
4966 (name "five-or-more")
4967 (version "3.32.2")
4968 (source
4969 (origin
4970 (method url-fetch)
4971 (uri (string-append "mirror://gnome/sources/five-or-more/"
4972 (version-major+minor version) "/"
4973 "five-or-more-" version ".tar.xz"))
4974 (sha256
4975 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4976 (build-system meson-build-system)
4977 (arguments
4978 '(#:glib-or-gtk? #t
4979 #:phases
4980 (modify-phases %standard-phases
4981 (add-after 'unpack 'skip-gtk-update-icon-cache
4982 (lambda _
4983 (substitute* "meson_post_install.py"
4984 (("gtk-update-icon-cache") (which "true")))
4985 #t)))))
4986 (native-inputs
4987 `(("pkg-config" ,pkg-config)
4988 ("appstream-glib" ,appstream-glib)
4989 ("desktop-file-utils" ,desktop-file-utils)
4990 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4991 ("intltool" ,intltool)
4992 ("itstool" ,itstool)
4993 ("vala" ,vala)
4994 ("xmllint" ,libxml2)))
4995 (inputs
4996 `(("gtk+" ,gtk+)
4997 ("libgnome-games-support" ,libgnome-games-support)
4998 ("librsvg" ,librsvg)))
4999 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
5000 (synopsis "Logic puzzle game")
5001 (description "Five or More is a game where you try to align
5002 five or more objects of the same color and shape causing them to disappear.
5003 On every turn more objects will appear, until the board is full.
5004 Try to last as long as possible.")
5005 (license license:gpl2+)))
5006
5007 (define-public gnome-mines
5008 (package
5009 (name "gnome-mines")
5010 (version "3.36.1")
5011 (source
5012 (origin
5013 (method url-fetch)
5014 (uri (string-append "mirror://gnome/sources/" name "/"
5015 (version-major+minor version) "/"
5016 name "-" version ".tar.xz"))
5017 (sha256
5018 (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
5019 (build-system meson-build-system)
5020 (arguments
5021 '(#:glib-or-gtk? #t
5022 #:phases
5023 (modify-phases %standard-phases
5024 (add-after 'unpack 'skip-gtk-update-icon-cache
5025 (lambda _
5026 (substitute* "build-aux/meson_post_install.py"
5027 (("gtk-update-icon-cache") (which "true")))
5028 #t)))))
5029 (native-inputs
5030 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5031 ("pkg-config" ,pkg-config)
5032 ("desktop-file-utils" ,desktop-file-utils)
5033 ("intltool" ,intltool)
5034 ("itstool" ,itstool)
5035 ("vala" ,vala)
5036 ("yelp" ,yelp)
5037 ("appstream-glib" ,appstream-glib)))
5038 (inputs
5039 `(("gtk+" ,gtk+)
5040 ("libgnome-games-support" ,libgnome-games-support)
5041 ("librsvg" ,librsvg)))
5042 (home-page "https://wiki.gnome.org/Apps/Mines")
5043 (synopsis "Minesweeper game")
5044 (description
5045 "Mines (previously gnomine) is a puzzle game where you locate mines
5046 floating in an ocean using only your brain and a little bit of luck.")
5047 (license license:gpl2+)))
5048
5049 (define-public gnome-multi-writer
5050 (package
5051 (name "gnome-multi-writer")
5052 (version "3.35.90")
5053 (source
5054 (origin
5055 (method url-fetch)
5056 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5057 (version-major+minor version) "/"
5058 "gnome-multi-writer-" version ".tar.xz"))
5059 (sha256
5060 (base32
5061 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5062 (build-system meson-build-system)
5063 (arguments
5064 '(#:glib-or-gtk? #t
5065 #:phases
5066 (modify-phases %standard-phases
5067 (add-after 'unpack 'skip-post-install
5068 (lambda _
5069 (substitute* "meson.build"
5070 (("meson.add_install_script" &) (string-append "# " &)))
5071 #t)))))
5072 (native-inputs
5073 `(("glib:bin" ,glib "bin")
5074 ("pkg-config" ,pkg-config)))
5075 (inputs
5076 `(("gtk+" ,gtk+)
5077 ("glib" ,glib) ; for gio
5078 ("gusb" ,gusb)
5079 ("udisks" ,udisks)
5080 ("libgudev" ,libgudev)
5081 ("libcanberra" ,libcanberra)
5082 ("polkit" ,polkit)))
5083 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5084 (synopsis "Write to multiple USB devices at once")
5085 (description
5086 "MultiWriter can be used to write an ISO file to multiple USB devices at
5087 once.")
5088 (license license:gpl2+)))
5089
5090 (define-public gnome-sudoku
5091 (package
5092 (name "gnome-sudoku")
5093 (version "3.34.1")
5094 (source
5095 (origin
5096 (method url-fetch)
5097 (uri (string-append "mirror://gnome/sources/" name "/"
5098 (version-major+minor version) "/"
5099 name "-" version ".tar.xz"))
5100 (sha256
5101 (base32
5102 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
5103 (build-system meson-build-system)
5104 (arguments
5105 '(#:glib-or-gtk? #t
5106 #:phases
5107 (modify-phases %standard-phases
5108 (add-after 'unpack 'skip-gtk-update-icon-cache
5109 (lambda _
5110 (substitute* "build-aux/post_install.py"
5111 (("gtk-update-icon-cache") (which "true")))
5112 #t)))))
5113 (native-inputs
5114 `(("pkg-config" ,pkg-config)
5115 ("desktop-file-utils" ,desktop-file-utils)
5116 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5117 ("intltool" ,intltool)
5118 ("itstool" ,itstool)
5119 ("vala" ,vala)
5120 ("xmllint" ,libxml2)))
5121 (inputs
5122 `(("gtk+" ,gtk+)
5123 ("json-glib" ,json-glib)
5124 ("libgee" ,libgee)
5125 ("librsvg" ,librsvg)
5126 ("qqwing" ,qqwing)))
5127 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5128 (synopsis "Japanese logic game")
5129 (description
5130 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5131 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5132 possible while still providing features that make playing difficult Sudoku
5133 more fun.")
5134 (license license:gpl2+)))
5135
5136 (define-public gnome-terminal
5137 (package
5138 (name "gnome-terminal")
5139 (version "3.34.2")
5140 (source
5141 (origin
5142 (method url-fetch)
5143 (uri (string-append "mirror://gnome/sources/" name "/"
5144 (version-major+minor version) "/"
5145 name "-" version ".tar.xz"))
5146 (sha256
5147 (base32
5148 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
5149 (build-system glib-or-gtk-build-system)
5150 (arguments
5151 '(#:configure-flags
5152 (list "--disable-migration" "--disable-search-provider"
5153 "--without-nautilus-extension")
5154 #:phases
5155 (modify-phases %standard-phases
5156 (add-before 'configure 'patch-/bin/true
5157 (lambda _
5158 (substitute* "configure"
5159 (("/bin/true") (which "true"))))))))
5160 (native-inputs
5161 `(("pkg-config" ,pkg-config)
5162 ("desktop-file-utils" ,desktop-file-utils)
5163 ("intltool" ,intltool)
5164 ("itstool" ,itstool)
5165 ("xmllint" ,libxml2)))
5166 (propagated-inputs
5167 `(("dconf" ,dconf)))
5168 (inputs
5169 `(("gtk+" ,gtk+)
5170 ("vte" ,vte)
5171 ("gnutls" ,gnutls)
5172 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5173 ("util-linux" ,util-linux "lib")
5174 ("vala" ,vala)))
5175 (home-page "https://wiki.gnome.org/Apps/Terminal")
5176 (synopsis "Terminal emulator")
5177 (description
5178 "GNOME Terminal is a terminal emulator application for accessing a
5179 UNIX shell environment which can be used to run programs available on
5180 your system.
5181
5182 It supports several profiles, multiple tabs and implements several
5183 keyboard shortcuts.")
5184 (license license:gpl3+)))
5185
5186 (define-public colord
5187 (package
5188 (name "colord")
5189 (version "1.4.5")
5190 (source
5191 (origin
5192 (method url-fetch)
5193 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5194 "colord-" version ".tar.xz"))
5195 (sha256
5196 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5197 (build-system meson-build-system)
5198 (arguments
5199 '(;; FIXME: One test fails:
5200 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5201 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5202 ;; application/x-zerosize
5203 #:tests? #f
5204 #:glib-or-gtk? #t
5205 #:configure-flags (list "-Dlocalstatedir=/var"
5206 ;; No dep on systemd.
5207 "-Dsystemd=false"
5208 ;; Wants to install to global completion dir;
5209 ;; punt.
5210 "-Dbash_completion=false"
5211 "-Ddaemon_user=colord"
5212 "-Dsane=true"
5213 "-Dvapi=true"
5214 ;; Requires spotread.
5215 "-Dargyllcms_sensor=false"
5216 ;; TODO: Requires docbook2x.
5217 "-Dman=false")
5218 #:phases
5219 (modify-phases %standard-phases
5220 (add-before 'configure 'patch-build-system
5221 (lambda* (#:key outputs #:allow-other-keys)
5222 (substitute* "rules/meson.build"
5223 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5224 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
5225 #t))
5226 (add-before 'configure 'set-sqlite3-file-name
5227 (lambda* (#:key inputs #:allow-other-keys)
5228 ;; "colormgr dump" works by invoking the "sqlite3" command.
5229 ;; Record its absolute file name.
5230 (let ((sqlite (assoc-ref inputs "sqlite")))
5231 (substitute* "client/cd-util.c"
5232 (("\"sqlite3\"")
5233 (string-append "\"" sqlite "/bin/sqlite3\"")))
5234 #t))))))
5235 (native-inputs
5236 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5237 ("gettext" ,gettext-minimal)
5238 ("gobject-introspection" ,gobject-introspection)
5239 ("gtk-doc" ,gtk-doc)
5240 ("pkg-config" ,pkg-config)
5241 ("vala" ,vala)))
5242 (propagated-inputs
5243 ;; colord.pc refers to all these.
5244 `(("glib" ,glib)
5245 ("lcms" ,lcms)
5246 ("udev" ,eudev)))
5247 (inputs
5248 `(("dbus-glib" ,dbus-glib)
5249 ("gusb" ,gusb)
5250 ("libgudev" ,libgudev)
5251 ("libusb" ,libusb)
5252 ("polkit" ,polkit)
5253 ("python" ,python-wrapper)
5254 ("sqlite" ,sqlite)
5255 ("sane-backends" ,sane-backends)))
5256 (home-page "https://www.freedesktop.org/software/colord/")
5257 (synopsis "Color management service")
5258 (description "Colord is a system service that makes it easy to manage,
5259 install and generate color profiles to accurately color manage input and
5260 output devices.")
5261 (license license:gpl2+)))
5262
5263 (define-public geoclue
5264 (package
5265 (name "geoclue")
5266 (version "2.5.7")
5267 (source
5268 (origin
5269 (method url-fetch)
5270 (uri
5271 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5272 version "/geoclue-" version ".tar.bz2"))
5273 (sha256
5274 (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
5275 (patches (search-patches "geoclue-config.patch"))))
5276 (build-system meson-build-system)
5277 (arguments
5278 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
5279 (native-inputs
5280 `(("pkg-config" ,pkg-config)
5281 ("gobject-introspection" ,gobject-introspection)
5282 ("modem-manager" ,modem-manager)
5283 ("libnotify" ,libnotify)
5284 ("gtk-doc" ,gtk-doc)
5285 ("intltool" ,intltool)))
5286 (inputs
5287 `(("avahi" ,avahi)
5288 ("glib:bin" ,glib "bin")
5289 ("glib-networking" ,glib-networking)
5290 ("json-glib" ,json-glib)
5291 ("libsoup" ,libsoup)))
5292 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5293 (synopsis "Geolocation service")
5294 (description "Geoclue is a D-Bus service that provides location
5295 information. The primary goal of the Geoclue project is to make creating
5296 location-aware applications as simple as possible, while the secondary goal is
5297 to ensure that no application can access location information without explicit
5298 permission from user.")
5299 (license license:gpl2+)))
5300
5301 (define-public geocode-glib
5302 (package
5303 (name "geocode-glib")
5304 (version "3.26.2")
5305 (source (origin
5306 (method url-fetch)
5307 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5308 (version-major+minor version) "/"
5309 "geocode-glib-" version ".tar.xz"))
5310 (sha256
5311 (base32
5312 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
5313 (build-system meson-build-system)
5314 (arguments
5315 `(#:phases
5316 (modify-phases %standard-phases
5317 ;; The tests require a bunch of locales.
5318 (add-before 'check 'set-locales
5319 (lambda* (#:key inputs #:allow-other-keys)
5320 (setenv "GUIX_LOCPATH"
5321 (string-append (assoc-ref inputs "glibc-locales")
5322 "/lib/locale"))
5323 #t)))))
5324 (native-inputs
5325 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5326 ("glibc-locales" ,glibc-locales) ; for tests
5327 ("gettext" ,gettext-minimal)
5328 ("gobject-introspection" ,gobject-introspection)
5329 ("gtk-doc" ,gtk-doc)
5330 ("pkg-config" ,pkg-config)
5331 ("json-glib" ,json-glib)))
5332 (propagated-inputs
5333 ;; geocode-glib-1.0.pc refers to GIO.
5334 `(("glib" ,glib)))
5335 (inputs
5336 `(("libsoup" ,libsoup)))
5337 (home-page "https://github.com/GNOME/geocode-glib/")
5338 (synopsis "Geocoding and reverse-geocoding library")
5339 (description
5340 "geocode-glib is a convenience library for geocoding (finding longitude,
5341 and latitude from an address) and reverse geocoding (finding an address from
5342 coordinates) using the Nominatim service. geocode-glib caches requests for
5343 faster results and to avoid unnecessary server load.")
5344 (license license:lgpl2.0+)))
5345
5346 (define-public upower
5347 (package
5348 (name "upower")
5349 (version "0.99.11")
5350 (source (origin
5351 (method url-fetch)
5352 (uri (string-append "https://upower.freedesktop.org/releases/"
5353 "upower-" version ".tar.xz"))
5354 (sha256
5355 (base32
5356 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5357 (patches (search-patches "upower-builddir.patch"))
5358 (modules '((guix build utils)))
5359 (snippet
5360 '(begin
5361 ;; Upstream commit
5362 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
5363 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
5364 ;; 'dbus-configuration-directory' in (gnu services dbus)
5365 ;; expects it in etc/. Thus, move it back to its previous
5366 ;; location.
5367 (substitute* "src/Makefile.in"
5368 (("^dbusconfdir =.*$")
5369 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
5370 #t))))
5371 (build-system glib-or-gtk-build-system)
5372 (arguments
5373 '(#:phases
5374 (modify-phases %standard-phases
5375 (add-before 'check 'pre-check
5376 (lambda* (#:key inputs #:allow-other-keys)
5377 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
5378 "/lib")))
5379 (setenv "LD_LIBRARY_PATH" umockdev))
5380 #t)))
5381 #:configure-flags (list "--localstatedir=/var"
5382 (string-append "--with-udevrulesdir="
5383 (assoc-ref %outputs "out")
5384 "/lib/udev/rules.d"))))
5385 (native-inputs
5386 `(("gobject-introspection" ,gobject-introspection)
5387 ("pkg-config" ,pkg-config)
5388 ("intltool" ,intltool)
5389 ("python" ,python)
5390
5391 ;; For tests.
5392 ("python-dbus" ,python-dbus)
5393 ("python-dbusmock" ,python-dbusmock)
5394 ("python-pygobject" ,python-pygobject)
5395 ("umockdev" ,umockdev)
5396
5397 ;; For man pages.
5398 ("libxslt" ,libxslt) ;for 'xsltproc'
5399 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5400 ("docbook-xsl" ,docbook-xsl)))
5401 (inputs
5402 `(("dbus-glib" ,dbus-glib)
5403 ("libgudev" ,libgudev)
5404 ("libusb" ,libusb)))
5405 (propagated-inputs
5406 ;; In Requires of upower-glib.pc.
5407 `(("glib" ,glib)))
5408 (home-page "https://upower.freedesktop.org/")
5409 (synopsis "System daemon for managing power devices")
5410 (description
5411 "UPower is an abstraction for enumerating power devices,
5412 listening to device events and querying history and statistics. Any
5413 application or service on the system can access the org.freedesktop.UPower
5414 service via the system message bus.")
5415 (license license:gpl2+)))
5416
5417 (define-public libgweather
5418 (package
5419 (name "libgweather")
5420 (version "3.34.0")
5421 (source (origin
5422 (method url-fetch)
5423 (uri (string-append "mirror://gnome/sources/" name "/"
5424 (version-major+minor version) "/"
5425 name "-" version ".tar.xz"))
5426 (sha256
5427 (base32
5428 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
5429 (build-system meson-build-system)
5430 (arguments
5431 `(#:tests? #f ; one of two tests requires network access
5432 #:configure-flags
5433 `(,(string-append "-Dzoneinfo_dir="
5434 (assoc-ref %build-inputs "tzdata")
5435 "/share/zoneinfo"))))
5436 (native-inputs
5437 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5438 ("gobject-introspection" ,gobject-introspection)
5439 ("pkg-config" ,pkg-config)
5440 ("vala" ,vala)
5441 ("intltool" ,intltool)))
5442 (propagated-inputs
5443 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5444 ;; libsoup.
5445 `(("gtk+" ,gtk+)
5446 ("gdk-pixbuf" ,gdk-pixbuf)
5447 ("libxml2" ,libxml2)
5448 ("libsoup" ,libsoup)
5449 ("geocode-glib" ,geocode-glib)))
5450 (inputs
5451 `(("tzdata" ,tzdata)))
5452 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5453 (synopsis "Location, time zone, and weather library for GNOME")
5454 (description
5455 "libgweather is a library to access weather information from online
5456 services for numerous locations.")
5457 (license license:gpl2+)))
5458
5459 (define-public gnome-settings-daemon
5460 (package
5461 (name "gnome-settings-daemon")
5462 (version "3.34.1")
5463 (source
5464 (origin
5465 (method url-fetch)
5466 (uri (string-append "mirror://gnome/sources/" name "/"
5467 (version-major+minor version) "/"
5468 name "-" version ".tar.xz"))
5469 (sha256
5470 (base32
5471 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
5472 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5473 (build-system meson-build-system)
5474 (arguments
5475 `(#:glib-or-gtk? #t
5476 #:configure-flags
5477 (list (string-append "-Dudev_dir="
5478 (assoc-ref %outputs "out")
5479 "/lib/udev/rules.d/")
5480 "-Dsystemd=false"
5481 ;; Otherwise, the RUNPATH will lack the final path component.
5482 (string-append "-Dc_link_args=-Wl,-rpath="
5483 (assoc-ref %outputs "out")
5484 "/lib/gnome-settings-daemon-3.0"))
5485
5486 #:phases (modify-phases %standard-phases
5487 (add-before 'configure 'set-baobab-file-name
5488 (lambda* (#:key inputs #:allow-other-keys)
5489 ;; Hard-code the file name of Baobab instead of looking
5490 ;; it up in $PATH. This ensures users get the "Examine"
5491 ;; button in the low disk space notification of GDM even
5492 ;; if they don't have GNOME in their main profile.
5493 (let ((baobab (assoc-ref inputs "baobab")))
5494 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5495 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5496 (string-append "g_strdup (\"" baobab
5497 "/bin/baobab\")")))
5498 #t))))
5499
5500 ;; Color management test can't reach the colord system service.
5501 #:tests? #f))
5502 (native-inputs
5503 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5504 ("pkg-config" ,pkg-config)
5505 ("intltool" ,intltool)
5506 ("xsltproc" ,libxslt)
5507 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5508 ("docbook-xml" ,docbook-xml-4.2)
5509 ("docbook-xsl" ,docbook-xsl)))
5510 (inputs
5511 `(("alsa-lib" ,alsa-lib)
5512 ("baobab" ,baobab)
5513 ("colord" ,colord)
5514 ("libgudev" ,libgudev)
5515 ("upower" ,upower)
5516 ("polkit" ,polkit)
5517 ("pulseaudio" ,pulseaudio)
5518 ("libcanberra" ,libcanberra)
5519 ("libx11" ,libx11)
5520 ("libxtst" ,libxtst)
5521 ("lcms" ,lcms)
5522 ("libnotify" ,libnotify)
5523 ("geoclue" ,geoclue)
5524 ("geocode-glib" ,geocode-glib)
5525 ("libgweather" ,libgweather)
5526 ("gnome-desktop" ,gnome-desktop)
5527 ("nss" ,nss)
5528 ("cups" ,cups)
5529 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5530 ("libwacom" ,libwacom)
5531 ("librsvg" ,librsvg)
5532 ("xf86-input-wacom" ,xf86-input-wacom)
5533 ("wayland" ,wayland)
5534 ("network-manager" ,network-manager)
5535 ("gcr" ,gcr)
5536 ("modem-manager" ,modem-manager)))
5537 (home-page "https://www.gnome.org")
5538 (synopsis "GNOME settings daemon")
5539 (description
5540 "This package contains the daemon responsible for setting the various
5541 parameters of a GNOME session and the applications that run under it. It
5542 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5543 settings, themes, mouse settings, and startup of other daemons.")
5544 (license license:gpl2+)))
5545
5546 (define-public totem-pl-parser
5547 (package
5548 (name "totem-pl-parser")
5549 (version "3.26.5")
5550 (source (origin
5551 (method url-fetch)
5552 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5553 (version-major+minor version) "/"
5554 "totem-pl-parser-" version ".tar.xz"))
5555 (sha256
5556 (base32
5557 "132jihnf51zs98yjkc6jxyqib4f3dawpjm17g4bj4j78y93dww2k"))))
5558 (build-system meson-build-system)
5559 (arguments
5560 ;; FIXME: Tests require gvfs.
5561 `(#:tests? #f))
5562 (native-inputs
5563 `(("intltool" ,intltool)
5564 ("glib" ,glib "bin")
5565 ("gobject-introspection" ,gobject-introspection)
5566 ("pkg-config" ,pkg-config)))
5567 (propagated-inputs
5568 `(("glib" ,glib)
5569 ("gmime" ,gmime)
5570 ("libarchive" ,libarchive)
5571 ("libgcrypt" ,libgcrypt)
5572 ("libxml2" ,libxml2)))
5573 (inputs
5574 `(("libsoup" ,libsoup)))
5575 (home-page "https://projects.gnome.org/totem")
5576 (synopsis "Library to parse and save media playlists for GNOME")
5577 (description "Totem-pl-parser is a GObjects-based library to parse and save
5578 playlists in a variety of formats.")
5579 (license license:lgpl2.0+)))
5580
5581 (define-public aisleriot
5582 (package
5583 (name "aisleriot")
5584 (version "3.22.9")
5585 (source (origin
5586 (method url-fetch)
5587 (uri (string-append "mirror://gnome/sources/aisleriot/"
5588 (version-major+minor version) "/"
5589 "aisleriot-" version ".tar.xz"))
5590 (sha256
5591 (base32
5592 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5593 (build-system glib-or-gtk-build-system)
5594 (arguments
5595 '(#:configure-flags
5596 '("--with-platform=gtk-only"
5597 "--with-card-theme-formats=svg")))
5598 (native-inputs
5599 `(("desktop-file-utils" ,desktop-file-utils)
5600 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5601 ("intltool" ,intltool)
5602 ("itstool" ,itstool)
5603 ("pkg-config" ,pkg-config)
5604 ("xmllint" ,libxml2)))
5605 (inputs
5606 `(("gtk+" ,gtk+)
5607 ("guile" ,guile-2.2)
5608 ("libcanberra" ,libcanberra)
5609 ("librsvg" ,librsvg)))
5610 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5611 (synopsis "Solitaire card games")
5612 (description
5613 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5614 which are easy to play with the aid of a mouse.")
5615 (license license:gpl3+)))
5616
5617 (define-public amtk
5618 (package
5619 (name "amtk")
5620 (version "5.0.2")
5621 (source (origin
5622 (method url-fetch)
5623 (uri (string-append "mirror://gnome/sources/amtk/"
5624 (version-major+minor version) "/"
5625 "amtk-" version ".tar.xz"))
5626 (sha256
5627 (base32
5628 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
5629 (build-system gnu-build-system)
5630 (arguments
5631 '(#:configure-flags '("--enable-gtk-doc")))
5632 (native-inputs
5633 `(("gobject-introspection" ,gobject-introspection)
5634 ("glib:bin" ,glib "bin") ; for glib-mkenums
5635 ("gtk-doc" ,gtk-doc)
5636 ("pkg-config" ,pkg-config)))
5637 (inputs
5638 `(("glib" ,glib)
5639 ("gtk+" ,gtk+)))
5640 (home-page "https://wiki.gnome.org/Projects/Amtk")
5641 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5642 (description
5643 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5644 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5645 both a traditional UI or a modern UI with a GtkHeaderBar.")
5646 (license license:lgpl2.1+)))
5647
5648 (define-public devhelp
5649 (package
5650 (name "devhelp")
5651 (version "3.34.0")
5652 (source (origin
5653 (method url-fetch)
5654 (uri (string-append "mirror://gnome/sources/" name "/"
5655 (version-major+minor version) "/"
5656 name "-" version ".tar.xz"))
5657 (sha256
5658 (base32
5659 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
5660 (build-system meson-build-system)
5661 (arguments
5662 '(#:glib-or-gtk? #t
5663 #:phases
5664 (modify-phases %standard-phases
5665 (add-after 'unpack 'skip-gtk-update-icon-cache
5666 ;; Don't create 'icon-theme.cache'.
5667 (lambda _
5668 (substitute* "meson_post_install.py"
5669 (("gtk-update-icon-cache") "true"))
5670 #t)))))
5671 (native-inputs
5672 `(("intltool" ,intltool)
5673 ("itstool" ,itstool)
5674 ("gobject-introspection" ,gobject-introspection)
5675 ("glib:bin" ,glib "bin") ; for glib-mkmenus
5676 ("pkg-config" ,pkg-config)))
5677 (inputs
5678 `(("amtk" ,amtk)
5679 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5680 ("webkitgtk" ,webkitgtk)))
5681 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5682 (synopsis "API documentation browser for GNOME")
5683 (description
5684 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5685 natively with GTK-Doc (the API reference system developed for GTK+ and used
5686 throughout GNOME for API documentation).")
5687 (license license:gpl2+)))
5688
5689 (define-public cogl
5690 (package
5691 (name "cogl")
5692 (version "1.22.8")
5693 (source
5694 (origin
5695 (method url-fetch)
5696 (uri (string-append "mirror://gnome/sources/cogl/"
5697 (version-major+minor version) "/"
5698 "cogl-" version ".tar.xz"))
5699 (sha256
5700 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
5701 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5702 ;; cogl, corresponding changes may be appropriate in mutter as well.
5703 (build-system gnu-build-system)
5704 (native-inputs
5705 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5706 ("gobject-introspection" ,gobject-introspection)
5707 ("xorg-server" ,xorg-server-for-tests)
5708 ("pkg-config" ,pkg-config)))
5709 (propagated-inputs
5710 `(("glib" ,glib)
5711 ("gdk-pixbuf" ,gdk-pixbuf)
5712 ("libx11" ,libx11)
5713 ("libxext" ,libxext)
5714 ("libxfixes" ,libxfixes)
5715 ("libxdamage" ,libxdamage)
5716 ("libxcomposite" ,libxcomposite)
5717 ("libxrandr" ,libxrandr)))
5718 (inputs
5719 `(("mesa" ,mesa)
5720 ("cairo" ,cairo)
5721 ("pango" ,pango)
5722 ("gstreamer" ,gstreamer)
5723 ("gst-plugins-base" ,gst-plugins-base)
5724 ("wayland" ,wayland)))
5725 (arguments
5726 `(#:disallowed-references (,xorg-server-for-tests)
5727 #:configure-flags (list "--enable-cogl-gst"
5728 "--enable-wayland-egl-platform"
5729 "--enable-wayland-egl-server"
5730
5731 ;; Arrange to pass an absolute file name to
5732 ;; dlopen for libGL.so.
5733 (string-append "--with-gl-libname="
5734 (assoc-ref %build-inputs "mesa")
5735 "/lib/libGL.so"))
5736 #:phases
5737 (modify-phases %standard-phases
5738 (add-after 'unpack 'fix-build-with-mesa-20
5739 (lambda _
5740 ;; Work around a problem with Mesa 20 where some macros used by
5741 ;; Cogl went missing from eglext.h. This can likely be removed
5742 ;; for newer versions of Cogl or Mesa.
5743 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5744 (substitute* '("configure"
5745 "cogl/winsys/cogl-winsys-egl-kms.c")
5746 (("#include <EGL/eglext.h>" all)
5747 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5748 #t))
5749 (add-before 'check 'start-xorg-server
5750 (lambda* (#:key tests? inputs #:allow-other-keys)
5751 (if tests?
5752 (begin
5753 ;; The test suite requires a running X server.
5754 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5755 (assoc-ref inputs "xorg-server")))
5756 (setenv "DISPLAY" ":1")
5757 #t)
5758 (format #t "test suite not run~%"))
5759 #t)))))
5760 (home-page "https://www.cogl3d.org")
5761 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5762 (description
5763 "Cogl is a small library for using 3D graphics hardware to draw pretty
5764 pictures. The API departs from the flat state machine style of OpenGL and is
5765 designed to make it easy to write orthogonal components that can render
5766 without stepping on each others toes.")
5767 (license (list license:expat ; most of the code
5768 license:bsd-3 ; cogl/cogl-point-in-poly.c
5769 license:sgifreeb2.0 ; cogl-path/tesselator/
5770 license:asl2.0)))) ; examples/android/
5771
5772 (define-public clutter
5773 (package
5774 (name "clutter")
5775 (version "1.26.2")
5776 (source
5777 (origin
5778 (method url-fetch)
5779 (uri (string-append "mirror://gnome/sources/" name "/"
5780 (version-major+minor version) "/"
5781 name "-" version ".tar.xz"))
5782 (sha256
5783 (base32
5784 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5785 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5786 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5787 (build-system gnu-build-system)
5788 (outputs '("out"
5789 "doc")) ;9 MiB of gtk-doc HTML pages
5790 (native-inputs
5791 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5792 ("gobject-introspection" ,gobject-introspection)
5793 ("pkg-config" ,pkg-config)
5794 ("xsltproc" ,libxslt)))
5795 (propagated-inputs
5796 `(("cogl" ,cogl)
5797 ("cairo" ,cairo)
5798 ("atk" ,atk)
5799 ("gtk+" ,gtk+)
5800 ("json-glib" ,json-glib)
5801 ("glib" ,glib)
5802 ("libxcomposite" ,libxcomposite)
5803 ("libxdamage" ,libxdamage)
5804 ("libxext" ,libxext)
5805 ("xinput" ,xinput)))
5806 (inputs
5807 `(("libxkbcommon" ,libxkbcommon)
5808 ("udev" ,eudev)))
5809 (arguments
5810 `(#:configure-flags (list "--enable-x11-backend=yes"
5811
5812 ;; This produces share/doc/{clutter,cally}.
5813 (string-append "--with-html-dir="
5814 (assoc-ref %outputs "doc")
5815 "/share/doc"))
5816 ;; XXX FIXME: Get test suite working. It would probably fail in the
5817 ;; same way the cogl tests fail, since clutter is based on cogl.
5818 #:tests? #f))
5819 (home-page "http://www.clutter-project.org")
5820 (synopsis "OpenGL-based interactive canvas library")
5821 (description
5822 "Clutter is an OpenGL-based interactive canvas library, designed for
5823 creating fast, mainly 2D single window applications such as media box UIs,
5824 presentations, kiosk style applications and so on.")
5825 (license license:lgpl2.0+)))
5826
5827 (define-public clutter-gtk
5828 (package
5829 (name "clutter-gtk")
5830 (version "1.8.4")
5831 (source
5832 (origin
5833 (method url-fetch)
5834 (uri (string-append "mirror://gnome/sources/" name "/"
5835 (version-major+minor version) "/"
5836 name "-" version ".tar.xz"))
5837 (sha256
5838 (base32
5839 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5840 (build-system gnu-build-system)
5841 (native-inputs
5842 `(("pkg-config" ,pkg-config)
5843 ("gobject-introspection" ,gobject-introspection)))
5844 (propagated-inputs
5845 ;; clutter-gtk.pc refers to all these.
5846 `(("clutter" ,clutter)
5847 ("gtk+" ,gtk+)))
5848 (home-page "http://www.clutter-project.org")
5849 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5850 (description
5851 "Clutter is an OpenGL-based interactive canvas library, designed for
5852 creating fast, mainly 2D single window applications such as media box UIs,
5853 presentations, kiosk style applications and so on.")
5854 (license license:lgpl2.0+)))
5855
5856 (define-public clutter-gst
5857 (package
5858 (name "clutter-gst")
5859 (version "3.0.27")
5860 (source
5861 (origin
5862 (method url-fetch)
5863 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5864 (version-major+minor version) "/"
5865 "clutter-gst-" version ".tar.xz"))
5866 (sha256
5867 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5868 (build-system gnu-build-system)
5869 (native-inputs
5870 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5871 ("pkg-config" ,pkg-config)
5872 ("gobject-introspection" ,gobject-introspection)))
5873 (inputs
5874 `(("clutter" ,clutter)
5875 ("gstreamer" ,gstreamer)
5876 ("gst-plugins-base" ,gst-plugins-base)))
5877 (home-page "http://www.clutter-project.org")
5878 (synopsis "Integration library for using GStreamer with Clutter")
5879 (description
5880 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5881 It provides a GStreamer sink to upload frames to GL and an actor that
5882 implements the ClutterGstPlayer interface using playbin. Clutter is an
5883 OpenGL-based interactive canvas library.")
5884 (license license:lgpl2.0+)))
5885
5886 (define-public libchamplain
5887 (package
5888 (name "libchamplain")
5889 (version "0.12.16")
5890 (source (origin
5891 (method url-fetch)
5892 (uri (string-append
5893 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5894 version ".tar.xz"))
5895 (sha256
5896 (base32
5897 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5898 (build-system gnu-build-system)
5899 (arguments '(#:configure-flags '("--enable-vala")))
5900 (native-inputs
5901 `(("gobject-introspection" ,gobject-introspection)
5902 ("pkg-config" ,pkg-config)
5903 ("vala" ,vala)))
5904 (propagated-inputs
5905 `(("libsoup" ,libsoup)
5906 ("sqlite" ,sqlite)
5907 ("clutter" ,clutter)
5908 ("clutter-gtk" ,clutter-gtk)
5909 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5910 ("cairo" ,cairo)
5911 ("gtk+3" ,gtk+)
5912 ("glib" ,glib)))
5913 (home-page "https://projects.gnome.org/libchamplain/")
5914 (synopsis "C library providing a ClutterActor to display maps")
5915 (description
5916 "libchamplain is a C library providing a ClutterActor to display maps.
5917 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5918 and Perl bindings are also available. It supports numerous free map sources
5919 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5920 (license license:lgpl2.1+)))
5921
5922 (define-public gom
5923 (package
5924 (name "gom")
5925 (version "0.3.2")
5926 (source
5927 (origin
5928 (method url-fetch)
5929 (uri (string-append "mirror://gnome/sources/gom/"
5930 (version-major+minor version) "/"
5931 "gom-" version ".tar.xz"))
5932 (sha256
5933 (base32
5934 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5935 (build-system gnu-build-system)
5936 (native-inputs
5937 `(("intltool" ,intltool)
5938 ("pkg-config" ,pkg-config)
5939 ("gobject-introspection" ,gobject-introspection)))
5940 (inputs
5941 `(("glib" ,glib)
5942 ("gdk-pixbuf" ,gdk-pixbuf)
5943 ("sqlite" ,sqlite)))
5944 ;; XXX TODO: Figure out how to run the test suite.
5945 (arguments `(#:tests? #f))
5946 (home-page "https://wiki.gnome.org/Projects/Gom")
5947 (synopsis "Object mapper from GObjects to SQLite")
5948 (description
5949 "Gom provides an object mapper from GObjects to SQLite. It helps you
5950 write applications that need to store structured data as well as make complex
5951 queries upon that data.")
5952 (license license:lgpl2.1+)))
5953
5954 (define-public libgnome-games-support
5955 (package
5956 (name "libgnome-games-support")
5957 (version "1.4.4")
5958 (source (origin
5959 (method url-fetch)
5960 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5961 (version-major+minor version) "/"
5962 "libgnome-games-support-" version ".tar.xz"))
5963 (sha256
5964 (base32
5965 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5966 (build-system gnu-build-system)
5967 (arguments
5968 '(#:phases
5969 (modify-phases %standard-phases
5970 (add-before 'check 'pre-check
5971 (lambda _
5972 ;; Tests require a writable HOME.
5973 (setenv "HOME" (getcwd))
5974 #t)))))
5975 (native-inputs
5976 `(("intltool" ,intltool)
5977 ("pkg-config" ,pkg-config)
5978 ("vala" ,vala)))
5979 (propagated-inputs
5980 ;; Required by libgnome-games-support-1.0.pc
5981 `(("gtk+" ,gtk+)
5982 ("libgee" ,libgee)))
5983 (home-page "https://www.gnome.org/")
5984 (synopsis "Useful functionality shared among GNOME games")
5985 (description
5986 "libgnome-games-support is a small library intended for internal use by
5987 GNOME Games, but it may be used by others.")
5988 (license license:lgpl3+)))
5989
5990 (define-public gnome-klotski
5991 (package
5992 (name "gnome-klotski")
5993 (version "3.34.0")
5994 (source (origin
5995 (method url-fetch)
5996 (uri (string-append "mirror://gnome/sources/" name "/"
5997 (version-major+minor version) "/"
5998 name "-" version ".tar.xz"))
5999 (sha256
6000 (base32
6001 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
6002 (build-system meson-build-system)
6003 (arguments
6004 '(#:glib-or-gtk? #t
6005 #:phases
6006 (modify-phases %standard-phases
6007 (add-after 'unpack 'skip-gtk-update-icon-cache
6008 ;; Don't create 'icon-theme.cache'.
6009 (lambda _
6010 (substitute* "build-aux/meson_post_install.py"
6011 (("gtk-update-icon-cache") (which "true")))
6012 #t)))))
6013 (native-inputs
6014 `(("desktop-file-utils" ,desktop-file-utils)
6015 ("glib:bin" ,glib "bin") ; for glib-compile-resources
6016 ("intltool" ,intltool)
6017 ("itstool" ,itstool)
6018 ("pkg-config" ,pkg-config)
6019 ("vala" ,vala)
6020 ("xmllint" ,libxml2)))
6021 (inputs
6022 `(("gtk+" ,gtk+)
6023 ("libgnome-games-support" ,libgnome-games-support)
6024 ("librsvg" ,librsvg)))
6025 (home-page "https://wiki.gnome.org/Apps/Klotski")
6026 (synopsis "Sliding block puzzles")
6027 (description
6028 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6029 the patterned block to the area bordered by green markers. To do so, you will
6030 need to slide other blocks out of the way. Complete each puzzle in as few moves
6031 as possible!")
6032 (license license:gpl2+)))
6033
6034 (define-public grilo
6035 (package
6036 (name "grilo")
6037 (version "0.3.12")
6038 (source
6039 (origin
6040 (method url-fetch)
6041 (uri (string-append "mirror://gnome/sources/grilo/"
6042 (version-major+minor version) "/"
6043 "grilo-" version ".tar.xz"))
6044 (sha256
6045 (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
6046 (build-system meson-build-system)
6047 (native-inputs
6048 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
6049 ("intltool" ,intltool)
6050 ("pkg-config" ,pkg-config)
6051 ("gobject-introspection" ,gobject-introspection)
6052 ("gtk-doc" ,gtk-doc)
6053 ("vala" ,vala)))
6054 (inputs
6055 `(("cyrus-sasl" ,cyrus-sasl)
6056 ("glib" ,glib)
6057 ("gtk+" ,gtk+)
6058 ("libxml2" ,libxml2)
6059 ("liboauth" ,liboauth)
6060 ("libsoup" ,libsoup)
6061 ("totem-pl-parser" ,totem-pl-parser)))
6062 (native-search-paths
6063 (list (search-path-specification
6064 (variable "GRL_PLUGIN_PATH")
6065 (files (list (string-append "lib/grilo-"
6066 (version-major+minor version)))))))
6067 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6068 (synopsis "Framework for discovering and browsing media")
6069 (description
6070 "Grilo is a framework focused on making media discovery and browsing easy
6071 for application developers.")
6072 (license license:lgpl2.1+)))
6073
6074 (define-public grilo-plugins
6075 (package
6076 (name "grilo-plugins")
6077 (version "0.3.11")
6078 (source
6079 (origin
6080 (method url-fetch)
6081 (uri (string-append "mirror://gnome/sources/" name "/"
6082 (version-major+minor version) "/"
6083 name "-" version ".tar.xz"))
6084 (sha256
6085 (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
6086 (build-system meson-build-system)
6087 (native-inputs
6088 `(("gettext" ,gettext-minimal)
6089 ("glib:bin" ,glib "bin")
6090 ("gtk+:bin" ,gtk+ "bin")
6091 ("itstool" ,itstool)
6092 ("pkg-config" ,pkg-config)))
6093 ;; TODO: ahavi, gstreamer
6094 (inputs
6095 `(("grilo" ,grilo)
6096 ;("gmime" ,gmime) ; unused
6097 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6098 ("gom" ,gom)
6099 ;("gssdp" ,gssdp) ; unused
6100 ;("gupnp" ,gupnp) ; unused
6101 ;("gupnp-av" ,gupnp-av) ; unused
6102 ("json-glib" ,json-glib)
6103 ("avahi" ,avahi)
6104 ("libgdata" ,libgdata)
6105 ("libmediaart" ,libmediaart)
6106 ;("librest" ,rest) ; unused
6107 ("libsoup" ,libsoup)
6108 ("totam-pl-parser" ,totem-pl-parser)
6109 ("tracker" ,tracker))) ; unused because it's too old
6110 (arguments
6111 `(#:glib-or-gtk? #t
6112 ;;Disable lua-factory as it needs missing dependencies
6113 #:configure-flags '("-Denable-lua-factory=no")))
6114 (home-page "https://live.gnome.org/Grilo")
6115 (synopsis "Plugins for the Grilo media discovery library")
6116 (description
6117 "Grilo is a framework focused on making media discovery and browsing easy
6118 for application developers. This package provides plugins for common media
6119 discovery protocols.")
6120 (license license:lgpl2.1+)))
6121
6122 (define-public totem
6123 (package
6124 (name "totem")
6125 (version "3.38.0")
6126 (source
6127 (origin
6128 (method url-fetch)
6129 (uri (string-append "mirror://gnome/sources/totem/"
6130 (version-major+minor version) "/"
6131 "totem-" version ".tar.xz"))
6132 (sha256
6133 (base32
6134 "0bs33ijvxbr2prb9yj4dxglsszslsn9k258n311sld84masz4ad8"))))
6135 (build-system meson-build-system)
6136 (native-inputs
6137 `(("pkg-config" ,pkg-config)
6138 ("desktop-file-utils" ,desktop-file-utils)
6139 ("gettext" ,gettext-minimal)
6140 ("gobject-introspection" ,gobject-introspection)
6141 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
6142 ("itstool" ,itstool)
6143 ("xmllint" ,libxml2)
6144 ("xorg-server" ,xorg-server-for-tests)))
6145 (propagated-inputs
6146 `(("dconf" ,dconf)))
6147 (inputs
6148 `(("gtk+" ,gtk+)
6149 ("gdk-pixbuf" ,gdk-pixbuf)
6150 ("atk" ,atk)
6151 ("cairo" ,cairo)
6152 ("dbus-glib" ,dbus-glib)
6153 ("clutter" ,clutter)
6154 ("clutter-gtk" ,clutter-gtk)
6155 ("clutter-gst" ,clutter-gst)
6156 ("xorgproto" ,xorgproto)
6157 ("libxxf86vm" ,libxxf86vm)
6158 ("libxtst" ,libxtst)
6159 ("libxrandr" ,libxrandr)
6160 ("libxml2" ,libxml2)
6161 ("libsoup" ,libsoup)
6162 ("libpeas" ,libpeas)
6163 ("librsvg" ,librsvg)
6164 ("lirc" ,lirc)
6165 ("gnome-desktop" ,gnome-desktop)
6166 ("gstreamer" ,gstreamer)
6167 ("gst-plugins-base" ,gst-plugins-base)
6168 ("gst-plugins-good" ,gst-plugins-good)
6169 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6170 ("adwaita-icon-theme" ,adwaita-icon-theme)
6171 ("python" ,python)
6172 ("python-pygobject" ,python-pygobject)
6173 ("totem-pl-parser" ,totem-pl-parser)
6174 ("grilo" ,grilo)
6175 ("grilo-plugins" ,grilo-plugins)
6176 ("vala" ,vala)))
6177 (arguments
6178 `(#:glib-or-gtk? #t
6179
6180 ;; Disable automatic GStreamer plugin installation via PackageKit and
6181 ;; all that.
6182 #:configure-flags '("-D" "enable-easy-codec-installation=no"
6183
6184 ;; Do not build .a files for the plugins, it's
6185 ;; completely useless. This saves 2 MiB.
6186 "--default-library" "shared")
6187 #:phases
6188 (modify-phases %standard-phases
6189 (add-after 'unpack 'skip-gtk-update-icon-cache
6190 ;; Don't create 'icon-theme.cache'.
6191 (lambda _
6192 (substitute* "meson_post_install.py"
6193 (("gtk-update-icon-cache") "true"))
6194 #t))
6195 (add-after 'unpack 'patch-failing-test
6196 (lambda _
6197 ;; Work around test failure with GStreamer 1.18, because the test
6198 ;; relies on "und" not being mapped to a particular language:
6199 ;; https://gitlab.gnome.org/GNOME/totem/-/issues/450
6200 (substitute* "src/test-totem.c"
6201 (("und") "nosuchlang"))
6202 #t))
6203 (add-before
6204 'install 'disable-cache-generation
6205 (lambda _
6206 (setenv "DESTDIR" "/")
6207 #t))
6208 (add-before
6209 'check 'pre-check
6210 (lambda _
6211 ;; Tests require a running X server.
6212 (system "Xvfb :1 &")
6213 (setenv "DISPLAY" ":1")
6214 #t))
6215 (add-after
6216 'install 'wrap-totem
6217 (lambda* (#:key inputs outputs #:allow-other-keys)
6218 (let ((out (assoc-ref outputs "out"))
6219 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6220 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6221 (wrap-program (string-append out "/bin/totem")
6222 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6223 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6224 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6225 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
6226 #t)))))
6227 (home-page "https://wiki.gnome.org/Apps/Videos")
6228 (synopsis "Simple media player for GNOME based on GStreamer")
6229 (description "Totem is a simple yet featureful media player for GNOME
6230 which can read a large number of file formats.")
6231 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6232 ;; to be used and distributed together with GStreamer and Totem. See
6233 ;; file://COPYING in the source distribution for details.
6234 (license license:gpl2+)))
6235
6236 (define-public rhythmbox
6237 (package
6238 (name "rhythmbox")
6239 (version "3.4.4")
6240 (source (origin
6241 (method url-fetch)
6242 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6243 (version-major+minor version) "/"
6244 "rhythmbox-" version ".tar.xz"))
6245 (sha256
6246 (base32
6247 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6248 (build-system glib-or-gtk-build-system)
6249 (arguments
6250 `(#:configure-flags
6251 (list "--enable-lirc"
6252 "--enable-python"
6253 "--enable-vala"
6254 "--with-brasero"
6255 "--with-gudev"
6256 "--with-libsecret")
6257 #:phases
6258 (modify-phases %standard-phases
6259 (add-after
6260 'install 'wrap-rhythmbox
6261 (lambda* (#:key inputs outputs #:allow-other-keys)
6262 (let ((out (assoc-ref outputs "out"))
6263 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6264 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6265 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6266 (python-path (getenv "PYTHONPATH")))
6267 (wrap-program (string-append out "/bin/rhythmbox")
6268 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6269 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6270 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6271 `("PYTHONPATH" ":" prefix (,python-path))))
6272 #t)))))
6273 (propagated-inputs
6274 `(("dconf" ,dconf)))
6275 (native-inputs
6276 `(("itstool" ,itstool)
6277 ("intltool" ,intltool)
6278 ("glib" ,glib "bin")
6279 ("gobject-introspection" ,gobject-introspection)
6280 ("desktop-file-utils" ,desktop-file-utils)
6281 ("pkg-config" ,pkg-config)
6282 ("xmllint" ,libxml2)))
6283 (inputs
6284 `(("json-glib" ,json-glib)
6285 ("tdb" ,tdb)
6286 ("gnome-desktop" ,gnome-desktop)
6287 ("python" ,python)
6288 ("python-pygobject" ,python2-pygobject)
6289 ("vala" ,vala)
6290 ("gmime" ,gmime)
6291 ("adwaita-icon-theme" ,adwaita-icon-theme)
6292 ("grilo" ,grilo)
6293 ("grilo-plugins" ,grilo-plugins)
6294 ("gstreamer" ,gstreamer)
6295 ("gst-plugins-base" ,gst-plugins-base)
6296 ("gst-plugins-good" ,gst-plugins-good)
6297 ("totem-pl-parser" ,totem-pl-parser)
6298 ("libgudev" ,libgudev)
6299 ;;("libmtp" ,libmtp) FIXME: Not detected
6300 ("libsecret" ,libsecret)
6301 ("libsoup" ,libsoup)
6302 ("libnotify" ,libnotify)
6303 ("libpeas" ,libpeas)
6304 ("lirc" ,lirc)
6305 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6306 ;;("clutter" ,clutter)
6307 ;;("clutter-gtk" ,clutter-gtk)
6308 ;;("clutter-gst" ,clutter-gst)
6309 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6310 ("atk" ,atk)
6311 ("pango" ,pango)
6312 ("gtk+" ,gtk+)
6313 ;; TODO:
6314 ;; * libgpod
6315 ;; * mx
6316 ("brasero" ,brasero)))
6317 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6318 (synopsis "Music player for GNOME")
6319 (description "Rhythmbox is a music playing application for GNOME. It
6320 supports playlists, song ratings, and any codecs installed through gstreamer.")
6321 (license license:gpl2+)))
6322
6323 (define-public eog
6324 (package
6325 (name "eog")
6326 (version "3.34.1")
6327 (source (origin
6328 (method url-fetch)
6329 (uri (string-append "mirror://gnome/sources/" name "/"
6330 (version-major+minor version) "/"
6331 name "-" version ".tar.xz"))
6332 (sha256
6333 (base32
6334 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
6335 (build-system meson-build-system)
6336 (arguments
6337 `(#:configure-flags
6338 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6339 (list (string-append "-Dc_link_args=-Wl,-rpath="
6340 (assoc-ref %outputs "out") "/lib/eog"))
6341 #:phases
6342 (modify-phases %standard-phases
6343 (add-after 'unpack 'skip-gtk-update-icon-cache
6344 ;; Don't create 'icon-theme.cache'.
6345 (lambda _
6346 (substitute* "meson_post_install.py"
6347 (("gtk-update-icon-cache") "true"))
6348 #t))
6349 (add-after 'install 'wrap-eog
6350 (lambda* (#:key outputs #:allow-other-keys)
6351 (let ((out (assoc-ref outputs "out"))
6352 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6353 (wrap-program (string-append out "/bin/eog")
6354 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6355 #t)))))
6356 (propagated-inputs
6357 `(("dconf" ,dconf)))
6358 (native-inputs
6359 `(("intltool" ,intltool)
6360 ("itstool" ,itstool)
6361 ("glib" ,glib "bin")
6362 ("gobject-introspection" ,gobject-introspection)
6363 ("pkg-config" ,pkg-config)
6364 ("xmllint" ,libxml2)))
6365 (inputs
6366 `(("gnome-desktop" ,gnome-desktop)
6367 ("shared-mime-info" ,shared-mime-info)
6368 ("adwaita-icon-theme" ,adwaita-icon-theme)
6369 ("exempi" ,exempi)
6370 ("lcms" ,lcms)
6371 ("libexif" ,libexif)
6372 ("libpeas" ,libpeas)
6373 ("libjpeg" ,libjpeg-turbo)
6374 ("librsvg" ,librsvg-next)
6375 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6376 ("gtk+" ,gtk+)))
6377 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6378 (synopsis "GNOME image viewer")
6379 (description "Eye of GNOME is the GNOME image viewer. It
6380 supports image conversion, rotation, and slideshows.")
6381 (license license:gpl2+)))
6382
6383 (define-public eog-plugins
6384 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6385 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
6386 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6387 ;; 'XDG_DATA_DIRS' appropriately set.
6388 (package
6389 (name "eog-plugins")
6390 (version "3.26.4")
6391 (source (origin
6392 (method url-fetch)
6393 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6394 (version-major+minor version) "/"
6395 "eog-plugins-" version ".tar.xz"))
6396 (sha256
6397 (base32
6398 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
6399 (build-system gnu-build-system)
6400 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6401 (synopsis "Extensions for the Eye of GNOME image viewer")
6402 (native-inputs
6403 `(("pkg-config" ,pkg-config)
6404 ("gettext" ,gettext-minimal)))
6405 (inputs
6406 `(("eog" ,eog)
6407 ("glib" ,glib)
6408 ("gtk+" ,gtk+)
6409 ("libpeas" ,libpeas)
6410 ("libexif" ,libexif)
6411 ("libchamplain" ,libchamplain)))
6412 (description
6413 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6414 notably:
6415
6416 @itemize
6417 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6418 @item @dfn{Map}, which displays a map of where the picture was taken on the
6419 side panel;
6420 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6421 @end itemize\n")
6422
6423 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6424 ;; long suspicious byte stream that goes to a
6425 ;; ".gresource.eog_postasa_plugin" ELF section.
6426 (license license:gpl2+)))
6427
6428 (define-public libgudev
6429 (package
6430 (name "libgudev")
6431 (version "232")
6432 (source (origin
6433 (method url-fetch)
6434 (uri (string-append "mirror://gnome/sources/" name "/"
6435 version "/" name "-" version ".tar.xz"))
6436 (sha256
6437 (base32
6438 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
6439 (build-system gnu-build-system)
6440 (arguments
6441 '(#:configure-flags
6442 ;; umockdev depends on libgudev.
6443 (list "--disable-umockdev")))
6444 (native-inputs
6445 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6446 ("gobject-introspection" ,gobject-introspection)
6447 ("pkg-config" ,pkg-config)))
6448 (propagated-inputs
6449 `(("glib" ,glib))) ; required by gudev-1.0.pc
6450 (inputs
6451 `(("udev" ,eudev)))
6452 (home-page "https://wiki.gnome.org/Projects/libgudev")
6453 (synopsis "GObject bindings for libudev")
6454 (description
6455 "This library provides GObject bindings for libudev. It was originally
6456 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6457 (license license:lgpl2.1+)))
6458
6459 (define-public gvfs
6460 (package
6461 (name "gvfs")
6462 (version "1.40.2")
6463 (source (origin
6464 (method url-fetch)
6465 (uri (string-append "mirror://gnome/sources/gvfs/"
6466 (version-major+minor version) "/"
6467 "gvfs-" version ".tar.xz"))
6468 (sha256
6469 (base32
6470 "07lpcfric3h0302n9b1pwa38mjb76r9s98kg2867y2d1qvzfivxx"))
6471 ;; This patch may be removed when upgrading to version 1.46.x.
6472 (patches
6473 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
6474 (build-system meson-build-system)
6475 (arguments
6476 '(#:glib-or-gtk? #t
6477 #:configure-flags
6478 (list "-Dsystemduserunitdir=no"
6479 "-Dtmpfilesdir=no"
6480 ;; Otherwise, the RUNPATH will lack the final path component.
6481 (string-append "-Dc_link_args=-Wl,-rpath="
6482 (assoc-ref %outputs "out") "/lib/gvfs"))))
6483 (native-inputs
6484 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6485 ("gettext" ,gettext-minimal)
6486 ("gtk-doc" ,gtk-doc)
6487 ("pkg-config" ,pkg-config)
6488 ("xsltproc" ,libxslt)))
6489 (inputs
6490 `(("avahi" ,avahi)
6491 ("docbook-xml" ,docbook-xml-4.2)
6492 ("docbook-xsl" ,docbook-xsl)
6493 ("dbus" ,dbus)
6494 ("elogind" ,elogind)
6495 ("fuse" ,fuse)
6496 ("gcr" ,gcr)
6497 ("glib" ,glib)
6498 ("gnome-online-accounts" ,gnome-online-accounts)
6499 ("libarchive" ,libarchive)
6500 ("libbluray" ,libbluray)
6501 ("libcap" ,libcap)
6502 ("libcdio-paranoia" ,libcdio-paranoia)
6503 ("libgcrypt" ,libgcrypt)
6504 ("libgdata" ,libgdata)
6505 ("libgphoto2" ,libgphoto2)
6506 ("libgudev" ,libgudev)
6507 ("libimobiledevice" ,libimobiledevice)
6508 ("libmtp" ,libmtp)
6509 ("libnfs" ,libnfs)
6510 ("libsecret" ,libsecret)
6511 ("libsmbclient" ,samba)
6512 ("libsoup" ,libsoup)
6513 ("libxml2" ,libxml2)
6514 ("openssh" ,openssh)
6515 ("polkit" ,polkit)
6516 ("udisks" ,udisks)))
6517 (home-page "https://wiki.gnome.org/gvfs/")
6518 (synopsis "Userspace virtual file system for GIO")
6519 (description
6520 "GVFS is a userspace virtual file system designed to work with the I/O
6521 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6522 to all applications using the GIO API. It also supports exposing the GVFS
6523 mounts to non-GIO applications using FUSE.
6524
6525 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6526 DAV, and others.")
6527 (license license:lgpl2.0+)))
6528
6529 (define-public gusb
6530 (package
6531 (name "gusb")
6532 (version "0.3.5")
6533 (source (origin
6534 (method git-fetch)
6535 (uri (git-reference
6536 (url "https://github.com/hughsie/libgusb")
6537 (commit version)))
6538 (file-name (git-file-name name version))
6539 (sha256
6540 (base32
6541 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6542 (build-system meson-build-system)
6543 (native-inputs
6544 `(("gobject-introspection" ,gobject-introspection)
6545 ("pkg-config" ,pkg-config)
6546 ("vala" ,vala)
6547 ("gtk-doc" ,gtk-doc)))
6548 (propagated-inputs
6549 ;; Both of these are required by gusb.pc.
6550 `(("glib" ,glib)
6551 ("libusb" ,libusb)))
6552 (arguments
6553 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
6554 (home-page "https://github.com/hughsie/libgusb")
6555 (synopsis "GLib binding for libusb1")
6556 (description
6557 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6558 asynchronous control, bulk and interrupt transfers with proper cancellation
6559 and integration into a mainloop. This makes it easy to integrate low level
6560 USB transfers with your high-level application or system daemon.")
6561 (license license:lgpl2.1+)))
6562
6563 (define-public simple-scan
6564 (package
6565 (name "simple-scan")
6566 (version "3.38.2")
6567 (source
6568 (origin
6569 (method url-fetch)
6570 (uri (string-append "mirror://gnome/sources/simple-scan/"
6571 (version-major+minor version) "/"
6572 "simple-scan-" version ".tar.xz"))
6573 (sha256
6574 (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8"))))
6575 (build-system meson-build-system)
6576 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6577 (arguments
6578 '(#:glib-or-gtk? #t))
6579 (inputs
6580 `(("gtk" ,gtk+)
6581 ("zlib" ,zlib)
6582 ("cairo" ,cairo)
6583 ("colord" ,colord)
6584 ("gdk-pixbuf" ,gdk-pixbuf)
6585 ("gusb" ,gusb)
6586 ("libsane" ,sane-backends)))
6587 (native-inputs
6588 `(("gettext" ,gettext-minimal)
6589 ("itstool" ,itstool)
6590 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
6591 ("pkg-config" ,pkg-config)
6592 ("vala" ,vala)
6593 ("xmllint" ,libxml2)))
6594 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6595 (synopsis "Document and image scanner")
6596 (description
6597 "Document Scanner is an easy-to-use application that lets you connect your
6598 scanner and quickly capture images and documents in an appropriate format. It
6599 supports any scanner for which a suitable SANE driver is available, which is
6600 almost all of them.")
6601 (license license:gpl3+)))
6602
6603 (define-public eolie
6604 (package
6605 (name "eolie")
6606 (version "0.9.101")
6607 (source (origin
6608 (method url-fetch)
6609 (uri (string-append "https://adishatz.org/eolie/eolie-"
6610 version ".tar.xz"))
6611 (sha256
6612 (base32
6613 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6614 (build-system meson-build-system)
6615 (arguments
6616 `(#:glib-or-gtk? #t
6617 #:phases
6618 (modify-phases %standard-phases
6619 (add-after 'unpack 'skip-gtk-update-icon-cache
6620 ;; Don't create 'icon-theme.cache'.
6621 (lambda _
6622 (substitute* "meson_post_install.py"
6623 (("gtk-update-icon-cache") "true"))
6624 #t))
6625 (add-after 'wrap 'wrap-more
6626 (lambda* (#:key inputs outputs #:allow-other-keys)
6627 (let* ((out (assoc-ref outputs "out"))
6628 ;; These libraries must be on LD_LIBRARY_PATH.
6629 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6630 "atk" "gtk+" "gsettings-desktop-schemas"
6631 "gobject-introspection"))
6632 (path (string-join
6633 (map (lambda (lib)
6634 (string-append (assoc-ref inputs lib) "/lib"))
6635 libs)
6636 ":")))
6637 (wrap-program (string-append out "/bin/eolie")
6638 `("LD_LIBRARY_PATH" ":" prefix (,path))
6639 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6640 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6641 #t)))))
6642 (native-inputs
6643 `(("intltool" ,intltool)
6644 ("itstool" ,itstool)
6645 ("pkg-config" ,pkg-config)
6646 ("python" ,python)
6647 ("glib:bin" ,glib "bin")))
6648 (inputs
6649 `(("gobject-introspection" ,gobject-introspection)
6650 ("glib-networking" ,glib-networking)
6651 ("cairo" ,cairo)
6652 ("gtk+" ,gtk+)
6653 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6654 ("python" ,python-wrapper)
6655 ("python-dateutil" ,python-dateutil)
6656 ("python-pyfxa" ,python-pyfxa)
6657 ("python-pygobject" ,python-pygobject)
6658 ("python-pycairo" ,python-pycairo)
6659 ("python-pycrypto" ,python-pycrypto)
6660 ("libsecret" ,libsecret)
6661 ("gtkspell3" ,gtkspell3)
6662 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6663 ("webkitgtk" ,webkitgtk)))
6664 (home-page "https://wiki.gnome.org/Apps/Eolie")
6665 (synopsis "Web browser for GNOME")
6666 (description
6667 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6668 a secret password store, an adblocker, and a modern UI.")
6669 (license license:gpl3+)))
6670
6671 (define-public epiphany
6672 (package
6673 (name "epiphany")
6674 (version "3.34.4")
6675 (source (origin
6676 (method url-fetch)
6677 (uri (string-append "mirror://gnome/sources/epiphany/"
6678 (version-major+minor version) "/"
6679 "epiphany-" version ".tar.xz"))
6680 (sha256
6681 (base32
6682 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
6683
6684 (build-system meson-build-system)
6685 (arguments
6686 '(#:glib-or-gtk? #t
6687 #:phases
6688 (modify-phases %standard-phases
6689 (add-after 'unpack 'skip-gtk-update-icon-cache
6690 ;; Don't create 'icon-theme.cache'.
6691 (lambda _
6692 (substitute* "post_install.py"
6693 (("gtk-update-icon-cache") "true"))
6694 #t))
6695 (add-after 'unpack 'disable-failing-tests
6696 (lambda _
6697 (substitute* "tests/meson.build"
6698 ;; embed_shell fails, because webkitgtk apparently no longer supports
6699 ;; overriding the ftp schema
6700 ;; web_app_utils fails due to missing network access
6701 (("(embed_shell|web_app_utils)_test,")
6702 "find_program('sh'), args: ['-c', 'exit 77'],"))
6703 #t))
6704 (add-before 'check 'pre-check
6705 (lambda _
6706 ;; Tests require a running X server.
6707 (system "Xvfb :1 &")
6708 (setenv "DISPLAY" ":1")
6709 #t)))
6710 #:configure-flags
6711 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6712 (list (string-append "-Dc_link_args=-Wl,-rpath="
6713 (assoc-ref %outputs "out") "/lib/epiphany"))))
6714 (propagated-inputs
6715 `(("dconf" ,dconf)))
6716 (native-inputs
6717 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6718 ("glib:bin" ,glib "bin") ; for glib-mkenums
6719 ("intltool" ,intltool)
6720 ("itstool" ,itstool)
6721 ("pkg-config" ,pkg-config)
6722 ("xmllint" ,libxml2)
6723 ("xorg-server" ,xorg-server-for-tests)))
6724 (inputs
6725 `(("avahi" ,avahi)
6726 ("gcr" ,gcr)
6727 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
6728 ("glib-networking" ,glib-networking)
6729 ("gnome-desktop" ,gnome-desktop)
6730 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6731 ("json-glib" ,json-glib)
6732 ("iso-codes" ,iso-codes)
6733 ("libdazzle" ,libdazzle)
6734 ("libnotify" ,libnotify)
6735 ("libsecret" ,libsecret)
6736 ("libxslt" ,libxslt)
6737 ("nettle" ,nettle) ; for hogweed
6738 ("sqlite" ,sqlite)
6739 ("webkitgtk" ,webkitgtk)))
6740 (home-page "https://wiki.gnome.org/Apps/Web")
6741 (synopsis "GNOME web browser")
6742 (description
6743 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6744 principles are simplicity and standards compliance.")
6745 (license license:gpl2+)))
6746
6747 (define-public d-feet
6748 (package
6749 (name "d-feet")
6750 (version "0.3.14")
6751 (source (origin
6752 (method url-fetch)
6753 (uri (string-append "mirror://gnome/sources/" name "/"
6754 (version-major+minor version) "/"
6755 name "-" version ".tar.xz"))
6756 (sha256
6757 (base32
6758 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
6759 (build-system glib-or-gtk-build-system)
6760 (arguments
6761 '(#:out-of-source? #f ; tests need to run in the source directory.
6762 #:phases
6763 (modify-phases %standard-phases
6764 (add-before
6765 'check 'pre-check
6766 (lambda _
6767 ;; The test suite requires a running X server.
6768 (system "Xvfb :1 &")
6769 (setenv "DISPLAY" ":1")
6770 ;; Don't fail on missing '/etc/machine-id'.
6771 (setenv "DBUS_FATAL_WARNINGS" "0")
6772 ;; tests.py and window.py don't meet E402:
6773 ;; E402 module level import not at top of file
6774 (substitute* "src/tests/Makefile"
6775 (("--ignore=E123") "--ignore=E123,E402"))
6776 #t))
6777 (add-after
6778 'install 'wrap-program
6779 (lambda* (#:key outputs #:allow-other-keys)
6780 (let ((prog (string-append (assoc-ref outputs "out")
6781 "/bin/d-feet")))
6782 (wrap-program prog
6783 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6784 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6785 #t))))))
6786 (native-inputs
6787 `(("intltool" ,intltool)
6788 ("itstool" ,itstool)
6789 ("pkg-config" ,pkg-config)
6790 ("python-pep8" ,python-pep8)
6791 ("xmllint" ,libxml2)
6792 ("xorg-server" ,xorg-server-for-tests)))
6793 (inputs
6794 `(("gobject-introspection" ,gobject-introspection)
6795 ("gtk+" ,gtk+)
6796 ("python" ,python-wrapper)
6797 ("hicolor-icon-theme" ,hicolor-icon-theme)
6798 ("python-pygobject" ,python-pygobject)))
6799 (home-page "https://wiki.gnome.org/Apps/DFeet")
6800 (synopsis "D-Bus debugger")
6801 (description
6802 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6803 of running programs and invoke methods on those interfaces.")
6804 (license license:gpl2+)))
6805
6806 (define-public yelp-xsl
6807 (package
6808 (name "yelp-xsl")
6809 (version "3.34.2")
6810 (source
6811 (origin
6812 (method url-fetch)
6813 (uri
6814 (string-append "mirror://gnome/sources/" name "/"
6815 (version-major+minor version) "/"
6816 name "-" version ".tar.xz"))
6817 (sha256
6818 (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6819 (build-system gnu-build-system)
6820 (native-inputs
6821 `(("gettext-minimal" ,gettext-minimal)
6822 ("itstool" ,itstool)
6823 ("xmllint" ,libxml2)))
6824 (synopsis "XSL stylesheets for Yelp")
6825 (description "Yelp-XSL is a collection of programs and data files to help
6826 you build, maintain, and distribute documentation. It provides XSLT stylesheets
6827 that can be built upon for help viewers and publishing systems. These
6828 stylesheets output JavaScript and CSS content, and reference images
6829 provided by yelp-xsl. It also redistributes copies of the jQuery and
6830 jQuery.Syntax JavaScript libraries.")
6831 (home-page "https://wiki.gnome.org/Apps/Yelp")
6832 (license
6833 (list
6834 ;; XSLT
6835 license:gpl2+
6836 ;; Images
6837 license:lgpl2.1+
6838 ;; JavaScript
6839 license:expat))))
6840
6841 (define-public yelp
6842 (package
6843 (name "yelp")
6844 (version "3.32.2")
6845 (source (origin
6846 (method url-fetch)
6847 (uri (string-append "mirror://gnome/sources/" name "/"
6848 (version-major+minor version) "/"
6849 name "-" version ".tar.xz"))
6850 (sha256
6851 (base32
6852 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6853 (build-system glib-or-gtk-build-system)
6854 (native-inputs
6855 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6856 ("intltool" ,intltool)
6857 ("itstool" ,itstool)
6858 ("pkg-config" ,pkg-config)))
6859 (propagated-inputs
6860 `(("dconf" ,dconf)))
6861 (inputs
6862 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6863 ("libxslt" ,libxslt)
6864 ("sqlite" ,sqlite)
6865 ("webkitgtk" ,webkitgtk)
6866 ("yelp-xsl" ,yelp-xsl)))
6867 (home-page "https://wiki.gnome.org/Apps/Yelp")
6868 (synopsis "GNOME help browser")
6869 (description
6870 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6871 man, info, and HTML documents. It can locate documents according to the
6872 freedesktop.org help system specification.")
6873 (license license:gpl2+)))
6874
6875 (define-public yelp-tools
6876 (package
6877 (name "yelp-tools")
6878 (version "3.32.2")
6879 (source
6880 (origin
6881 (method url-fetch)
6882 (uri
6883 (string-append "mirror://gnome/sources/" name "/"
6884 (version-major+minor version) "/"
6885 name "-" version ".tar.xz"))
6886 (sha256
6887 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6888 (build-system gnu-build-system)
6889 (native-inputs
6890 `(("pkg-config" ,pkg-config)))
6891 (inputs
6892 `(("yelp-xsl" ,yelp-xsl)))
6893 (propagated-inputs
6894 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6895 `(("itstool" ,itstool)
6896 ("xmllint" ,libxml2)
6897 ("xsltproc" ,libxslt)))
6898 (synopsis "Yelp documentation tools")
6899 (description
6900 "Yelp-tools is a collection of scripts and build utilities to help create,
6901 manage, and publish documentation for Yelp and the web. Most of the heavy
6902 lifting is done by packages like yelp-xsl and itstool. This package just
6903 wraps things up in a developer-friendly way.")
6904 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6905 (license license:gpl2+)))
6906
6907 (define-public libgee
6908 (package
6909 (name "libgee")
6910 (version "0.20.3")
6911 (source (origin
6912 (method url-fetch)
6913 (uri (string-append "mirror://gnome/sources/libgee/"
6914 (version-major+minor version) "/"
6915 "libgee-" version ".tar.xz"))
6916 (sha256
6917 (base32
6918 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6919 (build-system gnu-build-system)
6920 (arguments
6921 `(#:phases
6922 (modify-phases %standard-phases
6923 (add-after 'unpack 'fix-introspection-install-dir
6924 (lambda* (#:key outputs #:allow-other-keys)
6925 (let ((out (assoc-ref outputs "out")))
6926 (substitute* "gee/Makefile.in"
6927 (("@INTROSPECTION_GIRDIR@")
6928 (string-append out "/share/gir-1.0/"))
6929 (("@INTROSPECTION_TYPELIBDIR@")
6930 (string-append out "/lib/girepository-1.0/")))))))))
6931 (native-inputs
6932 `(("glib" ,glib "bin")
6933 ("pkg-config" ,pkg-config)))
6934 (inputs
6935 `(("glib" ,glib)
6936 ("gobject-introspection" ,gobject-introspection)))
6937 (home-page "https://wiki.gnome.org/Projects/Libgee")
6938 (synopsis "GObject collection library")
6939 (description
6940 "Libgee is a utility library providing GObject-based interfaces and
6941 classes for commonly used data structures.")
6942 (license license:lgpl2.1+)))
6943
6944 (define-public gexiv2
6945 (package
6946 (name "gexiv2")
6947 (version "0.12.2")
6948 (source (origin
6949 (method url-fetch)
6950 (uri (string-append "mirror://gnome/sources/" name "/"
6951 (version-major+minor version) "/"
6952 name "-" version ".tar.xz"))
6953 (sha256
6954 (base32
6955 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
6956 (build-system meson-build-system)
6957 (native-inputs
6958 `(("gcr" ,gcr)
6959 ("glib" ,glib "bin")
6960 ("pkg-config" ,pkg-config)
6961 ("vala" ,vala)))
6962 (propagated-inputs
6963 ;; Listed in "Requires" section of gexiv2.pc
6964 `(("exiv2" ,exiv2)))
6965 (inputs
6966 `(("glib" ,glib)
6967 ("gobject-introspection" ,gobject-introspection)))
6968 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6969 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6970 (description
6971 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6972 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6973 metadata in photo and video files of various formats.")
6974 (license license:gpl2+)))
6975
6976 (define-public shotwell
6977 (package
6978 (name "shotwell")
6979 (version "0.30.11")
6980 (source (origin
6981 (method url-fetch)
6982 (uri (string-append "mirror://gnome/sources/shotwell/"
6983 (version-major+minor version) "/"
6984 "shotwell-" version ".tar.xz"))
6985 (sha256
6986 (base32
6987 "12d26y40kjlv5x8f5g04wff33vh7mdjb8c41ydqbrwdip0jwy2n2"))))
6988 (build-system meson-build-system)
6989 (arguments
6990 '(#:glib-or-gtk? #t
6991 #:phases
6992 (modify-phases %standard-phases
6993 (add-after 'unpack 'skip-gtk-update-icon-cache
6994 (lambda _
6995 (substitute* "build-aux/meson/postinstall.py"
6996 (("gtk-update-icon-cache") (which "true"))
6997 (("update-desktop-database") (which "true")))
6998 #t)))))
6999 (propagated-inputs
7000 `(("dconf" ,dconf)))
7001 (native-inputs
7002 `(("gettext" ,gettext-minimal)
7003 ("glib:bin" ,glib "bin")
7004 ("itstool" ,itstool)
7005 ("pkg-config" ,pkg-config)
7006 ("vala" ,vala)))
7007 (inputs
7008 `(("gcr" ,gcr)
7009 ("gexiv2" ,gexiv2)
7010 ("gst-plugins-base" ,gst-plugins-base)
7011 ("gstreamer" ,gstreamer)
7012 ("json-glib" ,json-glib)
7013 ("libgdata" ,libgdata)
7014 ("libgee" ,libgee)
7015 ("libgphoto2" ,libgphoto2)
7016 ("libgudev" ,libgudev)
7017 ("libraw" ,libraw)
7018 ("libsoup" ,libsoup)
7019 ("libxml2" ,libxml2)
7020 ("sqlite" ,sqlite)
7021 ("webkitgtk" ,webkitgtk)))
7022 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7023 (synopsis "Photo manager for GNOME 3")
7024 (description
7025 "Shotwell is a digital photo manager designed for the GNOME desktop
7026 environment. It allows you to import photos from disk or camera, organize
7027 them by keywords and events, view them in full-window or fullscreen mode, and
7028 share them with others via social networking and more.")
7029 (license license:lgpl2.1+)))
7030
7031 (define-public file-roller
7032 (package
7033 (name "file-roller")
7034 (version "3.38.0")
7035 (source (origin
7036 (method url-fetch)
7037 (uri (string-append "mirror://gnome/sources/file-roller/"
7038 (version-major+minor version) "/"
7039 "file-roller-" version ".tar.xz"))
7040 (sha256
7041 (base32
7042 "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj"))))
7043 (build-system meson-build-system)
7044 (native-inputs
7045 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7046 ("intltool" ,intltool)
7047 ("itstool" ,itstool)
7048 ("pkg-config" ,pkg-config)
7049 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7050 ("glib:bin" ,glib "bin")))
7051 ;; TODO: Add libnautilus.
7052 (inputs
7053 `(("gtk+" ,gtk+)
7054 ("gdk-pixbuf" ,gdk-pixbuf)
7055 ("json-glib" ,json-glib)
7056 ("libarchive" ,libarchive)
7057 ("libnotify" ,libnotify)
7058 ("nettle" ,nettle)
7059 ("libxml2" ,libxml2)))
7060 (synopsis "Graphical archive manager for GNOME")
7061 (description "File Roller is an archive manager for the GNOME desktop
7062 environment that allows users to view, unpack, and create compressed archives
7063 such as gzip tarballs.")
7064 (home-page "http://fileroller.sourceforge.net/")
7065 (license license:gpl2+)))
7066
7067 (define-public gnome-session
7068 (package
7069 (name "gnome-session")
7070 (version "3.34.2")
7071 (source (origin
7072 (method url-fetch)
7073 (uri (string-append "mirror://gnome/sources/" name "/"
7074 (version-major+minor version) "/"
7075 name "-" version ".tar.xz"))
7076 (sha256
7077 (base32
7078 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
7079 (arguments
7080 '(#:glib-or-gtk? #t
7081 #:phases
7082 (modify-phases %standard-phases
7083 (add-before 'configure 'pre-configure
7084 (lambda* (#:key outputs #:allow-other-keys)
7085 ;; Use elogind instead of systemd.
7086 (substitute* "meson.build"
7087 (("libsystemd-login") "libelogind")
7088 (("and libsystemd_daemon_dep.found.*") ","))
7089 (substitute* "gnome-session/gsm-systemd.c"
7090 (("#include <systemd/sd-login.h>")
7091 "#include <elogind/sd-login.h>"))
7092 ;; Remove uses of the systemd daemon.
7093 (substitute* "gnome-session/gsm-autostart-app.c"
7094 (("#ifdef HAVE_SYSTEMD") "#if 0"))
7095 #t))
7096 (add-after 'install 'wrap-gnome-session
7097 (lambda* (#:key inputs outputs #:allow-other-keys)
7098 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7099 (let ((glib (assoc-ref inputs "glib:bin"))
7100 (out (assoc-ref outputs "out")))
7101 (wrap-program (string-append out "/bin/gnome-session")
7102 `("PATH" ":" prefix (,(string-append glib "/bin"))))
7103 #t))))
7104
7105 #:configure-flags
7106 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7107 "-Dman=false" ; FIXME: disabled because of docbook validation error
7108 "-Dsystemd_journal=false")))
7109 (build-system meson-build-system)
7110 (native-inputs
7111 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7112 ("pkg-config" ,pkg-config)
7113 ("intltool" ,intltool)
7114 ("xsltproc" ,libxslt)
7115 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
7116 ("docbook-xsl" ,docbook-xsl)
7117 ("docbook-xml" ,docbook-xml)
7118 ("xmlto" ,xmlto)))
7119 (inputs
7120 `(("elogind" ,elogind)
7121 ("gnome-desktop" ,gnome-desktop)
7122 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7123 ("gtk+" ,gtk+)
7124 ("json-glib" ,json-glib)
7125 ("libsm" ,libsm)
7126 ("libxcomposite" ,libxcomposite)
7127 ("libxtst" ,libxtst)
7128 ("mesa" ,mesa)
7129 ("upower" ,upower)
7130 ("xtrans" ,xtrans)))
7131 (synopsis "Session manager for GNOME")
7132 (description
7133 "This package contains the GNOME session manager, as well as a
7134 configuration program to choose applications starting on login.")
7135 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7136 (license license:gpl2+)))
7137
7138 (define-public gjs
7139 (package
7140 (name "gjs")
7141 (version "1.58.3")
7142 (source (origin
7143 (method url-fetch)
7144 (uri (string-append "mirror://gnome/sources/" name "/"
7145 (version-major+minor version) "/"
7146 name "-" version ".tar.xz"))
7147 (sha256
7148 (base32
7149 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
7150 (build-system gnu-build-system)
7151 (arguments
7152 '(#:phases
7153 (modify-phases %standard-phases
7154 (add-before
7155 'check 'pre-check
7156 (lambda _
7157 ;; The test suite requires a running X server.
7158 (system "Xvfb :1 &")
7159 (setenv "DISPLAY" ":1")
7160
7161 ;; For the missing /etc/machine-id.
7162 (setenv "DBUS_FATAL_WARNINGS" "0")
7163
7164 ;; Our mozjs-38 package does not compile the required Intl API
7165 ;; support for these failing tests.
7166 (substitute* "installed-tests/js/testLocale.js"
7167 ((".*toBeDefined.*") "")
7168 ((".*expect\\(datestr\\).*") ""))
7169 (substitute* "installed-tests/scripts/testCommandLine.sh"
7170 (("Valentín") "")
7171 (("☭") ""))
7172 #t)))))
7173 (native-inputs
7174 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
7175 ("pkg-config" ,pkg-config)
7176 ("xmllint" ,libxml2)
7177 ;; For testing
7178 ("dbus-launch" ,dbus)
7179 ("dconf" ,dconf) ; required to properly store settings
7180 ("uuidgen" ,util-linux)
7181 ("xvfb" ,xorg-server-for-tests)))
7182 (propagated-inputs
7183 ;; These are all in the Requires.private field of gjs-1.0.pc.
7184 `(("cairo" ,cairo)
7185 ("gobject-introspection" ,gobject-introspection)
7186 ("mozjs" ,mozjs-60)))
7187 (inputs
7188 `(("gtk+" ,gtk+)
7189 ("readline" ,readline)))
7190 (synopsis "Javascript bindings for GNOME")
7191 (home-page "https://live.gnome.org/Gjs")
7192 (description
7193 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7194 javascript engine and the GObject introspection framework.")
7195 (license license:gpl2+)))
7196
7197 (define-public gedit
7198 (package
7199 (name "gedit")
7200 (version "3.34.1")
7201 (source (origin
7202 (method url-fetch)
7203 (uri (string-append "mirror://gnome/sources/" name "/"
7204 (version-major+minor version) "/"
7205 name "-" version ".tar.xz"))
7206 (sha256
7207 (base32
7208 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
7209 (build-system meson-build-system)
7210 (arguments
7211 `(#:glib-or-gtk? #t
7212 #:configure-flags
7213 ;; Otherwise, the RUNPATH will lack the final path component.
7214 (list (string-append "-Dc_link_args=-Wl,-rpath="
7215 (assoc-ref %outputs "out") "/lib/gedit"))
7216
7217 ;; XXX: Generated .h files are sometimes used before being built.
7218 #:parallel-build? #f
7219
7220 #:phases
7221 (modify-phases %standard-phases
7222 (add-after 'unpack 'skip-gtk-update-icon-cache
7223 ;; Don't create 'icon-theme.cache'.
7224 (lambda _
7225 (substitute* "build-aux/meson/post_install.py"
7226 (("gtk-update-icon-cache") (which "true")))
7227 #t))
7228 (add-after 'unpack 'patch-libgd-fetch
7229 (lambda* (#:key inputs #:allow-other-keys)
7230 (let ((libgd (assoc-ref inputs "libgd")))
7231 ;; Calling git is unnecessary because libgd is fetched as a
7232 ;; native input to this package.
7233 (substitute* "meson.build"
7234 ((".*git.*") ""))
7235 (copy-recursively libgd "subprojects/libgd")
7236 #t)))
7237 (add-after 'install 'wrap-gedit
7238 (lambda* (#:key inputs outputs #:allow-other-keys)
7239 (let ((out (assoc-ref outputs "out"))
7240 (gtksourceview (assoc-ref inputs "gtksourceview"))
7241 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7242 (python-path (getenv "PYTHONPATH")))
7243 (wrap-program (string-append out "/bin/gedit")
7244 ;; For plugins.
7245 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7246 `("PYTHONPATH" ":" prefix (,python-path))
7247 ;; For language-specs.
7248 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
7249 "/share")))))
7250 #t)))))
7251 (propagated-inputs
7252 `(("dconf" ,dconf)))
7253 (native-inputs
7254 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7255 ("intltool" ,intltool)
7256 ("itstool" ,itstool)
7257 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7258 ("gobject-introspection" ,gobject-introspection)
7259 ("libgd"
7260 ,(origin
7261 (method git-fetch)
7262 (uri (git-reference
7263 (url "https://gitlab.gnome.org/GNOME/libgd")
7264 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
7265 (file-name (git-file-name "libgd" version))
7266 (sha256
7267 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
7268 ("pkg-config" ,pkg-config)))
7269 (inputs
7270 `(("glib" ,glib)
7271 ("gspell" ,gspell)
7272 ("gtk+" ,gtk+)
7273 ("gtksourceview" ,gtksourceview)
7274 ("libpeas" ,libpeas)
7275 ("libxml2" ,libxml2)
7276 ("iso-codes" ,iso-codes)
7277 ("python-pygobject" ,python-pygobject)
7278 ("python" ,python)
7279 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7280 ("libx11" ,libx11)
7281 ("vala" ,vala)
7282 ("adwaita-icon-theme" ,adwaita-icon-theme)
7283 ("libsoup" ,libsoup)
7284 ("gnome-desktop" ,gnome-desktop)))
7285 (home-page "https://wiki.gnome.org/Apps/Gedit")
7286 (synopsis "GNOME text editor")
7287 (description "While aiming at simplicity and ease of use, gedit is a
7288 powerful general purpose text editor.")
7289 (license license:gpl2+)))
7290
7291 (define-public zenity
7292 (package
7293 (name "zenity")
7294 (version "3.32.0")
7295 (source (origin
7296 (method url-fetch)
7297 (uri (string-append "mirror://gnome/sources/zenity/"
7298 (version-major+minor version) "/"
7299 "zenity-" version ".tar.xz"))
7300 (sha256
7301 (base32
7302 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
7303 (build-system gnu-build-system)
7304 (native-inputs
7305 `(("gettext" ,gettext-minimal)
7306 ("itstool" ,itstool)
7307 ("pkg-config" ,pkg-config)))
7308 (inputs
7309 `(("libnotify" ,libnotify)
7310 ("webkitgtk" ,webkitgtk)))
7311 (synopsis "Display graphical dialog boxes from shell scripts")
7312 (home-page "https://www.gnome.org")
7313 (description
7314 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7315 to display dialog boxes from the commandline and shell scripts.")
7316 (license license:lgpl2.0+)))
7317
7318 (define-public mutter
7319 (package
7320 (name "mutter")
7321 (version "3.34.2")
7322 (source (origin
7323 (method url-fetch)
7324 (uri (string-append "mirror://gnome/sources/" name "/"
7325 (version-major+minor version) "/"
7326 name "-" version ".tar.xz"))
7327 (sha256
7328 (base32
7329 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
7330 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7331 ;; versions of cogl and clutter. As a result, many of the inputs,
7332 ;; propagated-inputs, and configure flags used in cogl and clutter are
7333 ;; needed here as well.
7334 (build-system meson-build-system)
7335 (arguments
7336 '(;; XXX: All mutter tests fail with the following error:
7337 ;; Settings schema 'org.gnome.mutter' is not installed
7338 #:tests? #f
7339 #:glib-or-gtk? #t
7340 #:configure-flags
7341 ;; TODO: Enable profiler when Sysprof is packaged.
7342 (list "-Dprofiler=false"
7343 ;; Otherwise, the RUNPATH will lack the final path component.
7344 (string-append "-Dc_link_args=-Wl,-rpath="
7345 (assoc-ref %outputs "out") "/lib:"
7346 (assoc-ref %outputs "out") "/lib/mutter-5")
7347
7348 ;; The following flags are needed for the bundled clutter
7349 (string-append "-Dxwayland_path="
7350 (assoc-ref %build-inputs "xorg-server-xwayland")
7351 "/bin/Xwayland")
7352
7353 ;; the remaining flags are needed for the bundled cogl
7354 (string-append "-Dopengl_libname="
7355 (assoc-ref %build-inputs "mesa")
7356 "/lib/libGL.so"))
7357 #:phases (modify-phases %standard-phases
7358 (add-after 'unpack 'fix-build-with-mesa-20
7359 (lambda _
7360 ;; Mimic upstream commit a444a4c5f58ea516ad for
7361 ;; compatibility with Mesa 20. Remove for 3.36.
7362 (substitute* '("src/backends/meta-egl-ext.h"
7363 "src/backends/meta-egl.c"
7364 "src/backends/meta-egl.h")
7365 (("#include <EGL/eglext\\.h>" all)
7366 (string-append all "\n#include <EGL/eglmesaext.h>")))
7367 (substitute* "cogl/cogl/meson.build"
7368 (("#include <EGL/eglext\\.h>" all)
7369 (string-append all "\\n#include <EGL/eglmesaext.h>")))
7370 #t)))))
7371 (native-inputs
7372 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7373 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7374 ("gobject-introspection" ,gobject-introspection)
7375 ("intltool" ,intltool)
7376 ("pkg-config" ,pkg-config)
7377 ("xorg-server" ,xorg-server-for-tests)
7378 ;; For git build
7379 ("autoconf" ,autoconf)
7380 ("automake" ,automake)
7381 ("libtool" ,libtool)))
7382 (propagated-inputs
7383 `(;; libmutter.pc refers to these:
7384 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7385 ("gtk+" ,gtk+)
7386 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7387 ("atk" ,atk)
7388 ("cairo" ,cairo)
7389 ("gdk-pixbuf" ,gdk-pixbuf)
7390 ("glib" ,glib)
7391 ("json-glib" ,json-glib)
7392 ("libinput" ,libinput)
7393 ("libx11" ,libx11)
7394 ("libxcomposite" ,libxcomposite)
7395 ("libxdamage" ,libxdamage)
7396 ("libxext" ,libxext)
7397 ("libxfixes" ,libxfixes)
7398 ("libxkbcommon" ,libxkbcommon)
7399 ("libxrandr" ,libxrandr)
7400 ("mesa" ,mesa)
7401 ("pango" ,pango)
7402 ("udev" ,eudev)
7403 ("xinput" ,xinput)))
7404 (inputs
7405 `(("elogind" ,elogind)
7406 ("gnome-desktop" ,gnome-desktop)
7407 ("gnome-settings-daemon" ,gnome-settings-daemon)
7408 ("libcanberra-gtk" ,libcanberra)
7409 ("libgudev" ,libgudev)
7410 ("libice" ,libice)
7411 ("libsm" ,libsm)
7412 ("libwacom" ,libwacom)
7413 ("libxkbfile" ,libxkbfile)
7414 ("libxrandr" ,libxrandr)
7415 ("libxtst" ,libxtst)
7416 ("pipewire" ,pipewire)
7417 ("startup-notification" ,startup-notification)
7418 ("upower-glib" ,upower)
7419 ("xkeyboard-config" ,xkeyboard-config)
7420 ("xorg-server-xwayland" ,xorg-server-xwayland)
7421 ("zenity" ,zenity)))
7422 (synopsis "Window and compositing manager")
7423 (home-page "https://www.gnome.org")
7424 (description
7425 "Mutter is a window and compositing manager that displays and manages your
7426 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7427 Clutter toolkit with solid window-management logic inherited from the Metacity
7428 window manager.")
7429 (license license:gpl2+)))
7430
7431 (define-public gnome-online-accounts
7432 (package
7433 (name "gnome-online-accounts")
7434 (version "3.36.0")
7435 (source (origin
7436 (method url-fetch)
7437 (uri (string-append "mirror://gnome/sources/" name "/"
7438 (version-major+minor version) "/"
7439 name "-" version ".tar.xz"))
7440 (sha256
7441 (base32
7442 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
7443 (outputs '("out" "lib"))
7444 (build-system glib-or-gtk-build-system)
7445 (arguments
7446 `(#:configure-flags
7447 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7448 #:phases
7449 (modify-phases %standard-phases
7450 (add-before 'configure 'patch-libgoa-output
7451 (lambda* (#:key outputs #:allow-other-keys)
7452 (let ((lib (assoc-ref outputs "lib")))
7453 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7454 (("@prefix@") lib)
7455 (("@exec_prefix@") lib)
7456 (("@libdir@") (string-append lib "/lib"))
7457 (("@includedir@") (string-append lib "/include"))
7458 (("@datadir@") (string-append lib "/share")))
7459 ;; Make sure gobject-introspection knows about the output
7460 ;; too (see <https://bugs.gnu.org/36535>).
7461 (setenv "outputs" "out lib")
7462 #t))))))
7463 (native-inputs
7464 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7465 ("gobject-introspection" ,gobject-introspection)
7466 ("intltool" ,intltool)
7467 ("pkg-config" ,pkg-config)
7468 ("vala" ,vala)
7469 ("xsltproc" ,libxslt)))
7470 (propagated-inputs
7471 `(("glib" ,glib) ; required by goa-1.0.pc
7472 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7473 (inputs
7474 `(("docbook-xsl" ,docbook-xsl)
7475 ("json-glib" ,json-glib)
7476 ("libsecret" ,libsecret)
7477 ("rest" ,rest)
7478 ("webkitgtk" ,webkitgtk)))
7479 (synopsis "Single sign-on framework for GNOME")
7480 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7481 (description
7482 "GNOME Online Accounts provides interfaces so that applications and
7483 libraries in GNOME can access the user's online accounts. It has providers for
7484 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7485 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7486 (license license:lgpl2.0+)))
7487
7488 (define-public evolution-data-server
7489 (package
7490 (name "evolution-data-server")
7491 (version "3.34.2")
7492 (source (origin
7493 (method url-fetch)
7494 (uri (string-append "mirror://gnome/sources/" name "/"
7495 (version-major+minor version) "/"
7496 name "-" version ".tar.xz"))
7497 (patches (search-patches "evolution-data-server-locales.patch"
7498 "evolution-data-server-libical-compat.patch"
7499 "evolution-data-server-CVE-2020-14928.patch"
7500 "evolution-data-server-CVE-2020-16117.patch"))
7501 (sha256
7502 (base32
7503 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
7504 (build-system cmake-build-system)
7505 (arguments
7506 '(#:configure-flags
7507 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7508 (runpaths (map (lambda (s)
7509 (string-append lib "/evolution-data-server/" s))
7510 '("addressbook-backends" "calendar-backends"
7511 "camel-providers" "credential-modules"
7512 "registry-modules"))))
7513 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7514 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7515 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7516 "-DENABLE_VALA_BINDINGS=ON"
7517 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7518 (string-append lib "/evolution-data-server;")
7519 (string-join runpaths ";"))
7520 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
7521 #:phases
7522 (modify-phases %standard-phases
7523 (add-after 'unpack 'disable-failing-tests
7524 (lambda _
7525 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7526 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7527 (delete-file-recursively "tests/book-migration")
7528 (substitute* "tests/CMakeLists.txt"
7529 (("add_subdirectory\\(book-migration\\)") ""))
7530 #t))
7531 (add-after 'unpack 'patch-paths
7532 (lambda _
7533 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7534 "tests/libedata-book/data-test-utils.c"
7535 "tests/libedata-book/test-book-cache-utils.c"
7536 "tests/libedata-cal/test-cal-cache-utils.c")
7537 (("/bin/rm") (which "rm")))
7538 #t))
7539 (add-before 'configure 'dont-override-rpath
7540 (lambda _
7541 (substitute* "CMakeLists.txt"
7542 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7543 ;; Remove it so the configure flag is respected.
7544 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
7545 #t)))))
7546 (native-inputs
7547 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7548 ("gobject-introspection" ,gobject-introspection)
7549 ("gperf" ,gperf)
7550 ("intltool" ,intltool)
7551 ("pkg-config" ,pkg-config)
7552 ("vala" ,vala)
7553 ("python" ,python-wrapper)))
7554 (propagated-inputs
7555 ;; These are all in the Requires field of .pc files.
7556 `(("gtk+" ,gtk+)
7557 ("libical" ,libical)
7558 ("libsecret" ,libsecret)
7559 ("libsoup" ,libsoup)
7560 ("nss" ,nss)
7561 ("sqlite" ,sqlite)))
7562 (inputs
7563 `(("bdb" ,bdb)
7564 ("gcr" ,gcr)
7565 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7566 ("json-glib" ,json-glib)
7567 ("libcanberra" ,libcanberra)
7568 ("libgweather" ,libgweather)
7569 ("mit-krb5" ,mit-krb5)
7570 ("openldap" ,openldap)
7571 ("webkitgtk" ,webkitgtk)))
7572 (synopsis "Store address books and calendars")
7573 (home-page "https://wiki.gnome.org/Apps/Evolution")
7574 (description
7575 "This package provides a unified backend for programs that work with
7576 contacts, tasks, and calendar information. It was originally developed for
7577 Evolution (hence the name), but is now used by other packages as well.")
7578 (license license:lgpl2.0)))
7579
7580 (define-public caribou
7581 (package
7582 (name "caribou")
7583 (version "0.4.21")
7584 (source (origin
7585 (method url-fetch)
7586 (uri (string-append "mirror://gnome/sources/" name "/"
7587 (version-major+minor version) "/"
7588 name "-" version ".tar.xz"))
7589 (sha256
7590 (base32
7591 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7592 (build-system glib-or-gtk-build-system)
7593 (arguments
7594 '(#:phases
7595 (modify-phases %standard-phases
7596 (add-before
7597 'build 'pre-build
7598 (lambda* (#:key outputs #:allow-other-keys)
7599 (let ((out (assoc-ref outputs "out")))
7600 ;; Use absolute shared library path in Caribou-1.0.typelib.
7601 (substitute* "libcaribou/Makefile"
7602 (("--shared-library=libcaribou.so")
7603 (string-append "--shared-library="
7604 out "/lib/libcaribou.so")))
7605 #t)))
7606 (add-after 'install 'wrap-programs
7607 (lambda* (#:key outputs #:allow-other-keys)
7608 (let* ((out (assoc-ref outputs "out"))
7609 (python-path (getenv "PYTHONPATH"))
7610 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7611 (for-each
7612 (lambda (prog)
7613 (wrap-program prog
7614 `("PYTHONPATH" ":" prefix (,python-path))
7615 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7616 (list (string-append out "/bin/caribou-preferences")
7617 (string-append out "/libexec/antler-keyboard"))))
7618 #t)))))
7619 (native-inputs
7620 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7621 ("gobject-introspection" ,gobject-introspection)
7622 ("intltool" ,intltool)
7623 ("pkg-config" ,pkg-config)
7624 ("python" ,python)
7625 ("vala" ,vala)
7626 ("xsltproc" ,libxslt)))
7627 (propagated-inputs
7628 ;; caribou-1.0.pc refers to all these.
7629 `(("libgee" ,libgee)
7630 ("libxklavier" ,libxklavier)
7631 ("libxtst" ,libxtst)
7632 ("gtk+" ,gtk+)))
7633 (inputs
7634 `(("clutter" ,clutter)
7635 ("dconf" ,dconf)
7636 ("gtk+-2" ,gtk+-2)
7637 ("python-pygobject" ,python-pygobject)))
7638 (synopsis "Text entry and UI navigation application")
7639 (home-page "https://wiki.gnome.org/Projects/Caribou")
7640 (description
7641 "Caribou is an input assistive technology intended for switch and pointer
7642 users.")
7643 (license license:lgpl2.1)))
7644
7645 (define-public network-manager
7646 (package
7647 (name "network-manager")
7648 (version "1.24.0")
7649 (source (origin
7650 (method url-fetch)
7651 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7652 (version-major+minor version) "/"
7653 "NetworkManager-" version ".tar.xz"))
7654 (patches (search-patches "network-manager-plugin-path.patch"))
7655 (sha256
7656 (base32
7657 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
7658 (modules '((guix build utils)))
7659 (snippet
7660 '(begin
7661 (substitute* "src/devices/wwan/nm-modem-manager.c"
7662 (("systemd") "elogind"))
7663 #t))))
7664 (build-system meson-build-system)
7665 (outputs '("out"
7666 "doc")) ; 8 MiB of gtk-doc HTML
7667 (arguments
7668 `(#:configure-flags
7669 (let ((out (assoc-ref %outputs "out"))
7670 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7671 "/sbin/dhclient")))
7672 (list
7673 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7674 ;; component.
7675 (string-append "-Dc_link_args=-Wl,-rpath="
7676 out "/lib:"
7677 out "/lib/NetworkManager/" ,version)
7678 "-Dsystemd_journal=false"
7679 "-Dsession_tracking=elogind"
7680 "-Dsuspend_resume=elogind"
7681 "-Dsystemdsystemunitdir=no"
7682 "-Dsession_tracking_consolekit=false"
7683 "-Ddhcpcd=no"
7684 "-Ddhcpcanon=no"
7685 "-Dcrypto=gnutls"
7686 "-Diwd=true"
7687 "-Dlibaudit=yes"
7688 "-Dqt=false"
7689 "-Ddocs=true"
7690 "--sysconfdir=/etc"
7691 "--localstatedir=/var"
7692 (string-append "-Dudev_dir="
7693 out "/lib/udev")
7694 (string-append "-Ddbus_conf_dir="
7695 out "/etc/dbus-1/system.d")
7696
7697 (string-append "-Ddhclient=" dhclient)))
7698 #:phases
7699 (modify-phases %standard-phases
7700 (add-before 'configure 'pre-configure
7701 (lambda _
7702 ;; These tests try to test aspects of network-manager's
7703 ;; functionality within restricted containers, but they don't
7704 ;; cope with being already in the Guix build jail as that jail
7705 ;; lacks some features that they would like to proxy over (like
7706 ;; a /sys mount).
7707 (substitute* "src/platform/tests/meson.build"
7708 ((".*test-address-linux.*") "")
7709 ((".*test-cleanup-linux.*") "")
7710 ((".*test-link-linux.*") "")
7711 ((".*test-route-linux.*") ""))
7712 (substitute* "src/devices/tests/meson.build"
7713 ((".*test-acd.*") "")
7714 ((".*test-lldp.*") ""))
7715 #t))
7716 (add-after 'unpack 'patch-docbook-xml
7717 (lambda* (#:key inputs #:allow-other-keys)
7718 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7719 "/xml/dtd/docbook")))
7720 (substitute* (find-files "." ".*\\.(xsl|xml)")
7721 (("http://.*/docbookx\\.dtd")
7722 (string-append xmldoc "/docbookx.dtd")))
7723 #t)))
7724 (add-before 'check 'pre-check
7725 (lambda _
7726 ;; For the missing /etc/machine-id.
7727 (setenv "DBUS_FATAL_WARNINGS" "0")
7728 #t))
7729 (add-before 'install 'no-polkit-magic
7730 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
7731 (lambda _
7732 (setenv "PKEXEC_UID" "something")
7733 #t))
7734 (add-after 'install 'move-doc
7735 (lambda* (#:key outputs #:allow-other-keys)
7736 (let ((out (assoc-ref outputs "out"))
7737 (doc (assoc-ref outputs "doc")))
7738 (mkdir-p (string-append doc "/share"))
7739 (for-each (lambda (directory)
7740 (copy-recursively (string-append out directory)
7741 (string-append doc directory))
7742 (delete-file-recursively
7743 (string-append out directory)))
7744 '("/share/doc" "/share/gtk-doc"))
7745 #t))))))
7746 (propagated-inputs
7747 `(("glib" ,glib)))
7748 (native-inputs
7749 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7750 ("gtk-doc" ,gtk-doc)
7751 ("gobject-introspection" ,gobject-introspection)
7752 ("docbook-xml" ,docbook-xml)
7753 ("docbook-xsl" ,docbook-xsl)
7754 ("intltool" ,intltool)
7755 ("libxslt" ,libxslt)
7756 ("libxml2" ,libxml2)
7757 ("pkg-config" ,pkg-config)
7758 ("vala" ,vala)
7759 ;; For testing.
7760 ("python" ,python-wrapper)
7761 ("python-dbus" ,python-dbus)
7762 ("python-pygobject" ,python-pygobject)))
7763 (inputs
7764 `(("curl" ,curl)
7765 ("cyrus-sasl" ,cyrus-sasl)
7766 ("dbus-glib" ,dbus-glib)
7767 ("dnsmasq" ,dnsmasq)
7768 ("eudev" ,eudev)
7769 ("gnutls" ,gnutls)
7770 ("iptables" ,iptables)
7771 ("isc-dhcp" ,isc-dhcp)
7772 ("iwd" ,iwd) ; wpa_supplicant alternative
7773 ("jansson" ,jansson)
7774 ("libaudit" ,audit)
7775 ("libgcrypt" ,libgcrypt)
7776 ("libgudev" ,libgudev)
7777 ("libndp" ,libndp)
7778 ("libnl" ,libnl)
7779 ("libsoup" ,libsoup)
7780 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7781 ("modem-manager" ,modem-manager)
7782 ("newt" ,newt) ;for the 'nmtui' console interface
7783 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7784 ("polkit" ,polkit)
7785 ("ppp" ,ppp)
7786 ("readline" ,readline)
7787 ("util-linux" ,util-linux)
7788 ("elogind" ,elogind)))
7789 (synopsis "Network connection manager")
7790 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7791 (description
7792 "NetworkManager is a system network service that manages your network
7793 devices and connections, attempting to keep active network connectivity when
7794 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7795 devices, and provides VPN integration with a variety of different VPN
7796 services.")
7797 ;; “This NetworkManager project consists of the daemon, client tools, and
7798 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7799 ;; GPL-2.0+.”
7800 (license (list license:gpl2+
7801 license:lgpl2.1+))
7802 (properties '((upstream-name . "NetworkManager")))))
7803
7804 (define-public network-manager-openvpn
7805 (package
7806 (name "network-manager-openvpn")
7807 (version "1.8.12")
7808 (source (origin
7809 (method url-fetch)
7810 (uri (string-append
7811 "mirror://gnome/sources/NetworkManager-openvpn/"
7812 (version-major+minor version)
7813 "/NetworkManager-openvpn-" version ".tar.xz"))
7814 (sha256
7815 (base32
7816 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7817 (build-system gnu-build-system)
7818 (arguments
7819 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7820 #:phases
7821 (modify-phases %standard-phases
7822 (add-after 'configure 'patch-path
7823 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7824 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7825 "/sbin/openvpn"))
7826 (modprobe (string-append (assoc-ref inputs "kmod")
7827 "/bin/modprobe"))
7828 (pretty-ovpn (string-append "\"" ovpn "\"")))
7829 (for-each
7830 (lambda (file)
7831 (substitute* file
7832 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7833 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7834 (("\"/sbin/openvpn\"") pretty-ovpn)
7835 (("/sbin/modprobe") modprobe)))
7836 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7837 #t)))))
7838 (native-inputs
7839 `(("pkg-config" ,pkg-config)
7840 ("intltool" ,intltool)))
7841 (inputs
7842 `(("gtk+" ,gtk+)
7843 ("kmod" ,kmod)
7844 ("openvpn" ,openvpn)
7845 ("network-manager" ,network-manager)
7846 ("libnma" ,libnma)
7847 ("libsecret" ,libsecret)))
7848 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7849 (synopsis "OpenVPN plug-in for NetworkManager")
7850 (description
7851 "This extension of NetworkManager allows it to take care of connections
7852 to virtual private networks (VPNs) via OpenVPN.")
7853 (license license:gpl2+)
7854 (properties `((upstream-name . "NetworkManager-openvpn")))))
7855
7856 (define-public network-manager-vpnc
7857 (package
7858 (name "network-manager-vpnc")
7859 (version "1.2.6")
7860 (source (origin
7861 (method url-fetch)
7862 (uri (string-append
7863 "mirror://gnome/sources/NetworkManager-vpnc/"
7864 (version-major+minor version)
7865 "/NetworkManager-vpnc-" version ".tar.xz"))
7866 (sha256
7867 (base32
7868 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7869 (build-system gnu-build-system)
7870 (arguments
7871 `(#:configure-flags '("--enable-absolute-paths"
7872 "--localstatedir=/var"
7873 ;; libnm-glib has been removed from network-manager
7874 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7875 "--with-libnm-glib=no")
7876 #:phases
7877 (modify-phases %standard-phases
7878 (add-after 'configure 'patch-path
7879 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7880 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7881 "/sbin/vpnc"))
7882 (modprobe (string-append (assoc-ref inputs "kmod")
7883 "/bin/modprobe"))
7884 (pretty-ovpn (string-append "\"" vpnc "\"")))
7885 (substitute* "src/nm-vpnc-service.c"
7886 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7887 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7888 (("\"/sbin/vpnc\"") pretty-ovpn)
7889 (("/sbin/modprobe") modprobe)))
7890 #t)))))
7891 (native-inputs
7892 `(("pkg-config" ,pkg-config)
7893 ("intltool" ,intltool)))
7894 (inputs
7895 `(("gtk+" ,gtk+)
7896 ("kmod" ,kmod)
7897 ("vpnc" ,vpnc)
7898 ("network-manager" ,network-manager)
7899 ("libnma" ,libnma)
7900 ("libsecret" ,libsecret)))
7901 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7902 (synopsis "VPNC plug-in for NetworkManager")
7903 (description
7904 "Support for configuring virtual private networks based on VPNC.
7905 Compatible with Cisco VPN concentrators configured to use IPsec.")
7906 (license license:gpl2+)
7907 (properties `((upstream-name . "NetworkManager-vpnc")))))
7908
7909 (define-public network-manager-openconnect
7910 (package
7911 (name "network-manager-openconnect")
7912 (version "1.2.6")
7913 (source (origin
7914 (method url-fetch)
7915 (uri (string-append
7916 "mirror://gnome/sources/NetworkManager-openconnect/"
7917 (version-major+minor version)
7918 "/NetworkManager-openconnect-" version ".tar.xz"))
7919 (sha256
7920 (base32
7921 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7922 (build-system gnu-build-system)
7923 (arguments
7924 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7925 #:phases
7926 (modify-phases %standard-phases
7927 (add-after 'configure 'patch-path
7928 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7929 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7930 "/sbin/openconnect"))
7931 (modprobe (string-append (assoc-ref inputs "kmod")
7932 "/bin/modprobe"))
7933 (pretty-ovpn (string-append "\"" openconnect "\"")))
7934 (substitute* "src/nm-openconnect-service.c"
7935 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7936 (("/sbin/modprobe") modprobe)))
7937 #t)))))
7938 (native-inputs
7939 `(("intltool" ,intltool)
7940 ("libnma" ,libnma)
7941 ("pkg-config" ,pkg-config)))
7942 (inputs
7943 `(("gcr" ,gcr)
7944 ("gtk+" ,gtk+)
7945 ("kmod" ,kmod)
7946 ("libsecret" ,libsecret)
7947 ("libxml2" ,libxml2)
7948 ("lz4" ,lz4)
7949 ("network-manager" ,network-manager)
7950 ("openconnect" ,openconnect)))
7951 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7952 (synopsis "OpenConnect plug-in for NetworkManager")
7953 (description
7954 "This extension of NetworkManager allows it to take care of connections
7955 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7956 Cisco's AnyConnect SSL VPN.")
7957 (license license:gpl2+)
7958 (properties `((upstream-name . "NetworkManager-openconnect")
7959
7960 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7961 ;; file refers to account "nm-openconnect". Specify it here
7962 ;; so that 'network-manager-service-type' creates it.
7963 (user-accounts . ("nm-openconnect"))))))
7964
7965 (define-public mobile-broadband-provider-info
7966 (package
7967 (name "mobile-broadband-provider-info")
7968 (version "20190116")
7969 (source (origin
7970 (method url-fetch)
7971 (uri (string-append
7972 "mirror://gnome/sources/"
7973 "mobile-broadband-provider-info/" version "/"
7974 "mobile-broadband-provider-info-" version ".tar.xz"))
7975 (sha256
7976 (base32
7977 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7978 (build-system gnu-build-system)
7979 (arguments
7980 `(#:tests? #f)) ; no tests
7981 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7982 (synopsis "Database of broadband connection configuration")
7983 (description "Database of broadband connection configuration.")
7984 (license license:public-domain)))
7985
7986 (define-public network-manager-applet
7987 (package
7988 (name "network-manager-applet")
7989 (version "1.20.0")
7990 (source (origin
7991 (method url-fetch)
7992 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7993 (version-major+minor version) "/"
7994 "network-manager-applet-" version ".tar.xz"))
7995 (sha256
7996 (base32
7997 "0lsjkbv66hn7acl2pg9h6hz4b700zzv4cjwrwjvy7043blw0bcla"))))
7998 (build-system meson-build-system)
7999 (arguments
8000 '(#:glib-or-gtk? #t
8001 #:configure-flags
8002 '("-Dappindicator=yes")))
8003 (native-inputs
8004 `(("intltool" ,intltool)
8005 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
8006 ("gobject-introspection" ,gobject-introspection)
8007 ("gtk-doc" ,gtk-doc)
8008 ("pkg-config" ,pkg-config)))
8009 (propagated-inputs
8010 ;; libnm-gtk.pc refers to all these.
8011 `(("dbus-glib" ,dbus-glib)
8012 ("gtk+" ,gtk+)
8013 ("network-manager" ,network-manager)
8014 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8015 ("libnma" ,libnma)))
8016 (inputs
8017 `(("gcr" ,gcr)
8018 ("libappindicator" ,libappindicator)
8019 ("libgudev" ,libgudev)
8020 ("libnotify" ,libnotify)
8021 ("libsecret" ,libsecret)
8022 ("libselinux" ,libselinux)
8023 ("jansson" ,jansson) ; for team support
8024 ("modem-manager" ,modem-manager)))
8025 (synopsis "Applet for managing network connections")
8026 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8027 (description
8028 "This package contains a systray applet for NetworkManager. It displays
8029 the available networks and allows users to easily switch between them.")
8030 (license license:gpl2+)))
8031
8032 (define-public libxml++
8033 (package
8034 (name "libxml++")
8035 (version "3.0.1")
8036 (source (origin
8037 (method url-fetch)
8038 (uri (string-append "mirror://gnome/sources/" name "/"
8039 (version-major+minor version) "/"
8040 name "-" version ".tar.xz"))
8041 (sha256
8042 (base32
8043 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
8044 (build-system gnu-build-system)
8045 ;; libxml++-3.0.pc refers to all these.
8046 (propagated-inputs
8047 `(("libxml2" ,libxml2)
8048 ("glibmm" ,glibmm)))
8049 (native-inputs
8050 `(("perl" ,perl)
8051 ("pkg-config" ,pkg-config)))
8052 (home-page "http://libxmlplusplus.sourceforge.net/")
8053 (synopsis "C++ wrapper for XML parser library libxml2")
8054 (description
8055 "This package provides a C++ wrapper for the XML parser library
8056 libxml2.")
8057 (license license:lgpl2.1+)))
8058
8059 (define-public libxml++-2
8060 (package
8061 (inherit libxml++)
8062 (name "libxml++")
8063 (version "2.40.1")
8064 (source (origin
8065 (method url-fetch)
8066 (uri (string-append "mirror://gnome/sources/" name "/"
8067 (version-major+minor version) "/"
8068 name "-" version ".tar.xz"))
8069 (sha256
8070 (base32
8071 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
8072
8073 (define-public gdm
8074 (package
8075 (name "gdm")
8076 (version "3.34.1")
8077 (source (origin
8078 (method url-fetch)
8079 (uri (string-append "mirror://gnome/sources/" name "/"
8080 (version-major+minor version) "/"
8081 name "-" version ".tar.xz"))
8082 (sha256
8083 (base32
8084 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
8085 (patches (search-patches "gdm-default-session.patch"))))
8086 (build-system glib-or-gtk-build-system)
8087 (arguments
8088 '(#:configure-flags
8089 `("--without-plymouth"
8090 "--disable-systemd-journal"
8091
8092 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8093 ;; instead of having to replace it (i.e., stopping the mingetty
8094 ;; service for TTY 1 before starting GDM).
8095 "--with-initial-vt=7"
8096
8097 ;; Use '/etc/environment' for locale settings instead of the
8098 ;; systemd-specific '/etc/locale.conf'.
8099 "--with-lang-file=/etc/environment"
8100
8101 ,(string-append "--with-udevdir="
8102 (assoc-ref %outputs "out") "/lib/udev")
8103
8104 "--localstatedir=/var"
8105 ,(string-append "--with-default-path="
8106 (string-join '("/run/setuid-programs"
8107 "/run/current-system/profile/bin"
8108 "/run/current-system/profile/sbin")
8109 ":"))
8110 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8111 ;; XDG_DATA_DIRS so that it finds its schemas.
8112 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
8113 #:phases
8114 (modify-phases %standard-phases
8115 (add-before
8116 'configure 'pre-configure
8117 (lambda* (#:key inputs outputs #:allow-other-keys)
8118 ;; We don't have <systemd/sd-daemon.h>.
8119 (substitute* '("common/gdm-log.c"
8120 "daemon/gdm-server.c"
8121 "daemon/gdm-session-worker.c"
8122 "daemon/gdm-session-worker-job.c")
8123 (("#include <systemd/sd-daemon\\.h>") ""))
8124 ;; Use elogind for sd-login.
8125 (substitute* '("common/gdm-common.c"
8126 "daemon/gdm-local-display-factory.c"
8127 "daemon/gdm-manager.c"
8128 "libgdm/gdm-user-switching.c")
8129 (("#include <systemd/sd-login\\.h>")
8130 "#include <elogind/sd-login.h>"))
8131 ;; Check for elogind.
8132 (substitute* '("configure")
8133 (("libsystemd")
8134 "libelogind"))
8135 ;; Look for system-installed sessions in
8136 ;; /run/current-system/profile/share.
8137 (substitute* '("libgdm/gdm-sessions.c"
8138 "daemon/gdm-session.c"
8139 "daemon/gdm-display.c"
8140 "daemon/gdm-launch-environment.c")
8141 (("DATADIR \"/x")
8142 "\"/run/current-system/profile/share/x")
8143 (("DATADIR \"/wayland")
8144 "\"/run/current-system/profile/share/wayland")
8145 (("DATADIR \"/gnome")
8146 "\"/run/current-system/profile/share/gnome"))
8147 (let ((propagate '("GDM_CUSTOM_CONF"
8148 "GDM_DBUS_DAEMON"
8149 "GDM_X_SERVER"
8150 "GDM_X_SESSION"
8151 ;; XXX: Remove this once GNOME Shell is
8152 ;; a dependency of GDM.
8153 "XDG_DATA_DIRS")))
8154 (substitute* "daemon/gdm-session.c"
8155 (("set_up_session_environment \\(self\\);")
8156 (apply string-append
8157 "set_up_session_environment (self);\n"
8158 (map (lambda (name)
8159 (string-append
8160 "gdm_session_set_environment_variable "
8161 "(self, \"" name "\","
8162 "g_getenv (\"" name "\"));\n"))
8163 propagate)))))
8164 ;; Find the configuration file using an environment variable.
8165 (substitute* '("common/gdm-settings.c")
8166 (("GDM_CUSTOM_CONF")
8167 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8168 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8169 " : GDM_CUSTOM_CONF)")))
8170 ;; Use service-supplied path to X.
8171 (substitute* '("daemon/gdm-server.c")
8172 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8173 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8174 (substitute* '("daemon/gdm-wayland-session.c"
8175 "daemon/gdm-x-session.c")
8176 (("\"dbus-daemon\"")
8177 "g_getenv (\"GDM_DBUS_DAEMON\")")
8178 (("X_SERVER")
8179 "g_getenv (\"GDM_X_SERVER\")")
8180 (("GDMCONFDIR \"/Xsession\"")
8181 "g_getenv (\"GDM_X_SESSION\")"))
8182 ;; Use an absolute path for GNOME Session.
8183 (substitute* "daemon/gdm-launch-environment.c"
8184 (("\"gnome-session\"")
8185 (string-append "\"" (assoc-ref inputs "gnome-session")
8186 "/bin/gnome-session\"")))
8187 ;; Do not automatically select the placeholder session.
8188 (substitute* "daemon/gdm-session.c"
8189 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8190 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8191 "(g_strcmp0(search_dirs[i], \""
8192 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
8193 "\") == 0 && "
8194 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8195 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8196 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
8197 #t))
8198 ;; GDM requires that there be at least one desktop entry
8199 ;; file. This phase installs a hidden one that simply
8200 ;; fails. This enables users to use GDM with a
8201 ;; '~/.xsession' script with no other desktop entry files.
8202 ;; See <https://bugs.gnu.org/35068>.
8203 (add-after 'install 'install-placeholder-desktop-entry
8204 (lambda* (#:key inputs outputs #:allow-other-keys)
8205 (let* ((out (assoc-ref outputs "out"))
8206 (sessions (string-append out "/share/gdm/BuiltInSessions"))
8207 (fail (string-append sessions "/fail.desktop")))
8208 (mkdir-p sessions)
8209 (with-output-to-file fail
8210 (lambda ()
8211 (for-each
8212 display
8213 '("[Desktop Entry]\n"
8214 "Encoding=UTF-8\n"
8215 "Type=Application\n"
8216 "Name=Fail\n"
8217 "Comment=This session fails immediately.\n"
8218 "NoDisplay=true\n"
8219 "Exec=false\n"))))
8220 #t)))
8221 ;; GDM needs GNOME Session to run these applications. We link
8222 ;; their autostart files in `share/gdm/greeter/autostart'
8223 ;; because GDM explicitly tells GNOME Session to look there.
8224 ;;
8225 ;; XXX: GNOME Shell should be linked here too, but currently
8226 ;; GNOME Shell depends on GDM.
8227 (add-after 'install 'link-autostart-files
8228 (lambda* (#:key inputs outputs #:allow-other-keys)
8229 (let* ((out (assoc-ref outputs "out"))
8230 (autostart (string-append out "/share/gdm/"
8231 "greeter/autostart"))
8232 (settings (assoc-ref inputs "gnome-settings-daemon")))
8233 (mkdir-p autostart)
8234 (with-directory-excursion autostart
8235 (for-each (lambda (desktop)
8236 (symlink desktop (basename desktop)))
8237 (find-files (string-append settings "/etc/xdg"))))
8238 #t))))))
8239 (native-inputs
8240 `(("dconf" ,dconf)
8241 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8242 ("gobject-introspection" ,gobject-introspection)
8243 ("intltool" ,intltool)
8244 ("itstool" ,itstool)
8245 ("pkg-config" ,pkg-config)
8246 ("xmllint" ,libxml2)))
8247 (inputs
8248 `(("accountsservice" ,accountsservice)
8249 ("check" ,check-0.14) ;for testing
8250 ("elogind" ,elogind)
8251 ("gnome-session" ,gnome-session)
8252 ("gnome-settings-daemon" ,gnome-settings-daemon)
8253 ("gtk+" ,gtk+)
8254 ("iso-codes" ,iso-codes)
8255 ("libcanberra" ,libcanberra)
8256 ("linux-pam" ,linux-pam)))
8257 (synopsis "Display manager for GNOME")
8258 (home-page "https://wiki.gnome.org/Projects/GDM/")
8259 (description
8260 "GNOME Display Manager is a system service that is responsible for
8261 providing graphical log-ins and managing local and remote displays.")
8262 (license license:gpl2+)))
8263
8264 (define-public libgtop
8265 (package
8266 (name "libgtop")
8267 (version "2.40.0")
8268 (source (origin
8269 (method url-fetch)
8270 (uri (string-append "mirror://gnome/sources/libgtop/"
8271 (version-major+minor version) "/"
8272 "libgtop-" version ".tar.xz"))
8273 (sha256
8274 (base32
8275 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8276 (build-system gnu-build-system)
8277 (native-inputs
8278 `(("gobject-introspection" ,gobject-introspection)
8279 ("intltool" ,intltool)
8280 ("perl" ,perl)
8281 ("pkg-config" ,pkg-config)))
8282 (propagated-inputs
8283 `(("glib" ,glib))) ; required by libgtop-2.0.pc
8284 (synopsis "Portable system access library")
8285 (home-page "https://www.gnome.org/")
8286 (description
8287 "LibGTop is a library to get system specific data such as CPU and memory
8288 usage and information about running processes.")
8289 (license license:gpl2+)))
8290
8291 (define-public gnome-bluetooth
8292 (package
8293 (name "gnome-bluetooth")
8294 (version "3.34.2")
8295 (source (origin
8296 (method url-fetch)
8297 (uri (string-append "mirror://gnome/sources/" name "/"
8298 (version-major+minor version) "/"
8299 name "-" version ".tar.xz"))
8300 (sha256
8301 (base32
8302 "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
8303 (build-system meson-build-system)
8304 (native-inputs
8305 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
8306 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8307 ("gobject-introspection" ,gobject-introspection)
8308 ("intltool" ,intltool)
8309 ("pkg-config" ,pkg-config)
8310 ("xmllint" ,libxml2)))
8311 (propagated-inputs
8312 ;; gnome-bluetooth-1.0.pc refers to all these.
8313 `(("glib" ,glib)
8314 ("gtk+" ,gtk+)))
8315 (inputs
8316 `(("eudev" ,eudev)
8317 ("libcanberra" ,libcanberra)
8318 ("libnotify" ,libnotify)))
8319 (synopsis "GNOME Bluetooth subsystem")
8320 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8321 (description
8322 "This package contains tools for managing and manipulating Bluetooth
8323 devices using the GNOME desktop.")
8324 (license license:lgpl2.1+)))
8325
8326 (define-public gnome-control-center
8327 (package
8328 (name "gnome-control-center")
8329 (version "3.34.2")
8330 (source (origin
8331 (method url-fetch)
8332 (uri (string-append "mirror://gnome/sources/" name "/"
8333 (version-major+minor version) "/"
8334 name "-" version ".tar.xz"))
8335 (sha256
8336 (base32
8337 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
8338 (build-system meson-build-system)
8339 (arguments
8340 '(#:glib-or-gtk? #t
8341 #:configure-flags
8342 (list "-Dcheese=false"
8343 (string-append "-Dgnome_session_libexecdir="
8344 (assoc-ref %build-inputs "gnome-session")
8345 "/libexec"))
8346 #:phases
8347 (modify-phases %standard-phases
8348 (add-before 'configure 'patch-paths
8349 (lambda* (#:key inputs #:allow-other-keys)
8350 (let ((libc (assoc-ref inputs "libc"))
8351 (tzdata (assoc-ref inputs "tzdata"))
8352 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
8353 (nm-applet (assoc-ref inputs "network-manager-applet"))
8354 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
8355 (substitute* "panels/datetime/tz.h"
8356 (("/usr/share/zoneinfo/zone.tab")
8357 (string-append tzdata "/share/zoneinfo/zone.tab")))
8358 (substitute* "tests/datetime/test-endianess.c"
8359 (("/usr/share/locale")
8360 (string-append libc "/share/locale")))
8361 (substitute* "panels/region/cc-region-panel.c"
8362 (("\"gkbd-keyboard-display")
8363 (string-append "\"" libgnomekbd
8364 "/bin/gkbd-keyboard-display")))
8365 (substitute* '("panels/network/net-device-wifi.c"
8366 "panels/network/net-device.c"
8367 "panels/network/connection-editor/net-connection-editor.c")
8368 (("\"nm-connection-editor")
8369 (string-append "\"" nm-applet
8370 "/bin/nm-connection-editor")))
8371 (substitute* '("panels/user-accounts/run-passwd.c")
8372 (("/usr/bin/passwd")
8373 "/run/setuid-programs/passwd"))
8374 (substitute* "panels/info/cc-info-overview-panel.c"
8375 (("DATADIR \"/gnome/gnome-version.xml\"")
8376 (string-append "\"" gnome-desktop
8377 "/share/gnome/gnome-version.xml\"")))
8378 #t)))
8379 (add-after 'unpack 'skip-gtk-update-icon-cache
8380 ;; Don't create 'icon-theme.cache'.
8381 (lambda _
8382 (substitute* "build-aux/meson/meson_post_install.py"
8383 (("gtk-update-icon-cache") (which "true")))
8384 #t)))))
8385 (native-inputs
8386 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8387 ("intltool" ,intltool)
8388 ("pkg-config" ,pkg-config)
8389 ("xsltproc" ,libxslt)
8390 ;; For tests
8391 ("hicolor-icon-theme" ,hicolor-icon-theme)
8392 ("python-dbusmock" ,python-dbusmock)
8393 ("xorg-server" ,xorg-server-for-tests)))
8394 (inputs
8395 `(("accountsservice" ,accountsservice)
8396 ("clutter-gtk" ,clutter-gtk)
8397 ("colord-gtk" ,colord-gtk)
8398 ("cups" ,cups)
8399 ("dconf" ,dconf)
8400 ("docbook-xsl" ,docbook-xsl)
8401 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
8402 ("gnome-bluetooth" ,gnome-bluetooth)
8403 ("gnome-desktop" ,gnome-desktop)
8404 ("gnome-online-accounts" ,gnome-online-accounts)
8405 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8406 ("gnome-session" ,gnome-session)
8407 ("gnome-settings-daemon" ,gnome-settings-daemon)
8408 ("grilo" ,grilo)
8409 ("gsound" ,gsound)
8410 ("ibus" ,ibus)
8411 ("libcanberra" ,libcanberra)
8412 ("libgnomekbd" ,libgnomekbd)
8413 ("libgudev" ,libgudev)
8414 ("libgtop" ,libgtop)
8415 ("libnma" ,libnma)
8416 ("libpwquality" ,libpwquality)
8417 ("libsecret" ,libsecret)
8418 ("libsoup" ,libsoup)
8419 ("libxml2" ,libxml2)
8420 ("libwacom" ,libwacom)
8421 ("mesa" ,mesa)
8422 ("mit-krb5" ,mit-krb5)
8423 ("modem-manager" ,modem-manager)
8424 ("network-manager-applet" ,network-manager-applet)
8425 ("polkit" ,polkit)
8426 ("pulseaudio" ,pulseaudio)
8427 ("smbclient" ,samba)
8428 ("tzdata" ,tzdata)
8429 ("udisks" ,udisks)
8430 ("upower" ,upower)))
8431 (synopsis "Utilities to configure the GNOME desktop")
8432 (home-page "https://www.gnome.org/")
8433 (description
8434 "This package contains configuration applets for the GNOME desktop,
8435 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8436 properties, sound setup, desktop theme and background, user interface
8437 properties, screen resolution, and other GNOME parameters.")
8438 (license license:gpl2+)))
8439
8440 (define-public gnome-shell
8441 (package
8442 (name "gnome-shell")
8443 (version "3.34.5")
8444 (source (origin
8445 (method url-fetch)
8446 (uri (string-append "mirror://gnome/sources/" name "/"
8447 (version-major+minor version) "/"
8448 name "-" version ".tar.xz"))
8449 (sha256
8450 (base32
8451 "0l3mdn7g2c22mdhrqkxvvc1pk2w0v32f2v4a6n1phvaalwcg75nj"))
8452 (patches (search-patches "gnome-shell-CVE-2020-17489.patch"
8453 "gnome-shell-theme.patch"
8454 "gnome-shell-disable-test.patch"))
8455 (modules '((guix build utils)))
8456 (snippet
8457 #~(begin
8458 ;; Copy images for use on the GDM log-in screen.
8459 (copy-file #$(file-append %artwork-repository
8460 "/slim/0.x/background.png")
8461 "data/theme/guix-background.png")
8462 (copy-file #$(file-append %artwork-repository
8463 "/logo/Guix-horizontal-white.svg")
8464 "data/theme/guix-logo.svg")
8465 #t))))
8466 (build-system meson-build-system)
8467 (arguments
8468 `(#:glib-or-gtk? #t
8469 #:disallowed-references ((,glib "bin")
8470 ,inkscape ,libxslt
8471 ,ruby-sass)
8472 #:configure-flags
8473 (list "-Dsystemd=false"
8474 ;; Otherwise, the RUNPATH will lack the final path component.
8475 (string-append "-Dc_link_args=-Wl,-rpath="
8476 (assoc-ref %outputs "out")
8477 "/lib/gnome-shell"))
8478
8479 #:modules ((guix build meson-build-system)
8480 (guix build utils)
8481 (srfi srfi-1))
8482
8483 #:phases
8484 (modify-phases %standard-phases
8485 (add-after 'unpack 'fix-keysdir
8486 (lambda* (#:key outputs #:allow-other-keys)
8487 (let* ((out (assoc-ref outputs "out"))
8488 (keysdir (string-append
8489 out "/share/gnome-control-center/keybindings")))
8490 (substitute* "meson.build"
8491 (("keysdir =.*")
8492 (string-append "keysdir = '" keysdir "'\n")))
8493 #t)))
8494 (add-before 'configure 'convert-logo-to-png
8495 (lambda* (#:key inputs #:allow-other-keys)
8496 ;; Convert the logo from SVG to PNG.
8497 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8498 "data/theme/guix-logo.svg")))
8499 (add-before 'configure 'record-absolute-file-names
8500 (lambda* (#:key inputs #:allow-other-keys)
8501 (substitute* "js/misc/ibusManager.js"
8502 (("'ibus-daemon'")
8503 (string-append "'" (assoc-ref inputs "ibus")
8504 "/bin/ibus-daemon'")))
8505 (substitute* "js/ui/status/keyboard.js"
8506 (("'gkbd-keyboard-display'")
8507 (string-append "'" (assoc-ref inputs "libgnomekbd")
8508 "/bin/gkbd-keyboard-display'")))
8509 #t))
8510 (add-before 'check 'pre-check
8511 (lambda* (#:key inputs #:allow-other-keys)
8512 ;; Tests require a running X server.
8513 (system "Xvfb :1 &")
8514 (setenv "DISPLAY" ":1")
8515 #t))
8516 (add-after 'install 'wrap-programs
8517 (lambda* (#:key inputs outputs #:allow-other-keys)
8518 (let ((out (assoc-ref outputs "out"))
8519 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8520 (python-path (getenv "PYTHONPATH")))
8521 (wrap-program (string-append out "/bin/gnome-shell")
8522 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8523 ;; FIXME: gnome-shell loads these libraries with unqualified
8524 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8525 ;; alternative might be to patch gnome-shell.
8526 `("LD_LIBRARY_PATH" ":" prefix
8527 ,(map (lambda (pkg)
8528 (string-append (assoc-ref inputs pkg) "/lib"))
8529 '("gdk-pixbuf"
8530 "gnome-bluetooth" "librsvg" "libgweather"))))
8531 (for-each
8532 (lambda (prog)
8533 (wrap-program (string-append out "/bin/" prog)
8534 `("PYTHONPATH" ":" prefix (,python-path))
8535 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8536 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
8537 #t)))
8538 (replace 'glib-or-gtk-wrap
8539 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8540 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8541 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8542 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8543 ;; phase. Fix that since we don't need these.
8544 (wrap #:inputs (fold alist-delete inputs
8545 '("inkscape" "intltool" "glib:bin"))
8546 #:outputs outputs)))))))
8547 (native-inputs
8548 `(("asciidoc" ,asciidoc)
8549 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8550 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8551 ("gobject-introspection" ,gobject-introspection)
8552 ("inkscape" ,inkscape)
8553 ("intltool" ,intltool)
8554 ("pkg-config" ,pkg-config)
8555 ("python" ,python)
8556 ("ruby-sass" ,ruby-sass)
8557 ("sassc" ,sassc)
8558 ("xsltproc" ,libxslt)
8559 ;; For tests
8560 ("xorg-server" ,xorg-server-for-tests)))
8561 (inputs
8562 `(("accountsservice" ,accountsservice)
8563 ("caribou" ,caribou)
8564 ("docbook-xsl" ,docbook-xsl)
8565 ("evolution-data-server" ,evolution-data-server)
8566 ("gcr" ,gcr)
8567 ("gdm" ,gdm)
8568 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8569 ("gjs" ,gjs)
8570 ("gnome-autoar" ,gnome-autoar)
8571 ("gnome-bluetooth" ,gnome-bluetooth)
8572 ("gnome-desktop" ,gnome-desktop)
8573 ("gnome-settings-daemon" ,gnome-settings-daemon)
8574 ("gst-plugins-base" ,gst-plugins-base)
8575 ("ibus" ,ibus)
8576 ("libcanberra" ,libcanberra)
8577 ("libcroco" ,libcroco)
8578 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
8579 ("libgweather" ,libgweather)
8580 ("libnma" ,libnma)
8581 ("libsoup" ,libsoup)
8582 ("mesa-headers" ,mesa-headers)
8583 ("mutter" ,mutter)
8584 ("network-manager-applet" ,network-manager-applet)
8585 ("polkit" ,polkit)
8586 ("pulseaudio" ,pulseaudio)
8587 ("python-pygobject" ,python-pygobject)
8588 ("startup-notification" ,startup-notification)
8589 ("telepathy-logger" ,telepathy-logger)
8590 ("upower" ,upower)
8591 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8592 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8593 ("librsvg" ,librsvg)
8594 ("geoclue" ,geoclue)))
8595 (synopsis "Desktop shell for GNOME")
8596 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8597 (description
8598 "GNOME Shell provides core user interface functions for the GNOME desktop,
8599 like switching to windows and launching applications.")
8600 (license license:gpl2+)))
8601
8602 (define-public gtk-vnc
8603 (package
8604 (name "gtk-vnc")
8605 (version "1.0.0")
8606 (source
8607 (origin
8608 (method url-fetch)
8609 (uri
8610 (string-append "mirror://gnome/sources/" name "/"
8611 (version-major+minor version) "/"
8612 name "-" version ".tar.xz"))
8613 (sha256
8614 (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
8615 (build-system meson-build-system)
8616 (arguments
8617 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
8618 (native-inputs
8619 `(("gjs" ,gjs)
8620 ("glib:bin" ,glib "bin")
8621 ("gobject-introspection" ,gobject-introspection)
8622 ("intltool" ,intltool)
8623 ("node" ,node)
8624 ("perl" ,perl)
8625 ("pkg-config" ,pkg-config)
8626 ("python" ,python-wrapper)
8627 ("vala" ,vala)))
8628 (inputs
8629 `(("cairo" ,cairo)
8630 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8631 ("glib" ,glib)
8632 ("gnutls" ,gnutls)
8633 ("libgcrypt" ,libgcrypt)
8634 ("libsasl" ,cyrus-sasl)
8635 ("pulseaudio" ,pulseaudio)
8636 ("x11" ,libx11)
8637 ("zlib" ,zlib)))
8638 (propagated-inputs
8639 `(("gtk+" ,gtk+)))
8640 (synopsis "VNC client viewer widget for GTK+")
8641 (description "GTK-VNC is a project providing client side APIs for the RFB
8642 protocol / VNC remote desktop technology. It is built using coroutines allowing
8643 it to be completely asynchronous while remaining single threaded. It provides a
8644 core C library, and bindings for Python (PyGTK).")
8645 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8646 (license license:lgpl2.1+)))
8647
8648 (define-public gnome-autoar
8649 (package
8650 (name "gnome-autoar")
8651 (version "0.3.0")
8652 (source (origin
8653 (method url-fetch)
8654 (uri (string-append "mirror://gnome/sources/" name "/"
8655 (version-major+minor version) "/"
8656 name "-" version ".tar.xz"))
8657 (sha256
8658 (base32
8659 "0ssqckfkyldwld88zizy446y2359rg40lnrcm3sjpjhc2b015hgj"))))
8660 (build-system glib-or-gtk-build-system)
8661 (native-inputs
8662 `(("gobject-introspection" ,gobject-introspection)
8663 ("pkg-config" ,pkg-config)))
8664 (propagated-inputs
8665 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
8666 (inputs
8667 `(("gtk+" ,gtk+)))
8668 (synopsis "Archives integration support for GNOME")
8669 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8670 (description
8671 "GNOME Autoar is a library which makes creating and extracting archives
8672 easy, safe, and automatic.")
8673 (license license:lgpl2.1+)))
8674
8675 (define-public tracker
8676 (package
8677 (name "tracker")
8678 (version "2.3.5")
8679 (source (origin
8680 (method url-fetch)
8681 (uri (string-append "mirror://gnome/sources/tracker/"
8682 (version-major+minor version) "/"
8683 "tracker-" version ".tar.xz"))
8684 (sha256
8685 (base32
8686 "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
8687 (build-system meson-build-system)
8688 (arguments
8689 `(#:glib-or-gtk? #t
8690 #:configure-flags
8691 ;; Otherwise, the RUNPATH will lack the final path component.
8692 (list (string-append "-Dc_link_args=-Wl,-rpath="
8693 (assoc-ref %outputs "out") "/lib:"
8694 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8695 #:phases
8696 (modify-phases %standard-phases
8697 (add-before 'check 'pre-check
8698 (lambda _
8699 ;; Some tests expect to write to $HOME.
8700 (setenv "HOME" "/tmp")
8701 #t)))))
8702 (native-inputs
8703 `(("glib:bin" ,glib "bin")
8704 ("gobject-introspection" ,gobject-introspection)
8705 ("python-pygobject" ,python-pygobject)
8706 ("intltool" ,intltool)
8707 ("pkg-config" ,pkg-config)
8708 ("vala" ,vala)))
8709 (inputs
8710 `(("dbus" ,dbus)
8711 ("sqlite" ,sqlite)
8712 ("libxml2" ,libxml2)
8713 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
8714 ("json-glib" ,json-glib)
8715 ("libsoup" ,libsoup)))
8716 (synopsis "Metadata database, indexer and search tool")
8717 (home-page "https://wiki.gnome.org/Projects/Tracker")
8718 (description
8719 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8720
8721 It is a middleware component aimed at desktop application developers who want
8722 their apps to browse and search user content. It's not designed to be used
8723 directly by desktop users, but it provides a commandline tool named
8724 @command{tracker} for the adventurous.
8725
8726 Tracker allows your application to instantly perform full-text searches across
8727 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8728 example. This is achieved by indexing the user's home directory in the
8729 background.
8730
8731 Tracker also allows your application to query and list content that the user
8732 has stored. For example, GNOME Music displays all the music files that are
8733 found by Tracker. This means that GNOME Music doesn't need to maintain a
8734 database of its own.
8735
8736 If you need to go beyond simple searches, Tracker is also a linked data
8737 endpoint and it understands SPARQL. ")
8738 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
8739 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8740 ;; libstemmer is bsd-3 and the rest is gpl2+.
8741 (license (list license:gpl2+
8742 license:bsd-3
8743 license:lgpl2.1+))))
8744
8745 (define-public tracker-miners
8746 (package
8747 (name "tracker-miners")
8748 (version "2.3.4")
8749 (source (origin
8750 (method url-fetch)
8751 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8752 (version-major+minor version)
8753 "/tracker-miners-" version ".tar.xz"))
8754 (sha256
8755 (base32
8756 "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
8757 (build-system meson-build-system)
8758 (arguments
8759 `(#:glib-or-gtk? #t
8760 #:configure-flags
8761 (list "-Dminer_rss=false" ; libgrss is required.
8762 ;; Ensure the RUNPATH contains all installed library locations.
8763 (string-append "-Dc_link_args=-Wl,-rpath="
8764 (assoc-ref %outputs "out")
8765 "/lib/tracker-miners-2.0")
8766 ;; TODO: Enable functional tests. Currently, the following error
8767 ;; appears:
8768 ;; Exception: The functional tests require DConf to be the default
8769 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8770 "-Dfunctional_tests=false")))
8771 (native-inputs
8772 `(("dbus" ,dbus)
8773 ("intltool" ,intltool)
8774 ("glib:bin" ,glib "bin")
8775 ("gobject-introspection" ,gobject-introspection)
8776 ("pkg-config" ,pkg-config)
8777 ("python-pygobject" ,python-pygobject)))
8778 (inputs
8779 `(("exempi" ,exempi)
8780 ("ffmpeg" ,ffmpeg)
8781 ("flac" ,flac)
8782 ("giflib" ,giflib)
8783 ("glib" ,glib)
8784 ("gstreamer" ,gstreamer)
8785 ("icu4c" ,icu4c)
8786 ("libcue" ,libcue)
8787 ("libexif" ,libexif)
8788 ("libgsf" ,libgsf)
8789 ("libgxps" ,libgxps)
8790 ("libiptcdata" ,libiptcdata)
8791 ("libjpeg" ,libjpeg-turbo)
8792 ("libosinfo" ,libosinfo)
8793 ("libpng" ,libpng)
8794 ("libseccomp" ,libseccomp)
8795 ("libtiff" ,libtiff)
8796 ("libvorbis" ,libvorbis)
8797 ("libxml2" ,libxml2)
8798 ("poppler" ,poppler)
8799 ("taglib" ,taglib)
8800 ("totem-pl-parser" ,totem-pl-parser)
8801 ("tracker" ,tracker)
8802 ("upower" ,upower)
8803 ("zlib" ,zlib)))
8804 (synopsis "Metadata database, indexer and search tool")
8805 (home-page "https://wiki.gnome.org/Projects/Tracker")
8806 (description
8807 "Tracker is an advanced framework for first class objects with associated
8808 metadata and tags. It provides a one stop solution for all metadata, tags,
8809 shared object databases, search tools and indexing.")
8810 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8811 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8812 (license (list license:gpl2+
8813 license:lgpl2.1+
8814 license:lgpl2.0+))))
8815
8816 (define-public nautilus
8817 (package
8818 (name "nautilus")
8819 (version "3.34.2")
8820 (source (origin
8821 (method url-fetch)
8822 (uri (string-append "mirror://gnome/sources/" name "/"
8823 (version-major+minor version) "/"
8824 name "-" version ".tar.xz"))
8825 (sha256
8826 (base32
8827 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8828 (build-system meson-build-system)
8829 (arguments
8830 '(#:glib-or-gtk? #t
8831 #:phases
8832 (modify-phases %standard-phases
8833 (add-after 'unpack 'skip-gtk-update-icon-cache
8834 ;; Don't create 'icon-theme.cache'.
8835 (lambda _
8836 (substitute* "build-aux/meson/postinstall.py"
8837 (("gtk-update-icon-cache") "true"))
8838 #t)))
8839 ;; XXX: FAIL: check-nautilus
8840 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8841 #:tests? #f))
8842 (native-inputs
8843 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8844 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8845 ("gobject-introspection" ,gobject-introspection)
8846 ("intltool" ,intltool)
8847 ("pkg-config" ,pkg-config)))
8848 (inputs
8849 `(("dconf" ,dconf)
8850 ("gexiv2" ,gexiv2)
8851 ("gvfs" ,gvfs)
8852 ("exempi" ,exempi)
8853 ("gnome-desktop" ,gnome-desktop)
8854 ("gnome-autoar" ,gnome-autoar)
8855 ("gst-plugins-base" ,gst-plugins-base)
8856 ("libseccomp" ,libseccomp)
8857 ("libselinux" ,libselinux)
8858 ("tracker" ,tracker)
8859 ("tracker-miners" ,tracker-miners)
8860 ;; XXX: gtk+ is required by libnautilus-extension.pc
8861 ;;
8862 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8863 ;; package. See:
8864 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8865 ("gtk+" ,gtk+)
8866 ("libexif" ,libexif)
8867 ("libxml2" ,libxml2)))
8868 (synopsis "File manager for GNOME")
8869 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8870 (description
8871 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8872 design and behaviour, giving the user a simple way to navigate and manage its
8873 files.")
8874 (license license:gpl2+)))
8875
8876 (define-public baobab
8877 (package
8878 (name "baobab")
8879 (version "3.38.0")
8880 (source (origin
8881 (method url-fetch)
8882 (uri (string-append
8883 "mirror://gnome/sources/" name "/"
8884 (version-major+minor version) "/"
8885 name "-" version ".tar.xz"))
8886 (sha256
8887 (base32
8888 "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104"))))
8889 (build-system meson-build-system)
8890 (arguments
8891 '(#:glib-or-gtk? #t))
8892 (native-inputs
8893 `(("intltool" ,intltool)
8894 ("pkg-config" ,pkg-config)
8895 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8896 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8897 ("itstool" ,itstool)
8898 ("xmllint" ,libxml2)
8899 ("glib" ,glib "bin")
8900 ("vala" ,vala)))
8901 (inputs
8902 `(("gtk+" ,gtk+)))
8903 (synopsis "Disk usage analyzer for GNOME")
8904 (description
8905 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8906 usage in the GNOME desktop environment. It can easily scan device volumes or
8907 a specific user-requested directory branch (local or remote). Once the scan
8908 is complete it provides a graphical representation of each selected folder.")
8909 (home-page "https://wiki.gnome.org/Apps/Baobab")
8910 (license license:gpl2+)))
8911
8912 (define-public gnome-backgrounds
8913 (package
8914 (name "gnome-backgrounds")
8915 (version "3.34.0")
8916 (source
8917 (origin
8918 (method url-fetch)
8919 (uri (string-append "mirror://gnome/sources/" name "/"
8920 (version-major+minor version) "/"
8921 name "-" version ".tar.xz"))
8922 (sha256
8923 (base32
8924 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8925 (build-system meson-build-system)
8926 (native-inputs
8927 `(("intltool" ,intltool)))
8928 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8929 (synopsis "Background images for the GNOME desktop")
8930 (description
8931 "GNOME backgrounds package contains a collection of graphics files which
8932 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8933 the package creates the proper framework and directory structure so that you
8934 can add your own files to the collection.")
8935 (license (list license:gpl2+
8936 license:cc-by2.0
8937 license:cc-by-sa2.0
8938 license:cc-by-sa3.0))))
8939
8940 (define-public gnome-screenshot
8941 (package
8942 (name "gnome-screenshot")
8943 (version "3.34.0")
8944 (source
8945 (origin
8946 (method url-fetch)
8947 (uri (string-append "mirror://gnome/sources/" name "/"
8948 (version-major+minor version) "/"
8949 name "-" version ".tar.xz"))
8950 (sha256
8951 (base32
8952 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8953 (build-system meson-build-system)
8954 (arguments
8955 '(#:phases
8956 (modify-phases %standard-phases
8957 (add-after 'unpack 'skip-gtk-update-icon-cache
8958 ;; Don't create 'icon-theme.cache'.
8959 (lambda _
8960 (substitute* "build-aux/postinstall.py"
8961 (("gtk-update-icon-cache") "true"))
8962 #t)))))
8963 (native-inputs
8964 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8965 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8966 ("intltool" ,intltool)
8967 ("appstream-glib" ,appstream-glib)
8968 ("pkg-config" ,pkg-config)))
8969 (inputs
8970 `(("gtk+" ,gtk+)
8971 ("libcanberra" ,libcanberra)
8972 ("libx11" ,libx11)
8973 ("libxext" ,libxext)))
8974 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8975 (synopsis "Take pictures of your screen")
8976 (description
8977 "GNOME Screenshot is a utility used for taking screenshots of the entire
8978 screen, a window or a user defined area of the screen, with optional
8979 beautifying border effects.")
8980 (license license:gpl2+)))
8981
8982 (define-public dconf-editor
8983 (package
8984 (name "dconf-editor")
8985 (version "3.34.2")
8986 (source
8987 (origin
8988 (method url-fetch)
8989 (uri (string-append "mirror://gnome/sources/" name "/"
8990 (version-major+minor version) "/"
8991 name "-" version ".tar.xz"))
8992 (sha256
8993 (base32
8994 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8995 (build-system meson-build-system)
8996 (native-inputs
8997 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8998 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8999 ("intltool" ,intltool)
9000 ("pkg-config" ,pkg-config)
9001 ("vala" ,vala)))
9002 (inputs
9003 `(("dconf" ,dconf)
9004 ("gtk+" ,gtk+)
9005 ("libxml2" ,libxml2)))
9006 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9007 (synopsis "Graphical editor for GNOME's dconf configuration system")
9008 (description
9009 "Dconf-editor is a graphical tool for browsing and editing the dconf
9010 configuration system for GNOME. It allows users to configure desktop
9011 software that do not provide their own configuration interface.")
9012 (license license:lgpl2.1+)))
9013
9014 (define-public gnome-default-applications
9015 (package
9016 (name "gnome-default-applications")
9017 (version "0")
9018 (build-system trivial-build-system)
9019 (source #f)
9020 (propagated-inputs
9021 `(("nautilus" ,nautilus)
9022 ("evince" ,evince)))
9023 (arguments
9024 `(#:modules ((guix build utils))
9025 #:builder
9026 (begin
9027 (use-modules (guix build utils))
9028 (let* ((out (assoc-ref %outputs "out"))
9029 (apps (string-append out "/share/applications")))
9030 (mkdir-p apps)
9031 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9032 (lambda (port)
9033 (format port "[Default Applications]\n")
9034 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9035 (format port "application/pdf=evince.desktop\n")
9036 (format port "application/postscript=evince.desktop\n")))
9037 #t))))
9038 (synopsis "Default MIME type associations for the GNOME desktop")
9039 (description
9040 "Given many installed packages which might handle a given MIME type, a
9041 user running the GNOME desktop probably has some preferences: for example,
9042 that folders be opened by default by the Nautilus file manager, not the Baobab
9043 disk usage analyzer. This package establishes that set of default MIME type
9044 associations for GNOME.")
9045 (license license:gpl3+)
9046 (home-page #f)))
9047
9048 (define-public libgovirt
9049 (package
9050 (name "libgovirt")
9051 (version "0.3.8")
9052 (source (origin
9053 (method url-fetch)
9054 (uri (string-append "mirror://gnome/sources/" name "/"
9055 (version-major+minor version) "/"
9056 name "-" version ".tar.xz"))
9057 (sha256
9058 (base32
9059 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9060 (build-system glib-or-gtk-build-system)
9061 (native-inputs
9062 `(("gettext" ,gettext-minimal)
9063 ("glib:bin" ,glib "bin")
9064 ("gobject-introspection" ,gobject-introspection)
9065 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9066 ("gtk+:bin" ,gtk+ "bin")
9067 ("pkg-config" ,pkg-config)))
9068 (inputs
9069 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
9070 ("librest" ,rest)))
9071 (synopsis "GoVirt Library")
9072 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9073 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9074 (license license:gpl2+)))
9075
9076 (define-public gnome-weather
9077 (package
9078 (name "gnome-weather")
9079 (version "3.34.0")
9080 (source (origin
9081 (method url-fetch)
9082 (uri (string-append "mirror://gnome/sources/" name "/"
9083 (version-major+minor version) "/"
9084 name "-" version ".tar.xz"))
9085 (sha256
9086 (base32
9087 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
9088 (build-system meson-build-system)
9089 (native-inputs
9090 `(("gettext" ,gettext-minimal)
9091 ("glib:bin" ,glib "bin")
9092 ("gobject-introspection" ,gobject-introspection)
9093 ("gtk+:bin" ,gtk+ "bin")
9094 ("pkg-config" ,pkg-config)))
9095 (inputs
9096 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
9097 ("appstream-glib" ,appstream-glib)
9098 ("geoclue" ,geoclue)
9099 ("gdk-pixbuf" ,gdk-pixbuf)
9100 ("gjs" ,gjs)
9101 ("gnome-desktop" ,gnome-desktop)
9102 ("libgweather" ,libgweather)))
9103 (arguments
9104 `(#:glib-or-gtk? #t
9105 #:phases
9106 (modify-phases %standard-phases
9107 (add-after 'install 'fix-desktop-file
9108 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
9109 ;; See https://issues.guix.gnu.org/issue/39324.
9110 (lambda* (#:key outputs #:allow-other-keys)
9111 (let* ((out (assoc-ref outputs "out"))
9112 (applications (string-append out "/share/applications")))
9113 (substitute* (string-append applications "/org.gnome.Weather.desktop")
9114 (("Exec=.*") "Exec=gnome-weather\n"))
9115 #t)))
9116 (add-after 'install 'wrap
9117 (lambda* (#:key inputs outputs #:allow-other-keys)
9118 (let ((out (assoc-ref outputs "out"))
9119 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9120 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
9121 (wrap-program (string-append out "/bin/gnome-weather")
9122 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
9123 #t))))))
9124 (synopsis "Weather monitoring for GNOME desktop")
9125 (description "GNOME Weather is a small application that allows you to
9126 monitor the current weather conditions for your city, or anywhere in the
9127 world.")
9128 (home-page "https://wiki.gnome.org/Apps/Weather")
9129 (license license:gpl2+)))
9130
9131 (define-public gnome
9132 (package
9133 (name "gnome")
9134 (version (package-version gnome-shell))
9135 (source #f)
9136 (build-system trivial-build-system)
9137 (arguments '(#:builder (begin (mkdir %output) #t)))
9138 (propagated-inputs
9139 ;; TODO: Add or remove packages according to:
9140 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
9141 `(
9142 ;; GNOME-Core-OS-Services
9143 ("accountsservice" ,accountsservice)
9144 ("network-manager" ,network-manager)
9145 ("packagekit" ,packagekit)
9146 ("upower" ,upower)
9147 ;; GNOME-Core-Shell
9148 ("adwaita-icon-theme" ,adwaita-icon-theme)
9149 ("gdm" ,gdm)
9150 ("glib-networking" ,glib-networking)
9151 ("gnome-backgrounds" ,gnome-backgrounds)
9152 ("gnome-bluetooth" ,gnome-bluetooth)
9153 ("gnome-color-manager" ,gnome-color-manager)
9154 ("gnome-control-center" ,gnome-control-center)
9155 ("gnome-desktop" ,gnome-desktop)
9156 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
9157 ("gnome-initial-setup" ,gnome-initial-setup)
9158 ("gnome-keyring" ,gnome-keyring)
9159 ("gnome-menus" ,gnome-menus)
9160 ("gnome-session" ,gnome-session)
9161 ("gnome-settings-daemon" ,gnome-settings-daemon)
9162 ("gnome-shell-extensions" ,gnome-shell-extensions)
9163 ("gnome-shell" ,gnome-shell)
9164 ("gnome-themes-extra" ,gnome-themes-extra)
9165 ("gnome-user-docs" ,gnome-user-docs)
9166 ("gnome-user-share" ,gnome-user-share)
9167 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9168 ("gvfs" ,gvfs)
9169 ("mutter" ,mutter)
9170 ("orca" ,orca)
9171 ("rygel" ,rygel)
9172 ("sushi" ,sushi)
9173 ;; GNOME-Core-Utilities
9174 ("baobab" ,baobab)
9175 ("cheese" ,cheese)
9176 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9177 ;; only works on x86_64, so exclude it on other architectures.
9178 ,@(if (string-prefix? "x86_64" (%current-system))
9179 `(("eog" ,eog))
9180 '())
9181 ("epiphany" ,epiphany)
9182 ("evince" ,evince)
9183 ("file-roller" ,file-roller)
9184 ("gedit" ,gedit)
9185 ("gnome-boxes" ,gnome-boxes)
9186 ("gnome-calculator" ,gnome-calculator)
9187 ("gnome-calendar" ,gnome-calendar)
9188 ("gnome-characters" ,gnome-characters)
9189 ("gnome-clocks" ,gnome-clocks)
9190 ("gnome-contacts" ,gnome-contacts)
9191 ("gnome-disk-utility" ,gnome-disk-utility)
9192 ("gnome-font-viewer" ,gnome-font-viewer)
9193 ("gnome-maps" ,gnome-maps)
9194 ; TODO: ("gnome-music" ,gnome-music)
9195 ; TODO: ("gnome-photos" ,gnome-photos)
9196 ("gnome-screenshot" ,gnome-screenshot)
9197 ("gnome-system-monitor" ,gnome-system-monitor)
9198 ("gnome-terminal" ,gnome-terminal)
9199 ("gnome-weather" ,gnome-weather)
9200 ("nautilus" ,nautilus)
9201 ("simple-scan" ,simple-scan)
9202 ("totem" ,totem)
9203 ("yelp" ,yelp)
9204 ;; Others
9205 ("hicolor-icon-theme" ,hicolor-icon-theme)
9206 ("gnome-online-accounts" ,gnome-online-accounts)
9207
9208 ;; Packages not part of GNOME proper but that are needed for a good
9209 ;; experience. See <https://bugs.gnu.org/39646>.
9210 ;; XXX: Find out exactly which ones are needed and why.
9211 ("font-cantarell" ,font-cantarell)
9212 ("font-dejavu" ,font-dejavu)
9213 ("at-spi2-core" ,at-spi2-core)
9214 ("dbus" ,dbus)
9215 ("dconf" ,dconf)
9216 ("desktop-file-utils" ,desktop-file-utils)
9217 ("gnome-default-applications" ,gnome-default-applications)
9218 ("gnome-themes-standard" ,gnome-themes-standard)
9219 ("gst-plugins-base" ,gst-plugins-base)
9220 ("gst-plugins-good" ,gst-plugins-good)
9221 ("gucharmap" ,gucharmap)
9222 ("pinentry-gnome3" ,pinentry-gnome3)
9223 ("pulseaudio" ,pulseaudio)
9224 ("shared-mime-info" ,shared-mime-info)
9225 ("system-config-printer" ,system-config-printer)
9226 ("xdg-user-dirs" ,xdg-user-dirs)
9227 ("yelp" ,yelp)
9228 ("zenity" ,zenity)))
9229 (synopsis "The GNU desktop environment")
9230 (home-page "https://www.gnome.org/")
9231 (description
9232 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9233 applications for browsing the web, editing text and images, creating
9234 documents and diagrams, playing media, scanning, and much more.")
9235 (license license:gpl2+)))
9236
9237 (define-public byzanz
9238 ;; The last stable release of Byzanz was in 2011, but there have been many
9239 ;; useful commits made to the Byzanz repository since then that it would be
9240 ;; silly to use such an old release.
9241 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9242 (package
9243 (name "byzanz")
9244 (version (string-append "0.2-1." (string-take commit 7)))
9245 (source (origin
9246 (method git-fetch)
9247 (uri (git-reference
9248 (url "https://git.gnome.org/browse/byzanz")
9249 (commit commit)))
9250 (file-name (string-append name "-" version "-checkout"))
9251 (sha256
9252 (base32
9253 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9254 (build-system glib-or-gtk-build-system)
9255 (arguments
9256 '(#:phases
9257 (modify-phases %standard-phases
9258 (add-before 'bootstrap 'build-without-Werror
9259 (lambda _
9260 ;; The build system cleverly detects that we're not building from
9261 ;; a release tarball and turns on -Werror for GCC.
9262 ;; Unsurprisingly, there is a warning during compilation that
9263 ;; causes the build to fail unnecessarily, so we remove the flag.
9264 (substitute* '("configure.ac")
9265 (("-Werror") ""))
9266 #t)))))
9267 (native-inputs
9268 `(("autoconf" ,autoconf)
9269 ("automake" ,automake)
9270 ("gnome-common" ,gnome-common)
9271 ("intltool" ,intltool)
9272 ("libtool" ,libtool)
9273 ("pkg-config" ,pkg-config)
9274 ("which" ,which)))
9275 (inputs
9276 `(("glib" ,glib)
9277 ("gstreamer" ,gstreamer)
9278 ("gst-plugins-base" ,gst-plugins-base)
9279 ("gtk+" ,gtk+)))
9280 (synopsis "Desktop recording program")
9281 (description "Byzanz is a simple desktop recording program with a
9282 command-line interface. It can record part or all of an X display for a
9283 specified duration and save it as a GIF encoded animated image file.")
9284 (home-page "https://git.gnome.org/browse/byzanz")
9285 (license license:gpl2+))))
9286
9287 (define-public authenticator
9288 (package
9289 (name "authenticator")
9290 (version "3.32.2")
9291 (source
9292 (origin
9293 (method git-fetch)
9294 (uri (git-reference
9295 (url "https://gitlab.gnome.org/World/Authenticator")
9296 (commit version)))
9297 (file-name (git-file-name name version))
9298 (sha256
9299 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9300 (build-system meson-build-system)
9301 (arguments
9302 `(#:glib-or-gtk? #t
9303 #:phases
9304 (modify-phases %standard-phases
9305 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9306 (lambda* (#:key inputs outputs #:allow-other-keys)
9307 (let ((prog (string-append (assoc-ref outputs "out")
9308 "/bin/authenticator"))
9309 (pylib (string-append (assoc-ref outputs "out")
9310 "/lib/python"
9311 ,(version-major+minor
9312 (package-version python))
9313 "/site-packages")))
9314 (wrap-program prog
9315 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
9316 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9317 #t))))))
9318 (native-inputs
9319 `(("desktop-file-utils" ,desktop-file-utils)
9320 ("gettext" ,gettext-minimal)
9321 ("glib:bin" ,glib "bin")
9322 ("gobject-introspection" ,gobject-introspection)
9323 ("gtk+:bin" ,gtk+ "bin")
9324 ("pkg-config" ,pkg-config)))
9325 (inputs
9326 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9327 ("gtk+" ,gtk+)
9328 ("libhandy" ,libhandy-0.0)
9329 ("libsecret" ,libsecret)
9330 ("python-beautifulsoup4" ,python-beautifulsoup4)
9331 ("python-pillow" ,python-pillow)
9332 ("python-pyfavicon" ,python-pyfavicon)
9333 ("python-pygobject" ,python-pygobject)
9334 ("python-pyotp" ,python-pyotp)
9335 ("python-pyzbar" ,python-pyzbar)
9336 ("yoyo-migrations" ,yoyo-migrations)
9337 ("zbar" ,zbar)))
9338 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9339 (synopsis "Two-factor authentication application built for GNOME")
9340 (description
9341 "Authenticator is a two-factor authentication (2FA) application built for
9342 the GNOME desktop environment.
9343
9344 Features:
9345
9346 @itemize
9347 @item QR code scanner
9348 @item Beautiful UI
9349 @item Huge database of more than 560 supported services
9350 @item Keep your PIN tokens secure by locking the application with a password
9351 @item Automatically fetch an image for services using their favicon
9352 @item The possibility to add new services
9353 @end itemize")
9354 (license license:gpl3+)))
9355
9356 (define-public gsound
9357 (package
9358 (name "gsound")
9359 (version "1.0.2")
9360 (source (origin
9361 (method url-fetch)
9362 (uri (string-append "mirror://gnome/sources/" name "/"
9363 (version-major+minor version) "/"
9364 name "-" version ".tar.xz"))
9365 (sha256
9366 (base32
9367 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
9368 (build-system glib-or-gtk-build-system)
9369 (native-inputs
9370 `(("pkg-config" ,pkg-config)
9371 ("gobject-introspection" ,gobject-introspection)
9372 ("vala" ,vala)))
9373 (inputs
9374 `(("glib" ,glib)
9375 ("libcanberra" ,libcanberra)))
9376 (home-page "https://wiki.gnome.org/Projects/GSound")
9377 (synopsis "GObject wrapper for libcanberra")
9378 (description
9379 "GSound is a small library for playing system sounds. It's designed to be
9380 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9381 library.")
9382 (license license:lgpl2.1+)))
9383
9384 (define-public libzapojit
9385 (package
9386 (name "libzapojit")
9387 (version "0.0.3")
9388 (source (origin
9389 (method url-fetch)
9390 (uri (string-append "mirror://gnome/sources/" name "/"
9391 (version-major+minor version) "/"
9392 name "-" version ".tar.xz"))
9393 (sha256
9394 (base32
9395 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9396 (build-system gnu-build-system)
9397 (native-inputs
9398 `(("gobject-introspection" ,gobject-introspection)
9399 ("intltool" ,intltool)
9400 ("pkg-config" ,pkg-config)))
9401 (inputs
9402 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9403 ("json-glib" ,json-glib)
9404 ("rest" ,rest)))
9405 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9406 (synopsis "Library for accessing SkyDrive and Hotmail")
9407 (description
9408 "Libzapojit is a GLib-based library for accessing online service APIs of
9409 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9410 (license license:lgpl2.1+)))
9411
9412 (define-public gnome-clocks
9413 (package
9414 (name "gnome-clocks")
9415 (version "3.34.0")
9416 (source (origin
9417 (method url-fetch)
9418 (uri (string-append "mirror://gnome/sources/" name "/"
9419 (version-major+minor version) "/"
9420 name "-" version ".tar.xz"))
9421 (sha256
9422 (base32
9423 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
9424 (build-system meson-build-system)
9425 (arguments
9426 '(#:glib-or-gtk? #t
9427 #:phases
9428 (modify-phases %standard-phases
9429 (add-after 'unpack 'skip-gtk-update-icon-cache
9430 ;; Don't create 'icon-theme.cache'.
9431 (lambda _
9432 (substitute* "build-aux/post-install.py"
9433 (("gtk-update-icon-cache") "true"))
9434 #t)))))
9435 (native-inputs
9436 `(("vala" ,vala)
9437 ("pkg-config" ,pkg-config)
9438 ("glib" ,glib "bin") ; for glib-compile-resources
9439 ("desktop-file-utils" ,desktop-file-utils)
9440 ("gettext" ,gettext-minimal)
9441 ("itstool" ,itstool)))
9442 (inputs
9443 `(("glib" ,glib)
9444 ("gtk+" ,gtk+)
9445 ("gsound" ,gsound)
9446 ("geoclue" ,geoclue)
9447 ("geocode-glib" ,geocode-glib)
9448 ("libgweather" ,libgweather)
9449 ("gnome-desktop" ,gnome-desktop)))
9450 (home-page "https://wiki.gnome.org/Apps/Clocks")
9451 (synopsis "GNOME's clock application")
9452 (description
9453 "GNOME Clocks is a simple clocks application designed to fit the GNOME
9454 desktop. It supports world clock, stop watch, alarms, and count down timer.")
9455 (license license:gpl3+)))
9456
9457 (define-public gnome-calendar
9458 (package
9459 (name "gnome-calendar")
9460 (version "3.34.2")
9461 (source (origin
9462 (method url-fetch)
9463 (uri (string-append "mirror://gnome/sources/" name "/"
9464 (version-major+minor version) "/"
9465 name "-" version ".tar.xz"))
9466 (sha256
9467 (base32
9468 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
9469 (build-system meson-build-system)
9470 (arguments
9471 '(#:glib-or-gtk? #t
9472 ;; gnome-calendar has to be installed before the tests can be run
9473 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
9474 #:tests? #f
9475 #:phases
9476 (modify-phases %standard-phases
9477 (add-after 'unpack 'skip-gtk-update-icon-cache
9478 ;; Don't create 'icon-theme.cache'.
9479 (lambda _
9480 (substitute* "build-aux/meson/meson_post_install.py"
9481 (("gtk-update-icon-cache") "true"))
9482 #t)))))
9483 (native-inputs
9484 `(("gettext" ,gettext-minimal)
9485 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
9486 ("pkg-config" ,pkg-config)))
9487 (inputs
9488 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9489 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9490 ("libdazzle" ,libdazzle)
9491 ("libedataserverui" ,evolution-data-server)
9492 ("libgweather" ,libgweather)
9493 ("geoclue" ,geoclue)))
9494 (propagated-inputs
9495 `(("evolution-data-server" ,evolution-data-server)))
9496 (home-page "https://wiki.gnome.org/Apps/Calendar")
9497 (synopsis "GNOME's calendar application")
9498 (description
9499 "GNOME Calendar is a simple calendar application designed to fit the GNOME
9500 desktop. It supports multiple calendars, month, week and year view.")
9501 (license license:gpl3+)))
9502
9503 (define-public gnome-todo
9504 (package
9505 (name "gnome-todo")
9506 (version "3.28.1")
9507 (source (origin
9508 (method url-fetch)
9509 (uri (string-append "mirror://gnome/sources/" name "/"
9510 (version-major+minor version) "/"
9511 name "-" version ".tar.xz"))
9512 (sha256
9513 (base32
9514 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
9515 (patches
9516 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
9517 (build-system meson-build-system)
9518 (arguments
9519 '(#:glib-or-gtk? #t
9520 #:phases (modify-phases %standard-phases
9521 (add-after
9522 'install 'wrap-gnome-todo
9523 (lambda* (#:key inputs outputs #:allow-other-keys)
9524 (let ((out (assoc-ref outputs "out"))
9525 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9526 (python-path (getenv "PYTHONPATH")))
9527 (wrap-program (string-append out "/bin/gnome-todo")
9528 ;; XXX: gi plugins are broken.
9529 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9530 ;; For plugins.
9531 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9532 `("PYTHONPATH" ":" prefix (,python-path))))
9533 #t)))))
9534 (native-inputs
9535 `(("gettext" ,gettext-minimal)
9536 ("gobject-introspection" ,gobject-introspection)
9537 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9538 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9539 ("pkg-config" ,pkg-config)))
9540 (inputs
9541 `(("rest" ,rest) ; For Todoist plugin
9542 ("json-glib" ,json-glib) ; For Todoist plugin
9543 ("libedataserverui" ,evolution-data-server)
9544 ("libical" ,libical)
9545 ("libpeas" ,libpeas)
9546 ("python-pygobject" ,python-pygobject)
9547 ("evolution-data-server" ,evolution-data-server)
9548 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9549 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9550 (home-page "https://wiki.gnome.org/Apps/Todo")
9551 (synopsis "GNOME's ToDo Application")
9552 (description
9553 "GNOME To Do is a simplistic personal task manager designed to perfectly
9554 fit the GNOME desktop.")
9555 (license license:gpl3+)))
9556
9557 (define-public gnome-dictionary
9558 (package
9559 (name "gnome-dictionary")
9560 (version "3.26.1")
9561 (source (origin
9562 (method url-fetch)
9563 (uri (string-append "mirror://gnome/sources/" name "/"
9564 (version-major+minor version) "/"
9565 name "-" version ".tar.xz"))
9566 (sha256
9567 (base32
9568 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9569 (build-system meson-build-system)
9570 (arguments '(#:glib-or-gtk? #t
9571 #:phases (modify-phases %standard-phases
9572 (add-after 'unpack 'patch-install-script
9573 (lambda _
9574 ;; This script attempts to compile glib schemas
9575 ;; and create an empty MIME database. We do
9576 ;; that elsewhere, so prevent it from running.
9577 (substitute* "build-aux/post-install.sh"
9578 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9579 #t)))))
9580 (native-inputs
9581 `(("glib:bin" ,glib "bin")
9582 ("gobject-introspection" ,gobject-introspection)
9583 ("intltool" ,intltool)
9584 ("itstool" ,itstool)
9585 ("pkg-config" ,pkg-config)
9586 ("xmllint" ,libxml2)))
9587 (inputs
9588 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9589 ("gtk+" ,gtk+)))
9590 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9591 (synopsis "Look up words in dictionary sources")
9592 (description
9593 "GNOME Dictionary can look for the definition or translation of a word in
9594 existing databases over the internet.")
9595 (license license:gpl3+)))
9596
9597 (define-public gnome-tweaks
9598 (package
9599 (name "gnome-tweaks")
9600 (version "3.34.1")
9601 (source (origin
9602 (method url-fetch)
9603 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9604 (version-major+minor version) "/"
9605 "gnome-tweaks-" version ".tar.xz"))
9606 (patches
9607 (list (search-patch "gnome-tweaks-search-paths.patch")))
9608 (sha256
9609 (base32
9610 "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq"))))
9611 (build-system meson-build-system)
9612 (arguments
9613 `(#:glib-or-gtk? #t
9614 #:configure-flags '("-Dlocalstatedir=/tmp"
9615 "-Dsysconfdir=/tmp")
9616 #:imported-modules ((guix build python-build-system)
9617 ,@%meson-build-system-modules)
9618 #:phases
9619 (modify-phases %standard-phases
9620 (add-after 'unpack 'skip-gtk-update-icon-cache
9621 ;; Don't create 'icon-theme.cache'.
9622 (lambda _
9623 (substitute* "meson-postinstall.py"
9624 (("gtk-update-icon-cache") "true"))
9625 #t))
9626 (add-after 'install 'wrap
9627 (@@ (guix build python-build-system) wrap))
9628 (add-after 'wrap 'wrap-gi-typelib
9629 (lambda* (#:key inputs outputs #:allow-other-keys)
9630 (let ((out (assoc-ref outputs "out"))
9631 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9632 (wrap-program (string-append out "/bin/gnome-tweaks")
9633 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9634 #t)))))
9635 (native-inputs
9636 `(("intltool" ,intltool)
9637 ("pkg-config" ,pkg-config)))
9638 (inputs
9639 `(("gnome-desktop" ,gnome-desktop)
9640 ("gtk+" ,gtk+)
9641 ("gobject-introspection" ,gobject-introspection)
9642 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9643 ("libhandy" ,libhandy-0.0)
9644 ("libnotify" ,libnotify)
9645 ("libsoup" ,libsoup)
9646 ("nautilus" ,nautilus)
9647 ("python" ,python)
9648 ("python-pygobject" ,python-pygobject)))
9649 (synopsis "Customize advanced GNOME 3 options")
9650 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9651 (description
9652 "GNOME Tweaks allows adjusting advanced configuration settings in
9653 GNOME 3. This includes things like the fonts used in user interface elements,
9654 alternative user interface themes, changes in window management behavior,
9655 GNOME Shell appearance and extension, etc.")
9656 (license license:gpl3+)))
9657
9658 (define-public gnome-shell-extensions
9659 (package
9660 (name "gnome-shell-extensions")
9661 (version "3.34.2")
9662 (source (origin
9663 (method url-fetch)
9664 (uri (string-append "mirror://gnome/sources/" name "/"
9665 (version-major+minor version) "/"
9666 name "-" version ".tar.xz"))
9667 (sha256
9668 (base32
9669 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
9670 (build-system meson-build-system)
9671 (arguments
9672 '(#:configure-flags '("-Dextension_set=all")))
9673 (native-inputs
9674 `(("glib:bin" ,glib "bin")
9675 ("intltool" ,intltool)
9676 ("pkg-config" ,pkg-config)))
9677 (propagated-inputs
9678 `(("glib" ,glib)))
9679 (synopsis "Extensions for GNOME Shell")
9680 (description "GNOME Shell extensions modify and extend GNOME Shell
9681 functionality and behavior.")
9682 (home-page "https://extensions.gnome.org/")
9683 (license license:gpl3+)))
9684
9685 (define-public folks
9686 (package
9687 (name "folks")
9688 (version "0.13.1")
9689 (source (origin
9690 (method url-fetch)
9691 (uri (string-append
9692 "mirror://gnome/sources/folks/"
9693 (version-major+minor version) "/"
9694 "folks-" version ".tar.xz"))
9695 (sha256
9696 (base32
9697 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9698 (build-system meson-build-system)
9699 (arguments
9700 '(#:phases
9701 (modify-phases %standard-phases
9702 (add-after 'unpack 'skip-gtk-update-icon-cache
9703 ;; Don't create 'icon-theme.cache'.
9704 (lambda _
9705 (substitute* "meson_post_install.py"
9706 (("gtk-update-icon-cache") "true"))
9707 #t)))))
9708 (inputs
9709 `(("bdb" ,bdb)
9710 ("dbus-glib" ,dbus-glib)
9711 ("evolution-data-server" ,evolution-data-server)
9712 ("glib" ,glib)
9713 ("libgee" ,libgee)
9714 ("readline" ,readline)
9715 ("telepathy-glib" ,telepathy-glib)))
9716 (native-inputs
9717 `(("glib:bin" ,glib "bin")
9718 ("gobject-introspection" ,gobject-introspection)
9719 ("intltool" ,intltool)
9720 ("pkg-config" ,pkg-config)
9721 ("vala" ,vala)))
9722 (synopsis "Library to aggregate data about people")
9723 (description "Libfolks is a library that aggregates information about people
9724 from multiple sources (e.g., Telepathy connection managers for IM contacts,
9725 Evolution Data Server for local contacts, libsocialweb for web service contacts,
9726 etc.) to create metacontacts. It's written in Vala, which generates C code when
9727 compiled.")
9728 (home-page "https://wiki.gnome.org/Projects/Folks")
9729 (license license:lgpl2.1+)))
9730
9731 (define-public gfbgraph
9732 (package
9733 (name "gfbgraph")
9734 (version "0.2.4")
9735 (source (origin
9736 (method url-fetch)
9737 (uri (string-append
9738 "mirror://gnome/sources/gfbgraph/"
9739 (version-major+minor version) "/"
9740 "gfbgraph-" version ".tar.xz"))
9741 (sha256
9742 (base32
9743 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9744 (build-system glib-or-gtk-build-system)
9745 (arguments
9746 `(#:tests? #f ; tests appear to require the network
9747 #:configure-flags '("--disable-static"
9748 "--enable-gtk-doc"
9749 "--enable-introspection")))
9750 (native-inputs
9751 `(("gobject-introspection" ,gobject-introspection)
9752 ("gtk-doc" ,gtk-doc)
9753 ("pkg-config" ,pkg-config)
9754
9755 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9756 ("autoconf" ,autoconf)
9757 ("automake" ,automake)
9758 ("libtool" ,libtool)
9759 ("which" ,which)))
9760 (inputs
9761 `(("json-glib" ,json-glib)
9762 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9763 ("rest" ,rest)))
9764 (synopsis "GLib/GObject wrapper for the Facebook API")
9765 (description "This library allows you to use the Facebook API from
9766 GLib/GObject code.")
9767 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9768 (license license:lgpl2.1+)))
9769
9770 (define-public libgnomekbd
9771 (package
9772 (name "libgnomekbd")
9773 (version "3.26.1")
9774 (source (origin
9775 (method url-fetch)
9776 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9777 (version-major+minor version) "/"
9778 "libgnomekbd-" version ".tar.xz"))
9779 (sha256
9780 (base32
9781 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9782 (build-system gnu-build-system)
9783 (native-inputs
9784 `(("pkg-config" ,pkg-config)
9785 ("glib" ,glib "bin")
9786 ("intltool" ,intltool)))
9787 (propagated-inputs
9788 ;; Referred to in .h files and .pc.
9789 `(("glib" ,glib)
9790 ("gtk+" ,gtk+)
9791 ("libxklavier" ,libxklavier)))
9792 (home-page "https://www.gnome.org")
9793 (synopsis "GNOME keyboard configuration library")
9794 (description
9795 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9796 environment, which can notably display keyboard layouts.")
9797 (license license:lgpl2.0+)))
9798
9799 ;;; This package is no longer maintained:
9800 ;;; https://wiki.gnome.org/Attic/LibUnique
9801 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9802 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9803 (define-public libunique
9804 (package
9805 (name "libunique")
9806 (version "3.0.2")
9807 (source (origin
9808 (method url-fetch)
9809 (uri (string-append "mirror://gnome/sources/" name "/"
9810 (version-major+minor version) "/"
9811 name "-" version ".tar.xz"))
9812 (sha256
9813 (base32
9814 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9815 (build-system glib-or-gtk-build-system)
9816 (arguments
9817 `(#:configure-flags '("--disable-static"
9818 "--disable-dbus" ; use gdbus
9819 "--enable-introspection")))
9820 (native-inputs
9821 `(("pkg-config" ,pkg-config)
9822 ("gobject-introspection" ,gobject-introspection)
9823 ("glib:bin" ,glib "bin")
9824 ("gtk-doc" ,gtk-doc)))
9825 (propagated-inputs
9826 ;; Referred to in .h files and .pc.
9827 `(("gtk+" ,gtk+)))
9828 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9829 (synopsis "Library for writing single instance applications")
9830 (description
9831 "Libunique is a library for writing single instance applications. If you
9832 launch a single instance application twice, the second instance will either just
9833 quit or will send a message to the running instance. Libunique makes it easy to
9834 write this kind of application, by providing a base class, taking care of all
9835 the IPC machinery needed to send messages to a running instance, and also
9836 handling the startup notification side.")
9837 (license license:lgpl2.1+)))
9838
9839 (define-public gnome-calculator
9840 (package
9841 (name "gnome-calculator")
9842 (version "3.34.1")
9843 (source
9844 (origin
9845 (method url-fetch)
9846 (uri (string-append "mirror://gnome/sources/" name "/"
9847 (version-major+minor version) "/"
9848 name "-" version ".tar.xz"))
9849 (sha256
9850 (base32
9851 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9852 (build-system meson-build-system)
9853 (arguments '(#:glib-or-gtk? #t))
9854 (native-inputs
9855 `(("gettext" ,gettext-minimal)
9856 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9857 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9858 ("itstool" ,itstool)
9859 ("vala" ,vala)
9860 ("pkg-config" ,pkg-config)))
9861 (inputs
9862 `(("glib" ,glib)
9863 ("gtksourceview" ,gtksourceview)
9864 ("libgee" ,libgee)
9865 ("libsoup" ,libsoup)
9866 ("libxml2" ,libxml2)
9867 ("mpc" ,mpc)
9868 ("mpfr" ,mpfr)))
9869 (home-page "https://wiki.gnome.org/Apps/Calculator")
9870 (synopsis "Desktop calculator")
9871 (description
9872 "Calculator is an application that solves mathematical equations and
9873 is suitable as a default application in a Desktop environment.")
9874 (license license:gpl3)))
9875
9876 (define-public xpad
9877 (package
9878 (name "xpad")
9879 (version "5.1.0")
9880 (source
9881 (origin
9882 (method url-fetch)
9883 (uri (string-append "https://launchpad.net/xpad/trunk/"
9884 version "/+download/"
9885 name "-" version ".tar.bz2"))
9886 (sha256
9887 (base32
9888 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9889 (build-system gnu-build-system)
9890 (native-inputs
9891 `(("autoconf" ,autoconf)
9892 ("automake" ,automake)
9893 ("gtk+:bin" ,gtk+ "bin")
9894 ("intltool" ,intltool)
9895 ("pkg-config" ,pkg-config)))
9896 (inputs
9897 `(("gtksourceview" ,gtksourceview-3)
9898 ("libsm" ,libsm)))
9899 (home-page "https://wiki.gnome.org/Apps/Xpad")
9900 (synopsis "Virtual sticky note")
9901 (description
9902 "Xpad is a sticky note that strives to be simple, fault tolerant,
9903 and customizable. Xpad consists of independent pad windows, each is
9904 basically a text box in which notes can be written.")
9905 (license license:gpl3+)))
9906
9907 (define-public gucharmap
9908 (let ((unicode-files
9909 '(("Blocks.txt"
9910 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9911 ("DerivedAge.txt"
9912 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9913 ("NamesList.txt"
9914 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9915 ("Scripts.txt"
9916 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9917 ("UnicodeData.txt"
9918 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9919 ("Unihan.zip"
9920 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9921 (package
9922 (name "gucharmap")
9923 (version "12.0.1")
9924 (source
9925 (origin
9926 (method url-fetch)
9927 (uri (string-append "mirror://gnome/sources/" name "/"
9928 (version-major+minor version) "/"
9929 name "-" version ".tar.xz"))
9930 (sha256
9931 (base32
9932 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9933 (build-system glib-or-gtk-build-system)
9934 (arguments
9935 `(#:modules ((ice-9 match)
9936 (guix build glib-or-gtk-build-system)
9937 (guix build utils))
9938 #:configure-flags
9939 (list "--with-unicode-data=../unicode-data")
9940 #:phases
9941 (modify-phases %standard-phases
9942 (add-after 'unpack 'prepare-unicode-data
9943 (lambda* (#:key inputs #:allow-other-keys)
9944 (mkdir-p "../unicode-data")
9945 (with-directory-excursion "../unicode-data"
9946 (for-each (match-lambda
9947 ((file _)
9948 (install-file (assoc-ref inputs file) ".")))
9949 ',unicode-files))
9950 #t)))))
9951 (native-inputs
9952 `(("desktop-file-utils" ,desktop-file-utils)
9953 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9954 ("gobject-introspection" ,gobject-introspection)
9955 ("intltool" ,intltool)
9956 ("itstool" ,itstool)
9957 ("pkg-config" ,pkg-config)
9958 ,@(map (match-lambda
9959 ((file hash)
9960 `(,file
9961 ,(origin
9962 (method url-fetch)
9963 (uri (string-append
9964 "http://www.unicode.org/Public/12.0.0/ucd/"
9965 file))
9966 (sha256 (base32 hash))))))
9967 unicode-files)
9968 ("unzip" ,unzip)))
9969 (inputs
9970 `(("gtk+" ,gtk+)
9971 ("xmllint" ,libxml2)))
9972 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9973 (synopsis "Unicode character picker and font browser")
9974 (description
9975 "This program allows you to browse through all the available Unicode
9976 characters and categories for the installed fonts, and to examine their
9977 detailed properties. It is an easy way to find the character you might
9978 only know by its Unicode name or code point.")
9979 (license license:gpl3+))))
9980
9981 (define-public bluefish
9982 (package
9983 (name "bluefish")
9984 (version "2.2.12")
9985 (source
9986 (origin
9987 (method url-fetch)
9988 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
9989 "bluefish-" version ".tar.gz"))
9990 (sha256
9991 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
9992 (build-system gnu-build-system)
9993 (native-inputs
9994 `(("desktop-file-utils" ,desktop-file-utils)
9995 ("intltool" ,intltool)
9996 ("pkg-config" ,pkg-config)))
9997 (inputs
9998 `(("enchant" ,enchant)
9999 ("gtk+" ,gtk+)
10000 ("python" ,python-wrapper)
10001 ("xmllint" ,libxml2)
10002 ("gucharmap" ,gucharmap)))
10003 (home-page "http://bluefish.openoffice.nl")
10004 (synopsis "Web development studio")
10005 (description
10006 "Bluefish is an editor aimed at programmers and web developers,
10007 with many options to write web sites, scripts and other code.
10008 Bluefish supports many programming and markup languages.")
10009 (license license:gpl3+)))
10010
10011 (define-public gnome-system-monitor
10012 (package
10013 (name "gnome-system-monitor")
10014 (version "3.32.1")
10015 (source
10016 (origin
10017 (method url-fetch)
10018 (uri (string-append "mirror://gnome/sources/" name "/"
10019 (version-major+minor version) "/"
10020 name "-" version ".tar.xz"))
10021 (sha256
10022 (base32
10023 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
10024 (build-system meson-build-system)
10025 (arguments
10026 '(#:glib-or-gtk? #t
10027 #:configure-flags '("-Dsystemd=false")))
10028 (native-inputs
10029 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
10030 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
10031 ("intltool" ,intltool)
10032 ("itstool" ,itstool)
10033 ("libgtop" ,libgtop)
10034 ("polkit" ,polkit)
10035 ("pkg-config" ,pkg-config)))
10036 (inputs
10037 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
10038 ("gtk+" ,gtk+)
10039 ("gtkmm" ,gtkmm)
10040 ("librsvg" ,librsvg)
10041 ("libxml2" ,libxml2)
10042 ("libwnck" ,libwnck)))
10043 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10044 (synopsis "Process viewer and system resource monitor for GNOME")
10045 (description
10046 "GNOME System Monitor is a GNOME process viewer and system monitor with
10047 an attractive, easy-to-use interface. It has features, such as a tree view
10048 for process dependencies, icons for processes, the ability to hide processes,
10049 graphical time histories of CPU/memory/swap usage and the ability to
10050 kill/reinice processes.")
10051 (license license:gpl2+)))
10052
10053 (define-public python-pyatspi
10054 (package
10055 (name "python-pyatspi")
10056 (version "2.34.0")
10057 (source (origin
10058 (method url-fetch)
10059 (uri (string-append
10060 "mirror://gnome/sources/pyatspi/"
10061 (version-major+minor version)
10062 "/pyatspi-" version ".tar.xz"))
10063 (sha256
10064 (base32
10065 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10066 (build-system gnu-build-system)
10067 (arguments
10068 `(#:phases
10069 (modify-phases %standard-phases
10070 (add-before 'build 'fix-atk-load
10071 (lambda _
10072 (substitute* "pyatspi/__init__.py"
10073 (("from gi.repository import Atspi")
10074 "gi.require_version('Gtk', '3.0')
10075 from gi.repository import Gtk
10076 from gi.repository import Atspi"))
10077 #t)))))
10078 (native-inputs
10079 `(("pkg-config" ,pkg-config)))
10080 (inputs
10081 `(("python" ,python)))
10082 (propagated-inputs
10083 `(("python-pygobject" ,python-pygobject)))
10084 (synopsis "Python client bindings for D-Bus AT-SPI")
10085 (home-page "https://wiki.linuxfoundation.org/accessibility\
10086 /atk/at-spi/at-spi_on_d-bus")
10087 (description
10088 "This package includes a python client library for the AT-SPI D-Bus
10089 accessibility infrastructure.")
10090 (license license:lgpl2.0)
10091 (properties '((upstream-name . "pyatspi")))))
10092
10093 (define-public python2-pyatspi
10094 (package
10095 (inherit python-pyatspi)
10096 (name "python2-pyatspi")
10097 (inputs
10098 `(("python" ,python-2)))
10099 (propagated-inputs
10100 `(("python-pygobject" ,python2-pygobject)))))
10101
10102 (define-public orca
10103 (package
10104 (name "orca")
10105 (version "3.34.1")
10106 (source (origin
10107 (method url-fetch)
10108 (uri (string-append
10109 "mirror://gnome/sources/" name "/"
10110 (version-major+minor version) "/"
10111 name "-" version ".tar.xz"))
10112 (sha256
10113 (base32
10114 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
10115 (build-system glib-or-gtk-build-system)
10116 (arguments
10117 '(#:phases
10118 (modify-phases %standard-phases
10119 (add-before 'configure 'qualify-xkbcomp
10120 (lambda* (#:key inputs #:allow-other-keys)
10121 (let ((xkbcomp (string-append
10122 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10123 (substitute* "src/orca/orca.py"
10124 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
10125 #t))
10126 (add-after 'install 'wrap-orca
10127 (lambda* (#:key outputs #:allow-other-keys)
10128 (let* ((out (assoc-ref outputs "out"))
10129 (prog (string-append out "/bin/orca")))
10130 (wrap-program prog
10131 `("GI_TYPELIB_PATH" ":" prefix
10132 (,(getenv "GI_TYPELIB_PATH")))
10133 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10134 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10135 `("PYTHONPATH" ":" prefix
10136 (,(getenv "PYTHONPATH")))))
10137 #t)))))
10138 (native-inputs
10139 `(("intltool" ,intltool)
10140 ("itstool" ,itstool)
10141 ("pkg-config" ,pkg-config)
10142 ("xmllint" ,libxml2)))
10143 (inputs
10144 `(("at-spi2-atk" ,at-spi2-atk)
10145 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10146 ("gstreamer" ,gstreamer)
10147 ("gst-plugins-base" ,gst-plugins-base)
10148 ("gst-plugins-good" ,gst-plugins-good)
10149 ("gtk+" ,gtk+)
10150 ("python" ,python)
10151 ("python-pygobject" ,python-pygobject)
10152 ("python-pyatspi" ,python-pyatspi)
10153 ("python-speechd" ,speech-dispatcher)
10154 ("xkbcomp" ,xkbcomp)))
10155 (synopsis
10156 "Screen reader for individuals who are blind or visually impaired")
10157 (home-page "https://wiki.gnome.org/Projects/Orca")
10158 (description
10159 "Orca is a screen reader that provides access to the graphical desktop
10160 via speech and refreshable braille. Orca works with applications and toolkits
10161 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10162 (license license:lgpl2.1+)))
10163
10164 (define-public gspell
10165 (package
10166 (name "gspell")
10167 (version "1.8.2")
10168 (source (origin
10169 (method url-fetch)
10170 (uri (string-append "mirror://gnome/sources/" name "/"
10171 (version-major+minor version) "/"
10172 name "-" version ".tar.xz"))
10173 (sha256
10174 (base32
10175 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10176 (patches (search-patches "gspell-dash-test.patch"))))
10177 (build-system glib-or-gtk-build-system)
10178 (arguments
10179 '(#:configure-flags (list "--enable-vala")
10180 #:phases
10181 (modify-phases %standard-phases
10182 (add-before 'check 'pre-check
10183 (lambda* (#:key inputs #:allow-other-keys)
10184 ;; Tests require a running X server.
10185 (system "Xvfb :1 &")
10186 (setenv "DISPLAY" ":1")
10187
10188 ;; For the missing /etc/machine-id.
10189 (setenv "DBUS_FATAL_WARNINGS" "0")
10190
10191 ;; Allow Enchant and its Aspell backend to find the en_US
10192 ;; dictionary.
10193 (setenv "ASPELL_DICT_DIR"
10194 (string-append (assoc-ref inputs "aspell-dict-en")
10195 "/lib/aspell"))
10196 #t)))))
10197 (inputs
10198 `(("gtk+" ,gtk+)
10199 ("glib" ,glib)
10200 ("iso-codes" ,iso-codes)))
10201 (native-inputs
10202 `(("glib" ,glib "bin")
10203 ("gobject-introspection" ,gobject-introspection)
10204 ("pkg-config" ,pkg-config)
10205 ("vala" ,vala) ;for VAPI, needed by Geary
10206 ("xmllint" ,libxml2)
10207
10208 ;; For tests.
10209 ("aspell-dict-en" ,aspell-dict-en)
10210 ("xorg-server" ,xorg-server-for-tests)))
10211 (propagated-inputs
10212 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
10213 (home-page "https://wiki.gnome.org/Projects/gspell")
10214 (synopsis "GNOME's alternative spell checker")
10215 (description
10216 "gspell provides a flexible API to add spell-checking to a GTK+
10217 application. It provides a GObject API, spell-checking to text entries and
10218 text views, and buttons to choose the language.")
10219 (license license:gpl2+)))
10220
10221 (define-public gnome-planner
10222 (package
10223 (name "gnome-planner")
10224 (version "0.14.6")
10225 (source (origin
10226 (method url-fetch)
10227 (uri (string-append "mirror://gnome/sources/planner/"
10228 (version-major+minor version) "/planner-"
10229 version ".tar.xz"))
10230 (sha256
10231 (base32
10232 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10233 (build-system glib-or-gtk-build-system)
10234 (arguments
10235 ;; Disable the Python bindings because the Planner program functions
10236 ;; without them, and (as of 2017-06-13) we have not packaged all of
10237 ;; packages that are necessary for building the Python bindings.
10238 `(#:configure-flags
10239 (list "--disable-python"
10240 ,@(if (string=? "aarch64-linux" (%current-system))
10241 '("--build=aarch64-unknown-linux-gnu")
10242 '()))))
10243 (inputs
10244 `(("libgnomecanvas" ,libgnomecanvas)
10245 ("libgnomeui" ,libgnomeui)
10246 ("libglade" ,libglade)
10247 ("gnome-vfs" ,gnome-vfs)
10248 ("gconf" ,gconf)
10249 ("libxml2" ,libxml2)
10250 ("libxslt" ,libxslt)
10251 ("gtk+" ,gtk+)
10252 ("glib" ,glib)))
10253 (native-inputs
10254 `(("intltool" ,intltool)
10255 ("scrollkeeper" ,scrollkeeper)
10256 ("pkg-config" ,pkg-config)))
10257 (home-page "https://wiki.gnome.org/Apps/Planner")
10258 (synopsis "Project management software for the GNOME desktop")
10259 (description
10260 "GNOME Planner is a project management tool based on the Work Breakdown
10261 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10262 the resources, tasks, and constraints that you define, Planner generates
10263 various views into a project. For example, Planner can show a Gantt chart of
10264 the project. It can show a detailed summary of tasks including their
10265 duration, cost, and current progress. It can also show a report of resource
10266 utilization that highlights under-utilized and over-utilized resources. These
10267 views can be printed as PDF or PostScript files, or exported to HTML.")
10268 (license license:gpl2+)))
10269
10270 (define-public lollypop
10271 (package
10272 (name "lollypop")
10273 (version "1.4.6")
10274 (source
10275 (origin
10276 (method url-fetch)
10277 (uri (string-append "https://adishatz.org/lollypop/"
10278 "lollypop-" version ".tar.xz"))
10279 (sha256
10280 (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
10281 (build-system meson-build-system)
10282 (arguments
10283 `(#:imported-modules
10284 (,@%meson-build-system-modules
10285 (guix build python-build-system))
10286 #:modules
10287 ((guix build meson-build-system)
10288 ((guix build python-build-system) #:prefix python:)
10289 (guix build utils))
10290 #:glib-or-gtk? #t
10291 #:tests? #f ; no test suite
10292 #:phases
10293 (modify-phases %standard-phases
10294 (add-after 'install 'wrap-program
10295 (lambda* (#:key outputs #:allow-other-keys)
10296 (let ((out (assoc-ref outputs "out"))
10297 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10298 (wrap-program (string-append out "/bin/lollypop")
10299 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10300 #t))
10301 (add-after 'install 'wrap-python
10302 (assoc-ref python:%standard-phases 'wrap)))))
10303 (native-inputs
10304 `(("intltool" ,intltool)
10305 ("itstool" ,itstool)
10306 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10307 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10308 ("pkg-config" ,pkg-config)))
10309 (inputs
10310 `(("glib-networking" ,glib-networking)
10311 ("gobject-introspection" ,gobject-introspection)
10312 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10313 ("gst-plugins-base" ,gst-plugins-base)
10314 ("libnotify" ,libnotify)
10315 ("libsecret" ,libsecret)
10316 ("libhandy" ,libhandy)
10317 ("libsoup" ,libsoup)
10318 ("python" ,python)
10319 ("python-beautifulsoup4" ,python-beautifulsoup4)
10320 ("python-gst" ,python-gst)
10321 ("python-pil" ,python-pillow)
10322 ("python-pycairo" ,python-pycairo)
10323 ("python-pygobject" ,python-pygobject)
10324 ("python-pylast" ,python-pylast)
10325 ("totem-pl-parser" ,totem-pl-parser)
10326 ("webkitgtk" ,webkitgtk)))
10327 (propagated-inputs
10328 `(;; gst-plugins-base is required to start Lollypop,
10329 ;; the others are required to play streaming.
10330 ("gst-plugins-good" ,gst-plugins-good)
10331 ("gst-plugins-ugly" ,gst-plugins-ugly)))
10332 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10333 (synopsis "GNOME music playing application")
10334 (description
10335 "Lollypop is a music player designed to play well with GNOME desktop.
10336 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10337 from artists and tracks from the web. It also fetches cover artworks
10338 automatically and it can stream songs from online music services and charts.")
10339 (license license:gpl3+)))
10340
10341 (define-public gnome-video-effects
10342 (package
10343 (name "gnome-video-effects")
10344 (version "0.5.0")
10345 (source (origin
10346 (method url-fetch)
10347 (uri (string-append "mirror://gnome/sources/" name "/"
10348 (version-major+minor version) "/" name "-"
10349 version ".tar.xz"))
10350 (sha256
10351 (base32
10352 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10353 (build-system meson-build-system)
10354 (native-inputs
10355 `(("gettext" ,gettext-minimal)
10356 ("pkg-config" ,pkg-config)))
10357 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10358 (synopsis "Video effects for Cheese and other GNOME applications")
10359 (description
10360 "A collection of GStreamer video filters and effects to be used in
10361 photo-booth-like software, such as Cheese.")
10362 (license license:gpl2+)))
10363
10364 (define-public cheese
10365 (package
10366 (name "cheese")
10367 (version "3.38.0")
10368 (source (origin
10369 (method url-fetch)
10370 (uri (string-append "mirror://gnome/sources/" name "/"
10371 (version-major+minor version) "/" name "-"
10372 version ".tar.xz"))
10373 (sha256
10374 (base32
10375 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
10376 (arguments
10377 `(#:glib-or-gtk? #t
10378 ;; Tests require GDK.
10379 #:tests? #f
10380 #:phases
10381 (modify-phases %standard-phases
10382 (add-after 'unpack 'skip-gtk-update-icon-cache
10383 (lambda _
10384 ;; Don't create 'icon-theme.cache'
10385 (substitute* "meson_post_install.py"
10386 (("gtk-update-icon-cache") (which "true")))
10387 #t))
10388 (add-after 'unpack 'patch-docbook-xml
10389 (lambda* (#:key inputs #:allow-other-keys)
10390 ;; Avoid a network connection attempt during the build.
10391 (substitute* '("docs/reference/cheese.xml"
10392 "docs/reference/cheese-docs.xml")
10393 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
10394 (string-append (assoc-ref inputs "docbook-xml")
10395 "/xml/dtd/docbook/docbookx.dtd")))
10396 #t))
10397 (add-after 'install 'wrap-cheese
10398 (lambda* (#:key inputs outputs #:allow-other-keys)
10399 (let ((out (assoc-ref outputs "out"))
10400 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10401 (wrap-program (string-append out "/bin/cheese")
10402 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10403 #t)))))
10404 (build-system meson-build-system)
10405 (native-inputs
10406 `(("docbook-xsl" ,docbook-xsl)
10407 ("docbook-xml" ,docbook-xml-4.3)
10408 ("gettext" ,gettext-minimal)
10409 ("glib:bin" ,glib "bin")
10410 ("gtk-doc" ,gtk-doc)
10411 ("itstool" ,itstool)
10412 ("libxml2" ,libxml2)
10413 ("libxslt" ,libxslt)
10414 ("pkg-config" ,pkg-config)
10415 ("vala" ,vala)))
10416 (propagated-inputs
10417 `(("gnome-video-effects" ,gnome-video-effects)
10418 ("clutter" ,clutter)
10419 ("clutter-gst" ,clutter-gst)
10420 ("clutter-gtk" ,clutter-gtk)
10421 ("libcanberra" ,libcanberra)
10422 ("gdk-pixbuf" ,gdk-pixbuf)
10423 ("glib" ,glib)
10424 ("gstreamer" ,gstreamer)))
10425 (inputs
10426 `(("gnome-desktop" ,gnome-desktop)
10427 ("gobject-introspection" ,gobject-introspection)
10428 ("gst-plugins-base" ,gst-plugins-base)
10429 ("gst-plugins-good" ,gst-plugins-good)
10430 ("gst-plugins-bad" ,gst-plugins-bad)
10431 ("gtk+" ,gtk+)
10432 ("libx11" ,libx11)
10433 ("libxtst" ,libxtst)))
10434 (home-page "https://wiki.gnome.org/Apps/Cheese")
10435 (synopsis "Webcam photo booth software for GNOME")
10436 (description
10437 "Cheese uses your webcam to take photos and videos. Cheese can also
10438 apply fancy special effects and lets you share the fun with others.")
10439 (license license:gpl2+)))
10440
10441 (define-public passwordsafe
10442 (package
10443 (name "passwordsafe")
10444 (version "3.99.2")
10445 (source
10446 (origin
10447 (method git-fetch)
10448 (uri (git-reference
10449 (url "https://gitlab.gnome.org/World/PasswordSafe")
10450 (commit version)))
10451 (file-name (git-file-name name version))
10452 (sha256
10453 (base32 "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf"))))
10454 (build-system meson-build-system)
10455 (arguments
10456 `(#:glib-or-gtk? #t
10457 #:phases
10458 (modify-phases %standard-phases
10459 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
10460 (lambda* (#:key outputs #:allow-other-keys)
10461 (let ((prog (string-append (assoc-ref outputs "out")
10462 "/bin/gnome-passwordsafe"))
10463 (pylib (string-append (assoc-ref outputs "out")
10464 "/lib/python"
10465 ,(version-major+minor
10466 (package-version python))
10467 "/site-packages")))
10468 (wrap-program prog
10469 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10470 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10471 #t))))))
10472 (native-inputs
10473 `(("desktop-file-utils" ,desktop-file-utils)
10474 ("gettext" ,gettext-minimal)
10475 ("glib:bin" ,glib "bin")
10476 ("gobject-introspection" ,gobject-introspection)
10477 ("gtk+:bin" ,gtk+ "bin")
10478 ("pkg-config" ,pkg-config)))
10479 (inputs
10480 `(("glib" ,glib)
10481 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10482 ("gtk+" ,gtk+)
10483 ("libhandy" ,libhandy-0.0)
10484 ("libpwquality" ,libpwquality)
10485 ("python-pygobject" ,python-pygobject)
10486 ("python-pykeepass" ,python-pykeepass)))
10487 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
10488 (synopsis "Password manager for the GNOME desktop")
10489 (description
10490 "Password Safe is a password manager which makes use of the KeePass v4
10491 format. It integrates perfectly with the GNOME desktop and provides an easy
10492 and uncluttered interface for the management of password databases.")
10493 (license license:gpl3+)))
10494
10495 (define-public sound-juicer
10496 (package
10497 (name "sound-juicer")
10498 (version "3.24.0")
10499 (source
10500 (origin
10501 (method url-fetch)
10502 (uri (string-append "mirror://gnome/sources/" name "/"
10503 (version-major+minor version) "/"
10504 name "-" version ".tar.xz"))
10505 (sha256
10506 (base32
10507 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10508 (build-system glib-or-gtk-build-system)
10509 (native-inputs
10510 `(("desktop-file-utils" ,desktop-file-utils)
10511 ("intltool" ,intltool)
10512 ("itstool" ,itstool)
10513 ("pkg-config" ,pkg-config)
10514 ("xmllint" ,libxml2)))
10515 (inputs
10516 `(("gtk+" ,gtk+)
10517 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10518 ("gstreamer" ,gstreamer)
10519 ("gst-plugins-base" ,gst-plugins-base)
10520 ("gst-plugins-good" ,gst-plugins-good)
10521 ("iso-codes" ,iso-codes)
10522 ("libbrasero-media3" ,brasero)
10523 ("libcanberra" ,libcanberra)
10524 ("libdiscid" ,libdiscid)
10525 ("libmusicbrainz" ,libmusicbrainz)
10526 ("neon" ,neon)))
10527 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10528 (synopsis "Audio music cd ripper")
10529 (description "Sound Juicer extracts audio from compact discs and convert it
10530 into audio files that a personal computer or digital audio player can play.
10531 It supports ripping to any audio codec supported by a GStreamer plugin, such as
10532 mp3, Ogg Vorbis and FLAC")
10533 (license license:gpl2+)))
10534
10535 (define-public soundconverter
10536 (package
10537 (name "soundconverter")
10538 (version "3.0.2")
10539 (source
10540 (origin
10541 (method url-fetch)
10542 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10543 version "/+download/"
10544 "soundconverter-" version ".tar.xz"))
10545
10546 (sha256
10547 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
10548 (build-system glib-or-gtk-build-system)
10549 (arguments
10550 `(#:imported-modules ((guix build python-build-system)
10551 (guix build glib-or-gtk-build-system)
10552 ,@%gnu-build-system-modules)
10553
10554 #:modules ((guix build glib-or-gtk-build-system)
10555 (guix build utils)
10556 ((guix build gnu-build-system) #:prefix gnu:)
10557 ((guix build python-build-system) #:prefix python:))
10558
10559 #:phases
10560 (modify-phases %standard-phases
10561 (add-after 'install 'wrap-soundconverter-for-python
10562 (assoc-ref python:%standard-phases 'wrap))
10563 (add-after 'install 'wrap-soundconverter
10564 (lambda* (#:key inputs outputs #:allow-other-keys)
10565 (let ((out (assoc-ref outputs "out"))
10566 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10567 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10568 (wrap-program (string-append out "/bin/soundconverter")
10569 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10570 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10571 #t)))))
10572 (native-inputs
10573 `(("intltool" ,intltool)
10574 ("pkg-config" ,pkg-config)
10575 ("glib:bin" ,glib "bin")))
10576 (inputs
10577 `(("gtk+" ,gtk+)
10578 ("python" ,python)
10579 ("python-pygobject" ,python-pygobject)
10580 ("gstreamer" ,gstreamer)
10581 ("gst-plugins-base" ,gst-plugins-base)))
10582 (home-page "https://soundconverter.org/")
10583 (synopsis "Convert between audio formats with a graphical interface")
10584 (description
10585 "SoundConverter supports converting between many audio formats including
10586 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10587 configurable file renaming. ")
10588 (license license:gpl3)))
10589
10590 (define-public workrave
10591 (package
10592 (name "workrave")
10593 (version "1.10.42")
10594 (source
10595 (origin
10596 (method git-fetch)
10597 (uri (git-reference
10598 (url "https://github.com/rcaelers/workrave")
10599 (commit (string-append "v" (string-map
10600 (match-lambda (#\. #\_) (chr chr))
10601 version)))))
10602 (file-name (git-file-name name version))
10603 (sha256
10604 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
10605 (build-system glib-or-gtk-build-system)
10606 (arguments
10607 ;; The only tests are maintainer tests (in po/), which fail.
10608 `(#:tests? #f))
10609 (inputs `(("glib" ,glib)
10610 ("gtk+" ,gtk+)
10611 ("gdk-pixbuf" ,gdk-pixbuf)
10612 ("gtkmm" ,gtkmm)
10613 ("glibmm" ,glibmm)
10614 ("libx11" ,libx11)
10615 ("libxtst" ,libxtst)
10616 ("dconf" ,dconf)
10617 ("libice" ,libice)
10618 ("libsm" ,libsm)
10619 ("libxscrnsaver" ,libxscrnsaver)))
10620 (native-inputs `(("boost" ,boost)
10621 ("pkg-config" ,pkg-config)
10622 ("gettext" ,gettext-minimal)
10623 ("autoconf" ,autoconf)
10624 ("autoconf-archive" , autoconf-archive)
10625 ("automake" ,automake)
10626 ("libtool" ,libtool)
10627 ("intltool" ,intltool)
10628 ("gobject-introspection" ,gobject-introspection)
10629 ("python3" ,python-3)
10630 ("python-jinja2" ,python-jinja2)))
10631 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10632 (description
10633 "Workrave is a program that assists in the recovery and prevention of
10634 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10635 micro-pauses and rest breaks, and restricts you to your daily limit.")
10636 (home-page "http://www.workrave.org")
10637 (license license:gpl3+)))
10638
10639 (define-public ghex
10640 (package
10641 (name "ghex")
10642 (version "3.18.4")
10643 (source (origin
10644 (method url-fetch)
10645 (uri (string-append "mirror://gnome/sources/ghex/"
10646 (version-major+minor version) "/"
10647 "ghex-" version ".tar.xz"))
10648 (sha256
10649 (base32
10650 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10651 (build-system meson-build-system)
10652 (arguments
10653 '(#:glib-or-gtk? #t
10654 #:phases
10655 (modify-phases %standard-phases
10656 (add-after 'unpack 'skip-gtk-update-icon-cache
10657 ;; Don't create 'icon-theme.cache'.
10658 (lambda _
10659 (substitute* "meson_post_install.py"
10660 (("gtk-update-icon-cache") (which "true")))
10661 #t)))))
10662 (native-inputs
10663 `(("pkg-config" ,pkg-config)
10664 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
10665 ("gnome-common" ,gnome-common)
10666 ("which" ,which)
10667 ("intltool" ,intltool)
10668 ("yelp-tools" ,yelp-tools)
10669 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
10670 (inputs
10671 `(("atk" ,atk)
10672 ("gtk" ,gtk+)))
10673 (synopsis "GNOME hexadecimal editor")
10674 (description "The GHex program can view and edit files in two ways:
10675 hexadecimal or ASCII. It is useful for editing binary files in general.")
10676 (home-page "https://wiki.gnome.org/Apps/Ghex")
10677 (license license:gpl2)))
10678
10679 (define-public libdazzle
10680 (package
10681 (name "libdazzle")
10682 (version "3.37.1")
10683 (source (origin
10684 (method url-fetch)
10685 (uri (string-append "mirror://gnome/sources/libdazzle/"
10686 (version-major+minor version) "/"
10687 "libdazzle-" version ".tar.xz"))
10688 (sha256
10689 (base32
10690 "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
10691 (build-system meson-build-system)
10692 (arguments
10693 `(#:phases
10694 (modify-phases %standard-phases
10695 (add-before 'check 'pre-check
10696 (lambda _
10697 ;; Tests require a running X server.
10698 (system "Xvfb :1 &")
10699 (setenv "DISPLAY" ":1")
10700 #t)))))
10701 (native-inputs
10702 `(("glib" ,glib "bin") ; glib-compile-resources
10703 ("pkg-config" ,pkg-config)
10704 ;; For tests.
10705 ("xorg-server" ,xorg-server-for-tests)))
10706 (inputs
10707 `(("glib" ,glib)
10708 ("gobject-introspection" ,gobject-introspection)
10709 ("gtk+" ,gtk+)
10710 ("vala" ,vala)))
10711 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10712 (synopsis "Companion library to GObject and Gtk+")
10713 (description "The libdazzle library is a companion library to GObject and
10714 Gtk+. It provides various features that the authors wish were in the
10715 underlying library but cannot for various reasons. In most cases, they are
10716 wildly out of scope for those libraries. In other cases, they are not quite
10717 generic enough to work for everyone.")
10718 (license license:gpl3+)))
10719
10720 (define-public evolution
10721 (package
10722 (name "evolution")
10723 (version "3.34.2")
10724 (source (origin
10725 (method url-fetch)
10726 (uri (string-append "mirror://gnome/sources/evolution/"
10727 (version-major+minor version) "/"
10728 "evolution-" version ".tar.xz"))
10729 (sha256
10730 (base32
10731 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))
10732 (patches (search-patches "evolution-CVE-2020-11879.patch"))))
10733 (build-system cmake-build-system)
10734 (arguments
10735 `(#:imported-modules (,@%cmake-build-system-modules
10736 (guix build glib-or-gtk-build-system))
10737 #:modules ((guix build cmake-build-system)
10738 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10739 (guix build utils))
10740 #:configure-flags
10741 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
10742 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
10743 ; in four years and cannot be built.
10744 #:phases
10745 (modify-phases %standard-phases
10746 ;; The build system attempts to install user interface modules to the
10747 ;; output directory of the "evolution-data-server" package. This
10748 ;; change redirects that change.
10749 (add-after 'unpack 'patch-ui-module-dir
10750 (lambda* (#:key outputs #:allow-other-keys)
10751 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10752 (("\\$\\{edsuimoduledir\\}")
10753 (string-append (assoc-ref outputs "out")
10754 "/lib/evolution-data-server/ui-modules")))
10755 #t))
10756 (add-after 'install 'glib-or-gtk-compile-schemas
10757 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10758 (add-after 'install 'glib-or-gtk-wrap
10759 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10760 (native-inputs
10761 `(("glib" ,glib "bin") ; glib-mkenums
10762 ("pkg-config" ,pkg-config)
10763 ("intltool" ,intltool)
10764 ("itstool" ,itstool)))
10765 (inputs
10766 `(("enchant" ,enchant)
10767 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10768 ("gcr" ,gcr)
10769 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10770 ("gnome-autoar" ,gnome-autoar)
10771 ("gnome-desktop" ,gnome-desktop)
10772 ("gspell" ,gspell)
10773 ("highlight" ,highlight)
10774 ("libcanberra" ,libcanberra)
10775 ("libgweather" ,libgweather)
10776 ("libnotify" ,libnotify)
10777 ("libsoup" ,libsoup)
10778 ("nss" ,nss)
10779 ("openldap" ,openldap)
10780 ("webkitgtk" ,webkitgtk)
10781 ("ytnef" ,ytnef)))
10782 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10783 (synopsis "Manage your email, contacts and schedule")
10784 (description "Evolution is a personal information management application
10785 that provides integrated mail, calendaring and address book
10786 functionality.")
10787 ;; See COPYING for details.
10788 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
10789 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
10790 license:lgpl2.1+)))) ; smime/lib/*
10791
10792 (define-public gthumb
10793 (package
10794 (name "gthumb")
10795 (version "3.10.2")
10796 (source (origin
10797 (method url-fetch)
10798 (uri (string-append "mirror://gnome/sources/gthumb/"
10799 (version-major+minor version) "/"
10800 "gthumb-" version ".tar.xz"))
10801 (sha256
10802 (base32
10803 "14sw8d37g1lkp44dwsgyxjjsgh5pnpp4wq00mcy9p3rp30lf9spx"))))
10804 (build-system meson-build-system)
10805 (arguments
10806 `(#:glib-or-gtk? #t
10807 #:configure-flags
10808 ;; Ensure the RUNPATH contains all installed library locations.
10809 (list (string-append "-Dc_link_args=-Wl,-rpath="
10810 (assoc-ref %outputs "out")
10811 "/lib/gthumb/extensions")
10812 (string-append "-Dcpp_link_args=-Wl,-rpath="
10813 (assoc-ref %outputs "out")
10814 "/lib/gthumb/extensions"))))
10815 (native-inputs
10816 `(("pkg-config" ,pkg-config)
10817 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10818 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10819 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10820 ("intltool" ,intltool)
10821 ("itstool" ,itstool)))
10822 (inputs
10823 `(("exiv2" ,exiv2)
10824 ("gtk" ,gtk+)
10825 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10826 ("gstreamer" ,gstreamer)
10827 ("clutter" ,clutter)
10828 ("clutter-gst" ,clutter-gst)
10829 ("clutter-gtk" ,clutter-gtk)
10830 ("libjpeg" ,libjpeg-turbo)
10831 ("libtiff" ,libtiff)
10832 ("libraw" ,libraw)))
10833 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10834 (synopsis "GNOME image viewer and browser")
10835 (description "GThumb is an image viewer, browser, organizer, editor and
10836 advanced image management tool")
10837 (license license:gpl2+)))
10838
10839 (define-public terminator
10840 (package
10841 (name "terminator")
10842 (version "1.92")
10843 (source (origin
10844 (method url-fetch)
10845 (uri (string-append "https://github.com/gnome-" name "/" name "/"
10846 "releases/download/v" version "/"
10847 name "-" version ".tar.gz"))
10848 (sha256
10849 (base32
10850 "1wbkfp0nk6x9bcwi681zy30qmrp4h754sdz6b7hi9j22mmvdd50z"))))
10851 (build-system python-build-system)
10852 (native-inputs
10853 `(("gettext" ,gettext-minimal)
10854 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10855 ("gobject-introspection" ,gobject-introspection)
10856 ("intltool" ,intltool)
10857 ("pkg-config" ,pkg-config)
10858 ("python-psutil" ,python-psutil)
10859 ("python-pytest-runner" ,python-pytest-runner)
10860 ("python-pytest" ,python-pytest)))
10861 (inputs
10862 `(("cairo" ,cairo)
10863 ("dbus-glib" ,dbus-glib)
10864 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10865 ("gtk+" ,gtk+)
10866 ("python-pycairo" ,python-pycairo)
10867 ("python-pygobject" ,python-pygobject)
10868 ("vte" ,vte)))
10869 (propagated-inputs
10870 `(("python-configobj" ,python-configobj)))
10871 (arguments
10872 `(#:imported-modules ((guix build glib-or-gtk-build-system)
10873 ,@%python-build-system-modules)
10874 #:modules ((guix build python-build-system)
10875 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10876 (guix build utils))
10877 #:phases
10878 (modify-phases %standard-phases
10879 (add-after
10880 'install 'wrap-program
10881 (lambda* (#:key outputs #:allow-other-keys)
10882 (let ((prog (string-append (assoc-ref outputs "out")
10883 "/bin/terminator"))
10884 (pylib (string-append (assoc-ref outputs "out")
10885 "/lib/python"
10886 ,(version-major+minor
10887 (package-version python))
10888 "/site-packages")))
10889 (wrap-program prog
10890 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
10891 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10892 #t)))
10893 (add-after 'wrap-program 'glib-or-gtk-wrap
10894 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10895 (home-page "https://gnome-terminator.org/")
10896 (synopsis "Store and run multiple GNOME terminals in one window")
10897 (description
10898 "Terminator allows you to run multiple GNOME terminals in a grid and
10899 tabs, and it supports drag and drop re-ordering of terminals.")
10900 (license license:gpl2)))
10901
10902 (define-public libhandy
10903 (package
10904 (name "libhandy")
10905 (version "1.0.3")
10906 (source
10907 (origin
10908 (method git-fetch)
10909 (uri (git-reference
10910 (url "https://gitlab.gnome.org/GNOME/libhandy")
10911 (commit version)))
10912 (file-name (git-file-name name version))
10913 (sha256
10914 (base32 "0flgwlm921801i3ns0dwqpnxl89f3rzn4y9h723i13bmflch3in7"))))
10915 (build-system meson-build-system)
10916 (arguments
10917 `(#:configure-flags
10918 '("-Dglade_catalog=enabled"
10919 "-Dgtk_doc=true")
10920 #:phases
10921 (modify-phases %standard-phases
10922 (add-before 'check 'pre-check
10923 (lambda _
10924 ;; Tests require a running X server.
10925 (system "Xvfb :1 &")
10926 (setenv "DISPLAY" ":1")
10927 #t)))))
10928 (inputs
10929 `(("gtk+" ,gtk+)
10930 ("glade" ,glade3)
10931 ("libxml2" ,libxml2)))
10932 (native-inputs
10933 `(("glib:bin" ,glib "bin")
10934 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10935 ("vala" ,vala)
10936 ("gtk-doc" ,gtk-doc)
10937 ("pkg-config" ,pkg-config)
10938 ("gettext" ,gettext-minimal)
10939
10940 ;; Test suite dependencies.
10941 ("xorg-server" ,xorg-server-for-tests)
10942 ("hicolor-icon-theme" ,hicolor-icon-theme)))
10943 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
10944 (synopsis "Library full of GTK+ widgets for mobile phones")
10945 (description "The aim of the handy library is to help with developing user
10946 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10947 for usage on small and big screens.")
10948 (license license:lgpl2.1+)))
10949
10950 (define-public libhandy-0.0
10951 (package
10952 (inherit libhandy)
10953 (version "0.0.13")
10954 (source
10955 (origin
10956 (method git-fetch)
10957 (uri (git-reference
10958 (url "https://gitlab.gnome.org/GNOME/libhandy")
10959 (commit (string-append "v" version))))
10960 (file-name (git-file-name "libhandy" version))
10961 (sha256
10962 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
10963 (arguments
10964 (substitute-keyword-arguments (package-arguments libhandy)
10965 ((#:configure-flags flags)
10966 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
10967
10968 (define-public libgit2-glib
10969 (package
10970 (name "libgit2-glib")
10971 (version "0.99.0.1")
10972 (source (origin
10973 (method url-fetch)
10974 (uri (string-append "mirror://gnome/sources/" name "/"
10975 (version-major+minor version) "/"
10976 name "-" version ".tar.xz"))
10977 (sha256
10978 (base32
10979 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10980 (build-system meson-build-system)
10981 (native-inputs
10982 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
10983 ("gobject-introspection" ,gobject-introspection)
10984 ("pkg-config" ,pkg-config)
10985 ("python-pygobject" ,python-pygobject)
10986 ("python-wrapper" ,python-wrapper)
10987 ("vala" ,vala)))
10988 (inputs
10989 `(("glib" ,glib)
10990 ("libssh2" ,libssh2)))
10991 (propagated-inputs
10992 `(;; In Requires of libgit2-glib.pc.
10993 ("libgit2" ,libgit2)))
10994 (synopsis "GLib wrapper around the libgit2 Git access library")
10995 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
10996 access library. It only implements the core plumbing functions, not really the
10997 higher level porcelain stuff.")
10998 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
10999 (license license:gpl2+)))
11000
11001 (define-public gitg
11002 (package
11003 (name "gitg")
11004 (version "3.32.1")
11005 (source (origin
11006 (method url-fetch)
11007 (uri (string-append "mirror://gnome/sources/" name "/"
11008 (version-major+minor version) "/"
11009 name "-" version ".tar.xz"))
11010 (sha256
11011 (base32
11012 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
11013 (build-system meson-build-system)
11014 (arguments
11015 `(#:glib-or-gtk? #t
11016 #:phases
11017 (modify-phases %standard-phases
11018 (add-after 'unpack 'disable-post-install-partially
11019 (lambda _
11020 (substitute* "meson_post_install.py"
11021 (("'python'") ; there are no python sources to compile
11022 (string-append "'" (which "true") "'"))
11023 (("gtk-update-icon-cache") (which "true")))
11024 #t))
11025 (add-after 'unpack 'fix-test-sources
11026 (lambda _
11027 (substitute* "tests/libgitg/test-commit.vala"
11028 (("/bin/bash") (which "bash")))
11029 #t))
11030 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11031 (lambda* (#:key outputs #:allow-other-keys)
11032 (let ((prog (string-append (assoc-ref outputs "out")
11033 "/bin/gitg")))
11034 (wrap-program prog
11035 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11036 #t))))))
11037 (inputs
11038 `(("glib" ,glib)
11039 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11040 ("gtk+" ,gtk+)
11041 ("gtkspell3" ,gtkspell3)
11042 ("gtksourceview" ,gtksourceview-3)
11043 ("json-glib" ,json-glib)
11044 ("libdazzle" ,libdazzle)
11045 ("libgee" ,libgee)
11046 ("libgit2-glib" ,libgit2-glib)
11047 ("libpeas" ,libpeas)
11048 ("libsecret" ,libsecret)
11049 ("libsoup" ,libsoup)
11050 ("libxml2" ,libxml2)))
11051 (native-inputs
11052 `(("glib:bin" ,glib "bin")
11053 ("gtk+:bin" ,gtk+ "bin")
11054 ("gobject-introspection" ,gobject-introspection)
11055 ("intltool" ,intltool)
11056 ("pkg-config" ,pkg-config)
11057 ("vala" ,vala)))
11058 (synopsis "Graphical user interface for git")
11059 (description
11060 "gitg is a graphical user interface for git. It aims at being a small,
11061 fast and convenient tool to visualize the history of git repositories.
11062 Besides visualization, gitg also provides several utilities to manage your
11063 repository and commit your work.")
11064 (home-page "https://wiki.gnome.org/Apps/Gitg")
11065 (license license:gpl2+)))
11066
11067 (define-public gamin
11068 (package
11069 (name "gamin")
11070 (version "0.1.10")
11071 (source (origin
11072 (method url-fetch)
11073 (uri (string-append "mirror://gnome/sources/" name "/"
11074 (version-major+minor version) "/"
11075 name "-" version ".tar.bz2"))
11076 (sha256
11077 (base32
11078 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11079 (build-system gnu-build-system)
11080 (arguments
11081 `(#:phases
11082 (modify-phases %standard-phases
11083 (add-after 'unpack 'remove-deprecated-macro
11084 (lambda _
11085 (substitute* '("server/gam_node.c"
11086 "server/gam_subscription.h"
11087 "server/gam_node.h"
11088 "server/gam_subscription.c")
11089 (("G_CONST_RETURN") "const"))
11090 #t)))))
11091 (inputs
11092 `(("glib" ,glib)))
11093 (native-inputs
11094 `(("intltool" ,intltool)
11095 ("pkg-config" ,pkg-config)))
11096 (home-page "https://people.gnome.org/~veillard/gamin/")
11097 (synopsis "File alteration monitor")
11098 (description
11099 "Gamin is a file and directory monitoring system defined to be a subset
11100 of the FAM (File Alteration Monitor) system. This is a service provided by a
11101 library which detects when a file or a directory has been modified.")
11102 (license license:gpl2+)))
11103
11104 (define-public gnome-mahjongg
11105 (package
11106 (name "gnome-mahjongg")
11107 (version "3.35.1")
11108 (source (origin
11109 (method git-fetch)
11110 (uri (git-reference
11111 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
11112 (commit version)))
11113 (file-name (git-file-name name version))
11114 (sha256
11115 (base32
11116 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
11117 (build-system meson-build-system)
11118 (arguments
11119 `(#:glib-or-gtk? #t))
11120 (native-inputs
11121 `(("appstream-glib" ,appstream-glib)
11122 ("gettext" ,gettext-minimal)
11123 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11124 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11125 ("itstool" ,itstool)
11126 ("pkg-config" ,pkg-config)
11127 ("vala" ,vala)))
11128 (propagated-inputs
11129 `(("dconf" ,dconf)))
11130 (inputs
11131 `(("glib" ,glib)
11132 ("gtk+" ,gtk+)
11133 ("librsvg" ,librsvg)))
11134 (synopsis "Mahjongg tile-matching game")
11135 (description "GNOME Mahjongg is a game based on the classic Chinese
11136 tile-matching game Mahjong. It features multiple board layouts, tile themes,
11137 and a high score table.")
11138 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11139 (license license:gpl2+)))
11140
11141 (define-public gnome-themes-extra
11142 (package
11143 (name "gnome-themes-extra")
11144 (version "3.28")
11145 (source
11146 (origin
11147 (method url-fetch)
11148 (uri (string-append "mirror://gnome/sources/" name "/"
11149 (version-major+minor version) "/" name "-"
11150 version ".tar.xz"))
11151 (sha256
11152 (base32
11153 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11154 (build-system gnu-build-system)
11155 (arguments
11156 '(#:configure-flags
11157 ;; Don't create 'icon-theme.cache'.
11158 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11159 (true (string-append coreutils "/bin/true")))
11160 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11161 (native-inputs
11162 `(("glib:bin" ,glib "bin")
11163 ("intltool" ,intltool)
11164 ("pkg-config" ,pkg-config)))
11165 (inputs
11166 `(("glib" ,glib)
11167 ("gtk+" ,gtk+)
11168 ("gtk+-2" ,gtk+-2)
11169 ("librsvg" ,librsvg)
11170 ("libxml2" ,libxml2)))
11171 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11172 (synopsis "GNOME Extra Themes")
11173 (description "This package provides themes and related elements that don't
11174 really fit in other upstream packages. It offers legacy support for GTK+ 2
11175 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11176 index files needed for Adwaita to be used outside of GNOME.")
11177 (license license:lgpl2.1+)))
11178
11179 (define-public gnote
11180 (package
11181 (name "gnote")
11182 (version "3.38.1")
11183 (source
11184 (origin
11185 (method url-fetch)
11186 (uri (string-append "mirror://gnome/sources/" name "/"
11187 (version-major+minor version) "/"
11188 "gnote-" version ".tar.xz"))
11189 (sha256
11190 (base32 "1adjfjhmsm2d33999khjyzvli6kiz1jlzavn77jhd49kfzhxa9y4"))))
11191 (build-system glib-or-gtk-build-system)
11192 (native-inputs
11193 `(("desktop-file-utils" ,desktop-file-utils)
11194 ("glib:bin" ,glib "bin")
11195 ("gobject-introspection" ,gobject-introspection)
11196 ("intltool" ,intltool)
11197 ("itstool" ,itstool)
11198 ("pkg-config" ,pkg-config)
11199 ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
11200 (inputs
11201 `(("glibmm" ,glibmm)
11202 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11203 ("gspell" ,gspell)
11204 ("gtk+" ,gtk+)
11205 ("gtkmm" ,gtkmm)
11206 ("libsecret" ,libsecret)
11207 ("libuuid" ,util-linux "lib")
11208 ("libxml2" ,libxml2)
11209 ("libxslt" ,libxslt)))
11210 (synopsis "Note-taking application for the GNOME desktop")
11211 (description
11212 "Gnote is a note-taking application written for the GNOME desktop
11213 environment.")
11214 (home-page "https://wiki.gnome.org/Apps/Gnote")
11215 (license license:gpl3+)))
11216
11217 (define-public polari
11218 (package
11219 (name "polari")
11220 (version "3.36.3")
11221 (source (origin
11222 (method url-fetch)
11223 (uri (string-append "mirror://gnome/sources/polari/"
11224 (version-major+minor version)
11225 "/polari-" version ".tar.xz"))
11226 (sha256
11227 (base32
11228 "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
11229 (build-system meson-build-system)
11230 (arguments
11231 `(#:glib-or-gtk? #t
11232 #:phases
11233 (modify-phases %standard-phases
11234 (add-after 'unpack 'skip-gtk-update-icon-cache
11235 (lambda _
11236 (substitute* "meson/meson-postinstall.sh"
11237 (("gtk-update-icon-cache") (which "true")))
11238 #t))
11239 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11240 (lambda* (#:key outputs #:allow-other-keys)
11241 (let ((prog (string-append (assoc-ref outputs "out")
11242 "/bin/polari")))
11243 (wrap-program prog
11244 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11245 #t))))))
11246 (inputs
11247 `(("glib" ,glib)
11248 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11249 ("gspell" ,gspell)
11250 ("gtk+" ,gtk+)
11251 ("gjs" ,gjs)
11252 ("libsecret" ,libsecret)
11253 ("libsoup" ,libsoup)
11254 ("telepathy-glib" ,telepathy-glib)
11255 ("telepathy-logger" ,telepathy-logger)))
11256 (native-inputs
11257 `(("glib:bin" ,glib "bin")
11258 ("gobject-introspection" ,gobject-introspection)
11259 ("intltool" ,intltool)
11260 ("pkg-config" ,pkg-config)
11261 ("yelp-tools" ,yelp-tools)))
11262 (propagated-inputs
11263 `(("telepathy-idle" ,telepathy-idle)
11264 ("telepathy-mission-control" ,telepathy-mission-control)))
11265 (synopsis "Simple IRC Client")
11266 (description
11267 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11268 integrate seamlessly with the GNOME desktop.")
11269 (home-page "https://wiki.gnome.org/Apps/Polari")
11270 (license license:gpl2+)))
11271
11272 (define-public gnome-boxes
11273 (package
11274 (name "gnome-boxes")
11275 (version "3.36.6")
11276 (source
11277 (origin
11278 (method url-fetch)
11279 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11280 (version-major+minor version) "/"
11281 "gnome-boxes-" version ".tar.xz"))
11282 (sha256
11283 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
11284 (build-system meson-build-system)
11285 (arguments
11286 '(#:glib-or-gtk? #t
11287 #:configure-flags (list "-Drdp=false"
11288 (string-append "-Dc_link_args=-Wl,-rpath="
11289 (assoc-ref %outputs "out")
11290 "/lib/gnome-boxes"))))
11291 (native-inputs
11292 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
11293 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11294 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11295 ("itstool" ,itstool)
11296 ("intltool" ,intltool)
11297 ("vala" ,vala)
11298 ("pkg-config" ,pkg-config)))
11299 (inputs
11300 `(("libarchive" ,libarchive)
11301 ("glib-networking" ,glib-networking) ;for TLS support
11302 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11303 ("gtk" ,gtk+)
11304 ("gtk-vnc" ,gtk-vnc)
11305 ("libosinfo" ,libosinfo)
11306 ("libsecret" ,libsecret)
11307 ("libsoup" ,libsoup)
11308 ("libusb" ,libusb)
11309 ("libvirt" ,libvirt)
11310 ("libvirt-glib" ,libvirt-glib)
11311 ("libxml" ,libxml2)
11312 ("spice-gtk" ,spice-gtk)
11313 ("sparql-query" ,sparql-query)
11314 ("vte" ,vte)
11315 ("webkitgtk" ,webkitgtk)
11316 ("tracker" ,tracker)
11317 ("libgudev" ,libgudev)))
11318 (home-page "https://wiki.gnome.org/Apps/Boxes")
11319 (synopsis "View, access, and manage remote and virtual systems")
11320 (description "GNOME Boxes is a simple application to view, access, and
11321 manage remote and virtual systems. Note that this application requires the
11322 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11323 @command{info '(guix) Virtualization Services'} to learn how to configure
11324 these services on the Guix System.")
11325 (license (list
11326 ;; For data/icons/empty-boxes.png.
11327 license:cc-by2.0
11328 ;; For all others.
11329 license:lgpl2.0+))))
11330
11331 (define-public geary
11332 (package
11333 (name "geary")
11334 (version "3.34.1")
11335 (source (origin
11336 (method git-fetch)
11337 (uri (git-reference
11338 (url "https://gitlab.gnome.org/GNOME/geary")
11339 (commit version)))
11340 (file-name (git-file-name name version))
11341 (sha256
11342 (base32
11343 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))
11344 (patches (search-patches "geary-CVE-2020-24661.patch"))))
11345 (build-system meson-build-system)
11346 (arguments
11347 `(#:glib-or-gtk? #t
11348 #:phases (modify-phases %standard-phases
11349 (add-after 'unpack 'disable-failing-tests
11350 (lambda _
11351 (substitute* "test/meson.build"
11352 (("test\\('client-tests', geary_test_client_bin\\)")
11353 ""))
11354 #t))
11355 (add-after 'unpack 'disable-postinstall-script
11356 (lambda _
11357 (substitute* "meson.build"
11358 (("meson.add_install_script\\(\
11359 join_paths\\('build-aux', 'post_install.py'\\)\\)")
11360 ""))
11361 #t))
11362 (add-before 'check 'setup-xvfb
11363 (lambda _
11364 (system "Xvfb :1 &")
11365 (setenv "DISPLAY" ":1")
11366 #t)))))
11367 (inputs
11368 `(("enchant" ,enchant)
11369 ("folks" ,folks)
11370 ("gcr" ,gcr)
11371 ("glib" ,glib)
11372 ("gmime" ,gmime-2.6)
11373 ("gnome-online-accounts:lib"
11374 ,gnome-online-accounts "lib")
11375 ("gspell" ,gspell)
11376 ("gtk+" ,gtk+)
11377 ("iso-codes" ,iso-codes)
11378 ("json-glib" ,json-glib)
11379 ("libcanberra" ,libcanberra)
11380 ("libgee" ,libgee)
11381 ("libhandy" ,libhandy-0.0)
11382 ("libpeas" ,libpeas)
11383 ("libsecret" ,libsecret)
11384 ("libunwind" ,libunwind)
11385 ("sqlite" ,sqlite)
11386 ("webkitgtk" ,webkitgtk)
11387 ("ytnef" ,ytnef)))
11388 (native-inputs
11389 `(("appstream-glib" ,appstream-glib)
11390 ("cmake-minimal" ,cmake-minimal)
11391 ("desktop-file-utils" ,desktop-file-utils)
11392 ("gettext" ,gettext-minimal)
11393 ("glib:bin" ,glib "bin")
11394 ("gobject-introspection" ,gobject-introspection)
11395 ("itstool" ,itstool)
11396 ("libarchive" ,libarchive)
11397 ("libxml2" ,libxml2)
11398 ("pkg-config" ,pkg-config)
11399 ("vala" ,vala)
11400 ("xvfb" ,xorg-server-for-tests)))
11401 (synopsis "GNOME email application built around conversations")
11402 (description
11403 "Geary collects related messages together into conversations,
11404 making it easy to find and follow your discussions. Full-text and keyword
11405 search makes it easy to find the email you are looking for. Geary's
11406 full-featured composer lets you send rich, styled text with images, links, and
11407 lists, but also send lightweight, easy to read text messages. Geary
11408 automatically picks up your existing GNOME Online Accounts, and adding more is
11409 easy. Geary has a clean, fast, modern interface that works like you want it
11410 to.")
11411 (home-page "https://wiki.gnome.org/Apps/Geary")
11412 (license (list
11413 ;; geary
11414 license:lgpl2.1+
11415 ;; icons
11416 license:cc-by3.0
11417 license:cc-by-sa3.0
11418 license:public-domain
11419 ;; snowball
11420 license:bsd-2))))
11421
11422 (define-public glabels
11423 (package
11424 (name "glabels")
11425 (version "3.4.1")
11426 (source
11427 (origin
11428 (method url-fetch)
11429 (uri (string-append "mirror://gnome/sources/" name "/"
11430 (version-major+minor version) "/"
11431 "glabels-" version ".tar.xz"))
11432 (sha256
11433 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
11434 (build-system glib-or-gtk-build-system)
11435 (native-inputs
11436 `(("gettext" ,gettext-minimal)
11437 ("glib:bin" ,glib "bin")
11438 ("intltool" ,intltool)
11439 ("itstool" ,itstool)
11440 ("pkg-config" ,pkg-config)))
11441 (inputs
11442 `(("gtk+" ,gtk+)
11443 ("librsvg" ,librsvg)
11444 ("libxml2" ,libxml2)))
11445 (home-page "https://glabels.org/")
11446 (synopsis "Program for creating labels and business cards")
11447 (description
11448 "gLabels is a program for creating labels and business cards. It is
11449 designed to work with various laser/ink-jet peel-off label and business
11450 card sheets that you’ll find at most office supply stores.")
11451 (license license:gpl3+)))
11452
11453 ;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
11454 (define-public gnome-latex
11455 (package
11456 (name "gnome-latex")
11457 (version "3.36.0")
11458 (source
11459 (origin
11460 (method url-fetch)
11461 (uri (string-append "mirror://gnome/sources/" name "/"
11462 (version-major+minor version) "/"
11463 "gnome-latex-" version ".tar.xz"))
11464 (sha256
11465 (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
11466 (build-system glib-or-gtk-build-system)
11467 (native-inputs
11468 `(("gettext" ,gettext-minimal)
11469 ("glib:bin" ,glib "bin")
11470 ("gobject-introspection" ,gobject-introspection)
11471 ("gtk-doc" ,gtk-doc)
11472 ("intltool" ,intltool)
11473 ("itstool" ,itstool)
11474 ("pkg-config" ,pkg-config)
11475 ("vala" ,vala)))
11476 (inputs
11477 `(("amtk" ,amtk)
11478 ("dconf" ,dconf)
11479 ("glib" ,glib)
11480 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11481 ("gspell" ,gspell)
11482 ("gtk+" ,gtk+)
11483 ("gtksourceview" ,gtksourceview)
11484 ("libgee" ,libgee)
11485 ("tepl" ,tepl)
11486 ("uchardet" ,uchardet)))
11487 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
11488 (synopsis "LaTeX editor for the GNOME desktop")
11489 (description
11490 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
11491 such as build tools, completion of LaTeX commands, structure navigation,
11492 symbol tables, document templates, project management, spell-checking, menus
11493 and toolbars.")
11494 (license license:gpl3+)))
11495
11496 (define-public setzer
11497 (package
11498 (name "setzer")
11499 (version "0.4.1")
11500 (source
11501 (origin
11502 (method git-fetch)
11503 (uri (git-reference
11504 (url "https://github.com/cvfosammmm/Setzer")
11505 (commit (string-append "v" version))))
11506 (file-name (git-file-name name version))
11507 (sha256
11508 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
11509 (build-system meson-build-system)
11510 (arguments
11511 `(#:glib-or-gtk? #t
11512 #:phases
11513 (modify-phases %standard-phases
11514 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11515 (lambda* (#:key outputs #:allow-other-keys)
11516 (let ((prog (string-append (assoc-ref outputs "out")
11517 "/bin/setzer"))
11518 (pylib (string-append (assoc-ref outputs "out")
11519 "/lib/python"
11520 ,(version-major+minor
11521 (package-version python))
11522 "/site-packages")))
11523 (wrap-program prog
11524 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
11525 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11526 #t))))))
11527 (native-inputs
11528 `(("desktop-file-utils" ,desktop-file-utils)
11529 ("gettext" ,gettext-minimal)
11530 ("glib:bin" ,glib "bin")
11531 ("gobject-introspection" ,gobject-introspection)
11532 ("gtk+:bin" ,gtk+ "bin")))
11533 (inputs
11534 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11535 ("gspell" ,gspell)
11536 ("gtk+" ,gtk+)
11537 ("gtksourceview" ,gtksourceview)
11538 ("pango" ,pango)
11539 ("poppler" ,poppler)
11540 ("python-pdfminer" ,python-pdfminer-six)
11541 ("python-pycairo" ,python-pycairo)
11542 ("python-pygobject" ,python-pygobject)
11543 ("python-pyxdg" ,python-pyxdg)
11544 ("webkitgtk" ,webkitgtk)
11545 ("xdg-utils" ,xdg-utils)))
11546 (home-page "https://www.cvfosammmm.org/setzer/")
11547 (synopsis "LaTeX editor written in Python with GTK+")
11548 (description
11549 "Setzer is a simple yet full-featured LaTeX editor written in Python with
11550 GTK+. It integrates well with the GNOME desktop environment.")
11551 (license license:gpl3+)))
11552
11553 (define-public libratbag
11554 (package
11555 (name "libratbag")
11556 (version "0.14")
11557 (source
11558 (origin
11559 (method git-fetch)
11560 (uri (git-reference
11561 (url "https://github.com/libratbag/libratbag")
11562 (commit (string-append "v" version))))
11563 (file-name (git-file-name name version))
11564 (sha256
11565 (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
11566 (build-system meson-build-system)
11567 (arguments
11568 `(#:configure-flags
11569 (list "-Dsystemd=false"
11570 "-Dlogind-provider=elogind")
11571 #:phases
11572 (modify-phases %standard-phases
11573 (add-after 'install 'wrap
11574 (lambda* (#:key inputs outputs #:allow-other-keys)
11575 (let* ((out (assoc-ref outputs "out"))
11576 (site (string-append
11577 "/lib/python"
11578 ,(version-major+minor (package-version python))
11579 "/site-packages"))
11580 (evdev (string-append
11581 (assoc-ref inputs "python-evdev") site))
11582 (pygo (string-append
11583 (assoc-ref inputs "python-pygobject") site))
11584 (python-wrap
11585 `("PYTHONPATH" = (,evdev ,pygo))))
11586 (wrap-program (string-append out "/bin/" "ratbagctl")
11587 python-wrap)
11588 #t))))))
11589 (native-inputs
11590 `(("check" ,check)
11591 ("pkg-config" ,pkg-config)
11592 ("swig" ,swig)
11593 ("valgrind" ,valgrind)))
11594 (inputs
11595 `(("glib" ,glib)
11596 ("json-glib" ,json-glib)
11597 ("libevdev" ,libevdev)
11598 ("libsystemd" ,elogind)
11599 ("libunistring" ,libunistring)
11600 ("python-evdev" ,python-evdev)
11601 ("python-pygobject" ,python-pygobject)
11602 ("udev" ,eudev)))
11603 (home-page "https://github.com/libratbag/libratbag")
11604 (synopsis "DBus daemon and utility for configuring gaming mice")
11605 (description "libratbag provides @command{ratbagd}, a DBus daemon to
11606 configure input devices, mainly gaming mice. The daemon provides a generic
11607 way to access the various features exposed by these mice and abstracts away
11608 hardware-specific and kernel-specific quirks. There is also the
11609 @command{ratbagctl} command line interface for configuring devices.
11610
11611 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
11612 Steelseries.
11613
11614 The ratbagd DBus service can be enabled by adding the following service to
11615 your operating-system definition:
11616
11617 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11618 (license license:expat)))
11619
11620 (define-public piper
11621 (package
11622 (name "piper")
11623 (version "0.5.1")
11624 (source
11625 (origin
11626 (method git-fetch)
11627 (uri (git-reference
11628 (url "https://github.com/libratbag/piper")
11629 (commit version)))
11630 (sha256
11631 (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
11632 (file-name (git-file-name name version))))
11633 (build-system meson-build-system)
11634 (native-inputs
11635 `(("gettext" ,gettext-minimal)
11636 ("glib:bin" ,glib "bin")
11637 ("gobject-introspection" ,gobject-introspection)
11638 ("pkg-config" ,pkg-config)
11639 ("python-flake8" ,python-flake8)))
11640 (inputs
11641 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11642 ("gtk" ,gtk+)
11643 ("gtk:bin" ,gtk+ "bin")
11644 ("librsvg" ,librsvg)
11645 ("python-evdev" ,python-evdev)
11646 ("python-lxml" ,python-lxml)
11647 ("python-pycairo" ,python-pycairo)
11648 ("python-pygobject" ,python-pygobject)))
11649 (arguments
11650 `(#:imported-modules ((guix build python-build-system)
11651 ,@%meson-build-system-modules)
11652 #:modules (((guix build python-build-system) #:prefix python:)
11653 (guix build meson-build-system)
11654 (guix build utils))
11655 #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
11656 #:phases
11657 (modify-phases %standard-phases
11658 (add-after 'unpack 'dont-update-gtk-icon-cache
11659 (lambda _
11660 (substitute* "meson.build"
11661 (("meson.add_install_script('meson_install.sh')") ""))
11662 #t))
11663 ;; TODO: Switch to wrap-script when it is fixed.
11664 (add-after 'install 'wrap-python
11665 (assoc-ref python:%standard-phases 'wrap))
11666 (add-after 'wrap-python 'wrap
11667 (lambda* (#:key outputs #:allow-other-keys)
11668 (wrap-program
11669 (string-append (assoc-ref outputs "out" )"/bin/piper")
11670 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11671 #t)))))
11672 (home-page "https://github.com/libratbag/piper/")
11673 (synopsis "Configure bindings and LEDs on gaming mice")
11674 (description "Piper is a GTK+ application for configuring gaming mice with
11675 onboard configuration for key bindings via libratbag. Piper requires
11676 a @command{ratbagd} daemon running with root privileges. It can be run
11677 manually as root, but is preferably configured as a DBus service that can
11678 launch on demand. This can be configured by enabling the following service,
11679 provided there is a DBus service present:
11680
11681 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11682 (license license:gpl2)))
11683
11684 (define-public parlatype
11685 (package
11686 (name "parlatype")
11687 (version "2.1")
11688 (source
11689 (origin
11690 (method git-fetch)
11691 (uri (git-reference
11692 (url "https://github.com/gkarsay/parlatype")
11693 (commit (string-append "v" version))))
11694 (file-name (git-file-name name version))
11695 (sha256
11696 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11697 (build-system meson-build-system)
11698 (arguments
11699 `(#:glib-or-gtk? #t
11700 #:tests? #f ;require internet access
11701 #:phases
11702 (modify-phases %standard-phases
11703 (add-after 'install 'wrap-parlatype
11704 ;; Add gstreamer plugin provided in this package to system's
11705 ;; plugins.
11706 (lambda* (#:key outputs #:allow-other-keys)
11707 (let* ((out (assoc-ref outputs "out"))
11708 (gst-plugin-path (string-append
11709 out "/lib/gstreamer-1.0/"
11710 ":"
11711 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11712 (wrap-program (string-append out "/bin/parlatype")
11713 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11714 #t)))))
11715 (native-inputs
11716 `(("appstream-glib" ,appstream-glib)
11717 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11718 ("gettext" ,gettext-minimal)
11719 ("glib" ,glib "bin") ;for glib-compile-resources
11720 ("pkg-config" ,pkg-config)
11721 ("yelp-tools" ,yelp-tools)))
11722 (inputs
11723 `(("gst-plugins-base" ,gst-plugins-base)
11724 ("gst-plugins-good" ,gst-plugins-good)
11725 ("gstreamer" ,gstreamer)
11726 ("gtk+" ,gtk+)
11727 ("pocketsphinx" ,pocketsphinx)
11728 ("pulseaudio" ,pulseaudio)
11729 ("sphinxbase" ,sphinxbase)))
11730 (home-page "http://gkarsay.github.io/parlatype/")
11731 (synopsis "GNOME audio player for transcription")
11732 (description "Parlatype is an audio player for the GNOME desktop
11733 environment. Its main purpose is the manual transcription of spoken
11734 audio files.")
11735 (license license:gpl3+)))
11736
11737 (define-public jsonrpc-glib
11738 (package
11739 (name "jsonrpc-glib")
11740 (version "3.34.0")
11741 (source (origin
11742 (method url-fetch)
11743 (uri (string-append "mirror://gnome/sources/" name "/"
11744 (version-major+minor version) "/"
11745 name "-" version ".tar.xz"))
11746 (sha256
11747 (base32
11748 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11749 (build-system meson-build-system)
11750 (inputs
11751 `(("json-glib" ,json-glib)
11752 ("glib" ,glib)))
11753 (native-inputs
11754 `(("pkg-config" ,pkg-config)
11755 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11756 ("gobject-introspection" ,gobject-introspection)
11757 ("vala" ,vala)))
11758 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11759 (synopsis "JSON-RPC library for GLib")
11760 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11761 peers in either a synchronous or asynchronous fashion. It also allows
11762 communicating using the GVariant serialization format instead of JSON when
11763 both peers support it. You might want that when communicating on a single
11764 host to avoid parser overhead and memory-allocator fragmentation.")
11765 (license license:lgpl2.1+)))
11766
11767 (define-public feedbackd
11768 (package
11769 (name "feedbackd")
11770 (version "0.0.0+git20200527")
11771 (source (origin
11772 (method git-fetch)
11773 (uri (git-reference
11774 (url "https://source.puri.sm/Librem5/feedbackd.git")
11775 (commit (string-append "v" version))))
11776 (file-name (git-file-name name version))
11777 (sha256
11778 (base32
11779 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11780 (build-system meson-build-system)
11781 (native-inputs
11782 `(("glib:bin" ,glib "bin")
11783 ("gobject-introspection" ,gobject-introspection)
11784 ("pkg-config" ,pkg-config)
11785 ("vala" ,vala)))
11786 (inputs
11787 `(("dbus" ,dbus)
11788 ("gsound" ,gsound)
11789 ("json-glib" ,json-glib)
11790 ("libgudev" ,libgudev)))
11791 (propagated-inputs
11792 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11793 (synopsis "Haptic/visual/audio feedback via DBus")
11794 (description "Feedbackd provides a DBus daemon to act on events to provide
11795 haptic, visual and audio feedback. It offers the libfeedbackd library and
11796 GObject introspection bindings.")
11797 (home-page "https://source.puri.sm/Librem5/feedbackd")
11798 (license (list license:lgpl2.1+ ; libfeedbackd
11799 license:lgpl3+)))) ; the rest
11800
11801 (define-public sysprof
11802 (package
11803 (name "sysprof")
11804 (version "3.36.0")
11805 (source
11806 (origin
11807 (method url-fetch)
11808 (uri (string-append "mirror://gnome/sources/sysprof/"
11809 (version-major+minor version) "/"
11810 "sysprof-" version ".tar.xz"))
11811 (sha256
11812 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
11813 (build-system meson-build-system)
11814 (arguments
11815 `(#:configure-flags
11816 (list (string-append "-Dsystemdunitdir="
11817 %output
11818 "/share/systemd"))
11819 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11820 #:phases
11821 (modify-phases %standard-phases
11822 (add-after 'unpack 'patch-install-script
11823 (lambda _
11824 (substitute* "build-aux/meson/post_install.sh"
11825 (("gtk-update-icon-cache") "true")
11826 (("update-desktop-database") "true"))
11827 #t)))))
11828 (inputs
11829 `(("glib" ,glib)
11830 ("gtk+" ,gtk+)
11831 ("libdazzle" ,libdazzle)
11832 ("polkit" ,polkit)))
11833 (native-inputs
11834 `(("gettext" ,gettext-minimal)
11835 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11836 ("itstool" ,itstool)
11837 ("pkg-config" ,pkg-config)
11838 ("xmllint" ,libxml2)))
11839 ;; This home page is so woefully out of date as to be essentially useless.
11840 ;; (home-page "http://www.sysprof.com")
11841 (home-page "https://wiki.gnome.org/Apps/Sysprof")
11842 (synopsis "System-wide performance profiler for GNU/Linux")
11843 (description
11844 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
11845 GNU/Linux system including the kernel and all user-space applications. This
11846 helps find the function(s) in which a program spends most of its time.
11847
11848 It uses the kernel's built-in @code{ptrace} feature and handles shared
11849 libraries. Applications do not need to be recompiled--or even restarted.")
11850 (license license:gpl3+)))
11851
11852 (define-public gnome-builder
11853 (package
11854 (name "gnome-builder")
11855 (version "3.36.1")
11856 (source (origin
11857 (method url-fetch)
11858 (uri (string-append "mirror://gnome/sources/" name "/"
11859 (version-major+minor version) "/"
11860 name "-" version ".tar.xz"))
11861 (sha256
11862 (base32
11863 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11864 (build-system meson-build-system)
11865 (arguments
11866 `(#:configure-flags (list "-Dnetwork_tests=false"
11867 ;; TODO: Enable all plugins...
11868 "-Dplugin_clang=false"
11869 "-Dplugin_flatpak=false"
11870 "-Dplugin_glade=false"
11871 ;; XXX: This one has been shown not to work in
11872 ;; <https://issues.guix.gnu.org/45272>
11873 "-Dplugin_jedi=false"
11874 ;; ... except this one.
11875 "-Dplugin_update_manager=false")
11876 #:phases
11877 (modify-phases %standard-phases
11878 (add-after 'unpack 'patch-meson
11879 (lambda* (#:key inputs #:allow-other-keys)
11880 (substitute* "build-aux/meson/post_install.py"
11881 (("gtk-update-icon-cache") "true")
11882 (("update-desktop-database") "true"))
11883 (substitute* "src/libide/meson.build"
11884 (("/usr/lib")
11885 (string-append (assoc-ref inputs "python-pygobject")
11886 "/lib")))
11887 #t))
11888 (add-after 'configure 'fix-ninja
11889 (lambda _
11890 ;; #43296: meson(?) incorrectly assumes we want to link
11891 ;; this PIE against a static libselinux.
11892 (substitute* "build.ninja"
11893 (("libselinux\\.a") "libselinux.so"))
11894 #t))
11895 (add-before 'check 'pre-check
11896 (lambda _
11897 (system "Xvfb :1 &")
11898 (setenv "DISPLAY" ":1")
11899 #t)))))
11900 (inputs
11901 `(("devhelp" ,devhelp)
11902 ("gspell" ,gspell)
11903 ("gtk+" ,gtk+)
11904 ("json-glib" ,json-glib)
11905 ("jsonrpc-glib" ,jsonrpc-glib)
11906 ("libdazzle" ,libdazzle)
11907 ("libgit2-glib" ,libgit2-glib)
11908 ("libpeas" ,libpeas)
11909 ("python-pygobject" ,python-pygobject)
11910 ("sysprof" ,sysprof)
11911 ("template-glib" ,template-glib)
11912 ("vte" ,vte)
11913 ("webkitgtk" ,webkitgtk)))
11914 (propagated-inputs
11915 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11916 (native-inputs
11917 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11918 ("glib:bin" ,glib "bin")
11919 ("gettext" ,gettext-minimal)
11920 ("pkg-config" ,pkg-config)
11921 ("vala" ,vala)
11922 ("xorg-server" ,xorg-server-for-tests)))
11923 (home-page "https://wiki.gnome.org/Apps/Builder")
11924 (synopsis "Toolsmith for GNOME-based applications")
11925 (description "Builder aims to be an integrated development
11926 environment (IDE) for writing GNOME-based software. It features fuzzy search,
11927 auto-completion, a mini code map, documentation browsing, Git integration, an
11928 integrated profiler via Sysprof, debugging support, and more.")
11929 (license license:gpl3+)))
11930
11931 (define-public komikku
11932 (package
11933 (name "komikku")
11934 (version "0.26.1")
11935 (source
11936 (origin
11937 (method git-fetch)
11938 (uri (git-reference
11939 (url "https://gitlab.com/valos/Komikku/")
11940 (commit (string-append "v" version))))
11941 (file-name (git-file-name name version))
11942 (sha256
11943 (base32
11944 "1mas409c14p6g0v10w4cf5hsjbs0922h6h9k9pyj9s8y7yi2ikz2"))))
11945 (build-system meson-build-system)
11946 (arguments
11947 `(#:glib-or-gtk? #t
11948 #:phases
11949 (modify-phases %standard-phases
11950 (add-after 'unpack 'patch-sources
11951 (lambda _
11952 (substitute* "komikku/utils.py"
11953 (("from komikku\\.servers import get_servers_list")
11954 ;; code following that line should migrate old databases
11955 ;; but the line itself results in an import error
11956 "return data_dir_path"))))
11957 (add-after 'unpack 'skip-gtk-update-icon-cache
11958 (lambda _
11959 (substitute* "meson_post_install.py"
11960 (("gtk-update-icon-cache") (which "true")))
11961 #t))
11962 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11963 (lambda* (#:key outputs #:allow-other-keys)
11964 (let ((prog (string-append (assoc-ref outputs "out")
11965 "/bin/komikku")))
11966 (wrap-program prog
11967 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
11968 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11969 #t))))))
11970 (inputs
11971 `(("gtk+" ,gtk+)
11972 ("libhandy" ,libhandy)
11973 ("libnotify" ,libnotify)
11974 ("libsecret" ,libsecret)
11975 ("python-beautifulsoup4" ,python-beautifulsoup4)
11976 ("python-dateparser" ,python-dateparser)
11977 ("python-keyring" ,python-keyring)
11978 ("python-lxml" ,python-lxml)
11979 ("python-magic" ,python-magic)
11980 ("python-pillow" ,python-pillow)
11981 ("python-pure-protobuf" ,python-pure-protobuf)
11982 ("python-pycairo" ,python-pycairo)
11983 ("python-pygobject" ,python-pygobject)
11984 ("python-requests" ,python-requests)
11985 ("python-unidecode" ,python-unidecode)))
11986 (native-inputs
11987 `(("desktop-file-utils" ,desktop-file-utils)
11988 ("gettext" ,gettext-minimal)
11989 ("glib:bin" ,glib "bin")
11990 ("gobject-introspection" ,gobject-introspection)
11991 ("pkg-config" ,pkg-config)))
11992 (home-page "https://gitlab.com/valos/Komikku")
11993 (synopsis "Manga reader for GNOME")
11994 (description "Komikku is an online/offline manga reader for GNOME,
11995 developed with the aim of being used with the Librem 5 phone.")
11996 (license license:gpl3+)))
11997
11998 (define-public libgda
11999 (package
12000 (name "libgda")
12001 (version "5.2.10")
12002 (source
12003 (origin
12004 (method git-fetch)
12005 (uri (git-reference
12006 (url "https://gitlab.gnome.org/GNOME/libgda.git/")
12007 (commit (string-append "LIBGDA_" (string-replace-substring
12008 version "." "_")))))
12009 (file-name (git-file-name name version))
12010 (sha256
12011 (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
12012 (build-system gnu-build-system)
12013 (arguments
12014 `(#:configure-flags '("--enable-vala")
12015 ;; There's a race between check_cnc_lock and check_threaded_cnc
12016 ;; in tests/multi-threading.
12017 #:parallel-tests? #f
12018 #:phases
12019 (modify-phases %standard-phases
12020 (add-after 'unpack 'fix-glade-install
12021 (lambda _
12022 (substitute* "configure.ac"
12023 (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
12024 "${datadir}/glade/catalogs")
12025 (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
12026 "${datadir}/glade/pixmaps"))
12027 #t))
12028 (add-before 'check 'pre-check
12029 (lambda* (#:key inputs #:allow-other-keys)
12030 ;; Tests require a running X server.
12031 (system "Xvfb :1 &")
12032 (setenv "DISPLAY" ":1")
12033 #t))
12034 (add-after 'install 'symlink-glade-module
12035 (lambda* (#:key outputs #:allow-other-keys)
12036 (let* ((shlib "libgda-ui-5.0.so")
12037 (out (assoc-ref outputs "out"))
12038 (out/lib (string-append out "/lib"))
12039 (moduledir (string-append out/lib "/glade/modules")))
12040 (mkdir-p moduledir)
12041 (symlink (string-append out/lib "/" shlib)
12042 (string-append moduledir "/" shlib))
12043 #t))))))
12044 (propagated-inputs
12045 `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
12046 (inputs
12047 `(("glib" ,glib)
12048 ("glade" ,glade3)
12049 ("gtk+" ,gtk+)
12050 ("libsecret" ,libsecret)
12051 ("libxslt" ,libxslt)
12052 ("openssl" ,openssl)
12053 ("vala" ,vala)))
12054 (native-inputs
12055 `(("autoconf" ,autoconf)
12056 ("autoconf-archive" ,autoconf-archive)
12057 ("automake" ,automake)
12058 ("glib:bin" ,glib "bin")
12059 ("gnome-common" ,gnome-common)
12060 ("gobject-introspection" ,gobject-introspection)
12061 ("gtk-doc" ,gtk-doc)
12062 ("intltool" ,intltool)
12063 ("libtool" ,libtool)
12064 ("pkg-config" ,pkg-config)
12065 ("vala" ,vala)
12066 ("which" ,which)
12067 ("xorg-server" ,xorg-server-for-tests)
12068 ("yelp-tools" ,yelp-tools)))
12069 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12070 (synopsis "Uniform data access")
12071 (description
12072 "GNU Data Access (GDA) is an attempt to provide uniform access to
12073 different kinds of data sources (databases, information servers, mail spools,
12074 etc). It is a complete architecture that provides all you need to access
12075 your data.")
12076 (license license:lgpl2.1+)))
12077
12078 (define-public gtranslator
12079 (package
12080 (name "gtranslator")
12081 (version "3.36.0")
12082 (source (origin
12083 (method url-fetch)
12084 (uri (string-append "mirror://gnome/sources/" name "/"
12085 (version-major+minor version) "/"
12086 name "-" version ".tar.xz"))
12087 (sha256
12088 (base32
12089 "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
12090 (build-system meson-build-system)
12091 (inputs
12092 `(("json-glib" ,json-glib)
12093 ("jsonrpc-glib" ,jsonrpc-glib)
12094 ("gettext" ,gettext-minimal)
12095 ("glib" ,glib)
12096 ("gtk+" ,gtk+)
12097 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12098 ("gspell" ,gspell)
12099 ("libdazzle" ,libdazzle)
12100 ("libgda" ,libgda)
12101 ("libsoup" ,libsoup)))
12102 (native-inputs
12103 `(("glib:bin" ,glib "bin")
12104 ("itstool" ,itstool)
12105 ("pkg-config" ,pkg-config)))
12106 (propagated-inputs
12107 `(("gtksourceview" ,gtksourceview))) ; required for source view
12108 (arguments
12109 `(#:build-type "release"
12110 #:glib-or-gtk? #t
12111 #:phases
12112 (modify-phases %standard-phases
12113 (add-after 'unpack 'skip-gtk-update-icon-cache
12114 (lambda _
12115 (substitute* "build-aux/meson/meson_post_install.py"
12116 (("gtk-update-icon-cache") (which "true")))
12117 #t)))))
12118 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12119 (synopsis "Translation making program")
12120 (description
12121 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12122 for the GNOME 3.x platform with many features. It aims to be a very complete
12123 editing environment for translation issues within the GNU gettext/GNOME desktop
12124 world.")
12125 (license license:gpl3+)))
12126
12127
12128 (define-public ocrfeeder
12129 (package
12130 (name "ocrfeeder")
12131 (version "0.8.3")
12132 (source (origin
12133 (method url-fetch)
12134 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12135 (version-major+minor version) "/"
12136 "ocrfeeder-" version ".tar.xz"))
12137 (sha256
12138 (base32
12139 "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529"))))
12140 (build-system gnu-build-system)
12141 (arguments
12142 `(#:phases
12143 (modify-phases %standard-phases
12144 (add-after
12145 'install 'wrap-program
12146 (lambda* (#:key outputs #:allow-other-keys)
12147 (let ((prog (string-append (assoc-ref outputs "out")
12148 "/bin/" "ocrfeeder"))
12149 (pylib (string-append (assoc-ref outputs "out")
12150 "/lib/python"
12151 ,(version-major+minor
12152 (package-version python))
12153 "/site-packages")))
12154 (wrap-program prog
12155 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
12156 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12157 #t))))))
12158 (native-inputs
12159 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12160 ("gobject-introspection" ,gobject-introspection)
12161 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12162 ("intltool" ,intltool)
12163 ("itstool" ,itstool)
12164 ("pkg-config" ,pkg-config)
12165 ("xmllint" ,libxml2)))
12166 (inputs
12167 `(("enchant" ,enchant)
12168 ("glib" ,glib)
12169 ("goocanvas" ,goocanvas)
12170 ("gtk" ,gtk+)
12171 ("gtkspell3" ,gtkspell3)
12172 ("libjpeg" ,libjpeg-turbo)
12173 ("libtiff" ,libtiff)
12174 ("libraw" ,libraw)
12175 ("ocrad" ,ocrad)
12176 ("python" ,python-wrapper)
12177 ("python-pygobject" ,python-pygobject)
12178 ("python-odfpy" ,python-odfpy)
12179 ("python-pillow" ,python-pillow)
12180 ("python-pyenchant" ,python-pyenchant)
12181 ("python-reportlab" ,python-reportlab)
12182 ("python-sane" ,python-sane)
12183 ("sane-backends" ,sane-backends)
12184 ("tesseract-ocr" ,tesseract-ocr)))
12185 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12186 (synopsis "Complete OCR Suite")
12187 (description "OCRFeeder is a complete Optical Character Recognition and
12188 Document Analysis and Recognition program.")
12189 (license license:gpl3+)))