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