gnu: bind: Update to 9.16.3 [fixes CVE-2020-8616 & CVE-2020-8617].
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
CommitLineData
995b7261 1;;; GNU Guix --- Functional package management for GNU
109da1c0 2;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
5dc6d5ce 3;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
29a7c98a 4;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
7108425c 5;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
58d32305 6;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
8b877545 7;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
7aab13f1 8;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
63ad9b80 9;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
1e7464a9 10;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
ed783404 11;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
64a153bd 12;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
293ff8b2 13;;; Copyright © 2015 David Thompson <davet@gnu.org>
e19cb895 14;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
35e2d0cf 15;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
3c697ffd 16;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
03be9874 17;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
277a7d82 18;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
a56be436 19;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
e19f9c24 20;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
71d9b980 21;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
3c986a7d 22;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
e5e1df4d 23;;; Copyright © 2016 David Craven <david@craven.ch>
ac631328 24;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
cce0da5e 25;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
d04687dc 26;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
3c5dbd2b 27;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
d1d739fa 28;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
1d3fcf94 29;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
2cd1de32 30;;; Copyright © 2017, 2020 Brendan Tildesley <mail@brendan.scot>
0438f1d8 31;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
4e3fdeb7 32;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
2eee7ee3 33;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
a18f8eaf 34;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
e57c2adb 35;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
8caa4589 36;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
f2d56e39 37;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
3e9c80b2 38;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
a7a31827 39;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
633422b0 40;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
213315d4 41;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
4690e3a4 42;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
50e96d25 43;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
93beace0 44;;; Copyright © 2019 David Wilson <david@daviwil.com>
d36fa50f 45;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
f6501b9f 46;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
3861fb1c 47;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
fa01e10d 48;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
63db190a 49;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
0e26c3cf 50;;; Copyright © 2020 raingloom <raingloom@riseup.net>
1a17d21b 51;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
dd233e4d 52;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
995b7261
AE
53;;;
54;;; This file is part of GNU Guix.
55;;;
56;;; GNU Guix is free software; you can redistribute it and/or modify it
57;;; under the terms of the GNU General Public License as published by
58;;; the Free Software Foundation; either version 3 of the License, or (at
59;;; your option) any later version.
60;;;
61;;; GNU Guix is distributed in the hope that it will be useful, but
62;;; WITHOUT ANY WARRANTY; without even the implied warranty of
63;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
64;;; GNU General Public License for more details.
65;;;
66;;; You should have received a copy of the GNU General Public License
67;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
68
69(define-module (gnu packages gnome)
ed19903d 70 #:use-module (gnu packages)
ba5dd105 71 #:use-module (gnu packages admin)
411ba511 72 #:use-module (gnu packages aspell)
75016d07 73 #:use-module (gnu packages autotools)
7b212526 74 #:use-module (gnu packages avahi)
b29909b4 75 #:use-module (gnu packages backup)
6a180f6f 76 #:use-module (gnu packages base)
1e33331c 77 #:use-module (gnu packages bash)
5698b8b8 78 #:use-module (gnu packages bison)
aa51d92c 79 #:use-module (gnu packages boost)
5fc9b6c1 80 #:use-module (gnu packages build-tools)
df217748 81 #:use-module (gnu packages calendar)
b29909b4 82 #:use-module (gnu packages cdrom)
df12f04a 83 #:use-module (gnu packages check)
d61a894b 84 #:use-module (gnu packages cmake)
b29909b4 85 #:use-module (gnu packages compression)
8f523eb9 86 #:use-module (gnu packages crates-io)
23a22af6 87 #:use-module (gnu packages cups)
6e1bb642 88 #:use-module (gnu packages curl)
c3f29bc9 89 #:use-module (gnu packages cyrus-sasl)
6e1bb642 90 #:use-module (gnu packages databases)
255d1bbe 91 #:use-module (gnu packages dbm)
c769cf9f 92 #:use-module (gnu packages djvu)
ba5dd105 93 #:use-module (gnu packages dns)
b4ce6300 94 #:use-module (gnu packages docbook)
b29909b4 95 #:use-module (gnu packages documentation)
329d731b 96 #:use-module (gnu packages enchant)
b29909b4
TGR
97 #:use-module (gnu packages flex)
98 #:use-module (gnu packages fonts)
e762d943 99 #:use-module (gnu packages file-systems)
a56be436 100 #:use-module (gnu packages fontutils)
b29909b4 101 #:use-module (gnu packages freedesktop)
dfc407f3 102 #:use-module (gnu packages game-development)
fed5a689 103 #:use-module (gnu packages gettext)
b29909b4
TGR
104 #:use-module (gnu packages ghostscript)
105 #:use-module (gnu packages gl)
995b7261 106 #:use-module (gnu packages glib)
c1354b90 107 #:use-module (gnu packages gnupg)
23a22af6 108 #:use-module (gnu packages gnuzilla)
8d8c6bff 109 #:use-module (gnu packages geo)
b29909b4
TGR
110 #:use-module (gnu packages gperf)
111 #:use-module (gnu packages graphviz)
85f5dc19 112 #:use-module (gnu packages gstreamer)
d9c1a22b 113 #:use-module (gnu packages gtk)
6b888eff 114 #:use-module (gnu packages guile)
b645146f 115 #:use-module (gnu packages ibus)
03be9874 116 #:use-module (gnu packages icu4c)
b29909b4
TGR
117 #:use-module (gnu packages image)
118 #:use-module (gnu packages imagemagick)
119 #:use-module (gnu packages inkscape)
9cc98f8a 120 #:use-module (gnu packages iso-codes)
b29909b4 121 #:use-module (gnu packages kerberos)
85f5dc19 122 #:use-module (gnu packages libcanberra)
b64e217f 123 #:use-module (gnu packages libunistring)
0e26c3cf 124 #:use-module (gnu packages libunwind)
75016d07 125 #:use-module (gnu packages libusb)
b29909b4 126 #:use-module (gnu packages linux)
4e3fc547 127 #:use-module (gnu packages lirc)
7b212526 128 #:use-module (gnu packages lua)
b29909b4 129 #:use-module (gnu packages mail)
03be9874 130 #:use-module (gnu packages mp3)
b29909b4 131 #:use-module (gnu packages multiprecision)
64fce637 132 #:use-module (gnu packages music)
b29909b4
TGR
133 #:use-module (gnu packages ncurses)
134 #:use-module (gnu packages nettle)
ba5dd105 135 #:use-module (gnu packages networking)
5fc9b6c1 136 #:use-module (gnu packages ninja)
aff0cce9 137 #:use-module (gnu packages nss)
b29909b4 138 #:use-module (gnu packages openldap)
b645146f 139 #:use-module (gnu packages password-utils)
de1215e2 140 #:use-module (gnu packages pcre)
b29909b4 141 #:use-module (gnu packages pdf)
27477d2d 142 #:use-module (gnu packages perl)
f70d8383 143 #:use-module (gnu packages photo)
995b7261 144 #:use-module (gnu packages pkg-config)
b29909b4
TGR
145 #:use-module (gnu packages polkit)
146 #:use-module (gnu packages popt)
7d3bb433 147 #:use-module (gnu packages pretty-print)
23a22af6 148 #:use-module (gnu packages pulseaudio)
995b7261 149 #:use-module (gnu packages python)
00014781
RW
150 #:use-module (gnu packages python-crypto)
151 #:use-module (gnu packages python-web)
44d10b1f 152 #:use-module (gnu packages python-xyz)
cce0da5e 153 #:use-module (gnu packages rdesktop)
b29909b4 154 #:use-module (gnu packages readline)
a76d0f03 155 #:use-module (gnu packages ruby)
ec47c07d 156 #:use-module (gnu packages rust)
b29909b4 157 #:use-module (gnu packages samba)
75016d07 158 #:use-module (gnu packages scanner)
240cee8a 159 #:use-module (gnu packages selinux)
c27e02bf 160 #:use-module (gnu packages slang)
b29909b4
TGR
161 #:use-module (gnu packages speech)
162 #:use-module (gnu packages spice)
cd0322a3 163 #:use-module (gnu packages sqlite)
4a1bf090 164 #:use-module (gnu packages ssh)
2cd1de32 165 #:use-module (gnu packages swig)
8f9ac901 166 #:use-module (gnu packages tex)
33dc54b0 167 #:use-module (gnu packages time)
a7fd7b68 168 #:use-module (gnu packages tls)
2cd1de32 169 #:use-module (gnu packages valgrind)
3c5dbd2b 170 #:use-module (gnu packages version-control)
b29909b4 171 #:use-module (gnu packages video)
59132b80 172 #:use-module (gnu packages virtualization)
f2b96b3a 173 #:use-module (gnu packages vpn)
a18f8eaf 174 #:use-module (gnu packages web)
b29909b4
TGR
175 #:use-module (gnu packages webkit)
176 #:use-module (gnu packages xdisorg)
177 #:use-module (gnu packages xiph)
178 #:use-module (gnu packages xml)
d633f2f6 179 #:use-module (gnu packages xorg)
a76d0f03 180 #:use-module (gnu artwork)
8f523eb9 181 #:use-module (guix build-system cargo)
b29909b4
TGR
182 #:use-module (guix build-system cmake)
183 #:use-module (guix build-system glib-or-gtk)
184 #:use-module (guix build-system gnu)
185 #:use-module (guix build-system meson)
08be02be 186 #:use-module (guix build-system python)
b29909b4
TGR
187 #:use-module (guix build-system trivial)
188 #:use-module (guix download)
189 #:use-module (guix git-download)
190 #:use-module ((guix licenses) #:prefix license:)
191 #:use-module (guix packages)
192 #:use-module (guix utils)
a76d0f03 193 #:use-module (guix gexp)
8f523eb9
EF
194 #:use-module (guix monads)
195 #:use-module (guix store)
4e3fdeb7 196 #:use-module (ice-9 match)
c024ae36 197 #:use-module (srfi srfi-1))
85f5dc19
AE
198
199(define-public brasero
200 (package
201 (name "brasero")
e2bf423a 202 (version "3.12.2")
85f5dc19
AE
203 (source (origin
204 (method url-fetch)
d1df7554 205 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 206 (version-major+minor version) "/"
d1df7554 207 "brasero-" version ".tar.xz"))
85f5dc19
AE
208 (sha256
209 (base32
e2bf423a 210 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 211 (build-system glib-or-gtk-build-system)
e8627cd9
DH
212 (arguments
213 `(#:configure-flags (list
214 (string-append "--with-girdir="
215 (assoc-ref %outputs "out")
216 "/share/gir-1.0")
217 (string-append "--with-typelibdir="
218 (assoc-ref %outputs "out")
ce426deb
TD
219 "/lib/girepository-1.0"))
220 #:phases
221 (modify-phases %standard-phases
222 (add-before 'configure 'embed-growisofs
223 (lambda* (#:key inputs #:allow-other-keys)
224 (substitute* "plugins/growisofs/burn-growisofs.c"
225 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 226 #t)))))
85f5dc19
AE
227 (propagated-inputs
228 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
229 (native-inputs
230 `(("intltool" ,intltool)
ba549e17 231 ("itstool" ,itstool)
426adbe8 232 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 233 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 234 ("pkg-config" ,pkg-config)))
85f5dc19 235 (inputs
ce426deb
TD
236 `(("dvd+rw-tools" ,dvd+rw-tools)
237 ("glib" ,glib)
85f5dc19
AE
238 ("gnome-doc-utils" ,gnome-doc-utils)
239 ("gstreamer" ,gstreamer)
240 ("gst-plugins-base" ,gst-plugins-base)
241 ("gtk+" ,gtk+)
85f5dc19
AE
242 ("libcanberra" ,libcanberra)
243 ("libice" ,libice)
244 ("libnotify" ,libnotify)
245 ("libsm" ,libsm)
e8627cd9 246 ("libxml2" ,libxml2)
e8627cd9 247 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 248 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
249 (synopsis "CD/DVD burning tool for Gnome")
250 (description "Brasero is an application to burn CD/DVD for the Gnome
251Desktop. It is designed to be as simple as possible and has some unique
252features to enable users to create their discs easily and quickly.")
1dd26275 253 (license license:gpl2+)))
995b7261 254
a3cbcbaf
RG
255(define-public notification-daemon
256 (package
257 (name "notification-daemon")
258 (version "3.20.0")
259 (source
260 (origin
261 (method url-fetch)
262 (uri
263 (string-append "mirror://gnome/sources/" name "/"
264 (version-major+minor version) "/"
265 name "-" version ".tar.xz"))
266 (sha256
267 (base32
268 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
269 (build-system glib-or-gtk-build-system)
270 (native-inputs
271 `(("intltool" ,intltool)
272 ("pkg-config" ,pkg-config)))
273 (inputs
274 `(("glib" ,glib)
275 ("gtk+" ,gtk+)
276 ("x11" ,libx11)))
277 (synopsis "Notification Daemon for GNOME Desktop")
278 (description "Notification-Daemon is the server implementation of the
279freedesktop.org desktop notification specification.")
280 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
281 (license license:gpl2+)))
282
4e8bdbf8
RG
283(define-public mm-common
284 (package
285 (name "mm-common")
286 (version "1.0.0")
287 (source (origin
288 (method url-fetch)
289 (uri (string-append "mirror://gnome/sources/" name "/"
290 (version-major+minor version) "/"
291 name "-" version ".tar.xz"))
292 (sha256
293 (base32
294 "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr"))))
295 (build-system meson-build-system)
296 (arguments
297 `(#:phases
298 (modify-phases %standard-phases
299 (add-after 'unpack 'patch
300 (lambda* (#:key inputs #:allow-other-keys)
301 (substitute* "util/mm-common-prepare.in"
302 (("ln") (string-append (assoc-ref inputs "coreutils")
303 "/bin/ln"))
304 (("cp") (string-append (assoc-ref inputs "coreutils")
305 "/bin/cp"))
306 (("sed") (string-append (assoc-ref inputs "sed")
307 "/bin/sed"))
308 (("cat") (string-append (assoc-ref inputs "coreutils")
309 "/bin/cat")))
310 #t)))))
311 (native-inputs
4e8bdbf8 312 `(("coreutils" ,coreutils)
74a65885
DM
313 ("gettext" ,gettext-minimal)
314 ("pkg-config" ,pkg-config)
4e8bdbf8 315 ("sed" ,sed)))
74a65885
DM
316 (inputs
317 `(("python" ,python)))
4e8bdbf8
RG
318 (synopsis "Module of GNOME C++ bindings")
319 (description "The mm-common module provides the build infrastructure
320and utilities shared among the GNOME C++ binding libraries. Release
321archives of mm-common include the Doxygen tag file for the GNU C++
322Library reference documentation.")
323 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
324 (license license:gpl2+)))
325
e05ce17d
RG
326(define-public phodav
327 (package
328 (name "phodav")
329 (version "2.4")
330 (source (origin
331 (method url-fetch)
332 (uri (string-append "mirror://gnome/sources/" name "/"
333 (version-major+minor version) "/"
334 name "-" version ".tar.xz"))
335 (sha256
336 (base32
337 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
338 (build-system meson-build-system)
339 (native-inputs
340 `(("gettext" ,gettext-minimal)
341 ("glib:bin" ,glib "bin")
342 ("gtk-doc" ,gtk-doc)
343 ("pkg-config" ,pkg-config)))
344 (inputs
345 `(("avahi" ,avahi)
346 ("libgudev" ,libgudev)
347 ("libsoup" ,libsoup)))
348 (synopsis "WebDav server implementation using libsoup")
349 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
350but it is generic enough to be reused in other projects,
351in particular in the GNOME desktop.")
352 (home-page "https://wiki.gnome.org/phodav")
353 (license license:lgpl2.1+)))
354
29ae18db
RG
355(define-public gnome-color-manager
356 (package
357 (name "gnome-color-manager")
358 (version "3.32.0")
359 (source (origin
360 (method url-fetch)
361 (uri (string-append "mirror://gnome/sources/" name "/"
362 (version-major+minor version) "/"
363 name "-" version ".tar.xz"))
364 (sha256
365 (base32
366 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
367 (build-system meson-build-system)
368 (arguments
369 `(#:glib-or-gtk? #t
370 #:phases
371 (modify-phases %standard-phases
372 (add-before
373 'check 'pre-check
374 (lambda _
375 ;; Tests require a running X server.
376 (system "Xvfb :1 &")
377 (setenv "DISPLAY" ":1")
378 #t)))))
379 (native-inputs
380 `(("desktop-file-utils" ,desktop-file-utils)
381 ("gettext" ,gettext-minimal)
382 ("glib:bin" ,glib "bin")
383 ("gtk+:bin" ,gtk+ "bin")
384 ("itstool" ,itstool)
385 ("pkg-config" ,pkg-config)
386 ("xorg-server" ,xorg-server-for-tests)))
387 (inputs
388 `(("adwaita-icon-theme" ,adwaita-icon-theme)
389 ("appstream-glib" ,appstream-glib)
390 ("colord-gtk" ,colord-gtk)
391 ("exiv2" ,exiv2)
392 ("gnome-desktop" ,gnome-desktop)
393 ("libcanberra" ,libcanberra)
394 ("libexif" ,libexif)
395 ("libtiff" ,libtiff)
396 ("libxrandr" ,libxrandr)
397 ("libxtst" ,libxtst)
398 ("libxxf86vm" ,libxxf86vm)
399 ("vte" ,vte)
400 ("xorgproto" ,xorgproto)))
401 (synopsis "Color profile manager for the GNOME desktop")
402 (description "GNOME Color Manager is a session framework that makes
403it easy to manage, install and generate color profiles
404in the GNOME desktop.")
405 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 406 (license license:gpl2+)))
29ae18db 407
e05471a1
RG
408(define-public gnome-online-miners
409 (package
410 (name "gnome-online-miners")
49dcd7fc 411 (version "3.34.0")
e05471a1
RG
412 (source (origin
413 (method url-fetch)
414 (uri (string-append "mirror://gnome/sources/" name "/"
415 (version-major+minor version) "/"
416 name "-" version ".tar.xz"))
417 (sha256
418 (base32
49dcd7fc 419 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
e05471a1
RG
420 (build-system glib-or-gtk-build-system)
421 (native-inputs
422 `(("gettext" ,gettext-minimal)
423 ("glib:bin" ,glib "bin")
29ae18db 424 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
425 ("gtk+:bin" ,gtk+ "bin")
426 ("pkg-config" ,pkg-config)))
427 (inputs
428 `(("gnome-online-accounts" ,gnome-online-accounts)
429 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
430 ("grilo" ,grilo)
431 ("libgdata" ,libgdata)
432 ("libgfbgraph" ,gfbgraph)
433 ("libzapojit" ,libzapojit)
434 ("rest" ,rest)
435 ("tracker" ,tracker)))
436 (synopsis "Web Crawlers for GNOME")
437 (description "GNOME Online Miners provides a set of crawlers that
438go through your online content and index them locally in Tracker.
439It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
440 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 441 (license license:gpl2+)))
e05471a1 442
e2aed29c
RG
443(define-public gssdp
444 (package
445 (name "gssdp")
446 (version "1.2.2")
447 (source (origin
448 (method url-fetch)
449 (uri (string-append "mirror://gnome/sources/" name "/"
450 (version-major+minor version) "/"
451 name "-" version ".tar.xz"))
452 (sha256
453 (base32
454 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
455 (build-system meson-build-system)
456 (native-inputs
457 `(("gettext" ,gettext-minimal)
458 ("glib:bin" ,glib "bin")
459 ("gobject-introspection" ,gobject-introspection)
460 ("gtk-doc" ,gtk-doc)
461 ("pkg-config" ,pkg-config)
462 ("vala" ,vala)))
463 (inputs
464 `(("gtk+" ,gtk+)
465 ("libsoup" ,libsoup)))
466 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
467Protocol} for GNOME")
468 (description "This package provides a library to handle resource discovery
469and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
470a debugging tool, @command{gssdp-device-sniffer}.")
471 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
472 (license license:lgpl2.0+)))
473
291a85b2
RG
474(define-public gupnp
475 (package
476 (name "gupnp")
477 (version "1.2.2")
478 (source (origin
479 (method url-fetch)
480 (uri (string-append "mirror://gnome/sources/" name "/"
481 (version-major+minor version) "/"
482 name "-" version ".tar.xz"))
483 (sha256
484 (base32
485 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
486 (build-system meson-build-system)
487 (native-inputs
488 `(("gettext" ,gettext-minimal)
489 ("glib:bin" ,glib "bin")
490 ("gobject-introspection" ,gobject-introspection)
491 ("gtk-doc" ,gtk-doc)
492 ("pkg-config" ,pkg-config)
493 ("vala" ,vala)))
494 (inputs
495 `(("gssdp" ,gssdp)
496 ("gtk+" ,gtk+)
497 ("libsoup" ,libsoup)))
498 (synopsis "PnP API for GNOME")
499 (description "This package provides GUPnP, an object-oriented framework
500for creating UPnP devices and control points, written in C using
501@code{GObject} and @code{libsoup}.")
502 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
503 (license license:lgpl2.0+)))
504
747d7fe4
RG
505(define-public gupnp-dlna
506 (package
507 (name "gupnp-dlna")
508 (version "0.10.5")
509 (source (origin
510 (method url-fetch)
511 (uri (string-append "mirror://gnome/sources/" name "/"
512 (version-major+minor version) "/"
513 name "-" version ".tar.xz"))
514 (sha256
515 (base32
516 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
517 (build-system gnu-build-system)
518 (native-inputs
519 `(("gettext" ,gettext-minimal)
520 ("glib:bin" ,glib "bin")
521 ("gobject-introspection" ,gobject-introspection)
522 ("gtk-doc" ,gtk-doc)
523 ("libxml" ,libxml2)
524 ("pkg-config" ,pkg-config)
525 ("vala" ,vala)))
526 (inputs
527 `(("gstreamer" ,gstreamer)
528 ("gupnp" ,gupnp)))
529 (propagated-inputs
530 `(("gst-plugins-base" ,gst-plugins-base)
531 ("gst-plugins-good" ,gst-plugins-good)))
532 (synopsis "GUPnP DLNA for GNOME")
533 (description "This package provides a small utility library to
534support DLNA-related tasks such as media profile guessing, transcoding to a
535given profile, etc. DLNA is a subset of UPnP A/V.")
536 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
537 (license license:lgpl2.0+)))
538
1b4cb628
RG
539(define-public gupnp-av
540 (package
541 (name "gupnp-av")
542 (version "0.12.11")
543 (source (origin
544 (method url-fetch)
545 (uri (string-append "mirror://gnome/sources/" name "/"
546 (version-major+minor version) "/"
547 name "-" version ".tar.xz"))
548 (sha256
549 (base32
550 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
551 (build-system gnu-build-system)
552 (native-inputs
553 `(("gettext" ,gettext-minimal)
554 ("glib:bin" ,glib "bin")
555 ("gobject-introspection" ,gobject-introspection)
556 ("gtk-doc" ,gtk-doc)
557 ("libxml" ,libxml2)
558 ("pkg-config" ,pkg-config)))
559 (inputs
560 `(("gtk+" ,gtk+)
561 ("gupnp" ,gupnp)))
562 (synopsis "GUPnP A/V for GNOME")
563 (description "This package provides a small library for handling
564and implementation of UPnP A/V profiles.")
565 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
566 (license license:lgpl2.0+)))
e05471a1 567
02ebbca8
RG
568(define-public libmediaart
569 (package
570 (name "libmediaart")
571 (version "1.9.4")
572 (source (origin
573 (method url-fetch)
574 (uri (string-append "mirror://gnome/sources/" name "/"
575 (version-major+minor version) "/"
576 name "-" version ".tar.xz"))
577 (sha256
578 (base32
579 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
580 (build-system gnu-build-system)
581 (native-inputs
582 `(("glib:bin" ,glib "bin")
583 ("pkg-config" ,pkg-config)))
584 (inputs
585 `(("gdk-pixbuf" ,gdk-pixbuf)
586 ("gettext" ,gettext-minimal)
587 ("gobject-introspection" ,gobject-introspection)
588 ("gtk+:doc", gtk+ "doc")
589 ("vala" ,vala)))
590 (synopsis "Media art library for the GNOME desktop")
591 (description
592 "The libmediaart library is the foundation for media art caching,
593extraction, and lookup for applications on the desktop.")
594 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
595 (license license:lgpl2.1+)))
596
a26680eb
RG
597(define-public gnome-initial-setup
598 (package
599 (name "gnome-initial-setup")
600 (version "3.32.1")
601 (source (origin
602 (method url-fetch)
603 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
604 (version-major+minor version)
605 "/gnome-initial-setup-" version ".tar.xz"))
606 (sha256
607 (base32
608 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
609 (build-system meson-build-system)
610 (arguments
a65cc579
DM
611 '(#:configure-flags '(;; Enable camera support for user selfie.
612 "-Dcheese=auto"
c627e2cb
LC
613 "-Dsystemd=false")
614 #:phases (modify-phases %standard-phases
615 (add-after 'unpack 'set-gkbd-file-name
616 (lambda* (#:key inputs #:allow-other-keys)
617 ;; Allow the "Preview" button in the keyboard layout
618 ;; selection dialog to display the layout.
619 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
620 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
621 (("\"gkbd-keyboard-display")
622 (string-append "\"" libgnomekbd
623 "/bin/gkbd-keyboard-display")))
624 #t))))))
a26680eb
RG
625 (native-inputs
626 `(("gettext" ,gettext-minimal)
627 ("glib:bin" ,glib "bin")
628 ("gobject-introspection" ,gobject-introspection)
629 ("gtk+:bin" ,gtk+ "bin")
630 ("pkg-config" ,pkg-config)))
631 (inputs
632 `(("accountsservice" ,accountsservice)
633 ;("adwaita-icon-theme" ,adwaita-icon-theme)
634 ("gdm" ,gdm)
635 ("geoclue" ,geoclue)
636 ("gnome-desktop" ,gnome-desktop)
637 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
638 ("gnome-online-accounts" ,gnome-online-accounts)
639 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
640 ("gstreamer" ,gstreamer)
641 ("ibus" ,ibus)
642 ("json-glib" ,json-glib)
643 ("krb5" ,mit-krb5)
644 ("libgweather" ,libgweather)
645 ("libsecret" ,libsecret)
646 ("network-manager" ,network-manager)
647 ("network-manager-applet" ,network-manager-applet)
648 ("packagekit" ,packagekit)
649 ("polkit" ,polkit)
650 ("pwquality" ,libpwquality)
651 ("rest" ,rest)
652 ("upower" ,upower)
c627e2cb
LC
653 ("webkitgtk" ,webkitgtk)
654 ("libgnomekbd" ,libgnomekbd)))
a26680eb 655 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
656 (description "This package provides a set-up wizard when a
657user logs into GNOME for the first time. It typically provides a
658tour of all gnome components and allows the user to set them up.")
a26680eb
RG
659 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
660 (license license:gpl2)))
661
b5f01392
RG
662(define-public gnome-user-share
663 (package
664 (name "gnome-user-share")
665 (version "3.33.1")
666 (source (origin
667 (method url-fetch)
668 (uri (string-append "mirror://gnome/sources/" name "/"
669 (version-major+minor version) "/"
670 name "-" version ".tar.xz"))
671 (sha256
672 (base32
673 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
674 (build-system meson-build-system)
675 (arguments
676 `(#:glib-or-gtk? #t
677 #:configure-flags
678 `("-Dsystemd=false"
679 ;; Enable nautilus extension for file sharing.
680 "-Dnautilus_extension=true")))
681 (native-inputs
682 `(("gettext" ,gettext-minimal)
683 ("glib:bin" ,glib "bin")
684 ("gobject-introspection" ,gobject-introspection)
685 ("gtk+:bin" ,gtk+ "bin")
686 ("pkg-config" ,pkg-config)
687 ("yelp-tools" ,yelp-tools)))
688 (inputs
689 `(("glib" ,glib)
690 ("gnome-bluetooth" ,gnome-bluetooth)
691 ("gtk+" ,gtk+)
692 ("libcanberra" ,libcanberra)
693 ("libnotify" ,libnotify)
694 ("nautilus" ,nautilus))) ; For nautilus extension.
695 (synopsis "File sharing for GNOME desktop")
696 (description "GNOME User Share is a small package that binds together
697various free software projects to bring easy to use user-level file
698sharing to the masses.")
699 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 700 (license license:gpl2+)))
b5f01392 701
04b201bb
RG
702(define-public sushi
703 (package
704 (name "sushi")
705 (version "3.32.1")
706 (source (origin
707 (method url-fetch)
708 (uri (string-append "mirror://gnome/sources/" name "/"
709 (version-major+minor version) "/"
710 name "-" version ".tar.xz"))
711 (sha256
712 (base32
713 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
714 (build-system meson-build-system)
715 (arguments
716 `(#:glib-or-gtk? #t
717 #:phases
718 (modify-phases %standard-phases
719 (add-after 'glib-or-gtk-wrap 'wrap-typelib
720 (lambda* (#:key outputs #:allow-other-keys)
721 (let ((prog (string-append (assoc-ref outputs "out")
722 "/bin/sushi")))
723 ;; Put existing typelibs before sushi's deps, so as to correctly
724 ;; infer gdk-pixbuf
725 (wrap-program prog
726 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
727 #t))))))
728 (native-inputs
729 `(("glib:bin" ,glib "bin")
730 ("gettext" ,gettext-minimal)
731 ("gobject-introspection" ,gobject-introspection)
732 ("pkg-config" ,pkg-config)))
733 (inputs
734 `(("clutter" ,clutter)
735 ("clutter-gst" ,clutter-gst)
736 ("clutter-gtk" ,clutter-gtk)
737 ("evince" ,evince) ; For file previewing.
738 ("freetype" ,freetype)
739 ("gdk-pixbuf" ,gdk-pixbuf)
740 ("gjs" ,gjs)
741 ("gst-plugins-base" ,gst-plugins-base)
742 ("gstreamer" ,gstreamer)
743 ("gtksourceview" ,gtksourceview-3)
744 ("harfbuzz" ,harfbuzz)
745 ("libepoxy" ,libepoxy)
746 ("libmusicbrainz" ,libmusicbrainz)
747 ("libxml2" ,libxml2)
748 ("neon" ,neon)
749 ("webkitgtk" ,webkitgtk)))
750 (synopsis "File previewer for the GNOME desktop")
751 (description "Sushi is a DBus-activated service that allows applications to
752preview files on the GNOME desktop.")
753 (home-page "https://gitlab.gnome.org/GNOME/sushi")
754 (license license:gpl2+)))
755
89af0902
RG
756(define-public rygel
757 (package
758 (name "rygel")
759 (version "0.38.3")
760 (source (origin
761 (method url-fetch)
762 (uri (string-append "mirror://gnome/sources/" name "/"
763 (version-major+minor version) "/"
764 name "-" version ".tar.xz"))
765 (sha256
766 (base32
767 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
768 (build-system gnu-build-system)
769 (native-inputs
770 `(("gettext" ,gettext-minimal)
771 ("gobject-introspection" ,gobject-introspection)
772 ("gtk-doc" ,gtk-doc)
773 ("pkg-config" ,pkg-config)
774 ("vala" ,vala)))
775 (inputs
776 `(("gdk-pixbuf" ,gdk-pixbuf)
777 ("gssdp" ,gssdp)
778 ("gstreamer" ,gstreamer)
779 ("gst-plugins-base" ,gst-plugins-base)
780 ("gtk+" ,gtk+)
781 ("gupnp" ,gupnp)
782 ("gupnp-av" ,gupnp-av)
783 ("gupnp-dlna" ,gupnp-dlna)
784 ("libgee" ,libgee)
785 ("libmediaart" ,libmediaart)
786 ("libsoup" ,libsoup)
787 ("libxslt" ,libxslt)
788 ("libunistring" ,libunistring)
789 ("tracker" ,tracker)))
790 (synopsis "Share audio, video, and pictures with other devices")
791 (description
792 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
793MediaRenderer}) for GNOME that allows you to easily share audio, video, and
794pictures, and to control a media player on your home network.
795
796Rygel achieves interoperability with other devices by trying to conform to the
797strict requirements of DLNA and by converting media on-the-fly to formats that
798client devices can handle.")
799 (home-page "https://wiki.gnome.org/Projects/Rygel")
800 (license (list
801 ;; For logo (data/icons/*).
802 license:cc-by-sa3.0
803 ;; For all others.
804 license:lgpl2.1+))))
805
47e87093
RG
806(define-public libnma
807 (package
808 (name "libnma")
809 (version "1.8.26")
810 (source (origin
811 (method url-fetch)
812 (uri (string-append "mirror://gnome/sources/" name "/"
813 (version-major+minor version) "/"
814 name "-" version ".tar.xz"))
815 (sha256
816 (base32
817 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
818 (build-system meson-build-system)
819 (arguments
820 `(#:glib-or-gtk? #t))
821 (native-inputs
822 `(("gettext" ,gettext-minimal)
823 ("glib:bin" ,glib "bin")
824 ("gtk-doc" ,gtk-doc)
825 ("gobject-introspection" ,gobject-introspection)
826 ("pkg-config" ,pkg-config)))
827 (inputs
828 `(("adwaita-icon-theme" ,adwaita-icon-theme)
829 ("gcr" ,gcr)
830 ("gtk+" ,gtk+)
831 ("iso-codes" ,iso-codes)
832 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
833 ("network-manager" ,network-manager)))
834 (synopsis "Network Manager's applet library")
835 (description "Libnma is an applet library for Network Manager. It was
836initially part of network-manager-applet and has now become a separate
837project.")
838 (home-page "https://gitlab.gnome.org/GNOME/libnma")
839
840 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
841 ;; "LGPL-2.1+".
842 (license license:gpl2+)))
843
30416265
RG
844(define-public gnome-menus
845 (package
846 (name "gnome-menus")
847 (version "3.32.0")
848 (source (origin
849 (method url-fetch)
850 (uri (string-append "mirror://gnome/sources/gnome-menus/"
851 (version-major+minor version) "/"
852 name "-" version ".tar.xz"))
853 (sha256
854 (base32
855 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
856 (build-system gnu-build-system)
857 (native-inputs
858 `(("gettext" ,gettext-minimal)
859 ("glib" ,glib)
860 ("pkg-config" ,pkg-config)))
861 (synopsis "Menu support for GNOME desktop")
862 (description "GNOME Menus contains the libgnome-menu library, the layout
863configuration files for the GNOME menu, as well as a simple menu editor.")
864 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 865 (license license:lgpl2.0+)))
30416265 866
d61a894b
CB
867(define-public deja-dup
868 (package
869 (name "deja-dup")
870 (version "34.3")
871 (source (origin
872 (method url-fetch)
873 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
874 (sha256
875 (base32
876 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
877 (patches
878 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
879 (build-system glib-or-gtk-build-system)
880 (arguments
881 `(#:modules ((guix build gnu-build-system)
882 ((guix build cmake-build-system) #:prefix cmake:)
883 (guix build glib-or-gtk-build-system)
884 (guix build utils))
885 #:imported-modules (,@%glib-or-gtk-build-system-modules
886 (guix build cmake-build-system))
887 #:test-target "test"
888 #:configure-flags (list (string-append
889 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
890 (string-append
891 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
892 #:phases
893 (modify-phases %standard-phases
894 (add-after 'unpack 'patch-lockfile-deletion
895 (lambda rest
896 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
897 (("/bin/rm")
898 (which "rm")))))
899 (replace 'configure
900 (assoc-ref cmake:%standard-phases 'configure))
901 (delete 'check) ;; Fails due to issues with DBus
902 (add-after 'install 'wrap-deja-dup
903 (lambda* (#:key inputs outputs #:allow-other-keys)
904 (let ((python (assoc-ref inputs "python"))
905 (python-path (getenv "PYTHONPATH"))
906 (duplicity (assoc-ref inputs "duplicity"))
907 (out (assoc-ref outputs "out")))
908 (for-each
909 (lambda (program)
910 (wrap-program program
911 `("PATH" ":" prefix (,(string-append python "/bin")
912 ,(string-append duplicity "/bin"))))
913 (wrap-program program
914 `("PYTHONPATH" ":" prefix (,python-path))))
915
916 (find-files (string-append out "/bin")))
917 #t))))))
918 (inputs
919 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
920 ("gobject-introspection" ,gobject-introspection)
921 ("duplicity" ,duplicity)
61506fe5 922 ("python" ,python-2)
d61a894b
CB
923 ("python-pygobject" ,python2-pygobject)
924 ("gtk+" ,gtk+)
925 ("libnotify" ,libnotify)
926 ("libpeas" ,libpeas)
927 ("libsecret" ,libsecret)
928 ("packagekit" ,packagekit)))
929 (native-inputs
930 `(("pkg-config" ,pkg-config)
931 ("vala" ,vala)
932 ("gettext" ,gettext-minimal)
933 ("itstool" ,itstool)
934 ("intltool" ,intltool)
c69959f0 935 ("cmake" ,cmake-minimal)))
d61a894b
CB
936 (home-page "https://launchpad.net/deja-dup")
937 (synopsis "Simple backup tool, for regular encrypted backups")
938 (description
939 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
940uses duplicity as the backend, which supports incremental backups and storage
941either on a local, or remote machine via a number of methods.")
942 (license license:gpl3+)))
943
823b77fb
RG
944(define-public gnome-user-docs
945 (package
946 (name "gnome-user-docs")
947 (version "3.32.3")
948 (source
949 (origin
950 (method url-fetch)
951 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
952 (version-major+minor version)
953 "/gnome-user-docs-" version ".tar.xz"))
954 (sha256
955 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
956 (build-system gnu-build-system)
957 (native-inputs
958 `(("gettext" ,gettext-minimal)
959 ("itstool" ,itstool)
960 ("pkg-config" ,pkg-config)
961 ("xmllint" ,libxml2)))
962 (synopsis "User documentation for the GNOME desktop")
963 (description
964 "The GNOME User Documentation explains how to use the GNOME desktop and its
965components. It covers usage and setup of the core GNOME programs by end-users
966and system administrators.")
967 (home-page "https://live.gnome.org/DocumentationProject")
968 (license license:cc-by3.0)))
969
be93299d
RG
970(define-public gnome-getting-started-docs
971 (package
972 (name "gnome-getting-started-docs")
973 (version "3.32.2")
974 (source
975 (origin
976 (method url-fetch)
977 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
978 (version-major+minor version)
979 "/gnome-getting-started-docs-" version ".tar.xz"))
980 (sha256
981 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
982 (build-system gnu-build-system)
983 (native-inputs
984 `(("gettext" ,gettext-minimal)
985 ("itstool" ,itstool)
986 ("pkg-config" ,pkg-config)
987 ("xmllint" ,libxml2)))
988 (synopsis "Help to get new users started with the GNOME desktop")
989 (description
990 "The GNOME Getting Started Documentation contains GNOME's intuitive
991\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
992
993It is normally used together with @command{gnome-initial-setup}, but is also
994useful as a tutorial and users' guide for new or less experienced users.")
995 (home-page "https://live.gnome.org/DocumentationProject")
996 (license license:cc-by-sa3.0)))
997
a56be436
RJ
998(define-public dia
999 ;; This version from GNOME's repository includes fixes for compiling with
1000 ;; recent versions of the build tools. The latest activity on the
1001 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1002 ;; fixes in 2016.
1003 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
1004 (package
1005 (name "dia")
914c8cdf 1006 (version (git-version "0.97.3" "1" commit))
a56be436
RJ
1007 (source (origin
1008 (method git-fetch)
1009 (uri (git-reference
914c8cdf 1010 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 1011 (commit commit)))
914c8cdf 1012 (file-name (git-file-name name version))
a56be436
RJ
1013 (sha256
1014 (base32
1015 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
1016 (build-system gnu-build-system)
1017 (inputs
a315afa3 1018 `(("freetype" ,freetype)
a56be436
RJ
1019 ("gdk-pixbuf" ,gdk-pixbuf)
1020 ("gtk+" ,gtk+-2)
a315afa3 1021 ("libart-lgpl" ,libart-lgpl)
a56be436 1022 ("libxml2" ,libxml2)
a315afa3 1023 ("pango" ,pango)))
a56be436 1024 (native-inputs
a315afa3 1025 `(("autoconf" ,autoconf)
a56be436 1026 ("automake" ,automake)
a315afa3
EF
1027 ("intltool" ,intltool)
1028 ("glib" ,glib "bin")
a56be436
RJ
1029 ("libtool" ,libtool)
1030 ("perl" ,perl)
a315afa3 1031 ("pkg-config" ,pkg-config)
a56be436 1032 ("python-wrapper" ,python-wrapper)))
a56be436
RJ
1033 (home-page "https://wiki.gnome.org/Apps/Dia")
1034 (synopsis "Diagram creation for GNOME")
1035 (description "Dia can be used to draw different types of diagrams, and
1036includes support for UML static structure diagrams (class diagrams), entity
1037relationship modeling, and network diagrams. The program supports various file
1038formats like PNG, SVG, PDF and EPS.")
1039 (license license:gpl2+))))
1040
d0b19e44
RW
1041;; This is the unstable release, but it is required for the current stable
1042;; release of gvfs (1.38.1).
adc5cb1b
KK
1043(define-public libgdata
1044 (package
1045 (name "libgdata")
d0b19e44 1046 (version "0.17.9")
adc5cb1b
KK
1047 (source (origin
1048 (method url-fetch)
1049 (uri (string-append "mirror://gnome/sources/" name "/"
1050 (version-major+minor version) "/"
1051 name "-" version ".tar.xz"))
1052 (sha256
1053 (base32
d0b19e44 1054 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
1055 (build-system gnu-build-system)
1056 (arguments
1057 '(#:phases
1058 (modify-phases %standard-phases
448052b7
TGR
1059 (add-before 'check 'disable-failing-tests
1060 (lambda _
1061 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1062 ;; They have been removed in libgdata 0.17.6, so just do the same.
1063 (substitute* "gdata/tests/Makefile"
1064 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
1065 #t)))))
1066 (native-inputs
1067 `(("glib:bin" ,glib "bin")
1068 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1069 ("intltool" ,intltool)
1070 ("pkg-config" ,pkg-config)
1071 ("uhttpmock" ,uhttpmock)))
1072 (inputs
1073 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 1074 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
1075 (propagated-inputs
1076 `(("gcr" ,gcr)
d0b19e44 1077 ("glib" ,glib)
14c297fd 1078 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 1079 ("json-glib" ,json-glib)
adc5cb1b 1080 ("liboauth" ,liboauth)
d0b19e44 1081 ("libsoup" ,libsoup)
adc5cb1b
KK
1082 ("libxml2" ,libxml2)))
1083 (home-page "https://wiki.gnome.org/Projects/libgdata")
1084 (synopsis "Library for accessing online service APIs")
1085 (description
1086 "libgdata is a GLib-based library for accessing online service APIs using
1087the GData protocol — most notably, Google's services. It provides APIs to
1088access the common Google services, and has full asynchronous support.")
1089 (license license:lgpl2.1+)))
1090
94e10cf4
KK
1091(define-public libgxps
1092 (package
1093 (name "libgxps")
66470a5a 1094 (version "0.3.1")
94e10cf4
KK
1095 (source (origin
1096 (method url-fetch)
7f10628c 1097 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
1098 (version-major+minor version) "/"
1099 name "-" version ".tar.xz"))
1100 (sha256
1101 (base32
66470a5a 1102 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 1103 (build-system meson-build-system)
94e10cf4
KK
1104 (native-inputs
1105 `(("gobject-introspection" ,gobject-introspection)
1106 ("pkg-config" ,pkg-config)))
1107 (inputs
c8d62d93 1108 `(("gtk+" ,gtk+)
b6b3e512 1109 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1110 ("lcms" ,lcms)
0a6e9e13 1111 ("libtiff" ,libtiff)))
c8d62d93
MB
1112 (propagated-inputs
1113 ;; In Requires of libgxps.pc.
1114 `(("cairo" ,cairo)
1115 ("glib" ,glib)
1116 ("libarchive" ,libarchive)))
94e10cf4
KK
1117 (home-page "https://wiki.gnome.org/Projects/libgxps")
1118 (synopsis "GObject-based library for handling and rendering XPS documents")
1119 (description
1120 "libgxps is a GObject-based library for handling and rendering XPS
1121documents. This package also contains binaries that can convert XPS documents
1122to other formats.")
1123 (license license:lgpl2.1+)))
1124
4e09f57a
RG
1125(define-public gnome-characters
1126 (package
1127 (name "gnome-characters")
1128 (version "3.30.0")
1129 (source
1130 (origin
1131 (method url-fetch)
1132 (uri (string-append "mirror://gnome/sources/"
1133 "gnome-characters/" (version-major+minor version)
1134 "/gnome-characters-" version ".tar.xz"))
1135 (sha256
1136 (base32
1137 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1138 (build-system meson-build-system)
5757c641 1139 (arguments
1140 `(#:glib-or-gtk? #t
1141 #:phases (modify-phases %standard-phases
1142 (add-after 'install 'wrap
1143 (lambda* (#:key outputs #:allow-other-keys)
1144 ;; GNOME Characters needs Typelib files from GTK and
1145 ;; gnome-desktop.
1146 (wrap-program (string-append (assoc-ref outputs "out")
1147 "/bin/gnome-characters")
1148 `("GI_TYPELIB_PATH" ":" prefix
1149 (,(getenv "GI_TYPELIB_PATH"))))
1150 #t)))))
4e09f57a
RG
1151 (native-inputs
1152 `(("gettext" ,gettext-minimal)
1153 ("glib:bin" ,glib "bin")
1154 ("gtk+:bin" ,gtk+ "bin")
1155 ("pkg-config" ,pkg-config)
1156 ("python" ,python-minimal)))
1157 (inputs
1158 `(("gjs" ,gjs)
1159 ("gtk+" ,gtk+)
5757c641 1160 ("libunistring" ,libunistring)
1161 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1162 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1163 (synopsis "Find and insert unusual characters")
1164 (description "Characters is a simple utility application to find
1165and insert unusual characters. It allows you to quickly find the
1166character you are looking for by searching for keywords.")
1167 (license license:bsd-3)))
1168
7aab13f1
ML
1169(define-public gnome-common
1170 (package
1171 (name "gnome-common")
af83490d 1172 (version "3.18.0")
7aab13f1
ML
1173 (source
1174 (origin
1175 (method url-fetch)
1176 (uri (string-append "mirror://gnome/sources/" name "/"
1177 (version-major+minor version) "/"
1178 name "-" version ".tar.xz"))
1179 (sha256
1180 (base32
af83490d 1181 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1182 (build-system gnu-build-system)
1183 (home-page "https://www.gnome.org/")
1184 (synopsis "Bootstrap GNOME modules built from Git")
1185 (description "gnome-common contains various files needed to bootstrap
1186GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1187can be used to configure a source directory checked out from Git and some
1188commonly used macros.")
1189 (license license:gpl2+)))
1190
4e868d22
RG
1191(define-public gnome-contacts
1192 (package
1193 (name "gnome-contacts")
b3492e39 1194 (version "3.34")
4e868d22
RG
1195 (source (origin
1196 (method url-fetch)
1197 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1198 (version-major+minor version) "/"
1199 name "-" version ".tar.xz"))
1200 (sha256
1201 (base32
b3492e39 1202 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
4e868d22
RG
1203 (build-system meson-build-system)
1204 (arguments
b3492e39
KK
1205 `(#:configure-flags '("-Dcheese=false")
1206 #:phases
4e868d22
RG
1207 (modify-phases %standard-phases
1208 (add-after 'unpack 'generate-vapis
1209 (lambda* (#:key inputs #:allow-other-keys)
1210 ;; To generate goa's missing .vapi file
1211 (define goa
1212 (assoc-ref inputs "gnome-online-accounts:lib"))
1213
1214 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1215 "--library=goa-1.0"
1216 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
b3492e39
KK
1217 #t))
1218 (add-after 'unpack 'skip-gtk-update-icon-cache
1219 ;; Don't create 'icon-theme.cache'.
1220 (lambda _
1221 (substitute* "build-aux/meson_post_install.py"
1222 (("gtk-update-icon-cache") "true"))
4e868d22
RG
1223 #t)))))
1224 (native-inputs
1225 `(("glib:bin" ,glib "bin")
4e868d22
RG
1226 ("pkg-config" ,pkg-config)))
1227 (inputs
b3492e39 1228 `(("docbook-xml" ,docbook-xml)
4e868d22
RG
1229 ("dockbook-xsl" ,docbook-xsl)
1230 ("evolution-data-server" ,evolution-data-server)
1231 ("gettext" ,gettext-minimal)
1232 ("gnome-desktop" ,gnome-desktop)
1233 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1234 ("gobject-introspection" ,gobject-introspection)
1235 ("gst-plugins-base" ,gst-plugins-base)
1236 ("gtk+" ,gtk+)
1237 ("libgee" ,libgee)
1238 ("libxslt" ,libxslt)
1239 ("telepathy-glib" ,telepathy-glib)
1240 ("vala" ,vala)))
1241 (propagated-inputs
1242 `(("folks", folks)
1243 ("telepathy-mission-control" ,telepathy-mission-control)))
1244 (synopsis "GNOME's integrated address book")
1245 (description
1246 "GNOME Contacts organizes your contact information from online and
1247offline sources, providing a centralized place for managing your contacts.")
1248 (home-page "https://wiki.gnome.org/Apps/Contacts")
1249 (license license:gpl2+)))
1250
9cc98f8a
CR
1251(define-public gnome-desktop
1252 (package
1253 (name "gnome-desktop")
8a7afc81 1254 (version "3.34.2")
9cc98f8a
CR
1255 (source
1256 (origin
1257 (method url-fetch)
b38e45d8
EB
1258 (uri (string-append "mirror://gnome/sources/" name "/"
1259 (version-major+minor version) "/"
9cc98f8a
CR
1260 name "-" version ".tar.xz"))
1261 (sha256
1262 (base32
8a7afc81 1263 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
e8a26caa 1264 (build-system meson-build-system)
a0fe7c06
CB
1265 (arguments
1266 '(#:phases
1267 (modify-phases %standard-phases
1268 (add-before 'configure 'patch-path
1269 (lambda* (#:key inputs #:allow-other-keys)
1270 (let ((libc (assoc-ref inputs "libc")))
1271 (substitute* "libgnome-desktop/gnome-languages.c"
1272 (("\"locale\"")
1273 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
1274 #t)))
1275 (add-before 'check 'pre-check
1276 (lambda* (#:key inputs #:allow-other-keys)
1277 ;; Tests require a running X server and locales.
1278 (system "Xvfb :1 &")
1279 (setenv "DISPLAY" ":1")
1280 (setenv "GUIX_LOCPATH"
1281 (string-append (assoc-ref inputs "glibc-locales")
1282 "/lib/locale"))
1283 #t)))))
9cc98f8a 1284 (native-inputs
e8a26caa
KK
1285 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1286 ("glibc-locales" ,glibc-locales) ; for tests
1287 ("gobject-introspection" ,gobject-introspection)
a8340482 1288 ("itstool" ,itstool)
bcb354ad
SB
1289 ("intltool" ,intltool)
1290 ("pkg-config" ,pkg-config)
e8a26caa
KK
1291 ("xmllint" ,libxml2)
1292 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1293 (propagated-inputs
1294 ;; Required by gnome-desktop-3.0.pc.
1295 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1296 ("gtk+" ,gtk+)
9cc98f8a 1297 ("iso-codes" ,iso-codes)
9863ce20 1298 ("libseccomp" ,libseccomp)
9cc98f8a 1299 ("libx11" ,libx11)
e8a26caa
KK
1300 ("xkeyboard-config" ,xkeyboard-config)))
1301 (inputs
1302 `(("gdk-pixbuf" ,gdk-pixbuf)
1303 ("glib" ,glib)
9cc98f8a
CR
1304 ("libxext" ,libxext)
1305 ("libxkbfile" ,libxkbfile)
e8a26caa 1306 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1307 (home-page "https://www.gnome.org/")
1308 (synopsis
35b9e423 1309 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1310 (description
1311 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1312on the desktop, but that cannot live in the platform for various reasons.
1313There is no API or ABI guarantee, although we are doing our best to provide
1314stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1315
1316The gnome-about program helps find which version of GNOME is installed.")
1317 ; Some bits under the LGPL.
1dd26275 1318 (license license:gpl2+)))
9cc98f8a 1319
995b7261
AE
1320(define-public gnome-doc-utils
1321 (package
1322 (name "gnome-doc-utils")
1323 (version "0.20.10")
1324 (source
1325 (origin
1326 (method url-fetch)
b38e45d8
EB
1327 (uri (string-append "mirror://gnome/sources/" name "/"
1328 (version-major+minor version) "/"
995b7261
AE
1329 name "-" version ".tar.xz"))
1330 (sha256
1331 (base32
1332 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1333 (build-system gnu-build-system)
c4c4cc05 1334 (native-inputs
995b7261 1335 `(("intltool" ,intltool)
b4ce6300 1336 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1337 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1338 ("libxml2" ,libxml2)
1339 ("libxslt" ,libxslt)
1340 ("pkg-config" ,pkg-config)
1341 ("python-2" ,python-2)))
995b7261
AE
1342 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1343 (synopsis
1344 "Documentation utilities for the Gnome project")
1345 (description
1346 "Gnome-doc-utils is a collection of documentation utilities for the
1347Gnome project. It includes xml2po tool which makes it easier to translate
1348and keep up to date translations of documentation.")
1dd26275 1349 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1350
6c4f7022
DC
1351(define-public gnome-disk-utility
1352 (package
1353 (name "gnome-disk-utility")
262e660e 1354 (version "3.34.0")
6c4f7022
DC
1355 (source (origin
1356 (method url-fetch)
1357 (uri (string-append "mirror://gnome/sources/" name "/"
1358 (version-major+minor version) "/"
1359 name "-" version ".tar.xz"))
1360 (sha256
1361 (base32
262e660e 1362 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
4b9a65bf 1363 (build-system meson-build-system)
321c73c3 1364 (arguments
262e660e
KK
1365 '(#:configure-flags '("-Dlogind=libelogind")
1366 #:phases
321c73c3
EF
1367 (modify-phases %standard-phases
1368 (add-after 'unpack 'skip-gtk-update-icon-cache
1369 ;; Don't create 'icon-theme.cache'.
1370 (lambda _
1371 (substitute* "meson_post_install.py"
1372 (("gtk-update-icon-cache") "true"))
1373 #t)))))
6c4f7022
DC
1374 (native-inputs
1375 `(("glib:bin" ,glib "bin")
1376 ("intltool" ,intltool)
1377 ("pkg-config" ,pkg-config)
1378 ("docbook-xml" ,docbook-xml)
1379 ("docbook-xsl" ,docbook-xsl)
1380 ("libxml2" ,libxml2)
1381 ("libxslt" ,libxslt)))
1382 (inputs
262e660e
KK
1383 `(("elogind" ,elogind)
1384 ("glib" ,glib)
6c4f7022
DC
1385 ("appstream-glib" ,appstream-glib)
1386 ("gnome-settings-daemon" ,gnome-settings-daemon)
1387 ("gtk+" ,gtk+)
1388 ("libcanberra" ,libcanberra)
1389 ("libdvdread" ,libdvdread)
1390 ("libnotify" ,libnotify)
1391 ("libpwquality" ,libpwquality)
1392 ("libsecret" ,libsecret)
1393 ("udisks" ,udisks)))
1394 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1395 (synopsis "Disk management utility for GNOME")
1396 (description "Disk management utility for GNOME.")
1397 (license license:gpl2+)))
1398
3d217317
RG
1399(define-public gnome-font-viewer
1400 (package
1401 (name "gnome-font-viewer")
1402 (version "3.30.0")
1403 (source (origin
1404 (method url-fetch)
1405 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1406 (version-major+minor version)
1407 "/gnome-font-viewer-" version ".tar.xz"))
1408 (sha256
1409 (base32
1410 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1411 (build-system meson-build-system)
1412 (arguments
1413 '(#:phases
1414 (modify-phases %standard-phases
1415 (add-after 'unpack 'patch-post-install-script
1416 (lambda _
1417 (substitute* "meson-postinstall.sh"
1418 (("update-desktop-database") (which "true")))
1419 #t)))))
1420 (native-inputs
1421 `(("gettext" ,gettext-minimal)
1422 ("glib:bin" ,glib "bin")
1423 ("pkg-config" ,pkg-config)))
1424 (inputs
1425 `(("glib" ,glib)
1426 ("gnome-desktop" ,gnome-desktop)
1427 ("gtk+" ,gtk+)))
1428 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1429 (synopsis "GNOME Fonts")
1430 (description "Application to show you the fonts installed on your computer
1431for your use as thumbnails. Selecting any thumbnails shows the full view of how
1432the font would look under various sizes.")
1433 (license license:gpl2+)))
1434
8ff49011
RW
1435(define-public gcr
1436 (package
1437 (name "gcr")
1de804da 1438 (version "3.34.0")
8ff49011 1439 (source (origin
0daf0efb
RW
1440 (method url-fetch)
1441 (uri (string-append "mirror://gnome/sources/" name "/"
1442 (version-major+minor version) "/"
1443 name "-" version ".tar.xz"))
1444 (sha256
1445 (base32
1de804da 1446 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
8ff49011
RW
1447 (build-system gnu-build-system)
1448 (arguments
0daf0efb
RW
1449 '(#:phases
1450 (modify-phases %standard-phases
1451 ;; These fail because /var/lib/dbus/machine-id is not present in the
1452 ;; build environment.
1453 (add-after 'unpack 'disable-failing-tests
1454 (lambda _
1de804da
MB
1455 (substitute* "Makefile.in"
1456 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1457 ""))
0daf0efb
RW
1458 #t))
1459 (add-before 'check 'pre-check
1460 (lambda _
1461 ;; Some tests expect to write to $HOME.
1462 (setenv "HOME" "/tmp")
1463 #t)))))
8ff49011
RW
1464 (inputs
1465 `(("dbus" ,dbus)
0daf0efb 1466 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1467 ("libgcrypt" ,libgcrypt)))
1468 (native-inputs
1de804da 1469 `(("python" ,python-wrapper) ;for tests
8ff49011 1470 ("pkg-config" ,pkg-config)
1de804da 1471 ("gettext" ,gettext-minimal)
8ff49011 1472 ("glib" ,glib "bin")
2af4f5b0 1473 ("gobject-introspection" ,gobject-introspection)
0daf0efb 1474 ("libxml2" ,libxml2)
bea6b829 1475 ("vala" ,vala)
2af4f5b0 1476 ("xsltproc" ,libxslt)))
8ff49011
RW
1477 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1478 (propagated-inputs
1479 `(("p11-kit" ,p11-kit)
1480 ("glib" ,glib)
1481 ("gtk+" ,gtk+)))
f032d0be 1482 (home-page "https://www.gnome.org")
8ff49011
RW
1483 (synopsis "Libraries for displaying certificates and accessing key stores")
1484 (description
1485 "The GCR package contains libraries used for displaying certificates and
1486accessing key stores. It also provides the viewer for crypto files on the
1487GNOME Desktop.")
1488 (license license:lgpl2.1+)))
1489
c1354b90
LC
1490(define-public libgnome-keyring
1491 (package
1492 (name "libgnome-keyring")
5e8aec2c 1493 (version "3.12.0")
c1354b90
LC
1494 (source (origin
1495 (method url-fetch)
b38e45d8
EB
1496 (uri (string-append "mirror://gnome/sources/" name "/"
1497 (version-major+minor version) "/"
1498 name "-" version ".tar.xz"))
c1354b90
LC
1499 (sha256
1500 (base32
5e8aec2c 1501 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1502 (build-system gnu-build-system)
c1354b90 1503 (inputs
c4c4cc05 1504 `(("libgcrypt" ,libgcrypt)
c1354b90 1505 ("dbus" ,dbus)))
c4c4cc05
JD
1506 (native-inputs
1507 `(("pkg-config" ,pkg-config)
426adbe8 1508 ("glib" ,glib "bin")
c4c4cc05 1509 ("intltool" ,intltool)))
c1354b90
LC
1510 (propagated-inputs
1511 ;; Referred to in .h files and .pc.
1512 `(("glib" ,glib)))
f032d0be 1513 (home-page "https://www.gnome.org")
c1354b90
LC
1514 (synopsis "Accessing passwords from the GNOME keyring")
1515 (description
1516 "Client library to access passwords from the GNOME keyring.")
1517
1518 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1519 (license license:lgpl2.0+)))
c1354b90 1520
e99a3d6f
RW
1521(define-public gnome-keyring
1522 (package
1523 (name "gnome-keyring")
14faeadd 1524 (version "3.34.0")
e99a3d6f
RW
1525 (source (origin
1526 (method url-fetch)
1527 (uri (string-append "mirror://gnome/sources/" name "/"
1528 (version-major+minor version) "/"
1529 name "-" version ".tar.xz"))
1530 (sha256
1531 (base32
14faeadd 1532 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
e99a3d6f
RW
1533 (build-system gnu-build-system)
1534 (arguments
1535 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1536 ;not exist
1537 #:configure-flags
1538 (list
1539 (string-append "--with-pkcs11-config="
1540 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1541 (string-append "--with-pkcs11-modules="
1542 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1543 #:phases
1544 (modify-phases %standard-phases
ab35cc6e
RW
1545 (add-after 'unpack 'fix-/bin/sh-reference
1546 (lambda _
1547 (substitute* "po/Makefile.in.in"
1548 (("/bin/sh") (which "sh")))
1549 #t))
5120f24f
RW
1550 (add-after 'unpack 'fix-docbook
1551 (lambda* (#:key inputs #:allow-other-keys)
1552 (substitute* "docs/Makefile.am"
1553 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1554 (string-append (assoc-ref inputs "docbook-xsl")
1555 "/xml/xsl/docbook-xsl-"
1556 ,(package-version docbook-xsl)
1557 "/manpages/docbook.xsl")))
1558 (setenv "XML_CATALOG_FILES"
1559 (string-append (assoc-ref inputs "docbook-xml")
1560 "/xml/dtd/docbook/catalog.xml"))
1561 ;; Rerun the whole thing to avoid version mismatch ("This is
1562 ;; Automake 1.15.1, but the definition used by this
1563 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1564 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1565 (invoke "autoconf")
1566 (invoke "aclocal")
1567 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1568 (inputs
1569 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1570 ("linux-pam" ,linux-pam)
ab35cc6e 1571 ("openssh" ,openssh)
e99a3d6f
RW
1572 ("dbus" ,dbus)
1573 ("gcr" ,gcr)))
1574 (native-inputs
1575 `(("pkg-config" ,pkg-config)
1576 ("glib" ,glib "bin")
5120f24f 1577 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1578 ("python" ,python-2) ;for tests
1579 ("intltool" ,intltool)
1580 ("autoconf" ,autoconf)
1581 ("automake" ,automake)
1582 ("libxslt" ,libxslt) ;for documentation
1583 ("docbook-xml" ,docbook-xml-4.2)
1584 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1585 (home-page "https://www.gnome.org")
e99a3d6f
RW
1586 (synopsis "Daemon to store passwords and encryption keys")
1587 (description
1588 "gnome-keyring is a program that keeps passwords and other secrets for
1589users. It is run as a daemon in the session, similar to ssh-agent, and other
1590applications locate it via an environment variable or D-Bus.
1591
1592The program can manage several keyrings, each with its own master password,
1593and there is also a session keyring which is never stored to disk, but
1594forgotten when the session ends.")
1595 (license license:lgpl2.1+)))
1596
c1354b90
LC
1597(define-public evince
1598 (package
1599 (name "evince")
936d5642 1600 (version "3.34.2")
c1354b90
LC
1601 (source (origin
1602 (method url-fetch)
ac631328 1603 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1604 (version-major+minor version) "/"
ac631328 1605 "evince-" version ".tar.xz"))
c1354b90
LC
1606 (sha256
1607 (base32
936d5642 1608 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1609 (build-system glib-or-gtk-build-system)
c1354b90 1610 (arguments
169b8f77 1611 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1612 #:phases
1613 (modify-phases %standard-phases
1614 (add-before 'install 'skip-gtk-update-icon-cache
1615 ;; Don't create 'icon-theme.cache'.
1616 (lambda _
1617 (substitute* "data/Makefile"
1618 (("gtk-update-icon-cache") "true"))
1619 #t)))))
c1354b90 1620 (inputs
9a096881
KK
1621 `(("libarchive" ,libarchive)
1622 ("libgxps" ,libgxps)
1623 ("libspectre" ,libspectre)
c769cf9f 1624 ("djvulibre" ,djvulibre)
c1354b90
LC
1625 ("ghostscript" ,ghostscript)
1626 ("poppler" ,poppler)
c769cf9f
SB
1627 ("libtiff" ,libtiff)
1628 ;; TODO:
c769cf9f
SB
1629 ;; Build libkpathsea as a shared library for DVI support.
1630 ;; ("libkpathsea" ,texlive-bin)
1631 ("gnome-desktop" ,gnome-desktop)
c1354b90 1632 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1633 ("gspell" ,gspell)
c1354b90 1634 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1635 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1636 ("gdk-pixbuf" ,gdk-pixbuf)
1637 ("atk" ,atk)
1638 ("pango" ,pango)
1639 ("gtk+" ,gtk+)
1640 ("glib" ,glib)
1641 ("libxml2" ,libxml2)
c1354b90
LC
1642 ("libsm" ,libsm)
1643 ("libice" ,libice)
96e42467 1644 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1645 ("dconf" ,dconf)
1646 ("libcanberra" ,libcanberra)
c769cf9f 1647 ("libsecret" ,libsecret)
a271096b 1648
c1354b90
LC
1649 ;; For tests.
1650 ("dogtail" ,python2-dogtail)))
96e42467 1651 (native-inputs
bcb354ad
SB
1652 `(("itstool" ,itstool)
1653 ("intltool" ,intltool)
426adbe8 1654 ("glib" ,glib "bin")
169b8f77 1655 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1656 ("pkg-config" ,pkg-config)
1657 ("xmllint" ,libxml2)))
c1354b90 1658 (home-page
f032d0be 1659 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1660 (synopsis "GNOME's document viewer")
1661 (description
1662 "Evince is a document viewer for multiple document formats. It
1663currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1664of Evince is to replace the multiple document viewers that exist
96e42467 1665on the GNOME Desktop with a single simple application.")
1dd26275 1666 (license license:gpl2+)))
c1354b90 1667
22e32e69
AE
1668(define-public gsettings-desktop-schemas
1669 (package
1670 (name "gsettings-desktop-schemas")
8468117e 1671 (version "3.34.0")
22e32e69
AE
1672 (source
1673 (origin
1674 (method url-fetch)
1675 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1676 (version-major+minor version) "/"
22e32e69
AE
1677 name "-" version ".tar.xz"))
1678 (sha256
1679 (base32
8468117e 1680 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
c900dabd 1681 (build-system meson-build-system)
65209ffa
LC
1682 (arguments
1683 '(#:phases (modify-phases %standard-phases
3861fb1c 1684 (add-after 'unpack 'patch-schemas
65209ffa 1685 (lambda* (#:key inputs #:allow-other-keys)
65209ffa
LC
1686 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1687 (substitute* (find-files "schemas"
1688 "\\.gschema\\.xml\\.in$")
3861fb1c
LP
1689 ;; Provide the correct file name of the default GNOME
1690 ;; background, 'adwaita-timed.xml'.
65209ffa 1691 (("@datadir@/backgrounds/gnome")
3861fb1c
LP
1692 (string-append theme "/share/backgrounds/gnome"))
1693 ;; Do not reference fonts, that may not exist.
1694 (("'Source Code Pro 10'") "'Monospace 11'"))
65209ffa 1695 #t))))))
22e32e69 1696 (inputs
65209ffa
LC
1697 `(("glib" ,glib)
1698 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1699 (native-inputs
1700 `(("intltool" ,intltool)
426adbe8 1701 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1702 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1703 ("pkg-config" ,pkg-config)))
1704 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1705 (synopsis
1706 "GNOME settings for various desktop components")
1707 (description
1708 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1709for settings shared by various components of the GNOME desktop.")
1dd26275 1710 (license license:lgpl2.1+)))
22e32e69 1711
27477d2d
AE
1712(define-public icon-naming-utils
1713 (package
1714 (name "icon-naming-utils")
1715 (version "0.8.90")
1716 (source
1717 (origin
1718 (method url-fetch)
5cc3096c 1719 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1720 version ".tar.bz2"))
1721 (sha256
1722 (base32
1723 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1724 (build-system gnu-build-system)
1725 (inputs
1726 `(("perl" ,perl)
1727 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1728 (arguments
1729 '(#:phases
dc1d3cde
KK
1730 (modify-phases %standard-phases
1731 (add-after 'install 'set-load-paths
1732 ;; Tell 'icon-name-mapping' where XML::Simple is.
1733 (lambda* (#:key outputs #:allow-other-keys)
1734 (let* ((out (assoc-ref outputs "out"))
1735 (prog (string-append out "/libexec/icon-name-mapping")))
1736 (wrap-program
1737 prog
1738 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1739 #t)))))
27477d2d
AE
1740 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1741 (synopsis
1742 "Utility to implement the Freedesktop Icon Naming Specification")
1743 (description
1744 "To help with the transition to the Freedesktop Icon Naming
1745Specification, the icon naming utility maps the icon names used by the
1746GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1747 (license license:lgpl2.1+)))
27477d2d 1748
7d3f3651
AE
1749(define-public gnome-icon-theme
1750 (package
1751 (name "gnome-icon-theme")
b32f58dd 1752 (version "3.12.0")
7d3f3651
AE
1753 (source
1754 (origin
1755 (method url-fetch)
1756 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1757 (version-major+minor version) "/"
7d3f3651
AE
1758 name "-" version ".tar.xz"))
1759 (sha256
1760 (base32
b32f58dd 1761 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1762 (build-system gnu-build-system)
5613c27d
SB
1763 (arguments
1764 '(#:configure-flags
1765 ;; Don't create 'icon-theme.cache'.
1766 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1767 (true (string-append coreutils "/bin/true")))
1768 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1769 (native-inputs
5613c27d 1770 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1771 ("intltool" ,intltool)
1772 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1773 (home-page "https://wiki.gnome.org/Personalization")
1774 (synopsis "GNOME icon theme")
1775 (description "Icons for the GNOME desktop.")
1dd26275 1776 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1777
14eeefa2
SB
1778;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1779(define-public adwaita-icon-theme
1780 (package (inherit gnome-icon-theme)
1781 (name "adwaita-icon-theme")
e21788f2 1782 (version "3.34.3")
14eeefa2
SB
1783 (source (origin
1784 (method url-fetch)
1785 (uri (string-append "mirror://gnome/sources/" name "/"
1786 (version-major+minor version) "/"
1787 name "-" version ".tar.xz"))
1788 (sha256
1789 (base32
e21788f2 1790 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
5613c27d
SB
1791 (native-inputs
1792 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1793
ae792dba
RW
1794(define-public tango-icon-theme
1795 (package
1796 (name "tango-icon-theme")
1797 (version "0.8.90")
1798 (source (origin
1799 (method url-fetch)
1800 (uri (string-append "http://tango.freedesktop.org/releases/"
1801 "tango-icon-theme-" version ".tar.bz2"))
1802 (sha256
1803 (base32
1804 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1805 (build-system gnu-build-system)
1806 (native-inputs
1807 `(("icon-naming-utils" ,icon-naming-utils)
1808 ("intltool" ,intltool)
1809 ("imagemagick" ,imagemagick)
1810 ("pkg-config" ,pkg-config)))
1811 (home-page "http://tango-project.org/")
1812 (synopsis "Tango icon theme")
1813 (description "This is an icon theme that follows the Tango visual
1814guidelines.")
1815 (license license:public-domain)))
1816
9167f8e6
LC
1817(define-public shared-mime-info
1818 (package
1819 (name "shared-mime-info")
404e386e 1820 (version "1.15")
9167f8e6
LC
1821 (source (origin
1822 (method url-fetch)
404e386e
MB
1823 (uri (string-append
1824 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1825 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1826 ".tar.xz"))
9167f8e6
LC
1827 (sha256
1828 (base32
404e386e 1829 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
9167f8e6
LC
1830 (build-system gnu-build-system)
1831 (arguments
1832 ;; The build system appears not to be parallel-safe.
1833 '(#:parallel-build? #f))
1834 (inputs
1835 `(("glib" ,glib)
c4c4cc05 1836 ("libxml2" ,libxml2)))
9167f8e6 1837 (native-inputs
404e386e
MB
1838 `(("gettext" ,gettext-minimal)
1839 ("itstool" ,itstool)
c4c4cc05 1840 ("pkg-config" ,pkg-config)))
57e7d748 1841 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1842 (synopsis "Database of common MIME types")
1843 (description
1844 "The shared-mime-info package contains the core database of common types
1845and the update-mime-database command used to extend it. It requires glib2 to
1846be installed for building the update command. Additionally, it uses intltool
1847for translations, though this is only a dependency for the maintainers. This
1848database is translated at Transifex.")
1dd26275 1849 (license license:gpl2+)))
9167f8e6 1850
dd1fcddc
CB
1851(define-public system-config-printer
1852 (package
1853 (name "system-config-printer")
fa01e10d 1854 (version "1.5.12")
a5643044
TGR
1855 (source
1856 (origin
1857 (method url-fetch)
1858 (uri (string-append
1859 "https://github.com/OpenPrinting/system-config-printer/releases/"
1860 "download/" version
1861 "/system-config-printer-" version ".tar.xz"))
1862 (sha256
fa01e10d 1863 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1864 (build-system glib-or-gtk-build-system)
1865 (arguments
1866 `(#:imported-modules ((guix build python-build-system)
1867 ,@%glib-or-gtk-build-system-modules)
1868 #:phases
1869 (modify-phases %standard-phases
1870 (add-after 'unpack 'patch-Makefile.am
1871 (lambda _
1872 ;; The Makefile generates some scripts, so set a valid shebang
1873 (substitute* "Makefile.am"
1874 (("/bin/bash") (which "bash")))
1875 (delete-file "configure")
1876 #t))
1877 (add-after 'unpack 'patch-docbook-xml
1878 (lambda* (#:key inputs #:allow-other-keys)
1879 ;; Modify the man XML otherwise xmlto tries to access the network
1880 (substitute* "man/system-config-printer.xml"
1881 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1882 (string-append (assoc-ref inputs "docbook-xml")
1883 "/xml/dtd/docbook/")))
1884 #t))
1885 (add-after 'install 'wrap-for-python
1886 (@@ (guix build python-build-system) wrap))
1887 (add-after 'install 'wrap
1888 (lambda* (#:key outputs #:allow-other-keys)
1889 (let ((out (assoc-ref outputs "out"))
1890 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1891 (for-each
1892 (lambda (program)
1893 (wrap-program program
1894 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1895 (map (lambda (name)
1896 (string-append out "/bin/" name))
1897 '("system-config-printer"
1898 "system-config-printer-applet"
1899 "install-printerdriver"
1900 "scp-dbus-service"))))
1901 #t)))))
1902 (inputs
1903 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1904 ("gobject-introspection" ,gobject-introspection)
1905 ("python" ,python)
1906 ("cups" ,cups)
1907 ("python-dbus" ,python-dbus)
1908 ("python-pygobject" ,python-pygobject)
1909 ("python-pycups" ,python-pycups)
1910 ("python-requests" ,python-requests)
1911 ("python-pycairo" ,python-pycairo)
1912 ("libnotify" ,libnotify)
1913 ("packagekit" ,packagekit)))
1914 (native-inputs
1915 `(("pkg-config" ,pkg-config)
1916 ("desktop-file-utils" ,desktop-file-utils)
1917 ("glib" ,glib)
1918 ("autoconf" ,autoconf)
1919 ("automake" ,automake)
1920 ("intltool" ,intltool)
1921 ("xmlto" ,xmlto)
1922 ("docbook-xml" ,docbook-xml-4.1.2)
1923 ("docbook-xsl" ,docbook-xsl)
1924 ("libxml2" ,libxml2)))
1925 (home-page "https://github.com/zdohnal/system-config-printer")
1926 (synopsis "CUPS administration tool")
1927 (description
1928 "system-config-printer is a CUPS administration tool. It's written in
1929Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1930configuring CUPS.")
1931 (license license:gpl2+)))
1932
bef4dd92
AE
1933(define-public hicolor-icon-theme
1934 (package
1935 (name "hicolor-icon-theme")
851cb6dd 1936 (version "0.17")
bef4dd92
AE
1937 (source
1938 (origin
1939 (method url-fetch)
5cc3096c 1940 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1941 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1942 (sha256
1943 (base32
851cb6dd 1944 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1945 (build-system gnu-build-system)
1946 (arguments
1947 `(#:tests? #f)) ; no check target
57e7d748 1948 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1949 (synopsis
1950 "Freedesktop icon theme")
1951 (description
1952 "Freedesktop icon theme.")
1dd26275 1953 (license license:gpl2)))
bef4dd92 1954
d9c1a22b
AE
1955(define-public libnotify
1956 (package
1957 (name "libnotify")
195bfa68 1958 (version "0.7.7")
d9c1a22b
AE
1959 (source
1960 (origin
1961 (method url-fetch)
1962 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1963 (version-major+minor version) "/"
d9c1a22b
AE
1964 name "-" version ".tar.xz"))
1965 (sha256
1966 (base32
195bfa68 1967 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1968 (build-system gnu-build-system)
6acf6cec
MB
1969 (arguments
1970 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1971 (propagated-inputs
1972 `(;; In Requires of libnotify.pc.
1973 ("gdk-pixbuf" ,gdk-pixbuf)
1974 ("glib" ,glib)))
d9c1a22b 1975 (inputs
7ef08efa 1976 `(("gtk+" ,gtk+)
c4c4cc05
JD
1977 ("libpng" ,libpng)))
1978 (native-inputs
426adbe8 1979 `(("pkg-config" ,pkg-config)
277a7d82
JN
1980 ("glib" ,glib "bin")
1981 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1982 (home-page "https://developer-next.gnome.org/libnotify/")
1983 (synopsis
1984 "GNOME desktop notification library")
1985 (description
1986 "Libnotify is a library that sends desktop notifications to a
35b9e423 1987notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1988notifications can be used to inform the user about an event or display
1989some form of information without getting in the user's way.")
1dd26275 1990 (license license:lgpl2.1+)))
7a8605ce
CR
1991
1992(define-public libpeas
1993 (package
1994 (name "libpeas")
f2d56e39 1995 (version "1.24.1")
7a8605ce
CR
1996 (source
1997 (origin
1998 (method url-fetch)
1999 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2000 (version-major+minor version) "/"
7a8605ce
CR
2001 name "-" version ".tar.xz"))
2002 (sha256
2003 (base32
f2d56e39
MB
2004 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2005 (build-system meson-build-system)
2006 (arguments
2007 '(#:phases
2008 (modify-phases %standard-phases
2009 (add-before 'check 'start-xserver
2010 (lambda* (#:key inputs #:allow-other-keys)
2011 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2012 (disp ":1"))
2013 (setenv "DISPLAY" disp)
2014 ;; Tests require a running X server.
2015 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2016 #t))))))
7a8605ce 2017 (inputs
2ed6522a
SB
2018 `(("gtk+" ,gtk+)
2019 ("glade" ,glade3)
2ed6522a
SB
2020 ("python" ,python)
2021 ("python-pygobject" ,python-pygobject)))
141aed80
LC
2022 (native-inputs
2023 `(("pkg-config" ,pkg-config)
f2d56e39 2024 ("gettext" ,gettext-minimal)
93622993 2025 ("glib:bin" ,glib "bin")
141aed80 2026 ("gobject-introspection" ,gobject-introspection)
f2d56e39 2027 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
2028 (propagated-inputs
2029 ;; The .pc file "Requires" gobject-introspection.
2030 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
2031 (home-page "https://wiki.gnome.org/Libpeas")
2032 (synopsis "GObject plugin system")
2033 (description
d1e4ad1b
TGR
2034 "Libpeas is a gobject-based plugin engine, targeted at giving every
2035application the chance to assume its own extensibility. It also has a set of
2036features including, but not limited to: multiple extension points; on-demand
2037(lazy) programming language support for C, Python and JS; simplicity of the
2038API.")
1dd26275 2039 (license license:lgpl2.0+)))
ed19903d
JD
2040
2041(define-public gtkglext
2042 (package
2043 (name "gtkglext")
2044 (version "1.2.0")
2045 (source (origin
2046 (method url-fetch)
0f971a04 2047 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
2048 version "/gtkglext-" version ".tar.gz"))
2049 (sha256
2050 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
2051 (patches (search-patches
2052 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 2053 (build-system gnu-build-system)
14e2f61a
RW
2054 (arguments
2055 `(#:phases
2056 (modify-phases %standard-phases
2057 ;; Fix a collision between a local variable and a definition from
2058 ;; glibc's string.h.
2059 (add-after 'unpack 'fix-collision
2060 (lambda _
2061 (substitute* "gdk/gdkglshapes.c"
2062 ((" index") " triangle_index"))
2063 #t)))))
ed19903d
JD
2064 (inputs `(("gtk+" ,gtk+-2)
2065 ("mesa" ,mesa)
cc8b02f4 2066 ("glu" ,glu)
ed19903d
JD
2067 ("libx11" ,libx11)
2068 ("libxt" ,libxt)))
426adbe8
LC
2069 (native-inputs `(("pkg-config" ,pkg-config)
2070 ("glib" ,glib "bin")))
a83b6a06 2071 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 2072 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 2073 (synopsis "OpenGL extension to GTK+")
35b9e423 2074 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
2075additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2076API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 2077 (license license:lgpl2.1+)))
3600420e
JD
2078
2079(define-public glade3
2080 (package
2081 (name "glade")
c6571adb 2082 (version "3.22.1")
b38e45d8
EB
2083 (source (origin
2084 (method url-fetch)
2085 (uri (string-append "mirror://gnome/sources/" name "/"
2086 (version-major+minor version) "/"
f5ca44b8 2087 name "-" version ".tar.xz"))
3600420e 2088 (sha256
f714d9fe 2089 (base32
c6571adb 2090 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 2091 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
2092 (arguments
2093 `(#:tests? #f ; needs X, GL, and software rendering
2094 #:phases
2095 (modify-phases %standard-phases
2096 (add-before 'configure 'fix-docbook
2097 (lambda* (#:key inputs #:allow-other-keys)
2098 (substitute* "man/Makefile.in"
2099 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2100 (string-append (assoc-ref inputs "docbook-xsl")
2101 "/xml/xsl/docbook-xsl-"
2102 ,(package-version docbook-xsl)
2103 "/manpages/docbook.xsl")))
2104 #t)))))
3600420e 2105 (inputs
f5ca44b8 2106 `(("gtk+" ,gtk+)
3600420e
JD
2107 ("libxml2" ,libxml2)))
2108 (native-inputs
2109 `(("intltool" ,intltool)
f5ca44b8
RW
2110 ("itstool" ,itstool)
2111 ("libxslt" ,libxslt) ;for xsltproc
2112 ("docbook-xml" ,docbook-xml-4.2)
2113 ("docbook-xsl" ,docbook-xsl)
2114 ("python" ,python-2)
3600420e
JD
2115 ("pkg-config" ,pkg-config)))
2116 (home-page "https://glade.gnome.org")
2117 (synopsis "GTK+ rapid application development tool")
2118 (description "Glade is a rapid application development (RAD) tool to
2119enable quick & easy development of user interfaces for the GTK+ toolkit and
2120the GNOME desktop environment.")
1dd26275
LC
2121 (license license:lgpl2.0+)))
2122
2123(define-public libcroco
2124 (package
2125 (name "libcroco")
8bdacad2 2126 (version "0.6.13")
1dd26275
LC
2127 (source (origin
2128 (method url-fetch)
b38e45d8
EB
2129 (uri (string-append "mirror://gnome/sources/" name "/"
2130 (version-major+minor version) "/"
2131 name "-" version ".tar.xz"))
1dd26275
LC
2132 (sha256
2133 (base32
8bdacad2 2134 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2135 (build-system gnu-build-system)
2136 (native-inputs
2137 `(("pkg-config" ,pkg-config)))
2138 (inputs
2139 `(("glib" ,glib)
2140 ("libxml2" ,libxml2)
2141 ("zlib" ,zlib)))
2142 (home-page "https://github.com/GNOME/libcroco")
2143 (synopsis "CSS2 parsing and manipulation library")
2144 (description
2145 "Libcroco is a standalone CSS2 parsing and manipulation library.
2146The parser provides a low level event driven SAC-like API and a CSS object
2147model like API. Libcroco provides a CSS2 selection engine and an experimental
2148XML/CSS rendering engine.")
2149
2150 ;; LGPLv2.1-only.
2151 (license license:lgpl2.1)))
25178594
LC
2152
2153(define-public libgsf
2154 (package
2155 (name "libgsf")
2b9b854c 2156 (version "1.14.47")
25178594
LC
2157 (source (origin
2158 (method url-fetch)
b38e45d8
EB
2159 (uri (string-append "mirror://gnome/sources/" name "/"
2160 (version-major+minor version) "/"
2161 name "-" version ".tar.xz"))
25178594
LC
2162 (sha256
2163 (base32
2b9b854c 2164 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
25178594 2165 (build-system gnu-build-system)
23904adb
MB
2166 (arguments
2167 '(#:configure-flags '("--disable-static")))
25178594 2168 (native-inputs
0a1559cc
MB
2169 `(("pkg-config" ,pkg-config)
2170 ("gettext" ,gettext-minimal)
2171
2172 ;; For tests.
2173 ("perl" ,perl)
2174 ("perl-xml-parser" ,perl-xml-parser)))
25178594 2175 (inputs
4ffa9f6b 2176 `(("zlib" ,zlib)
25178594
LC
2177 ("bzip2" ,bzip2)))
2178 (propagated-inputs
2179 `(("gdk-pixbuf" ,gdk-pixbuf)
2180 ("glib" ,glib)
2181 ("libxml2" ,libxml2)))
f032d0be 2182 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2183 (synopsis "GNOME's Structured File Library")
2184 (description
2185 "Libgsf aims to provide an efficient extensible I/O abstraction for
2186dealing with different structured file formats.")
2187
2188 ;; LGPLv2.1-only.
2189 (license license:lgpl2.1)))
63016e7c
LC
2190
2191(define-public librsvg
f67417a1
MB
2192 (package
2193 (name "librsvg")
c1cc52a2 2194 (version "2.40.21")
f67417a1
MB
2195 (source (origin
2196 (method url-fetch)
2197 (uri (string-append "mirror://gnome/sources/" name "/"
2198 (version-major+minor version) "/"
2199 name "-" version ".tar.xz"))
2200 (sha256
2201 (base32
c1cc52a2 2202 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
f67417a1
MB
2203 (build-system gnu-build-system)
2204 (arguments
2205 `(#:configure-flags
2206 (list "--disable-static"
2207 "--enable-vala") ; needed for e.g. gnome-mines
2208 #:phases
2209 (modify-phases %standard-phases
2210 (add-before 'configure 'pre-configure
2211 (lambda* (#:key inputs #:allow-other-keys)
2212 (substitute* "gdk-pixbuf-loader/Makefile.in"
2213 ;; By default the gdk-pixbuf loader is installed under
2214 ;; gdk-pixbuf's prefix. Work around that.
2215 (("gdk_pixbuf_moduledir = .*$")
2216 (string-append "gdk_pixbuf_moduledir = "
2217 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2218 "loaders\n"))
2219 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2220 (("gdk_pixbuf_cache_file = .*$")
2221 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2222 #t))
2223 (add-before 'check 'remove-failing-tests
2224 (lambda _
2225 (with-directory-excursion "tests/fixtures/reftests"
2226 (for-each delete-file
2227 '(;; This test fails on i686:
2228 "svg1.1/masking-path-04-b.svg"
2229 ;; This test fails on armhf:
2230 "svg1.1/masking-mask-01-b.svg"
2231 ;; This test fails on aarch64:
2232 "bugs/777834-empty-text-children.svg")))
2233 #t)))))
2234 (native-inputs
2235 `(("pkg-config" ,pkg-config)
2236 ("vala" ,vala)
2237 ("glib" ,glib "bin") ; glib-mkenums, etc.
2238 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2239 (inputs
869b63cb
MB
2240 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2241 ;; this ancient version of librsvg.
2242 ("pango" ,pango-1.42)
f67417a1
MB
2243 ("libcroco" ,libcroco)
2244 ("bzip2" ,bzip2)
2245 ("libgsf" ,libgsf)
2246 ("libxml2" ,libxml2)))
2247 (propagated-inputs
2248 ;; librsvg-2.0.pc refers to all of that.
2249 `(("cairo" ,cairo)
2250 ("gdk-pixbuf" ,gdk-pixbuf)
2251 ("glib" ,glib)))
2252 (home-page "https://wiki.gnome.org/LibRsvg")
2253 (synopsis "Render SVG files using Cairo")
2254 (description
2255 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2256library.")
2257 (license license:lgpl2.0+)))
2258
2259(define-public librsvg-next
63016e7c 2260 (package
25d39a2a 2261 (inherit librsvg)
63016e7c 2262 (name "librsvg")
3276e123 2263 (version "2.46.4")
69568670
EF
2264 (source (origin
2265 (method url-fetch)
2266 (uri (string-append "mirror://gnome/sources/librsvg/"
2267 (version-major+minor version) "/"
2268 "librsvg-" version ".tar.xz"))
2269 (sha256
2270 (base32
2271 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2272 (modules '((guix build utils)))
2273 (snippet
2274 '(begin (delete-file-recursively "vendor")
2275 ;; Don't demand an exact version for string_cache
2276 (substitute* "rsvg_internals/Cargo.toml"
2277 (("\"=") "\""))
2278 #t))))
2279 (build-system cargo-build-system)
63016e7c 2280 (arguments
69568670
EF
2281 `(#:modules ((guix build cargo-build-system)
2282 (guix build utils)
2283 ((guix build gnu-build-system) #:prefix gnu:))
2284 #:vendor-dir "vendor"
2285 #:cargo-inputs
2286 (("rust-bitflags" ,rust-bitflags-1)
2287 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2288 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2289 ("rust-cssparser" ,rust-cssparser-0.25)
2290 ("rust-data-url" ,rust-data-url-0.1)
2291 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2292 ("rust-encoding" ,rust-encoding-0.2)
2293 ("rust-float-cmp" ,rust-float-cmp-0.5)
2294 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2295 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2296 ("rust-gio" ,rust-gio-0.7)
2297 ("rust-gio-sys" ,rust-gio-sys-0.9)
2298 ("rust-glib" ,rust-glib-0.8)
2299 ("rust-glib-sys" ,rust-glib-sys-0.9)
2300 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2301 ("rust-itertools" ,rust-itertools-0.8)
2302 ("rust-language-tags" ,rust-language-tags-0.2)
2303 ("rust-lazy-static" ,rust-lazy-static-1)
2304 ("rust-libc" ,rust-libc-0.2)
2305 ("rust-locale-config" ,rust-locale-config-0.3)
2306 ("rust-markup5ever" ,rust-markup5ever-0.9)
2307 ("rust-nalgebra" ,rust-nalgebra-0.18)
2308 ("rust-num-traits" ,rust-num-traits-0.2)
2309 ("rust-pkg-config" ,rust-pkg-config-0.3)
2310 ("rust-pango" ,rust-pango-0.7)
2311 ("rust-pango-sys" ,rust-pango-sys-0.9)
2312 ("rust-pangocairo" ,rust-pangocairo-0.8)
2313 ("rust-phf" ,rust-phf-0.7)
2314 ("rust-rayon" ,rust-rayon-1.3)
2315 ("rust-rctree" ,rust-rctree-0.3)
2316 ("rust-string-cache" ,rust-string-cache-0.7)
2317 ("rust-regex" ,rust-regex-1.3)
2318 ("rust-url" ,rust-url-2.1)
2319 ("rust-xml-rs" ,rust-xml-rs-0.8))
2320 #:cargo-development-inputs
2321 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2322 ("rust-criterion" ,rust-criterion-0.2))
ec47c07d 2323 #:phases
b6239e45 2324 (modify-phases %standard-phases
69568670 2325 (add-after 'unpack 'prepare-for-build
ec47c07d 2326 (lambda _
69568670
EF
2327 ;; In lieu of #:make-flags
2328 (setenv "CC" "gcc")
2329 ;; Something about the build environment resists building
2330 ;; successfully with the '--locked' flag.
2331 (substitute* '("Makefile.am"
2332 "Makefile.in")
2333 (("--locked") ""))
2334 #t))
b6239e45 2335 (add-before 'configure 'pre-configure
69568670 2336 (lambda _
b6239e45
EF
2337 (substitute* "gdk-pixbuf-loader/Makefile.in"
2338 ;; By default the gdk-pixbuf loader is installed under
2339 ;; gdk-pixbuf's prefix. Work around that.
2340 (("gdk_pixbuf_moduledir = .*$")
2341 (string-append "gdk_pixbuf_moduledir = "
2342 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2343 "loaders\n"))
2344 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2345 (("gdk_pixbuf_cache_file = .*$")
2346 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2347 #t))
69568670
EF
2348 (add-after 'configure 'gnu-configure
2349 (assoc-ref gnu:%standard-phases 'configure))
2350 ;(lambda* (#:key outputs #:allow-other-keys)
2351 ; ((assoc-ref gnu:%standard-phases 'configure)
2352 ; #:outputs outputs
2353 ; #:configure-flags ("--disable-static"
2354 ; "--enable-vala"))))
2355 (add-after 'configure 'dont-vendor-self
2356 (lambda* (#:key vendor-dir #:allow-other-keys)
2357 ;; Don't keep the whole tarball in the vendor directory
2358 (delete-file-recursively
2359 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2360 #t))
2361 (replace 'build
2362 (assoc-ref gnu:%standard-phases 'build))
2363 (replace 'check
2364 (lambda* args
2365 ((assoc-ref gnu:%standard-phases 'check)
2366 #:test-target "check")))
2367 (replace 'install
2368 (assoc-ref gnu:%standard-phases 'install))
ec47c07d 2369 (add-before 'check 'remove-failing-tests
b6239e45 2370 (lambda _
64a153bd
MW
2371 (with-directory-excursion "tests/fixtures/reftests"
2372 (for-each delete-file
ec47c07d
MB
2373 '(;; The images produced by these tests differ slightly
2374 ;; from their reference counterparts due to differences
2375 ;; in the build environment (missing fonts, etc). See
2376 ;; <tests/README.md> for details.
2377 ;; These fail on x86_64.
2378 "svg1.1/coords-viewattr-02-b.svg"
2379 "svg1.1/filters-composite-04-f.svg"
2380 "svg1.1/filters-image-01-b.svg"
2381 "svg1.1/filters-conv-02-f.svg"
2382 "svg1.1/filters-conv-04-f.svg"
2383 ;; This test fails on i686:
64a153bd 2384 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2385 ;; This test fails on armhf:
2386 "svg1.1/masking-mask-01-b.svg"
64a153bd 2387 ;; This test fails on aarch64:
ec47c07d 2388 "bugs/777834-empty-text-children.svg")))
b6239e45 2389 #t)))))
cf9dad6c 2390 (license license:lgpl2.1+)))
5698b8b8
JD
2391
2392(define-public libidl
2393 (package
2394 (name "libidl")
2395 (version "0.8.14")
2396 (source (origin
2397 (method url-fetch)
80a06e62
EF
2398 (uri (string-append "mirror://gnome/sources/libIDL/"
2399 (version-major+minor version) "/"
2400 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2401 (sha256
2402 (base32
2403 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2404 (build-system gnu-build-system)
2405 (inputs `(("glib" ,glib)))
2406 (native-inputs
2407 `(("pkg-config" ,pkg-config)
b3546174 2408 ("flex" ,flex)
5698b8b8
JD
2409 ("bison" ,bison)))
2410 (home-page "http://freecode.com/projects/libidl")
2411 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2412 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2413Definition Language (idl) files, which is a specification for defining
2414portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2415GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2416functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2417 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2418 (license license:lgpl2.0+)))
2419
2420
2421(define-public orbit2
2422 (package
2423 (name "orbit2")
2424 (version "2.14.19")
2425 (source (origin
2426 (method url-fetch)
2e6ecc5c 2427 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2428 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2429 (version-major+minor version) "/"
2430 upstream-name "-" version ".tar.bz2")))
5698b8b8 2431 (sha256
a124bbd2
SB
2432 (base32
2433 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2434 (build-system gnu-build-system)
2435 (arguments
c2d837b9
MB
2436 `(;; The "timeout-server" test hangs when run in parallel.
2437 #:parallel-tests? #f
2438 #:configure-flags
8aad2e32
LC
2439 '(;; We don't need static libraries, plus they don't build reproducibly
2440 ;; (non-deterministic ordering of .o files in the archive.)
2441 "--disable-static"
2442
2443 ;; The programmer kindly gives us a hook to turn off deprecation
2444 ;; warnings ...
2445 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2446 ;; ... which they then completly ignore !!
2447 #:phases
dc1d3cde
KK
2448 (modify-phases %standard-phases
2449 (add-before 'configure 'ignore-deprecations
2450 (lambda _
2451 (substitute* "linc2/src/Makefile.in"
2452 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2453 #t)))))
5698b8b8
JD
2454 (inputs `(("glib" ,glib)
2455 ("libidl" ,libidl)))
2456 (native-inputs
2457 `(("pkg-config" ,pkg-config)))
2458 (home-page "https://projects.gnome.org/orbit2/")
2459 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2460 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2461featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2462 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2463 ;; a version. SOME of the code files have licence notices for GPLv2+.
2464 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2465 (license license:gpl2+)
2466 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2467
2468
2469(define-public libbonobo
2470 (package
2471 (name "libbonobo")
2472 (version "2.32.1")
2473 (source (origin
2474 (method url-fetch)
5becd025 2475 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2476 (version-major+minor version)
5becd025 2477 "/" name "-" version ".tar.bz2"))
5698b8b8 2478 (sha256
f1fc45a9 2479 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2480 (patches (search-patches
2481 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2482 (build-system gnu-build-system)
2483 (arguments
2484 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2485 `(#:configure-flags
2486 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2487 ;; ... which they then completly ignore !!
2488 #:phases
dc1d3cde
KK
2489 (modify-phases %standard-phases
2490 (add-before 'configure 'ignore-deprecations
2491 (lambda _
2492 (substitute* "activation-server/Makefile.in"
2493 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2494 #t)))
2495
2496 ;; There's apparently a race condition between the server stub
2497 ;; generation and linking of the example under 'samples/echo' that can
2498 ;; lead do undefined references when building in parallel, as reported
2499 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2500 ;; Thus, disable parallel builds.
2501 #:parallel-build? #f))
5698b8b8
JD
2502 (inputs `(("popt" ,popt)
2503 ("libxml2" ,libxml2)))
2504 ;; The following are Required by the .pc file
44add1ce 2505 (propagated-inputs
5698b8b8
JD
2506 `(("glib" ,glib)
2507 ("orbit2" ,orbit2)))
2508 (native-inputs
2509 `(("intltool" ,intltool)
2510 ("pkg-config" ,pkg-config)
221ed17a 2511 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2512 ("flex" ,flex)
2513 ("bison" ,bison)))
2514 (home-page "https://developer.gnome.org/libbonobo/")
2515 (synopsis "Framework for creating reusable components for use in GNOME applications")
2516 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2517use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2518 ;; Licence not explicitly stated. Source files contain no licence notices.
2519 ;; Tarball contains text of both GPLv2 and LGPLv2
2520 ;; GPLv2 covers both conditions
2521 (license license:gpl2+)))
2522
2523
2524(define-public gconf
2525 (package
2526 (name "gconf")
2527 (version "3.2.6")
2528 (source (origin
2529 (method url-fetch)
a124bbd2
SB
2530 (uri
2531 (let ((upstream-name "GConf"))
2532 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2533 (version-major+minor version) "/"
2534 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2535 (sha256
2536 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2537 (build-system gnu-build-system)
2e88d113 2538 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2539 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2540 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2541 ("orbit2" ,orbit2)))
5698b8b8
JD
2542 (native-inputs
2543 `(("intltool" ,intltool)
221ed17a 2544 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2545 ("pkg-config" ,pkg-config)))
2546 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2547 (synopsis "Store application preferences")
2548 (description "Gconf is a system for storing application preferences. It
2549is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2550 (license license:lgpl2.0+)
2551 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2552
2553
2554(define-public gnome-mime-data
2555 (package
2556 (name "gnome-mime-data")
2557 (version "2.18.0")
2558 (source (origin
2559 (method url-fetch)
b38e45d8
EB
2560 (uri (string-append "mirror://gnome/sources/" name "/"
2561 (version-major+minor version) "/"
2562 name "-" version ".tar.bz2"))
5698b8b8
JD
2563 (sha256
2564 (base32
2565 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2566 (build-system gnu-build-system)
2567 (native-inputs
2568 `(("perl" ,perl)
2569 ("intltool" ,intltool)))
3e6add96
LC
2570 (arguments
2571 '(#:phases (modify-phases %standard-phases
2572 (add-after 'configure 'use-our-intltool
2573 (lambda _
2574 ;; Do not use the bundled intltool commands, which lack
2575 ;; the "dotless @INC" fixes of our 'intltool' package.
2576 (substitute* (find-files "." "^Makefile$")
2577 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2578 (string-append "INTLTOOL_" tool " = intltool-"
2579 (string-downcase tool) "\n")))
2580 #t)))))
f032d0be 2581 (home-page "https://www.gnome.org")
35b9e423 2582 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2583 (description "GNOME Mime Data is a module which contains the base MIME
2584and Application database for GNOME. The data stored by this module is
2585designed to be accessed through the MIME functions in GnomeVFS.")
2586 (license license:gpl2+)))
2587
2588
2589(define-public gnome-vfs
2590 (package
2591 (name "gnome-vfs")
2592 (version "2.24.4")
2593 (source (origin
2594 (method url-fetch)
b38e45d8
EB
2595 (uri (string-append "mirror://gnome/sources/" name "/"
2596 (version-major+minor version) "/"
2597 name "-" version ".tar.bz2"))
5698b8b8 2598 (sha256
9e12bc34
MW
2599 (base32
2600 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2601 (build-system gnu-build-system)
2602 (arguments
db5127d8 2603 `(#:phases
dc1d3cde
KK
2604 (modify-phases %standard-phases
2605 (add-before 'configure 'ignore-deprecations
2606 (lambda _
2607 (substitute* '("libgnomevfs/Makefile.in"
2608 "daemon/Makefile.in")
2609 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2610 #t))
2611 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2612 (lambda _
2613 (substitute* "test/test-async-cancel.c"
2614 (("EXIT_FAILURE") "77"))
2615 #t)))))
2e6ecc5c 2616 (inputs `(("libxml2" ,libxml2)
5698b8b8 2617 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2618 ("gconf" ,gconf)
2619 ("gnome-mime-data" ,gnome-mime-data)
2620 ("zlib" ,zlib)))
2621 (native-inputs
221ed17a
EB
2622 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2623 ("intltool" ,intltool)
5698b8b8
JD
2624 ("pkg-config" ,pkg-config)))
2625 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2626 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2627 (description
2628 "GnomeVFS is the core library used to access files and folders in GNOME
2629applications. It provides a file system abstraction which allows applications
2630to access local and remote files with a single consistent API.")
5698b8b8
JD
2631 (license license:lgpl2.0+)))
2632
2633
2634
2635(define-public libgnome
2636 (package
2637 (name "libgnome")
2638 (version "2.32.1")
2639 (source (origin
2640 (method url-fetch)
b38e45d8
EB
2641 (uri (string-append "mirror://gnome/sources/" name "/"
2642 (version-major+minor version) "/"
2643 name "-" version ".tar.bz2"))
5698b8b8
JD
2644 (sha256
2645 (base32
17c3eea7
LC
2646 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2647 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2648 (build-system gnu-build-system)
2649 (arguments
2650 `(#:phases
dc1d3cde
KK
2651 (modify-phases %standard-phases
2652 (add-before 'configure 'enable-deprecated
2653 (lambda _
2654 (substitute* "libgnome/Makefile.in"
2655 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2656 #t)))))
25338e9f 2657 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2658 (native-inputs
221ed17a
EB
2659 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2660 ("intltool" ,intltool)
5698b8b8
JD
2661 ("pkg-config" ,pkg-config)))
2662 ;; The following are listed as Required in the .pc file
2663 ;; (except for libcanberra -- which seems to be oversight on the part
2664 ;; of the upstream developers -- anything that links against libgnome,
2665 ;; must also link against libcanberra
2666 (propagated-inputs
2667 `(("libcanberra" ,libcanberra)
2668 ("libbonobo" ,libbonobo)
2669 ("gconf" ,gconf)
a640d3d5
LC
2670 ("gnome-vfs" ,gnome-vfs)
2671 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2672 (home-page "https://developer.gnome.org/libgnome/")
2673 (synopsis "Useful routines for building applications")
2674 (description "The libgnome library provides a number of useful routines
2675for building modern applications, including session management, activation of
2676files and URIs, and displaying help.")
2677 (license license:lgpl2.0+)))
2678
2679
2680(define-public libart-lgpl
2681 (package
2682 (name "libart-lgpl")
76c9b6aa 2683 (version "2.3.21")
5698b8b8
JD
2684 (source (origin
2685 (method url-fetch)
2686 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2687 (string-append "mirror://gnome/sources/" upstream-name "/"
2688 (version-major+minor version) "/"
2689 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2690 (sha256
2691 (base32
76c9b6aa 2692 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2693 (build-system gnu-build-system)
2694 (native-inputs
2695 `(("pkg-config" ,pkg-config)))
2696 (home-page "https://people.gnome.org/~mathieu/libart")
2697 (synopsis "2D drawing library")
2e6ecc5c 2698 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2699high-quality vector-based 2D library with antialiasing and alpha composition.")
2700 (license license:lgpl2.0+)))
2701
2702
2703
2704(define-public libgnomecanvas
2705 (package
2706 (name "libgnomecanvas")
2707 (version "2.30.3")
2708 (source (origin
2709 (method url-fetch)
b38e45d8
EB
2710 (uri (string-append "mirror://gnome/sources/" name "/"
2711 (version-major+minor version) "/"
2712 name "-" version ".tar.gz"))
5698b8b8
JD
2713 (sha256
2714 (base32
2715 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2716 (build-system gnu-build-system)
2717 ;; Mentioned as Required in the .pc file
2718 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2719 ("gtk+" ,gtk+-2)))
2720 (native-inputs
2721 `(("intltool" ,intltool)
221ed17a 2722 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2723 ("pkg-config" ,pkg-config)))
2724 (home-page "https://developer.gnome.org/libgnomecanvas/")
2725 (synopsis "Flexible widget for creating interactive structured graphics")
2726 (description "The GnomeCanvas widget provides a flexible widget for
2727creating interactive structured graphics.")
2728 (license license:lgpl2.0+)))
2729
eadc734e
RW
2730(define-public libgnomecanvasmm
2731 (package
2732 (name "libgnomecanvasmm")
2733 (version "2.26.0")
2734 (source (origin
2735 (method url-fetch)
2736 (uri (string-append "mirror://gnome/sources/" name "/"
2737 (version-major+minor version) "/"
2738 name "-" version ".tar.bz2"))
2739 (sha256
2740 (base32
2741 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2742 (build-system gnu-build-system)
2743 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2744 (native-inputs
2745 `(("gtkmm-2" ,gtkmm-2)
2746 ("pkg-config" ,pkg-config)))
8e933cb3 2747 (home-page "https://gtkmm.org")
eadc734e
RW
2748 (synopsis "C++ bindings to the GNOME Canvas library")
2749 (description "C++ bindings to the GNOME Canvas library.")
2750 (license license:lgpl2.0+)))
2751
5698b8b8
JD
2752(define-public libgnomeui
2753 (package
2754 (name "libgnomeui")
2755 (version "2.24.5")
2756 (source (origin
2757 (method url-fetch)
b38e45d8
EB
2758 (uri (string-append "mirror://gnome/sources/" name "/"
2759 (version-major+minor version) "/"
2760 name "-" version ".tar.bz2"))
8fa1872a 2761 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2762 (sha256
2763 (base32
2764 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2765 (build-system gnu-build-system)
2766 ;; Mentioned as Required in the .pc file
0a38a497
AE
2767 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2768 ("libgnome" ,libgnome)
2769 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2770 ("libgnome-keyring" ,libgnome-keyring)))
4bd428a7 2771 (inputs `(("libjpeg" ,libjpeg-turbo)
5698b8b8
JD
2772 ("popt" ,popt)
2773 ("libbonobo" ,libbonobo)
2774 ("libxml2" ,libxml2)
2775 ("libglade" ,libglade)))
2776 (native-inputs
221ed17a
EB
2777 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2778 ("intltool" ,intltool)
5698b8b8
JD
2779 ("pkg-config" ,pkg-config)))
2780 (home-page "https://developer.gnome.org/libgnomeui/")
2781 (synopsis "Additional widgets for applications")
35b9e423 2782 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2783applications. Many of the widgets from libgnomeui have already been
2784ported to GTK+.")
5698b8b8
JD
2785 (license license:lgpl2.0+)))
2786
2787(define-public libglade
2788 (package
2789 (name "libglade")
2790 (version "2.6.4")
2791 (source (origin
2792 (method url-fetch)
b38e45d8
EB
2793 (uri (string-append "mirror://gnome/sources/" name "/"
2794 (version-major+minor version) "/"
2795 name "-" version ".tar.bz2"))
5698b8b8
JD
2796 (sha256
2797 (base32
2798 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2799 (build-system gnu-build-system)
2800 (inputs
92dcc23d
AE
2801 `(("python" ,python))) ;; needed for the optional libglade-convert program
2802 (propagated-inputs
5698b8b8 2803 `(("gtk+-2" ,gtk+-2)
92dcc23d 2804 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2805 (native-inputs
2806 `(("pkg-config" ,pkg-config)))
2807 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2808 (synopsis "Load glade interfaces and access the glade built widgets")
2809 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2810graphical interfaces described in glade files and for accessing the
2811widgets built in the loading process.")
2812 (license license:gpl2+))) ; This is correct. GPL not LGPL
2813
2814(define-public libgnomeprint
eb497b66
LC
2815 ;; This library has been deprecated since 2006; see
2816 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2817 (package
2818 (name "libgnomeprint")
d19db454 2819 (version "2.18.8")
5698b8b8
JD
2820 (source (origin
2821 (method url-fetch)
b38e45d8
EB
2822 (uri (string-append "mirror://gnome/sources/" name "/"
2823 (version-major+minor version) "/"
2824 name "-" version ".tar.bz2"))
5698b8b8
JD
2825 (sha256
2826 (base32
d19db454 2827 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2828 (build-system gnu-build-system)
2829 (inputs
2830 `(("popt" ,popt)
2831 ("libart-lgpl" ,libart-lgpl)
2832 ("gtk+" ,gtk+-2)
44add1ce 2833 ("libxml2" ,libxml2)))
5698b8b8
JD
2834 (native-inputs
2835 `(("intltool" ,intltool)
221ed17a 2836 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2837 ("pkg-config" ,pkg-config)))
2838 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2839 (synopsis "Printing framework for GNOME")
eb497b66
LC
2840 (description
2841 "GNOME-print was a printing framework for GNOME. It has been deprecated
2842since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2843 (license license:lgpl2.0+)))
2844
2845
2846(define-public libgnomeprintui
eb497b66 2847 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2848 (package
2849 (name "libgnomeprintui")
36053d7f 2850 (version "2.18.6")
5698b8b8
JD
2851 (source (origin
2852 (method url-fetch)
b38e45d8
EB
2853 (uri (string-append "mirror://gnome/sources/" name "/"
2854 (version-major+minor version) "/"
2855 name "-" version ".tar.bz2"))
5698b8b8
JD
2856 (sha256
2857 (base32
36053d7f 2858 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2859 (build-system gnu-build-system)
2860 ;; Mentioned as Required in the .pc file
2861 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2862 (inputs `(("gtk+" ,gtk+-2)
2863 ("glib" ,glib)
2864 ("gnome-icon-theme" ,gnome-icon-theme)
2865 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2866 ("libxml2" ,libxml2)))
5698b8b8
JD
2867 (native-inputs
2868 `(("intltool" ,intltool)
2869 ("pkg-config" ,pkg-config)))
2870 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2871 (synopsis "Printing framework for GNOME")
eb497b66 2872 (description (package-description libgnomeprint))
5698b8b8
JD
2873 (license license:lgpl2.0+)))
2874
5698b8b8
JD
2875(define-public libbonoboui
2876 (package
2877 (name "libbonoboui")
2878 (version "2.24.5")
2879 (source (origin
2880 (method url-fetch)
b38e45d8
EB
2881 (uri (string-append "mirror://gnome/sources/" name "/"
2882 (version-major+minor version) "/"
2883 name "-" version ".tar.bz2"))
5698b8b8
JD
2884 (sha256
2885 (base32
2886 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2887 (build-system gnu-build-system)
2888 (arguments
2889 `(#:phases
dc1d3cde
KK
2890 (modify-phases %standard-phases
2891 (add-before 'check 'start-xserver
2892 (lambda* (#:key inputs #:allow-other-keys)
2893 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2894 (disp ":1"))
2895
2896 (setenv "HOME" (getcwd))
2897 (setenv "DISPLAY" disp)
2898 ;; There must be a running X server and make check doesn't start one.
2899 ;; Therefore we must do it.
2900 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2901 ;; Mentioned as Required by the .pc file
2902 (propagated-inputs `(("libxml2" ,libxml2)))
2903 (inputs
2904 `(("popt" ,popt)
2905 ("pangox-compat" ,pangox-compat)
2906 ("libgnome" ,libgnome)
2907 ("libgnomecanvas" ,libgnomecanvas)
2908 ("libglade" ,libglade)))
2909 (native-inputs
221ed17a
EB
2910 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2911 ("intltool" ,intltool)
ff337525 2912 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2913 ("pkg-config" ,pkg-config)))
2914 (home-page "https://developer.gnome.org/libbonoboui/")
2915 (synopsis "Some user interface controls using Bonobo")
2916 (description "The Bonobo UI library provides a number of user interface
2917controls using the Bonobo component framework.")
2918 (license license:lgpl2.0+)))
2919
fecbf86e
SB
2920(define-public libwnck
2921 (package
2922 (name "libwnck")
d3b40696 2923 (version "3.32.0")
fecbf86e
SB
2924 (source (origin
2925 (method url-fetch)
2926 (uri (string-append "mirror://gnome/sources/" name "/"
2927 (version-major+minor version) "/"
2928 name "-" version ".tar.xz"))
2929 (sha256
ad9b8987 2930 (base32
d3b40696
KK
2931 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2932 (build-system meson-build-system)
fecbf86e
SB
2933 (native-inputs
2934 `(("pkg-config" ,pkg-config)
d3b40696
KK
2935 ("glib" ,glib "bin") ; for glib-mkenums
2936 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2937 ("intltool" ,intltool)))
2938 (propagated-inputs
427476d5
SB
2939 `(("gtk+" ,gtk+)
2940 ("libxres" ,libxres)
2941 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2942 (home-page "https://developer.gnome.org/libwnck/")
2943 (synopsis "Window Navigator Construction Kit")
2944 (description
2945 "Libwnck is the Window Navigator Construction Kit, a library for use in
2946writing pagers, tasklists, and more generally applications that are dealing
2947with window management. It tries hard to respect the Extended Window Manager
2948Hints specification (EWMH).")
2949 (license license:lgpl2.0+)))
2950
2951;; stable version for gtk2, required by xfwm4.
dbb7a081 2952(define-public libwnck-2
fecbf86e
SB
2953 (package (inherit libwnck)
2954 (name "libwnck")
2955 (version "2.30.7")
2956 (source (origin
2957 (method url-fetch)
2958 (uri (string-append "mirror://gnome/sources/" name "/"
2959 (version-major+minor version) "/"
2960 name "-" version ".tar.xz"))
2961 (sha256
2962 (base32
2963 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2964 (build-system gnu-build-system)
2965 (native-inputs
2966 `(("pkg-config" ,pkg-config)
2967 ("intltool" ,intltool)))
fecbf86e 2968 (propagated-inputs
427476d5
SB
2969 `(("gtk+" ,gtk+-2)
2970 ("libxres" ,libxres)
2971 ("startup-notification" ,startup-notification)))))
b804c61e
JD
2972
2973(define-public goffice
2974 (package
2975 (name "goffice")
09abffcc 2976 (version "0.10.46")
b804c61e
JD
2977 (source (origin
2978 (method url-fetch)
16243f0b 2979 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 2980 (version-major+minor version) "/"
16243f0b 2981 "goffice-" version ".tar.xz"))
b804c61e 2982 (sha256
09abffcc 2983 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 2984 (build-system gnu-build-system)
72a06d3e 2985 (outputs '("out"
355420c6 2986 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
2987 (arguments
2988 '(#:configure-flags (list (string-append "--with-html-dir="
2989 (assoc-ref %outputs "doc")
2990 "/share/gtk-doc/html"))))
b804c61e
JD
2991 (inputs
2992 `(("gtk+" ,gtk+)
2993 ("libgsf" ,libgsf)
2994 ("librsvg" ,librsvg)
2995 ("libxslt" ,libxslt)
2996 ("libxml2" ,libxml2)))
2997 (native-inputs
2998 `(("intltool" ,intltool)
f280cdb1 2999 ("glib" ,glib "bin")
b804c61e
JD
3000 ("pkg-config" ,pkg-config)))
3001 (home-page "https://developer.gnome.org/goffice/")
3002 (synopsis "Document-centric objects and utilities")
3003 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3004 (license
b804c61e
JD
3005 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3006 ;; Note: NOT LGPL
3007 (list license:gpl2 license:gpl3))))
3008
c024ae36
RW
3009(define-public goffice-0.8
3010 (package (inherit goffice)
3011 (version "0.8.17")
3012 (source (origin
3013 (method url-fetch)
3014 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3015 (version-major+minor version) "/"
3016 (package-name goffice) "-" version ".tar.xz"))
3017 (sha256
3018 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3019 (arguments
3020 `(#:phases
dc1d3cde
KK
3021 (modify-phases %standard-phases
3022 (add-after 'unpack 'fix-pcre-check
3023 (lambda _
3024 ;; Only glib.h can be included directly. See
3025 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3026 (substitute* "configure"
3027 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3028
3029 ,@(package-arguments goffice)))
c024ae36
RW
3030 (propagated-inputs
3031 ;; libgoffice-0.8.pc mentions libgsf-1
3032 `(("libgsf" ,libgsf)))
3033 (inputs
3034 `(("gtk" ,gtk+-2)
3035 ,@(alist-delete "gtk" (package-inputs goffice))))))
3036
b804c61e
JD
3037(define-public gnumeric
3038 (package
3039 (name "gnumeric")
f0517b5d 3040 (version "1.12.46")
b804c61e
JD
3041 (source (origin
3042 (method url-fetch)
b7fd0217 3043 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3044 (version-major+minor version) "/"
b7fd0217 3045 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3046 (sha256
3047 (base32
f0517b5d 3048 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3049 (build-system glib-or-gtk-build-system)
b804c61e
JD
3050 (arguments
3051 `(;; The gnumeric developers don't worry much about failing tests.
3052 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3053 #:tests? #f
b804c61e 3054 #:phases
7bcbd40d
EF
3055 (modify-phases %standard-phases
3056 (add-before
3057 'configure 'pre-conf
3058 (lambda* (#:key outputs #:allow-other-keys)
3059 ;; Make install tries to write into the directory of goffice
3060 ;; I am informed that this only affects the possibility to embed a
3061 ;; spreadsheet inside an Abiword document. So presumably when we
3062 ;; package Abiword we'll have to refer it to this directory.
3063 (substitute* "configure"
3064 (("^GOFFICE_PLUGINS_DIR=.*")
3065 (string-append "GOFFICE_PLUGINS_DIR="
3066 (assoc-ref outputs "out")
3067 "/goffice/plugins"))))))))
b804c61e
JD
3068 (inputs
3069 `(("glib" ,glib)
3070 ("gtk+" ,gtk+)
3071 ("goffice" ,goffice)
3072 ("libgsf" ,libgsf)
7bcbd40d 3073 ("librsvg" ,librsvg)
b804c61e 3074 ("libxml2" ,libxml2)
7bcbd40d 3075 ("libxslt" ,libxslt)
2e4c5457 3076 ("python" ,python-2)
6983ba56 3077 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3078 ("zlib" ,zlib)))
3079 (native-inputs
6983ba56 3080 `(("bison" ,bison)
1ed398d1 3081 ("docbook-xml" ,docbook-xml)
6983ba56 3082 ("intltool" ,intltool)
785fcb62 3083 ("itstool" ,itstool)
b9663471 3084 ("glib:bin" ,glib "bin")
b804c61e
JD
3085 ("pkg-config" ,pkg-config)))
3086 (home-page "http://www.gnumeric.org")
66672a45
LC
3087 (synopsis "Spreadsheet application")
3088 (description
3089 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3090interoperable with other spreadsheet applications. It has a vast array of
3091features beyond typical spreadsheet functionality, such as support for linear
3092and non-linear solvers, statistical analysis, and telecommunication
3093engineering.")
3094 (license
b804c61e
JD
3095 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3096 (list license:gpl2 license:gpl3))))
6f885c05
FB
3097
3098(define-public gnome-themes-standard
3099 (package
3100 (name "gnome-themes-standard")
0b7b8fb0 3101 (version "3.22.3")
6f885c05
FB
3102 (source
3103 (origin
3104 (method url-fetch)
2e6ecc5c 3105 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3106 (version-major+minor version) "/" name "-"
3107 version ".tar.xz"))
3108 (sha256
3109 (base32
0b7b8fb0 3110 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3111 (build-system gnu-build-system)
8ac70c7f
SB
3112 (arguments
3113 '(#:configure-flags
3114 ;; Don't create 'icon-theme.cache'.
3115 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3116 (true (string-append coreutils "/bin/true")))
3117 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3118 (inputs
3119 `(("gtk+" ,gtk+)
3120 ("gtk+-2" ,gtk+-2)
3121 ("librsvg" ,librsvg)
3122 ("libxml2" ,libxml2)
3123 ("glib" ,glib)))
3124 (native-inputs
3125 `(("intltool" ,intltool)
3126 ("glib:bin" ,glib "bin")
3127 ("pkg-config" ,pkg-config)))
6f885c05
FB
3128 (home-page "https://launchpad.net/gnome-themes-standard")
3129 (synopsis "Default GNOME 3 themes")
3130 (description
3131 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3132 (license license:lgpl2.1+)))
5a659a48 3133
df90c701
RW
3134(define-public seahorse
3135 (package
3136 (name "seahorse")
1efcf722 3137 (version "3.34")
df90c701
RW
3138 (source
3139 (origin
3140 (method url-fetch)
3141 (uri (string-append "mirror://gnome/sources/" name "/"
3142 (version-major+minor version) "/" name "-"
3143 version ".tar.xz"))
3144 (sha256
3145 (base32
1efcf722 3146 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
af561664
MÁAV
3147 (build-system meson-build-system)
3148 (arguments
bcea3c11
KK
3149 '(#:glib-or-gtk? #t
3150 #:phases
af561664
MÁAV
3151 (modify-phases %standard-phases
3152 (add-after 'unpack 'skip-gtk-update-icon-cache
3153 ;; Don't create 'icon-theme.cache'.
3154 (lambda _
3155 (substitute* "build-aux/meson_post_install.py"
3156 (("gtk-update-icon-cache") "true"))
3157 #t)))))
df90c701
RW
3158 (inputs
3159 `(("gtk+" ,gtk+)
3160 ("gcr" ,gcr)
34b979b9 3161 ("gnupg" ,gnupg)
df90c701 3162 ("gpgme" ,gpgme)
34b979b9 3163 ("openldap" ,openldap)
4a1bf090 3164 ("openssh" ,openssh)
af561664 3165 ("avahi" ,avahi)
bcea3c11 3166 ("libpwquality" ,libpwquality)
34b979b9
EF
3167 ("libsecret" ,libsecret)
3168 ("libsoup" ,libsoup)))
df90c701 3169 (native-inputs
af561664 3170 `(("gettext" ,gettext-minimal)
df90c701
RW
3171 ("glib:bin" ,glib "bin")
3172 ("itstool" ,itstool)
bcb354ad 3173 ("pkg-config" ,pkg-config)
af561664 3174 ("vala" ,vala)
bcb354ad 3175 ("xmllint" ,libxml2)))
bcea3c11 3176 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3177 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3178 (description
3179 "Seahorse is a GNOME application for managing encryption keys and
3180passwords in the GNOME keyring.")
3181 (license license:gpl2+)))
3182
5a659a48
SB
3183(define-public vala
3184 (package
3185 (name "vala")
b92a36db 3186 (version "0.46.5")
5a659a48
SB
3187 (source (origin
3188 (method url-fetch)
3189 (uri (string-append "mirror://gnome/sources/" name "/"
3190 (version-major+minor version) "/"
3191 name "-" version ".tar.xz"))
3192 (sha256
3193 (base32
b92a36db 3194 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
5a659a48 3195 (build-system gnu-build-system)
1ea90625
SB
3196 (arguments
3197 '(#:phases
3198 (modify-phases %standard-phases
f4925a4f 3199 (add-before 'check 'pre-check
1ea90625
SB
3200 (lambda _
3201 (setenv "CC" "gcc")
8839b6be
RW
3202 (substitute* "valadoc/tests/testrunner.sh"
3203 (("export PKG_CONFIG_PATH=" m)
3204 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3205 ;; For missing '/etc/machine-id'.
3206 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3207 #t)))))
5a659a48
SB
3208 (native-inputs
3209 `(("pkg-config" ,pkg-config)
3210 ("flex" ,flex)
3211 ("bison" ,bison)
3212 ("xsltproc" ,libxslt)
3213 ("dbus" ,dbus) ; for dbus tests
3214 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3215 (inputs
3216 `(("graphviz" ,graphviz)))
5a659a48 3217 (propagated-inputs
8839b6be 3218 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3219 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3220 (synopsis "Compiler for the GObject type system")
3221 (description
3222 "Vala is a programming language that aims to bring modern programming
3223language features to GNOME developers without imposing any additional runtime
3224requirements and without using a different ABI compared to applications and
3225libraries written in C.")
3226 (license license:lgpl2.1+)))
ea57378f
SB
3227
3228(define-public vte
3229 (package
3230 (name "vte")
68c47474 3231 (version "0.58.3")
ea57378f
SB
3232 (source (origin
3233 (method url-fetch)
ac87ffb8 3234 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3235 (version-major+minor version) "/"
ac87ffb8 3236 "vte-" version ".tar.xz"))
ea57378f
SB
3237 (sha256
3238 (base32
68c47474
TGR
3239 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3240 (build-system meson-build-system)
ea57378f
SB
3241 (native-inputs
3242 `(("pkg-config" ,pkg-config)
3243 ("intltool" ,intltool)
3244 ("vala" ,vala)
3245 ("gobject-introspection" ,gobject-introspection)
68c47474 3246 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3247 ("gperf" ,gperf)
ea57378f
SB
3248 ("xmllint" ,libxml2)))
3249 (propagated-inputs
68c47474
TGR
3250 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3251 ("gnutls" ,gnutls) ; ditto
3252 ("pcre2" ,pcre2))) ; ditto
f032d0be 3253 (home-page "https://www.gnome.org/")
ea57378f
SB
3254 (synopsis "Virtual Terminal Emulator")
3255 (description
3256 "VTE is a library (libvte) implementing a terminal emulator widget for
3257GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3258gnome-terminal, but can also be used to embed a console/terminal in games,
3259editors, IDEs, etc.")
3260 (license license:lgpl2.1+)))
3261
c44fb4df
MO
3262(define-public vte-ng
3263 (package
3264 (inherit vte)
3265 (name "vte-ng")
24f4fcbe 3266 (version "0.58.2.a")
afd90f8d 3267 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3268 (source (origin
3269 (method git-fetch)
3270 (uri (git-reference (url home-page) (commit version)))
3271 (file-name (git-file-name name version))
3272 (sha256
3273 (base32
24f4fcbe
MB
3274 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3275 (build-system meson-build-system)
c44fb4df
MO
3276 (native-inputs
3277 `(("gtk-doc" ,gtk-doc)
c44fb4df 3278 ,@(package-native-inputs vte)))
c44fb4df 3279 (arguments
24f4fcbe 3280 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3281 (synopsis "Enhanced VTE terminal widget")
3282 (description
3283 "VTE is a library (libvte) implementing a terminal emulator widget for
3284GTK+, this fork provides additional functions exposed for keyboard text
3285selection and URL hints.")))
3286
2776d72c
EF
3287;; provides vte 2.90, required for some terminal emulators
3288;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3289;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3290;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3291;; pantheon-terminal, roxterm are not currently packaged
3292(define-public vte-0.36
3293 (package (inherit vte)
3294 (name "vte")
3295 (version "0.36.5")
3296 (source (origin
3297 (method url-fetch)
3298 (uri (string-append "mirror://gnome/sources/" name "/"
3299 (version-major+minor version) "/"
3300 name "-" version ".tar.xz"))
3301 (sha256
3302 (base32
3303 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3304 (propagated-inputs
3305 `(("gtk" ,gtk+)
3306 ("ncurses" ,ncurses)))))
3307
ea57378f
SB
3308;; stable version for gtk2, required by xfce4-terminal.
3309(define-public vte/gtk+-2
3310 (package (inherit vte)
3311 (name "vte")
3312 (version "0.28.2")
3313 (source (origin
3314 (method url-fetch)
3315 (uri (string-append "mirror://gnome/sources/" name "/"
3316 (version-major+minor version) "/"
3317 name "-" version ".tar.xz"))
3318 (sha256
3319 (base32
7d48938a
EF
3320 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3321 (patches (search-patches
3322 "vte-CVE-2012-2738-pt1.patch"
3323 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3324 (build-system gnu-build-system)
ea57378f
SB
3325 (arguments
3326 '(#:configure-flags '("--disable-python")))
3327 (native-inputs
3328 `(("pkg-config" ,pkg-config)
3329 ("intltool" ,intltool)
3330 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3331 (propagated-inputs
3332 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3333 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3334
cce0da5e
TD
3335(define-public vinagre
3336 (package
3337 (name "vinagre")
3338 (version "3.22.0")
3339 (source (origin
3340 (method url-fetch)
3341 (uri (string-append "mirror://gnome/sources/" name "/"
3342 (version-major+minor version) "/"
3343 name "-" version ".tar.xz"))
684f97f8
EF
3344 (patches (search-patches "vinagre-newer-freerdp.patch"
3345 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3346 (sha256
3347 (base32
3348 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3349 (build-system glib-or-gtk-build-system)
684f97f8 3350 (arguments
7f486d25
MC
3351 ;; Disable -Werror and such, to avoid build failures on compilation
3352 ;; warnings.
3353 '(#:configure-flags '("--enable-compile-warnings=minimum")
3354 #:phases
684f97f8 3355 (modify-phases %standard-phases
1839768c
EF
3356 (add-before 'install 'skip-gtk-update-icon-cache
3357 (lambda _
3358 ;; Don't create 'icon-theme.cache'
3359 (substitute* (find-files "." "^Makefile$")
3360 (("gtk-update-icon-cache") (which "true")))
3361 #t))
684f97f8
EF
3362 (add-after 'unpack 'patch-configure
3363 (lambda _
3364 (substitute* "configure"
3365 (("freerdp") "freerdp2"))
3366 #t)))))
cce0da5e
TD
3367 (native-inputs
3368 `(("pkg-config" ,pkg-config)
3369 ("intltool" ,intltool)
3370 ("itstool" ,itstool)
1839768c 3371 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3372 (inputs
3373 `(("libxml2" ,libxml2)
3374 ("gtk-vnc" ,gtk-vnc)
3375 ("gnome-keyring" ,gnome-keyring)
3376 ("libsecret" ,libsecret)
3377 ("freerdp" ,freerdp)
3378 ("spice" ,spice)
3379 ("spice-gtk" ,spice-gtk)
3380 ("telepathy-glib" ,telepathy-glib)
3381 ("vte" ,vte)))
cce0da5e
TD
3382 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3383 (synopsis "Remote desktop viewer for GNOME")
3384 (description "Vinagre is a remote display client supporting the VNC, SPICE
3385and RDP protocols.")
3386 (license license:gpl3+)))
3387
b47e1b20
FB
3388(define-public dconf
3389 (package
3390 (name "dconf")
7f4d075d 3391 (version "0.34.0")
b47e1b20
FB
3392 (source (origin
3393 (method url-fetch)
3394 (uri (string-append
2e6ecc5c 3395 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3396 (version-major+minor version) "/"
3397 name "-" version ".tar.xz"))
46c3a08b 3398 (patches (search-patches "dconf-meson-0.52.patch"))
b47e1b20 3399 (sha256
f05c809f 3400 (base32
7f4d075d 3401 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
35fa923d 3402 (build-system meson-build-system)
bc036f4c
MB
3403 (propagated-inputs
3404 ;; In Requires of dconf.pc.
3405 `(("glib" ,glib)))
b47e1b20
FB
3406 (inputs
3407 `(("gtk+" ,gtk+)
bc036f4c 3408 ("dbus" ,dbus)))
b47e1b20 3409 (native-inputs
1e33331c
MB
3410 `(("bash-completion" ,bash-completion)
3411 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3412 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3413 ("docbook-xml" ,docbook-xml-4.2)
3414 ("docbook-xsl" ,docbook-xsl)
35fa923d 3415 ("glib:bin" ,glib "bin")
03676d6f 3416 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3417 ("pkg-config" ,pkg-config)
3418 ("vala" ,vala)))
b47e1b20
FB
3419 (arguments
3420 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3421 ; or /etc/machine-id.
35fa923d
MB
3422 #:glib-or-gtk? #t
3423 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
3424 (home-page "https://developer.gnome.org/dconf")
3425 (synopsis "Low-level GNOME configuration system")
3426 (description "Dconf is a low-level configuration system. Its main purpose
3427is to provide a backend to GSettings on platforms that don't already have
3428configuration storage systems.")
e20e6b40 3429 (license license:lgpl2.1+)))
109da1c0
AE
3430
3431(define-public json-glib
3432 (package
3433 (name "json-glib")
4115e8ea 3434 (version "1.4.4")
109da1c0
AE
3435 (source (origin
3436 (method url-fetch)
3437 (uri (string-append "mirror://gnome/sources/" name "/"
3438 (version-major+minor version) "/"
3439 name "-" version ".tar.xz"))
3440 (sha256
3441 (base32
4115e8ea 3442 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3443 (build-system meson-build-system)
109da1c0 3444 (native-inputs
98afa184
MB
3445 `(("gettext" ,gettext-minimal)
3446 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3447 ("gobject-introspection" ,gobject-introspection)
3448 ("pkg-config" ,pkg-config)))
3449 (propagated-inputs
88c6b580 3450 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3451 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3452 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3453 (description
3454 "JSON-GLib is a C library based on GLib providing serialization and
3455deserialization support for the JavaScript Object Notation (JSON) format
3456described by RFC 4627. It provides parser and generator GObject classes and
3457various wrappers for the complex data types employed by JSON, such as arrays
3458and objects.")
109da1c0 3459 (license license:lgpl2.1+)))
6f96a359
SB
3460
3461(define-public libxklavier
3462 (package
3463 (name "libxklavier")
5f39050b 3464 (version "5.4")
6f96a359 3465 (source (origin
5f39050b 3466 ;; Note: There's no tarball at ftp.gnome.org for this version.
3467 (method git-fetch)
3468 (uri (git-reference
3469 (url "https://anongit.freedesktop.org/git/libxklavier")
3470 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3471 (sha256
3472 (base32
5f39050b 3473 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3474 (file-name (git-file-name name version))))
6f96a359
SB
3475 (build-system gnu-build-system)
3476 (arguments
778d6b52 3477 '(#:configure-flags
6f96a359
SB
3478 (list (string-append "--with-xkb-base="
3479 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3480 "/share/X11/xkb")
3481 "--disable-xmodmap-support")))
6f96a359
SB
3482 (native-inputs
3483 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3484 ("gobject-introspection" ,gobject-introspection)
5f39050b 3485 ("pkg-config" ,pkg-config)
3486 ("gtk-doc" ,gtk-doc)
3487 ("intltool" ,intltool)
3488 ("which" ,which)
3489 ("autoconf" ,autoconf)
3490 ("automake" ,automake)
3491 ("libtool" ,libtool)))
6f96a359
SB
3492 (propagated-inputs
3493 ;; Required by libxklavier.pc.
3494 `(("glib" ,glib)
3495 ("libxml2" ,libxml2)))
3496 (inputs
3497 `(("iso-codes" ,iso-codes)
3498 ("libxi" ,libxi)
3499 ("libxkbfile" ,libxkbfile)
3500 ("xkbcomp" ,xkbcomp)
3501 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3502 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3503 (synopsis "High-level API for X Keyboard Extension")
3504 (description
3505 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3506Extension known as XKB. This library is intended to support XFree86 and other
3507commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3508indicators etc).")
3509 (license license:lgpl2.0+)))
619936a4
LC
3510
3511(define-public python2-rsvg
3512 ;; XXX: This is actually a subset of gnome-python-desktop.
3513 (package
3514 (name "python2-rsvg")
3515 (version "2.32.0")
3516 (source
3517 (origin
3518 (method url-fetch)
3519 (uri (string-append
3520 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3521 version ".tar.bz2"))
3522 (sha256
3523 (base32
3524 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3525 (build-system gnu-build-system)
3526 (native-inputs
3527 `(("pkg-config" ,pkg-config)))
3528 (inputs
3529 `(("python" ,python-2)
3530 ("python2-pygtk" ,python2-pygtk)
3531 ("librsvg" ,librsvg)))
f032d0be 3532 (home-page "https://www.gnome.org")
619936a4
LC
3533 (synopsis "Python bindings to librsvg")
3534 (description
3ad75446 3535 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3536library.")
3537
3538 ;; This is the license of the rsvg bindings. The license of each module
3539 ;; of gnome-python-desktop is given in 'COPYING'.
3540 (license license:lgpl2.1+)))
a31a6d22 3541
f2ca414a
SB
3542(define-public glib-networking
3543 (package
3544 (name "glib-networking")
ea9f74b0 3545 (version "2.62.2")
f2ca414a
SB
3546 (source (origin
3547 (method url-fetch)
3548 (uri (string-append "mirror://gnome/sources/glib-networking/"
3549 (version-major+minor version) "/"
fb8fe1e8 3550 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3551 (sha256
3552 (base32
ea9f74b0 3553 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
65211552 3554 (build-system meson-build-system)
f2ca414a 3555 (arguments
0d75c64d 3556 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3557 (native-inputs
3558 `(("pkg-config" ,pkg-config)
3559 ("intltool" ,intltool)))
3560 (inputs
3561 `(("glib" ,glib)
3562 ("gnutls" ,gnutls)
4b8f1313 3563 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3564 (home-page "https://www.gnome.org")
f2ca414a
SB
3565 (synopsis "Network-related GIO modules")
3566 (description
3567 "This package contains various network related extensions for the GIO
3568library.")
3569 (license license:lgpl2.0+)))
3570
ca649680 3571(define-public rest
4510b2da 3572 (package
ca649680 3573 (name "rest")
a4194d16 3574 (version "0.8.1")
4510b2da
SB
3575 (source (origin
3576 (method url-fetch)
3577 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3578 (version-major+minor version) "/"
3579 name "-" version ".tar.xz"))
4510b2da
SB
3580 (sha256
3581 (base32
a4194d16 3582 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3583 (build-system gnu-build-system)
3584 (arguments
3585 '(#:tests? #f ; tests require internet connection
3586 #:configure-flags
3587 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3588 (native-inputs
3589 `(("glib-mkenums" ,glib "bin")
3590 ("gobject-introspection" ,gobject-introspection)
3591 ("pkg-config" ,pkg-config)))
3592 (propagated-inputs
3593 ;; rest-0.7.pc refers to all these.
3594 `(("glib" ,glib)
3595 ("libsoup" ,libsoup)
3596 ("libxml2" ,libxml2)))
24d6cc1d 3597 (home-page "https://www.gtk.org/")
4510b2da
SB
3598 (synopsis "RESTful web api query library")
3599 (description
3600 "This library was designed to make it easier to access web services that
3601claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3602libxml to ease remote use of the RESTful API.")
3603 (license license:lgpl2.1+)))
3604
6e1bb642
SB
3605(define-public libsoup
3606 (package
3607 (name "libsoup")
9a9cd9bc 3608 (version "2.70.0")
6e1bb642
SB
3609 (source (origin
3610 (method url-fetch)
3611 (uri (string-append "mirror://gnome/sources/libsoup/"
3612 (version-major+minor version) "/"
c1b79b36 3613 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3614 (sha256
3615 (base32
9a9cd9bc 3616 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
eccaa8bf 3617 (build-system meson-build-system)
6e1bb642
SB
3618 (outputs '("out" "doc"))
3619 (arguments
2deb146f 3620 `(#:modules ((guix build utils)
eccaa8bf 3621 (guix build meson-build-system)
2deb146f
LC
3622 (ice-9 popen))
3623
f8026a79 3624 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3625 #:phases
3626 (modify-phases %standard-phases
eccaa8bf 3627 (add-after 'unpack 'adjust-tests
26c228f9 3628 (lambda _
eccaa8bf
MB
3629 ;; This test fails due to missing /etc/nsswitch.conf
3630 ;; in the build environment.
26c228f9
LC
3631 (substitute* "tests/socket-test.c"
3632 ((".*/sockets/unconnected.*") ""))
2deb146f 3633
f8026a79
MB
3634 ;; These fail because "subdomain.localhost" does not resolve in
3635 ;; the build environment.
3636 (substitute* "tests/hsts-test.c"
3637 ((".*/hsts/basic.*") "")
3638 ((".*/hsts/subdomains.*") "")
3639 ((".*/hsts/superdomain.*") "")
3640 ((".*/hsts/utf8-address.*") ""))
3641 (substitute* "tests/hsts-db-test.c"
3642 ((".*/hsts-db/subdomains.*") ""))
3643
2deb146f
LC
3644 ;; Generate a self-signed certificate that has "localhost" as its
3645 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3646 ;; 3.5.12, tests such as "ssl-tests" fail:
3647 ;;
3648 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3649 ;;
3650 ;; 'certtool' is interactive so we have to pipe it the answers.
3651 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3652 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3653 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3654 (for-each (lambda (line)
3655 (display line pipe)
3656 (newline pipe))
3657 '("" ;Common name
3658 "" ;UID
3659 "Guix" ;Organizational unit name
3660 "GNU" ;Organization name
3661 "" ;Locality name
3662 "" ;State or province
3663 "" ;Country
3664 "" ;subject's domain component (DC)
3665 "" ;E-mail
3666 "" ;serial number
3667 "-1" ;expiration time
3668 "N" ;belong to authority?
3669 "N" ;web client certificate?
3670 "N" ;IPsec IKE?
3671 "Y" ;web server certificate?
3672 "localhost" ;dnsName of subject
3673 "" ;dnsName of subject (end)
3674 "" ;URI of subject
3675 "127.0.0.1" ;IP address of subject
3676 "" ;signing?
06f5bc4e
MB
3677 "" ;encryption (RSA)?
3678 "" ;data encryption?
2deb146f
LC
3679 "" ;sign OCSP requests?
3680 "" ;sign code?
3681 "" ;time stamping?
3682 "" ;email protection?
3683 "" ;URI of the CRL distribution point
3684 "y" ;above info OK?
3685 ))
3686 (close-pipe pipe))
26c228f9 3687 #t))
eccaa8bf
MB
3688 (add-after 'install 'move-doc
3689 (lambda* (#:key outputs #:allow-other-keys)
3690 (let ((out (assoc-ref outputs "out"))
3691 (doc (assoc-ref outputs "doc")))
3692 (mkdir-p (string-append doc "/share"))
3693 (copy-recursively (string-append out "/share/gtk-doc")
3694 (string-append doc "/share/gtk-doc"))
3695 (delete-file-recursively (string-append out "/share/gtk-doc"))
3696 #t))))))
6e1bb642 3697 (native-inputs
26c228f9 3698 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3699 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3700 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3701 ("intltool" ,intltool)
3702 ("pkg-config" ,pkg-config)
3703 ("python" ,python-wrapper)
fd730590 3704 ("vala" ,vala)
6e1bb642
SB
3705 ;; These are needed for the tests.
3706 ;; FIXME: Add PHP once available.
3707 ("curl" ,curl)
2deb146f 3708 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3709 ("httpd" ,httpd)))
3710 (propagated-inputs
3711 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3712 `(("brotli" ,google-brotli)
3713 ("glib" ,glib)
249846bf 3714 ("libpsl" ,libpsl)
eccaa8bf 3715 ("libxml2" ,libxml2)
f8026a79
MB
3716 ("sqlite" ,sqlite)
3717 ("zlib" ,zlib)))
eccaa8bf
MB
3718 (inputs
3719 `(("glib-networking" ,glib-networking)
3720 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3721 (home-page "https://live.gnome.org/LibSoup/")
3722 (synopsis "GLib-based HTTP Library")
3723 (description
3724 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3725and the GLib main loop, to integrate well with GNOME applications.")
3726 (license license:lgpl2.0+)))
3727
bba229a3
SB
3728(define-public libsecret
3729 (package
3730 (name "libsecret")
b05a2f62 3731 (version "0.20.3")
bba229a3
SB
3732 (source (origin
3733 (method url-fetch)
3734 (uri (string-append
896dcbc7
EF
3735 "mirror://gnome/sources/libsecret/"
3736 (version-major+minor version) "/"
0ada4e29 3737 "libsecret-" version ".tar.xz"))
bba229a3
SB
3738 (sha256
3739 (base32
b05a2f62 3740 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
bba229a3
SB
3741 (build-system gnu-build-system)
3742 (outputs '("out" "doc"))
3743 (arguments
3744 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3745 #:configure-flags
3746 (list (string-append "--with-html-dir="
3747 (assoc-ref %outputs "doc")
3748 "/share/gtk-doc/html"))))
3749 (native-inputs
c06ef010
MB
3750 `(("gettext" ,gettext-minimal)
3751 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3752 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3753 ("pkg-config" ,pkg-config)
3754 ("vala" ,vala)
3755 ("xsltproc" ,libxslt)))
3756 ;; These are needed for the tests.
3757 ;; FIXME: Add gjs once available.
3758 ;("dbus" ,dbus)
3759 ;("python2" ,python-2)
3760 ;("python2-dbus" ,python2-dbus)
3761 ;("python2-pygobject" ,python2-pygobject)
3762 ;("python2-pygobject-2" ,python2-pygobject-2)))
3763 (propagated-inputs
3764 `(("glib" ,glib))) ; required by libsecret-1.pc
3765 (inputs
3766 `(("docbook-xsl" ,docbook-xsl)
3767 ("libgcrypt" ,libgcrypt)
3768 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3769 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3770 (synopsis "GObject bindings for \"Secret Service\" API")
3771 (description
3772 "Libsecret is a GObject based library for storing and retrieving passwords
3773and other secrets. It communicates with the \"Secret Service\" using DBus.")
3774 (license license:lgpl2.1+)))
3775
b6821ee0 3776(define-public five-or-more
3777 (package
3778 (name "five-or-more")
ee75b46f 3779 (version "3.32.2")
b6821ee0 3780 (source
3781 (origin
3782 (method url-fetch)
bf782bfc 3783 (uri (string-append "mirror://gnome/sources/five-or-more/"
b6821ee0 3784 (version-major+minor version) "/"
bf782bfc 3785 "five-or-more-" version ".tar.xz"))
b6821ee0 3786 (sha256
ee75b46f 3787 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
d9795e93
KK
3788 (build-system meson-build-system)
3789 (arguments
3790 '(#:glib-or-gtk? #t
3791 #:phases
3792 (modify-phases %standard-phases
3793 (add-after 'unpack 'skip-gtk-update-icon-cache
3794 (lambda _
3795 (substitute* "meson_post_install.py"
3796 (("gtk-update-icon-cache") (which "true")))
3797 #t)))))
b6821ee0 3798 (native-inputs
3799 `(("pkg-config" ,pkg-config)
d9795e93 3800 ("appstream-glib" ,appstream-glib)
b6821ee0 3801 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3802 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3803 ("intltool" ,intltool)
3804 ("itstool" ,itstool)
d9795e93 3805 ("vala" ,vala)
b6821ee0 3806 ("xmllint" ,libxml2)))
3807 (inputs
3808 `(("gtk+" ,gtk+)
d9795e93 3809 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3810 ("librsvg" ,librsvg)))
3811 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3812 (synopsis "Logic puzzle game")
3813 (description "Five or More is a game where you try to align
3814 five or more objects of the same color and shape causing them to disappear.
3815 On every turn more objects will appear, until the board is full.
3816 Try to last as long as possible.")
3817 (license license:gpl2+)))
3818
a31a6d22
SB
3819(define-public gnome-mines
3820 (package
3821 (name "gnome-mines")
d79e9b1b 3822 (version "3.34.0")
a31a6d22
SB
3823 (source
3824 (origin
3825 (method url-fetch)
3826 (uri (string-append "mirror://gnome/sources/" name "/"
3827 (version-major+minor version) "/"
3828 name "-" version ".tar.xz"))
3829 (sha256
3830 (base32
d79e9b1b 3831 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
8c0fab36 3832 (build-system meson-build-system)
a31a6d22 3833 (arguments
2d817e41
KK
3834 '(#:glib-or-gtk? #t
3835 #:phases
a31a6d22 3836 (modify-phases %standard-phases
2d817e41
KK
3837 (add-after 'unpack 'skip-gtk-update-icon-cache
3838 (lambda _
3839 (substitute* "build-aux/meson_post_install.py"
3840 (("gtk-update-icon-cache") (which "true")))
3841 #t)))))
a31a6d22 3842 (native-inputs
8c0fab36
RW
3843 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3844 ("pkg-config" ,pkg-config)
a31a6d22
SB
3845 ("desktop-file-utils" ,desktop-file-utils)
3846 ("intltool" ,intltool)
bcb354ad 3847 ("itstool" ,itstool)
8c0fab36
RW
3848 ("vala" ,vala)
3849 ("yelp" ,yelp)
3850 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3851 (inputs
3852 `(("gtk+" ,gtk+)
73992962 3853 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3854 ("librsvg" ,librsvg)))
3855 (home-page "https://wiki.gnome.org/Apps/Mines")
3856 (synopsis "Minesweeper game")
3857 (description
3858 "Mines (previously gnomine) is a puzzle game where you locate mines
3859floating in an ocean using only your brain and a little bit of luck.")
3860 (license license:gpl2+)))
88f70665 3861
dfc407f3
KY
3862(define-public gnome-sudoku
3863 (package
3864 (name "gnome-sudoku")
857eb190 3865 (version "3.34.1")
dfc407f3
KY
3866 (source
3867 (origin
3868 (method url-fetch)
3869 (uri (string-append "mirror://gnome/sources/" name "/"
3870 (version-major+minor version) "/"
3871 name "-" version ".tar.xz"))
3872 (sha256
3873 (base32
857eb190 3874 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
7dc728c4
KK
3875 (build-system meson-build-system)
3876 (arguments
3877 '(#:glib-or-gtk? #t
3878 #:phases
3879 (modify-phases %standard-phases
3880 (add-after 'unpack 'skip-gtk-update-icon-cache
3881 (lambda _
3882 (substitute* "build-aux/post_install.py"
3883 (("gtk-update-icon-cache") (which "true")))
3884 #t)))))
dfc407f3
KY
3885 (native-inputs
3886 `(("pkg-config" ,pkg-config)
3887 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3888 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3889 ("intltool" ,intltool)
3890 ("itstool" ,itstool)
7dc728c4 3891 ("vala" ,vala)
dfc407f3
KY
3892 ("xmllint" ,libxml2)))
3893 (inputs
3894 `(("gtk+" ,gtk+)
3895 ("json-glib" ,json-glib)
3896 ("libgee" ,libgee)
3897 ("librsvg" ,librsvg)
3898 ("qqwing" ,qqwing)))
3899 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3900 (synopsis "Japanese logic game")
3901 (description
3902 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3903GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3904possible while still providing features that make playing difficult Sudoku
3905more fun.")
3906 (license license:gpl2+)))
3907
88f70665
AW
3908(define-public gnome-terminal
3909 (package
3910 (name "gnome-terminal")
80f6f9d8 3911 (version "3.34.2")
88f70665
AW
3912 (source
3913 (origin
3914 (method url-fetch)
3915 (uri (string-append "mirror://gnome/sources/" name "/"
3916 (version-major+minor version) "/"
3917 name "-" version ".tar.xz"))
3918 (sha256
3919 (base32
80f6f9d8 3920 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
88f70665
AW
3921 (build-system glib-or-gtk-build-system)
3922 (arguments
3923 '(#:configure-flags
3924 (list "--disable-migration" "--disable-search-provider"
3925 "--without-nautilus-extension")
3926 #:phases
3927 (modify-phases %standard-phases
3a4de6b2 3928 (add-before 'configure 'patch-/bin/true
88f70665
AW
3929 (lambda _
3930 (substitute* "configure"
3931 (("/bin/true") (which "true"))))))))
3932 (native-inputs
3933 `(("pkg-config" ,pkg-config)
3934 ("desktop-file-utils" ,desktop-file-utils)
3935 ("intltool" ,intltool)
bcb354ad
SB
3936 ("itstool" ,itstool)
3937 ("xmllint" ,libxml2)))
68702167
MW
3938 (propagated-inputs
3939 `(("dconf" ,dconf)))
88f70665
AW
3940 (inputs
3941 `(("gtk+" ,gtk+)
3942 ("vte" ,vte)
3943 ("gnutls" ,gnutls)
88f70665 3944 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
bb93042c 3945 ("util-linux" ,util-linux "lib")
88f70665
AW
3946 ("vala" ,vala)))
3947 (home-page "https://wiki.gnome.org/Apps/Terminal")
3948 (synopsis "Terminal emulator")
3949 (description
3950 "GNOME Terminal is a terminal emulator application for accessing a
3951UNIX shell environment which can be used to run programs available on
3952your system.
3953
3954It supports several profiles, multiple tabs and implements several
3955keyboard shortcuts.")
3956 (license license:gpl3+)))
75016d07
AW
3957
3958(define-public colord
3959 (package
3960 (name "colord")
f98be942 3961 (version "1.4.4")
75016d07
AW
3962 (source
3963 (origin
3964 (method url-fetch)
5cc3096c 3965 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 3966 "colord-" version ".tar.xz"))
75016d07 3967 (sha256
f98be942 3968 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 3969 (build-system meson-build-system)
75016d07 3970 (arguments
a68544a8
RW
3971 '(;; FIXME: One test fails:
3972 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3973 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3974 ;; application/x-zerosize
75016d07 3975 #:tests? #f
a68544a8
RW
3976 #:glib-or-gtk? #t
3977 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 3978 ;; No dep on systemd.
a68544a8 3979 "-Dsystemd=false"
75016d07
AW
3980 ;; Wants to install to global completion dir;
3981 ;; punt.
a68544a8 3982 "-Dbash_completion=false"
a68544a8
RW
3983 "-Ddaemon_user=colord"
3984 "-Dsane=true"
dac26e22 3985 "-Dvapi=true"
6f20e2dc 3986 ;; Requires spotread.
a68544a8 3987 "-Dargyllcms_sensor=false"
6f20e2dc 3988 ;; TODO: Requires docbook2x.
a68544a8 3989 "-Dman=false")
75016d07
AW
3990 #:phases
3991 (modify-phases %standard-phases
a68544a8
RW
3992 (add-before 'configure 'patch-build-system
3993 (lambda* (#:key outputs #:allow-other-keys)
3994 (substitute* "rules/meson.build"
3995 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
3996 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
3997 #t))
3998 (add-before 'configure 'set-sqlite3-file-name
3999 (lambda* (#:key inputs #:allow-other-keys)
4000 ;; "colormgr dump" works by invoking the "sqlite3" command.
4001 ;; Record its absolute file name.
4002 (let ((sqlite (assoc-ref inputs "sqlite")))
4003 (substitute* "client/cd-util.c"
4004 (("\"sqlite3\"")
4005 (string-append "\"" sqlite "/bin/sqlite3\"")))
4006 #t))))))
75016d07 4007 (native-inputs
6f20e2dc 4008 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4009 ("gettext" ,gettext-minimal)
75016d07 4010 ("gobject-introspection" ,gobject-introspection)
a68544a8 4011 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4012 ("pkg-config" ,pkg-config)
4013 ("vala" ,vala)))
65cb2d61
SB
4014 (propagated-inputs
4015 ;; colord.pc refers to all these.
4016 `(("glib" ,glib)
6f20e2dc
TGR
4017 ("lcms" ,lcms)
4018 ("udev" ,eudev)))
75016d07 4019 (inputs
65cb2d61 4020 `(("dbus-glib" ,dbus-glib)
a68544a8 4021 ("gusb" ,gusb)
80c7dd1a 4022 ("libgudev" ,libgudev)
75016d07 4023 ("libusb" ,libusb)
75016d07 4024 ("polkit" ,polkit)
a68544a8 4025 ("python" ,python-wrapper)
6f20e2dc 4026 ("sqlite" ,sqlite)
4c928743 4027 ("sane-backends" ,sane-backends)))
57e7d748 4028 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4029 (synopsis "Color management service")
4030 (description "Colord is a system service that makes it easy to manage,
4031install and generate color profiles to accurately color manage input and
4032output devices.")
4033 (license license:gpl2+)))
7b2abd00
AW
4034
4035(define-public geoclue
4036 (package
4037 (name "geoclue")
50e96d25 4038 (version "2.5.5")
7b2abd00
AW
4039 (source
4040 (origin
4041 (method url-fetch)
50e96d25
MB
4042 (uri
4043 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4044 version "/geoclue-" version ".tar.bz2"))
7b2abd00
AW
4045 (sha256
4046 (base32
50e96d25 4047 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
fc1adab1 4048 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4049 (build-system meson-build-system)
7b2abd00 4050 (arguments
50e96d25 4051 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4052 (native-inputs
4053 `(("pkg-config" ,pkg-config)
758798a9 4054 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4055 ("modem-manager" ,modem-manager)
4056 ("libnotify" ,libnotify)
4057 ("gtk-doc", gtk-doc)
7b2abd00
AW
4058 ("intltool" ,intltool)))
4059 (inputs
54e911bc 4060 `(("avahi" ,avahi)
50e96d25
MB
4061 ("glib:bin" ,glib "bin")
4062 ("glib-networking" ,glib-networking)
7b2abd00
AW
4063 ("json-glib" ,json-glib)
4064 ("libsoup" ,libsoup)))
50e96d25 4065 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4066 (synopsis "Geolocation service")
4067 (description "Geoclue is a D-Bus service that provides location
4068information. The primary goal of the Geoclue project is to make creating
4069location-aware applications as simple as possible, while the secondary goal is
4070to ensure that no application can access location information without explicit
e881752c 4071permission from user.")
7b2abd00 4072 (license license:gpl2+)))
2bfe7437
AW
4073
4074(define-public geocode-glib
4075 (package
4076 (name "geocode-glib")
65de725f 4077 (version "3.26.1")
2bfe7437
AW
4078 (source (origin
4079 (method url-fetch)
4080 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4081 (version-major+minor version) "/"
d485cdc0 4082 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4083 (sha256
4084 (base32
65de725f 4085 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4086 (build-system meson-build-system)
2bfe7437 4087 (arguments
a7dd0c02
RW
4088 `(#:phases
4089 (modify-phases %standard-phases
4090 ;; The tests require a bunch of locales.
4091 (add-before 'check 'set-locales
4092 (lambda* (#:key inputs #:allow-other-keys)
4093 (setenv "GUIX_LOCPATH"
4094 (string-append (assoc-ref inputs "glibc-locales")
4095 "/lib/locale"))
4096 #t)))))
2bfe7437
AW
4097 (native-inputs
4098 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4099 ("glibc-locales" ,glibc-locales) ; for tests
4100 ("gettext" ,gettext-minimal)
2bfe7437 4101 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4102 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4103 ("pkg-config" ,pkg-config)
4104 ("json-glib" ,json-glib)))
4105 (propagated-inputs
4106 ;; geocode-glib-1.0.pc refers to GIO.
4107 `(("glib" ,glib)))
4108 (inputs
4109 `(("libsoup" ,libsoup)))
4110 (home-page "https://github.com/GNOME/geocode-glib/")
4111 (synopsis "Geocoding and reverse-geocoding library")
4112 (description
4113 "geocode-glib is a convenience library for geocoding (finding longitude,
4114and latitude from an address) and reverse geocoding (finding an address from
4115coordinates) using the Nominatim service. geocode-glib caches requests for
4116faster results and to avoid unnecessary server load.")
4117 (license license:lgpl2.0+)))
a1d5bb0e
AW
4118
4119(define-public upower
4120 (package
4121 (name "upower")
df45af90 4122 (version "0.99.11")
a1d5bb0e
AW
4123 (source (origin
4124 (method url-fetch)
df45af90 4125 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4126 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4127 (sha256
4128 (base32
df45af90 4129 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4130 (patches (search-patches "upower-builddir.patch"))
4131 (modules '((guix build utils)))
4132 (snippet
4133 '(begin
4134 ;; Upstream commit
4135 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4136 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4137 ;; 'dbus-configuration-directory' in (gnu services dbus)
4138 ;; expects it in etc/. Thus, move it back to its previous
4139 ;; location.
4140 (substitute* "src/Makefile.in"
4141 (("^dbusconfdir =.*$")
4142 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4143 #t))))
a1d5bb0e
AW
4144 (build-system glib-or-gtk-build-system)
4145 (arguments
4146 '( ;; The tests want to contact the system bus, which can't be done in the
4147 ;; build environment. The integration test can run, but the last of
4148 ;; the up-self-tests doesn't. Disable tests for now.
4149 #:tests? #f
4150 #:configure-flags (list "--localstatedir=/var"
4151 (string-append "--with-udevrulesdir="
4152 (assoc-ref %outputs "out")
9ec54965 4153 "/lib/udev/rules.d"))))
a1d5bb0e 4154 (native-inputs
ebeabe2d
SB
4155 `(("gobject-introspection" ,gobject-introspection)
4156 ("pkg-config" ,pkg-config)
a1d5bb0e 4157 ("intltool" ,intltool)
55409295
LC
4158 ("python" ,python)
4159
4160 ;; For man pages.
4161 ("libxslt" ,libxslt) ;for 'xsltproc'
4162 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4163 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4164 (inputs
ea226291
SB
4165 `(("dbus-glib" ,dbus-glib)
4166 ("libgudev" ,libgudev)
a1d5bb0e 4167 ("libusb" ,libusb)))
d7a503fc
MB
4168 (propagated-inputs
4169 ;; In Requires of upower-glib.pc.
4170 `(("glib" ,glib)))
57e7d748 4171 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4172 (synopsis "System daemon for managing power devices")
4173 (description
4174 "UPower is an abstraction for enumerating power devices,
4175listening to device events and querying history and statistics. Any
4176application or service on the system can access the org.freedesktop.UPower
4177service via the system message bus.")
4178 (license license:gpl2+)))
6a180f6f
AW
4179
4180(define-public libgweather
4181 (package
4182 (name "libgweather")
462d3416 4183 (version "3.34.0")
6a180f6f
AW
4184 (source (origin
4185 (method url-fetch)
4186 (uri (string-append "mirror://gnome/sources/" name "/"
4187 (version-major+minor version) "/"
4188 name "-" version ".tar.xz"))
4189 (sha256
4190 (base32
462d3416 4191 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
cf6cbc34 4192 (build-system meson-build-system)
6a180f6f 4193 (arguments
cf6cbc34
RW
4194 `(#:tests? #f ; one of two tests requires network access
4195 #:configure-flags
4196 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4197 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4198 "/share/zoneinfo"))))
6a180f6f
AW
4199 (native-inputs
4200 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4201 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4202 ("pkg-config" ,pkg-config)
1d3fcf94 4203 ("vala" ,vala)
6a180f6f
AW
4204 ("intltool" ,intltool)))
4205 (propagated-inputs
4206 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4207 ;; libsoup.
4208 `(("gtk+" ,gtk+)
4209 ("gdk-pixbuf" ,gdk-pixbuf)
4210 ("libxml2" ,libxml2)
cf6cbc34 4211 ("libsoup" ,libsoup)
6a180f6f 4212 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4213 (inputs
4214 `(("tzdata" ,tzdata)))
6a180f6f
AW
4215 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4216 (synopsis "Location, time zone, and weather library for GNOME")
4217 (description
4218 "libgweather is a library to access weather information from online
4219services for numerous locations.")
4220 (license license:gpl2+)))
23a22af6
AW
4221
4222(define-public gnome-settings-daemon
4223 (package
4224 (name "gnome-settings-daemon")
20154759 4225 (version "3.34.1")
23a22af6
AW
4226 (source
4227 (origin
4228 (method url-fetch)
4229 (uri (string-append "mirror://gnome/sources/" name "/"
4230 (version-major+minor version) "/"
4231 name "-" version ".tar.xz"))
4232 (sha256
4233 (base32
20154759 4234 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
e644f9fa 4235 (build-system meson-build-system)
23a22af6 4236 (arguments
e644f9fa
RW
4237 `(#:glib-or-gtk? #t
4238 #:configure-flags
4239 (list (string-append "-Dudev_dir="
4240 (assoc-ref %outputs "out")
4d0e085b 4241 "/lib/udev/rules.d/")
20154759 4242 "-Dsystemd=false"
4d0e085b
RW
4243 ;; Otherwise, the RUNPATH will lack the final path component.
4244 (string-append "-Dc_link_args=-Wl,-rpath="
4245 (assoc-ref %outputs "out")
4246 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4247 ;; Color management test can't reach the colord system service.
23a22af6
AW
4248 #:tests? #f))
4249 (native-inputs
e644f9fa
RW
4250 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4251 ("pkg-config" ,pkg-config)
23a22af6
AW
4252 ("intltool" ,intltool)
4253 ("xsltproc" ,libxslt)
4254 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4255 ("docbook-xml" ,docbook-xml-4.2)
4256 ("docbook-xsl" ,docbook-xsl)))
4257 (inputs
e644f9fa
RW
4258 `(("alsa-lib" ,alsa-lib)
4259 ("colord" ,colord)
ea226291 4260 ("libgudev" ,libgudev)
23a22af6
AW
4261 ("upower" ,upower)
4262 ("polkit" ,polkit)
4263 ("pulseaudio" ,pulseaudio)
4264 ("libcanberra" ,libcanberra)
4265 ("libx11" ,libx11)
4266 ("libxtst" ,libxtst)
4267 ("lcms" ,lcms)
4268 ("libnotify" ,libnotify)
4269 ("geoclue" ,geoclue)
4270 ("geocode-glib" ,geocode-glib)
4271 ("libgweather" ,libgweather)
4272 ("gnome-desktop" ,gnome-desktop)
4273 ("nss" ,nss)
4274 ("cups" ,cups)
ec2b1921
AW
4275 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4276 ("libwacom" ,libwacom)
4277 ("librsvg" ,librsvg)
eee7878f 4278 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4279 ("wayland" ,wayland)
20154759
KK
4280 ("network-manager" ,network-manager)
4281 ("gcr" ,gcr)
4282 ("modem-manager" ,modem-manager)))
f032d0be 4283 (home-page "https://www.gnome.org")
23a22af6
AW
4284 (synopsis "GNOME settings daemon")
4285 (description
4286 "This package contains the daemon responsible for setting the various
4287parameters of a GNOME session and the applications that run under it. It
4288handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4289settings, themes, mouse settings, and startup of other daemons.")
4290 (license license:gpl2+)))
1e7464a9
DH
4291
4292(define-public totem-pl-parser
4293 (package
4294 (name "totem-pl-parser")
77425f04 4295 (version "3.26.3")
1e7464a9
DH
4296 (source (origin
4297 (method url-fetch)
e980cbe9
MW
4298 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4299 (version-major+minor version) "/"
1e7464a9
DH
4300 "totem-pl-parser-" version ".tar.xz"))
4301 (sha256
4302 (base32
77425f04 4303 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4304 (build-system meson-build-system)
1e7464a9
DH
4305 (arguments
4306 ;; FIXME: Tests require gvfs.
4307 `(#:tests? #f))
4308 (native-inputs
4309 `(("intltool" ,intltool)
4310 ("glib" ,glib "bin")
4d6d8281 4311 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4312 ("pkg-config" ,pkg-config)))
22a6ad6a 4313 (propagated-inputs
1e7464a9
DH
4314 `(("glib" ,glib)
4315 ("gmime" ,gmime)
1e9b19dd
RW
4316 ("libarchive" ,libarchive)
4317 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4318 ("libxml2" ,libxml2)))
4319 (inputs
0a6e9e13 4320 `(("libsoup" ,libsoup)))
1e7464a9
DH
4321 (home-page "https://projects.gnome.org/totem")
4322 (synopsis "Library to parse and save media playlists for GNOME")
4323 (description "Totem-pl-parser is a GObjects-based library to parse and save
4324playlists in a variety of formats.")
4325 (license license:lgpl2.0+)))
4326
6b888eff
SB
4327(define-public aisleriot
4328 (package
4329 (name "aisleriot")
36ed9b46 4330 (version "3.22.9")
6b888eff
SB
4331 (source (origin
4332 (method url-fetch)
e43f622a 4333 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4334 (version-major+minor version) "/"
e43f622a 4335 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4336 (sha256
4337 (base32
36ed9b46 4338 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4339 (build-system glib-or-gtk-build-system)
4340 (arguments
4341 '(#:configure-flags
4342 '("--with-platform=gtk-only"
4343 "--with-card-theme-formats=svg")))
4344 (native-inputs
4345 `(("desktop-file-utils" ,desktop-file-utils)
4346 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4347 ("intltool" ,intltool)
4348 ("itstool" ,itstool)
4349 ("pkg-config" ,pkg-config)
4350 ("xmllint" ,libxml2)))
4351 (inputs
4352 `(("gtk+" ,gtk+)
226e57d6 4353 ("guile" ,guile-2.2)
6b888eff
SB
4354 ("libcanberra" ,libcanberra)
4355 ("librsvg" ,librsvg)))
4356 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4357 (synopsis "Solitaire card games")
4358 (description
4359 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4360which are easy to play with the aid of a mouse.")
4361 (license license:gpl3+)))
4a79e256 4362
f828d05b
KK
4363(define-public amtk
4364 (package
4365 (name "amtk")
0e08ca14 4366 (version "5.0.2")
f828d05b
KK
4367 (source (origin
4368 (method url-fetch)
bf92ba6b 4369 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4370 (version-major+minor version) "/"
bf92ba6b 4371 "amtk-" version ".tar.xz"))
f828d05b
KK
4372 (sha256
4373 (base32
0e08ca14 4374 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
4375 (build-system gnu-build-system)
4376 (arguments
4377 '(#:configure-flags '("--enable-gtk-doc")))
4378 (native-inputs
4379 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4380 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4381 ("gtk-doc" ,gtk-doc)
4382 ("pkg-config" ,pkg-config)))
4383 (inputs
4384 `(("glib" ,glib)
4385 ("gtk+" ,gtk+)))
4386 (home-page "https://wiki.gnome.org/Projects/Amtk")
4387 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4388 (description
4389 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4390It is a basic GtkUIManager replacement based on GAction. It is suitable for
4391both a traditional UI or a modern UI with a GtkHeaderBar.")
4392 (license license:lgpl2.1+)))
4393
4a79e256
SB
4394(define-public devhelp
4395 (package
4396 (name "devhelp")
8ae23a1d 4397 (version "3.34.0")
4a79e256
SB
4398 (source (origin
4399 (method url-fetch)
4400 (uri (string-append "mirror://gnome/sources/" name "/"
4401 (version-major+minor version) "/"
4402 name "-" version ".tar.xz"))
4403 (sha256
4404 (base32
8ae23a1d 4405 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
11d28bd9 4406 (build-system meson-build-system)
35407f94 4407 (arguments
20db7a3d
KK
4408 '(#:glib-or-gtk? #t
4409 #:phases
35407f94
EF
4410 (modify-phases %standard-phases
4411 (add-after 'unpack 'skip-gtk-update-icon-cache
4412 ;; Don't create 'icon-theme.cache'.
4413 (lambda _
4414 (substitute* "meson_post_install.py"
4415 (("gtk-update-icon-cache") "true"))
4416 #t)))))
4a79e256
SB
4417 (native-inputs
4418 `(("intltool" ,intltool)
5dd12afc 4419 ("itstool" ,itstool)
11d28bd9
KK
4420 ("gobject-introspection" ,gobject-introspection)
4421 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4422 ("pkg-config" ,pkg-config)))
4423 (inputs
11d28bd9
KK
4424 `(("amtk" ,amtk)
4425 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4426 ("webkitgtk" ,webkitgtk)))
4427 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4428 (synopsis "API documentation browser for GNOME")
4429 (description
4430 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4431natively with GTK-Doc (the API reference system developed for GTK+ and used
4432throughout GNOME for API documentation).")
4433 (license license:gpl2+)))
ba421ab7
MW
4434
4435(define-public cogl
4436 (package
4437 (name "cogl")
54c69ae1 4438 (version "1.22.4")
ba421ab7
MW
4439 (source
4440 (origin
4441 (method url-fetch)
5754f0cf 4442 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4443 (version-major+minor version) "/"
5754f0cf 4444 "cogl-" version ".tar.xz"))
ba421ab7 4445 (sha256
54c69ae1 4446 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
a88d5a0c
MW
4447 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4448 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4449 (build-system gnu-build-system)
4450 (native-inputs
4451 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4452 ("gobject-introspection" ,gobject-introspection)
4453 ;;("xorg-server" ,xorg-server) ; for the test suite
4454 ("pkg-config" ,pkg-config)))
4455 (propagated-inputs
4456 `(("glib" ,glib)
4457 ("gdk-pixbuf" ,gdk-pixbuf)
4458 ("libx11" ,libx11)
4459 ("libxext" ,libxext)
4460 ("libxfixes" ,libxfixes)
4461 ("libxdamage" ,libxdamage)
4462 ("libxcomposite" ,libxcomposite)
4463 ("libxrandr" ,libxrandr)))
4464 (inputs
4465 `(("mesa" ,mesa)
4466 ("cairo" ,cairo)
4467 ("pango" ,pango)
4468 ("gstreamer" ,gstreamer)
31860852
KK
4469 ("gst-plugins-base" ,gst-plugins-base)
4470 ("wayland" ,wayland)))
ba421ab7
MW
4471 (arguments
4472 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
4473 "--enable-wayland-egl-platform"
4474 "--enable-wayland-egl-server"
4475
ba421ab7
MW
4476 ;; Arrange to pass an absolute file name to
4477 ;; dlopen for libGL.so.
4478 (string-append "--with-gl-libname="
4479 (assoc-ref %build-inputs "mesa")
4480 "/lib/libGL.so"))
4481 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4482 ;; _FontTransOpen: Unable to Parse address
4483 ;; ${prefix}/share/fonts/X11/misc/
4484 #:tests? #f
4485 #; #:phases
4486 #;
4487 (modify-phases %standard-phases
4488 (add-before 'check 'start-xorg-server
4489 (lambda* (#:key inputs #:allow-other-keys)
4490 ;; The test suite requires a running X server.
4491 (system (format #f "~a/bin/Xvfb :1 &"
4492 (assoc-ref inputs "xorg-server")))
4493 (setenv "DISPLAY" ":1")
4494 #t)))))
89b49245 4495 (home-page "https://www.cogl3d.org")
ba421ab7
MW
4496 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4497 (description
4498 "Cogl is a small library for using 3D graphics hardware to draw pretty
4499pictures. The API departs from the flat state machine style of OpenGL and is
4500designed to make it easy to write orthogonal components that can render
4501without stepping on each others toes.")
4502 (license (list license:expat ; most of the code
4503 license:bsd-3 ; cogl/cogl-point-in-poly.c
4504 license:sgifreeb2.0 ; cogl-path/tesselator/
4505 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4506
4507(define-public clutter
4508 (package
4509 (name "clutter")
6a88e4ee 4510 (version "1.26.2")
fb182b8a
MW
4511 (source
4512 (origin
4513 (method url-fetch)
4514 (uri (string-append "mirror://gnome/sources/" name "/"
4515 (version-major+minor version) "/"
4516 name "-" version ".tar.xz"))
4517 (sha256
4518 (base32
6a88e4ee 4519 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4520 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4521 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4522 (build-system gnu-build-system)
600233bd
LC
4523 (outputs '("out"
4524 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4525 (native-inputs
4526 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4527 ("gobject-introspection" ,gobject-introspection)
4528 ("pkg-config" ,pkg-config)
4529 ("xsltproc" ,libxslt)))
4530 (propagated-inputs
4531 `(("cogl" ,cogl)
4532 ("cairo" ,cairo)
4533 ("atk" ,atk)
4534 ("gtk+" ,gtk+)
4535 ("json-glib" ,json-glib)
4536 ("glib" ,glib)
4537 ("libxcomposite" ,libxcomposite)
4538 ("libxdamage" ,libxdamage)
4539 ("libxext" ,libxext)
4540 ("xinput" ,xinput)))
4541 (inputs
4542 `(("libxkbcommon" ,libxkbcommon)
4543 ("udev" ,eudev)))
4544 (arguments
600233bd
LC
4545 `(#:configure-flags (list "--enable-x11-backend=yes"
4546
4547 ;; This produces share/doc/{clutter,cally}.
4548 (string-append "--with-html-dir="
4549 (assoc-ref %outputs "doc")
4550 "/share/doc"))
fb182b8a
MW
4551 ;; XXX FIXME: Get test suite working. It would probably fail in the
4552 ;; same way the cogl tests fail, since clutter is based on cogl.
4553 #:tests? #f))
4554 (home-page "http://www.clutter-project.org")
476af713 4555 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4556 (description
476af713 4557 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4558creating fast, mainly 2D single window applications such as media box UIs,
4559presentations, kiosk style applications and so on.")
4560 (license license:lgpl2.0+)))
bf7f17ba
MW
4561
4562(define-public clutter-gtk
4563 (package
4564 (name "clutter-gtk")
5d1a3219 4565 (version "1.8.4")
bf7f17ba
MW
4566 (source
4567 (origin
4568 (method url-fetch)
4569 (uri (string-append "mirror://gnome/sources/" name "/"
4570 (version-major+minor version) "/"
4571 name "-" version ".tar.xz"))
4572 (sha256
4573 (base32
5d1a3219 4574 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4575 (build-system gnu-build-system)
4576 (native-inputs
4577 `(("pkg-config" ,pkg-config)
4578 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4579 (propagated-inputs
4580 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4581 `(("clutter" ,clutter)
4582 ("gtk+" ,gtk+)))
4583 (home-page "http://www.clutter-project.org")
476af713 4584 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4585 (description
476af713 4586 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4587creating fast, mainly 2D single window applications such as media box UIs,
4588presentations, kiosk style applications and so on.")
4589 (license license:lgpl2.0+)))
86d6a893
MW
4590
4591(define-public clutter-gst
4592 (package
4593 (name "clutter-gst")
ba07ac19 4594 (version "3.0.27")
86d6a893
MW
4595 (source
4596 (origin
4597 (method url-fetch)
f010f89b 4598 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4599 (version-major+minor version) "/"
f010f89b 4600 "clutter-gst-" version ".tar.xz"))
86d6a893 4601 (sha256
ba07ac19 4602 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4603 (build-system gnu-build-system)
4604 (native-inputs
ba07ac19 4605 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4606 ("pkg-config" ,pkg-config)
4607 ("gobject-introspection" ,gobject-introspection)))
4608 (inputs
4609 `(("clutter" ,clutter)
4610 ("gstreamer" ,gstreamer)
4611 ("gst-plugins-base" ,gst-plugins-base)))
4612 (home-page "http://www.clutter-project.org")
4613 (synopsis "Integration library for using GStreamer with Clutter")
4614 (description
4615 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4616It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4617implements the ClutterGstPlayer interface using playbin. Clutter is an
4618OpenGL-based interactive canvas library.")
86d6a893 4619 (license license:lgpl2.0+)))
607a04ae 4620
30dc88d9
LC
4621(define-public libchamplain
4622 (package
4623 (name "libchamplain")
5564b2c5 4624 (version "0.12.16")
30dc88d9
LC
4625 (source (origin
4626 (method url-fetch)
4627 (uri (string-append
4628 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4629 version ".tar.xz"))
4630 (sha256
4631 (base32
5564b2c5 4632 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4633 (build-system gnu-build-system)
f7c6833f
LF
4634 (arguments '(#:configure-flags '("--enable-vala")))
4635 (native-inputs
4636 `(("gobject-introspection" ,gobject-introspection)
4637 ("pkg-config" ,pkg-config)
4638 ("vala" ,vala)))
30dc88d9
LC
4639 (propagated-inputs
4640 `(("libsoup" ,libsoup)
4641 ("sqlite" ,sqlite)
4642 ("clutter" ,clutter)
4643 ("clutter-gtk" ,clutter-gtk)
4644 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4645 ("cairo" ,cairo)
4646 ("gtk+3" ,gtk+)
4647 ("glib" ,glib)))
f032d0be 4648 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4649 (synopsis "C library providing a ClutterActor to display maps")
4650 (description
4651 "libchamplain is a C library providing a ClutterActor to display maps.
4652It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4653and Perl bindings are also available. It supports numerous free map sources
4654such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4655 (license license:lgpl2.1+)))
4656
607a04ae
MW
4657(define-public gom
4658 (package
4659 (name "gom")
0510440b 4660 (version "0.3.2")
607a04ae
MW
4661 (source
4662 (origin
4663 (method url-fetch)
6c8a0b6f 4664 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4665 (version-major+minor version) "/"
6c8a0b6f 4666 "gom-" version ".tar.xz"))
607a04ae
MW
4667 (sha256
4668 (base32
0510440b 4669 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4670 (build-system gnu-build-system)
4671 (native-inputs
4672 `(("intltool" ,intltool)
4673 ("pkg-config" ,pkg-config)
4674 ("gobject-introspection" ,gobject-introspection)))
4675 (inputs
4676 `(("glib" ,glib)
4677 ("gdk-pixbuf" ,gdk-pixbuf)
4678 ("sqlite" ,sqlite)))
4679 ;; XXX TODO: Figure out how to run the test suite.
4680 (arguments `(#:tests? #f))
4681 (home-page "https://wiki.gnome.org/Projects/Gom")
4682 (synopsis "Object mapper from GObjects to SQLite")
4683 (description
4684 "Gom provides an object mapper from GObjects to SQLite. It helps you
4685write applications that need to store structured data as well as make complex
4686queries upon that data.")
4687 (license license:lgpl2.1+)))
b7a3cf11 4688
865aacc9 4689(define-public libgnome-games-support
f09520db 4690 (package
865aacc9 4691 (name "libgnome-games-support")
4c6d15cf 4692 (version "1.4.4")
f09520db
SB
4693 (source (origin
4694 (method url-fetch)
2d8dca9d 4695 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4696 (version-major+minor version) "/"
2d8dca9d 4697 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4698 (sha256
4699 (base32
4c6d15cf 4700 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4701 (build-system gnu-build-system)
4702 (arguments
4703 '(#:phases
4704 (modify-phases %standard-phases
4705 (add-before 'check 'pre-check
4706 (lambda _
865aacc9 4707 ;; Tests require a writable HOME.
f09520db
SB
4708 (setenv "HOME" (getcwd))
4709 #t)))))
4710 (native-inputs
4711 `(("intltool" ,intltool)
4712 ("pkg-config" ,pkg-config)
4713 ("vala" ,vala)))
4714 (propagated-inputs
865aacc9 4715 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4716 `(("gtk+" ,gtk+)
4717 ("libgee" ,libgee)))
4718 (home-page "https://www.gnome.org/")
4719 (synopsis "Useful functionality shared among GNOME games")
4720 (description
865aacc9 4721 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4722GNOME Games, but it may be used by others.")
4723 (license license:lgpl3+)))
4724
b7a3cf11
SB
4725(define-public gnome-klotski
4726 (package
4727 (name "gnome-klotski")
18364fbc 4728 (version "3.34.0")
b7a3cf11
SB
4729 (source (origin
4730 (method url-fetch)
4731 (uri (string-append "mirror://gnome/sources/" name "/"
4732 (version-major+minor version) "/"
4733 name "-" version ".tar.xz"))
4734 (sha256
4735 (base32
18364fbc 4736 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
c1e419c4
KK
4737 (build-system meson-build-system)
4738 (arguments
4739 '(#:glib-or-gtk? #t
4740 #:phases
4741 (modify-phases %standard-phases
4742 (add-after 'unpack 'skip-gtk-update-icon-cache
4743 ;; Don't create 'icon-theme.cache'.
4744 (lambda _
4745 (substitute* "build-aux/meson_post_install.py"
4746 (("gtk-update-icon-cache") (which "true")))
4747 #t)))))
b7a3cf11
SB
4748 (native-inputs
4749 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4750 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4751 ("intltool" ,intltool)
4752 ("itstool" ,itstool)
bcb354ad 4753 ("pkg-config" ,pkg-config)
c1e419c4 4754 ("vala" ,vala)
bcb354ad 4755 ("xmllint" ,libxml2)))
b7a3cf11
SB
4756 (inputs
4757 `(("gtk+" ,gtk+)
f4eae76f 4758 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4759 ("librsvg" ,librsvg)))
4760 (home-page "https://wiki.gnome.org/Apps/Klotski")
4761 (synopsis "Sliding block puzzles")
4762 (description
4763 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4764the patterned block to the area bordered by green markers. To do so, you will
4765need to slide other blocks out of the way. Complete each puzzle in as few moves
4766as possible!")
4767 (license license:gpl2+)))
8d4791bf
MW
4768
4769(define-public grilo
4770 (package
4771 (name "grilo")
a865e938 4772 (version "0.3.10")
8d4791bf
MW
4773 (source
4774 (origin
4775 (method url-fetch)
4776 (uri (string-append "mirror://gnome/sources/" name "/"
4777 (version-major+minor version) "/"
4778 name "-" version ".tar.xz"))
4779 (sha256
4780 (base32
a865e938 4781 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4782 (build-system meson-build-system)
8d4791bf
MW
4783 (native-inputs
4784 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4785 ("intltool" ,intltool)
4786 ("pkg-config" ,pkg-config)
d48d4c98
KK
4787 ("gobject-introspection" ,gobject-introspection)
4788 ("gtk-doc" ,gtk-doc)
4789 ("vala" ,vala)))
8d4791bf 4790 (inputs
6d7273a0
KK
4791 `(("cyrus-sasl" ,cyrus-sasl)
4792 ("glib" ,glib)
8d4791bf
MW
4793 ("gtk+" ,gtk+)
4794 ("libxml2" ,libxml2)
6d7273a0 4795 ("liboauth" ,liboauth)
8d4791bf
MW
4796 ("libsoup" ,libsoup)
4797 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4798 (native-search-paths
4799 (list (search-path-specification
4800 (variable "GRL_PLUGIN_PATH")
4801 (files (list (string-append "lib/grilo-"
4802 (version-major+minor version)))))))
d48d4c98 4803 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4804 (synopsis "Framework for discovering and browsing media")
4805 (description
4806 "Grilo is a framework focused on making media discovery and browsing easy
4807for application developers.")
4808 (license license:lgpl2.1+)))
7b212526
MW
4809
4810(define-public grilo-plugins
4811 (package
4812 (name "grilo-plugins")
281f6b3a 4813 (version "0.3.10")
7b212526
MW
4814 (source
4815 (origin
4816 (method url-fetch)
4817 (uri (string-append "mirror://gnome/sources/" name "/"
4818 (version-major+minor version) "/"
4819 name "-" version ".tar.xz"))
4820 (sha256
4821 (base32
281f6b3a
RG
4822 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4823 (build-system meson-build-system)
7b212526 4824 (native-inputs
281f6b3a
RG
4825 `(("gettext" ,gettext-minimal)
4826 ("glib:bin" ,glib "bin")
4827 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4828 ("itstool" ,itstool)
4829 ("pkg-config" ,pkg-config)))
281f6b3a 4830 ;; TODO: ahavi, gstreamer
7b212526
MW
4831 (inputs
4832 `(("grilo" ,grilo)
281f6b3a
RG
4833 ;("gmime" ,gmime) ; unused
4834 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4835 ("gom" ,gom)
281f6b3a
RG
4836 ;("gssdp" ,gssdp) ; unused
4837 ;("gupnp" ,gupnp) ; unused
4838 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4839 ("json-glib" ,json-glib)
4840 ("avahi" ,avahi)
281f6b3a
RG
4841 ("libgdata" ,libgdata)
4842 ("libmediaart" ,libmediaart)
4843 ;("librest" ,rest) ; unused
7b212526 4844 ("libsoup" ,libsoup)
281f6b3a
RG
4845 ("totam-pl-parser" ,totem-pl-parser)
4846 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4847 (arguments
281f6b3a
RG
4848 `(#:glib-or-gtk? #t
4849 ;;Disable lua-factory as it needs missing dependencies
4850 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4851 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4852 (synopsis "Plugins for the Grilo media discovery library")
4853 (description
4854 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4855for application developers. This package provides plugins for common media
4856discovery protocols.")
7b212526 4857 (license license:lgpl2.1+)))
4e3fc547
MW
4858
4859(define-public totem
4860 (package
4861 (name "totem")
961dc62d 4862 (version "3.34.1")
4e3fc547
MW
4863 (source
4864 (origin
4865 (method url-fetch)
4866 (uri (string-append "mirror://gnome/sources/" name "/"
4867 (version-major+minor version) "/"
4868 name "-" version ".tar.xz"))
4869 (sha256
4870 (base32
961dc62d 4871 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
7ad81b8b 4872 (build-system meson-build-system)
4e3fc547
MW
4873 (native-inputs
4874 `(("pkg-config" ,pkg-config)
4875 ("desktop-file-utils" ,desktop-file-utils)
4876 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4877 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4878 ("intltool" ,intltool)
bcb354ad 4879 ("itstool" ,itstool)
995ef5ea
KK
4880 ("xmllint" ,libxml2)
4881 ("python-pylint" ,python-pylint)
4882 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4883 (propagated-inputs
4884 `(("dconf" ,dconf)))
4885 (inputs
4886 `(("gtk+" ,gtk+)
4887 ("gdk-pixbuf" ,gdk-pixbuf)
4888 ("atk" ,atk)
4889 ("cairo" ,cairo)
4890 ("dbus-glib" ,dbus-glib)
4891 ("clutter" ,clutter)
4892 ("clutter-gtk" ,clutter-gtk)
4893 ("clutter-gst" ,clutter-gst)
6a6db57f 4894 ("xorgproto" ,xorgproto)
4e3fc547
MW
4895 ("libxxf86vm" ,libxxf86vm)
4896 ("libxtst" ,libxtst)
4897 ("libxrandr" ,libxrandr)
4898 ("libxml2" ,libxml2)
4899 ("libsoup" ,libsoup)
4900 ("libpeas" ,libpeas)
4901 ("librsvg" ,librsvg)
4902 ("lirc" ,lirc)
4903 ("gnome-desktop" ,gnome-desktop)
4904 ("gstreamer" ,gstreamer)
4905 ("gst-plugins-base" ,gst-plugins-base)
4906 ("gst-plugins-good" ,gst-plugins-good)
4907 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4908 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4909 ("python" ,python)
995ef5ea 4910 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4911 ("totem-pl-parser" ,totem-pl-parser)
4912 ("grilo" ,grilo)
4913 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4914 ("vala" ,vala)))
4915 (arguments
7ad81b8b
LC
4916 `(#:glib-or-gtk? #t
4917
4918 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4919 ;; all that.
7ad81b8b 4920 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4921
4922 ;; Do not build .a files for the plugins, it's
4923 ;; completely useless. This saves 2 MiB.
7ad81b8b 4924 "--default-library" "shared")
ec5c24f9 4925 #:phases
4e3fc547 4926 (modify-phases %standard-phases
d51b19ad
EF
4927 (add-after 'unpack 'skip-gtk-update-icon-cache
4928 ;; Don't create 'icon-theme.cache'.
4929 (lambda _
4930 (substitute* "meson_post_install.py"
4931 (("gtk-update-icon-cache") "true"))
4932 #t))
6368eb39
DM
4933 (add-before
4934 'install 'disable-cache-generation
4935 (lambda _
4936 (setenv "DESTDIR" "/")
4937 #t))
995ef5ea
KK
4938 (add-before
4939 'check 'pre-check
4940 (lambda _
4941 ;; Tests require a running X server.
4942 (system "Xvfb :1 &")
4943 (setenv "DISPLAY" ":1")
4944 #t))
4e3fc547
MW
4945 (add-after
4946 'install 'wrap-totem
4947 (lambda* (#:key inputs outputs #:allow-other-keys)
4948 (let ((out (assoc-ref outputs "out"))
4949 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4950 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4951 (wrap-program (string-append out "/bin/totem")
4952 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4953 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4954 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4955 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4956 #t)))))
4957 (home-page "https://wiki.gnome.org/Apps/Videos")
4958 (synopsis "Simple media player for GNOME based on GStreamer")
4959 (description "Totem is a simple yet featureful media player for GNOME
4960which can read a large number of file formats.")
4961 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4962 ;; to be used and distributed together with GStreamer and Totem. See
4963 ;; file://COPYING in the source distribution for details.
4964 (license license:gpl2+)))
f0afb0c8
DH
4965
4966(define-public rhythmbox
4967 (package
4968 (name "rhythmbox")
eda580c0 4969 (version "3.4.4")
f0afb0c8
DH
4970 (source (origin
4971 (method url-fetch)
2588693d 4972 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 4973 (version-major+minor version) "/"
2588693d 4974 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
4975 (sha256
4976 (base32
eda580c0 4977 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
4978 (build-system glib-or-gtk-build-system)
4979 (arguments
4980 `(#:configure-flags
4981 (list "--enable-lirc"
4982 "--enable-python"
4983 "--enable-vala"
4984 "--with-brasero"
4985 "--with-gudev"
4986 "--with-libsecret")
4987 #:phases
4988 (modify-phases %standard-phases
4989 (add-after
4990 'install 'wrap-rhythmbox
4991 (lambda* (#:key inputs outputs #:allow-other-keys)
4992 (let ((out (assoc-ref outputs "out"))
4993 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4994 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
4995 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
4996 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
4997 (wrap-program (string-append out "/bin/rhythmbox")
4998 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
4999 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5000 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5001 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5002 #t)))))
5003 (propagated-inputs
5004 `(("dconf" ,dconf)))
5005 (native-inputs
bcb354ad
SB
5006 `(("itstool" ,itstool)
5007 ("intltool" ,intltool)
f0afb0c8
DH
5008 ("glib" ,glib "bin")
5009 ("gobject-introspection" ,gobject-introspection)
5010 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5011 ("pkg-config" ,pkg-config)
5012 ("xmllint" ,libxml2)))
f0afb0c8
DH
5013 (inputs
5014 `(("json-glib" ,json-glib)
5015 ("tdb" ,tdb)
5016 ("gnome-desktop" ,gnome-desktop)
5017 ("python" ,python)
5018 ("python-pygobject" ,python2-pygobject)
5019 ("vala" ,vala)
5020 ("gmime" ,gmime)
f0afb0c8
DH
5021 ("adwaita-icon-theme" ,adwaita-icon-theme)
5022 ("grilo" ,grilo)
5023 ("grilo-plugins" ,grilo-plugins)
5024 ("gstreamer" ,gstreamer)
5025 ("gst-plugins-base" ,gst-plugins-base)
5026 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5027 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5028 ("libgudev" ,libgudev)
f0afb0c8
DH
5029 ;;("libmtp" ,libmtp) FIXME: Not detected
5030 ("libsecret" ,libsecret)
5031 ("libsoup" ,libsoup)
5032 ("libnotify" ,libnotify)
5033 ("libpeas" ,libpeas)
5034 ("lirc" ,lirc)
5035 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5036 ;;("clutter" ,clutter)
5037 ;;("clutter-gtk" ,clutter-gtk)
5038 ;;("clutter-gst" ,clutter-gst)
5039 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5040 ("atk" ,atk)
5041 ("pango" ,pango)
5042 ("gtk+" ,gtk+)
5043 ;; TODO:
5044 ;; * libgpod
5045 ;; * mx
f0afb0c8
DH
5046 ("brasero" ,brasero)))
5047 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5048 (synopsis "Music player for GNOME")
5049 (description "Rhythmbox is a music playing application for GNOME. It
5050supports playlists, song ratings, and any codecs installed through gstreamer.")
5051 (license license:gpl2+)))
f70d8383
DH
5052
5053(define-public eog
5054 (package
5055 (name "eog")
0c9031fa 5056 (version "3.34.1")
f70d8383
DH
5057 (source (origin
5058 (method url-fetch)
5059 (uri (string-append "mirror://gnome/sources/" name "/"
5060 (version-major+minor version) "/"
5061 name "-" version ".tar.xz"))
5062 (sha256
5063 (base32
0c9031fa 5064 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
61fb581f 5065 (build-system meson-build-system)
f70d8383 5066 (arguments
34c44a34
RW
5067 `(#:configure-flags
5068 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5069 (list (string-append "-Dc_link_args=-Wl,-rpath="
5070 (assoc-ref %outputs "out") "/lib/eog"))
5071 #:phases
f70d8383 5072 (modify-phases %standard-phases
7a034665
EF
5073 (add-after 'unpack 'skip-gtk-update-icon-cache
5074 ;; Don't create 'icon-theme.cache'.
5075 (lambda _
5076 (substitute* "meson_post_install.py"
5077 (("gtk-update-icon-cache") "true"))
5078 #t))
61fb581f
RW
5079 (add-after 'install 'wrap-eog
5080 (lambda* (#:key outputs #:allow-other-keys)
5081 (let ((out (assoc-ref outputs "out"))
5082 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5083 (wrap-program (string-append out "/bin/eog")
5084 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5085 #t)))))
f70d8383
DH
5086 (propagated-inputs
5087 `(("dconf" ,dconf)))
5088 (native-inputs
5089 `(("intltool" ,intltool)
b3546174 5090 ("itstool" ,itstool)
f70d8383
DH
5091 ("glib" ,glib "bin")
5092 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5093 ("pkg-config" ,pkg-config)
5094 ("xmllint" ,libxml2)))
f70d8383
DH
5095 (inputs
5096 `(("gnome-desktop" ,gnome-desktop)
5097 ("shared-mime-info" ,shared-mime-info)
5098 ("adwaita-icon-theme" ,adwaita-icon-theme)
5099 ("exempi" ,exempi)
5100 ("lcms" ,lcms)
5101 ("libexif" ,libexif)
5102 ("libpeas" ,libpeas)
4bd428a7 5103 ("libjpeg" ,libjpeg-turbo)
0c9031fa 5104 ("librsvg" ,librsvg-next)
f70d8383
DH
5105 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5106 ("gtk+" ,gtk+)))
5107 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5108 (synopsis "GNOME image viewer")
5109 (description "Eye of GNOME is the GNOME image viewer. It
5110supports image conversion, rotation, and slideshows.")
5111 (license license:gpl2+)))
41af5e7b 5112
0c3f8cb8
LC
5113(define-public eog-plugins
5114 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5115 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5116 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5117 ;; 'XDG_DATA_DIRS' appropriately set.
5118 (package
5119 (name "eog-plugins")
54b74cc6 5120 (version "3.26.4")
0c3f8cb8
LC
5121 (source (origin
5122 (method url-fetch)
f3b88ed2 5123 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5124 (version-major+minor version) "/"
f3b88ed2 5125 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5126 (sha256
5127 (base32
54b74cc6 5128 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5129 (build-system gnu-build-system)
5130 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5131 (synopsis "Extensions for the Eye of GNOME image viewer")
5132 (native-inputs
5133 `(("pkg-config" ,pkg-config)
f2d97d57 5134 ("gettext" ,gettext-minimal)))
0c3f8cb8
LC
5135 (inputs
5136 `(("eog" ,eog)
5137 ("glib" ,glib)
5138 ("gtk+" ,gtk+)
5139 ("libpeas" ,libpeas)
5140 ("libexif" ,libexif)
5141 ("libchamplain" ,libchamplain)))
5142 (description
5143 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5144notably:
5145
5146@itemize
5147@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5148@item @dfn{Map}, which displays a map of where the picture was taken on the
5149side panel;
5150@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5151@end itemize\n")
5152
5153 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5154 ;; long suspicious byte stream that goes to a
5155 ;; ".gresource.eog_postasa_plugin" ELF section.
5156 (license license:gpl2+)))
5157
41af5e7b
SB
5158(define-public libgudev
5159 (package
5160 (name "libgudev")
b78f5118 5161 (version "232")
41af5e7b
SB
5162 (source (origin
5163 (method url-fetch)
5164 (uri (string-append "mirror://gnome/sources/" name "/"
5165 version "/" name "-" version ".tar.xz"))
5166 (sha256
5167 (base32
b78f5118 5168 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5169 (build-system gnu-build-system)
b78f5118
RW
5170 (arguments
5171 '(#:configure-flags
5172 ;; umockdev depends on libgudev.
5173 (list "--disable-umockdev")))
41af5e7b
SB
5174 (native-inputs
5175 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5176 ("gobject-introspection" ,gobject-introspection)
5177 ("pkg-config" ,pkg-config)))
5178 (propagated-inputs
5179 `(("glib" ,glib))) ; required by gudev-1.0.pc
5180 (inputs
5181 `(("udev" ,eudev)))
5182 (home-page "https://wiki.gnome.org/Projects/libgudev")
5183 (synopsis "GObject bindings for libudev")
5184 (description
5185 "This library provides GObject bindings for libudev. It was originally
5186part of udev-extras, then udev, then systemd. It's now a project on its own.")
5187 (license license:lgpl2.1+)))
3dc8828f
SB
5188
5189(define-public gvfs
5190 (package
5191 (name "gvfs")
12fe4846 5192 (version "1.40.1")
3dc8828f
SB
5193 (source (origin
5194 (method url-fetch)
1d68eb32 5195 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5196 (version-major+minor version) "/"
1d68eb32 5197 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5198 (sha256
5199 (base32
12fe4846 5200 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5201 (build-system meson-build-system)
3dc8828f 5202 (arguments
e762d943
RW
5203 '(#:glib-or-gtk? #t
5204 #:configure-flags
5205 (list "-Dsystemduserunitdir=no"
5206 "-Dtmpfilesdir=no"
5207 ;; Otherwise, the RUNPATH will lack the final path component.
5208 (string-append "-Dc_link_args=-Wl,-rpath="
5209 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5210 (native-inputs
5211 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5212 ("gettext" ,gettext-minimal)
5213 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5214 ("pkg-config" ,pkg-config)
5215 ("xsltproc" ,libxslt)))
5216 (inputs
5217 `(("avahi" ,avahi)
5218 ("docbook-xml" ,docbook-xml-4.2)
5219 ("docbook-xsl" ,docbook-xsl)
5220 ("dbus" ,dbus)
e762d943 5221 ("elogind" ,elogind)
3dc8828f 5222 ("fuse" ,fuse)
24a78aa6 5223 ("gcr" ,gcr)
3dc8828f 5224 ("glib" ,glib)
e762d943 5225 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5226 ("libarchive" ,libarchive)
5227 ("libbluray" ,libbluray)
8852ca24 5228 ("libcap" ,libcap)
3dc8828f
SB
5229 ("libcdio-paranoia" ,libcdio-paranoia)
5230 ("libgcrypt" ,libgcrypt)
e762d943 5231 ("libgdata" ,libgdata)
3dc8828f
SB
5232 ("libgphoto2" ,libgphoto2)
5233 ("libgudev" ,libgudev)
0ab9f949 5234 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5235 ("libmtp" ,libmtp)
e762d943 5236 ("libnfs" ,libnfs)
3dc8828f
SB
5237 ("libsecret" ,libsecret)
5238 ("libsmbclient" ,samba)
5239 ("libsoup" ,libsoup)
5240 ("libxml2" ,libxml2)
e762d943 5241 ("openssh" ,openssh)
8852ca24 5242 ("polkit" ,polkit)
3dc8828f
SB
5243 ("udisks" ,udisks)))
5244 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5245 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5246 (description
8f65585b 5247 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5248abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5249to all applications using the GIO API. It also supports exposing the GVFS
5250mounts to non-GIO applications using FUSE.
5251
5252GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5253DAV, and others.")
5254 (license license:lgpl2.0+)))
7c88b6bd
AW
5255
5256(define-public gusb
5257 (package
5258 (name "gusb")
536b3274 5259 (version "0.3.0")
7c88b6bd 5260 (source (origin
bbfb36f9
EF
5261 (method git-fetch)
5262 (uri (git-reference
5263 (url "https://github.com/hughsie/libgusb.git")
5264 (commit version)))
5265 (file-name (git-file-name name version))
7c88b6bd
AW
5266 (sha256
5267 (base32
bbfb36f9 5268 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5269 (build-system meson-build-system)
7c88b6bd 5270 (native-inputs
536b3274 5271 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5272 ("pkg-config" ,pkg-config)
5273 ("vala" ,vala)
7c88b6bd
AW
5274 ("gtk-doc" ,gtk-doc)))
5275 (propagated-inputs
5276 ;; Both of these are required by gusb.pc.
5277 `(("glib" ,glib)
5278 ("libusb" ,libusb)))
5279 (arguments
536b3274 5280 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5281 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5282 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5283 (description
5284 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5285asynchronous control, bulk and interrupt transfers with proper cancellation
5286and integration into a mainloop. This makes it easy to integrate low level
5287USB transfers with your high-level application or system daemon.")
5288 (license license:lgpl2.1+)))
0abe1d86
AW
5289
5290(define-public simple-scan
5291 (package
5292 (name "simple-scan")
f9e5313c 5293 (version "3.36.2.1")
d9f6d587
TGR
5294 (source
5295 (origin
5296 (method url-fetch)
5297 (uri (string-append "mirror://gnome/sources/simple-scan/"
5298 (version-major+minor version) "/"
5299 "simple-scan-" version ".tar.xz"))
5300 (sha256
f9e5313c 5301 (base32 "0aq1pf0wk536b91as54684xgmhl7lps0k2xcwha5wh6h1isyb35v"))))
d9f6d587
TGR
5302 (build-system meson-build-system)
5303 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5304 (arguments
5305 '(#:glib-or-gtk? #t))
0abe1d86
AW
5306 (inputs
5307 `(("gtk" ,gtk+)
5308 ("zlib" ,zlib)
5309 ("cairo" ,cairo)
c501f592 5310 ("colord" ,colord)
0abe1d86
AW
5311 ("gdk-pixbuf" ,gdk-pixbuf)
5312 ("gusb" ,gusb)
4c928743 5313 ("libsane" ,sane-backends)))
0abe1d86 5314 (native-inputs
b94a6ca0 5315 `(("gettext" ,gettext-minimal)
0abe1d86 5316 ("itstool" ,itstool)
c501f592 5317 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5318 ("pkg-config" ,pkg-config)
bcb354ad
SB
5319 ("vala" ,vala)
5320 ("xmllint" ,libxml2)))
dff0eedb 5321 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5322 (synopsis "Document and image scanner")
d9f6d587
TGR
5323 (description
5324 "Document Scanner is an easy-to-use application that lets you connect your
5325scanner and quickly capture images and documents in an appropriate format. It
5326supports any scanner for which a suitable SANE driver is available, which is
5327almost all of them.")
0abe1d86 5328 (license license:gpl3+)))
7549f984 5329
ab466d79
RW
5330(define-public eolie
5331 (package
5332 (name "eolie")
ed783404 5333 (version "0.9.98.1")
ab466d79
RW
5334 (source (origin
5335 (method url-fetch)
ed783404
RW
5336 (uri (string-append "https://adishatz.org/eolie/eolie-"
5337 version ".tar.xz"))
ab466d79
RW
5338 (sha256
5339 (base32
ed783404 5340 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
00014781 5341 (build-system meson-build-system)
ab466d79 5342 (arguments
00014781
RW
5343 `(#:glib-or-gtk? #t
5344 #:phases
ab466d79 5345 (modify-phases %standard-phases
f0c68100
EF
5346 (add-after 'unpack 'skip-gtk-update-icon-cache
5347 ;; Don't create 'icon-theme.cache'.
5348 (lambda _
5349 (substitute* "meson_post_install.py"
5350 (("gtk-update-icon-cache") "true"))
5351 #t))
ab466d79
RW
5352 (add-after 'wrap 'wrap-more
5353 (lambda* (#:key inputs outputs #:allow-other-keys)
5354 (let* ((out (assoc-ref outputs "out"))
5355 ;; These libraries must be on LD_LIBRARY_PATH.
5356 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5357 "atk" "gtk+" "gsettings-desktop-schemas"
5358 "gobject-introspection"))
5359 (path (string-join
5360 (map (lambda (lib)
5361 (string-append (assoc-ref inputs lib) "/lib"))
5362 libs)
5363 ":")))
5364 (wrap-program (string-append out "/bin/eolie")
5365 `("LD_LIBRARY_PATH" ":" prefix (,path))
5366 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5367 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5368 #t)))))
5369 (native-inputs
f85ca6ed 5370 `(("intltool" ,intltool)
ab466d79 5371 ("itstool" ,itstool)
d95f1041 5372 ("pkg-config" ,pkg-config)
d95f1041 5373 ("python" ,python)
f0c68100 5374 ("glib:bin" ,glib "bin")))
ab466d79
RW
5375 (inputs
5376 `(("gobject-introspection" ,gobject-introspection)
5377 ("glib-networking" ,glib-networking)
5378 ("cairo" ,cairo)
5379 ("gtk+" ,gtk+)
5380 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5381 ("python" ,python-wrapper)
d72f76df 5382 ("python-dateutil" ,python-dateutil)
00014781 5383 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5384 ("python-pygobject" ,python-pygobject)
5385 ("python-pycairo" ,python-pycairo)
00014781 5386 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5387 ("libsecret" ,libsecret)
5388 ("gtkspell3" ,gtkspell3)
5389 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5390 ("webkitgtk" ,webkitgtk)))
166b2c97 5391 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5392 (synopsis "Web browser for GNOME")
5393 (description
5394 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5395a secret password store, an adblocker, and a modern UI.")
5396 (license license:gpl3+)))
5397
7549f984
SB
5398(define-public epiphany
5399 (package
5400 (name "epiphany")
68fdd237 5401 (version "3.34.4")
7549f984
SB
5402 (source (origin
5403 (method url-fetch)
dd3266ec 5404 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5405 (version-major+minor version) "/"
dd3266ec 5406 "epiphany-" version ".tar.xz"))
7549f984
SB
5407 (sha256
5408 (base32
68fdd237 5409 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
fc5c5b92
R
5410
5411 (build-system meson-build-system)
7549f984 5412 (arguments
20710b91 5413 '(#:glib-or-gtk? #t
bb7ff88f
EF
5414 #:phases
5415 (modify-phases %standard-phases
5416 (add-after 'unpack 'skip-gtk-update-icon-cache
5417 ;; Don't create 'icon-theme.cache'.
5418 (lambda _
5419 (substitute* "post_install.py"
5420 (("gtk-update-icon-cache") "true"))
20710b91
LP
5421 #t))
5422 (add-after 'unpack 'disable-failing-tests
5423 (lambda _
5424 (substitute* "tests/meson.build"
5425 ;; embed_shell fails, because webkitgtk apparently no longer supports
5426 ;; overriding the ftp schema
5427 ;; web_app_utils fails due to missing network access
5428 (("(embed_shell|web_app_utils)_test,")
5429 "find_program('sh'), args: ['-c', 'exit 77'],"))
5430 #t))
5431 (add-before 'check 'pre-check
5432 (lambda _
5433 ;; Tests require a running X server.
5434 (system "Xvfb :1 &")
5435 (setenv "DISPLAY" ":1")
bb7ff88f 5436 #t)))
e19f9c24
LF
5437 #:configure-flags
5438 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5439 (list (string-append "-Dc_link_args=-Wl,-rpath="
5440 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5441 (propagated-inputs
5442 `(("dconf" ,dconf)))
7549f984 5443 (native-inputs
fc5c5b92
R
5444 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5445 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5446 ("intltool" ,intltool)
7549f984 5447 ("itstool" ,itstool)
bcb354ad 5448 ("pkg-config" ,pkg-config)
20710b91
LP
5449 ("xmllint" ,libxml2)
5450 ("xorg-server" ,xorg-server-for-tests)))
7549f984
SB
5451 (inputs
5452 `(("avahi" ,avahi)
5453 ("gcr" ,gcr)
fc5c5b92 5454 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5455 ("glib-networking" ,glib-networking)
5456 ("gnome-desktop" ,gnome-desktop)
5457 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5458 ("json-glib" ,json-glib)
7549f984 5459 ("iso-codes" ,iso-codes)
8748e29c 5460 ("libdazzle" ,libdazzle)
7549f984
SB
5461 ("libnotify" ,libnotify)
5462 ("libsecret" ,libsecret)
7549f984 5463 ("libxslt" ,libxslt)
fc5c5b92 5464 ("nettle" ,nettle) ; for hogweed
7549f984 5465 ("sqlite" ,sqlite)
f85ca6ed 5466 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5467 (home-page "https://wiki.gnome.org/Apps/Web")
5468 (synopsis "GNOME web browser")
5469 (description
5470 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5471principles are simplicity and standards compliance.")
5472 (license license:gpl2+)))
a3856b2c
SB
5473
5474(define-public d-feet
5475 (package
5476 (name "d-feet")
458e9221 5477 (version "0.3.14")
a3856b2c
SB
5478 (source (origin
5479 (method url-fetch)
5480 (uri (string-append "mirror://gnome/sources/" name "/"
5481 (version-major+minor version) "/"
5482 name "-" version ".tar.xz"))
5483 (sha256
5484 (base32
458e9221 5485 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5486 (build-system glib-or-gtk-build-system)
5487 (arguments
5488 '(#:out-of-source? #f ; tests need to run in the source directory.
5489 #:phases
5490 (modify-phases %standard-phases
5491 (add-before
5492 'check 'pre-check
86aff791 5493 (lambda _
a3856b2c
SB
5494 ;; The test suite requires a running X server.
5495 (system "Xvfb :1 &")
5496 (setenv "DISPLAY" ":1")
5497 ;; Don't fail on missing '/etc/machine-id'.
5498 (setenv "DBUS_FATAL_WARNINGS" "0")
5499 ;; tests.py and window.py don't meet E402:
5500 ;; E402 module level import not at top of file
5501 (substitute* "src/tests/Makefile"
86aff791
MW
5502 (("--ignore=E123") "--ignore=E123,E402"))
5503 #t))
a3856b2c
SB
5504 (add-after
5505 'install 'wrap-program
5506 (lambda* (#:key outputs #:allow-other-keys)
5507 (let ((prog (string-append (assoc-ref outputs "out")
5508 "/bin/d-feet")))
5509 (wrap-program prog
5510 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5511 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5512 #t))))))
a3856b2c
SB
5513 (native-inputs
5514 `(("intltool" ,intltool)
5515 ("itstool" ,itstool)
5516 ("pkg-config" ,pkg-config)
5517 ("python-pep8" ,python-pep8)
5518 ("xmllint" ,libxml2)
ff337525 5519 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5520 (inputs
5521 `(("gobject-introspection" ,gobject-introspection)
5522 ("gtk+" ,gtk+)
5523 ("python" ,python-wrapper)
458e9221 5524 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5525 ("python-pygobject" ,python-pygobject)))
5526 (home-page "https://wiki.gnome.org/Apps/DFeet")
5527 (synopsis "D-Bus debugger")
5528 (description
5529 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5530of running programs and invoke methods on those interfaces.")
5531 (license license:gpl2+)))
c3b97bd9
SB
5532
5533(define-public yelp-xsl
5534 (package
5535 (name "yelp-xsl")
632a9b32 5536 (version "3.34.2")
c3b97bd9
SB
5537 (source (origin
5538 (method url-fetch)
5539 (uri (string-append "mirror://gnome/sources/" name "/"
5540 (version-major+minor version) "/"
5541 name "-" version ".tar.xz"))
5542 (sha256
5543 (base32
632a9b32 5544 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
c3b97bd9
SB
5545 (build-system gnu-build-system)
5546 (native-inputs
632a9b32 5547 `(("gettext-minimal" ,gettext-minimal)
c3b97bd9
SB
5548 ("itstool" ,itstool)
5549 ("xmllint" ,libxml2)))
5550 (home-page "https://wiki.gnome.org/Apps/Yelp")
5551 (synopsis "XSL stylesheets for Yelp")
5552 (description
5553 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5554to format Docbook and Mallard documents.")
5555 (license license:gpl2+)))
de3d612a
SB
5556
5557(define-public yelp
5558 (package
5559 (name "yelp")
1f1b6d60 5560 (version "3.32.2")
de3d612a
SB
5561 (source (origin
5562 (method url-fetch)
5563 (uri (string-append "mirror://gnome/sources/" name "/"
5564 (version-major+minor version) "/"
5565 name "-" version ".tar.xz"))
5566 (sha256
5567 (base32
1f1b6d60 5568 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5569 (build-system glib-or-gtk-build-system)
5570 (native-inputs
5571 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5572 ("intltool" ,intltool)
5573 ("itstool" ,itstool)
5574 ("pkg-config" ,pkg-config)))
5575 (propagated-inputs
5576 `(("dconf" ,dconf)))
5577 (inputs
ad1b7d8b
SB
5578 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5579 ("libxslt" ,libxslt)
de3d612a 5580 ("sqlite" ,sqlite)
4c28ca1d
SB
5581 ("webkitgtk" ,webkitgtk)
5582 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5583 (home-page "https://wiki.gnome.org/Apps/Yelp")
5584 (synopsis "GNOME help browser")
5585 (description
5586 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5587man, info, and HTML documents. It can locate documents according to the
5588freedesktop.org help system specification.")
5589 (license license:gpl2+)))
122d0d10
SB
5590
5591(define-public yelp-tools
5592 (package
5593 (name "yelp-tools")
8fe8a42a 5594 (version "3.32.2")
122d0d10
SB
5595 (source (origin
5596 (method url-fetch)
5597 (uri (string-append "mirror://gnome/sources/" name "/"
5598 (version-major+minor version) "/"
5599 name "-" version ".tar.xz"))
5600 (sha256
5601 (base32
8fe8a42a 5602 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
122d0d10
SB
5603 (build-system gnu-build-system)
5604 (native-inputs
5605 `(("pkg-config" ,pkg-config)))
5606 (propagated-inputs
5607 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5608 `(("itstool" ,itstool)
5609 ("xmllint" ,libxml2)
5610 ("xsltproc" ,libxslt)))
5611 (inputs
5612 `(("yelp-xsl" ,yelp-xsl)))
5613 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5614 (synopsis "Yelp documentation tools")
5615 (description
5616 "Yelp-tools is a collection of scripts and build utilities to help create,
5617manage, and publish documentation for Yelp and the web. Most of the heavy
5618lifting is done by packages like yelp-xsl and itstool. This package just
5619wraps things up in a developer-friendly way.")
5620 (license license:gpl2+)))
af8f9f23
RW
5621
5622(define-public libgee
5623 (package
5624 (name "libgee")
9cedae2a 5625 (version "0.20.3")
af8f9f23
RW
5626 (source (origin
5627 (method url-fetch)
84a1b007 5628 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5629 (version-major+minor version) "/"
84a1b007 5630 "libgee-" version ".tar.xz"))
af8f9f23
RW
5631 (sha256
5632 (base32
9cedae2a 5633 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
5634 (build-system gnu-build-system)
5635 (arguments
5636 `(#:phases
5637 (modify-phases %standard-phases
5638 (add-after 'unpack 'fix-introspection-install-dir
5639 (lambda* (#:key outputs #:allow-other-keys)
5640 (let ((out (assoc-ref outputs "out")))
5641 (substitute* "gee/Makefile.in"
5642 (("@INTROSPECTION_GIRDIR@")
5643 (string-append out "/share/gir-1.0/"))
5644 (("@INTROSPECTION_TYPELIBDIR@")
5645 (string-append out "/lib/girepository-1.0/")))))))))
5646 (native-inputs
5647 `(("glib" ,glib "bin")
5648 ("pkg-config" ,pkg-config)))
5649 (inputs
5650 `(("glib" ,glib)
5651 ("gobject-introspection" ,gobject-introspection)))
5652 (home-page "https://wiki.gnome.org/Projects/Libgee")
5653 (synopsis "GObject collection library")
5654 (description
5655 "Libgee is a utility library providing GObject-based interfaces and
5656classes for commonly used data structures.")
5657 (license license:lgpl2.1+)))
b0f9c4b8
RW
5658
5659(define-public gexiv2
5660 (package
5661 (name "gexiv2")
b1a8b408 5662 (version "0.12.0")
b0f9c4b8
RW
5663 (source (origin
5664 (method url-fetch)
5665 (uri (string-append "mirror://gnome/sources/" name "/"
5666 (version-major+minor version) "/"
5667 name "-" version ".tar.xz"))
5668 (sha256
5669 (base32
b1a8b408 5670 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5671 (build-system meson-build-system)
b0f9c4b8 5672 (native-inputs
b1a8b408
KK
5673 `(("gcr" ,gcr)
5674 ("glib" ,glib "bin")
5675 ("pkg-config" ,pkg-config)
5676 ("vala" ,vala)))
b0f9c4b8
RW
5677 (propagated-inputs
5678 ;; Listed in "Requires" section of gexiv2.pc
5679 `(("exiv2" ,exiv2)))
5680 (inputs
5681 `(("glib" ,glib)
5682 ("gobject-introspection" ,gobject-introspection)))
5683 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5684 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5685 (description
5686 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5687allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5688metadata in photo and video files of various formats.")
5689 (license license:gpl2+)))
fed5a689
RW
5690
5691(define-public shotwell
5692 (package
5693 (name "shotwell")
bcea20cc 5694 (version "0.30.8")
fed5a689
RW
5695 (source (origin
5696 (method url-fetch)
5497d682 5697 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5698 (version-major+minor version) "/"
5497d682 5699 "shotwell-" version ".tar.xz"))
fed5a689
RW
5700 (sha256
5701 (base32
bcea20cc 5702 "1f7m007g6w1sz8s60w6x81ghp2rrjmik8phd958b2hy8zz92wbbj"))))
3b79afa6
KK
5703 (build-system meson-build-system)
5704 (arguments
5a0beca3
EF
5705 '(#:glib-or-gtk? #t
5706 #:phases
5707 (modify-phases %standard-phases
5708 (add-after 'unpack 'skip-gtk-update-icon-cache
5709 (lambda _
5710 (substitute* "build-aux/meson/postinstall.py"
5711 (("gtk-update-icon-cache") (which "true"))
5712 (("update-desktop-database") (which "true")))
5713 #t)))))
735b8db6
TGR
5714 (propagated-inputs
5715 `(("dconf" ,dconf)))
fed5a689 5716 (native-inputs
5a0beca3
EF
5717 `(("gettext" ,gettext-minimal)
5718 ("glib:bin" ,glib "bin")
735b8db6 5719 ("itstool" ,itstool)
3b79afa6 5720 ("pkg-config" ,pkg-config)
735b8db6 5721 ("vala" ,vala)))
fed5a689 5722 (inputs
5a0beca3
EF
5723 `(("gcr" ,gcr)
5724 ("gexiv2" ,gexiv2)
fed5a689 5725 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5726 ("gstreamer" ,gstreamer)
5727 ("json-glib" ,json-glib)
dfb0323d 5728 ("libgdata" ,libgdata)
fed5a689 5729 ("libgee" ,libgee)
5a0beca3
EF
5730 ("libgphoto2" ,libgphoto2)
5731 ("libgudev" ,libgudev)
fed5a689 5732 ("libraw" ,libraw)
fed5a689
RW
5733 ("libsoup" ,libsoup)
5734 ("libxml2" ,libxml2)
5a0beca3
EF
5735 ("sqlite" ,sqlite)
5736 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5737 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5738 (synopsis "Photo manager for GNOME 3")
5739 (description
5740 "Shotwell is a digital photo manager designed for the GNOME desktop
5741environment. It allows you to import photos from disk or camera, organize
5742them by keywords and events, view them in full-window or fullscreen mode, and
5743share them with others via social networking and more.")
5744 (license license:lgpl2.1+)))
293ff8b2
DT
5745
5746(define-public file-roller
5747 (package
5748 (name "file-roller")
dcae4270 5749 (version "3.32.3")
293ff8b2
DT
5750 (source (origin
5751 (method url-fetch)
f89a27c6 5752 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5753 (version-major+minor version) "/"
f89a27c6 5754 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5755 (sha256
5756 (base32
dcae4270 5757 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5758 (build-system meson-build-system)
293ff8b2 5759 (native-inputs
0a500745
RW
5760 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5761 ("intltool" ,intltool)
4c96e5d1 5762 ("itstool" ,itstool)
0a500745
RW
5763 ("pkg-config" ,pkg-config)
5764 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5765 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5766 ;; TODO: Add libnautilus.
5767 (inputs
5768 `(("gtk+" ,gtk+)
5769 ("gdk-pixbuf" ,gdk-pixbuf)
5770 ("json-glib" ,json-glib)
5771 ("libarchive" ,libarchive)
5772 ("libnotify" ,libnotify)
4c96e5d1 5773 ("nettle" ,nettle)
293ff8b2
DT
5774 ("libxml2" ,libxml2)))
5775 (synopsis "Graphical archive manager for GNOME")
5776 (description "File Roller is an archive manager for the GNOME desktop
5777environment that allows users to view, unpack, and create compressed archives
5778such as gzip tarballs.")
5779 (home-page "http://fileroller.sourceforge.net/")
5780 (license license:gpl2+)))
7ce49365
SB
5781
5782(define-public gnome-session
5783 (package
5784 (name "gnome-session")
f67ce006 5785 (version "3.34.2")
7ce49365
SB
5786 (source (origin
5787 (method url-fetch)
5788 (uri (string-append "mirror://gnome/sources/" name "/"
5789 (version-major+minor version) "/"
5790 name "-" version ".tar.xz"))
5791 (sha256
5792 (base32
f67ce006 5793 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
2914af3c 5794 (arguments
df278071
RW
5795 '(#:glib-or-gtk? #t
5796 #:phases
2914af3c
AW
5797 (modify-phases %standard-phases
5798 (add-before 'configure 'pre-configure
5799 (lambda* (#:key outputs #:allow-other-keys)
5800 ;; Use elogind instead of systemd.
df278071
RW
5801 (substitute* "meson.build"
5802 (("libsystemd-login") "libelogind")
5803 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5804 (substitute* "gnome-session/gsm-systemd.c"
5805 (("#include <systemd/sd-login.h>")
5806 "#include <elogind/sd-login.h>"))
df278071 5807 ;; Remove uses of the systemd daemon.
803ab416
SB
5808 (substitute* "gnome-session/gsm-autostart-app.c"
5809 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5810 #t))
5811 (add-after 'install 'wrap-gnome-session
5812 (lambda* (#:key inputs outputs #:allow-other-keys)
5813 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5814 (let ((glib (assoc-ref inputs "glib:bin"))
5815 (out (assoc-ref outputs "out")))
5816 (wrap-program (string-append out "/bin/gnome-session")
5817 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5818 #t))))
6cbc8d57 5819
2914af3c 5820 #:configure-flags
df278071
RW
5821 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5822 "-Dman=false" ; FIXME: disabled because of docbook validation error
5823 "-Dsystemd_journal=false")))
5824 (build-system meson-build-system)
7ce49365
SB
5825 (native-inputs
5826 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5827 ("pkg-config" ,pkg-config)
5828 ("intltool" ,intltool)
df278071
RW
5829 ("xsltproc" ,libxslt)
5830 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5831 ("docbook-xsl" ,docbook-xsl)
5832 ("docbook-xml" ,docbook-xml)
5833 ("xmlto" ,xmlto)))
7ce49365 5834 (inputs
2914af3c
AW
5835 `(("elogind" ,elogind)
5836 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5837 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5838 ("gtk+" ,gtk+)
5839 ("json-glib" ,json-glib)
5840 ("libsm" ,libsm)
5841 ("libxcomposite" ,libxcomposite)
5842 ("libxtst" ,libxtst)
5843 ("mesa" ,mesa)
5844 ("upower" ,upower)
5845 ("xtrans" ,xtrans)))
5846 (synopsis "Session manager for GNOME")
5847 (description
5848 "This package contains the GNOME session manager, as well as a
5849configuration program to choose applications starting on login.")
5850 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5851 (license license:gpl2+)))
f47ba77e
SB
5852
5853(define-public gjs
5854 (package
5855 (name "gjs")
76e1830c 5856 (version "1.58.3")
f47ba77e
SB
5857 (source (origin
5858 (method url-fetch)
5859 (uri (string-append "mirror://gnome/sources/" name "/"
5860 (version-major+minor version) "/"
5861 name "-" version ".tar.xz"))
5862 (sha256
5863 (base32
76e1830c 5864 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
f47ba77e
SB
5865 (build-system gnu-build-system)
5866 (arguments
5867 '(#:phases
5868 (modify-phases %standard-phases
5869 (add-before
5870 'check 'pre-check
5871 (lambda _
fc119619
MW
5872 ;; The test suite requires a running X server.
5873 (system "Xvfb :1 &")
5874 (setenv "DISPLAY" ":1")
5875
f47ba77e
SB
5876 ;; For the missing /etc/machine-id.
5877 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5878
144f94d0
KK
5879 ;; Our mozjs-38 package does not compile the required Intl API
5880 ;; support for these failing tests.
5881 (substitute* "installed-tests/js/testLocale.js"
5882 ((".*toBeDefined.*") "")
5883 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5884 (substitute* "installed-tests/scripts/testCommandLine.sh"
5885 (("Valentín") "")
5886 (("☭") ""))
f47ba77e
SB
5887 #t)))))
5888 (native-inputs
8a831c6f 5889 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5890 ("pkg-config" ,pkg-config)
5891 ("xmllint" ,libxml2)
5892 ;; For testing
5893 ("dbus-launch" ,dbus)
76e1830c 5894 ("dconf" ,dconf) ; required to properly store settings
f47ba77e 5895 ("uuidgen" ,util-linux)
ebebee94 5896 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5897 (propagated-inputs
5898 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5899 `(("cairo" ,cairo)
5900 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5901 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5902 (inputs
5903 `(("gtk+" ,gtk+)
5904 ("readline" ,readline)))
5905 (synopsis "Javascript bindings for GNOME")
f032d0be 5906 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5907 (description
5908 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5909javascript engine and the GObject introspection framework.")
5910 (license license:gpl2+)))
329d731b
DH
5911
5912(define-public gedit
5913 (package
5914 (name "gedit")
edec7128 5915 (version "3.34.1")
329d731b
DH
5916 (source (origin
5917 (method url-fetch)
5918 (uri (string-append "mirror://gnome/sources/" name "/"
5919 (version-major+minor version) "/"
5920 name "-" version ".tar.xz"))
5921 (sha256
5922 (base32
edec7128 5923 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
480c9226 5924 (build-system meson-build-system)
329d731b 5925 (arguments
480c9226
KK
5926 `(#:glib-or-gtk? #t
5927 #:configure-flags
5928 ;; Otherwise, the RUNPATH will lack the final path component.
5929 (list (string-append "-Dc_link_args=-Wl,-rpath="
5930 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5931
5932 ;; XXX: Generated .h files are sometimes used before being built.
5933 #:parallel-build? #f
5934
480c9226 5935 #:phases
329d731b 5936 (modify-phases %standard-phases
480c9226
KK
5937 (add-after 'unpack 'skip-gtk-update-icon-cache
5938 ;; Don't create 'icon-theme.cache'.
5939 (lambda _
5940 (substitute* "build-aux/meson/post_install.py"
5941 (("gtk-update-icon-cache") (which "true")))
5942 #t))
5943 (add-after 'unpack 'patch-libgd-fetch
5944 (lambda* (#:key inputs #:allow-other-keys)
5945 (let ((libgd (assoc-ref inputs "libgd")))
5946 ;; Calling git is unnecessary because libgd is fetched as a
5947 ;; native input to this package.
5948 (substitute* "meson.build"
5949 ((".*git.*") ""))
5950 (copy-recursively libgd "subprojects/libgd")
5951 #t)))
5952 (add-after 'install 'wrap-gedit
5953 (lambda* (#:key inputs outputs #:allow-other-keys)
5954 (let ((out (assoc-ref outputs "out"))
5955 (gtksourceview (assoc-ref inputs "gtksourceview"))
5956 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5957 (python-path (getenv "PYTHONPATH")))
5958 (wrap-program (string-append out "/bin/gedit")
5959 ;; For plugins.
5960 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5961 `("PYTHONPATH" ":" prefix (,python-path))
5962 ;; For language-specs.
5963 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5964 "/share")))))
5965 #t)))))
329d731b
DH
5966 (propagated-inputs
5967 `(("dconf" ,dconf)))
5968 (native-inputs
480c9226
KK
5969 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5970 ("intltool" ,intltool)
b3546174 5971 ("itstool" ,itstool)
480c9226 5972 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 5973 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
5974 ("libgd"
5975 ,(origin
5976 (method git-fetch)
5977 (uri (git-reference
5978 (url "https://gitlab.gnome.org/GNOME/libgd")
5979 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5980 (file-name (git-file-name "libgd" version))
5981 (sha256
5982 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
5983 ("pkg-config" ,pkg-config)))
5984 (inputs
5985 `(("glib" ,glib)
0d2df50c 5986 ("gspell" ,gspell)
329d731b 5987 ("gtk+" ,gtk+)
480c9226 5988 ("gtksourceview" ,gtksourceview)
329d731b
DH
5989 ("libpeas" ,libpeas)
5990 ("libxml2" ,libxml2)
329d731b
DH
5991 ("iso-codes" ,iso-codes)
5992 ("python-pygobject" ,python-pygobject)
5993 ("python" ,python)
5994 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5995 ("libx11" ,libx11)
5996 ("vala" ,vala)
5997 ("adwaita-icon-theme" ,adwaita-icon-theme)
5998 ("libsoup" ,libsoup)
5999 ("gnome-desktop" ,gnome-desktop)))
6000 (home-page "https://wiki.gnome.org/Apps/Gedit")
6001 (synopsis "GNOME text editor")
6002 (description "While aiming at simplicity and ease of use, gedit is a
6003powerful general purpose text editor.")
6004 (license license:gpl2+)))
b7179363
SB
6005
6006(define-public zenity
6007 (package
6008 (name "zenity")
4f581bd0 6009 (version "3.32.0")
b7179363
SB
6010 (source (origin
6011 (method url-fetch)
5958df04 6012 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6013 (version-major+minor version) "/"
5958df04 6014 "zenity-" version ".tar.xz"))
b7179363
SB
6015 (sha256
6016 (base32
4f581bd0 6017 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6018 (build-system gnu-build-system)
6019 (native-inputs
b94a6ca0 6020 `(("gettext" ,gettext-minimal)
b7179363
SB
6021 ("itstool" ,itstool)
6022 ("pkg-config" ,pkg-config)))
6023 (inputs
6024 `(("libnotify" ,libnotify)
6025 ("webkitgtk" ,webkitgtk)))
6026 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6027 (home-page "https://www.gnome.org")
b7179363
SB
6028 (description
6029 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6030to display dialog boxes from the commandline and shell scripts.")
6031 (license license:lgpl2.0+)))
60c3627c
SB
6032
6033(define-public mutter
6034 (package
6035 (name "mutter")
ec3ceabd 6036 (version "3.34.2")
60c3627c 6037 (source (origin
86c44e72
KK
6038 (method url-fetch)
6039 (uri (string-append "mirror://gnome/sources/" name "/"
6040 (version-major+minor version) "/"
6041 name "-" version ".tar.xz"))
60c3627c
SB
6042 (sha256
6043 (base32
ec3ceabd 6044 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
86c44e72
KK
6045 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6046 ;; versions of cogl and clutter. As a result, many of the inputs,
6047 ;; propagated-inputs, and configure flags used in cogl and clutter are
6048 ;; needed here as well.
edf43f68 6049 (build-system meson-build-system)
60c3627c 6050 (arguments
edf43f68
KK
6051 '(;; XXX: All mutter tests fail with the following error:
6052 ;; Settings schema 'org.gnome.mutter' is not installed
6053 #:tests? #f
6054 #:glib-or-gtk? #t
6055 #:configure-flags
ec3ceabd
KK
6056 ;; TODO: Enable profiler when Sysprof is packaged.
6057 (list "-Dprofiler=false"
6058 ;; Otherwise, the RUNPATH will lack the final path component.
6059 (string-append "-Dc_link_args=-Wl,-rpath="
edf43f68 6060 (assoc-ref %outputs "out") "/lib:"
ec3ceabd 6061 (assoc-ref %outputs "out") "/lib/mutter-5")
a88d5a0c
MW
6062
6063 ;; The following flags are needed for the bundled clutter
edf43f68 6064 (string-append "-Dxwayland_path="
d633f2f6
RH
6065 (assoc-ref %build-inputs "xorg-server-xwayland")
6066 "/bin/Xwayland")
6067
a88d5a0c 6068 ;; the remaining flags are needed for the bundled cogl
edf43f68 6069 (string-append "-Dopengl_libname="
a88d5a0c 6070 (assoc-ref %build-inputs "mesa")
ec3ceabd 6071 "/lib/libGL.so"))))
60c3627c 6072 (native-inputs
ec3ceabd
KK
6073 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6074 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
60c3627c
SB
6075 ("gobject-introspection" ,gobject-introspection)
6076 ("intltool" ,intltool)
f23052a6 6077 ("pkg-config" ,pkg-config)
edf43f68 6078 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6079 ;; For git build
6080 ("autoconf" ,autoconf)
6081 ("automake" ,automake)
6082 ("libtool" ,libtool)))
60c3627c 6083 (propagated-inputs
a88d5a0c
MW
6084 `(;; libmutter.pc refers to these:
6085 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6086 ("gtk+" ,gtk+)
6087 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6088 ("atk" ,atk)
6089 ("cairo" ,cairo)
6090 ("gdk-pixbuf" ,gdk-pixbuf)
6091 ("glib" ,glib)
a88d5a0c
MW
6092 ("json-glib" ,json-glib)
6093 ("libinput" ,libinput)
6094 ("libx11" ,libx11)
6095 ("libxcomposite" ,libxcomposite)
6096 ("libxdamage" ,libxdamage)
6097 ("libxext" ,libxext)
6098 ("libxfixes" ,libxfixes)
6099 ("libxkbcommon" ,libxkbcommon)
6100 ("libxrandr" ,libxrandr)
6101 ("mesa" ,mesa)
6102 ("pango" ,pango)
6103 ("udev" ,eudev)
a88d5a0c 6104 ("xinput" ,xinput)))
60c3627c 6105 (inputs
86c44e72
KK
6106 `(("elogind" ,elogind)
6107 ("gnome-desktop" ,gnome-desktop)
edf43f68 6108 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6109 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6110 ("libgudev" ,libgudev)
60c3627c
SB
6111 ("libice" ,libice)
6112 ("libsm" ,libsm)
edf43f68 6113 ("libwacom" ,libwacom)
60c3627c 6114 ("libxkbfile" ,libxkbfile)
a88d5a0c 6115 ("libxrandr" ,libxrandr)
86c44e72 6116 ("libxtst" ,libxtst)
edf43f68 6117 ("pipewire" ,pipewire)
60c3627c
SB
6118 ("startup-notification" ,startup-notification)
6119 ("upower-glib" ,upower)
6120 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6121 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6122 ("zenity" ,zenity)))
6123 (synopsis "Window and compositing manager")
f032d0be 6124 (home-page "https://www.gnome.org")
60c3627c
SB
6125 (description
6126 "Mutter is a window and compositing manager that displays and manages your
6127desktop via OpenGL. Mutter combines a sophisticated display engine using the
6128Clutter toolkit with solid window-management logic inherited from the Metacity
6129window manager.")
86c44e72 6130 (license license:gpl2+)))
685cee87
SB
6131
6132(define-public gnome-online-accounts
6133 (package
6134 (name "gnome-online-accounts")
dd233e4d 6135 (version "3.36.0")
685cee87
SB
6136 (source (origin
6137 (method url-fetch)
6138 (uri (string-append "mirror://gnome/sources/" name "/"
6139 (version-major+minor version) "/"
6140 name "-" version ".tar.xz"))
6141 (sha256
6142 (base32
dd233e4d 6143 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
14c297fd 6144 (outputs '("out" "lib"))
685cee87 6145 (build-system glib-or-gtk-build-system)
14c297fd
TS
6146 (arguments
6147 `(#:configure-flags
6148 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6149 #:phases
6150 (modify-phases %standard-phases
6151 (add-before 'configure 'patch-libgoa-output
6152 (lambda* (#:key outputs #:allow-other-keys)
6153 (let ((lib (assoc-ref outputs "lib")))
6154 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6155 (("@prefix@") lib)
6156 (("@exec_prefix@") lib)
6157 (("@libdir@") (string-append lib "/lib"))
6158 (("@includedir@") (string-append lib "/include"))
6159 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6160 ;; Make sure gobject-introspection knows about the output
6161 ;; too (see <https://bugs.gnu.org/36535>).
6162 (setenv "outputs" "out lib")
14c297fd 6163 #t))))))
685cee87
SB
6164 (native-inputs
6165 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6166 ("gobject-introspection" ,gobject-introspection)
6167 ("intltool" ,intltool)
6168 ("pkg-config" ,pkg-config)
ebb2873d 6169 ("vala" ,vala)
685cee87
SB
6170 ("xsltproc" ,libxslt)))
6171 (propagated-inputs
6172 `(("glib" ,glib) ; required by goa-1.0.pc
6173 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6174 (inputs
6175 `(("docbook-xsl" ,docbook-xsl)
6176 ("json-glib" ,json-glib)
6177 ("libsecret" ,libsecret)
6178 ("rest" ,rest)
685cee87
SB
6179 ("webkitgtk" ,webkitgtk)))
6180 (synopsis "Single sign-on framework for GNOME")
6181 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6182 (description
6183 "GNOME Online Accounts provides interfaces so that applications and
6184libraries in GNOME can access the user's online accounts. It has providers for
6185Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6186Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6187 (license license:lgpl2.0+)))
df217748
SB
6188
6189(define-public evolution-data-server
6190 (package
6191 (name "evolution-data-server")
162048be 6192 (version "3.34.2")
df217748
SB
6193 (source (origin
6194 (method url-fetch)
6195 (uri (string-append "mirror://gnome/sources/" name "/"
6196 (version-major+minor version) "/"
6197 name "-" version ".tar.xz"))
43190ac6
MB
6198 (patches (search-patches "evolution-data-server-locales.patch"
6199 "evolution-data-server-libical-compat.patch"))
df217748
SB
6200 (sha256
6201 (base32
162048be 6202 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
743aebd7 6203 (build-system cmake-build-system)
df217748 6204 (arguments
b468eedc
RW
6205 '(#:configure-flags
6206 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6207 (runpaths (map (lambda (s)
6208 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6209 '("addressbook-backends" "calendar-backends"
6210 "camel-providers" "credential-modules"
6211 "registry-modules"))))
6212 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6213 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6214 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6215 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6216 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6217 (string-append lib "/evolution-data-server;")
6218 (string-join runpaths ";"))
6219 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6220 #:phases
6221 (modify-phases %standard-phases
b468eedc
RW
6222 (add-after 'unpack 'disable-failing-tests
6223 (lambda _
6224 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6225 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6226 (delete-file-recursively "tests/book-migration")
6227 (substitute* "tests/CMakeLists.txt"
6228 (("add_subdirectory\\(book-migration\\)") ""))
b468eedc 6229 #t))
743aebd7 6230 (add-after 'unpack 'patch-paths
df217748 6231 (lambda _
b468eedc
RW
6232 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6233 "tests/libedata-book/data-test-utils.c"
6234 "tests/libedata-book/test-book-cache-utils.c"
6235 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6236 (("/bin/rm") (which "rm")))
ac033c7b
MB
6237 #t))
6238 (add-before 'configure 'dont-override-rpath
6239 (lambda _
6240 (substitute* "CMakeLists.txt"
6241 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6242 ;; Remove it so the configure flag is respected.
6243 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6244 #t)))))
df217748
SB
6245 (native-inputs
6246 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6247 ("gobject-introspection" ,gobject-introspection)
6248 ("gperf" ,gperf)
6249 ("intltool" ,intltool)
6250 ("pkg-config" ,pkg-config)
a73c1cf8 6251 ("vala" ,vala)
743aebd7 6252 ("python" ,python-wrapper)))
df217748
SB
6253 (propagated-inputs
6254 ;; These are all in the Requires field of .pc files.
6255 `(("gtk+" ,gtk+)
6256 ("libical" ,libical)
6257 ("libsecret" ,libsecret)
6258 ("libsoup" ,libsoup)
6259 ("nss" ,nss)
6260 ("sqlite" ,sqlite)))
6261 (inputs
6262 `(("bdb" ,bdb)
6263 ("gcr" ,gcr)
14c297fd 6264 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6265 ("json-glib" ,json-glib)
b468eedc 6266 ("libcanberra" ,libcanberra)
743aebd7
MB
6267 ("libgweather" ,libgweather)
6268 ("mit-krb5" ,mit-krb5)
891199c6
MW
6269 ("openldap" ,openldap)
6270 ("webkitgtk" ,webkitgtk)))
df217748
SB
6271 (synopsis "Store address books and calendars")
6272 (home-page "https://wiki.gnome.org/Apps/Evolution")
6273 (description
6274 "This package provides a unified backend for programs that work with
6275contacts, tasks, and calendar information. It was originally developed for
6276Evolution (hence the name), but is now used by other packages as well.")
6277 (license license:lgpl2.0)))
bd7dfafa
SB
6278
6279(define-public caribou
6280 (package
6281 (name "caribou")
fe964bb5 6282 (version "0.4.21")
bd7dfafa
SB
6283 (source (origin
6284 (method url-fetch)
6285 (uri (string-append "mirror://gnome/sources/" name "/"
6286 (version-major+minor version) "/"
6287 name "-" version ".tar.xz"))
6288 (sha256
6289 (base32
fe964bb5 6290 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6291 (build-system glib-or-gtk-build-system)
6292 (arguments
6293 '(#:phases
6294 (modify-phases %standard-phases
6295 (add-before
6296 'build 'pre-build
6297 (lambda* (#:key outputs #:allow-other-keys)
6298 (let ((out (assoc-ref outputs "out")))
6299 ;; Use absolute shared library path in Caribou-1.0.typelib.
6300 (substitute* "libcaribou/Makefile"
6301 (("--shared-library=libcaribou.so")
6302 (string-append "--shared-library="
6303 out "/lib/libcaribou.so")))
6304 #t)))
6305 (add-after 'install 'wrap-programs
6306 (lambda* (#:key outputs #:allow-other-keys)
6307 (let* ((out (assoc-ref outputs "out"))
6308 (python-path (getenv "PYTHONPATH"))
6309 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6310 (for-each
6311 (lambda (prog)
6312 (wrap-program prog
6313 `("PYTHONPATH" ":" prefix (,python-path))
6314 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6315 (list (string-append out "/bin/caribou-preferences")
6316 (string-append out "/libexec/antler-keyboard"))))
6317 #t)))))
6318 (native-inputs
6319 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6320 ("gobject-introspection" ,gobject-introspection)
6321 ("intltool" ,intltool)
6322 ("pkg-config" ,pkg-config)
9f7f5ba2 6323 ("python" ,python)
bd7dfafa
SB
6324 ("vala" ,vala)
6325 ("xsltproc" ,libxslt)))
6326 (propagated-inputs
6327 ;; caribou-1.0.pc refers to all these.
6328 `(("libgee" ,libgee)
6329 ("libxklavier" ,libxklavier)
6330 ("libxtst" ,libxtst)
6331 ("gtk+" ,gtk+)))
6332 (inputs
6333 `(("clutter" ,clutter)
6334 ("dconf" ,dconf)
6335 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6336 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6337 (synopsis "Text entry and UI navigation application")
6338 (home-page "https://wiki.gnome.org/Projects/Caribou")
6339 (description
6340 "Caribou is an input assistive technology intended for switch and pointer
6341users.")
6342 (license license:lgpl2.1)))
ba5dd105 6343
ba5dd105
SB
6344(define-public network-manager
6345 (package
6346 (name "network-manager")
6425d87a 6347 (version "1.18.4")
ba5dd105
SB
6348 (source (origin
6349 (method url-fetch)
6350 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6351 (version-major+minor version) "/"
6352 "NetworkManager-" version ".tar.xz"))
9d3b6a5d 6353 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
6354 (sha256
6355 (base32
6425d87a 6356 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
02710a9b 6357 (modules '((guix build utils)))
fd070f35 6358 (snippet
02710a9b
RW
6359 '(begin
6360 (substitute* "src/devices/wwan/nm-modem-manager.c"
6361 (("systemd") "elogind"))
6362 #t))))
ba5dd105
SB
6363 (build-system gnu-build-system)
6364 (outputs '("out"
6365 "doc")) ; 8 MiB of gtk-doc HTML
6366 (arguments
6367 '(#:configure-flags
6368 (let ((out (assoc-ref %outputs "out"))
6369 (doc (assoc-ref %outputs "doc"))
6370 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6371 "/sbin/dhclient")))
02710a9b
RW
6372 (list "--with-libnm-glib" ; needed by network-manager-applet
6373 "--with-systemd-journal=no"
6374 "--with-session-tracking=elogind"
6375 "--with-suspend-resume=elogind"
fd070f35
CM
6376 "--with-consolekit=no"
6377 "--with-crypto=gnutls"
ba5dd105
SB
6378 "--disable-config-plugin-ibft"
6379 "--sysconfdir=/etc"
6380 "--localstatedir=/var"
6381 (string-append "--with-udev-dir="
6382 out "/lib/udev")
6383 (string-append "--with-dbus-sys-dir="
6384 out "/etc/dbus-1/system.d")
6385 (string-append "--with-html-dir="
6386 doc "/share/gtk-doc/html")
6387 (string-append "--with-dhclient=" dhclient)))
6388 #:phases
6389 (modify-phases %standard-phases
02710a9b
RW
6390 ;; This bare "ls" invocation breaks some tests.
6391 (add-after 'unpack 'patch-ls-invocation
6392 (lambda _
6393 (substitute* "build-aux/ltmain.sh"
6394 (("`ls -")
6395 (string-append "`" (which "ls") " -")))
6396 #t))
b4f59d87
AW
6397 (add-before 'configure 'pre-configure
6398 (lambda _
6399 ;; These tests try to test aspects of network-manager's
6400 ;; functionality within restricted containers, but they don't
6401 ;; cope with being already in the Guix build jail as that jail
6402 ;; lacks some features that they would like to proxy over (like
6403 ;; a /sys mount).
d04687dc
HG
6404 (substitute* '("Makefile.in")
6405 (("src/platform/tests/test-address-linux") " ")
6406 (("src/platform/tests/test-cleanup-linux") " ")
6407 (("src/platform/tests/test-link-linux") " ")
6408 (("src/platform/tests/test-route-linux") " ")
02710a9b 6409 (("src/devices/tests/test-acd") "")
d04687dc
HG
6410 (("src/devices/tests/test-arping") " ")
6411 (("src/devices/tests/test-lldp") " ")
6412 (("src/tests/test-route-manager-linux") " "))
b4f59d87 6413 #t))
45f80fce
RW
6414 (add-after 'unpack 'delete-failing-tests
6415 (lambda _
02710a9b 6416 ;; FIXME: These three tests fail for unknown reasons.
45f80fce
RW
6417 ;; ERROR:libnm-core/tests/test-general.c:5842:
6418 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6419 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6420 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6421 ;; ERROR:libnm-core/tests/test-setting.c:907:
6422 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
45f80fce
RW
6423 (substitute* "Makefile.in"
6424 (("libnm-core/tests/test-general") " ")
6425 (("libnm-core/tests/test-keyfile") " ")
02710a9b 6426 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
45f80fce 6427 #t))
ba5dd105
SB
6428 (add-before 'check 'pre-check
6429 (lambda _
6430 ;; For the missing /etc/machine-id.
6431 (setenv "DBUS_FATAL_WARNINGS" "0")
bf252286
MB
6432
6433 ;; XXX: Regenerate some of the tests that are dependent on Python version.
6434 ;; Try removing this variable for newer versions of NetworkManager.
6435 (setenv "NM_TEST_REGENERATE" "1")
ba5dd105
SB
6436 #t))
6437 (replace 'install
6438 (lambda _
45f80fce
RW
6439 (invoke "make"
6440 "sysconfdir=/tmp"
6441 "rundir=/tmp"
6442 "statedir=/tmp"
6443 "nmstatedir=/tmp/nm"
6444 "install")
6445 #t)))))
b93502d6
DC
6446 (propagated-inputs
6447 `(("glib" ,glib)))
ba5dd105
SB
6448 (native-inputs
6449 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6450 ("gobject-introspection" ,gobject-introspection)
d04687dc 6451 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6452 ("intltool" ,intltool)
d04687dc
HG
6453 ("libxslt" ,libxslt)
6454 ("libxml2" ,libxml2)
ba5dd105
SB
6455 ("pkg-config" ,pkg-config)
6456 ;; For testing.
6457 ("python" ,python-wrapper)
6458 ("python-dbus" ,python-dbus)
6459 ("python-pygobject" ,python-pygobject)))
6460 (inputs
02710a9b
RW
6461 `(("coreutils" ,coreutils) ; for ls
6462 ("curl" ,curl)
856ca567
KK
6463 ("cyrus-sasl" ,cyrus-sasl)
6464 ("dbus-glib" ,dbus-glib)
ba5dd105 6465 ("dnsmasq" ,dnsmasq)
856ca567 6466 ("eudev" ,eudev)
ba5dd105
SB
6467 ("gnutls" ,gnutls)
6468 ("iptables" ,iptables)
6469 ("isc-dhcp" ,isc-dhcp)
d04687dc 6470 ("jansson" ,jansson)
ba5dd105
SB
6471 ("libgcrypt" ,libgcrypt)
6472 ("libgudev" ,libgudev)
6473 ("libndp" ,libndp)
6474 ("libnl" ,libnl)
6475 ("libsoup" ,libsoup)
142bdcbc 6476 ("modem-manager" ,modem-manager)
c27e02bf 6477 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
6478 ("polkit" ,polkit)
6479 ("ppp" ,ppp)
6480 ("readline" ,readline)
fd070f35
CM
6481 ("util-linux" ,util-linux)
6482 ("elogind" ,elogind)))
ba5dd105 6483 (synopsis "Network connection manager")
f032d0be 6484 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
6485 (description
6486 "NetworkManager is a system network service that manages your network
6487devices and connections, attempting to keep active network connectivity when
6488available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6489devices, and provides VPN integration with a variety of different VPN
6490services.")
29d2f451
LC
6491 (license license:gpl2+)
6492 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6493
f2b96b3a
LC
6494(define-public network-manager-openvpn
6495 (package
6496 (name "network-manager-openvpn")
be1c4b07 6497 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 6498 (version "1.8.10")
f2b96b3a
LC
6499 (source (origin
6500 (method url-fetch)
6501 (uri (string-append
6502 "mirror://gnome/sources/NetworkManager-openvpn/"
6503 (version-major+minor version)
6504 "/NetworkManager-openvpn-" version ".tar.xz"))
6505 (sha256
6506 (base32
7d87eede 6507 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
6508 (build-system gnu-build-system)
6509 (arguments
633422b0
JL
6510 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6511 #:phases
6512 (modify-phases %standard-phases
6513 (add-after 'configure 'patch-path
6514 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6515 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6516 "/sbin/openvpn"))
6517 (modprobe (string-append (assoc-ref inputs "kmod")
6518 "/bin/modprobe"))
6519 (pretty-ovpn (string-append "\"" ovpn "\"")))
6520 (for-each
6521 (lambda (file)
6522 (substitute* file
6523 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6524 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6525 (("\"/sbin/openvpn\"") pretty-ovpn)
6526 (("/sbin/modprobe") modprobe)))
6527 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6528 #t)))))
f2b96b3a
LC
6529 (native-inputs
6530 `(("pkg-config" ,pkg-config)
6531 ("intltool" ,intltool)))
6532 (inputs
6533 `(("gtk+" ,gtk+)
633422b0 6534 ("kmod" ,kmod)
f2b96b3a
LC
6535 ("openvpn" ,openvpn)
6536 ("network-manager" ,network-manager)
6537 ("network-manager-applet" ,network-manager-applet) ;for libnma
6538 ("libsecret" ,libsecret)))
6539 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6540 (synopsis "OpenVPN plug-in for NetworkManager")
6541 (description
6542 "This extension of NetworkManager allows it to take care of connections
6543to virtual private networks (VPNs) via OpenVPN.")
6544 (license license:gpl2+)
6545 (properties `((upstream-name . "NetworkManager-openvpn")))))
6546
d376129f
JL
6547(define-public network-manager-vpnc
6548 (package
6549 (name "network-manager-vpnc")
6550 (version "1.2.6")
6551 (source (origin
6552 (method url-fetch)
6553 (uri (string-append
6554 "mirror://gnome/sources/NetworkManager-vpnc/"
6555 (version-major+minor version)
6556 "/NetworkManager-vpnc-" version ".tar.xz"))
6557 (sha256
6558 (base32
6559 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6560 (build-system gnu-build-system)
6561 (arguments
6562 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6563 #:phases
6564 (modify-phases %standard-phases
6565 (add-after 'configure 'patch-path
6566 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6567 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6568 "/sbin/vpnc"))
6569 (modprobe (string-append (assoc-ref inputs "kmod")
6570 "/bin/modprobe"))
6571 (pretty-ovpn (string-append "\"" vpnc "\"")))
6572 (substitute* "src/nm-vpnc-service.c"
6573 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6574 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6575 (("\"/sbin/vpnc\"") pretty-ovpn)
6576 (("/sbin/modprobe") modprobe)))
6577 #t)))))
6578 (native-inputs
6579 `(("pkg-config" ,pkg-config)
6580 ("intltool" ,intltool)))
6581 (inputs
6582 `(("gtk+" ,gtk+)
6583 ("kmod" ,kmod)
6584 ("vpnc" ,vpnc)
6585 ("network-manager" ,network-manager)
6586 ("network-manager-applet" ,network-manager-applet) ;for libnma
6587 ("libsecret" ,libsecret)))
6588 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6589 (synopsis "VPNC plug-in for NetworkManager")
6590 (description
6591 "Support for configuring virtual private networks based on VPNC.
6592Compatible with Cisco VPN concentrators configured to use IPsec.")
6593 (license license:gpl2+)
6594 (properties `((upstream-name . "NetworkManager-vpnc")))))
6595
8378c87a
EF
6596(define-public network-manager-openconnect
6597 (package
6598 (name "network-manager-openconnect")
6599 (version "1.2.6")
6600 (source (origin
6601 (method url-fetch)
6602 (uri (string-append
6603 "mirror://gnome/sources/NetworkManager-openconnect/"
6604 (version-major+minor version)
6605 "/NetworkManager-openconnect-" version ".tar.xz"))
6606 (sha256
6607 (base32
6608 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6609 (build-system gnu-build-system)
6610 (arguments
6611 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6612 #:phases
6613 (modify-phases %standard-phases
6614 (add-after 'configure 'patch-path
6615 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6616 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6617 "/sbin/openconnect"))
6618 (modprobe (string-append (assoc-ref inputs "kmod")
6619 "/bin/modprobe"))
6620 (pretty-ovpn (string-append "\"" openconnect "\"")))
6621 (substitute* "src/nm-openconnect-service.c"
6622 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6623 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6624 (("/sbin/modprobe") modprobe)))
6625 #t)))))
6626 (native-inputs
6627 `(("intltool" ,intltool)
6628 ("network-manager-applet" ,network-manager-applet) ;for libnma
6629 ("pkg-config" ,pkg-config)))
6630 (inputs
6631 `(("gcr" ,gcr)
6632 ("gtk+" ,gtk+)
6633 ("kmod" ,kmod)
6634 ("libsecret" ,libsecret)
6635 ("libxml2" ,libxml2)
b4fe5dab 6636 ("lz4" ,lz4)
8378c87a
EF
6637 ("network-manager" ,network-manager)
6638 ("openconnect" ,openconnect)))
6639 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6640 (synopsis "OpenConnect plug-in for NetworkManager")
6641 (description
6642 "This extension of NetworkManager allows it to take care of connections
6643to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6644Cisco's AnyConnect SSL VPN.")
6645 (license license:gpl2+)
e52b9534
LC
6646 (properties `((upstream-name . "NetworkManager-openconnect")
6647
6648 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6649 ;; file refers to account "nm-openconnect". Specify it here
6650 ;; so that 'network-manager-service-type' creates it.
6651 (user-accounts . ("nm-openconnect"))))))
8378c87a 6652
e5e1df4d
DC
6653(define-public mobile-broadband-provider-info
6654 (package
6655 (name "mobile-broadband-provider-info")
310c89e3 6656 (version "20190116")
e5e1df4d
DC
6657 (source (origin
6658 (method url-fetch)
6659 (uri (string-append
6660 "mirror://gnome/sources/"
6661 "mobile-broadband-provider-info/" version "/"
6662 "mobile-broadband-provider-info-" version ".tar.xz"))
6663 (sha256
6664 (base32
310c89e3 6665 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6666 (build-system gnu-build-system)
6667 (arguments
310c89e3 6668 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6669 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6670 (synopsis "Database of broadband connection configuration")
6671 (description "Database of broadband connection configuration.")
6672 (license license:public-domain)))
6673
4d62a9d3
SB
6674(define-public network-manager-applet
6675 (package
6676 (name "network-manager-applet")
8fc3a337 6677 (version "1.8.24")
4d62a9d3
SB
6678 (source (origin
6679 (method url-fetch)
3df63444 6680 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6681 (version-major+minor version) "/"
3df63444 6682 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6683 (sha256
6684 (base32
8fc3a337 6685 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6686 (build-system meson-build-system)
6687 (arguments
be1c4b07
TGR
6688 '(#:configure-flags
6689 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6690 (list "-Dlibnm_gtk=true")
6691 #:glib-or-gtk? #t))
4d62a9d3
SB
6692 (native-inputs
6693 `(("intltool" ,intltool)
cd7f718e 6694 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6695 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6696 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6697 ("pkg-config" ,pkg-config)))
6698 (propagated-inputs
6699 ;; libnm-gtk.pc refers to all these.
6700 `(("dbus-glib" ,dbus-glib)
6701 ("gtk+" ,gtk+)
6702 ("network-manager" ,network-manager)))
6703 (inputs
cd7f718e
RW
6704 `(("gcr" ,gcr)
6705 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6706 ("libgudev" ,libgudev)
6707 ("libnotify" ,libnotify)
2116bfb3 6708 ("libsecret" ,libsecret)
240cee8a
KK
6709 ("libselinux" ,libselinux)
6710 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6711 ("modem-manager" ,modem-manager)
6712 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6713 (synopsis "Applet for managing network connections")
f032d0be 6714 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6715 (description
6716 "This package contains a systray applet for NetworkManager. It displays
6717the available networks and allows users to easily switch between them.")
6718 (license license:gpl2+)))
56196594
RW
6719
6720(define-public libxml++
6721 (package
6722 (name "libxml++")
8344a85e 6723 (version "3.0.1")
56196594
RW
6724 (source (origin
6725 (method url-fetch)
6726 (uri (string-append "mirror://gnome/sources/" name "/"
6727 (version-major+minor version) "/"
6728 name "-" version ".tar.xz"))
6729 (sha256
6730 (base32
8344a85e 6731 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6732 (build-system gnu-build-system)
6733 ;; libxml++-3.0.pc refers to all these.
6734 (propagated-inputs
6735 `(("libxml2" ,libxml2)
6736 ("glibmm" ,glibmm)))
6737 (native-inputs
6738 `(("perl" ,perl)
6739 ("pkg-config" ,pkg-config)))
6740 (home-page "http://libxmlplusplus.sourceforge.net/")
6741 (synopsis "C++ wrapper for XML parser library libxml2")
6742 (description
6743 "This package provides a C++ wrapper for the XML parser library
6744libxml2.")
6745 (license license:lgpl2.1+)))
df12f04a 6746
b61d9627
AW
6747(define-public libxml++-2
6748 (package
6749 (inherit libxml++)
6750 (name "libxml++")
6751 (version "2.40.1")
6752 (source (origin
6753 (method url-fetch)
6754 (uri (string-append "mirror://gnome/sources/" name "/"
6755 (version-major+minor version) "/"
6756 name "-" version ".tar.xz"))
6757 (sha256
6758 (base32
6759 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6760
df12f04a
SB
6761(define-public gdm
6762 (package
6763 (name "gdm")
0fda99c5 6764 (version "3.34.1")
df12f04a
SB
6765 (source (origin
6766 (method url-fetch)
6767 (uri (string-append "mirror://gnome/sources/" name "/"
6768 (version-major+minor version) "/"
6769 name "-" version ".tar.xz"))
6770 (sha256
6771 (base32
0fda99c5 6772 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
f4ec5e1a 6773 (patches (search-patches "gdm-default-session.patch"))))
957dbc0a 6774 (build-system glib-or-gtk-build-system)
df12f04a
SB
6775 (arguments
6776 '(#:configure-flags
af37e6bb 6777 `("--without-plymouth"
957dbc0a 6778 "--disable-systemd-journal"
51bc8357
TS
6779
6780 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6781 ;; instead of having to replace it (i.e., stopping the mingetty
6782 ;; service for TTY 1 before starting GDM).
6783 "--with-initial-vt=7"
6784
89c86562
TS
6785 ;; Use '/etc/environment' for locale settings instead of the
6786 ;; systemd-specific '/etc/locale.conf'.
6787 "--with-lang-file=/etc/environment"
6788
b74ef0ba
RW
6789 ,(string-append "--with-udevdir="
6790 (assoc-ref %outputs "out") "/lib/udev")
6791
af37e6bb
AW
6792 "--localstatedir=/var"
6793 ,(string-append "--with-default-path="
6794 (string-join '("/run/setuid-programs"
6795 "/run/current-system/profile/bin"
6796 "/run/current-system/profile/sbin")
957dbc0a
AW
6797 ":"))
6798 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6799 ;; XDG_DATA_DIRS so that it finds its schemas.
6800 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6801 #:phases
6802 (modify-phases %standard-phases
6803 (add-before
6804 'configure 'pre-configure
e8c6e771 6805 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6806 ;; We don't have <systemd/sd-daemon.h>.
6807 (substitute* '("common/gdm-log.c"
6808 "daemon/gdm-server.c"
6809 "daemon/gdm-session-worker.c"
6810 "daemon/gdm-session-worker-job.c")
6811 (("#include <systemd/sd-daemon\\.h>") ""))
6812 ;; Use elogind for sd-login.
6813 (substitute* '("common/gdm-common.c"
0fda99c5 6814 "daemon/gdm-local-display-factory.c"
df12f04a
SB
6815 "daemon/gdm-manager.c"
6816 "libgdm/gdm-user-switching.c")
6817 (("#include <systemd/sd-login\\.h>")
6818 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6819 ;; Check for elogind.
6820 (substitute* '("configure")
6821 (("libsystemd")
6822 "libelogind"))
af37e6bb
AW
6823 ;; Look for system-installed sessions in
6824 ;; /run/current-system/profile/share.
6825 (substitute* '("libgdm/gdm-sessions.c"
6826 "daemon/gdm-session.c"
6827 "daemon/gdm-display.c"
6828 "daemon/gdm-launch-environment.c")
6829 (("DATADIR \"/x")
6830 "\"/run/current-system/profile/share/x")
6831 (("DATADIR \"/wayland")
6832 "\"/run/current-system/profile/share/wayland")
6833 (("DATADIR \"/gnome")
6834 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6835 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6836 "GDM_DBUS_DAEMON"
c9ff92b5 6837 "GDM_X_SERVER"
41fa9f18 6838 "GDM_X_SESSION"
c9ff92b5
TS
6839 ;; XXX: Remove this once GNOME Shell is
6840 ;; a dependency of GDM.
6841 "XDG_DATA_DIRS")))
6842 (substitute* "daemon/gdm-session.c"
6843 (("set_up_session_environment \\(self\\);")
6844 (apply string-append
6845 "set_up_session_environment (self);\n"
6846 (map (lambda (name)
6847 (string-append
6848 "gdm_session_set_environment_variable "
6849 "(self, \"" name "\","
6850 "g_getenv (\"" name "\"));\n"))
6851 propagate)))))
a430a350
TS
6852 ;; Find the configuration file using an environment variable.
6853 (substitute* '("common/gdm-settings.c")
e0e6756f 6854 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6855 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6856 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6857 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6858 ;; Use service-supplied path to X.
6859 (substitute* '("daemon/gdm-server.c")
6860 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6861 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
0fda99c5
KK
6862 (substitute* '("daemon/gdm-wayland-session.c"
6863 "daemon/gdm-x-session.c")
1f564c15
TS
6864 (("\"dbus-daemon\"")
6865 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6866 (("X_SERVER")
41fa9f18
TS
6867 "g_getenv (\"GDM_X_SERVER\")")
6868 (("GDMCONFDIR \"/Xsession\"")
6869 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6870 ;; Use an absolute path for GNOME Session.
6871 (substitute* "daemon/gdm-launch-environment.c"
6872 (("\"gnome-session\"")
6873 (string-append "\"" (assoc-ref inputs "gnome-session")
6874 "/bin/gnome-session\"")))
e8c6e771
TS
6875 ;; Do not automatically select the placeholder session.
6876 (substitute* "daemon/gdm-session.c"
6877 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6878 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6879 "(g_strcmp0(search_dirs[i], \""
6880 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6881 "\") == 0 && "
6882 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6883 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6884 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6885 #t))
8caa4589
TS
6886 ;; GDM requires that there be at least one desktop entry
6887 ;; file. This phase installs a hidden one that simply
6888 ;; fails. This enables users to use GDM with a
6889 ;; '~/.xsession' script with no other desktop entry files.
6890 ;; See <https://bugs.gnu.org/35068>.
6891 (add-after 'install 'install-placeholder-desktop-entry
6892 (lambda* (#:key inputs outputs #:allow-other-keys)
6893 (let* ((out (assoc-ref outputs "out"))
6894 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6895 (fail (string-append sessions "/fail.desktop")))
6896 (mkdir-p sessions)
6897 (with-output-to-file fail
6898 (lambda ()
6899 (for-each
6900 display
6901 '("[Desktop Entry]\n"
6902 "Encoding=UTF-8\n"
6903 "Type=Application\n"
6904 "Name=Fail\n"
6905 "Comment=This session fails immediately.\n"
6906 "NoDisplay=true\n"
6907 "Exec=false\n"))))
6908 #t)))
69544798
TS
6909 ;; GDM needs GNOME Session to run these applications. We link
6910 ;; their autostart files in `share/gdm/greeter/autostart'
6911 ;; because GDM explicitly tells GNOME Session to look there.
6912 ;;
6913 ;; XXX: GNOME Shell should be linked here too, but currently
6914 ;; GNOME Shell depends on GDM.
6915 (add-after 'install 'link-autostart-files
6916 (lambda* (#:key inputs outputs #:allow-other-keys)
6917 (let* ((out (assoc-ref outputs "out"))
6918 (autostart (string-append out "/share/gdm/"
6919 "greeter/autostart"))
6920 (settings (assoc-ref inputs "gnome-settings-daemon")))
6921 (mkdir-p autostart)
6922 (with-directory-excursion autostart
6923 (for-each (lambda (desktop)
6924 (symlink desktop (basename desktop)))
6925 (find-files (string-append settings "/etc/xdg"))))
6926 #t))))))
df12f04a
SB
6927 (native-inputs
6928 `(("dconf" ,dconf)
6929 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6930 ("gobject-introspection" ,gobject-introspection)
6931 ("intltool" ,intltool)
6932 ("itstool" ,itstool)
6933 ("pkg-config" ,pkg-config)
6934 ("xmllint" ,libxml2)))
6935 (inputs
6936 `(("accountsservice" ,accountsservice)
6937 ("check" ,check) ; for testing
6938 ("elogind" ,elogind)
def6d6b6 6939 ("gnome-session" ,gnome-session)
69544798 6940 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6941 ("gtk+" ,gtk+)
6942 ("iso-codes" ,iso-codes)
6943 ("libcanberra" ,libcanberra)
6944 ("linux-pam" ,linux-pam)))
6945 (synopsis "Display manager for GNOME")
f032d0be 6946 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6947 (description
6948 "GNOME Display Manager is a system service that is responsible for
6949providing graphical log-ins and managing local and remote displays.")
6950 (license license:gpl2+)))
8e1dd04f
SB
6951
6952(define-public libgtop
6953 (package
6954 (name "libgtop")
015fc036 6955 (version "2.40.0")
8e1dd04f
SB
6956 (source (origin
6957 (method url-fetch)
59487fc2 6958 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 6959 (version-major+minor version) "/"
59487fc2 6960 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
6961 (sha256
6962 (base32
015fc036 6963 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
6964 (build-system gnu-build-system)
6965 (native-inputs
6966 `(("gobject-introspection" ,gobject-introspection)
6967 ("intltool" ,intltool)
6968 ("perl" ,perl)
6969 ("pkg-config" ,pkg-config)))
6970 (propagated-inputs
6971 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6972 (synopsis "Portable system access library")
6973 (home-page "https://www.gnome.org/")
6974 (description
6975 "LibGTop is a library to get system specific data such as CPU and memory
6976usage and information about running processes.")
6977 (license license:gpl2+)))
b96c4260
SB
6978
6979(define-public gnome-bluetooth
6980 (package
6981 (name "gnome-bluetooth")
e8f4bf6b 6982 (version "3.34.0")
b96c4260
SB
6983 (source (origin
6984 (method url-fetch)
6985 (uri (string-append "mirror://gnome/sources/" name "/"
6986 (version-major+minor version) "/"
6987 name "-" version ".tar.xz"))
6988 (sha256
6989 (base32
e8f4bf6b 6990 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
fd3b1171 6991 (build-system meson-build-system)
b96c4260
SB
6992 (native-inputs
6993 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 6994 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
6995 ("gobject-introspection" ,gobject-introspection)
6996 ("intltool" ,intltool)
6997 ("pkg-config" ,pkg-config)
6998 ("xmllint" ,libxml2)))
6999 (propagated-inputs
7000 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7001 `(("glib" ,glib)
7002 ("gtk+" ,gtk+)))
b96c4260 7003 (inputs
723afae6
KK
7004 `(("eudev" ,eudev)
7005 ("libcanberra" ,libcanberra)
b96c4260
SB
7006 ("libnotify" ,libnotify)))
7007 (synopsis "GNOME Bluetooth subsystem")
7008 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7009 (description
7010 "This package contains tools for managing and manipulating Bluetooth
7011devices using the GNOME desktop.")
7012 (license license:lgpl2.1+)))
b645146f
SB
7013
7014(define-public gnome-control-center
7015 (package
7016 (name "gnome-control-center")
c576328d 7017 (version "3.34.2")
b645146f
SB
7018 (source (origin
7019 (method url-fetch)
7020 (uri (string-append "mirror://gnome/sources/" name "/"
7021 (version-major+minor version) "/"
7022 name "-" version ".tar.xz"))
7023 (sha256
7024 (base32
c576328d 7025 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
59dac026 7026 (build-system meson-build-system)
b645146f 7027 (arguments
59dac026
RW
7028 '(#:glib-or-gtk? #t
7029 #:configure-flags
64c70430
KK
7030 (list "-Dcheese=false"
7031 (string-append "-Dgnome_session_libexecdir="
7032 (assoc-ref %build-inputs "gnome-session")
7033 "/libexec"))
59dac026 7034 #:phases
b645146f
SB
7035 (modify-phases %standard-phases
7036 (add-before 'configure 'patch-paths
7037 (lambda* (#:key inputs #:allow-other-keys)
7038 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7039 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7040 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7041 (nm-applet (assoc-ref inputs "network-manager-applet"))
7042 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7043 (substitute* "panels/datetime/tz.h"
7044 (("/usr/share/zoneinfo/zone.tab")
7045 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7046 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7047 (("/usr/share/locale")
7048 (string-append libc "/share/locale")))
1df38cfc
LC
7049 (substitute* "panels/region/cc-region-panel.c"
7050 (("\"gkbd-keyboard-display")
7051 (string-append "\"" libgnomekbd
7052 "/bin/gkbd-keyboard-display")))
341225ac
LC
7053 (substitute* '("panels/network/net-device-wifi.c"
7054 "panels/network/net-device.c"
7055 "panels/network/connection-editor/net-connection-editor.c")
7056 (("\"nm-connection-editor")
7057 (string-append "\"" nm-applet
7058 "/bin/nm-connection-editor")))
1acd107c
FP
7059 (substitute* '("panels/user-accounts/run-passwd.c")
7060 (("/usr/bin/passwd")
7061 "/run/setuid-programs/passwd"))
64c70430
KK
7062 (substitute* "panels/info/cc-info-overview-panel.c"
7063 (("DATADIR \"/gnome/gnome-version.xml\"")
7064 (string-append "\"" gnome-desktop
7065 "/share/gnome/gnome-version.xml\"")))
c576328d
KK
7066 #t)))
7067 (add-after 'unpack 'skip-gtk-update-icon-cache
7068 ;; Don't create 'icon-theme.cache'.
7069 (lambda _
7070 (substitute* "build-aux/meson/meson_post_install.py"
7071 (("gtk-update-icon-cache") (which "true")))
7072 #t)))))
b645146f
SB
7073 (native-inputs
7074 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7075 ("intltool" ,intltool)
7076 ("pkg-config" ,pkg-config)
a6938bac
KK
7077 ("xsltproc" ,libxslt)
7078 ;; For tests
7079 ("hicolor-icon-theme" ,hicolor-icon-theme)
7080 ("python-dbusmock" ,python-dbusmock)
7081 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7082 (inputs
7083 `(("accountsservice" ,accountsservice)
7084 ("clutter-gtk" ,clutter-gtk)
7085 ("colord-gtk" ,colord-gtk)
7086 ("cups" ,cups)
7087 ("dconf" ,dconf)
7088 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7089 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7090 ("gnome-bluetooth" ,gnome-bluetooth)
7091 ("gnome-desktop" ,gnome-desktop)
7092 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7093 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7094 ("gnome-session" ,gnome-session)
b645146f
SB
7095 ("gnome-settings-daemon" ,gnome-settings-daemon)
7096 ("grilo" ,grilo)
a6938bac 7097 ("gsound" ,gsound)
b645146f
SB
7098 ("ibus" ,ibus)
7099 ("libcanberra" ,libcanberra)
1df38cfc 7100 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7101 ("libgudev" ,libgudev)
7102 ("libgtop" ,libgtop)
7103 ("libpwquality" ,libpwquality)
982c0b36 7104 ("libsecret" ,libsecret)
b645146f
SB
7105 ("libsoup" ,libsoup)
7106 ("libxml2" ,libxml2)
7107 ("libwacom" ,libwacom)
7108 ("mesa" ,mesa)
7109 ("mit-krb5" ,mit-krb5)
7110 ("modem-manager" ,modem-manager)
7111 ("network-manager-applet" ,network-manager-applet)
7112 ("polkit" ,polkit)
7113 ("pulseaudio" ,pulseaudio)
7114 ("smbclient" ,samba)
7115 ("tzdata" ,tzdata)
982c0b36 7116 ("udisks" ,udisks)
b645146f
SB
7117 ("upower" ,upower)))
7118 (synopsis "Utilities to configure the GNOME desktop")
7119 (home-page "https://www.gnome.org/")
7120 (description
7121 "This package contains configuration applets for the GNOME desktop,
7122allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7123properties, sound setup, desktop theme and background, user interface
7124properties, screen resolution, and other GNOME parameters.")
7125 (license license:gpl2+)))
a4df5756
SB
7126
7127(define-public gnome-shell
7128 (package
7129 (name "gnome-shell")
28457ae6 7130 (version "3.34.2")
a4df5756
SB
7131 (source (origin
7132 (method url-fetch)
7133 (uri (string-append "mirror://gnome/sources/" name "/"
7134 (version-major+minor version) "/"
7135 name "-" version ".tar.xz"))
7136 (sha256
7137 (base32
28457ae6
KK
7138 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7139 (patches (search-patches "gnome-shell-theme.patch"
7140 "gnome-shell-disable-test.patch"))
a76d0f03
LC
7141 (modules '((guix build utils)))
7142 (snippet
7143 #~(begin
a76d0f03
LC
7144 ;; Copy images for use on the GDM log-in screen.
7145 (copy-file #$(file-append %artwork-repository
7146 "/slim/0.x/background.png")
7147 "data/theme/guix-background.png")
45fef894
LC
7148 (copy-file #$(file-append %artwork-repository
7149 "/logo/Guix-horizontal-white.svg")
7150 "data/theme/guix-logo.svg")
a76d0f03 7151 #t))))
2b0c755d 7152 (build-system meson-build-system)
a4df5756 7153 (arguments
08185081
MB
7154 `(#:glib-or-gtk? #t
7155 #:disallowed-references ((,glib "bin")
11e1df56
LC
7156 ,inkscape ,libxslt
7157 ,ruby-sass)
2b0c755d
RW
7158 #:configure-flags
7159 (list "-Dsystemd=false"
7160 ;; Otherwise, the RUNPATH will lack the final path component.
7161 (string-append "-Dc_link_args=-Wl,-rpath="
7162 (assoc-ref %outputs "out")
7163 "/lib/gnome-shell"))
11e1df56 7164
08185081 7165 #:modules ((guix build meson-build-system)
11e1df56
LC
7166 (guix build utils)
7167 (srfi srfi-1))
7168
2b0c755d 7169 #:phases
a4df5756 7170 (modify-phases %standard-phases
2b0c755d 7171 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7172 (lambda* (#:key outputs #:allow-other-keys)
7173 (let* ((out (assoc-ref outputs "out"))
7174 (keysdir (string-append
7175 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7176 (substitute* "meson.build"
7177 (("keysdir =.*")
7178 (string-append "keysdir = '" keysdir "'\n")))
7179 #t)))
ebfe259f
MB
7180 (add-before 'configure 'convert-logo-to-png
7181 (lambda* (#:key inputs #:allow-other-keys)
7182 ;; Convert the logo from SVG to PNG.
7183 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7184 "data/theme/guix-logo.svg")))
ba00235a 7185 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7186 (lambda* (#:key inputs #:allow-other-keys)
7187 (substitute* "js/misc/ibusManager.js"
7188 (("'ibus-daemon'")
7189 (string-append "'" (assoc-ref inputs "ibus")
7190 "/bin/ibus-daemon'")))
d6fda4d3
LC
7191 (substitute* "js/ui/status/keyboard.js"
7192 (("'gkbd-keyboard-display'")
7193 (string-append "'" (assoc-ref inputs "libgnomekbd")
7194 "/bin/gkbd-keyboard-display'")))
2472cdec 7195 #t))
2b0c755d
RW
7196 (add-before 'check 'pre-check
7197 (lambda* (#:key inputs #:allow-other-keys)
7198 ;; Tests require a running X server.
7199 (system "Xvfb :1 &")
7200 (setenv "DISPLAY" ":1")
7201 #t))
7202 (add-after 'install 'wrap-programs
7203 (lambda* (#:key inputs outputs #:allow-other-keys)
7204 (let ((out (assoc-ref outputs "out"))
7205 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7206 (python-path (getenv "PYTHONPATH")))
7207 (wrap-program (string-append out "/bin/gnome-shell")
7208 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7209 ;; FIXME: gnome-shell loads these libraries with unqualified
7210 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7211 ;; alternative might be to patch gnome-shell.
7212 `("LD_LIBRARY_PATH" ":" prefix
7213 ,(map (lambda (pkg)
7214 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7215 '("gdk-pixbuf"
7216 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7217 (for-each
7218 (lambda (prog)
7219 (wrap-program (string-append out "/bin/" prog)
7220 `("PYTHONPATH" ":" prefix (,python-path))
7221 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7222 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7223 #t)))
11e1df56
LC
7224 (replace 'glib-or-gtk-wrap
7225 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7226 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7227 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7228 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7229 ;; phase. Fix that since we don't need these.
7230 (wrap #:inputs (fold alist-delete inputs
7231 '("inkscape" "intltool" "glib:bin"))
7232 #:outputs outputs)))))))
a4df5756 7233 (native-inputs
28457ae6
KK
7234 `(("asciidoc" ,asciidoc)
7235 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7236 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7237 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7238 ("inkscape" ,inkscape)
a4df5756
SB
7239 ("intltool" ,intltool)
7240 ("pkg-config" ,pkg-config)
7241 ("python" ,python)
2b0c755d
RW
7242 ("ruby-sass" ,ruby-sass)
7243 ("sassc" ,sassc)
a76d0f03 7244 ("xsltproc" ,libxslt)
2b0c755d 7245 ;; For tests
0b4504f6 7246 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7247 (inputs
7248 `(("accountsservice" ,accountsservice)
7249 ("caribou" ,caribou)
7250 ("docbook-xsl" ,docbook-xsl)
7251 ("evolution-data-server" ,evolution-data-server)
7252 ("gcr" ,gcr)
7253 ("gdm" ,gdm)
c5db31d4 7254 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756 7255 ("gjs" ,gjs)
28457ae6 7256 ("gnome-autoar" ,gnome-autoar)
a4df5756 7257 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7258 ("gnome-desktop" ,gnome-desktop)
7259 ("gnome-settings-daemon" ,gnome-settings-daemon)
7260 ("gst-plugins-base" ,gst-plugins-base)
7261 ("ibus" ,ibus)
7262 ("libcanberra" ,libcanberra)
7263 ("libcroco" ,libcroco)
d6fda4d3 7264 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
7265 ("libgweather" ,libgweather)
7266 ("libsoup" ,libsoup)
7267 ("mesa-headers" ,mesa-headers)
7268 ("mutter" ,mutter)
7269 ("network-manager-applet" ,network-manager-applet)
7270 ("polkit" ,polkit)
7271 ("pulseaudio" ,pulseaudio)
7272 ("python-pygobject" ,python-pygobject)
7273 ("startup-notification" ,startup-notification)
7274 ("telepathy-logger" ,telepathy-logger)
7275 ("upower" ,upower)
30e760f0
MB
7276 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7277 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7278 ("librsvg" ,librsvg)
2b0c755d 7279 ("geoclue" ,geoclue)))
a4df5756
SB
7280 (synopsis "Desktop shell for GNOME")
7281 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7282 (description
7283 "GNOME Shell provides core user interface functions for the GNOME desktop,
7284like switching to windows and launching applications.")
7285 (license license:gpl2+)))
c3f29bc9
RS
7286
7287(define-public gtk-vnc
7288 (package
7289 (name "gtk-vnc")
965ff023 7290 (version "0.9.0")
c3f29bc9
RS
7291 (source
7292 (origin
7293 (method url-fetch)
7294 (uri (string-append "mirror://gnome/sources/" name "/"
7295 (version-major+minor version) "/"
7296 name "-" version ".tar.xz"))
7297 (sha256
7298 (base32
965ff023 7299 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7300 (build-system gnu-build-system)
7301 (arguments
7302 '(#:configure-flags '("--with-gtk=3.0")))
7303 (propagated-inputs
7304 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7305 (inputs
7306 `(("cyrus-sasl" ,cyrus-sasl)
7307 ("gnutls" ,gnutls)
7308 ("libgcrypt" ,libgcrypt)
7309 ("pulseaudio" ,pulseaudio)))
7310 (native-inputs
7311 `(("glib:bin" ,glib "bin")
7312 ("gobject-introspection" ,gobject-introspection)
7313 ("intltool" ,intltool)
7314 ("pkg-config" ,pkg-config)
2f17e939 7315 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7316 ("vala" ,vala)))
7317 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7318 (synopsis "VNC viewer widget for GTK+")
7319 (description
7320 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7321applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7322GTK-VNC implements client side RFB protocol and authentication extensions such
7323as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7324 (license license:lgpl2.1+)))
8b877545 7325
dc69fe18
MW
7326(define-public gnome-autoar
7327 (package
7328 (name "gnome-autoar")
17969940 7329 (version "0.2.4")
dc69fe18
MW
7330 (source (origin
7331 (method url-fetch)
7332 (uri (string-append "mirror://gnome/sources/" name "/"
7333 (version-major+minor version) "/"
7334 name "-" version ".tar.xz"))
7335 (sha256
7336 (base32
17969940 7337 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
dc69fe18
MW
7338 (build-system glib-or-gtk-build-system)
7339 (native-inputs
17969940 7340 `(("gobject-introspection" ,gobject-introspection)
dc69fe18
MW
7341 ("pkg-config" ,pkg-config)))
7342 (propagated-inputs
17969940 7343 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
dc69fe18 7344 (inputs
0a6e9e13 7345 `(("gtk+" ,gtk+)))
dc69fe18
MW
7346 (synopsis "Archives integration support for GNOME")
7347 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7348 (description
7349 "GNOME Autoar is a library which makes creating and extracting archives
7350easy, safe, and automatic.")
7351 (license license:lgpl2.1+)))
7352
b64e217f
MW
7353(define-public tracker
7354 (package
7355 (name "tracker")
caaefa40 7356 (version "2.3.4")
b64e217f
MW
7357 (source (origin
7358 (method url-fetch)
b5b0fd23 7359 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7360 (version-major+minor version) "/"
b5b0fd23 7361 "tracker-" version ".tar.xz"))
b64e217f
MW
7362 (sha256
7363 (base32
caaefa40 7364 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
5ada561c 7365 (build-system meson-build-system)
c8bdf589 7366 (arguments
5ada561c
KK
7367 `(#:glib-or-gtk? #t
7368 #:configure-flags
7369 ;; Otherwise, the RUNPATH will lack the final path component.
7370 (list (string-append "-Dc_link_args=-Wl,-rpath="
7371 (assoc-ref %outputs "out") "/lib:"
7372 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7373 #:phases
c8bdf589 7374 (modify-phases %standard-phases
c8bdf589
RW
7375 (add-before 'check 'pre-check
7376 (lambda _
63db190a
PN
7377 ;; Some tests expect to write to $HOME.
7378 (setenv "HOME" "/tmp")
c8bdf589 7379 #t)))))
b64e217f 7380 (native-inputs
5ada561c 7381 `(("glib:bin" ,glib "bin")
b64e217f 7382 ("gobject-introspection" ,gobject-introspection)
5ada561c 7383 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7384 ("intltool" ,intltool)
7385 ("pkg-config" ,pkg-config)
7386 ("vala" ,vala)))
7387 (inputs
63db190a 7388 `(("dbus" ,dbus)
44ed6284 7389 ("sqlite" ,sqlite)
b64e217f 7390 ("libxml2" ,libxml2)
63db190a 7391 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 7392 ("json-glib" ,json-glib)
63db190a 7393 ("libsoup" ,libsoup)))
b64e217f
MW
7394 (synopsis "Metadata database, indexer and search tool")
7395 (home-page "https://wiki.gnome.org/Projects/Tracker")
7396 (description
63db190a
PN
7397 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7398
7399It is a middleware component aimed at desktop application developers who want
7400their apps to browse and search user content. It's not designed to be used
7401directly by desktop users, but it provides a commandline tool named
7402@command{tracker} for the adventurous.
7403
7404Tracker allows your application to instantly perform full-text searches across
7405all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7406example. This is achieved by indexing the user's home directory in the
7407background.
7408
7409Tracker also allows your application to query and list content that the user
7410has stored. For example, GNOME Music displays all the music files that are
7411found by Tracker. This means that GNOME Music doesn't need to maintain a
7412database of its own.
7413
7414If you need to go beyond simple searches, Tracker is also a linked data
7415endpoint and it understands SPARQL. ")
7416 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 7417 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 7418 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 7419 (license (list license:gpl2+
63db190a
PN
7420 license:bsd-3
7421 license:lgpl2.1+))))
b64e217f 7422
03be9874
KK
7423(define-public tracker-miners
7424 (package
7425 (name "tracker-miners")
de60ac2f 7426 (version "2.3.3")
03be9874
KK
7427 (source (origin
7428 (method url-fetch)
7429 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7430 (version-major+minor version)
7431 "/tracker-miners-" version ".tar.xz"))
7432 (sha256
7433 (base32
de60ac2f 7434 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
03be9874
KK
7435 (build-system meson-build-system)
7436 (arguments
7437 `(#:glib-or-gtk? #t
7438 #:configure-flags
7439 (list "-Dminer_rss=false" ; libgrss is required.
7440 ;; Ensure the RUNPATH contains all installed library locations.
7441 (string-append "-Dc_link_args=-Wl,-rpath="
7442 (assoc-ref %outputs "out")
7443 "/lib/tracker-miners-2.0")
7444 ;; TODO: Enable functional tests. Currently, the following error
7445 ;; appears:
7446 ;; Exception: The functional tests require DConf to be the default
7447 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7448 "-Dfunctional_tests=false")))
7449 (native-inputs
7450 `(("dbus" ,dbus)
7451 ("intltool" ,intltool)
7452 ("glib:bin" ,glib "bin")
7453 ("gobject-introspection" ,gobject-introspection)
7454 ("pkg-config" ,pkg-config)
7455 ("python-pygobject" ,python-pygobject)))
7456 (inputs
7457 `(("exempi" ,exempi)
7458 ("ffmpeg" ,ffmpeg)
7459 ("flac" ,flac)
7460 ("giflib" ,giflib)
7461 ("glib" ,glib)
7462 ("gstreamer" ,gstreamer)
7463 ("icu4c" ,icu4c)
7464 ("libcue" ,libcue)
7465 ("libexif" ,libexif)
7466 ("libgsf" ,libgsf)
7467 ("libgxps" ,libgxps)
7468 ("libiptcdata" ,libiptcdata)
4bd428a7 7469 ("libjpeg" ,libjpeg-turbo)
03be9874
KK
7470 ("libosinfo" ,libosinfo)
7471 ("libpng" ,libpng)
7472 ("libseccomp" ,libseccomp)
7473 ("libtiff" ,libtiff)
7474 ("libvorbis" ,libvorbis)
7475 ("libxml2" ,libxml2)
7476 ("poppler" ,poppler)
7477 ("taglib" ,taglib)
7478 ("totem-pl-parser" ,totem-pl-parser)
7479 ("tracker" ,tracker)
7480 ("upower" ,upower)
7481 ("zlib" ,zlib)))
b64e217f
MW
7482 (synopsis "Metadata database, indexer and search tool")
7483 (home-page "https://wiki.gnome.org/Projects/Tracker")
7484 (description
7485 "Tracker is an advanced framework for first class objects with associated
7486metadata and tags. It provides a one stop solution for all metadata, tags,
7487shared object databases, search tools and indexing.")
7488 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7489 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7490 (license (list license:gpl2+
7491 license:lgpl2.1+
7492 license:lgpl2.0+))))
7493
8b877545
RS
7494(define-public nautilus
7495 (package
7496 (name "nautilus")
8069ff0b 7497 (version "3.34.2")
8b877545
RS
7498 (source (origin
7499 (method url-fetch)
7500 (uri (string-append "mirror://gnome/sources/" name "/"
7501 (version-major+minor version) "/"
7502 name "-" version ".tar.xz"))
7503 (sha256
7504 (base32
8069ff0b 7505 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
35e2d0cf 7506 (build-system meson-build-system)
8b877545 7507 (arguments
35e2d0cf 7508 '(#:glib-or-gtk? #t
8069ff0b
KK
7509 #:phases
7510 (modify-phases %standard-phases
7511 (add-after 'unpack 'skip-gtk-update-icon-cache
7512 ;; Don't create 'icon-theme.cache'.
7513 (lambda _
7514 (substitute* "build-aux/meson/postinstall.py"
7515 (("gtk-update-icon-cache") "true"))
7516 #t)))
8b877545
RS
7517 ;; XXX: FAIL: check-nautilus
7518 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7519 #:tests? #f))
7520 (native-inputs
35e2d0cf
R
7521 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7522 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8b877545
RS
7523 ("gobject-introspection" ,gobject-introspection)
7524 ("intltool" ,intltool)
7525 ("pkg-config" ,pkg-config)))
8b877545 7526 (inputs
8b877545 7527 `(("dconf" ,dconf)
caf6c363 7528 ("gexiv2" ,gexiv2)
dd05e731 7529 ("gvfs" ,gvfs)
8b877545
RS
7530 ("exempi" ,exempi)
7531 ("gnome-desktop" ,gnome-desktop)
09d88905 7532 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7533 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7534 ("libseccomp" ,libseccomp)
35e2d0cf 7535 ("libselinux" ,libselinux)
09d88905 7536 ("tracker" ,tracker)
3cafb9d4 7537 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7538 ;; XXX: gtk+ is required by libnautilus-extension.pc
7539 ;;
7540 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7541 ;; package. See:
7542 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7543 ("gtk+" ,gtk+)
8b877545
RS
7544 ("libexif" ,libexif)
7545 ("libxml2" ,libxml2)))
7546 (synopsis "File manager for GNOME")
7547 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7548 (description
7549 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7550design and behaviour, giving the user a simple way to navigate and manage its
7551files.")
7552 (license license:gpl2+)))
3c697ffd
JR
7553
7554(define-public baobab
7555 (package
7556 (name "baobab")
e0c5f20c 7557 (version "3.32.0")
3c697ffd
JR
7558 (source (origin
7559 (method url-fetch)
7560 (uri (string-append
7561 "mirror://gnome/sources/" name "/"
7562 (version-major+minor version) "/"
7563 name "-" version ".tar.xz"))
7564 (sha256
7565 (base32
e0c5f20c 7566 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7567 (build-system meson-build-system)
7568 (arguments
7569 '(#:glib-or-gtk? #t))
3c697ffd
JR
7570 (native-inputs
7571 `(("intltool" ,intltool)
7572 ("pkg-config" ,pkg-config)
d233d373
RJ
7573 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7574 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7575 ("itstool" ,itstool)
7576 ("xmllint" ,libxml2)
7577 ("glib" ,glib "bin")
7578 ("vala" ,vala)))
7579 (inputs
7580 `(("gtk+" ,gtk+)))
7581 (synopsis "Disk usage analyzer for GNOME")
7582 (description
7583 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7584usage in the GNOME desktop environment. It can easily scan device volumes or
7585a specific user-requested directory branch (local or remote). Once the scan
7586is complete it provides a graphical representation of each selected folder.")
7587 (home-page "https://wiki.gnome.org/Apps/Baobab")
7588 (license license:gpl2+)))
dc050251 7589
fdba447c
RS
7590(define-public gnome-backgrounds
7591 (package
7592 (name "gnome-backgrounds")
0856b0d9 7593 (version "3.34.0")
fdba447c
RS
7594 (source
7595 (origin
7596 (method url-fetch)
7597 (uri (string-append "mirror://gnome/sources/" name "/"
7598 (version-major+minor version) "/"
7599 name "-" version ".tar.xz"))
7600 (sha256
7601 (base32
0856b0d9 7602 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
9ca381f0 7603 (build-system meson-build-system)
fdba447c
RS
7604 (native-inputs
7605 `(("intltool" ,intltool)))
e04e8a8c 7606 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7607 (synopsis "Background images for the GNOME desktop")
7608 (description
7609 "GNOME backgrounds package contains a collection of graphics files which
7610can be used as backgrounds in the GNOME Desktop environment. Additionally,
7611the package creates the proper framework and directory structure so that you
7612can add your own files to the collection.")
7613 (license (list license:gpl2+
7614 license:cc-by2.0
7615 license:cc-by-sa2.0
7616 license:cc-by-sa3.0))))
7617
b784b1a9
RS
7618(define-public gnome-screenshot
7619 (package
7620 (name "gnome-screenshot")
d5101dab 7621 (version "3.34.0")
b784b1a9
RS
7622 (source
7623 (origin
7624 (method url-fetch)
7625 (uri (string-append "mirror://gnome/sources/" name "/"
7626 (version-major+minor version) "/"
7627 name "-" version ".tar.xz"))
7628 (sha256
7629 (base32
d5101dab 7630 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8356aefa 7631 (build-system meson-build-system)
d5101dab
KK
7632 (arguments
7633 '(#:phases
7634 (modify-phases %standard-phases
7635 (add-after 'unpack 'skip-gtk-update-icon-cache
7636 ;; Don't create 'icon-theme.cache'.
7637 (lambda _
7638 (substitute* "build-aux/postinstall.py"
7639 (("gtk-update-icon-cache") "true"))
7640 #t)))))
b784b1a9
RS
7641 (native-inputs
7642 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa 7643 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7644 ("intltool" ,intltool)
8356aefa 7645 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7646 ("pkg-config" ,pkg-config)))
7647 (inputs
7648 `(("gtk+" ,gtk+)
7649 ("libcanberra" ,libcanberra)
7650 ("libx11" ,libx11)
7651 ("libxext" ,libxext)))
676e7cb4 7652 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7653 (synopsis "Take pictures of your screen")
7654 (description
7655 "GNOME Screenshot is a utility used for taking screenshots of the entire
7656screen, a window or a user defined area of the screen, with optional
7657beautifying border effects.")
7658 (license license:gpl2+)))
7659
66d59111
RS
7660(define-public dconf-editor
7661 (package
7662 (name "dconf-editor")
720aa20f 7663 (version "3.34.2")
66d59111
RS
7664 (source
7665 (origin
7666 (method url-fetch)
7667 (uri (string-append "mirror://gnome/sources/" name "/"
7668 (version-major+minor version) "/"
7669 name "-" version ".tar.xz"))
7670 (sha256
7671 (base32
720aa20f 7672 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
294ff39d 7673 (build-system meson-build-system)
66d59111
RS
7674 (native-inputs
7675 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7676 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7677 ("intltool" ,intltool)
294ff39d
RW
7678 ("pkg-config" ,pkg-config)
7679 ("vala" ,vala)))
66d59111
RS
7680 (inputs
7681 `(("dconf" ,dconf)
7682 ("gtk+" ,gtk+)
7683 ("libxml2" ,libxml2)))
720aa20f 7684 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
66d59111
RS
7685 (synopsis "Graphical editor for GNOME's dconf configuration system")
7686 (description
7687 "Dconf-editor is a graphical tool for browsing and editing the dconf
7688configuration system for GNOME. It allows users to configure desktop
7689software that do not provide their own configuration interface.")
7690 (license license:lgpl2.1+)))
7691
96d36f38
AW
7692(define-public gnome-default-applications
7693 (package
7694 (name "gnome-default-applications")
7695 (version "0")
7696 (build-system trivial-build-system)
7697 (source #f)
7698 (propagated-inputs
8ad4f0aa
LC
7699 `(("nautilus" ,nautilus)
7700 ("evince" ,evince)))
96d36f38
AW
7701 (arguments
7702 `(#:modules ((guix build utils))
7703 #:builder
7704 (begin
7705 (use-modules (guix build utils))
7706 (let* ((out (assoc-ref %outputs "out"))
7707 (apps (string-append out "/share/applications")))
7708 (mkdir-p apps)
a6ac679f 7709 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
96d36f38
AW
7710 (lambda (port)
7711 (format port "[Default Applications]\n")
8ad4f0aa
LC
7712 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7713 (format port "application/pdf=evince.desktop\n")
7714 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7715 #t))))
7716 (synopsis "Default MIME type associations for the GNOME desktop")
7717 (description
7718 "Given many installed packages which might handle a given MIME type, a
7719user running the GNOME desktop probably has some preferences: for example,
7720that folders be opened by default by the Nautilus file manager, not the Baobab
7721disk usage analyzer. This package establishes that set of default MIME type
7722associations for GNOME.")
7723 (license license:gpl3+)
7724 (home-page #f)))
7725
3f1ed953
RG
7726(define-public libgovirt
7727 (package
7728 (name "libgovirt")
7729 (version "0.3.6")
7730 (source (origin
7731 (method url-fetch)
7732 (uri (string-append "mirror://gnome/sources/" name "/"
7733 (version-major+minor version) "/"
7734 name "-" version ".tar.xz"))
7735 (sha256
7736 (base32
7737 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7738 (build-system glib-or-gtk-build-system)
7739 (native-inputs
7740 `(("gettext" ,gettext-minimal)
7741 ("glib:bin" ,glib "bin")
7742 ("gobject-introspection" ,gobject-introspection)
7743 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7744 ("gtk+:bin" ,gtk+ "bin")
7745 ("pkg-config" ,pkg-config)))
7746 (inputs
7747 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7748 ("librest" ,rest)))
7749 (synopsis "GoVirt Library")
7750 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7751 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7752 (license license:gpl2+)))
7753
8672e5e9
RG
7754(define-public gnome-weather
7755 (package
7756 (name "gnome-weather")
7757 (version "3.34.0")
7758 (source (origin
7759 (method url-fetch)
7760 (uri (string-append "mirror://gnome/sources/" name "/"
7761 (version-major+minor version) "/"
7762 name "-" version ".tar.xz"))
7763 (sha256
7764 (base32
7765 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7766 (build-system meson-build-system)
7767 (native-inputs
7768 `(("gettext" ,gettext-minimal)
7769 ("glib:bin" ,glib "bin")
7770 ("gobject-introspection" ,gobject-introspection)
7771 ("gtk+:bin" ,gtk+ "bin")
7772 ("pkg-config" ,pkg-config)))
7773 (inputs
7774 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7775 ("appstream-glib" ,appstream-glib)
7776 ("geoclue" ,geoclue)
7777 ("gdk-pixbuf" ,gdk-pixbuf)
7778 ("gjs" ,gjs)
7779 ("gnome-desktop" ,gnome-desktop)
7780 ("libgweather" ,libgweather)))
4391fefc 7781 (arguments
2b68ba72
MB
7782 `(#:glib-or-gtk? #t
7783 #:phases
4391fefc
PN
7784 (modify-phases %standard-phases
7785 (add-after 'install 'fix-desktop-file
7786 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7787 ;; See https://issues.guix.gnu.org/issue/39324.
7788 (lambda* (#:key outputs #:allow-other-keys)
7789 (let* ((out (assoc-ref outputs "out"))
7790 (applications (string-append out "/share/applications")))
7791 (substitute* (string-append applications "/org.gnome.Weather.desktop")
2b68ba72
MB
7792 (("Exec=.*") "Exec=gnome-weather\n"))
7793 #t)))
7794 (add-after 'install 'wrap
7795 (lambda* (#:key inputs outputs #:allow-other-keys)
7796 (let ((out (assoc-ref outputs "out"))
7797 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7798 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7799 (wrap-program (string-append out "/bin/gnome-weather")
7800 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7801 #t))))))
8672e5e9
RG
7802 (synopsis "Weather monitoring for GNOME desktop")
7803 (description "GNOME Weather is a small application that allows you to
7804monitor the current weather conditions for your city, or anywhere in the
7805world.")
7806 (home-page "https://wiki.gnome.org/Apps/Weather")
7807 (license license:gpl2+)))
7808
dc050251
SB
7809(define-public gnome
7810 (package
7811 (name "gnome")
7812 (version (package-version gnome-shell))
7813 (source #f)
7814 (build-system trivial-build-system)
e3cfef22 7815 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7816 (propagated-inputs
8d8c6bff 7817 ;; TODO: Add or remove packages according to:
a8cda7f5 7818 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7819 `(
8d8c6bff 7820 ;; GNOME-Core-OS-Services
7922b6f7 7821 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7822 ("network-manager" ,network-manager)
7823 ("packagekit" ,packagekit)
7824 ("upower" ,upower)
7825 ;; GNOME-Core-Shell
7826 ("adwaita-icon-theme" ,adwaita-icon-theme)
7827 ("gdm" ,gdm)
7828 ("glib-networking" ,glib-networking)
7829 ("gnome-backgrounds" ,gnome-backgrounds)
7830 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7831 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
7832 ("gnome-control-center" ,gnome-control-center)
7833 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7834 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
d36fa50f 7835 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 7836 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7837 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7838 ("gnome-session" ,gnome-session)
7839 ("gnome-settings-daemon" ,gnome-settings-daemon)
7840 ("gnome-shell-extensions" ,gnome-shell-extensions)
7841 ("gnome-shell" ,gnome-shell)
7842 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7843 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 7844 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 7845 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7846 ("gvfs" ,gvfs)
7847 ("mutter" ,mutter)
7848 ("orca" ,orca)
d36fa50f
RG
7849 ("rygel" ,rygel)
7850 ("sushi" ,sushi)
8d8c6bff
RG
7851 ;; GNOME-Core-Utilities
7852 ("baobab" ,baobab)
7853 ("cheese" ,cheese)
ce784e6c
MB
7854 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
7855 ;; only works on x86_64, so exclude it on other architectures.
7856 ,@(if (string-prefix? "x86_64" (%current-system))
7857 `(("eog" ,eog))
7858 '())
8d8c6bff
RG
7859 ("epiphany" ,epiphany)
7860 ("evince" ,evince)
7861 ("file-roller" ,file-roller)
7862 ("gedit" ,gedit)
d36fa50f 7863 ; TODO: ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
7864 ("gnome-calculator" ,gnome-calculator)
7865 ("gnome-calendar" ,gnome-calendar)
7866 ("gnome-characters" ,gnome-characters)
7867 ("gnome-clocks" ,gnome-clocks)
7868 ("gnome-contacts" ,gnome-contacts)
7869 ("gnome-disk-utility" ,gnome-disk-utility)
7870 ("gnome-font-viewer" ,gnome-font-viewer)
7871 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
7872 ; TODO: ("gnome-music" ,gnome-music)
7873 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
7874 ("gnome-screenshot" ,gnome-screenshot)
7875 ("gnome-system-monitor" ,gnome-system-monitor)
7876 ("gnome-terminal" ,gnome-terminal)
d36fa50f 7877 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
7878 ("nautilus" ,nautilus)
7879 ("simple-scan" ,simple-scan)
7880 ("totem" ,totem)
7922b6f7
RG
7881 ("yelp" ,yelp)
7882 ;; Others
7883 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
7884 ("gnome-online-accounts" ,gnome-online-accounts)
7885
7886 ;; Packages not part of GNOME proper but that are needed for a good
7887 ;; experience. See <https://bugs.gnu.org/39646>.
7888 ;; XXX: Find out exactly which ones are needed and why.
7889 ("font-cantarell" ,font-cantarell)
7890 ("font-dejavu" ,font-dejavu)
7891 ("at-spi2-core" ,at-spi2-core)
7892 ("dbus" ,dbus)
7893 ("dconf" ,dconf)
7894 ("desktop-file-utils" ,desktop-file-utils)
7895 ("gnome-default-applications" ,gnome-default-applications)
7896 ("gnome-themes-standard" ,gnome-themes-standard)
7897 ("gst-plugins-base" ,gst-plugins-base)
7898 ("gst-plugins-good" ,gst-plugins-good)
7899 ("gucharmap" ,gucharmap)
7900 ("pinentry-gnome3" ,pinentry-gnome3)
7901 ("pulseaudio" ,pulseaudio)
7902 ("shared-mime-info" ,shared-mime-info)
7903 ("system-config-printer" ,system-config-printer)
7904 ("xdg-user-dirs" ,xdg-user-dirs)
7905 ("yelp" ,yelp)
7906 ("zenity" ,zenity)))
fe4e698d 7907 (synopsis "The GNU desktop environment")
dc050251
SB
7908 (home-page "https://www.gnome.org/")
7909 (description
fe4e698d
LC
7910 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7911applications for browsing the web, editing text and images, creating
7912documents and diagrams, playing media, scanning, and much more.")
dc050251 7913 (license license:gpl2+)))
4a526711
DT
7914
7915(define-public byzanz
7916 ;; The last stable release of Byzanz was in 2011, but there have been many
7917 ;; useful commits made to the Byzanz repository since then that it would be
7918 ;; silly to use such an old release.
7919 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7920 (package
7921 (name "byzanz")
7922 (version (string-append "0.2-1." (string-take commit 7)))
7923 (source (origin
7924 (method git-fetch)
7925 (uri (git-reference
5f13bf09 7926 (url "https://git.gnome.org/browse/byzanz")
4a526711 7927 (commit commit)))
5a6527e4 7928 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7929 (sha256
7930 (base32
7931 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7932 (build-system glib-or-gtk-build-system)
7933 (arguments
7934 '(#:phases
7935 (modify-phases %standard-phases
778d6b52 7936 (add-before 'bootstrap 'build-without-Werror
4a526711
DT
7937 (lambda _
7938 ;; The build system cleverly detects that we're not building from
7939 ;; a release tarball and turns on -Werror for GCC.
7940 ;; Unsurprisingly, there is a warning during compilation that
7941 ;; causes the build to fail unnecessarily, so we remove the flag.
7942 (substitute* '("configure.ac")
7943 (("-Werror") ""))
778d6b52 7944 #t)))))
4a526711
DT
7945 (native-inputs
7946 `(("autoconf" ,autoconf)
7947 ("automake" ,automake)
7948 ("gnome-common" ,gnome-common)
7949 ("intltool" ,intltool)
7950 ("libtool" ,libtool)
7951 ("pkg-config" ,pkg-config)
7952 ("which" ,which)))
7953 (inputs
7954 `(("glib" ,glib)
7955 ("gstreamer" ,gstreamer)
7956 ("gst-plugins-base" ,gst-plugins-base)
7957 ("gtk+" ,gtk+)))
7958 (synopsis "Desktop recording program")
7959 (description "Byzanz is a simple desktop recording program with a
7960command-line interface. It can record part or all of an X display for a
7961specified duration and save it as a GIF encoded animated image file.")
7962 (home-page "https://git.gnome.org/browse/byzanz")
7963 (license license:gpl2+))))
3a9a4c51 7964
0ec171ec
MS
7965(define-public gsound
7966 (package
7967 (name "gsound")
7968 (version "1.0.2")
7969 (source (origin
7970 (method url-fetch)
7971 (uri (string-append "mirror://gnome/sources/" name "/"
7972 (version-major+minor version) "/"
7973 name "-" version ".tar.xz"))
7974 (sha256
7975 (base32
7976 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7977 (build-system glib-or-gtk-build-system)
7978 (native-inputs
7979 `(("pkg-config" ,pkg-config)
7980 ("gobject-introspection" ,gobject-introspection)
7981 ("vala" ,vala)))
7982 (inputs
7983 `(("glib" ,glib)
7984 ("libcanberra" ,libcanberra)))
7985 (home-page "https://wiki.gnome.org/Projects/GSound")
7986 (synopsis "GObject wrapper for libcanberra")
7987 (description
7988 "GSound is a small library for playing system sounds. It's designed to be
7989used via GObject Introspection, and is a thin wrapper around the libcanberra C
7990library.")
7991 (license license:lgpl2.1+)))
7992
3a9a4c51
RS
7993(define-public libzapojit
7994 (package
7995 (name "libzapojit")
7996 (version "0.0.3")
7997 (source (origin
7998 (method url-fetch)
7999 (uri (string-append "mirror://gnome/sources/" name "/"
8000 (version-major+minor version) "/"
8001 name "-" version ".tar.xz"))
8002 (sha256
8003 (base32
8004 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8005 (build-system gnu-build-system)
8006 (native-inputs
8007 `(("gobject-introspection" ,gobject-introspection)
8008 ("intltool" ,intltool)
8009 ("pkg-config" ,pkg-config)))
8010 (inputs
14c297fd 8011 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8012 ("json-glib" ,json-glib)
8013 ("rest" ,rest)))
8014 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8015 (synopsis "Library for accessing SkyDrive and Hotmail")
8016 (description
8017 "Libzapojit is a GLib-based library for accessing online service APIs of
8018Microsoft SkyDrive and Hotmail, using their REST protocols.")
8019 (license license:lgpl2.1+)))
9365ee1c 8020
60e2a9ae
MS
8021(define-public gnome-clocks
8022 (package
8023 (name "gnome-clocks")
feee5ff5 8024 (version "3.34.0")
60e2a9ae
MS
8025 (source (origin
8026 (method url-fetch)
8027 (uri (string-append "mirror://gnome/sources/" name "/"
8028 (version-major+minor version) "/"
8029 name "-" version ".tar.xz"))
8030 (sha256
8031 (base32
feee5ff5 8032 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
60e2a9ae
MS
8033 (build-system meson-build-system)
8034 (arguments
feee5ff5
KK
8035 '(#:glib-or-gtk? #t
8036 #:phases
8037 (modify-phases %standard-phases
8038 (add-after 'unpack 'skip-gtk-update-icon-cache
8039 ;; Don't create 'icon-theme.cache'.
8040 (lambda _
8041 (substitute* "build-aux/post-install.py"
8042 (("gtk-update-icon-cache") "true"))
8043 #t)))))
60e2a9ae
MS
8044 (native-inputs
8045 `(("vala" ,vala)
8046 ("pkg-config" ,pkg-config)
8047 ("glib" ,glib "bin") ; for glib-compile-resources
60e2a9ae
MS
8048 ("desktop-file-utils" ,desktop-file-utils)
8049 ("gettext" ,gettext-minimal)
8050 ("itstool" ,itstool)))
8051 (inputs
8052 `(("glib" ,glib)
8053 ("gtk+" ,gtk+)
8054 ("gsound" ,gsound)
8055 ("geoclue" ,geoclue)
8056 ("geocode-glib" ,geocode-glib)
8057 ("libgweather" ,libgweather)
8058 ("gnome-desktop" ,gnome-desktop)))
8059 (home-page "https://wiki.gnome.org/Apps/Clocks")
8060 (synopsis "GNOME's clock application")
8061 (description
8062 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8063desktop. It supports world clock, stop watch, alarms, and count down timer.")
8064 (license license:gpl3+)))
8065
3c474897
KY
8066(define-public gnome-calendar
8067 (package
8068 (name "gnome-calendar")
27dd1d76 8069 (version "3.34.2")
3c474897
KY
8070 (source (origin
8071 (method url-fetch)
8072 (uri (string-append "mirror://gnome/sources/" name "/"
8073 (version-major+minor version) "/"
8074 name "-" version ".tar.xz"))
8075 (sha256
8076 (base32
27dd1d76 8077 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
a49d3e37
MS
8078 (build-system meson-build-system)
8079 (arguments
8080 '(#:glib-or-gtk? #t
8081 ;; gnome-calendar has to be installed before the tests can be run
8082 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
27dd1d76
KK
8083 #:tests? #f
8084 #:phases
8085 (modify-phases %standard-phases
8086 (add-after 'unpack 'skip-gtk-update-icon-cache
8087 ;; Don't create 'icon-theme.cache'.
8088 (lambda _
8089 (substitute* "build-aux/meson/meson_post_install.py"
8090 (("gtk-update-icon-cache") "true"))
8091 #t)))))
3c474897 8092 (native-inputs
a49d3e37
MS
8093 `(("gettext" ,gettext-minimal)
8094 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
3c474897
KY
8095 ("pkg-config" ,pkg-config)))
8096 (inputs
27cb52a2 8097 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8098 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8099 ("libdazzle" ,libdazzle)
b63c06f1 8100 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8101 ("libgweather" ,libgweather)
8102 ("geoclue" ,geoclue)))
27cb52a2
RG
8103 (propagated-inputs
8104 `(("evolution-data-server" ,evolution-data-server)))
3c474897
KY
8105 (home-page "https://wiki.gnome.org/Apps/Calendar")
8106 (synopsis "GNOME's calendar application")
8107 (description
8108 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8109desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8110 (license license:gpl3+)))
8111
57b14665
MS
8112(define-public gnome-todo
8113 (package
8114 (name "gnome-todo")
9f3c6c88 8115 (version "3.28.1")
57b14665
MS
8116 (source (origin
8117 (method url-fetch)
8118 (uri (string-append "mirror://gnome/sources/" name "/"
8119 (version-major+minor version) "/"
8120 name "-" version ".tar.xz"))
8121 (sha256
8122 (base32
b17b2945
DM
8123 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8124 (patches
8125 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
57b14665
MS
8126 (build-system meson-build-system)
8127 (arguments
8128 '(#:glib-or-gtk? #t
8129 #:phases (modify-phases %standard-phases
8130 (add-after
8131 'install 'wrap-gnome-todo
8132 (lambda* (#:key inputs outputs #:allow-other-keys)
8133 (let ((out (assoc-ref outputs "out"))
8134 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8135 (python-path (getenv "PYTHONPATH")))
8136 (wrap-program (string-append out "/bin/gnome-todo")
8137 ;; XXX: gi plugins are broken.
8138 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8139 ;; For plugins.
8140 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8141 `("PYTHONPATH" ":" prefix (,python-path))))
8142 #t)))))
8143 (native-inputs
8144 `(("gettext" ,gettext-minimal)
8145 ("gobject-introspection" ,gobject-introspection)
8146 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8147 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8148 ("pkg-config" ,pkg-config)))
8149 (inputs
8150 `(("rest" ,rest) ; For Todoist plugin
8151 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8152 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8153 ("libical" ,libical)
8154 ("libpeas" ,libpeas)
8155 ("python-pygobject" ,python-pygobject)
8156 ("evolution-data-server" ,evolution-data-server)
14c297fd 8157 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8158 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8159 (home-page "https://wiki.gnome.org/Apps/Todo")
8160 (synopsis "GNOME's ToDo Application")
8161 (description
8162 "GNOME To Do is a simplistic personal task manager designed to perfectly
8163fit the GNOME desktop.")
8164 (license license:gpl3+)))
8165
ab179eaf
SB
8166(define-public gnome-dictionary
8167 (package
8168 (name "gnome-dictionary")
cf81ddef 8169 (version "3.26.1")
ab179eaf
SB
8170 (source (origin
8171 (method url-fetch)
8172 (uri (string-append "mirror://gnome/sources/" name "/"
8173 (version-major+minor version) "/"
8174 name "-" version ".tar.xz"))
8175 (sha256
8176 (base32
cf81ddef
LC
8177 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8178 (build-system meson-build-system)
2776b5d5
MB
8179 (arguments '(#:glib-or-gtk? #t
8180 #:phases (modify-phases %standard-phases
8181 (add-after 'unpack 'patch-install-script
8182 (lambda _
8183 ;; This script attempts to compile glib schemas
8184 ;; and create an empty MIME database. We do
8185 ;; that elsewhere, so prevent it from running.
8186 (substitute* "build-aux/post-install.sh"
8187 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8188 #t)))))
ab179eaf
SB
8189 (native-inputs
8190 `(("glib:bin" ,glib "bin")
8191 ("gobject-introspection" ,gobject-introspection)
8192 ("intltool" ,intltool)
8193 ("itstool" ,itstool)
8194 ("pkg-config" ,pkg-config)
8195 ("xmllint" ,libxml2)))
8196 (inputs
8197 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8198 ("gtk+" ,gtk+)))
8199 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8200 (synopsis "Look up words in dictionary sources")
8201 (description
8202 "GNOME Dictionary can look for the definition or translation of a word in
8203existing databases over the internet.")
8204 (license license:gpl3+)))
8205
d13f3a03 8206(define-public gnome-tweaks
9365ee1c 8207 (package
d13f3a03 8208 (name "gnome-tweaks")
4add1bae 8209 (version "3.34.0")
9365ee1c
JN
8210 (source (origin
8211 (method url-fetch)
d13f3a03 8212 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8213 (version-major+minor version) "/"
d13f3a03
RW
8214 "gnome-tweaks-" version ".tar.xz"))
8215 (patches
8216 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8217 (sha256
8218 (base32
4add1bae 8219 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
d13f3a03 8220 (build-system meson-build-system)
9365ee1c 8221 (arguments
d13f3a03
RW
8222 `(#:glib-or-gtk? #t
8223 #:configure-flags '("-Dlocalstatedir=/tmp"
8224 "-Dsysconfdir=/tmp")
9365ee1c 8225 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8226 ,@%meson-build-system-modules)
8227 #:phases
8228 (modify-phases %standard-phases
4add1bae
KK
8229 (add-after 'unpack 'skip-gtk-update-icon-cache
8230 ;; Don't create 'icon-theme.cache'.
8231 (lambda _
8232 (substitute* "meson-postinstall.py"
8233 (("gtk-update-icon-cache") "true"))
8234 #t))
d13f3a03
RW
8235 (add-after 'install 'wrap
8236 (@@ (guix build python-build-system) wrap))
8237 (add-after 'wrap 'wrap-gi-typelib
8238 (lambda* (#:key inputs outputs #:allow-other-keys)
8239 (let ((out (assoc-ref outputs "out"))
8240 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8241 (wrap-program (string-append out "/bin/gnome-tweaks")
8242 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8243 #t)))))
9365ee1c 8244 (native-inputs
4add1bae 8245 `(("intltool" ,intltool)
9365ee1c
JN
8246 ("pkg-config" ,pkg-config)))
8247 (inputs
c7fc414e
RH
8248 `(("gnome-desktop" ,gnome-desktop)
8249 ("gtk+" ,gtk+)
9365ee1c
JN
8250 ("gobject-introspection" ,gobject-introspection)
8251 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4add1bae 8252 ("libhandy" ,libhandy)
c7fc414e
RH
8253 ("libnotify" ,libnotify)
8254 ("libsoup" ,libsoup)
8255 ("nautilus" ,nautilus)
8256 ("python" ,python)
8257 ("python-pygobject" ,python-pygobject)))
9365ee1c 8258 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8259 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8260 (description
d13f3a03 8261 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8262GNOME 3. This includes things like the fonts used in user interface elements,
8263alternative user interface themes, changes in window management behavior,
8264GNOME Shell appearance and extension, etc.")
8265 (license license:gpl3+)))
813f814a 8266
32ac717c
DT
8267(define-public gnome-shell-extensions
8268 (package
8269 (name "gnome-shell-extensions")
c7305466 8270 (version "3.34.2")
32ac717c
DT
8271 (source (origin
8272 (method url-fetch)
8273 (uri (string-append "mirror://gnome/sources/" name "/"
8274 (version-major+minor version) "/"
8275 name "-" version ".tar.xz"))
8276 (sha256
8277 (base32
c7305466 8278 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
100f625b 8279 (build-system meson-build-system)
32ac717c 8280 (arguments
100f625b 8281 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8282 (native-inputs
c9ea8873
LP
8283 `(("glib:bin" ,glib "bin")
8284 ("intltool" ,intltool)
32ac717c
DT
8285 ("pkg-config" ,pkg-config)))
8286 (propagated-inputs
c9ea8873 8287 `(("glib" ,glib)))
32ac717c
DT
8288 (synopsis "Extensions for GNOME Shell")
8289 (description "GNOME Shell extensions modify and extend GNOME Shell
8290functionality and behavior.")
8291 (home-page "https://extensions.gnome.org/")
8292 (license license:gpl3+)))
8293
813f814a
DT
8294(define-public arc-theme
8295 (package
8296 (name "arc-theme")
37781323 8297 (version "20190917")
813f814a 8298 (source (origin
a18f8eaf
BH
8299 (method git-fetch)
8300 (uri (git-reference
8301 (url "https://github.com/NicoHood/arc-theme.git")
8302 (commit version)))
8303 (file-name (git-file-name name version))
813f814a
DT
8304 (sha256
8305 (base32
37781323 8306 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8307 (build-system gnu-build-system)
d88884fa
EF
8308 (arguments
8309 '(#:phases
8310 (modify-phases %standard-phases
8311 ;; autogen.sh calls configure at the end of the script.
8312 (replace 'bootstrap
4690e3a4
MC
8313 (lambda _ (invoke "autoreconf" "-vfi")))
8314 (add-before 'build 'set-home ;placate Inkscape
8315 (lambda _
8316 (setenv "HOME" (getcwd))
8317 #t)))))
813f814a
DT
8318 (native-inputs
8319 `(("autoconf" ,autoconf)
8320 ("automake" ,automake)
a18f8eaf
BH
8321 ("glib" ,glib "bin") ; for glib-compile-resources
8322 ("gnome-shell" ,gnome-shell)
8323 ("gtk+" ,gtk+)
8324 ("inkscape" ,inkscape)
8325 ("optipng" ,optipng)
8326 ("pkg-config" ,pkg-config)
bed24ecf 8327 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8328 (synopsis "A flat GTK+ theme with transparent elements")
8329 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
83302, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8331like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8332 (home-page "https://github.com/horst3180/arc-theme")
8333 ;; No "or later" language found.
a18f8eaf 8334 (license license:gpl3+)))
9987c57c 8335
d935e6a1 8336(define-public faba-icon-theme
9987c57c 8337 (package
d935e6a1 8338 (name "faba-icon-theme")
2eee7ee3 8339 (version "4.3")
d935e6a1
BT
8340 (source
8341 (origin
757e4027
TGR
8342 (method git-fetch)
8343 (uri (git-reference
8344 (url "https://github.com/snwh/faba-icon-theme.git")
8345 (commit (string-append "v" version))))
8346 (file-name (git-file-name name version))
d935e6a1 8347 (sha256
757e4027 8348 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8349 (build-system meson-build-system)
9987c57c 8350 (arguments
82da291a 8351 `(#:phases
9987c57c 8352 (modify-phases %standard-phases
82da291a 8353 (add-before 'configure 'disable-post-install
9987c57c 8354 (lambda _
82da291a
JL
8355 (substitute* "meson.build"
8356 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8357 (native-inputs
8358 `(("autoconf" ,autoconf)
8359 ("automake" ,automake)))
d935e6a1
BT
8360 (synopsis "Faba icon theme")
8361 (description
8362 "Faba is a minimal icon set used as a basis for other themes such as
8363Moka")
8364 (home-page "https://snwh.org/moka")
8365 (license (list license:lgpl3+
8366 license:cc-by-sa4.0))))
8367
9987c57c
DT
8368(define-public moka-icon-theme
8369 (package
8b0e4177 8370 (inherit faba-icon-theme)
9987c57c 8371 (name "moka-icon-theme")
105a3625 8372 (version "5.4.0")
8c3f2170
TGR
8373 (source
8374 (origin
8375 (method git-fetch)
8376 (uri (git-reference
8377 (url "https://github.com/snwh/moka-icon-theme.git")
8378 (commit (string-append "v" version))))
8379 (file-name (git-file-name name version))
8380 (sha256
8381 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8382 (propagated-inputs
8383 ;; Moka is based on Faba by using it as a fallback icon set instead of
8384 ;; bundling it, so we need to add it as a propagated input.
8385 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8386 (synopsis "Moka icon theme")
8387 (description "Moka is a stylized desktop icon set, designed to be clear,
8388simple and consistent.")
fedde43b
BT
8389 (license (list license:gpl3+
8390 license:cc-by-sa4.0))))
6fd8f8d6
DT
8391
8392(define-public arc-icon-theme
8393 (package
8394 (name "arc-icon-theme")
c4180240 8395 (version "20161122")
bbf66cbf
TGR
8396 (source
8397 (origin
8398 (method git-fetch)
8399 (uri (git-reference
8400 (url "https://github.com/horst3180/arc-icon-theme.git")
8401 (commit version)))
8402 (file-name (git-file-name name version))
8403 (sha256
8404 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8405 (build-system gnu-build-system)
9e1ede95
JL
8406 (arguments
8407 `(#:phases
8408 (modify-phases %standard-phases
8409 (add-after 'unpack 'disable-configure-during-bootstrap
8410 (lambda _
8411 (substitute* "autogen.sh"
8412 (("^\"\\$srcdir/configure\".*") ""))
8413 #t)))))
6fd8f8d6
DT
8414 (native-inputs
8415 `(("autoconf" ,autoconf)
8416 ("automake" ,automake)))
8417 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8418 (propagated-inputs
8419 `(("moka-icon-theme" ,moka-icon-theme)))
8420 (synopsis "Arc icon theme")
8421 (description "The Arc icon theme provides a set of icons matching the
8422style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8423the Moka icon theme.")
8424 (home-page "https://github.com/horst3180/arc-icon-theme")
8425 (license license:gpl3+)))
6064a4e8
LF
8426
8427(define-public folks
8428 (package
8429 (name "folks")
fd11f6f3 8430 (version "0.13.1")
6064a4e8
LF
8431 (source (origin
8432 (method url-fetch)
8433 (uri (string-append
e5f4796e 8434 "mirror://gnome/sources/folks/"
6064a4e8 8435 (version-major+minor version) "/"
e5f4796e 8436 "folks-" version ".tar.xz"))
6064a4e8
LF
8437 (sha256
8438 (base32
fd11f6f3
KK
8439 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8440 (build-system meson-build-system)
8441 (arguments
8442 '(#:phases
8443 (modify-phases %standard-phases
8444 (add-after 'unpack 'skip-gtk-update-icon-cache
8445 ;; Don't create 'icon-theme.cache'.
8446 (lambda _
8447 (substitute* "meson_post_install.py"
8448 (("gtk-update-icon-cache") "true"))
8449 #t)))))
6064a4e8
LF
8450 (inputs
8451 `(("bdb" ,bdb)
8452 ("dbus-glib" ,dbus-glib)
8453 ("evolution-data-server" ,evolution-data-server)
8454 ("glib" ,glib)
8455 ("libgee" ,libgee)
fd11f6f3 8456 ("readline" ,readline)
6064a4e8
LF
8457 ("telepathy-glib" ,telepathy-glib)))
8458 (native-inputs
fd11f6f3
KK
8459 `(("glib:bin" ,glib "bin")
8460 ("gobject-introspection" ,gobject-introspection)
6064a4e8
LF
8461 ("intltool" ,intltool)
8462 ("pkg-config" ,pkg-config)
8463 ("vala" ,vala)))
8464 (synopsis "Library to aggregate data about people")
8465 (description "Libfolks is a library that aggregates information about people
8466from multiple sources (e.g., Telepathy connection managers for IM contacts,
8467Evolution Data Server for local contacts, libsocialweb for web service contacts,
8468etc.) to create metacontacts. It's written in Vala, which generates C code when
8469compiled.")
8470 (home-page "https://wiki.gnome.org/Projects/Folks")
8471 (license license:lgpl2.1+)))
01ea778f
LF
8472
8473(define-public gfbgraph
8474 (package
8475 (name "gfbgraph")
8476 (version "0.2.3")
8477 (source (origin
8478 (method url-fetch)
8479 (uri (string-append
237d4cf7 8480 "mirror://gnome/sources/gfbgraph/"
01ea778f 8481 (version-major+minor version) "/"
237d4cf7 8482 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8483 (sha256
8484 (base32
8485 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8486 (build-system glib-or-gtk-build-system)
8487 (arguments
8488 `(#:tests? #f ; Tests appear to require the network.
8489 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8490 #:configure-flags '("--disable-gtk-doc"
8491 "--disable-static"
8492 "--enable-introspection")))
8493 (native-inputs
8494 `(("pkg-config" ,pkg-config)
8495 ("gobject-introspection" ,gobject-introspection)))
8496 (inputs
8497 `(("json-glib" ,json-glib)
14c297fd 8498 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8499 ("rest" ,rest)))
8500 (synopsis "GLib/GObject wrapper for the Facebook API")
8501 (description "This library allows you to use the Facebook API from
8502GLib/GObject code.")
8503 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8504 (license license:lgpl2.1+)))
3920868c 8505
8506(define-public libgnomekbd
8507 (package
8508 (name "libgnomekbd")
70f2b0f9 8509 (version "3.26.1")
3920868c 8510 (source (origin
8511 (method url-fetch)
d47fa82d 8512 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8513 (version-major+minor version) "/"
d47fa82d 8514 "libgnomekbd-" version ".tar.xz"))
3920868c 8515 (sha256
8516 (base32
70f2b0f9 8517 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8518 (build-system gnu-build-system)
8519 (native-inputs
8520 `(("pkg-config" ,pkg-config)
8521 ("glib" ,glib "bin")
8522 ("intltool" ,intltool)))
8523 (propagated-inputs
8524 ;; Referred to in .h files and .pc.
8525 `(("glib" ,glib)
8526 ("gtk+" ,gtk+)
8527 ("libxklavier" ,libxklavier)))
8528 (home-page "https://www.gnome.org")
8529 (synopsis "GNOME keyboard configuration library")
8530 (description
8531 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8532environment, which can notably display keyboard layouts.")
8533 (license license:lgpl2.0+)))
85327d0d 8534
8535;;; This package is no longer maintained:
8536;;; https://wiki.gnome.org/Attic/LibUnique
8537;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8538;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8539(define-public libunique
8540 (package
8541 (name "libunique")
8542 (version "3.0.2")
8543 (source (origin
8544 (method url-fetch)
8545 (uri (string-append "mirror://gnome/sources/" name "/"
8546 (version-major+minor version) "/"
8547 name "-" version ".tar.xz"))
8548 (sha256
8549 (base32
8550 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8551 (build-system glib-or-gtk-build-system)
8552 (arguments
8553 `(#:configure-flags '("--disable-static"
8554 "--disable-dbus" ; use gdbus
8555 "--enable-introspection")))
8556 (native-inputs
8557 `(("pkg-config" ,pkg-config)
8558 ("gobject-introspection" ,gobject-introspection)
8559 ("glib:bin" ,glib "bin")
8560 ("gtk-doc" ,gtk-doc)))
8561 (propagated-inputs
8562 ;; Referred to in .h files and .pc.
8563 `(("gtk+" ,gtk+)))
8564 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8565 (synopsis "Library for writing single instance applications")
8566 (description
8567 "Libunique is a library for writing single instance applications. If you
8568launch a single instance application twice, the second instance will either just
8569quit or will send a message to the running instance. Libunique makes it easy to
8570write this kind of application, by providing a base class, taking care of all
8571the IPC machinery needed to send messages to a running instance, and also
8572handling the startup notification side.")
8573 (license license:lgpl2.1+)))
54021cd8
RS
8574
8575(define-public gnome-calculator
8576 (package
8577 (name "gnome-calculator")
4cb09502 8578 (version "3.34.1")
54021cd8
RS
8579 (source
8580 (origin
8581 (method url-fetch)
8582 (uri (string-append "mirror://gnome/sources/" name "/"
8583 (version-major+minor version) "/"
8584 name "-" version ".tar.xz"))
8585 (sha256
8586 (base32
4cb09502 8587 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
2d475910
RW
8588 (build-system meson-build-system)
8589 (arguments '(#:glib-or-gtk? #t))
54021cd8 8590 (native-inputs
4cb09502
MB
8591 `(("gettext" ,gettext-minimal)
8592 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8593 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8 8594 ("itstool" ,itstool)
2d475910 8595 ("vala" ,vala)
54021cd8
RS
8596 ("pkg-config" ,pkg-config)))
8597 (inputs
112e9083 8598 `(("glib" ,glib)
07ace641 8599 ("gtksourceview" ,gtksourceview)
4cb09502 8600 ("libgee" ,libgee)
54021cd8 8601 ("libsoup" ,libsoup)
112e9083 8602 ("libxml2" ,libxml2)
2c2da7ec 8603 ("mpc" ,mpc)
54021cd8
RS
8604 ("mpfr" ,mpfr)))
8605 (home-page "https://wiki.gnome.org/Apps/Calculator")
8606 (synopsis "Desktop calculator")
8607 (description
8608 "Calculator is an application that solves mathematical equations and
8609is suitable as a default application in a Desktop environment.")
8610 (license license:gpl3)))
0bd69759
RS
8611
8612(define-public xpad
8613 (package
8614 (name "xpad")
c85626bb 8615 (version "5.1.0")
0bd69759
RS
8616 (source
8617 (origin
8618 (method url-fetch)
08fda9c6
R
8619 (uri (string-append "https://launchpad.net/xpad/trunk/"
8620 version "/+download/"
0bd69759
RS
8621 name "-" version ".tar.bz2"))
8622 (sha256
8623 (base32
c85626bb 8624 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8625 (build-system gnu-build-system)
8626 (native-inputs
08fda9c6
R
8627 `(("autoconf" ,autoconf)
8628 ("automake" ,automake)
8629 ("gtk+:bin" ,gtk+ "bin")
8630 ("intltool" ,intltool)
0bd69759
RS
8631 ("pkg-config" ,pkg-config)))
8632 (inputs
c72647fb 8633 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8634 ("libsm" ,libsm)))
8635 (home-page "https://wiki.gnome.org/Apps/Xpad")
8636 (synopsis "Virtual sticky note")
8637 (description
8638 "Xpad is a sticky note that strives to be simple, fault tolerant,
8639and customizable. Xpad consists of independent pad windows, each is
8640basically a text box in which notes can be written.")
8641 (license license:gpl3+)))
3ad7dce1
RS
8642
8643(define-public gucharmap
c60063ea
RW
8644 (let ((unicode-files
8645 '(("Blocks.txt"
1f8b5515 8646 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8647 ("DerivedAge.txt"
1f8b5515 8648 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8649 ("NamesList.txt"
1f8b5515 8650 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8651 ("Scripts.txt"
1f8b5515 8652 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8653 ("UnicodeData.txt"
1f8b5515 8654 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8655 ("Unihan.zip"
1f8b5515 8656 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8657 (package
8658 (name "gucharmap")
1f8b5515 8659 (version "12.0.1")
c60063ea
RW
8660 (source
8661 (origin
8662 (method url-fetch)
8663 (uri (string-append "mirror://gnome/sources/" name "/"
8664 (version-major+minor version) "/"
8665 name "-" version ".tar.xz"))
8666 (sha256
8667 (base32
1f8b5515 8668 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8669 (build-system glib-or-gtk-build-system)
8670 (arguments
8671 `(#:modules ((ice-9 match)
8672 (guix build glib-or-gtk-build-system)
8673 (guix build utils))
8674 #:configure-flags
8675 (list "--with-unicode-data=../unicode-data")
8676 #:phases
8677 (modify-phases %standard-phases
8678 (add-after 'unpack 'prepare-unicode-data
8679 (lambda* (#:key inputs #:allow-other-keys)
8680 (mkdir-p "../unicode-data")
8681 (with-directory-excursion "../unicode-data"
8682 (for-each (match-lambda
8683 ((file _)
8684 (install-file (assoc-ref inputs file) ".")))
8685 ',unicode-files))
8686 #t)))))
8687 (native-inputs
8688 `(("desktop-file-utils" ,desktop-file-utils)
8689 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8690 ("gobject-introspection" ,gobject-introspection)
8691 ("intltool" ,intltool)
8692 ("itstool" ,itstool)
8693 ("pkg-config" ,pkg-config)
8694 ,@(map (match-lambda
8695 ((file hash)
8696 `(,file
8697 ,(origin
8698 (method url-fetch)
8699 (uri (string-append
1f8b5515 8700 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8701 file))
8702 (sha256 (base32 hash))))))
8703 unicode-files)
8704 ("unzip" ,unzip)))
8705 (inputs
8706 `(("gtk+" ,gtk+)
8707 ("xmllint" ,libxml2)))
8708 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8709 (synopsis "Unicode character picker and font browser")
8710 (description
8711 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8712characters and categories for the installed fonts, and to examine their
8713detailed properties. It is an easy way to find the character you might
8714only know by its Unicode name or code point.")
c60063ea 8715 (license license:gpl3+))))
04ce840a
RS
8716
8717(define-public bluefish
8718 (package
8719 (name "bluefish")
290fe81d 8720 (version "2.2.11")
04ce840a
RS
8721 (source
8722 (origin
8723 (method url-fetch)
8724 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 8725 "bluefish-" version ".tar.gz"))
04ce840a 8726 (sha256
290fe81d 8727 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
8728 (build-system gnu-build-system)
8729 (native-inputs
8730 `(("desktop-file-utils" ,desktop-file-utils)
8731 ("intltool" ,intltool)
8732 ("pkg-config" ,pkg-config)))
8733 (inputs
8734 `(("enchant" ,enchant)
8735 ("gtk+" ,gtk+)
290fe81d 8736 ("python" ,python-wrapper)
04ce840a
RS
8737 ("xmllint" ,libxml2)
8738 ("gucharmap" ,gucharmap)))
8739 (home-page "http://bluefish.openoffice.nl")
8740 (synopsis "Web development studio")
8741 (description
8742 "Bluefish is an editor targeted towards programmers and web developers,
8743with many options to write web sites, scripts and other code.
8744Bluefish supports many programming and markup languages.")
8745 (license license:gpl3+)))
1f6a73ee
RS
8746
8747(define-public gnome-system-monitor
8748 (package
8749 (name "gnome-system-monitor")
083cffaf 8750 (version "3.32.1")
1f6a73ee
RS
8751 (source
8752 (origin
8753 (method url-fetch)
8754 (uri (string-append "mirror://gnome/sources/" name "/"
8755 (version-major+minor version) "/"
8756 name "-" version ".tar.xz"))
8757 (sha256
8758 (base32
083cffaf 8759 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8760 (build-system meson-build-system)
8761 (arguments
8762 '(#:glib-or-gtk? #t
8763 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8764 (native-inputs
8765 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8766 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8767 ("intltool" ,intltool)
8768 ("itstool" ,itstool)
8769 ("libgtop" ,libgtop)
4985d9aa 8770 ("polkit" ,polkit)
1f6a73ee
RS
8771 ("pkg-config" ,pkg-config)))
8772 (inputs
8773 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8774 ("gtk+" ,gtk+)
8775 ("gtkmm" ,gtkmm)
8776 ("librsvg" ,librsvg)
4985d9aa
RW
8777 ("libxml2" ,libxml2)
8778 ("libwnck" ,libwnck)))
1f6a73ee
RS
8779 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8780 (synopsis "Process viewer and system resource monitor for GNOME")
8781 (description
8782 "GNOME System Monitor is a GNOME process viewer and system monitor with
8783an attractive, easy-to-use interface. It has features, such as a tree view
8784for process dependencies, icons for processes, the ability to hide processes,
8785graphical time histories of CPU/memory/swap usage and the ability to
8786kill/reinice processes.")
8787 (license license:gpl2+)))
3e00ac47
SB
8788
8789(define-public python-pyatspi
8790 (package
8791 (name "python-pyatspi")
4f937a32 8792 (version "2.34.0")
3e00ac47
SB
8793 (source (origin
8794 (method url-fetch)
8795 (uri (string-append
8796 "mirror://gnome/sources/pyatspi/"
8797 (version-major+minor version)
8798 "/pyatspi-" version ".tar.xz"))
8799 (sha256
8800 (base32
4f937a32 8801 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8802 (build-system gnu-build-system)
b95af3f6
JL
8803 (arguments
8804 `(#:phases
8805 (modify-phases %standard-phases
8806 (add-before 'build 'fix-atk-load
8807 (lambda _
8808 (substitute* "pyatspi/__init__.py"
8809 (("from gi.repository import Atspi")
8810 "gi.require_version('Gtk', '3.0')
8811from gi.repository import Gtk
8812from gi.repository import Atspi"))
8813 #t)))))
3e00ac47
SB
8814 (native-inputs
8815 `(("pkg-config" ,pkg-config)))
8816 (inputs
8817 `(("python" ,python)
8818 ("python-pygobject" ,python-pygobject)))
8819 (synopsis "Python client bindings for D-Bus AT-SPI")
8820 (home-page "https://wiki.linuxfoundation.org/accessibility\
8821/atk/at-spi/at-spi_on_d-bus")
8822 (description
8823 "This package includes a python client library for the AT-SPI D-Bus
8824accessibility infrastructure.")
8825 (license license:lgpl2.0)
8826 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8827
8828(define-public orca
8829 (package
8830 (name "orca")
30e76da1 8831 (version "3.34.1")
53201c0d
SB
8832 (source (origin
8833 (method url-fetch)
8834 (uri (string-append
8835 "mirror://gnome/sources/" name "/"
8836 (version-major+minor version) "/"
8837 name "-" version ".tar.xz"))
8838 (sha256
8839 (base32
30e76da1 8840 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
53201c0d
SB
8841 (build-system glib-or-gtk-build-system)
8842 (arguments
8843 '(#:phases
8844 (modify-phases %standard-phases
8845 (add-before 'configure 'qualify-xkbcomp
8846 (lambda* (#:key inputs #:allow-other-keys)
8847 (let ((xkbcomp (string-append
8848 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8849 (substitute* "src/orca/orca.py"
8850 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8851 #t))
8852 (add-after 'install 'wrap-orca
8853 (lambda* (#:key outputs #:allow-other-keys)
8854 (let* ((out (assoc-ref outputs "out"))
8855 (prog (string-append out "/bin/orca")))
8856 (wrap-program prog
8857 `("GI_TYPELIB_PATH" ":" prefix
8858 (,(getenv "GI_TYPELIB_PATH")))
8859 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8860 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8861 `("PYTHONPATH" ":" prefix
8862 (,(getenv "PYTHONPATH")))))
8863 #t)))))
8864 (native-inputs
8865 `(("intltool" ,intltool)
8866 ("itstool" ,itstool)
8867 ("pkg-config" ,pkg-config)
8868 ("xmllint" ,libxml2)))
8869 (inputs
8870 `(("at-spi2-atk" ,at-spi2-atk)
8871 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8872 ("gstreamer" ,gstreamer)
8873 ("gst-plugins-base" ,gst-plugins-base)
8874 ("gst-plugins-good" ,gst-plugins-good)
8875 ("gtk+" ,gtk+)
8876 ("python" ,python)
8877 ("python-pygobject" ,python-pygobject)
8878 ("python-pyatspi" ,python-pyatspi)
8879 ("python-speechd" ,speech-dispatcher)
8880 ("xkbcomp" ,xkbcomp)))
8881 (synopsis
8882 "Screen reader for individuals who are blind or visually impaired")
8883 (home-page "https://wiki.gnome.org/Projects/Orca")
8884 (description
8885 "Orca is a screen reader that provides access to the graphical desktop
8886via speech and refreshable braille. Orca works with applications and toolkits
8887that support the Assistive Technology Service Provider Interface (AT-SPI).")
8888 (license license:lgpl2.1+)))
411ba511
LC
8889
8890(define-public gspell
8891 (package
8892 (name "gspell")
7a6bbe9b 8893 (version "1.8.2")
411ba511
LC
8894 (source (origin
8895 (method url-fetch)
8896 (uri (string-append "mirror://gnome/sources/" name "/"
8897 (version-major+minor version) "/"
8898 name "-" version ".tar.xz"))
8899 (sha256
8900 (base32
7a6bbe9b 8901 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8902 (patches (search-patches "gspell-dash-test.patch"))))
8903 (build-system glib-or-gtk-build-system)
8904 (arguments
d0f50164 8905 '(#:configure-flags (list "--enable-vala")
8906 #:phases
411ba511
LC
8907 (modify-phases %standard-phases
8908 (add-before 'check 'pre-check
8909 (lambda* (#:key inputs #:allow-other-keys)
8910 ;; Tests require a running X server.
8911 (system "Xvfb :1 &")
8912 (setenv "DISPLAY" ":1")
8913
8914 ;; For the missing /etc/machine-id.
8915 (setenv "DBUS_FATAL_WARNINGS" "0")
8916
8917 ;; Allow Enchant and its Aspell backend to find the en_US
8918 ;; dictionary.
8919 (setenv "ASPELL_DICT_DIR"
8920 (string-append (assoc-ref inputs "aspell-dict-en")
8921 "/lib/aspell"))
8922 #t)))))
8923 (inputs
eccd35be 8924 `(("gtk+" ,gtk+)
a801ae4c
TGR
8925 ("glib" ,glib)
8926 ("iso-codes" ,iso-codes)))
411ba511
LC
8927 (native-inputs
8928 `(("glib" ,glib "bin")
26ba3f07 8929 ("gobject-introspection" ,gobject-introspection)
411ba511 8930 ("pkg-config" ,pkg-config)
d0f50164 8931 ("vala" ,vala) ;for VAPI, needed by Geary
411ba511
LC
8932 ("xmllint" ,libxml2)
8933
8934 ;; For tests.
a801ae4c 8935 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8936 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8937 (propagated-inputs
9b1bb757 8938 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8939 (home-page "https://wiki.gnome.org/Projects/gspell")
8940 (synopsis "GNOME's alternative spell checker")
8941 (description
8942 "gspell provides a flexible API to add spell-checking to a GTK+
8943application. It provides a GObject API, spell-checking to text entries and
8944text views, and buttons to choose the language.")
8945 (license license:gpl2+)))
d1d739fa
CM
8946
8947(define-public gnome-planner
8948 (package
8949 (name "gnome-planner")
8950 (version "0.14.6")
8951 (source (origin
8952 (method url-fetch)
8953 (uri (string-append "mirror://gnome/sources/planner/"
8954 (version-major+minor version) "/planner-"
8955 version ".tar.xz"))
8956 (sha256
8957 (base32
8958 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8959 (build-system glib-or-gtk-build-system)
8960 (arguments
8961 ;; Disable the Python bindings because the Planner program functions
8962 ;; without them, and (as of 2017-06-13) we have not packaged all of
8963 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8964 `(#:configure-flags
8965 (list "--disable-python"
8966 ,@(if (string=? "aarch64-linux" (%current-system))
8967 '("--build=aarch64-unknown-linux-gnu")
8968 '()))))
d1d739fa
CM
8969 (inputs
8970 `(("libgnomecanvas" ,libgnomecanvas)
8971 ("libgnomeui" ,libgnomeui)
8972 ("libglade" ,libglade)
8973 ("gnome-vfs" ,gnome-vfs)
8974 ("gconf" ,gconf)
8975 ("libxml2" ,libxml2)
8976 ("libxslt" ,libxslt)
8977 ("gtk+" ,gtk+)
8978 ("glib" ,glib)))
8979 (native-inputs
8980 `(("intltool" ,intltool)
8981 ("scrollkeeper" ,scrollkeeper)
8982 ("pkg-config" ,pkg-config)))
8983 (home-page "https://wiki.gnome.org/Apps/Planner")
8984 (synopsis "Project management software for the GNOME desktop")
8985 (description
8986 "GNOME Planner is a project management tool based on the Work Breakdown
8987Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8988the resources, tasks, and constraints that you define, Planner generates
8989various views into a project. For example, Planner can show a Gantt chart of
8990the project. It can show a detailed summary of tasks including their
8991duration, cost, and current progress. It can also show a report of resource
8992utilization that highlights under-utilized and over-utilized resources. These
8993views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 8994 (license license:gpl2+)))
64fce637
RS
8995
8996(define-public lollypop
8997 (package
8998 (name "lollypop")
24b5d8f7 8999 (version "1.2.32")
64fce637
RS
9000 (source
9001 (origin
9002 (method url-fetch)
24b5d8f7 9003 (uri (string-append "https://adishatz.org/lollypop/"
3275d43d 9004 "lollypop-" version ".tar.xz"))
64fce637 9005 (sha256
24b5d8f7 9006 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
aa498fc0 9007 (build-system meson-build-system)
64fce637 9008 (arguments
7a9543d7
TGR
9009 `(#:imported-modules
9010 (,@%meson-build-system-modules
9011 (guix build python-build-system))
9012 #:modules
9013 ((guix build meson-build-system)
9014 ((guix build python-build-system) #:prefix python:)
9015 (guix build utils))
aa498fc0 9016 #:glib-or-gtk? #t
7a9543d7 9017 #:tests? #f ; no test suite
5fc9b6c1
EF
9018 #:phases
9019 (modify-phases %standard-phases
5fc9b6c1
EF
9020 (add-after 'install 'wrap-program
9021 (lambda* (#:key outputs #:allow-other-keys)
9022 (let ((out (assoc-ref outputs "out"))
9023 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9024 (wrap-program (string-append out "/bin/lollypop")
9025 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9026 #t))
8ac8b3b3 9027 (add-after 'install 'wrap-python
7a9543d7 9028 (assoc-ref python:%standard-phases 'wrap)))))
64fce637
RS
9029 (native-inputs
9030 `(("intltool" ,intltool)
9031 ("itstool" ,itstool)
aa498fc0
TD
9032 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9033 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9034 ("pkg-config" ,pkg-config)))
9035 (inputs
9036 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9037 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9038 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9039 ("libnotify" ,libnotify)
9040 ("libsecret" ,libsecret)
9041 ("libsoup" ,libsoup)
9042 ("python" ,python)
9043 ("python-beautifulsoup4" ,python-beautifulsoup4)
9044 ("python-gst" ,python-gst)
d029afdd 9045 ("python-pil" ,python-pillow)
64fce637 9046 ("python-pycairo" ,python-pycairo)
cc9c83c5 9047 ("python-pygobject" ,python-pygobject)
64fce637
RS
9048 ("python-pylast" ,python-pylast)
9049 ("totem-pl-parser" ,totem-pl-parser)
9050 ("webkitgtk" ,webkitgtk)))
9051 (propagated-inputs
9052 `(;; gst-plugins-base is required to start Lollypop,
9053 ;; the others are required to play streaming.
64fce637
RS
9054 ("gst-plugins-good" ,gst-plugins-good)
9055 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9056 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9057 (synopsis "GNOME music playing application")
9058 (description
9059 "Lollypop is a music player designed to play well with GNOME desktop.
9060Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9061from artists and tracks from the web. It also fetches cover artworks
9062automatically and it can stream songs from online music services and charts.")
9063 (license license:gpl3+)))
d831d49d
AW
9064
9065(define-public gnome-video-effects
9066 (package
9067 (name "gnome-video-effects")
9068 (version "0.4.3")
9069 (source (origin
9070 (method url-fetch)
9071 (uri (string-append "mirror://gnome/sources/" name "/"
9072 (version-major+minor version) "/" name "-"
9073 version ".tar.xz"))
9074 (sha256
9075 (base32
9076 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9077 (build-system glib-or-gtk-build-system)
9078 (arguments
9079 `(#:out-of-source? #f))
9080 (native-inputs
9081 `(("glib:bin" ,glib "bin")
9082 ("intltool" ,intltool)
9083 ("gettext" ,gettext-minimal)
9084 ("pkg-config" ,pkg-config)))
9085 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9086 (synopsis "Video effects for Cheese and other GNOME applications")
9087 (description
9088 "A collection of GStreamer video filters and effects to be used in
9089photo-booth-like software, such as Cheese.")
9090 (license license:gpl2+)))
3511c780
AW
9091
9092(define-public cheese
9093 (package
9094 (name "cheese")
3a7e066f 9095 (version "3.34.0")
3511c780
AW
9096 (source (origin
9097 (method url-fetch)
9098 (uri (string-append "mirror://gnome/sources/" name "/"
9099 (version-major+minor version) "/" name "-"
9100 version ".tar.xz"))
9101 (sha256
9102 (base32
3a7e066f 9103 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
3511c780 9104 (arguments
3a7e066f
KK
9105 `(#:glib-or-gtk? #t
9106 ;; Tests require GDK.
9107 #:tests? #f
3511c780
AW
9108 #:phases
9109 (modify-phases %standard-phases
3a7e066f 9110 (add-after 'unpack 'skip-gtk-update-icon-cache
3511c780
AW
9111 (lambda _
9112 ;; Don't create 'icon-theme.cache'
3a7e066f 9113 (substitute* "meson_post_install.py"
3511c780
AW
9114 (("gtk-update-icon-cache") (which "true")))
9115 #t))
9116 (add-after 'install 'wrap-cheese
9117 (lambda* (#:key inputs outputs #:allow-other-keys)
9118 (let ((out (assoc-ref outputs "out"))
9119 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9120 (wrap-program (string-append out "/bin/cheese")
9121 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9122 #t)))))
3a7e066f 9123 (build-system meson-build-system)
3511c780 9124 (native-inputs
3a7e066f
KK
9125 `(("docbook-xsl" ,docbook-xsl)
9126 ("glib:bin" ,glib "bin")
9127 ("gtk-doc" ,gtk-doc)
3511c780
AW
9128 ("intltool" ,intltool)
9129 ("itstool" ,itstool)
9130 ("libxml2" ,libxml2)
3a7e066f 9131 ("libxslt" ,libxslt)
3511c780
AW
9132 ("pkg-config" ,pkg-config)
9133 ("vala" ,vala)))
9134 (propagated-inputs
6a19f03e
RW
9135 `(("gnome-video-effects" ,gnome-video-effects)
9136 ("clutter" ,clutter)
3511c780
AW
9137 ("clutter-gst" ,clutter-gst)
9138 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9139 ("libcanberra" ,libcanberra)
3511c780
AW
9140 ("gdk-pixbuf" ,gdk-pixbuf)
9141 ("glib" ,glib)
6a19f03e
RW
9142 ("gstreamer" ,gstreamer)))
9143 (inputs
9144 `(("gnome-desktop" ,gnome-desktop)
3511c780 9145 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9146 ("gst-plugins-base" ,gst-plugins-base)
9147 ("gst-plugins-bad" ,gst-plugins-bad)
9148 ("gtk+" ,gtk+)
3511c780
AW
9149 ("libx11" ,libx11)
9150 ("libxtst" ,libxtst)))
9151 (home-page "https://wiki.gnome.org/Apps/Cheese")
9152 (synopsis "Webcam photo booth software for GNOME")
9153 (description
9154 "Cheese uses your webcam to take photos and videos. Cheese can also
9155apply fancy special effects and lets you share the fun with others.")
9156 (license license:gpl2+)))
3c5dbd2b 9157
9158(define-public sound-juicer
9159 (package
9160 (name "sound-juicer")
9161 (version "3.24.0")
9162 (source
9163 (origin
9164 (method url-fetch)
9165 (uri (string-append "mirror://gnome/sources/" name "/"
9166 (version-major+minor version) "/"
9167 name "-" version ".tar.xz"))
9168 (sha256
9169 (base32
9170 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9171 (build-system glib-or-gtk-build-system)
9172 (native-inputs
9173 `(("desktop-file-utils" ,desktop-file-utils)
9174 ("intltool" ,intltool)
9175 ("itstool" ,itstool)
9176 ("pkg-config" ,pkg-config)
9177 ("xmllint" ,libxml2)))
9178 (inputs
9179 `(("gtk+" ,gtk+)
9180 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9181 ("gstreamer" ,gstreamer)
9182 ("gst-plugins-base" ,gst-plugins-base)
9183 ("gst-plugins-good" ,gst-plugins-good)
9184 ("iso-codes" ,iso-codes)
9185 ("libbrasero-media3" ,brasero)
9186 ("libcanberra" ,libcanberra)
9187 ("libdiscid" ,libdiscid)
9188 ("libmusicbrainz" ,libmusicbrainz)
9189 ("neon" ,neon)))
9190 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9191 (synopsis "Audio music cd ripper")
9192 (description "Sound Juicer extracts audio from compact discs and convert it
9193into audio files that a personal computer or digital audio player can play.
9194It supports ripping to any audio codec supported by a GStreamer plugin, such as
9195mp3, Ogg Vorbis and FLAC")
9196 (license license:gpl2+)))
4e3fdeb7 9197
0d3f1708
CB
9198(define-public soundconverter
9199 (package
9200 (name "soundconverter")
7f4b45a3 9201 (version "3.0.2")
0d3f1708
CB
9202 (source
9203 (origin
9204 (method url-fetch)
9205 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9206 version "/+download/"
9207 "soundconverter-" version ".tar.xz"))
9208
9209 (sha256
7f4b45a3 9210 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
0d3f1708
CB
9211 (build-system glib-or-gtk-build-system)
9212 (arguments
9213 `(#:imported-modules ((guix build python-build-system)
9214 (guix build glib-or-gtk-build-system)
9215 ,@%gnu-build-system-modules)
9216
9217 #:modules ((guix build glib-or-gtk-build-system)
9218 (guix build utils)
9219 ((guix build gnu-build-system) #:prefix gnu:)
9220 ((guix build python-build-system) #:prefix python:))
9221
9222 #:phases
9223 (modify-phases %standard-phases
0d3f1708
CB
9224 (add-after 'install 'wrap-soundconverter-for-python
9225 (assoc-ref python:%standard-phases 'wrap))
9226 (add-after 'install 'wrap-soundconverter
9227 (lambda* (#:key inputs outputs #:allow-other-keys)
9228 (let ((out (assoc-ref outputs "out"))
9229 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9230 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9231 (wrap-program (string-append out "/bin/soundconverter")
9232 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9233 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9234 #t)))))
9235 (native-inputs
9236 `(("intltool" ,intltool)
9237 ("pkg-config" ,pkg-config)
9238 ("glib:bin" ,glib "bin")))
9239 (inputs
9240 `(("gtk+" ,gtk+)
9241 ("python" ,python)
9242 ("python-pygobject" ,python-pygobject)
9243 ("gstreamer" ,gstreamer)
9244 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 9245 (home-page "https://soundconverter.org/")
0d3f1708
CB
9246 (synopsis "Convert between audio formats with a graphical interface")
9247 (description
9248 "SoundConverter supports converting between many audio formats including
9249Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9250configurable file renaming. ")
9251 (license license:gpl3)))
9252
4e3fdeb7 9253(define-public workrave
89f2d736
TGR
9254 (package
9255 (name "workrave")
52fc6508 9256 (version "1.10.42")
89f2d736
TGR
9257 (source
9258 (origin
9259 (method git-fetch)
9260 (uri (git-reference
9261 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9262 (commit (string-append "v" (string-map
9263 (match-lambda (#\. #\_) (chr chr))
9264 version)))))
89f2d736
TGR
9265 (file-name (git-file-name name version))
9266 (sha256
52fc6508 9267 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
89f2d736 9268 (build-system glib-or-gtk-build-system)
1b9e1648
TGR
9269 (arguments
9270 ;; The only tests are maintainer tests (in po/), which fail.
9271 `(#:tests? #f))
d1c96847
MC
9272 (inputs `(("glib" ,glib)
9273 ("gtk+" ,gtk+)
9274 ("gdk-pixbuf" ,gdk-pixbuf)
9275 ("gtkmm" ,gtkmm)
9276 ("glibmm" ,glibmm)
9277 ("libx11" ,libx11)
9278 ("libxtst" ,libxtst)
9279 ("dconf" ,dconf)
9280 ("libice" ,libice)
9281 ("libsm" ,libsm)
9282 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9283 (native-inputs `(("boost" ,boost)
89f2d736 9284 ("pkg-config" ,pkg-config)
f2d97d57 9285 ("gettext" ,gettext-minimal)
89f2d736
TGR
9286 ("autoconf" ,autoconf)
9287 ("autoconf-archive" , autoconf-archive)
9288 ("automake" ,automake)
9289 ("libtool" ,libtool)
9290 ("intltool" ,intltool)
89f2d736 9291 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9292 ("python3" ,python-3)
9293 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9294 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9295 (description
9296 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9297repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9298micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9299 (home-page "http://www.workrave.org")
9300 (license license:gpl3+)))
312afa7d
LC
9301
9302(define-public ghex
9303 (package
9304 (name "ghex")
3748992a 9305 (version "3.18.4")
312afa7d
LC
9306 (source (origin
9307 (method url-fetch)
2fbab848 9308 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9309 (version-major+minor version) "/"
2fbab848 9310 "ghex-" version ".tar.xz"))
312afa7d
LC
9311 (sha256
9312 (base32
3748992a
KK
9313 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9314 (build-system meson-build-system)
9315 (arguments
9316 '(#:glib-or-gtk? #t
9317 #:phases
9318 (modify-phases %standard-phases
9319 (add-after 'unpack 'skip-gtk-update-icon-cache
9320 ;; Don't create 'icon-theme.cache'.
9321 (lambda _
9322 (substitute* "meson_post_install.py"
9323 (("gtk-update-icon-cache") (which "true")))
9324 #t)))))
312afa7d
LC
9325 (native-inputs
9326 `(("pkg-config" ,pkg-config)
3748992a 9327 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9328 ("gnome-common" ,gnome-common)
9329 ("which" ,which)
9330 ("intltool" ,intltool)
9331 ("yelp-tools" ,yelp-tools)
2fbab848 9332 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9333 (inputs
9334 `(("atk" ,atk)
9335 ("gtk" ,gtk+)))
9336 (synopsis "GNOME hexadecimal editor")
9337 (description "The GHex program can view and edit files in two ways:
9338hexadecimal or ASCII. It is useful for editing binary files in general.")
9339 (home-page "https://wiki.gnome.org/Apps/Ghex")
9340 (license license:gpl2)))
4b2ed6c2
RW
9341
9342(define-public libdazzle
9343 (package
9344 (name "libdazzle")
c94db354 9345 (version "3.34.1")
4b2ed6c2
RW
9346 (source (origin
9347 (method url-fetch)
687b4909 9348 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9349 (version-major+minor version) "/"
687b4909 9350 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9351 (sha256
9352 (base32
c94db354 9353 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
4b2ed6c2
RW
9354 (build-system meson-build-system)
9355 (arguments
9356 `(#:phases
9357 (modify-phases %standard-phases
4b2ed6c2
RW
9358 (add-before 'check 'pre-check
9359 (lambda _
9360 ;; Tests require a running X server.
9361 (system "Xvfb :1 &")
9362 (setenv "DISPLAY" ":1")
9363 #t)))))
9364 (native-inputs
687b4909 9365 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9366 ("pkg-config" ,pkg-config)
687b4909 9367 ;; For tests.
ff337525 9368 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9369 (inputs
9370 `(("glib" ,glib)
9371 ("gobject-introspection" ,gobject-introspection)
9372 ("gtk+" ,gtk+)
9373 ("vala" ,vala)))
9374 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9375 (synopsis "Companion library to GObject and Gtk+")
9376 (description "The libdazzle library is a companion library to GObject and
9377Gtk+. It provides various features that the authors wish were in the
9378underlying library but cannot for various reasons. In most cases, they are
9379wildly out of scope for those libraries. In other cases, they are not quite
9380generic enough to work for everyone.")
9381 (license license:gpl3+)))
7d3bb433
RW
9382
9383(define-public evolution
9384 (package
9385 (name "evolution")
0662fe86 9386 (version "3.34.2")
7d3bb433
RW
9387 (source (origin
9388 (method url-fetch)
9389 (uri (string-append "mirror://gnome/sources/evolution/"
9390 (version-major+minor version) "/"
9391 "evolution-" version ".tar.xz"))
9392 (sha256
9393 (base32
0662fe86 9394 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
7d3bb433
RW
9395 (build-system cmake-build-system)
9396 (arguments
5229bea1
KK
9397 `(#:imported-modules (,@%cmake-build-system-modules
9398 (guix build glib-or-gtk-build-system))
9399 #:modules ((guix build cmake-build-system)
9400 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9401 (guix build utils))
9402 #:configure-flags
7d3bb433 9403 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9404 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9405 ; in four years and cannot be built.
5229bea1
KK
9406 #:phases
9407 (modify-phases %standard-phases
9408 ;; The build system attempts to install user interface modules to the
9409 ;; output directory of the "evolution-data-server" package. This
9410 ;; change redirects that change.
9411 (add-after 'unpack 'patch-ui-module-dir
9412 (lambda* (#:key outputs #:allow-other-keys)
9413 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9414 (("\\$\\{edsuimoduledir\\}")
9415 (string-append (assoc-ref outputs "out")
9416 "/lib/evolution-data-server/ui-modules")))
9417 #t))
9418 (add-after 'install 'glib-or-gtk-compile-schemas
9419 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9420 (add-after 'install 'glib-or-gtk-wrap
9421 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9422 (native-inputs
ad6e168b 9423 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9424 ("pkg-config" ,pkg-config)
9425 ("intltool" ,intltool)
9426 ("itstool" ,itstool)))
9427 (inputs
9428 `(("enchant" ,enchant)
9429 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9430 ("gcr" ,gcr)
ad6e168b 9431 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9432 ("gnome-autoar" ,gnome-autoar)
9433 ("gnome-desktop" ,gnome-desktop)
0662fe86 9434 ("gspell" ,gspell)
7d3bb433
RW
9435 ("highlight" ,highlight)
9436 ("libcanberra" ,libcanberra)
9437 ("libgweather" ,libgweather)
9438 ("libnotify" ,libnotify)
9439 ("libsoup" ,libsoup)
9440 ("nss" ,nss)
9441 ("openldap" ,openldap)
9442 ("webkitgtk" ,webkitgtk)
9443 ("ytnef" ,ytnef)))
9444 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9445 (synopsis "Manage your email, contacts and schedule")
9446 (description "Evolution is a personal information management application
9447that provides integrated mail, calendaring and address book
9448functionality.")
9449 ;; See COPYING for details.
23dbe621 9450 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9451 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9452 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9453
9454(define-public gthumb
9455 (package
9456 (name "gthumb")
8280676b 9457 (version "3.8.2")
169d63f5
AT
9458 (source (origin
9459 (method url-fetch)
9460 (uri (string-append "mirror://gnome/sources/gthumb/"
9461 (version-major+minor version) "/"
9462 "gthumb-" version ".tar.xz"))
9463 (sha256
9464 (base32
8280676b 9465 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9466 (build-system meson-build-system)
9467 (arguments
9468 `(#:glib-or-gtk? #t
9469 #:configure-flags
9470 ;; Ensure the RUNPATH contains all installed library locations.
9471 (list (string-append "-Dc_link_args=-Wl,-rpath="
9472 (assoc-ref %outputs "out")
9473 "/lib/gthumb/extensions")
9474 (string-append "-Dcpp_link_args=-Wl,-rpath="
9475 (assoc-ref %outputs "out")
9476 "/lib/gthumb/extensions"))))
9477 (native-inputs
9478 `(("pkg-config" ,pkg-config)
9479 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9480 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9481 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9482 ("intltool" ,intltool)
9483 ("itstool" ,itstool)))
9484 (inputs
9485 `(("exiv2" ,exiv2)
9486 ("gtk" ,gtk+)
9487 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9488 ("gstreamer" ,gstreamer)
9489 ("clutter" ,clutter)
9490 ("clutter-gst" ,clutter-gst)
9491 ("clutter-gtk" ,clutter-gtk)
4bd428a7 9492 ("libjpeg" ,libjpeg-turbo)
169d63f5
AT
9493 ("libtiff" ,libtiff)
9494 ("libraw" ,libraw)))
9495 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9496 (synopsis "GNOME image viewer and browser")
9497 (description "GThumb is an image viewer, browser, organizer, editor and
9498advanced image management tool")
9499 (license license:gpl2+)))
08be02be
AT
9500
9501(define-public terminator
9502 (package
9503 (name "terminator")
9504 (version "1.91")
9505 (source (origin
9506 (method url-fetch)
9507 (uri (string-append "https://launchpad.net/" name "/"
9508 "gtk3/" version "/" "+download/"
9509 name "-" version ".tar.gz"))
9510 (sha256
9511 (base32
9512 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9513 (build-system python-build-system)
9514 (native-inputs
9515 `(("intltool" ,intltool)
9516 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9517 ("gettext" ,gettext-minimal)
9518 ("pkg-config" ,pkg-config)))
9519 (inputs
9520 `(("cairo" ,cairo)
9521 ("gobject-introspection" ,gobject-introspection)
96681d4b 9522 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9523 ("python2-pycairo" ,python2-pycairo)
9524 ("python2-pygobject" ,python2-pygobject)
9525 ("python2-psutil" ,python2-psutil)
9526 ("vte" ,vte)))
9527 (arguments
96681d4b
TGR
9528 `(#:python ,python-2 ; Python 3 isn't supported
9529 #:imported-modules ((guix build glib-or-gtk-build-system)
9530 ,@%python-build-system-modules)
9531 #:modules ((guix build python-build-system)
9532 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9533 (guix build utils))
08be02be
AT
9534 #:phases
9535 (modify-phases %standard-phases
9536 (add-after
9537 'install 'wrap-program
9538 (lambda* (#:key outputs #:allow-other-keys)
9539 (let ((prog (string-append (assoc-ref outputs "out")
9540 "/bin/terminator")))
9541 (wrap-program prog
9542 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9543 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9544 #t)))
9545 (add-after 'wrap-program 'glib-or-gtk-wrap
9546 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9547 (home-page "https://gnometerminator.blogspot.com/")
9548 (synopsis "Store and run multiple GNOME terminals in one window")
9549 (description
9550 "Terminator allows you to run multiple GNOME terminals in a grid and
9551+tabs, and it supports drag and drop re-ordering of terminals.")
9552 (license license:gpl2)))
213315d4
JF
9553
9554(define-public libhandy
9555 (package
9556 (name "libhandy")
f6501b9f 9557 (version "0.0.12")
213315d4
JF
9558 (source
9559 (origin
9560 (method git-fetch)
9561 (uri (git-reference
9562 (url "https://source.puri.sm/Librem5/libhandy")
9563 (commit (string-append "v" version))))
9564 (file-name (git-file-name name version))
9565 (sha256
f6501b9f 9566 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9567 (build-system meson-build-system)
9568 (arguments
9569 `(#:configure-flags
9570 '("-Dglade_catalog=disabled"
9571 "-Dgtk_doc=true")
9572 #:phases
9573 (modify-phases %standard-phases
213315d4
JF
9574 (add-before 'check 'pre-check
9575 (lambda _
9576 ;; Tests require a running X server.
9577 (system "Xvfb :1 &")
9578 (setenv "DISPLAY" ":1")
9579 #t)))))
9580 (inputs
9581 `(("gtk+" ,gtk+)))
9582 (native-inputs
9583 `(("glib:bin" ,glib "bin")
9584 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9585 ("vala" ,vala)
9586 ("gtk-doc" ,gtk-doc)
9587 ("pkg-config" ,pkg-config)
9588 ("gettext" ,gettext-minimal)
d41ee146
TGR
9589
9590 ;; Test suite dependencies.
ff337525 9591 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9592 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9593 (home-page "https://source.puri.sm/Librem5/libhandy")
9594 (synopsis "Library full of GTK+ widgets for mobile phones")
9595 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9596interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9597for usage on small and big screens.")
213315d4 9598 (license license:lgpl2.1+)))
a830d14d
GL
9599
9600(define-public libgit2-glib
9601 (package
9602 (name "libgit2-glib")
6448c2e1 9603 (version "0.99.0.1")
a830d14d
GL
9604 (source (origin
9605 (method url-fetch)
9606 (uri (string-append "mirror://gnome/sources/" name "/"
9607 (version-major+minor version) "/"
9608 name "-" version ".tar.xz"))
9609 (sha256
9610 (base32
6448c2e1 9611 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
9612 (build-system meson-build-system)
9613 (native-inputs
9614 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9615 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
9616 ("pkg-config" ,pkg-config)
9617 ("python-pygobject" ,python-pygobject)
9618 ("python-wrapper" ,python-wrapper)
9619 ("vala" ,vala)))
9620 (inputs
9621 `(("glib" ,glib)
8c6aae46
MB
9622 ("libssh2" ,libssh2)))
9623 (propagated-inputs
9624 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
9625 ("libgit2" ,libgit2)))
9626 (synopsis "GLib wrapper around the libgit2 Git access library")
9627 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9628access library. It only implements the core plumbing functions, not really the
9629higher level porcelain stuff.")
9630 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9631 (license license:gpl2+)))
93beace0 9632
08db81c9
LP
9633(define-public gitg
9634 (package
9635 (name "gitg")
9636 (version "3.32.1")
9637 (source (origin
9638 (method url-fetch)
9639 (uri (string-append "mirror://gnome/sources/" name "/"
9640 (version-major+minor version) "/"
9641 name "-" version ".tar.xz"))
9642 (sha256
9643 (base32
9644 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9645 (build-system meson-build-system)
9646 (arguments
9647 `(#:glib-or-gtk? #t
9648 #:phases
9649 (modify-phases %standard-phases
9650 (add-after 'unpack 'disable-post-install-partially
9651 (lambda _
9652 (substitute* "meson_post_install.py"
9653 (("'python'") ; there are no python sources to compile
9654 (string-append "'" (which "true") "'"))
9655 (("gtk-update-icon-cache") (which "true")))
9656 #t))
9657 (add-after 'unpack 'fix-test-sources
9658 (lambda _
9659 (substitute* "tests/libgitg/test-commit.vala"
9660 (("/bin/bash") (which "bash")))
9661 #t))
9662 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9663 (lambda* (#:key outputs #:allow-other-keys)
9664 (let ((prog (string-append (assoc-ref outputs "out")
9665 "/bin/gitg")))
9666 (wrap-program prog
9667 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9668 #t))))))
9669 (inputs
9670 `(("glib" ,glib)
9671 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9672 ("gtk+" ,gtk+)
9673 ("gtkspell3" ,gtkspell3)
9674 ("gtksourceview" ,gtksourceview-3)
9675 ("json-glib" ,json-glib)
9676 ("libdazzle" ,libdazzle)
9677 ("libgee" ,libgee)
08db81c9
LP
9678 ("libgit2-glib" ,libgit2-glib)
9679 ("libpeas" ,libpeas)
9680 ("libsecret" ,libsecret)
9681 ("libsoup" ,libsoup)
9682 ("libxml2" ,libxml2)))
9683 (native-inputs
9684 `(("glib:bin" ,glib "bin")
9685 ("gtk+:bin" ,gtk+ "bin")
9686 ("gobject-introspection" ,gobject-introspection)
9687 ("intltool" ,intltool)
9688 ("pkg-config" ,pkg-config)
9689 ("vala" ,vala)))
9690 (synopsis "Graphical user interface for git")
9691 (description
9692 "gitg is a graphical user interface for git. It aims at being a small,
9693fast and convenient tool to visualize the history of git repositories.
9694Besides visualization, gitg also provides several utilities to manage your
9695repository and commit your work.")
9696 (home-page "https://wiki.gnome.org/Apps/Gitg")
9697 (license license:gpl2+)))
9698
1e600ed0
RW
9699(define-public gamin
9700 (package
9701 (name "gamin")
9702 (version "0.1.10")
9703 (source (origin
9704 (method url-fetch)
9705 (uri (string-append "mirror://gnome/sources/" name "/"
9706 (version-major+minor version) "/"
9707 name "-" version ".tar.bz2"))
9708 (sha256
9709 (base32
9710 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9711 (build-system gnu-build-system)
9712 (arguments
9713 `(#:phases
9714 (modify-phases %standard-phases
9715 (add-after 'unpack 'remove-deprecated-macro
9716 (lambda _
9717 (substitute* '("server/gam_node.c"
9718 "server/gam_subscription.h"
9719 "server/gam_node.h"
9720 "server/gam_subscription.c")
9721 (("G_CONST_RETURN") "const"))
9722 #t)))))
9723 (inputs
9724 `(("glib" ,glib)))
9725 (native-inputs
9726 `(("intltool" ,intltool)
9727 ("pkg-config" ,pkg-config)))
9728 (home-page "https://people.gnome.org/~veillard/gamin/")
9729 (synopsis "File alteration monitor")
9730 (description
9731 "Gamin is a file and directory monitoring system defined to be a subset
9732of the FAM (File Alteration Monitor) system. This is a service provided by a
bddd877f 9733library which detects when a file or a directory has been modified.")
1e600ed0
RW
9734 (license license:gpl2+)))
9735
93beace0
DW
9736(define-public gnome-mahjongg
9737 (package
9738 (name "gnome-mahjongg")
9739 (version "3.35.1")
9740 (source (origin
9741 (method git-fetch)
9742 (uri (git-reference
9743 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9744 (commit version)))
9745 (file-name (git-file-name name version))
9746 (sha256
9747 (base32
9748 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9749 (build-system meson-build-system)
9750 (arguments
9751 `(#:glib-or-gtk? #t))
9752 (native-inputs
9753 `(("appstream-glib" ,appstream-glib)
9754 ("gettext" ,gettext-minimal)
9755 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9756 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9757 ("itstool" ,itstool)
9758 ("pkg-config" ,pkg-config)
9759 ("vala" ,vala)))
9760 (propagated-inputs
9761 `(("dconf" ,dconf)))
9762 (inputs
9763 `(("glib" ,glib)
9764 ("gtk+" ,gtk+)
9765 ("librsvg" ,librsvg)))
9766 (synopsis "Mahjongg tile-matching game")
9767 (description "GNOME Mahjongg is a game based on the classic Chinese
9768tile-matching game Mahjong. It features multiple board layouts, tile themes,
9769and a high score table.")
9770 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9771 (license license:gpl2+)))
f825476c 9772
76ea7632
RG
9773(define-public gnome-themes-extra
9774 (package
9775 (name "gnome-themes-extra")
9776 (version "3.28")
9777 (source
9778 (origin
9779 (method url-fetch)
9780 (uri (string-append "mirror://gnome/sources/" name "/"
9781 (version-major+minor version) "/" name "-"
9782 version ".tar.xz"))
9783 (sha256
9784 (base32
9785 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9786 (build-system gnu-build-system)
885424bf
RG
9787 (arguments
9788 '(#:configure-flags
9789 ;; Don't create 'icon-theme.cache'.
9790 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9791 (true (string-append coreutils "/bin/true")))
9792 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9793 (native-inputs
9794 `(("glib:bin" ,glib "bin")
9795 ("intltool" ,intltool)
9796 ("pkg-config" ,pkg-config)))
9797 (inputs
9798 `(("glib" ,glib)
9799 ("gtk+" ,gtk+)
9800 ("gtk+-2" ,gtk+-2)
9801 ("librsvg" ,librsvg)
9802 ("libxml2" ,libxml2)))
9803 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9804 (synopsis "GNOME Extra Themes")
9805 (description "This package provides themes and related elements that don't
9806really fit in other upstream packages. It offers legacy support for GTK+ 2
9807versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9808index files needed for Adwaita to be used outside of GNOME.")
9809 (license license:lgpl2.1+)))
9810
f825476c
LP
9811(define-public polari
9812 (package
9813 (name "polari")
9814 (version "3.32.2")
9815 (source (origin
9816 (method url-fetch)
9817 (uri (string-append "mirror://gnome/sources/polari/"
9818 (version-major+minor version)
9819 "/polari-" version ".tar.xz"))
9820 (sha256
9821 (base32
9822 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9823 (build-system meson-build-system)
9824 (arguments
9825 `(#:glib-or-gtk? #t
9826 #:phases
9827 (modify-phases %standard-phases
9828 (add-after 'unpack 'skip-gtk-update-icon-cache
9829 (lambda _
9830 (substitute* "meson/meson-postinstall.sh"
9831 (("gtk-update-icon-cache") (which "true")))
9832 #t))
9833 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9834 (lambda* (#:key outputs #:allow-other-keys)
9835 (let ((prog (string-append (assoc-ref outputs "out")
9836 "/bin/polari")))
9837 (wrap-program prog
9838 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9839 #t))))))
9840 (inputs
9841 `(("glib" ,glib)
9842 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9843 ("gspell" ,gspell)
9844 ("gtk+" ,gtk+)
9845 ("gjs" ,gjs)
9846 ("libsecret" ,libsecret)
9847 ("libsoup" ,libsoup)
9848 ("telepathy-glib" ,telepathy-glib)
9849 ("telepathy-logger" ,telepathy-logger)))
9850 (native-inputs
9851 `(("glib:bin" ,glib "bin")
9852 ("gobject-introspection" ,gobject-introspection)
9853 ("intltool" ,intltool)
9854 ("pkg-config" ,pkg-config)
9855 ("yelp-tools" ,yelp-tools)))
9856 (propagated-inputs
9857 `(("telepathy-idle" ,telepathy-idle)
9858 ("telepathy-mission-control" ,telepathy-mission-control)))
9859 (synopsis "Simple IRC Client")
9860 (description
9861 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9862integrate seamlessly with the GNOME desktop.")
9863 (home-page "https://wiki.gnome.org/Apps/Polari")
9864 (license license:gpl2+)))
59d4c8c2
PN
9865
9866(define-public gnome-boxes
9867 (package
9868 (name "gnome-boxes")
9869 (version "3.35.91")
9870 (source
9871 (origin
9872 (method url-fetch)
9873 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9874 (version-major+minor version) "/"
9875 "gnome-boxes-" version ".tar.xz"))
9876 (sha256
9877 (base32
9878 "0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
9879 (build-system meson-build-system)
9880 (arguments
9881 '(#:glib-or-gtk? #t
9882 #:configure-flags (list "-Drdp=false"
9883 (string-append "-Dc_link_args=-Wl,-rpath="
9884 (assoc-ref %outputs "out")
9885 "/lib/gnome-boxes"))))
9886 (native-inputs
9887 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
9888 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9889 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9890 ("itstool" ,itstool)
9891 ("intltool" ,intltool)
9892 ("vala" ,vala)
9893 ("pkg-config" ,pkg-config)))
9894 (inputs
9895 `(("libarchive" ,libarchive)
9896 ("gtk" ,gtk+)
9897 ("gtk-vnc" ,gtk-vnc)
9898 ("libosinfo" ,libosinfo)
9899 ("libsecret" ,libsecret)
9900 ("libsoup" ,libsoup)
9901 ("libusb" ,libusb)
9902 ("libvirt" ,libvirt)
9903 ("libvirt-glib" ,libvirt-glib)
9904 ("libxml" ,libxml2)
9905 ("spice-gtk" ,spice-gtk)
9906 ("sparql-query" ,sparql-query)
9907 ("vte" ,vte)
9908 ("webkitgtk" ,webkitgtk)
9909 ("tracker" ,tracker)
9910 ("libgudev" ,libgudev)))
9911 (home-page "https://wiki.gnome.org/Apps/Boxes")
9912 (synopsis "View, access, and manage remote and virtual systems")
9913 (description "GNOME Boxes is a simple application to view, access, and
9914manage remote and virtual systems.")
9915 (license (list
9916 ;; For data/icons/empty-boxes.png.
9917 license:cc-by2.0
9918 ;; For all others.
9919 license:lgpl2.0+))))
0e26c3cf 9920
9921(define-public geary
9922 (package
9923 (name "geary")
9924 (version "3.34.1")
9925 (source (origin
9926 (method git-fetch)
9927 (uri (git-reference
9928 (url "https://gitlab.gnome.org/GNOME/geary")
9929 (commit version)))
9930 (file-name (git-file-name name version))
9931 (sha256
9932 (base32
9933 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
9934 (build-system meson-build-system)
9935 (arguments
9936 `(#:glib-or-gtk? #t
9937 #:phases (modify-phases %standard-phases
9938 (add-after 'unpack 'disable-failing-tests
9939 (lambda _
9940 (substitute* "test/meson.build"
9941 (("test\\('client-tests', geary_test_client_bin\\)")
9942 ""))
9943 #t))
9944 (add-after 'unpack 'disable-postinstall-script
9945 (lambda _
9946 (substitute* "meson.build"
9947 (("meson.add_install_script\\(\
9948join_paths\\('build-aux', 'post_install.py'\\)\\)")
9949 ""))
9950 #t))
9951 (add-before 'check 'setup-xvfb
9952 (lambda _
9953 (system "Xvfb :1 &")
9954 (setenv "DISPLAY" ":1")
9955 #t)))))
9956 (inputs
9957 `(("enchant" ,enchant)
9958 ("folks" ,folks)
9959 ("gcr" ,gcr)
9960 ("glib" ,glib)
9961 ("gmime" ,gmime-2.6)
9962 ("gnome-online-accounts:lib"
9963 ,gnome-online-accounts "lib")
9964 ("gspell" ,gspell)
9965 ("gtk+" ,gtk+)
9966 ("iso-codes" ,iso-codes)
9967 ("json-glib" ,json-glib)
9968 ("libcanberra" ,libcanberra)
9969 ("libgee" ,libgee)
9970 ("libhandy" ,libhandy)
9971 ("libpeas" ,libpeas)
9972 ("libsecret" ,libsecret)
9973 ("libunwind" ,libunwind)
9974 ("sqlite" ,sqlite)
9975 ("webkitgtk" ,webkitgtk)
9976 ("ytnef" ,ytnef)))
9977 (native-inputs
9978 `(("appstream-glib" ,appstream-glib)
9979 ("cmake-minimal" ,cmake-minimal)
9980 ("desktop-file-utils" ,desktop-file-utils)
f2d97d57 9981 ("gettext" ,gettext-minimal)
0e26c3cf 9982 ("glib:bin" ,glib "bin")
9983 ("gobject-introspection" ,gobject-introspection)
9984 ("itstool" ,itstool)
9985 ("libarchive" ,libarchive)
9986 ("libxml2" ,libxml2)
9987 ("pkg-config" ,pkg-config)
9988 ("vala" ,vala)
9989 ("xvfb" ,xorg-server-for-tests)))
9990 (synopsis "GNOME email application built around conversations")
9991 (description
9992 "Geary collects related messages together into conversations,
9993making it easy to find and follow your discussions. Full-text and keyword
9994search makes it easy to find the email you are looking for. Geary's
9995full-featured composer lets you send rich, styled text with images, links, and
9996lists, but also send lightweight, easy to read text messages. Geary
9997automatically picks up your existing GNOME Online Accounts, and adding more is
9998easy. Geary has a clean, fast, modern interface that works like you want it
9999to.")
10000 (home-page "https://wiki.gnome.org/Apps/Geary")
10001 (license (list
10002 ;; geary
10003 license:lgpl2.1+
10004 ;; icons
10005 license:cc-by3.0
10006 license:cc-by-sa3.0
10007 license:public-domain
10008 ;; snowball
10009 license:bsd-2))))
1a17d21b 10010
2cd1de32
BT
10011(define-public libratbag
10012 (package
10013 (name "libratbag")
10014 (version "0.13")
10015 (source
10016 (origin
10017 (method git-fetch)
10018 (uri (git-reference
10019 (url "https://github.com/libratbag/libratbag.git")
10020 (commit (string-append "v" version))))
10021 (file-name (git-file-name name version))
10022 (sha256
10023 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10024 (build-system meson-build-system)
10025 (arguments
10026 `(#:configure-flags
10027 (list "-Dsystemd=false"
10028 "-Dlogind-provider=elogind")
10029 #:phases
10030 (modify-phases %standard-phases
10031 (add-after 'install 'wrap
10032 (lambda* (#:key inputs outputs #:allow-other-keys)
10033 (let* ((out (assoc-ref outputs "out"))
10034 (site (string-append
10035 "/lib/python"
10036 ,(version-major+minor (package-version python))
10037 "/site-packages"))
10038 (evdev (string-append
10039 (assoc-ref inputs "python-evdev") site))
10040 (pygo (string-append
10041 (assoc-ref inputs "python-pygobject") site))
10042 (python-wrap
10043 `("PYTHONPATH" = (,evdev ,pygo))))
10044 (wrap-program (string-append out "/bin/" "ratbagctl")
10045 python-wrap)
10046 #t))))))
10047 (native-inputs
10048 `(("check" ,check)
10049 ("pkg-config" ,pkg-config)
10050 ("swig" ,swig)
10051 ("valgrind" ,valgrind)))
10052 (inputs
10053 `(("glib" ,glib)
10054 ("json-glib" ,json-glib)
10055 ("libevdev" ,libevdev)
10056 ("libsystemd" ,elogind)
10057 ("libunistring" ,libunistring)
10058 ("python-evdev" ,python-evdev)
10059 ("python-pygobject" ,python-pygobject)
10060 ("udev" ,eudev)))
10061 (home-page "https://github.com/libratbag/libratbag")
10062 (synopsis "DBus daemon and utility for configuring gaming mice")
10063 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10064configure input devices, mainly gaming mice. The daemon provides a generic
10065way to access the various features exposed by these mice and abstracts away
10066hardware-specific and kernel-specific quirks. There is also the
10067@command{ratbagctl} command line interface for configuring devices.
10068
10069libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10070Steelseries.
10071
10072The ratbagd DBus service can be enabled by adding the following service to
10073your operating-system definition:
10074
10075 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10076 (license license:expat)))
10077
50d31a40
BT
10078(define-public piper
10079 (package
10080 (name "piper")
10081 (version "0.4")
10082 (source
10083 (origin
10084 (method git-fetch)
10085 (uri (git-reference
10086 (url "https://github.com/libratbag/piper.git")
10087 (commit version)))
10088 (sha256
10089 (base32 "17h06j8lxpbfygq8fzycl7lml4vv7r05bsyhh3gga2hp0zms4mvg"))))
10090 (build-system meson-build-system)
10091 (native-inputs
10092 `(("gettext" ,gettext-minimal)
10093 ("glib:bin" ,glib "bin")
10094 ("gobject-introspection" ,gobject-introspection)
10095 ("pkg-config" ,pkg-config)
10096 ("python-flake8" ,python-flake8)))
10097 (inputs
10098 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10099 ("gtk" ,gtk+)
10100 ("gtk:bin" ,gtk+ "bin")
10101 ("librsvg" ,librsvg)
10102 ("python-evdev" ,python-evdev)
10103 ("python-lxml" ,python-lxml)
10104 ("python-pycairo" ,python-pycairo)
10105 ("python-pygobject" ,python-pygobject)))
10106 (arguments
10107 `(#:imported-modules ((guix build python-build-system)
10108 ,@%meson-build-system-modules)
10109 #:modules (((guix build python-build-system) #:prefix python:)
10110 (guix build meson-build-system)
10111 (guix build utils))
10112 #:phases
10113 (modify-phases %standard-phases
10114 (add-after 'unpack 'dont-update-gtk-icon-cache
10115 (lambda _
10116 (substitute* "meson.build"
10117 (("meson.add_install_script('meson_install.sh')") ""))
10118 #t))
10119 ;; TODO: Switch to wrap-script when it is fixed.
10120 (add-after 'install 'wrap-python
10121 (assoc-ref python:%standard-phases 'wrap))
10122 (add-after 'wrap-python 'wrap
10123 (lambda* (#:key outputs #:allow-other-keys)
10124 (wrap-program
10125 (string-append (assoc-ref outputs "out" )"/bin/piper")
10126 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10127 #t)))))
10128 (home-page "https://github.com/libratbag/piper/")
10129 (synopsis "Configure bindings and LEDs on gaming mice")
10130 (description "Piper is a GTK+ application for configuring gaming mice with
10131onboard configuration for key bindings via libratbag. Piper requires
10132a @command{ratbagd} daemon running with root privileges. It can be run
10133manually as root, but is preferably configured as a DBus service that can
10134launch on demand. This can be configured by enabling the following service,
10135provided there is a DBus service present:
10136
10137 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10138 (license license:gpl2)))
10139
1a17d21b
NG
10140(define-public parlatype
10141 ;; This is one commit away from 2.0, because the latter introduced
10142 ;; a regression in ASR.
10143 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10144 (revision "0"))
10145 (package
10146 (name "parlatype")
10147 (version (git-version "2.0" revision commit))
10148 (source
10149 (origin
10150 (method git-fetch)
10151 (uri (git-reference
10152 (url "https://github.com/gkarsay/parlatype.git")
10153 (commit commit)))
10154 (file-name (git-file-name name version))
10155 (sha256
10156 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10157 (build-system meson-build-system)
10158 (arguments
10159 `(#:glib-or-gtk? #t
10160 #:tests? #f ;require internet access
10161 #:phases
10162 (modify-phases %standard-phases
10163 (add-after 'install 'wrap-parlatype
10164 ;; Add gstreamer plugin provided in this package to system's
10165 ;; plugins.
10166 (lambda* (#:key outputs #:allow-other-keys)
10167 (let* ((out (assoc-ref outputs "out"))
10168 (gst-plugin-path (string-append
10169 out "/lib/gstreamer-1.0/"
10170 ":"
10171 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10172 (wrap-program (string-append out "/bin/parlatype")
10173 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10174 #t)))))
10175 (native-inputs
10176 `(("appstream-glib" ,appstream-glib)
10177 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10178 ("gettext" ,gettext-minimal)
10179 ("glib" ,glib "bin") ;for glib-compile-resources
10180 ("pkg-config" ,pkg-config)
10181 ("yelp-tools" ,yelp-tools)))
10182 (inputs
10183 `(("gst-plugins-base" ,gst-plugins-base)
10184 ("gst-plugins-good" ,gst-plugins-good)
10185 ("gstreamer" ,gstreamer)
10186 ("gtk+" ,gtk+)
10187 ("pocketsphinx" ,pocketsphinx)
10188 ("pulseaudio" ,pulseaudio)
10189 ("sphinxbase" ,sphinxbase)))
10190 (home-page "http://gkarsay.github.io/parlatype/")
10191 (synopsis "GNOME audio player for transcription")
10192 (description "Parlatype is an audio player for the GNOME desktop
10193environment. Its main purpose is the manual transcription of spoken
10194audio files.")
10195 (license license:gpl3+))))
95856a6e
AT
10196
10197(define-public jsonrpc-glib
10198 (package
10199 (name "jsonrpc-glib")
10200 (version "3.34.0")
10201 (source (origin
10202 (method url-fetch)
10203 (uri (string-append "mirror://gnome/sources/" name "/"
10204 (version-major+minor version) "/"
10205 name "-" version ".tar.xz"))
10206 (sha256
10207 (base32
10208 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10209 (build-system meson-build-system)
10210 (inputs
10211 `(("json-glib" ,json-glib)
10212 ("glib" ,glib)))
10213 (native-inputs
10214 `(("pkg-config" ,pkg-config)
10215 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10216 ("gobject-introspection" ,gobject-introspection)
10217 ("vala" ,vala)))
10218 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10219 (synopsis "JSON-RPC library for GLib")
10220 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10221peers in either a synchronous or asynchronous fashion. It also allows
10222communicating using the GVariant serialization format instead of JSON when
10223both peers support it. You might want that when communicating on a single
10224host to avoid parser overhead and memory-allocator fragmentation.")
10225 (license license:lgpl2.1+)))