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