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