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