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