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