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