build: gnu-build-system: Don't run configure during bootstrap.
[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>
7d3bb433 11;;; Copyright © 2015, 2016, 2017, 2018, 2019 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>
47956fa0 22;;; Copyright © 2016, 2017 ng0 <ng0@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>
dcfa0acd 30;;; Copyright © 2017 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>
26ba3f07 47;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
fa01e10d 48;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
995b7261
AE
49;;;
50;;; This file is part of GNU Guix.
51;;;
52;;; GNU Guix is free software; you can redistribute it and/or modify it
53;;; under the terms of the GNU General Public License as published by
54;;; the Free Software Foundation; either version 3 of the License, or (at
55;;; your option) any later version.
56;;;
57;;; GNU Guix is distributed in the hope that it will be useful, but
58;;; WITHOUT ANY WARRANTY; without even the implied warranty of
59;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
60;;; GNU General Public License for more details.
61;;;
62;;; You should have received a copy of the GNU General Public License
63;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
64
65(define-module (gnu packages gnome)
ed19903d 66 #:use-module (gnu packages)
ba5dd105 67 #:use-module (gnu packages admin)
411ba511 68 #:use-module (gnu packages aspell)
75016d07 69 #:use-module (gnu packages autotools)
7b212526 70 #:use-module (gnu packages avahi)
b29909b4 71 #:use-module (gnu packages backup)
6a180f6f 72 #:use-module (gnu packages base)
1e33331c 73 #:use-module (gnu packages bash)
5698b8b8 74 #:use-module (gnu packages bison)
aa51d92c 75 #:use-module (gnu packages boost)
5fc9b6c1 76 #:use-module (gnu packages build-tools)
df217748 77 #:use-module (gnu packages calendar)
b29909b4 78 #:use-module (gnu packages cdrom)
df12f04a 79 #:use-module (gnu packages check)
d61a894b 80 #:use-module (gnu packages cmake)
b29909b4 81 #:use-module (gnu packages compression)
8f523eb9 82 #:use-module (gnu packages crates-io)
23a22af6 83 #:use-module (gnu packages cups)
6e1bb642 84 #:use-module (gnu packages curl)
c3f29bc9 85 #:use-module (gnu packages cyrus-sasl)
6e1bb642 86 #:use-module (gnu packages databases)
255d1bbe 87 #:use-module (gnu packages dbm)
c769cf9f 88 #:use-module (gnu packages djvu)
ba5dd105 89 #:use-module (gnu packages dns)
b4ce6300 90 #:use-module (gnu packages docbook)
b29909b4 91 #:use-module (gnu packages documentation)
329d731b 92 #:use-module (gnu packages enchant)
b29909b4
TGR
93 #:use-module (gnu packages flex)
94 #:use-module (gnu packages fonts)
e762d943 95 #:use-module (gnu packages file-systems)
a56be436 96 #:use-module (gnu packages fontutils)
b29909b4 97 #:use-module (gnu packages freedesktop)
dfc407f3 98 #:use-module (gnu packages game-development)
fed5a689 99 #:use-module (gnu packages gettext)
b29909b4
TGR
100 #:use-module (gnu packages ghostscript)
101 #:use-module (gnu packages gl)
995b7261 102 #:use-module (gnu packages glib)
c1354b90 103 #:use-module (gnu packages gnupg)
23a22af6 104 #:use-module (gnu packages gnuzilla)
8d8c6bff 105 #:use-module (gnu packages geo)
b29909b4
TGR
106 #:use-module (gnu packages gperf)
107 #:use-module (gnu packages graphviz)
85f5dc19 108 #:use-module (gnu packages gstreamer)
d9c1a22b 109 #:use-module (gnu packages gtk)
6b888eff 110 #:use-module (gnu packages guile)
b645146f 111 #:use-module (gnu packages ibus)
03be9874 112 #:use-module (gnu packages icu4c)
b29909b4
TGR
113 #:use-module (gnu packages image)
114 #:use-module (gnu packages imagemagick)
115 #:use-module (gnu packages inkscape)
9cc98f8a 116 #:use-module (gnu packages iso-codes)
b29909b4 117 #:use-module (gnu packages kerberos)
85f5dc19 118 #:use-module (gnu packages libcanberra)
b64e217f 119 #:use-module (gnu packages libunistring)
75016d07 120 #:use-module (gnu packages libusb)
b29909b4 121 #:use-module (gnu packages linux)
4e3fc547 122 #:use-module (gnu packages lirc)
7b212526 123 #:use-module (gnu packages lua)
b29909b4 124 #:use-module (gnu packages mail)
03be9874 125 #:use-module (gnu packages mp3)
b29909b4 126 #:use-module (gnu packages multiprecision)
64fce637 127 #:use-module (gnu packages music)
b29909b4
TGR
128 #:use-module (gnu packages ncurses)
129 #:use-module (gnu packages nettle)
ba5dd105 130 #:use-module (gnu packages networking)
5fc9b6c1 131 #:use-module (gnu packages ninja)
aff0cce9 132 #:use-module (gnu packages nss)
b29909b4 133 #:use-module (gnu packages openldap)
b645146f 134 #:use-module (gnu packages password-utils)
de1215e2 135 #:use-module (gnu packages pcre)
b29909b4 136 #:use-module (gnu packages pdf)
27477d2d 137 #:use-module (gnu packages perl)
f70d8383 138 #:use-module (gnu packages photo)
995b7261 139 #:use-module (gnu packages pkg-config)
b29909b4
TGR
140 #:use-module (gnu packages polkit)
141 #:use-module (gnu packages popt)
7d3bb433 142 #:use-module (gnu packages pretty-print)
23a22af6 143 #:use-module (gnu packages pulseaudio)
995b7261 144 #:use-module (gnu packages python)
00014781
RW
145 #:use-module (gnu packages python-crypto)
146 #:use-module (gnu packages python-web)
44d10b1f 147 #:use-module (gnu packages python-xyz)
cce0da5e 148 #:use-module (gnu packages rdesktop)
b29909b4 149 #:use-module (gnu packages readline)
a76d0f03 150 #:use-module (gnu packages ruby)
ec47c07d 151 #:use-module (gnu packages rust)
b29909b4 152 #:use-module (gnu packages samba)
75016d07 153 #:use-module (gnu packages scanner)
240cee8a 154 #:use-module (gnu packages selinux)
c27e02bf 155 #:use-module (gnu packages slang)
b29909b4
TGR
156 #:use-module (gnu packages speech)
157 #:use-module (gnu packages spice)
cd0322a3 158 #:use-module (gnu packages sqlite)
4a1bf090 159 #:use-module (gnu packages ssh)
8f9ac901 160 #:use-module (gnu packages tex)
33dc54b0 161 #:use-module (gnu packages time)
a7fd7b68 162 #:use-module (gnu packages tls)
3c5dbd2b 163 #:use-module (gnu packages version-control)
b29909b4 164 #:use-module (gnu packages video)
59132b80 165 #:use-module (gnu packages virtualization)
f2b96b3a 166 #:use-module (gnu packages vpn)
a18f8eaf 167 #:use-module (gnu packages web)
b29909b4
TGR
168 #:use-module (gnu packages webkit)
169 #:use-module (gnu packages xdisorg)
170 #:use-module (gnu packages xiph)
171 #:use-module (gnu packages xml)
d633f2f6 172 #:use-module (gnu packages xorg)
a76d0f03 173 #:use-module (gnu artwork)
8f523eb9 174 #:use-module (guix build-system cargo)
b29909b4
TGR
175 #:use-module (guix build-system cmake)
176 #:use-module (guix build-system glib-or-gtk)
177 #:use-module (guix build-system gnu)
178 #:use-module (guix build-system meson)
08be02be 179 #:use-module (guix build-system python)
b29909b4
TGR
180 #:use-module (guix build-system trivial)
181 #:use-module (guix download)
182 #:use-module (guix git-download)
183 #:use-module ((guix licenses) #:prefix license:)
184 #:use-module (guix packages)
185 #:use-module (guix utils)
a76d0f03 186 #:use-module (guix gexp)
8f523eb9
EF
187 #:use-module (guix monads)
188 #:use-module (guix store)
4e3fdeb7 189 #:use-module (ice-9 match)
c024ae36 190 #:use-module (srfi srfi-1))
85f5dc19
AE
191
192(define-public brasero
193 (package
194 (name "brasero")
e2bf423a 195 (version "3.12.2")
85f5dc19
AE
196 (source (origin
197 (method url-fetch)
d1df7554 198 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 199 (version-major+minor version) "/"
d1df7554 200 "brasero-" version ".tar.xz"))
85f5dc19
AE
201 (sha256
202 (base32
e2bf423a 203 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 204 (build-system glib-or-gtk-build-system)
e8627cd9
DH
205 (arguments
206 `(#:configure-flags (list
207 (string-append "--with-girdir="
208 (assoc-ref %outputs "out")
209 "/share/gir-1.0")
210 (string-append "--with-typelibdir="
211 (assoc-ref %outputs "out")
ce426deb
TD
212 "/lib/girepository-1.0"))
213 #:phases
214 (modify-phases %standard-phases
215 (add-before 'configure 'embed-growisofs
216 (lambda* (#:key inputs #:allow-other-keys)
217 (substitute* "plugins/growisofs/burn-growisofs.c"
218 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 219 #t)))))
85f5dc19
AE
220 (propagated-inputs
221 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
222 (native-inputs
223 `(("intltool" ,intltool)
ba549e17 224 ("itstool" ,itstool)
426adbe8 225 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 226 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 227 ("pkg-config" ,pkg-config)))
85f5dc19 228 (inputs
ce426deb
TD
229 `(("dvd+rw-tools" ,dvd+rw-tools)
230 ("glib" ,glib)
85f5dc19
AE
231 ("gnome-doc-utils" ,gnome-doc-utils)
232 ("gstreamer" ,gstreamer)
233 ("gst-plugins-base" ,gst-plugins-base)
234 ("gtk+" ,gtk+)
85f5dc19
AE
235 ("libcanberra" ,libcanberra)
236 ("libice" ,libice)
237 ("libnotify" ,libnotify)
238 ("libsm" ,libsm)
e8627cd9 239 ("libxml2" ,libxml2)
e8627cd9 240 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 241 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
242 (synopsis "CD/DVD burning tool for Gnome")
243 (description "Brasero is an application to burn CD/DVD for the Gnome
244Desktop. It is designed to be as simple as possible and has some unique
245features to enable users to create their discs easily and quickly.")
1dd26275 246 (license license:gpl2+)))
995b7261 247
29ae18db
RG
248(define-public gnome-color-manager
249 (package
250 (name "gnome-color-manager")
251 (version "3.32.0")
252 (source (origin
253 (method url-fetch)
254 (uri (string-append "mirror://gnome/sources/" name "/"
255 (version-major+minor version) "/"
256 name "-" version ".tar.xz"))
257 (sha256
258 (base32
259 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
260 (build-system meson-build-system)
261 (arguments
262 `(#:glib-or-gtk? #t
263 #:phases
264 (modify-phases %standard-phases
265 (add-before
266 'check 'pre-check
267 (lambda _
268 ;; Tests require a running X server.
269 (system "Xvfb :1 &")
270 (setenv "DISPLAY" ":1")
271 #t)))))
272 (native-inputs
273 `(("desktop-file-utils" ,desktop-file-utils)
274 ("gettext" ,gettext-minimal)
275 ("glib:bin" ,glib "bin")
276 ("gtk+:bin" ,gtk+ "bin")
277 ("itstool" ,itstool)
278 ("pkg-config" ,pkg-config)
279 ("xorg-server" ,xorg-server-for-tests)))
280 (inputs
281 `(("adwaita-icon-theme" ,adwaita-icon-theme)
282 ("appstream-glib" ,appstream-glib)
283 ("colord-gtk" ,colord-gtk)
284 ("exiv2" ,exiv2)
285 ("gnome-desktop" ,gnome-desktop)
286 ("libcanberra" ,libcanberra)
287 ("libexif" ,libexif)
288 ("libtiff" ,libtiff)
289 ("libxrandr" ,libxrandr)
290 ("libxtst" ,libxtst)
291 ("libxxf86vm" ,libxxf86vm)
292 ("vte" ,vte)
293 ("xorgproto" ,xorgproto)))
294 (synopsis "Color profile manager for the GNOME desktop")
295 (description "GNOME Color Manager is a session framework that makes
296it easy to manage, install and generate color profiles
297in the GNOME desktop.")
298 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 299 (license license:gpl2+)))
29ae18db 300
e05471a1
RG
301(define-public gnome-online-miners
302 (package
303 (name "gnome-online-miners")
304 (version "3.30.0")
305 (source (origin
306 (method url-fetch)
307 (uri (string-append "mirror://gnome/sources/" name "/"
308 (version-major+minor version) "/"
309 name "-" version ".tar.xz"))
310 (sha256
311 (base32
312 "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"))))
313 (build-system glib-or-gtk-build-system)
314 (native-inputs
315 `(("gettext" ,gettext-minimal)
316 ("glib:bin" ,glib "bin")
29ae18db 317 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
318 ("gtk+:bin" ,gtk+ "bin")
319 ("pkg-config" ,pkg-config)))
320 (inputs
321 `(("gnome-online-accounts" ,gnome-online-accounts)
322 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
323 ("grilo" ,grilo)
324 ("libgdata" ,libgdata)
325 ("libgfbgraph" ,gfbgraph)
326 ("libzapojit" ,libzapojit)
327 ("rest" ,rest)
328 ("tracker" ,tracker)))
329 (synopsis "Web Crawlers for GNOME")
330 (description "GNOME Online Miners provides a set of crawlers that
331go through your online content and index them locally in Tracker.
332It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
333 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 334 (license license:gpl2+)))
e05471a1 335
e2aed29c
RG
336(define-public gssdp
337 (package
338 (name "gssdp")
339 (version "1.2.2")
340 (source (origin
341 (method url-fetch)
342 (uri (string-append "mirror://gnome/sources/" name "/"
343 (version-major+minor version) "/"
344 name "-" version ".tar.xz"))
345 (sha256
346 (base32
347 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
348 (build-system meson-build-system)
349 (native-inputs
350 `(("gettext" ,gettext-minimal)
351 ("glib:bin" ,glib "bin")
352 ("gobject-introspection" ,gobject-introspection)
353 ("gtk-doc" ,gtk-doc)
354 ("pkg-config" ,pkg-config)
355 ("vala" ,vala)))
356 (inputs
357 `(("gtk+" ,gtk+)
358 ("libsoup" ,libsoup)))
359 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
360Protocol} for GNOME")
361 (description "This package provides a library to handle resource discovery
362and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
363a debugging tool, @command{gssdp-device-sniffer}.")
364 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
365 (license license:lgpl2.0+)))
366
291a85b2
RG
367(define-public gupnp
368 (package
369 (name "gupnp")
370 (version "1.2.2")
371 (source (origin
372 (method url-fetch)
373 (uri (string-append "mirror://gnome/sources/" name "/"
374 (version-major+minor version) "/"
375 name "-" version ".tar.xz"))
376 (sha256
377 (base32
378 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
379 (build-system meson-build-system)
380 (native-inputs
381 `(("gettext" ,gettext-minimal)
382 ("glib:bin" ,glib "bin")
383 ("gobject-introspection" ,gobject-introspection)
384 ("gtk-doc" ,gtk-doc)
385 ("pkg-config" ,pkg-config)
386 ("vala" ,vala)))
387 (inputs
388 `(("gssdp" ,gssdp)
389 ("gtk+" ,gtk+)
390 ("libsoup" ,libsoup)))
391 (synopsis "PnP API for GNOME")
392 (description "This package provides GUPnP, an object-oriented framework
393for creating UPnP devices and control points, written in C using
394@code{GObject} and @code{libsoup}.")
395 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
396 (license license:lgpl2.0+)))
397
747d7fe4
RG
398(define-public gupnp-dlna
399 (package
400 (name "gupnp-dlna")
401 (version "0.10.5")
402 (source (origin
403 (method url-fetch)
404 (uri (string-append "mirror://gnome/sources/" name "/"
405 (version-major+minor version) "/"
406 name "-" version ".tar.xz"))
407 (sha256
408 (base32
409 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
410 (build-system gnu-build-system)
411 (native-inputs
412 `(("gettext" ,gettext-minimal)
413 ("glib:bin" ,glib "bin")
414 ("gobject-introspection" ,gobject-introspection)
415 ("gtk-doc" ,gtk-doc)
416 ("libxml" ,libxml2)
417 ("pkg-config" ,pkg-config)
418 ("vala" ,vala)))
419 (inputs
420 `(("gstreamer" ,gstreamer)
421 ("gupnp" ,gupnp)))
422 (propagated-inputs
423 `(("gst-plugins-base" ,gst-plugins-base)
424 ("gst-plugins-good" ,gst-plugins-good)))
425 (synopsis "GUPnP DLNA for GNOME")
426 (description "This package provides a small utility library to
427support DLNA-related tasks such as media profile guessing, transcoding to a
428given profile, etc. DLNA is a subset of UPnP A/V.")
429 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
430 (license license:lgpl2.0+)))
431
1b4cb628
RG
432(define-public gupnp-av
433 (package
434 (name "gupnp-av")
435 (version "0.12.11")
436 (source (origin
437 (method url-fetch)
438 (uri (string-append "mirror://gnome/sources/" name "/"
439 (version-major+minor version) "/"
440 name "-" version ".tar.xz"))
441 (sha256
442 (base32
443 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
444 (build-system gnu-build-system)
445 (native-inputs
446 `(("gettext" ,gettext-minimal)
447 ("glib:bin" ,glib "bin")
448 ("gobject-introspection" ,gobject-introspection)
449 ("gtk-doc" ,gtk-doc)
450 ("libxml" ,libxml2)
451 ("pkg-config" ,pkg-config)))
452 (inputs
453 `(("gtk+" ,gtk+)
454 ("gupnp" ,gupnp)))
455 (synopsis "GUPnP A/V for GNOME")
456 (description "This package provides a small library for handling
457and implementation of UPnP A/V profiles.")
458 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
459 (license license:lgpl2.0+)))
e05471a1 460
02ebbca8
RG
461(define-public libmediaart
462 (package
463 (name "libmediaart")
464 (version "1.9.4")
465 (source (origin
466 (method url-fetch)
467 (uri (string-append "mirror://gnome/sources/" name "/"
468 (version-major+minor version) "/"
469 name "-" version ".tar.xz"))
470 (sha256
471 (base32
472 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
473 (build-system gnu-build-system)
474 (native-inputs
475 `(("glib:bin" ,glib "bin")
476 ("pkg-config" ,pkg-config)))
477 (inputs
478 `(("gdk-pixbuf" ,gdk-pixbuf)
479 ("gettext" ,gettext-minimal)
480 ("gobject-introspection" ,gobject-introspection)
481 ("gtk+:doc", gtk+ "doc")
482 ("vala" ,vala)))
483 (synopsis "Media art library for the GNOME desktop")
484 (description
485 "The libmediaart library is the foundation for media art caching,
486extraction, and lookup for applications on the desktop.")
487 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
488 (license license:lgpl2.1+)))
489
a26680eb
RG
490(define-public gnome-initial-setup
491 (package
492 (name "gnome-initial-setup")
493 (version "3.32.1")
494 (source (origin
495 (method url-fetch)
496 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
497 (version-major+minor version)
498 "/gnome-initial-setup-" version ".tar.xz"))
499 (sha256
500 (base32
501 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
502 (build-system meson-build-system)
503 (arguments
a65cc579
DM
504 '(#:configure-flags '(;; Enable camera support for user selfie.
505 "-Dcheese=auto"
506 "-Dsystemd=false")))
a26680eb
RG
507 (native-inputs
508 `(("gettext" ,gettext-minimal)
509 ("glib:bin" ,glib "bin")
510 ("gobject-introspection" ,gobject-introspection)
511 ("gtk+:bin" ,gtk+ "bin")
512 ("pkg-config" ,pkg-config)))
513 (inputs
514 `(("accountsservice" ,accountsservice)
515 ;("adwaita-icon-theme" ,adwaita-icon-theme)
516 ("gdm" ,gdm)
517 ("geoclue" ,geoclue)
518 ("gnome-desktop" ,gnome-desktop)
519 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
520 ("gnome-online-accounts" ,gnome-online-accounts)
521 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
522 ("gstreamer" ,gstreamer)
523 ("ibus" ,ibus)
524 ("json-glib" ,json-glib)
525 ("krb5" ,mit-krb5)
526 ("libgweather" ,libgweather)
527 ("libsecret" ,libsecret)
528 ("network-manager" ,network-manager)
529 ("network-manager-applet" ,network-manager-applet)
530 ("packagekit" ,packagekit)
531 ("polkit" ,polkit)
532 ("pwquality" ,libpwquality)
533 ("rest" ,rest)
534 ("upower" ,upower)
535 ("webkitgtk" ,webkitgtk)))
536 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
537 (description "This package provides a set-up wizard when a
538user logs into GNOME for the first time. It typically provides a
539tour of all gnome components and allows the user to set them up.")
a26680eb
RG
540 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
541 (license license:gpl2)))
542
b5f01392
RG
543(define-public gnome-user-share
544 (package
545 (name "gnome-user-share")
546 (version "3.33.1")
547 (source (origin
548 (method url-fetch)
549 (uri (string-append "mirror://gnome/sources/" name "/"
550 (version-major+minor version) "/"
551 name "-" version ".tar.xz"))
552 (sha256
553 (base32
554 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
555 (build-system meson-build-system)
556 (arguments
557 `(#:glib-or-gtk? #t
558 #:configure-flags
559 `("-Dsystemd=false"
560 ;; Enable nautilus extension for file sharing.
561 "-Dnautilus_extension=true")))
562 (native-inputs
563 `(("gettext" ,gettext-minimal)
564 ("glib:bin" ,glib "bin")
565 ("gobject-introspection" ,gobject-introspection)
566 ("gtk+:bin" ,gtk+ "bin")
567 ("pkg-config" ,pkg-config)
568 ("yelp-tools" ,yelp-tools)))
569 (inputs
570 `(("glib" ,glib)
571 ("gnome-bluetooth" ,gnome-bluetooth)
572 ("gtk+" ,gtk+)
573 ("libcanberra" ,libcanberra)
574 ("libnotify" ,libnotify)
575 ("nautilus" ,nautilus))) ; For nautilus extension.
576 (synopsis "File sharing for GNOME desktop")
577 (description "GNOME User Share is a small package that binds together
578various free software projects to bring easy to use user-level file
579sharing to the masses.")
580 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 581 (license license:gpl2+)))
b5f01392 582
04b201bb
RG
583(define-public sushi
584 (package
585 (name "sushi")
586 (version "3.32.1")
587 (source (origin
588 (method url-fetch)
589 (uri (string-append "mirror://gnome/sources/" name "/"
590 (version-major+minor version) "/"
591 name "-" version ".tar.xz"))
592 (sha256
593 (base32
594 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
595 (build-system meson-build-system)
596 (arguments
597 `(#:glib-or-gtk? #t
598 #:phases
599 (modify-phases %standard-phases
600 (add-after 'glib-or-gtk-wrap 'wrap-typelib
601 (lambda* (#:key outputs #:allow-other-keys)
602 (let ((prog (string-append (assoc-ref outputs "out")
603 "/bin/sushi")))
604 ;; Put existing typelibs before sushi's deps, so as to correctly
605 ;; infer gdk-pixbuf
606 (wrap-program prog
607 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
608 #t))))))
609 (native-inputs
610 `(("glib:bin" ,glib "bin")
611 ("gettext" ,gettext-minimal)
612 ("gobject-introspection" ,gobject-introspection)
613 ("pkg-config" ,pkg-config)))
614 (inputs
615 `(("clutter" ,clutter)
616 ("clutter-gst" ,clutter-gst)
617 ("clutter-gtk" ,clutter-gtk)
618 ("evince" ,evince) ; For file previewing.
619 ("freetype" ,freetype)
620 ("gdk-pixbuf" ,gdk-pixbuf)
621 ("gjs" ,gjs)
622 ("gst-plugins-base" ,gst-plugins-base)
623 ("gstreamer" ,gstreamer)
624 ("gtksourceview" ,gtksourceview-3)
625 ("harfbuzz" ,harfbuzz)
626 ("libepoxy" ,libepoxy)
627 ("libmusicbrainz" ,libmusicbrainz)
628 ("libxml2" ,libxml2)
629 ("neon" ,neon)
630 ("webkitgtk" ,webkitgtk)))
631 (synopsis "File previewer for the GNOME desktop")
632 (description "Sushi is a DBus-activated service that allows applications to
633preview files on the GNOME desktop.")
634 (home-page "https://gitlab.gnome.org/GNOME/sushi")
635 (license license:gpl2+)))
636
89af0902
RG
637(define-public rygel
638 (package
639 (name "rygel")
640 (version "0.38.3")
641 (source (origin
642 (method url-fetch)
643 (uri (string-append "mirror://gnome/sources/" name "/"
644 (version-major+minor version) "/"
645 name "-" version ".tar.xz"))
646 (sha256
647 (base32
648 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
649 (build-system gnu-build-system)
650 (native-inputs
651 `(("gettext" ,gettext-minimal)
652 ("gobject-introspection" ,gobject-introspection)
653 ("gtk-doc" ,gtk-doc)
654 ("pkg-config" ,pkg-config)
655 ("vala" ,vala)))
656 (inputs
657 `(("gdk-pixbuf" ,gdk-pixbuf)
658 ("gssdp" ,gssdp)
659 ("gstreamer" ,gstreamer)
660 ("gst-plugins-base" ,gst-plugins-base)
661 ("gtk+" ,gtk+)
662 ("gupnp" ,gupnp)
663 ("gupnp-av" ,gupnp-av)
664 ("gupnp-dlna" ,gupnp-dlna)
665 ("libgee" ,libgee)
666 ("libmediaart" ,libmediaart)
667 ("libsoup" ,libsoup)
668 ("libxslt" ,libxslt)
669 ("libunistring" ,libunistring)
670 ("tracker" ,tracker)))
671 (synopsis "Share audio, video, and pictures with other devices")
672 (description
673 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
674MediaRenderer}) for GNOME that allows you to easily share audio, video, and
675pictures, and to control a media player on your home network.
676
677Rygel achieves interoperability with other devices by trying to conform to the
678strict requirements of DLNA and by converting media on-the-fly to formats that
679client devices can handle.")
680 (home-page "https://wiki.gnome.org/Projects/Rygel")
681 (license (list
682 ;; For logo (data/icons/*).
683 license:cc-by-sa3.0
684 ;; For all others.
685 license:lgpl2.1+))))
686
47e87093
RG
687(define-public libnma
688 (package
689 (name "libnma")
690 (version "1.8.26")
691 (source (origin
692 (method url-fetch)
693 (uri (string-append "mirror://gnome/sources/" name "/"
694 (version-major+minor version) "/"
695 name "-" version ".tar.xz"))
696 (sha256
697 (base32
698 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
699 (build-system meson-build-system)
700 (arguments
701 `(#:glib-or-gtk? #t))
702 (native-inputs
703 `(("gettext" ,gettext-minimal)
704 ("glib:bin" ,glib "bin")
705 ("gtk-doc" ,gtk-doc)
706 ("gobject-introspection" ,gobject-introspection)
707 ("pkg-config" ,pkg-config)))
708 (inputs
709 `(("adwaita-icon-theme" ,adwaita-icon-theme)
710 ("gcr" ,gcr)
711 ("gtk+" ,gtk+)
712 ("iso-codes" ,iso-codes)
713 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
714 ("network-manager" ,network-manager)))
715 (synopsis "Network Manager's applet library")
716 (description "Libnma is an applet library for Network Manager. It was
717initially part of network-manager-applet and has now become a separate
718project.")
719 (home-page "https://gitlab.gnome.org/GNOME/libnma")
720
721 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
722 ;; "LGPL-2.1+".
723 (license license:gpl2+)))
724
30416265
RG
725(define-public gnome-menus
726 (package
727 (name "gnome-menus")
728 (version "3.32.0")
729 (source (origin
730 (method url-fetch)
731 (uri (string-append "mirror://gnome/sources/gnome-menus/"
732 (version-major+minor version) "/"
733 name "-" version ".tar.xz"))
734 (sha256
735 (base32
736 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
737 (build-system gnu-build-system)
738 (native-inputs
739 `(("gettext" ,gettext-minimal)
740 ("glib" ,glib)
741 ("pkg-config" ,pkg-config)))
742 (synopsis "Menu support for GNOME desktop")
743 (description "GNOME Menus contains the libgnome-menu library, the layout
744configuration files for the GNOME menu, as well as a simple menu editor.")
745 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 746 (license license:lgpl2.0+)))
30416265 747
d61a894b
CB
748(define-public deja-dup
749 (package
750 (name "deja-dup")
751 (version "34.3")
752 (source (origin
753 (method url-fetch)
754 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
755 (sha256
756 (base32
757 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
758 (patches
759 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
760 (build-system glib-or-gtk-build-system)
761 (arguments
762 `(#:modules ((guix build gnu-build-system)
763 ((guix build cmake-build-system) #:prefix cmake:)
764 (guix build glib-or-gtk-build-system)
765 (guix build utils))
766 #:imported-modules (,@%glib-or-gtk-build-system-modules
767 (guix build cmake-build-system))
768 #:test-target "test"
769 #:configure-flags (list (string-append
770 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
771 (string-append
772 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
773 #:phases
774 (modify-phases %standard-phases
775 (add-after 'unpack 'patch-lockfile-deletion
776 (lambda rest
777 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
778 (("/bin/rm")
779 (which "rm")))))
780 (replace 'configure
781 (assoc-ref cmake:%standard-phases 'configure))
782 (delete 'check) ;; Fails due to issues with DBus
783 (add-after 'install 'wrap-deja-dup
784 (lambda* (#:key inputs outputs #:allow-other-keys)
785 (let ((python (assoc-ref inputs "python"))
786 (python-path (getenv "PYTHONPATH"))
787 (duplicity (assoc-ref inputs "duplicity"))
788 (out (assoc-ref outputs "out")))
789 (for-each
790 (lambda (program)
791 (wrap-program program
792 `("PATH" ":" prefix (,(string-append python "/bin")
793 ,(string-append duplicity "/bin"))))
794 (wrap-program program
795 `("PYTHONPATH" ":" prefix (,python-path))))
796
797 (find-files (string-append out "/bin")))
798 #t))))))
799 (inputs
800 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
801 ("gobject-introspection" ,gobject-introspection)
802 ("duplicity" ,duplicity)
61506fe5 803 ("python" ,python-2)
d61a894b
CB
804 ("python-pygobject" ,python2-pygobject)
805 ("gtk+" ,gtk+)
806 ("libnotify" ,libnotify)
807 ("libpeas" ,libpeas)
808 ("libsecret" ,libsecret)
809 ("packagekit" ,packagekit)))
810 (native-inputs
811 `(("pkg-config" ,pkg-config)
812 ("vala" ,vala)
813 ("gettext" ,gettext-minimal)
814 ("itstool" ,itstool)
815 ("intltool" ,intltool)
c69959f0 816 ("cmake" ,cmake-minimal)))
d61a894b
CB
817 (home-page "https://launchpad.net/deja-dup")
818 (synopsis "Simple backup tool, for regular encrypted backups")
819 (description
820 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
821uses duplicity as the backend, which supports incremental backups and storage
822either on a local, or remote machine via a number of methods.")
823 (license license:gpl3+)))
824
823b77fb
RG
825(define-public gnome-user-docs
826 (package
827 (name "gnome-user-docs")
828 (version "3.32.3")
829 (source
830 (origin
831 (method url-fetch)
832 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
833 (version-major+minor version)
834 "/gnome-user-docs-" version ".tar.xz"))
835 (sha256
836 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
837 (build-system gnu-build-system)
838 (native-inputs
839 `(("gettext" ,gettext-minimal)
840 ("itstool" ,itstool)
841 ("pkg-config" ,pkg-config)
842 ("xmllint" ,libxml2)))
843 (synopsis "User documentation for the GNOME desktop")
844 (description
845 "The GNOME User Documentation explains how to use the GNOME desktop and its
846components. It covers usage and setup of the core GNOME programs by end-users
847and system administrators.")
848 (home-page "https://live.gnome.org/DocumentationProject")
849 (license license:cc-by3.0)))
850
be93299d
RG
851(define-public gnome-getting-started-docs
852 (package
853 (name "gnome-getting-started-docs")
854 (version "3.32.2")
855 (source
856 (origin
857 (method url-fetch)
858 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
859 (version-major+minor version)
860 "/gnome-getting-started-docs-" version ".tar.xz"))
861 (sha256
862 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
863 (build-system gnu-build-system)
864 (native-inputs
865 `(("gettext" ,gettext-minimal)
866 ("itstool" ,itstool)
867 ("pkg-config" ,pkg-config)
868 ("xmllint" ,libxml2)))
869 (synopsis "Help to get new users started with the GNOME desktop")
870 (description
871 "The GNOME Getting Started Documentation contains GNOME's intuitive
872\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
873
874It is normally used together with @command{gnome-initial-setup}, but is also
875useful as a tutorial and users' guide for new or less experienced users.")
876 (home-page "https://live.gnome.org/DocumentationProject")
877 (license license:cc-by-sa3.0)))
878
a56be436
RJ
879(define-public dia
880 ;; This version from GNOME's repository includes fixes for compiling with
881 ;; recent versions of the build tools. The latest activity on the
882 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
883 ;; fixes in 2016.
884 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
885 (package
886 (name "dia")
914c8cdf 887 (version (git-version "0.97.3" "1" commit))
a56be436
RJ
888 (source (origin
889 (method git-fetch)
890 (uri (git-reference
914c8cdf 891 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 892 (commit commit)))
914c8cdf 893 (file-name (git-file-name name version))
a56be436
RJ
894 (sha256
895 (base32
896 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
897 (build-system gnu-build-system)
898 (inputs
a315afa3 899 `(("freetype" ,freetype)
a56be436
RJ
900 ("gdk-pixbuf" ,gdk-pixbuf)
901 ("gtk+" ,gtk+-2)
a315afa3 902 ("libart-lgpl" ,libart-lgpl)
a56be436 903 ("libxml2" ,libxml2)
a315afa3 904 ("pango" ,pango)))
a56be436 905 (native-inputs
a315afa3 906 `(("autoconf" ,autoconf)
a56be436 907 ("automake" ,automake)
a315afa3
EF
908 ("intltool" ,intltool)
909 ("glib" ,glib "bin")
a56be436
RJ
910 ("libtool" ,libtool)
911 ("perl" ,perl)
a315afa3 912 ("pkg-config" ,pkg-config)
a56be436
RJ
913 ("python-wrapper" ,python-wrapper)))
914 (arguments
915 `(#:phases
916 (modify-phases %standard-phases
4b3e91de 917 (add-before 'bootstrap 'dont-configure-during-bootstrap
a56be436 918 (lambda _
4b3e91de
EF
919 (setenv "NOCONFIGURE" "true")
920 #t)))))
a56be436
RJ
921 (home-page "https://wiki.gnome.org/Apps/Dia")
922 (synopsis "Diagram creation for GNOME")
923 (description "Dia can be used to draw different types of diagrams, and
924includes support for UML static structure diagrams (class diagrams), entity
925relationship modeling, and network diagrams. The program supports various file
926formats like PNG, SVG, PDF and EPS.")
927 (license license:gpl2+))))
928
d0b19e44
RW
929;; This is the unstable release, but it is required for the current stable
930;; release of gvfs (1.38.1).
adc5cb1b
KK
931(define-public libgdata
932 (package
933 (name "libgdata")
d0b19e44 934 (version "0.17.9")
adc5cb1b
KK
935 (source (origin
936 (method url-fetch)
937 (uri (string-append "mirror://gnome/sources/" name "/"
938 (version-major+minor version) "/"
939 name "-" version ".tar.xz"))
940 (sha256
941 (base32
d0b19e44 942 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
943 (build-system gnu-build-system)
944 (arguments
945 '(#:phases
946 (modify-phases %standard-phases
448052b7
TGR
947 (add-before 'check 'disable-failing-tests
948 (lambda _
949 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
950 ;; They have been removed in libgdata 0.17.6, so just do the same.
951 (substitute* "gdata/tests/Makefile"
952 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
953 #t)))))
954 (native-inputs
955 `(("glib:bin" ,glib "bin")
956 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
957 ("intltool" ,intltool)
958 ("pkg-config" ,pkg-config)
959 ("uhttpmock" ,uhttpmock)))
960 (inputs
961 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 962 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
963 (propagated-inputs
964 `(("gcr" ,gcr)
d0b19e44 965 ("glib" ,glib)
14c297fd 966 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 967 ("json-glib" ,json-glib)
adc5cb1b 968 ("liboauth" ,liboauth)
d0b19e44 969 ("libsoup" ,libsoup)
adc5cb1b
KK
970 ("libxml2" ,libxml2)))
971 (home-page "https://wiki.gnome.org/Projects/libgdata")
972 (synopsis "Library for accessing online service APIs")
973 (description
974 "libgdata is a GLib-based library for accessing online service APIs using
975the GData protocol — most notably, Google's services. It provides APIs to
976access the common Google services, and has full asynchronous support.")
977 (license license:lgpl2.1+)))
978
94e10cf4
KK
979(define-public libgxps
980 (package
981 (name "libgxps")
66470a5a 982 (version "0.3.1")
94e10cf4
KK
983 (source (origin
984 (method url-fetch)
7f10628c 985 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
986 (version-major+minor version) "/"
987 name "-" version ".tar.xz"))
988 (sha256
989 (base32
66470a5a 990 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 991 (build-system meson-build-system)
94e10cf4
KK
992 (native-inputs
993 `(("gobject-introspection" ,gobject-introspection)
994 ("pkg-config" ,pkg-config)))
995 (inputs
c8d62d93 996 `(("gtk+" ,gtk+)
b6b3e512 997 ("libjpeg" ,libjpeg-turbo)
94e10cf4 998 ("lcms" ,lcms)
0a6e9e13 999 ("libtiff" ,libtiff)))
c8d62d93
MB
1000 (propagated-inputs
1001 ;; In Requires of libgxps.pc.
1002 `(("cairo" ,cairo)
1003 ("glib" ,glib)
1004 ("libarchive" ,libarchive)))
94e10cf4
KK
1005 (home-page "https://wiki.gnome.org/Projects/libgxps")
1006 (synopsis "GObject-based library for handling and rendering XPS documents")
1007 (description
1008 "libgxps is a GObject-based library for handling and rendering XPS
1009documents. This package also contains binaries that can convert XPS documents
1010to other formats.")
1011 (license license:lgpl2.1+)))
1012
4e09f57a
RG
1013(define-public gnome-characters
1014 (package
1015 (name "gnome-characters")
1016 (version "3.30.0")
1017 (source
1018 (origin
1019 (method url-fetch)
1020 (uri (string-append "mirror://gnome/sources/"
1021 "gnome-characters/" (version-major+minor version)
1022 "/gnome-characters-" version ".tar.xz"))
1023 (sha256
1024 (base32
1025 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1026 (build-system meson-build-system)
5757c641 1027 (arguments
1028 `(#:glib-or-gtk? #t
1029 #:phases (modify-phases %standard-phases
1030 (add-after 'install 'wrap
1031 (lambda* (#:key outputs #:allow-other-keys)
1032 ;; GNOME Characters needs Typelib files from GTK and
1033 ;; gnome-desktop.
1034 (wrap-program (string-append (assoc-ref outputs "out")
1035 "/bin/gnome-characters")
1036 `("GI_TYPELIB_PATH" ":" prefix
1037 (,(getenv "GI_TYPELIB_PATH"))))
1038 #t)))))
4e09f57a
RG
1039 (native-inputs
1040 `(("gettext" ,gettext-minimal)
1041 ("glib:bin" ,glib "bin")
1042 ("gtk+:bin" ,gtk+ "bin")
1043 ("pkg-config" ,pkg-config)
1044 ("python" ,python-minimal)))
1045 (inputs
1046 `(("gjs" ,gjs)
1047 ("gtk+" ,gtk+)
5757c641 1048 ("libunistring" ,libunistring)
1049 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1050 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1051 (synopsis "Find and insert unusual characters")
1052 (description "Characters is a simple utility application to find
1053and insert unusual characters. It allows you to quickly find the
1054character you are looking for by searching for keywords.")
1055 (license license:bsd-3)))
1056
7aab13f1
ML
1057(define-public gnome-common
1058 (package
1059 (name "gnome-common")
af83490d 1060 (version "3.18.0")
7aab13f1
ML
1061 (source
1062 (origin
1063 (method url-fetch)
1064 (uri (string-append "mirror://gnome/sources/" name "/"
1065 (version-major+minor version) "/"
1066 name "-" version ".tar.xz"))
1067 (sha256
1068 (base32
af83490d 1069 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1070 (build-system gnu-build-system)
1071 (home-page "https://www.gnome.org/")
1072 (synopsis "Bootstrap GNOME modules built from Git")
1073 (description "gnome-common contains various files needed to bootstrap
1074GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1075can be used to configure a source directory checked out from Git and some
1076commonly used macros.")
1077 (license license:gpl2+)))
1078
4e868d22
RG
1079(define-public gnome-contacts
1080 (package
1081 (name "gnome-contacts")
6a6138b2 1082 (version "3.32.1")
4e868d22
RG
1083 (source (origin
1084 (method url-fetch)
1085 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1086 (version-major+minor version) "/"
1087 name "-" version ".tar.xz"))
1088 (sha256
1089 (base32
6a6138b2 1090 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
4e868d22
RG
1091 (build-system meson-build-system)
1092 (arguments
1093 `(#:phases
1094 (modify-phases %standard-phases
1095 (add-after 'unpack 'generate-vapis
1096 (lambda* (#:key inputs #:allow-other-keys)
1097 ;; To generate goa's missing .vapi file
1098 (define goa
1099 (assoc-ref inputs "gnome-online-accounts:lib"))
1100
1101 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1102 "--library=goa-1.0"
1103 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1104 #t)))))
1105 (native-inputs
1106 `(("glib:bin" ,glib "bin")
1107 ("gtk+:bin" ,gtk+ "bin")
1108 ("pkg-config" ,pkg-config)))
1109 (inputs
1110 `(("cheese" ,cheese)
1111 ("docbook-xml" ,docbook-xml)
1112 ("dockbook-xsl" ,docbook-xsl)
1113 ("evolution-data-server" ,evolution-data-server)
1114 ("gettext" ,gettext-minimal)
1115 ("gnome-desktop" ,gnome-desktop)
1116 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1117 ("gobject-introspection" ,gobject-introspection)
1118 ("gst-plugins-base" ,gst-plugins-base)
1119 ("gtk+" ,gtk+)
1120 ("libgee" ,libgee)
1121 ("libxslt" ,libxslt)
1122 ("telepathy-glib" ,telepathy-glib)
1123 ("vala" ,vala)))
1124 (propagated-inputs
1125 `(("folks", folks)
1126 ("telepathy-mission-control" ,telepathy-mission-control)))
1127 (synopsis "GNOME's integrated address book")
1128 (description
1129 "GNOME Contacts organizes your contact information from online and
1130offline sources, providing a centralized place for managing your contacts.")
1131 (home-page "https://wiki.gnome.org/Apps/Contacts")
1132 (license license:gpl2+)))
1133
9cc98f8a
CR
1134(define-public gnome-desktop
1135 (package
1136 (name "gnome-desktop")
e8a26caa 1137 (version "3.32.2")
9cc98f8a
CR
1138 (source
1139 (origin
1140 (method url-fetch)
b38e45d8
EB
1141 (uri (string-append "mirror://gnome/sources/" name "/"
1142 (version-major+minor version) "/"
9cc98f8a
CR
1143 name "-" version ".tar.xz"))
1144 (sha256
1145 (base32
e8a26caa
KK
1146 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
1147 (build-system meson-build-system)
a0fe7c06
CB
1148 (arguments
1149 '(#:phases
1150 (modify-phases %standard-phases
1151 (add-before 'configure 'patch-path
1152 (lambda* (#:key inputs #:allow-other-keys)
1153 (let ((libc (assoc-ref inputs "libc")))
1154 (substitute* "libgnome-desktop/gnome-languages.c"
1155 (("\"locale\"")
1156 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
1157 #t)))
1158 (add-before 'check 'pre-check
1159 (lambda* (#:key inputs #:allow-other-keys)
1160 ;; Tests require a running X server and locales.
1161 (system "Xvfb :1 &")
1162 (setenv "DISPLAY" ":1")
1163 (setenv "GUIX_LOCPATH"
1164 (string-append (assoc-ref inputs "glibc-locales")
1165 "/lib/locale"))
1166 #t)))))
9cc98f8a 1167 (native-inputs
e8a26caa
KK
1168 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1169 ("glibc-locales" ,glibc-locales) ; for tests
1170 ("gobject-introspection" ,gobject-introspection)
a8340482 1171 ("itstool" ,itstool)
bcb354ad
SB
1172 ("intltool" ,intltool)
1173 ("pkg-config" ,pkg-config)
e8a26caa
KK
1174 ("xmllint" ,libxml2)
1175 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1176 (propagated-inputs
1177 ;; Required by gnome-desktop-3.0.pc.
1178 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1179 ("gtk+" ,gtk+)
9cc98f8a 1180 ("iso-codes" ,iso-codes)
9863ce20 1181 ("libseccomp" ,libseccomp)
9cc98f8a 1182 ("libx11" ,libx11)
e8a26caa
KK
1183 ("xkeyboard-config" ,xkeyboard-config)))
1184 (inputs
1185 `(("gdk-pixbuf" ,gdk-pixbuf)
1186 ("glib" ,glib)
9cc98f8a
CR
1187 ("libxext" ,libxext)
1188 ("libxkbfile" ,libxkbfile)
e8a26caa 1189 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1190 (home-page "https://www.gnome.org/")
1191 (synopsis
35b9e423 1192 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1193 (description
1194 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1195on the desktop, but that cannot live in the platform for various reasons.
1196There is no API or ABI guarantee, although we are doing our best to provide
1197stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1198
1199The gnome-about program helps find which version of GNOME is installed.")
1200 ; Some bits under the LGPL.
1dd26275 1201 (license license:gpl2+)))
9cc98f8a 1202
995b7261
AE
1203(define-public gnome-doc-utils
1204 (package
1205 (name "gnome-doc-utils")
1206 (version "0.20.10")
1207 (source
1208 (origin
1209 (method url-fetch)
b38e45d8
EB
1210 (uri (string-append "mirror://gnome/sources/" name "/"
1211 (version-major+minor version) "/"
995b7261
AE
1212 name "-" version ".tar.xz"))
1213 (sha256
1214 (base32
1215 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1216 (build-system gnu-build-system)
c4c4cc05 1217 (native-inputs
995b7261 1218 `(("intltool" ,intltool)
b4ce6300 1219 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1220 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1221 ("libxml2" ,libxml2)
1222 ("libxslt" ,libxslt)
1223 ("pkg-config" ,pkg-config)
1224 ("python-2" ,python-2)))
995b7261
AE
1225 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1226 (synopsis
1227 "Documentation utilities for the Gnome project")
1228 (description
1229 "Gnome-doc-utils is a collection of documentation utilities for the
1230Gnome project. It includes xml2po tool which makes it easier to translate
1231and keep up to date translations of documentation.")
1dd26275 1232 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1233
6c4f7022
DC
1234(define-public gnome-disk-utility
1235 (package
1236 (name "gnome-disk-utility")
e106d0a6 1237 (version "3.32.1")
6c4f7022
DC
1238 (source (origin
1239 (method url-fetch)
1240 (uri (string-append "mirror://gnome/sources/" name "/"
1241 (version-major+minor version) "/"
1242 name "-" version ".tar.xz"))
1243 (sha256
1244 (base32
e106d0a6 1245 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
4b9a65bf 1246 (build-system meson-build-system)
321c73c3
EF
1247 (arguments
1248 '(#:phases
1249 (modify-phases %standard-phases
1250 (add-after 'unpack 'skip-gtk-update-icon-cache
1251 ;; Don't create 'icon-theme.cache'.
1252 (lambda _
1253 (substitute* "meson_post_install.py"
1254 (("gtk-update-icon-cache") "true"))
1255 #t)))))
6c4f7022
DC
1256 (native-inputs
1257 `(("glib:bin" ,glib "bin")
1258 ("intltool" ,intltool)
1259 ("pkg-config" ,pkg-config)
1260 ("docbook-xml" ,docbook-xml)
1261 ("docbook-xsl" ,docbook-xsl)
1262 ("libxml2" ,libxml2)
1263 ("libxslt" ,libxslt)))
1264 (inputs
1265 `(("glib" ,glib)
1266 ("appstream-glib" ,appstream-glib)
1267 ("gnome-settings-daemon" ,gnome-settings-daemon)
1268 ("gtk+" ,gtk+)
1269 ("libcanberra" ,libcanberra)
1270 ("libdvdread" ,libdvdread)
1271 ("libnotify" ,libnotify)
1272 ("libpwquality" ,libpwquality)
1273 ("libsecret" ,libsecret)
1274 ("udisks" ,udisks)))
1275 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1276 (synopsis "Disk management utility for GNOME")
1277 (description "Disk management utility for GNOME.")
1278 (license license:gpl2+)))
1279
3d217317
RG
1280(define-public gnome-font-viewer
1281 (package
1282 (name "gnome-font-viewer")
1283 (version "3.30.0")
1284 (source (origin
1285 (method url-fetch)
1286 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1287 (version-major+minor version)
1288 "/gnome-font-viewer-" version ".tar.xz"))
1289 (sha256
1290 (base32
1291 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1292 (build-system meson-build-system)
1293 (arguments
1294 '(#:phases
1295 (modify-phases %standard-phases
1296 (add-after 'unpack 'patch-post-install-script
1297 (lambda _
1298 (substitute* "meson-postinstall.sh"
1299 (("update-desktop-database") (which "true")))
1300 #t)))))
1301 (native-inputs
1302 `(("gettext" ,gettext-minimal)
1303 ("glib:bin" ,glib "bin")
1304 ("pkg-config" ,pkg-config)))
1305 (inputs
1306 `(("glib" ,glib)
1307 ("gnome-desktop" ,gnome-desktop)
1308 ("gtk+" ,gtk+)))
1309 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1310 (synopsis "GNOME Fonts")
1311 (description "Application to show you the fonts installed on your computer
1312for your use as thumbnails. Selecting any thumbnails shows the full view of how
1313the font would look under various sizes.")
1314 (license license:gpl2+)))
1315
8ff49011
RW
1316(define-public gcr
1317 (package
1318 (name "gcr")
1de804da 1319 (version "3.34.0")
8ff49011 1320 (source (origin
0daf0efb
RW
1321 (method url-fetch)
1322 (uri (string-append "mirror://gnome/sources/" name "/"
1323 (version-major+minor version) "/"
1324 name "-" version ".tar.xz"))
1325 (sha256
1326 (base32
1de804da 1327 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
8ff49011
RW
1328 (build-system gnu-build-system)
1329 (arguments
0daf0efb
RW
1330 '(#:phases
1331 (modify-phases %standard-phases
1332 ;; These fail because /var/lib/dbus/machine-id is not present in the
1333 ;; build environment.
1334 (add-after 'unpack 'disable-failing-tests
1335 (lambda _
1de804da
MB
1336 (substitute* "Makefile.in"
1337 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1338 ""))
0daf0efb
RW
1339 #t))
1340 (add-before 'check 'pre-check
1341 (lambda _
1342 ;; Some tests expect to write to $HOME.
1343 (setenv "HOME" "/tmp")
1344 #t)))))
8ff49011
RW
1345 (inputs
1346 `(("dbus" ,dbus)
0daf0efb 1347 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1348 ("libgcrypt" ,libgcrypt)))
1349 (native-inputs
1de804da 1350 `(("python" ,python-wrapper) ;for tests
8ff49011 1351 ("pkg-config" ,pkg-config)
1de804da 1352 ("gettext" ,gettext-minimal)
8ff49011 1353 ("glib" ,glib "bin")
2af4f5b0 1354 ("gobject-introspection" ,gobject-introspection)
0daf0efb 1355 ("libxml2" ,libxml2)
bea6b829 1356 ("vala" ,vala)
2af4f5b0 1357 ("xsltproc" ,libxslt)))
8ff49011
RW
1358 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1359 (propagated-inputs
1360 `(("p11-kit" ,p11-kit)
1361 ("glib" ,glib)
1362 ("gtk+" ,gtk+)))
f032d0be 1363 (home-page "https://www.gnome.org")
8ff49011
RW
1364 (synopsis "Libraries for displaying certificates and accessing key stores")
1365 (description
1366 "The GCR package contains libraries used for displaying certificates and
1367accessing key stores. It also provides the viewer for crypto files on the
1368GNOME Desktop.")
1369 (license license:lgpl2.1+)))
1370
c1354b90
LC
1371(define-public libgnome-keyring
1372 (package
1373 (name "libgnome-keyring")
5e8aec2c 1374 (version "3.12.0")
c1354b90
LC
1375 (source (origin
1376 (method url-fetch)
b38e45d8
EB
1377 (uri (string-append "mirror://gnome/sources/" name "/"
1378 (version-major+minor version) "/"
1379 name "-" version ".tar.xz"))
c1354b90
LC
1380 (sha256
1381 (base32
5e8aec2c 1382 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1383 (build-system gnu-build-system)
c1354b90 1384 (inputs
c4c4cc05 1385 `(("libgcrypt" ,libgcrypt)
c1354b90 1386 ("dbus" ,dbus)))
c4c4cc05
JD
1387 (native-inputs
1388 `(("pkg-config" ,pkg-config)
426adbe8 1389 ("glib" ,glib "bin")
c4c4cc05 1390 ("intltool" ,intltool)))
c1354b90
LC
1391 (propagated-inputs
1392 ;; Referred to in .h files and .pc.
1393 `(("glib" ,glib)))
f032d0be 1394 (home-page "https://www.gnome.org")
c1354b90
LC
1395 (synopsis "Accessing passwords from the GNOME keyring")
1396 (description
1397 "Client library to access passwords from the GNOME keyring.")
1398
1399 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1400 (license license:lgpl2.0+)))
c1354b90 1401
e99a3d6f
RW
1402(define-public gnome-keyring
1403 (package
1404 (name "gnome-keyring")
ab35cc6e 1405 (version "3.28.2")
e99a3d6f
RW
1406 (source (origin
1407 (method url-fetch)
1408 (uri (string-append "mirror://gnome/sources/" name "/"
1409 (version-major+minor version) "/"
1410 name "-" version ".tar.xz"))
1411 (sha256
1412 (base32
ab35cc6e 1413 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
e99a3d6f
RW
1414 (build-system gnu-build-system)
1415 (arguments
1416 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1417 ;not exist
1418 #:configure-flags
1419 (list
1420 (string-append "--with-pkcs11-config="
1421 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1422 (string-append "--with-pkcs11-modules="
1423 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1424 #:phases
1425 (modify-phases %standard-phases
ab35cc6e
RW
1426 (add-after 'unpack 'fix-/bin/sh-reference
1427 (lambda _
1428 (substitute* "po/Makefile.in.in"
1429 (("/bin/sh") (which "sh")))
1430 #t))
5120f24f
RW
1431 (add-after 'unpack 'fix-docbook
1432 (lambda* (#:key inputs #:allow-other-keys)
1433 (substitute* "docs/Makefile.am"
1434 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1435 (string-append (assoc-ref inputs "docbook-xsl")
1436 "/xml/xsl/docbook-xsl-"
1437 ,(package-version docbook-xsl)
1438 "/manpages/docbook.xsl")))
1439 (setenv "XML_CATALOG_FILES"
1440 (string-append (assoc-ref inputs "docbook-xml")
1441 "/xml/dtd/docbook/catalog.xml"))
1442 ;; Rerun the whole thing to avoid version mismatch ("This is
1443 ;; Automake 1.15.1, but the definition used by this
1444 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1445 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1446 (invoke "autoconf")
1447 (invoke "aclocal")
1448 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1449 (inputs
1450 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1451 ("linux-pam" ,linux-pam)
ab35cc6e 1452 ("openssh" ,openssh)
e99a3d6f
RW
1453 ("dbus" ,dbus)
1454 ("gcr" ,gcr)))
1455 (native-inputs
1456 `(("pkg-config" ,pkg-config)
1457 ("glib" ,glib "bin")
5120f24f 1458 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1459 ("python" ,python-2) ;for tests
1460 ("intltool" ,intltool)
1461 ("autoconf" ,autoconf)
1462 ("automake" ,automake)
1463 ("libxslt" ,libxslt) ;for documentation
1464 ("docbook-xml" ,docbook-xml-4.2)
1465 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1466 (home-page "https://www.gnome.org")
e99a3d6f
RW
1467 (synopsis "Daemon to store passwords and encryption keys")
1468 (description
1469 "gnome-keyring is a program that keeps passwords and other secrets for
1470users. It is run as a daemon in the session, similar to ssh-agent, and other
1471applications locate it via an environment variable or D-Bus.
1472
1473The program can manage several keyrings, each with its own master password,
1474and there is also a session keyring which is never stored to disk, but
1475forgotten when the session ends.")
1476 (license license:lgpl2.1+)))
1477
c1354b90
LC
1478(define-public evince
1479 (package
1480 (name "evince")
936d5642 1481 (version "3.34.2")
c1354b90
LC
1482 (source (origin
1483 (method url-fetch)
ac631328 1484 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1485 (version-major+minor version) "/"
ac631328 1486 "evince-" version ".tar.xz"))
c1354b90
LC
1487 (sha256
1488 (base32
936d5642 1489 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1490 (build-system glib-or-gtk-build-system)
c1354b90 1491 (arguments
169b8f77 1492 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1493 #:phases
1494 (modify-phases %standard-phases
1495 (add-before 'install 'skip-gtk-update-icon-cache
1496 ;; Don't create 'icon-theme.cache'.
1497 (lambda _
1498 (substitute* "data/Makefile"
1499 (("gtk-update-icon-cache") "true"))
1500 #t)))))
c1354b90 1501 (inputs
9a096881
KK
1502 `(("libarchive" ,libarchive)
1503 ("libgxps" ,libgxps)
1504 ("libspectre" ,libspectre)
c769cf9f 1505 ("djvulibre" ,djvulibre)
c1354b90
LC
1506 ("ghostscript" ,ghostscript)
1507 ("poppler" ,poppler)
c769cf9f
SB
1508 ("libtiff" ,libtiff)
1509 ;; TODO:
c769cf9f
SB
1510 ;; Build libkpathsea as a shared library for DVI support.
1511 ;; ("libkpathsea" ,texlive-bin)
1512 ("gnome-desktop" ,gnome-desktop)
c1354b90 1513 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1514 ("gspell" ,gspell)
c1354b90 1515 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1516 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1517 ("gdk-pixbuf" ,gdk-pixbuf)
1518 ("atk" ,atk)
1519 ("pango" ,pango)
1520 ("gtk+" ,gtk+)
1521 ("glib" ,glib)
1522 ("libxml2" ,libxml2)
c1354b90
LC
1523 ("libsm" ,libsm)
1524 ("libice" ,libice)
96e42467 1525 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1526 ("dconf" ,dconf)
1527 ("libcanberra" ,libcanberra)
c769cf9f 1528 ("libsecret" ,libsecret)
a271096b 1529
c1354b90
LC
1530 ;; For tests.
1531 ("dogtail" ,python2-dogtail)))
96e42467 1532 (native-inputs
bcb354ad
SB
1533 `(("itstool" ,itstool)
1534 ("intltool" ,intltool)
426adbe8 1535 ("glib" ,glib "bin")
169b8f77 1536 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1537 ("pkg-config" ,pkg-config)
1538 ("xmllint" ,libxml2)))
c1354b90 1539 (home-page
f032d0be 1540 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1541 (synopsis "GNOME's document viewer")
1542 (description
1543 "Evince is a document viewer for multiple document formats. It
1544currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1545of Evince is to replace the multiple document viewers that exist
96e42467 1546on the GNOME Desktop with a single simple application.")
1dd26275 1547 (license license:gpl2+)))
c1354b90 1548
22e32e69
AE
1549(define-public gsettings-desktop-schemas
1550 (package
1551 (name "gsettings-desktop-schemas")
c900dabd 1552 (version "3.32.0")
22e32e69
AE
1553 (source
1554 (origin
1555 (method url-fetch)
1556 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1557 (version-major+minor version) "/"
22e32e69
AE
1558 name "-" version ".tar.xz"))
1559 (sha256
1560 (base32
c900dabd
KK
1561 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1562 (build-system meson-build-system)
65209ffa
LC
1563 (arguments
1564 '(#:phases (modify-phases %standard-phases
1565 (add-after 'unpack 'set-adwaita-theme-file-name
1566 (lambda* (#:key inputs #:allow-other-keys)
1567 ;; Provide the correct file name of the default GNOME
1568 ;; background, 'adwaita-timed.xml'.
1569 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1570 (substitute* (find-files "schemas"
1571 "\\.gschema\\.xml\\.in$")
1572 (("@datadir@/backgrounds/gnome")
1573 (string-append theme "/share/backgrounds/gnome")))
1574 #t))))))
22e32e69 1575 (inputs
65209ffa
LC
1576 `(("glib" ,glib)
1577 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1578 (native-inputs
1579 `(("intltool" ,intltool)
426adbe8 1580 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1581 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1582 ("pkg-config" ,pkg-config)))
1583 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1584 (synopsis
1585 "GNOME settings for various desktop components")
1586 (description
1587 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1588for settings shared by various components of the GNOME desktop.")
1dd26275 1589 (license license:lgpl2.1+)))
22e32e69 1590
27477d2d
AE
1591(define-public icon-naming-utils
1592 (package
1593 (name "icon-naming-utils")
1594 (version "0.8.90")
1595 (source
1596 (origin
1597 (method url-fetch)
5cc3096c 1598 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1599 version ".tar.bz2"))
1600 (sha256
1601 (base32
1602 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1603 (build-system gnu-build-system)
1604 (inputs
1605 `(("perl" ,perl)
1606 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1607 (arguments
1608 '(#:phases
dc1d3cde
KK
1609 (modify-phases %standard-phases
1610 (add-after 'install 'set-load-paths
1611 ;; Tell 'icon-name-mapping' where XML::Simple is.
1612 (lambda* (#:key outputs #:allow-other-keys)
1613 (let* ((out (assoc-ref outputs "out"))
1614 (prog (string-append out "/libexec/icon-name-mapping")))
1615 (wrap-program
1616 prog
1617 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1618 #t)))))
27477d2d
AE
1619 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1620 (synopsis
1621 "Utility to implement the Freedesktop Icon Naming Specification")
1622 (description
1623 "To help with the transition to the Freedesktop Icon Naming
1624Specification, the icon naming utility maps the icon names used by the
1625GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1626 (license license:lgpl2.1+)))
27477d2d 1627
7d3f3651
AE
1628(define-public gnome-icon-theme
1629 (package
1630 (name "gnome-icon-theme")
b32f58dd 1631 (version "3.12.0")
7d3f3651
AE
1632 (source
1633 (origin
1634 (method url-fetch)
1635 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1636 (version-major+minor version) "/"
7d3f3651
AE
1637 name "-" version ".tar.xz"))
1638 (sha256
1639 (base32
b32f58dd 1640 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1641 (build-system gnu-build-system)
5613c27d
SB
1642 (arguments
1643 '(#:configure-flags
1644 ;; Don't create 'icon-theme.cache'.
1645 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1646 (true (string-append coreutils "/bin/true")))
1647 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1648 (native-inputs
5613c27d 1649 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1650 ("intltool" ,intltool)
1651 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1652 (home-page "https://wiki.gnome.org/Personalization")
1653 (synopsis "GNOME icon theme")
1654 (description "Icons for the GNOME desktop.")
1dd26275 1655 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1656
14eeefa2
SB
1657;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1658(define-public adwaita-icon-theme
1659 (package (inherit gnome-icon-theme)
1660 (name "adwaita-icon-theme")
9be59d7f 1661 (version "3.32.0")
14eeefa2
SB
1662 (source (origin
1663 (method url-fetch)
1664 (uri (string-append "mirror://gnome/sources/" name "/"
1665 (version-major+minor version) "/"
1666 name "-" version ".tar.xz"))
1667 (sha256
1668 (base32
9be59d7f 1669 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
5613c27d
SB
1670 (native-inputs
1671 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1672
ae792dba
RW
1673(define-public tango-icon-theme
1674 (package
1675 (name "tango-icon-theme")
1676 (version "0.8.90")
1677 (source (origin
1678 (method url-fetch)
1679 (uri (string-append "http://tango.freedesktop.org/releases/"
1680 "tango-icon-theme-" version ".tar.bz2"))
1681 (sha256
1682 (base32
1683 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1684 (build-system gnu-build-system)
1685 (native-inputs
1686 `(("icon-naming-utils" ,icon-naming-utils)
1687 ("intltool" ,intltool)
1688 ("imagemagick" ,imagemagick)
1689 ("pkg-config" ,pkg-config)))
1690 (home-page "http://tango-project.org/")
1691 (synopsis "Tango icon theme")
1692 (description "This is an icon theme that follows the Tango visual
1693guidelines.")
1694 (license license:public-domain)))
1695
9167f8e6
LC
1696(define-public shared-mime-info
1697 (package
1698 (name "shared-mime-info")
404e386e 1699 (version "1.15")
9167f8e6
LC
1700 (source (origin
1701 (method url-fetch)
404e386e
MB
1702 (uri (string-append
1703 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1704 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1705 ".tar.xz"))
9167f8e6
LC
1706 (sha256
1707 (base32
404e386e 1708 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
9167f8e6
LC
1709 (build-system gnu-build-system)
1710 (arguments
1711 ;; The build system appears not to be parallel-safe.
1712 '(#:parallel-build? #f))
1713 (inputs
1714 `(("glib" ,glib)
c4c4cc05 1715 ("libxml2" ,libxml2)))
9167f8e6 1716 (native-inputs
404e386e
MB
1717 `(("gettext" ,gettext-minimal)
1718 ("itstool" ,itstool)
c4c4cc05 1719 ("pkg-config" ,pkg-config)))
57e7d748 1720 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1721 (synopsis "Database of common MIME types")
1722 (description
1723 "The shared-mime-info package contains the core database of common types
1724and the update-mime-database command used to extend it. It requires glib2 to
1725be installed for building the update command. Additionally, it uses intltool
1726for translations, though this is only a dependency for the maintainers. This
1727database is translated at Transifex.")
1dd26275 1728 (license license:gpl2+)))
9167f8e6 1729
dd1fcddc
CB
1730(define-public system-config-printer
1731 (package
1732 (name "system-config-printer")
fa01e10d 1733 (version "1.5.12")
a5643044
TGR
1734 (source
1735 (origin
1736 (method url-fetch)
1737 (uri (string-append
1738 "https://github.com/OpenPrinting/system-config-printer/releases/"
1739 "download/" version
1740 "/system-config-printer-" version ".tar.xz"))
1741 (sha256
fa01e10d 1742 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1743 (build-system glib-or-gtk-build-system)
1744 (arguments
1745 `(#:imported-modules ((guix build python-build-system)
1746 ,@%glib-or-gtk-build-system-modules)
1747 #:phases
1748 (modify-phases %standard-phases
1749 (add-after 'unpack 'patch-Makefile.am
1750 (lambda _
1751 ;; The Makefile generates some scripts, so set a valid shebang
1752 (substitute* "Makefile.am"
1753 (("/bin/bash") (which "bash")))
1754 (delete-file "configure")
1755 #t))
1756 (add-after 'unpack 'patch-docbook-xml
1757 (lambda* (#:key inputs #:allow-other-keys)
1758 ;; Modify the man XML otherwise xmlto tries to access the network
1759 (substitute* "man/system-config-printer.xml"
1760 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1761 (string-append (assoc-ref inputs "docbook-xml")
1762 "/xml/dtd/docbook/")))
1763 #t))
1764 (add-after 'install 'wrap-for-python
1765 (@@ (guix build python-build-system) wrap))
1766 (add-after 'install 'wrap
1767 (lambda* (#:key outputs #:allow-other-keys)
1768 (let ((out (assoc-ref outputs "out"))
1769 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1770 (for-each
1771 (lambda (program)
1772 (wrap-program program
1773 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1774 (map (lambda (name)
1775 (string-append out "/bin/" name))
1776 '("system-config-printer"
1777 "system-config-printer-applet"
1778 "install-printerdriver"
1779 "scp-dbus-service"))))
1780 #t)))))
1781 (inputs
1782 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1783 ("gobject-introspection" ,gobject-introspection)
1784 ("python" ,python)
1785 ("cups" ,cups)
1786 ("python-dbus" ,python-dbus)
1787 ("python-pygobject" ,python-pygobject)
1788 ("python-pycups" ,python-pycups)
1789 ("python-requests" ,python-requests)
1790 ("python-pycairo" ,python-pycairo)
1791 ("libnotify" ,libnotify)
1792 ("packagekit" ,packagekit)))
1793 (native-inputs
1794 `(("pkg-config" ,pkg-config)
1795 ("desktop-file-utils" ,desktop-file-utils)
1796 ("glib" ,glib)
1797 ("autoconf" ,autoconf)
1798 ("automake" ,automake)
1799 ("intltool" ,intltool)
1800 ("xmlto" ,xmlto)
1801 ("docbook-xml" ,docbook-xml-4.1.2)
1802 ("docbook-xsl" ,docbook-xsl)
1803 ("libxml2" ,libxml2)))
1804 (home-page "https://github.com/zdohnal/system-config-printer")
1805 (synopsis "CUPS administration tool")
1806 (description
1807 "system-config-printer is a CUPS administration tool. It's written in
1808Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1809configuring CUPS.")
1810 (license license:gpl2+)))
1811
bef4dd92
AE
1812(define-public hicolor-icon-theme
1813 (package
1814 (name "hicolor-icon-theme")
851cb6dd 1815 (version "0.17")
bef4dd92
AE
1816 (source
1817 (origin
1818 (method url-fetch)
5cc3096c 1819 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1820 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1821 (sha256
1822 (base32
851cb6dd 1823 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1824 (build-system gnu-build-system)
1825 (arguments
1826 `(#:tests? #f)) ; no check target
57e7d748 1827 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1828 (synopsis
1829 "Freedesktop icon theme")
1830 (description
1831 "Freedesktop icon theme.")
1dd26275 1832 (license license:gpl2)))
bef4dd92 1833
d9c1a22b
AE
1834(define-public libnotify
1835 (package
1836 (name "libnotify")
195bfa68 1837 (version "0.7.7")
d9c1a22b
AE
1838 (source
1839 (origin
1840 (method url-fetch)
1841 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1842 (version-major+minor version) "/"
d9c1a22b
AE
1843 name "-" version ".tar.xz"))
1844 (sha256
1845 (base32
195bfa68 1846 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1847 (build-system gnu-build-system)
6acf6cec
MB
1848 (arguments
1849 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1850 (propagated-inputs
1851 `(;; In Requires of libnotify.pc.
1852 ("gdk-pixbuf" ,gdk-pixbuf)
1853 ("glib" ,glib)))
d9c1a22b 1854 (inputs
7ef08efa 1855 `(("gtk+" ,gtk+)
c4c4cc05
JD
1856 ("libpng" ,libpng)))
1857 (native-inputs
426adbe8 1858 `(("pkg-config" ,pkg-config)
277a7d82
JN
1859 ("glib" ,glib "bin")
1860 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1861 (home-page "https://developer-next.gnome.org/libnotify/")
1862 (synopsis
1863 "GNOME desktop notification library")
1864 (description
1865 "Libnotify is a library that sends desktop notifications to a
35b9e423 1866notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1867notifications can be used to inform the user about an event or display
1868some form of information without getting in the user's way.")
1dd26275 1869 (license license:lgpl2.1+)))
7a8605ce
CR
1870
1871(define-public libpeas
1872 (package
1873 (name "libpeas")
f2d56e39 1874 (version "1.24.1")
7a8605ce
CR
1875 (source
1876 (origin
1877 (method url-fetch)
1878 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1879 (version-major+minor version) "/"
7a8605ce
CR
1880 name "-" version ".tar.xz"))
1881 (sha256
1882 (base32
f2d56e39
MB
1883 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
1884 (build-system meson-build-system)
1885 (arguments
1886 '(#:phases
1887 (modify-phases %standard-phases
1888 (add-before 'check 'start-xserver
1889 (lambda* (#:key inputs #:allow-other-keys)
1890 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1891 (disp ":1"))
1892 (setenv "DISPLAY" disp)
1893 ;; Tests require a running X server.
1894 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
1895 #t))))))
7a8605ce 1896 (inputs
2ed6522a
SB
1897 `(("gtk+" ,gtk+)
1898 ("glade" ,glade3)
2ed6522a
SB
1899 ("python" ,python)
1900 ("python-pygobject" ,python-pygobject)))
141aed80
LC
1901 (native-inputs
1902 `(("pkg-config" ,pkg-config)
f2d56e39 1903 ("gettext" ,gettext-minimal)
93622993 1904 ("glib:bin" ,glib "bin")
141aed80 1905 ("gobject-introspection" ,gobject-introspection)
f2d56e39 1906 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
1907 (propagated-inputs
1908 ;; The .pc file "Requires" gobject-introspection.
1909 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
1910 (home-page "https://wiki.gnome.org/Libpeas")
1911 (synopsis "GObject plugin system")
1912 (description
d1e4ad1b
TGR
1913 "Libpeas is a gobject-based plugin engine, targeted at giving every
1914application the chance to assume its own extensibility. It also has a set of
1915features including, but not limited to: multiple extension points; on-demand
1916(lazy) programming language support for C, Python and JS; simplicity of the
1917API.")
1dd26275 1918 (license license:lgpl2.0+)))
ed19903d
JD
1919
1920(define-public gtkglext
1921 (package
1922 (name "gtkglext")
1923 (version "1.2.0")
1924 (source (origin
1925 (method url-fetch)
0f971a04 1926 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
1927 version "/gtkglext-" version ".tar.gz"))
1928 (sha256
1929 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
1930 (patches (search-patches
1931 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 1932 (build-system gnu-build-system)
14e2f61a
RW
1933 (arguments
1934 `(#:phases
1935 (modify-phases %standard-phases
1936 ;; Fix a collision between a local variable and a definition from
1937 ;; glibc's string.h.
1938 (add-after 'unpack 'fix-collision
1939 (lambda _
1940 (substitute* "gdk/gdkglshapes.c"
1941 ((" index") " triangle_index"))
1942 #t)))))
ed19903d
JD
1943 (inputs `(("gtk+" ,gtk+-2)
1944 ("mesa" ,mesa)
cc8b02f4 1945 ("glu" ,glu)
ed19903d
JD
1946 ("libx11" ,libx11)
1947 ("libxt" ,libxt)))
426adbe8
LC
1948 (native-inputs `(("pkg-config" ,pkg-config)
1949 ("glib" ,glib "bin")))
a83b6a06 1950 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 1951 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 1952 (synopsis "OpenGL extension to GTK+")
35b9e423 1953 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
1954additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1955API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 1956 (license license:lgpl2.1+)))
3600420e
JD
1957
1958(define-public glade3
1959 (package
1960 (name "glade")
c6571adb 1961 (version "3.22.1")
b38e45d8
EB
1962 (source (origin
1963 (method url-fetch)
1964 (uri (string-append "mirror://gnome/sources/" name "/"
1965 (version-major+minor version) "/"
f5ca44b8 1966 name "-" version ".tar.xz"))
3600420e 1967 (sha256
f714d9fe 1968 (base32
c6571adb 1969 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 1970 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
1971 (arguments
1972 `(#:tests? #f ; needs X, GL, and software rendering
1973 #:phases
1974 (modify-phases %standard-phases
1975 (add-before 'configure 'fix-docbook
1976 (lambda* (#:key inputs #:allow-other-keys)
1977 (substitute* "man/Makefile.in"
1978 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1979 (string-append (assoc-ref inputs "docbook-xsl")
1980 "/xml/xsl/docbook-xsl-"
1981 ,(package-version docbook-xsl)
1982 "/manpages/docbook.xsl")))
1983 #t)))))
3600420e 1984 (inputs
f5ca44b8 1985 `(("gtk+" ,gtk+)
3600420e
JD
1986 ("libxml2" ,libxml2)))
1987 (native-inputs
1988 `(("intltool" ,intltool)
f5ca44b8
RW
1989 ("itstool" ,itstool)
1990 ("libxslt" ,libxslt) ;for xsltproc
1991 ("docbook-xml" ,docbook-xml-4.2)
1992 ("docbook-xsl" ,docbook-xsl)
1993 ("python" ,python-2)
3600420e
JD
1994 ("pkg-config" ,pkg-config)))
1995 (home-page "https://glade.gnome.org")
1996 (synopsis "GTK+ rapid application development tool")
1997 (description "Glade is a rapid application development (RAD) tool to
1998enable quick & easy development of user interfaces for the GTK+ toolkit and
1999the GNOME desktop environment.")
1dd26275
LC
2000 (license license:lgpl2.0+)))
2001
2002(define-public libcroco
2003 (package
2004 (name "libcroco")
8bdacad2 2005 (version "0.6.13")
1dd26275
LC
2006 (source (origin
2007 (method url-fetch)
b38e45d8
EB
2008 (uri (string-append "mirror://gnome/sources/" name "/"
2009 (version-major+minor version) "/"
2010 name "-" version ".tar.xz"))
1dd26275
LC
2011 (sha256
2012 (base32
8bdacad2 2013 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2014 (build-system gnu-build-system)
2015 (native-inputs
2016 `(("pkg-config" ,pkg-config)))
2017 (inputs
2018 `(("glib" ,glib)
2019 ("libxml2" ,libxml2)
2020 ("zlib" ,zlib)))
2021 (home-page "https://github.com/GNOME/libcroco")
2022 (synopsis "CSS2 parsing and manipulation library")
2023 (description
2024 "Libcroco is a standalone CSS2 parsing and manipulation library.
2025The parser provides a low level event driven SAC-like API and a CSS object
2026model like API. Libcroco provides a CSS2 selection engine and an experimental
2027XML/CSS rendering engine.")
2028
2029 ;; LGPLv2.1-only.
2030 (license license:lgpl2.1)))
25178594
LC
2031
2032(define-public libgsf
2033 (package
2034 (name "libgsf")
8d1644a1 2035 (version "1.14.46")
25178594
LC
2036 (source (origin
2037 (method url-fetch)
b38e45d8
EB
2038 (uri (string-append "mirror://gnome/sources/" name "/"
2039 (version-major+minor version) "/"
2040 name "-" version ".tar.xz"))
25178594
LC
2041 (sha256
2042 (base32
8d1644a1 2043 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
25178594
LC
2044 (build-system gnu-build-system)
2045 (native-inputs
2046 `(("intltool" ,intltool)
2047 ("pkg-config" ,pkg-config)))
2048 (inputs
2049 `(("python" ,python)
2050 ("zlib" ,zlib)
2051 ("bzip2" ,bzip2)))
2052 (propagated-inputs
2053 `(("gdk-pixbuf" ,gdk-pixbuf)
2054 ("glib" ,glib)
2055 ("libxml2" ,libxml2)))
f032d0be 2056 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2057 (synopsis "GNOME's Structured File Library")
2058 (description
2059 "Libgsf aims to provide an efficient extensible I/O abstraction for
2060dealing with different structured file formats.")
2061
2062 ;; LGPLv2.1-only.
2063 (license license:lgpl2.1)))
63016e7c
LC
2064
2065(define-public librsvg
f67417a1
MB
2066 (package
2067 (name "librsvg")
2068 (version "2.40.20")
2069 (source (origin
2070 (method url-fetch)
2071 (uri (string-append "mirror://gnome/sources/" name "/"
2072 (version-major+minor version) "/"
2073 name "-" version ".tar.xz"))
2074 (sha256
2075 (base32
2076 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
2077 (build-system gnu-build-system)
2078 (arguments
2079 `(#:configure-flags
2080 (list "--disable-static"
2081 "--enable-vala") ; needed for e.g. gnome-mines
2082 #:phases
2083 (modify-phases %standard-phases
2084 (add-before 'configure 'pre-configure
2085 (lambda* (#:key inputs #:allow-other-keys)
2086 (substitute* "gdk-pixbuf-loader/Makefile.in"
2087 ;; By default the gdk-pixbuf loader is installed under
2088 ;; gdk-pixbuf's prefix. Work around that.
2089 (("gdk_pixbuf_moduledir = .*$")
2090 (string-append "gdk_pixbuf_moduledir = "
2091 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2092 "loaders\n"))
2093 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2094 (("gdk_pixbuf_cache_file = .*$")
2095 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2096 #t))
2097 (add-before 'check 'remove-failing-tests
2098 (lambda _
2099 (with-directory-excursion "tests/fixtures/reftests"
2100 (for-each delete-file
2101 '(;; This test fails on i686:
2102 "svg1.1/masking-path-04-b.svg"
2103 ;; This test fails on armhf:
2104 "svg1.1/masking-mask-01-b.svg"
2105 ;; This test fails on aarch64:
2106 "bugs/777834-empty-text-children.svg")))
2107 #t)))))
2108 (native-inputs
2109 `(("pkg-config" ,pkg-config)
2110 ("vala" ,vala)
2111 ("glib" ,glib "bin") ; glib-mkenums, etc.
2112 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2113 (inputs
869b63cb
MB
2114 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2115 ;; this ancient version of librsvg.
2116 ("pango" ,pango-1.42)
f67417a1
MB
2117 ("libcroco" ,libcroco)
2118 ("bzip2" ,bzip2)
2119 ("libgsf" ,libgsf)
2120 ("libxml2" ,libxml2)))
2121 (propagated-inputs
2122 ;; librsvg-2.0.pc refers to all of that.
2123 `(("cairo" ,cairo)
2124 ("gdk-pixbuf" ,gdk-pixbuf)
2125 ("glib" ,glib)))
2126 (home-page "https://wiki.gnome.org/LibRsvg")
2127 (synopsis "Render SVG files using Cairo")
2128 (description
2129 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2130library.")
2131 (license license:lgpl2.0+)))
2132
8f523eb9
EF
2133(define* (computed-origin-method gexp-promise hash-algo hash
2134 #:optional (name "source")
2135 #:key (system (%current-system))
2136 (guile (default-guile)))
2137 "Return a derivation that executes the G-expression that results
2138from forcing GEXP-PROMISE."
2139 (mlet %store-monad ((guile (package->derivation guile system)))
2140 (gexp->derivation (or name "computed-origin")
2141 (force gexp-promise)
2142 #:graft? #f ;nothing to graft
2143 #:system system
2144 #:guile-for-build guile)))
2145
2146(define librsvg-next-source
2147 (let* ((version "2.46.3")
2148 (upstream-source (origin
2149 (method url-fetch)
2150 (uri (string-append "mirror://gnome/sources/librsvg/"
2151 (version-major+minor version) "/"
2152 "librsvg-" version ".tar.xz"))
2153 (sha256
2154 (base32
2155 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
2156 (origin
2157 (method computed-origin-method)
2158 (file-name (string-append "librsvg-" version ".tar.xz"))
2159 (sha256 #f)
2160 (uri
2161 (delay
2162 (with-imported-modules '((guix build utils))
2163 #~(begin
2164 (use-modules (guix build utils))
2165 (set-path-environment-variable
2166 "PATH" '("bin")
2167 (list "/tmp"
2168 #+(canonical-package xz)
2169 #+(canonical-package gzip)
2170 #+(canonical-package tar)))
2171 (invoke "tar" "xvf" #+upstream-source)
2172 (with-directory-excursion (string-append "librsvg-" #$version)
91f0c790
JS
2173 ;; The following crate(s) are needed in addition to the ones replaced:
2174 (begin
2175 (invoke
2176 "tar" "xvf" #+(package-source rust-autocfg-0.1) "-C" "vendor"))
8f523eb9
EF
2177 (for-each
2178 (lambda (crate)
2179 (delete-file-recursively (string-append "vendor/" (car crate)))
2180 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
393d7214 2181 '(("aho-corasick" . #+(package-source rust-aho-corasick-0.7))
8f523eb9 2182;; alga 0.9
e19cb895
EF
2183 ("approx" . #+(package-source rust-approx-0.3))
2184 ("arrayvec" . #+(package-source rust-arrayvec-0.4))
8f523eb9 2185 ("atty" . #+(package-source rust-atty-0.2))
91f0c790 2186 ("autocfg" . #+(package-source rust-autocfg-1.0))
8f523eb9
EF
2187 ("bitflags" . #+(package-source rust-bitflags-1))
2188;; block 0.1
e19cb895
EF
2189 ("bstr" . #+(package-source rust-bstr-0.2))
2190 ("byteorder" . #+(package-source rust-byteorder-1.3))
8f523eb9
EF
2191;; cairo-rs 0.7
2192;; cairo-sys-rs 0.9
e19cb895 2193 ("cast" . #+(package-source rust-cast-0.2))
8f523eb9
EF
2194 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
2195 ("clap" . #+(package-source rust-clap-2))
e19cb895
EF
2196 ("cloudabi" . #+(package-source rust-cloudabi-0.0))
2197 ("criterion" . #+(package-source rust-criterion-0.2))
2198 ("criterion-plot" . #+(package-source rust-criterion-plot-0.3))
2199 ("crossbeam-deque" . #+(package-source rust-crossbeam-deque-0.7))
393d7214
JS
2200 ("crossbeam-epoch" . #+(package-source rust-crossbeam-epoch-0.8))
2201 ("crossbeam-queue" . #+(package-source rust-crossbeam-queue-0.2))
2202 ("crossbeam-utils" . #+(package-source rust-crossbeam-utils-0.7))
8f523eb9
EF
2203;; cssparser 0.25
2204;; cssparser-macros 0.3
e19cb895
EF
2205 ("csv" . #+(package-source rust-csv-1.1))
2206 ("csv-core" . #+(package-source rust-csv-core-0.1))
8f523eb9
EF
2207;; data-url 0.1
2208;; downcast-rs 1.0
2209 ("dtoa" . #+(package-source rust-dtoa-0.4))
2210;; dtoa-short 0.3
e19cb895
EF
2211 ("either" . #+(package-source rust-either-1.5))
2212 ("encoding" . #+(package-source rust-encoding-0.2))
2213 ("encoding-index-japanese" . #+(package-source rust-encoding-index-japanese-1.20141219))
2214 ("encoding-index-korean" . #+(package-source rust-encoding-index-korean-1.20141219))
2215 ("encoding-index-simpchinese" . #+(package-source rust-encoding-index-simpchinese-1.20141219))
2216 ("encoding-index-singlebyte" . #+(package-source rust-encoding-index-singlebyte-1.20141219))
2217 ("encoding-index-tradchinese" . #+(package-source rust-encoding-index-tradchinese-1.20141219))
2218 ("encoding_index_tests" . #+(package-source rust-encoding-index-tests-0.1))
8f523eb9
EF
2219;; float-cmp 0.5
2220;; fragile 0.3
e19cb895
EF
2221 ("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
2222 ("futf" . #+(package-source rust-futf-0.1))
8f523eb9
EF
2223;; gdk-pixbuf 0.7
2224;; gdk-pixbuf-sys 0.9
e19cb895 2225 ("generic-array" . #+(package-source rust-generic-array-0.12))
8f523eb9
EF
2226;; gio 0.7
2227;; gio-sys 0.9
2228;; glib 0.8
2229;; glib-sys 0.9
2230;; gobject-sys 0.9
393d7214 2231 ("idna" . #+(package-source rust-idna-0.2))
e19cb895 2232 ("itertools" . #+(package-source rust-itertools-0.8))
8f523eb9 2233 ("itoa" . #+(package-source rust-itoa-0.4))
e19cb895 2234 ("language-tags" . #+(package-source rust-language-tags-0.2))
21c8ec75 2235 ("lazy_static" . #+(package-source rust-lazy-static-1))
8f523eb9 2236 ("libc" . #+(package-source rust-libc-0.2))
91f0c790 2237 ("libm" . #+(package-source rust-libm-0.1))
8f523eb9
EF
2238;; locale_config 0.3
2239 ("log" . #+(package-source rust-log-0.4))
e19cb895 2240 ("mac" . #+(package-source rust-mac-0.1))
8f523eb9
EF
2241;; malloc_buf 0.0
2242;; markup5ever 0.9
e19cb895 2243 ("matches" . #+(package-source rust-matches-0.1))
8f523eb9 2244;; matrixmultiply 0.2
393d7214
JS
2245 ("memchr" . #+(package-source rust-memchr-2.2))
2246 ("memoffset" . #+(package-source rust-memoffset-0.5))
8f523eb9 2247;; nalgebra 0.18
e19cb895 2248 ("new_debug_unreachable" . #+(package-source rust-new-debug-unreachable-1.0))
8f523eb9 2249 ("nodrop" . #+(package-source rust-nodrop-0.1))
e19cb895 2250 ("num-complex" . #+(package-source rust-num-complex-0.2))
8f523eb9
EF
2251 ("num-integer" . #+(package-source rust-num-integer-0.1))
2252;; num-rational 0.2
2253 ("num-traits" . #+(package-source rust-num-traits-0.2))
2254 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
2255;; objc 0.2
2256;; objc-foundation 0.1
2257;; objc_id 0.1
2258;; pango 0.7
2259;; pango-sys 0.9
2260;; pangocairo 0.8
2261;; pangocairo-sys 0.10
2262 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
e19cb895
EF
2263 ("phf" . #+(package-source rust-phf-0.7))
2264 ("phf_codegen" . #+(package-source rust-phf-codegen-0.7))
2265 ("phf_generator" . #+(package-source rust-phf-generator-0.7))
2266 ("phf_shared" . #+(package-source rust-phf-shared-0.7))
2267 ("pkg-config" . #+(package-source rust-pkg-config-0.3))
2268 ("precomputed-hash" . #+(package-source rust-precomputed-hash-0.1))
8f523eb9
EF
2269 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
2270;; procedural-masquerade 0.1
2271 ("quote" . #+(package-source rust-quote-1.0))
e19cb895 2272 ("rand" . #+(package-source rust-rand-0.6))
8f523eb9
EF
2273 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
2274 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
2275 ("rand_core" . #+(package-source rust-rand-core-0.4))
2276 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
2277 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
2278 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
2279 ("rand_os" . #+(package-source rust-rand-os-0.1))
2280 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
2281 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
393d7214 2282 ("rand_xoshiro" . #+(package-source rust-rand-xoshiro-0.1))
e19cb895 2283;; rawpointer 0.2
393d7214
JS
2284 ("rayon" . #+(package-source rust-rayon-1.3))
2285 ("rayon-core" . #+(package-source rust-rayon-core-1.7))
8f523eb9
EF
2286;; rctree 0.3
2287 ("rdrand" . #+(package-source rust-rdrand-0.4))
393d7214 2288 ("regex" . #+(package-source rust-regex-1.3))
e19cb895 2289 ("regex-automata" . #+(package-source rust-regex-automata-0.1))
393d7214 2290 ("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
e19cb895 2291 ("rustc_version" . #+(package-source rust-rustc-version-0.2))
8f523eb9
EF
2292 ("ryu" . #+(package-source rust-ryu-1.0))
2293 ("same-file" . #+(package-source rust-same-file-1.0))
2294 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
e19cb895
EF
2295 ("semver" . #+(package-source rust-semver-0.9))
2296 ("semver-parser" . #+(package-source rust-semver-parser-0.7))
8f523eb9
EF
2297 ("serde" . #+(package-source rust-serde-1.0))
2298 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
2299 ("serde_json" . #+(package-source rust-serde-json-1.0))
e19cb895
EF
2300 ("siphasher" . #+(package-source rust-siphasher-0.2))
2301 ("smallvec" . #+(package-source rust-smallvec-0.6))
2302 ("string_cache" . #+(package-source rust-string-cache-0.7))
2303 ;("string_cache_codegen" . #+(package-source rust-string-cache-codegen-0.4))
2304 ("string_cache_shared" . #+(package-source rust-string-cache-shared-0.3))
8f523eb9 2305 ("syn" . #+(package-source rust-syn-1.0))
e19cb895 2306 ("tendril" . #+(package-source rust-tendril-0.4))
8f523eb9 2307 ("textwrap" . #+(package-source rust-textwrap-0.11))
393d7214 2308 ("thread_local" . #+(package-source rust-thread-local-1.0))
e19cb895
EF
2309 ("tinytemplate" . #+(package-source rust-tinytemplate-1.0))
2310 ("typenum" . #+(package-source rust-typenum-1.10))
2311 ("unicode-bidi" . #+(package-source rust-unicode-bidi-0.3))
2312 ("unicode-normalization" . #+(package-source rust-unicode-normalization-0.1))
8f523eb9
EF
2313 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
2314 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
393d7214 2315 ("url" . #+(package-source rust-url-2.1))
e19cb895 2316 ("utf-8" . #+(package-source rust-utf-8-0.7))
8f523eb9
EF
2317 ("walkdir" . #+(package-source rust-walkdir-2.2))
2318 ("winapi" . #+(package-source rust-winapi-0.3))
e19cb895 2319 ("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
8f523eb9 2320 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
e19cb895 2321 ("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
8f523eb9
EF
2322;; xml-rs 0.8
2323 )))
2324 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
2325 (force-output)
2326 (invoke "tar" "cfa" #$output
2327 ;; Avoid non-determinism in the archive. We set the
2328 ;; mtime of files in the archive to early 1980 because
2329 ;; the build process fails if the mtime of source
2330 ;; files is pre-1980, due to the creation of zip
2331 ;; archives.
2332 "--mtime=@315619200" ; 1980-01-02 UTC
2333 "--owner=root:0"
2334 "--group=root:0"
2335 "--sort=name"
2336 (string-append "librsvg-" #$version))
2337 #t)))))))
2338
f67417a1 2339(define-public librsvg-next
63016e7c
LC
2340 (package
2341 (name "librsvg")
cf9dad6c 2342 (version "2.46.3")
8f523eb9 2343 (source librsvg-next-source)
63016e7c
LC
2344 (build-system gnu-build-system)
2345 (arguments
d953418a
RW
2346 `(#:configure-flags
2347 (list "--disable-static"
2348 "--enable-vala") ; needed for e.g. gnome-mines
7e0f4cb1 2349 #:make-flags '("CC=gcc")
8f523eb9 2350 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
ec47c07d 2351 #:phases
b6239e45 2352 (modify-phases %standard-phases
8f523eb9 2353 (add-after 'configure 'patch-cargo-checksums
ec47c07d 2354 (lambda _
8f523eb9
EF
2355 (use-modules (guix build cargo-utils))
2356 (substitute* "librsvg/Cargo.toml"
2357 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
b665a246 2358 (generate-all-checksums "vendor")
8f523eb9
EF
2359 (delete-file "Cargo.lock")
2360 (invoke "cargo" "generate-lockfile")))
b6239e45
EF
2361 (add-before 'configure 'pre-configure
2362 (lambda* (#:key inputs #:allow-other-keys)
2363 (substitute* "gdk-pixbuf-loader/Makefile.in"
2364 ;; By default the gdk-pixbuf loader is installed under
2365 ;; gdk-pixbuf's prefix. Work around that.
2366 (("gdk_pixbuf_moduledir = .*$")
2367 (string-append "gdk_pixbuf_moduledir = "
2368 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2369 "loaders\n"))
2370 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2371 (("gdk_pixbuf_cache_file = .*$")
2372 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2373 #t))
ec47c07d 2374 (add-before 'check 'remove-failing-tests
b6239e45 2375 (lambda _
64a153bd
MW
2376 (with-directory-excursion "tests/fixtures/reftests"
2377 (for-each delete-file
ec47c07d
MB
2378 '(;; The images produced by these tests differ slightly
2379 ;; from their reference counterparts due to differences
2380 ;; in the build environment (missing fonts, etc). See
2381 ;; <tests/README.md> for details.
2382 ;; These fail on x86_64.
2383 "svg1.1/coords-viewattr-02-b.svg"
2384 "svg1.1/filters-composite-04-f.svg"
2385 "svg1.1/filters-image-01-b.svg"
2386 "svg1.1/filters-conv-02-f.svg"
2387 "svg1.1/filters-conv-04-f.svg"
2388 ;; This test fails on i686:
64a153bd 2389 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2390 ;; This test fails on armhf:
2391 "svg1.1/masking-mask-01-b.svg"
64a153bd 2392 ;; This test fails on aarch64:
ec47c07d 2393 "bugs/777834-empty-text-children.svg")))
b6239e45 2394 #t)))))
63016e7c
LC
2395 (native-inputs
2396 `(("pkg-config" ,pkg-config)
64855281
MB
2397 ;; This is the minimum supported Rust version in Librsvg 2.46.
2398 ("rust" ,rust-1.34)
2399 ("cargo" ,rust-1.34 "cargo")
d953418a 2400 ("vala" ,vala)
44add1ce 2401 ("glib" ,glib "bin") ; glib-mkenums, etc.
63016e7c
LC
2402 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2403 (inputs
2404 `(("pango" ,pango)
2405 ("libcroco" ,libcroco)
2406 ("bzip2" ,bzip2)
2407 ("libgsf" ,libgsf)
2408 ("libxml2" ,libxml2)))
2409 (propagated-inputs
2410 ;; librsvg-2.0.pc refers to all of that.
2411 `(("cairo" ,cairo)
2412 ("gdk-pixbuf" ,gdk-pixbuf)
2413 ("glib" ,glib)))
2414 (home-page "https://wiki.gnome.org/LibRsvg")
2415 (synopsis "Render SVG files using Cairo")
2416 (description
35b9e423 2417 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
63016e7c 2418library.")
cf9dad6c 2419 (license license:lgpl2.1+)))
5698b8b8
JD
2420
2421(define-public libidl
2422 (package
2423 (name "libidl")
2424 (version "0.8.14")
2425 (source (origin
2426 (method url-fetch)
80a06e62
EF
2427 (uri (string-append "mirror://gnome/sources/libIDL/"
2428 (version-major+minor version) "/"
2429 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2430 (sha256
2431 (base32
2432 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2433 (build-system gnu-build-system)
2434 (inputs `(("glib" ,glib)))
2435 (native-inputs
2436 `(("pkg-config" ,pkg-config)
b3546174 2437 ("flex" ,flex)
5698b8b8
JD
2438 ("bison" ,bison)))
2439 (home-page "http://freecode.com/projects/libidl")
2440 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2441 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2442Definition Language (idl) files, which is a specification for defining
2443portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2444GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2445functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2446 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2447 (license license:lgpl2.0+)))
2448
2449
2450(define-public orbit2
2451 (package
2452 (name "orbit2")
2453 (version "2.14.19")
2454 (source (origin
2455 (method url-fetch)
2e6ecc5c 2456 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2457 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2458 (version-major+minor version) "/"
2459 upstream-name "-" version ".tar.bz2")))
5698b8b8 2460 (sha256
a124bbd2
SB
2461 (base32
2462 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2463 (build-system gnu-build-system)
2464 (arguments
c2d837b9
MB
2465 `(;; The "timeout-server" test hangs when run in parallel.
2466 #:parallel-tests? #f
2467 #:configure-flags
8aad2e32
LC
2468 '(;; We don't need static libraries, plus they don't build reproducibly
2469 ;; (non-deterministic ordering of .o files in the archive.)
2470 "--disable-static"
2471
2472 ;; The programmer kindly gives us a hook to turn off deprecation
2473 ;; warnings ...
2474 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2475 ;; ... which they then completly ignore !!
2476 #:phases
dc1d3cde
KK
2477 (modify-phases %standard-phases
2478 (add-before 'configure 'ignore-deprecations
2479 (lambda _
2480 (substitute* "linc2/src/Makefile.in"
2481 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2482 #t)))))
5698b8b8
JD
2483 (inputs `(("glib" ,glib)
2484 ("libidl" ,libidl)))
2485 (native-inputs
2486 `(("pkg-config" ,pkg-config)))
2487 (home-page "https://projects.gnome.org/orbit2/")
2488 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2489 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2490featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2491 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2492 ;; a version. SOME of the code files have licence notices for GPLv2+.
2493 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2494 (license license:gpl2+)
2495 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2496
2497
2498(define-public libbonobo
2499 (package
2500 (name "libbonobo")
2501 (version "2.32.1")
2502 (source (origin
2503 (method url-fetch)
5becd025 2504 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2505 (version-major+minor version)
5becd025 2506 "/" name "-" version ".tar.bz2"))
5698b8b8 2507 (sha256
f1fc45a9 2508 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2509 (patches (search-patches
2510 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2511 (build-system gnu-build-system)
2512 (arguments
2513 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2514 `(#:configure-flags
2515 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2516 ;; ... which they then completly ignore !!
2517 #:phases
dc1d3cde
KK
2518 (modify-phases %standard-phases
2519 (add-before 'configure 'ignore-deprecations
2520 (lambda _
2521 (substitute* "activation-server/Makefile.in"
2522 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2523 #t)))
2524
2525 ;; There's apparently a race condition between the server stub
2526 ;; generation and linking of the example under 'samples/echo' that can
2527 ;; lead do undefined references when building in parallel, as reported
2528 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2529 ;; Thus, disable parallel builds.
2530 #:parallel-build? #f))
5698b8b8
JD
2531 (inputs `(("popt" ,popt)
2532 ("libxml2" ,libxml2)))
2533 ;; The following are Required by the .pc file
44add1ce 2534 (propagated-inputs
5698b8b8
JD
2535 `(("glib" ,glib)
2536 ("orbit2" ,orbit2)))
2537 (native-inputs
2538 `(("intltool" ,intltool)
2539 ("pkg-config" ,pkg-config)
221ed17a 2540 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2541 ("flex" ,flex)
2542 ("bison" ,bison)))
2543 (home-page "https://developer.gnome.org/libbonobo/")
2544 (synopsis "Framework for creating reusable components for use in GNOME applications")
2545 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2546use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2547 ;; Licence not explicitly stated. Source files contain no licence notices.
2548 ;; Tarball contains text of both GPLv2 and LGPLv2
2549 ;; GPLv2 covers both conditions
2550 (license license:gpl2+)))
2551
2552
2553(define-public gconf
2554 (package
2555 (name "gconf")
2556 (version "3.2.6")
2557 (source (origin
2558 (method url-fetch)
a124bbd2
SB
2559 (uri
2560 (let ((upstream-name "GConf"))
2561 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2562 (version-major+minor version) "/"
2563 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2564 (sha256
2565 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2566 (build-system gnu-build-system)
2e88d113 2567 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2568 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2569 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2570 ("orbit2" ,orbit2)))
5698b8b8
JD
2571 (native-inputs
2572 `(("intltool" ,intltool)
221ed17a 2573 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2574 ("pkg-config" ,pkg-config)))
2575 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2576 (synopsis "Store application preferences")
2577 (description "Gconf is a system for storing application preferences. It
2578is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2579 (license license:lgpl2.0+)
2580 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2581
2582
2583(define-public gnome-mime-data
2584 (package
2585 (name "gnome-mime-data")
2586 (version "2.18.0")
2587 (source (origin
2588 (method url-fetch)
b38e45d8
EB
2589 (uri (string-append "mirror://gnome/sources/" name "/"
2590 (version-major+minor version) "/"
2591 name "-" version ".tar.bz2"))
5698b8b8
JD
2592 (sha256
2593 (base32
2594 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2595 (build-system gnu-build-system)
2596 (native-inputs
2597 `(("perl" ,perl)
2598 ("intltool" ,intltool)))
3e6add96
LC
2599 (arguments
2600 '(#:phases (modify-phases %standard-phases
2601 (add-after 'configure 'use-our-intltool
2602 (lambda _
2603 ;; Do not use the bundled intltool commands, which lack
2604 ;; the "dotless @INC" fixes of our 'intltool' package.
2605 (substitute* (find-files "." "^Makefile$")
2606 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2607 (string-append "INTLTOOL_" tool " = intltool-"
2608 (string-downcase tool) "\n")))
2609 #t)))))
f032d0be 2610 (home-page "https://www.gnome.org")
35b9e423 2611 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2612 (description "GNOME Mime Data is a module which contains the base MIME
2613and Application database for GNOME. The data stored by this module is
2614designed to be accessed through the MIME functions in GnomeVFS.")
2615 (license license:gpl2+)))
2616
2617
2618(define-public gnome-vfs
2619 (package
2620 (name "gnome-vfs")
2621 (version "2.24.4")
2622 (source (origin
2623 (method url-fetch)
b38e45d8
EB
2624 (uri (string-append "mirror://gnome/sources/" name "/"
2625 (version-major+minor version) "/"
2626 name "-" version ".tar.bz2"))
5698b8b8 2627 (sha256
9e12bc34
MW
2628 (base32
2629 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2630 (build-system gnu-build-system)
2631 (arguments
db5127d8 2632 `(#:phases
dc1d3cde
KK
2633 (modify-phases %standard-phases
2634 (add-before 'configure 'ignore-deprecations
2635 (lambda _
2636 (substitute* '("libgnomevfs/Makefile.in"
2637 "daemon/Makefile.in")
2638 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2639 #t))
2640 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2641 (lambda _
2642 (substitute* "test/test-async-cancel.c"
2643 (("EXIT_FAILURE") "77"))
2644 #t)))))
2e6ecc5c 2645 (inputs `(("libxml2" ,libxml2)
5698b8b8 2646 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2647 ("gconf" ,gconf)
2648 ("gnome-mime-data" ,gnome-mime-data)
2649 ("zlib" ,zlib)))
2650 (native-inputs
221ed17a
EB
2651 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2652 ("intltool" ,intltool)
5698b8b8
JD
2653 ("pkg-config" ,pkg-config)))
2654 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2655 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2656 (description
2657 "GnomeVFS is the core library used to access files and folders in GNOME
2658applications. It provides a file system abstraction which allows applications
2659to access local and remote files with a single consistent API.")
5698b8b8
JD
2660 (license license:lgpl2.0+)))
2661
2662
2663
2664(define-public libgnome
2665 (package
2666 (name "libgnome")
2667 (version "2.32.1")
2668 (source (origin
2669 (method url-fetch)
b38e45d8
EB
2670 (uri (string-append "mirror://gnome/sources/" name "/"
2671 (version-major+minor version) "/"
2672 name "-" version ".tar.bz2"))
5698b8b8
JD
2673 (sha256
2674 (base32
17c3eea7
LC
2675 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2676 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2677 (build-system gnu-build-system)
2678 (arguments
2679 `(#:phases
dc1d3cde
KK
2680 (modify-phases %standard-phases
2681 (add-before 'configure 'enable-deprecated
2682 (lambda _
2683 (substitute* "libgnome/Makefile.in"
2684 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2685 #t)))))
25338e9f 2686 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2687 (native-inputs
221ed17a
EB
2688 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2689 ("intltool" ,intltool)
5698b8b8
JD
2690 ("pkg-config" ,pkg-config)))
2691 ;; The following are listed as Required in the .pc file
2692 ;; (except for libcanberra -- which seems to be oversight on the part
2693 ;; of the upstream developers -- anything that links against libgnome,
2694 ;; must also link against libcanberra
2695 (propagated-inputs
2696 `(("libcanberra" ,libcanberra)
2697 ("libbonobo" ,libbonobo)
2698 ("gconf" ,gconf)
a640d3d5
LC
2699 ("gnome-vfs" ,gnome-vfs)
2700 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2701 (home-page "https://developer.gnome.org/libgnome/")
2702 (synopsis "Useful routines for building applications")
2703 (description "The libgnome library provides a number of useful routines
2704for building modern applications, including session management, activation of
2705files and URIs, and displaying help.")
2706 (license license:lgpl2.0+)))
2707
2708
2709(define-public libart-lgpl
2710 (package
2711 (name "libart-lgpl")
76c9b6aa 2712 (version "2.3.21")
5698b8b8
JD
2713 (source (origin
2714 (method url-fetch)
2715 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2716 (string-append "mirror://gnome/sources/" upstream-name "/"
2717 (version-major+minor version) "/"
2718 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2719 (sha256
2720 (base32
76c9b6aa 2721 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2722 (build-system gnu-build-system)
2723 (native-inputs
2724 `(("pkg-config" ,pkg-config)))
2725 (home-page "https://people.gnome.org/~mathieu/libart")
2726 (synopsis "2D drawing library")
2e6ecc5c 2727 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2728high-quality vector-based 2D library with antialiasing and alpha composition.")
2729 (license license:lgpl2.0+)))
2730
2731
2732
2733(define-public libgnomecanvas
2734 (package
2735 (name "libgnomecanvas")
2736 (version "2.30.3")
2737 (source (origin
2738 (method url-fetch)
b38e45d8
EB
2739 (uri (string-append "mirror://gnome/sources/" name "/"
2740 (version-major+minor version) "/"
2741 name "-" version ".tar.gz"))
5698b8b8
JD
2742 (sha256
2743 (base32
2744 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2745 (build-system gnu-build-system)
2746 ;; Mentioned as Required in the .pc file
2747 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2748 ("gtk+" ,gtk+-2)))
2749 (native-inputs
2750 `(("intltool" ,intltool)
221ed17a 2751 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2752 ("pkg-config" ,pkg-config)))
2753 (home-page "https://developer.gnome.org/libgnomecanvas/")
2754 (synopsis "Flexible widget for creating interactive structured graphics")
2755 (description "The GnomeCanvas widget provides a flexible widget for
2756creating interactive structured graphics.")
2757 (license license:lgpl2.0+)))
2758
eadc734e
RW
2759(define-public libgnomecanvasmm
2760 (package
2761 (name "libgnomecanvasmm")
2762 (version "2.26.0")
2763 (source (origin
2764 (method url-fetch)
2765 (uri (string-append "mirror://gnome/sources/" name "/"
2766 (version-major+minor version) "/"
2767 name "-" version ".tar.bz2"))
2768 (sha256
2769 (base32
2770 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2771 (build-system gnu-build-system)
2772 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2773 (native-inputs
2774 `(("gtkmm-2" ,gtkmm-2)
2775 ("pkg-config" ,pkg-config)))
8e933cb3 2776 (home-page "https://gtkmm.org")
eadc734e
RW
2777 (synopsis "C++ bindings to the GNOME Canvas library")
2778 (description "C++ bindings to the GNOME Canvas library.")
2779 (license license:lgpl2.0+)))
2780
5698b8b8
JD
2781(define-public libgnomeui
2782 (package
2783 (name "libgnomeui")
2784 (version "2.24.5")
2785 (source (origin
2786 (method url-fetch)
b38e45d8
EB
2787 (uri (string-append "mirror://gnome/sources/" name "/"
2788 (version-major+minor version) "/"
2789 name "-" version ".tar.bz2"))
8fa1872a 2790 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2791 (sha256
2792 (base32
2793 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2794 (build-system gnu-build-system)
2795 ;; Mentioned as Required in the .pc file
0a38a497
AE
2796 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2797 ("libgnome" ,libgnome)
2798 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2799 ("libgnome-keyring" ,libgnome-keyring)))
4bd428a7 2800 (inputs `(("libjpeg" ,libjpeg-turbo)
5698b8b8
JD
2801 ("popt" ,popt)
2802 ("libbonobo" ,libbonobo)
2803 ("libxml2" ,libxml2)
2804 ("libglade" ,libglade)))
2805 (native-inputs
221ed17a
EB
2806 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2807 ("intltool" ,intltool)
5698b8b8
JD
2808 ("pkg-config" ,pkg-config)))
2809 (home-page "https://developer.gnome.org/libgnomeui/")
2810 (synopsis "Additional widgets for applications")
35b9e423 2811 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2812applications. Many of the widgets from libgnomeui have already been
2813ported to GTK+.")
5698b8b8
JD
2814 (license license:lgpl2.0+)))
2815
2816(define-public libglade
2817 (package
2818 (name "libglade")
2819 (version "2.6.4")
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
2827 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2828 (build-system gnu-build-system)
2829 (inputs
92dcc23d
AE
2830 `(("python" ,python))) ;; needed for the optional libglade-convert program
2831 (propagated-inputs
5698b8b8 2832 `(("gtk+-2" ,gtk+-2)
92dcc23d 2833 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2834 (native-inputs
2835 `(("pkg-config" ,pkg-config)))
2836 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2837 (synopsis "Load glade interfaces and access the glade built widgets")
2838 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2839graphical interfaces described in glade files and for accessing the
2840widgets built in the loading process.")
2841 (license license:gpl2+))) ; This is correct. GPL not LGPL
2842
2843(define-public libgnomeprint
eb497b66
LC
2844 ;; This library has been deprecated since 2006; see
2845 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2846 (package
2847 (name "libgnomeprint")
d19db454 2848 (version "2.18.8")
5698b8b8
JD
2849 (source (origin
2850 (method url-fetch)
b38e45d8
EB
2851 (uri (string-append "mirror://gnome/sources/" name "/"
2852 (version-major+minor version) "/"
2853 name "-" version ".tar.bz2"))
5698b8b8
JD
2854 (sha256
2855 (base32
d19db454 2856 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2857 (build-system gnu-build-system)
2858 (inputs
2859 `(("popt" ,popt)
2860 ("libart-lgpl" ,libart-lgpl)
2861 ("gtk+" ,gtk+-2)
44add1ce 2862 ("libxml2" ,libxml2)))
5698b8b8
JD
2863 (native-inputs
2864 `(("intltool" ,intltool)
221ed17a 2865 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2866 ("pkg-config" ,pkg-config)))
2867 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2868 (synopsis "Printing framework for GNOME")
eb497b66
LC
2869 (description
2870 "GNOME-print was a printing framework for GNOME. It has been deprecated
2871since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2872 (license license:lgpl2.0+)))
2873
2874
2875(define-public libgnomeprintui
eb497b66 2876 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2877 (package
2878 (name "libgnomeprintui")
36053d7f 2879 (version "2.18.6")
5698b8b8
JD
2880 (source (origin
2881 (method url-fetch)
b38e45d8
EB
2882 (uri (string-append "mirror://gnome/sources/" name "/"
2883 (version-major+minor version) "/"
2884 name "-" version ".tar.bz2"))
5698b8b8
JD
2885 (sha256
2886 (base32
36053d7f 2887 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2888 (build-system gnu-build-system)
2889 ;; Mentioned as Required in the .pc file
2890 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2891 (inputs `(("gtk+" ,gtk+-2)
2892 ("glib" ,glib)
2893 ("gnome-icon-theme" ,gnome-icon-theme)
2894 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2895 ("libxml2" ,libxml2)))
5698b8b8
JD
2896 (native-inputs
2897 `(("intltool" ,intltool)
2898 ("pkg-config" ,pkg-config)))
2899 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2900 (synopsis "Printing framework for GNOME")
eb497b66 2901 (description (package-description libgnomeprint))
5698b8b8
JD
2902 (license license:lgpl2.0+)))
2903
5698b8b8
JD
2904(define-public libbonoboui
2905 (package
2906 (name "libbonoboui")
2907 (version "2.24.5")
2908 (source (origin
2909 (method url-fetch)
b38e45d8
EB
2910 (uri (string-append "mirror://gnome/sources/" name "/"
2911 (version-major+minor version) "/"
2912 name "-" version ".tar.bz2"))
5698b8b8
JD
2913 (sha256
2914 (base32
2915 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2916 (build-system gnu-build-system)
2917 (arguments
2918 `(#:phases
dc1d3cde
KK
2919 (modify-phases %standard-phases
2920 (add-before 'check 'start-xserver
2921 (lambda* (#:key inputs #:allow-other-keys)
2922 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2923 (disp ":1"))
2924
2925 (setenv "HOME" (getcwd))
2926 (setenv "DISPLAY" disp)
2927 ;; There must be a running X server and make check doesn't start one.
2928 ;; Therefore we must do it.
2929 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2930 ;; Mentioned as Required by the .pc file
2931 (propagated-inputs `(("libxml2" ,libxml2)))
2932 (inputs
2933 `(("popt" ,popt)
2934 ("pangox-compat" ,pangox-compat)
2935 ("libgnome" ,libgnome)
2936 ("libgnomecanvas" ,libgnomecanvas)
2937 ("libglade" ,libglade)))
2938 (native-inputs
221ed17a
EB
2939 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2940 ("intltool" ,intltool)
ff337525 2941 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2942 ("pkg-config" ,pkg-config)))
2943 (home-page "https://developer.gnome.org/libbonoboui/")
2944 (synopsis "Some user interface controls using Bonobo")
2945 (description "The Bonobo UI library provides a number of user interface
2946controls using the Bonobo component framework.")
2947 (license license:lgpl2.0+)))
2948
fecbf86e
SB
2949(define-public libwnck
2950 (package
2951 (name "libwnck")
d3b40696 2952 (version "3.32.0")
fecbf86e
SB
2953 (source (origin
2954 (method url-fetch)
2955 (uri (string-append "mirror://gnome/sources/" name "/"
2956 (version-major+minor version) "/"
2957 name "-" version ".tar.xz"))
2958 (sha256
ad9b8987 2959 (base32
d3b40696
KK
2960 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2961 (build-system meson-build-system)
fecbf86e
SB
2962 (native-inputs
2963 `(("pkg-config" ,pkg-config)
d3b40696
KK
2964 ("glib" ,glib "bin") ; for glib-mkenums
2965 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2966 ("intltool" ,intltool)))
2967 (propagated-inputs
427476d5
SB
2968 `(("gtk+" ,gtk+)
2969 ("libxres" ,libxres)
2970 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2971 (home-page "https://developer.gnome.org/libwnck/")
2972 (synopsis "Window Navigator Construction Kit")
2973 (description
2974 "Libwnck is the Window Navigator Construction Kit, a library for use in
2975writing pagers, tasklists, and more generally applications that are dealing
2976with window management. It tries hard to respect the Extended Window Manager
2977Hints specification (EWMH).")
2978 (license license:lgpl2.0+)))
2979
2980;; stable version for gtk2, required by xfwm4.
dbb7a081 2981(define-public libwnck-2
fecbf86e
SB
2982 (package (inherit libwnck)
2983 (name "libwnck")
2984 (version "2.30.7")
2985 (source (origin
2986 (method url-fetch)
2987 (uri (string-append "mirror://gnome/sources/" name "/"
2988 (version-major+minor version) "/"
2989 name "-" version ".tar.xz"))
2990 (sha256
2991 (base32
2992 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2993 (build-system gnu-build-system)
2994 (native-inputs
2995 `(("pkg-config" ,pkg-config)
2996 ("intltool" ,intltool)))
fecbf86e 2997 (propagated-inputs
427476d5
SB
2998 `(("gtk+" ,gtk+-2)
2999 ("libxres" ,libxres)
3000 ("startup-notification" ,startup-notification)))))
b804c61e
JD
3001
3002(define-public goffice
3003 (package
3004 (name "goffice")
09abffcc 3005 (version "0.10.46")
b804c61e
JD
3006 (source (origin
3007 (method url-fetch)
16243f0b 3008 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 3009 (version-major+minor version) "/"
16243f0b 3010 "goffice-" version ".tar.xz"))
b804c61e 3011 (sha256
09abffcc 3012 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 3013 (build-system gnu-build-system)
72a06d3e 3014 (outputs '("out"
355420c6 3015 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
3016 (arguments
3017 '(#:configure-flags (list (string-append "--with-html-dir="
3018 (assoc-ref %outputs "doc")
3019 "/share/gtk-doc/html"))))
b804c61e
JD
3020 (inputs
3021 `(("gtk+" ,gtk+)
3022 ("libgsf" ,libgsf)
3023 ("librsvg" ,librsvg)
3024 ("libxslt" ,libxslt)
3025 ("libxml2" ,libxml2)))
3026 (native-inputs
3027 `(("intltool" ,intltool)
f280cdb1 3028 ("glib" ,glib "bin")
b804c61e
JD
3029 ("pkg-config" ,pkg-config)))
3030 (home-page "https://developer.gnome.org/goffice/")
3031 (synopsis "Document-centric objects and utilities")
3032 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3033 (license
b804c61e
JD
3034 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3035 ;; Note: NOT LGPL
3036 (list license:gpl2 license:gpl3))))
3037
c024ae36
RW
3038(define-public goffice-0.8
3039 (package (inherit goffice)
3040 (version "0.8.17")
3041 (source (origin
3042 (method url-fetch)
3043 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3044 (version-major+minor version) "/"
3045 (package-name goffice) "-" version ".tar.xz"))
3046 (sha256
3047 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3048 (arguments
3049 `(#:phases
dc1d3cde
KK
3050 (modify-phases %standard-phases
3051 (add-after 'unpack 'fix-pcre-check
3052 (lambda _
3053 ;; Only glib.h can be included directly. See
3054 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3055 (substitute* "configure"
3056 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3057
3058 ,@(package-arguments goffice)))
c024ae36
RW
3059 (propagated-inputs
3060 ;; libgoffice-0.8.pc mentions libgsf-1
3061 `(("libgsf" ,libgsf)))
3062 (inputs
3063 `(("gtk" ,gtk+-2)
3064 ,@(alist-delete "gtk" (package-inputs goffice))))))
3065
b804c61e
JD
3066(define-public gnumeric
3067 (package
3068 (name "gnumeric")
f0517b5d 3069 (version "1.12.46")
b804c61e
JD
3070 (source (origin
3071 (method url-fetch)
b7fd0217 3072 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3073 (version-major+minor version) "/"
b7fd0217 3074 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3075 (sha256
3076 (base32
f0517b5d 3077 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3078 (build-system glib-or-gtk-build-system)
b804c61e
JD
3079 (arguments
3080 `(;; The gnumeric developers don't worry much about failing tests.
3081 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3082 #:tests? #f
b804c61e 3083 #:phases
7bcbd40d
EF
3084 (modify-phases %standard-phases
3085 (add-before
3086 'configure 'pre-conf
3087 (lambda* (#:key outputs #:allow-other-keys)
3088 ;; Make install tries to write into the directory of goffice
3089 ;; I am informed that this only affects the possibility to embed a
3090 ;; spreadsheet inside an Abiword document. So presumably when we
3091 ;; package Abiword we'll have to refer it to this directory.
3092 (substitute* "configure"
3093 (("^GOFFICE_PLUGINS_DIR=.*")
3094 (string-append "GOFFICE_PLUGINS_DIR="
3095 (assoc-ref outputs "out")
3096 "/goffice/plugins"))))))))
b804c61e
JD
3097 (inputs
3098 `(("glib" ,glib)
3099 ("gtk+" ,gtk+)
3100 ("goffice" ,goffice)
3101 ("libgsf" ,libgsf)
7bcbd40d 3102 ("librsvg" ,librsvg)
b804c61e 3103 ("libxml2" ,libxml2)
7bcbd40d 3104 ("libxslt" ,libxslt)
2e4c5457 3105 ("python" ,python-2)
6983ba56 3106 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3107 ("zlib" ,zlib)))
3108 (native-inputs
6983ba56 3109 `(("bison" ,bison)
1ed398d1 3110 ("docbook-xml" ,docbook-xml)
6983ba56 3111 ("intltool" ,intltool)
785fcb62 3112 ("itstool" ,itstool)
b9663471 3113 ("glib:bin" ,glib "bin")
b804c61e
JD
3114 ("pkg-config" ,pkg-config)))
3115 (home-page "http://www.gnumeric.org")
66672a45
LC
3116 (synopsis "Spreadsheet application")
3117 (description
3118 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3119interoperable with other spreadsheet applications. It has a vast array of
3120features beyond typical spreadsheet functionality, such as support for linear
3121and non-linear solvers, statistical analysis, and telecommunication
3122engineering.")
3123 (license
b804c61e
JD
3124 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3125 (list license:gpl2 license:gpl3))))
6f885c05
FB
3126
3127(define-public gnome-themes-standard
3128 (package
3129 (name "gnome-themes-standard")
0b7b8fb0 3130 (version "3.22.3")
6f885c05
FB
3131 (source
3132 (origin
3133 (method url-fetch)
2e6ecc5c 3134 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3135 (version-major+minor version) "/" name "-"
3136 version ".tar.xz"))
3137 (sha256
3138 (base32
0b7b8fb0 3139 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3140 (build-system gnu-build-system)
8ac70c7f
SB
3141 (arguments
3142 '(#:configure-flags
3143 ;; Don't create 'icon-theme.cache'.
3144 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3145 (true (string-append coreutils "/bin/true")))
3146 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3147 (inputs
3148 `(("gtk+" ,gtk+)
3149 ("gtk+-2" ,gtk+-2)
3150 ("librsvg" ,librsvg)
3151 ("libxml2" ,libxml2)
3152 ("glib" ,glib)))
3153 (native-inputs
3154 `(("intltool" ,intltool)
3155 ("glib:bin" ,glib "bin")
3156 ("pkg-config" ,pkg-config)))
6f885c05
FB
3157 (home-page "https://launchpad.net/gnome-themes-standard")
3158 (synopsis "Default GNOME 3 themes")
3159 (description
3160 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3161 (license license:lgpl2.1+)))
5a659a48 3162
df90c701
RW
3163(define-public seahorse
3164 (package
3165 (name "seahorse")
bcea3c11 3166 (version "3.32.2")
df90c701
RW
3167 (source
3168 (origin
3169 (method url-fetch)
3170 (uri (string-append "mirror://gnome/sources/" name "/"
3171 (version-major+minor version) "/" name "-"
3172 version ".tar.xz"))
3173 (sha256
3174 (base32
bcea3c11 3175 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
af561664
MÁAV
3176 (patches (search-patches
3177 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3178 (build-system meson-build-system)
3179 (arguments
bcea3c11
KK
3180 '(#:glib-or-gtk? #t
3181 #:phases
af561664
MÁAV
3182 (modify-phases %standard-phases
3183 (add-after 'unpack 'skip-gtk-update-icon-cache
3184 ;; Don't create 'icon-theme.cache'.
3185 (lambda _
3186 (substitute* "build-aux/meson_post_install.py"
3187 (("gtk-update-icon-cache") "true"))
3188 #t)))))
df90c701
RW
3189 (inputs
3190 `(("gtk+" ,gtk+)
3191 ("gcr" ,gcr)
34b979b9 3192 ("gnupg" ,gnupg)
df90c701 3193 ("gpgme" ,gpgme)
34b979b9 3194 ("openldap" ,openldap)
4a1bf090 3195 ("openssh" ,openssh)
af561664 3196 ("avahi" ,avahi)
bcea3c11 3197 ("libpwquality" ,libpwquality)
34b979b9
EF
3198 ("libsecret" ,libsecret)
3199 ("libsoup" ,libsoup)))
df90c701 3200 (native-inputs
af561664 3201 `(("gettext" ,gettext-minimal)
df90c701
RW
3202 ("glib:bin" ,glib "bin")
3203 ("itstool" ,itstool)
bcb354ad 3204 ("pkg-config" ,pkg-config)
af561664 3205 ("vala" ,vala)
bcb354ad 3206 ("xmllint" ,libxml2)))
bcea3c11 3207 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3208 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3209 (description
3210 "Seahorse is a GNOME application for managing encryption keys and
3211passwords in the GNOME keyring.")
3212 (license license:gpl2+)))
3213
5a659a48
SB
3214(define-public vala
3215 (package
3216 (name "vala")
b92a36db 3217 (version "0.46.5")
5a659a48
SB
3218 (source (origin
3219 (method url-fetch)
3220 (uri (string-append "mirror://gnome/sources/" name "/"
3221 (version-major+minor version) "/"
3222 name "-" version ".tar.xz"))
3223 (sha256
3224 (base32
b92a36db 3225 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
5a659a48 3226 (build-system gnu-build-system)
1ea90625
SB
3227 (arguments
3228 '(#:phases
3229 (modify-phases %standard-phases
f4925a4f 3230 (add-before 'check 'pre-check
1ea90625
SB
3231 (lambda _
3232 (setenv "CC" "gcc")
8839b6be
RW
3233 (substitute* "valadoc/tests/testrunner.sh"
3234 (("export PKG_CONFIG_PATH=" m)
3235 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3236 ;; For missing '/etc/machine-id'.
3237 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3238 #t)))))
5a659a48
SB
3239 (native-inputs
3240 `(("pkg-config" ,pkg-config)
3241 ("flex" ,flex)
3242 ("bison" ,bison)
3243 ("xsltproc" ,libxslt)
3244 ("dbus" ,dbus) ; for dbus tests
3245 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3246 (inputs
3247 `(("graphviz" ,graphviz)))
5a659a48 3248 (propagated-inputs
8839b6be 3249 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3250 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3251 (synopsis "Compiler for the GObject type system")
3252 (description
3253 "Vala is a programming language that aims to bring modern programming
3254language features to GNOME developers without imposing any additional runtime
3255requirements and without using a different ABI compared to applications and
3256libraries written in C.")
3257 (license license:lgpl2.1+)))
ea57378f
SB
3258
3259(define-public vte
3260 (package
3261 (name "vte")
68c47474 3262 (version "0.58.3")
ea57378f
SB
3263 (source (origin
3264 (method url-fetch)
ac87ffb8 3265 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3266 (version-major+minor version) "/"
ac87ffb8 3267 "vte-" version ".tar.xz"))
ea57378f
SB
3268 (sha256
3269 (base32
68c47474
TGR
3270 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3271 (build-system meson-build-system)
ea57378f
SB
3272 (native-inputs
3273 `(("pkg-config" ,pkg-config)
3274 ("intltool" ,intltool)
3275 ("vala" ,vala)
3276 ("gobject-introspection" ,gobject-introspection)
68c47474 3277 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3278 ("gperf" ,gperf)
ea57378f
SB
3279 ("xmllint" ,libxml2)))
3280 (propagated-inputs
68c47474
TGR
3281 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3282 ("gnutls" ,gnutls) ; ditto
3283 ("pcre2" ,pcre2))) ; ditto
f032d0be 3284 (home-page "https://www.gnome.org/")
ea57378f
SB
3285 (synopsis "Virtual Terminal Emulator")
3286 (description
3287 "VTE is a library (libvte) implementing a terminal emulator widget for
3288GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3289gnome-terminal, but can also be used to embed a console/terminal in games,
3290editors, IDEs, etc.")
3291 (license license:lgpl2.1+)))
3292
c44fb4df
MO
3293(define-public vte-ng
3294 (package
3295 (inherit vte)
3296 (name "vte-ng")
24f4fcbe 3297 (version "0.58.2.a")
afd90f8d 3298 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3299 (source (origin
3300 (method git-fetch)
3301 (uri (git-reference (url home-page) (commit version)))
3302 (file-name (git-file-name name version))
3303 (sha256
3304 (base32
24f4fcbe
MB
3305 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3306 (build-system meson-build-system)
c44fb4df
MO
3307 (native-inputs
3308 `(("gtk-doc" ,gtk-doc)
c44fb4df 3309 ,@(package-native-inputs vte)))
c44fb4df 3310 (arguments
24f4fcbe 3311 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3312 (synopsis "Enhanced VTE terminal widget")
3313 (description
3314 "VTE is a library (libvte) implementing a terminal emulator widget for
3315GTK+, this fork provides additional functions exposed for keyboard text
3316selection and URL hints.")))
3317
2776d72c
EF
3318;; provides vte 2.90, required for some terminal emulators
3319;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3320;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3321;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3322;; pantheon-terminal, roxterm are not currently packaged
3323(define-public vte-0.36
3324 (package (inherit vte)
3325 (name "vte")
3326 (version "0.36.5")
3327 (source (origin
3328 (method url-fetch)
3329 (uri (string-append "mirror://gnome/sources/" name "/"
3330 (version-major+minor version) "/"
3331 name "-" version ".tar.xz"))
3332 (sha256
3333 (base32
3334 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3335 (propagated-inputs
3336 `(("gtk" ,gtk+)
3337 ("ncurses" ,ncurses)))))
3338
ea57378f
SB
3339;; stable version for gtk2, required by xfce4-terminal.
3340(define-public vte/gtk+-2
3341 (package (inherit vte)
3342 (name "vte")
3343 (version "0.28.2")
3344 (source (origin
3345 (method url-fetch)
3346 (uri (string-append "mirror://gnome/sources/" name "/"
3347 (version-major+minor version) "/"
3348 name "-" version ".tar.xz"))
3349 (sha256
3350 (base32
7d48938a
EF
3351 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3352 (patches (search-patches
3353 "vte-CVE-2012-2738-pt1.patch"
3354 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3355 (build-system gnu-build-system)
ea57378f
SB
3356 (arguments
3357 '(#:configure-flags '("--disable-python")))
3358 (native-inputs
3359 `(("pkg-config" ,pkg-config)
3360 ("intltool" ,intltool)
3361 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3362 (propagated-inputs
3363 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3364 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3365
cce0da5e
TD
3366(define-public vinagre
3367 (package
3368 (name "vinagre")
3369 (version "3.22.0")
3370 (source (origin
3371 (method url-fetch)
3372 (uri (string-append "mirror://gnome/sources/" name "/"
3373 (version-major+minor version) "/"
3374 name "-" version ".tar.xz"))
684f97f8
EF
3375 (patches (search-patches "vinagre-newer-freerdp.patch"
3376 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3377 (sha256
3378 (base32
3379 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3380 (build-system glib-or-gtk-build-system)
684f97f8 3381 (arguments
7f486d25
MC
3382 ;; Disable -Werror and such, to avoid build failures on compilation
3383 ;; warnings.
3384 '(#:configure-flags '("--enable-compile-warnings=minimum")
3385 #:phases
684f97f8 3386 (modify-phases %standard-phases
1839768c
EF
3387 (add-before 'install 'skip-gtk-update-icon-cache
3388 (lambda _
3389 ;; Don't create 'icon-theme.cache'
3390 (substitute* (find-files "." "^Makefile$")
3391 (("gtk-update-icon-cache") (which "true")))
3392 #t))
684f97f8
EF
3393 (add-after 'unpack 'patch-configure
3394 (lambda _
3395 (substitute* "configure"
3396 (("freerdp") "freerdp2"))
3397 #t)))))
cce0da5e
TD
3398 (native-inputs
3399 `(("pkg-config" ,pkg-config)
3400 ("intltool" ,intltool)
3401 ("itstool" ,itstool)
1839768c 3402 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3403 (inputs
3404 `(("libxml2" ,libxml2)
3405 ("gtk-vnc" ,gtk-vnc)
3406 ("gnome-keyring" ,gnome-keyring)
3407 ("libsecret" ,libsecret)
3408 ("freerdp" ,freerdp)
3409 ("spice" ,spice)
3410 ("spice-gtk" ,spice-gtk)
3411 ("telepathy-glib" ,telepathy-glib)
3412 ("vte" ,vte)))
cce0da5e
TD
3413 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3414 (synopsis "Remote desktop viewer for GNOME")
3415 (description "Vinagre is a remote display client supporting the VNC, SPICE
3416and RDP protocols.")
3417 (license license:gpl3+)))
3418
b47e1b20
FB
3419(define-public dconf
3420 (package
3421 (name "dconf")
1e33331c 3422 (version "0.32.0")
b47e1b20
FB
3423 (source (origin
3424 (method url-fetch)
3425 (uri (string-append
2e6ecc5c 3426 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3427 (version-major+minor version) "/"
3428 name "-" version ".tar.xz"))
46c3a08b 3429 (patches (search-patches "dconf-meson-0.52.patch"))
b47e1b20 3430 (sha256
f05c809f 3431 (base32
1e33331c 3432 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
35fa923d 3433 (build-system meson-build-system)
bc036f4c
MB
3434 (propagated-inputs
3435 ;; In Requires of dconf.pc.
3436 `(("glib" ,glib)))
b47e1b20
FB
3437 (inputs
3438 `(("gtk+" ,gtk+)
bc036f4c 3439 ("dbus" ,dbus)))
b47e1b20 3440 (native-inputs
1e33331c
MB
3441 `(("bash-completion" ,bash-completion)
3442 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3443 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3444 ("docbook-xml" ,docbook-xml-4.2)
3445 ("docbook-xsl" ,docbook-xsl)
35fa923d 3446 ("glib:bin" ,glib "bin")
03676d6f 3447 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3448 ("pkg-config" ,pkg-config)
3449 ("vala" ,vala)))
b47e1b20
FB
3450 (arguments
3451 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3452 ; or /etc/machine-id.
35fa923d
MB
3453 #:glib-or-gtk? #t
3454 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
3455 (home-page "https://developer.gnome.org/dconf")
3456 (synopsis "Low-level GNOME configuration system")
3457 (description "Dconf is a low-level configuration system. Its main purpose
3458is to provide a backend to GSettings on platforms that don't already have
3459configuration storage systems.")
e20e6b40 3460 (license license:lgpl2.1+)))
109da1c0
AE
3461
3462(define-public json-glib
3463 (package
3464 (name "json-glib")
4115e8ea 3465 (version "1.4.4")
109da1c0
AE
3466 (source (origin
3467 (method url-fetch)
3468 (uri (string-append "mirror://gnome/sources/" name "/"
3469 (version-major+minor version) "/"
3470 name "-" version ".tar.xz"))
3471 (sha256
3472 (base32
4115e8ea 3473 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3474 (build-system meson-build-system)
109da1c0 3475 (native-inputs
98afa184
MB
3476 `(("gettext" ,gettext-minimal)
3477 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3478 ("gobject-introspection" ,gobject-introspection)
3479 ("pkg-config" ,pkg-config)))
3480 (propagated-inputs
88c6b580 3481 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3482 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3483 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3484 (description
3485 "JSON-GLib is a C library based on GLib providing serialization and
3486deserialization support for the JavaScript Object Notation (JSON) format
3487described by RFC 4627. It provides parser and generator GObject classes and
3488various wrappers for the complex data types employed by JSON, such as arrays
3489and objects.")
109da1c0 3490 (license license:lgpl2.1+)))
6f96a359
SB
3491
3492(define-public libxklavier
3493 (package
3494 (name "libxklavier")
5f39050b 3495 (version "5.4")
6f96a359 3496 (source (origin
5f39050b 3497 ;; Note: There's no tarball at ftp.gnome.org for this version.
3498 (method git-fetch)
3499 (uri (git-reference
3500 (url "https://anongit.freedesktop.org/git/libxklavier")
3501 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3502 (sha256
3503 (base32
5f39050b 3504 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3505 (file-name (git-file-name name version))))
6f96a359
SB
3506 (build-system gnu-build-system)
3507 (arguments
5f39050b 3508 '(#:phases
3509 (modify-phases %standard-phases
3510 (add-after 'unpack 'no-configure
3511 (lambda* _
3512 (setenv "NOCONFIGURE" "1")
3513 #t)))
3514 #:configure-flags
6f96a359
SB
3515 (list (string-append "--with-xkb-base="
3516 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3517 "/share/X11/xkb")
3518 "--disable-xmodmap-support")))
6f96a359
SB
3519 (native-inputs
3520 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3521 ("gobject-introspection" ,gobject-introspection)
5f39050b 3522 ("pkg-config" ,pkg-config)
3523 ("gtk-doc" ,gtk-doc)
3524 ("intltool" ,intltool)
3525 ("which" ,which)
3526 ("autoconf" ,autoconf)
3527 ("automake" ,automake)
3528 ("libtool" ,libtool)))
6f96a359
SB
3529 (propagated-inputs
3530 ;; Required by libxklavier.pc.
3531 `(("glib" ,glib)
3532 ("libxml2" ,libxml2)))
3533 (inputs
3534 `(("iso-codes" ,iso-codes)
3535 ("libxi" ,libxi)
3536 ("libxkbfile" ,libxkbfile)
3537 ("xkbcomp" ,xkbcomp)
3538 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3539 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3540 (synopsis "High-level API for X Keyboard Extension")
3541 (description
3542 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3543Extension known as XKB. This library is intended to support XFree86 and other
3544commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3545indicators etc).")
3546 (license license:lgpl2.0+)))
619936a4
LC
3547
3548(define-public python2-rsvg
3549 ;; XXX: This is actually a subset of gnome-python-desktop.
3550 (package
3551 (name "python2-rsvg")
3552 (version "2.32.0")
3553 (source
3554 (origin
3555 (method url-fetch)
3556 (uri (string-append
3557 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3558 version ".tar.bz2"))
3559 (sha256
3560 (base32
3561 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3562 (build-system gnu-build-system)
3563 (native-inputs
3564 `(("pkg-config" ,pkg-config)))
3565 (inputs
3566 `(("python" ,python-2)
3567 ("python2-pygtk" ,python2-pygtk)
3568 ("librsvg" ,librsvg)))
f032d0be 3569 (home-page "https://www.gnome.org")
619936a4
LC
3570 (synopsis "Python bindings to librsvg")
3571 (description
3ad75446 3572 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3573library.")
3574
3575 ;; This is the license of the rsvg bindings. The license of each module
3576 ;; of gnome-python-desktop is given in 'COPYING'.
3577 (license license:lgpl2.1+)))
a31a6d22 3578
f2ca414a
SB
3579(define-public glib-networking
3580 (package
3581 (name "glib-networking")
0d75c64d 3582 (version "2.60.3")
f2ca414a
SB
3583 (source (origin
3584 (method url-fetch)
3585 (uri (string-append "mirror://gnome/sources/glib-networking/"
3586 (version-major+minor version) "/"
fb8fe1e8 3587 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3588 (sha256
3589 (base32
0d75c64d 3590 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
65211552 3591 (build-system meson-build-system)
f2ca414a 3592 (arguments
0d75c64d 3593 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3594 (native-inputs
3595 `(("pkg-config" ,pkg-config)
3596 ("intltool" ,intltool)))
3597 (inputs
3598 `(("glib" ,glib)
3599 ("gnutls" ,gnutls)
4b8f1313 3600 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3601 (home-page "https://www.gnome.org")
f2ca414a
SB
3602 (synopsis "Network-related GIO modules")
3603 (description
3604 "This package contains various network related extensions for the GIO
3605library.")
3606 (license license:lgpl2.0+)))
3607
ca649680 3608(define-public rest
4510b2da 3609 (package
ca649680 3610 (name "rest")
a4194d16 3611 (version "0.8.1")
4510b2da
SB
3612 (source (origin
3613 (method url-fetch)
3614 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3615 (version-major+minor version) "/"
3616 name "-" version ".tar.xz"))
4510b2da
SB
3617 (sha256
3618 (base32
a4194d16 3619 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3620 (build-system gnu-build-system)
3621 (arguments
3622 '(#:tests? #f ; tests require internet connection
3623 #:configure-flags
3624 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3625 (native-inputs
3626 `(("glib-mkenums" ,glib "bin")
3627 ("gobject-introspection" ,gobject-introspection)
3628 ("pkg-config" ,pkg-config)))
3629 (propagated-inputs
3630 ;; rest-0.7.pc refers to all these.
3631 `(("glib" ,glib)
3632 ("libsoup" ,libsoup)
3633 ("libxml2" ,libxml2)))
24d6cc1d 3634 (home-page "https://www.gtk.org/")
4510b2da
SB
3635 (synopsis "RESTful web api query library")
3636 (description
3637 "This library was designed to make it easier to access web services that
3638claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3639libxml to ease remote use of the RESTful API.")
3640 (license license:lgpl2.1+)))
3641
6e1bb642
SB
3642(define-public libsoup
3643 (package
3644 (name "libsoup")
9ae87870 3645 (version "2.68.3")
6e1bb642
SB
3646 (source (origin
3647 (method url-fetch)
3648 (uri (string-append "mirror://gnome/sources/libsoup/"
3649 (version-major+minor version) "/"
c1b79b36 3650 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3651 (sha256
3652 (base32
9ae87870 3653 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
eccaa8bf 3654 (build-system meson-build-system)
6e1bb642
SB
3655 (outputs '("out" "doc"))
3656 (arguments
2deb146f 3657 `(#:modules ((guix build utils)
eccaa8bf 3658 (guix build meson-build-system)
2deb146f
LC
3659 (ice-9 popen))
3660
f8026a79 3661 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3662 #:phases
3663 (modify-phases %standard-phases
eccaa8bf 3664 (add-after 'unpack 'adjust-tests
26c228f9 3665 (lambda _
eccaa8bf
MB
3666 ;; This test fails due to missing /etc/nsswitch.conf
3667 ;; in the build environment.
26c228f9
LC
3668 (substitute* "tests/socket-test.c"
3669 ((".*/sockets/unconnected.*") ""))
2deb146f 3670
f8026a79
MB
3671 ;; These fail because "subdomain.localhost" does not resolve in
3672 ;; the build environment.
3673 (substitute* "tests/hsts-test.c"
3674 ((".*/hsts/basic.*") "")
3675 ((".*/hsts/subdomains.*") "")
3676 ((".*/hsts/superdomain.*") "")
3677 ((".*/hsts/utf8-address.*") ""))
3678 (substitute* "tests/hsts-db-test.c"
3679 ((".*/hsts-db/subdomains.*") ""))
3680
2deb146f
LC
3681 ;; Generate a self-signed certificate that has "localhost" as its
3682 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3683 ;; 3.5.12, tests such as "ssl-tests" fail:
3684 ;;
3685 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3686 ;;
3687 ;; 'certtool' is interactive so we have to pipe it the answers.
3688 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3689 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3690 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3691 (for-each (lambda (line)
3692 (display line pipe)
3693 (newline pipe))
3694 '("" ;Common name
3695 "" ;UID
3696 "Guix" ;Organizational unit name
3697 "GNU" ;Organization name
3698 "" ;Locality name
3699 "" ;State or province
3700 "" ;Country
3701 "" ;subject's domain component (DC)
3702 "" ;E-mail
3703 "" ;serial number
3704 "-1" ;expiration time
3705 "N" ;belong to authority?
3706 "N" ;web client certificate?
3707 "N" ;IPsec IKE?
3708 "Y" ;web server certificate?
3709 "localhost" ;dnsName of subject
3710 "" ;dnsName of subject (end)
3711 "" ;URI of subject
3712 "127.0.0.1" ;IP address of subject
3713 "" ;signing?
06f5bc4e
MB
3714 "" ;encryption (RSA)?
3715 "" ;data encryption?
2deb146f
LC
3716 "" ;sign OCSP requests?
3717 "" ;sign code?
3718 "" ;time stamping?
3719 "" ;email protection?
3720 "" ;URI of the CRL distribution point
3721 "y" ;above info OK?
3722 ))
3723 (close-pipe pipe))
26c228f9 3724 #t))
eccaa8bf
MB
3725 (add-after 'install 'move-doc
3726 (lambda* (#:key outputs #:allow-other-keys)
3727 (let ((out (assoc-ref outputs "out"))
3728 (doc (assoc-ref outputs "doc")))
3729 (mkdir-p (string-append doc "/share"))
3730 (copy-recursively (string-append out "/share/gtk-doc")
3731 (string-append doc "/share/gtk-doc"))
3732 (delete-file-recursively (string-append out "/share/gtk-doc"))
3733 #t))))))
6e1bb642 3734 (native-inputs
26c228f9 3735 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3736 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3737 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3738 ("intltool" ,intltool)
3739 ("pkg-config" ,pkg-config)
3740 ("python" ,python-wrapper)
fd730590 3741 ("vala" ,vala)
6e1bb642
SB
3742 ;; These are needed for the tests.
3743 ;; FIXME: Add PHP once available.
3744 ("curl" ,curl)
2deb146f 3745 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3746 ("httpd" ,httpd)))
3747 (propagated-inputs
3748 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3749 `(("brotli" ,google-brotli)
3750 ("glib" ,glib)
249846bf 3751 ("libpsl" ,libpsl)
eccaa8bf 3752 ("libxml2" ,libxml2)
f8026a79
MB
3753 ("sqlite" ,sqlite)
3754 ("zlib" ,zlib)))
eccaa8bf
MB
3755 (inputs
3756 `(("glib-networking" ,glib-networking)
3757 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3758 (home-page "https://live.gnome.org/LibSoup/")
3759 (synopsis "GLib-based HTTP Library")
3760 (description
3761 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3762and the GLib main loop, to integrate well with GNOME applications.")
3763 (license license:lgpl2.0+)))
3764
bba229a3
SB
3765(define-public libsecret
3766 (package
3767 (name "libsecret")
a866dd18 3768 (version "0.20.1")
bba229a3
SB
3769 (source (origin
3770 (method url-fetch)
3771 (uri (string-append
896dcbc7
EF
3772 "mirror://gnome/sources/libsecret/"
3773 (version-major+minor version) "/"
0ada4e29 3774 "libsecret-" version ".tar.xz"))
bba229a3
SB
3775 (sha256
3776 (base32
a866dd18 3777 "0ir4ynpf8b64xss1azvsi5x6697lik7hkf3z0xxa2qv2xja3xxsp"))))
bba229a3
SB
3778 (build-system gnu-build-system)
3779 (outputs '("out" "doc"))
3780 (arguments
3781 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3782 #:configure-flags
3783 (list (string-append "--with-html-dir="
3784 (assoc-ref %outputs "doc")
3785 "/share/gtk-doc/html"))))
3786 (native-inputs
c06ef010
MB
3787 `(("gettext" ,gettext-minimal)
3788 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3789 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3790 ("pkg-config" ,pkg-config)
3791 ("vala" ,vala)
3792 ("xsltproc" ,libxslt)))
3793 ;; These are needed for the tests.
3794 ;; FIXME: Add gjs once available.
3795 ;("dbus" ,dbus)
3796 ;("python2" ,python-2)
3797 ;("python2-dbus" ,python2-dbus)
3798 ;("python2-pygobject" ,python2-pygobject)
3799 ;("python2-pygobject-2" ,python2-pygobject-2)))
3800 (propagated-inputs
3801 `(("glib" ,glib))) ; required by libsecret-1.pc
3802 (inputs
3803 `(("docbook-xsl" ,docbook-xsl)
3804 ("libgcrypt" ,libgcrypt)
3805 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3806 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3807 (synopsis "GObject bindings for \"Secret Service\" API")
3808 (description
3809 "Libsecret is a GObject based library for storing and retrieving passwords
3810and other secrets. It communicates with the \"Secret Service\" using DBus.")
3811 (license license:lgpl2.1+)))
3812
b6821ee0 3813(define-public five-or-more
3814 (package
3815 (name "five-or-more")
d9795e93 3816 (version "3.32.0")
b6821ee0 3817 (source
3818 (origin
3819 (method url-fetch)
3820 (uri (string-append "mirror://gnome/sources/" name "/"
3821 (version-major+minor version) "/"
3822 name "-" version ".tar.xz"))
3823 (sha256
3824 (base32
d9795e93
KK
3825 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3826 (build-system meson-build-system)
3827 (arguments
3828 '(#:glib-or-gtk? #t
3829 #:phases
3830 (modify-phases %standard-phases
3831 (add-after 'unpack 'skip-gtk-update-icon-cache
3832 (lambda _
3833 (substitute* "meson_post_install.py"
3834 (("gtk-update-icon-cache") (which "true")))
3835 #t)))))
b6821ee0 3836 (native-inputs
3837 `(("pkg-config" ,pkg-config)
d9795e93 3838 ("appstream-glib" ,appstream-glib)
b6821ee0 3839 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3840 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3841 ("intltool" ,intltool)
3842 ("itstool" ,itstool)
d9795e93 3843 ("vala" ,vala)
b6821ee0 3844 ("xmllint" ,libxml2)))
3845 (inputs
3846 `(("gtk+" ,gtk+)
d9795e93 3847 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3848 ("librsvg" ,librsvg)))
3849 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3850 (synopsis "Logic puzzle game")
3851 (description "Five or More is a game where you try to align
3852 five or more objects of the same color and shape causing them to disappear.
3853 On every turn more objects will appear, until the board is full.
3854 Try to last as long as possible.")
3855 (license license:gpl2+)))
3856
a31a6d22
SB
3857(define-public gnome-mines
3858 (package
3859 (name "gnome-mines")
2d817e41 3860 (version "3.32.2")
a31a6d22
SB
3861 (source
3862 (origin
3863 (method url-fetch)
3864 (uri (string-append "mirror://gnome/sources/" name "/"
3865 (version-major+minor version) "/"
3866 name "-" version ".tar.xz"))
3867 (sha256
3868 (base32
2d817e41 3869 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
8c0fab36 3870 (build-system meson-build-system)
a31a6d22 3871 (arguments
2d817e41
KK
3872 '(#:glib-or-gtk? #t
3873 #:phases
a31a6d22 3874 (modify-phases %standard-phases
2d817e41
KK
3875 (add-after 'unpack 'skip-gtk-update-icon-cache
3876 (lambda _
3877 (substitute* "build-aux/meson_post_install.py"
3878 (("gtk-update-icon-cache") (which "true")))
3879 #t)))))
a31a6d22 3880 (native-inputs
8c0fab36
RW
3881 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3882 ("pkg-config" ,pkg-config)
a31a6d22
SB
3883 ("desktop-file-utils" ,desktop-file-utils)
3884 ("intltool" ,intltool)
bcb354ad 3885 ("itstool" ,itstool)
8c0fab36
RW
3886 ("vala" ,vala)
3887 ("yelp" ,yelp)
3888 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3889 (inputs
3890 `(("gtk+" ,gtk+)
73992962 3891 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3892 ("librsvg" ,librsvg)))
3893 (home-page "https://wiki.gnome.org/Apps/Mines")
3894 (synopsis "Minesweeper game")
3895 (description
3896 "Mines (previously gnomine) is a puzzle game where you locate mines
3897floating in an ocean using only your brain and a little bit of luck.")
3898 (license license:gpl2+)))
88f70665 3899
dfc407f3
KY
3900(define-public gnome-sudoku
3901 (package
3902 (name "gnome-sudoku")
7dc728c4 3903 (version "3.32.0")
dfc407f3
KY
3904 (source
3905 (origin
3906 (method url-fetch)
3907 (uri (string-append "mirror://gnome/sources/" name "/"
3908 (version-major+minor version) "/"
3909 name "-" version ".tar.xz"))
3910 (sha256
3911 (base32
7dc728c4
KK
3912 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3913 (build-system meson-build-system)
3914 (arguments
3915 '(#:glib-or-gtk? #t
3916 #:phases
3917 (modify-phases %standard-phases
3918 (add-after 'unpack 'skip-gtk-update-icon-cache
3919 (lambda _
3920 (substitute* "build-aux/post_install.py"
3921 (("gtk-update-icon-cache") (which "true")))
3922 #t)))))
dfc407f3
KY
3923 (native-inputs
3924 `(("pkg-config" ,pkg-config)
3925 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3926 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3927 ("intltool" ,intltool)
3928 ("itstool" ,itstool)
7dc728c4 3929 ("vala" ,vala)
dfc407f3
KY
3930 ("xmllint" ,libxml2)))
3931 (inputs
3932 `(("gtk+" ,gtk+)
3933 ("json-glib" ,json-glib)
3934 ("libgee" ,libgee)
3935 ("librsvg" ,librsvg)
3936 ("qqwing" ,qqwing)))
3937 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3938 (synopsis "Japanese logic game")
3939 (description
3940 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3941GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3942possible while still providing features that make playing difficult Sudoku
3943more fun.")
3944 (license license:gpl2+)))
3945
88f70665
AW
3946(define-public gnome-terminal
3947 (package
3948 (name "gnome-terminal")
7dee3942 3949 (version "3.32.2")
88f70665
AW
3950 (source
3951 (origin
3952 (method url-fetch)
3953 (uri (string-append "mirror://gnome/sources/" name "/"
3954 (version-major+minor version) "/"
3955 name "-" version ".tar.xz"))
3956 (sha256
3957 (base32
7dee3942 3958 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
88f70665
AW
3959 (build-system glib-or-gtk-build-system)
3960 (arguments
3961 '(#:configure-flags
3962 (list "--disable-migration" "--disable-search-provider"
3963 "--without-nautilus-extension")
3964 #:phases
3965 (modify-phases %standard-phases
3a4de6b2 3966 (add-before 'configure 'patch-/bin/true
88f70665
AW
3967 (lambda _
3968 (substitute* "configure"
3969 (("/bin/true") (which "true"))))))))
3970 (native-inputs
3971 `(("pkg-config" ,pkg-config)
3972 ("desktop-file-utils" ,desktop-file-utils)
3973 ("intltool" ,intltool)
bcb354ad
SB
3974 ("itstool" ,itstool)
3975 ("xmllint" ,libxml2)))
68702167
MW
3976 (propagated-inputs
3977 `(("dconf" ,dconf)))
88f70665
AW
3978 (inputs
3979 `(("gtk+" ,gtk+)
3980 ("vte" ,vte)
3981 ("gnutls" ,gnutls)
88f70665 3982 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
bb93042c 3983 ("util-linux" ,util-linux "lib")
88f70665
AW
3984 ("vala" ,vala)))
3985 (home-page "https://wiki.gnome.org/Apps/Terminal")
3986 (synopsis "Terminal emulator")
3987 (description
3988 "GNOME Terminal is a terminal emulator application for accessing a
3989UNIX shell environment which can be used to run programs available on
3990your system.
3991
3992It supports several profiles, multiple tabs and implements several
3993keyboard shortcuts.")
3994 (license license:gpl3+)))
75016d07
AW
3995
3996(define-public colord
3997 (package
3998 (name "colord")
f98be942 3999 (version "1.4.4")
75016d07
AW
4000 (source
4001 (origin
4002 (method url-fetch)
5cc3096c 4003 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 4004 "colord-" version ".tar.xz"))
75016d07 4005 (sha256
f98be942 4006 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 4007 (build-system meson-build-system)
75016d07 4008 (arguments
a68544a8
RW
4009 '(;; FIXME: One test fails:
4010 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4011 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4012 ;; application/x-zerosize
75016d07 4013 #:tests? #f
a68544a8
RW
4014 #:glib-or-gtk? #t
4015 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 4016 ;; No dep on systemd.
a68544a8 4017 "-Dsystemd=false"
75016d07
AW
4018 ;; Wants to install to global completion dir;
4019 ;; punt.
a68544a8 4020 "-Dbash_completion=false"
a68544a8
RW
4021 "-Ddaemon_user=colord"
4022 "-Dsane=true"
dac26e22 4023 "-Dvapi=true"
6f20e2dc 4024 ;; Requires spotread.
a68544a8 4025 "-Dargyllcms_sensor=false"
6f20e2dc 4026 ;; TODO: Requires docbook2x.
a68544a8 4027 "-Dman=false")
75016d07
AW
4028 #:phases
4029 (modify-phases %standard-phases
a68544a8
RW
4030 (add-before 'configure 'patch-build-system
4031 (lambda* (#:key outputs #:allow-other-keys)
4032 (substitute* "rules/meson.build"
4033 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4034 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4035 #t))
4036 (add-before 'configure 'set-sqlite3-file-name
4037 (lambda* (#:key inputs #:allow-other-keys)
4038 ;; "colormgr dump" works by invoking the "sqlite3" command.
4039 ;; Record its absolute file name.
4040 (let ((sqlite (assoc-ref inputs "sqlite")))
4041 (substitute* "client/cd-util.c"
4042 (("\"sqlite3\"")
4043 (string-append "\"" sqlite "/bin/sqlite3\"")))
4044 #t))))))
75016d07 4045 (native-inputs
6f20e2dc 4046 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4047 ("gettext" ,gettext-minimal)
75016d07 4048 ("gobject-introspection" ,gobject-introspection)
a68544a8 4049 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4050 ("pkg-config" ,pkg-config)
4051 ("vala" ,vala)))
65cb2d61
SB
4052 (propagated-inputs
4053 ;; colord.pc refers to all these.
4054 `(("glib" ,glib)
6f20e2dc
TGR
4055 ("lcms" ,lcms)
4056 ("udev" ,eudev)))
75016d07 4057 (inputs
65cb2d61 4058 `(("dbus-glib" ,dbus-glib)
a68544a8 4059 ("gusb" ,gusb)
80c7dd1a 4060 ("libgudev" ,libgudev)
75016d07 4061 ("libusb" ,libusb)
75016d07 4062 ("polkit" ,polkit)
a68544a8 4063 ("python" ,python-wrapper)
6f20e2dc 4064 ("sqlite" ,sqlite)
4c928743 4065 ("sane-backends" ,sane-backends)))
57e7d748 4066 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4067 (synopsis "Color management service")
4068 (description "Colord is a system service that makes it easy to manage,
4069install and generate color profiles to accurately color manage input and
4070output devices.")
4071 (license license:gpl2+)))
7b2abd00
AW
4072
4073(define-public geoclue
4074 (package
4075 (name "geoclue")
50e96d25 4076 (version "2.5.5")
7b2abd00
AW
4077 (source
4078 (origin
4079 (method url-fetch)
50e96d25
MB
4080 (uri
4081 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4082 version "/geoclue-" version ".tar.bz2"))
7b2abd00
AW
4083 (sha256
4084 (base32
50e96d25 4085 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
fc1adab1 4086 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4087 (build-system meson-build-system)
7b2abd00 4088 (arguments
50e96d25 4089 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4090 (native-inputs
4091 `(("pkg-config" ,pkg-config)
758798a9 4092 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4093 ("modem-manager" ,modem-manager)
4094 ("libnotify" ,libnotify)
4095 ("gtk-doc", gtk-doc)
7b2abd00
AW
4096 ("intltool" ,intltool)))
4097 (inputs
54e911bc 4098 `(("avahi" ,avahi)
50e96d25
MB
4099 ("glib:bin" ,glib "bin")
4100 ("glib-networking" ,glib-networking)
7b2abd00
AW
4101 ("json-glib" ,json-glib)
4102 ("libsoup" ,libsoup)))
50e96d25 4103 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4104 (synopsis "Geolocation service")
4105 (description "Geoclue is a D-Bus service that provides location
4106information. The primary goal of the Geoclue project is to make creating
4107location-aware applications as simple as possible, while the secondary goal is
4108to ensure that no application can access location information without explicit
e881752c 4109permission from user.")
7b2abd00 4110 (license license:gpl2+)))
2bfe7437
AW
4111
4112(define-public geocode-glib
4113 (package
4114 (name "geocode-glib")
65de725f 4115 (version "3.26.1")
2bfe7437
AW
4116 (source (origin
4117 (method url-fetch)
4118 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4119 (version-major+minor version) "/"
d485cdc0 4120 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4121 (sha256
4122 (base32
65de725f 4123 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4124 (build-system meson-build-system)
2bfe7437 4125 (arguments
a7dd0c02
RW
4126 `(#:phases
4127 (modify-phases %standard-phases
4128 ;; The tests require a bunch of locales.
4129 (add-before 'check 'set-locales
4130 (lambda* (#:key inputs #:allow-other-keys)
4131 (setenv "GUIX_LOCPATH"
4132 (string-append (assoc-ref inputs "glibc-locales")
4133 "/lib/locale"))
4134 #t)))))
2bfe7437
AW
4135 (native-inputs
4136 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4137 ("glibc-locales" ,glibc-locales) ; for tests
4138 ("gettext" ,gettext-minimal)
2bfe7437 4139 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4140 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4141 ("pkg-config" ,pkg-config)
4142 ("json-glib" ,json-glib)))
4143 (propagated-inputs
4144 ;; geocode-glib-1.0.pc refers to GIO.
4145 `(("glib" ,glib)))
4146 (inputs
4147 `(("libsoup" ,libsoup)))
4148 (home-page "https://github.com/GNOME/geocode-glib/")
4149 (synopsis "Geocoding and reverse-geocoding library")
4150 (description
4151 "geocode-glib is a convenience library for geocoding (finding longitude,
4152and latitude from an address) and reverse geocoding (finding an address from
4153coordinates) using the Nominatim service. geocode-glib caches requests for
4154faster results and to avoid unnecessary server load.")
4155 (license license:lgpl2.0+)))
a1d5bb0e
AW
4156
4157(define-public upower
4158 (package
4159 (name "upower")
df45af90 4160 (version "0.99.11")
a1d5bb0e
AW
4161 (source (origin
4162 (method url-fetch)
df45af90 4163 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4164 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4165 (sha256
4166 (base32
df45af90 4167 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4168 (patches (search-patches "upower-builddir.patch"))
4169 (modules '((guix build utils)))
4170 (snippet
4171 '(begin
4172 ;; Upstream commit
4173 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4174 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4175 ;; 'dbus-configuration-directory' in (gnu services dbus)
4176 ;; expects it in etc/. Thus, move it back to its previous
4177 ;; location.
4178 (substitute* "src/Makefile.in"
4179 (("^dbusconfdir =.*$")
4180 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4181 #t))))
a1d5bb0e
AW
4182 (build-system glib-or-gtk-build-system)
4183 (arguments
4184 '( ;; The tests want to contact the system bus, which can't be done in the
4185 ;; build environment. The integration test can run, but the last of
4186 ;; the up-self-tests doesn't. Disable tests for now.
4187 #:tests? #f
4188 #:configure-flags (list "--localstatedir=/var"
4189 (string-append "--with-udevrulesdir="
4190 (assoc-ref %outputs "out")
9ec54965 4191 "/lib/udev/rules.d"))))
a1d5bb0e 4192 (native-inputs
ebeabe2d
SB
4193 `(("gobject-introspection" ,gobject-introspection)
4194 ("pkg-config" ,pkg-config)
a1d5bb0e 4195 ("intltool" ,intltool)
55409295
LC
4196 ("python" ,python)
4197
4198 ;; For man pages.
4199 ("libxslt" ,libxslt) ;for 'xsltproc'
4200 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4201 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4202 (inputs
ea226291
SB
4203 `(("dbus-glib" ,dbus-glib)
4204 ("libgudev" ,libgudev)
a1d5bb0e 4205 ("libusb" ,libusb)))
d7a503fc
MB
4206 (propagated-inputs
4207 ;; In Requires of upower-glib.pc.
4208 `(("glib" ,glib)))
57e7d748 4209 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4210 (synopsis "System daemon for managing power devices")
4211 (description
4212 "UPower is an abstraction for enumerating power devices,
4213listening to device events and querying history and statistics. Any
4214application or service on the system can access the org.freedesktop.UPower
4215service via the system message bus.")
4216 (license license:gpl2+)))
6a180f6f
AW
4217
4218(define-public libgweather
4219 (package
4220 (name "libgweather")
794ce8ea 4221 (version "3.28.3")
6a180f6f
AW
4222 (source (origin
4223 (method url-fetch)
4224 (uri (string-append "mirror://gnome/sources/" name "/"
4225 (version-major+minor version) "/"
4226 name "-" version ".tar.xz"))
4227 (sha256
4228 (base32
794ce8ea 4229 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
cf6cbc34 4230 (build-system meson-build-system)
6a180f6f 4231 (arguments
cf6cbc34
RW
4232 `(#:tests? #f ; one of two tests requires network access
4233 #:configure-flags
4234 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4235 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4236 "/share/zoneinfo"))))
6a180f6f
AW
4237 (native-inputs
4238 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4239 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4240 ("pkg-config" ,pkg-config)
1d3fcf94 4241 ("vala" ,vala)
6a180f6f
AW
4242 ("intltool" ,intltool)))
4243 (propagated-inputs
4244 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4245 ;; libsoup.
4246 `(("gtk+" ,gtk+)
4247 ("gdk-pixbuf" ,gdk-pixbuf)
4248 ("libxml2" ,libxml2)
cf6cbc34 4249 ("libsoup" ,libsoup)
6a180f6f 4250 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4251 (inputs
4252 `(("tzdata" ,tzdata)))
6a180f6f
AW
4253 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4254 (synopsis "Location, time zone, and weather library for GNOME")
4255 (description
4256 "libgweather is a library to access weather information from online
4257services for numerous locations.")
4258 (license license:gpl2+)))
23a22af6
AW
4259
4260(define-public gnome-settings-daemon
4261 (package
4262 (name "gnome-settings-daemon")
4be0719f 4263 (version "3.32.1")
23a22af6
AW
4264 (source
4265 (origin
4266 (method url-fetch)
4267 (uri (string-append "mirror://gnome/sources/" name "/"
4268 (version-major+minor version) "/"
4269 name "-" version ".tar.xz"))
4270 (sha256
4271 (base32
4be0719f 4272 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
e644f9fa 4273 (build-system meson-build-system)
23a22af6 4274 (arguments
e644f9fa
RW
4275 `(#:glib-or-gtk? #t
4276 #:configure-flags
4277 (list (string-append "-Dudev_dir="
4278 (assoc-ref %outputs "out")
4d0e085b
RW
4279 "/lib/udev/rules.d/")
4280 ;; Otherwise, the RUNPATH will lack the final path component.
4281 (string-append "-Dc_link_args=-Wl,-rpath="
4282 (assoc-ref %outputs "out")
4283 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4284 ;; Color management test can't reach the colord system service.
23a22af6
AW
4285 #:tests? #f))
4286 (native-inputs
e644f9fa
RW
4287 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4288 ("pkg-config" ,pkg-config)
23a22af6
AW
4289 ("intltool" ,intltool)
4290 ("xsltproc" ,libxslt)
4291 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4292 ("docbook-xml" ,docbook-xml-4.2)
4293 ("docbook-xsl" ,docbook-xsl)))
4294 (inputs
e644f9fa
RW
4295 `(("alsa-lib" ,alsa-lib)
4296 ("colord" ,colord)
ea226291 4297 ("libgudev" ,libgudev)
23a22af6
AW
4298 ("upower" ,upower)
4299 ("polkit" ,polkit)
4300 ("pulseaudio" ,pulseaudio)
4301 ("libcanberra" ,libcanberra)
4302 ("libx11" ,libx11)
4303 ("libxtst" ,libxtst)
4304 ("lcms" ,lcms)
4305 ("libnotify" ,libnotify)
4306 ("geoclue" ,geoclue)
4307 ("geocode-glib" ,geocode-glib)
4308 ("libgweather" ,libgweather)
4309 ("gnome-desktop" ,gnome-desktop)
4310 ("nss" ,nss)
4311 ("cups" ,cups)
ec2b1921
AW
4312 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4313 ("libwacom" ,libwacom)
4314 ("librsvg" ,librsvg)
eee7878f 4315 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4316 ("wayland" ,wayland)
eee7878f 4317 ("network-manager" ,network-manager)))
f032d0be 4318 (home-page "https://www.gnome.org")
23a22af6
AW
4319 (synopsis "GNOME settings daemon")
4320 (description
4321 "This package contains the daemon responsible for setting the various
4322parameters of a GNOME session and the applications that run under it. It
4323handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4324settings, themes, mouse settings, and startup of other daemons.")
4325 (license license:gpl2+)))
1e7464a9
DH
4326
4327(define-public totem-pl-parser
4328 (package
4329 (name "totem-pl-parser")
77425f04 4330 (version "3.26.3")
1e7464a9
DH
4331 (source (origin
4332 (method url-fetch)
e980cbe9
MW
4333 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4334 (version-major+minor version) "/"
1e7464a9
DH
4335 "totem-pl-parser-" version ".tar.xz"))
4336 (sha256
4337 (base32
77425f04 4338 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4339 (build-system meson-build-system)
1e7464a9
DH
4340 (arguments
4341 ;; FIXME: Tests require gvfs.
4342 `(#:tests? #f))
4343 (native-inputs
4344 `(("intltool" ,intltool)
4345 ("glib" ,glib "bin")
4d6d8281 4346 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4347 ("pkg-config" ,pkg-config)))
22a6ad6a 4348 (propagated-inputs
1e7464a9
DH
4349 `(("glib" ,glib)
4350 ("gmime" ,gmime)
1e9b19dd
RW
4351 ("libarchive" ,libarchive)
4352 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4353 ("libxml2" ,libxml2)))
4354 (inputs
0a6e9e13 4355 `(("libsoup" ,libsoup)))
1e7464a9
DH
4356 (home-page "https://projects.gnome.org/totem")
4357 (synopsis "Library to parse and save media playlists for GNOME")
4358 (description "Totem-pl-parser is a GObjects-based library to parse and save
4359playlists in a variety of formats.")
4360 (license license:lgpl2.0+)))
4361
6b888eff
SB
4362(define-public aisleriot
4363 (package
4364 (name "aisleriot")
36ed9b46 4365 (version "3.22.9")
6b888eff
SB
4366 (source (origin
4367 (method url-fetch)
e43f622a 4368 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4369 (version-major+minor version) "/"
e43f622a 4370 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4371 (sha256
4372 (base32
36ed9b46 4373 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4374 (build-system glib-or-gtk-build-system)
4375 (arguments
4376 '(#:configure-flags
4377 '("--with-platform=gtk-only"
4378 "--with-card-theme-formats=svg")))
4379 (native-inputs
4380 `(("desktop-file-utils" ,desktop-file-utils)
4381 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4382 ("intltool" ,intltool)
4383 ("itstool" ,itstool)
4384 ("pkg-config" ,pkg-config)
4385 ("xmllint" ,libxml2)))
4386 (inputs
4387 `(("gtk+" ,gtk+)
226e57d6 4388 ("guile" ,guile-2.2)
6b888eff
SB
4389 ("libcanberra" ,libcanberra)
4390 ("librsvg" ,librsvg)))
4391 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4392 (synopsis "Solitaire card games")
4393 (description
4394 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4395which are easy to play with the aid of a mouse.")
4396 (license license:gpl3+)))
4a79e256 4397
f828d05b
KK
4398(define-public amtk
4399 (package
4400 (name "amtk")
09c4e43f 4401 (version "5.0.1")
f828d05b
KK
4402 (source (origin
4403 (method url-fetch)
bf92ba6b 4404 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4405 (version-major+minor version) "/"
bf92ba6b 4406 "amtk-" version ".tar.xz"))
f828d05b
KK
4407 (sha256
4408 (base32
09c4e43f 4409 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
f828d05b
KK
4410 (build-system gnu-build-system)
4411 (arguments
4412 '(#:configure-flags '("--enable-gtk-doc")))
4413 (native-inputs
4414 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4415 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4416 ("gtk-doc" ,gtk-doc)
4417 ("pkg-config" ,pkg-config)))
4418 (inputs
4419 `(("glib" ,glib)
4420 ("gtk+" ,gtk+)))
4421 (home-page "https://wiki.gnome.org/Projects/Amtk")
4422 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4423 (description
4424 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4425It is a basic GtkUIManager replacement based on GAction. It is suitable for
4426both a traditional UI or a modern UI with a GtkHeaderBar.")
4427 (license license:lgpl2.1+)))
4428
4a79e256
SB
4429(define-public devhelp
4430 (package
4431 (name "devhelp")
20db7a3d 4432 (version "3.32.0")
4a79e256
SB
4433 (source (origin
4434 (method url-fetch)
4435 (uri (string-append "mirror://gnome/sources/" name "/"
4436 (version-major+minor version) "/"
4437 name "-" version ".tar.xz"))
4438 (sha256
4439 (base32
20db7a3d 4440 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
11d28bd9 4441 (build-system meson-build-system)
35407f94 4442 (arguments
20db7a3d
KK
4443 '(#:glib-or-gtk? #t
4444 #:phases
35407f94
EF
4445 (modify-phases %standard-phases
4446 (add-after 'unpack 'skip-gtk-update-icon-cache
4447 ;; Don't create 'icon-theme.cache'.
4448 (lambda _
4449 (substitute* "meson_post_install.py"
4450 (("gtk-update-icon-cache") "true"))
4451 #t)))))
4a79e256
SB
4452 (native-inputs
4453 `(("intltool" ,intltool)
5dd12afc 4454 ("itstool" ,itstool)
11d28bd9
KK
4455 ("gobject-introspection" ,gobject-introspection)
4456 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4457 ("pkg-config" ,pkg-config)))
4458 (inputs
11d28bd9
KK
4459 `(("amtk" ,amtk)
4460 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4461 ("webkitgtk" ,webkitgtk)))
4462 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4463 (synopsis "API documentation browser for GNOME")
4464 (description
4465 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4466natively with GTK-Doc (the API reference system developed for GTK+ and used
4467throughout GNOME for API documentation).")
4468 (license license:gpl2+)))
ba421ab7
MW
4469
4470(define-public cogl
4471 (package
4472 (name "cogl")
54c69ae1 4473 (version "1.22.4")
ba421ab7
MW
4474 (source
4475 (origin
4476 (method url-fetch)
5754f0cf 4477 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4478 (version-major+minor version) "/"
5754f0cf 4479 "cogl-" version ".tar.xz"))
ba421ab7 4480 (sha256
54c69ae1 4481 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
a88d5a0c
MW
4482 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4483 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4484 (build-system gnu-build-system)
4485 (native-inputs
4486 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4487 ("gobject-introspection" ,gobject-introspection)
4488 ;;("xorg-server" ,xorg-server) ; for the test suite
4489 ("pkg-config" ,pkg-config)))
4490 (propagated-inputs
4491 `(("glib" ,glib)
4492 ("gdk-pixbuf" ,gdk-pixbuf)
4493 ("libx11" ,libx11)
4494 ("libxext" ,libxext)
4495 ("libxfixes" ,libxfixes)
4496 ("libxdamage" ,libxdamage)
4497 ("libxcomposite" ,libxcomposite)
4498 ("libxrandr" ,libxrandr)))
4499 (inputs
4500 `(("mesa" ,mesa)
4501 ("cairo" ,cairo)
4502 ("pango" ,pango)
4503 ("gstreamer" ,gstreamer)
31860852
KK
4504 ("gst-plugins-base" ,gst-plugins-base)
4505 ("wayland" ,wayland)))
ba421ab7
MW
4506 (arguments
4507 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
4508 "--enable-wayland-egl-platform"
4509 "--enable-wayland-egl-server"
4510
ba421ab7
MW
4511 ;; Arrange to pass an absolute file name to
4512 ;; dlopen for libGL.so.
4513 (string-append "--with-gl-libname="
4514 (assoc-ref %build-inputs "mesa")
4515 "/lib/libGL.so"))
4516 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4517 ;; _FontTransOpen: Unable to Parse address
4518 ;; ${prefix}/share/fonts/X11/misc/
4519 #:tests? #f
4520 #; #:phases
4521 #;
4522 (modify-phases %standard-phases
4523 (add-before 'check 'start-xorg-server
4524 (lambda* (#:key inputs #:allow-other-keys)
4525 ;; The test suite requires a running X server.
4526 (system (format #f "~a/bin/Xvfb :1 &"
4527 (assoc-ref inputs "xorg-server")))
4528 (setenv "DISPLAY" ":1")
4529 #t)))))
4530 (home-page "http://www.cogl3d.org")
4531 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4532 (description
4533 "Cogl is a small library for using 3D graphics hardware to draw pretty
4534pictures. The API departs from the flat state machine style of OpenGL and is
4535designed to make it easy to write orthogonal components that can render
4536without stepping on each others toes.")
4537 (license (list license:expat ; most of the code
4538 license:bsd-3 ; cogl/cogl-point-in-poly.c
4539 license:sgifreeb2.0 ; cogl-path/tesselator/
4540 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4541
4542(define-public clutter
4543 (package
4544 (name "clutter")
6a88e4ee 4545 (version "1.26.2")
fb182b8a
MW
4546 (source
4547 (origin
4548 (method url-fetch)
4549 (uri (string-append "mirror://gnome/sources/" name "/"
4550 (version-major+minor version) "/"
4551 name "-" version ".tar.xz"))
4552 (sha256
4553 (base32
6a88e4ee 4554 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4555 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4556 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4557 (build-system gnu-build-system)
600233bd
LC
4558 (outputs '("out"
4559 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4560 (native-inputs
4561 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4562 ("gobject-introspection" ,gobject-introspection)
4563 ("pkg-config" ,pkg-config)
4564 ("xsltproc" ,libxslt)))
4565 (propagated-inputs
4566 `(("cogl" ,cogl)
4567 ("cairo" ,cairo)
4568 ("atk" ,atk)
4569 ("gtk+" ,gtk+)
4570 ("json-glib" ,json-glib)
4571 ("glib" ,glib)
4572 ("libxcomposite" ,libxcomposite)
4573 ("libxdamage" ,libxdamage)
4574 ("libxext" ,libxext)
4575 ("xinput" ,xinput)))
4576 (inputs
4577 `(("libxkbcommon" ,libxkbcommon)
4578 ("udev" ,eudev)))
4579 (arguments
600233bd
LC
4580 `(#:configure-flags (list "--enable-x11-backend=yes"
4581
4582 ;; This produces share/doc/{clutter,cally}.
4583 (string-append "--with-html-dir="
4584 (assoc-ref %outputs "doc")
4585 "/share/doc"))
fb182b8a
MW
4586 ;; XXX FIXME: Get test suite working. It would probably fail in the
4587 ;; same way the cogl tests fail, since clutter is based on cogl.
4588 #:tests? #f))
4589 (home-page "http://www.clutter-project.org")
476af713 4590 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4591 (description
476af713 4592 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4593creating fast, mainly 2D single window applications such as media box UIs,
4594presentations, kiosk style applications and so on.")
4595 (license license:lgpl2.0+)))
bf7f17ba
MW
4596
4597(define-public clutter-gtk
4598 (package
4599 (name "clutter-gtk")
5d1a3219 4600 (version "1.8.4")
bf7f17ba
MW
4601 (source
4602 (origin
4603 (method url-fetch)
4604 (uri (string-append "mirror://gnome/sources/" name "/"
4605 (version-major+minor version) "/"
4606 name "-" version ".tar.xz"))
4607 (sha256
4608 (base32
5d1a3219 4609 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4610 (build-system gnu-build-system)
4611 (native-inputs
4612 `(("pkg-config" ,pkg-config)
4613 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4614 (propagated-inputs
4615 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4616 `(("clutter" ,clutter)
4617 ("gtk+" ,gtk+)))
4618 (home-page "http://www.clutter-project.org")
476af713 4619 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4620 (description
476af713 4621 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4622creating fast, mainly 2D single window applications such as media box UIs,
4623presentations, kiosk style applications and so on.")
4624 (license license:lgpl2.0+)))
86d6a893
MW
4625
4626(define-public clutter-gst
4627 (package
4628 (name "clutter-gst")
ba07ac19 4629 (version "3.0.27")
86d6a893
MW
4630 (source
4631 (origin
4632 (method url-fetch)
f010f89b 4633 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4634 (version-major+minor version) "/"
f010f89b 4635 "clutter-gst-" version ".tar.xz"))
86d6a893 4636 (sha256
ba07ac19 4637 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4638 (build-system gnu-build-system)
4639 (native-inputs
ba07ac19 4640 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4641 ("pkg-config" ,pkg-config)
4642 ("gobject-introspection" ,gobject-introspection)))
4643 (inputs
4644 `(("clutter" ,clutter)
4645 ("gstreamer" ,gstreamer)
4646 ("gst-plugins-base" ,gst-plugins-base)))
4647 (home-page "http://www.clutter-project.org")
4648 (synopsis "Integration library for using GStreamer with Clutter")
4649 (description
4650 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4651It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4652implements the ClutterGstPlayer interface using playbin. Clutter is an
4653OpenGL-based interactive canvas library.")
86d6a893 4654 (license license:lgpl2.0+)))
607a04ae 4655
30dc88d9
LC
4656(define-public libchamplain
4657 (package
4658 (name "libchamplain")
5564b2c5 4659 (version "0.12.16")
30dc88d9
LC
4660 (source (origin
4661 (method url-fetch)
4662 (uri (string-append
4663 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4664 version ".tar.xz"))
4665 (sha256
4666 (base32
5564b2c5 4667 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4668 (build-system gnu-build-system)
f7c6833f
LF
4669 (arguments '(#:configure-flags '("--enable-vala")))
4670 (native-inputs
4671 `(("gobject-introspection" ,gobject-introspection)
4672 ("pkg-config" ,pkg-config)
4673 ("vala" ,vala)))
30dc88d9
LC
4674 (propagated-inputs
4675 `(("libsoup" ,libsoup)
4676 ("sqlite" ,sqlite)
4677 ("clutter" ,clutter)
4678 ("clutter-gtk" ,clutter-gtk)
4679 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4680 ("cairo" ,cairo)
4681 ("gtk+3" ,gtk+)
4682 ("glib" ,glib)))
f032d0be 4683 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4684 (synopsis "C library providing a ClutterActor to display maps")
4685 (description
4686 "libchamplain is a C library providing a ClutterActor to display maps.
4687It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4688and Perl bindings are also available. It supports numerous free map sources
4689such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4690 (license license:lgpl2.1+)))
4691
607a04ae
MW
4692(define-public gom
4693 (package
4694 (name "gom")
0510440b 4695 (version "0.3.2")
607a04ae
MW
4696 (source
4697 (origin
4698 (method url-fetch)
6c8a0b6f 4699 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4700 (version-major+minor version) "/"
6c8a0b6f 4701 "gom-" version ".tar.xz"))
607a04ae
MW
4702 (sha256
4703 (base32
0510440b 4704 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4705 (build-system gnu-build-system)
4706 (native-inputs
4707 `(("intltool" ,intltool)
4708 ("pkg-config" ,pkg-config)
4709 ("gobject-introspection" ,gobject-introspection)))
4710 (inputs
4711 `(("glib" ,glib)
4712 ("gdk-pixbuf" ,gdk-pixbuf)
4713 ("sqlite" ,sqlite)))
4714 ;; XXX TODO: Figure out how to run the test suite.
4715 (arguments `(#:tests? #f))
4716 (home-page "https://wiki.gnome.org/Projects/Gom")
4717 (synopsis "Object mapper from GObjects to SQLite")
4718 (description
4719 "Gom provides an object mapper from GObjects to SQLite. It helps you
4720write applications that need to store structured data as well as make complex
4721queries upon that data.")
4722 (license license:lgpl2.1+)))
b7a3cf11 4723
865aacc9 4724(define-public libgnome-games-support
f09520db 4725 (package
865aacc9 4726 (name "libgnome-games-support")
4c6d15cf 4727 (version "1.4.4")
f09520db
SB
4728 (source (origin
4729 (method url-fetch)
2d8dca9d 4730 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4731 (version-major+minor version) "/"
2d8dca9d 4732 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4733 (sha256
4734 (base32
4c6d15cf 4735 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4736 (build-system gnu-build-system)
4737 (arguments
4738 '(#:phases
4739 (modify-phases %standard-phases
4740 (add-before 'check 'pre-check
4741 (lambda _
865aacc9 4742 ;; Tests require a writable HOME.
f09520db
SB
4743 (setenv "HOME" (getcwd))
4744 #t)))))
4745 (native-inputs
4746 `(("intltool" ,intltool)
4747 ("pkg-config" ,pkg-config)
4748 ("vala" ,vala)))
4749 (propagated-inputs
865aacc9 4750 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4751 `(("gtk+" ,gtk+)
4752 ("libgee" ,libgee)))
4753 (home-page "https://www.gnome.org/")
4754 (synopsis "Useful functionality shared among GNOME games")
4755 (description
865aacc9 4756 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4757GNOME Games, but it may be used by others.")
4758 (license license:lgpl3+)))
4759
b7a3cf11
SB
4760(define-public gnome-klotski
4761 (package
4762 (name "gnome-klotski")
c1e419c4 4763 (version "3.32.0")
b7a3cf11
SB
4764 (source (origin
4765 (method url-fetch)
4766 (uri (string-append "mirror://gnome/sources/" name "/"
4767 (version-major+minor version) "/"
4768 name "-" version ".tar.xz"))
4769 (sha256
4770 (base32
c1e419c4
KK
4771 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4772 (build-system meson-build-system)
4773 (arguments
4774 '(#:glib-or-gtk? #t
4775 #:phases
4776 (modify-phases %standard-phases
4777 (add-after 'unpack 'skip-gtk-update-icon-cache
4778 ;; Don't create 'icon-theme.cache'.
4779 (lambda _
4780 (substitute* "build-aux/meson_post_install.py"
4781 (("gtk-update-icon-cache") (which "true")))
4782 #t)))))
b7a3cf11
SB
4783 (native-inputs
4784 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4785 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4786 ("intltool" ,intltool)
4787 ("itstool" ,itstool)
bcb354ad 4788 ("pkg-config" ,pkg-config)
c1e419c4 4789 ("vala" ,vala)
bcb354ad 4790 ("xmllint" ,libxml2)))
b7a3cf11
SB
4791 (inputs
4792 `(("gtk+" ,gtk+)
f4eae76f 4793 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4794 ("librsvg" ,librsvg)))
4795 (home-page "https://wiki.gnome.org/Apps/Klotski")
4796 (synopsis "Sliding block puzzles")
4797 (description
4798 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4799the patterned block to the area bordered by green markers. To do so, you will
4800need to slide other blocks out of the way. Complete each puzzle in as few moves
4801as possible!")
4802 (license license:gpl2+)))
8d4791bf
MW
4803
4804(define-public grilo
4805 (package
4806 (name "grilo")
a865e938 4807 (version "0.3.10")
8d4791bf
MW
4808 (source
4809 (origin
4810 (method url-fetch)
4811 (uri (string-append "mirror://gnome/sources/" name "/"
4812 (version-major+minor version) "/"
4813 name "-" version ".tar.xz"))
4814 (sha256
4815 (base32
a865e938 4816 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4817 (build-system meson-build-system)
8d4791bf
MW
4818 (native-inputs
4819 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4820 ("intltool" ,intltool)
4821 ("pkg-config" ,pkg-config)
d48d4c98
KK
4822 ("gobject-introspection" ,gobject-introspection)
4823 ("gtk-doc" ,gtk-doc)
4824 ("vala" ,vala)))
8d4791bf 4825 (inputs
6d7273a0
KK
4826 `(("cyrus-sasl" ,cyrus-sasl)
4827 ("glib" ,glib)
8d4791bf
MW
4828 ("gtk+" ,gtk+)
4829 ("libxml2" ,libxml2)
6d7273a0 4830 ("liboauth" ,liboauth)
8d4791bf
MW
4831 ("libsoup" ,libsoup)
4832 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4833 (native-search-paths
4834 (list (search-path-specification
4835 (variable "GRL_PLUGIN_PATH")
4836 (files (list (string-append "lib/grilo-"
4837 (version-major+minor version)))))))
d48d4c98 4838 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4839 (synopsis "Framework for discovering and browsing media")
4840 (description
4841 "Grilo is a framework focused on making media discovery and browsing easy
4842for application developers.")
4843 (license license:lgpl2.1+)))
7b212526
MW
4844
4845(define-public grilo-plugins
4846 (package
4847 (name "grilo-plugins")
281f6b3a 4848 (version "0.3.10")
7b212526
MW
4849 (source
4850 (origin
4851 (method url-fetch)
4852 (uri (string-append "mirror://gnome/sources/" name "/"
4853 (version-major+minor version) "/"
4854 name "-" version ".tar.xz"))
4855 (sha256
4856 (base32
281f6b3a
RG
4857 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4858 (build-system meson-build-system)
7b212526 4859 (native-inputs
281f6b3a
RG
4860 `(("gettext" ,gettext-minimal)
4861 ("glib:bin" ,glib "bin")
4862 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4863 ("itstool" ,itstool)
4864 ("pkg-config" ,pkg-config)))
281f6b3a 4865 ;; TODO: ahavi, gstreamer
7b212526
MW
4866 (inputs
4867 `(("grilo" ,grilo)
281f6b3a
RG
4868 ;("gmime" ,gmime) ; unused
4869 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4870 ("gom" ,gom)
281f6b3a
RG
4871 ;("gssdp" ,gssdp) ; unused
4872 ;("gupnp" ,gupnp) ; unused
4873 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4874 ("json-glib" ,json-glib)
4875 ("avahi" ,avahi)
281f6b3a
RG
4876 ("libgdata" ,libgdata)
4877 ("libmediaart" ,libmediaart)
4878 ;("librest" ,rest) ; unused
7b212526 4879 ("libsoup" ,libsoup)
281f6b3a
RG
4880 ("totam-pl-parser" ,totem-pl-parser)
4881 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4882 (arguments
281f6b3a
RG
4883 `(#:glib-or-gtk? #t
4884 ;;Disable lua-factory as it needs missing dependencies
4885 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4886 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4887 (synopsis "Plugins for the Grilo media discovery library")
4888 (description
4889 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4890for application developers. This package provides plugins for common media
4891discovery protocols.")
7b212526 4892 (license license:lgpl2.1+)))
4e3fc547
MW
4893
4894(define-public totem
4895 (package
4896 (name "totem")
995ef5ea 4897 (version "3.32.1")
4e3fc547
MW
4898 (source
4899 (origin
4900 (method url-fetch)
4901 (uri (string-append "mirror://gnome/sources/" name "/"
4902 (version-major+minor version) "/"
4903 name "-" version ".tar.xz"))
4904 (sha256
4905 (base32
995ef5ea 4906 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
7ad81b8b 4907 (build-system meson-build-system)
4e3fc547
MW
4908 (native-inputs
4909 `(("pkg-config" ,pkg-config)
4910 ("desktop-file-utils" ,desktop-file-utils)
4911 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4912 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4913 ("intltool" ,intltool)
bcb354ad 4914 ("itstool" ,itstool)
995ef5ea
KK
4915 ("xmllint" ,libxml2)
4916 ("python-pylint" ,python-pylint)
4917 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4918 (propagated-inputs
4919 `(("dconf" ,dconf)))
4920 (inputs
4921 `(("gtk+" ,gtk+)
4922 ("gdk-pixbuf" ,gdk-pixbuf)
4923 ("atk" ,atk)
4924 ("cairo" ,cairo)
4925 ("dbus-glib" ,dbus-glib)
4926 ("clutter" ,clutter)
4927 ("clutter-gtk" ,clutter-gtk)
4928 ("clutter-gst" ,clutter-gst)
6a6db57f 4929 ("xorgproto" ,xorgproto)
4e3fc547
MW
4930 ("libxxf86vm" ,libxxf86vm)
4931 ("libxtst" ,libxtst)
4932 ("libxrandr" ,libxrandr)
4933 ("libxml2" ,libxml2)
4934 ("libsoup" ,libsoup)
4935 ("libpeas" ,libpeas)
4936 ("librsvg" ,librsvg)
4937 ("lirc" ,lirc)
4938 ("gnome-desktop" ,gnome-desktop)
4939 ("gstreamer" ,gstreamer)
4940 ("gst-plugins-base" ,gst-plugins-base)
4941 ("gst-plugins-good" ,gst-plugins-good)
4942 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4943 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4944 ("python" ,python)
995ef5ea 4945 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4946 ("totem-pl-parser" ,totem-pl-parser)
4947 ("grilo" ,grilo)
4948 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4949 ("vala" ,vala)))
4950 (arguments
7ad81b8b
LC
4951 `(#:glib-or-gtk? #t
4952
4953 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4954 ;; all that.
7ad81b8b 4955 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4956
4957 ;; Do not build .a files for the plugins, it's
4958 ;; completely useless. This saves 2 MiB.
7ad81b8b 4959 "--default-library" "shared")
ec5c24f9 4960 #:phases
4e3fc547 4961 (modify-phases %standard-phases
d51b19ad
EF
4962 (add-after 'unpack 'skip-gtk-update-icon-cache
4963 ;; Don't create 'icon-theme.cache'.
4964 (lambda _
4965 (substitute* "meson_post_install.py"
4966 (("gtk-update-icon-cache") "true"))
4967 #t))
6368eb39
DM
4968 (add-before
4969 'install 'disable-cache-generation
4970 (lambda _
4971 (setenv "DESTDIR" "/")
4972 #t))
995ef5ea
KK
4973 (add-before
4974 'check 'pre-check
4975 (lambda _
4976 ;; Tests require a running X server.
4977 (system "Xvfb :1 &")
4978 (setenv "DISPLAY" ":1")
4979 #t))
4e3fc547
MW
4980 (add-after
4981 'install 'wrap-totem
4982 (lambda* (#:key inputs outputs #:allow-other-keys)
4983 (let ((out (assoc-ref outputs "out"))
4984 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4985 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4986 (wrap-program (string-append out "/bin/totem")
4987 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4988 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4989 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4990 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4991 #t)))))
4992 (home-page "https://wiki.gnome.org/Apps/Videos")
4993 (synopsis "Simple media player for GNOME based on GStreamer")
4994 (description "Totem is a simple yet featureful media player for GNOME
4995which can read a large number of file formats.")
4996 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4997 ;; to be used and distributed together with GStreamer and Totem. See
4998 ;; file://COPYING in the source distribution for details.
4999 (license license:gpl2+)))
f0afb0c8
DH
5000
5001(define-public rhythmbox
5002 (package
5003 (name "rhythmbox")
8190e1ed 5004 (version "3.4.3")
f0afb0c8
DH
5005 (source (origin
5006 (method url-fetch)
5007 (uri (string-append "mirror://gnome/sources/" name "/"
5008 (version-major+minor version) "/"
5009 name "-" version ".tar.xz"))
5010 (sha256
5011 (base32
8190e1ed 5012 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
f0afb0c8
DH
5013 (build-system glib-or-gtk-build-system)
5014 (arguments
5015 `(#:configure-flags
5016 (list "--enable-lirc"
5017 "--enable-python"
5018 "--enable-vala"
5019 "--with-brasero"
5020 "--with-gudev"
5021 "--with-libsecret")
5022 #:phases
5023 (modify-phases %standard-phases
5024 (add-after
5025 'install 'wrap-rhythmbox
5026 (lambda* (#:key inputs outputs #:allow-other-keys)
5027 (let ((out (assoc-ref outputs "out"))
5028 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5029 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5030 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5031 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5032 (wrap-program (string-append out "/bin/rhythmbox")
5033 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5034 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5035 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5036 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5037 #t)))))
5038 (propagated-inputs
5039 `(("dconf" ,dconf)))
5040 (native-inputs
bcb354ad
SB
5041 `(("itstool" ,itstool)
5042 ("intltool" ,intltool)
f0afb0c8
DH
5043 ("glib" ,glib "bin")
5044 ("gobject-introspection" ,gobject-introspection)
5045 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5046 ("pkg-config" ,pkg-config)
5047 ("xmllint" ,libxml2)))
f0afb0c8
DH
5048 (inputs
5049 `(("json-glib" ,json-glib)
5050 ("tdb" ,tdb)
5051 ("gnome-desktop" ,gnome-desktop)
5052 ("python" ,python)
5053 ("python-pygobject" ,python2-pygobject)
5054 ("vala" ,vala)
5055 ("gmime" ,gmime)
f0afb0c8
DH
5056 ("adwaita-icon-theme" ,adwaita-icon-theme)
5057 ("grilo" ,grilo)
5058 ("grilo-plugins" ,grilo-plugins)
5059 ("gstreamer" ,gstreamer)
5060 ("gst-plugins-base" ,gst-plugins-base)
5061 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5062 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5063 ("libgudev" ,libgudev)
f0afb0c8
DH
5064 ;;("libmtp" ,libmtp) FIXME: Not detected
5065 ("libsecret" ,libsecret)
5066 ("libsoup" ,libsoup)
5067 ("libnotify" ,libnotify)
5068 ("libpeas" ,libpeas)
5069 ("lirc" ,lirc)
5070 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5071 ;;("clutter" ,clutter)
5072 ;;("clutter-gtk" ,clutter-gtk)
5073 ;;("clutter-gst" ,clutter-gst)
5074 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5075 ("atk" ,atk)
5076 ("pango" ,pango)
5077 ("gtk+" ,gtk+)
5078 ;; TODO:
5079 ;; * libgpod
5080 ;; * mx
f0afb0c8
DH
5081 ("brasero" ,brasero)))
5082 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5083 (synopsis "Music player for GNOME")
5084 (description "Rhythmbox is a music playing application for GNOME. It
5085supports playlists, song ratings, and any codecs installed through gstreamer.")
5086 (license license:gpl2+)))
f70d8383
DH
5087
5088(define-public eog
5089 (package
5090 (name "eog")
b0f24a82 5091 (version "3.32.2")
f70d8383
DH
5092 (source (origin
5093 (method url-fetch)
5094 (uri (string-append "mirror://gnome/sources/" name "/"
5095 (version-major+minor version) "/"
5096 name "-" version ".tar.xz"))
5097 (sha256
5098 (base32
b0f24a82 5099 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
61fb581f 5100 (build-system meson-build-system)
f70d8383 5101 (arguments
34c44a34
RW
5102 `(#:configure-flags
5103 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5104 (list (string-append "-Dc_link_args=-Wl,-rpath="
5105 (assoc-ref %outputs "out") "/lib/eog"))
5106 #:phases
f70d8383 5107 (modify-phases %standard-phases
7a034665
EF
5108 (add-after 'unpack 'skip-gtk-update-icon-cache
5109 ;; Don't create 'icon-theme.cache'.
5110 (lambda _
5111 (substitute* "meson_post_install.py"
5112 (("gtk-update-icon-cache") "true"))
5113 #t))
61fb581f
RW
5114 (add-after 'install 'wrap-eog
5115 (lambda* (#:key outputs #:allow-other-keys)
5116 (let ((out (assoc-ref outputs "out"))
5117 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5118 (wrap-program (string-append out "/bin/eog")
5119 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5120 #t)))))
f70d8383
DH
5121 (propagated-inputs
5122 `(("dconf" ,dconf)))
5123 (native-inputs
5124 `(("intltool" ,intltool)
b3546174 5125 ("itstool" ,itstool)
f70d8383
DH
5126 ("glib" ,glib "bin")
5127 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5128 ("pkg-config" ,pkg-config)
5129 ("xmllint" ,libxml2)))
f70d8383
DH
5130 (inputs
5131 `(("gnome-desktop" ,gnome-desktop)
5132 ("shared-mime-info" ,shared-mime-info)
5133 ("adwaita-icon-theme" ,adwaita-icon-theme)
5134 ("exempi" ,exempi)
5135 ("lcms" ,lcms)
5136 ("libexif" ,libexif)
5137 ("libpeas" ,libpeas)
4bd428a7 5138 ("libjpeg" ,libjpeg-turbo)
f70d8383
DH
5139 ("librsvg" ,librsvg)
5140 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5141 ("gtk+" ,gtk+)))
5142 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5143 (synopsis "GNOME image viewer")
5144 (description "Eye of GNOME is the GNOME image viewer. It
5145supports image conversion, rotation, and slideshows.")
5146 (license license:gpl2+)))
41af5e7b 5147
0c3f8cb8
LC
5148(define-public eog-plugins
5149 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5150 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5151 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5152 ;; 'XDG_DATA_DIRS' appropriately set.
5153 (package
5154 (name "eog-plugins")
54b74cc6 5155 (version "3.26.4")
0c3f8cb8
LC
5156 (source (origin
5157 (method url-fetch)
f3b88ed2 5158 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5159 (version-major+minor version) "/"
f3b88ed2 5160 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5161 (sha256
5162 (base32
54b74cc6 5163 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5164 (build-system gnu-build-system)
5165 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5166 (synopsis "Extensions for the Eye of GNOME image viewer")
5167 (native-inputs
5168 `(("pkg-config" ,pkg-config)
5169 ("gettext" ,gnu-gettext)))
5170 (inputs
5171 `(("eog" ,eog)
5172 ("glib" ,glib)
5173 ("gtk+" ,gtk+)
5174 ("libpeas" ,libpeas)
5175 ("libexif" ,libexif)
5176 ("libchamplain" ,libchamplain)))
5177 (description
5178 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5179notably:
5180
5181@itemize
5182@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5183@item @dfn{Map}, which displays a map of where the picture was taken on the
5184side panel;
5185@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5186@end itemize\n")
5187
5188 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5189 ;; long suspicious byte stream that goes to a
5190 ;; ".gresource.eog_postasa_plugin" ELF section.
5191 (license license:gpl2+)))
5192
41af5e7b
SB
5193(define-public libgudev
5194 (package
5195 (name "libgudev")
b78f5118 5196 (version "232")
41af5e7b
SB
5197 (source (origin
5198 (method url-fetch)
5199 (uri (string-append "mirror://gnome/sources/" name "/"
5200 version "/" name "-" version ".tar.xz"))
5201 (sha256
5202 (base32
b78f5118 5203 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5204 (build-system gnu-build-system)
b78f5118
RW
5205 (arguments
5206 '(#:configure-flags
5207 ;; umockdev depends on libgudev.
5208 (list "--disable-umockdev")))
41af5e7b
SB
5209 (native-inputs
5210 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5211 ("gobject-introspection" ,gobject-introspection)
5212 ("pkg-config" ,pkg-config)))
5213 (propagated-inputs
5214 `(("glib" ,glib))) ; required by gudev-1.0.pc
5215 (inputs
5216 `(("udev" ,eudev)))
5217 (home-page "https://wiki.gnome.org/Projects/libgudev")
5218 (synopsis "GObject bindings for libudev")
5219 (description
5220 "This library provides GObject bindings for libudev. It was originally
5221part of udev-extras, then udev, then systemd. It's now a project on its own.")
5222 (license license:lgpl2.1+)))
3dc8828f
SB
5223
5224(define-public gvfs
5225 (package
5226 (name "gvfs")
12fe4846 5227 (version "1.40.1")
3dc8828f
SB
5228 (source (origin
5229 (method url-fetch)
1d68eb32 5230 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5231 (version-major+minor version) "/"
1d68eb32 5232 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5233 (sha256
5234 (base32
12fe4846 5235 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5236 (build-system meson-build-system)
3dc8828f 5237 (arguments
e762d943
RW
5238 '(#:glib-or-gtk? #t
5239 #:configure-flags
5240 (list "-Dsystemduserunitdir=no"
5241 "-Dtmpfilesdir=no"
5242 ;; Otherwise, the RUNPATH will lack the final path component.
5243 (string-append "-Dc_link_args=-Wl,-rpath="
5244 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5245 (native-inputs
5246 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5247 ("gettext" ,gettext-minimal)
5248 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5249 ("pkg-config" ,pkg-config)
5250 ("xsltproc" ,libxslt)))
5251 (inputs
5252 `(("avahi" ,avahi)
5253 ("docbook-xml" ,docbook-xml-4.2)
5254 ("docbook-xsl" ,docbook-xsl)
5255 ("dbus" ,dbus)
e762d943 5256 ("elogind" ,elogind)
3dc8828f 5257 ("fuse" ,fuse)
24a78aa6 5258 ("gcr" ,gcr)
3dc8828f 5259 ("glib" ,glib)
e762d943 5260 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5261 ("libarchive" ,libarchive)
5262 ("libbluray" ,libbluray)
8852ca24 5263 ("libcap" ,libcap)
3dc8828f
SB
5264 ("libcdio-paranoia" ,libcdio-paranoia)
5265 ("libgcrypt" ,libgcrypt)
e762d943 5266 ("libgdata" ,libgdata)
3dc8828f
SB
5267 ("libgphoto2" ,libgphoto2)
5268 ("libgudev" ,libgudev)
0ab9f949 5269 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5270 ("libmtp" ,libmtp)
e762d943 5271 ("libnfs" ,libnfs)
3dc8828f
SB
5272 ("libsecret" ,libsecret)
5273 ("libsmbclient" ,samba)
5274 ("libsoup" ,libsoup)
5275 ("libxml2" ,libxml2)
e762d943 5276 ("openssh" ,openssh)
8852ca24 5277 ("polkit" ,polkit)
3dc8828f
SB
5278 ("udisks" ,udisks)))
5279 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5280 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5281 (description
8f65585b 5282 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5283abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5284to all applications using the GIO API. It also supports exposing the GVFS
5285mounts to non-GIO applications using FUSE.
5286
5287GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5288DAV, and others.")
5289 (license license:lgpl2.0+)))
7c88b6bd
AW
5290
5291(define-public gusb
5292 (package
5293 (name "gusb")
536b3274 5294 (version "0.3.0")
7c88b6bd 5295 (source (origin
bbfb36f9
EF
5296 (method git-fetch)
5297 (uri (git-reference
5298 (url "https://github.com/hughsie/libgusb.git")
5299 (commit version)))
5300 (file-name (git-file-name name version))
7c88b6bd
AW
5301 (sha256
5302 (base32
bbfb36f9 5303 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5304 (build-system meson-build-system)
7c88b6bd 5305 (native-inputs
536b3274 5306 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5307 ("pkg-config" ,pkg-config)
5308 ("vala" ,vala)
7c88b6bd
AW
5309 ("gtk-doc" ,gtk-doc)))
5310 (propagated-inputs
5311 ;; Both of these are required by gusb.pc.
5312 `(("glib" ,glib)
5313 ("libusb" ,libusb)))
5314 (arguments
536b3274 5315 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5316 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5317 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5318 (description
5319 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5320asynchronous control, bulk and interrupt transfers with proper cancellation
5321and integration into a mainloop. This makes it easy to integrate low level
5322USB transfers with your high-level application or system daemon.")
5323 (license license:lgpl2.1+)))
0abe1d86
AW
5324
5325(define-public simple-scan
5326 (package
5327 (name "simple-scan")
4afb7dd9 5328 (version "3.34.2")
d9f6d587
TGR
5329 (source
5330 (origin
5331 (method url-fetch)
5332 (uri (string-append "mirror://gnome/sources/simple-scan/"
5333 (version-major+minor version) "/"
5334 "simple-scan-" version ".tar.xz"))
5335 (sha256
4afb7dd9 5336 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
d9f6d587
TGR
5337 (build-system meson-build-system)
5338 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5339 (arguments
5340 '(#:glib-or-gtk? #t))
0abe1d86
AW
5341 (inputs
5342 `(("gtk" ,gtk+)
5343 ("zlib" ,zlib)
5344 ("cairo" ,cairo)
c501f592 5345 ("colord" ,colord)
0abe1d86
AW
5346 ("gdk-pixbuf" ,gdk-pixbuf)
5347 ("gusb" ,gusb)
4c928743 5348 ("libsane" ,sane-backends)))
0abe1d86 5349 (native-inputs
b94a6ca0 5350 `(("gettext" ,gettext-minimal)
0abe1d86 5351 ("itstool" ,itstool)
c501f592 5352 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5353 ("pkg-config" ,pkg-config)
bcb354ad
SB
5354 ("vala" ,vala)
5355 ("xmllint" ,libxml2)))
dff0eedb 5356 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5357 (synopsis "Document and image scanner")
d9f6d587
TGR
5358 (description
5359 "Document Scanner is an easy-to-use application that lets you connect your
5360scanner and quickly capture images and documents in an appropriate format. It
5361supports any scanner for which a suitable SANE driver is available, which is
5362almost all of them.")
0abe1d86 5363 (license license:gpl3+)))
7549f984 5364
ab466d79
RW
5365(define-public eolie
5366 (package
5367 (name "eolie")
fa8ef3ed 5368 (version "0.9.63")
ab466d79
RW
5369 (source (origin
5370 (method url-fetch)
00014781 5371 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
fa8ef3ed 5372 "uploads/d42b466752729a0d3fa828a721e25043/"
00014781 5373 "eolie-" version ".tar.xz"))
ab466d79
RW
5374 (sha256
5375 (base32
fa8ef3ed 5376 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
00014781 5377 (build-system meson-build-system)
ab466d79 5378 (arguments
00014781
RW
5379 `(#:glib-or-gtk? #t
5380 #:phases
ab466d79 5381 (modify-phases %standard-phases
f0c68100
EF
5382 (add-after 'unpack 'skip-gtk-update-icon-cache
5383 ;; Don't create 'icon-theme.cache'.
5384 (lambda _
5385 (substitute* "meson_post_install.py"
5386 (("gtk-update-icon-cache") "true"))
5387 #t))
ab466d79
RW
5388 (add-after 'wrap 'wrap-more
5389 (lambda* (#:key inputs outputs #:allow-other-keys)
5390 (let* ((out (assoc-ref outputs "out"))
5391 ;; These libraries must be on LD_LIBRARY_PATH.
5392 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5393 "atk" "gtk+" "gsettings-desktop-schemas"
5394 "gobject-introspection"))
5395 (path (string-join
5396 (map (lambda (lib)
5397 (string-append (assoc-ref inputs lib) "/lib"))
5398 libs)
5399 ":")))
5400 (wrap-program (string-append out "/bin/eolie")
5401 `("LD_LIBRARY_PATH" ":" prefix (,path))
5402 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5403 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5404 #t)))))
5405 (native-inputs
f85ca6ed 5406 `(("intltool" ,intltool)
ab466d79 5407 ("itstool" ,itstool)
d95f1041 5408 ("pkg-config" ,pkg-config)
d95f1041 5409 ("python" ,python)
f0c68100 5410 ("glib:bin" ,glib "bin")))
ab466d79
RW
5411 (inputs
5412 `(("gobject-introspection" ,gobject-introspection)
5413 ("glib-networking" ,glib-networking)
5414 ("cairo" ,cairo)
5415 ("gtk+" ,gtk+)
5416 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5417 ("python" ,python-wrapper)
d72f76df 5418 ("python-dateutil" ,python-dateutil)
00014781 5419 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5420 ("python-pygobject" ,python-pygobject)
5421 ("python-pycairo" ,python-pycairo)
00014781 5422 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5423 ("libsecret" ,libsecret)
5424 ("gtkspell3" ,gtkspell3)
5425 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5426 ("webkitgtk" ,webkitgtk)))
166b2c97 5427 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5428 (synopsis "Web browser for GNOME")
5429 (description
5430 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5431a secret password store, an adblocker, and a modern UI.")
5432 (license license:gpl3+)))
5433
7549f984
SB
5434(define-public epiphany
5435 (package
5436 (name "epiphany")
60680365 5437 (version "3.32.5")
7549f984
SB
5438 (source (origin
5439 (method url-fetch)
dd3266ec 5440 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5441 (version-major+minor version) "/"
dd3266ec 5442 "epiphany-" version ".tar.xz"))
7549f984
SB
5443 (sha256
5444 (base32
60680365 5445 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
fc5c5b92
R
5446
5447 (build-system meson-build-system)
7549f984
SB
5448 (arguments
5449 ;; FIXME: tests run under Xvfb, but fail with:
5450 ;; /src/bookmarks/ephy-bookmarks/create:
5451 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5452 ;; subsystem
5453 ;; FAIL
6f48d9db 5454 '(#:tests? #f
e19f9c24 5455 #:glib-or-gtk? #t
bb7ff88f
EF
5456 #:phases
5457 (modify-phases %standard-phases
5458 (add-after 'unpack 'skip-gtk-update-icon-cache
5459 ;; Don't create 'icon-theme.cache'.
5460 (lambda _
5461 (substitute* "post_install.py"
5462 (("gtk-update-icon-cache") "true"))
5463 #t)))
e19f9c24
LF
5464 #:configure-flags
5465 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5466 (list (string-append "-Dc_link_args=-Wl,-rpath="
5467 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5468 (propagated-inputs
5469 `(("dconf" ,dconf)))
7549f984 5470 (native-inputs
fc5c5b92
R
5471 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5472 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5473 ("intltool" ,intltool)
7549f984 5474 ("itstool" ,itstool)
bcb354ad
SB
5475 ("pkg-config" ,pkg-config)
5476 ("xmllint" ,libxml2)))
7549f984
SB
5477 (inputs
5478 `(("avahi" ,avahi)
5479 ("gcr" ,gcr)
fc5c5b92 5480 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5481 ("glib-networking" ,glib-networking)
5482 ("gnome-desktop" ,gnome-desktop)
5483 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5484 ("json-glib" ,json-glib)
7549f984 5485 ("iso-codes" ,iso-codes)
8748e29c 5486 ("libdazzle" ,libdazzle)
7549f984
SB
5487 ("libnotify" ,libnotify)
5488 ("libsecret" ,libsecret)
7549f984 5489 ("libxslt" ,libxslt)
fc5c5b92 5490 ("nettle" ,nettle) ; for hogweed
7549f984 5491 ("sqlite" ,sqlite)
f85ca6ed 5492 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5493 (home-page "https://wiki.gnome.org/Apps/Web")
5494 (synopsis "GNOME web browser")
5495 (description
5496 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5497principles are simplicity and standards compliance.")
5498 (license license:gpl2+)))
a3856b2c
SB
5499
5500(define-public d-feet
5501 (package
5502 (name "d-feet")
458e9221 5503 (version "0.3.14")
a3856b2c
SB
5504 (source (origin
5505 (method url-fetch)
5506 (uri (string-append "mirror://gnome/sources/" name "/"
5507 (version-major+minor version) "/"
5508 name "-" version ".tar.xz"))
5509 (sha256
5510 (base32
458e9221 5511 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5512 (build-system glib-or-gtk-build-system)
5513 (arguments
5514 '(#:out-of-source? #f ; tests need to run in the source directory.
5515 #:phases
5516 (modify-phases %standard-phases
5517 (add-before
5518 'check 'pre-check
86aff791 5519 (lambda _
a3856b2c
SB
5520 ;; The test suite requires a running X server.
5521 (system "Xvfb :1 &")
5522 (setenv "DISPLAY" ":1")
5523 ;; Don't fail on missing '/etc/machine-id'.
5524 (setenv "DBUS_FATAL_WARNINGS" "0")
5525 ;; tests.py and window.py don't meet E402:
5526 ;; E402 module level import not at top of file
5527 (substitute* "src/tests/Makefile"
86aff791
MW
5528 (("--ignore=E123") "--ignore=E123,E402"))
5529 #t))
a3856b2c
SB
5530 (add-after
5531 'install 'wrap-program
5532 (lambda* (#:key outputs #:allow-other-keys)
5533 (let ((prog (string-append (assoc-ref outputs "out")
5534 "/bin/d-feet")))
5535 (wrap-program prog
5536 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5537 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5538 #t))))))
a3856b2c
SB
5539 (native-inputs
5540 `(("intltool" ,intltool)
5541 ("itstool" ,itstool)
5542 ("pkg-config" ,pkg-config)
5543 ("python-pep8" ,python-pep8)
5544 ("xmllint" ,libxml2)
ff337525 5545 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5546 (inputs
5547 `(("gobject-introspection" ,gobject-introspection)
5548 ("gtk+" ,gtk+)
5549 ("python" ,python-wrapper)
458e9221 5550 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5551 ("python-pygobject" ,python-pygobject)))
5552 (home-page "https://wiki.gnome.org/Apps/DFeet")
5553 (synopsis "D-Bus debugger")
5554 (description
5555 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5556of running programs and invoke methods on those interfaces.")
5557 (license license:gpl2+)))
c3b97bd9
SB
5558
5559(define-public yelp-xsl
5560 (package
5561 (name "yelp-xsl")
632a9b32 5562 (version "3.34.2")
c3b97bd9
SB
5563 (source (origin
5564 (method url-fetch)
5565 (uri (string-append "mirror://gnome/sources/" name "/"
5566 (version-major+minor version) "/"
5567 name "-" version ".tar.xz"))
5568 (sha256
5569 (base32
632a9b32 5570 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
c3b97bd9
SB
5571 (build-system gnu-build-system)
5572 (native-inputs
632a9b32 5573 `(("gettext-minimal" ,gettext-minimal)
c3b97bd9
SB
5574 ("itstool" ,itstool)
5575 ("xmllint" ,libxml2)))
5576 (home-page "https://wiki.gnome.org/Apps/Yelp")
5577 (synopsis "XSL stylesheets for Yelp")
5578 (description
5579 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5580to format Docbook and Mallard documents.")
5581 (license license:gpl2+)))
de3d612a
SB
5582
5583(define-public yelp
5584 (package
5585 (name "yelp")
1f1b6d60 5586 (version "3.32.2")
de3d612a
SB
5587 (source (origin
5588 (method url-fetch)
5589 (uri (string-append "mirror://gnome/sources/" name "/"
5590 (version-major+minor version) "/"
5591 name "-" version ".tar.xz"))
5592 (sha256
5593 (base32
1f1b6d60 5594 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5595 (build-system glib-or-gtk-build-system)
5596 (native-inputs
5597 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5598 ("intltool" ,intltool)
5599 ("itstool" ,itstool)
5600 ("pkg-config" ,pkg-config)))
5601 (propagated-inputs
5602 `(("dconf" ,dconf)))
5603 (inputs
ad1b7d8b
SB
5604 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5605 ("libxslt" ,libxslt)
de3d612a 5606 ("sqlite" ,sqlite)
4c28ca1d
SB
5607 ("webkitgtk" ,webkitgtk)
5608 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5609 (home-page "https://wiki.gnome.org/Apps/Yelp")
5610 (synopsis "GNOME help browser")
5611 (description
5612 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5613man, info, and HTML documents. It can locate documents according to the
5614freedesktop.org help system specification.")
5615 (license license:gpl2+)))
122d0d10
SB
5616
5617(define-public yelp-tools
5618 (package
5619 (name "yelp-tools")
8fe8a42a 5620 (version "3.32.2")
122d0d10
SB
5621 (source (origin
5622 (method url-fetch)
5623 (uri (string-append "mirror://gnome/sources/" name "/"
5624 (version-major+minor version) "/"
5625 name "-" version ".tar.xz"))
5626 (sha256
5627 (base32
8fe8a42a 5628 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
122d0d10
SB
5629 (build-system gnu-build-system)
5630 (native-inputs
5631 `(("pkg-config" ,pkg-config)))
5632 (propagated-inputs
5633 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5634 `(("itstool" ,itstool)
5635 ("xmllint" ,libxml2)
5636 ("xsltproc" ,libxslt)))
5637 (inputs
5638 `(("yelp-xsl" ,yelp-xsl)))
5639 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5640 (synopsis "Yelp documentation tools")
5641 (description
5642 "Yelp-tools is a collection of scripts and build utilities to help create,
5643manage, and publish documentation for Yelp and the web. Most of the heavy
5644lifting is done by packages like yelp-xsl and itstool. This package just
5645wraps things up in a developer-friendly way.")
5646 (license license:gpl2+)))
af8f9f23
RW
5647
5648(define-public libgee
5649 (package
5650 (name "libgee")
4c2c5ae6 5651 (version "0.20.2")
af8f9f23
RW
5652 (source (origin
5653 (method url-fetch)
84a1b007 5654 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5655 (version-major+minor version) "/"
84a1b007 5656 "libgee-" version ".tar.xz"))
af8f9f23
RW
5657 (sha256
5658 (base32
4c2c5ae6 5659 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
af8f9f23
RW
5660 (build-system gnu-build-system)
5661 (arguments
5662 `(#:phases
5663 (modify-phases %standard-phases
5664 (add-after 'unpack 'fix-introspection-install-dir
5665 (lambda* (#:key outputs #:allow-other-keys)
5666 (let ((out (assoc-ref outputs "out")))
5667 (substitute* "gee/Makefile.in"
5668 (("@INTROSPECTION_GIRDIR@")
5669 (string-append out "/share/gir-1.0/"))
5670 (("@INTROSPECTION_TYPELIBDIR@")
5671 (string-append out "/lib/girepository-1.0/")))))))))
5672 (native-inputs
5673 `(("glib" ,glib "bin")
5674 ("pkg-config" ,pkg-config)))
5675 (inputs
5676 `(("glib" ,glib)
5677 ("gobject-introspection" ,gobject-introspection)))
5678 (home-page "https://wiki.gnome.org/Projects/Libgee")
5679 (synopsis "GObject collection library")
5680 (description
5681 "Libgee is a utility library providing GObject-based interfaces and
5682classes for commonly used data structures.")
5683 (license license:lgpl2.1+)))
b0f9c4b8
RW
5684
5685(define-public gexiv2
5686 (package
5687 (name "gexiv2")
b1a8b408 5688 (version "0.12.0")
b0f9c4b8
RW
5689 (source (origin
5690 (method url-fetch)
5691 (uri (string-append "mirror://gnome/sources/" name "/"
5692 (version-major+minor version) "/"
5693 name "-" version ".tar.xz"))
5694 (sha256
5695 (base32
b1a8b408 5696 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5697 (build-system meson-build-system)
b0f9c4b8 5698 (native-inputs
b1a8b408
KK
5699 `(("gcr" ,gcr)
5700 ("glib" ,glib "bin")
5701 ("pkg-config" ,pkg-config)
5702 ("vala" ,vala)))
b0f9c4b8
RW
5703 (propagated-inputs
5704 ;; Listed in "Requires" section of gexiv2.pc
5705 `(("exiv2" ,exiv2)))
5706 (inputs
5707 `(("glib" ,glib)
5708 ("gobject-introspection" ,gobject-introspection)))
5709 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5710 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5711 (description
5712 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5713allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5714metadata in photo and video files of various formats.")
5715 (license license:gpl2+)))
fed5a689
RW
5716
5717(define-public shotwell
5718 (package
5719 (name "shotwell")
a1c6fb52 5720 (version "0.30.7")
fed5a689
RW
5721 (source (origin
5722 (method url-fetch)
5497d682 5723 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5724 (version-major+minor version) "/"
5497d682 5725 "shotwell-" version ".tar.xz"))
fed5a689
RW
5726 (sha256
5727 (base32
a1c6fb52 5728 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
3b79afa6
KK
5729 (build-system meson-build-system)
5730 (arguments
5a0beca3
EF
5731 '(#:glib-or-gtk? #t
5732 #:phases
5733 (modify-phases %standard-phases
5734 (add-after 'unpack 'skip-gtk-update-icon-cache
5735 (lambda _
5736 (substitute* "build-aux/meson/postinstall.py"
5737 (("gtk-update-icon-cache") (which "true"))
5738 (("update-desktop-database") (which "true")))
5739 #t)))))
735b8db6
TGR
5740 (propagated-inputs
5741 `(("dconf" ,dconf)))
fed5a689 5742 (native-inputs
5a0beca3
EF
5743 `(("gettext" ,gettext-minimal)
5744 ("glib:bin" ,glib "bin")
735b8db6 5745 ("itstool" ,itstool)
3b79afa6 5746 ("pkg-config" ,pkg-config)
735b8db6 5747 ("vala" ,vala)))
fed5a689 5748 (inputs
5a0beca3
EF
5749 `(("gcr" ,gcr)
5750 ("gexiv2" ,gexiv2)
fed5a689 5751 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5752 ("gstreamer" ,gstreamer)
5753 ("json-glib" ,json-glib)
dfb0323d 5754 ("libgdata" ,libgdata)
fed5a689 5755 ("libgee" ,libgee)
5a0beca3
EF
5756 ("libgphoto2" ,libgphoto2)
5757 ("libgudev" ,libgudev)
fed5a689 5758 ("libraw" ,libraw)
fed5a689
RW
5759 ("libsoup" ,libsoup)
5760 ("libxml2" ,libxml2)
5a0beca3
EF
5761 ("sqlite" ,sqlite)
5762 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5763 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5764 (synopsis "Photo manager for GNOME 3")
5765 (description
5766 "Shotwell is a digital photo manager designed for the GNOME desktop
5767environment. It allows you to import photos from disk or camera, organize
5768them by keywords and events, view them in full-window or fullscreen mode, and
5769share them with others via social networking and more.")
5770 (license license:lgpl2.1+)))
293ff8b2
DT
5771
5772(define-public file-roller
5773 (package
5774 (name "file-roller")
dcae4270 5775 (version "3.32.3")
293ff8b2
DT
5776 (source (origin
5777 (method url-fetch)
f89a27c6 5778 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5779 (version-major+minor version) "/"
f89a27c6 5780 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5781 (sha256
5782 (base32
dcae4270 5783 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5784 (build-system meson-build-system)
293ff8b2 5785 (native-inputs
0a500745
RW
5786 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5787 ("intltool" ,intltool)
4c96e5d1 5788 ("itstool" ,itstool)
0a500745
RW
5789 ("pkg-config" ,pkg-config)
5790 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5791 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5792 ;; TODO: Add libnautilus.
5793 (inputs
5794 `(("gtk+" ,gtk+)
5795 ("gdk-pixbuf" ,gdk-pixbuf)
5796 ("json-glib" ,json-glib)
5797 ("libarchive" ,libarchive)
5798 ("libnotify" ,libnotify)
4c96e5d1 5799 ("nettle" ,nettle)
293ff8b2
DT
5800 ("libxml2" ,libxml2)))
5801 (synopsis "Graphical archive manager for GNOME")
5802 (description "File Roller is an archive manager for the GNOME desktop
5803environment that allows users to view, unpack, and create compressed archives
5804such as gzip tarballs.")
5805 (home-page "http://fileroller.sourceforge.net/")
5806 (license license:gpl2+)))
7ce49365
SB
5807
5808(define-public gnome-session
5809 (package
5810 (name "gnome-session")
1fc2ec79 5811 (version "3.32.0")
7ce49365
SB
5812 (source (origin
5813 (method url-fetch)
5814 (uri (string-append "mirror://gnome/sources/" name "/"
5815 (version-major+minor version) "/"
5816 name "-" version ".tar.xz"))
5817 (sha256
5818 (base32
1fc2ec79 5819 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
2914af3c 5820 (arguments
df278071
RW
5821 '(#:glib-or-gtk? #t
5822 #:phases
2914af3c
AW
5823 (modify-phases %standard-phases
5824 (add-before 'configure 'pre-configure
5825 (lambda* (#:key outputs #:allow-other-keys)
5826 ;; Use elogind instead of systemd.
df278071
RW
5827 (substitute* "meson.build"
5828 (("libsystemd-login") "libelogind")
5829 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5830 (substitute* "gnome-session/gsm-systemd.c"
5831 (("#include <systemd/sd-login.h>")
5832 "#include <elogind/sd-login.h>"))
df278071 5833 ;; Remove uses of the systemd daemon.
803ab416
SB
5834 (substitute* "gnome-session/gsm-autostart-app.c"
5835 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5836 #t))
5837 (add-after 'install 'wrap-gnome-session
5838 (lambda* (#:key inputs outputs #:allow-other-keys)
5839 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5840 (let ((glib (assoc-ref inputs "glib:bin"))
5841 (out (assoc-ref outputs "out")))
5842 (wrap-program (string-append out "/bin/gnome-session")
5843 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5844 #t))))
6cbc8d57 5845
2914af3c 5846 #:configure-flags
df278071
RW
5847 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5848 "-Dman=false" ; FIXME: disabled because of docbook validation error
5849 "-Dsystemd_journal=false")))
5850 (build-system meson-build-system)
7ce49365
SB
5851 (native-inputs
5852 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5853 ("pkg-config" ,pkg-config)
5854 ("intltool" ,intltool)
df278071
RW
5855 ("xsltproc" ,libxslt)
5856 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5857 ("docbook-xsl" ,docbook-xsl)
5858 ("docbook-xml" ,docbook-xml)
5859 ("xmlto" ,xmlto)))
7ce49365 5860 (inputs
2914af3c
AW
5861 `(("elogind" ,elogind)
5862 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5863 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5864 ("gtk+" ,gtk+)
5865 ("json-glib" ,json-glib)
5866 ("libsm" ,libsm)
5867 ("libxcomposite" ,libxcomposite)
5868 ("libxtst" ,libxtst)
5869 ("mesa" ,mesa)
5870 ("upower" ,upower)
5871 ("xtrans" ,xtrans)))
5872 (synopsis "Session manager for GNOME")
5873 (description
5874 "This package contains the GNOME session manager, as well as a
5875configuration program to choose applications starting on login.")
5876 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5877 (license license:gpl2+)))
f47ba77e
SB
5878
5879(define-public gjs
5880 (package
5881 (name "gjs")
d054fbf5 5882 (version "1.56.2")
f47ba77e
SB
5883 (source (origin
5884 (method url-fetch)
5885 (uri (string-append "mirror://gnome/sources/" name "/"
5886 (version-major+minor version) "/"
5887 name "-" version ".tar.xz"))
5888 (sha256
5889 (base32
d054fbf5 5890 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
f47ba77e
SB
5891 (build-system gnu-build-system)
5892 (arguments
5893 '(#:phases
5894 (modify-phases %standard-phases
5895 (add-before
5896 'check 'pre-check
5897 (lambda _
fc119619
MW
5898 ;; The test suite requires a running X server.
5899 (system "Xvfb :1 &")
5900 (setenv "DISPLAY" ":1")
5901
f47ba77e
SB
5902 ;; For the missing /etc/machine-id.
5903 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5904
144f94d0
KK
5905 ;; Our mozjs-38 package does not compile the required Intl API
5906 ;; support for these failing tests.
5907 (substitute* "installed-tests/js/testLocale.js"
5908 ((".*toBeDefined.*") "")
5909 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5910 (substitute* "installed-tests/scripts/testCommandLine.sh"
5911 (("Valentín") "")
5912 (("☭") ""))
f47ba77e
SB
5913 #t)))))
5914 (native-inputs
8a831c6f 5915 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5916 ("pkg-config" ,pkg-config)
5917 ("xmllint" ,libxml2)
5918 ;; For testing
5919 ("dbus-launch" ,dbus)
5920 ("uuidgen" ,util-linux)
ebebee94 5921 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5922 (propagated-inputs
5923 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5924 `(("cairo" ,cairo)
5925 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5926 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5927 (inputs
5928 `(("gtk+" ,gtk+)
5929 ("readline" ,readline)))
5930 (synopsis "Javascript bindings for GNOME")
f032d0be 5931 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5932 (description
5933 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5934javascript engine and the GObject introspection framework.")
5935 (license license:gpl2+)))
329d731b
DH
5936
5937(define-public gedit
5938 (package
5939 (name "gedit")
480c9226 5940 (version "3.32.2")
329d731b
DH
5941 (source (origin
5942 (method url-fetch)
5943 (uri (string-append "mirror://gnome/sources/" name "/"
5944 (version-major+minor version) "/"
5945 name "-" version ".tar.xz"))
5946 (sha256
5947 (base32
480c9226
KK
5948 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5949 (build-system meson-build-system)
329d731b 5950 (arguments
480c9226
KK
5951 `(#:glib-or-gtk? #t
5952 #:configure-flags
5953 ;; Otherwise, the RUNPATH will lack the final path component.
5954 (list (string-append "-Dc_link_args=-Wl,-rpath="
5955 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5956
5957 ;; XXX: Generated .h files are sometimes used before being built.
5958 #:parallel-build? #f
5959
480c9226 5960 #:phases
329d731b 5961 (modify-phases %standard-phases
480c9226
KK
5962 (add-after 'unpack 'skip-gtk-update-icon-cache
5963 ;; Don't create 'icon-theme.cache'.
5964 (lambda _
5965 (substitute* "build-aux/meson/post_install.py"
5966 (("gtk-update-icon-cache") (which "true")))
5967 #t))
5968 (add-after 'unpack 'patch-libgd-fetch
5969 (lambda* (#:key inputs #:allow-other-keys)
5970 (let ((libgd (assoc-ref inputs "libgd")))
5971 ;; Calling git is unnecessary because libgd is fetched as a
5972 ;; native input to this package.
5973 (substitute* "meson.build"
5974 ((".*git.*") ""))
5975 (copy-recursively libgd "subprojects/libgd")
5976 #t)))
5977 (add-after 'install 'wrap-gedit
5978 (lambda* (#:key inputs outputs #:allow-other-keys)
5979 (let ((out (assoc-ref outputs "out"))
5980 (gtksourceview (assoc-ref inputs "gtksourceview"))
5981 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5982 (python-path (getenv "PYTHONPATH")))
5983 (wrap-program (string-append out "/bin/gedit")
5984 ;; For plugins.
5985 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5986 `("PYTHONPATH" ":" prefix (,python-path))
5987 ;; For language-specs.
5988 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5989 "/share")))))
5990 #t)))))
329d731b
DH
5991 (propagated-inputs
5992 `(("dconf" ,dconf)))
5993 (native-inputs
480c9226
KK
5994 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5995 ("intltool" ,intltool)
b3546174 5996 ("itstool" ,itstool)
480c9226 5997 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 5998 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
5999 ("libgd"
6000 ,(origin
6001 (method git-fetch)
6002 (uri (git-reference
6003 (url "https://gitlab.gnome.org/GNOME/libgd")
6004 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6005 (file-name (git-file-name "libgd" version))
6006 (sha256
6007 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6008 ("pkg-config" ,pkg-config)))
6009 (inputs
6010 `(("glib" ,glib)
0d2df50c 6011 ("gspell" ,gspell)
329d731b 6012 ("gtk+" ,gtk+)
480c9226 6013 ("gtksourceview" ,gtksourceview)
329d731b
DH
6014 ("libpeas" ,libpeas)
6015 ("libxml2" ,libxml2)
329d731b
DH
6016 ("iso-codes" ,iso-codes)
6017 ("python-pygobject" ,python-pygobject)
6018 ("python" ,python)
6019 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6020 ("libx11" ,libx11)
6021 ("vala" ,vala)
6022 ("adwaita-icon-theme" ,adwaita-icon-theme)
6023 ("libsoup" ,libsoup)
6024 ("gnome-desktop" ,gnome-desktop)))
6025 (home-page "https://wiki.gnome.org/Apps/Gedit")
6026 (synopsis "GNOME text editor")
6027 (description "While aiming at simplicity and ease of use, gedit is a
6028powerful general purpose text editor.")
6029 (license license:gpl2+)))
b7179363
SB
6030
6031(define-public zenity
6032 (package
6033 (name "zenity")
4f581bd0 6034 (version "3.32.0")
b7179363
SB
6035 (source (origin
6036 (method url-fetch)
5958df04 6037 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6038 (version-major+minor version) "/"
5958df04 6039 "zenity-" version ".tar.xz"))
b7179363
SB
6040 (sha256
6041 (base32
4f581bd0 6042 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6043 (build-system gnu-build-system)
6044 (native-inputs
b94a6ca0 6045 `(("gettext" ,gettext-minimal)
b7179363
SB
6046 ("itstool" ,itstool)
6047 ("pkg-config" ,pkg-config)))
6048 (inputs
6049 `(("libnotify" ,libnotify)
6050 ("webkitgtk" ,webkitgtk)))
6051 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6052 (home-page "https://www.gnome.org")
b7179363
SB
6053 (description
6054 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6055to display dialog boxes from the commandline and shell scripts.")
6056 (license license:lgpl2.0+)))
60c3627c
SB
6057
6058(define-public mutter
6059 (package
6060 (name "mutter")
edf43f68 6061 (version "3.32.2")
60c3627c 6062 (source (origin
86c44e72
KK
6063 (method url-fetch)
6064 (uri (string-append "mirror://gnome/sources/" name "/"
6065 (version-major+minor version) "/"
6066 name "-" version ".tar.xz"))
60c3627c
SB
6067 (sha256
6068 (base32
edf43f68 6069 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
86c44e72
KK
6070 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6071 ;; versions of cogl and clutter. As a result, many of the inputs,
6072 ;; propagated-inputs, and configure flags used in cogl and clutter are
6073 ;; needed here as well.
edf43f68 6074 (build-system meson-build-system)
60c3627c 6075 (arguments
edf43f68
KK
6076 '(;; XXX: All mutter tests fail with the following error:
6077 ;; Settings schema 'org.gnome.mutter' is not installed
6078 #:tests? #f
6079 #:glib-or-gtk? #t
6080 #:configure-flags
6081 ;; Otherwise, the RUNPATH will lack the final path component.
6082 (list (string-append "-Dc_link_args=-Wl,-rpath="
6083 (assoc-ref %outputs "out") "/lib:"
6084 (assoc-ref %outputs "out") "/lib/mutter-4")
a88d5a0c
MW
6085
6086 ;; The following flags are needed for the bundled clutter
edf43f68 6087 (string-append "-Dxwayland_path="
d633f2f6
RH
6088 (assoc-ref %build-inputs "xorg-server-xwayland")
6089 "/bin/Xwayland")
6090
a88d5a0c 6091 ;; the remaining flags are needed for the bundled cogl
edf43f68 6092 (string-append "-Dopengl_libname="
a88d5a0c 6093 (assoc-ref %build-inputs "mesa")
f23052a6
DC
6094 "/lib/libGL.so"))
6095 #:phases
6096 (modify-phases %standard-phases
edf43f68
KK
6097 (add-after 'unpack 'disable-werror
6098 (lambda _
6099 ;; XXX: build fails with [-Werror]:
6100 ;; backends/meta-cursor-renderer.c:112:5: error:
6101 ;; implicit declaration of function ?roundf?
6102 (substitute* "meson.build"
6103 (("'-Werror=.*',") ""))
6104 #t))
86c44e72
KK
6105 ;; Replace references to systemd libraries to elogind references.
6106 (add-before 'configure 'use-elogind
6107 (lambda _
edf43f68 6108 (substitute* (list "meson.build"
86c44e72
KK
6109 "src/backends/native/meta-launcher.c"
6110 "src/core/main.c")
6111 (("systemd") "elogind"))
6112 #t)))))
60c3627c
SB
6113 (native-inputs
6114 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6115 ("gobject-introspection" ,gobject-introspection)
6116 ("intltool" ,intltool)
f23052a6 6117 ("pkg-config" ,pkg-config)
edf43f68 6118 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6119 ;; For git build
6120 ("autoconf" ,autoconf)
6121 ("automake" ,automake)
6122 ("libtool" ,libtool)))
60c3627c 6123 (propagated-inputs
a88d5a0c
MW
6124 `(;; libmutter.pc refers to these:
6125 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6126 ("gtk+" ,gtk+)
6127 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6128 ("atk" ,atk)
6129 ("cairo" ,cairo)
6130 ("gdk-pixbuf" ,gdk-pixbuf)
6131 ("glib" ,glib)
a88d5a0c
MW
6132 ("json-glib" ,json-glib)
6133 ("libinput" ,libinput)
6134 ("libx11" ,libx11)
6135 ("libxcomposite" ,libxcomposite)
6136 ("libxdamage" ,libxdamage)
6137 ("libxext" ,libxext)
6138 ("libxfixes" ,libxfixes)
6139 ("libxkbcommon" ,libxkbcommon)
6140 ("libxrandr" ,libxrandr)
6141 ("mesa" ,mesa)
6142 ("pango" ,pango)
6143 ("udev" ,eudev)
a88d5a0c 6144 ("xinput" ,xinput)))
60c3627c 6145 (inputs
86c44e72
KK
6146 `(("elogind" ,elogind)
6147 ("gnome-desktop" ,gnome-desktop)
edf43f68 6148 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6149 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6150 ("libgudev" ,libgudev)
60c3627c
SB
6151 ("libice" ,libice)
6152 ("libsm" ,libsm)
edf43f68 6153 ("libwacom" ,libwacom)
60c3627c 6154 ("libxkbfile" ,libxkbfile)
a88d5a0c 6155 ("libxrandr" ,libxrandr)
86c44e72 6156 ("libxtst" ,libxtst)
edf43f68 6157 ("pipewire" ,pipewire)
60c3627c
SB
6158 ("startup-notification" ,startup-notification)
6159 ("upower-glib" ,upower)
6160 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6161 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6162 ("zenity" ,zenity)))
6163 (synopsis "Window and compositing manager")
f032d0be 6164 (home-page "https://www.gnome.org")
60c3627c
SB
6165 (description
6166 "Mutter is a window and compositing manager that displays and manages your
6167desktop via OpenGL. Mutter combines a sophisticated display engine using the
6168Clutter toolkit with solid window-management logic inherited from the Metacity
6169window manager.")
86c44e72 6170 (license license:gpl2+)))
685cee87
SB
6171
6172(define-public gnome-online-accounts
6173 (package
6174 (name "gnome-online-accounts")
aa200347 6175 (version "3.32.1")
685cee87
SB
6176 (source (origin
6177 (method url-fetch)
6178 (uri (string-append "mirror://gnome/sources/" name "/"
6179 (version-major+minor version) "/"
6180 name "-" version ".tar.xz"))
6181 (sha256
6182 (base32
aa200347 6183 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
14c297fd 6184 (outputs '("out" "lib"))
685cee87 6185 (build-system glib-or-gtk-build-system)
14c297fd
TS
6186 (arguments
6187 `(#:configure-flags
6188 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6189 #:phases
6190 (modify-phases %standard-phases
6191 (add-before 'configure 'patch-libgoa-output
6192 (lambda* (#:key outputs #:allow-other-keys)
6193 (let ((lib (assoc-ref outputs "lib")))
6194 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6195 (("@prefix@") lib)
6196 (("@exec_prefix@") lib)
6197 (("@libdir@") (string-append lib "/lib"))
6198 (("@includedir@") (string-append lib "/include"))
6199 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6200 ;; Make sure gobject-introspection knows about the output
6201 ;; too (see <https://bugs.gnu.org/36535>).
6202 (setenv "outputs" "out lib")
14c297fd 6203 #t))))))
685cee87
SB
6204 (native-inputs
6205 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6206 ("gobject-introspection" ,gobject-introspection)
6207 ("intltool" ,intltool)
6208 ("pkg-config" ,pkg-config)
ebb2873d 6209 ("vala" ,vala)
685cee87
SB
6210 ("xsltproc" ,libxslt)))
6211 (propagated-inputs
6212 `(("glib" ,glib) ; required by goa-1.0.pc
6213 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6214 (inputs
6215 `(("docbook-xsl" ,docbook-xsl)
6216 ("json-glib" ,json-glib)
6217 ("libsecret" ,libsecret)
6218 ("rest" ,rest)
685cee87
SB
6219 ("webkitgtk" ,webkitgtk)))
6220 (synopsis "Single sign-on framework for GNOME")
6221 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6222 (description
6223 "GNOME Online Accounts provides interfaces so that applications and
6224libraries in GNOME can access the user's online accounts. It has providers for
6225Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6226Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6227 (license license:lgpl2.0+)))
df217748
SB
6228
6229(define-public evolution-data-server
6230 (package
6231 (name "evolution-data-server")
2196a8d4 6232 (version "3.32.4")
df217748
SB
6233 (source (origin
6234 (method url-fetch)
6235 (uri (string-append "mirror://gnome/sources/" name "/"
6236 (version-major+minor version) "/"
6237 name "-" version ".tar.xz"))
43190ac6
MB
6238 (patches (search-patches "evolution-data-server-locales.patch"
6239 "evolution-data-server-libical-compat.patch"))
df217748
SB
6240 (sha256
6241 (base32
2196a8d4 6242 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
743aebd7 6243 (build-system cmake-build-system)
df217748 6244 (arguments
b468eedc
RW
6245 '(#:configure-flags
6246 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6247 (runpaths (map (lambda (s)
6248 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6249 '("addressbook-backends" "calendar-backends"
6250 "camel-providers" "credential-modules"
6251 "registry-modules"))))
6252 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6253 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6254 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6255 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6256 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6257 (string-append lib "/evolution-data-server;")
6258 (string-join runpaths ";"))
6259 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6260 #:phases
6261 (modify-phases %standard-phases
b468eedc
RW
6262 (add-after 'unpack 'disable-failing-tests
6263 (lambda _
6264 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6265 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6266 (delete-file-recursively "tests/book-migration")
6267 (substitute* "tests/CMakeLists.txt"
6268 (("add_subdirectory\\(book-migration\\)") ""))
2196a8d4
KK
6269 ;; tests/libebook/client/test-book-client-view-operations:8077):
6270 ;; e-data-server-WARNING **:
6271 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6272 ;; runtime check failed:
6273 ;; (!g_main_context_pending (closure->main_context))
6274 (substitute* "tests/libebook/client/CMakeLists.txt"
6275 (("test-book-client-view-operations") ""))
b468eedc 6276 #t))
743aebd7 6277 (add-after 'unpack 'patch-paths
df217748 6278 (lambda _
b468eedc
RW
6279 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6280 "tests/libedata-book/data-test-utils.c"
6281 "tests/libedata-book/test-book-cache-utils.c"
6282 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6283 (("/bin/rm") (which "rm")))
ac033c7b
MB
6284 #t))
6285 (add-before 'configure 'dont-override-rpath
6286 (lambda _
6287 (substitute* "CMakeLists.txt"
6288 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6289 ;; Remove it so the configure flag is respected.
6290 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6291 #t)))))
df217748
SB
6292 (native-inputs
6293 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6294 ("gobject-introspection" ,gobject-introspection)
6295 ("gperf" ,gperf)
6296 ("intltool" ,intltool)
6297 ("pkg-config" ,pkg-config)
a73c1cf8 6298 ("vala" ,vala)
743aebd7 6299 ("python" ,python-wrapper)))
df217748
SB
6300 (propagated-inputs
6301 ;; These are all in the Requires field of .pc files.
6302 `(("gtk+" ,gtk+)
6303 ("libical" ,libical)
6304 ("libsecret" ,libsecret)
6305 ("libsoup" ,libsoup)
6306 ("nss" ,nss)
6307 ("sqlite" ,sqlite)))
6308 (inputs
6309 `(("bdb" ,bdb)
6310 ("gcr" ,gcr)
14c297fd 6311 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6312 ("json-glib" ,json-glib)
b468eedc 6313 ("libcanberra" ,libcanberra)
743aebd7
MB
6314 ("libgweather" ,libgweather)
6315 ("mit-krb5" ,mit-krb5)
891199c6
MW
6316 ("openldap" ,openldap)
6317 ("webkitgtk" ,webkitgtk)))
df217748
SB
6318 (synopsis "Store address books and calendars")
6319 (home-page "https://wiki.gnome.org/Apps/Evolution")
6320 (description
6321 "This package provides a unified backend for programs that work with
6322contacts, tasks, and calendar information. It was originally developed for
6323Evolution (hence the name), but is now used by other packages as well.")
6324 (license license:lgpl2.0)))
bd7dfafa
SB
6325
6326(define-public caribou
6327 (package
6328 (name "caribou")
fe964bb5 6329 (version "0.4.21")
bd7dfafa
SB
6330 (source (origin
6331 (method url-fetch)
6332 (uri (string-append "mirror://gnome/sources/" name "/"
6333 (version-major+minor version) "/"
6334 name "-" version ".tar.xz"))
6335 (sha256
6336 (base32
fe964bb5 6337 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6338 (build-system glib-or-gtk-build-system)
6339 (arguments
6340 '(#:phases
6341 (modify-phases %standard-phases
6342 (add-before
6343 'build 'pre-build
6344 (lambda* (#:key outputs #:allow-other-keys)
6345 (let ((out (assoc-ref outputs "out")))
6346 ;; Use absolute shared library path in Caribou-1.0.typelib.
6347 (substitute* "libcaribou/Makefile"
6348 (("--shared-library=libcaribou.so")
6349 (string-append "--shared-library="
6350 out "/lib/libcaribou.so")))
6351 #t)))
6352 (add-after 'install 'wrap-programs
6353 (lambda* (#:key outputs #:allow-other-keys)
6354 (let* ((out (assoc-ref outputs "out"))
6355 (python-path (getenv "PYTHONPATH"))
6356 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6357 (for-each
6358 (lambda (prog)
6359 (wrap-program prog
6360 `("PYTHONPATH" ":" prefix (,python-path))
6361 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6362 (list (string-append out "/bin/caribou-preferences")
6363 (string-append out "/libexec/antler-keyboard"))))
6364 #t)))))
6365 (native-inputs
6366 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6367 ("gobject-introspection" ,gobject-introspection)
6368 ("intltool" ,intltool)
6369 ("pkg-config" ,pkg-config)
9f7f5ba2 6370 ("python" ,python)
bd7dfafa
SB
6371 ("vala" ,vala)
6372 ("xsltproc" ,libxslt)))
6373 (propagated-inputs
6374 ;; caribou-1.0.pc refers to all these.
6375 `(("libgee" ,libgee)
6376 ("libxklavier" ,libxklavier)
6377 ("libxtst" ,libxtst)
6378 ("gtk+" ,gtk+)))
6379 (inputs
6380 `(("clutter" ,clutter)
6381 ("dconf" ,dconf)
6382 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6383 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6384 (synopsis "Text entry and UI navigation application")
6385 (home-page "https://wiki.gnome.org/Projects/Caribou")
6386 (description
6387 "Caribou is an input assistive technology intended for switch and pointer
6388users.")
6389 (license license:lgpl2.1)))
ba5dd105 6390
ba5dd105
SB
6391(define-public network-manager
6392 (package
6393 (name "network-manager")
6425d87a 6394 (version "1.18.4")
ba5dd105
SB
6395 (source (origin
6396 (method url-fetch)
6397 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6398 (version-major+minor version) "/"
6399 "NetworkManager-" version ".tar.xz"))
9d3b6a5d 6400 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
6401 (sha256
6402 (base32
6425d87a 6403 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
02710a9b 6404 (modules '((guix build utils)))
fd070f35 6405 (snippet
02710a9b
RW
6406 '(begin
6407 (substitute* "src/devices/wwan/nm-modem-manager.c"
6408 (("systemd") "elogind"))
6409 #t))))
ba5dd105
SB
6410 (build-system gnu-build-system)
6411 (outputs '("out"
6412 "doc")) ; 8 MiB of gtk-doc HTML
6413 (arguments
6414 '(#:configure-flags
6415 (let ((out (assoc-ref %outputs "out"))
6416 (doc (assoc-ref %outputs "doc"))
6417 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6418 "/sbin/dhclient")))
02710a9b
RW
6419 (list "--with-libnm-glib" ; needed by network-manager-applet
6420 "--with-systemd-journal=no"
6421 "--with-session-tracking=elogind"
6422 "--with-suspend-resume=elogind"
fd070f35
CM
6423 "--with-consolekit=no"
6424 "--with-crypto=gnutls"
ba5dd105
SB
6425 "--disable-config-plugin-ibft"
6426 "--sysconfdir=/etc"
6427 "--localstatedir=/var"
6428 (string-append "--with-udev-dir="
6429 out "/lib/udev")
6430 (string-append "--with-dbus-sys-dir="
6431 out "/etc/dbus-1/system.d")
6432 (string-append "--with-html-dir="
6433 doc "/share/gtk-doc/html")
6434 (string-append "--with-dhclient=" dhclient)))
6435 #:phases
6436 (modify-phases %standard-phases
02710a9b
RW
6437 ;; This bare "ls" invocation breaks some tests.
6438 (add-after 'unpack 'patch-ls-invocation
6439 (lambda _
6440 (substitute* "build-aux/ltmain.sh"
6441 (("`ls -")
6442 (string-append "`" (which "ls") " -")))
6443 #t))
b4f59d87
AW
6444 (add-before 'configure 'pre-configure
6445 (lambda _
6446 ;; These tests try to test aspects of network-manager's
6447 ;; functionality within restricted containers, but they don't
6448 ;; cope with being already in the Guix build jail as that jail
6449 ;; lacks some features that they would like to proxy over (like
6450 ;; a /sys mount).
d04687dc
HG
6451 (substitute* '("Makefile.in")
6452 (("src/platform/tests/test-address-linux") " ")
6453 (("src/platform/tests/test-cleanup-linux") " ")
6454 (("src/platform/tests/test-link-linux") " ")
6455 (("src/platform/tests/test-route-linux") " ")
02710a9b 6456 (("src/devices/tests/test-acd") "")
d04687dc
HG
6457 (("src/devices/tests/test-arping") " ")
6458 (("src/devices/tests/test-lldp") " ")
6459 (("src/tests/test-route-manager-linux") " "))
b4f59d87 6460 #t))
45f80fce
RW
6461 (add-after 'unpack 'delete-failing-tests
6462 (lambda _
02710a9b 6463 ;; FIXME: These three tests fail for unknown reasons.
45f80fce
RW
6464 ;; ERROR:libnm-core/tests/test-general.c:5842:
6465 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6466 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6467 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6468 ;; ERROR:libnm-core/tests/test-setting.c:907:
6469 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
45f80fce
RW
6470 (substitute* "Makefile.in"
6471 (("libnm-core/tests/test-general") " ")
6472 (("libnm-core/tests/test-keyfile") " ")
02710a9b 6473 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
45f80fce 6474 #t))
ba5dd105
SB
6475 (add-before 'check 'pre-check
6476 (lambda _
6477 ;; For the missing /etc/machine-id.
6478 (setenv "DBUS_FATAL_WARNINGS" "0")
bf252286
MB
6479
6480 ;; XXX: Regenerate some of the tests that are dependent on Python version.
6481 ;; Try removing this variable for newer versions of NetworkManager.
6482 (setenv "NM_TEST_REGENERATE" "1")
ba5dd105
SB
6483 #t))
6484 (replace 'install
6485 (lambda _
45f80fce
RW
6486 (invoke "make"
6487 "sysconfdir=/tmp"
6488 "rundir=/tmp"
6489 "statedir=/tmp"
6490 "nmstatedir=/tmp/nm"
6491 "install")
6492 #t)))))
b93502d6
DC
6493 (propagated-inputs
6494 `(("glib" ,glib)))
ba5dd105
SB
6495 (native-inputs
6496 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6497 ("gobject-introspection" ,gobject-introspection)
d04687dc 6498 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6499 ("intltool" ,intltool)
d04687dc
HG
6500 ("libxslt" ,libxslt)
6501 ("libxml2" ,libxml2)
ba5dd105
SB
6502 ("pkg-config" ,pkg-config)
6503 ;; For testing.
6504 ("python" ,python-wrapper)
6505 ("python-dbus" ,python-dbus)
6506 ("python-pygobject" ,python-pygobject)))
6507 (inputs
02710a9b
RW
6508 `(("coreutils" ,coreutils) ; for ls
6509 ("curl" ,curl)
856ca567
KK
6510 ("cyrus-sasl" ,cyrus-sasl)
6511 ("dbus-glib" ,dbus-glib)
ba5dd105 6512 ("dnsmasq" ,dnsmasq)
856ca567 6513 ("eudev" ,eudev)
ba5dd105
SB
6514 ("gnutls" ,gnutls)
6515 ("iptables" ,iptables)
6516 ("isc-dhcp" ,isc-dhcp)
d04687dc 6517 ("jansson" ,jansson)
ba5dd105
SB
6518 ("libgcrypt" ,libgcrypt)
6519 ("libgudev" ,libgudev)
6520 ("libndp" ,libndp)
6521 ("libnl" ,libnl)
6522 ("libsoup" ,libsoup)
142bdcbc 6523 ("modem-manager" ,modem-manager)
c27e02bf 6524 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
6525 ("polkit" ,polkit)
6526 ("ppp" ,ppp)
6527 ("readline" ,readline)
fd070f35
CM
6528 ("util-linux" ,util-linux)
6529 ("elogind" ,elogind)))
ba5dd105 6530 (synopsis "Network connection manager")
f032d0be 6531 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
6532 (description
6533 "NetworkManager is a system network service that manages your network
6534devices and connections, attempting to keep active network connectivity when
6535available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6536devices, and provides VPN integration with a variety of different VPN
6537services.")
29d2f451
LC
6538 (license license:gpl2+)
6539 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6540
f2b96b3a
LC
6541(define-public network-manager-openvpn
6542 (package
6543 (name "network-manager-openvpn")
be1c4b07 6544 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 6545 (version "1.8.10")
f2b96b3a
LC
6546 (source (origin
6547 (method url-fetch)
6548 (uri (string-append
6549 "mirror://gnome/sources/NetworkManager-openvpn/"
6550 (version-major+minor version)
6551 "/NetworkManager-openvpn-" version ".tar.xz"))
6552 (sha256
6553 (base32
7d87eede 6554 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
6555 (build-system gnu-build-system)
6556 (arguments
633422b0
JL
6557 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6558 #:phases
6559 (modify-phases %standard-phases
6560 (add-after 'configure 'patch-path
6561 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6562 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6563 "/sbin/openvpn"))
6564 (modprobe (string-append (assoc-ref inputs "kmod")
6565 "/bin/modprobe"))
6566 (pretty-ovpn (string-append "\"" ovpn "\"")))
6567 (for-each
6568 (lambda (file)
6569 (substitute* file
6570 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6571 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6572 (("\"/sbin/openvpn\"") pretty-ovpn)
6573 (("/sbin/modprobe") modprobe)))
6574 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6575 #t)))))
f2b96b3a
LC
6576 (native-inputs
6577 `(("pkg-config" ,pkg-config)
6578 ("intltool" ,intltool)))
6579 (inputs
6580 `(("gtk+" ,gtk+)
633422b0 6581 ("kmod" ,kmod)
f2b96b3a
LC
6582 ("openvpn" ,openvpn)
6583 ("network-manager" ,network-manager)
6584 ("network-manager-applet" ,network-manager-applet) ;for libnma
6585 ("libsecret" ,libsecret)))
6586 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6587 (synopsis "OpenVPN plug-in for NetworkManager")
6588 (description
6589 "This extension of NetworkManager allows it to take care of connections
6590to virtual private networks (VPNs) via OpenVPN.")
6591 (license license:gpl2+)
6592 (properties `((upstream-name . "NetworkManager-openvpn")))))
6593
d376129f
JL
6594(define-public network-manager-vpnc
6595 (package
6596 (name "network-manager-vpnc")
6597 (version "1.2.6")
6598 (source (origin
6599 (method url-fetch)
6600 (uri (string-append
6601 "mirror://gnome/sources/NetworkManager-vpnc/"
6602 (version-major+minor version)
6603 "/NetworkManager-vpnc-" version ".tar.xz"))
6604 (sha256
6605 (base32
6606 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6607 (build-system gnu-build-system)
6608 (arguments
6609 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6610 #:phases
6611 (modify-phases %standard-phases
6612 (add-after 'configure 'patch-path
6613 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6614 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6615 "/sbin/vpnc"))
6616 (modprobe (string-append (assoc-ref inputs "kmod")
6617 "/bin/modprobe"))
6618 (pretty-ovpn (string-append "\"" vpnc "\"")))
6619 (substitute* "src/nm-vpnc-service.c"
6620 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6621 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6622 (("\"/sbin/vpnc\"") pretty-ovpn)
6623 (("/sbin/modprobe") modprobe)))
6624 #t)))))
6625 (native-inputs
6626 `(("pkg-config" ,pkg-config)
6627 ("intltool" ,intltool)))
6628 (inputs
6629 `(("gtk+" ,gtk+)
6630 ("kmod" ,kmod)
6631 ("vpnc" ,vpnc)
6632 ("network-manager" ,network-manager)
6633 ("network-manager-applet" ,network-manager-applet) ;for libnma
6634 ("libsecret" ,libsecret)))
6635 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6636 (synopsis "VPNC plug-in for NetworkManager")
6637 (description
6638 "Support for configuring virtual private networks based on VPNC.
6639Compatible with Cisco VPN concentrators configured to use IPsec.")
6640 (license license:gpl2+)
6641 (properties `((upstream-name . "NetworkManager-vpnc")))))
6642
8378c87a
EF
6643(define-public network-manager-openconnect
6644 (package
6645 (name "network-manager-openconnect")
6646 (version "1.2.6")
6647 (source (origin
6648 (method url-fetch)
6649 (uri (string-append
6650 "mirror://gnome/sources/NetworkManager-openconnect/"
6651 (version-major+minor version)
6652 "/NetworkManager-openconnect-" version ".tar.xz"))
6653 (sha256
6654 (base32
6655 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6656 (build-system gnu-build-system)
6657 (arguments
6658 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6659 #:phases
6660 (modify-phases %standard-phases
6661 (add-after 'configure 'patch-path
6662 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6663 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6664 "/sbin/openconnect"))
6665 (modprobe (string-append (assoc-ref inputs "kmod")
6666 "/bin/modprobe"))
6667 (pretty-ovpn (string-append "\"" openconnect "\"")))
6668 (substitute* "src/nm-openconnect-service.c"
6669 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6670 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6671 (("/sbin/modprobe") modprobe)))
6672 #t)))))
6673 (native-inputs
6674 `(("intltool" ,intltool)
6675 ("network-manager-applet" ,network-manager-applet) ;for libnma
6676 ("pkg-config" ,pkg-config)))
6677 (inputs
6678 `(("gcr" ,gcr)
6679 ("gtk+" ,gtk+)
6680 ("kmod" ,kmod)
6681 ("libsecret" ,libsecret)
6682 ("libxml2" ,libxml2)
6683 ("network-manager" ,network-manager)
6684 ("openconnect" ,openconnect)))
6685 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6686 (synopsis "OpenConnect plug-in for NetworkManager")
6687 (description
6688 "This extension of NetworkManager allows it to take care of connections
6689to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6690Cisco's AnyConnect SSL VPN.")
6691 (license license:gpl2+)
e52b9534
LC
6692 (properties `((upstream-name . "NetworkManager-openconnect")
6693
6694 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6695 ;; file refers to account "nm-openconnect". Specify it here
6696 ;; so that 'network-manager-service-type' creates it.
6697 (user-accounts . ("nm-openconnect"))))))
8378c87a 6698
e5e1df4d
DC
6699(define-public mobile-broadband-provider-info
6700 (package
6701 (name "mobile-broadband-provider-info")
310c89e3 6702 (version "20190116")
e5e1df4d
DC
6703 (source (origin
6704 (method url-fetch)
6705 (uri (string-append
6706 "mirror://gnome/sources/"
6707 "mobile-broadband-provider-info/" version "/"
6708 "mobile-broadband-provider-info-" version ".tar.xz"))
6709 (sha256
6710 (base32
310c89e3 6711 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6712 (build-system gnu-build-system)
6713 (arguments
310c89e3 6714 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6715 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6716 (synopsis "Database of broadband connection configuration")
6717 (description "Database of broadband connection configuration.")
6718 (license license:public-domain)))
6719
4d62a9d3
SB
6720(define-public network-manager-applet
6721 (package
6722 (name "network-manager-applet")
8fc3a337 6723 (version "1.8.24")
4d62a9d3
SB
6724 (source (origin
6725 (method url-fetch)
3df63444 6726 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6727 (version-major+minor version) "/"
3df63444 6728 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6729 (sha256
6730 (base32
8fc3a337 6731 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6732 (build-system meson-build-system)
6733 (arguments
be1c4b07
TGR
6734 '(#:configure-flags
6735 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6736 (list "-Dlibnm_gtk=true")
6737 #:glib-or-gtk? #t))
4d62a9d3
SB
6738 (native-inputs
6739 `(("intltool" ,intltool)
cd7f718e 6740 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6741 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6742 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6743 ("pkg-config" ,pkg-config)))
6744 (propagated-inputs
6745 ;; libnm-gtk.pc refers to all these.
6746 `(("dbus-glib" ,dbus-glib)
6747 ("gtk+" ,gtk+)
6748 ("network-manager" ,network-manager)))
6749 (inputs
cd7f718e
RW
6750 `(("gcr" ,gcr)
6751 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6752 ("libgudev" ,libgudev)
6753 ("libnotify" ,libnotify)
2116bfb3 6754 ("libsecret" ,libsecret)
240cee8a
KK
6755 ("libselinux" ,libselinux)
6756 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6757 ("modem-manager" ,modem-manager)
6758 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6759 (synopsis "Applet for managing network connections")
f032d0be 6760 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6761 (description
6762 "This package contains a systray applet for NetworkManager. It displays
6763the available networks and allows users to easily switch between them.")
6764 (license license:gpl2+)))
56196594
RW
6765
6766(define-public libxml++
6767 (package
6768 (name "libxml++")
8344a85e 6769 (version "3.0.1")
56196594
RW
6770 (source (origin
6771 (method url-fetch)
6772 (uri (string-append "mirror://gnome/sources/" name "/"
6773 (version-major+minor version) "/"
6774 name "-" version ".tar.xz"))
6775 (sha256
6776 (base32
8344a85e 6777 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6778 (build-system gnu-build-system)
6779 ;; libxml++-3.0.pc refers to all these.
6780 (propagated-inputs
6781 `(("libxml2" ,libxml2)
6782 ("glibmm" ,glibmm)))
6783 (native-inputs
6784 `(("perl" ,perl)
6785 ("pkg-config" ,pkg-config)))
6786 (home-page "http://libxmlplusplus.sourceforge.net/")
6787 (synopsis "C++ wrapper for XML parser library libxml2")
6788 (description
6789 "This package provides a C++ wrapper for the XML parser library
6790libxml2.")
6791 (license license:lgpl2.1+)))
df12f04a 6792
b61d9627
AW
6793(define-public libxml++-2
6794 (package
6795 (inherit libxml++)
6796 (name "libxml++")
6797 (version "2.40.1")
6798 (source (origin
6799 (method url-fetch)
6800 (uri (string-append "mirror://gnome/sources/" name "/"
6801 (version-major+minor version) "/"
6802 name "-" version ".tar.xz"))
6803 (sha256
6804 (base32
6805 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6806
df12f04a
SB
6807(define-public gdm
6808 (package
6809 (name "gdm")
bcca95dc 6810 (version "3.32.0")
df12f04a
SB
6811 (source (origin
6812 (method url-fetch)
6813 (uri (string-append "mirror://gnome/sources/" name "/"
6814 (version-major+minor version) "/"
6815 name "-" version ".tar.xz"))
6816 (sha256
6817 (base32
bcca95dc 6818 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
957dbc0a 6819 (build-system glib-or-gtk-build-system)
df12f04a
SB
6820 (arguments
6821 '(#:configure-flags
af37e6bb 6822 `("--without-plymouth"
957dbc0a 6823 "--disable-systemd-journal"
51bc8357
TS
6824
6825 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6826 ;; instead of having to replace it (i.e., stopping the mingetty
6827 ;; service for TTY 1 before starting GDM).
6828 "--with-initial-vt=7"
6829
89c86562
TS
6830 ;; Use '/etc/environment' for locale settings instead of the
6831 ;; systemd-specific '/etc/locale.conf'.
6832 "--with-lang-file=/etc/environment"
6833
b74ef0ba
RW
6834 ,(string-append "--with-udevdir="
6835 (assoc-ref %outputs "out") "/lib/udev")
6836
af37e6bb
AW
6837 "--localstatedir=/var"
6838 ,(string-append "--with-default-path="
6839 (string-join '("/run/setuid-programs"
6840 "/run/current-system/profile/bin"
6841 "/run/current-system/profile/sbin")
957dbc0a
AW
6842 ":"))
6843 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6844 ;; XDG_DATA_DIRS so that it finds its schemas.
6845 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6846 #:phases
6847 (modify-phases %standard-phases
6848 (add-before
6849 'configure 'pre-configure
e8c6e771 6850 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6851 ;; We don't have <systemd/sd-daemon.h>.
6852 (substitute* '("common/gdm-log.c"
6853 "daemon/gdm-server.c"
6854 "daemon/gdm-session-worker.c"
6855 "daemon/gdm-session-worker-job.c")
6856 (("#include <systemd/sd-daemon\\.h>") ""))
6857 ;; Use elogind for sd-login.
6858 (substitute* '("common/gdm-common.c"
6859 "daemon/gdm-manager.c"
6860 "libgdm/gdm-user-switching.c")
6861 (("#include <systemd/sd-login\\.h>")
6862 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6863 ;; Check for elogind.
6864 (substitute* '("configure")
6865 (("libsystemd")
6866 "libelogind"))
af37e6bb
AW
6867 ;; Look for system-installed sessions in
6868 ;; /run/current-system/profile/share.
6869 (substitute* '("libgdm/gdm-sessions.c"
6870 "daemon/gdm-session.c"
6871 "daemon/gdm-display.c"
6872 "daemon/gdm-launch-environment.c")
6873 (("DATADIR \"/x")
6874 "\"/run/current-system/profile/share/x")
6875 (("DATADIR \"/wayland")
6876 "\"/run/current-system/profile/share/wayland")
6877 (("DATADIR \"/gnome")
6878 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6879 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6880 "GDM_DBUS_DAEMON"
c9ff92b5 6881 "GDM_X_SERVER"
41fa9f18 6882 "GDM_X_SESSION"
c9ff92b5
TS
6883 ;; XXX: Remove this once GNOME Shell is
6884 ;; a dependency of GDM.
6885 "XDG_DATA_DIRS")))
6886 (substitute* "daemon/gdm-session.c"
6887 (("set_up_session_environment \\(self\\);")
6888 (apply string-append
6889 "set_up_session_environment (self);\n"
6890 (map (lambda (name)
6891 (string-append
6892 "gdm_session_set_environment_variable "
6893 "(self, \"" name "\","
6894 "g_getenv (\"" name "\"));\n"))
6895 propagate)))))
a430a350
TS
6896 ;; Find the configuration file using an environment variable.
6897 (substitute* '("common/gdm-settings.c")
e0e6756f 6898 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6899 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6900 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6901 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6902 ;; Use service-supplied path to X.
6903 (substitute* '("daemon/gdm-server.c")
6904 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6905 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6906 (substitute* '("daemon/gdm-x-session.c")
1f564c15
TS
6907 (("\"dbus-daemon\"")
6908 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6909 (("X_SERVER")
41fa9f18
TS
6910 "g_getenv (\"GDM_X_SERVER\")")
6911 (("GDMCONFDIR \"/Xsession\"")
6912 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6913 ;; Use an absolute path for GNOME Session.
6914 (substitute* "daemon/gdm-launch-environment.c"
6915 (("\"gnome-session\"")
6916 (string-append "\"" (assoc-ref inputs "gnome-session")
6917 "/bin/gnome-session\"")))
e8c6e771
TS
6918 ;; Do not automatically select the placeholder session.
6919 (substitute* "daemon/gdm-session.c"
6920 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6921 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6922 "(g_strcmp0(search_dirs[i], \""
6923 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6924 "\") == 0 && "
6925 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6926 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6927 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6928 #t))
8caa4589
TS
6929 ;; GDM requires that there be at least one desktop entry
6930 ;; file. This phase installs a hidden one that simply
6931 ;; fails. This enables users to use GDM with a
6932 ;; '~/.xsession' script with no other desktop entry files.
6933 ;; See <https://bugs.gnu.org/35068>.
6934 (add-after 'install 'install-placeholder-desktop-entry
6935 (lambda* (#:key inputs outputs #:allow-other-keys)
6936 (let* ((out (assoc-ref outputs "out"))
6937 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6938 (fail (string-append sessions "/fail.desktop")))
6939 (mkdir-p sessions)
6940 (with-output-to-file fail
6941 (lambda ()
6942 (for-each
6943 display
6944 '("[Desktop Entry]\n"
6945 "Encoding=UTF-8\n"
6946 "Type=Application\n"
6947 "Name=Fail\n"
6948 "Comment=This session fails immediately.\n"
6949 "NoDisplay=true\n"
6950 "Exec=false\n"))))
6951 #t)))
69544798
TS
6952 ;; GDM needs GNOME Session to run these applications. We link
6953 ;; their autostart files in `share/gdm/greeter/autostart'
6954 ;; because GDM explicitly tells GNOME Session to look there.
6955 ;;
6956 ;; XXX: GNOME Shell should be linked here too, but currently
6957 ;; GNOME Shell depends on GDM.
6958 (add-after 'install 'link-autostart-files
6959 (lambda* (#:key inputs outputs #:allow-other-keys)
6960 (let* ((out (assoc-ref outputs "out"))
6961 (autostart (string-append out "/share/gdm/"
6962 "greeter/autostart"))
6963 (settings (assoc-ref inputs "gnome-settings-daemon")))
6964 (mkdir-p autostart)
6965 (with-directory-excursion autostart
6966 (for-each (lambda (desktop)
6967 (symlink desktop (basename desktop)))
6968 (find-files (string-append settings "/etc/xdg"))))
6969 #t))))))
df12f04a
SB
6970 (native-inputs
6971 `(("dconf" ,dconf)
6972 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6973 ("gobject-introspection" ,gobject-introspection)
6974 ("intltool" ,intltool)
6975 ("itstool" ,itstool)
6976 ("pkg-config" ,pkg-config)
6977 ("xmllint" ,libxml2)))
6978 (inputs
6979 `(("accountsservice" ,accountsservice)
6980 ("check" ,check) ; for testing
6981 ("elogind" ,elogind)
def6d6b6 6982 ("gnome-session" ,gnome-session)
69544798 6983 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6984 ("gtk+" ,gtk+)
6985 ("iso-codes" ,iso-codes)
6986 ("libcanberra" ,libcanberra)
6987 ("linux-pam" ,linux-pam)))
6988 (synopsis "Display manager for GNOME")
f032d0be 6989 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6990 (description
6991 "GNOME Display Manager is a system service that is responsible for
6992providing graphical log-ins and managing local and remote displays.")
6993 (license license:gpl2+)))
8e1dd04f
SB
6994
6995(define-public libgtop
6996 (package
6997 (name "libgtop")
015fc036 6998 (version "2.40.0")
8e1dd04f
SB
6999 (source (origin
7000 (method url-fetch)
59487fc2 7001 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 7002 (version-major+minor version) "/"
59487fc2 7003 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
7004 (sha256
7005 (base32
015fc036 7006 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
7007 (build-system gnu-build-system)
7008 (native-inputs
7009 `(("gobject-introspection" ,gobject-introspection)
7010 ("intltool" ,intltool)
7011 ("perl" ,perl)
7012 ("pkg-config" ,pkg-config)))
7013 (propagated-inputs
7014 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7015 (synopsis "Portable system access library")
7016 (home-page "https://www.gnome.org/")
7017 (description
7018 "LibGTop is a library to get system specific data such as CPU and memory
7019usage and information about running processes.")
7020 (license license:gpl2+)))
b96c4260
SB
7021
7022(define-public gnome-bluetooth
7023 (package
7024 (name "gnome-bluetooth")
723afae6 7025 (version "3.32.1")
b96c4260
SB
7026 (source (origin
7027 (method url-fetch)
7028 (uri (string-append "mirror://gnome/sources/" name "/"
7029 (version-major+minor version) "/"
7030 name "-" version ".tar.xz"))
7031 (sha256
7032 (base32
723afae6 7033 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
fd3b1171 7034 (build-system meson-build-system)
b96c4260
SB
7035 (native-inputs
7036 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7037 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7038 ("gobject-introspection" ,gobject-introspection)
7039 ("intltool" ,intltool)
7040 ("pkg-config" ,pkg-config)
7041 ("xmllint" ,libxml2)))
7042 (propagated-inputs
7043 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7044 `(("glib" ,glib)
7045 ("gtk+" ,gtk+)))
b96c4260 7046 (inputs
723afae6
KK
7047 `(("eudev" ,eudev)
7048 ("libcanberra" ,libcanberra)
b96c4260
SB
7049 ("libnotify" ,libnotify)))
7050 (synopsis "GNOME Bluetooth subsystem")
7051 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7052 (description
7053 "This package contains tools for managing and manipulating Bluetooth
7054devices using the GNOME desktop.")
7055 (license license:lgpl2.1+)))
b645146f
SB
7056
7057(define-public gnome-control-center
7058 (package
7059 (name "gnome-control-center")
a6938bac 7060 (version "3.32.2")
b645146f
SB
7061 (source (origin
7062 (method url-fetch)
7063 (uri (string-append "mirror://gnome/sources/" name "/"
7064 (version-major+minor version) "/"
7065 name "-" version ".tar.xz"))
7066 (sha256
7067 (base32
a6938bac 7068 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
59dac026 7069 (build-system meson-build-system)
b645146f 7070 (arguments
59dac026
RW
7071 '(#:glib-or-gtk? #t
7072 #:configure-flags
64c70430
KK
7073 (list "-Dcheese=false"
7074 (string-append "-Dgnome_session_libexecdir="
7075 (assoc-ref %build-inputs "gnome-session")
7076 "/libexec"))
59dac026 7077 #:phases
b645146f
SB
7078 (modify-phases %standard-phases
7079 (add-before 'configure 'patch-paths
7080 (lambda* (#:key inputs #:allow-other-keys)
7081 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7082 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7083 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7084 (nm-applet (assoc-ref inputs "network-manager-applet"))
7085 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7086 (substitute* "panels/datetime/tz.h"
7087 (("/usr/share/zoneinfo/zone.tab")
7088 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7089 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7090 (("/usr/share/locale")
7091 (string-append libc "/share/locale")))
1df38cfc
LC
7092 (substitute* "panels/region/cc-region-panel.c"
7093 (("\"gkbd-keyboard-display")
7094 (string-append "\"" libgnomekbd
7095 "/bin/gkbd-keyboard-display")))
341225ac
LC
7096 (substitute* '("panels/network/net-device-wifi.c"
7097 "panels/network/net-device.c"
7098 "panels/network/connection-editor/net-connection-editor.c")
7099 (("\"nm-connection-editor")
7100 (string-append "\"" nm-applet
7101 "/bin/nm-connection-editor")))
1acd107c
FP
7102 (substitute* '("panels/user-accounts/run-passwd.c")
7103 (("/usr/bin/passwd")
7104 "/run/setuid-programs/passwd"))
64c70430
KK
7105 (substitute* "panels/info/cc-info-overview-panel.c"
7106 (("DATADIR \"/gnome/gnome-version.xml\"")
7107 (string-append "\"" gnome-desktop
7108 "/share/gnome/gnome-version.xml\"")))
b645146f
SB
7109 #t))))))
7110 (native-inputs
7111 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
59dac026 7112 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
b645146f
SB
7113 ("intltool" ,intltool)
7114 ("pkg-config" ,pkg-config)
a6938bac
KK
7115 ("xsltproc" ,libxslt)
7116 ;; For tests
7117 ("hicolor-icon-theme" ,hicolor-icon-theme)
7118 ("python-dbusmock" ,python-dbusmock)
7119 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7120 (inputs
7121 `(("accountsservice" ,accountsservice)
7122 ("clutter-gtk" ,clutter-gtk)
7123 ("colord-gtk" ,colord-gtk)
7124 ("cups" ,cups)
7125 ("dconf" ,dconf)
7126 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7127 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7128 ("gnome-bluetooth" ,gnome-bluetooth)
7129 ("gnome-desktop" ,gnome-desktop)
7130 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7131 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7132 ("gnome-session" ,gnome-session)
b645146f
SB
7133 ("gnome-settings-daemon" ,gnome-settings-daemon)
7134 ("grilo" ,grilo)
a6938bac 7135 ("gsound" ,gsound)
b645146f
SB
7136 ("ibus" ,ibus)
7137 ("libcanberra" ,libcanberra)
1df38cfc 7138 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7139 ("libgudev" ,libgudev)
7140 ("libgtop" ,libgtop)
7141 ("libpwquality" ,libpwquality)
982c0b36 7142 ("libsecret" ,libsecret)
b645146f
SB
7143 ("libsoup" ,libsoup)
7144 ("libxml2" ,libxml2)
7145 ("libwacom" ,libwacom)
7146 ("mesa" ,mesa)
7147 ("mit-krb5" ,mit-krb5)
7148 ("modem-manager" ,modem-manager)
7149 ("network-manager-applet" ,network-manager-applet)
7150 ("polkit" ,polkit)
7151 ("pulseaudio" ,pulseaudio)
7152 ("smbclient" ,samba)
7153 ("tzdata" ,tzdata)
982c0b36 7154 ("udisks" ,udisks)
b645146f
SB
7155 ("upower" ,upower)))
7156 (synopsis "Utilities to configure the GNOME desktop")
7157 (home-page "https://www.gnome.org/")
7158 (description
7159 "This package contains configuration applets for the GNOME desktop,
7160allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7161properties, sound setup, desktop theme and background, user interface
7162properties, screen resolution, and other GNOME parameters.")
7163 (license license:gpl2+)))
a4df5756
SB
7164
7165(define-public gnome-shell
7166 (package
7167 (name "gnome-shell")
d5e615ca 7168 (version "3.32.2")
a4df5756
SB
7169 (source (origin
7170 (method url-fetch)
7171 (uri (string-append "mirror://gnome/sources/" name "/"
7172 (version-major+minor version) "/"
7173 name "-" version ".tar.xz"))
7174 (sha256
7175 (base32
d5e615ca 7176 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
a76d0f03
LC
7177 (patches (search-patches "gnome-shell-theme.patch"))
7178 (modules '((guix build utils)))
7179 (snippet
7180 #~(begin
a76d0f03
LC
7181 ;; Copy images for use on the GDM log-in screen.
7182 (copy-file #$(file-append %artwork-repository
7183 "/slim/0.x/background.png")
7184 "data/theme/guix-background.png")
45fef894
LC
7185 (copy-file #$(file-append %artwork-repository
7186 "/logo/Guix-horizontal-white.svg")
7187 "data/theme/guix-logo.svg")
a76d0f03 7188 #t))))
2b0c755d 7189 (build-system meson-build-system)
a4df5756 7190 (arguments
08185081
MB
7191 `(#:glib-or-gtk? #t
7192 #:disallowed-references ((,glib "bin")
11e1df56
LC
7193 ,inkscape ,libxslt
7194 ,ruby-sass)
2b0c755d
RW
7195 #:configure-flags
7196 (list "-Dsystemd=false"
7197 ;; Otherwise, the RUNPATH will lack the final path component.
7198 (string-append "-Dc_link_args=-Wl,-rpath="
7199 (assoc-ref %outputs "out")
7200 "/lib/gnome-shell"))
11e1df56 7201
08185081 7202 #:modules ((guix build meson-build-system)
11e1df56
LC
7203 (guix build utils)
7204 (srfi srfi-1))
7205
2b0c755d 7206 #:phases
a4df5756 7207 (modify-phases %standard-phases
2b0c755d 7208 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7209 (lambda* (#:key outputs #:allow-other-keys)
7210 (let* ((out (assoc-ref outputs "out"))
7211 (keysdir (string-append
7212 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7213 (substitute* "meson.build"
7214 (("keysdir =.*")
7215 (string-append "keysdir = '" keysdir "'\n")))
7216 #t)))
ebfe259f
MB
7217 (add-before 'configure 'convert-logo-to-png
7218 (lambda* (#:key inputs #:allow-other-keys)
7219 ;; Convert the logo from SVG to PNG.
7220 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7221 "data/theme/guix-logo.svg")))
ba00235a 7222 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7223 (lambda* (#:key inputs #:allow-other-keys)
7224 (substitute* "js/misc/ibusManager.js"
7225 (("'ibus-daemon'")
7226 (string-append "'" (assoc-ref inputs "ibus")
7227 "/bin/ibus-daemon'")))
d6fda4d3
LC
7228 (substitute* "js/ui/status/keyboard.js"
7229 (("'gkbd-keyboard-display'")
7230 (string-append "'" (assoc-ref inputs "libgnomekbd")
7231 "/bin/gkbd-keyboard-display'")))
2472cdec 7232 #t))
2b0c755d
RW
7233 (add-before 'check 'pre-check
7234 (lambda* (#:key inputs #:allow-other-keys)
7235 ;; Tests require a running X server.
7236 (system "Xvfb :1 &")
7237 (setenv "DISPLAY" ":1")
7238 #t))
7239 (add-after 'install 'wrap-programs
7240 (lambda* (#:key inputs outputs #:allow-other-keys)
7241 (let ((out (assoc-ref outputs "out"))
7242 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7243 (python-path (getenv "PYTHONPATH")))
7244 (wrap-program (string-append out "/bin/gnome-shell")
7245 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7246 ;; FIXME: gnome-shell loads these libraries with unqualified
7247 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7248 ;; alternative might be to patch gnome-shell.
7249 `("LD_LIBRARY_PATH" ":" prefix
7250 ,(map (lambda (pkg)
7251 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7252 '("gdk-pixbuf"
7253 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7254 (for-each
7255 (lambda (prog)
7256 (wrap-program (string-append out "/bin/" prog)
7257 `("PYTHONPATH" ":" prefix (,python-path))
7258 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7259 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7260 #t)))
11e1df56
LC
7261 (replace 'glib-or-gtk-wrap
7262 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7263 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7264 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7265 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7266 ;; phase. Fix that since we don't need these.
7267 (wrap #:inputs (fold alist-delete inputs
7268 '("inkscape" "intltool" "glib:bin"))
7269 #:outputs outputs)))))))
a4df5756
SB
7270 (native-inputs
7271 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7272 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7273 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7274 ("inkscape" ,inkscape)
a4df5756
SB
7275 ("intltool" ,intltool)
7276 ("pkg-config" ,pkg-config)
7277 ("python" ,python)
2b0c755d
RW
7278 ("ruby-sass" ,ruby-sass)
7279 ("sassc" ,sassc)
a76d0f03 7280 ("xsltproc" ,libxslt)
2b0c755d 7281 ;; For tests
0b4504f6 7282 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7283 (inputs
7284 `(("accountsservice" ,accountsservice)
7285 ("caribou" ,caribou)
7286 ("docbook-xsl" ,docbook-xsl)
7287 ("evolution-data-server" ,evolution-data-server)
7288 ("gcr" ,gcr)
7289 ("gdm" ,gdm)
c5db31d4 7290 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756
SB
7291 ("gjs" ,gjs)
7292 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7293 ("gnome-desktop" ,gnome-desktop)
7294 ("gnome-settings-daemon" ,gnome-settings-daemon)
7295 ("gst-plugins-base" ,gst-plugins-base)
7296 ("ibus" ,ibus)
7297 ("libcanberra" ,libcanberra)
7298 ("libcroco" ,libcroco)
d6fda4d3 7299 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
7300 ("libgweather" ,libgweather)
7301 ("libsoup" ,libsoup)
7302 ("mesa-headers" ,mesa-headers)
7303 ("mutter" ,mutter)
7304 ("network-manager-applet" ,network-manager-applet)
7305 ("polkit" ,polkit)
7306 ("pulseaudio" ,pulseaudio)
7307 ("python-pygobject" ,python-pygobject)
7308 ("startup-notification" ,startup-notification)
7309 ("telepathy-logger" ,telepathy-logger)
7310 ("upower" ,upower)
30e760f0
MB
7311 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7312 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7313 ("librsvg" ,librsvg)
2b0c755d 7314 ("geoclue" ,geoclue)))
a4df5756
SB
7315 (synopsis "Desktop shell for GNOME")
7316 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7317 (description
7318 "GNOME Shell provides core user interface functions for the GNOME desktop,
7319like switching to windows and launching applications.")
7320 (license license:gpl2+)))
c3f29bc9
RS
7321
7322(define-public gtk-vnc
7323 (package
7324 (name "gtk-vnc")
965ff023 7325 (version "0.9.0")
c3f29bc9
RS
7326 (source
7327 (origin
7328 (method url-fetch)
7329 (uri (string-append "mirror://gnome/sources/" name "/"
7330 (version-major+minor version) "/"
7331 name "-" version ".tar.xz"))
7332 (sha256
7333 (base32
965ff023 7334 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7335 (build-system gnu-build-system)
7336 (arguments
7337 '(#:configure-flags '("--with-gtk=3.0")))
7338 (propagated-inputs
7339 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7340 (inputs
7341 `(("cyrus-sasl" ,cyrus-sasl)
7342 ("gnutls" ,gnutls)
7343 ("libgcrypt" ,libgcrypt)
7344 ("pulseaudio" ,pulseaudio)))
7345 (native-inputs
7346 `(("glib:bin" ,glib "bin")
7347 ("gobject-introspection" ,gobject-introspection)
7348 ("intltool" ,intltool)
7349 ("pkg-config" ,pkg-config)
2f17e939 7350 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7351 ("vala" ,vala)))
7352 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7353 (synopsis "VNC viewer widget for GTK+")
7354 (description
7355 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7356applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7357GTK-VNC implements client side RFB protocol and authentication extensions such
7358as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7359 (license license:lgpl2.1+)))
8b877545 7360
dc69fe18
MW
7361(define-public gnome-autoar
7362 (package
7363 (name "gnome-autoar")
c7da8510 7364 (version "0.2.3")
dc69fe18
MW
7365 (source (origin
7366 (method url-fetch)
7367 (uri (string-append "mirror://gnome/sources/" name "/"
7368 (version-major+minor version) "/"
7369 name "-" version ".tar.xz"))
7370 (sha256
7371 (base32
c7da8510 7372 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
dc69fe18
MW
7373 (build-system glib-or-gtk-build-system)
7374 (native-inputs
7375 `(("gnome-common" ,gnome-common)
7376 ("gobject-introspection" ,gobject-introspection)
7377 ("pkg-config" ,pkg-config)))
7378 (propagated-inputs
7379 `(("libarchive" ,libarchive))) ; XXX document why
7380 (inputs
0a6e9e13 7381 `(("gtk+" ,gtk+)))
dc69fe18
MW
7382 (synopsis "Archives integration support for GNOME")
7383 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7384 (description
7385 "GNOME Autoar is a library which makes creating and extracting archives
7386easy, safe, and automatic.")
7387 (license license:lgpl2.1+)))
7388
b64e217f
MW
7389(define-public tracker
7390 (package
7391 (name "tracker")
5ada561c 7392 (version "2.2.2")
b64e217f
MW
7393 (source (origin
7394 (method url-fetch)
b5b0fd23 7395 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7396 (version-major+minor version) "/"
b5b0fd23 7397 "tracker-" version ".tar.xz"))
b64e217f
MW
7398 (sha256
7399 (base32
5ada561c
KK
7400 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
7401 (build-system meson-build-system)
c8bdf589 7402 (arguments
5ada561c
KK
7403 `(#:glib-or-gtk? #t
7404 #:configure-flags
7405 ;; Otherwise, the RUNPATH will lack the final path component.
7406 (list (string-append "-Dc_link_args=-Wl,-rpath="
7407 (assoc-ref %outputs "out") "/lib:"
7408 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7409 #:phases
c8bdf589
RW
7410 (modify-phases %standard-phases
7411 (add-after 'unpack 'disable-broken-tests
7412 (lambda _
c8bdf589
RW
7413 ;; These fail because the SPARQL backend could not be loaded.
7414 ;; That's because /etc/machine-id is missing, but
7415 ;; DBUS_FATAL_WARNINGS does not help here.
5ada561c
KK
7416 (substitute* "tests/libtracker-sparql/meson.build"
7417 (("'sparql',") ""))
7418 (substitute* "tests/tracker-steroids/meson.build"
7419 (("test\\(.*") ""))
c8bdf589
RW
7420 #t))
7421 ;; Two tests fail if LANG is not set.
7422 (add-before 'check 'pre-check
7423 (lambda _
7424 (setenv "LANG" "en_US.UTF-8")
7425 ;; For the missing /etc/machine-id.
7426 (setenv "DBUS_FATAL_WARNINGS" "0")
7427 #t)))))
b64e217f 7428 (native-inputs
5ada561c
KK
7429 `(("glib:bin" ,glib "bin")
7430 ("gnome-common" ,gnome-common)
b64e217f 7431 ("gobject-introspection" ,gobject-introspection)
5ada561c 7432 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7433 ("intltool" ,intltool)
7434 ("pkg-config" ,pkg-config)
7435 ("vala" ,vala)))
7436 (inputs
7437 `(("gtk+" ,gtk+)
7438 ("dbus" ,dbus)
44ed6284 7439 ("sqlite" ,sqlite)
c8bdf589 7440 ("python" ,python)
b64e217f 7441 ("poppler" ,poppler)
b64e217f
MW
7442 ("libpng" ,libpng)
7443 ("libtiff" ,libtiff)
b64e217f 7444 ("zlib" ,zlib)
b64e217f 7445 ("libxml2" ,libxml2)
b64e217f 7446 ("libunistring" ,libunistring)
0ef48cd9 7447 ("json-glib" ,json-glib)
b64e217f 7448 ("openjpeg" ,openjpeg-1)
b64e217f 7449 ("libseccomp" ,libseccomp)
0ef48cd9 7450 ("libsoup" ,libsoup)
bb93042c 7451 ("libuuid" ,util-linux "lib")
5ada561c 7452 ("network-manager" ,network-manager)))
b64e217f
MW
7453 (synopsis "Metadata database, indexer and search tool")
7454 (home-page "https://wiki.gnome.org/Projects/Tracker")
7455 (description
7456 "Tracker is an advanced framework for first class objects with associated
7457metadata and tags. It provides a one stop solution for all metadata, tags,
7458shared object databases, search tools and indexing.")
7459 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7460 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7461 (license (list license:gpl2+
7462 license:lgpl2.1+
7463 license:lgpl2.0+))))
7464
03be9874
KK
7465(define-public tracker-miners
7466 (package
7467 (name "tracker-miners")
7468 (version "2.2.2")
7469 (source (origin
7470 (method url-fetch)
7471 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7472 (version-major+minor version)
7473 "/tracker-miners-" version ".tar.xz"))
7474 (sha256
7475 (base32
7476 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
7477 (build-system meson-build-system)
7478 (arguments
7479 `(#:glib-or-gtk? #t
7480 #:configure-flags
7481 (list "-Dminer_rss=false" ; libgrss is required.
7482 ;; Ensure the RUNPATH contains all installed library locations.
7483 (string-append "-Dc_link_args=-Wl,-rpath="
7484 (assoc-ref %outputs "out")
7485 "/lib/tracker-miners-2.0")
7486 ;; TODO: Enable functional tests. Currently, the following error
7487 ;; appears:
7488 ;; Exception: The functional tests require DConf to be the default
7489 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7490 "-Dfunctional_tests=false")))
7491 (native-inputs
7492 `(("dbus" ,dbus)
7493 ("intltool" ,intltool)
7494 ("glib:bin" ,glib "bin")
7495 ("gobject-introspection" ,gobject-introspection)
7496 ("pkg-config" ,pkg-config)
7497 ("python-pygobject" ,python-pygobject)))
7498 (inputs
7499 `(("exempi" ,exempi)
7500 ("ffmpeg" ,ffmpeg)
7501 ("flac" ,flac)
7502 ("giflib" ,giflib)
7503 ("glib" ,glib)
7504 ("gstreamer" ,gstreamer)
7505 ("icu4c" ,icu4c)
7506 ("libcue" ,libcue)
7507 ("libexif" ,libexif)
7508 ("libgsf" ,libgsf)
7509 ("libgxps" ,libgxps)
7510 ("libiptcdata" ,libiptcdata)
4bd428a7 7511 ("libjpeg" ,libjpeg-turbo)
03be9874
KK
7512 ("libosinfo" ,libosinfo)
7513 ("libpng" ,libpng)
7514 ("libseccomp" ,libseccomp)
7515 ("libtiff" ,libtiff)
7516 ("libvorbis" ,libvorbis)
7517 ("libxml2" ,libxml2)
7518 ("poppler" ,poppler)
7519 ("taglib" ,taglib)
7520 ("totem-pl-parser" ,totem-pl-parser)
7521 ("tracker" ,tracker)
7522 ("upower" ,upower)
7523 ("zlib" ,zlib)))
b64e217f
MW
7524 (synopsis "Metadata database, indexer and search tool")
7525 (home-page "https://wiki.gnome.org/Projects/Tracker")
7526 (description
7527 "Tracker is an advanced framework for first class objects with associated
7528metadata and tags. It provides a one stop solution for all metadata, tags,
7529shared object databases, search tools and indexing.")
7530 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7531 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7532 (license (list license:gpl2+
7533 license:lgpl2.1+
7534 license:lgpl2.0+))))
7535
8b877545
RS
7536(define-public nautilus
7537 (package
7538 (name "nautilus")
d682c599 7539 (version "3.32.3")
8b877545
RS
7540 (source (origin
7541 (method url-fetch)
7542 (uri (string-append "mirror://gnome/sources/" name "/"
7543 (version-major+minor version) "/"
7544 name "-" version ".tar.xz"))
7545 (sha256
7546 (base32
d682c599 7547 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
35e2d0cf 7548 (build-system meson-build-system)
8b877545 7549 (arguments
35e2d0cf 7550 '(#:glib-or-gtk? #t
8b877545
RS
7551 ;; XXX: FAIL: check-nautilus
7552 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7553 #:tests? #f))
7554 (native-inputs
35e2d0cf
R
7555 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7556 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7557 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8b877545
RS
7558 ("gobject-introspection" ,gobject-introspection)
7559 ("intltool" ,intltool)
7560 ("pkg-config" ,pkg-config)))
8b877545 7561 (inputs
8b877545 7562 `(("dconf" ,dconf)
caf6c363 7563 ("gexiv2" ,gexiv2)
dd05e731 7564 ("gvfs" ,gvfs)
8b877545
RS
7565 ("exempi" ,exempi)
7566 ("gnome-desktop" ,gnome-desktop)
09d88905 7567 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7568 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7569 ("libseccomp" ,libseccomp)
35e2d0cf 7570 ("libselinux" ,libselinux)
09d88905 7571 ("tracker" ,tracker)
3cafb9d4 7572 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7573 ;; XXX: gtk+ is required by libnautilus-extension.pc
7574 ;;
7575 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7576 ;; package. See:
7577 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7578 ("gtk+" ,gtk+)
8b877545
RS
7579 ("libexif" ,libexif)
7580 ("libxml2" ,libxml2)))
7581 (synopsis "File manager for GNOME")
7582 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7583 (description
7584 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7585design and behaviour, giving the user a simple way to navigate and manage its
7586files.")
7587 (license license:gpl2+)))
3c697ffd
JR
7588
7589(define-public baobab
7590 (package
7591 (name "baobab")
e0c5f20c 7592 (version "3.32.0")
3c697ffd
JR
7593 (source (origin
7594 (method url-fetch)
7595 (uri (string-append
7596 "mirror://gnome/sources/" name "/"
7597 (version-major+minor version) "/"
7598 name "-" version ".tar.xz"))
7599 (sha256
7600 (base32
e0c5f20c 7601 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7602 (build-system meson-build-system)
7603 (arguments
7604 '(#:glib-or-gtk? #t))
3c697ffd
JR
7605 (native-inputs
7606 `(("intltool" ,intltool)
7607 ("pkg-config" ,pkg-config)
d233d373
RJ
7608 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7609 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7610 ("itstool" ,itstool)
7611 ("xmllint" ,libxml2)
7612 ("glib" ,glib "bin")
7613 ("vala" ,vala)))
7614 (inputs
7615 `(("gtk+" ,gtk+)))
7616 (synopsis "Disk usage analyzer for GNOME")
7617 (description
7618 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7619usage in the GNOME desktop environment. It can easily scan device volumes or
7620a specific user-requested directory branch (local or remote). Once the scan
7621is complete it provides a graphical representation of each selected folder.")
7622 (home-page "https://wiki.gnome.org/Apps/Baobab")
7623 (license license:gpl2+)))
dc050251 7624
fdba447c
RS
7625(define-public gnome-backgrounds
7626 (package
7627 (name "gnome-backgrounds")
e04e8a8c 7628 (version "3.32.0")
fdba447c
RS
7629 (source
7630 (origin
7631 (method url-fetch)
7632 (uri (string-append "mirror://gnome/sources/" name "/"
7633 (version-major+minor version) "/"
7634 name "-" version ".tar.xz"))
7635 (sha256
7636 (base32
e04e8a8c 7637 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
9ca381f0 7638 (build-system meson-build-system)
fdba447c
RS
7639 (native-inputs
7640 `(("intltool" ,intltool)))
e04e8a8c 7641 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7642 (synopsis "Background images for the GNOME desktop")
7643 (description
7644 "GNOME backgrounds package contains a collection of graphics files which
7645can be used as backgrounds in the GNOME Desktop environment. Additionally,
7646the package creates the proper framework and directory structure so that you
7647can add your own files to the collection.")
7648 (license (list license:gpl2+
7649 license:cc-by2.0
7650 license:cc-by-sa2.0
7651 license:cc-by-sa3.0))))
7652
b784b1a9
RS
7653(define-public gnome-screenshot
7654 (package
7655 (name "gnome-screenshot")
6acf4033 7656 (version "3.32.0")
b784b1a9
RS
7657 (source
7658 (origin
7659 (method url-fetch)
7660 (uri (string-append "mirror://gnome/sources/" name "/"
7661 (version-major+minor version) "/"
7662 name "-" version ".tar.xz"))
7663 (sha256
7664 (base32
6acf4033 7665 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
8356aefa 7666 (build-system meson-build-system)
b784b1a9
RS
7667 (native-inputs
7668 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa
RW
7669 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7670 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7671 ("intltool" ,intltool)
8356aefa 7672 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7673 ("pkg-config" ,pkg-config)))
7674 (inputs
7675 `(("gtk+" ,gtk+)
7676 ("libcanberra" ,libcanberra)
7677 ("libx11" ,libx11)
7678 ("libxext" ,libxext)))
676e7cb4 7679 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7680 (synopsis "Take pictures of your screen")
7681 (description
7682 "GNOME Screenshot is a utility used for taking screenshots of the entire
7683screen, a window or a user defined area of the screen, with optional
7684beautifying border effects.")
7685 (license license:gpl2+)))
7686
66d59111
RS
7687(define-public dconf-editor
7688 (package
7689 (name "dconf-editor")
66261451 7690 (version "3.32.0")
66d59111
RS
7691 (source
7692 (origin
7693 (method url-fetch)
7694 (uri (string-append "mirror://gnome/sources/" name "/"
7695 (version-major+minor version) "/"
7696 name "-" version ".tar.xz"))
7697 (sha256
7698 (base32
66261451 7699 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
294ff39d 7700 (build-system meson-build-system)
86f2124b
LC
7701 (arguments
7702 '(#:phases (modify-phases %standard-phases
7703 (add-before 'configure 'set-glib-minimum-version
7704 (lambda _
7705 ;; Change the minimum required GLib version so that
7706 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7707 ;; do that, it complains that "55" is not an even
7708 ;; number. See <https://bugs.gnu.org/37503>.
7709 (substitute* "editor/meson.build"
7710 (("2\\.55\\.1") "2.60.0"))
7711 #t)))))
66d59111
RS
7712 (native-inputs
7713 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7714 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7715 ("intltool" ,intltool)
294ff39d
RW
7716 ("pkg-config" ,pkg-config)
7717 ("vala" ,vala)))
66d59111
RS
7718 (inputs
7719 `(("dconf" ,dconf)
7720 ("gtk+" ,gtk+)
7721 ("libxml2" ,libxml2)))
7722 (home-page "https://git.gnome.org/browse/dconf-editor")
7723 (synopsis "Graphical editor for GNOME's dconf configuration system")
7724 (description
7725 "Dconf-editor is a graphical tool for browsing and editing the dconf
7726configuration system for GNOME. It allows users to configure desktop
7727software that do not provide their own configuration interface.")
7728 (license license:lgpl2.1+)))
7729
96d36f38
AW
7730(define-public gnome-default-applications
7731 (package
7732 (name "gnome-default-applications")
7733 (version "0")
7734 (build-system trivial-build-system)
7735 (source #f)
7736 (propagated-inputs
8ad4f0aa
LC
7737 `(("nautilus" ,nautilus)
7738 ("evince" ,evince)))
96d36f38
AW
7739 (arguments
7740 `(#:modules ((guix build utils))
7741 #:builder
7742 (begin
7743 (use-modules (guix build utils))
7744 (let* ((out (assoc-ref %outputs "out"))
7745 (apps (string-append out "/share/applications")))
7746 (mkdir-p apps)
7747 (call-with-output-file (string-append apps "/defaults.list")
7748 (lambda (port)
7749 (format port "[Default Applications]\n")
8ad4f0aa
LC
7750 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7751 (format port "application/pdf=evince.desktop\n")
7752 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7753 #t))))
7754 (synopsis "Default MIME type associations for the GNOME desktop")
7755 (description
7756 "Given many installed packages which might handle a given MIME type, a
7757user running the GNOME desktop probably has some preferences: for example,
7758that folders be opened by default by the Nautilus file manager, not the Baobab
7759disk usage analyzer. This package establishes that set of default MIME type
7760associations for GNOME.")
7761 (license license:gpl3+)
7762 (home-page #f)))
7763
3f1ed953
RG
7764(define-public libgovirt
7765 (package
7766 (name "libgovirt")
7767 (version "0.3.6")
7768 (source (origin
7769 (method url-fetch)
7770 (uri (string-append "mirror://gnome/sources/" name "/"
7771 (version-major+minor version) "/"
7772 name "-" version ".tar.xz"))
7773 (sha256
7774 (base32
7775 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7776 (build-system glib-or-gtk-build-system)
7777 (native-inputs
7778 `(("gettext" ,gettext-minimal)
7779 ("glib:bin" ,glib "bin")
7780 ("gobject-introspection" ,gobject-introspection)
7781 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7782 ("gtk+:bin" ,gtk+ "bin")
7783 ("pkg-config" ,pkg-config)))
7784 (inputs
7785 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7786 ("librest" ,rest)))
7787 (synopsis "GoVirt Library")
7788 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7789 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7790 (license license:gpl2+)))
7791
8672e5e9
RG
7792(define-public gnome-weather
7793 (package
7794 (name "gnome-weather")
7795 (version "3.34.0")
7796 (source (origin
7797 (method url-fetch)
7798 (uri (string-append "mirror://gnome/sources/" name "/"
7799 (version-major+minor version) "/"
7800 name "-" version ".tar.xz"))
7801 (sha256
7802 (base32
7803 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7804 (build-system meson-build-system)
7805 (native-inputs
7806 `(("gettext" ,gettext-minimal)
7807 ("glib:bin" ,glib "bin")
7808 ("gobject-introspection" ,gobject-introspection)
7809 ("gtk+:bin" ,gtk+ "bin")
7810 ("pkg-config" ,pkg-config)))
7811 (inputs
7812 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7813 ("appstream-glib" ,appstream-glib)
7814 ("geoclue" ,geoclue)
7815 ("gdk-pixbuf" ,gdk-pixbuf)
7816 ("gjs" ,gjs)
7817 ("gnome-desktop" ,gnome-desktop)
7818 ("libgweather" ,libgweather)))
7819 (synopsis "Weather monitoring for GNOME desktop")
7820 (description "GNOME Weather is a small application that allows you to
7821monitor the current weather conditions for your city, or anywhere in the
7822world.")
7823 (home-page "https://wiki.gnome.org/Apps/Weather")
7824 (license license:gpl2+)))
7825
dc050251
SB
7826(define-public gnome
7827 (package
7828 (name "gnome")
7829 (version (package-version gnome-shell))
7830 (source #f)
7831 (build-system trivial-build-system)
e3cfef22 7832 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7833 (propagated-inputs
8d8c6bff 7834 ;; TODO: Add or remove packages according to:
a8cda7f5 7835 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7836 `(
8d8c6bff 7837 ;; GNOME-Core-OS-Services
7922b6f7 7838 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7839 ("network-manager" ,network-manager)
7840 ("packagekit" ,packagekit)
7841 ("upower" ,upower)
7842 ;; GNOME-Core-Shell
7843 ("adwaita-icon-theme" ,adwaita-icon-theme)
7844 ("gdm" ,gdm)
7845 ("glib-networking" ,glib-networking)
7846 ("gnome-backgrounds" ,gnome-backgrounds)
7847 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7848 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
7849 ("gnome-control-center" ,gnome-control-center)
7850 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7851 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
d36fa50f 7852 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 7853 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7854 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7855 ("gnome-session" ,gnome-session)
7856 ("gnome-settings-daemon" ,gnome-settings-daemon)
7857 ("gnome-shell-extensions" ,gnome-shell-extensions)
7858 ("gnome-shell" ,gnome-shell)
7859 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7860 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 7861 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 7862 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7863 ("gvfs" ,gvfs)
7864 ("mutter" ,mutter)
7865 ("orca" ,orca)
d36fa50f
RG
7866 ("rygel" ,rygel)
7867 ("sushi" ,sushi)
8d8c6bff
RG
7868 ;; GNOME-Core-Utilities
7869 ("baobab" ,baobab)
7870 ("cheese" ,cheese)
7871 ("eog" ,eog)
7872 ("epiphany" ,epiphany)
7873 ("evince" ,evince)
7874 ("file-roller" ,file-roller)
7875 ("gedit" ,gedit)
d36fa50f 7876 ; TODO: ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
7877 ("gnome-calculator" ,gnome-calculator)
7878 ("gnome-calendar" ,gnome-calendar)
7879 ("gnome-characters" ,gnome-characters)
7880 ("gnome-clocks" ,gnome-clocks)
7881 ("gnome-contacts" ,gnome-contacts)
7882 ("gnome-disk-utility" ,gnome-disk-utility)
7883 ("gnome-font-viewer" ,gnome-font-viewer)
7884 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
7885 ; TODO: ("gnome-music" ,gnome-music)
7886 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
7887 ("gnome-screenshot" ,gnome-screenshot)
7888 ("gnome-system-monitor" ,gnome-system-monitor)
7889 ("gnome-terminal" ,gnome-terminal)
d36fa50f 7890 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
7891 ("nautilus" ,nautilus)
7892 ("simple-scan" ,simple-scan)
7893 ("totem" ,totem)
7922b6f7
RG
7894 ("yelp" ,yelp)
7895 ;; Others
7896 ("hicolor-icon-theme" ,hicolor-icon-theme)
7897 ("gnome-online-accounts" ,gnome-online-accounts)))
fe4e698d 7898 (synopsis "The GNU desktop environment")
dc050251
SB
7899 (home-page "https://www.gnome.org/")
7900 (description
fe4e698d
LC
7901 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7902applications for browsing the web, editing text and images, creating
7903documents and diagrams, playing media, scanning, and much more.")
dc050251 7904 (license license:gpl2+)))
4a526711
DT
7905
7906(define-public byzanz
7907 ;; The last stable release of Byzanz was in 2011, but there have been many
7908 ;; useful commits made to the Byzanz repository since then that it would be
7909 ;; silly to use such an old release.
7910 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7911 (package
7912 (name "byzanz")
7913 (version (string-append "0.2-1." (string-take commit 7)))
7914 (source (origin
7915 (method git-fetch)
7916 (uri (git-reference
5f13bf09 7917 (url "https://git.gnome.org/browse/byzanz")
4a526711 7918 (commit commit)))
5a6527e4 7919 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7920 (sha256
7921 (base32
7922 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7923 (build-system glib-or-gtk-build-system)
7924 (arguments
7925 '(#:phases
7926 (modify-phases %standard-phases
189be331 7927 (replace 'bootstrap
4a526711
DT
7928 (lambda _
7929 ;; The build system cleverly detects that we're not building from
7930 ;; a release tarball and turns on -Werror for GCC.
7931 ;; Unsurprisingly, there is a warning during compilation that
7932 ;; causes the build to fail unnecessarily, so we remove the flag.
7933 (substitute* '("configure.ac")
7934 (("-Werror") ""))
7935 ;; The autogen.sh script in gnome-common will run ./configure
7936 ;; by default, which is problematic because source shebangs
7937 ;; have not yet been patched.
7938 (setenv "NOCONFIGURE" "t")
7939 (zero? (system* "sh" "autogen.sh")))))))
7940 (native-inputs
7941 `(("autoconf" ,autoconf)
7942 ("automake" ,automake)
7943 ("gnome-common" ,gnome-common)
7944 ("intltool" ,intltool)
7945 ("libtool" ,libtool)
7946 ("pkg-config" ,pkg-config)
7947 ("which" ,which)))
7948 (inputs
7949 `(("glib" ,glib)
7950 ("gstreamer" ,gstreamer)
7951 ("gst-plugins-base" ,gst-plugins-base)
7952 ("gtk+" ,gtk+)))
7953 (synopsis "Desktop recording program")
7954 (description "Byzanz is a simple desktop recording program with a
7955command-line interface. It can record part or all of an X display for a
7956specified duration and save it as a GIF encoded animated image file.")
7957 (home-page "https://git.gnome.org/browse/byzanz")
7958 (license license:gpl2+))))
3a9a4c51 7959
0ec171ec
MS
7960(define-public gsound
7961 (package
7962 (name "gsound")
7963 (version "1.0.2")
7964 (source (origin
7965 (method url-fetch)
7966 (uri (string-append "mirror://gnome/sources/" name "/"
7967 (version-major+minor version) "/"
7968 name "-" version ".tar.xz"))
7969 (sha256
7970 (base32
7971 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7972 (build-system glib-or-gtk-build-system)
7973 (native-inputs
7974 `(("pkg-config" ,pkg-config)
7975 ("gobject-introspection" ,gobject-introspection)
7976 ("vala" ,vala)))
7977 (inputs
7978 `(("glib" ,glib)
7979 ("libcanberra" ,libcanberra)))
7980 (home-page "https://wiki.gnome.org/Projects/GSound")
7981 (synopsis "GObject wrapper for libcanberra")
7982 (description
7983 "GSound is a small library for playing system sounds. It's designed to be
7984used via GObject Introspection, and is a thin wrapper around the libcanberra C
7985library.")
7986 (license license:lgpl2.1+)))
7987
3a9a4c51
RS
7988(define-public libzapojit
7989 (package
7990 (name "libzapojit")
7991 (version "0.0.3")
7992 (source (origin
7993 (method url-fetch)
7994 (uri (string-append "mirror://gnome/sources/" name "/"
7995 (version-major+minor version) "/"
7996 name "-" version ".tar.xz"))
7997 (sha256
7998 (base32
7999 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8000 (build-system gnu-build-system)
8001 (native-inputs
8002 `(("gobject-introspection" ,gobject-introspection)
8003 ("intltool" ,intltool)
8004 ("pkg-config" ,pkg-config)))
8005 (inputs
14c297fd 8006 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8007 ("json-glib" ,json-glib)
8008 ("rest" ,rest)))
8009 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8010 (synopsis "Library for accessing SkyDrive and Hotmail")
8011 (description
8012 "Libzapojit is a GLib-based library for accessing online service APIs of
8013Microsoft SkyDrive and Hotmail, using their REST protocols.")
8014 (license license:lgpl2.1+)))
9365ee1c 8015
60e2a9ae
MS
8016(define-public gnome-clocks
8017 (package
8018 (name "gnome-clocks")
c76d0dbc 8019 (version "3.32.0")
60e2a9ae
MS
8020 (source (origin
8021 (method url-fetch)
8022 (uri (string-append "mirror://gnome/sources/" name "/"
8023 (version-major+minor version) "/"
8024 name "-" version ".tar.xz"))
8025 (sha256
8026 (base32
c76d0dbc 8027 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
60e2a9ae
MS
8028 (build-system meson-build-system)
8029 (arguments
8030 '(#:glib-or-gtk? #t))
8031 (native-inputs
8032 `(("vala" ,vala)
8033 ("pkg-config" ,pkg-config)
8034 ("glib" ,glib "bin") ; for glib-compile-resources
8035 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8036 ("desktop-file-utils" ,desktop-file-utils)
8037 ("gettext" ,gettext-minimal)
8038 ("itstool" ,itstool)))
8039 (inputs
8040 `(("glib" ,glib)
8041 ("gtk+" ,gtk+)
8042 ("gsound" ,gsound)
8043 ("geoclue" ,geoclue)
8044 ("geocode-glib" ,geocode-glib)
8045 ("libgweather" ,libgweather)
8046 ("gnome-desktop" ,gnome-desktop)))
8047 (home-page "https://wiki.gnome.org/Apps/Clocks")
8048 (synopsis "GNOME's clock application")
8049 (description
8050 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8051desktop. It supports world clock, stop watch, alarms, and count down timer.")
8052 (license license:gpl3+)))
8053
3c474897
KY
8054(define-public gnome-calendar
8055 (package
8056 (name "gnome-calendar")
339b59bf 8057 (version "3.32.2")
3c474897
KY
8058 (source (origin
8059 (method url-fetch)
8060 (uri (string-append "mirror://gnome/sources/" name "/"
8061 (version-major+minor version) "/"
8062 name "-" version ".tar.xz"))
8063 (sha256
8064 (base32
339b59bf 8065 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
a49d3e37
MS
8066 (build-system meson-build-system)
8067 (arguments
8068 '(#:glib-or-gtk? #t
8069 ;; gnome-calendar has to be installed before the tests can be run
8070 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8071 #:tests? #f))
3c474897 8072 (native-inputs
a49d3e37
MS
8073 `(("gettext" ,gettext-minimal)
8074 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8075 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
3c474897
KY
8076 ("pkg-config" ,pkg-config)))
8077 (inputs
a49d3e37 8078 `(("evolution-data-server" ,evolution-data-server)
14c297fd 8079 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8080 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8081 ("libdazzle" ,libdazzle)
b63c06f1 8082 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8083 ("libgweather" ,libgweather)
8084 ("geoclue" ,geoclue)))
3c474897
KY
8085 (home-page "https://wiki.gnome.org/Apps/Calendar")
8086 (synopsis "GNOME's calendar application")
8087 (description
8088 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8089desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8090 (license license:gpl3+)))
8091
57b14665
MS
8092(define-public gnome-todo
8093 (package
8094 (name "gnome-todo")
9f3c6c88 8095 (version "3.28.1")
57b14665
MS
8096 (source (origin
8097 (method url-fetch)
8098 (uri (string-append "mirror://gnome/sources/" name "/"
8099 (version-major+minor version) "/"
8100 name "-" version ".tar.xz"))
8101 (sha256
8102 (base32
9f3c6c88 8103 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
57b14665
MS
8104 (build-system meson-build-system)
8105 (arguments
8106 '(#:glib-or-gtk? #t
8107 #:phases (modify-phases %standard-phases
8108 (add-after
8109 'install 'wrap-gnome-todo
8110 (lambda* (#:key inputs outputs #:allow-other-keys)
8111 (let ((out (assoc-ref outputs "out"))
8112 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8113 (python-path (getenv "PYTHONPATH")))
8114 (wrap-program (string-append out "/bin/gnome-todo")
8115 ;; XXX: gi plugins are broken.
8116 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8117 ;; For plugins.
8118 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8119 `("PYTHONPATH" ":" prefix (,python-path))))
8120 #t)))))
8121 (native-inputs
8122 `(("gettext" ,gettext-minimal)
8123 ("gobject-introspection" ,gobject-introspection)
8124 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8125 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8126 ("pkg-config" ,pkg-config)))
8127 (inputs
8128 `(("rest" ,rest) ; For Todoist plugin
8129 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8130 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8131 ("libical" ,libical)
8132 ("libpeas" ,libpeas)
8133 ("python-pygobject" ,python-pygobject)
8134 ("evolution-data-server" ,evolution-data-server)
14c297fd 8135 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8136 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8137 (home-page "https://wiki.gnome.org/Apps/Todo")
8138 (synopsis "GNOME's ToDo Application")
8139 (description
8140 "GNOME To Do is a simplistic personal task manager designed to perfectly
8141fit the GNOME desktop.")
8142 (license license:gpl3+)))
8143
ab179eaf
SB
8144(define-public gnome-dictionary
8145 (package
8146 (name "gnome-dictionary")
cf81ddef 8147 (version "3.26.1")
ab179eaf
SB
8148 (source (origin
8149 (method url-fetch)
8150 (uri (string-append "mirror://gnome/sources/" name "/"
8151 (version-major+minor version) "/"
8152 name "-" version ".tar.xz"))
8153 (sha256
8154 (base32
cf81ddef
LC
8155 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8156 (build-system meson-build-system)
2776b5d5
MB
8157 (arguments '(#:glib-or-gtk? #t
8158 #:phases (modify-phases %standard-phases
8159 (add-after 'unpack 'patch-install-script
8160 (lambda _
8161 ;; This script attempts to compile glib schemas
8162 ;; and create an empty MIME database. We do
8163 ;; that elsewhere, so prevent it from running.
8164 (substitute* "build-aux/post-install.sh"
8165 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8166 #t)))))
ab179eaf
SB
8167 (native-inputs
8168 `(("glib:bin" ,glib "bin")
8169 ("gobject-introspection" ,gobject-introspection)
8170 ("intltool" ,intltool)
8171 ("itstool" ,itstool)
8172 ("pkg-config" ,pkg-config)
8173 ("xmllint" ,libxml2)))
8174 (inputs
8175 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8176 ("gtk+" ,gtk+)))
8177 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8178 (synopsis "Look up words in dictionary sources")
8179 (description
8180 "GNOME Dictionary can look for the definition or translation of a word in
8181existing databases over the internet.")
8182 (license license:gpl3+)))
8183
d13f3a03 8184(define-public gnome-tweaks
9365ee1c 8185 (package
d13f3a03 8186 (name "gnome-tweaks")
652af676 8187 (version "3.32.0")
9365ee1c
JN
8188 (source (origin
8189 (method url-fetch)
d13f3a03 8190 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8191 (version-major+minor version) "/"
d13f3a03
RW
8192 "gnome-tweaks-" version ".tar.xz"))
8193 (patches
8194 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8195 (sha256
8196 (base32
652af676 8197 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
d13f3a03 8198 (build-system meson-build-system)
9365ee1c 8199 (arguments
d13f3a03
RW
8200 `(#:glib-or-gtk? #t
8201 #:configure-flags '("-Dlocalstatedir=/tmp"
8202 "-Dsysconfdir=/tmp")
9365ee1c 8203 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8204 ,@%meson-build-system-modules)
8205 #:phases
8206 (modify-phases %standard-phases
8207 (add-after 'install 'wrap
8208 (@@ (guix build python-build-system) wrap))
8209 (add-after 'wrap 'wrap-gi-typelib
8210 (lambda* (#:key inputs outputs #:allow-other-keys)
8211 (let ((out (assoc-ref outputs "out"))
8212 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8213 (wrap-program (string-append out "/bin/gnome-tweaks")
8214 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8215 #t)))))
9365ee1c 8216 (native-inputs
c7fc414e
RH
8217 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8218 ("intltool" ,intltool)
9365ee1c
JN
8219 ("pkg-config" ,pkg-config)))
8220 (inputs
c7fc414e
RH
8221 `(("gnome-desktop" ,gnome-desktop)
8222 ("gtk+" ,gtk+)
9365ee1c
JN
8223 ("gobject-introspection" ,gobject-introspection)
8224 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
c7fc414e
RH
8225 ("libnotify" ,libnotify)
8226 ("libsoup" ,libsoup)
8227 ("nautilus" ,nautilus)
8228 ("python" ,python)
8229 ("python-pygobject" ,python-pygobject)))
9365ee1c 8230 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8231 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8232 (description
d13f3a03 8233 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8234GNOME 3. This includes things like the fonts used in user interface elements,
8235alternative user interface themes, changes in window management behavior,
8236GNOME Shell appearance and extension, etc.")
8237 (license license:gpl3+)))
813f814a 8238
d13f3a03
RW
8239;; This package has been renamed by upstream.
8240(define-public gnome-tweak-tool
8241 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
8242
32ac717c
DT
8243(define-public gnome-shell-extensions
8244 (package
8245 (name "gnome-shell-extensions")
ae4c05e0 8246 (version "3.32.1")
32ac717c
DT
8247 (source (origin
8248 (method url-fetch)
8249 (uri (string-append "mirror://gnome/sources/" name "/"
8250 (version-major+minor version) "/"
8251 name "-" version ".tar.xz"))
8252 (sha256
8253 (base32
ae4c05e0 8254 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
100f625b 8255 (build-system meson-build-system)
32ac717c 8256 (arguments
100f625b 8257 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8258 (native-inputs
c9ea8873
LP
8259 `(("glib:bin" ,glib "bin")
8260 ("intltool" ,intltool)
32ac717c
DT
8261 ("pkg-config" ,pkg-config)))
8262 (propagated-inputs
c9ea8873 8263 `(("glib" ,glib)))
32ac717c
DT
8264 (synopsis "Extensions for GNOME Shell")
8265 (description "GNOME Shell extensions modify and extend GNOME Shell
8266functionality and behavior.")
8267 (home-page "https://extensions.gnome.org/")
8268 (license license:gpl3+)))
8269
813f814a
DT
8270(define-public arc-theme
8271 (package
8272 (name "arc-theme")
37781323 8273 (version "20190917")
813f814a 8274 (source (origin
a18f8eaf
BH
8275 (method git-fetch)
8276 (uri (git-reference
8277 (url "https://github.com/NicoHood/arc-theme.git")
8278 (commit version)))
8279 (file-name (git-file-name name version))
813f814a
DT
8280 (sha256
8281 (base32
37781323 8282 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8283 (build-system gnu-build-system)
d88884fa
EF
8284 (arguments
8285 '(#:phases
8286 (modify-phases %standard-phases
8287 ;; autogen.sh calls configure at the end of the script.
8288 (replace 'bootstrap
4690e3a4
MC
8289 (lambda _ (invoke "autoreconf" "-vfi")))
8290 (add-before 'build 'set-home ;placate Inkscape
8291 (lambda _
8292 (setenv "HOME" (getcwd))
8293 #t)))))
813f814a
DT
8294 (native-inputs
8295 `(("autoconf" ,autoconf)
8296 ("automake" ,automake)
a18f8eaf
BH
8297 ("glib" ,glib "bin") ; for glib-compile-resources
8298 ("gnome-shell" ,gnome-shell)
8299 ("gtk+" ,gtk+)
8300 ("inkscape" ,inkscape)
8301 ("optipng" ,optipng)
8302 ("pkg-config" ,pkg-config)
bed24ecf 8303 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8304 (synopsis "A flat GTK+ theme with transparent elements")
8305 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
83062, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8307like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8308 (home-page "https://github.com/horst3180/arc-theme")
8309 ;; No "or later" language found.
a18f8eaf 8310 (license license:gpl3+)))
9987c57c 8311
d935e6a1 8312(define-public faba-icon-theme
9987c57c 8313 (package
d935e6a1 8314 (name "faba-icon-theme")
2eee7ee3 8315 (version "4.3")
d935e6a1
BT
8316 (source
8317 (origin
757e4027
TGR
8318 (method git-fetch)
8319 (uri (git-reference
8320 (url "https://github.com/snwh/faba-icon-theme.git")
8321 (commit (string-append "v" version))))
8322 (file-name (git-file-name name version))
d935e6a1 8323 (sha256
757e4027 8324 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8325 (build-system meson-build-system)
9987c57c 8326 (arguments
82da291a 8327 `(#:phases
9987c57c 8328 (modify-phases %standard-phases
82da291a 8329 (add-before 'configure 'disable-post-install
9987c57c 8330 (lambda _
82da291a
JL
8331 (substitute* "meson.build"
8332 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8333 (native-inputs
8334 `(("autoconf" ,autoconf)
8335 ("automake" ,automake)))
d935e6a1
BT
8336 (synopsis "Faba icon theme")
8337 (description
8338 "Faba is a minimal icon set used as a basis for other themes such as
8339Moka")
8340 (home-page "https://snwh.org/moka")
8341 (license (list license:lgpl3+
8342 license:cc-by-sa4.0))))
8343
9987c57c
DT
8344(define-public moka-icon-theme
8345 (package
8b0e4177 8346 (inherit faba-icon-theme)
9987c57c 8347 (name "moka-icon-theme")
105a3625 8348 (version "5.4.0")
8c3f2170
TGR
8349 (source
8350 (origin
8351 (method git-fetch)
8352 (uri (git-reference
8353 (url "https://github.com/snwh/moka-icon-theme.git")
8354 (commit (string-append "v" version))))
8355 (file-name (git-file-name name version))
8356 (sha256
8357 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8358 (propagated-inputs
8359 ;; Moka is based on Faba by using it as a fallback icon set instead of
8360 ;; bundling it, so we need to add it as a propagated input.
8361 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8362 (synopsis "Moka icon theme")
8363 (description "Moka is a stylized desktop icon set, designed to be clear,
8364simple and consistent.")
fedde43b
BT
8365 (license (list license:gpl3+
8366 license:cc-by-sa4.0))))
6fd8f8d6
DT
8367
8368(define-public arc-icon-theme
8369 (package
8370 (name "arc-icon-theme")
c4180240 8371 (version "20161122")
bbf66cbf
TGR
8372 (source
8373 (origin
8374 (method git-fetch)
8375 (uri (git-reference
8376 (url "https://github.com/horst3180/arc-icon-theme.git")
8377 (commit version)))
8378 (file-name (git-file-name name version))
8379 (sha256
8380 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8381 (build-system gnu-build-system)
9e1ede95
JL
8382 (arguments
8383 `(#:phases
8384 (modify-phases %standard-phases
8385 (add-after 'unpack 'disable-configure-during-bootstrap
8386 (lambda _
8387 (substitute* "autogen.sh"
8388 (("^\"\\$srcdir/configure\".*") ""))
8389 #t)))))
6fd8f8d6
DT
8390 (native-inputs
8391 `(("autoconf" ,autoconf)
8392 ("automake" ,automake)))
8393 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8394 (propagated-inputs
8395 `(("moka-icon-theme" ,moka-icon-theme)))
8396 (synopsis "Arc icon theme")
8397 (description "The Arc icon theme provides a set of icons matching the
8398style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8399the Moka icon theme.")
8400 (home-page "https://github.com/horst3180/arc-icon-theme")
8401 (license license:gpl3+)))
6064a4e8
LF
8402
8403(define-public folks
8404 (package
8405 (name "folks")
d23495fa 8406 (version "0.11.4")
6064a4e8
LF
8407 (source (origin
8408 (method url-fetch)
8409 (uri (string-append
e5f4796e 8410 "mirror://gnome/sources/folks/"
6064a4e8 8411 (version-major+minor version) "/"
e5f4796e 8412 "folks-" version ".tar.xz"))
6064a4e8
LF
8413 (sha256
8414 (base32
d23495fa 8415 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
6064a4e8
LF
8416 (build-system glib-or-gtk-build-system)
8417 (inputs
8418 `(("bdb" ,bdb)
8419 ("dbus-glib" ,dbus-glib)
8420 ("evolution-data-server" ,evolution-data-server)
8421 ("glib" ,glib)
8422 ("libgee" ,libgee)
8423 ("telepathy-glib" ,telepathy-glib)))
8424 (native-inputs
8425 `(("gobject-introspection" ,gobject-introspection)
8426 ("intltool" ,intltool)
8427 ("pkg-config" ,pkg-config)
8428 ("vala" ,vala)))
8429 (synopsis "Library to aggregate data about people")
8430 (description "Libfolks is a library that aggregates information about people
8431from multiple sources (e.g., Telepathy connection managers for IM contacts,
8432Evolution Data Server for local contacts, libsocialweb for web service contacts,
8433etc.) to create metacontacts. It's written in Vala, which generates C code when
8434compiled.")
8435 (home-page "https://wiki.gnome.org/Projects/Folks")
8436 (license license:lgpl2.1+)))
01ea778f
LF
8437
8438(define-public gfbgraph
8439 (package
8440 (name "gfbgraph")
8441 (version "0.2.3")
8442 (source (origin
8443 (method url-fetch)
8444 (uri (string-append
237d4cf7 8445 "mirror://gnome/sources/gfbgraph/"
01ea778f 8446 (version-major+minor version) "/"
237d4cf7 8447 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8448 (sha256
8449 (base32
8450 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8451 (build-system glib-or-gtk-build-system)
8452 (arguments
8453 `(#:tests? #f ; Tests appear to require the network.
8454 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8455 #:configure-flags '("--disable-gtk-doc"
8456 "--disable-static"
8457 "--enable-introspection")))
8458 (native-inputs
8459 `(("pkg-config" ,pkg-config)
8460 ("gobject-introspection" ,gobject-introspection)))
8461 (inputs
8462 `(("json-glib" ,json-glib)
14c297fd 8463 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8464 ("rest" ,rest)))
8465 (synopsis "GLib/GObject wrapper for the Facebook API")
8466 (description "This library allows you to use the Facebook API from
8467GLib/GObject code.")
8468 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8469 (license license:lgpl2.1+)))
3920868c 8470
8471(define-public libgnomekbd
8472 (package
8473 (name "libgnomekbd")
70f2b0f9 8474 (version "3.26.1")
3920868c 8475 (source (origin
8476 (method url-fetch)
d47fa82d 8477 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8478 (version-major+minor version) "/"
d47fa82d 8479 "libgnomekbd-" version ".tar.xz"))
3920868c 8480 (sha256
8481 (base32
70f2b0f9 8482 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8483 (build-system gnu-build-system)
8484 (native-inputs
8485 `(("pkg-config" ,pkg-config)
8486 ("glib" ,glib "bin")
8487 ("intltool" ,intltool)))
8488 (propagated-inputs
8489 ;; Referred to in .h files and .pc.
8490 `(("glib" ,glib)
8491 ("gtk+" ,gtk+)
8492 ("libxklavier" ,libxklavier)))
8493 (home-page "https://www.gnome.org")
8494 (synopsis "GNOME keyboard configuration library")
8495 (description
8496 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8497environment, which can notably display keyboard layouts.")
8498 (license license:lgpl2.0+)))
85327d0d 8499
8500;;; This package is no longer maintained:
8501;;; https://wiki.gnome.org/Attic/LibUnique
8502;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8503;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8504(define-public libunique
8505 (package
8506 (name "libunique")
8507 (version "3.0.2")
8508 (source (origin
8509 (method url-fetch)
8510 (uri (string-append "mirror://gnome/sources/" name "/"
8511 (version-major+minor version) "/"
8512 name "-" version ".tar.xz"))
8513 (sha256
8514 (base32
8515 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8516 (build-system glib-or-gtk-build-system)
8517 (arguments
8518 `(#:configure-flags '("--disable-static"
8519 "--disable-dbus" ; use gdbus
8520 "--enable-introspection")))
8521 (native-inputs
8522 `(("pkg-config" ,pkg-config)
8523 ("gobject-introspection" ,gobject-introspection)
8524 ("glib:bin" ,glib "bin")
8525 ("gtk-doc" ,gtk-doc)))
8526 (propagated-inputs
8527 ;; Referred to in .h files and .pc.
8528 `(("gtk+" ,gtk+)))
8529 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8530 (synopsis "Library for writing single instance applications")
8531 (description
8532 "Libunique is a library for writing single instance applications. If you
8533launch a single instance application twice, the second instance will either just
8534quit or will send a message to the running instance. Libunique makes it easy to
8535write this kind of application, by providing a base class, taking care of all
8536the IPC machinery needed to send messages to a running instance, and also
8537handling the startup notification side.")
8538 (license license:lgpl2.1+)))
54021cd8
RS
8539
8540(define-public gnome-calculator
8541 (package
8542 (name "gnome-calculator")
4cb09502 8543 (version "3.34.1")
54021cd8
RS
8544 (source
8545 (origin
8546 (method url-fetch)
8547 (uri (string-append "mirror://gnome/sources/" name "/"
8548 (version-major+minor version) "/"
8549 name "-" version ".tar.xz"))
8550 (sha256
8551 (base32
4cb09502 8552 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
2d475910
RW
8553 (build-system meson-build-system)
8554 (arguments '(#:glib-or-gtk? #t))
54021cd8 8555 (native-inputs
4cb09502
MB
8556 `(("gettext" ,gettext-minimal)
8557 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8558 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8 8559 ("itstool" ,itstool)
2d475910 8560 ("vala" ,vala)
54021cd8
RS
8561 ("pkg-config" ,pkg-config)))
8562 (inputs
112e9083 8563 `(("glib" ,glib)
07ace641 8564 ("gtksourceview" ,gtksourceview)
4cb09502 8565 ("libgee" ,libgee)
54021cd8 8566 ("libsoup" ,libsoup)
112e9083 8567 ("libxml2" ,libxml2)
2c2da7ec 8568 ("mpc" ,mpc)
54021cd8
RS
8569 ("mpfr" ,mpfr)))
8570 (home-page "https://wiki.gnome.org/Apps/Calculator")
8571 (synopsis "Desktop calculator")
8572 (description
8573 "Calculator is an application that solves mathematical equations and
8574is suitable as a default application in a Desktop environment.")
8575 (license license:gpl3)))
0bd69759
RS
8576
8577(define-public xpad
8578 (package
8579 (name "xpad")
c85626bb 8580 (version "5.1.0")
0bd69759
RS
8581 (source
8582 (origin
8583 (method url-fetch)
08fda9c6
R
8584 (uri (string-append "https://launchpad.net/xpad/trunk/"
8585 version "/+download/"
0bd69759
RS
8586 name "-" version ".tar.bz2"))
8587 (sha256
8588 (base32
c85626bb 8589 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8590 (build-system gnu-build-system)
8591 (native-inputs
08fda9c6
R
8592 `(("autoconf" ,autoconf)
8593 ("automake" ,automake)
8594 ("gtk+:bin" ,gtk+ "bin")
8595 ("intltool" ,intltool)
0bd69759
RS
8596 ("pkg-config" ,pkg-config)))
8597 (inputs
c72647fb 8598 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8599 ("libsm" ,libsm)))
8600 (home-page "https://wiki.gnome.org/Apps/Xpad")
8601 (synopsis "Virtual sticky note")
8602 (description
8603 "Xpad is a sticky note that strives to be simple, fault tolerant,
8604and customizable. Xpad consists of independent pad windows, each is
8605basically a text box in which notes can be written.")
8606 (license license:gpl3+)))
3ad7dce1
RS
8607
8608(define-public gucharmap
c60063ea
RW
8609 (let ((unicode-files
8610 '(("Blocks.txt"
1f8b5515 8611 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8612 ("DerivedAge.txt"
1f8b5515 8613 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8614 ("NamesList.txt"
1f8b5515 8615 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8616 ("Scripts.txt"
1f8b5515 8617 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8618 ("UnicodeData.txt"
1f8b5515 8619 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8620 ("Unihan.zip"
1f8b5515 8621 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8622 (package
8623 (name "gucharmap")
1f8b5515 8624 (version "12.0.1")
c60063ea
RW
8625 (source
8626 (origin
8627 (method url-fetch)
8628 (uri (string-append "mirror://gnome/sources/" name "/"
8629 (version-major+minor version) "/"
8630 name "-" version ".tar.xz"))
8631 (sha256
8632 (base32
1f8b5515 8633 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8634 (build-system glib-or-gtk-build-system)
8635 (arguments
8636 `(#:modules ((ice-9 match)
8637 (guix build glib-or-gtk-build-system)
8638 (guix build utils))
8639 #:configure-flags
8640 (list "--with-unicode-data=../unicode-data")
8641 #:phases
8642 (modify-phases %standard-phases
8643 (add-after 'unpack 'prepare-unicode-data
8644 (lambda* (#:key inputs #:allow-other-keys)
8645 (mkdir-p "../unicode-data")
8646 (with-directory-excursion "../unicode-data"
8647 (for-each (match-lambda
8648 ((file _)
8649 (install-file (assoc-ref inputs file) ".")))
8650 ',unicode-files))
8651 #t)))))
8652 (native-inputs
8653 `(("desktop-file-utils" ,desktop-file-utils)
8654 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8655 ("gobject-introspection" ,gobject-introspection)
8656 ("intltool" ,intltool)
8657 ("itstool" ,itstool)
8658 ("pkg-config" ,pkg-config)
8659 ,@(map (match-lambda
8660 ((file hash)
8661 `(,file
8662 ,(origin
8663 (method url-fetch)
8664 (uri (string-append
1f8b5515 8665 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8666 file))
8667 (sha256 (base32 hash))))))
8668 unicode-files)
8669 ("unzip" ,unzip)))
8670 (inputs
8671 `(("gtk+" ,gtk+)
8672 ("xmllint" ,libxml2)))
8673 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8674 (synopsis "Unicode character picker and font browser")
8675 (description
8676 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8677characters and categories for the installed fonts, and to examine their
8678detailed properties. It is an easy way to find the character you might
8679only know by its Unicode name or code point.")
c60063ea 8680 (license license:gpl3+))))
04ce840a
RS
8681
8682(define-public bluefish
8683 (package
8684 (name "bluefish")
ea8afaf3 8685 (version "2.2.10")
04ce840a
RS
8686 (source
8687 (origin
8688 (method url-fetch)
8689 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8690 name "-" version ".tar.gz"))
8691 (sha256
8692 (base32
ea8afaf3 8693 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
04ce840a
RS
8694 (build-system gnu-build-system)
8695 (native-inputs
8696 `(("desktop-file-utils" ,desktop-file-utils)
8697 ("intltool" ,intltool)
8698 ("pkg-config" ,pkg-config)))
8699 (inputs
8700 `(("enchant" ,enchant)
8701 ("gtk+" ,gtk+)
8702 ("python" ,python-2)
8703 ("xmllint" ,libxml2)
8704 ("gucharmap" ,gucharmap)))
8705 (home-page "http://bluefish.openoffice.nl")
8706 (synopsis "Web development studio")
8707 (description
8708 "Bluefish is an editor targeted towards programmers and web developers,
8709with many options to write web sites, scripts and other code.
8710Bluefish supports many programming and markup languages.")
8711 (license license:gpl3+)))
1f6a73ee
RS
8712
8713(define-public gnome-system-monitor
8714 (package
8715 (name "gnome-system-monitor")
083cffaf 8716 (version "3.32.1")
1f6a73ee
RS
8717 (source
8718 (origin
8719 (method url-fetch)
8720 (uri (string-append "mirror://gnome/sources/" name "/"
8721 (version-major+minor version) "/"
8722 name "-" version ".tar.xz"))
8723 (sha256
8724 (base32
083cffaf 8725 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8726 (build-system meson-build-system)
8727 (arguments
8728 '(#:glib-or-gtk? #t
8729 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8730 (native-inputs
8731 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8732 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8733 ("intltool" ,intltool)
8734 ("itstool" ,itstool)
8735 ("libgtop" ,libgtop)
4985d9aa 8736 ("polkit" ,polkit)
1f6a73ee
RS
8737 ("pkg-config" ,pkg-config)))
8738 (inputs
8739 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8740 ("gtk+" ,gtk+)
8741 ("gtkmm" ,gtkmm)
8742 ("librsvg" ,librsvg)
4985d9aa
RW
8743 ("libxml2" ,libxml2)
8744 ("libwnck" ,libwnck)))
1f6a73ee
RS
8745 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8746 (synopsis "Process viewer and system resource monitor for GNOME")
8747 (description
8748 "GNOME System Monitor is a GNOME process viewer and system monitor with
8749an attractive, easy-to-use interface. It has features, such as a tree view
8750for process dependencies, icons for processes, the ability to hide processes,
8751graphical time histories of CPU/memory/swap usage and the ability to
8752kill/reinice processes.")
8753 (license license:gpl2+)))
3e00ac47
SB
8754
8755(define-public python-pyatspi
8756 (package
8757 (name "python-pyatspi")
4f937a32 8758 (version "2.34.0")
3e00ac47
SB
8759 (source (origin
8760 (method url-fetch)
8761 (uri (string-append
8762 "mirror://gnome/sources/pyatspi/"
8763 (version-major+minor version)
8764 "/pyatspi-" version ".tar.xz"))
8765 (sha256
8766 (base32
4f937a32 8767 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8768 (build-system gnu-build-system)
b95af3f6
JL
8769 (arguments
8770 `(#:phases
8771 (modify-phases %standard-phases
8772 (add-before 'build 'fix-atk-load
8773 (lambda _
8774 (substitute* "pyatspi/__init__.py"
8775 (("from gi.repository import Atspi")
8776 "gi.require_version('Gtk', '3.0')
8777from gi.repository import Gtk
8778from gi.repository import Atspi"))
8779 #t)))))
3e00ac47
SB
8780 (native-inputs
8781 `(("pkg-config" ,pkg-config)))
8782 (inputs
8783 `(("python" ,python)
8784 ("python-pygobject" ,python-pygobject)))
8785 (synopsis "Python client bindings for D-Bus AT-SPI")
8786 (home-page "https://wiki.linuxfoundation.org/accessibility\
8787/atk/at-spi/at-spi_on_d-bus")
8788 (description
8789 "This package includes a python client library for the AT-SPI D-Bus
8790accessibility infrastructure.")
8791 (license license:lgpl2.0)
8792 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8793
8794(define-public orca
8795 (package
8796 (name "orca")
089e8585 8797 (version "3.32.0")
53201c0d
SB
8798 (source (origin
8799 (method url-fetch)
8800 (uri (string-append
8801 "mirror://gnome/sources/" name "/"
8802 (version-major+minor version) "/"
8803 name "-" version ".tar.xz"))
8804 (sha256
8805 (base32
089e8585 8806 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
53201c0d
SB
8807 (build-system glib-or-gtk-build-system)
8808 (arguments
8809 '(#:phases
8810 (modify-phases %standard-phases
8811 (add-before 'configure 'qualify-xkbcomp
8812 (lambda* (#:key inputs #:allow-other-keys)
8813 (let ((xkbcomp (string-append
8814 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8815 (substitute* "src/orca/orca.py"
8816 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8817 #t))
8818 (add-after 'install 'wrap-orca
8819 (lambda* (#:key outputs #:allow-other-keys)
8820 (let* ((out (assoc-ref outputs "out"))
8821 (prog (string-append out "/bin/orca")))
8822 (wrap-program prog
8823 `("GI_TYPELIB_PATH" ":" prefix
8824 (,(getenv "GI_TYPELIB_PATH")))
8825 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8826 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8827 `("PYTHONPATH" ":" prefix
8828 (,(getenv "PYTHONPATH")))))
8829 #t)))))
8830 (native-inputs
8831 `(("intltool" ,intltool)
8832 ("itstool" ,itstool)
8833 ("pkg-config" ,pkg-config)
8834 ("xmllint" ,libxml2)))
8835 (inputs
8836 `(("at-spi2-atk" ,at-spi2-atk)
8837 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8838 ("gstreamer" ,gstreamer)
8839 ("gst-plugins-base" ,gst-plugins-base)
8840 ("gst-plugins-good" ,gst-plugins-good)
8841 ("gtk+" ,gtk+)
8842 ("python" ,python)
8843 ("python-pygobject" ,python-pygobject)
8844 ("python-pyatspi" ,python-pyatspi)
8845 ("python-speechd" ,speech-dispatcher)
8846 ("xkbcomp" ,xkbcomp)))
8847 (synopsis
8848 "Screen reader for individuals who are blind or visually impaired")
8849 (home-page "https://wiki.gnome.org/Projects/Orca")
8850 (description
8851 "Orca is a screen reader that provides access to the graphical desktop
8852via speech and refreshable braille. Orca works with applications and toolkits
8853that support the Assistive Technology Service Provider Interface (AT-SPI).")
8854 (license license:lgpl2.1+)))
411ba511
LC
8855
8856(define-public gspell
8857 (package
8858 (name "gspell")
7a6bbe9b 8859 (version "1.8.2")
411ba511
LC
8860 (source (origin
8861 (method url-fetch)
8862 (uri (string-append "mirror://gnome/sources/" name "/"
8863 (version-major+minor version) "/"
8864 name "-" version ".tar.xz"))
8865 (sha256
8866 (base32
7a6bbe9b 8867 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8868 (patches (search-patches "gspell-dash-test.patch"))))
8869 (build-system glib-or-gtk-build-system)
8870 (arguments
8871 '(#:phases
8872 (modify-phases %standard-phases
8873 (add-before 'check 'pre-check
8874 (lambda* (#:key inputs #:allow-other-keys)
8875 ;; Tests require a running X server.
8876 (system "Xvfb :1 &")
8877 (setenv "DISPLAY" ":1")
8878
8879 ;; For the missing /etc/machine-id.
8880 (setenv "DBUS_FATAL_WARNINGS" "0")
8881
8882 ;; Allow Enchant and its Aspell backend to find the en_US
8883 ;; dictionary.
8884 (setenv "ASPELL_DICT_DIR"
8885 (string-append (assoc-ref inputs "aspell-dict-en")
8886 "/lib/aspell"))
8887 #t)))))
8888 (inputs
eccd35be 8889 `(("gtk+" ,gtk+)
a801ae4c
TGR
8890 ("glib" ,glib)
8891 ("iso-codes" ,iso-codes)))
411ba511
LC
8892 (native-inputs
8893 `(("glib" ,glib "bin")
26ba3f07 8894 ("gobject-introspection" ,gobject-introspection)
411ba511
LC
8895 ("pkg-config" ,pkg-config)
8896 ("xmllint" ,libxml2)
8897
8898 ;; For tests.
a801ae4c 8899 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8900 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8901 (propagated-inputs
9b1bb757 8902 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8903 (home-page "https://wiki.gnome.org/Projects/gspell")
8904 (synopsis "GNOME's alternative spell checker")
8905 (description
8906 "gspell provides a flexible API to add spell-checking to a GTK+
8907application. It provides a GObject API, spell-checking to text entries and
8908text views, and buttons to choose the language.")
8909 (license license:gpl2+)))
d1d739fa
CM
8910
8911(define-public gnome-planner
8912 (package
8913 (name "gnome-planner")
8914 (version "0.14.6")
8915 (source (origin
8916 (method url-fetch)
8917 (uri (string-append "mirror://gnome/sources/planner/"
8918 (version-major+minor version) "/planner-"
8919 version ".tar.xz"))
8920 (sha256
8921 (base32
8922 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8923 (build-system glib-or-gtk-build-system)
8924 (arguments
8925 ;; Disable the Python bindings because the Planner program functions
8926 ;; without them, and (as of 2017-06-13) we have not packaged all of
8927 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8928 `(#:configure-flags
8929 (list "--disable-python"
8930 ,@(if (string=? "aarch64-linux" (%current-system))
8931 '("--build=aarch64-unknown-linux-gnu")
8932 '()))))
d1d739fa
CM
8933 (inputs
8934 `(("libgnomecanvas" ,libgnomecanvas)
8935 ("libgnomeui" ,libgnomeui)
8936 ("libglade" ,libglade)
8937 ("gnome-vfs" ,gnome-vfs)
8938 ("gconf" ,gconf)
8939 ("libxml2" ,libxml2)
8940 ("libxslt" ,libxslt)
8941 ("gtk+" ,gtk+)
8942 ("glib" ,glib)))
8943 (native-inputs
8944 `(("intltool" ,intltool)
8945 ("scrollkeeper" ,scrollkeeper)
8946 ("pkg-config" ,pkg-config)))
8947 (home-page "https://wiki.gnome.org/Apps/Planner")
8948 (synopsis "Project management software for the GNOME desktop")
8949 (description
8950 "GNOME Planner is a project management tool based on the Work Breakdown
8951Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8952the resources, tasks, and constraints that you define, Planner generates
8953various views into a project. For example, Planner can show a Gantt chart of
8954the project. It can show a detailed summary of tasks including their
8955duration, cost, and current progress. It can also show a report of resource
8956utilization that highlights under-utilized and over-utilized resources. These
8957views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 8958 (license license:gpl2+)))
64fce637
RS
8959
8960(define-public lollypop
8961 (package
8962 (name "lollypop")
ca32627a 8963 (version "1.2.7")
64fce637
RS
8964 (source
8965 (origin
8966 (method url-fetch)
b98eace8 8967 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
ca32627a 8968 "08f973788c7ca46d9285eec2ac818edb/"
3275d43d 8969 "lollypop-" version ".tar.xz"))
64fce637 8970 (sha256
ca32627a 8971 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
aa498fc0 8972 (build-system meson-build-system)
64fce637
RS
8973 (arguments
8974 `(#:imported-modules ((guix build python-build-system)
aa498fc0
TD
8975 ,@%meson-build-system-modules)
8976 #:glib-or-gtk? #t
5fc9b6c1
EF
8977 #:tests? #f ; no test suite
8978 #:phases
8979 (modify-phases %standard-phases
5fc9b6c1
EF
8980 (add-after 'install 'wrap-program
8981 (lambda* (#:key outputs #:allow-other-keys)
8982 (let ((out (assoc-ref outputs "out"))
8983 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8984 (wrap-program (string-append out "/bin/lollypop")
8985 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8986 #t))
8ac8b3b3
TGR
8987 (add-after 'install 'wrap-python
8988 (@@ (guix build python-build-system) wrap))
8989 (add-after 'install 'wrap-glib-or-gtk
8990 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
64fce637
RS
8991 (native-inputs
8992 `(("intltool" ,intltool)
8993 ("itstool" ,itstool)
aa498fc0
TD
8994 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8995 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
8996 ("pkg-config" ,pkg-config)))
8997 (inputs
8998 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 8999 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9000 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9001 ("libnotify" ,libnotify)
9002 ("libsecret" ,libsecret)
9003 ("libsoup" ,libsoup)
9004 ("python" ,python)
9005 ("python-beautifulsoup4" ,python-beautifulsoup4)
9006 ("python-gst" ,python-gst)
d029afdd 9007 ("python-pil" ,python-pillow)
64fce637 9008 ("python-pycairo" ,python-pycairo)
cc9c83c5 9009 ("python-pygobject" ,python-pygobject)
64fce637
RS
9010 ("python-pylast" ,python-pylast)
9011 ("totem-pl-parser" ,totem-pl-parser)
9012 ("webkitgtk" ,webkitgtk)))
9013 (propagated-inputs
9014 `(;; gst-plugins-base is required to start Lollypop,
9015 ;; the others are required to play streaming.
64fce637
RS
9016 ("gst-plugins-good" ,gst-plugins-good)
9017 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9018 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9019 (synopsis "GNOME music playing application")
9020 (description
9021 "Lollypop is a music player designed to play well with GNOME desktop.
9022Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9023from artists and tracks from the web. It also fetches cover artworks
9024automatically and it can stream songs from online music services and charts.")
9025 (license license:gpl3+)))
d831d49d
AW
9026
9027(define-public gnome-video-effects
9028 (package
9029 (name "gnome-video-effects")
9030 (version "0.4.3")
9031 (source (origin
9032 (method url-fetch)
9033 (uri (string-append "mirror://gnome/sources/" name "/"
9034 (version-major+minor version) "/" name "-"
9035 version ".tar.xz"))
9036 (sha256
9037 (base32
9038 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9039 (build-system glib-or-gtk-build-system)
9040 (arguments
9041 `(#:out-of-source? #f))
9042 (native-inputs
9043 `(("glib:bin" ,glib "bin")
9044 ("intltool" ,intltool)
9045 ("gettext" ,gettext-minimal)
9046 ("pkg-config" ,pkg-config)))
9047 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9048 (synopsis "Video effects for Cheese and other GNOME applications")
9049 (description
9050 "A collection of GStreamer video filters and effects to be used in
9051photo-booth-like software, such as Cheese.")
9052 (license license:gpl2+)))
3511c780
AW
9053
9054(define-public cheese
9055 (package
9056 (name "cheese")
dd33b337 9057 (version "3.32.1")
3511c780
AW
9058 (source (origin
9059 (method url-fetch)
9060 (uri (string-append "mirror://gnome/sources/" name "/"
9061 (version-major+minor version) "/" name "-"
9062 version ".tar.xz"))
9063 (sha256
9064 (base32
dd33b337 9065 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
3511c780
AW
9066 (arguments
9067 ;; Tests require GDK.
9068 `(#:tests? #f
9069 #:phases
9070 (modify-phases %standard-phases
9071 (add-before 'install 'skip-gtk-update-icon-cache
9072 (lambda _
9073 ;; Don't create 'icon-theme.cache'
9074 (substitute* "Makefile"
9075 (("gtk-update-icon-cache") (which "true")))
9076 #t))
9077 (add-after 'install 'wrap-cheese
9078 (lambda* (#:key inputs outputs #:allow-other-keys)
9079 (let ((out (assoc-ref outputs "out"))
9080 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9081 (wrap-program (string-append out "/bin/cheese")
9082 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9083 #t)))))
9084 (build-system glib-or-gtk-build-system)
9085 (native-inputs
9086 `(("glib:bin" ,glib "bin")
9087 ("intltool" ,intltool)
9088 ("itstool" ,itstool)
9089 ("libxml2" ,libxml2)
9090 ("pkg-config" ,pkg-config)
9091 ("vala" ,vala)))
9092 (propagated-inputs
6a19f03e
RW
9093 `(("gnome-video-effects" ,gnome-video-effects)
9094 ("clutter" ,clutter)
3511c780
AW
9095 ("clutter-gst" ,clutter-gst)
9096 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9097 ("libcanberra" ,libcanberra)
3511c780
AW
9098 ("gdk-pixbuf" ,gdk-pixbuf)
9099 ("glib" ,glib)
6a19f03e
RW
9100 ("gstreamer" ,gstreamer)))
9101 (inputs
9102 `(("gnome-desktop" ,gnome-desktop)
3511c780 9103 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9104 ("gst-plugins-base" ,gst-plugins-base)
9105 ("gst-plugins-bad" ,gst-plugins-bad)
9106 ("gtk+" ,gtk+)
3511c780
AW
9107 ("libx11" ,libx11)
9108 ("libxtst" ,libxtst)))
9109 (home-page "https://wiki.gnome.org/Apps/Cheese")
9110 (synopsis "Webcam photo booth software for GNOME")
9111 (description
9112 "Cheese uses your webcam to take photos and videos. Cheese can also
9113apply fancy special effects and lets you share the fun with others.")
9114 (license license:gpl2+)))
3c5dbd2b 9115
9116(define-public sound-juicer
9117 (package
9118 (name "sound-juicer")
9119 (version "3.24.0")
9120 (source
9121 (origin
9122 (method url-fetch)
9123 (uri (string-append "mirror://gnome/sources/" name "/"
9124 (version-major+minor version) "/"
9125 name "-" version ".tar.xz"))
9126 (sha256
9127 (base32
9128 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9129 (build-system glib-or-gtk-build-system)
9130 (native-inputs
9131 `(("desktop-file-utils" ,desktop-file-utils)
9132 ("intltool" ,intltool)
9133 ("itstool" ,itstool)
9134 ("pkg-config" ,pkg-config)
9135 ("xmllint" ,libxml2)))
9136 (inputs
9137 `(("gtk+" ,gtk+)
9138 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9139 ("gstreamer" ,gstreamer)
9140 ("gst-plugins-base" ,gst-plugins-base)
9141 ("gst-plugins-good" ,gst-plugins-good)
9142 ("iso-codes" ,iso-codes)
9143 ("libbrasero-media3" ,brasero)
9144 ("libcanberra" ,libcanberra)
9145 ("libdiscid" ,libdiscid)
9146 ("libmusicbrainz" ,libmusicbrainz)
9147 ("neon" ,neon)))
9148 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9149 (synopsis "Audio music cd ripper")
9150 (description "Sound Juicer extracts audio from compact discs and convert it
9151into audio files that a personal computer or digital audio player can play.
9152It supports ripping to any audio codec supported by a GStreamer plugin, such as
9153mp3, Ogg Vorbis and FLAC")
9154 (license license:gpl2+)))
4e3fdeb7 9155
0d3f1708
CB
9156(define-public soundconverter
9157 (package
9158 (name "soundconverter")
fa75a213 9159 (version "3.0.1")
0d3f1708
CB
9160 (source
9161 (origin
9162 (method url-fetch)
9163 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9164 version "/+download/"
9165 "soundconverter-" version ".tar.xz"))
9166
9167 (sha256
fa75a213 9168 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
0d3f1708
CB
9169 (patches
9170 (search-patches
9171 "soundconverter-remove-gconf-dependency.patch"))))
9172 (build-system glib-or-gtk-build-system)
9173 (arguments
9174 `(#:imported-modules ((guix build python-build-system)
9175 (guix build glib-or-gtk-build-system)
9176 ,@%gnu-build-system-modules)
9177
9178 #:modules ((guix build glib-or-gtk-build-system)
9179 (guix build utils)
9180 ((guix build gnu-build-system) #:prefix gnu:)
9181 ((guix build python-build-system) #:prefix python:))
9182
9183 #:phases
9184 (modify-phases %standard-phases
0d3f1708
CB
9185 (add-after 'install 'wrap-soundconverter-for-python
9186 (assoc-ref python:%standard-phases 'wrap))
9187 (add-after 'install 'wrap-soundconverter
9188 (lambda* (#:key inputs outputs #:allow-other-keys)
9189 (let ((out (assoc-ref outputs "out"))
9190 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9191 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9192 (wrap-program (string-append out "/bin/soundconverter")
9193 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9194 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9195 #t)))))
9196 (native-inputs
9197 `(("intltool" ,intltool)
9198 ("pkg-config" ,pkg-config)
9199 ("glib:bin" ,glib "bin")))
9200 (inputs
9201 `(("gtk+" ,gtk+)
9202 ("python" ,python)
9203 ("python-pygobject" ,python-pygobject)
9204 ("gstreamer" ,gstreamer)
9205 ("gst-plugins-base" ,gst-plugins-base)))
9206 (home-page "http://soundconverter.org/")
9207 (synopsis "Convert between audio formats with a graphical interface")
9208 (description
9209 "SoundConverter supports converting between many audio formats including
9210Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9211configurable file renaming. ")
9212 (license license:gpl3)))
9213
4e3fdeb7 9214(define-public workrave
89f2d736
TGR
9215 (package
9216 (name "workrave")
aa51d92c 9217 (version "1.10.34")
89f2d736
TGR
9218 (source
9219 (origin
9220 (method git-fetch)
9221 (uri (git-reference
9222 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9223 (commit (string-append "v" (string-map
9224 (match-lambda (#\. #\_) (chr chr))
9225 version)))))
89f2d736
TGR
9226 (file-name (git-file-name name version))
9227 (sha256
aa51d92c 9228 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
89f2d736 9229 (build-system glib-or-gtk-build-system)
d1c96847
MC
9230 (inputs `(("glib" ,glib)
9231 ("gtk+" ,gtk+)
9232 ("gdk-pixbuf" ,gdk-pixbuf)
9233 ("gtkmm" ,gtkmm)
9234 ("glibmm" ,glibmm)
9235 ("libx11" ,libx11)
9236 ("libxtst" ,libxtst)
9237 ("dconf" ,dconf)
9238 ("libice" ,libice)
9239 ("libsm" ,libsm)
9240 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9241 (native-inputs `(("boost" ,boost)
89f2d736
TGR
9242 ("pkg-config" ,pkg-config)
9243 ("gettext" ,gnu-gettext)
9244 ("autoconf" ,autoconf)
9245 ("autoconf-archive" , autoconf-archive)
9246 ("automake" ,automake)
9247 ("libtool" ,libtool)
9248 ("intltool" ,intltool)
89f2d736 9249 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9250 ("python3" ,python-3)
9251 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9252 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9253 (description
9254 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9255repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9256micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9257 (home-page "http://www.workrave.org")
9258 (license license:gpl3+)))
312afa7d
LC
9259
9260(define-public ghex
9261 (package
9262 (name "ghex")
3748992a 9263 (version "3.18.4")
312afa7d
LC
9264 (source (origin
9265 (method url-fetch)
2fbab848 9266 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9267 (version-major+minor version) "/"
2fbab848 9268 "ghex-" version ".tar.xz"))
312afa7d
LC
9269 (sha256
9270 (base32
3748992a
KK
9271 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9272 (build-system meson-build-system)
9273 (arguments
9274 '(#:glib-or-gtk? #t
9275 #:phases
9276 (modify-phases %standard-phases
9277 (add-after 'unpack 'skip-gtk-update-icon-cache
9278 ;; Don't create 'icon-theme.cache'.
9279 (lambda _
9280 (substitute* "meson_post_install.py"
9281 (("gtk-update-icon-cache") (which "true")))
9282 #t)))))
312afa7d
LC
9283 (native-inputs
9284 `(("pkg-config" ,pkg-config)
3748992a 9285 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9286 ("gnome-common" ,gnome-common)
9287 ("which" ,which)
9288 ("intltool" ,intltool)
9289 ("yelp-tools" ,yelp-tools)
2fbab848 9290 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9291 (inputs
9292 `(("atk" ,atk)
9293 ("gtk" ,gtk+)))
9294 (synopsis "GNOME hexadecimal editor")
9295 (description "The GHex program can view and edit files in two ways:
9296hexadecimal or ASCII. It is useful for editing binary files in general.")
9297 (home-page "https://wiki.gnome.org/Apps/Ghex")
9298 (license license:gpl2)))
4b2ed6c2
RW
9299
9300(define-public libdazzle
9301 (package
9302 (name "libdazzle")
64fa66ba 9303 (version "3.33.90")
4b2ed6c2
RW
9304 (source (origin
9305 (method url-fetch)
687b4909 9306 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9307 (version-major+minor version) "/"
687b4909 9308 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9309 (sha256
9310 (base32
64fa66ba 9311 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
4b2ed6c2
RW
9312 (build-system meson-build-system)
9313 (arguments
9314 `(#:phases
9315 (modify-phases %standard-phases
4b2ed6c2
RW
9316 (add-before 'check 'pre-check
9317 (lambda _
9318 ;; Tests require a running X server.
9319 (system "Xvfb :1 &")
9320 (setenv "DISPLAY" ":1")
9321 #t)))))
9322 (native-inputs
687b4909 9323 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9324 ("pkg-config" ,pkg-config)
687b4909 9325 ;; For tests.
ff337525 9326 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9327 (inputs
9328 `(("glib" ,glib)
9329 ("gobject-introspection" ,gobject-introspection)
9330 ("gtk+" ,gtk+)
9331 ("vala" ,vala)))
9332 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9333 (synopsis "Companion library to GObject and Gtk+")
9334 (description "The libdazzle library is a companion library to GObject and
9335Gtk+. It provides various features that the authors wish were in the
9336underlying library but cannot for various reasons. In most cases, they are
9337wildly out of scope for those libraries. In other cases, they are not quite
9338generic enough to work for everyone.")
9339 (license license:gpl3+)))
7d3bb433
RW
9340
9341(define-public evolution
9342 (package
9343 (name "evolution")
06141f83 9344 (version "3.32.4")
7d3bb433
RW
9345 (source (origin
9346 (method url-fetch)
9347 (uri (string-append "mirror://gnome/sources/evolution/"
9348 (version-major+minor version) "/"
9349 "evolution-" version ".tar.xz"))
9350 (sha256
9351 (base32
06141f83 9352 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
7d3bb433
RW
9353 (build-system cmake-build-system)
9354 (arguments
5229bea1
KK
9355 `(#:imported-modules (,@%cmake-build-system-modules
9356 (guix build glib-or-gtk-build-system))
9357 #:modules ((guix build cmake-build-system)
9358 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9359 (guix build utils))
9360 #:configure-flags
7d3bb433 9361 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9362 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9363 ; in four years and cannot be built.
5229bea1
KK
9364 #:phases
9365 (modify-phases %standard-phases
9366 ;; The build system attempts to install user interface modules to the
9367 ;; output directory of the "evolution-data-server" package. This
9368 ;; change redirects that change.
9369 (add-after 'unpack 'patch-ui-module-dir
9370 (lambda* (#:key outputs #:allow-other-keys)
9371 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9372 (("\\$\\{edsuimoduledir\\}")
9373 (string-append (assoc-ref outputs "out")
9374 "/lib/evolution-data-server/ui-modules")))
9375 #t))
9376 (add-after 'install 'glib-or-gtk-compile-schemas
9377 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9378 (add-after 'install 'glib-or-gtk-wrap
9379 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9380 (native-inputs
ad6e168b 9381 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9382 ("pkg-config" ,pkg-config)
9383 ("intltool" ,intltool)
9384 ("itstool" ,itstool)))
9385 (inputs
9386 `(("enchant" ,enchant)
9387 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9388 ("gcr" ,gcr)
ad6e168b 9389 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9390 ("gnome-autoar" ,gnome-autoar)
9391 ("gnome-desktop" ,gnome-desktop)
9392 ("gtkspell3" ,gtkspell3)
9393 ("highlight" ,highlight)
9394 ("libcanberra" ,libcanberra)
b63c06f1 9395 ("libedataserverui" ,evolution-data-server)
7d3bb433
RW
9396 ("libgweather" ,libgweather)
9397 ("libnotify" ,libnotify)
9398 ("libsoup" ,libsoup)
9399 ("nss" ,nss)
9400 ("openldap" ,openldap)
9401 ("webkitgtk" ,webkitgtk)
9402 ("ytnef" ,ytnef)))
9403 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9404 (synopsis "Manage your email, contacts and schedule")
9405 (description "Evolution is a personal information management application
9406that provides integrated mail, calendaring and address book
9407functionality.")
9408 ;; See COPYING for details.
23dbe621 9409 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9410 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9411 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9412
9413(define-public gthumb
9414 (package
9415 (name "gthumb")
8280676b 9416 (version "3.8.2")
169d63f5
AT
9417 (source (origin
9418 (method url-fetch)
9419 (uri (string-append "mirror://gnome/sources/gthumb/"
9420 (version-major+minor version) "/"
9421 "gthumb-" version ".tar.xz"))
9422 (sha256
9423 (base32
8280676b 9424 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9425 (build-system meson-build-system)
9426 (arguments
9427 `(#:glib-or-gtk? #t
9428 #:configure-flags
9429 ;; Ensure the RUNPATH contains all installed library locations.
9430 (list (string-append "-Dc_link_args=-Wl,-rpath="
9431 (assoc-ref %outputs "out")
9432 "/lib/gthumb/extensions")
9433 (string-append "-Dcpp_link_args=-Wl,-rpath="
9434 (assoc-ref %outputs "out")
9435 "/lib/gthumb/extensions"))))
9436 (native-inputs
9437 `(("pkg-config" ,pkg-config)
9438 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9439 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9440 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9441 ("intltool" ,intltool)
9442 ("itstool" ,itstool)))
9443 (inputs
9444 `(("exiv2" ,exiv2)
9445 ("gtk" ,gtk+)
9446 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9447 ("gstreamer" ,gstreamer)
9448 ("clutter" ,clutter)
9449 ("clutter-gst" ,clutter-gst)
9450 ("clutter-gtk" ,clutter-gtk)
4bd428a7 9451 ("libjpeg" ,libjpeg-turbo)
169d63f5
AT
9452 ("libtiff" ,libtiff)
9453 ("libraw" ,libraw)))
9454 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9455 (synopsis "GNOME image viewer and browser")
9456 (description "GThumb is an image viewer, browser, organizer, editor and
9457advanced image management tool")
9458 (license license:gpl2+)))
08be02be
AT
9459
9460(define-public terminator
9461 (package
9462 (name "terminator")
9463 (version "1.91")
9464 (source (origin
9465 (method url-fetch)
9466 (uri (string-append "https://launchpad.net/" name "/"
9467 "gtk3/" version "/" "+download/"
9468 name "-" version ".tar.gz"))
9469 (sha256
9470 (base32
9471 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9472 (build-system python-build-system)
9473 (native-inputs
9474 `(("intltool" ,intltool)
9475 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9476 ("gettext" ,gettext-minimal)
9477 ("pkg-config" ,pkg-config)))
9478 (inputs
9479 `(("cairo" ,cairo)
9480 ("gobject-introspection" ,gobject-introspection)
96681d4b 9481 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9482 ("python2-pycairo" ,python2-pycairo)
9483 ("python2-pygobject" ,python2-pygobject)
9484 ("python2-psutil" ,python2-psutil)
9485 ("vte" ,vte)))
9486 (arguments
96681d4b
TGR
9487 `(#:python ,python-2 ; Python 3 isn't supported
9488 #:imported-modules ((guix build glib-or-gtk-build-system)
9489 ,@%python-build-system-modules)
9490 #:modules ((guix build python-build-system)
9491 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9492 (guix build utils))
08be02be
AT
9493 #:phases
9494 (modify-phases %standard-phases
9495 (add-after
9496 'install 'wrap-program
9497 (lambda* (#:key outputs #:allow-other-keys)
9498 (let ((prog (string-append (assoc-ref outputs "out")
9499 "/bin/terminator")))
9500 (wrap-program prog
9501 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9502 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9503 #t)))
9504 (add-after 'wrap-program 'glib-or-gtk-wrap
9505 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9506 (home-page "https://gnometerminator.blogspot.com/")
9507 (synopsis "Store and run multiple GNOME terminals in one window")
9508 (description
9509 "Terminator allows you to run multiple GNOME terminals in a grid and
9510+tabs, and it supports drag and drop re-ordering of terminals.")
9511 (license license:gpl2)))
213315d4
JF
9512
9513(define-public libhandy
9514 (package
9515 (name "libhandy")
f6501b9f 9516 (version "0.0.12")
213315d4
JF
9517 (source
9518 (origin
9519 (method git-fetch)
9520 (uri (git-reference
9521 (url "https://source.puri.sm/Librem5/libhandy")
9522 (commit (string-append "v" version))))
9523 (file-name (git-file-name name version))
9524 (sha256
f6501b9f 9525 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9526 (build-system meson-build-system)
9527 (arguments
9528 `(#:configure-flags
9529 '("-Dglade_catalog=disabled"
9530 "-Dgtk_doc=true")
9531 #:phases
9532 (modify-phases %standard-phases
213315d4
JF
9533 (add-before 'check 'pre-check
9534 (lambda _
9535 ;; Tests require a running X server.
9536 (system "Xvfb :1 &")
9537 (setenv "DISPLAY" ":1")
9538 #t)))))
9539 (inputs
9540 `(("gtk+" ,gtk+)))
9541 (native-inputs
9542 `(("glib:bin" ,glib "bin")
9543 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9544 ("vala" ,vala)
9545 ("gtk-doc" ,gtk-doc)
9546 ("pkg-config" ,pkg-config)
9547 ("gettext" ,gettext-minimal)
d41ee146
TGR
9548
9549 ;; Test suite dependencies.
ff337525 9550 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9551 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9552 (home-page "https://source.puri.sm/Librem5/libhandy")
9553 (synopsis "Library full of GTK+ widgets for mobile phones")
9554 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9555interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9556for usage on small and big screens.")
213315d4 9557 (license license:lgpl2.1+)))
a830d14d
GL
9558
9559(define-public libgit2-glib
9560 (package
9561 (name "libgit2-glib")
9562 (version "0.28.0.1")
9563 (source (origin
9564 (method url-fetch)
9565 (uri (string-append "mirror://gnome/sources/" name "/"
9566 (version-major+minor version) "/"
9567 name "-" version ".tar.xz"))
9568 (sha256
9569 (base32
9570 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9571 (build-system meson-build-system)
9572 (native-inputs
9573 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9574 ("gobject-introspection" ,gobject-introspection)
9575 ("intltool" ,intltool)
9576 ("libssh2" ,libssh2)
9577 ("pkg-config" ,pkg-config)
9578 ("python-pygobject" ,python-pygobject)
9579 ("python-wrapper" ,python-wrapper)
9580 ("vala" ,vala)))
9581 (inputs
9582 `(("glib" ,glib)
9583 ("libgit2" ,libgit2)))
9584 (synopsis "GLib wrapper around the libgit2 Git access library")
9585 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9586access library. It only implements the core plumbing functions, not really the
9587higher level porcelain stuff.")
9588 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9589 (license license:gpl2+)))
93beace0 9590
08db81c9
LP
9591(define-public gitg
9592 (package
9593 (name "gitg")
9594 (version "3.32.1")
9595 (source (origin
9596 (method url-fetch)
9597 (uri (string-append "mirror://gnome/sources/" name "/"
9598 (version-major+minor version) "/"
9599 name "-" version ".tar.xz"))
9600 (sha256
9601 (base32
9602 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9603 (build-system meson-build-system)
9604 (arguments
9605 `(#:glib-or-gtk? #t
9606 #:phases
9607 (modify-phases %standard-phases
9608 (add-after 'unpack 'disable-post-install-partially
9609 (lambda _
9610 (substitute* "meson_post_install.py"
9611 (("'python'") ; there are no python sources to compile
9612 (string-append "'" (which "true") "'"))
9613 (("gtk-update-icon-cache") (which "true")))
9614 #t))
9615 (add-after 'unpack 'fix-test-sources
9616 (lambda _
9617 (substitute* "tests/libgitg/test-commit.vala"
9618 (("/bin/bash") (which "bash")))
9619 #t))
9620 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9621 (lambda* (#:key outputs #:allow-other-keys)
9622 (let ((prog (string-append (assoc-ref outputs "out")
9623 "/bin/gitg")))
9624 (wrap-program prog
9625 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9626 #t))))))
9627 (inputs
9628 `(("glib" ,glib)
9629 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9630 ("gtk+" ,gtk+)
9631 ("gtkspell3" ,gtkspell3)
9632 ("gtksourceview" ,gtksourceview-3)
9633 ("json-glib" ,json-glib)
9634 ("libdazzle" ,libdazzle)
9635 ("libgee" ,libgee)
9636 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9637 ("libgit2-glib" ,libgit2-glib)
9638 ("libpeas" ,libpeas)
9639 ("libsecret" ,libsecret)
9640 ("libsoup" ,libsoup)
9641 ("libxml2" ,libxml2)))
9642 (native-inputs
9643 `(("glib:bin" ,glib "bin")
9644 ("gtk+:bin" ,gtk+ "bin")
9645 ("gobject-introspection" ,gobject-introspection)
9646 ("intltool" ,intltool)
9647 ("pkg-config" ,pkg-config)
9648 ("vala" ,vala)))
9649 (synopsis "Graphical user interface for git")
9650 (description
9651 "gitg is a graphical user interface for git. It aims at being a small,
9652fast and convenient tool to visualize the history of git repositories.
9653Besides visualization, gitg also provides several utilities to manage your
9654repository and commit your work.")
9655 (home-page "https://wiki.gnome.org/Apps/Gitg")
9656 (license license:gpl2+)))
9657
1e600ed0
RW
9658(define-public gamin
9659 (package
9660 (name "gamin")
9661 (version "0.1.10")
9662 (source (origin
9663 (method url-fetch)
9664 (uri (string-append "mirror://gnome/sources/" name "/"
9665 (version-major+minor version) "/"
9666 name "-" version ".tar.bz2"))
9667 (sha256
9668 (base32
9669 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9670 (build-system gnu-build-system)
9671 (arguments
9672 `(#:phases
9673 (modify-phases %standard-phases
9674 (add-after 'unpack 'remove-deprecated-macro
9675 (lambda _
9676 (substitute* '("server/gam_node.c"
9677 "server/gam_subscription.h"
9678 "server/gam_node.h"
9679 "server/gam_subscription.c")
9680 (("G_CONST_RETURN") "const"))
9681 #t)))))
9682 (inputs
9683 `(("glib" ,glib)))
9684 (native-inputs
9685 `(("intltool" ,intltool)
9686 ("pkg-config" ,pkg-config)))
9687 (home-page "https://people.gnome.org/~veillard/gamin/")
9688 (synopsis "File alteration monitor")
9689 (description
9690 "Gamin is a file and directory monitoring system defined to be a subset
9691of the FAM (File Alteration Monitor) system. This is a service provided by a
9692library which allows to detect when a file or a directory has been modified.")
9693 (license license:gpl2+)))
9694
93beace0
DW
9695(define-public gnome-mahjongg
9696 (package
9697 (name "gnome-mahjongg")
9698 (version "3.35.1")
9699 (source (origin
9700 (method git-fetch)
9701 (uri (git-reference
9702 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9703 (commit version)))
9704 (file-name (git-file-name name version))
9705 (sha256
9706 (base32
9707 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9708 (build-system meson-build-system)
9709 (arguments
9710 `(#:glib-or-gtk? #t))
9711 (native-inputs
9712 `(("appstream-glib" ,appstream-glib)
9713 ("gettext" ,gettext-minimal)
9714 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9715 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9716 ("itstool" ,itstool)
9717 ("pkg-config" ,pkg-config)
9718 ("vala" ,vala)))
9719 (propagated-inputs
9720 `(("dconf" ,dconf)))
9721 (inputs
9722 `(("glib" ,glib)
9723 ("gtk+" ,gtk+)
9724 ("librsvg" ,librsvg)))
9725 (synopsis "Mahjongg tile-matching game")
9726 (description "GNOME Mahjongg is a game based on the classic Chinese
9727tile-matching game Mahjong. It features multiple board layouts, tile themes,
9728and a high score table.")
9729 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9730 (license license:gpl2+)))
f825476c 9731
76ea7632
RG
9732(define-public gnome-themes-extra
9733 (package
9734 (name "gnome-themes-extra")
9735 (version "3.28")
9736 (source
9737 (origin
9738 (method url-fetch)
9739 (uri (string-append "mirror://gnome/sources/" name "/"
9740 (version-major+minor version) "/" name "-"
9741 version ".tar.xz"))
9742 (sha256
9743 (base32
9744 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9745 (build-system gnu-build-system)
885424bf
RG
9746 (arguments
9747 '(#:configure-flags
9748 ;; Don't create 'icon-theme.cache'.
9749 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9750 (true (string-append coreutils "/bin/true")))
9751 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9752 (native-inputs
9753 `(("glib:bin" ,glib "bin")
9754 ("intltool" ,intltool)
9755 ("pkg-config" ,pkg-config)))
9756 (inputs
9757 `(("glib" ,glib)
9758 ("gtk+" ,gtk+)
9759 ("gtk+-2" ,gtk+-2)
9760 ("librsvg" ,librsvg)
9761 ("libxml2" ,libxml2)))
9762 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9763 (synopsis "GNOME Extra Themes")
9764 (description "This package provides themes and related elements that don't
9765really fit in other upstream packages. It offers legacy support for GTK+ 2
9766versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9767index files needed for Adwaita to be used outside of GNOME.")
9768 (license license:lgpl2.1+)))
9769
f825476c
LP
9770(define-public polari
9771 (package
9772 (name "polari")
9773 (version "3.32.2")
9774 (source (origin
9775 (method url-fetch)
9776 (uri (string-append "mirror://gnome/sources/polari/"
9777 (version-major+minor version)
9778 "/polari-" version ".tar.xz"))
9779 (sha256
9780 (base32
9781 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9782 (build-system meson-build-system)
9783 (arguments
9784 `(#:glib-or-gtk? #t
9785 #:phases
9786 (modify-phases %standard-phases
9787 (add-after 'unpack 'skip-gtk-update-icon-cache
9788 (lambda _
9789 (substitute* "meson/meson-postinstall.sh"
9790 (("gtk-update-icon-cache") (which "true")))
9791 #t))
9792 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9793 (lambda* (#:key outputs #:allow-other-keys)
9794 (let ((prog (string-append (assoc-ref outputs "out")
9795 "/bin/polari")))
9796 (wrap-program prog
9797 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9798 #t))))))
9799 (inputs
9800 `(("glib" ,glib)
9801 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9802 ("gspell" ,gspell)
9803 ("gtk+" ,gtk+)
9804 ("gjs" ,gjs)
9805 ("libsecret" ,libsecret)
9806 ("libsoup" ,libsoup)
9807 ("telepathy-glib" ,telepathy-glib)
9808 ("telepathy-logger" ,telepathy-logger)))
9809 (native-inputs
9810 `(("glib:bin" ,glib "bin")
9811 ("gobject-introspection" ,gobject-introspection)
9812 ("intltool" ,intltool)
9813 ("pkg-config" ,pkg-config)
9814 ("yelp-tools" ,yelp-tools)))
9815 (propagated-inputs
9816 `(("telepathy-idle" ,telepathy-idle)
9817 ("telepathy-mission-control" ,telepathy-mission-control)))
9818 (synopsis "Simple IRC Client")
9819 (description
9820 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9821integrate seamlessly with the GNOME desktop.")
9822 (home-page "https://wiki.gnome.org/Apps/Polari")
9823 (license license:gpl2+)))