gnu: coq: Update to 8.10.2.
[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 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
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 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 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 ng0 <ng0@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017 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 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 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;;
49 ;;; This file is part of GNU Guix.
50 ;;;
51 ;;; GNU Guix is free software; you can redistribute it and/or modify it
52 ;;; under the terms of the GNU General Public License as published by
53 ;;; the Free Software Foundation; either version 3 of the License, or (at
54 ;;; your option) any later version.
55 ;;;
56 ;;; GNU Guix is distributed in the hope that it will be useful, but
57 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
58 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
59 ;;; GNU General Public License for more details.
60 ;;;
61 ;;; You should have received a copy of the GNU General Public License
62 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
63
64 (define-module (gnu packages gnome)
65 #:use-module (gnu packages)
66 #:use-module (gnu packages admin)
67 #:use-module (gnu packages aspell)
68 #:use-module (gnu packages autotools)
69 #:use-module (gnu packages avahi)
70 #:use-module (gnu packages backup)
71 #:use-module (gnu packages base)
72 #:use-module (gnu packages bash)
73 #:use-module (gnu packages bison)
74 #:use-module (gnu packages boost)
75 #:use-module (gnu packages build-tools)
76 #:use-module (gnu packages calendar)
77 #:use-module (gnu packages cdrom)
78 #:use-module (gnu packages check)
79 #:use-module (gnu packages cmake)
80 #:use-module (gnu packages compression)
81 #:use-module (gnu packages crates-io)
82 #:use-module (gnu packages cups)
83 #:use-module (gnu packages curl)
84 #:use-module (gnu packages cyrus-sasl)
85 #:use-module (gnu packages databases)
86 #:use-module (gnu packages dbm)
87 #:use-module (gnu packages djvu)
88 #:use-module (gnu packages dns)
89 #:use-module (gnu packages docbook)
90 #:use-module (gnu packages documentation)
91 #:use-module (gnu packages enchant)
92 #:use-module (gnu packages flex)
93 #:use-module (gnu packages fonts)
94 #:use-module (gnu packages file-systems)
95 #:use-module (gnu packages fontutils)
96 #:use-module (gnu packages freedesktop)
97 #:use-module (gnu packages game-development)
98 #:use-module (gnu packages gettext)
99 #:use-module (gnu packages ghostscript)
100 #:use-module (gnu packages gl)
101 #:use-module (gnu packages glib)
102 #:use-module (gnu packages gnupg)
103 #:use-module (gnu packages gnuzilla)
104 #:use-module (gnu packages geo)
105 #:use-module (gnu packages gperf)
106 #:use-module (gnu packages graphviz)
107 #:use-module (gnu packages gstreamer)
108 #:use-module (gnu packages gtk)
109 #:use-module (gnu packages guile)
110 #:use-module (gnu packages ibus)
111 #:use-module (gnu packages icu4c)
112 #:use-module (gnu packages image)
113 #:use-module (gnu packages imagemagick)
114 #:use-module (gnu packages inkscape)
115 #:use-module (gnu packages iso-codes)
116 #:use-module (gnu packages kerberos)
117 #:use-module (gnu packages libcanberra)
118 #:use-module (gnu packages libunistring)
119 #:use-module (gnu packages libusb)
120 #:use-module (gnu packages linux)
121 #:use-module (gnu packages lirc)
122 #:use-module (gnu packages lua)
123 #:use-module (gnu packages mail)
124 #:use-module (gnu packages mp3)
125 #:use-module (gnu packages multiprecision)
126 #:use-module (gnu packages music)
127 #:use-module (gnu packages ncurses)
128 #:use-module (gnu packages nettle)
129 #:use-module (gnu packages networking)
130 #:use-module (gnu packages ninja)
131 #:use-module (gnu packages nss)
132 #:use-module (gnu packages openldap)
133 #:use-module (gnu packages password-utils)
134 #:use-module (gnu packages pcre)
135 #:use-module (gnu packages pdf)
136 #:use-module (gnu packages perl)
137 #:use-module (gnu packages photo)
138 #:use-module (gnu packages pkg-config)
139 #:use-module (gnu packages polkit)
140 #:use-module (gnu packages popt)
141 #:use-module (gnu packages pretty-print)
142 #:use-module (gnu packages pulseaudio)
143 #:use-module (gnu packages python)
144 #:use-module (gnu packages python-crypto)
145 #:use-module (gnu packages python-web)
146 #:use-module (gnu packages python-xyz)
147 #:use-module (gnu packages rdesktop)
148 #:use-module (gnu packages readline)
149 #:use-module (gnu packages ruby)
150 #:use-module (gnu packages rust)
151 #:use-module (gnu packages samba)
152 #:use-module (gnu packages scanner)
153 #:use-module (gnu packages selinux)
154 #:use-module (gnu packages slang)
155 #:use-module (gnu packages speech)
156 #:use-module (gnu packages spice)
157 #:use-module (gnu packages sqlite)
158 #:use-module (gnu packages ssh)
159 #:use-module (gnu packages tex)
160 #:use-module (gnu packages time)
161 #:use-module (gnu packages tls)
162 #:use-module (gnu packages version-control)
163 #:use-module (gnu packages video)
164 #:use-module (gnu packages virtualization)
165 #:use-module (gnu packages vpn)
166 #:use-module (gnu packages web)
167 #:use-module (gnu packages web)
168 #:use-module (gnu packages webkit)
169 #:use-module (gnu packages xdisorg)
170 #:use-module (gnu packages xiph)
171 #:use-module (gnu packages xml)
172 #:use-module (gnu packages xorg)
173 #:use-module (gnu packages xorg)
174 #:use-module (gnu artwork)
175 #:use-module (guix build-system cargo)
176 #:use-module (guix build-system cmake)
177 #:use-module (guix build-system glib-or-gtk)
178 #:use-module (guix build-system gnu)
179 #:use-module (guix build-system meson)
180 #:use-module (guix build-system python)
181 #:use-module (guix build-system trivial)
182 #:use-module (guix download)
183 #:use-module (guix git-download)
184 #:use-module ((guix licenses) #:prefix license:)
185 #:use-module (guix packages)
186 #:use-module (guix utils)
187 #:use-module (guix gexp)
188 #:use-module (guix monads)
189 #:use-module (guix store)
190 #:use-module (ice-9 match)
191 #:use-module (srfi srfi-1))
192
193 (define-public brasero
194 (package
195 (name "brasero")
196 (version "3.12.2")
197 (source (origin
198 (method url-fetch)
199 (uri (string-append "mirror://gnome/sources/brasero/"
200 (version-major+minor version) "/"
201 "brasero-" version ".tar.xz"))
202 (sha256
203 (base32
204 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
205 (build-system glib-or-gtk-build-system)
206 (arguments
207 `(#:configure-flags (list
208 (string-append "--with-girdir="
209 (assoc-ref %outputs "out")
210 "/share/gir-1.0")
211 (string-append "--with-typelibdir="
212 (assoc-ref %outputs "out")
213 "/lib/girepository-1.0"))
214 #:phases
215 (modify-phases %standard-phases
216 (add-before 'configure 'embed-growisofs
217 (lambda* (#:key inputs #:allow-other-keys)
218 (substitute* "plugins/growisofs/burn-growisofs.c"
219 (("\"growisofs") (string-append "\"" (which "growisofs"))))
220 #t)))))
221 (propagated-inputs
222 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
223 (native-inputs
224 `(("intltool" ,intltool)
225 ("itstool" ,itstool)
226 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
227 ("gobject-introspection" ,gobject-introspection)
228 ("pkg-config" ,pkg-config)))
229 (inputs
230 `(("dvd+rw-tools" ,dvd+rw-tools)
231 ("glib" ,glib)
232 ("gnome-doc-utils" ,gnome-doc-utils)
233 ("gstreamer" ,gstreamer)
234 ("gst-plugins-base" ,gst-plugins-base)
235 ("gtk+" ,gtk+)
236 ("libcanberra" ,libcanberra)
237 ("libice" ,libice)
238 ("libnotify" ,libnotify)
239 ("libsm" ,libsm)
240 ("libxml2" ,libxml2)
241 ("totem-pl-parser" ,totem-pl-parser)))
242 (home-page "https://wiki.gnome.org/Apps/Brasero")
243 (synopsis "CD/DVD burning tool for Gnome")
244 (description "Brasero is an application to burn CD/DVD for the Gnome
245 Desktop. It is designed to be as simple as possible and has some unique
246 features to enable users to create their discs easily and quickly.")
247 (license license:gpl2+)))
248
249 (define-public gnome-menus
250 (package
251 (name "gnome-menus")
252 (version "3.32.0")
253 (source (origin
254 (method url-fetch)
255 (uri (string-append "mirror://gnome/sources/gnome-menus/"
256 (version-major+minor version) "/"
257 name "-" version ".tar.xz"))
258 (sha256
259 (base32
260 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
261 (build-system gnu-build-system)
262 (native-inputs
263 `(("gettext" ,gettext-minimal)
264 ("glib" ,glib)
265 ("pkg-config" ,pkg-config)))
266 (synopsis "Menu support for GNOME desktop")
267 (description "GNOME Menus contains the libgnome-menu library, the layout
268 configuration files for the GNOME menu, as well as a simple menu editor.")
269 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
270 (license license:gpl2)))
271
272 (define-public deja-dup
273 (package
274 (name "deja-dup")
275 (version "34.3")
276 (source (origin
277 (method url-fetch)
278 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
279 (sha256
280 (base32
281 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
282 (patches
283 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
284 (build-system glib-or-gtk-build-system)
285 (arguments
286 `(#:modules ((guix build gnu-build-system)
287 ((guix build cmake-build-system) #:prefix cmake:)
288 (guix build glib-or-gtk-build-system)
289 (guix build utils))
290 #:imported-modules (,@%glib-or-gtk-build-system-modules
291 (guix build cmake-build-system))
292 #:test-target "test"
293 #:configure-flags (list (string-append
294 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
295 (string-append
296 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
297 #:phases
298 (modify-phases %standard-phases
299 (add-after 'unpack 'patch-lockfile-deletion
300 (lambda rest
301 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
302 (("/bin/rm")
303 (which "rm")))))
304 (replace 'configure
305 (assoc-ref cmake:%standard-phases 'configure))
306 (delete 'check) ;; Fails due to issues with DBus
307 (add-after 'install 'wrap-deja-dup
308 (lambda* (#:key inputs outputs #:allow-other-keys)
309 (let ((python (assoc-ref inputs "python"))
310 (python-path (getenv "PYTHONPATH"))
311 (duplicity (assoc-ref inputs "duplicity"))
312 (out (assoc-ref outputs "out")))
313 (for-each
314 (lambda (program)
315 (wrap-program program
316 `("PATH" ":" prefix (,(string-append python "/bin")
317 ,(string-append duplicity "/bin"))))
318 (wrap-program program
319 `("PYTHONPATH" ":" prefix (,python-path))))
320
321 (find-files (string-append out "/bin")))
322 #t))))))
323 (inputs
324 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
325 ("gobject-introspection" ,gobject-introspection)
326 ("duplicity" ,duplicity)
327 ("python" ,python-2)
328 ("python-pygobject" ,python2-pygobject)
329 ("gtk+" ,gtk+)
330 ("libnotify" ,libnotify)
331 ("libpeas" ,libpeas)
332 ("libsecret" ,libsecret)
333 ("packagekit" ,packagekit)))
334 (native-inputs
335 `(("pkg-config" ,pkg-config)
336 ("vala" ,vala)
337 ("gettext" ,gettext-minimal)
338 ("itstool" ,itstool)
339 ("intltool" ,intltool)
340 ("cmake" ,cmake-minimal)))
341 (home-page "https://launchpad.net/deja-dup")
342 (synopsis "Simple backup tool, for regular encrypted backups")
343 (description
344 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
345 uses duplicity as the backend, which supports incremental backups and storage
346 either on a local, or remote machine via a number of methods.")
347 (license license:gpl3+)))
348
349 (define-public gnome-user-docs
350 (package
351 (name "gnome-user-docs")
352 (version "3.32.3")
353 (source
354 (origin
355 (method url-fetch)
356 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
357 (version-major+minor version)
358 "/gnome-user-docs-" version ".tar.xz"))
359 (sha256
360 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
361 (build-system gnu-build-system)
362 (native-inputs
363 `(("gettext" ,gettext-minimal)
364 ("itstool" ,itstool)
365 ("pkg-config" ,pkg-config)
366 ("xmllint" ,libxml2)))
367 (synopsis "User documentation for the GNOME desktop")
368 (description
369 "The GNOME User Documentation explains how to use the GNOME desktop and its
370 components. It covers usage and setup of the core GNOME programs by end-users
371 and system administrators.")
372 (home-page "https://live.gnome.org/DocumentationProject")
373 (license license:cc-by3.0)))
374
375 (define-public gnome-getting-started-docs
376 (package
377 (name "gnome-getting-started-docs")
378 (version "3.32.2")
379 (source
380 (origin
381 (method url-fetch)
382 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
383 (version-major+minor version)
384 "/gnome-getting-started-docs-" version ".tar.xz"))
385 (sha256
386 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
387 (build-system gnu-build-system)
388 (native-inputs
389 `(("gettext" ,gettext-minimal)
390 ("itstool" ,itstool)
391 ("pkg-config" ,pkg-config)
392 ("xmllint" ,libxml2)))
393 (synopsis "Help to get new users started with the GNOME desktop")
394 (description
395 "The GNOME Getting Started Documentation contains GNOME's intuitive
396 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
397
398 It is normally used together with @command{gnome-initial-setup}, but is also
399 useful as a tutorial and users' guide for new or less experienced users.")
400 (home-page "https://live.gnome.org/DocumentationProject")
401 (license license:cc-by-sa3.0)))
402
403 (define-public dia
404 ;; This version from GNOME's repository includes fixes for compiling with
405 ;; recent versions of the build tools. The latest activity on the
406 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
407 ;; fixes in 2016.
408 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
409 (package
410 (name "dia")
411 (version (git-version "0.97.3" "1" commit))
412 (source (origin
413 (method git-fetch)
414 (uri (git-reference
415 (url "https://gitlab.gnome.org/GNOME/dia.git/")
416 (commit commit)))
417 (file-name (git-file-name name version))
418 (sha256
419 (base32
420 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
421 (build-system gnu-build-system)
422 (inputs
423 `(("freetype" ,freetype)
424 ("gdk-pixbuf" ,gdk-pixbuf)
425 ("gtk+" ,gtk+-2)
426 ("libart-lgpl" ,libart-lgpl)
427 ("libxml2" ,libxml2)
428 ("pango" ,pango)))
429 (native-inputs
430 `(("autoconf" ,autoconf)
431 ("automake" ,automake)
432 ("intltool" ,intltool)
433 ("glib" ,glib "bin")
434 ("libtool" ,libtool)
435 ("perl" ,perl)
436 ("pkg-config" ,pkg-config)
437 ("python-wrapper" ,python-wrapper)))
438 (arguments
439 `(#:phases
440 (modify-phases %standard-phases
441 (add-before 'bootstrap 'dont-configure-during-bootstrap
442 (lambda _
443 (setenv "NOCONFIGURE" "true")
444 #t)))))
445 (home-page "https://wiki.gnome.org/Apps/Dia")
446 (synopsis "Diagram creation for GNOME")
447 (description "Dia can be used to draw different types of diagrams, and
448 includes support for UML static structure diagrams (class diagrams), entity
449 relationship modeling, and network diagrams. The program supports various file
450 formats like PNG, SVG, PDF and EPS.")
451 (license license:gpl2+))))
452
453 ;; This is the unstable release, but it is required for the current stable
454 ;; release of gvfs (1.38.1).
455 (define-public libgdata
456 (package
457 (name "libgdata")
458 (version "0.17.9")
459 (source (origin
460 (method url-fetch)
461 (uri (string-append "mirror://gnome/sources/" name "/"
462 (version-major+minor version) "/"
463 name "-" version ".tar.xz"))
464 (sha256
465 (base32
466 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
467 (build-system gnu-build-system)
468 (arguments
469 '(#:phases
470 (modify-phases %standard-phases
471 (add-before 'check 'disable-failing-tests
472 (lambda _
473 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
474 ;; They have been removed in libgdata 0.17.6, so just do the same.
475 (substitute* "gdata/tests/Makefile"
476 (("picasaweb\\$\\(EXEEXT\\) ") ""))
477 #t)))))
478 (native-inputs
479 `(("glib:bin" ,glib "bin")
480 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
481 ("intltool" ,intltool)
482 ("pkg-config" ,pkg-config)
483 ("uhttpmock" ,uhttpmock)))
484 (inputs
485 `(("cyrus-sasl" ,cyrus-sasl)
486 ("glib-networking" ,glib-networking)))
487 (propagated-inputs
488 `(("gcr" ,gcr)
489 ("glib" ,glib)
490 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
491 ("json-glib" ,json-glib)
492 ("liboauth" ,liboauth)
493 ("libsoup" ,libsoup)
494 ("libxml2" ,libxml2)))
495 (home-page "https://wiki.gnome.org/Projects/libgdata")
496 (synopsis "Library for accessing online service APIs")
497 (description
498 "libgdata is a GLib-based library for accessing online service APIs using
499 the GData protocol — most notably, Google's services. It provides APIs to
500 access the common Google services, and has full asynchronous support.")
501 (license license:lgpl2.1+)))
502
503 (define-public libgxps
504 (package
505 (name "libgxps")
506 (version "0.3.1")
507 (source (origin
508 (method url-fetch)
509 (uri (string-append "mirror://gnome/sources/" name "/"
510 (version-major+minor version) "/"
511 name "-" version ".tar.xz"))
512 (sha256
513 (base32
514 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
515 (build-system meson-build-system)
516 (native-inputs
517 `(("gobject-introspection" ,gobject-introspection)
518 ("pkg-config" ,pkg-config)))
519 (inputs
520 `(("gtk+" ,gtk+)
521 ("libjpeg" ,libjpeg-turbo)
522 ("lcms" ,lcms)
523 ("libtiff" ,libtiff)))
524 (propagated-inputs
525 ;; In Requires of libgxps.pc.
526 `(("cairo" ,cairo)
527 ("glib" ,glib)
528 ("libarchive" ,libarchive)))
529 (home-page "https://wiki.gnome.org/Projects/libgxps")
530 (synopsis "GObject-based library for handling and rendering XPS documents")
531 (description
532 "libgxps is a GObject-based library for handling and rendering XPS
533 documents. This package also contains binaries that can convert XPS documents
534 to other formats.")
535 (license license:lgpl2.1+)))
536
537 (define-public gnome-characters
538 (package
539 (name "gnome-characters")
540 (version "3.30.0")
541 (source
542 (origin
543 (method url-fetch)
544 (uri (string-append "mirror://gnome/sources/"
545 "gnome-characters/" (version-major+minor version)
546 "/gnome-characters-" version ".tar.xz"))
547 (sha256
548 (base32
549 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
550 (build-system meson-build-system)
551 (arguments
552 `(#:glib-or-gtk? #t
553 #:phases (modify-phases %standard-phases
554 (add-after 'install 'wrap
555 (lambda* (#:key outputs #:allow-other-keys)
556 ;; GNOME Characters needs Typelib files from GTK and
557 ;; gnome-desktop.
558 (wrap-program (string-append (assoc-ref outputs "out")
559 "/bin/gnome-characters")
560 `("GI_TYPELIB_PATH" ":" prefix
561 (,(getenv "GI_TYPELIB_PATH"))))
562 #t)))))
563 (native-inputs
564 `(("gettext" ,gettext-minimal)
565 ("glib:bin" ,glib "bin")
566 ("gtk+:bin" ,gtk+ "bin")
567 ("pkg-config" ,pkg-config)
568 ("python" ,python-minimal)))
569 (inputs
570 `(("gjs" ,gjs)
571 ("gtk+" ,gtk+)
572 ("libunistring" ,libunistring)
573 ("gnome-desktop" ,gnome-desktop)))
574 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
575 (synopsis "Find and insert unusual characters")
576 (description "Characters is a simple utility application to find
577 and insert unusual characters. It allows you to quickly find the
578 character you are looking for by searching for keywords.")
579 (license license:bsd-3)))
580
581 (define-public gnome-common
582 (package
583 (name "gnome-common")
584 (version "3.18.0")
585 (source
586 (origin
587 (method url-fetch)
588 (uri (string-append "mirror://gnome/sources/" name "/"
589 (version-major+minor version) "/"
590 name "-" version ".tar.xz"))
591 (sha256
592 (base32
593 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
594 (build-system gnu-build-system)
595 (home-page "https://www.gnome.org/")
596 (synopsis "Bootstrap GNOME modules built from Git")
597 (description "gnome-common contains various files needed to bootstrap
598 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
599 can be used to configure a source directory checked out from Git and some
600 commonly used macros.")
601 (license license:gpl2+)))
602
603 (define-public gnome-contacts
604 (package
605 (name "gnome-contacts")
606 (version "3.32.1")
607 (source (origin
608 (method url-fetch)
609 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
610 (version-major+minor version) "/"
611 name "-" version ".tar.xz"))
612 (sha256
613 (base32
614 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
615 (build-system meson-build-system)
616 (arguments
617 `(#:phases
618 (modify-phases %standard-phases
619 (add-after 'unpack 'generate-vapis
620 (lambda* (#:key inputs #:allow-other-keys)
621 ;; To generate goa's missing .vapi file
622 (define goa
623 (assoc-ref inputs "gnome-online-accounts:lib"))
624
625 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
626 "--library=goa-1.0"
627 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
628 #t)))))
629 (native-inputs
630 `(("glib:bin" ,glib "bin")
631 ("gtk+:bin" ,gtk+ "bin")
632 ("pkg-config" ,pkg-config)))
633 (inputs
634 `(("cheese" ,cheese)
635 ("docbook-xml" ,docbook-xml)
636 ("dockbook-xsl" ,docbook-xsl)
637 ("evolution-data-server" ,evolution-data-server)
638 ("gettext" ,gettext-minimal)
639 ("gnome-desktop" ,gnome-desktop)
640 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
641 ("gobject-introspection" ,gobject-introspection)
642 ("gst-plugins-base" ,gst-plugins-base)
643 ("gtk+" ,gtk+)
644 ("libgee" ,libgee)
645 ("libxslt" ,libxslt)
646 ("telepathy-glib" ,telepathy-glib)
647 ("vala" ,vala)))
648 (propagated-inputs
649 `(("folks", folks)
650 ("telepathy-mission-control" ,telepathy-mission-control)))
651 (synopsis "GNOME's integrated address book")
652 (description
653 "GNOME Contacts organizes your contact information from online and
654 offline sources, providing a centralized place for managing your contacts.")
655 (home-page "https://wiki.gnome.org/Apps/Contacts")
656 (license license:gpl2+)))
657
658 (define-public gnome-desktop
659 (package
660 (name "gnome-desktop")
661 (version "3.32.2")
662 (source
663 (origin
664 (method url-fetch)
665 (uri (string-append "mirror://gnome/sources/" name "/"
666 (version-major+minor version) "/"
667 name "-" version ".tar.xz"))
668 (sha256
669 (base32
670 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
671 (build-system meson-build-system)
672 (arguments
673 '(#:phases
674 (modify-phases %standard-phases
675 (add-before 'configure 'patch-path
676 (lambda* (#:key inputs #:allow-other-keys)
677 (let ((libc (assoc-ref inputs "libc")))
678 (substitute* "libgnome-desktop/gnome-languages.c"
679 (("\"locale\"")
680 (string-append "\"" libc "/bin/locale\"")))
681 #t)))
682 (add-before 'check 'pre-check
683 (lambda* (#:key inputs #:allow-other-keys)
684 ;; Tests require a running X server and locales.
685 (system "Xvfb :1 &")
686 (setenv "DISPLAY" ":1")
687 (setenv "GUIX_LOCPATH"
688 (string-append (assoc-ref inputs "glibc-locales")
689 "/lib/locale"))
690 #t)))))
691 (native-inputs
692 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
693 ("glibc-locales" ,glibc-locales) ; for tests
694 ("gobject-introspection" ,gobject-introspection)
695 ("itstool" ,itstool)
696 ("intltool" ,intltool)
697 ("pkg-config" ,pkg-config)
698 ("xmllint" ,libxml2)
699 ("xorg-server" ,xorg-server-for-tests)))
700 (propagated-inputs
701 ;; Required by gnome-desktop-3.0.pc.
702 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
703 ("gtk+" ,gtk+)
704 ("iso-codes" ,iso-codes)
705 ("libseccomp" ,libseccomp)
706 ("libx11" ,libx11)
707 ("xkeyboard-config" ,xkeyboard-config)))
708 (inputs
709 `(("gdk-pixbuf" ,gdk-pixbuf)
710 ("glib" ,glib)
711 ("libxext" ,libxext)
712 ("libxkbfile" ,libxkbfile)
713 ("libxrandr" ,libxrandr)))
714 (home-page "https://www.gnome.org/")
715 (synopsis
716 "Libgnome-desktop, gnome-about, and desktop-wide documents")
717 (description
718 "The libgnome-desktop library provides API shared by several applications
719 on the desktop, but that cannot live in the platform for various reasons.
720 There is no API or ABI guarantee, although we are doing our best to provide
721 stability. Documentation for the API is available with gtk-doc.
722
723 The gnome-about program helps find which version of GNOME is installed.")
724 ; Some bits under the LGPL.
725 (license license:gpl2+)))
726
727 (define-public gnome-doc-utils
728 (package
729 (name "gnome-doc-utils")
730 (version "0.20.10")
731 (source
732 (origin
733 (method url-fetch)
734 (uri (string-append "mirror://gnome/sources/" name "/"
735 (version-major+minor version) "/"
736 name "-" version ".tar.xz"))
737 (sha256
738 (base32
739 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
740 (build-system gnu-build-system)
741 (native-inputs
742 `(("intltool" ,intltool)
743 ("docbook-xml" ,docbook-xml-4.4)
744 ("python2-libxml2" ,python2-libxml2)
745 ("libxml2" ,libxml2)
746 ("libxslt" ,libxslt)
747 ("pkg-config" ,pkg-config)
748 ("python-2" ,python-2)))
749 (home-page "https://wiki.gnome.org/GnomeDocUtils")
750 (synopsis
751 "Documentation utilities for the Gnome project")
752 (description
753 "Gnome-doc-utils is a collection of documentation utilities for the
754 Gnome project. It includes xml2po tool which makes it easier to translate
755 and keep up to date translations of documentation.")
756 (license license:gpl2+))) ; xslt under lgpl
757
758 (define-public gnome-disk-utility
759 (package
760 (name "gnome-disk-utility")
761 (version "3.32.1")
762 (source (origin
763 (method url-fetch)
764 (uri (string-append "mirror://gnome/sources/" name "/"
765 (version-major+minor version) "/"
766 name "-" version ".tar.xz"))
767 (sha256
768 (base32
769 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
770 (build-system meson-build-system)
771 (arguments
772 '(#:phases
773 (modify-phases %standard-phases
774 (add-after 'unpack 'skip-gtk-update-icon-cache
775 ;; Don't create 'icon-theme.cache'.
776 (lambda _
777 (substitute* "meson_post_install.py"
778 (("gtk-update-icon-cache") "true"))
779 #t)))))
780 (native-inputs
781 `(("glib:bin" ,glib "bin")
782 ("intltool" ,intltool)
783 ("pkg-config" ,pkg-config)
784 ("docbook-xml" ,docbook-xml)
785 ("docbook-xsl" ,docbook-xsl)
786 ("libxml2" ,libxml2)
787 ("libxslt" ,libxslt)))
788 (inputs
789 `(("glib" ,glib)
790 ("appstream-glib" ,appstream-glib)
791 ("gnome-settings-daemon" ,gnome-settings-daemon)
792 ("gtk+" ,gtk+)
793 ("libcanberra" ,libcanberra)
794 ("libdvdread" ,libdvdread)
795 ("libnotify" ,libnotify)
796 ("libpwquality" ,libpwquality)
797 ("libsecret" ,libsecret)
798 ("udisks" ,udisks)))
799 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
800 (synopsis "Disk management utility for GNOME")
801 (description "Disk management utility for GNOME.")
802 (license license:gpl2+)))
803
804 (define-public gnome-font-viewer
805 (package
806 (name "gnome-font-viewer")
807 (version "3.30.0")
808 (source (origin
809 (method url-fetch)
810 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
811 (version-major+minor version)
812 "/gnome-font-viewer-" version ".tar.xz"))
813 (sha256
814 (base32
815 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
816 (build-system meson-build-system)
817 (arguments
818 '(#:phases
819 (modify-phases %standard-phases
820 (add-after 'unpack 'patch-post-install-script
821 (lambda _
822 (substitute* "meson-postinstall.sh"
823 (("update-desktop-database") (which "true")))
824 #t)))))
825 (native-inputs
826 `(("gettext" ,gettext-minimal)
827 ("glib:bin" ,glib "bin")
828 ("pkg-config" ,pkg-config)))
829 (inputs
830 `(("glib" ,glib)
831 ("gnome-desktop" ,gnome-desktop)
832 ("gtk+" ,gtk+)))
833 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
834 (synopsis "GNOME Fonts")
835 (description "Application to show you the fonts installed on your computer
836 for your use as thumbnails. Selecting any thumbnails shows the full view of how
837 the font would look under various sizes.")
838 (license license:gpl2+)))
839
840 (define-public gcr
841 (package
842 (name "gcr")
843 (version "3.28.1")
844 (source (origin
845 (method url-fetch)
846 (uri (string-append "mirror://gnome/sources/" name "/"
847 (version-major+minor version) "/"
848 name "-" version ".tar.xz"))
849 (sha256
850 (base32
851 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
852 (patches
853 (list
854 ;; This patch solves an ordering issue that showed up when
855 ;; running the test suite against newer Glib 2.60. See
856 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
857 (origin
858 (method url-fetch)
859 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
860 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
861 (file-name "gcr-hashtable-ordering.patch")
862 (sha256
863 (base32
864 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
865 (build-system gnu-build-system)
866 (arguments
867 '(#:phases
868 (modify-phases %standard-phases
869 ;; These fail because /var/lib/dbus/machine-id is not present in the
870 ;; build environment.
871 (add-after 'unpack 'disable-failing-tests
872 (lambda _
873 (substitute* "gcr/test-system-prompt.c"
874 (("g_test_add") "//")
875 (("return.*") "return 0;"))
876 #t))
877 (add-before 'check 'pre-check
878 (lambda _
879 ;; Some tests expect to write to $HOME.
880 (setenv "HOME" "/tmp")
881 #t)))))
882 (inputs
883 `(("dbus" ,dbus)
884 ("gnupg" ,gnupg) ;called as a child process during tests
885 ("libgcrypt" ,libgcrypt)))
886 (native-inputs
887 `(("python" ,python-2) ;for tests
888 ("pkg-config" ,pkg-config)
889 ("glib" ,glib "bin")
890 ("gobject-introspection" ,gobject-introspection)
891 ("intltool" ,intltool)
892 ("libxml2" ,libxml2)
893 ("vala" ,vala)
894 ("xsltproc" ,libxslt)))
895 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
896 (propagated-inputs
897 `(("p11-kit" ,p11-kit)
898 ("glib" ,glib)
899 ("gtk+" ,gtk+)))
900 (home-page "https://www.gnome.org")
901 (synopsis "Libraries for displaying certificates and accessing key stores")
902 (description
903 "The GCR package contains libraries used for displaying certificates and
904 accessing key stores. It also provides the viewer for crypto files on the
905 GNOME Desktop.")
906 (license license:lgpl2.1+)))
907
908 (define-public libgnome-keyring
909 (package
910 (name "libgnome-keyring")
911 (version "3.12.0")
912 (source (origin
913 (method url-fetch)
914 (uri (string-append "mirror://gnome/sources/" name "/"
915 (version-major+minor version) "/"
916 name "-" version ".tar.xz"))
917 (sha256
918 (base32
919 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
920 (build-system gnu-build-system)
921 (inputs
922 `(("libgcrypt" ,libgcrypt)
923 ("dbus" ,dbus)))
924 (native-inputs
925 `(("pkg-config" ,pkg-config)
926 ("glib" ,glib "bin")
927 ("intltool" ,intltool)))
928 (propagated-inputs
929 ;; Referred to in .h files and .pc.
930 `(("glib" ,glib)))
931 (home-page "https://www.gnome.org")
932 (synopsis "Accessing passwords from the GNOME keyring")
933 (description
934 "Client library to access passwords from the GNOME keyring.")
935
936 ;; Though a couple of files are LGPLv2.1+.
937 (license license:lgpl2.0+)))
938
939 (define-public gnome-keyring
940 (package
941 (name "gnome-keyring")
942 (version "3.28.2")
943 (source (origin
944 (method url-fetch)
945 (uri (string-append "mirror://gnome/sources/" name "/"
946 (version-major+minor version) "/"
947 name "-" version ".tar.xz"))
948 (sha256
949 (base32
950 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
951 (build-system gnu-build-system)
952 (arguments
953 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
954 ;not exist
955 #:configure-flags
956 (list
957 (string-append "--with-pkcs11-config="
958 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
959 (string-append "--with-pkcs11-modules="
960 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
961 #:phases
962 (modify-phases %standard-phases
963 (add-after 'unpack 'fix-/bin/sh-reference
964 (lambda _
965 (substitute* "po/Makefile.in.in"
966 (("/bin/sh") (which "sh")))
967 #t))
968 (add-after 'unpack 'fix-docbook
969 (lambda* (#:key inputs #:allow-other-keys)
970 (substitute* "docs/Makefile.am"
971 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
972 (string-append (assoc-ref inputs "docbook-xsl")
973 "/xml/xsl/docbook-xsl-"
974 ,(package-version docbook-xsl)
975 "/manpages/docbook.xsl")))
976 (setenv "XML_CATALOG_FILES"
977 (string-append (assoc-ref inputs "docbook-xml")
978 "/xml/dtd/docbook/catalog.xml"))
979 ;; Rerun the whole thing to avoid version mismatch ("This is
980 ;; Automake 1.15.1, but the definition used by this
981 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
982 ;; use 'autoreconf' because it insists on running 'libtoolize'.
983 (invoke "autoconf")
984 (invoke "aclocal")
985 (invoke "automake" "-ac"))))))
986 (inputs
987 `(("libgcrypt" ,libgcrypt)
988 ("linux-pam" ,linux-pam)
989 ("openssh" ,openssh)
990 ("dbus" ,dbus)
991 ("gcr" ,gcr)))
992 (native-inputs
993 `(("pkg-config" ,pkg-config)
994 ("glib" ,glib "bin")
995 ("glib" ,glib) ; for m4 macros
996 ("python" ,python-2) ;for tests
997 ("intltool" ,intltool)
998 ("autoconf" ,autoconf)
999 ("automake" ,automake)
1000 ("libxslt" ,libxslt) ;for documentation
1001 ("docbook-xml" ,docbook-xml-4.2)
1002 ("docbook-xsl" ,docbook-xsl)))
1003 (home-page "https://www.gnome.org")
1004 (synopsis "Daemon to store passwords and encryption keys")
1005 (description
1006 "gnome-keyring is a program that keeps passwords and other secrets for
1007 users. It is run as a daemon in the session, similar to ssh-agent, and other
1008 applications locate it via an environment variable or D-Bus.
1009
1010 The program can manage several keyrings, each with its own master password,
1011 and there is also a session keyring which is never stored to disk, but
1012 forgotten when the session ends.")
1013 (license license:lgpl2.1+)))
1014
1015 (define-public evince
1016 (package
1017 (name "evince")
1018 (version "3.34.2")
1019 (source (origin
1020 (method url-fetch)
1021 (uri (string-append "mirror://gnome/sources/evince/"
1022 (version-major+minor version) "/"
1023 "evince-" version ".tar.xz"))
1024 (sha256
1025 (base32
1026 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
1027 (build-system glib-or-gtk-build-system)
1028 (arguments
1029 `(#:configure-flags '("--disable-nautilus")
1030 #:phases
1031 (modify-phases %standard-phases
1032 (add-before 'install 'skip-gtk-update-icon-cache
1033 ;; Don't create 'icon-theme.cache'.
1034 (lambda _
1035 (substitute* "data/Makefile"
1036 (("gtk-update-icon-cache") "true"))
1037 #t)))))
1038 (inputs
1039 `(("libarchive" ,libarchive)
1040 ("libgxps" ,libgxps)
1041 ("libspectre" ,libspectre)
1042 ("djvulibre" ,djvulibre)
1043 ("ghostscript" ,ghostscript)
1044 ("poppler" ,poppler)
1045 ("libtiff" ,libtiff)
1046 ;; TODO:
1047 ;; Build libkpathsea as a shared library for DVI support.
1048 ;; ("libkpathsea" ,texlive-bin)
1049 ("gnome-desktop" ,gnome-desktop)
1050 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1051 ("gspell" ,gspell)
1052 ("libgnome-keyring" ,libgnome-keyring)
1053 ("adwaita-icon-theme" ,adwaita-icon-theme)
1054 ("gdk-pixbuf" ,gdk-pixbuf)
1055 ("atk" ,atk)
1056 ("pango" ,pango)
1057 ("gtk+" ,gtk+)
1058 ("glib" ,glib)
1059 ("libxml2" ,libxml2)
1060 ("libsm" ,libsm)
1061 ("libice" ,libice)
1062 ("shared-mime-info" ,shared-mime-info)
1063 ("dconf" ,dconf)
1064 ("libcanberra" ,libcanberra)
1065 ("libsecret" ,libsecret)
1066
1067 ;; For tests.
1068 ("dogtail" ,python2-dogtail)))
1069 (native-inputs
1070 `(("itstool" ,itstool)
1071 ("intltool" ,intltool)
1072 ("glib" ,glib "bin")
1073 ("pkg-config" ,pkg-config)
1074 ("xmllint" ,libxml2)))
1075 (home-page
1076 "https://www.gnome.org/projects/evince/")
1077 (synopsis "GNOME's document viewer")
1078 (description
1079 "Evince is a document viewer for multiple document formats. It
1080 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1081 of Evince is to replace the multiple document viewers that exist
1082 on the GNOME Desktop with a single simple application.")
1083 (license license:gpl2+)))
1084
1085 (define-public gsettings-desktop-schemas
1086 (package
1087 (name "gsettings-desktop-schemas")
1088 (version "3.32.0")
1089 (source
1090 (origin
1091 (method url-fetch)
1092 (uri (string-append "mirror://gnome/sources/" name "/"
1093 (version-major+minor version) "/"
1094 name "-" version ".tar.xz"))
1095 (sha256
1096 (base32
1097 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1098 (build-system meson-build-system)
1099 (arguments
1100 '(#:phases (modify-phases %standard-phases
1101 (add-after 'unpack 'set-adwaita-theme-file-name
1102 (lambda* (#:key inputs #:allow-other-keys)
1103 ;; Provide the correct file name of the default GNOME
1104 ;; background, 'adwaita-timed.xml'.
1105 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1106 (substitute* (find-files "schemas"
1107 "\\.gschema\\.xml\\.in$")
1108 (("@datadir@/backgrounds/gnome")
1109 (string-append theme "/share/backgrounds/gnome")))
1110 #t))))))
1111 (inputs
1112 `(("glib" ,glib)
1113 ("gnome-backgrounds" ,gnome-backgrounds)))
1114 (native-inputs
1115 `(("intltool" ,intltool)
1116 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1117 ("gobject-introspection" ,gobject-introspection)
1118 ("pkg-config" ,pkg-config)))
1119 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1120 (synopsis
1121 "GNOME settings for various desktop components")
1122 (description
1123 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1124 for settings shared by various components of the GNOME desktop.")
1125 (license license:lgpl2.1+)))
1126
1127 (define-public icon-naming-utils
1128 (package
1129 (name "icon-naming-utils")
1130 (version "0.8.90")
1131 (source
1132 (origin
1133 (method url-fetch)
1134 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1135 version ".tar.bz2"))
1136 (sha256
1137 (base32
1138 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1139 (build-system gnu-build-system)
1140 (inputs
1141 `(("perl" ,perl)
1142 ("perl-xml-simple" ,perl-xml-simple)))
1143 (arguments
1144 '(#:phases
1145 (modify-phases %standard-phases
1146 (add-after 'install 'set-load-paths
1147 ;; Tell 'icon-name-mapping' where XML::Simple is.
1148 (lambda* (#:key outputs #:allow-other-keys)
1149 (let* ((out (assoc-ref outputs "out"))
1150 (prog (string-append out "/libexec/icon-name-mapping")))
1151 (wrap-program
1152 prog
1153 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1154 #t)))))
1155 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1156 (synopsis
1157 "Utility to implement the Freedesktop Icon Naming Specification")
1158 (description
1159 "To help with the transition to the Freedesktop Icon Naming
1160 Specification, the icon naming utility maps the icon names used by the
1161 GNOME and KDE desktops to the icon names proposed in the specification.")
1162 (license license:lgpl2.1+)))
1163
1164 (define-public gnome-icon-theme
1165 (package
1166 (name "gnome-icon-theme")
1167 (version "3.12.0")
1168 (source
1169 (origin
1170 (method url-fetch)
1171 (uri (string-append "mirror://gnome/sources/" name "/"
1172 (version-major+minor version) "/"
1173 name "-" version ".tar.xz"))
1174 (sha256
1175 (base32
1176 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1177 (build-system gnu-build-system)
1178 (arguments
1179 '(#:configure-flags
1180 ;; Don't create 'icon-theme.cache'.
1181 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1182 (true (string-append coreutils "/bin/true")))
1183 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1184 (native-inputs
1185 `(("icon-naming-utils" ,icon-naming-utils)
1186 ("intltool" ,intltool)
1187 ("pkg-config" ,pkg-config)))
1188 (home-page "https://wiki.gnome.org/Personalization")
1189 (synopsis "GNOME icon theme")
1190 (description "Icons for the GNOME desktop.")
1191 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1192
1193 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1194 (define-public adwaita-icon-theme
1195 (package (inherit gnome-icon-theme)
1196 (name "adwaita-icon-theme")
1197 (version "3.32.0")
1198 (source (origin
1199 (method url-fetch)
1200 (uri (string-append "mirror://gnome/sources/" name "/"
1201 (version-major+minor version) "/"
1202 name "-" version ".tar.xz"))
1203 (sha256
1204 (base32
1205 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
1206 (native-inputs
1207 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1208
1209 (define-public tango-icon-theme
1210 (package
1211 (name "tango-icon-theme")
1212 (version "0.8.90")
1213 (source (origin
1214 (method url-fetch)
1215 (uri (string-append "http://tango.freedesktop.org/releases/"
1216 "tango-icon-theme-" version ".tar.bz2"))
1217 (sha256
1218 (base32
1219 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1220 (build-system gnu-build-system)
1221 (native-inputs
1222 `(("icon-naming-utils" ,icon-naming-utils)
1223 ("intltool" ,intltool)
1224 ("imagemagick" ,imagemagick)
1225 ("pkg-config" ,pkg-config)))
1226 (home-page "http://tango-project.org/")
1227 (synopsis "Tango icon theme")
1228 (description "This is an icon theme that follows the Tango visual
1229 guidelines.")
1230 (license license:public-domain)))
1231
1232 (define-public shared-mime-info
1233 (package
1234 (name "shared-mime-info")
1235 (version "1.10")
1236 (source (origin
1237 (method url-fetch)
1238 (uri (string-append "https://freedesktop.org/~hadess/"
1239 "shared-mime-info-" version ".tar.xz"))
1240 (sha256
1241 (base32
1242 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
1243 (build-system gnu-build-system)
1244 (arguments
1245 ;; The build system appears not to be parallel-safe.
1246 '(#:parallel-build? #f))
1247 (inputs
1248 `(("glib" ,glib)
1249 ("libxml2" ,libxml2)))
1250 (native-inputs
1251 `(("intltool" ,intltool)
1252 ("pkg-config" ,pkg-config)))
1253 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1254 (synopsis "Database of common MIME types")
1255 (description
1256 "The shared-mime-info package contains the core database of common types
1257 and the update-mime-database command used to extend it. It requires glib2 to
1258 be installed for building the update command. Additionally, it uses intltool
1259 for translations, though this is only a dependency for the maintainers. This
1260 database is translated at Transifex.")
1261 (license license:gpl2+)))
1262
1263 (define-public system-config-printer
1264 (package
1265 (name "system-config-printer")
1266 (version "1.5.11")
1267 (source (origin
1268 (method url-fetch)
1269 (uri (string-append
1270 "https://github.com/zdohnal/system-config-printer/releases/"
1271 "download/" version
1272 "/system-config-printer-" version ".tar.xz"))
1273 (sha256
1274 (base32
1275 "1lq0q51bhanirpjjvvh4xiafi8hgpk8r32h0dj6dn3f32z8pib9q"))))
1276 (build-system glib-or-gtk-build-system)
1277 (arguments
1278 `(#:imported-modules ((guix build python-build-system)
1279 ,@%glib-or-gtk-build-system-modules)
1280 #:phases
1281 (modify-phases %standard-phases
1282 (add-after 'unpack 'patch-Makefile.am
1283 (lambda _
1284 ;; The Makefile generates some scripts, so set a valid shebang
1285 (substitute* "Makefile.am"
1286 (("/bin/bash") (which "bash")))
1287 (delete-file "configure")
1288 #t))
1289 (add-after 'unpack 'patch-docbook-xml
1290 (lambda* (#:key inputs #:allow-other-keys)
1291 ;; Modify the man XML otherwise xmlto tries to access the network
1292 (substitute* "man/system-config-printer.xml"
1293 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1294 (string-append (assoc-ref inputs "docbook-xml")
1295 "/xml/dtd/docbook/")))
1296 #t))
1297 (add-after 'install 'wrap-for-python
1298 (@@ (guix build python-build-system) wrap))
1299 (add-after 'install 'wrap
1300 (lambda* (#:key outputs #:allow-other-keys)
1301 (let ((out (assoc-ref outputs "out"))
1302 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1303 (for-each
1304 (lambda (program)
1305 (wrap-program program
1306 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1307 (map (lambda (name)
1308 (string-append out "/bin/" name))
1309 '("system-config-printer"
1310 "system-config-printer-applet"
1311 "install-printerdriver"
1312 "scp-dbus-service"))))
1313 #t)))))
1314 (inputs
1315 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1316 ("gobject-introspection" ,gobject-introspection)
1317 ("python" ,python)
1318 ("cups" ,cups)
1319 ("python-dbus" ,python-dbus)
1320 ("python-pygobject" ,python-pygobject)
1321 ("python-pycups" ,python-pycups)
1322 ("python-requests" ,python-requests)
1323 ("python-pycairo" ,python-pycairo)
1324 ("libnotify" ,libnotify)
1325 ("packagekit" ,packagekit)))
1326 (native-inputs
1327 `(("pkg-config" ,pkg-config)
1328 ("desktop-file-utils" ,desktop-file-utils)
1329 ("glib" ,glib)
1330 ("autoconf" ,autoconf)
1331 ("automake" ,automake)
1332 ("intltool" ,intltool)
1333 ("xmlto" ,xmlto)
1334 ("docbook-xml" ,docbook-xml-4.1.2)
1335 ("docbook-xsl" ,docbook-xsl)
1336 ("libxml2" ,libxml2)))
1337 (home-page "https://github.com/zdohnal/system-config-printer")
1338 (synopsis "CUPS administration tool")
1339 (description
1340 "system-config-printer is a CUPS administration tool. It's written in
1341 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1342 configuring CUPS.")
1343 (license license:gpl2+)))
1344
1345 (define-public hicolor-icon-theme
1346 (package
1347 (name "hicolor-icon-theme")
1348 (version "0.17")
1349 (source
1350 (origin
1351 (method url-fetch)
1352 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
1353 "hicolor-icon-theme-" version ".tar.xz"))
1354 (sha256
1355 (base32
1356 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
1357 (build-system gnu-build-system)
1358 (arguments
1359 `(#:tests? #f)) ; no check target
1360 (home-page "https://icon-theme.freedesktop.org/releases/")
1361 (synopsis
1362 "Freedesktop icon theme")
1363 (description
1364 "Freedesktop icon theme.")
1365 (license license:gpl2)))
1366
1367 (define-public libnotify
1368 (package
1369 (name "libnotify")
1370 (version "0.7.7")
1371 (source
1372 (origin
1373 (method url-fetch)
1374 (uri (string-append "mirror://gnome/sources/" name "/"
1375 (version-major+minor version) "/"
1376 name "-" version ".tar.xz"))
1377 (sha256
1378 (base32
1379 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
1380 (build-system gnu-build-system)
1381 (arguments
1382 `(#:configure-flags '("--disable-static")))
1383 (propagated-inputs
1384 `(;; In Requires of libnotify.pc.
1385 ("gdk-pixbuf" ,gdk-pixbuf)
1386 ("glib" ,glib)))
1387 (inputs
1388 `(("gtk+" ,gtk+)
1389 ("libpng" ,libpng)))
1390 (native-inputs
1391 `(("pkg-config" ,pkg-config)
1392 ("glib" ,glib "bin")
1393 ("gobject-introspection" ,gobject-introspection)))
1394 (home-page "https://developer-next.gnome.org/libnotify/")
1395 (synopsis
1396 "GNOME desktop notification library")
1397 (description
1398 "Libnotify is a library that sends desktop notifications to a
1399 notification daemon, as defined in the Desktop Notifications spec. These
1400 notifications can be used to inform the user about an event or display
1401 some form of information without getting in the user's way.")
1402 (license license:lgpl2.1+)))
1403
1404 (define-public libpeas
1405 (package
1406 (name "libpeas")
1407 (version "1.22.0")
1408 (source
1409 (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 "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv"))))
1417 (build-system gnu-build-system)
1418 (inputs
1419 `(("gtk+" ,gtk+)
1420 ("glade" ,glade3)
1421 ("python" ,python)
1422 ("python-pygobject" ,python-pygobject)))
1423 (native-inputs
1424 `(("pkg-config" ,pkg-config)
1425 ("glib:bin" ,glib "bin")
1426 ("gobject-introspection" ,gobject-introspection)
1427 ("intltool" ,intltool)))
1428 (propagated-inputs
1429 ;; The .pc file "Requires" gobject-introspection.
1430 `(("gobject-introspection" ,gobject-introspection)))
1431 (home-page "https://wiki.gnome.org/Libpeas")
1432 (synopsis "GObject plugin system")
1433 (description
1434 "Libpeas is a gobject-based plugin engine, targeted at giving every
1435 application the chance to assume its own extensibility. It also has a set of
1436 features including, but not limited to: multiple extension points; on-demand
1437 (lazy) programming language support for C, Python and JS; simplicity of the
1438 API.")
1439 (license license:lgpl2.0+)))
1440
1441 (define-public gtkglext
1442 (package
1443 (name "gtkglext")
1444 (version "1.2.0")
1445 (source (origin
1446 (method url-fetch)
1447 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
1448 version "/gtkglext-" version ".tar.gz"))
1449 (sha256
1450 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
1451 (patches (search-patches
1452 "gtkglext-disable-disable-deprecated.patch"))))
1453 (build-system gnu-build-system)
1454 (arguments
1455 `(#:phases
1456 (modify-phases %standard-phases
1457 ;; Fix a collision between a local variable and a definition from
1458 ;; glibc's string.h.
1459 (add-after 'unpack 'fix-collision
1460 (lambda _
1461 (substitute* "gdk/gdkglshapes.c"
1462 ((" index") " triangle_index"))
1463 #t)))))
1464 (inputs `(("gtk+" ,gtk+-2)
1465 ("mesa" ,mesa)
1466 ("glu" ,glu)
1467 ("libx11" ,libx11)
1468 ("libxt" ,libxt)))
1469 (native-inputs `(("pkg-config" ,pkg-config)
1470 ("glib" ,glib "bin")))
1471 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
1472 (home-page "https://projects.gnome.org/gtkglext")
1473 (synopsis "OpenGL extension to GTK+")
1474 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
1475 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1476 API add-ons to make GTK+ widgets OpenGL-capable.")
1477 (license license:lgpl2.1+)))
1478
1479 (define-public glade3
1480 (package
1481 (name "glade")
1482 (version "3.22.1")
1483 (source (origin
1484 (method url-fetch)
1485 (uri (string-append "mirror://gnome/sources/" name "/"
1486 (version-major+minor version) "/"
1487 name "-" version ".tar.xz"))
1488 (sha256
1489 (base32
1490 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
1491 (build-system glib-or-gtk-build-system)
1492 (arguments
1493 `(#:tests? #f ; needs X, GL, and software rendering
1494 #:phases
1495 (modify-phases %standard-phases
1496 (add-before 'configure 'fix-docbook
1497 (lambda* (#:key inputs #:allow-other-keys)
1498 (substitute* "man/Makefile.in"
1499 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1500 (string-append (assoc-ref inputs "docbook-xsl")
1501 "/xml/xsl/docbook-xsl-"
1502 ,(package-version docbook-xsl)
1503 "/manpages/docbook.xsl")))
1504 #t)))))
1505 (inputs
1506 `(("gtk+" ,gtk+)
1507 ("libxml2" ,libxml2)))
1508 (native-inputs
1509 `(("intltool" ,intltool)
1510 ("itstool" ,itstool)
1511 ("libxslt" ,libxslt) ;for xsltproc
1512 ("docbook-xml" ,docbook-xml-4.2)
1513 ("docbook-xsl" ,docbook-xsl)
1514 ("python" ,python-2)
1515 ("pkg-config" ,pkg-config)))
1516 (home-page "https://glade.gnome.org")
1517 (synopsis "GTK+ rapid application development tool")
1518 (description "Glade is a rapid application development (RAD) tool to
1519 enable quick & easy development of user interfaces for the GTK+ toolkit and
1520 the GNOME desktop environment.")
1521 (license license:lgpl2.0+)))
1522
1523 (define-public libcroco
1524 (package
1525 (name "libcroco")
1526 (version "0.6.13")
1527 (source (origin
1528 (method url-fetch)
1529 (uri (string-append "mirror://gnome/sources/" name "/"
1530 (version-major+minor version) "/"
1531 name "-" version ".tar.xz"))
1532 (sha256
1533 (base32
1534 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1535 (build-system gnu-build-system)
1536 (native-inputs
1537 `(("pkg-config" ,pkg-config)))
1538 (inputs
1539 `(("glib" ,glib)
1540 ("libxml2" ,libxml2)
1541 ("zlib" ,zlib)))
1542 (home-page "https://github.com/GNOME/libcroco")
1543 (synopsis "CSS2 parsing and manipulation library")
1544 (description
1545 "Libcroco is a standalone CSS2 parsing and manipulation library.
1546 The parser provides a low level event driven SAC-like API and a CSS object
1547 model like API. Libcroco provides a CSS2 selection engine and an experimental
1548 XML/CSS rendering engine.")
1549
1550 ;; LGPLv2.1-only.
1551 (license license:lgpl2.1)))
1552
1553 (define-public libgsf
1554 (package
1555 (name "libgsf")
1556 (version "1.14.46")
1557 (source (origin
1558 (method url-fetch)
1559 (uri (string-append "mirror://gnome/sources/" name "/"
1560 (version-major+minor version) "/"
1561 name "-" version ".tar.xz"))
1562 (sha256
1563 (base32
1564 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
1565 (build-system gnu-build-system)
1566 (native-inputs
1567 `(("intltool" ,intltool)
1568 ("pkg-config" ,pkg-config)))
1569 (inputs
1570 `(("python" ,python)
1571 ("zlib" ,zlib)
1572 ("bzip2" ,bzip2)))
1573 (propagated-inputs
1574 `(("gdk-pixbuf" ,gdk-pixbuf)
1575 ("glib" ,glib)
1576 ("libxml2" ,libxml2)))
1577 (home-page "https://www.gnome.org/projects/libgsf")
1578 (synopsis "GNOME's Structured File Library")
1579 (description
1580 "Libgsf aims to provide an efficient extensible I/O abstraction for
1581 dealing with different structured file formats.")
1582
1583 ;; LGPLv2.1-only.
1584 (license license:lgpl2.1)))
1585
1586 (define-public librsvg
1587 (package
1588 (name "librsvg")
1589 (version "2.40.20")
1590 (source (origin
1591 (method url-fetch)
1592 (uri (string-append "mirror://gnome/sources/" name "/"
1593 (version-major+minor version) "/"
1594 name "-" version ".tar.xz"))
1595 (sha256
1596 (base32
1597 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
1598 (build-system gnu-build-system)
1599 (arguments
1600 `(#:configure-flags
1601 (list "--disable-static"
1602 "--enable-vala") ; needed for e.g. gnome-mines
1603 #:phases
1604 (modify-phases %standard-phases
1605 (add-before 'configure 'pre-configure
1606 (lambda* (#:key inputs #:allow-other-keys)
1607 (substitute* "gdk-pixbuf-loader/Makefile.in"
1608 ;; By default the gdk-pixbuf loader is installed under
1609 ;; gdk-pixbuf's prefix. Work around that.
1610 (("gdk_pixbuf_moduledir = .*$")
1611 (string-append "gdk_pixbuf_moduledir = "
1612 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
1613 "loaders\n"))
1614 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
1615 (("gdk_pixbuf_cache_file = .*$")
1616 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
1617 #t))
1618 (add-before 'check 'remove-failing-tests
1619 (lambda _
1620 (with-directory-excursion "tests/fixtures/reftests"
1621 (for-each delete-file
1622 '(;; This test fails on i686:
1623 "svg1.1/masking-path-04-b.svg"
1624 ;; This test fails on armhf:
1625 "svg1.1/masking-mask-01-b.svg"
1626 ;; This test fails on aarch64:
1627 "bugs/777834-empty-text-children.svg")))
1628 #t)))))
1629 (native-inputs
1630 `(("pkg-config" ,pkg-config)
1631 ("vala" ,vala)
1632 ("glib" ,glib "bin") ; glib-mkenums, etc.
1633 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
1634 (inputs
1635 `(("pango" ,pango)
1636 ("libcroco" ,libcroco)
1637 ("bzip2" ,bzip2)
1638 ("libgsf" ,libgsf)
1639 ("libxml2" ,libxml2)))
1640 (propagated-inputs
1641 ;; librsvg-2.0.pc refers to all of that.
1642 `(("cairo" ,cairo)
1643 ("gdk-pixbuf" ,gdk-pixbuf)
1644 ("glib" ,glib)))
1645 (home-page "https://wiki.gnome.org/LibRsvg")
1646 (synopsis "Render SVG files using Cairo")
1647 (description
1648 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
1649 library.")
1650 (license license:lgpl2.0+)))
1651
1652 (define* (computed-origin-method gexp-promise hash-algo hash
1653 #:optional (name "source")
1654 #:key (system (%current-system))
1655 (guile (default-guile)))
1656 "Return a derivation that executes the G-expression that results
1657 from forcing GEXP-PROMISE."
1658 (mlet %store-monad ((guile (package->derivation guile system)))
1659 (gexp->derivation (or name "computed-origin")
1660 (force gexp-promise)
1661 #:graft? #f ;nothing to graft
1662 #:system system
1663 #:guile-for-build guile)))
1664
1665 (define librsvg-next-source
1666 (let* ((version "2.46.3")
1667 (upstream-source (origin
1668 (method url-fetch)
1669 (uri (string-append "mirror://gnome/sources/librsvg/"
1670 (version-major+minor version) "/"
1671 "librsvg-" version ".tar.xz"))
1672 (sha256
1673 (base32
1674 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
1675 (origin
1676 (method computed-origin-method)
1677 (file-name (string-append "librsvg-" version ".tar.xz"))
1678 (sha256 #f)
1679 (uri
1680 (delay
1681 (with-imported-modules '((guix build utils))
1682 #~(begin
1683 (use-modules (guix build utils))
1684 (set-path-environment-variable
1685 "PATH" '("bin")
1686 (list "/tmp"
1687 #+(canonical-package xz)
1688 #+(canonical-package gzip)
1689 #+(canonical-package tar)))
1690 (invoke "tar" "xvf" #+upstream-source)
1691 (with-directory-excursion (string-append "librsvg-" #$version)
1692 (for-each
1693 (lambda (crate)
1694 (delete-file-recursively (string-append "vendor/" (car crate)))
1695 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
1696 '(
1697 ;; aho-corasick 0.7
1698 ;; alga 0.9
1699 ;; approx 0.3
1700 ;; arrayvec 0.4
1701 ("atty" . #+(package-source rust-atty-0.2))
1702 ("autocfg" . #+(package-source rust-autocfg-0.1))
1703 ("bitflags" . #+(package-source rust-bitflags-1))
1704 ;; block 0.1
1705 ;; bstr 0.2
1706 ;; byteorder 1.3
1707 ;; cairo-rs 0.7
1708 ;; cairo-sys-rs 0.9
1709 ;; cast 0.2
1710 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
1711 ("clap" . #+(package-source rust-clap-2))
1712 ;("cloudabi" . #+(package-source rust-cloudabi-0.0))
1713 ;; criterion 0.2
1714 ;; criterion-plot 0.3
1715 ;; crossbeam-deque 0.7
1716 ;; crossbeam-epoch 0.7
1717 ;; crossbeam-queue 0.1
1718 ;; crossbeam-utils 0.6
1719 ;; cssparser 0.25
1720 ;; cssparser-macros 0.3
1721 ;; csv 1.1
1722 ;; csv-core 0.1
1723 ;; data-url 0.1
1724 ;; downcast-rs 1.0
1725 ("dtoa" . #+(package-source rust-dtoa-0.4))
1726 ;; dtoa-short 0.3
1727 ;; either 1.5
1728 ;; encoding 0.2
1729 ;; encoding-index-japanese 1.20141219.5
1730 ;; encoding-index-korean 1.20141219.5
1731 ;; encoding-index-simpchinese 1.20141219.5
1732 ;; encoding-index-singlebyte 1.20141219.5
1733 ;; encoding-index-tradchinese 1.20141219.5
1734 ;; encoding_index_tests 0.1
1735 ;; float-cmp 0.5
1736 ;; fragile 0.3
1737 ;("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
1738 ;; futf 0.1
1739 ;; gdk-pixbuf 0.7
1740 ;; gdk-pixbuf-sys 0.9
1741 ;; generic-array 0.12
1742 ;; gio 0.7
1743 ;; gio-sys 0.9
1744 ;; glib 0.8
1745 ;; glib-sys 0.9
1746 ;; gobject-sys 0.9
1747 ;; idna 0.2
1748 ;; itertools 0.8
1749 ("itoa" . #+(package-source rust-itoa-0.4))
1750 ;("language-tags" . #+(package-source rust-language-tags-0.2))
1751 ("lazy_static" . #+(package-source rust-lazy-static-1.3))
1752 ("libc" . #+(package-source rust-libc-0.2))
1753 ;; libm 0.1
1754 ;; locale_config 0.3
1755 ("log" . #+(package-source rust-log-0.4))
1756 ;; mac 0.1
1757 ;; malloc_buf 0.0
1758 ;; markup5ever 0.9
1759 ;("matches" . #+(package-source rust-matches-0.1))
1760 ;; matrixmultiply 0.2
1761 ;; memchr 2.2
1762 ;; memoffset 0.5
1763 ;; nalgebra 0.18
1764 ;; new_debug_unreachable 1.0
1765 ("nodrop" . #+(package-source rust-nodrop-0.1))
1766 ;; num-complex 0.2
1767 ("num-integer" . #+(package-source rust-num-integer-0.1))
1768 ;; num-rational 0.2
1769 ("num-traits" . #+(package-source rust-num-traits-0.2))
1770 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
1771 ;; objc 0.2
1772 ;; objc-foundation 0.1
1773 ;; objc_id 0.1
1774 ;; pango 0.7
1775 ;; pango-sys 0.9
1776 ;; pangocairo 0.8
1777 ;; pangocairo-sys 0.10
1778 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
1779 ;; phf 0.7.24
1780 ;; phf_codegen 0.7.24
1781 ;; phf_generator 0.7.24
1782 ;; phf_shared 0.7.24
1783 ;("pkg-config" . #+(package-source rust-pkg-config-0.3))
1784 ;; precomputed-hash 0.1
1785 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
1786 ;; procedural-masquerade 0.1
1787 ("quote" . #+(package-source rust-quote-1.0))
1788 ;("rand" . #+(package-source rust-rand-0.6))
1789 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
1790 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
1791 ("rand_core" . #+(package-source rust-rand-core-0.4))
1792 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
1793 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
1794 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
1795 ("rand_os" . #+(package-source rust-rand-os-0.1))
1796 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
1797 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
1798 ;; rand_xoshiro 0.1
1799 ;("rawpointer" . #+(package-source rust-rawpointer-0.1))
1800 ;; rayon 1.2
1801 ;; rayon-core 1.6
1802 ;; rctree 0.3
1803 ("rdrand" . #+(package-source rust-rdrand-0.4))
1804 ;; regex 1.3
1805 ;; regex-automata 0.1
1806 ;("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
1807 ;; rustc_version 0.2
1808 ("ryu" . #+(package-source rust-ryu-1.0))
1809 ("same-file" . #+(package-source rust-same-file-1.0))
1810 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
1811 ;; semver 0.9
1812 ;("semver-parser" . #+(package-source rust-semver-parser-0.7))
1813 ("serde" . #+(package-source rust-serde-1.0))
1814 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
1815 ("serde_json" . #+(package-source rust-serde-json-1.0))
1816 ;; siphasher 0.2
1817 ;; smallvec 0.6
1818 ;; string_cache 0.7
1819 ;; string_cache_codegen 0.4
1820 ;; string_cache_shared 0.3
1821 ("syn" . #+(package-source rust-syn-1.0))
1822 ;; tendril 0.4
1823 ("textwrap" . #+(package-source rust-textwrap-0.11))
1824 ;("thread_local" . #+(package-source rust-thread-local-0.3))
1825 ;; tinytemplate 1.0
1826 ;("typenum" . #+(package-source rust-typenum-1.10))
1827 ;; unicode-bidi 0.3
1828 ;; unicode-normalization 0.1
1829 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
1830 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
1831 ;; url 2.1
1832 ;; utf-8 0.7
1833 ("walkdir" . #+(package-source rust-walkdir-2.2))
1834 ("winapi" . #+(package-source rust-winapi-0.3))
1835 ;("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
1836 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
1837 ;("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
1838 ;; xml-rs 0.8
1839 )))
1840 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
1841 (force-output)
1842 (invoke "tar" "cfa" #$output
1843 ;; Avoid non-determinism in the archive. We set the
1844 ;; mtime of files in the archive to early 1980 because
1845 ;; the build process fails if the mtime of source
1846 ;; files is pre-1980, due to the creation of zip
1847 ;; archives.
1848 "--mtime=@315619200" ; 1980-01-02 UTC
1849 "--owner=root:0"
1850 "--group=root:0"
1851 "--sort=name"
1852 (string-append "librsvg-" #$version))
1853 #t)))))))
1854
1855 (define-public librsvg-next
1856 (package
1857 (name "librsvg")
1858 (version "2.46.3")
1859 (source librsvg-next-source)
1860 (build-system gnu-build-system)
1861 (arguments
1862 `(#:configure-flags
1863 (list "--disable-static"
1864 "--enable-vala") ; needed for e.g. gnome-mines
1865 #:make-flags '("CC=gcc")
1866 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
1867 #:phases
1868 (modify-phases %standard-phases
1869 (add-after 'configure 'patch-cargo-checksums
1870 (lambda _
1871 (use-modules (guix build cargo-utils))
1872 (substitute* "librsvg/Cargo.toml"
1873 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
1874 (generate-all-checksums "vendor")
1875 (delete-file "Cargo.lock")
1876 (invoke "cargo" "generate-lockfile")))
1877 (add-before 'configure 'pre-configure
1878 (lambda* (#:key inputs #:allow-other-keys)
1879 (substitute* "gdk-pixbuf-loader/Makefile.in"
1880 ;; By default the gdk-pixbuf loader is installed under
1881 ;; gdk-pixbuf's prefix. Work around that.
1882 (("gdk_pixbuf_moduledir = .*$")
1883 (string-append "gdk_pixbuf_moduledir = "
1884 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
1885 "loaders\n"))
1886 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
1887 (("gdk_pixbuf_cache_file = .*$")
1888 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
1889 #t))
1890 (add-before 'check 'remove-failing-tests
1891 (lambda _
1892 (with-directory-excursion "tests/fixtures/reftests"
1893 (for-each delete-file
1894 '(;; The images produced by these tests differ slightly
1895 ;; from their reference counterparts due to differences
1896 ;; in the build environment (missing fonts, etc). See
1897 ;; <tests/README.md> for details.
1898 ;; These fail on x86_64.
1899 "svg1.1/coords-viewattr-02-b.svg"
1900 "svg1.1/filters-composite-04-f.svg"
1901 "svg1.1/filters-image-01-b.svg"
1902 "svg1.1/filters-conv-02-f.svg"
1903 "svg1.1/filters-conv-04-f.svg"
1904 ;; This test fails on i686:
1905 "svg1.1/masking-path-04-b.svg"
1906 ;; This test fails on armhf:
1907 "svg1.1/masking-mask-01-b.svg"
1908 ;; This test fails on aarch64:
1909 "bugs/777834-empty-text-children.svg")))
1910 #t)))))
1911 (native-inputs
1912 `(("pkg-config" ,pkg-config)
1913 ;; This is the minimum supported Rust version in Librsvg 2.46.
1914 ("rust" ,rust-1.34)
1915 ("cargo" ,rust-1.34 "cargo")
1916 ("vala" ,vala)
1917 ("glib" ,glib "bin") ; glib-mkenums, etc.
1918 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
1919 (inputs
1920 `(("pango" ,pango)
1921 ("libcroco" ,libcroco)
1922 ("bzip2" ,bzip2)
1923 ("libgsf" ,libgsf)
1924 ("libxml2" ,libxml2)))
1925 (propagated-inputs
1926 ;; librsvg-2.0.pc refers to all of that.
1927 `(("cairo" ,cairo)
1928 ("gdk-pixbuf" ,gdk-pixbuf)
1929 ("glib" ,glib)))
1930 (home-page "https://wiki.gnome.org/LibRsvg")
1931 (synopsis "Render SVG files using Cairo")
1932 (description
1933 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
1934 library.")
1935 (license license:lgpl2.1+)))
1936
1937 (define-public libidl
1938 (package
1939 (name "libidl")
1940 (version "0.8.14")
1941 (source (origin
1942 (method url-fetch)
1943 (uri (string-append "mirror://gnome/sources/libIDL/"
1944 (version-major+minor version) "/"
1945 "libIDL-" version ".tar.bz2"))
1946 (sha256
1947 (base32
1948 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
1949 (build-system gnu-build-system)
1950 (inputs `(("glib" ,glib)))
1951 (native-inputs
1952 `(("pkg-config" ,pkg-config)
1953 ("flex" ,flex)
1954 ("bison" ,bison)))
1955 (home-page "http://freecode.com/projects/libidl")
1956 (synopsis "Create trees of CORBA Interface Definition Language files")
1957 (description "Libidl is a library for creating trees of CORBA Interface
1958 Definition Language (idl) files, which is a specification for defining
1959 portable interfaces. libidl was initially written for orbit (the orb from the
1960 GNOME project, and the primary means of libidl distribution). However, the
1961 functionality was designed to be as reusable and portable as possible.")
1962 (properties `((upstream-name . "libIDL")))
1963 (license license:lgpl2.0+)))
1964
1965
1966 (define-public orbit2
1967 (package
1968 (name "orbit2")
1969 (version "2.14.19")
1970 (source (origin
1971 (method url-fetch)
1972 (uri (let ((upstream-name "ORBit2"))
1973 (string-append "mirror://gnome/sources/" upstream-name "/"
1974 (version-major+minor version) "/"
1975 upstream-name "-" version ".tar.bz2")))
1976 (sha256
1977 (base32
1978 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
1979 (build-system gnu-build-system)
1980 (arguments
1981 `(#:configure-flags
1982 '(;; We don't need static libraries, plus they don't build reproducibly
1983 ;; (non-deterministic ordering of .o files in the archive.)
1984 "--disable-static"
1985
1986 ;; The programmer kindly gives us a hook to turn off deprecation
1987 ;; warnings ...
1988 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
1989 ;; ... which they then completly ignore !!
1990 #:phases
1991 (modify-phases %standard-phases
1992 (add-before 'configure 'ignore-deprecations
1993 (lambda _
1994 (substitute* "linc2/src/Makefile.in"
1995 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
1996 #t)))))
1997 (inputs `(("glib" ,glib)
1998 ("libidl" ,libidl)))
1999 (native-inputs
2000 `(("pkg-config" ,pkg-config)))
2001 (home-page "https://projects.gnome.org/orbit2/")
2002 (synopsis "CORBA 2.4-compliant Object Request Broker")
2003 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2004 featuring mature C, C++ and Python bindings.")
2005 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2006 ;; a version. SOME of the code files have licence notices for GPLv2+.
2007 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2008 (license license:gpl2+)
2009 (properties `((upstream-name . "ORBit2")))))
2010
2011
2012 (define-public libbonobo
2013 (package
2014 (name "libbonobo")
2015 (version "2.32.1")
2016 (source (origin
2017 (method url-fetch)
2018 (uri (string-append "mirror://gnome/sources/" name "/"
2019 (version-major+minor version)
2020 "/" name "-" version ".tar.bz2"))
2021 (sha256
2022 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2023 (patches (search-patches
2024 "libbonobo-activation-test-race.patch"))))
2025 (build-system gnu-build-system)
2026 (arguments
2027 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2028 `(#:configure-flags
2029 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2030 ;; ... which they then completly ignore !!
2031 #:phases
2032 (modify-phases %standard-phases
2033 (add-before 'configure 'ignore-deprecations
2034 (lambda _
2035 (substitute* "activation-server/Makefile.in"
2036 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2037 #t)))
2038
2039 ;; There's apparently a race condition between the server stub
2040 ;; generation and linking of the example under 'samples/echo' that can
2041 ;; lead do undefined references when building in parallel, as reported
2042 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2043 ;; Thus, disable parallel builds.
2044 #:parallel-build? #f))
2045 (inputs `(("popt" ,popt)
2046 ("libxml2" ,libxml2)))
2047 ;; The following are Required by the .pc file
2048 (propagated-inputs
2049 `(("glib" ,glib)
2050 ("orbit2" ,orbit2)))
2051 (native-inputs
2052 `(("intltool" ,intltool)
2053 ("pkg-config" ,pkg-config)
2054 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2055 ("flex" ,flex)
2056 ("bison" ,bison)))
2057 (home-page "https://developer.gnome.org/libbonobo/")
2058 (synopsis "Framework for creating reusable components for use in GNOME applications")
2059 (description "Bonobo is a framework for creating reusable components for
2060 use in GNOME applications, built on top of CORBA.")
2061 ;; Licence not explicitly stated. Source files contain no licence notices.
2062 ;; Tarball contains text of both GPLv2 and LGPLv2
2063 ;; GPLv2 covers both conditions
2064 (license license:gpl2+)))
2065
2066
2067 (define-public gconf
2068 (package
2069 (name "gconf")
2070 (version "3.2.6")
2071 (source (origin
2072 (method url-fetch)
2073 (uri
2074 (let ((upstream-name "GConf"))
2075 (string-append "mirror://gnome/sources/" upstream-name "/"
2076 (version-major+minor version) "/"
2077 upstream-name "-" version ".tar.xz")))
2078 (sha256
2079 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2080 (build-system gnu-build-system)
2081 (inputs `(("dbus-glib" ,dbus-glib)
2082 ("libxml2" ,libxml2)))
2083 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2084 ("orbit2" ,orbit2)))
2085 (native-inputs
2086 `(("intltool" ,intltool)
2087 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2088 ("pkg-config" ,pkg-config)))
2089 (home-page "https://projects.gnome.org/gconf/")
2090 (synopsis "Store application preferences")
2091 (description "Gconf is a system for storing application preferences. It
2092 is intended for user preferences; not arbitrary data storage.")
2093 (license license:lgpl2.0+)
2094 (properties '((upstream-name . "GConf")))))
2095
2096
2097 (define-public gnome-mime-data
2098 (package
2099 (name "gnome-mime-data")
2100 (version "2.18.0")
2101 (source (origin
2102 (method url-fetch)
2103 (uri (string-append "mirror://gnome/sources/" name "/"
2104 (version-major+minor version) "/"
2105 name "-" version ".tar.bz2"))
2106 (sha256
2107 (base32
2108 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2109 (build-system gnu-build-system)
2110 (native-inputs
2111 `(("perl" ,perl)
2112 ("intltool" ,intltool)))
2113 (arguments
2114 '(#:phases (modify-phases %standard-phases
2115 (add-after 'configure 'use-our-intltool
2116 (lambda _
2117 ;; Do not use the bundled intltool commands, which lack
2118 ;; the "dotless @INC" fixes of our 'intltool' package.
2119 (substitute* (find-files "." "^Makefile$")
2120 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2121 (string-append "INTLTOOL_" tool " = intltool-"
2122 (string-downcase tool) "\n")))
2123 #t)))))
2124 (home-page "https://www.gnome.org")
2125 (synopsis "Base MIME and Application database for GNOME")
2126 (description "GNOME Mime Data is a module which contains the base MIME
2127 and Application database for GNOME. The data stored by this module is
2128 designed to be accessed through the MIME functions in GnomeVFS.")
2129 (license license:gpl2+)))
2130
2131
2132 (define-public gnome-vfs
2133 (package
2134 (name "gnome-vfs")
2135 (version "2.24.4")
2136 (source (origin
2137 (method url-fetch)
2138 (uri (string-append "mirror://gnome/sources/" name "/"
2139 (version-major+minor version) "/"
2140 name "-" version ".tar.bz2"))
2141 (sha256
2142 (base32
2143 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2144 (build-system gnu-build-system)
2145 (arguments
2146 `(#:phases
2147 (modify-phases %standard-phases
2148 (add-before 'configure 'ignore-deprecations
2149 (lambda _
2150 (substitute* '("libgnomevfs/Makefile.in"
2151 "daemon/Makefile.in")
2152 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2153 #t))
2154 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2155 (lambda _
2156 (substitute* "test/test-async-cancel.c"
2157 (("EXIT_FAILURE") "77"))
2158 #t)))))
2159 (inputs `(("libxml2" ,libxml2)
2160 ("dbus-glib" ,dbus-glib)
2161 ("gconf" ,gconf)
2162 ("gnome-mime-data" ,gnome-mime-data)
2163 ("zlib" ,zlib)))
2164 (native-inputs
2165 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2166 ("intltool" ,intltool)
2167 ("pkg-config" ,pkg-config)))
2168 (home-page "https://developer.gnome.org/gnome-vfs/")
2169 (synopsis "Access files and folders in GNOME applications")
2170 (description
2171 "GnomeVFS is the core library used to access files and folders in GNOME
2172 applications. It provides a file system abstraction which allows applications
2173 to access local and remote files with a single consistent API.")
2174 (license license:lgpl2.0+)))
2175
2176
2177
2178 (define-public libgnome
2179 (package
2180 (name "libgnome")
2181 (version "2.32.1")
2182 (source (origin
2183 (method url-fetch)
2184 (uri (string-append "mirror://gnome/sources/" name "/"
2185 (version-major+minor version) "/"
2186 name "-" version ".tar.bz2"))
2187 (sha256
2188 (base32
2189 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2190 (patches (search-patches "libgnome-encoding.patch"))))
2191 (build-system gnu-build-system)
2192 (arguments
2193 `(#:phases
2194 (modify-phases %standard-phases
2195 (add-before 'configure 'enable-deprecated
2196 (lambda _
2197 (substitute* "libgnome/Makefile.in"
2198 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2199 #t)))))
2200 (inputs `(("libxml2" ,libxml2)))
2201 (native-inputs
2202 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2203 ("intltool" ,intltool)
2204 ("pkg-config" ,pkg-config)))
2205 ;; The following are listed as Required in the .pc file
2206 ;; (except for libcanberra -- which seems to be oversight on the part
2207 ;; of the upstream developers -- anything that links against libgnome,
2208 ;; must also link against libcanberra
2209 (propagated-inputs
2210 `(("libcanberra" ,libcanberra)
2211 ("libbonobo" ,libbonobo)
2212 ("gconf" ,gconf)
2213 ("gnome-vfs" ,gnome-vfs)
2214 ("popt" ,popt))) ;gnome-program.h includes popt.h
2215 (home-page "https://developer.gnome.org/libgnome/")
2216 (synopsis "Useful routines for building applications")
2217 (description "The libgnome library provides a number of useful routines
2218 for building modern applications, including session management, activation of
2219 files and URIs, and displaying help.")
2220 (license license:lgpl2.0+)))
2221
2222
2223 (define-public libart-lgpl
2224 (package
2225 (name "libart-lgpl")
2226 (version "2.3.21")
2227 (source (origin
2228 (method url-fetch)
2229 (uri (let ((upstream-name "libart_lgpl"))
2230 (string-append "mirror://gnome/sources/" upstream-name "/"
2231 (version-major+minor version) "/"
2232 upstream-name "-" version ".tar.bz2")))
2233 (sha256
2234 (base32
2235 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2236 (build-system gnu-build-system)
2237 (native-inputs
2238 `(("pkg-config" ,pkg-config)))
2239 (home-page "https://people.gnome.org/~mathieu/libart")
2240 (synopsis "2D drawing library")
2241 (description "Libart is a 2D drawing library intended as a
2242 high-quality vector-based 2D library with antialiasing and alpha composition.")
2243 (license license:lgpl2.0+)))
2244
2245
2246
2247 (define-public libgnomecanvas
2248 (package
2249 (name "libgnomecanvas")
2250 (version "2.30.3")
2251 (source (origin
2252 (method url-fetch)
2253 (uri (string-append "mirror://gnome/sources/" name "/"
2254 (version-major+minor version) "/"
2255 name "-" version ".tar.gz"))
2256 (sha256
2257 (base32
2258 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2259 (build-system gnu-build-system)
2260 ;; Mentioned as Required in the .pc file
2261 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2262 ("gtk+" ,gtk+-2)))
2263 (native-inputs
2264 `(("intltool" ,intltool)
2265 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2266 ("pkg-config" ,pkg-config)))
2267 (home-page "https://developer.gnome.org/libgnomecanvas/")
2268 (synopsis "Flexible widget for creating interactive structured graphics")
2269 (description "The GnomeCanvas widget provides a flexible widget for
2270 creating interactive structured graphics.")
2271 (license license:lgpl2.0+)))
2272
2273 (define-public libgnomecanvasmm
2274 (package
2275 (name "libgnomecanvasmm")
2276 (version "2.26.0")
2277 (source (origin
2278 (method url-fetch)
2279 (uri (string-append "mirror://gnome/sources/" name "/"
2280 (version-major+minor version) "/"
2281 name "-" version ".tar.bz2"))
2282 (sha256
2283 (base32
2284 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2285 (build-system gnu-build-system)
2286 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2287 (native-inputs
2288 `(("gtkmm-2" ,gtkmm-2)
2289 ("pkg-config" ,pkg-config)))
2290 (home-page "https://gtkmm.org")
2291 (synopsis "C++ bindings to the GNOME Canvas library")
2292 (description "C++ bindings to the GNOME Canvas library.")
2293 (license license:lgpl2.0+)))
2294
2295 (define-public libgnomeui
2296 (package
2297 (name "libgnomeui")
2298 (version "2.24.5")
2299 (source (origin
2300 (method url-fetch)
2301 (uri (string-append "mirror://gnome/sources/" name "/"
2302 (version-major+minor version) "/"
2303 name "-" version ".tar.bz2"))
2304 (patches (search-patches "libgnomeui-utf8.patch"))
2305 (sha256
2306 (base32
2307 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2308 (build-system gnu-build-system)
2309 ;; Mentioned as Required in the .pc file
2310 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2311 ("libgnome" ,libgnome)
2312 ("libgnomecanvas" ,libgnomecanvas)
2313 ("libgnome-keyring" ,libgnome-keyring)))
2314 (inputs `(("libjpeg" ,libjpeg)
2315 ("popt" ,popt)
2316 ("libbonobo" ,libbonobo)
2317 ("libxml2" ,libxml2)
2318 ("libglade" ,libglade)))
2319 (native-inputs
2320 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2321 ("intltool" ,intltool)
2322 ("pkg-config" ,pkg-config)))
2323 (home-page "https://developer.gnome.org/libgnomeui/")
2324 (synopsis "Additional widgets for applications")
2325 (description "The libgnomeui library provides additional widgets for
2326 applications. Many of the widgets from libgnomeui have already been
2327 ported to GTK+.")
2328 (license license:lgpl2.0+)))
2329
2330 (define-public libglade
2331 (package
2332 (name "libglade")
2333 (version "2.6.4")
2334 (source (origin
2335 (method url-fetch)
2336 (uri (string-append "mirror://gnome/sources/" name "/"
2337 (version-major+minor version) "/"
2338 name "-" version ".tar.bz2"))
2339 (sha256
2340 (base32
2341 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2342 (build-system gnu-build-system)
2343 (inputs
2344 `(("python" ,python))) ;; needed for the optional libglade-convert program
2345 (propagated-inputs
2346 `(("gtk+-2" ,gtk+-2)
2347 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2348 (native-inputs
2349 `(("pkg-config" ,pkg-config)))
2350 (home-page "https://developer.gnome.org/libglade")
2351 (synopsis "Load glade interfaces and access the glade built widgets")
2352 (description "Libglade is a library that provides interfaces for loading
2353 graphical interfaces described in glade files and for accessing the
2354 widgets built in the loading process.")
2355 (license license:gpl2+))) ; This is correct. GPL not LGPL
2356
2357 (define-public libgnomeprint
2358 ;; This library has been deprecated since 2006; see
2359 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2360 (package
2361 (name "libgnomeprint")
2362 (version "2.18.8")
2363 (source (origin
2364 (method url-fetch)
2365 (uri (string-append "mirror://gnome/sources/" name "/"
2366 (version-major+minor version) "/"
2367 name "-" version ".tar.bz2"))
2368 (sha256
2369 (base32
2370 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2371 (build-system gnu-build-system)
2372 (inputs
2373 `(("popt" ,popt)
2374 ("libart-lgpl" ,libart-lgpl)
2375 ("gtk+" ,gtk+-2)
2376 ("libxml2" ,libxml2)))
2377 (native-inputs
2378 `(("intltool" ,intltool)
2379 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2380 ("pkg-config" ,pkg-config)))
2381 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2382 (synopsis "Printing framework for GNOME")
2383 (description
2384 "GNOME-print was a printing framework for GNOME. It has been deprecated
2385 since ca. 2006, when GTK+ itself incorporated printing support.")
2386 (license license:lgpl2.0+)))
2387
2388
2389 (define-public libgnomeprintui
2390 ;; Deprecated; see libgnomeprint.
2391 (package
2392 (name "libgnomeprintui")
2393 (version "2.18.6")
2394 (source (origin
2395 (method url-fetch)
2396 (uri (string-append "mirror://gnome/sources/" name "/"
2397 (version-major+minor version) "/"
2398 name "-" version ".tar.bz2"))
2399 (sha256
2400 (base32
2401 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2402 (build-system gnu-build-system)
2403 ;; Mentioned as Required in the .pc file
2404 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2405 (inputs `(("gtk+" ,gtk+-2)
2406 ("glib" ,glib)
2407 ("gnome-icon-theme" ,gnome-icon-theme)
2408 ("libgnomecanvas" ,libgnomecanvas)
2409 ("libxml2" ,libxml2)))
2410 (native-inputs
2411 `(("intltool" ,intltool)
2412 ("pkg-config" ,pkg-config)))
2413 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2414 (synopsis "Printing framework for GNOME")
2415 (description (package-description libgnomeprint))
2416 (license license:lgpl2.0+)))
2417
2418 (define-public libbonoboui
2419 (package
2420 (name "libbonoboui")
2421 (version "2.24.5")
2422 (source (origin
2423 (method url-fetch)
2424 (uri (string-append "mirror://gnome/sources/" name "/"
2425 (version-major+minor version) "/"
2426 name "-" version ".tar.bz2"))
2427 (sha256
2428 (base32
2429 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2430 (build-system gnu-build-system)
2431 (arguments
2432 `(#:phases
2433 (modify-phases %standard-phases
2434 (add-before 'check 'start-xserver
2435 (lambda* (#:key inputs #:allow-other-keys)
2436 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2437 (disp ":1"))
2438
2439 (setenv "HOME" (getcwd))
2440 (setenv "DISPLAY" disp)
2441 ;; There must be a running X server and make check doesn't start one.
2442 ;; Therefore we must do it.
2443 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2444 ;; Mentioned as Required by the .pc file
2445 (propagated-inputs `(("libxml2" ,libxml2)))
2446 (inputs
2447 `(("popt" ,popt)
2448 ("pangox-compat" ,pangox-compat)
2449 ("libgnome" ,libgnome)
2450 ("libgnomecanvas" ,libgnomecanvas)
2451 ("libglade" ,libglade)))
2452 (native-inputs
2453 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2454 ("intltool" ,intltool)
2455 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2456 ("pkg-config" ,pkg-config)))
2457 (home-page "https://developer.gnome.org/libbonoboui/")
2458 (synopsis "Some user interface controls using Bonobo")
2459 (description "The Bonobo UI library provides a number of user interface
2460 controls using the Bonobo component framework.")
2461 (license license:lgpl2.0+)))
2462
2463 (define-public libwnck
2464 (package
2465 (name "libwnck")
2466 (version "3.32.0")
2467 (source (origin
2468 (method url-fetch)
2469 (uri (string-append "mirror://gnome/sources/" name "/"
2470 (version-major+minor version) "/"
2471 name "-" version ".tar.xz"))
2472 (sha256
2473 (base32
2474 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2475 (build-system meson-build-system)
2476 (native-inputs
2477 `(("pkg-config" ,pkg-config)
2478 ("glib" ,glib "bin") ; for glib-mkenums
2479 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
2480 ("intltool" ,intltool)))
2481 (propagated-inputs
2482 `(("gtk+" ,gtk+)
2483 ("libxres" ,libxres)
2484 ("startup-notification" ,startup-notification)))
2485 (home-page "https://developer.gnome.org/libwnck/")
2486 (synopsis "Window Navigator Construction Kit")
2487 (description
2488 "Libwnck is the Window Navigator Construction Kit, a library for use in
2489 writing pagers, tasklists, and more generally applications that are dealing
2490 with window management. It tries hard to respect the Extended Window Manager
2491 Hints specification (EWMH).")
2492 (license license:lgpl2.0+)))
2493
2494 ;; stable version for gtk2, required by xfwm4.
2495 (define-public libwnck-2
2496 (package (inherit libwnck)
2497 (name "libwnck")
2498 (version "2.30.7")
2499 (source (origin
2500 (method url-fetch)
2501 (uri (string-append "mirror://gnome/sources/" name "/"
2502 (version-major+minor version) "/"
2503 name "-" version ".tar.xz"))
2504 (sha256
2505 (base32
2506 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
2507 (build-system gnu-build-system)
2508 (native-inputs
2509 `(("pkg-config" ,pkg-config)
2510 ("intltool" ,intltool)))
2511 (propagated-inputs
2512 `(("gtk+" ,gtk+-2)
2513 ("libxres" ,libxres)
2514 ("startup-notification" ,startup-notification)))))
2515
2516 (define-public goffice
2517 (package
2518 (name "goffice")
2519 (version "0.10.46")
2520 (source (origin
2521 (method url-fetch)
2522 (uri (string-append "mirror://gnome/sources/goffice/"
2523 (version-major+minor version) "/"
2524 "goffice-" version ".tar.xz"))
2525 (sha256
2526 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
2527 (build-system gnu-build-system)
2528 (outputs '("out"
2529 "doc")) ; 4.0 MiB of gtk-doc
2530 (arguments
2531 '(#:configure-flags (list (string-append "--with-html-dir="
2532 (assoc-ref %outputs "doc")
2533 "/share/gtk-doc/html"))))
2534 (inputs
2535 `(("gtk+" ,gtk+)
2536 ("libgsf" ,libgsf)
2537 ("librsvg" ,librsvg)
2538 ("libxslt" ,libxslt)
2539 ("libxml2" ,libxml2)))
2540 (native-inputs
2541 `(("intltool" ,intltool)
2542 ("glib" ,glib "bin")
2543 ("pkg-config" ,pkg-config)))
2544 (home-page "https://developer.gnome.org/goffice/")
2545 (synopsis "Document-centric objects and utilities")
2546 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2547 (license
2548 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2549 ;; Note: NOT LGPL
2550 (list license:gpl2 license:gpl3))))
2551
2552 (define-public goffice-0.8
2553 (package (inherit goffice)
2554 (version "0.8.17")
2555 (source (origin
2556 (method url-fetch)
2557 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
2558 (version-major+minor version) "/"
2559 (package-name goffice) "-" version ".tar.xz"))
2560 (sha256
2561 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
2562 (arguments
2563 `(#:phases
2564 (modify-phases %standard-phases
2565 (add-after 'unpack 'fix-pcre-check
2566 (lambda _
2567 ;; Only glib.h can be included directly. See
2568 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
2569 (substitute* "configure"
2570 (("glib/gregex\\.h") "glib.h")) #t)))
2571
2572 ,@(package-arguments goffice)))
2573 (propagated-inputs
2574 ;; libgoffice-0.8.pc mentions libgsf-1
2575 `(("libgsf" ,libgsf)))
2576 (inputs
2577 `(("gtk" ,gtk+-2)
2578 ,@(alist-delete "gtk" (package-inputs goffice))))))
2579
2580 (define-public gnumeric
2581 (package
2582 (name "gnumeric")
2583 (version "1.12.46")
2584 (source (origin
2585 (method url-fetch)
2586 (uri (string-append "mirror://gnome/sources/gnumeric/"
2587 (version-major+minor version) "/"
2588 "gnumeric-" version ".tar.xz"))
2589 (sha256
2590 (base32
2591 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
2592 (build-system glib-or-gtk-build-system)
2593 (arguments
2594 `(;; The gnumeric developers don't worry much about failing tests.
2595 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2596 #:tests? #f
2597 #:phases
2598 (modify-phases %standard-phases
2599 (add-before
2600 'configure 'pre-conf
2601 (lambda* (#:key outputs #:allow-other-keys)
2602 ;; Make install tries to write into the directory of goffice
2603 ;; I am informed that this only affects the possibility to embed a
2604 ;; spreadsheet inside an Abiword document. So presumably when we
2605 ;; package Abiword we'll have to refer it to this directory.
2606 (substitute* "configure"
2607 (("^GOFFICE_PLUGINS_DIR=.*")
2608 (string-append "GOFFICE_PLUGINS_DIR="
2609 (assoc-ref outputs "out")
2610 "/goffice/plugins"))))))))
2611 (inputs
2612 `(("glib" ,glib)
2613 ("gtk+" ,gtk+)
2614 ("goffice" ,goffice)
2615 ("libgsf" ,libgsf)
2616 ("librsvg" ,librsvg)
2617 ("libxml2" ,libxml2)
2618 ("libxslt" ,libxslt)
2619 ("python" ,python-2)
2620 ("python2-pygobject" ,python2-pygobject)
2621 ("zlib" ,zlib)))
2622 (native-inputs
2623 `(("bison" ,bison)
2624 ("docbook-xml" ,docbook-xml)
2625 ("intltool" ,intltool)
2626 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
2627 ("glib:bin" ,glib "bin")
2628 ("pkg-config" ,pkg-config)))
2629 (home-page "http://www.gnumeric.org")
2630 (synopsis "Spreadsheet application")
2631 (description
2632 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
2633 interoperable with other spreadsheet applications. It has a vast array of
2634 features beyond typical spreadsheet functionality, such as support for linear
2635 and non-linear solvers, statistical analysis, and telecommunication
2636 engineering.")
2637 (license
2638 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2639 (list license:gpl2 license:gpl3))))
2640
2641 (define-public gnome-themes-standard
2642 (package
2643 (name "gnome-themes-standard")
2644 (version "3.22.3")
2645 (source
2646 (origin
2647 (method url-fetch)
2648 (uri (string-append "mirror://gnome/sources/" name "/"
2649 (version-major+minor version) "/" name "-"
2650 version ".tar.xz"))
2651 (sha256
2652 (base32
2653 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
2654 (build-system gnu-build-system)
2655 (arguments
2656 '(#:configure-flags
2657 ;; Don't create 'icon-theme.cache'.
2658 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2659 (true (string-append coreutils "/bin/true")))
2660 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2661 (inputs
2662 `(("gtk+" ,gtk+)
2663 ("gtk+-2" ,gtk+-2)
2664 ("librsvg" ,librsvg)
2665 ("libxml2" ,libxml2)
2666 ("glib" ,glib)))
2667 (native-inputs
2668 `(("intltool" ,intltool)
2669 ("glib:bin" ,glib "bin")
2670 ("pkg-config" ,pkg-config)))
2671 (home-page "https://launchpad.net/gnome-themes-standard")
2672 (synopsis "Default GNOME 3 themes")
2673 (description
2674 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
2675 (license license:lgpl2.1+)))
2676
2677 (define-public seahorse
2678 (package
2679 (name "seahorse")
2680 (version "3.32.2")
2681 (source
2682 (origin
2683 (method url-fetch)
2684 (uri (string-append "mirror://gnome/sources/" name "/"
2685 (version-major+minor version) "/" name "-"
2686 version ".tar.xz"))
2687 (sha256
2688 (base32
2689 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
2690 (patches (search-patches
2691 "seahorse-gkr-use-0-on-empty-flags.patch"))))
2692 (build-system meson-build-system)
2693 (arguments
2694 '(#:glib-or-gtk? #t
2695 #:phases
2696 (modify-phases %standard-phases
2697 (add-after 'unpack 'skip-gtk-update-icon-cache
2698 ;; Don't create 'icon-theme.cache'.
2699 (lambda _
2700 (substitute* "build-aux/meson_post_install.py"
2701 (("gtk-update-icon-cache") "true"))
2702 #t)))))
2703 (inputs
2704 `(("gtk+" ,gtk+)
2705 ("gcr" ,gcr)
2706 ("gnupg" ,gnupg)
2707 ("gpgme" ,gpgme)
2708 ("openldap" ,openldap)
2709 ("openssh" ,openssh)
2710 ("avahi" ,avahi)
2711 ("libpwquality" ,libpwquality)
2712 ("libsecret" ,libsecret)
2713 ("libsoup" ,libsoup)))
2714 (native-inputs
2715 `(("gettext" ,gettext-minimal)
2716 ("glib:bin" ,glib "bin")
2717 ("itstool" ,itstool)
2718 ("pkg-config" ,pkg-config)
2719 ("vala" ,vala)
2720 ("xmllint" ,libxml2)))
2721 (home-page "https://wiki.gnome.org/Apps/Seahorse")
2722 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
2723 (description
2724 "Seahorse is a GNOME application for managing encryption keys and
2725 passwords in the GNOME keyring.")
2726 (license license:gpl2+)))
2727
2728 (define-public vala
2729 (package
2730 (name "vala")
2731 (version "0.44.5")
2732 (source (origin
2733 (method url-fetch)
2734 (uri (string-append "mirror://gnome/sources/" name "/"
2735 (version-major+minor version) "/"
2736 name "-" version ".tar.xz"))
2737 (sha256
2738 (base32
2739 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
2740 (build-system gnu-build-system)
2741 (arguments
2742 '(#:phases
2743 (modify-phases %standard-phases
2744 (add-before 'check 'pre-check
2745 (lambda _
2746 (setenv "CC" "gcc")
2747 (substitute* "valadoc/tests/testrunner.sh"
2748 (("export PKG_CONFIG_PATH=" m)
2749 (string-append m "$PKG_CONFIG_PATH:")))
2750 ;; For missing '/etc/machine-id'.
2751 (setenv "DBUS_FATAL_WARNINGS" "0")
2752 #t)))))
2753 (native-inputs
2754 `(("pkg-config" ,pkg-config)
2755 ("flex" ,flex)
2756 ("bison" ,bison)
2757 ("xsltproc" ,libxslt)
2758 ("dbus" ,dbus) ; for dbus tests
2759 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
2760 (inputs
2761 `(("graphviz" ,graphviz)))
2762 (propagated-inputs
2763 `(("glib" ,glib))) ; required by libvala-0.40.pc
2764 (home-page "https://live.gnome.org/Vala/")
2765 (synopsis "Compiler for the GObject type system")
2766 (description
2767 "Vala is a programming language that aims to bring modern programming
2768 language features to GNOME developers without imposing any additional runtime
2769 requirements and without using a different ABI compared to applications and
2770 libraries written in C.")
2771 (license license:lgpl2.1+)))
2772
2773 (define-public vte
2774 (package
2775 (name "vte")
2776 (version "0.58.3")
2777 (source (origin
2778 (method url-fetch)
2779 (uri (string-append "mirror://gnome/sources/vte/"
2780 (version-major+minor version) "/"
2781 "vte-" version ".tar.xz"))
2782 (sha256
2783 (base32
2784 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
2785 (build-system meson-build-system)
2786 (native-inputs
2787 `(("pkg-config" ,pkg-config)
2788 ("intltool" ,intltool)
2789 ("vala" ,vala)
2790 ("gobject-introspection" ,gobject-introspection)
2791 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2792 ("gperf" ,gperf)
2793 ("xmllint" ,libxml2)))
2794 (propagated-inputs
2795 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
2796 ("gnutls" ,gnutls) ; ditto
2797 ("pcre2" ,pcre2))) ; ditto
2798 (home-page "https://www.gnome.org/")
2799 (synopsis "Virtual Terminal Emulator")
2800 (description
2801 "VTE is a library (libvte) implementing a terminal emulator widget for
2802 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
2803 gnome-terminal, but can also be used to embed a console/terminal in games,
2804 editors, IDEs, etc.")
2805 (license license:lgpl2.1+)))
2806
2807 (define-public vte-ng
2808 (package
2809 (inherit vte)
2810 (name "vte-ng")
2811 (version "0.58.2.a")
2812 (home-page "https://github.com/thestinger/vte-ng")
2813 (source (origin
2814 (method git-fetch)
2815 (uri (git-reference (url home-page) (commit version)))
2816 (file-name (git-file-name name version))
2817 (sha256
2818 (base32
2819 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
2820 (build-system meson-build-system)
2821 (native-inputs
2822 `(("gtk-doc" ,gtk-doc)
2823 ,@(package-native-inputs vte)))
2824 (arguments
2825 `(#:configure-flags '("-Ddocs=true")))
2826 (synopsis "Enhanced VTE terminal widget")
2827 (description
2828 "VTE is a library (libvte) implementing a terminal emulator widget for
2829 GTK+, this fork provides additional functions exposed for keyboard text
2830 selection and URL hints.")))
2831
2832 ;; provides vte 2.90, required for some terminal emulators
2833 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
2834 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
2835 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
2836 ;; pantheon-terminal, roxterm are not currently packaged
2837 (define-public vte-0.36
2838 (package (inherit vte)
2839 (name "vte")
2840 (version "0.36.5")
2841 (source (origin
2842 (method url-fetch)
2843 (uri (string-append "mirror://gnome/sources/" name "/"
2844 (version-major+minor version) "/"
2845 name "-" version ".tar.xz"))
2846 (sha256
2847 (base32
2848 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
2849 (propagated-inputs
2850 `(("gtk" ,gtk+)
2851 ("ncurses" ,ncurses)))))
2852
2853 ;; stable version for gtk2, required by xfce4-terminal.
2854 (define-public vte/gtk+-2
2855 (package (inherit vte)
2856 (name "vte")
2857 (version "0.28.2")
2858 (source (origin
2859 (method url-fetch)
2860 (uri (string-append "mirror://gnome/sources/" name "/"
2861 (version-major+minor version) "/"
2862 name "-" version ".tar.xz"))
2863 (sha256
2864 (base32
2865 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
2866 (patches (search-patches
2867 "vte-CVE-2012-2738-pt1.patch"
2868 "vte-CVE-2012-2738-pt2.patch"))))
2869 (build-system gnu-build-system)
2870 (arguments
2871 '(#:configure-flags '("--disable-python")))
2872 (native-inputs
2873 `(("pkg-config" ,pkg-config)
2874 ("intltool" ,intltool)
2875 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
2876 (propagated-inputs
2877 `(("gtk+" ,gtk+-2) ; required by libvte.pc
2878 ("ncurses" ,ncurses))))) ; required by libvte.la
2879
2880 (define-public vinagre
2881 (package
2882 (name "vinagre")
2883 (version "3.22.0")
2884 (source (origin
2885 (method url-fetch)
2886 (uri (string-append "mirror://gnome/sources/" name "/"
2887 (version-major+minor version) "/"
2888 name "-" version ".tar.xz"))
2889 (patches (search-patches "vinagre-newer-freerdp.patch"
2890 "vinagre-newer-rdp-parameters.patch"))
2891 (sha256
2892 (base32
2893 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
2894 (build-system glib-or-gtk-build-system)
2895 (arguments
2896 ;; Disable -Werror and such, to avoid build failures on compilation
2897 ;; warnings.
2898 '(#:configure-flags '("--enable-compile-warnings=minimum")
2899 #:phases
2900 (modify-phases %standard-phases
2901 (add-before 'install 'skip-gtk-update-icon-cache
2902 (lambda _
2903 ;; Don't create 'icon-theme.cache'
2904 (substitute* (find-files "." "^Makefile$")
2905 (("gtk-update-icon-cache") (which "true")))
2906 #t))
2907 (add-after 'unpack 'patch-configure
2908 (lambda _
2909 (substitute* "configure"
2910 (("freerdp") "freerdp2"))
2911 #t)))))
2912 (native-inputs
2913 `(("pkg-config" ,pkg-config)
2914 ("intltool" ,intltool)
2915 ("itstool" ,itstool)
2916 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
2917 (inputs
2918 `(("libxml2" ,libxml2)
2919 ("gtk-vnc" ,gtk-vnc)
2920 ("gnome-keyring" ,gnome-keyring)
2921 ("libsecret" ,libsecret)
2922 ("freerdp" ,freerdp)
2923 ("spice" ,spice)
2924 ("spice-gtk" ,spice-gtk)
2925 ("telepathy-glib" ,telepathy-glib)
2926 ("vte" ,vte)))
2927 (home-page "https://wiki.gnome.org/Apps/Vinagre")
2928 (synopsis "Remote desktop viewer for GNOME")
2929 (description "Vinagre is a remote display client supporting the VNC, SPICE
2930 and RDP protocols.")
2931 (license license:gpl3+)))
2932
2933 (define-public dconf
2934 (package
2935 (name "dconf")
2936 (version "0.32.0")
2937 (source (origin
2938 (method url-fetch)
2939 (uri (string-append
2940 "mirror://gnome/sources/" name "/"
2941 (version-major+minor version) "/"
2942 name "-" version ".tar.xz"))
2943 (sha256
2944 (base32
2945 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
2946 (build-system meson-build-system)
2947 (propagated-inputs
2948 ;; In Requires of dconf.pc.
2949 `(("glib" ,glib)))
2950 (inputs
2951 `(("gtk+" ,gtk+)
2952 ("dbus" ,dbus)))
2953 (native-inputs
2954 `(("bash-completion" ,bash-completion)
2955 ("libxslt" ,libxslt) ;for xsltproc
2956 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
2957 ("docbook-xml" ,docbook-xml-4.2)
2958 ("docbook-xsl" ,docbook-xsl)
2959 ("glib:bin" ,glib "bin")
2960 ("gtk-doc" ,gtk-doc)
2961 ("pkg-config" ,pkg-config)
2962 ("vala" ,vala)))
2963 (arguments
2964 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
2965 ; or /etc/machine-id.
2966 #:glib-or-gtk? #t
2967 #:configure-flags '("-Denable-gtk-doc=true")))
2968 (home-page "https://developer.gnome.org/dconf")
2969 (synopsis "Low-level GNOME configuration system")
2970 (description "Dconf is a low-level configuration system. Its main purpose
2971 is to provide a backend to GSettings on platforms that don't already have
2972 configuration storage systems.")
2973 (license license:lgpl2.1+)))
2974
2975 (define-public json-glib
2976 (package
2977 (name "json-glib")
2978 (version "1.4.4")
2979 (source (origin
2980 (method url-fetch)
2981 (uri (string-append "mirror://gnome/sources/" name "/"
2982 (version-major+minor version) "/"
2983 name "-" version ".tar.xz"))
2984 (sha256
2985 (base32
2986 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
2987 (build-system meson-build-system)
2988 (native-inputs
2989 `(("gettext" ,gettext-minimal)
2990 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
2991 ("gobject-introspection" ,gobject-introspection)
2992 ("pkg-config" ,pkg-config)))
2993 (propagated-inputs
2994 `(("glib" ,glib))) ;according to json-glib-1.0.pc
2995 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
2996 (synopsis "Compiler for the GObject type system")
2997 (description
2998 "JSON-GLib is a C library based on GLib providing serialization and
2999 deserialization support for the JavaScript Object Notation (JSON) format
3000 described by RFC 4627. It provides parser and generator GObject classes and
3001 various wrappers for the complex data types employed by JSON, such as arrays
3002 and objects.")
3003 (license license:lgpl2.1+)))
3004
3005 (define-public libxklavier
3006 (package
3007 (name "libxklavier")
3008 (version "5.4")
3009 (source (origin
3010 ;; Note: There's no tarball at ftp.gnome.org for this version.
3011 (method git-fetch)
3012 (uri (git-reference
3013 (url "https://anongit.freedesktop.org/git/libxklavier")
3014 (commit (string-append "libxklavier-" version))))
3015 (sha256
3016 (base32
3017 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3018 (file-name (git-file-name name version))))
3019 (build-system gnu-build-system)
3020 (arguments
3021 '(#:phases
3022 (modify-phases %standard-phases
3023 (add-after 'unpack 'no-configure
3024 (lambda* _
3025 (setenv "NOCONFIGURE" "1")
3026 #t)))
3027 #:configure-flags
3028 (list (string-append "--with-xkb-base="
3029 (assoc-ref %build-inputs "xkeyboard-config")
3030 "/share/X11/xkb")
3031 "--disable-xmodmap-support")))
3032 (native-inputs
3033 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3034 ("gobject-introspection" ,gobject-introspection)
3035 ("pkg-config" ,pkg-config)
3036 ("gtk-doc" ,gtk-doc)
3037 ("intltool" ,intltool)
3038 ("which" ,which)
3039 ("autoconf" ,autoconf)
3040 ("automake" ,automake)
3041 ("libtool" ,libtool)))
3042 (propagated-inputs
3043 ;; Required by libxklavier.pc.
3044 `(("glib" ,glib)
3045 ("libxml2" ,libxml2)))
3046 (inputs
3047 `(("iso-codes" ,iso-codes)
3048 ("libxi" ,libxi)
3049 ("libxkbfile" ,libxkbfile)
3050 ("xkbcomp" ,xkbcomp)
3051 ("xkeyboard-config" ,xkeyboard-config)))
3052 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3053 (synopsis "High-level API for X Keyboard Extension")
3054 (description
3055 "LibXklavier is a library providing high-level API for X Keyboard
3056 Extension known as XKB. This library is intended to support XFree86 and other
3057 commercial X servers. It is useful for creating XKB-related software (layout
3058 indicators etc).")
3059 (license license:lgpl2.0+)))
3060
3061 (define-public python2-rsvg
3062 ;; XXX: This is actually a subset of gnome-python-desktop.
3063 (package
3064 (name "python2-rsvg")
3065 (version "2.32.0")
3066 (source
3067 (origin
3068 (method url-fetch)
3069 (uri (string-append
3070 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3071 version ".tar.bz2"))
3072 (sha256
3073 (base32
3074 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3075 (build-system gnu-build-system)
3076 (native-inputs
3077 `(("pkg-config" ,pkg-config)))
3078 (inputs
3079 `(("python" ,python-2)
3080 ("python2-pygtk" ,python2-pygtk)
3081 ("librsvg" ,librsvg)))
3082 (home-page "https://www.gnome.org")
3083 (synopsis "Python bindings to librsvg")
3084 (description
3085 "This package provides Python bindings to librsvg, the SVG rendering
3086 library.")
3087
3088 ;; This is the license of the rsvg bindings. The license of each module
3089 ;; of gnome-python-desktop is given in 'COPYING'.
3090 (license license:lgpl2.1+)))
3091
3092 (define-public glib-networking
3093 (package
3094 (name "glib-networking")
3095 (version "2.60.3")
3096 (source (origin
3097 (method url-fetch)
3098 (uri (string-append "mirror://gnome/sources/glib-networking/"
3099 (version-major+minor version) "/"
3100 "glib-networking-" version ".tar.xz"))
3101 (sha256
3102 (base32
3103 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
3104 (build-system meson-build-system)
3105 (arguments
3106 `(#:configure-flags '("-Dlibproxy_support=false")))
3107 (native-inputs
3108 `(("pkg-config" ,pkg-config)
3109 ("intltool" ,intltool)))
3110 (inputs
3111 `(("glib" ,glib)
3112 ("gnutls" ,gnutls)
3113 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3114 (home-page "https://www.gnome.org")
3115 (synopsis "Network-related GIO modules")
3116 (description
3117 "This package contains various network related extensions for the GIO
3118 library.")
3119 (license license:lgpl2.0+)))
3120
3121 (define-public rest
3122 (package
3123 (name "rest")
3124 (version "0.8.1")
3125 (source (origin
3126 (method url-fetch)
3127 (uri (string-append "mirror://gnome/sources/rest/"
3128 (version-major+minor version) "/"
3129 name "-" version ".tar.xz"))
3130 (sha256
3131 (base32
3132 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3133 (build-system gnu-build-system)
3134 (arguments
3135 '(#:tests? #f ; tests require internet connection
3136 #:configure-flags
3137 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3138 (native-inputs
3139 `(("glib-mkenums" ,glib "bin")
3140 ("gobject-introspection" ,gobject-introspection)
3141 ("pkg-config" ,pkg-config)))
3142 (propagated-inputs
3143 ;; rest-0.7.pc refers to all these.
3144 `(("glib" ,glib)
3145 ("libsoup" ,libsoup)
3146 ("libxml2" ,libxml2)))
3147 (home-page "https://www.gtk.org/")
3148 (synopsis "RESTful web api query library")
3149 (description
3150 "This library was designed to make it easier to access web services that
3151 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3152 libxml to ease remote use of the RESTful API.")
3153 (license license:lgpl2.1+)))
3154
3155 (define-public libsoup
3156 (package
3157 (name "libsoup")
3158 (version "2.68.3")
3159 (source (origin
3160 (method url-fetch)
3161 (uri (string-append "mirror://gnome/sources/libsoup/"
3162 (version-major+minor version) "/"
3163 "libsoup-" version ".tar.xz"))
3164 (sha256
3165 (base32
3166 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
3167 (build-system meson-build-system)
3168 (outputs '("out" "doc"))
3169 (arguments
3170 `(#:modules ((guix build utils)
3171 (guix build meson-build-system)
3172 (ice-9 popen))
3173
3174 #:configure-flags '("-Dgtk_doc=true")
3175 #:phases
3176 (modify-phases %standard-phases
3177 (add-after 'unpack 'adjust-tests
3178 (lambda _
3179 ;; This test fails due to missing /etc/nsswitch.conf
3180 ;; in the build environment.
3181 (substitute* "tests/socket-test.c"
3182 ((".*/sockets/unconnected.*") ""))
3183
3184 ;; These fail because "subdomain.localhost" does not resolve in
3185 ;; the build environment.
3186 (substitute* "tests/hsts-test.c"
3187 ((".*/hsts/basic.*") "")
3188 ((".*/hsts/subdomains.*") "")
3189 ((".*/hsts/superdomain.*") "")
3190 ((".*/hsts/utf8-address.*") ""))
3191 (substitute* "tests/hsts-db-test.c"
3192 ((".*/hsts-db/subdomains.*") ""))
3193
3194 ;; Generate a self-signed certificate that has "localhost" as its
3195 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3196 ;; 3.5.12, tests such as "ssl-tests" fail:
3197 ;;
3198 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3199 ;;
3200 ;; 'certtool' is interactive so we have to pipe it the answers.
3201 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3202 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3203 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3204 (for-each (lambda (line)
3205 (display line pipe)
3206 (newline pipe))
3207 '("" ;Common name
3208 "" ;UID
3209 "Guix" ;Organizational unit name
3210 "GNU" ;Organization name
3211 "" ;Locality name
3212 "" ;State or province
3213 "" ;Country
3214 "" ;subject's domain component (DC)
3215 "" ;E-mail
3216 "" ;serial number
3217 "-1" ;expiration time
3218 "N" ;belong to authority?
3219 "N" ;web client certificate?
3220 "N" ;IPsec IKE?
3221 "Y" ;web server certificate?
3222 "localhost" ;dnsName of subject
3223 "" ;dnsName of subject (end)
3224 "" ;URI of subject
3225 "127.0.0.1" ;IP address of subject
3226 "" ;signing?
3227 "" ;encryption (RSA)?
3228 "" ;data encryption?
3229 "" ;sign OCSP requests?
3230 "" ;sign code?
3231 "" ;time stamping?
3232 "" ;email protection?
3233 "" ;URI of the CRL distribution point
3234 "y" ;above info OK?
3235 ))
3236 (close-pipe pipe))
3237 #t))
3238 (add-after 'install 'move-doc
3239 (lambda* (#:key outputs #:allow-other-keys)
3240 (let ((out (assoc-ref outputs "out"))
3241 (doc (assoc-ref outputs "doc")))
3242 (mkdir-p (string-append doc "/share"))
3243 (copy-recursively (string-append out "/share/gtk-doc")
3244 (string-append doc "/share/gtk-doc"))
3245 (delete-file-recursively (string-append out "/share/gtk-doc"))
3246 #t))))))
3247 (native-inputs
3248 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3249 ("gobject-introspection" ,gobject-introspection)
3250 ("gtk-doc" ,gtk-doc)
3251 ("intltool" ,intltool)
3252 ("pkg-config" ,pkg-config)
3253 ("python" ,python-wrapper)
3254 ("vala" ,vala)
3255 ;; These are needed for the tests.
3256 ;; FIXME: Add PHP once available.
3257 ("curl" ,curl)
3258 ("gnutls" ,gnutls) ;for 'certtool'
3259 ("httpd" ,httpd)))
3260 (propagated-inputs
3261 ;; libsoup-2.4.pc refers to all these.
3262 `(("brotli" ,google-brotli)
3263 ("glib" ,glib)
3264 ("libpsl" ,libpsl)
3265 ("libxml2" ,libxml2)
3266 ("sqlite" ,sqlite)
3267 ("zlib" ,zlib)))
3268 (inputs
3269 `(("glib-networking" ,glib-networking)
3270 ("mit-krb5" ,mit-krb5)))
3271 (home-page "https://live.gnome.org/LibSoup/")
3272 (synopsis "GLib-based HTTP Library")
3273 (description
3274 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3275 and the GLib main loop, to integrate well with GNOME applications.")
3276 (license license:lgpl2.0+)))
3277
3278 (define-public libsecret
3279 (package
3280 (name "libsecret")
3281 (version "0.19.1")
3282 (source (origin
3283 (method url-fetch)
3284 (uri (string-append
3285 "mirror://gnome/sources/libsecret/"
3286 (version-major+minor version) "/"
3287 "libsecret-" version ".tar.xz"))
3288 (sha256
3289 (base32
3290 "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
3291 (build-system gnu-build-system)
3292 (outputs '("out" "doc"))
3293 (arguments
3294 `(#:tests? #f ; FIXME: Testing hangs.
3295 #:configure-flags
3296 (list (string-append "--with-html-dir="
3297 (assoc-ref %outputs "doc")
3298 "/share/gtk-doc/html"))))
3299 (native-inputs
3300 `(("gettext" ,gettext-minimal)
3301 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3302 ("gobject-introspection" ,gobject-introspection)
3303 ("pkg-config" ,pkg-config)
3304 ("vala" ,vala)
3305 ("xsltproc" ,libxslt)))
3306 ;; These are needed for the tests.
3307 ;; FIXME: Add gjs once available.
3308 ;("dbus" ,dbus)
3309 ;("python2" ,python-2)
3310 ;("python2-dbus" ,python2-dbus)
3311 ;("python2-pygobject" ,python2-pygobject)
3312 ;("python2-pygobject-2" ,python2-pygobject-2)))
3313 (propagated-inputs
3314 `(("glib" ,glib))) ; required by libsecret-1.pc
3315 (inputs
3316 `(("docbook-xsl" ,docbook-xsl)
3317 ("libgcrypt" ,libgcrypt)
3318 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3319 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3320 (synopsis "GObject bindings for \"Secret Service\" API")
3321 (description
3322 "Libsecret is a GObject based library for storing and retrieving passwords
3323 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3324 (license license:lgpl2.1+)))
3325
3326 (define-public five-or-more
3327 (package
3328 (name "five-or-more")
3329 (version "3.32.0")
3330 (source
3331 (origin
3332 (method url-fetch)
3333 (uri (string-append "mirror://gnome/sources/" name "/"
3334 (version-major+minor version) "/"
3335 name "-" version ".tar.xz"))
3336 (sha256
3337 (base32
3338 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3339 (build-system meson-build-system)
3340 (arguments
3341 '(#:glib-or-gtk? #t
3342 #:phases
3343 (modify-phases %standard-phases
3344 (add-after 'unpack 'skip-gtk-update-icon-cache
3345 (lambda _
3346 (substitute* "meson_post_install.py"
3347 (("gtk-update-icon-cache") (which "true")))
3348 #t)))))
3349 (native-inputs
3350 `(("pkg-config" ,pkg-config)
3351 ("appstream-glib" ,appstream-glib)
3352 ("desktop-file-utils" ,desktop-file-utils)
3353 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3354 ("intltool" ,intltool)
3355 ("itstool" ,itstool)
3356 ("vala" ,vala)
3357 ("xmllint" ,libxml2)))
3358 (inputs
3359 `(("gtk+" ,gtk+)
3360 ("libgnome-games-support" ,libgnome-games-support)
3361 ("librsvg" ,librsvg)))
3362 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3363 (synopsis "Logic puzzle game")
3364 (description "Five or More is a game where you try to align
3365 five or more objects of the same color and shape causing them to disappear.
3366 On every turn more objects will appear, until the board is full.
3367 Try to last as long as possible.")
3368 (license license:gpl2+)))
3369
3370 (define-public gnome-mines
3371 (package
3372 (name "gnome-mines")
3373 (version "3.32.2")
3374 (source
3375 (origin
3376 (method url-fetch)
3377 (uri (string-append "mirror://gnome/sources/" name "/"
3378 (version-major+minor version) "/"
3379 name "-" version ".tar.xz"))
3380 (sha256
3381 (base32
3382 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
3383 (build-system meson-build-system)
3384 (arguments
3385 '(#:glib-or-gtk? #t
3386 #:phases
3387 (modify-phases %standard-phases
3388 (add-after 'unpack 'skip-gtk-update-icon-cache
3389 (lambda _
3390 (substitute* "build-aux/meson_post_install.py"
3391 (("gtk-update-icon-cache") (which "true")))
3392 #t)))))
3393 (native-inputs
3394 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3395 ("pkg-config" ,pkg-config)
3396 ("desktop-file-utils" ,desktop-file-utils)
3397 ("intltool" ,intltool)
3398 ("itstool" ,itstool)
3399 ("vala" ,vala)
3400 ("yelp" ,yelp)
3401 ("appstream-glib" ,appstream-glib)))
3402 (inputs
3403 `(("gtk+" ,gtk+)
3404 ("libgnome-games-support" ,libgnome-games-support)
3405 ("librsvg" ,librsvg)))
3406 (home-page "https://wiki.gnome.org/Apps/Mines")
3407 (synopsis "Minesweeper game")
3408 (description
3409 "Mines (previously gnomine) is a puzzle game where you locate mines
3410 floating in an ocean using only your brain and a little bit of luck.")
3411 (license license:gpl2+)))
3412
3413 (define-public gnome-sudoku
3414 (package
3415 (name "gnome-sudoku")
3416 (version "3.32.0")
3417 (source
3418 (origin
3419 (method url-fetch)
3420 (uri (string-append "mirror://gnome/sources/" name "/"
3421 (version-major+minor version) "/"
3422 name "-" version ".tar.xz"))
3423 (sha256
3424 (base32
3425 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3426 (build-system meson-build-system)
3427 (arguments
3428 '(#:glib-or-gtk? #t
3429 #:phases
3430 (modify-phases %standard-phases
3431 (add-after 'unpack 'skip-gtk-update-icon-cache
3432 (lambda _
3433 (substitute* "build-aux/post_install.py"
3434 (("gtk-update-icon-cache") (which "true")))
3435 #t)))))
3436 (native-inputs
3437 `(("pkg-config" ,pkg-config)
3438 ("desktop-file-utils" ,desktop-file-utils)
3439 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3440 ("intltool" ,intltool)
3441 ("itstool" ,itstool)
3442 ("vala" ,vala)
3443 ("xmllint" ,libxml2)))
3444 (inputs
3445 `(("gtk+" ,gtk+)
3446 ("json-glib" ,json-glib)
3447 ("libgee" ,libgee)
3448 ("librsvg" ,librsvg)
3449 ("qqwing" ,qqwing)))
3450 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3451 (synopsis "Japanese logic game")
3452 (description
3453 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3454 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3455 possible while still providing features that make playing difficult Sudoku
3456 more fun.")
3457 (license license:gpl2+)))
3458
3459 (define-public gnome-terminal
3460 (package
3461 (name "gnome-terminal")
3462 (version "3.32.2")
3463 (source
3464 (origin
3465 (method url-fetch)
3466 (uri (string-append "mirror://gnome/sources/" name "/"
3467 (version-major+minor version) "/"
3468 name "-" version ".tar.xz"))
3469 (sha256
3470 (base32
3471 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
3472 (build-system glib-or-gtk-build-system)
3473 (arguments
3474 '(#:configure-flags
3475 (list "--disable-migration" "--disable-search-provider"
3476 "--without-nautilus-extension")
3477 #:phases
3478 (modify-phases %standard-phases
3479 (add-before 'configure 'patch-/bin/true
3480 (lambda _
3481 (substitute* "configure"
3482 (("/bin/true") (which "true"))))))))
3483 (native-inputs
3484 `(("pkg-config" ,pkg-config)
3485 ("desktop-file-utils" ,desktop-file-utils)
3486 ("intltool" ,intltool)
3487 ("itstool" ,itstool)
3488 ("xmllint" ,libxml2)))
3489 (propagated-inputs
3490 `(("dconf" ,dconf)))
3491 (inputs
3492 `(("gtk+" ,gtk+)
3493 ("vte" ,vte)
3494 ("gnutls" ,gnutls)
3495 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3496 ("util-linux" ,util-linux)
3497 ("vala" ,vala)))
3498 (home-page "https://wiki.gnome.org/Apps/Terminal")
3499 (synopsis "Terminal emulator")
3500 (description
3501 "GNOME Terminal is a terminal emulator application for accessing a
3502 UNIX shell environment which can be used to run programs available on
3503 your system.
3504
3505 It supports several profiles, multiple tabs and implements several
3506 keyboard shortcuts.")
3507 (license license:gpl3+)))
3508
3509 (define-public colord
3510 (package
3511 (name "colord")
3512 (version "1.4.4")
3513 (source
3514 (origin
3515 (method url-fetch)
3516 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
3517 "colord-" version ".tar.xz"))
3518 (sha256
3519 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
3520 (build-system meson-build-system)
3521 (arguments
3522 '(;; FIXME: One test fails:
3523 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3524 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3525 ;; application/x-zerosize
3526 #:tests? #f
3527 #:glib-or-gtk? #t
3528 #:configure-flags (list "-Dlocalstatedir=/var"
3529 ;; No dep on systemd.
3530 "-Dsystemd=false"
3531 ;; Wants to install to global completion dir;
3532 ;; punt.
3533 "-Dbash_completion=false"
3534 "-Ddaemon_user=colord"
3535 "-Dsane=true"
3536 "-Dvapi=true"
3537 ;; Requires spotread.
3538 "-Dargyllcms_sensor=false"
3539 ;; TODO: Requires docbook2x.
3540 "-Dman=false")
3541 #:phases
3542 (modify-phases %standard-phases
3543 (add-before 'configure 'patch-build-system
3544 (lambda* (#:key outputs #:allow-other-keys)
3545 (substitute* "rules/meson.build"
3546 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
3547 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
3548 #t))
3549 (add-before 'configure 'set-sqlite3-file-name
3550 (lambda* (#:key inputs #:allow-other-keys)
3551 ;; "colormgr dump" works by invoking the "sqlite3" command.
3552 ;; Record its absolute file name.
3553 (let ((sqlite (assoc-ref inputs "sqlite")))
3554 (substitute* "client/cd-util.c"
3555 (("\"sqlite3\"")
3556 (string-append "\"" sqlite "/bin/sqlite3\"")))
3557 #t))))))
3558 (native-inputs
3559 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
3560 ("gobject-introspection" ,gobject-introspection)
3561 ("gtk-doc" ,gtk-doc)
3562 ("intltool" ,intltool)
3563 ("libtool" ,libtool)
3564 ("pkg-config" ,pkg-config)
3565 ("vala" ,vala)))
3566 (propagated-inputs
3567 ;; colord.pc refers to all these.
3568 `(("glib" ,glib)
3569 ("lcms" ,lcms)
3570 ("udev" ,eudev)))
3571 (inputs
3572 `(("dbus-glib" ,dbus-glib)
3573 ("gusb" ,gusb)
3574 ("libgudev" ,libgudev)
3575 ("libusb" ,libusb)
3576 ("polkit" ,polkit)
3577 ("python" ,python-wrapper)
3578 ("sqlite" ,sqlite)
3579 ("sane-backends" ,sane-backends)))
3580 (home-page "https://www.freedesktop.org/software/colord/")
3581 (synopsis "Color management service")
3582 (description "Colord is a system service that makes it easy to manage,
3583 install and generate color profiles to accurately color manage input and
3584 output devices.")
3585 (license license:gpl2+)))
3586
3587 (define-public geoclue
3588 (package
3589 (name "geoclue")
3590 (version "2.4.8")
3591 (source
3592 (origin
3593 (method url-fetch)
3594 (uri (string-append "https://www.freedesktop.org/software/" name
3595 "/releases/" (version-major+minor version) "/"
3596 name "-" version ".tar.xz"))
3597 (sha256
3598 (base32
3599 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
3600 (patches (search-patches "geoclue-config.patch"))))
3601 (build-system glib-or-gtk-build-system)
3602 (arguments
3603 '(;; The tests want to run the system bus.
3604 #:tests? #f
3605 #:configure-flags (list ;; Disable bits requiring ModemManager.
3606 "--disable-3g-source"
3607 "--disable-cdma-source"
3608 "--disable-modem-gps-source"
3609 "--with-dbus-service-user=geoclue")
3610 #:phases
3611 (modify-phases %standard-phases
3612 (add-before 'configure 'patch-/bin/true
3613 (lambda _
3614 (substitute* "configure"
3615 (("/bin/true") (which "true")))
3616 #t)))))
3617 (native-inputs
3618 `(("pkg-config" ,pkg-config)
3619 ("gobject-introspection" ,gobject-introspection)
3620 ("intltool" ,intltool)))
3621 (inputs
3622 `(("avahi" ,avahi)
3623 ("glib" ,glib)
3624 ("json-glib" ,json-glib)
3625 ("libsoup" ,libsoup)))
3626 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
3627 (synopsis "Geolocation service")
3628 (description "Geoclue is a D-Bus service that provides location
3629 information. The primary goal of the Geoclue project is to make creating
3630 location-aware applications as simple as possible, while the secondary goal is
3631 to ensure that no application can access location information without explicit
3632 permission from user.")
3633 (license license:gpl2+)))
3634
3635 (define-public geocode-glib
3636 (package
3637 (name "geocode-glib")
3638 (version "3.26.1")
3639 (source (origin
3640 (method url-fetch)
3641 (uri (string-append "mirror://gnome/sources/geocode-glib/"
3642 (version-major+minor version) "/"
3643 "geocode-glib-" version ".tar.xz"))
3644 (sha256
3645 (base32
3646 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
3647 (build-system meson-build-system)
3648 (arguments
3649 `(#:phases
3650 (modify-phases %standard-phases
3651 ;; The tests require a bunch of locales.
3652 (add-before 'check 'set-locales
3653 (lambda* (#:key inputs #:allow-other-keys)
3654 (setenv "GUIX_LOCPATH"
3655 (string-append (assoc-ref inputs "glibc-locales")
3656 "/lib/locale"))
3657 #t)))))
3658 (native-inputs
3659 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3660 ("glibc-locales" ,glibc-locales) ; for tests
3661 ("gettext" ,gettext-minimal)
3662 ("gobject-introspection" ,gobject-introspection)
3663 ("gtk-doc" ,gtk-doc)
3664 ("pkg-config" ,pkg-config)
3665 ("json-glib" ,json-glib)))
3666 (propagated-inputs
3667 ;; geocode-glib-1.0.pc refers to GIO.
3668 `(("glib" ,glib)))
3669 (inputs
3670 `(("libsoup" ,libsoup)))
3671 (home-page "https://github.com/GNOME/geocode-glib/")
3672 (synopsis "Geocoding and reverse-geocoding library")
3673 (description
3674 "geocode-glib is a convenience library for geocoding (finding longitude,
3675 and latitude from an address) and reverse geocoding (finding an address from
3676 coordinates) using the Nominatim service. geocode-glib caches requests for
3677 faster results and to avoid unnecessary server load.")
3678 (license license:lgpl2.0+)))
3679
3680 (define-public upower
3681 (package
3682 (name "upower")
3683 (version "0.99.10")
3684 (source (origin
3685 (method url-fetch)
3686 (uri (string-append "https://gitlab.freedesktop.org/upower/upower/"
3687 "uploads/c438511024b9bc5a904f8775cfc8e4c4/"
3688 "upower-" version ".tar.xz"))
3689 (sha256
3690 (base32
3691 "17d2bclv5fgma2y3g8bsn9pdvspn1zrzismzdnzfivc0f2wm28k4"))
3692 (patches (search-patches "upower-builddir.patch"))))
3693 (build-system glib-or-gtk-build-system)
3694 (arguments
3695 '( ;; The tests want to contact the system bus, which can't be done in the
3696 ;; build environment. The integration test can run, but the last of
3697 ;; the up-self-tests doesn't. Disable tests for now.
3698 #:tests? #f
3699 #:configure-flags (list "--localstatedir=/var"
3700 (string-append "--with-udevrulesdir="
3701 (assoc-ref %outputs "out")
3702 "/lib/udev/rules.d"))))
3703 (native-inputs
3704 `(("gobject-introspection" ,gobject-introspection)
3705 ("pkg-config" ,pkg-config)
3706 ("intltool" ,intltool)
3707 ("python" ,python)
3708
3709 ;; For man pages.
3710 ("libxslt" ,libxslt) ;for 'xsltproc'
3711 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
3712 ("docbook-xsl" ,docbook-xsl)))
3713 (inputs
3714 `(("dbus-glib" ,dbus-glib)
3715 ("libgudev" ,libgudev)
3716 ("libusb" ,libusb)))
3717 (propagated-inputs
3718 ;; In Requires of upower-glib.pc.
3719 `(("glib" ,glib)))
3720 (home-page "https://upower.freedesktop.org/")
3721 (synopsis "System daemon for managing power devices")
3722 (description
3723 "UPower is an abstraction for enumerating power devices,
3724 listening to device events and querying history and statistics. Any
3725 application or service on the system can access the org.freedesktop.UPower
3726 service via the system message bus.")
3727 (license license:gpl2+)))
3728
3729 (define-public libgweather
3730 (package
3731 (name "libgweather")
3732 (version "3.28.3")
3733 (source (origin
3734 (method url-fetch)
3735 (uri (string-append "mirror://gnome/sources/" name "/"
3736 (version-major+minor version) "/"
3737 name "-" version ".tar.xz"))
3738 (sha256
3739 (base32
3740 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
3741 (build-system meson-build-system)
3742 (arguments
3743 `(#:tests? #f ; one of two tests requires network access
3744 #:configure-flags
3745 `(,(string-append "-Dzoneinfo_dir="
3746 (assoc-ref %build-inputs "tzdata")
3747 "/share/zoneinfo"))))
3748 (native-inputs
3749 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3750 ("gobject-introspection" ,gobject-introspection)
3751 ("pkg-config" ,pkg-config)
3752 ("vala" ,vala)
3753 ("intltool" ,intltool)))
3754 (propagated-inputs
3755 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
3756 ;; libsoup.
3757 `(("gtk+" ,gtk+)
3758 ("gdk-pixbuf" ,gdk-pixbuf)
3759 ("libxml2" ,libxml2)
3760 ("libsoup" ,libsoup)
3761 ("geocode-glib" ,geocode-glib)))
3762 (inputs
3763 `(("tzdata" ,tzdata)))
3764 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
3765 (synopsis "Location, time zone, and weather library for GNOME")
3766 (description
3767 "libgweather is a library to access weather information from online
3768 services for numerous locations.")
3769 (license license:gpl2+)))
3770
3771 (define-public gnome-settings-daemon
3772 (package
3773 (name "gnome-settings-daemon")
3774 (version "3.32.1")
3775 (source
3776 (origin
3777 (method url-fetch)
3778 (uri (string-append "mirror://gnome/sources/" name "/"
3779 (version-major+minor version) "/"
3780 name "-" version ".tar.xz"))
3781 (sha256
3782 (base32
3783 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
3784 (build-system meson-build-system)
3785 (arguments
3786 `(#:glib-or-gtk? #t
3787 #:configure-flags
3788 (list (string-append "-Dudev_dir="
3789 (assoc-ref %outputs "out")
3790 "/lib/udev/rules.d/")
3791 ;; Otherwise, the RUNPATH will lack the final path component.
3792 (string-append "-Dc_link_args=-Wl,-rpath="
3793 (assoc-ref %outputs "out")
3794 "/lib/gnome-settings-daemon-3.0"))
3795 ;; Color management test can't reach the colord system service.
3796 #:tests? #f))
3797 (native-inputs
3798 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3799 ("pkg-config" ,pkg-config)
3800 ("intltool" ,intltool)
3801 ("xsltproc" ,libxslt)
3802 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3803 ("docbook-xml" ,docbook-xml-4.2)
3804 ("docbook-xsl" ,docbook-xsl)))
3805 (inputs
3806 `(("alsa-lib" ,alsa-lib)
3807 ("colord" ,colord)
3808 ("libgudev" ,libgudev)
3809 ("upower" ,upower)
3810 ("polkit" ,polkit)
3811 ("pulseaudio" ,pulseaudio)
3812 ("libcanberra" ,libcanberra)
3813 ("libx11" ,libx11)
3814 ("libxtst" ,libxtst)
3815 ("lcms" ,lcms)
3816 ("libnotify" ,libnotify)
3817 ("geoclue" ,geoclue)
3818 ("geocode-glib" ,geocode-glib)
3819 ("libgweather" ,libgweather)
3820 ("gnome-desktop" ,gnome-desktop)
3821 ("nss" ,nss)
3822 ("cups" ,cups)
3823 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3824 ("libwacom" ,libwacom)
3825 ("librsvg" ,librsvg)
3826 ("xf86-input-wacom" ,xf86-input-wacom)
3827 ("wayland" ,wayland)
3828 ("network-manager" ,network-manager)))
3829 (home-page "https://www.gnome.org")
3830 (synopsis "GNOME settings daemon")
3831 (description
3832 "This package contains the daemon responsible for setting the various
3833 parameters of a GNOME session and the applications that run under it. It
3834 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
3835 settings, themes, mouse settings, and startup of other daemons.")
3836 (license license:gpl2+)))
3837
3838 (define-public totem-pl-parser
3839 (package
3840 (name "totem-pl-parser")
3841 (version "3.26.3")
3842 (source (origin
3843 (method url-fetch)
3844 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
3845 (version-major+minor version) "/"
3846 "totem-pl-parser-" version ".tar.xz"))
3847 (sha256
3848 (base32
3849 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
3850 (build-system meson-build-system)
3851 (arguments
3852 ;; FIXME: Tests require gvfs.
3853 `(#:tests? #f))
3854 (native-inputs
3855 `(("intltool" ,intltool)
3856 ("glib" ,glib "bin")
3857 ("gobject-introspection" ,gobject-introspection)
3858 ("pkg-config" ,pkg-config)))
3859 (propagated-inputs
3860 `(("glib" ,glib)
3861 ("gmime" ,gmime)
3862 ("libarchive" ,libarchive)
3863 ("libgcrypt" ,libgcrypt)
3864 ("libxml2" ,libxml2)))
3865 (inputs
3866 `(("libsoup" ,libsoup)))
3867 (home-page "https://projects.gnome.org/totem")
3868 (synopsis "Library to parse and save media playlists for GNOME")
3869 (description "Totem-pl-parser is a GObjects-based library to parse and save
3870 playlists in a variety of formats.")
3871 (license license:lgpl2.0+)))
3872
3873 (define-public aisleriot
3874 (package
3875 (name "aisleriot")
3876 (version "3.22.9")
3877 (source (origin
3878 (method url-fetch)
3879 (uri (string-append "mirror://gnome/sources/aisleriot/"
3880 (version-major+minor version) "/"
3881 "aisleriot-" version ".tar.xz"))
3882 (sha256
3883 (base32
3884 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
3885 (build-system glib-or-gtk-build-system)
3886 (arguments
3887 '(#:configure-flags
3888 '("--with-platform=gtk-only"
3889 "--with-card-theme-formats=svg")))
3890 (native-inputs
3891 `(("desktop-file-utils" ,desktop-file-utils)
3892 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
3893 ("intltool" ,intltool)
3894 ("itstool" ,itstool)
3895 ("pkg-config" ,pkg-config)
3896 ("xmllint" ,libxml2)))
3897 (inputs
3898 `(("gtk+" ,gtk+)
3899 ("guile" ,guile-2.2)
3900 ("libcanberra" ,libcanberra)
3901 ("librsvg" ,librsvg)))
3902 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
3903 (synopsis "Solitaire card games")
3904 (description
3905 "Aisleriot (also known as Solitaire or sol) is a collection of card games
3906 which are easy to play with the aid of a mouse.")
3907 (license license:gpl3+)))
3908
3909 (define-public amtk
3910 (package
3911 (name "amtk")
3912 (version "5.0.1")
3913 (source (origin
3914 (method url-fetch)
3915 (uri (string-append "mirror://gnome/sources/amtk/"
3916 (version-major+minor version) "/"
3917 "amtk-" version ".tar.xz"))
3918 (sha256
3919 (base32
3920 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
3921 (build-system gnu-build-system)
3922 (arguments
3923 '(#:configure-flags '("--enable-gtk-doc")))
3924 (native-inputs
3925 `(("gobject-introspection" ,gobject-introspection)
3926 ("glib:bin" ,glib "bin") ; for glib-mkenums
3927 ("gtk-doc" ,gtk-doc)
3928 ("pkg-config" ,pkg-config)))
3929 (inputs
3930 `(("glib" ,glib)
3931 ("gtk+" ,gtk+)))
3932 (home-page "https://wiki.gnome.org/Projects/Amtk")
3933 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
3934 (description
3935 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
3936 It is a basic GtkUIManager replacement based on GAction. It is suitable for
3937 both a traditional UI or a modern UI with a GtkHeaderBar.")
3938 (license license:lgpl2.1+)))
3939
3940 (define-public devhelp
3941 (package
3942 (name "devhelp")
3943 (version "3.32.0")
3944 (source (origin
3945 (method url-fetch)
3946 (uri (string-append "mirror://gnome/sources/" name "/"
3947 (version-major+minor version) "/"
3948 name "-" version ".tar.xz"))
3949 (sha256
3950 (base32
3951 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
3952 (build-system meson-build-system)
3953 (arguments
3954 '(#:glib-or-gtk? #t
3955 #:phases
3956 (modify-phases %standard-phases
3957 (add-after 'unpack 'skip-gtk-update-icon-cache
3958 ;; Don't create 'icon-theme.cache'.
3959 (lambda _
3960 (substitute* "meson_post_install.py"
3961 (("gtk-update-icon-cache") "true"))
3962 #t)))))
3963 (native-inputs
3964 `(("intltool" ,intltool)
3965 ("itstool" ,itstool)
3966 ("gobject-introspection" ,gobject-introspection)
3967 ("glib:bin" ,glib "bin") ; for glib-mkmenus
3968 ("pkg-config" ,pkg-config)))
3969 (inputs
3970 `(("amtk" ,amtk)
3971 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3972 ("webkitgtk" ,webkitgtk)))
3973 (home-page "https://wiki.gnome.org/Apps/Devhelp")
3974 (synopsis "API documentation browser for GNOME")
3975 (description
3976 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
3977 natively with GTK-Doc (the API reference system developed for GTK+ and used
3978 throughout GNOME for API documentation).")
3979 (license license:gpl2+)))
3980
3981 (define-public cogl
3982 (package
3983 (name "cogl")
3984 (version "1.22.4")
3985 (source
3986 (origin
3987 (method url-fetch)
3988 (uri (string-append "mirror://gnome/sources/cogl/"
3989 (version-major+minor version) "/"
3990 "cogl-" version ".tar.xz"))
3991 (sha256
3992 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
3993 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
3994 ;; cogl, corresponding changes may be appropriate in mutter as well.
3995 (build-system gnu-build-system)
3996 (native-inputs
3997 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3998 ("gobject-introspection" ,gobject-introspection)
3999 ;;("xorg-server" ,xorg-server) ; for the test suite
4000 ("pkg-config" ,pkg-config)))
4001 (propagated-inputs
4002 `(("glib" ,glib)
4003 ("gdk-pixbuf" ,gdk-pixbuf)
4004 ("libx11" ,libx11)
4005 ("libxext" ,libxext)
4006 ("libxfixes" ,libxfixes)
4007 ("libxdamage" ,libxdamage)
4008 ("libxcomposite" ,libxcomposite)
4009 ("libxrandr" ,libxrandr)))
4010 (inputs
4011 `(("mesa" ,mesa)
4012 ("cairo" ,cairo)
4013 ("pango" ,pango)
4014 ("gstreamer" ,gstreamer)
4015 ("gst-plugins-base" ,gst-plugins-base)
4016 ("wayland" ,wayland)))
4017 (arguments
4018 `(#:configure-flags (list "--enable-cogl-gst"
4019 "--enable-wayland-egl-platform"
4020 "--enable-wayland-egl-server"
4021
4022 ;; Arrange to pass an absolute file name to
4023 ;; dlopen for libGL.so.
4024 (string-append "--with-gl-libname="
4025 (assoc-ref %build-inputs "mesa")
4026 "/lib/libGL.so"))
4027 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4028 ;; _FontTransOpen: Unable to Parse address
4029 ;; ${prefix}/share/fonts/X11/misc/
4030 #:tests? #f
4031 #; #:phases
4032 #;
4033 (modify-phases %standard-phases
4034 (add-before 'check 'start-xorg-server
4035 (lambda* (#:key inputs #:allow-other-keys)
4036 ;; The test suite requires a running X server.
4037 (system (format #f "~a/bin/Xvfb :1 &"
4038 (assoc-ref inputs "xorg-server")))
4039 (setenv "DISPLAY" ":1")
4040 #t)))))
4041 (home-page "http://www.cogl3d.org")
4042 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4043 (description
4044 "Cogl is a small library for using 3D graphics hardware to draw pretty
4045 pictures. The API departs from the flat state machine style of OpenGL and is
4046 designed to make it easy to write orthogonal components that can render
4047 without stepping on each others toes.")
4048 (license (list license:expat ; most of the code
4049 license:bsd-3 ; cogl/cogl-point-in-poly.c
4050 license:sgifreeb2.0 ; cogl-path/tesselator/
4051 license:asl2.0)))) ; examples/android/
4052
4053 (define-public clutter
4054 (package
4055 (name "clutter")
4056 (version "1.26.2")
4057 (source
4058 (origin
4059 (method url-fetch)
4060 (uri (string-append "mirror://gnome/sources/" name "/"
4061 (version-major+minor version) "/"
4062 name "-" version ".tar.xz"))
4063 (sha256
4064 (base32
4065 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4066 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4067 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4068 (build-system gnu-build-system)
4069 (outputs '("out"
4070 "doc")) ;9 MiB of gtk-doc HTML pages
4071 (native-inputs
4072 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4073 ("gobject-introspection" ,gobject-introspection)
4074 ("pkg-config" ,pkg-config)
4075 ("xsltproc" ,libxslt)))
4076 (propagated-inputs
4077 `(("cogl" ,cogl)
4078 ("cairo" ,cairo)
4079 ("atk" ,atk)
4080 ("gtk+" ,gtk+)
4081 ("json-glib" ,json-glib)
4082 ("glib" ,glib)
4083 ("libxcomposite" ,libxcomposite)
4084 ("libxdamage" ,libxdamage)
4085 ("libxext" ,libxext)
4086 ("xinput" ,xinput)))
4087 (inputs
4088 `(("libxkbcommon" ,libxkbcommon)
4089 ("udev" ,eudev)))
4090 (arguments
4091 `(#:configure-flags (list "--enable-x11-backend=yes"
4092
4093 ;; This produces share/doc/{clutter,cally}.
4094 (string-append "--with-html-dir="
4095 (assoc-ref %outputs "doc")
4096 "/share/doc"))
4097 ;; XXX FIXME: Get test suite working. It would probably fail in the
4098 ;; same way the cogl tests fail, since clutter is based on cogl.
4099 #:tests? #f))
4100 (home-page "http://www.clutter-project.org")
4101 (synopsis "OpenGL-based interactive canvas library")
4102 (description
4103 "Clutter is an OpenGL-based interactive canvas library, designed for
4104 creating fast, mainly 2D single window applications such as media box UIs,
4105 presentations, kiosk style applications and so on.")
4106 (license license:lgpl2.0+)))
4107
4108 (define-public clutter-gtk
4109 (package
4110 (name "clutter-gtk")
4111 (version "1.8.4")
4112 (source
4113 (origin
4114 (method url-fetch)
4115 (uri (string-append "mirror://gnome/sources/" name "/"
4116 (version-major+minor version) "/"
4117 name "-" version ".tar.xz"))
4118 (sha256
4119 (base32
4120 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4121 (build-system gnu-build-system)
4122 (native-inputs
4123 `(("pkg-config" ,pkg-config)
4124 ("gobject-introspection" ,gobject-introspection)))
4125 (propagated-inputs
4126 ;; clutter-gtk.pc refers to all these.
4127 `(("clutter" ,clutter)
4128 ("gtk+" ,gtk+)))
4129 (home-page "http://www.clutter-project.org")
4130 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4131 (description
4132 "Clutter is an OpenGL-based interactive canvas library, designed for
4133 creating fast, mainly 2D single window applications such as media box UIs,
4134 presentations, kiosk style applications and so on.")
4135 (license license:lgpl2.0+)))
4136
4137 (define-public clutter-gst
4138 (package
4139 (name "clutter-gst")
4140 (version "3.0.27")
4141 (source
4142 (origin
4143 (method url-fetch)
4144 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4145 (version-major+minor version) "/"
4146 "clutter-gst-" version ".tar.xz"))
4147 (sha256
4148 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4149 (build-system gnu-build-system)
4150 (native-inputs
4151 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4152 ("pkg-config" ,pkg-config)
4153 ("gobject-introspection" ,gobject-introspection)))
4154 (inputs
4155 `(("clutter" ,clutter)
4156 ("gstreamer" ,gstreamer)
4157 ("gst-plugins-base" ,gst-plugins-base)))
4158 (home-page "http://www.clutter-project.org")
4159 (synopsis "Integration library for using GStreamer with Clutter")
4160 (description
4161 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4162 It provides a GStreamer sink to upload frames to GL and an actor that
4163 implements the ClutterGstPlayer interface using playbin. Clutter is an
4164 OpenGL-based interactive canvas library.")
4165 (license license:lgpl2.0+)))
4166
4167 (define-public libchamplain
4168 (package
4169 (name "libchamplain")
4170 (version "0.12.16")
4171 (source (origin
4172 (method url-fetch)
4173 (uri (string-append
4174 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4175 version ".tar.xz"))
4176 (sha256
4177 (base32
4178 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4179 (build-system gnu-build-system)
4180 (arguments '(#:configure-flags '("--enable-vala")))
4181 (native-inputs
4182 `(("gobject-introspection" ,gobject-introspection)
4183 ("pkg-config" ,pkg-config)
4184 ("vala" ,vala)))
4185 (propagated-inputs
4186 `(("libsoup" ,libsoup)
4187 ("sqlite" ,sqlite)
4188 ("clutter" ,clutter)
4189 ("clutter-gtk" ,clutter-gtk)
4190 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4191 ("cairo" ,cairo)
4192 ("gtk+3" ,gtk+)
4193 ("glib" ,glib)))
4194 (home-page "https://projects.gnome.org/libchamplain/")
4195 (synopsis "C library providing a ClutterActor to display maps")
4196 (description
4197 "libchamplain is a C library providing a ClutterActor to display maps.
4198 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4199 and Perl bindings are also available. It supports numerous free map sources
4200 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4201 (license license:lgpl2.1+)))
4202
4203 (define-public gom
4204 (package
4205 (name "gom")
4206 (version "0.3.2")
4207 (source
4208 (origin
4209 (method url-fetch)
4210 (uri (string-append "mirror://gnome/sources/gom/"
4211 (version-major+minor version) "/"
4212 "gom-" version ".tar.xz"))
4213 (sha256
4214 (base32
4215 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4216 (build-system gnu-build-system)
4217 (native-inputs
4218 `(("intltool" ,intltool)
4219 ("pkg-config" ,pkg-config)
4220 ("gobject-introspection" ,gobject-introspection)))
4221 (inputs
4222 `(("glib" ,glib)
4223 ("gdk-pixbuf" ,gdk-pixbuf)
4224 ("sqlite" ,sqlite)))
4225 ;; XXX TODO: Figure out how to run the test suite.
4226 (arguments `(#:tests? #f))
4227 (home-page "https://wiki.gnome.org/Projects/Gom")
4228 (synopsis "Object mapper from GObjects to SQLite")
4229 (description
4230 "Gom provides an object mapper from GObjects to SQLite. It helps you
4231 write applications that need to store structured data as well as make complex
4232 queries upon that data.")
4233 (license license:lgpl2.1+)))
4234
4235 (define-public libgnome-games-support
4236 (package
4237 (name "libgnome-games-support")
4238 (version "1.4.4")
4239 (source (origin
4240 (method url-fetch)
4241 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4242 (version-major+minor version) "/"
4243 "libgnome-games-support-" version ".tar.xz"))
4244 (sha256
4245 (base32
4246 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4247 (build-system gnu-build-system)
4248 (arguments
4249 '(#:phases
4250 (modify-phases %standard-phases
4251 (add-before 'check 'pre-check
4252 (lambda _
4253 ;; Tests require a writable HOME.
4254 (setenv "HOME" (getcwd))
4255 #t)))))
4256 (native-inputs
4257 `(("intltool" ,intltool)
4258 ("pkg-config" ,pkg-config)
4259 ("vala" ,vala)))
4260 (propagated-inputs
4261 ;; Required by libgnome-games-support-1.0.pc
4262 `(("gtk+" ,gtk+)
4263 ("libgee" ,libgee)))
4264 (home-page "https://www.gnome.org/")
4265 (synopsis "Useful functionality shared among GNOME games")
4266 (description
4267 "libgnome-games-support is a small library intended for internal use by
4268 GNOME Games, but it may be used by others.")
4269 (license license:lgpl3+)))
4270
4271 (define-public gnome-klotski
4272 (package
4273 (name "gnome-klotski")
4274 (version "3.32.0")
4275 (source (origin
4276 (method url-fetch)
4277 (uri (string-append "mirror://gnome/sources/" name "/"
4278 (version-major+minor version) "/"
4279 name "-" version ".tar.xz"))
4280 (sha256
4281 (base32
4282 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4283 (build-system meson-build-system)
4284 (arguments
4285 '(#:glib-or-gtk? #t
4286 #:phases
4287 (modify-phases %standard-phases
4288 (add-after 'unpack 'skip-gtk-update-icon-cache
4289 ;; Don't create 'icon-theme.cache'.
4290 (lambda _
4291 (substitute* "build-aux/meson_post_install.py"
4292 (("gtk-update-icon-cache") (which "true")))
4293 #t)))))
4294 (native-inputs
4295 `(("desktop-file-utils" ,desktop-file-utils)
4296 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4297 ("intltool" ,intltool)
4298 ("itstool" ,itstool)
4299 ("pkg-config" ,pkg-config)
4300 ("vala" ,vala)
4301 ("xmllint" ,libxml2)))
4302 (inputs
4303 `(("gtk+" ,gtk+)
4304 ("libgnome-games-support" ,libgnome-games-support)
4305 ("librsvg" ,librsvg)))
4306 (home-page "https://wiki.gnome.org/Apps/Klotski")
4307 (synopsis "Sliding block puzzles")
4308 (description
4309 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4310 the patterned block to the area bordered by green markers. To do so, you will
4311 need to slide other blocks out of the way. Complete each puzzle in as few moves
4312 as possible!")
4313 (license license:gpl2+)))
4314
4315 (define-public grilo
4316 (package
4317 (name "grilo")
4318 (version "0.3.10")
4319 (source
4320 (origin
4321 (method url-fetch)
4322 (uri (string-append "mirror://gnome/sources/" name "/"
4323 (version-major+minor version) "/"
4324 name "-" version ".tar.xz"))
4325 (sha256
4326 (base32
4327 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4328 (build-system meson-build-system)
4329 (native-inputs
4330 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4331 ("intltool" ,intltool)
4332 ("pkg-config" ,pkg-config)
4333 ("gobject-introspection" ,gobject-introspection)
4334 ("gtk-doc" ,gtk-doc)
4335 ("vala" ,vala)))
4336 (inputs
4337 `(("cyrus-sasl" ,cyrus-sasl)
4338 ("glib" ,glib)
4339 ("gtk+" ,gtk+)
4340 ("libxml2" ,libxml2)
4341 ("liboauth" ,liboauth)
4342 ("libsoup" ,libsoup)
4343 ("totem-pl-parser" ,totem-pl-parser)))
4344 (native-search-paths
4345 (list (search-path-specification
4346 (variable "GRL_PLUGIN_PATH")
4347 (files (list (string-append "lib/grilo-"
4348 (version-major+minor version)))))))
4349 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4350 (synopsis "Framework for discovering and browsing media")
4351 (description
4352 "Grilo is a framework focused on making media discovery and browsing easy
4353 for application developers.")
4354 (license license:lgpl2.1+)))
4355
4356 (define-public grilo-plugins
4357 (package
4358 (name "grilo-plugins")
4359 (version "0.3.3")
4360 (source
4361 (origin
4362 (method url-fetch)
4363 (uri (string-append "mirror://gnome/sources/" name "/"
4364 (version-major+minor version) "/"
4365 name "-" version ".tar.xz"))
4366 (sha256
4367 (base32
4368 "172vr1y98d2mzlmg5akjn4ibrcj3gh22cwnb3cv9rvvzhj3yhrpy"))))
4369 (build-system gnu-build-system)
4370 (native-inputs
4371 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4372 ("intltool" ,intltool)
4373 ("itstool" ,itstool)
4374 ("pkg-config" ,pkg-config)))
4375 (inputs
4376 `(("grilo" ,grilo)
4377 ("glib" ,glib)
4378 ("libxml2" ,libxml2)
4379 ("sqlite" ,sqlite)
4380 ("gom" ,gom)
4381 ;; XXX TODO: Add oauth
4382 ;; XXX TODO: Add goa
4383 ;; XXX TODO: Add gdata (e.g. needed for youtube plugin)
4384 ;; XXX TODO: Add lua (needs help finding it)
4385 ("json-glib" ,json-glib)
4386 ("avahi" ,avahi)
4387 ("gmime" ,gmime)
4388 ("libsoup" ,libsoup)
4389 ("libarchive" ,libarchive)
4390 ("totem-pl-parser" ,totem-pl-parser)))
4391 (arguments
4392 `(#:make-flags (list (string-append "GRL_PLUGINS_DIR="
4393 %output
4394 "/lib/grilo-"
4395 ,(version-major+minor version)))
4396 ;; XXX FIXME: Try to get the test suite working. It appears to require
4397 ;; a working system dbus. Inside the build container, all tests fail
4398 ;; with: "assertion failed: (source)". Outside of the build container,
4399 ;; most tests succeed.
4400 #:tests? #f))
4401 (home-page "https://live.gnome.org/Grilo")
4402 (synopsis "Plugins for the Grilo media discovery library")
4403 (description
4404 "Grilo is a framework focused on making media discovery and browsing easy
4405 for application developers.")
4406 (license license:lgpl2.1+)))
4407
4408 (define-public totem
4409 (package
4410 (name "totem")
4411 (version "3.32.1")
4412 (source
4413 (origin
4414 (method url-fetch)
4415 (uri (string-append "mirror://gnome/sources/" name "/"
4416 (version-major+minor version) "/"
4417 name "-" version ".tar.xz"))
4418 (sha256
4419 (base32
4420 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
4421 (build-system meson-build-system)
4422 (native-inputs
4423 `(("pkg-config" ,pkg-config)
4424 ("desktop-file-utils" ,desktop-file-utils)
4425 ("gobject-introspection" ,gobject-introspection)
4426 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4427 ("intltool" ,intltool)
4428 ("itstool" ,itstool)
4429 ("xmllint" ,libxml2)
4430 ("python-pylint" ,python-pylint)
4431 ("xorg-server" ,xorg-server-for-tests)))
4432 (propagated-inputs
4433 `(("dconf" ,dconf)))
4434 (inputs
4435 `(("gtk+" ,gtk+)
4436 ("gdk-pixbuf" ,gdk-pixbuf)
4437 ("atk" ,atk)
4438 ("cairo" ,cairo)
4439 ("dbus-glib" ,dbus-glib)
4440 ("clutter" ,clutter)
4441 ("clutter-gtk" ,clutter-gtk)
4442 ("clutter-gst" ,clutter-gst)
4443 ("xorgproto" ,xorgproto)
4444 ("libxxf86vm" ,libxxf86vm)
4445 ("libxtst" ,libxtst)
4446 ("libxrandr" ,libxrandr)
4447 ("libxml2" ,libxml2)
4448 ("libsoup" ,libsoup)
4449 ("libpeas" ,libpeas)
4450 ("librsvg" ,librsvg)
4451 ("lirc" ,lirc)
4452 ("gnome-desktop" ,gnome-desktop)
4453 ("gstreamer" ,gstreamer)
4454 ("gst-plugins-base" ,gst-plugins-base)
4455 ("gst-plugins-good" ,gst-plugins-good)
4456 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4457 ("adwaita-icon-theme" ,adwaita-icon-theme)
4458 ("python" ,python)
4459 ("python-pygobject" ,python-pygobject)
4460 ("totem-pl-parser" ,totem-pl-parser)
4461 ("grilo" ,grilo)
4462 ("grilo-plugins" ,grilo-plugins)
4463 ("vala" ,vala)))
4464 (arguments
4465 `(#:glib-or-gtk? #t
4466
4467 ;; Disable automatic GStreamer plugin installation via PackageKit and
4468 ;; all that.
4469 #:configure-flags '("-D" "enable-easy-codec-installation=no"
4470
4471 ;; Do not build .a files for the plugins, it's
4472 ;; completely useless. This saves 2 MiB.
4473 "--default-library" "shared")
4474 #:phases
4475 (modify-phases %standard-phases
4476 (add-after 'unpack 'skip-gtk-update-icon-cache
4477 ;; Don't create 'icon-theme.cache'.
4478 (lambda _
4479 (substitute* "meson_post_install.py"
4480 (("gtk-update-icon-cache") "true"))
4481 #t))
4482 (add-before
4483 'install 'disable-cache-generation
4484 (lambda _
4485 (setenv "DESTDIR" "/")
4486 #t))
4487 (add-before
4488 'check 'pre-check
4489 (lambda _
4490 ;; Tests require a running X server.
4491 (system "Xvfb :1 &")
4492 (setenv "DISPLAY" ":1")
4493 #t))
4494 (add-after
4495 'install 'wrap-totem
4496 (lambda* (#:key inputs outputs #:allow-other-keys)
4497 (let ((out (assoc-ref outputs "out"))
4498 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4499 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4500 (wrap-program (string-append out "/bin/totem")
4501 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4502 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4503 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4504 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4505 #t)))))
4506 (home-page "https://wiki.gnome.org/Apps/Videos")
4507 (synopsis "Simple media player for GNOME based on GStreamer")
4508 (description "Totem is a simple yet featureful media player for GNOME
4509 which can read a large number of file formats.")
4510 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4511 ;; to be used and distributed together with GStreamer and Totem. See
4512 ;; file://COPYING in the source distribution for details.
4513 (license license:gpl2+)))
4514
4515 (define-public rhythmbox
4516 (package
4517 (name "rhythmbox")
4518 (version "3.4.3")
4519 (source (origin
4520 (method url-fetch)
4521 (uri (string-append "mirror://gnome/sources/" name "/"
4522 (version-major+minor version) "/"
4523 name "-" version ".tar.xz"))
4524 (sha256
4525 (base32
4526 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
4527 (build-system glib-or-gtk-build-system)
4528 (arguments
4529 `(#:configure-flags
4530 (list "--enable-lirc"
4531 "--enable-python"
4532 "--enable-vala"
4533 "--with-brasero"
4534 "--with-gudev"
4535 "--with-libsecret")
4536 #:phases
4537 (modify-phases %standard-phases
4538 (add-after
4539 'install 'wrap-rhythmbox
4540 (lambda* (#:key inputs outputs #:allow-other-keys)
4541 (let ((out (assoc-ref outputs "out"))
4542 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4543 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4544 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
4545 (python-path (getenv "PYTHONPATH")))
4546 (wrap-program (string-append out "/bin/rhythmbox")
4547 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
4548 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4549 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
4550 `("PYTHONPATH" ":" prefix (,python-path))))
4551 #t)))))
4552 (propagated-inputs
4553 `(("dconf" ,dconf)))
4554 (native-inputs
4555 `(("itstool" ,itstool)
4556 ("intltool" ,intltool)
4557 ("glib" ,glib "bin")
4558 ("gobject-introspection" ,gobject-introspection)
4559 ("desktop-file-utils" ,desktop-file-utils)
4560 ("pkg-config" ,pkg-config)
4561 ("xmllint" ,libxml2)))
4562 (inputs
4563 `(("json-glib" ,json-glib)
4564 ("tdb" ,tdb)
4565 ("gnome-desktop" ,gnome-desktop)
4566 ("python" ,python)
4567 ("python-pygobject" ,python2-pygobject)
4568 ("vala" ,vala)
4569 ("gmime" ,gmime)
4570 ("adwaita-icon-theme" ,adwaita-icon-theme)
4571 ("grilo" ,grilo)
4572 ("grilo-plugins" ,grilo-plugins)
4573 ("gstreamer" ,gstreamer)
4574 ("gst-plugins-base" ,gst-plugins-base)
4575 ("gst-plugins-good" ,gst-plugins-good)
4576 ("totem-pl-parser" ,totem-pl-parser)
4577 ("libgudev" ,libgudev)
4578 ;;("libmtp" ,libmtp) FIXME: Not detected
4579 ("libsecret" ,libsecret)
4580 ("libsoup" ,libsoup)
4581 ("libnotify" ,libnotify)
4582 ("libpeas" ,libpeas)
4583 ("lirc" ,lirc)
4584 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
4585 ;;("clutter" ,clutter)
4586 ;;("clutter-gtk" ,clutter-gtk)
4587 ;;("clutter-gst" ,clutter-gst)
4588 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4589 ("atk" ,atk)
4590 ("pango" ,pango)
4591 ("gtk+" ,gtk+)
4592 ;; TODO:
4593 ;; * libgpod
4594 ;; * mx
4595 ("brasero" ,brasero)))
4596 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
4597 (synopsis "Music player for GNOME")
4598 (description "Rhythmbox is a music playing application for GNOME. It
4599 supports playlists, song ratings, and any codecs installed through gstreamer.")
4600 (license license:gpl2+)))
4601
4602 (define-public eog
4603 (package
4604 (name "eog")
4605 (version "3.32.2")
4606 (source (origin
4607 (method url-fetch)
4608 (uri (string-append "mirror://gnome/sources/" name "/"
4609 (version-major+minor version) "/"
4610 name "-" version ".tar.xz"))
4611 (sha256
4612 (base32
4613 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
4614 (build-system meson-build-system)
4615 (arguments
4616 `(#:configure-flags
4617 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
4618 (list (string-append "-Dc_link_args=-Wl,-rpath="
4619 (assoc-ref %outputs "out") "/lib/eog"))
4620 #:phases
4621 (modify-phases %standard-phases
4622 (add-after 'unpack 'skip-gtk-update-icon-cache
4623 ;; Don't create 'icon-theme.cache'.
4624 (lambda _
4625 (substitute* "meson_post_install.py"
4626 (("gtk-update-icon-cache") "true"))
4627 #t))
4628 (add-after 'install 'wrap-eog
4629 (lambda* (#:key outputs #:allow-other-keys)
4630 (let ((out (assoc-ref outputs "out"))
4631 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
4632 (wrap-program (string-append out "/bin/eog")
4633 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
4634 #t)))))
4635 (propagated-inputs
4636 `(("dconf" ,dconf)))
4637 (native-inputs
4638 `(("intltool" ,intltool)
4639 ("itstool" ,itstool)
4640 ("glib" ,glib "bin")
4641 ("gobject-introspection" ,gobject-introspection)
4642 ("pkg-config" ,pkg-config)
4643 ("xmllint" ,libxml2)))
4644 (inputs
4645 `(("gnome-desktop" ,gnome-desktop)
4646 ("shared-mime-info" ,shared-mime-info)
4647 ("adwaita-icon-theme" ,adwaita-icon-theme)
4648 ("exempi" ,exempi)
4649 ("lcms" ,lcms)
4650 ("libexif" ,libexif)
4651 ("libpeas" ,libpeas)
4652 ("libjpeg" ,libjpeg)
4653 ("librsvg" ,librsvg)
4654 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4655 ("gtk+" ,gtk+)))
4656 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
4657 (synopsis "GNOME image viewer")
4658 (description "Eye of GNOME is the GNOME image viewer. It
4659 supports image conversion, rotation, and slideshows.")
4660 (license license:gpl2+)))
4661
4662 (define-public eog-plugins
4663 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
4664 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
4665 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
4666 ;; 'XDG_DATA_DIRS' appropriately set.
4667 (package
4668 (name "eog-plugins")
4669 (version "3.26.4")
4670 (source (origin
4671 (method url-fetch)
4672 (uri (string-append "mirror://gnome/sources/eog-plugins/"
4673 (version-major+minor version) "/"
4674 "eog-plugins-" version ".tar.xz"))
4675 (sha256
4676 (base32
4677 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
4678 (build-system gnu-build-system)
4679 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
4680 (synopsis "Extensions for the Eye of GNOME image viewer")
4681 (native-inputs
4682 `(("pkg-config" ,pkg-config)
4683 ("gettext" ,gnu-gettext)))
4684 (inputs
4685 `(("eog" ,eog)
4686 ("glib" ,glib)
4687 ("gtk+" ,gtk+)
4688 ("libpeas" ,libpeas)
4689 ("libexif" ,libexif)
4690 ("libchamplain" ,libchamplain)))
4691 (description
4692 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
4693 notably:
4694
4695 @itemize
4696 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
4697 @item @dfn{Map}, which displays a map of where the picture was taken on the
4698 side panel;
4699 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
4700 @end itemize\n")
4701
4702 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
4703 ;; long suspicious byte stream that goes to a
4704 ;; ".gresource.eog_postasa_plugin" ELF section.
4705 (license license:gpl2+)))
4706
4707 (define-public libgudev
4708 (package
4709 (name "libgudev")
4710 (version "232")
4711 (source (origin
4712 (method url-fetch)
4713 (uri (string-append "mirror://gnome/sources/" name "/"
4714 version "/" name "-" version ".tar.xz"))
4715 (sha256
4716 (base32
4717 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
4718 (build-system gnu-build-system)
4719 (arguments
4720 '(#:configure-flags
4721 ;; umockdev depends on libgudev.
4722 (list "--disable-umockdev")))
4723 (native-inputs
4724 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
4725 ("gobject-introspection" ,gobject-introspection)
4726 ("pkg-config" ,pkg-config)))
4727 (propagated-inputs
4728 `(("glib" ,glib))) ; required by gudev-1.0.pc
4729 (inputs
4730 `(("udev" ,eudev)))
4731 (home-page "https://wiki.gnome.org/Projects/libgudev")
4732 (synopsis "GObject bindings for libudev")
4733 (description
4734 "This library provides GObject bindings for libudev. It was originally
4735 part of udev-extras, then udev, then systemd. It's now a project on its own.")
4736 (license license:lgpl2.1+)))
4737
4738 (define-public gvfs
4739 (package
4740 (name "gvfs")
4741 (version "1.40.1")
4742 (source (origin
4743 (method url-fetch)
4744 (uri (string-append "mirror://gnome/sources/gvfs/"
4745 (version-major+minor version) "/"
4746 "gvfs-" version ".tar.xz"))
4747 (sha256
4748 (base32
4749 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
4750 (build-system meson-build-system)
4751 (arguments
4752 '(#:glib-or-gtk? #t
4753 #:configure-flags
4754 (list "-Dsystemduserunitdir=no"
4755 "-Dtmpfilesdir=no"
4756 ;; Otherwise, the RUNPATH will lack the final path component.
4757 (string-append "-Dc_link_args=-Wl,-rpath="
4758 (assoc-ref %outputs "out") "/lib/gvfs"))))
4759 (native-inputs
4760 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
4761 ("gettext" ,gettext-minimal)
4762 ("gtk-doc" ,gtk-doc)
4763 ("pkg-config" ,pkg-config)
4764 ("xsltproc" ,libxslt)))
4765 (inputs
4766 `(("avahi" ,avahi)
4767 ("docbook-xml" ,docbook-xml-4.2)
4768 ("docbook-xsl" ,docbook-xsl)
4769 ("dbus" ,dbus)
4770 ("elogind" ,elogind)
4771 ("fuse" ,fuse)
4772 ("gcr" ,gcr)
4773 ("glib" ,glib)
4774 ("gnome-online-accounts" ,gnome-online-accounts)
4775 ("libarchive" ,libarchive)
4776 ("libbluray" ,libbluray)
4777 ("libcap" ,libcap)
4778 ("libcdio-paranoia" ,libcdio-paranoia)
4779 ("libgcrypt" ,libgcrypt)
4780 ("libgdata" ,libgdata)
4781 ("libgphoto2" ,libgphoto2)
4782 ("libgudev" ,libgudev)
4783 ("libimobiledevice" ,libimobiledevice)
4784 ("libmtp" ,libmtp)
4785 ("libnfs" ,libnfs)
4786 ("libsecret" ,libsecret)
4787 ("libsmbclient" ,samba)
4788 ("libsoup" ,libsoup)
4789 ("libxml2" ,libxml2)
4790 ("openssh" ,openssh)
4791 ("polkit" ,polkit)
4792 ("udisks" ,udisks)))
4793 (home-page "https://wiki.gnome.org/gvfs/")
4794 (synopsis "Userspace virtual file system for GIO")
4795 (description
4796 "GVFS is a userspace virtual file system designed to work with the I/O
4797 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
4798 to all applications using the GIO API. It also supports exposing the GVFS
4799 mounts to non-GIO applications using FUSE.
4800
4801 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
4802 DAV, and others.")
4803 (license license:lgpl2.0+)))
4804
4805 (define-public gusb
4806 (package
4807 (name "gusb")
4808 (version "0.3.0")
4809 (source (origin
4810 (method git-fetch)
4811 (uri (git-reference
4812 (url "https://github.com/hughsie/libgusb.git")
4813 (commit version)))
4814 (file-name (git-file-name name version))
4815 (sha256
4816 (base32
4817 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
4818 (build-system meson-build-system)
4819 (native-inputs
4820 `(("gobject-introspection" ,gobject-introspection)
4821 ("pkg-config" ,pkg-config)
4822 ("vala" ,vala)
4823 ("gtk-doc" ,gtk-doc)))
4824 (propagated-inputs
4825 ;; Both of these are required by gusb.pc.
4826 `(("glib" ,glib)
4827 ("libusb" ,libusb)))
4828 (arguments
4829 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
4830 (home-page "https://github.com/hughsie/libgusb")
4831 (synopsis "GLib binding for libusb1")
4832 (description
4833 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
4834 asynchronous control, bulk and interrupt transfers with proper cancellation
4835 and integration into a mainloop. This makes it easy to integrate low level
4836 USB transfers with your high-level application or system daemon.")
4837 (license license:lgpl2.1+)))
4838
4839 (define-public simple-scan
4840 (package
4841 (name "simple-scan")
4842 (version "3.34.2")
4843 (source
4844 (origin
4845 (method url-fetch)
4846 (uri (string-append "mirror://gnome/sources/simple-scan/"
4847 (version-major+minor version) "/"
4848 "simple-scan-" version ".tar.xz"))
4849 (sha256
4850 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
4851 (build-system meson-build-system)
4852 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
4853 (arguments
4854 '(#:glib-or-gtk? #t))
4855 (inputs
4856 `(("gtk" ,gtk+)
4857 ("zlib" ,zlib)
4858 ("cairo" ,cairo)
4859 ("colord" ,colord)
4860 ("gdk-pixbuf" ,gdk-pixbuf)
4861 ("gusb" ,gusb)
4862 ("libsane" ,sane-backends)))
4863 (native-inputs
4864 `(("gettext" ,gettext-minimal)
4865 ("itstool" ,itstool)
4866 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
4867 ("pkg-config" ,pkg-config)
4868 ("vala" ,vala)
4869 ("xmllint" ,libxml2)))
4870 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
4871 (synopsis "Document and image scanner")
4872 (description
4873 "Document Scanner is an easy-to-use application that lets you connect your
4874 scanner and quickly capture images and documents in an appropriate format. It
4875 supports any scanner for which a suitable SANE driver is available, which is
4876 almost all of them.")
4877 (license license:gpl3+)))
4878
4879 (define-public eolie
4880 (package
4881 (name "eolie")
4882 (version "0.9.63")
4883 (source (origin
4884 (method url-fetch)
4885 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
4886 "uploads/d42b466752729a0d3fa828a721e25043/"
4887 "eolie-" version ".tar.xz"))
4888 (sha256
4889 (base32
4890 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
4891 (build-system meson-build-system)
4892 (arguments
4893 `(#:glib-or-gtk? #t
4894 #:phases
4895 (modify-phases %standard-phases
4896 (add-after 'unpack 'skip-gtk-update-icon-cache
4897 ;; Don't create 'icon-theme.cache'.
4898 (lambda _
4899 (substitute* "meson_post_install.py"
4900 (("gtk-update-icon-cache") "true"))
4901 #t))
4902 (add-after 'wrap 'wrap-more
4903 (lambda* (#:key inputs outputs #:allow-other-keys)
4904 (let* ((out (assoc-ref outputs "out"))
4905 ;; These libraries must be on LD_LIBRARY_PATH.
4906 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
4907 "atk" "gtk+" "gsettings-desktop-schemas"
4908 "gobject-introspection"))
4909 (path (string-join
4910 (map (lambda (lib)
4911 (string-append (assoc-ref inputs lib) "/lib"))
4912 libs)
4913 ":")))
4914 (wrap-program (string-append out "/bin/eolie")
4915 `("LD_LIBRARY_PATH" ":" prefix (,path))
4916 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
4917 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
4918 #t)))))
4919 (native-inputs
4920 `(("intltool" ,intltool)
4921 ("itstool" ,itstool)
4922 ("pkg-config" ,pkg-config)
4923 ("python" ,python)
4924 ("glib:bin" ,glib "bin")))
4925 (inputs
4926 `(("gobject-introspection" ,gobject-introspection)
4927 ("glib-networking" ,glib-networking)
4928 ("cairo" ,cairo)
4929 ("gtk+" ,gtk+)
4930 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
4931 ("python" ,python-wrapper)
4932 ("python-dateutil" ,python-dateutil)
4933 ("python-pyfxa" ,python-pyfxa)
4934 ("python-pygobject" ,python-pygobject)
4935 ("python-pycairo" ,python-pycairo)
4936 ("python-pycrypto" ,python-pycrypto)
4937 ("libsecret" ,libsecret)
4938 ("gtkspell3" ,gtkspell3)
4939 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4940 ("webkitgtk" ,webkitgtk)))
4941 (home-page "https://wiki.gnome.org/Apps/Eolie")
4942 (synopsis "Web browser for GNOME")
4943 (description
4944 "Eolie is a new web browser for GNOME. It features Firefox sync support,
4945 a secret password store, an adblocker, and a modern UI.")
4946 (license license:gpl3+)))
4947
4948 (define-public epiphany
4949 (package
4950 (name "epiphany")
4951 (version "3.32.5")
4952 (source (origin
4953 (method url-fetch)
4954 (uri (string-append "mirror://gnome/sources/epiphany/"
4955 (version-major+minor version) "/"
4956 "epiphany-" version ".tar.xz"))
4957 (sha256
4958 (base32
4959 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
4960
4961 (build-system meson-build-system)
4962 (arguments
4963 ;; FIXME: tests run under Xvfb, but fail with:
4964 ;; /src/bookmarks/ephy-bookmarks/create:
4965 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
4966 ;; subsystem
4967 ;; FAIL
4968 '(#:tests? #f
4969 #:glib-or-gtk? #t
4970 #:phases
4971 (modify-phases %standard-phases
4972 (add-after 'unpack 'skip-gtk-update-icon-cache
4973 ;; Don't create 'icon-theme.cache'.
4974 (lambda _
4975 (substitute* "post_install.py"
4976 (("gtk-update-icon-cache") "true"))
4977 #t)))
4978 #:configure-flags
4979 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
4980 (list (string-append "-Dc_link_args=-Wl,-rpath="
4981 (assoc-ref %outputs "out") "/lib/epiphany"))))
4982 (propagated-inputs
4983 `(("dconf" ,dconf)))
4984 (native-inputs
4985 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
4986 ("glib:bin" ,glib "bin") ; for glib-mkenums
4987 ("intltool" ,intltool)
4988 ("itstool" ,itstool)
4989 ("pkg-config" ,pkg-config)
4990 ("xmllint" ,libxml2)))
4991 (inputs
4992 `(("avahi" ,avahi)
4993 ("gcr" ,gcr)
4994 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
4995 ("glib-networking" ,glib-networking)
4996 ("gnome-desktop" ,gnome-desktop)
4997 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4998 ("json-glib" ,json-glib)
4999 ("iso-codes" ,iso-codes)
5000 ("libdazzle" ,libdazzle)
5001 ("libnotify" ,libnotify)
5002 ("libsecret" ,libsecret)
5003 ("libxslt" ,libxslt)
5004 ("nettle" ,nettle) ; for hogweed
5005 ("sqlite" ,sqlite)
5006 ("webkitgtk" ,webkitgtk)))
5007 (home-page "https://wiki.gnome.org/Apps/Web")
5008 (synopsis "GNOME web browser")
5009 (description
5010 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5011 principles are simplicity and standards compliance.")
5012 (license license:gpl2+)))
5013
5014 (define-public d-feet
5015 (package
5016 (name "d-feet")
5017 (version "0.3.14")
5018 (source (origin
5019 (method url-fetch)
5020 (uri (string-append "mirror://gnome/sources/" name "/"
5021 (version-major+minor version) "/"
5022 name "-" version ".tar.xz"))
5023 (sha256
5024 (base32
5025 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5026 (build-system glib-or-gtk-build-system)
5027 (arguments
5028 '(#:out-of-source? #f ; tests need to run in the source directory.
5029 #:phases
5030 (modify-phases %standard-phases
5031 (add-before
5032 'check 'pre-check
5033 (lambda _
5034 ;; The test suite requires a running X server.
5035 (system "Xvfb :1 &")
5036 (setenv "DISPLAY" ":1")
5037 ;; Don't fail on missing '/etc/machine-id'.
5038 (setenv "DBUS_FATAL_WARNINGS" "0")
5039 ;; tests.py and window.py don't meet E402:
5040 ;; E402 module level import not at top of file
5041 (substitute* "src/tests/Makefile"
5042 (("--ignore=E123") "--ignore=E123,E402"))
5043 #t))
5044 (add-after
5045 'install 'wrap-program
5046 (lambda* (#:key outputs #:allow-other-keys)
5047 (let ((prog (string-append (assoc-ref outputs "out")
5048 "/bin/d-feet")))
5049 (wrap-program prog
5050 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5051 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5052 #t))))))
5053 (native-inputs
5054 `(("intltool" ,intltool)
5055 ("itstool" ,itstool)
5056 ("pkg-config" ,pkg-config)
5057 ("python-pep8" ,python-pep8)
5058 ("xmllint" ,libxml2)
5059 ("xorg-server" ,xorg-server-for-tests)))
5060 (inputs
5061 `(("gobject-introspection" ,gobject-introspection)
5062 ("gtk+" ,gtk+)
5063 ("python" ,python-wrapper)
5064 ("hicolor-icon-theme" ,hicolor-icon-theme)
5065 ("python-pygobject" ,python-pygobject)))
5066 (home-page "https://wiki.gnome.org/Apps/DFeet")
5067 (synopsis "D-Bus debugger")
5068 (description
5069 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5070 of running programs and invoke methods on those interfaces.")
5071 (license license:gpl2+)))
5072
5073 (define-public yelp-xsl
5074 (package
5075 (name "yelp-xsl")
5076 (version "3.32.1")
5077 (source (origin
5078 (method url-fetch)
5079 (uri (string-append "mirror://gnome/sources/" name "/"
5080 (version-major+minor version) "/"
5081 name "-" version ".tar.xz"))
5082 (sha256
5083 (base32
5084 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
5085 (build-system gnu-build-system)
5086 (native-inputs
5087 `(("intltool" ,intltool)
5088 ("itstool" ,itstool)
5089 ("xmllint" ,libxml2)))
5090 (home-page "https://wiki.gnome.org/Apps/Yelp")
5091 (synopsis "XSL stylesheets for Yelp")
5092 (description
5093 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5094 to format Docbook and Mallard documents.")
5095 (license license:gpl2+)))
5096
5097 (define-public yelp
5098 (package
5099 (name "yelp")
5100 (version "3.32.2")
5101 (source (origin
5102 (method url-fetch)
5103 (uri (string-append "mirror://gnome/sources/" name "/"
5104 (version-major+minor version) "/"
5105 name "-" version ".tar.xz"))
5106 (sha256
5107 (base32
5108 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5109 (build-system glib-or-gtk-build-system)
5110 (native-inputs
5111 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5112 ("intltool" ,intltool)
5113 ("itstool" ,itstool)
5114 ("pkg-config" ,pkg-config)))
5115 (propagated-inputs
5116 `(("dconf" ,dconf)))
5117 (inputs
5118 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5119 ("libxslt" ,libxslt)
5120 ("sqlite" ,sqlite)
5121 ("webkitgtk" ,webkitgtk)
5122 ("yelp-xsl" ,yelp-xsl)))
5123 (home-page "https://wiki.gnome.org/Apps/Yelp")
5124 (synopsis "GNOME help browser")
5125 (description
5126 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5127 man, info, and HTML documents. It can locate documents according to the
5128 freedesktop.org help system specification.")
5129 (license license:gpl2+)))
5130
5131 (define-public yelp-tools
5132 (package
5133 (name "yelp-tools")
5134 (version "3.28.0")
5135 (source (origin
5136 (method url-fetch)
5137 (uri (string-append "mirror://gnome/sources/" name "/"
5138 (version-major+minor version) "/"
5139 name "-" version ".tar.xz"))
5140 (sha256
5141 (base32
5142 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
5143 (build-system gnu-build-system)
5144 (native-inputs
5145 `(("pkg-config" ,pkg-config)))
5146 (propagated-inputs
5147 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5148 `(("itstool" ,itstool)
5149 ("xmllint" ,libxml2)
5150 ("xsltproc" ,libxslt)))
5151 (inputs
5152 `(("yelp-xsl" ,yelp-xsl)))
5153 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5154 (synopsis "Yelp documentation tools")
5155 (description
5156 "Yelp-tools is a collection of scripts and build utilities to help create,
5157 manage, and publish documentation for Yelp and the web. Most of the heavy
5158 lifting is done by packages like yelp-xsl and itstool. This package just
5159 wraps things up in a developer-friendly way.")
5160 (license license:gpl2+)))
5161
5162 (define-public yelp-tools/fixed
5163 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5164 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5165 ;; the next rebuild cycle.
5166 (hidden-package
5167 (package/inherit
5168 yelp-tools
5169 (propagated-inputs
5170 `(("itstool" ,itstool/fixed)
5171 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5172
5173 (define-public libgee
5174 (package
5175 (name "libgee")
5176 (version "0.20.2")
5177 (source (origin
5178 (method url-fetch)
5179 (uri (string-append "mirror://gnome/sources/libgee/"
5180 (version-major+minor version) "/"
5181 "libgee-" version ".tar.xz"))
5182 (sha256
5183 (base32
5184 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
5185 (build-system gnu-build-system)
5186 (arguments
5187 `(#:phases
5188 (modify-phases %standard-phases
5189 (add-after 'unpack 'fix-introspection-install-dir
5190 (lambda* (#:key outputs #:allow-other-keys)
5191 (let ((out (assoc-ref outputs "out")))
5192 (substitute* "gee/Makefile.in"
5193 (("@INTROSPECTION_GIRDIR@")
5194 (string-append out "/share/gir-1.0/"))
5195 (("@INTROSPECTION_TYPELIBDIR@")
5196 (string-append out "/lib/girepository-1.0/")))))))))
5197 (native-inputs
5198 `(("glib" ,glib "bin")
5199 ("pkg-config" ,pkg-config)))
5200 (inputs
5201 `(("glib" ,glib)
5202 ("gobject-introspection" ,gobject-introspection)))
5203 (home-page "https://wiki.gnome.org/Projects/Libgee")
5204 (synopsis "GObject collection library")
5205 (description
5206 "Libgee is a utility library providing GObject-based interfaces and
5207 classes for commonly used data structures.")
5208 (license license:lgpl2.1+)))
5209
5210 (define-public gexiv2
5211 (package
5212 (name "gexiv2")
5213 (version "0.12.0")
5214 (source (origin
5215 (method url-fetch)
5216 (uri (string-append "mirror://gnome/sources/" name "/"
5217 (version-major+minor version) "/"
5218 name "-" version ".tar.xz"))
5219 (sha256
5220 (base32
5221 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5222 (build-system meson-build-system)
5223 (native-inputs
5224 `(("gcr" ,gcr)
5225 ("glib" ,glib "bin")
5226 ("pkg-config" ,pkg-config)
5227 ("vala" ,vala)))
5228 (propagated-inputs
5229 ;; Listed in "Requires" section of gexiv2.pc
5230 `(("exiv2" ,exiv2)))
5231 (inputs
5232 `(("glib" ,glib)
5233 ("gobject-introspection" ,gobject-introspection)))
5234 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5235 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5236 (description
5237 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5238 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5239 metadata in photo and video files of various formats.")
5240 (license license:gpl2+)))
5241
5242 (define-public shotwell
5243 (package
5244 (name "shotwell")
5245 (version "0.30.7")
5246 (source (origin
5247 (method url-fetch)
5248 (uri (string-append "mirror://gnome/sources/shotwell/"
5249 (version-major+minor version) "/"
5250 "shotwell-" version ".tar.xz"))
5251 (sha256
5252 (base32
5253 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
5254 (build-system meson-build-system)
5255 (arguments
5256 '(#:glib-or-gtk? #t
5257 #:phases
5258 (modify-phases %standard-phases
5259 (add-after 'unpack 'skip-gtk-update-icon-cache
5260 (lambda _
5261 (substitute* "build-aux/meson/postinstall.py"
5262 (("gtk-update-icon-cache") (which "true"))
5263 (("update-desktop-database") (which "true")))
5264 #t)))))
5265 (propagated-inputs
5266 `(("dconf" ,dconf)))
5267 (native-inputs
5268 `(("gettext" ,gettext-minimal)
5269 ("glib:bin" ,glib "bin")
5270 ("itstool" ,itstool)
5271 ("pkg-config" ,pkg-config)
5272 ("vala" ,vala)))
5273 (inputs
5274 `(("gcr" ,gcr)
5275 ("gexiv2" ,gexiv2)
5276 ("gst-plugins-base" ,gst-plugins-base)
5277 ("gstreamer" ,gstreamer)
5278 ("json-glib" ,json-glib)
5279 ("libgdata" ,libgdata)
5280 ("libgee" ,libgee)
5281 ("libgphoto2" ,libgphoto2)
5282 ("libgudev" ,libgudev)
5283 ("libraw" ,libraw)
5284 ("libsoup" ,libsoup)
5285 ("libxml2" ,libxml2)
5286 ("sqlite" ,sqlite)
5287 ("webkitgtk" ,webkitgtk)))
5288 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5289 (synopsis "Photo manager for GNOME 3")
5290 (description
5291 "Shotwell is a digital photo manager designed for the GNOME desktop
5292 environment. It allows you to import photos from disk or camera, organize
5293 them by keywords and events, view them in full-window or fullscreen mode, and
5294 share them with others via social networking and more.")
5295 (license license:lgpl2.1+)))
5296
5297 (define-public file-roller
5298 (package
5299 (name "file-roller")
5300 (version "3.32.3")
5301 (source (origin
5302 (method url-fetch)
5303 (uri (string-append "mirror://gnome/sources/file-roller/"
5304 (version-major+minor version) "/"
5305 "file-roller-" version ".tar.xz"))
5306 (sha256
5307 (base32
5308 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5309 (build-system meson-build-system)
5310 (native-inputs
5311 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5312 ("intltool" ,intltool)
5313 ("itstool" ,itstool)
5314 ("pkg-config" ,pkg-config)
5315 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5316 ("glib:bin" ,glib "bin")))
5317 ;; TODO: Add libnautilus.
5318 (inputs
5319 `(("gtk+" ,gtk+)
5320 ("gdk-pixbuf" ,gdk-pixbuf)
5321 ("json-glib" ,json-glib)
5322 ("libarchive" ,libarchive)
5323 ("libnotify" ,libnotify)
5324 ("nettle" ,nettle)
5325 ("libxml2" ,libxml2)))
5326 (synopsis "Graphical archive manager for GNOME")
5327 (description "File Roller is an archive manager for the GNOME desktop
5328 environment that allows users to view, unpack, and create compressed archives
5329 such as gzip tarballs.")
5330 (home-page "http://fileroller.sourceforge.net/")
5331 (license license:gpl2+)))
5332
5333 (define-public gnome-session
5334 (package
5335 (name "gnome-session")
5336 (version "3.32.0")
5337 (source (origin
5338 (method url-fetch)
5339 (uri (string-append "mirror://gnome/sources/" name "/"
5340 (version-major+minor version) "/"
5341 name "-" version ".tar.xz"))
5342 (sha256
5343 (base32
5344 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
5345 (arguments
5346 '(#:glib-or-gtk? #t
5347 #:phases
5348 (modify-phases %standard-phases
5349 (add-before 'configure 'pre-configure
5350 (lambda* (#:key outputs #:allow-other-keys)
5351 ;; Use elogind instead of systemd.
5352 (substitute* "meson.build"
5353 (("libsystemd-login") "libelogind")
5354 (("and libsystemd_daemon_dep.found.*") ","))
5355 (substitute* "gnome-session/gsm-systemd.c"
5356 (("#include <systemd/sd-login.h>")
5357 "#include <elogind/sd-login.h>"))
5358 ;; Remove uses of the systemd daemon.
5359 (substitute* "gnome-session/gsm-autostart-app.c"
5360 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5361 #t))
5362 (add-after 'install 'wrap-gnome-session
5363 (lambda* (#:key inputs outputs #:allow-other-keys)
5364 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5365 (let ((glib (assoc-ref inputs "glib:bin"))
5366 (out (assoc-ref outputs "out")))
5367 (wrap-program (string-append out "/bin/gnome-session")
5368 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5369 #t))))
5370
5371 #:configure-flags
5372 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5373 "-Dman=false" ; FIXME: disabled because of docbook validation error
5374 "-Dsystemd_journal=false")))
5375 (build-system meson-build-system)
5376 (native-inputs
5377 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5378 ("pkg-config" ,pkg-config)
5379 ("intltool" ,intltool)
5380 ("xsltproc" ,libxslt)
5381 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5382 ("docbook-xsl" ,docbook-xsl)
5383 ("docbook-xml" ,docbook-xml)
5384 ("xmlto" ,xmlto)))
5385 (inputs
5386 `(("elogind" ,elogind)
5387 ("gnome-desktop" ,gnome-desktop)
5388 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5389 ("gtk+" ,gtk+)
5390 ("json-glib" ,json-glib)
5391 ("libsm" ,libsm)
5392 ("libxcomposite" ,libxcomposite)
5393 ("libxtst" ,libxtst)
5394 ("mesa" ,mesa)
5395 ("upower" ,upower)
5396 ("xtrans" ,xtrans)))
5397 (synopsis "Session manager for GNOME")
5398 (description
5399 "This package contains the GNOME session manager, as well as a
5400 configuration program to choose applications starting on login.")
5401 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5402 (license license:gpl2+)))
5403
5404 (define-public gjs
5405 (package
5406 (name "gjs")
5407 (version "1.56.2")
5408 (source (origin
5409 (method url-fetch)
5410 (uri (string-append "mirror://gnome/sources/" name "/"
5411 (version-major+minor version) "/"
5412 name "-" version ".tar.xz"))
5413 (sha256
5414 (base32
5415 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
5416 (build-system gnu-build-system)
5417 (arguments
5418 '(#:phases
5419 (modify-phases %standard-phases
5420 (add-before
5421 'check 'pre-check
5422 (lambda _
5423 ;; The test suite requires a running X server.
5424 (system "Xvfb :1 &")
5425 (setenv "DISPLAY" ":1")
5426
5427 ;; For the missing /etc/machine-id.
5428 (setenv "DBUS_FATAL_WARNINGS" "0")
5429
5430 ;; Our mozjs-38 package does not compile the required Intl API
5431 ;; support for these failing tests.
5432 (substitute* "installed-tests/js/testLocale.js"
5433 ((".*toBeDefined.*") "")
5434 ((".*expect\\(datestr\\).*") ""))
5435 (substitute* "installed-tests/scripts/testCommandLine.sh"
5436 (("Valentín") "")
5437 (("☭") ""))
5438 #t)))))
5439 (native-inputs
5440 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5441 ("pkg-config" ,pkg-config)
5442 ("xmllint" ,libxml2)
5443 ;; For testing
5444 ("dbus-launch" ,dbus)
5445 ("uuidgen" ,util-linux)
5446 ("xvfb" ,xorg-server-for-tests)))
5447 (propagated-inputs
5448 ;; These are all in the Requires.private field of gjs-1.0.pc.
5449 `(("cairo" ,cairo)
5450 ("gobject-introspection" ,gobject-introspection)
5451 ("mozjs" ,mozjs-60)))
5452 (inputs
5453 `(("gtk+" ,gtk+)
5454 ("readline" ,readline)))
5455 (synopsis "Javascript bindings for GNOME")
5456 (home-page "https://live.gnome.org/Gjs")
5457 (description
5458 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5459 javascript engine and the GObject introspection framework.")
5460 (license license:gpl2+)))
5461
5462 (define-public gedit
5463 (package
5464 (name "gedit")
5465 (version "3.32.2")
5466 (source (origin
5467 (method url-fetch)
5468 (uri (string-append "mirror://gnome/sources/" name "/"
5469 (version-major+minor version) "/"
5470 name "-" version ".tar.xz"))
5471 (sha256
5472 (base32
5473 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5474 (build-system meson-build-system)
5475 (arguments
5476 `(#:glib-or-gtk? #t
5477 #:configure-flags
5478 ;; Otherwise, the RUNPATH will lack the final path component.
5479 (list (string-append "-Dc_link_args=-Wl,-rpath="
5480 (assoc-ref %outputs "out") "/lib/gedit"))
5481
5482 ;; XXX: Generated .h files are sometimes used before being built.
5483 #:parallel-build? #f
5484
5485 #:phases
5486 (modify-phases %standard-phases
5487 (add-after 'unpack 'skip-gtk-update-icon-cache
5488 ;; Don't create 'icon-theme.cache'.
5489 (lambda _
5490 (substitute* "build-aux/meson/post_install.py"
5491 (("gtk-update-icon-cache") (which "true")))
5492 #t))
5493 (add-after 'unpack 'patch-libgd-fetch
5494 (lambda* (#:key inputs #:allow-other-keys)
5495 (let ((libgd (assoc-ref inputs "libgd")))
5496 ;; Calling git is unnecessary because libgd is fetched as a
5497 ;; native input to this package.
5498 (substitute* "meson.build"
5499 ((".*git.*") ""))
5500 (copy-recursively libgd "subprojects/libgd")
5501 #t)))
5502 (add-after 'install 'wrap-gedit
5503 (lambda* (#:key inputs outputs #:allow-other-keys)
5504 (let ((out (assoc-ref outputs "out"))
5505 (gtksourceview (assoc-ref inputs "gtksourceview"))
5506 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5507 (python-path (getenv "PYTHONPATH")))
5508 (wrap-program (string-append out "/bin/gedit")
5509 ;; For plugins.
5510 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5511 `("PYTHONPATH" ":" prefix (,python-path))
5512 ;; For language-specs.
5513 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5514 "/share")))))
5515 #t)))))
5516 (propagated-inputs
5517 `(("dconf" ,dconf)))
5518 (native-inputs
5519 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5520 ("intltool" ,intltool)
5521 ("itstool" ,itstool)
5522 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5523 ("gobject-introspection" ,gobject-introspection)
5524 ("libgd"
5525 ,(origin
5526 (method git-fetch)
5527 (uri (git-reference
5528 (url "https://gitlab.gnome.org/GNOME/libgd")
5529 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5530 (file-name (git-file-name "libgd" version))
5531 (sha256
5532 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
5533 ("pkg-config" ,pkg-config)))
5534 (inputs
5535 `(("glib" ,glib)
5536 ("gspell" ,gspell)
5537 ("gtk+" ,gtk+)
5538 ("gtksourceview" ,gtksourceview)
5539 ("libpeas" ,libpeas)
5540 ("libxml2" ,libxml2)
5541 ("iso-codes" ,iso-codes)
5542 ("python-pygobject" ,python-pygobject)
5543 ("python" ,python)
5544 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5545 ("libx11" ,libx11)
5546 ("vala" ,vala)
5547 ("adwaita-icon-theme" ,adwaita-icon-theme)
5548 ("libsoup" ,libsoup)
5549 ("gnome-desktop" ,gnome-desktop)))
5550 (home-page "https://wiki.gnome.org/Apps/Gedit")
5551 (synopsis "GNOME text editor")
5552 (description "While aiming at simplicity and ease of use, gedit is a
5553 powerful general purpose text editor.")
5554 (license license:gpl2+)))
5555
5556 (define-public zenity
5557 (package
5558 (name "zenity")
5559 (version "3.32.0")
5560 (source (origin
5561 (method url-fetch)
5562 (uri (string-append "mirror://gnome/sources/zenity/"
5563 (version-major+minor version) "/"
5564 "zenity-" version ".tar.xz"))
5565 (sha256
5566 (base32
5567 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
5568 (build-system gnu-build-system)
5569 (native-inputs
5570 `(("gettext" ,gettext-minimal)
5571 ("itstool" ,itstool)
5572 ("pkg-config" ,pkg-config)))
5573 (inputs
5574 `(("libnotify" ,libnotify)
5575 ("webkitgtk" ,webkitgtk)))
5576 (synopsis "Display graphical dialog boxes from shell scripts")
5577 (home-page "https://www.gnome.org")
5578 (description
5579 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
5580 to display dialog boxes from the commandline and shell scripts.")
5581 (license license:lgpl2.0+)))
5582
5583 (define-public mutter
5584 (package
5585 (name "mutter")
5586 (version "3.32.2")
5587 (source (origin
5588 (method url-fetch)
5589 (uri (string-append "mirror://gnome/sources/" name "/"
5590 (version-major+minor version) "/"
5591 name "-" version ".tar.xz"))
5592 (sha256
5593 (base32
5594 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
5595 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
5596 ;; versions of cogl and clutter. As a result, many of the inputs,
5597 ;; propagated-inputs, and configure flags used in cogl and clutter are
5598 ;; needed here as well.
5599 (build-system meson-build-system)
5600 (arguments
5601 '(;; XXX: All mutter tests fail with the following error:
5602 ;; Settings schema 'org.gnome.mutter' is not installed
5603 #:tests? #f
5604 #:glib-or-gtk? #t
5605 #:configure-flags
5606 ;; Otherwise, the RUNPATH will lack the final path component.
5607 (list (string-append "-Dc_link_args=-Wl,-rpath="
5608 (assoc-ref %outputs "out") "/lib:"
5609 (assoc-ref %outputs "out") "/lib/mutter-4")
5610
5611 ;; The following flags are needed for the bundled clutter
5612 (string-append "-Dxwayland_path="
5613 (assoc-ref %build-inputs "xorg-server-xwayland")
5614 "/bin/Xwayland")
5615
5616 ;; the remaining flags are needed for the bundled cogl
5617 (string-append "-Dopengl_libname="
5618 (assoc-ref %build-inputs "mesa")
5619 "/lib/libGL.so"))
5620 #:phases
5621 (modify-phases %standard-phases
5622 (add-after 'unpack 'disable-werror
5623 (lambda _
5624 ;; XXX: build fails with [-Werror]:
5625 ;; backends/meta-cursor-renderer.c:112:5: error:
5626 ;; implicit declaration of function ?roundf?
5627 (substitute* "meson.build"
5628 (("'-Werror=.*',") ""))
5629 #t))
5630 ;; Replace references to systemd libraries to elogind references.
5631 (add-before 'configure 'use-elogind
5632 (lambda _
5633 (substitute* (list "meson.build"
5634 "src/backends/native/meta-launcher.c"
5635 "src/core/main.c")
5636 (("systemd") "elogind"))
5637 #t)))))
5638 (native-inputs
5639 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5640 ("gobject-introspection" ,gobject-introspection)
5641 ("intltool" ,intltool)
5642 ("pkg-config" ,pkg-config)
5643 ("xorg-server" ,xorg-server-for-tests)
5644 ;; For git build
5645 ("autoconf" ,autoconf)
5646 ("automake" ,automake)
5647 ("libtool" ,libtool)))
5648 (propagated-inputs
5649 `(;; libmutter.pc refers to these:
5650 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5651 ("gtk+" ,gtk+)
5652 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
5653 ("atk" ,atk)
5654 ("cairo" ,cairo)
5655 ("gdk-pixbuf" ,gdk-pixbuf)
5656 ("glib" ,glib)
5657 ("json-glib" ,json-glib)
5658 ("libinput" ,libinput)
5659 ("libx11" ,libx11)
5660 ("libxcomposite" ,libxcomposite)
5661 ("libxdamage" ,libxdamage)
5662 ("libxext" ,libxext)
5663 ("libxfixes" ,libxfixes)
5664 ("libxkbcommon" ,libxkbcommon)
5665 ("libxrandr" ,libxrandr)
5666 ("mesa" ,mesa)
5667 ("pango" ,pango)
5668 ("udev" ,eudev)
5669 ("xinput" ,xinput)))
5670 (inputs
5671 `(("elogind" ,elogind)
5672 ("gnome-desktop" ,gnome-desktop)
5673 ("gnome-settings-daemon" ,gnome-settings-daemon)
5674 ("libcanberra-gtk" ,libcanberra)
5675 ("libgudev" ,libgudev)
5676 ("libice" ,libice)
5677 ("libsm" ,libsm)
5678 ("libwacom" ,libwacom)
5679 ("libxkbfile" ,libxkbfile)
5680 ("libxrandr" ,libxrandr)
5681 ("libxtst" ,libxtst)
5682 ("pipewire" ,pipewire)
5683 ("startup-notification" ,startup-notification)
5684 ("upower-glib" ,upower)
5685 ("xkeyboard-config" ,xkeyboard-config)
5686 ("xorg-server-xwayland" ,xorg-server-xwayland)
5687 ("zenity" ,zenity)))
5688 (synopsis "Window and compositing manager")
5689 (home-page "https://www.gnome.org")
5690 (description
5691 "Mutter is a window and compositing manager that displays and manages your
5692 desktop via OpenGL. Mutter combines a sophisticated display engine using the
5693 Clutter toolkit with solid window-management logic inherited from the Metacity
5694 window manager.")
5695 (license license:gpl2+)))
5696
5697 (define-public gnome-online-accounts
5698 (package
5699 (name "gnome-online-accounts")
5700 (version "3.32.1")
5701 (source (origin
5702 (method url-fetch)
5703 (uri (string-append "mirror://gnome/sources/" name "/"
5704 (version-major+minor version) "/"
5705 name "-" version ".tar.xz"))
5706 (sha256
5707 (base32
5708 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
5709 (outputs '("out" "lib"))
5710 (build-system glib-or-gtk-build-system)
5711 (arguments
5712 `(#:configure-flags
5713 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
5714 #:phases
5715 (modify-phases %standard-phases
5716 (add-before 'configure 'patch-libgoa-output
5717 (lambda* (#:key outputs #:allow-other-keys)
5718 (let ((lib (assoc-ref outputs "lib")))
5719 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
5720 (("@prefix@") lib)
5721 (("@exec_prefix@") lib)
5722 (("@libdir@") (string-append lib "/lib"))
5723 (("@includedir@") (string-append lib "/include"))
5724 (("@datadir@") (string-append lib "/share")))
5725 ;; Make sure gobject-introspection knows about the output
5726 ;; too (see <https://bugs.gnu.org/36535>).
5727 (setenv "outputs" "out lib")
5728 #t))))))
5729 (native-inputs
5730 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5731 ("gobject-introspection" ,gobject-introspection)
5732 ("intltool" ,intltool)
5733 ("pkg-config" ,pkg-config)
5734 ("vala" ,vala)
5735 ("xsltproc" ,libxslt)))
5736 (propagated-inputs
5737 `(("glib" ,glib) ; required by goa-1.0.pc
5738 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
5739 (inputs
5740 `(("docbook-xsl" ,docbook-xsl)
5741 ("json-glib" ,json-glib)
5742 ("libsecret" ,libsecret)
5743 ("rest" ,rest)
5744 ("webkitgtk" ,webkitgtk)))
5745 (synopsis "Single sign-on framework for GNOME")
5746 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
5747 (description
5748 "GNOME Online Accounts provides interfaces so that applications and
5749 libraries in GNOME can access the user's online accounts. It has providers for
5750 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
5751 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
5752 (license license:lgpl2.0+)))
5753
5754 (define-public evolution-data-server
5755 (package
5756 (name "evolution-data-server")
5757 (version "3.32.4")
5758 (source (origin
5759 (method url-fetch)
5760 (uri (string-append "mirror://gnome/sources/" name "/"
5761 (version-major+minor version) "/"
5762 name "-" version ".tar.xz"))
5763 (patches (search-patches "evolution-data-server-locales.patch"))
5764 (sha256
5765 (base32
5766 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
5767 (build-system cmake-build-system)
5768 (arguments
5769 '(#:configure-flags
5770 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
5771 (runpaths (map (lambda (s)
5772 (string-append lib "/evolution-data-server/" s))
5773 '("addressbook-backends" "calendar-backends"
5774 "camel-providers" "credential-modules"
5775 "registry-modules"))))
5776 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
5777 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
5778 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
5779 "-DENABLE_VALA_BINDINGS=ON"
5780 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
5781 (string-append lib "/evolution-data-server;")
5782 (string-join runpaths ";"))
5783 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
5784 #:phases
5785 (modify-phases %standard-phases
5786 (add-after 'unpack 'disable-failing-tests
5787 (lambda _
5788 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
5789 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
5790 (delete-file-recursively "tests/book-migration")
5791 (substitute* "tests/CMakeLists.txt"
5792 (("add_subdirectory\\(book-migration\\)") ""))
5793 ;; tests/libebook/client/test-book-client-view-operations:8077):
5794 ;; e-data-server-WARNING **:
5795 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
5796 ;; runtime check failed:
5797 ;; (!g_main_context_pending (closure->main_context))
5798 (substitute* "tests/libebook/client/CMakeLists.txt"
5799 (("test-book-client-view-operations") ""))
5800 #t))
5801 (add-after 'unpack 'patch-paths
5802 (lambda _
5803 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
5804 "tests/libedata-book/data-test-utils.c"
5805 "tests/libedata-book/test-book-cache-utils.c"
5806 "tests/libedata-cal/test-cal-cache-utils.c")
5807 (("/bin/rm") (which "rm")))
5808 #t))
5809 (add-before 'configure 'dont-override-rpath
5810 (lambda _
5811 (substitute* "CMakeLists.txt"
5812 ;; CMakeLists.txt hard-codes runpath to just the libdir.
5813 ;; Remove it so the configure flag is respected.
5814 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
5815 #t)))))
5816 (native-inputs
5817 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5818 ("gobject-introspection" ,gobject-introspection)
5819 ("gperf" ,gperf)
5820 ("intltool" ,intltool)
5821 ("pkg-config" ,pkg-config)
5822 ("vala" ,vala)
5823 ("python" ,python-wrapper)))
5824 (propagated-inputs
5825 ;; These are all in the Requires field of .pc files.
5826 `(("gtk+" ,gtk+)
5827 ("libical" ,libical)
5828 ("libsecret" ,libsecret)
5829 ("libsoup" ,libsoup)
5830 ("nss" ,nss)
5831 ("sqlite" ,sqlite)))
5832 (inputs
5833 `(("bdb" ,bdb)
5834 ("gcr" ,gcr)
5835 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
5836 ("json-glib" ,json-glib)
5837 ("libcanberra" ,libcanberra)
5838 ("libgweather" ,libgweather)
5839 ("mit-krb5" ,mit-krb5)
5840 ("openldap" ,openldap)
5841 ("webkitgtk" ,webkitgtk)))
5842 (synopsis "Store address books and calendars")
5843 (home-page "https://wiki.gnome.org/Apps/Evolution")
5844 (description
5845 "This package provides a unified backend for programs that work with
5846 contacts, tasks, and calendar information. It was originally developed for
5847 Evolution (hence the name), but is now used by other packages as well.")
5848 (license license:lgpl2.0)))
5849
5850 (define-public caribou
5851 (package
5852 (name "caribou")
5853 (version "0.4.21")
5854 (source (origin
5855 (method url-fetch)
5856 (uri (string-append "mirror://gnome/sources/" name "/"
5857 (version-major+minor version) "/"
5858 name "-" version ".tar.xz"))
5859 (sha256
5860 (base32
5861 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
5862 (build-system glib-or-gtk-build-system)
5863 (arguments
5864 '(#:phases
5865 (modify-phases %standard-phases
5866 (add-before
5867 'build 'pre-build
5868 (lambda* (#:key outputs #:allow-other-keys)
5869 (let ((out (assoc-ref outputs "out")))
5870 ;; Use absolute shared library path in Caribou-1.0.typelib.
5871 (substitute* "libcaribou/Makefile"
5872 (("--shared-library=libcaribou.so")
5873 (string-append "--shared-library="
5874 out "/lib/libcaribou.so")))
5875 #t)))
5876 (add-after 'install 'wrap-programs
5877 (lambda* (#:key outputs #:allow-other-keys)
5878 (let* ((out (assoc-ref outputs "out"))
5879 (python-path (getenv "PYTHONPATH"))
5880 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5881 (for-each
5882 (lambda (prog)
5883 (wrap-program prog
5884 `("PYTHONPATH" ":" prefix (,python-path))
5885 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5886 (list (string-append out "/bin/caribou-preferences")
5887 (string-append out "/libexec/antler-keyboard"))))
5888 #t)))))
5889 (native-inputs
5890 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5891 ("gobject-introspection" ,gobject-introspection)
5892 ("intltool" ,intltool)
5893 ("pkg-config" ,pkg-config)
5894 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
5895 ("vala" ,vala)
5896 ("xsltproc" ,libxslt)))
5897 (propagated-inputs
5898 ;; caribou-1.0.pc refers to all these.
5899 `(("libgee" ,libgee)
5900 ("libxklavier" ,libxklavier)
5901 ("libxtst" ,libxtst)
5902 ("gtk+" ,gtk+)))
5903 (inputs
5904 `(("clutter" ,clutter)
5905 ("dconf" ,dconf)
5906 ("gtk+-2" ,gtk+-2)
5907 ("python-pygobject" ,python2-pygobject)))
5908 (synopsis "Text entry and UI navigation application")
5909 (home-page "https://wiki.gnome.org/Projects/Caribou")
5910 (description
5911 "Caribou is an input assistive technology intended for switch and pointer
5912 users.")
5913 (license license:lgpl2.1)))
5914
5915 (define-public network-manager
5916 (package
5917 (name "network-manager")
5918 (version "1.18.4")
5919 (source (origin
5920 (method url-fetch)
5921 (uri (string-append "mirror://gnome/sources/NetworkManager/"
5922 (version-major+minor version) "/"
5923 "NetworkManager-" version ".tar.xz"))
5924 (patches (search-patches "nm-plugin-path.patch"))
5925 (sha256
5926 (base32
5927 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
5928 (modules '((guix build utils)))
5929 (snippet
5930 '(begin
5931 (substitute* "src/devices/wwan/nm-modem-manager.c"
5932 (("systemd") "elogind"))
5933 #t))))
5934 (build-system gnu-build-system)
5935 (outputs '("out"
5936 "doc")) ; 8 MiB of gtk-doc HTML
5937 (arguments
5938 '(#:configure-flags
5939 (let ((out (assoc-ref %outputs "out"))
5940 (doc (assoc-ref %outputs "doc"))
5941 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
5942 "/sbin/dhclient")))
5943 (list "--with-libnm-glib" ; needed by network-manager-applet
5944 "--with-systemd-journal=no"
5945 "--with-session-tracking=elogind"
5946 "--with-suspend-resume=elogind"
5947 "--with-consolekit=no"
5948 "--with-crypto=gnutls"
5949 "--disable-config-plugin-ibft"
5950 "--sysconfdir=/etc"
5951 "--localstatedir=/var"
5952 (string-append "--with-udev-dir="
5953 out "/lib/udev")
5954 (string-append "--with-dbus-sys-dir="
5955 out "/etc/dbus-1/system.d")
5956 (string-append "--with-html-dir="
5957 doc "/share/gtk-doc/html")
5958 (string-append "--with-dhclient=" dhclient)))
5959 #:phases
5960 (modify-phases %standard-phases
5961 ;; This bare "ls" invocation breaks some tests.
5962 (add-after 'unpack 'patch-ls-invocation
5963 (lambda _
5964 (substitute* "build-aux/ltmain.sh"
5965 (("`ls -")
5966 (string-append "`" (which "ls") " -")))
5967 #t))
5968 (add-before 'configure 'pre-configure
5969 (lambda _
5970 ;; These tests try to test aspects of network-manager's
5971 ;; functionality within restricted containers, but they don't
5972 ;; cope with being already in the Guix build jail as that jail
5973 ;; lacks some features that they would like to proxy over (like
5974 ;; a /sys mount).
5975 (substitute* '("Makefile.in")
5976 (("src/platform/tests/test-address-linux") " ")
5977 (("src/platform/tests/test-cleanup-linux") " ")
5978 (("src/platform/tests/test-link-linux") " ")
5979 (("src/platform/tests/test-route-linux") " ")
5980 (("src/devices/tests/test-acd") "")
5981 (("src/devices/tests/test-arping") " ")
5982 (("src/devices/tests/test-lldp") " ")
5983 (("src/tests/test-route-manager-linux") " "))
5984 #t))
5985 (add-after 'unpack 'delete-failing-tests
5986 (lambda _
5987 ;; FIXME: These three tests fail for unknown reasons.
5988 ;; ERROR:libnm-core/tests/test-general.c:5842:
5989 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
5990 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
5991 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
5992 ;; ERROR:libnm-core/tests/test-setting.c:907:
5993 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
5994 (substitute* "Makefile.in"
5995 (("libnm-core/tests/test-general") " ")
5996 (("libnm-core/tests/test-keyfile") " ")
5997 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
5998 #t))
5999 (add-before 'check 'pre-check
6000 (lambda _
6001 ;; For the missing /etc/machine-id.
6002 (setenv "DBUS_FATAL_WARNINGS" "0")
6003 #t))
6004 (replace 'install
6005 (lambda _
6006 (invoke "make"
6007 "sysconfdir=/tmp"
6008 "rundir=/tmp"
6009 "statedir=/tmp"
6010 "nmstatedir=/tmp/nm"
6011 "install")
6012 #t)))))
6013 (propagated-inputs
6014 `(("glib" ,glib)))
6015 (native-inputs
6016 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6017 ("gobject-introspection" ,gobject-introspection)
6018 ("docbook-xsl" ,docbook-xsl)
6019 ("intltool" ,intltool)
6020 ("libxslt" ,libxslt)
6021 ("libxml2" ,libxml2)
6022 ("pkg-config" ,pkg-config)
6023 ;; For testing.
6024 ("python" ,python-wrapper)
6025 ("python-dbus" ,python-dbus)
6026 ("python-pygobject" ,python-pygobject)))
6027 (inputs
6028 `(("coreutils" ,coreutils) ; for ls
6029 ("curl" ,curl)
6030 ("cyrus-sasl" ,cyrus-sasl)
6031 ("dbus-glib" ,dbus-glib)
6032 ("dnsmasq" ,dnsmasq)
6033 ("eudev" ,eudev)
6034 ("gnutls" ,gnutls)
6035 ("iptables" ,iptables)
6036 ("isc-dhcp" ,isc-dhcp)
6037 ("jansson" ,jansson)
6038 ("libgcrypt" ,libgcrypt)
6039 ("libgudev" ,libgudev)
6040 ("libndp" ,libndp)
6041 ("libnl" ,libnl)
6042 ("libsoup" ,libsoup)
6043 ("modem-manager" ,modem-manager)
6044 ("newt" ,newt) ;for the 'nmtui' console interface
6045 ("polkit" ,polkit)
6046 ("ppp" ,ppp)
6047 ("readline" ,readline)
6048 ("util-linux" ,util-linux)
6049 ("elogind" ,elogind)))
6050 (synopsis "Network connection manager")
6051 (home-page "https://www.gnome.org/projects/NetworkManager/")
6052 (description
6053 "NetworkManager is a system network service that manages your network
6054 devices and connections, attempting to keep active network connectivity when
6055 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6056 devices, and provides VPN integration with a variety of different VPN
6057 services.")
6058 (license license:gpl2+)
6059 (properties '((upstream-name . "NetworkManager")))))
6060
6061 (define-public network-manager-openvpn
6062 (package
6063 (name "network-manager-openvpn")
6064 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
6065 (version "1.8.10")
6066 (source (origin
6067 (method url-fetch)
6068 (uri (string-append
6069 "mirror://gnome/sources/NetworkManager-openvpn/"
6070 (version-major+minor version)
6071 "/NetworkManager-openvpn-" version ".tar.xz"))
6072 (sha256
6073 (base32
6074 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
6075 (build-system gnu-build-system)
6076 (arguments
6077 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6078 #:phases
6079 (modify-phases %standard-phases
6080 (add-after 'configure 'patch-path
6081 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6082 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6083 "/sbin/openvpn"))
6084 (modprobe (string-append (assoc-ref inputs "kmod")
6085 "/bin/modprobe"))
6086 (pretty-ovpn (string-append "\"" ovpn "\"")))
6087 (for-each
6088 (lambda (file)
6089 (substitute* file
6090 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6091 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6092 (("\"/sbin/openvpn\"") pretty-ovpn)
6093 (("/sbin/modprobe") modprobe)))
6094 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6095 #t)))))
6096 (native-inputs
6097 `(("pkg-config" ,pkg-config)
6098 ("intltool" ,intltool)))
6099 (inputs
6100 `(("gtk+" ,gtk+)
6101 ("kmod" ,kmod)
6102 ("openvpn" ,openvpn)
6103 ("network-manager" ,network-manager)
6104 ("network-manager-applet" ,network-manager-applet) ;for libnma
6105 ("libsecret" ,libsecret)))
6106 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6107 (synopsis "OpenVPN plug-in for NetworkManager")
6108 (description
6109 "This extension of NetworkManager allows it to take care of connections
6110 to virtual private networks (VPNs) via OpenVPN.")
6111 (license license:gpl2+)
6112 (properties `((upstream-name . "NetworkManager-openvpn")))))
6113
6114 (define-public network-manager-vpnc
6115 (package
6116 (name "network-manager-vpnc")
6117 (version "1.2.6")
6118 (source (origin
6119 (method url-fetch)
6120 (uri (string-append
6121 "mirror://gnome/sources/NetworkManager-vpnc/"
6122 (version-major+minor version)
6123 "/NetworkManager-vpnc-" version ".tar.xz"))
6124 (sha256
6125 (base32
6126 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6127 (build-system gnu-build-system)
6128 (arguments
6129 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6130 #:phases
6131 (modify-phases %standard-phases
6132 (add-after 'configure 'patch-path
6133 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6134 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6135 "/sbin/vpnc"))
6136 (modprobe (string-append (assoc-ref inputs "kmod")
6137 "/bin/modprobe"))
6138 (pretty-ovpn (string-append "\"" vpnc "\"")))
6139 (substitute* "src/nm-vpnc-service.c"
6140 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6141 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6142 (("\"/sbin/vpnc\"") pretty-ovpn)
6143 (("/sbin/modprobe") modprobe)))
6144 #t)))))
6145 (native-inputs
6146 `(("pkg-config" ,pkg-config)
6147 ("intltool" ,intltool)))
6148 (inputs
6149 `(("gtk+" ,gtk+)
6150 ("kmod" ,kmod)
6151 ("vpnc" ,vpnc)
6152 ("network-manager" ,network-manager)
6153 ("network-manager-applet" ,network-manager-applet) ;for libnma
6154 ("libsecret" ,libsecret)))
6155 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6156 (synopsis "VPNC plug-in for NetworkManager")
6157 (description
6158 "Support for configuring virtual private networks based on VPNC.
6159 Compatible with Cisco VPN concentrators configured to use IPsec.")
6160 (license license:gpl2+)
6161 (properties `((upstream-name . "NetworkManager-vpnc")))))
6162
6163 (define-public network-manager-openconnect
6164 (package
6165 (name "network-manager-openconnect")
6166 (version "1.2.6")
6167 (source (origin
6168 (method url-fetch)
6169 (uri (string-append
6170 "mirror://gnome/sources/NetworkManager-openconnect/"
6171 (version-major+minor version)
6172 "/NetworkManager-openconnect-" version ".tar.xz"))
6173 (sha256
6174 (base32
6175 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6176 (build-system gnu-build-system)
6177 (arguments
6178 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6179 #:phases
6180 (modify-phases %standard-phases
6181 (add-after 'configure 'patch-path
6182 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6183 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6184 "/sbin/openconnect"))
6185 (modprobe (string-append (assoc-ref inputs "kmod")
6186 "/bin/modprobe"))
6187 (pretty-ovpn (string-append "\"" openconnect "\"")))
6188 (substitute* "src/nm-openconnect-service.c"
6189 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6190 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6191 (("/sbin/modprobe") modprobe)))
6192 #t)))))
6193 (native-inputs
6194 `(("intltool" ,intltool)
6195 ("network-manager-applet" ,network-manager-applet) ;for libnma
6196 ("pkg-config" ,pkg-config)))
6197 (inputs
6198 `(("gcr" ,gcr)
6199 ("gtk+" ,gtk+)
6200 ("kmod" ,kmod)
6201 ("libsecret" ,libsecret)
6202 ("libxml2" ,libxml2)
6203 ("network-manager" ,network-manager)
6204 ("openconnect" ,openconnect)))
6205 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6206 (synopsis "OpenConnect plug-in for NetworkManager")
6207 (description
6208 "This extension of NetworkManager allows it to take care of connections
6209 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6210 Cisco's AnyConnect SSL VPN.")
6211 (license license:gpl2+)
6212 (properties `((upstream-name . "NetworkManager-openconnect")
6213
6214 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6215 ;; file refers to account "nm-openconnect". Specify it here
6216 ;; so that 'network-manager-service-type' creates it.
6217 (user-accounts . ("nm-openconnect"))))))
6218
6219 (define-public mobile-broadband-provider-info
6220 (package
6221 (name "mobile-broadband-provider-info")
6222 (version "20190116")
6223 (source (origin
6224 (method url-fetch)
6225 (uri (string-append
6226 "mirror://gnome/sources/"
6227 "mobile-broadband-provider-info/" version "/"
6228 "mobile-broadband-provider-info-" version ".tar.xz"))
6229 (sha256
6230 (base32
6231 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6232 (build-system gnu-build-system)
6233 (arguments
6234 `(#:tests? #f)) ; no tests
6235 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6236 (synopsis "Database of broadband connection configuration")
6237 (description "Database of broadband connection configuration.")
6238 (license license:public-domain)))
6239
6240 (define-public network-manager-applet
6241 (package
6242 (name "network-manager-applet")
6243 (version "1.8.24")
6244 (source (origin
6245 (method url-fetch)
6246 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6247 (version-major+minor version) "/"
6248 "network-manager-applet-" version ".tar.xz"))
6249 (sha256
6250 (base32
6251 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
6252 (build-system meson-build-system)
6253 (arguments
6254 '(#:configure-flags
6255 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6256 (list "-Dlibnm_gtk=true")
6257 #:glib-or-gtk? #t))
6258 (native-inputs
6259 `(("intltool" ,intltool)
6260 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6261 ("gobject-introspection" ,gobject-introspection)
6262 ("gtk-doc" ,gtk-doc)
6263 ("pkg-config" ,pkg-config)))
6264 (propagated-inputs
6265 ;; libnm-gtk.pc refers to all these.
6266 `(("dbus-glib" ,dbus-glib)
6267 ("gtk+" ,gtk+)
6268 ("network-manager" ,network-manager)))
6269 (inputs
6270 `(("gcr" ,gcr)
6271 ("iso-codes" ,iso-codes)
6272 ("libgudev" ,libgudev)
6273 ("libnotify" ,libnotify)
6274 ("libsecret" ,libsecret)
6275 ("libselinux" ,libselinux)
6276 ("jansson" ,jansson) ; for team support
6277 ("modem-manager" ,modem-manager)
6278 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
6279 (synopsis "Applet for managing network connections")
6280 (home-page "https://www.gnome.org/projects/NetworkManager/")
6281 (description
6282 "This package contains a systray applet for NetworkManager. It displays
6283 the available networks and allows users to easily switch between them.")
6284 (license license:gpl2+)))
6285
6286 (define-public libxml++
6287 (package
6288 (name "libxml++")
6289 (version "3.0.1")
6290 (source (origin
6291 (method url-fetch)
6292 (uri (string-append "mirror://gnome/sources/" name "/"
6293 (version-major+minor version) "/"
6294 name "-" version ".tar.xz"))
6295 (sha256
6296 (base32
6297 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6298 (build-system gnu-build-system)
6299 ;; libxml++-3.0.pc refers to all these.
6300 (propagated-inputs
6301 `(("libxml2" ,libxml2)
6302 ("glibmm" ,glibmm)))
6303 (native-inputs
6304 `(("perl" ,perl)
6305 ("pkg-config" ,pkg-config)))
6306 (home-page "http://libxmlplusplus.sourceforge.net/")
6307 (synopsis "C++ wrapper for XML parser library libxml2")
6308 (description
6309 "This package provides a C++ wrapper for the XML parser library
6310 libxml2.")
6311 (license license:lgpl2.1+)))
6312
6313 (define-public libxml++-2
6314 (package
6315 (inherit libxml++)
6316 (name "libxml++")
6317 (version "2.40.1")
6318 (source (origin
6319 (method url-fetch)
6320 (uri (string-append "mirror://gnome/sources/" name "/"
6321 (version-major+minor version) "/"
6322 name "-" version ".tar.xz"))
6323 (sha256
6324 (base32
6325 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6326
6327 (define-public gdm
6328 (package
6329 (name "gdm")
6330 (version "3.32.0")
6331 (source (origin
6332 (method url-fetch)
6333 (uri (string-append "mirror://gnome/sources/" name "/"
6334 (version-major+minor version) "/"
6335 name "-" version ".tar.xz"))
6336 (sha256
6337 (base32
6338 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
6339 (build-system glib-or-gtk-build-system)
6340 (arguments
6341 '(#:configure-flags
6342 `("--without-plymouth"
6343 "--disable-systemd-journal"
6344
6345 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6346 ;; instead of having to replace it (i.e., stopping the mingetty
6347 ;; service for TTY 1 before starting GDM).
6348 "--with-initial-vt=7"
6349
6350 ;; Use '/etc/environment' for locale settings instead of the
6351 ;; systemd-specific '/etc/locale.conf'.
6352 "--with-lang-file=/etc/environment"
6353
6354 ,(string-append "--with-udevdir="
6355 (assoc-ref %outputs "out") "/lib/udev")
6356
6357 "--localstatedir=/var"
6358 ,(string-append "--with-default-path="
6359 (string-join '("/run/setuid-programs"
6360 "/run/current-system/profile/bin"
6361 "/run/current-system/profile/sbin")
6362 ":"))
6363 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6364 ;; XDG_DATA_DIRS so that it finds its schemas.
6365 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6366 #:phases
6367 (modify-phases %standard-phases
6368 (add-before
6369 'configure 'pre-configure
6370 (lambda* (#:key inputs outputs #:allow-other-keys)
6371 ;; We don't have <systemd/sd-daemon.h>.
6372 (substitute* '("common/gdm-log.c"
6373 "daemon/gdm-server.c"
6374 "daemon/gdm-session-worker.c"
6375 "daemon/gdm-session-worker-job.c")
6376 (("#include <systemd/sd-daemon\\.h>") ""))
6377 ;; Use elogind for sd-login.
6378 (substitute* '("common/gdm-common.c"
6379 "daemon/gdm-manager.c"
6380 "libgdm/gdm-user-switching.c")
6381 (("#include <systemd/sd-login\\.h>")
6382 "#include <elogind/sd-login.h>"))
6383 ;; Check for elogind.
6384 (substitute* '("configure")
6385 (("libsystemd")
6386 "libelogind"))
6387 ;; Look for system-installed sessions in
6388 ;; /run/current-system/profile/share.
6389 (substitute* '("libgdm/gdm-sessions.c"
6390 "daemon/gdm-session.c"
6391 "daemon/gdm-display.c"
6392 "daemon/gdm-launch-environment.c")
6393 (("DATADIR \"/x")
6394 "\"/run/current-system/profile/share/x")
6395 (("DATADIR \"/wayland")
6396 "\"/run/current-system/profile/share/wayland")
6397 (("DATADIR \"/gnome")
6398 "\"/run/current-system/profile/share/gnome"))
6399 (let ((propagate '("GDM_CUSTOM_CONF"
6400 "GDM_DBUS_DAEMON"
6401 "GDM_X_SERVER"
6402 "GDM_X_SESSION"
6403 ;; XXX: Remove this once GNOME Shell is
6404 ;; a dependency of GDM.
6405 "XDG_DATA_DIRS")))
6406 (substitute* "daemon/gdm-session.c"
6407 (("set_up_session_environment \\(self\\);")
6408 (apply string-append
6409 "set_up_session_environment (self);\n"
6410 (map (lambda (name)
6411 (string-append
6412 "gdm_session_set_environment_variable "
6413 "(self, \"" name "\","
6414 "g_getenv (\"" name "\"));\n"))
6415 propagate)))))
6416 ;; Find the configuration file using an environment variable.
6417 (substitute* '("common/gdm-settings.c")
6418 (("GDM_CUSTOM_CONF")
6419 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6420 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6421 " : GDM_CUSTOM_CONF)")))
6422 ;; Use service-supplied path to X.
6423 (substitute* '("daemon/gdm-server.c")
6424 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6425 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6426 (substitute* '("daemon/gdm-x-session.c")
6427 (("\"dbus-daemon\"")
6428 "g_getenv (\"GDM_DBUS_DAEMON\")")
6429 (("X_SERVER")
6430 "g_getenv (\"GDM_X_SERVER\")")
6431 (("GDMCONFDIR \"/Xsession\"")
6432 "g_getenv (\"GDM_X_SESSION\")"))
6433 ;; Use an absolute path for GNOME Session.
6434 (substitute* "daemon/gdm-launch-environment.c"
6435 (("\"gnome-session\"")
6436 (string-append "\"" (assoc-ref inputs "gnome-session")
6437 "/bin/gnome-session\"")))
6438 ;; Do not automatically select the placeholder session.
6439 (substitute* "daemon/gdm-session.c"
6440 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6441 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6442 "(g_strcmp0(search_dirs[i], \""
6443 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6444 "\") == 0 && "
6445 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6446 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
6447 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
6448 #t))
6449 ;; GDM requires that there be at least one desktop entry
6450 ;; file. This phase installs a hidden one that simply
6451 ;; fails. This enables users to use GDM with a
6452 ;; '~/.xsession' script with no other desktop entry files.
6453 ;; See <https://bugs.gnu.org/35068>.
6454 (add-after 'install 'install-placeholder-desktop-entry
6455 (lambda* (#:key inputs outputs #:allow-other-keys)
6456 (let* ((out (assoc-ref outputs "out"))
6457 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6458 (fail (string-append sessions "/fail.desktop")))
6459 (mkdir-p sessions)
6460 (with-output-to-file fail
6461 (lambda ()
6462 (for-each
6463 display
6464 '("[Desktop Entry]\n"
6465 "Encoding=UTF-8\n"
6466 "Type=Application\n"
6467 "Name=Fail\n"
6468 "Comment=This session fails immediately.\n"
6469 "NoDisplay=true\n"
6470 "Exec=false\n"))))
6471 #t)))
6472 ;; GDM needs GNOME Session to run these applications. We link
6473 ;; their autostart files in `share/gdm/greeter/autostart'
6474 ;; because GDM explicitly tells GNOME Session to look there.
6475 ;;
6476 ;; XXX: GNOME Shell should be linked here too, but currently
6477 ;; GNOME Shell depends on GDM.
6478 (add-after 'install 'link-autostart-files
6479 (lambda* (#:key inputs outputs #:allow-other-keys)
6480 (let* ((out (assoc-ref outputs "out"))
6481 (autostart (string-append out "/share/gdm/"
6482 "greeter/autostart"))
6483 (settings (assoc-ref inputs "gnome-settings-daemon")))
6484 (mkdir-p autostart)
6485 (with-directory-excursion autostart
6486 (for-each (lambda (desktop)
6487 (symlink desktop (basename desktop)))
6488 (find-files (string-append settings "/etc/xdg"))))
6489 #t))))))
6490 (native-inputs
6491 `(("dconf" ,dconf)
6492 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6493 ("gobject-introspection" ,gobject-introspection)
6494 ("intltool" ,intltool)
6495 ("itstool" ,itstool)
6496 ("pkg-config" ,pkg-config)
6497 ("xmllint" ,libxml2)))
6498 (inputs
6499 `(("accountsservice" ,accountsservice)
6500 ("check" ,check) ; for testing
6501 ("elogind" ,elogind)
6502 ("gnome-session" ,gnome-session)
6503 ("gnome-settings-daemon" ,gnome-settings-daemon)
6504 ("gtk+" ,gtk+)
6505 ("iso-codes" ,iso-codes)
6506 ("libcanberra" ,libcanberra)
6507 ("linux-pam" ,linux-pam)))
6508 (synopsis "Display manager for GNOME")
6509 (home-page "https://wiki.gnome.org/Projects/GDM/")
6510 (description
6511 "GNOME Display Manager is a system service that is responsible for
6512 providing graphical log-ins and managing local and remote displays.")
6513 (license license:gpl2+)))
6514
6515 (define-public libgtop
6516 (package
6517 (name "libgtop")
6518 (version "2.40.0")
6519 (source (origin
6520 (method url-fetch)
6521 (uri (string-append "mirror://gnome/sources/libgtop/"
6522 (version-major+minor version) "/"
6523 "libgtop-" version ".tar.xz"))
6524 (sha256
6525 (base32
6526 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
6527 (build-system gnu-build-system)
6528 (native-inputs
6529 `(("gobject-introspection" ,gobject-introspection)
6530 ("intltool" ,intltool)
6531 ("perl" ,perl)
6532 ("pkg-config" ,pkg-config)))
6533 (propagated-inputs
6534 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6535 (synopsis "Portable system access library")
6536 (home-page "https://www.gnome.org/")
6537 (description
6538 "LibGTop is a library to get system specific data such as CPU and memory
6539 usage and information about running processes.")
6540 (license license:gpl2+)))
6541
6542 (define-public gnome-bluetooth
6543 (package
6544 (name "gnome-bluetooth")
6545 (version "3.32.1")
6546 (source (origin
6547 (method url-fetch)
6548 (uri (string-append "mirror://gnome/sources/" name "/"
6549 (version-major+minor version) "/"
6550 name "-" version ".tar.xz"))
6551 (sha256
6552 (base32
6553 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
6554 (build-system meson-build-system)
6555 (native-inputs
6556 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
6557 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6558 ("gobject-introspection" ,gobject-introspection)
6559 ("intltool" ,intltool)
6560 ("pkg-config" ,pkg-config)
6561 ("xmllint" ,libxml2)))
6562 (propagated-inputs
6563 ;; gnome-bluetooth-1.0.pc refers to all these.
6564 `(("glib" ,glib)
6565 ("gtk+" ,gtk+)))
6566 (inputs
6567 `(("eudev" ,eudev)
6568 ("libcanberra" ,libcanberra)
6569 ("libnotify" ,libnotify)))
6570 (synopsis "GNOME Bluetooth subsystem")
6571 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
6572 (description
6573 "This package contains tools for managing and manipulating Bluetooth
6574 devices using the GNOME desktop.")
6575 (license license:lgpl2.1+)))
6576
6577 (define-public gnome-control-center
6578 (package
6579 (name "gnome-control-center")
6580 (version "3.32.2")
6581 (source (origin
6582 (method url-fetch)
6583 (uri (string-append "mirror://gnome/sources/" name "/"
6584 (version-major+minor version) "/"
6585 name "-" version ".tar.xz"))
6586 (sha256
6587 (base32
6588 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
6589 (build-system meson-build-system)
6590 (arguments
6591 '(#:glib-or-gtk? #t
6592 #:configure-flags
6593 (list "-Dcheese=false"
6594 (string-append "-Dgnome_session_libexecdir="
6595 (assoc-ref %build-inputs "gnome-session")
6596 "/libexec"))
6597 #:phases
6598 (modify-phases %standard-phases
6599 (add-before 'configure 'patch-paths
6600 (lambda* (#:key inputs #:allow-other-keys)
6601 (let ((libc (assoc-ref inputs "libc"))
6602 (tzdata (assoc-ref inputs "tzdata"))
6603 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
6604 (nm-applet (assoc-ref inputs "network-manager-applet"))
6605 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
6606 (substitute* "panels/datetime/tz.h"
6607 (("/usr/share/zoneinfo/zone.tab")
6608 (string-append tzdata "/share/zoneinfo/zone.tab")))
6609 (substitute* "tests/datetime/test-endianess.c"
6610 (("/usr/share/locale")
6611 (string-append libc "/share/locale")))
6612 (substitute* "panels/region/cc-region-panel.c"
6613 (("\"gkbd-keyboard-display")
6614 (string-append "\"" libgnomekbd
6615 "/bin/gkbd-keyboard-display")))
6616 (substitute* '("panels/network/net-device-wifi.c"
6617 "panels/network/net-device.c"
6618 "panels/network/connection-editor/net-connection-editor.c")
6619 (("\"nm-connection-editor")
6620 (string-append "\"" nm-applet
6621 "/bin/nm-connection-editor")))
6622 (substitute* '("panels/user-accounts/run-passwd.c")
6623 (("/usr/bin/passwd")
6624 "/run/setuid-programs/passwd"))
6625 (substitute* "panels/info/cc-info-overview-panel.c"
6626 (("DATADIR \"/gnome/gnome-version.xml\"")
6627 (string-append "\"" gnome-desktop
6628 "/share/gnome/gnome-version.xml\"")))
6629 #t))))))
6630 (native-inputs
6631 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6632 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
6633 ("intltool" ,intltool)
6634 ("pkg-config" ,pkg-config)
6635 ("xsltproc" ,libxslt)
6636 ;; For tests
6637 ("hicolor-icon-theme" ,hicolor-icon-theme)
6638 ("python-dbusmock" ,python-dbusmock)
6639 ("xorg-server" ,xorg-server-for-tests)))
6640 (inputs
6641 `(("accountsservice" ,accountsservice)
6642 ("clutter-gtk" ,clutter-gtk)
6643 ("colord-gtk" ,colord-gtk)
6644 ("cups" ,cups)
6645 ("dconf" ,dconf)
6646 ("docbook-xsl" ,docbook-xsl)
6647 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
6648 ("gnome-bluetooth" ,gnome-bluetooth)
6649 ("gnome-desktop" ,gnome-desktop)
6650 ("gnome-online-accounts" ,gnome-online-accounts)
6651 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6652 ("gnome-session" ,gnome-session)
6653 ("gnome-settings-daemon" ,gnome-settings-daemon)
6654 ("grilo" ,grilo)
6655 ("gsound" ,gsound)
6656 ("ibus" ,ibus)
6657 ("libcanberra" ,libcanberra)
6658 ("libgnomekbd" ,libgnomekbd)
6659 ("libgudev" ,libgudev)
6660 ("libgtop" ,libgtop)
6661 ("libpwquality" ,libpwquality)
6662 ("libsecret" ,libsecret)
6663 ("libsoup" ,libsoup)
6664 ("libxml2" ,libxml2)
6665 ("libwacom" ,libwacom)
6666 ("mesa" ,mesa)
6667 ("mit-krb5" ,mit-krb5)
6668 ("modem-manager" ,modem-manager)
6669 ("network-manager-applet" ,network-manager-applet)
6670 ("polkit" ,polkit)
6671 ("pulseaudio" ,pulseaudio)
6672 ("smbclient" ,samba)
6673 ("tzdata" ,tzdata)
6674 ("udisks" ,udisks)
6675 ("upower" ,upower)))
6676 (synopsis "Utilities to configure the GNOME desktop")
6677 (home-page "https://www.gnome.org/")
6678 (description
6679 "This package contains configuration applets for the GNOME desktop,
6680 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
6681 properties, sound setup, desktop theme and background, user interface
6682 properties, screen resolution, and other GNOME parameters.")
6683 (license license:gpl2+)))
6684
6685 (define-public gnome-shell
6686 (package
6687 (name "gnome-shell")
6688 (version "3.32.2")
6689 (source (origin
6690 (method url-fetch)
6691 (uri (string-append "mirror://gnome/sources/" name "/"
6692 (version-major+minor version) "/"
6693 name "-" version ".tar.xz"))
6694 (sha256
6695 (base32
6696 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
6697 (patches (search-patches "gnome-shell-theme.patch"))
6698 (modules '((guix build utils)))
6699 (snippet
6700 #~(begin
6701 ;; Copy images for use on the GDM log-in screen.
6702 (copy-file #$(file-append %artwork-repository
6703 "/slim/0.x/background.png")
6704 "data/theme/guix-background.png")
6705 (copy-file #$(file-append %artwork-repository
6706 "/logo/Guix-horizontal-white.svg")
6707 "data/theme/guix-logo.svg")
6708 #t))))
6709 (build-system meson-build-system)
6710 (arguments
6711 `(#:glib-or-gtk? #t
6712 #:disallowed-references ((,glib "bin")
6713 ,inkscape ,libxslt
6714 ,ruby-sass)
6715 #:configure-flags
6716 (list "-Dsystemd=false"
6717 ;; Otherwise, the RUNPATH will lack the final path component.
6718 (string-append "-Dc_link_args=-Wl,-rpath="
6719 (assoc-ref %outputs "out")
6720 "/lib/gnome-shell"))
6721
6722 #:modules ((guix build meson-build-system)
6723 (guix build utils)
6724 (srfi srfi-1))
6725
6726 #:phases
6727 (modify-phases %standard-phases
6728 (add-after 'unpack 'fix-keysdir
6729 (lambda* (#:key outputs #:allow-other-keys)
6730 (let* ((out (assoc-ref outputs "out"))
6731 (keysdir (string-append
6732 out "/share/gnome-control-center/keybindings")))
6733 (substitute* "meson.build"
6734 (("keysdir =.*")
6735 (string-append "keysdir = '" keysdir "'\n")))
6736 #t)))
6737 (add-before 'configure 'convert-logo-to-png
6738 (lambda* (#:key inputs #:allow-other-keys)
6739 ;; Convert the logo from SVG to PNG.
6740 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
6741 "data/theme/guix-logo.svg")))
6742 (add-before 'configure 'record-absolute-file-names
6743 (lambda* (#:key inputs #:allow-other-keys)
6744 (substitute* "js/misc/ibusManager.js"
6745 (("'ibus-daemon'")
6746 (string-append "'" (assoc-ref inputs "ibus")
6747 "/bin/ibus-daemon'")))
6748 (substitute* "js/ui/status/keyboard.js"
6749 (("'gkbd-keyboard-display'")
6750 (string-append "'" (assoc-ref inputs "libgnomekbd")
6751 "/bin/gkbd-keyboard-display'")))
6752 #t))
6753 (add-before 'check 'pre-check
6754 (lambda* (#:key inputs #:allow-other-keys)
6755 ;; Tests require a running X server.
6756 (system "Xvfb :1 &")
6757 (setenv "DISPLAY" ":1")
6758 #t))
6759 (add-after 'install 'wrap-programs
6760 (lambda* (#:key inputs outputs #:allow-other-keys)
6761 (let ((out (assoc-ref outputs "out"))
6762 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6763 (python-path (getenv "PYTHONPATH")))
6764 (wrap-program (string-append out "/bin/gnome-shell")
6765 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6766 ;; FIXME: gnome-shell loads these libraries with unqualified
6767 ;; names only, so they need to be on LD_LIBRARY_PATH. The
6768 ;; alternative might be to patch gnome-shell.
6769 `("LD_LIBRARY_PATH" ":" prefix
6770 ,(map (lambda (pkg)
6771 (string-append (assoc-ref inputs pkg) "/lib"))
6772 '("gdk-pixbuf"
6773 "gnome-bluetooth" "librsvg" "libgweather"))))
6774 (for-each
6775 (lambda (prog)
6776 (wrap-program (string-append out "/bin/" prog)
6777 `("PYTHONPATH" ":" prefix (,python-path))
6778 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6779 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
6780 #t)))
6781 (replace 'glib-or-gtk-wrap
6782 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
6783 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
6784 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
6785 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
6786 ;; phase. Fix that since we don't need these.
6787 (wrap #:inputs (fold alist-delete inputs
6788 '("inkscape" "intltool" "glib:bin"))
6789 #:outputs outputs)))))))
6790 (native-inputs
6791 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6792 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6793 ("gobject-introspection" ,gobject-introspection)
6794 ("inkscape" ,inkscape)
6795 ("intltool" ,intltool)
6796 ("pkg-config" ,pkg-config)
6797 ("python" ,python)
6798 ("ruby-sass" ,ruby-sass)
6799 ("sassc" ,sassc)
6800 ("xsltproc" ,libxslt)
6801 ;; For tests
6802 ("xorg-server" ,xorg-server-for-tests)))
6803 (inputs
6804 `(("accountsservice" ,accountsservice)
6805 ("caribou" ,caribou)
6806 ("docbook-xsl" ,docbook-xsl)
6807 ("evolution-data-server" ,evolution-data-server)
6808 ("gcr" ,gcr)
6809 ("gdm" ,gdm)
6810 ("gdk-pixbuf" ,gdk-pixbuf+svg)
6811 ("gjs" ,gjs)
6812 ("gnome-bluetooth" ,gnome-bluetooth)
6813 ("gnome-desktop" ,gnome-desktop)
6814 ("gnome-settings-daemon" ,gnome-settings-daemon)
6815 ("gst-plugins-base" ,gst-plugins-base)
6816 ("ibus" ,ibus)
6817 ("libcanberra" ,libcanberra)
6818 ("libcroco" ,libcroco)
6819 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
6820 ("libgweather" ,libgweather)
6821 ("libsoup" ,libsoup)
6822 ("mesa-headers" ,mesa-headers)
6823 ("mutter" ,mutter)
6824 ("network-manager-applet" ,network-manager-applet)
6825 ("polkit" ,polkit)
6826 ("pulseaudio" ,pulseaudio)
6827 ("python-pygobject" ,python-pygobject)
6828 ("startup-notification" ,startup-notification)
6829 ("telepathy-logger" ,telepathy-logger)
6830 ("upower" ,upower)
6831 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
6832 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
6833 ("librsvg" ,librsvg)
6834 ("geoclue" ,geoclue)))
6835 (synopsis "Desktop shell for GNOME")
6836 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
6837 (description
6838 "GNOME Shell provides core user interface functions for the GNOME desktop,
6839 like switching to windows and launching applications.")
6840 (license license:gpl2+)))
6841
6842 (define-public gtk-vnc
6843 (package
6844 (name "gtk-vnc")
6845 (version "0.9.0")
6846 (source
6847 (origin
6848 (method url-fetch)
6849 (uri (string-append "mirror://gnome/sources/" name "/"
6850 (version-major+minor version) "/"
6851 name "-" version ".tar.xz"))
6852 (sha256
6853 (base32
6854 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
6855 (build-system gnu-build-system)
6856 (arguments
6857 '(#:configure-flags '("--with-gtk=3.0")))
6858 (propagated-inputs
6859 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
6860 (inputs
6861 `(("cyrus-sasl" ,cyrus-sasl)
6862 ("gnutls" ,gnutls)
6863 ("libgcrypt" ,libgcrypt)
6864 ("pulseaudio" ,pulseaudio)))
6865 (native-inputs
6866 `(("glib:bin" ,glib "bin")
6867 ("gobject-introspection" ,gobject-introspection)
6868 ("intltool" ,intltool)
6869 ("pkg-config" ,pkg-config)
6870 ("python-wrapper" ,python-wrapper)
6871 ("vala" ,vala)))
6872 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
6873 (synopsis "VNC viewer widget for GTK+")
6874 (description
6875 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
6876 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
6877 GTK-VNC implements client side RFB protocol and authentication extensions such
6878 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
6879 (license license:lgpl2.1+)))
6880
6881 (define-public gnome-autoar
6882 (package
6883 (name "gnome-autoar")
6884 (version "0.2.3")
6885 (source (origin
6886 (method url-fetch)
6887 (uri (string-append "mirror://gnome/sources/" name "/"
6888 (version-major+minor version) "/"
6889 name "-" version ".tar.xz"))
6890 (sha256
6891 (base32
6892 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
6893 (build-system glib-or-gtk-build-system)
6894 (native-inputs
6895 `(("gnome-common" ,gnome-common)
6896 ("gobject-introspection" ,gobject-introspection)
6897 ("pkg-config" ,pkg-config)))
6898 (propagated-inputs
6899 `(("libarchive" ,libarchive))) ; XXX document why
6900 (inputs
6901 `(("gtk+" ,gtk+)))
6902 (synopsis "Archives integration support for GNOME")
6903 (home-page "https://git.gnome.org/browse/gnome-autoar/")
6904 (description
6905 "GNOME Autoar is a library which makes creating and extracting archives
6906 easy, safe, and automatic.")
6907 (license license:lgpl2.1+)))
6908
6909 (define-public tracker
6910 (package
6911 (name "tracker")
6912 (version "2.2.2")
6913 (source (origin
6914 (method url-fetch)
6915 (uri (string-append "mirror://gnome/sources/tracker/"
6916 (version-major+minor version) "/"
6917 "tracker-" version ".tar.xz"))
6918 (sha256
6919 (base32
6920 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
6921 (build-system meson-build-system)
6922 (arguments
6923 `(#:glib-or-gtk? #t
6924 #:configure-flags
6925 ;; Otherwise, the RUNPATH will lack the final path component.
6926 (list (string-append "-Dc_link_args=-Wl,-rpath="
6927 (assoc-ref %outputs "out") "/lib:"
6928 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
6929 #:phases
6930 (modify-phases %standard-phases
6931 (add-after 'unpack 'disable-broken-tests
6932 (lambda _
6933 ;; These fail because the SPARQL backend could not be loaded.
6934 ;; That's because /etc/machine-id is missing, but
6935 ;; DBUS_FATAL_WARNINGS does not help here.
6936 (substitute* "tests/libtracker-sparql/meson.build"
6937 (("'sparql',") ""))
6938 (substitute* "tests/tracker-steroids/meson.build"
6939 (("test\\(.*") ""))
6940 #t))
6941 ;; Two tests fail if LANG is not set.
6942 (add-before 'check 'pre-check
6943 (lambda _
6944 (setenv "LANG" "en_US.UTF-8")
6945 ;; For the missing /etc/machine-id.
6946 (setenv "DBUS_FATAL_WARNINGS" "0")
6947 #t)))))
6948 (native-inputs
6949 `(("glib:bin" ,glib "bin")
6950 ("gnome-common" ,gnome-common)
6951 ("gobject-introspection" ,gobject-introspection)
6952 ("python-pygobject" ,python-pygobject)
6953 ("intltool" ,intltool)
6954 ("pkg-config" ,pkg-config)
6955 ("vala" ,vala)))
6956 (inputs
6957 `(("gtk+" ,gtk+)
6958 ("dbus" ,dbus)
6959 ("sqlite" ,sqlite)
6960 ("python" ,python)
6961 ("poppler" ,poppler)
6962 ("libpng" ,libpng)
6963 ("libtiff" ,libtiff)
6964 ("zlib" ,zlib)
6965 ("libxml2" ,libxml2)
6966 ("libunistring" ,libunistring)
6967 ("json-glib" ,json-glib)
6968 ("openjpeg" ,openjpeg-1)
6969 ("libseccomp" ,libseccomp)
6970 ("libsoup" ,libsoup)
6971 ("libuuid" ,util-linux)
6972 ("network-manager" ,network-manager)))
6973 (synopsis "Metadata database, indexer and search tool")
6974 (home-page "https://wiki.gnome.org/Projects/Tracker")
6975 (description
6976 "Tracker is an advanced framework for first class objects with associated
6977 metadata and tags. It provides a one stop solution for all metadata, tags,
6978 shared object databases, search tools and indexing.")
6979 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
6980 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
6981 (license (list license:gpl2+
6982 license:lgpl2.1+
6983 license:lgpl2.0+))))
6984
6985 (define-public tracker-miners
6986 (package
6987 (name "tracker-miners")
6988 (version "2.2.2")
6989 (source (origin
6990 (method url-fetch)
6991 (uri (string-append "mirror://gnome/sources/tracker-miners/"
6992 (version-major+minor version)
6993 "/tracker-miners-" version ".tar.xz"))
6994 (sha256
6995 (base32
6996 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
6997 (build-system meson-build-system)
6998 (arguments
6999 `(#:glib-or-gtk? #t
7000 #:configure-flags
7001 (list "-Dminer_rss=false" ; libgrss is required.
7002 ;; Ensure the RUNPATH contains all installed library locations.
7003 (string-append "-Dc_link_args=-Wl,-rpath="
7004 (assoc-ref %outputs "out")
7005 "/lib/tracker-miners-2.0")
7006 ;; TODO: Enable functional tests. Currently, the following error
7007 ;; appears:
7008 ;; Exception: The functional tests require DConf to be the default
7009 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7010 "-Dfunctional_tests=false")))
7011 (native-inputs
7012 `(("dbus" ,dbus)
7013 ("intltool" ,intltool)
7014 ("glib:bin" ,glib "bin")
7015 ("gobject-introspection" ,gobject-introspection)
7016 ("pkg-config" ,pkg-config)
7017 ("python-pygobject" ,python-pygobject)))
7018 (inputs
7019 `(("exempi" ,exempi)
7020 ("ffmpeg" ,ffmpeg)
7021 ("flac" ,flac)
7022 ("giflib" ,giflib)
7023 ("glib" ,glib)
7024 ("gstreamer" ,gstreamer)
7025 ("icu4c" ,icu4c)
7026 ("libcue" ,libcue)
7027 ("libexif" ,libexif)
7028 ("libgsf" ,libgsf)
7029 ("libgxps" ,libgxps)
7030 ("libiptcdata" ,libiptcdata)
7031 ("libjpeg" ,libjpeg)
7032 ("libosinfo" ,libosinfo)
7033 ("libpng" ,libpng)
7034 ("libseccomp" ,libseccomp)
7035 ("libtiff" ,libtiff)
7036 ("libvorbis" ,libvorbis)
7037 ("libxml2" ,libxml2)
7038 ("poppler" ,poppler)
7039 ("taglib" ,taglib)
7040 ("totem-pl-parser" ,totem-pl-parser)
7041 ("tracker" ,tracker)
7042 ("upower" ,upower)
7043 ("zlib" ,zlib)))
7044 (synopsis "Metadata database, indexer and search tool")
7045 (home-page "https://wiki.gnome.org/Projects/Tracker")
7046 (description
7047 "Tracker is an advanced framework for first class objects with associated
7048 metadata and tags. It provides a one stop solution for all metadata, tags,
7049 shared object databases, search tools and indexing.")
7050 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7051 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7052 (license (list license:gpl2+
7053 license:lgpl2.1+
7054 license:lgpl2.0+))))
7055
7056 (define-public nautilus
7057 (package
7058 (name "nautilus")
7059 (version "3.32.3")
7060 (source (origin
7061 (method url-fetch)
7062 (uri (string-append "mirror://gnome/sources/" name "/"
7063 (version-major+minor version) "/"
7064 name "-" version ".tar.xz"))
7065 (sha256
7066 (base32
7067 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
7068 (build-system meson-build-system)
7069 (arguments
7070 '(#:glib-or-gtk? #t
7071 ;; XXX: FAIL: check-nautilus
7072 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7073 #:tests? #f))
7074 (native-inputs
7075 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7076 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7077 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7078 ("gobject-introspection" ,gobject-introspection)
7079 ("intltool" ,intltool)
7080 ("pkg-config" ,pkg-config)))
7081 (inputs
7082 `(("dconf" ,dconf)
7083 ("gexiv2" ,gexiv2)
7084 ("gvfs" ,gvfs)
7085 ("exempi" ,exempi)
7086 ("gnome-desktop" ,gnome-desktop)
7087 ("gnome-autoar" ,gnome-autoar)
7088 ("gst-plugins-base" ,gst-plugins-base)
7089 ("libseccomp" ,libseccomp)
7090 ("libselinux" ,libselinux)
7091 ("tracker" ,tracker)
7092 ("tracker-miners" ,tracker-miners)
7093 ;; XXX: gtk+ is required by libnautilus-extension.pc
7094 ;;
7095 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7096 ;; package. See:
7097 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7098 ("gtk+" ,gtk+)
7099 ("libexif" ,libexif)
7100 ("libxml2" ,libxml2)))
7101 (synopsis "File manager for GNOME")
7102 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7103 (description
7104 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7105 design and behaviour, giving the user a simple way to navigate and manage its
7106 files.")
7107 (license license:gpl2+)))
7108
7109 (define-public baobab
7110 (package
7111 (name "baobab")
7112 (version "3.32.0")
7113 (source (origin
7114 (method url-fetch)
7115 (uri (string-append
7116 "mirror://gnome/sources/" name "/"
7117 (version-major+minor version) "/"
7118 name "-" version ".tar.xz"))
7119 (sha256
7120 (base32
7121 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7122 (build-system meson-build-system)
7123 (arguments
7124 '(#:glib-or-gtk? #t))
7125 (native-inputs
7126 `(("intltool" ,intltool)
7127 ("pkg-config" ,pkg-config)
7128 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7129 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7130 ("itstool" ,itstool)
7131 ("xmllint" ,libxml2)
7132 ("glib" ,glib "bin")
7133 ("vala" ,vala)))
7134 (inputs
7135 `(("gtk+" ,gtk+)))
7136 (synopsis "Disk usage analyzer for GNOME")
7137 (description
7138 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7139 usage in the GNOME desktop environment. It can easily scan device volumes or
7140 a specific user-requested directory branch (local or remote). Once the scan
7141 is complete it provides a graphical representation of each selected folder.")
7142 (home-page "https://wiki.gnome.org/Apps/Baobab")
7143 (license license:gpl2+)))
7144
7145 (define-public gnome-backgrounds
7146 (package
7147 (name "gnome-backgrounds")
7148 (version "3.32.0")
7149 (source
7150 (origin
7151 (method url-fetch)
7152 (uri (string-append "mirror://gnome/sources/" name "/"
7153 (version-major+minor version) "/"
7154 name "-" version ".tar.xz"))
7155 (sha256
7156 (base32
7157 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
7158 (build-system meson-build-system)
7159 (native-inputs
7160 `(("intltool" ,intltool)))
7161 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7162 (synopsis "Background images for the GNOME desktop")
7163 (description
7164 "GNOME backgrounds package contains a collection of graphics files which
7165 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7166 the package creates the proper framework and directory structure so that you
7167 can add your own files to the collection.")
7168 (license (list license:gpl2+
7169 license:cc-by2.0
7170 license:cc-by-sa2.0
7171 license:cc-by-sa3.0))))
7172
7173 (define-public gnome-screenshot
7174 (package
7175 (name "gnome-screenshot")
7176 (version "3.32.0")
7177 (source
7178 (origin
7179 (method url-fetch)
7180 (uri (string-append "mirror://gnome/sources/" name "/"
7181 (version-major+minor version) "/"
7182 name "-" version ".tar.xz"))
7183 (sha256
7184 (base32
7185 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
7186 (build-system meson-build-system)
7187 (native-inputs
7188 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7189 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7190 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7191 ("intltool" ,intltool)
7192 ("appstream-glib" ,appstream-glib)
7193 ("pkg-config" ,pkg-config)))
7194 (inputs
7195 `(("gtk+" ,gtk+)
7196 ("libcanberra" ,libcanberra)
7197 ("libx11" ,libx11)
7198 ("libxext" ,libxext)))
7199 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7200 (synopsis "Take pictures of your screen")
7201 (description
7202 "GNOME Screenshot is a utility used for taking screenshots of the entire
7203 screen, a window or a user defined area of the screen, with optional
7204 beautifying border effects.")
7205 (license license:gpl2+)))
7206
7207 (define-public dconf-editor
7208 (package
7209 (name "dconf-editor")
7210 (version "3.32.0")
7211 (source
7212 (origin
7213 (method url-fetch)
7214 (uri (string-append "mirror://gnome/sources/" name "/"
7215 (version-major+minor version) "/"
7216 name "-" version ".tar.xz"))
7217 (sha256
7218 (base32
7219 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
7220 (build-system meson-build-system)
7221 (arguments
7222 '(#:phases (modify-phases %standard-phases
7223 (add-before 'configure 'set-glib-minimum-version
7224 (lambda _
7225 ;; Change the minimum required GLib version so that
7226 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7227 ;; do that, it complains that "55" is not an even
7228 ;; number. See <https://bugs.gnu.org/37503>.
7229 (substitute* "editor/meson.build"
7230 (("2\\.55\\.1") "2.60.0"))
7231 #t)))))
7232 (native-inputs
7233 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7234 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7235 ("intltool" ,intltool)
7236 ("pkg-config" ,pkg-config)
7237 ("vala" ,vala)))
7238 (inputs
7239 `(("dconf" ,dconf)
7240 ("gtk+" ,gtk+)
7241 ("libxml2" ,libxml2)))
7242 (home-page "https://git.gnome.org/browse/dconf-editor")
7243 (synopsis "Graphical editor for GNOME's dconf configuration system")
7244 (description
7245 "Dconf-editor is a graphical tool for browsing and editing the dconf
7246 configuration system for GNOME. It allows users to configure desktop
7247 software that do not provide their own configuration interface.")
7248 (license license:lgpl2.1+)))
7249
7250 (define-public gnome-default-applications
7251 (package
7252 (name "gnome-default-applications")
7253 (version "0")
7254 (build-system trivial-build-system)
7255 (source #f)
7256 (propagated-inputs
7257 `(("nautilus" ,nautilus)
7258 ("evince" ,evince)))
7259 (arguments
7260 `(#:modules ((guix build utils))
7261 #:builder
7262 (begin
7263 (use-modules (guix build utils))
7264 (let* ((out (assoc-ref %outputs "out"))
7265 (apps (string-append out "/share/applications")))
7266 (mkdir-p apps)
7267 (call-with-output-file (string-append apps "/defaults.list")
7268 (lambda (port)
7269 (format port "[Default Applications]\n")
7270 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7271 (format port "application/pdf=evince.desktop\n")
7272 (format port "application/postscript=evince.desktop\n")))
7273 #t))))
7274 (synopsis "Default MIME type associations for the GNOME desktop")
7275 (description
7276 "Given many installed packages which might handle a given MIME type, a
7277 user running the GNOME desktop probably has some preferences: for example,
7278 that folders be opened by default by the Nautilus file manager, not the Baobab
7279 disk usage analyzer. This package establishes that set of default MIME type
7280 associations for GNOME.")
7281 (license license:gpl3+)
7282 (home-page #f)))
7283
7284 (define-public gnome
7285 (package
7286 (name "gnome")
7287 (version (package-version gnome-shell))
7288 (source #f)
7289 (build-system trivial-build-system)
7290 (arguments '(#:builder (begin (mkdir %output) #t)))
7291 (propagated-inputs
7292 ;; TODO: Add or remove packages according to:
7293 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7294 `(
7295 ;; GNOME-Core-OS-Services
7296 ("accountsservice" ,accountsservice)
7297 ("network-manager" ,network-manager)
7298 ("packagekit" ,packagekit)
7299 ("upower" ,upower)
7300 ;; GNOME-Core-Shell
7301 ("adwaita-icon-theme" ,adwaita-icon-theme)
7302 ("gdm" ,gdm)
7303 ("glib-networking" ,glib-networking)
7304 ("gnome-backgrounds" ,gnome-backgrounds)
7305 ("gnome-bluetooth" ,gnome-bluetooth)
7306 ("gnome-control-center" ,gnome-control-center)
7307 ("gnome-desktop" ,gnome-desktop)
7308 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7309 ("gnome-keyring" ,gnome-keyring)
7310 ("gnome-menus" ,gnome-menus)
7311 ("gnome-session" ,gnome-session)
7312 ("gnome-settings-daemon" ,gnome-settings-daemon)
7313 ("gnome-shell-extensions" ,gnome-shell-extensions)
7314 ("gnome-shell" ,gnome-shell)
7315 ("gnome-themes-extra" ,gnome-themes-extra)
7316 ("gnome-user-docs" ,gnome-user-docs)
7317 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7318 ("gvfs" ,gvfs)
7319 ("mutter" ,mutter)
7320 ("orca" ,orca)
7321 ;; GNOME-Core-Utilities
7322 ("baobab" ,baobab)
7323 ("cheese" ,cheese)
7324 ("eog" ,eog)
7325 ("epiphany" ,epiphany)
7326 ("evince" ,evince)
7327 ("file-roller" ,file-roller)
7328 ("gedit" ,gedit)
7329 ("gnome-calculator" ,gnome-calculator)
7330 ("gnome-calendar" ,gnome-calendar)
7331 ("gnome-characters" ,gnome-characters)
7332 ("gnome-clocks" ,gnome-clocks)
7333 ("gnome-contacts" ,gnome-contacts)
7334 ("gnome-disk-utility" ,gnome-disk-utility)
7335 ("gnome-font-viewer" ,gnome-font-viewer)
7336 ("gnome-maps" ,gnome-maps)
7337 ("gnome-screenshot" ,gnome-screenshot)
7338 ("gnome-system-monitor" ,gnome-system-monitor)
7339 ("gnome-terminal" ,gnome-terminal)
7340 ("nautilus" ,nautilus)
7341 ("simple-scan" ,simple-scan)
7342 ("totem" ,totem)
7343 ("yelp" ,yelp)
7344 ;; Others
7345 ("hicolor-icon-theme" ,hicolor-icon-theme)
7346 ("gnome-online-accounts" ,gnome-online-accounts)))
7347 (synopsis "The GNU desktop environment")
7348 (home-page "https://www.gnome.org/")
7349 (description
7350 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7351 applications for browsing the web, editing text and images, creating
7352 documents and diagrams, playing media, scanning, and much more.")
7353 (license license:gpl2+)))
7354
7355 (define-public byzanz
7356 ;; The last stable release of Byzanz was in 2011, but there have been many
7357 ;; useful commits made to the Byzanz repository since then that it would be
7358 ;; silly to use such an old release.
7359 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7360 (package
7361 (name "byzanz")
7362 (version (string-append "0.2-1." (string-take commit 7)))
7363 (source (origin
7364 (method git-fetch)
7365 (uri (git-reference
7366 (url "https://git.gnome.org/browse/byzanz")
7367 (commit commit)))
7368 (file-name (string-append name "-" version "-checkout"))
7369 (sha256
7370 (base32
7371 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7372 (build-system glib-or-gtk-build-system)
7373 (arguments
7374 '(#:phases
7375 (modify-phases %standard-phases
7376 (replace 'bootstrap
7377 (lambda _
7378 ;; The build system cleverly detects that we're not building from
7379 ;; a release tarball and turns on -Werror for GCC.
7380 ;; Unsurprisingly, there is a warning during compilation that
7381 ;; causes the build to fail unnecessarily, so we remove the flag.
7382 (substitute* '("configure.ac")
7383 (("-Werror") ""))
7384 ;; The autogen.sh script in gnome-common will run ./configure
7385 ;; by default, which is problematic because source shebangs
7386 ;; have not yet been patched.
7387 (setenv "NOCONFIGURE" "t")
7388 (zero? (system* "sh" "autogen.sh")))))))
7389 (native-inputs
7390 `(("autoconf" ,autoconf)
7391 ("automake" ,automake)
7392 ("gnome-common" ,gnome-common)
7393 ("intltool" ,intltool)
7394 ("libtool" ,libtool)
7395 ("pkg-config" ,pkg-config)
7396 ("which" ,which)))
7397 (inputs
7398 `(("glib" ,glib)
7399 ("gstreamer" ,gstreamer)
7400 ("gst-plugins-base" ,gst-plugins-base)
7401 ("gtk+" ,gtk+)))
7402 (synopsis "Desktop recording program")
7403 (description "Byzanz is a simple desktop recording program with a
7404 command-line interface. It can record part or all of an X display for a
7405 specified duration and save it as a GIF encoded animated image file.")
7406 (home-page "https://git.gnome.org/browse/byzanz")
7407 (license license:gpl2+))))
7408
7409 (define-public gsound
7410 (package
7411 (name "gsound")
7412 (version "1.0.2")
7413 (source (origin
7414 (method url-fetch)
7415 (uri (string-append "mirror://gnome/sources/" name "/"
7416 (version-major+minor version) "/"
7417 name "-" version ".tar.xz"))
7418 (sha256
7419 (base32
7420 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7421 (build-system glib-or-gtk-build-system)
7422 (native-inputs
7423 `(("pkg-config" ,pkg-config)
7424 ("gobject-introspection" ,gobject-introspection)
7425 ("vala" ,vala)))
7426 (inputs
7427 `(("glib" ,glib)
7428 ("libcanberra" ,libcanberra)))
7429 (home-page "https://wiki.gnome.org/Projects/GSound")
7430 (synopsis "GObject wrapper for libcanberra")
7431 (description
7432 "GSound is a small library for playing system sounds. It's designed to be
7433 used via GObject Introspection, and is a thin wrapper around the libcanberra C
7434 library.")
7435 (license license:lgpl2.1+)))
7436
7437 (define-public libzapojit
7438 (package
7439 (name "libzapojit")
7440 (version "0.0.3")
7441 (source (origin
7442 (method url-fetch)
7443 (uri (string-append "mirror://gnome/sources/" name "/"
7444 (version-major+minor version) "/"
7445 name "-" version ".tar.xz"))
7446 (sha256
7447 (base32
7448 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7449 (build-system gnu-build-system)
7450 (native-inputs
7451 `(("gobject-introspection" ,gobject-introspection)
7452 ("intltool" ,intltool)
7453 ("pkg-config" ,pkg-config)))
7454 (inputs
7455 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7456 ("json-glib" ,json-glib)
7457 ("rest" ,rest)))
7458 (home-page "https://wiki.gnome.org/Projects/Zapojit")
7459 (synopsis "Library for accessing SkyDrive and Hotmail")
7460 (description
7461 "Libzapojit is a GLib-based library for accessing online service APIs of
7462 Microsoft SkyDrive and Hotmail, using their REST protocols.")
7463 (license license:lgpl2.1+)))
7464
7465 (define-public gnome-clocks
7466 (package
7467 (name "gnome-clocks")
7468 (version "3.32.0")
7469 (source (origin
7470 (method url-fetch)
7471 (uri (string-append "mirror://gnome/sources/" name "/"
7472 (version-major+minor version) "/"
7473 name "-" version ".tar.xz"))
7474 (sha256
7475 (base32
7476 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
7477 (build-system meson-build-system)
7478 (arguments
7479 '(#:glib-or-gtk? #t))
7480 (native-inputs
7481 `(("vala" ,vala)
7482 ("pkg-config" ,pkg-config)
7483 ("glib" ,glib "bin") ; for glib-compile-resources
7484 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7485 ("desktop-file-utils" ,desktop-file-utils)
7486 ("gettext" ,gettext-minimal)
7487 ("itstool" ,itstool)))
7488 (inputs
7489 `(("glib" ,glib)
7490 ("gtk+" ,gtk+)
7491 ("gsound" ,gsound)
7492 ("geoclue" ,geoclue)
7493 ("geocode-glib" ,geocode-glib)
7494 ("libgweather" ,libgweather)
7495 ("gnome-desktop" ,gnome-desktop)))
7496 (home-page "https://wiki.gnome.org/Apps/Clocks")
7497 (synopsis "GNOME's clock application")
7498 (description
7499 "GNOME Clocks is a simple clocks application designed to fit the GNOME
7500 desktop. It supports world clock, stop watch, alarms, and count down timer.")
7501 (license license:gpl3+)))
7502
7503 (define-public gnome-calendar
7504 (package
7505 (name "gnome-calendar")
7506 (version "3.32.2")
7507 (source (origin
7508 (method url-fetch)
7509 (uri (string-append "mirror://gnome/sources/" name "/"
7510 (version-major+minor version) "/"
7511 name "-" version ".tar.xz"))
7512 (sha256
7513 (base32
7514 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
7515 (build-system meson-build-system)
7516 (arguments
7517 '(#:glib-or-gtk? #t
7518 ;; gnome-calendar has to be installed before the tests can be run
7519 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
7520 #:tests? #f))
7521 (native-inputs
7522 `(("gettext" ,gettext-minimal)
7523 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
7524 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7525 ("pkg-config" ,pkg-config)))
7526 (inputs
7527 `(("evolution-data-server" ,evolution-data-server)
7528 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7529 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7530 ("libdazzle" ,libdazzle)
7531 ("libedataserverui" ,evolution-data-server)
7532 ("libgweather" ,libgweather)
7533 ("geoclue" ,geoclue)))
7534 (home-page "https://wiki.gnome.org/Apps/Calendar")
7535 (synopsis "GNOME's calendar application")
7536 (description
7537 "GNOME Calendar is a simple calendar application designed to fit the GNOME
7538 desktop. It supports multiple calendars, month, week and year view.")
7539 (license license:gpl3+)))
7540
7541 (define-public gnome-todo
7542 (package
7543 (name "gnome-todo")
7544 (version "3.28.1")
7545 (source (origin
7546 (method url-fetch)
7547 (uri (string-append "mirror://gnome/sources/" name "/"
7548 (version-major+minor version) "/"
7549 name "-" version ".tar.xz"))
7550 (sha256
7551 (base32
7552 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
7553 (build-system meson-build-system)
7554 (arguments
7555 '(#:glib-or-gtk? #t
7556 #:phases (modify-phases %standard-phases
7557 (add-after
7558 'install 'wrap-gnome-todo
7559 (lambda* (#:key inputs outputs #:allow-other-keys)
7560 (let ((out (assoc-ref outputs "out"))
7561 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7562 (python-path (getenv "PYTHONPATH")))
7563 (wrap-program (string-append out "/bin/gnome-todo")
7564 ;; XXX: gi plugins are broken.
7565 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
7566 ;; For plugins.
7567 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7568 `("PYTHONPATH" ":" prefix (,python-path))))
7569 #t)))))
7570 (native-inputs
7571 `(("gettext" ,gettext-minimal)
7572 ("gobject-introspection" ,gobject-introspection)
7573 ("glib:bin" ,glib "bin") ; For glib-compile-resources
7574 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7575 ("pkg-config" ,pkg-config)))
7576 (inputs
7577 `(("rest" ,rest) ; For Todoist plugin
7578 ("json-glib" ,json-glib) ; For Todoist plugin
7579 ("libedataserverui" ,evolution-data-server)
7580 ("libical" ,libical)
7581 ("libpeas" ,libpeas)
7582 ("python-pygobject" ,python-pygobject)
7583 ("evolution-data-server" ,evolution-data-server)
7584 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7585 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
7586 (home-page "https://wiki.gnome.org/Apps/Todo")
7587 (synopsis "GNOME's ToDo Application")
7588 (description
7589 "GNOME To Do is a simplistic personal task manager designed to perfectly
7590 fit the GNOME desktop.")
7591 (license license:gpl3+)))
7592
7593 (define-public gnome-dictionary
7594 (package
7595 (name "gnome-dictionary")
7596 (version "3.26.1")
7597 (source (origin
7598 (method url-fetch)
7599 (uri (string-append "mirror://gnome/sources/" name "/"
7600 (version-major+minor version) "/"
7601 name "-" version ".tar.xz"))
7602 (sha256
7603 (base32
7604 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
7605 (build-system meson-build-system)
7606 (arguments '(#:glib-or-gtk? #t
7607 #:phases (modify-phases %standard-phases
7608 (add-after 'unpack 'patch-install-script
7609 (lambda _
7610 ;; This script attempts to compile glib schemas
7611 ;; and create an empty MIME database. We do
7612 ;; that elsewhere, so prevent it from running.
7613 (substitute* "build-aux/post-install.sh"
7614 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
7615 #t)))))
7616 (native-inputs
7617 `(("glib:bin" ,glib "bin")
7618 ("gobject-introspection" ,gobject-introspection)
7619 ("intltool" ,intltool)
7620 ("itstool" ,itstool)
7621 ("pkg-config" ,pkg-config)
7622 ("xmllint" ,libxml2)))
7623 (inputs
7624 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7625 ("gtk+" ,gtk+)))
7626 (home-page "https://wiki.gnome.org/Apps/Dictionary")
7627 (synopsis "Look up words in dictionary sources")
7628 (description
7629 "GNOME Dictionary can look for the definition or translation of a word in
7630 existing databases over the internet.")
7631 (license license:gpl3+)))
7632
7633 (define-public gnome-tweaks
7634 (package
7635 (name "gnome-tweaks")
7636 (version "3.32.0")
7637 (source (origin
7638 (method url-fetch)
7639 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
7640 (version-major+minor version) "/"
7641 "gnome-tweaks-" version ".tar.xz"))
7642 (patches
7643 (list (search-patch "gnome-tweaks-search-paths.patch")))
7644 (sha256
7645 (base32
7646 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
7647 (build-system meson-build-system)
7648 (arguments
7649 `(#:glib-or-gtk? #t
7650 #:configure-flags '("-Dlocalstatedir=/tmp"
7651 "-Dsysconfdir=/tmp")
7652 #:imported-modules ((guix build python-build-system)
7653 ,@%meson-build-system-modules)
7654 #:phases
7655 (modify-phases %standard-phases
7656 (add-after 'install 'wrap
7657 (@@ (guix build python-build-system) wrap))
7658 (add-after 'wrap 'wrap-gi-typelib
7659 (lambda* (#:key inputs outputs #:allow-other-keys)
7660 (let ((out (assoc-ref outputs "out"))
7661 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7662 (wrap-program (string-append out "/bin/gnome-tweaks")
7663 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7664 #t)))))
7665 (native-inputs
7666 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7667 ("intltool" ,intltool)
7668 ("pkg-config" ,pkg-config)))
7669 (inputs
7670 `(("gnome-desktop" ,gnome-desktop)
7671 ("gtk+" ,gtk+)
7672 ("gobject-introspection" ,gobject-introspection)
7673 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7674 ("libnotify" ,libnotify)
7675 ("libsoup" ,libsoup)
7676 ("nautilus" ,nautilus)
7677 ("python" ,python)
7678 ("python-pygobject" ,python-pygobject)))
7679 (synopsis "Customize advanced GNOME 3 options")
7680 (home-page "https://wiki.gnome.org/Apps/Tweaks")
7681 (description
7682 "GNOME Tweaks allows adjusting advanced configuration settings in
7683 GNOME 3. This includes things like the fonts used in user interface elements,
7684 alternative user interface themes, changes in window management behavior,
7685 GNOME Shell appearance and extension, etc.")
7686 (license license:gpl3+)))
7687
7688 ;; This package has been renamed by upstream.
7689 (define-public gnome-tweak-tool
7690 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
7691
7692 (define-public gnome-shell-extensions
7693 (package
7694 (name "gnome-shell-extensions")
7695 (version "3.32.1")
7696 (source (origin
7697 (method url-fetch)
7698 (uri (string-append "mirror://gnome/sources/" name "/"
7699 (version-major+minor version) "/"
7700 name "-" version ".tar.xz"))
7701 (sha256
7702 (base32
7703 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
7704 (build-system meson-build-system)
7705 (arguments
7706 '(#:configure-flags '("-Dextension_set=all")))
7707 (native-inputs
7708 `(("glib:bin" ,glib "bin")
7709 ("intltool" ,intltool)
7710 ("pkg-config" ,pkg-config)))
7711 (propagated-inputs
7712 `(("glib" ,glib)))
7713 (synopsis "Extensions for GNOME Shell")
7714 (description "GNOME Shell extensions modify and extend GNOME Shell
7715 functionality and behavior.")
7716 (home-page "https://extensions.gnome.org/")
7717 (license license:gpl3+)))
7718
7719 (define-public arc-theme
7720 (package
7721 (name "arc-theme")
7722 (version "20190917")
7723 (source (origin
7724 (method git-fetch)
7725 (uri (git-reference
7726 (url "https://github.com/NicoHood/arc-theme.git")
7727 (commit version)))
7728 (file-name (git-file-name name version))
7729 (sha256
7730 (base32
7731 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
7732 (build-system gnu-build-system)
7733 (arguments
7734 '(#:phases
7735 (modify-phases %standard-phases
7736 ;; autogen.sh calls configure at the end of the script.
7737 (replace 'bootstrap
7738 (lambda _ (invoke "autoreconf" "-vfi"))))))
7739 (native-inputs
7740 `(("autoconf" ,autoconf)
7741 ("automake" ,automake)
7742 ("glib" ,glib "bin") ; for glib-compile-resources
7743 ("gnome-shell" ,gnome-shell)
7744 ("gtk+" ,gtk+)
7745 ("inkscape" ,inkscape)
7746 ("optipng" ,optipng)
7747 ("pkg-config" ,pkg-config)
7748 ("sassc" ,sassc)))
7749 (synopsis "A flat GTK+ theme with transparent elements")
7750 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
7751 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
7752 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
7753 (home-page "https://github.com/horst3180/arc-theme")
7754 ;; No "or later" language found.
7755 (license license:gpl3+)))
7756
7757 (define-public faba-icon-theme
7758 (package
7759 (name "faba-icon-theme")
7760 (version "4.3")
7761 (source
7762 (origin
7763 (method git-fetch)
7764 (uri (git-reference
7765 (url "https://github.com/snwh/faba-icon-theme.git")
7766 (commit (string-append "v" version))))
7767 (file-name (git-file-name name version))
7768 (sha256
7769 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
7770 (build-system meson-build-system)
7771 (arguments
7772 `(#:phases
7773 (modify-phases %standard-phases
7774 (add-before 'configure 'disable-post-install
7775 (lambda _
7776 (substitute* "meson.build"
7777 (("meson.add_install_script.*") "")))))))
7778 (native-inputs
7779 `(("autoconf" ,autoconf)
7780 ("automake" ,automake)))
7781 (synopsis "Faba icon theme")
7782 (description
7783 "Faba is a minimal icon set used as a basis for other themes such as
7784 Moka")
7785 (home-page "https://snwh.org/moka")
7786 (license (list license:lgpl3+
7787 license:cc-by-sa4.0))))
7788
7789 (define-public moka-icon-theme
7790 (package
7791 (inherit faba-icon-theme)
7792 (name "moka-icon-theme")
7793 (version "5.4.0")
7794 (source
7795 (origin
7796 (method git-fetch)
7797 (uri (git-reference
7798 (url "https://github.com/snwh/moka-icon-theme.git")
7799 (commit (string-append "v" version))))
7800 (file-name (git-file-name name version))
7801 (sha256
7802 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
7803 (propagated-inputs
7804 ;; Moka is based on Faba by using it as a fallback icon set instead of
7805 ;; bundling it, so we need to add it as a propagated input.
7806 `(("faba-icon-theme" ,faba-icon-theme)))
7807 (synopsis "Moka icon theme")
7808 (description "Moka is a stylized desktop icon set, designed to be clear,
7809 simple and consistent.")
7810 (license (list license:gpl3+
7811 license:cc-by-sa4.0))))
7812
7813 (define-public arc-icon-theme
7814 (package
7815 (name "arc-icon-theme")
7816 (version "20161122")
7817 (source
7818 (origin
7819 (method git-fetch)
7820 (uri (git-reference
7821 (url "https://github.com/horst3180/arc-icon-theme.git")
7822 (commit version)))
7823 (file-name (git-file-name name version))
7824 (sha256
7825 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
7826 (build-system gnu-build-system)
7827 (arguments
7828 `(#:phases
7829 (modify-phases %standard-phases
7830 (add-after 'unpack 'disable-configure-during-bootstrap
7831 (lambda _
7832 (substitute* "autogen.sh"
7833 (("^\"\\$srcdir/configure\".*") ""))
7834 #t)))))
7835 (native-inputs
7836 `(("autoconf" ,autoconf)
7837 ("automake" ,automake)))
7838 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
7839 (propagated-inputs
7840 `(("moka-icon-theme" ,moka-icon-theme)))
7841 (synopsis "Arc icon theme")
7842 (description "The Arc icon theme provides a set of icons matching the
7843 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
7844 the Moka icon theme.")
7845 (home-page "https://github.com/horst3180/arc-icon-theme")
7846 (license license:gpl3+)))
7847
7848 (define-public folks
7849 (package
7850 (name "folks")
7851 (version "0.11.4")
7852 (source (origin
7853 (method url-fetch)
7854 (uri (string-append
7855 "mirror://gnome/sources/folks/"
7856 (version-major+minor version) "/"
7857 "folks-" version ".tar.xz"))
7858 (sha256
7859 (base32
7860 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
7861 (build-system glib-or-gtk-build-system)
7862 (inputs
7863 `(("bdb" ,bdb)
7864 ("dbus-glib" ,dbus-glib)
7865 ("evolution-data-server" ,evolution-data-server)
7866 ("glib" ,glib)
7867 ("libgee" ,libgee)
7868 ("telepathy-glib" ,telepathy-glib)))
7869 (native-inputs
7870 `(("gobject-introspection" ,gobject-introspection)
7871 ("intltool" ,intltool)
7872 ("pkg-config" ,pkg-config)
7873 ("vala" ,vala)))
7874 (synopsis "Library to aggregate data about people")
7875 (description "Libfolks is a library that aggregates information about people
7876 from multiple sources (e.g., Telepathy connection managers for IM contacts,
7877 Evolution Data Server for local contacts, libsocialweb for web service contacts,
7878 etc.) to create metacontacts. It's written in Vala, which generates C code when
7879 compiled.")
7880 (home-page "https://wiki.gnome.org/Projects/Folks")
7881 (license license:lgpl2.1+)))
7882
7883 (define-public gfbgraph
7884 (package
7885 (name "gfbgraph")
7886 (version "0.2.3")
7887 (source (origin
7888 (method url-fetch)
7889 (uri (string-append
7890 "mirror://gnome/sources/gfbgraph/"
7891 (version-major+minor version) "/"
7892 "gfbgraph-" version ".tar.xz"))
7893 (sha256
7894 (base32
7895 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
7896 (build-system glib-or-gtk-build-system)
7897 (arguments
7898 `(#:tests? #f ; Tests appear to require the network.
7899 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
7900 #:configure-flags '("--disable-gtk-doc"
7901 "--disable-static"
7902 "--enable-introspection")))
7903 (native-inputs
7904 `(("pkg-config" ,pkg-config)
7905 ("gobject-introspection" ,gobject-introspection)))
7906 (inputs
7907 `(("json-glib" ,json-glib)
7908 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7909 ("rest" ,rest)))
7910 (synopsis "GLib/GObject wrapper for the Facebook API")
7911 (description "This library allows you to use the Facebook API from
7912 GLib/GObject code.")
7913 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
7914 (license license:lgpl2.1+)))
7915
7916 (define-public libgnomekbd
7917 (package
7918 (name "libgnomekbd")
7919 (version "3.26.1")
7920 (source (origin
7921 (method url-fetch)
7922 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
7923 (version-major+minor version) "/"
7924 "libgnomekbd-" version ".tar.xz"))
7925 (sha256
7926 (base32
7927 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
7928 (build-system gnu-build-system)
7929 (native-inputs
7930 `(("pkg-config" ,pkg-config)
7931 ("glib" ,glib "bin")
7932 ("intltool" ,intltool)))
7933 (propagated-inputs
7934 ;; Referred to in .h files and .pc.
7935 `(("glib" ,glib)
7936 ("gtk+" ,gtk+)
7937 ("libxklavier" ,libxklavier)))
7938 (home-page "https://www.gnome.org")
7939 (synopsis "GNOME keyboard configuration library")
7940 (description
7941 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
7942 environment, which can notably display keyboard layouts.")
7943 (license license:lgpl2.0+)))
7944
7945 ;;; This package is no longer maintained:
7946 ;;; https://wiki.gnome.org/Attic/LibUnique
7947 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
7948 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
7949 (define-public libunique
7950 (package
7951 (name "libunique")
7952 (version "3.0.2")
7953 (source (origin
7954 (method url-fetch)
7955 (uri (string-append "mirror://gnome/sources/" name "/"
7956 (version-major+minor version) "/"
7957 name "-" version ".tar.xz"))
7958 (sha256
7959 (base32
7960 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
7961 (build-system glib-or-gtk-build-system)
7962 (arguments
7963 `(#:configure-flags '("--disable-static"
7964 "--disable-dbus" ; use gdbus
7965 "--enable-introspection")))
7966 (native-inputs
7967 `(("pkg-config" ,pkg-config)
7968 ("gobject-introspection" ,gobject-introspection)
7969 ("glib:bin" ,glib "bin")
7970 ("gtk-doc" ,gtk-doc)))
7971 (propagated-inputs
7972 ;; Referred to in .h files and .pc.
7973 `(("gtk+" ,gtk+)))
7974 (home-page "https://wiki.gnome.org/Attic/LibUnique")
7975 (synopsis "Library for writing single instance applications")
7976 (description
7977 "Libunique is a library for writing single instance applications. If you
7978 launch a single instance application twice, the second instance will either just
7979 quit or will send a message to the running instance. Libunique makes it easy to
7980 write this kind of application, by providing a base class, taking care of all
7981 the IPC machinery needed to send messages to a running instance, and also
7982 handling the startup notification side.")
7983 (license license:lgpl2.1+)))
7984
7985 (define-public gnome-calculator
7986 (package
7987 (name "gnome-calculator")
7988 (version "3.32.2")
7989 (source
7990 (origin
7991 (method url-fetch)
7992 (uri (string-append "mirror://gnome/sources/" name "/"
7993 (version-major+minor version) "/"
7994 name "-" version ".tar.xz"))
7995 (sha256
7996 (base32
7997 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
7998 (build-system meson-build-system)
7999 (arguments '(#:glib-or-gtk? #t))
8000 (native-inputs
8001 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8002 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8003 ("intltool" ,intltool)
8004 ("itstool" ,itstool)
8005 ("vala" ,vala)
8006 ("pkg-config" ,pkg-config)))
8007 (inputs
8008 `(("glib" ,glib)
8009 ("gtksourceview" ,gtksourceview)
8010 ("libsoup" ,libsoup)
8011 ("libxml2" ,libxml2)
8012 ("mpc" ,mpc)
8013 ("mpfr" ,mpfr)))
8014 (home-page "https://wiki.gnome.org/Apps/Calculator")
8015 (synopsis "Desktop calculator")
8016 (description
8017 "Calculator is an application that solves mathematical equations and
8018 is suitable as a default application in a Desktop environment.")
8019 (license license:gpl3)))
8020
8021 (define-public xpad
8022 (package
8023 (name "xpad")
8024 (version "5.1.0")
8025 (source
8026 (origin
8027 (method url-fetch)
8028 (uri (string-append "https://launchpad.net/xpad/trunk/"
8029 version "/+download/"
8030 name "-" version ".tar.bz2"))
8031 (sha256
8032 (base32
8033 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8034 (build-system gnu-build-system)
8035 (native-inputs
8036 `(("autoconf" ,autoconf)
8037 ("automake" ,automake)
8038 ("gtk+:bin" ,gtk+ "bin")
8039 ("intltool" ,intltool)
8040 ("pkg-config" ,pkg-config)))
8041 (inputs
8042 `(("gtksourceview" ,gtksourceview-3)
8043 ("libsm" ,libsm)))
8044 (home-page "https://wiki.gnome.org/Apps/Xpad")
8045 (synopsis "Virtual sticky note")
8046 (description
8047 "Xpad is a sticky note that strives to be simple, fault tolerant,
8048 and customizable. Xpad consists of independent pad windows, each is
8049 basically a text box in which notes can be written.")
8050 (license license:gpl3+)))
8051
8052 (define-public gucharmap
8053 (let ((unicode-files
8054 '(("Blocks.txt"
8055 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8056 ("DerivedAge.txt"
8057 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8058 ("NamesList.txt"
8059 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8060 ("Scripts.txt"
8061 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8062 ("UnicodeData.txt"
8063 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8064 ("Unihan.zip"
8065 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8066 (package
8067 (name "gucharmap")
8068 (version "12.0.1")
8069 (source
8070 (origin
8071 (method url-fetch)
8072 (uri (string-append "mirror://gnome/sources/" name "/"
8073 (version-major+minor version) "/"
8074 name "-" version ".tar.xz"))
8075 (sha256
8076 (base32
8077 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8078 (build-system glib-or-gtk-build-system)
8079 (arguments
8080 `(#:modules ((ice-9 match)
8081 (guix build glib-or-gtk-build-system)
8082 (guix build utils))
8083 #:configure-flags
8084 (list "--with-unicode-data=../unicode-data")
8085 #:phases
8086 (modify-phases %standard-phases
8087 (add-after 'unpack 'prepare-unicode-data
8088 (lambda* (#:key inputs #:allow-other-keys)
8089 (mkdir-p "../unicode-data")
8090 (with-directory-excursion "../unicode-data"
8091 (for-each (match-lambda
8092 ((file _)
8093 (install-file (assoc-ref inputs file) ".")))
8094 ',unicode-files))
8095 #t)))))
8096 (native-inputs
8097 `(("desktop-file-utils" ,desktop-file-utils)
8098 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8099 ("gobject-introspection" ,gobject-introspection)
8100 ("intltool" ,intltool)
8101 ("itstool" ,itstool)
8102 ("pkg-config" ,pkg-config)
8103 ,@(map (match-lambda
8104 ((file hash)
8105 `(,file
8106 ,(origin
8107 (method url-fetch)
8108 (uri (string-append
8109 "http://www.unicode.org/Public/12.0.0/ucd/"
8110 file))
8111 (sha256 (base32 hash))))))
8112 unicode-files)
8113 ("unzip" ,unzip)))
8114 (inputs
8115 `(("gtk+" ,gtk+)
8116 ("xmllint" ,libxml2)))
8117 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8118 (synopsis "Unicode character picker and font browser")
8119 (description
8120 "This program allows you to browse through all the available Unicode
8121 characters and categories for the installed fonts, and to examine their
8122 detailed properties. It is an easy way to find the character you might
8123 only know by its Unicode name or code point.")
8124 (license license:gpl3+))))
8125
8126 (define-public bluefish
8127 (package
8128 (name "bluefish")
8129 (version "2.2.10")
8130 (source
8131 (origin
8132 (method url-fetch)
8133 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8134 name "-" version ".tar.gz"))
8135 (sha256
8136 (base32
8137 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
8138 (build-system gnu-build-system)
8139 (native-inputs
8140 `(("desktop-file-utils" ,desktop-file-utils)
8141 ("intltool" ,intltool)
8142 ("pkg-config" ,pkg-config)))
8143 (inputs
8144 `(("enchant" ,enchant)
8145 ("gtk+" ,gtk+)
8146 ("python" ,python-2)
8147 ("xmllint" ,libxml2)
8148 ("gucharmap" ,gucharmap)))
8149 (home-page "http://bluefish.openoffice.nl")
8150 (synopsis "Web development studio")
8151 (description
8152 "Bluefish is an editor targeted towards programmers and web developers,
8153 with many options to write web sites, scripts and other code.
8154 Bluefish supports many programming and markup languages.")
8155 (license license:gpl3+)))
8156
8157 (define-public gnome-system-monitor
8158 (package
8159 (name "gnome-system-monitor")
8160 (version "3.32.1")
8161 (source
8162 (origin
8163 (method url-fetch)
8164 (uri (string-append "mirror://gnome/sources/" name "/"
8165 (version-major+minor version) "/"
8166 name "-" version ".tar.xz"))
8167 (sha256
8168 (base32
8169 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8170 (build-system meson-build-system)
8171 (arguments
8172 '(#:glib-or-gtk? #t
8173 #:configure-flags '("-Dsystemd=false")))
8174 (native-inputs
8175 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8176 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8177 ("intltool" ,intltool)
8178 ("itstool" ,itstool)
8179 ("libgtop" ,libgtop)
8180 ("polkit" ,polkit)
8181 ("pkg-config" ,pkg-config)))
8182 (inputs
8183 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8184 ("gtk+" ,gtk+)
8185 ("gtkmm" ,gtkmm)
8186 ("librsvg" ,librsvg)
8187 ("libxml2" ,libxml2)
8188 ("libwnck" ,libwnck)))
8189 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8190 (synopsis "Process viewer and system resource monitor for GNOME")
8191 (description
8192 "GNOME System Monitor is a GNOME process viewer and system monitor with
8193 an attractive, easy-to-use interface. It has features, such as a tree view
8194 for process dependencies, icons for processes, the ability to hide processes,
8195 graphical time histories of CPU/memory/swap usage and the ability to
8196 kill/reinice processes.")
8197 (license license:gpl2+)))
8198
8199 (define-public python-pyatspi
8200 (package
8201 (name "python-pyatspi")
8202 (version "2.34.0")
8203 (source (origin
8204 (method url-fetch)
8205 (uri (string-append
8206 "mirror://gnome/sources/pyatspi/"
8207 (version-major+minor version)
8208 "/pyatspi-" version ".tar.xz"))
8209 (sha256
8210 (base32
8211 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8212 (build-system gnu-build-system)
8213 (arguments
8214 `(#:phases
8215 (modify-phases %standard-phases
8216 (add-before 'build 'fix-atk-load
8217 (lambda _
8218 (substitute* "pyatspi/__init__.py"
8219 (("from gi.repository import Atspi")
8220 "gi.require_version('Gtk', '3.0')
8221 from gi.repository import Gtk
8222 from gi.repository import Atspi"))
8223 #t)))))
8224 (native-inputs
8225 `(("pkg-config" ,pkg-config)))
8226 (inputs
8227 `(("python" ,python)
8228 ("python-pygobject" ,python-pygobject)))
8229 (synopsis "Python client bindings for D-Bus AT-SPI")
8230 (home-page "https://wiki.linuxfoundation.org/accessibility\
8231 /atk/at-spi/at-spi_on_d-bus")
8232 (description
8233 "This package includes a python client library for the AT-SPI D-Bus
8234 accessibility infrastructure.")
8235 (license license:lgpl2.0)
8236 (properties '((upstream-name . "pyatspi")))))
8237
8238 (define-public orca
8239 (package
8240 (name "orca")
8241 (version "3.32.0")
8242 (source (origin
8243 (method url-fetch)
8244 (uri (string-append
8245 "mirror://gnome/sources/" name "/"
8246 (version-major+minor version) "/"
8247 name "-" version ".tar.xz"))
8248 (sha256
8249 (base32
8250 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
8251 (build-system glib-or-gtk-build-system)
8252 (arguments
8253 '(#:phases
8254 (modify-phases %standard-phases
8255 (add-before 'configure 'qualify-xkbcomp
8256 (lambda* (#:key inputs #:allow-other-keys)
8257 (let ((xkbcomp (string-append
8258 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8259 (substitute* "src/orca/orca.py"
8260 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8261 #t))
8262 (add-after 'install 'wrap-orca
8263 (lambda* (#:key outputs #:allow-other-keys)
8264 (let* ((out (assoc-ref outputs "out"))
8265 (prog (string-append out "/bin/orca")))
8266 (wrap-program prog
8267 `("GI_TYPELIB_PATH" ":" prefix
8268 (,(getenv "GI_TYPELIB_PATH")))
8269 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8270 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8271 `("PYTHONPATH" ":" prefix
8272 (,(getenv "PYTHONPATH")))))
8273 #t)))))
8274 (native-inputs
8275 `(("intltool" ,intltool)
8276 ("itstool" ,itstool)
8277 ("pkg-config" ,pkg-config)
8278 ("xmllint" ,libxml2)))
8279 (inputs
8280 `(("at-spi2-atk" ,at-spi2-atk)
8281 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8282 ("gstreamer" ,gstreamer)
8283 ("gst-plugins-base" ,gst-plugins-base)
8284 ("gst-plugins-good" ,gst-plugins-good)
8285 ("gtk+" ,gtk+)
8286 ("python" ,python)
8287 ("python-pygobject" ,python-pygobject)
8288 ("python-pyatspi" ,python-pyatspi)
8289 ("python-speechd" ,speech-dispatcher)
8290 ("xkbcomp" ,xkbcomp)))
8291 (synopsis
8292 "Screen reader for individuals who are blind or visually impaired")
8293 (home-page "https://wiki.gnome.org/Projects/Orca")
8294 (description
8295 "Orca is a screen reader that provides access to the graphical desktop
8296 via speech and refreshable braille. Orca works with applications and toolkits
8297 that support the Assistive Technology Service Provider Interface (AT-SPI).")
8298 (license license:lgpl2.1+)))
8299
8300 (define-public gspell
8301 (package
8302 (name "gspell")
8303 (version "1.8.2")
8304 (source (origin
8305 (method url-fetch)
8306 (uri (string-append "mirror://gnome/sources/" name "/"
8307 (version-major+minor version) "/"
8308 name "-" version ".tar.xz"))
8309 (sha256
8310 (base32
8311 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
8312 (patches (search-patches "gspell-dash-test.patch"))))
8313 (build-system glib-or-gtk-build-system)
8314 (arguments
8315 '(#:phases
8316 (modify-phases %standard-phases
8317 (add-before 'check 'pre-check
8318 (lambda* (#:key inputs #:allow-other-keys)
8319 ;; Tests require a running X server.
8320 (system "Xvfb :1 &")
8321 (setenv "DISPLAY" ":1")
8322
8323 ;; For the missing /etc/machine-id.
8324 (setenv "DBUS_FATAL_WARNINGS" "0")
8325
8326 ;; Allow Enchant and its Aspell backend to find the en_US
8327 ;; dictionary.
8328 (setenv "ASPELL_DICT_DIR"
8329 (string-append (assoc-ref inputs "aspell-dict-en")
8330 "/lib/aspell"))
8331 #t)))))
8332 (inputs
8333 `(("gtk+" ,gtk+)
8334 ("glib" ,glib)
8335 ("iso-codes" ,iso-codes)))
8336 (native-inputs
8337 `(("glib" ,glib "bin")
8338 ("gobject-introspection" ,gobject-introspection)
8339 ("pkg-config" ,pkg-config)
8340 ("xmllint" ,libxml2)
8341
8342 ;; For tests.
8343 ("aspell-dict-en" ,aspell-dict-en)
8344 ("xorg-server" ,xorg-server-for-tests)))
8345 (propagated-inputs
8346 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
8347 (home-page "https://wiki.gnome.org/Projects/gspell")
8348 (synopsis "GNOME's alternative spell checker")
8349 (description
8350 "gspell provides a flexible API to add spell-checking to a GTK+
8351 application. It provides a GObject API, spell-checking to text entries and
8352 text views, and buttons to choose the language.")
8353 (license license:gpl2+)))
8354
8355 (define-public gnome-planner
8356 (package
8357 (name "gnome-planner")
8358 (version "0.14.6")
8359 (source (origin
8360 (method url-fetch)
8361 (uri (string-append "mirror://gnome/sources/planner/"
8362 (version-major+minor version) "/planner-"
8363 version ".tar.xz"))
8364 (sha256
8365 (base32
8366 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8367 (build-system glib-or-gtk-build-system)
8368 (arguments
8369 ;; Disable the Python bindings because the Planner program functions
8370 ;; without them, and (as of 2017-06-13) we have not packaged all of
8371 ;; packages that are necessary for building the Python bindings.
8372 `(#:configure-flags
8373 (list "--disable-python"
8374 ,@(if (string=? "aarch64-linux" (%current-system))
8375 '("--build=aarch64-unknown-linux-gnu")
8376 '()))))
8377 (inputs
8378 `(("libgnomecanvas" ,libgnomecanvas)
8379 ("libgnomeui" ,libgnomeui)
8380 ("libglade" ,libglade)
8381 ("gnome-vfs" ,gnome-vfs)
8382 ("gconf" ,gconf)
8383 ("libxml2" ,libxml2)
8384 ("libxslt" ,libxslt)
8385 ("gtk+" ,gtk+)
8386 ("glib" ,glib)))
8387 (native-inputs
8388 `(("intltool" ,intltool)
8389 ("scrollkeeper" ,scrollkeeper)
8390 ("pkg-config" ,pkg-config)))
8391 (home-page "https://wiki.gnome.org/Apps/Planner")
8392 (synopsis "Project management software for the GNOME desktop")
8393 (description
8394 "GNOME Planner is a project management tool based on the Work Breakdown
8395 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8396 the resources, tasks, and constraints that you define, Planner generates
8397 various views into a project. For example, Planner can show a Gantt chart of
8398 the project. It can show a detailed summary of tasks including their
8399 duration, cost, and current progress. It can also show a report of resource
8400 utilization that highlights under-utilized and over-utilized resources. These
8401 views can be printed as PDF or PostScript files, or exported to HTML.")
8402 (license license:gpl2+)))
8403
8404 (define-public lollypop
8405 (package
8406 (name "lollypop")
8407 (version "1.2.7")
8408 (source
8409 (origin
8410 (method url-fetch)
8411 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
8412 "08f973788c7ca46d9285eec2ac818edb/"
8413 "lollypop-" version ".tar.xz"))
8414 (sha256
8415 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
8416 (build-system meson-build-system)
8417 (arguments
8418 `(#:imported-modules ((guix build python-build-system)
8419 ,@%meson-build-system-modules)
8420 #:glib-or-gtk? #t
8421 #:tests? #f ; no test suite
8422 #:phases
8423 (modify-phases %standard-phases
8424 (add-after 'install 'wrap-program
8425 (lambda* (#:key outputs #:allow-other-keys)
8426 (let ((out (assoc-ref outputs "out"))
8427 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8428 (wrap-program (string-append out "/bin/lollypop")
8429 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8430 #t))
8431 (add-after 'install 'wrap-python
8432 (@@ (guix build python-build-system) wrap))
8433 (add-after 'install 'wrap-glib-or-gtk
8434 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
8435 (native-inputs
8436 `(("intltool" ,intltool)
8437 ("itstool" ,itstool)
8438 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8439 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8440 ("pkg-config" ,pkg-config)))
8441 (inputs
8442 `(("gobject-introspection" ,gobject-introspection)
8443 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8444 ("gst-plugins-base" ,gst-plugins-base)
8445 ("libnotify" ,libnotify)
8446 ("libsecret" ,libsecret)
8447 ("libsoup" ,libsoup)
8448 ("python" ,python)
8449 ("python-beautifulsoup4" ,python-beautifulsoup4)
8450 ("python-gst" ,python-gst)
8451 ("python-pil" ,python-pillow)
8452 ("python-pycairo" ,python-pycairo)
8453 ("python-pygobject" ,python-pygobject-3.34)
8454 ("python-pylast" ,python-pylast)
8455 ("totem-pl-parser" ,totem-pl-parser)
8456 ("webkitgtk" ,webkitgtk)))
8457 (propagated-inputs
8458 `(;; gst-plugins-base is required to start Lollypop,
8459 ;; the others are required to play streaming.
8460 ("gst-plugins-good" ,gst-plugins-good)
8461 ("gst-plugins-ugly" ,gst-plugins-ugly)))
8462 (home-page "https://wiki.gnome.org/Apps/Lollypop")
8463 (synopsis "GNOME music playing application")
8464 (description
8465 "Lollypop is a music player designed to play well with GNOME desktop.
8466 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
8467 from artists and tracks from the web. It also fetches cover artworks
8468 automatically and it can stream songs from online music services and charts.")
8469 (license license:gpl3+)))
8470
8471 (define-public gnome-video-effects
8472 (package
8473 (name "gnome-video-effects")
8474 (version "0.4.3")
8475 (source (origin
8476 (method url-fetch)
8477 (uri (string-append "mirror://gnome/sources/" name "/"
8478 (version-major+minor version) "/" name "-"
8479 version ".tar.xz"))
8480 (sha256
8481 (base32
8482 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
8483 (build-system glib-or-gtk-build-system)
8484 (arguments
8485 `(#:out-of-source? #f))
8486 (native-inputs
8487 `(("glib:bin" ,glib "bin")
8488 ("intltool" ,intltool)
8489 ("gettext" ,gettext-minimal)
8490 ("pkg-config" ,pkg-config)))
8491 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
8492 (synopsis "Video effects for Cheese and other GNOME applications")
8493 (description
8494 "A collection of GStreamer video filters and effects to be used in
8495 photo-booth-like software, such as Cheese.")
8496 (license license:gpl2+)))
8497
8498 (define-public cheese
8499 (package
8500 (name "cheese")
8501 (version "3.32.1")
8502 (source (origin
8503 (method url-fetch)
8504 (uri (string-append "mirror://gnome/sources/" name "/"
8505 (version-major+minor version) "/" name "-"
8506 version ".tar.xz"))
8507 (sha256
8508 (base32
8509 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
8510 (arguments
8511 ;; Tests require GDK.
8512 `(#:tests? #f
8513 #:phases
8514 (modify-phases %standard-phases
8515 (add-before 'install 'skip-gtk-update-icon-cache
8516 (lambda _
8517 ;; Don't create 'icon-theme.cache'
8518 (substitute* "Makefile"
8519 (("gtk-update-icon-cache") (which "true")))
8520 #t))
8521 (add-after 'install 'wrap-cheese
8522 (lambda* (#:key inputs outputs #:allow-other-keys)
8523 (let ((out (assoc-ref outputs "out"))
8524 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
8525 (wrap-program (string-append out "/bin/cheese")
8526 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
8527 #t)))))
8528 (build-system glib-or-gtk-build-system)
8529 (native-inputs
8530 `(("glib:bin" ,glib "bin")
8531 ("intltool" ,intltool)
8532 ("itstool" ,itstool)
8533 ("libxml2" ,libxml2)
8534 ("pkg-config" ,pkg-config)
8535 ("vala" ,vala)))
8536 (propagated-inputs
8537 `(("gnome-video-effects" ,gnome-video-effects)
8538 ("clutter" ,clutter)
8539 ("clutter-gst" ,clutter-gst)
8540 ("clutter-gtk" ,clutter-gtk)
8541 ("libcanberra" ,libcanberra)
8542 ("gdk-pixbuf" ,gdk-pixbuf)
8543 ("glib" ,glib)
8544 ("gstreamer" ,gstreamer)))
8545 (inputs
8546 `(("gnome-desktop" ,gnome-desktop)
8547 ("gobject-introspection" ,gobject-introspection)
8548 ("gst-plugins-base" ,gst-plugins-base)
8549 ("gst-plugins-bad" ,gst-plugins-bad)
8550 ("gtk+" ,gtk+)
8551 ("libx11" ,libx11)
8552 ("libxtst" ,libxtst)))
8553 (home-page "https://wiki.gnome.org/Apps/Cheese")
8554 (synopsis "Webcam photo booth software for GNOME")
8555 (description
8556 "Cheese uses your webcam to take photos and videos. Cheese can also
8557 apply fancy special effects and lets you share the fun with others.")
8558 (license license:gpl2+)))
8559
8560 (define-public sound-juicer
8561 (package
8562 (name "sound-juicer")
8563 (version "3.24.0")
8564 (source
8565 (origin
8566 (method url-fetch)
8567 (uri (string-append "mirror://gnome/sources/" name "/"
8568 (version-major+minor version) "/"
8569 name "-" version ".tar.xz"))
8570 (sha256
8571 (base32
8572 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
8573 (build-system glib-or-gtk-build-system)
8574 (native-inputs
8575 `(("desktop-file-utils" ,desktop-file-utils)
8576 ("intltool" ,intltool)
8577 ("itstool" ,itstool)
8578 ("pkg-config" ,pkg-config)
8579 ("xmllint" ,libxml2)))
8580 (inputs
8581 `(("gtk+" ,gtk+)
8582 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8583 ("gstreamer" ,gstreamer)
8584 ("gst-plugins-base" ,gst-plugins-base)
8585 ("gst-plugins-good" ,gst-plugins-good)
8586 ("iso-codes" ,iso-codes)
8587 ("libbrasero-media3" ,brasero)
8588 ("libcanberra" ,libcanberra)
8589 ("libdiscid" ,libdiscid)
8590 ("libmusicbrainz" ,libmusicbrainz)
8591 ("neon" ,neon)))
8592 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
8593 (synopsis "Audio music cd ripper")
8594 (description "Sound Juicer extracts audio from compact discs and convert it
8595 into audio files that a personal computer or digital audio player can play.
8596 It supports ripping to any audio codec supported by a GStreamer plugin, such as
8597 mp3, Ogg Vorbis and FLAC")
8598 (license license:gpl2+)))
8599
8600 (define-public soundconverter
8601 (package
8602 (name "soundconverter")
8603 (version "3.0.1")
8604 (source
8605 (origin
8606 (method url-fetch)
8607 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
8608 version "/+download/"
8609 "soundconverter-" version ".tar.xz"))
8610
8611 (sha256
8612 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
8613 (patches
8614 (search-patches
8615 "soundconverter-remove-gconf-dependency.patch"))))
8616 (build-system glib-or-gtk-build-system)
8617 (arguments
8618 `(#:imported-modules ((guix build python-build-system)
8619 (guix build glib-or-gtk-build-system)
8620 ,@%gnu-build-system-modules)
8621
8622 #:modules ((guix build glib-or-gtk-build-system)
8623 (guix build utils)
8624 ((guix build gnu-build-system) #:prefix gnu:)
8625 ((guix build python-build-system) #:prefix python:))
8626
8627 #:phases
8628 (modify-phases %standard-phases
8629 (add-after 'install 'wrap-soundconverter-for-python
8630 (assoc-ref python:%standard-phases 'wrap))
8631 (add-after 'install 'wrap-soundconverter
8632 (lambda* (#:key inputs outputs #:allow-other-keys)
8633 (let ((out (assoc-ref outputs "out"))
8634 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8635 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
8636 (wrap-program (string-append out "/bin/soundconverter")
8637 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8638 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
8639 #t)))))
8640 (native-inputs
8641 `(("intltool" ,intltool)
8642 ("pkg-config" ,pkg-config)
8643 ("glib:bin" ,glib "bin")))
8644 (inputs
8645 `(("gtk+" ,gtk+)
8646 ("python" ,python)
8647 ("python-pygobject" ,python-pygobject)
8648 ("gstreamer" ,gstreamer)
8649 ("gst-plugins-base" ,gst-plugins-base)))
8650 (home-page "http://soundconverter.org/")
8651 (synopsis "Convert between audio formats with a graphical interface")
8652 (description
8653 "SoundConverter supports converting between many audio formats including
8654 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
8655 configurable file renaming. ")
8656 (license license:gpl3)))
8657
8658 (define-public workrave
8659 (package
8660 (name "workrave")
8661 (version "1.10.34")
8662 (source
8663 (origin
8664 (method git-fetch)
8665 (uri (git-reference
8666 (url "https://github.com/rcaelers/workrave.git")
8667 (commit (string-append "v" (string-map
8668 (match-lambda (#\. #\_) (chr chr))
8669 version)))))
8670 (file-name (git-file-name name version))
8671 (sha256
8672 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
8673 (build-system glib-or-gtk-build-system)
8674 (inputs `(("glib" ,glib)
8675 ("gtk+" ,gtk+)
8676 ("gdk-pixbuf" ,gdk-pixbuf)
8677 ("gtkmm" ,gtkmm)
8678 ("glibmm" ,glibmm)
8679 ("libx11" ,libx11)
8680 ("libxtst" ,libxtst)
8681 ("dconf" ,dconf)
8682 ("libice" ,libice)
8683 ("libsm" ,libsm)
8684 ("libxscrnsaver" ,libxscrnsaver)))
8685 (native-inputs `(("boost" ,boost)
8686 ("pkg-config" ,pkg-config)
8687 ("gettext" ,gnu-gettext)
8688 ("autoconf" ,autoconf)
8689 ("autoconf-archive" , autoconf-archive)
8690 ("automake" ,automake)
8691 ("libtool" ,libtool)
8692 ("intltool" ,intltool)
8693 ("gobject-introspection" ,gobject-introspection)
8694 ("python3" ,python-3)
8695 ("python-jinja2" ,python-jinja2)))
8696 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
8697 (description
8698 "Workrave is a program that assists in the recovery and prevention of
8699 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
8700 micro-pauses and rest breaks, and restricts you to your daily limit.")
8701 (home-page "http://www.workrave.org")
8702 (license license:gpl3+)))
8703
8704 (define-public ghex
8705 (package
8706 (name "ghex")
8707 (version "3.18.4")
8708 (source (origin
8709 (method url-fetch)
8710 (uri (string-append "mirror://gnome/sources/ghex/"
8711 (version-major+minor version) "/"
8712 "ghex-" version ".tar.xz"))
8713 (sha256
8714 (base32
8715 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
8716 (build-system meson-build-system)
8717 (arguments
8718 '(#:glib-or-gtk? #t
8719 #:phases
8720 (modify-phases %standard-phases
8721 (add-after 'unpack 'skip-gtk-update-icon-cache
8722 ;; Don't create 'icon-theme.cache'.
8723 (lambda _
8724 (substitute* "meson_post_install.py"
8725 (("gtk-update-icon-cache") (which "true")))
8726 #t)))))
8727 (native-inputs
8728 `(("pkg-config" ,pkg-config)
8729 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
8730 ("gnome-common" ,gnome-common)
8731 ("which" ,which)
8732 ("intltool" ,intltool)
8733 ("yelp-tools" ,yelp-tools)
8734 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
8735 (inputs
8736 `(("atk" ,atk)
8737 ("gtk" ,gtk+)))
8738 (synopsis "GNOME hexadecimal editor")
8739 (description "The GHex program can view and edit files in two ways:
8740 hexadecimal or ASCII. It is useful for editing binary files in general.")
8741 (home-page "https://wiki.gnome.org/Apps/Ghex")
8742 (license license:gpl2)))
8743
8744 (define-public libdazzle
8745 (package
8746 (name "libdazzle")
8747 (version "3.33.90")
8748 (source (origin
8749 (method url-fetch)
8750 (uri (string-append "mirror://gnome/sources/libdazzle/"
8751 (version-major+minor version) "/"
8752 "libdazzle-" version ".tar.xz"))
8753 (sha256
8754 (base32
8755 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
8756 (build-system meson-build-system)
8757 (arguments
8758 `(#:phases
8759 (modify-phases %standard-phases
8760 (add-before 'check 'pre-check
8761 (lambda _
8762 ;; Tests require a running X server.
8763 (system "Xvfb :1 &")
8764 (setenv "DISPLAY" ":1")
8765 #t)))))
8766 (native-inputs
8767 `(("glib" ,glib "bin") ; glib-compile-resources
8768 ("pkg-config" ,pkg-config)
8769 ;; For tests.
8770 ("xorg-server" ,xorg-server-for-tests)))
8771 (inputs
8772 `(("glib" ,glib)
8773 ("gobject-introspection" ,gobject-introspection)
8774 ("gtk+" ,gtk+)
8775 ("vala" ,vala)))
8776 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
8777 (synopsis "Companion library to GObject and Gtk+")
8778 (description "The libdazzle library is a companion library to GObject and
8779 Gtk+. It provides various features that the authors wish were in the
8780 underlying library but cannot for various reasons. In most cases, they are
8781 wildly out of scope for those libraries. In other cases, they are not quite
8782 generic enough to work for everyone.")
8783 (license license:gpl3+)))
8784
8785 (define-public evolution
8786 (package
8787 (name "evolution")
8788 (version "3.32.4")
8789 (source (origin
8790 (method url-fetch)
8791 (uri (string-append "mirror://gnome/sources/evolution/"
8792 (version-major+minor version) "/"
8793 "evolution-" version ".tar.xz"))
8794 (sha256
8795 (base32
8796 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
8797 (build-system cmake-build-system)
8798 (arguments
8799 `(#:imported-modules (,@%cmake-build-system-modules
8800 (guix build glib-or-gtk-build-system))
8801 #:modules ((guix build cmake-build-system)
8802 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
8803 (guix build utils))
8804 #:configure-flags
8805 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
8806 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
8807 ; in four years and cannot be built.
8808 #:phases
8809 (modify-phases %standard-phases
8810 ;; The build system attempts to install user interface modules to the
8811 ;; output directory of the "evolution-data-server" package. This
8812 ;; change redirects that change.
8813 (add-after 'unpack 'patch-ui-module-dir
8814 (lambda* (#:key outputs #:allow-other-keys)
8815 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
8816 (("\\$\\{edsuimoduledir\\}")
8817 (string-append (assoc-ref outputs "out")
8818 "/lib/evolution-data-server/ui-modules")))
8819 #t))
8820 (add-after 'install 'glib-or-gtk-compile-schemas
8821 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
8822 (add-after 'install 'glib-or-gtk-wrap
8823 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
8824 (native-inputs
8825 `(("glib" ,glib "bin") ; glib-mkenums
8826 ("pkg-config" ,pkg-config)
8827 ("intltool" ,intltool)
8828 ("itstool" ,itstool)))
8829 (inputs
8830 `(("enchant" ,enchant)
8831 ("evolution-data-server" ,evolution-data-server) ; must be the same version
8832 ("gcr" ,gcr)
8833 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8834 ("gnome-autoar" ,gnome-autoar)
8835 ("gnome-desktop" ,gnome-desktop)
8836 ("gtkspell3" ,gtkspell3)
8837 ("highlight" ,highlight)
8838 ("libcanberra" ,libcanberra)
8839 ("libedataserverui" ,evolution-data-server)
8840 ("libgweather" ,libgweather)
8841 ("libnotify" ,libnotify)
8842 ("libsoup" ,libsoup)
8843 ("nss" ,nss)
8844 ("openldap" ,openldap)
8845 ("webkitgtk" ,webkitgtk)
8846 ("ytnef" ,ytnef)))
8847 (home-page "https://gitlab.gnome.org/GNOME/evolution")
8848 (synopsis "Manage your email, contacts and schedule")
8849 (description "Evolution is a personal information management application
8850 that provides integrated mail, calendaring and address book
8851 functionality.")
8852 ;; See COPYING for details.
8853 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
8854 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
8855 license:lgpl2.1+)))) ; smime/lib/*
8856
8857 (define-public gthumb
8858 (package
8859 (name "gthumb")
8860 (version "3.8.2")
8861 (source (origin
8862 (method url-fetch)
8863 (uri (string-append "mirror://gnome/sources/gthumb/"
8864 (version-major+minor version) "/"
8865 "gthumb-" version ".tar.xz"))
8866 (sha256
8867 (base32
8868 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
8869 (build-system meson-build-system)
8870 (arguments
8871 `(#:glib-or-gtk? #t
8872 #:configure-flags
8873 ;; Ensure the RUNPATH contains all installed library locations.
8874 (list (string-append "-Dc_link_args=-Wl,-rpath="
8875 (assoc-ref %outputs "out")
8876 "/lib/gthumb/extensions")
8877 (string-append "-Dcpp_link_args=-Wl,-rpath="
8878 (assoc-ref %outputs "out")
8879 "/lib/gthumb/extensions"))))
8880 (native-inputs
8881 `(("pkg-config" ,pkg-config)
8882 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8883 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8884 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8885 ("intltool" ,intltool)
8886 ("itstool" ,itstool)))
8887 (inputs
8888 `(("exiv2" ,exiv2)
8889 ("gtk" ,gtk+)
8890 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8891 ("gstreamer" ,gstreamer)
8892 ("clutter" ,clutter)
8893 ("clutter-gst" ,clutter-gst)
8894 ("clutter-gtk" ,clutter-gtk)
8895 ("libjpeg" ,libjpeg)
8896 ("libtiff" ,libtiff)
8897 ("libraw" ,libraw)))
8898 (home-page "https://wiki.gnome.org/Apps/Gthumb")
8899 (synopsis "GNOME image viewer and browser")
8900 (description "GThumb is an image viewer, browser, organizer, editor and
8901 advanced image management tool")
8902 (license license:gpl2+)))
8903
8904 (define-public terminator
8905 (package
8906 (name "terminator")
8907 (version "1.91")
8908 (source (origin
8909 (method url-fetch)
8910 (uri (string-append "https://launchpad.net/" name "/"
8911 "gtk3/" version "/" "+download/"
8912 name "-" version ".tar.gz"))
8913 (sha256
8914 (base32
8915 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
8916 (build-system python-build-system)
8917 (native-inputs
8918 `(("intltool" ,intltool)
8919 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8920 ("gettext" ,gettext-minimal)
8921 ("pkg-config" ,pkg-config)))
8922 (inputs
8923 `(("cairo" ,cairo)
8924 ("gobject-introspection" ,gobject-introspection)
8925 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8926 ("python2-pycairo" ,python2-pycairo)
8927 ("python2-pygobject" ,python2-pygobject)
8928 ("python2-psutil" ,python2-psutil)
8929 ("vte" ,vte)))
8930 (arguments
8931 `(#:python ,python-2 ; Python 3 isn't supported
8932 #:imported-modules ((guix build glib-or-gtk-build-system)
8933 ,@%python-build-system-modules)
8934 #:modules ((guix build python-build-system)
8935 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
8936 (guix build utils))
8937 #:phases
8938 (modify-phases %standard-phases
8939 (add-after
8940 'install 'wrap-program
8941 (lambda* (#:key outputs #:allow-other-keys)
8942 (let ((prog (string-append (assoc-ref outputs "out")
8943 "/bin/terminator")))
8944 (wrap-program prog
8945 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
8946 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
8947 #t)))
8948 (add-after 'wrap-program 'glib-or-gtk-wrap
8949 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
8950 (home-page "https://gnometerminator.blogspot.com/")
8951 (synopsis "Store and run multiple GNOME terminals in one window")
8952 (description
8953 "Terminator allows you to run multiple GNOME terminals in a grid and
8954 +tabs, and it supports drag and drop re-ordering of terminals.")
8955 (license license:gpl2)))
8956
8957 (define-public libhandy
8958 (package
8959 (name "libhandy")
8960 (version "0.0.12")
8961 (source
8962 (origin
8963 (method git-fetch)
8964 (uri (git-reference
8965 (url "https://source.puri.sm/Librem5/libhandy")
8966 (commit (string-append "v" version))))
8967 (file-name (git-file-name name version))
8968 (sha256
8969 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
8970 (build-system meson-build-system)
8971 (arguments
8972 `(#:configure-flags
8973 '("-Dglade_catalog=disabled"
8974 "-Dgtk_doc=true")
8975 #:phases
8976 (modify-phases %standard-phases
8977 (add-before 'check 'pre-check
8978 (lambda _
8979 ;; Tests require a running X server.
8980 (system "Xvfb :1 &")
8981 (setenv "DISPLAY" ":1")
8982 #t)))))
8983 (inputs
8984 `(("gtk+" ,gtk+)))
8985 (native-inputs
8986 `(("glib:bin" ,glib "bin")
8987 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
8988 ("vala" ,vala)
8989 ("gtk-doc" ,gtk-doc)
8990 ("pkg-config" ,pkg-config)
8991 ("gettext" ,gettext-minimal)
8992
8993 ;; Test suite dependencies.
8994 ("xorg-server" ,xorg-server-for-tests)
8995 ("hicolor-icon-theme" ,hicolor-icon-theme)))
8996 (home-page "https://source.puri.sm/Librem5/libhandy")
8997 (synopsis "Library full of GTK+ widgets for mobile phones")
8998 (description "The aim of the handy library is to help with developing user
8999 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9000 for usage on small and big screens.")
9001 (license license:lgpl2.1+)))
9002
9003 (define-public libgit2-glib
9004 (package
9005 (name "libgit2-glib")
9006 (version "0.28.0.1")
9007 (source (origin
9008 (method url-fetch)
9009 (uri (string-append "mirror://gnome/sources/" name "/"
9010 (version-major+minor version) "/"
9011 name "-" version ".tar.xz"))
9012 (sha256
9013 (base32
9014 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9015 (build-system meson-build-system)
9016 (native-inputs
9017 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9018 ("gobject-introspection" ,gobject-introspection)
9019 ("intltool" ,intltool)
9020 ("libssh2" ,libssh2)
9021 ("pkg-config" ,pkg-config)
9022 ("python-pygobject" ,python-pygobject)
9023 ("python-wrapper" ,python-wrapper)
9024 ("vala" ,vala)))
9025 (inputs
9026 `(("glib" ,glib)
9027 ("libgit2" ,libgit2)))
9028 (synopsis "GLib wrapper around the libgit2 Git access library")
9029 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9030 access library. It only implements the core plumbing functions, not really the
9031 higher level porcelain stuff.")
9032 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9033 (license license:gpl2+)))
9034
9035 (define-public gitg
9036 (package
9037 (name "gitg")
9038 (version "3.32.1")
9039 (source (origin
9040 (method url-fetch)
9041 (uri (string-append "mirror://gnome/sources/" name "/"
9042 (version-major+minor version) "/"
9043 name "-" version ".tar.xz"))
9044 (sha256
9045 (base32
9046 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9047 (build-system meson-build-system)
9048 (arguments
9049 `(#:glib-or-gtk? #t
9050 #:phases
9051 (modify-phases %standard-phases
9052 (add-after 'unpack 'disable-post-install-partially
9053 (lambda _
9054 (substitute* "meson_post_install.py"
9055 (("'python'") ; there are no python sources to compile
9056 (string-append "'" (which "true") "'"))
9057 (("gtk-update-icon-cache") (which "true")))
9058 #t))
9059 (add-after 'unpack 'fix-test-sources
9060 (lambda _
9061 (substitute* "tests/libgitg/test-commit.vala"
9062 (("/bin/bash") (which "bash")))
9063 #t))
9064 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9065 (lambda* (#:key outputs #:allow-other-keys)
9066 (let ((prog (string-append (assoc-ref outputs "out")
9067 "/bin/gitg")))
9068 (wrap-program prog
9069 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9070 #t))))))
9071 (inputs
9072 `(("glib" ,glib)
9073 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9074 ("gtk+" ,gtk+)
9075 ("gtkspell3" ,gtkspell3)
9076 ("gtksourceview" ,gtksourceview-3)
9077 ("json-glib" ,json-glib)
9078 ("libdazzle" ,libdazzle)
9079 ("libgee" ,libgee)
9080 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9081 ("libgit2-glib" ,libgit2-glib)
9082 ("libpeas" ,libpeas)
9083 ("libsecret" ,libsecret)
9084 ("libsoup" ,libsoup)
9085 ("libxml2" ,libxml2)))
9086 (native-inputs
9087 `(("glib:bin" ,glib "bin")
9088 ("gtk+:bin" ,gtk+ "bin")
9089 ("gobject-introspection" ,gobject-introspection)
9090 ("intltool" ,intltool)
9091 ("pkg-config" ,pkg-config)
9092 ("vala" ,vala)))
9093 (synopsis "Graphical user interface for git")
9094 (description
9095 "gitg is a graphical user interface for git. It aims at being a small,
9096 fast and convenient tool to visualize the history of git repositories.
9097 Besides visualization, gitg also provides several utilities to manage your
9098 repository and commit your work.")
9099 (home-page "https://wiki.gnome.org/Apps/Gitg")
9100 (license license:gpl2+)))
9101
9102 (define-public gamin
9103 (package
9104 (name "gamin")
9105 (version "0.1.10")
9106 (source (origin
9107 (method url-fetch)
9108 (uri (string-append "mirror://gnome/sources/" name "/"
9109 (version-major+minor version) "/"
9110 name "-" version ".tar.bz2"))
9111 (sha256
9112 (base32
9113 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9114 (build-system gnu-build-system)
9115 (arguments
9116 `(#:phases
9117 (modify-phases %standard-phases
9118 (add-after 'unpack 'remove-deprecated-macro
9119 (lambda _
9120 (substitute* '("server/gam_node.c"
9121 "server/gam_subscription.h"
9122 "server/gam_node.h"
9123 "server/gam_subscription.c")
9124 (("G_CONST_RETURN") "const"))
9125 #t)))))
9126 (inputs
9127 `(("glib" ,glib)))
9128 (native-inputs
9129 `(("intltool" ,intltool)
9130 ("pkg-config" ,pkg-config)))
9131 (home-page "https://people.gnome.org/~veillard/gamin/")
9132 (synopsis "File alteration monitor")
9133 (description
9134 "Gamin is a file and directory monitoring system defined to be a subset
9135 of the FAM (File Alteration Monitor) system. This is a service provided by a
9136 library which allows to detect when a file or a directory has been modified.")
9137 (license license:gpl2+)))
9138
9139 (define-public gnome-mahjongg
9140 (package
9141 (name "gnome-mahjongg")
9142 (version "3.35.1")
9143 (source (origin
9144 (method git-fetch)
9145 (uri (git-reference
9146 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9147 (commit version)))
9148 (file-name (git-file-name name version))
9149 (sha256
9150 (base32
9151 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9152 (build-system meson-build-system)
9153 (arguments
9154 `(#:glib-or-gtk? #t))
9155 (native-inputs
9156 `(("appstream-glib" ,appstream-glib)
9157 ("gettext" ,gettext-minimal)
9158 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9159 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9160 ("itstool" ,itstool)
9161 ("pkg-config" ,pkg-config)
9162 ("vala" ,vala)))
9163 (propagated-inputs
9164 `(("dconf" ,dconf)))
9165 (inputs
9166 `(("glib" ,glib)
9167 ("gtk+" ,gtk+)
9168 ("librsvg" ,librsvg)))
9169 (synopsis "Mahjongg tile-matching game")
9170 (description "GNOME Mahjongg is a game based on the classic Chinese
9171 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9172 and a high score table.")
9173 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9174 (license license:gpl2+)))
9175
9176 (define-public gnome-themes-extra
9177 (package
9178 (name "gnome-themes-extra")
9179 (version "3.28")
9180 (source
9181 (origin
9182 (method url-fetch)
9183 (uri (string-append "mirror://gnome/sources/" name "/"
9184 (version-major+minor version) "/" name "-"
9185 version ".tar.xz"))
9186 (sha256
9187 (base32
9188 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9189 (build-system gnu-build-system)
9190 (arguments
9191 '(#:configure-flags
9192 ;; Don't create 'icon-theme.cache'.
9193 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9194 (true (string-append coreutils "/bin/true")))
9195 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9196 (native-inputs
9197 `(("glib:bin" ,glib "bin")
9198 ("intltool" ,intltool)
9199 ("pkg-config" ,pkg-config)))
9200 (inputs
9201 `(("glib" ,glib)
9202 ("gtk+" ,gtk+)
9203 ("gtk+-2" ,gtk+-2)
9204 ("librsvg" ,librsvg)
9205 ("libxml2" ,libxml2)))
9206 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9207 (synopsis "GNOME Extra Themes")
9208 (description "This package provides themes and related elements that don't
9209 really fit in other upstream packages. It offers legacy support for GTK+ 2
9210 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9211 index files needed for Adwaita to be used outside of GNOME.")
9212 (license license:lgpl2.1+)))
9213
9214 (define-public polari
9215 (package
9216 (name "polari")
9217 (version "3.32.2")
9218 (source (origin
9219 (method url-fetch)
9220 (uri (string-append "mirror://gnome/sources/polari/"
9221 (version-major+minor version)
9222 "/polari-" version ".tar.xz"))
9223 (sha256
9224 (base32
9225 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9226 (build-system meson-build-system)
9227 (arguments
9228 `(#:glib-or-gtk? #t
9229 #:phases
9230 (modify-phases %standard-phases
9231 (add-after 'unpack 'skip-gtk-update-icon-cache
9232 (lambda _
9233 (substitute* "meson/meson-postinstall.sh"
9234 (("gtk-update-icon-cache") (which "true")))
9235 #t))
9236 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9237 (lambda* (#:key outputs #:allow-other-keys)
9238 (let ((prog (string-append (assoc-ref outputs "out")
9239 "/bin/polari")))
9240 (wrap-program prog
9241 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9242 #t))))))
9243 (inputs
9244 `(("glib" ,glib)
9245 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9246 ("gspell" ,gspell)
9247 ("gtk+" ,gtk+)
9248 ("gjs" ,gjs)
9249 ("libsecret" ,libsecret)
9250 ("libsoup" ,libsoup)
9251 ("telepathy-glib" ,telepathy-glib)
9252 ("telepathy-logger" ,telepathy-logger)))
9253 (native-inputs
9254 `(("glib:bin" ,glib "bin")
9255 ("gobject-introspection" ,gobject-introspection)
9256 ("intltool" ,intltool)
9257 ("pkg-config" ,pkg-config)
9258 ("yelp-tools" ,yelp-tools)))
9259 (propagated-inputs
9260 `(("telepathy-idle" ,telepathy-idle)
9261 ("telepathy-mission-control" ,telepathy-mission-control)))
9262 (synopsis "Simple IRC Client")
9263 (description
9264 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9265 integrate seamlessly with the GNOME desktop.")
9266 (home-page "https://wiki.gnome.org/Apps/Polari")
9267 (license license:gpl2+)))