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