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