gnu: protobuf: Update to 3.11.3.
[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>
ad6e168b 43;;; Copyright © 2019 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+)))
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")
bea6b829 1319 (version "3.28.1")
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
bea6b829 1327 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
03ecf85a
MB
1328 (patches
1329 (list
1330 ;; This patch solves an ordering issue that showed up when
1331 ;; running the test suite against newer Glib 2.60. See
1332 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
1333 (origin
1334 (method url-fetch)
1335 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
1336 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
1337 (file-name "gcr-hashtable-ordering.patch")
1338 (sha256
1339 (base32
1340 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
8ff49011
RW
1341 (build-system gnu-build-system)
1342 (arguments
0daf0efb
RW
1343 '(#:phases
1344 (modify-phases %standard-phases
1345 ;; These fail because /var/lib/dbus/machine-id is not present in the
1346 ;; build environment.
1347 (add-after 'unpack 'disable-failing-tests
1348 (lambda _
1349 (substitute* "gcr/test-system-prompt.c"
1350 (("g_test_add") "//")
1351 (("return.*") "return 0;"))
1352 #t))
1353 (add-before 'check 'pre-check
1354 (lambda _
1355 ;; Some tests expect to write to $HOME.
1356 (setenv "HOME" "/tmp")
1357 #t)))))
8ff49011
RW
1358 (inputs
1359 `(("dbus" ,dbus)
0daf0efb 1360 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1361 ("libgcrypt" ,libgcrypt)))
1362 (native-inputs
0daf0efb 1363 `(("python" ,python-2) ;for tests
8ff49011
RW
1364 ("pkg-config" ,pkg-config)
1365 ("glib" ,glib "bin")
2af4f5b0
SB
1366 ("gobject-introspection" ,gobject-introspection)
1367 ("intltool" ,intltool)
0daf0efb 1368 ("libxml2" ,libxml2)
bea6b829 1369 ("vala" ,vala)
2af4f5b0 1370 ("xsltproc" ,libxslt)))
8ff49011
RW
1371 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1372 (propagated-inputs
1373 `(("p11-kit" ,p11-kit)
1374 ("glib" ,glib)
1375 ("gtk+" ,gtk+)))
f032d0be 1376 (home-page "https://www.gnome.org")
8ff49011
RW
1377 (synopsis "Libraries for displaying certificates and accessing key stores")
1378 (description
1379 "The GCR package contains libraries used for displaying certificates and
1380accessing key stores. It also provides the viewer for crypto files on the
1381GNOME Desktop.")
1382 (license license:lgpl2.1+)))
1383
c1354b90
LC
1384(define-public libgnome-keyring
1385 (package
1386 (name "libgnome-keyring")
5e8aec2c 1387 (version "3.12.0")
c1354b90
LC
1388 (source (origin
1389 (method url-fetch)
b38e45d8
EB
1390 (uri (string-append "mirror://gnome/sources/" name "/"
1391 (version-major+minor version) "/"
1392 name "-" version ".tar.xz"))
c1354b90
LC
1393 (sha256
1394 (base32
5e8aec2c 1395 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1396 (build-system gnu-build-system)
c1354b90 1397 (inputs
c4c4cc05 1398 `(("libgcrypt" ,libgcrypt)
c1354b90 1399 ("dbus" ,dbus)))
c4c4cc05
JD
1400 (native-inputs
1401 `(("pkg-config" ,pkg-config)
426adbe8 1402 ("glib" ,glib "bin")
c4c4cc05 1403 ("intltool" ,intltool)))
c1354b90
LC
1404 (propagated-inputs
1405 ;; Referred to in .h files and .pc.
1406 `(("glib" ,glib)))
f032d0be 1407 (home-page "https://www.gnome.org")
c1354b90
LC
1408 (synopsis "Accessing passwords from the GNOME keyring")
1409 (description
1410 "Client library to access passwords from the GNOME keyring.")
1411
1412 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1413 (license license:lgpl2.0+)))
c1354b90 1414
e99a3d6f
RW
1415(define-public gnome-keyring
1416 (package
1417 (name "gnome-keyring")
ab35cc6e 1418 (version "3.28.2")
e99a3d6f
RW
1419 (source (origin
1420 (method url-fetch)
1421 (uri (string-append "mirror://gnome/sources/" name "/"
1422 (version-major+minor version) "/"
1423 name "-" version ".tar.xz"))
1424 (sha256
1425 (base32
ab35cc6e 1426 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
e99a3d6f
RW
1427 (build-system gnu-build-system)
1428 (arguments
1429 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1430 ;not exist
1431 #:configure-flags
1432 (list
1433 (string-append "--with-pkcs11-config="
1434 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1435 (string-append "--with-pkcs11-modules="
1436 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1437 #:phases
1438 (modify-phases %standard-phases
ab35cc6e
RW
1439 (add-after 'unpack 'fix-/bin/sh-reference
1440 (lambda _
1441 (substitute* "po/Makefile.in.in"
1442 (("/bin/sh") (which "sh")))
1443 #t))
5120f24f
RW
1444 (add-after 'unpack 'fix-docbook
1445 (lambda* (#:key inputs #:allow-other-keys)
1446 (substitute* "docs/Makefile.am"
1447 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1448 (string-append (assoc-ref inputs "docbook-xsl")
1449 "/xml/xsl/docbook-xsl-"
1450 ,(package-version docbook-xsl)
1451 "/manpages/docbook.xsl")))
1452 (setenv "XML_CATALOG_FILES"
1453 (string-append (assoc-ref inputs "docbook-xml")
1454 "/xml/dtd/docbook/catalog.xml"))
1455 ;; Rerun the whole thing to avoid version mismatch ("This is
1456 ;; Automake 1.15.1, but the definition used by this
1457 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1458 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1459 (invoke "autoconf")
1460 (invoke "aclocal")
1461 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1462 (inputs
1463 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1464 ("linux-pam" ,linux-pam)
ab35cc6e 1465 ("openssh" ,openssh)
e99a3d6f
RW
1466 ("dbus" ,dbus)
1467 ("gcr" ,gcr)))
1468 (native-inputs
1469 `(("pkg-config" ,pkg-config)
1470 ("glib" ,glib "bin")
5120f24f 1471 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1472 ("python" ,python-2) ;for tests
1473 ("intltool" ,intltool)
1474 ("autoconf" ,autoconf)
1475 ("automake" ,automake)
1476 ("libxslt" ,libxslt) ;for documentation
1477 ("docbook-xml" ,docbook-xml-4.2)
1478 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1479 (home-page "https://www.gnome.org")
e99a3d6f
RW
1480 (synopsis "Daemon to store passwords and encryption keys")
1481 (description
1482 "gnome-keyring is a program that keeps passwords and other secrets for
1483users. It is run as a daemon in the session, similar to ssh-agent, and other
1484applications locate it via an environment variable or D-Bus.
1485
1486The program can manage several keyrings, each with its own master password,
1487and there is also a session keyring which is never stored to disk, but
1488forgotten when the session ends.")
1489 (license license:lgpl2.1+)))
1490
c1354b90
LC
1491(define-public evince
1492 (package
1493 (name "evince")
936d5642 1494 (version "3.34.2")
c1354b90
LC
1495 (source (origin
1496 (method url-fetch)
ac631328 1497 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1498 (version-major+minor version) "/"
ac631328 1499 "evince-" version ".tar.xz"))
c1354b90
LC
1500 (sha256
1501 (base32
936d5642 1502 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1503 (build-system glib-or-gtk-build-system)
c1354b90 1504 (arguments
169b8f77 1505 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1506 #:phases
1507 (modify-phases %standard-phases
1508 (add-before 'install 'skip-gtk-update-icon-cache
1509 ;; Don't create 'icon-theme.cache'.
1510 (lambda _
1511 (substitute* "data/Makefile"
1512 (("gtk-update-icon-cache") "true"))
1513 #t)))))
c1354b90 1514 (inputs
9a096881
KK
1515 `(("libarchive" ,libarchive)
1516 ("libgxps" ,libgxps)
1517 ("libspectre" ,libspectre)
c769cf9f 1518 ("djvulibre" ,djvulibre)
c1354b90
LC
1519 ("ghostscript" ,ghostscript)
1520 ("poppler" ,poppler)
c769cf9f
SB
1521 ("libtiff" ,libtiff)
1522 ;; TODO:
c769cf9f
SB
1523 ;; Build libkpathsea as a shared library for DVI support.
1524 ;; ("libkpathsea" ,texlive-bin)
1525 ("gnome-desktop" ,gnome-desktop)
c1354b90 1526 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1527 ("gspell" ,gspell)
c1354b90 1528 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1529 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1530 ("gdk-pixbuf" ,gdk-pixbuf)
1531 ("atk" ,atk)
1532 ("pango" ,pango)
1533 ("gtk+" ,gtk+)
1534 ("glib" ,glib)
1535 ("libxml2" ,libxml2)
c1354b90
LC
1536 ("libsm" ,libsm)
1537 ("libice" ,libice)
96e42467 1538 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1539 ("dconf" ,dconf)
1540 ("libcanberra" ,libcanberra)
c769cf9f 1541 ("libsecret" ,libsecret)
a271096b 1542
c1354b90
LC
1543 ;; For tests.
1544 ("dogtail" ,python2-dogtail)))
96e42467 1545 (native-inputs
bcb354ad
SB
1546 `(("itstool" ,itstool)
1547 ("intltool" ,intltool)
426adbe8 1548 ("glib" ,glib "bin")
169b8f77 1549 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1550 ("pkg-config" ,pkg-config)
1551 ("xmllint" ,libxml2)))
c1354b90 1552 (home-page
f032d0be 1553 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1554 (synopsis "GNOME's document viewer")
1555 (description
1556 "Evince is a document viewer for multiple document formats. It
1557currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1558of Evince is to replace the multiple document viewers that exist
96e42467 1559on the GNOME Desktop with a single simple application.")
1dd26275 1560 (license license:gpl2+)))
c1354b90 1561
22e32e69
AE
1562(define-public gsettings-desktop-schemas
1563 (package
1564 (name "gsettings-desktop-schemas")
c900dabd 1565 (version "3.32.0")
22e32e69
AE
1566 (source
1567 (origin
1568 (method url-fetch)
1569 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1570 (version-major+minor version) "/"
22e32e69
AE
1571 name "-" version ".tar.xz"))
1572 (sha256
1573 (base32
c900dabd
KK
1574 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1575 (build-system meson-build-system)
65209ffa
LC
1576 (arguments
1577 '(#:phases (modify-phases %standard-phases
1578 (add-after 'unpack 'set-adwaita-theme-file-name
1579 (lambda* (#:key inputs #:allow-other-keys)
1580 ;; Provide the correct file name of the default GNOME
1581 ;; background, 'adwaita-timed.xml'.
1582 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1583 (substitute* (find-files "schemas"
1584 "\\.gschema\\.xml\\.in$")
1585 (("@datadir@/backgrounds/gnome")
1586 (string-append theme "/share/backgrounds/gnome")))
1587 #t))))))
22e32e69 1588 (inputs
65209ffa
LC
1589 `(("glib" ,glib)
1590 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1591 (native-inputs
1592 `(("intltool" ,intltool)
426adbe8 1593 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1594 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1595 ("pkg-config" ,pkg-config)))
1596 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1597 (synopsis
1598 "GNOME settings for various desktop components")
1599 (description
1600 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1601for settings shared by various components of the GNOME desktop.")
1dd26275 1602 (license license:lgpl2.1+)))
22e32e69 1603
27477d2d
AE
1604(define-public icon-naming-utils
1605 (package
1606 (name "icon-naming-utils")
1607 (version "0.8.90")
1608 (source
1609 (origin
1610 (method url-fetch)
5cc3096c 1611 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1612 version ".tar.bz2"))
1613 (sha256
1614 (base32
1615 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1616 (build-system gnu-build-system)
1617 (inputs
1618 `(("perl" ,perl)
1619 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1620 (arguments
1621 '(#:phases
dc1d3cde
KK
1622 (modify-phases %standard-phases
1623 (add-after 'install 'set-load-paths
1624 ;; Tell 'icon-name-mapping' where XML::Simple is.
1625 (lambda* (#:key outputs #:allow-other-keys)
1626 (let* ((out (assoc-ref outputs "out"))
1627 (prog (string-append out "/libexec/icon-name-mapping")))
1628 (wrap-program
1629 prog
1630 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1631 #t)))))
27477d2d
AE
1632 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1633 (synopsis
1634 "Utility to implement the Freedesktop Icon Naming Specification")
1635 (description
1636 "To help with the transition to the Freedesktop Icon Naming
1637Specification, the icon naming utility maps the icon names used by the
1638GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1639 (license license:lgpl2.1+)))
27477d2d 1640
7d3f3651
AE
1641(define-public gnome-icon-theme
1642 (package
1643 (name "gnome-icon-theme")
b32f58dd 1644 (version "3.12.0")
7d3f3651
AE
1645 (source
1646 (origin
1647 (method url-fetch)
1648 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1649 (version-major+minor version) "/"
7d3f3651
AE
1650 name "-" version ".tar.xz"))
1651 (sha256
1652 (base32
b32f58dd 1653 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1654 (build-system gnu-build-system)
5613c27d
SB
1655 (arguments
1656 '(#:configure-flags
1657 ;; Don't create 'icon-theme.cache'.
1658 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1659 (true (string-append coreutils "/bin/true")))
1660 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1661 (native-inputs
5613c27d 1662 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1663 ("intltool" ,intltool)
1664 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1665 (home-page "https://wiki.gnome.org/Personalization")
1666 (synopsis "GNOME icon theme")
1667 (description "Icons for the GNOME desktop.")
1dd26275 1668 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1669
14eeefa2
SB
1670;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1671(define-public adwaita-icon-theme
1672 (package (inherit gnome-icon-theme)
1673 (name "adwaita-icon-theme")
9be59d7f 1674 (version "3.32.0")
14eeefa2
SB
1675 (source (origin
1676 (method url-fetch)
1677 (uri (string-append "mirror://gnome/sources/" name "/"
1678 (version-major+minor version) "/"
1679 name "-" version ".tar.xz"))
1680 (sha256
1681 (base32
9be59d7f 1682 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
5613c27d
SB
1683 (native-inputs
1684 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1685
ae792dba
RW
1686(define-public tango-icon-theme
1687 (package
1688 (name "tango-icon-theme")
1689 (version "0.8.90")
1690 (source (origin
1691 (method url-fetch)
1692 (uri (string-append "http://tango.freedesktop.org/releases/"
1693 "tango-icon-theme-" version ".tar.bz2"))
1694 (sha256
1695 (base32
1696 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1697 (build-system gnu-build-system)
1698 (native-inputs
1699 `(("icon-naming-utils" ,icon-naming-utils)
1700 ("intltool" ,intltool)
1701 ("imagemagick" ,imagemagick)
1702 ("pkg-config" ,pkg-config)))
1703 (home-page "http://tango-project.org/")
1704 (synopsis "Tango icon theme")
1705 (description "This is an icon theme that follows the Tango visual
1706guidelines.")
1707 (license license:public-domain)))
1708
9167f8e6
LC
1709(define-public shared-mime-info
1710 (package
1711 (name "shared-mime-info")
18138ab9 1712 (version "1.10")
9167f8e6
LC
1713 (source (origin
1714 (method url-fetch)
5cc3096c 1715 (uri (string-append "https://freedesktop.org/~hadess/"
b38e45d8 1716 "shared-mime-info-" version ".tar.xz"))
9167f8e6
LC
1717 (sha256
1718 (base32
18138ab9 1719 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
9167f8e6
LC
1720 (build-system gnu-build-system)
1721 (arguments
1722 ;; The build system appears not to be parallel-safe.
1723 '(#:parallel-build? #f))
1724 (inputs
1725 `(("glib" ,glib)
c4c4cc05 1726 ("libxml2" ,libxml2)))
9167f8e6 1727 (native-inputs
c4c4cc05
JD
1728 `(("intltool" ,intltool)
1729 ("pkg-config" ,pkg-config)))
57e7d748 1730 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1731 (synopsis "Database of common MIME types")
1732 (description
1733 "The shared-mime-info package contains the core database of common types
1734and the update-mime-database command used to extend it. It requires glib2 to
1735be installed for building the update command. Additionally, it uses intltool
1736for translations, though this is only a dependency for the maintainers. This
1737database is translated at Transifex.")
1dd26275 1738 (license license:gpl2+)))
9167f8e6 1739
dd1fcddc
CB
1740(define-public system-config-printer
1741 (package
1742 (name "system-config-printer")
fa01e10d 1743 (version "1.5.12")
a5643044
TGR
1744 (source
1745 (origin
1746 (method url-fetch)
1747 (uri (string-append
1748 "https://github.com/OpenPrinting/system-config-printer/releases/"
1749 "download/" version
1750 "/system-config-printer-" version ".tar.xz"))
1751 (sha256
fa01e10d 1752 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1753 (build-system glib-or-gtk-build-system)
1754 (arguments
1755 `(#:imported-modules ((guix build python-build-system)
1756 ,@%glib-or-gtk-build-system-modules)
1757 #:phases
1758 (modify-phases %standard-phases
1759 (add-after 'unpack 'patch-Makefile.am
1760 (lambda _
1761 ;; The Makefile generates some scripts, so set a valid shebang
1762 (substitute* "Makefile.am"
1763 (("/bin/bash") (which "bash")))
1764 (delete-file "configure")
1765 #t))
1766 (add-after 'unpack 'patch-docbook-xml
1767 (lambda* (#:key inputs #:allow-other-keys)
1768 ;; Modify the man XML otherwise xmlto tries to access the network
1769 (substitute* "man/system-config-printer.xml"
1770 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1771 (string-append (assoc-ref inputs "docbook-xml")
1772 "/xml/dtd/docbook/")))
1773 #t))
1774 (add-after 'install 'wrap-for-python
1775 (@@ (guix build python-build-system) wrap))
1776 (add-after 'install 'wrap
1777 (lambda* (#:key outputs #:allow-other-keys)
1778 (let ((out (assoc-ref outputs "out"))
1779 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1780 (for-each
1781 (lambda (program)
1782 (wrap-program program
1783 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1784 (map (lambda (name)
1785 (string-append out "/bin/" name))
1786 '("system-config-printer"
1787 "system-config-printer-applet"
1788 "install-printerdriver"
1789 "scp-dbus-service"))))
1790 #t)))))
1791 (inputs
1792 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1793 ("gobject-introspection" ,gobject-introspection)
1794 ("python" ,python)
1795 ("cups" ,cups)
1796 ("python-dbus" ,python-dbus)
1797 ("python-pygobject" ,python-pygobject)
1798 ("python-pycups" ,python-pycups)
1799 ("python-requests" ,python-requests)
1800 ("python-pycairo" ,python-pycairo)
1801 ("libnotify" ,libnotify)
1802 ("packagekit" ,packagekit)))
1803 (native-inputs
1804 `(("pkg-config" ,pkg-config)
1805 ("desktop-file-utils" ,desktop-file-utils)
1806 ("glib" ,glib)
1807 ("autoconf" ,autoconf)
1808 ("automake" ,automake)
1809 ("intltool" ,intltool)
1810 ("xmlto" ,xmlto)
1811 ("docbook-xml" ,docbook-xml-4.1.2)
1812 ("docbook-xsl" ,docbook-xsl)
1813 ("libxml2" ,libxml2)))
1814 (home-page "https://github.com/zdohnal/system-config-printer")
1815 (synopsis "CUPS administration tool")
1816 (description
1817 "system-config-printer is a CUPS administration tool. It's written in
1818Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1819configuring CUPS.")
1820 (license license:gpl2+)))
1821
bef4dd92
AE
1822(define-public hicolor-icon-theme
1823 (package
1824 (name "hicolor-icon-theme")
851cb6dd 1825 (version "0.17")
bef4dd92
AE
1826 (source
1827 (origin
1828 (method url-fetch)
5cc3096c 1829 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1830 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1831 (sha256
1832 (base32
851cb6dd 1833 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1834 (build-system gnu-build-system)
1835 (arguments
1836 `(#:tests? #f)) ; no check target
57e7d748 1837 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1838 (synopsis
1839 "Freedesktop icon theme")
1840 (description
1841 "Freedesktop icon theme.")
1dd26275 1842 (license license:gpl2)))
bef4dd92 1843
d9c1a22b
AE
1844(define-public libnotify
1845 (package
1846 (name "libnotify")
195bfa68 1847 (version "0.7.7")
d9c1a22b
AE
1848 (source
1849 (origin
1850 (method url-fetch)
1851 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1852 (version-major+minor version) "/"
d9c1a22b
AE
1853 name "-" version ".tar.xz"))
1854 (sha256
1855 (base32
195bfa68 1856 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1857 (build-system gnu-build-system)
6acf6cec
MB
1858 (arguments
1859 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1860 (propagated-inputs
1861 `(;; In Requires of libnotify.pc.
1862 ("gdk-pixbuf" ,gdk-pixbuf)
1863 ("glib" ,glib)))
d9c1a22b 1864 (inputs
7ef08efa 1865 `(("gtk+" ,gtk+)
c4c4cc05
JD
1866 ("libpng" ,libpng)))
1867 (native-inputs
426adbe8 1868 `(("pkg-config" ,pkg-config)
277a7d82
JN
1869 ("glib" ,glib "bin")
1870 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1871 (home-page "https://developer-next.gnome.org/libnotify/")
1872 (synopsis
1873 "GNOME desktop notification library")
1874 (description
1875 "Libnotify is a library that sends desktop notifications to a
35b9e423 1876notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1877notifications can be used to inform the user about an event or display
1878some form of information without getting in the user's way.")
1dd26275 1879 (license license:lgpl2.1+)))
7a8605ce
CR
1880
1881(define-public libpeas
1882 (package
1883 (name "libpeas")
f2d56e39 1884 (version "1.24.1")
7a8605ce
CR
1885 (source
1886 (origin
1887 (method url-fetch)
1888 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1889 (version-major+minor version) "/"
7a8605ce
CR
1890 name "-" version ".tar.xz"))
1891 (sha256
1892 (base32
f2d56e39
MB
1893 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
1894 (build-system meson-build-system)
1895 (arguments
1896 '(#:phases
1897 (modify-phases %standard-phases
1898 (add-before 'check 'start-xserver
1899 (lambda* (#:key inputs #:allow-other-keys)
1900 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1901 (disp ":1"))
1902 (setenv "DISPLAY" disp)
1903 ;; Tests require a running X server.
1904 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
1905 #t))))))
7a8605ce 1906 (inputs
2ed6522a
SB
1907 `(("gtk+" ,gtk+)
1908 ("glade" ,glade3)
2ed6522a
SB
1909 ("python" ,python)
1910 ("python-pygobject" ,python-pygobject)))
141aed80
LC
1911 (native-inputs
1912 `(("pkg-config" ,pkg-config)
f2d56e39 1913 ("gettext" ,gettext-minimal)
93622993 1914 ("glib:bin" ,glib "bin")
141aed80 1915 ("gobject-introspection" ,gobject-introspection)
f2d56e39 1916 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
1917 (propagated-inputs
1918 ;; The .pc file "Requires" gobject-introspection.
1919 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
1920 (home-page "https://wiki.gnome.org/Libpeas")
1921 (synopsis "GObject plugin system")
1922 (description
d1e4ad1b
TGR
1923 "Libpeas is a gobject-based plugin engine, targeted at giving every
1924application the chance to assume its own extensibility. It also has a set of
1925features including, but not limited to: multiple extension points; on-demand
1926(lazy) programming language support for C, Python and JS; simplicity of the
1927API.")
1dd26275 1928 (license license:lgpl2.0+)))
ed19903d
JD
1929
1930(define-public gtkglext
1931 (package
1932 (name "gtkglext")
1933 (version "1.2.0")
1934 (source (origin
1935 (method url-fetch)
0f971a04 1936 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
1937 version "/gtkglext-" version ".tar.gz"))
1938 (sha256
1939 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
1940 (patches (search-patches
1941 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 1942 (build-system gnu-build-system)
14e2f61a
RW
1943 (arguments
1944 `(#:phases
1945 (modify-phases %standard-phases
1946 ;; Fix a collision between a local variable and a definition from
1947 ;; glibc's string.h.
1948 (add-after 'unpack 'fix-collision
1949 (lambda _
1950 (substitute* "gdk/gdkglshapes.c"
1951 ((" index") " triangle_index"))
1952 #t)))))
ed19903d
JD
1953 (inputs `(("gtk+" ,gtk+-2)
1954 ("mesa" ,mesa)
cc8b02f4 1955 ("glu" ,glu)
ed19903d
JD
1956 ("libx11" ,libx11)
1957 ("libxt" ,libxt)))
426adbe8
LC
1958 (native-inputs `(("pkg-config" ,pkg-config)
1959 ("glib" ,glib "bin")))
a83b6a06 1960 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 1961 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 1962 (synopsis "OpenGL extension to GTK+")
35b9e423 1963 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
1964additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1965API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 1966 (license license:lgpl2.1+)))
3600420e
JD
1967
1968(define-public glade3
1969 (package
1970 (name "glade")
c6571adb 1971 (version "3.22.1")
b38e45d8
EB
1972 (source (origin
1973 (method url-fetch)
1974 (uri (string-append "mirror://gnome/sources/" name "/"
1975 (version-major+minor version) "/"
f5ca44b8 1976 name "-" version ".tar.xz"))
3600420e 1977 (sha256
f714d9fe 1978 (base32
c6571adb 1979 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 1980 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
1981 (arguments
1982 `(#:tests? #f ; needs X, GL, and software rendering
1983 #:phases
1984 (modify-phases %standard-phases
1985 (add-before 'configure 'fix-docbook
1986 (lambda* (#:key inputs #:allow-other-keys)
1987 (substitute* "man/Makefile.in"
1988 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1989 (string-append (assoc-ref inputs "docbook-xsl")
1990 "/xml/xsl/docbook-xsl-"
1991 ,(package-version docbook-xsl)
1992 "/manpages/docbook.xsl")))
1993 #t)))))
3600420e 1994 (inputs
f5ca44b8 1995 `(("gtk+" ,gtk+)
3600420e
JD
1996 ("libxml2" ,libxml2)))
1997 (native-inputs
1998 `(("intltool" ,intltool)
f5ca44b8
RW
1999 ("itstool" ,itstool)
2000 ("libxslt" ,libxslt) ;for xsltproc
2001 ("docbook-xml" ,docbook-xml-4.2)
2002 ("docbook-xsl" ,docbook-xsl)
2003 ("python" ,python-2)
3600420e
JD
2004 ("pkg-config" ,pkg-config)))
2005 (home-page "https://glade.gnome.org")
2006 (synopsis "GTK+ rapid application development tool")
2007 (description "Glade is a rapid application development (RAD) tool to
2008enable quick & easy development of user interfaces for the GTK+ toolkit and
2009the GNOME desktop environment.")
1dd26275
LC
2010 (license license:lgpl2.0+)))
2011
2012(define-public libcroco
2013 (package
2014 (name "libcroco")
8bdacad2 2015 (version "0.6.13")
1dd26275
LC
2016 (source (origin
2017 (method url-fetch)
b38e45d8
EB
2018 (uri (string-append "mirror://gnome/sources/" name "/"
2019 (version-major+minor version) "/"
2020 name "-" version ".tar.xz"))
1dd26275
LC
2021 (sha256
2022 (base32
8bdacad2 2023 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2024 (build-system gnu-build-system)
2025 (native-inputs
2026 `(("pkg-config" ,pkg-config)))
2027 (inputs
2028 `(("glib" ,glib)
2029 ("libxml2" ,libxml2)
2030 ("zlib" ,zlib)))
2031 (home-page "https://github.com/GNOME/libcroco")
2032 (synopsis "CSS2 parsing and manipulation library")
2033 (description
2034 "Libcroco is a standalone CSS2 parsing and manipulation library.
2035The parser provides a low level event driven SAC-like API and a CSS object
2036model like API. Libcroco provides a CSS2 selection engine and an experimental
2037XML/CSS rendering engine.")
2038
2039 ;; LGPLv2.1-only.
2040 (license license:lgpl2.1)))
25178594
LC
2041
2042(define-public libgsf
2043 (package
2044 (name "libgsf")
8d1644a1 2045 (version "1.14.46")
25178594
LC
2046 (source (origin
2047 (method url-fetch)
b38e45d8
EB
2048 (uri (string-append "mirror://gnome/sources/" name "/"
2049 (version-major+minor version) "/"
2050 name "-" version ".tar.xz"))
25178594
LC
2051 (sha256
2052 (base32
8d1644a1 2053 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
25178594
LC
2054 (build-system gnu-build-system)
2055 (native-inputs
2056 `(("intltool" ,intltool)
2057 ("pkg-config" ,pkg-config)))
2058 (inputs
2059 `(("python" ,python)
2060 ("zlib" ,zlib)
2061 ("bzip2" ,bzip2)))
2062 (propagated-inputs
2063 `(("gdk-pixbuf" ,gdk-pixbuf)
2064 ("glib" ,glib)
2065 ("libxml2" ,libxml2)))
f032d0be 2066 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2067 (synopsis "GNOME's Structured File Library")
2068 (description
2069 "Libgsf aims to provide an efficient extensible I/O abstraction for
2070dealing with different structured file formats.")
2071
2072 ;; LGPLv2.1-only.
2073 (license license:lgpl2.1)))
63016e7c
LC
2074
2075(define-public librsvg
f67417a1
MB
2076 (package
2077 (name "librsvg")
2078 (version "2.40.20")
2079 (source (origin
2080 (method url-fetch)
2081 (uri (string-append "mirror://gnome/sources/" name "/"
2082 (version-major+minor version) "/"
2083 name "-" version ".tar.xz"))
2084 (sha256
2085 (base32
2086 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
2087 (build-system gnu-build-system)
2088 (arguments
2089 `(#:configure-flags
2090 (list "--disable-static"
2091 "--enable-vala") ; needed for e.g. gnome-mines
2092 #:phases
2093 (modify-phases %standard-phases
2094 (add-before 'configure 'pre-configure
2095 (lambda* (#:key inputs #:allow-other-keys)
2096 (substitute* "gdk-pixbuf-loader/Makefile.in"
2097 ;; By default the gdk-pixbuf loader is installed under
2098 ;; gdk-pixbuf's prefix. Work around that.
2099 (("gdk_pixbuf_moduledir = .*$")
2100 (string-append "gdk_pixbuf_moduledir = "
2101 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2102 "loaders\n"))
2103 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2104 (("gdk_pixbuf_cache_file = .*$")
2105 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2106 #t))
2107 (add-before 'check 'remove-failing-tests
2108 (lambda _
2109 (with-directory-excursion "tests/fixtures/reftests"
2110 (for-each delete-file
2111 '(;; This test fails on i686:
2112 "svg1.1/masking-path-04-b.svg"
2113 ;; This test fails on armhf:
2114 "svg1.1/masking-mask-01-b.svg"
2115 ;; This test fails on aarch64:
2116 "bugs/777834-empty-text-children.svg")))
2117 #t)))))
2118 (native-inputs
2119 `(("pkg-config" ,pkg-config)
2120 ("vala" ,vala)
2121 ("glib" ,glib "bin") ; glib-mkenums, etc.
2122 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2123 (inputs
2124 `(("pango" ,pango)
2125 ("libcroco" ,libcroco)
2126 ("bzip2" ,bzip2)
2127 ("libgsf" ,libgsf)
2128 ("libxml2" ,libxml2)))
2129 (propagated-inputs
2130 ;; librsvg-2.0.pc refers to all of that.
2131 `(("cairo" ,cairo)
2132 ("gdk-pixbuf" ,gdk-pixbuf)
2133 ("glib" ,glib)))
2134 (home-page "https://wiki.gnome.org/LibRsvg")
2135 (synopsis "Render SVG files using Cairo")
2136 (description
2137 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2138library.")
2139 (license license:lgpl2.0+)))
2140
8f523eb9
EF
2141(define* (computed-origin-method gexp-promise hash-algo hash
2142 #:optional (name "source")
2143 #:key (system (%current-system))
2144 (guile (default-guile)))
2145 "Return a derivation that executes the G-expression that results
2146from forcing GEXP-PROMISE."
2147 (mlet %store-monad ((guile (package->derivation guile system)))
2148 (gexp->derivation (or name "computed-origin")
2149 (force gexp-promise)
2150 #:graft? #f ;nothing to graft
2151 #:system system
2152 #:guile-for-build guile)))
2153
2154(define librsvg-next-source
2155 (let* ((version "2.46.3")
2156 (upstream-source (origin
2157 (method url-fetch)
2158 (uri (string-append "mirror://gnome/sources/librsvg/"
2159 (version-major+minor version) "/"
2160 "librsvg-" version ".tar.xz"))
2161 (sha256
2162 (base32
2163 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
2164 (origin
2165 (method computed-origin-method)
2166 (file-name (string-append "librsvg-" version ".tar.xz"))
2167 (sha256 #f)
2168 (uri
2169 (delay
2170 (with-imported-modules '((guix build utils))
2171 #~(begin
2172 (use-modules (guix build utils))
2173 (set-path-environment-variable
2174 "PATH" '("bin")
2175 (list "/tmp"
2176 #+(canonical-package xz)
2177 #+(canonical-package gzip)
2178 #+(canonical-package tar)))
2179 (invoke "tar" "xvf" #+upstream-source)
2180 (with-directory-excursion (string-append "librsvg-" #$version)
91f0c790
JS
2181 ;; The following crate(s) are needed in addition to the ones replaced:
2182 (begin
2183 (invoke
2184 "tar" "xvf" #+(package-source rust-autocfg-0.1) "-C" "vendor"))
8f523eb9
EF
2185 (for-each
2186 (lambda (crate)
2187 (delete-file-recursively (string-append "vendor/" (car crate)))
2188 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
393d7214 2189 '(("aho-corasick" . #+(package-source rust-aho-corasick-0.7))
8f523eb9 2190;; alga 0.9
e19cb895
EF
2191 ("approx" . #+(package-source rust-approx-0.3))
2192 ("arrayvec" . #+(package-source rust-arrayvec-0.4))
8f523eb9 2193 ("atty" . #+(package-source rust-atty-0.2))
91f0c790 2194 ("autocfg" . #+(package-source rust-autocfg-1.0))
8f523eb9
EF
2195 ("bitflags" . #+(package-source rust-bitflags-1))
2196;; block 0.1
e19cb895
EF
2197 ("bstr" . #+(package-source rust-bstr-0.2))
2198 ("byteorder" . #+(package-source rust-byteorder-1.3))
8f523eb9
EF
2199;; cairo-rs 0.7
2200;; cairo-sys-rs 0.9
e19cb895 2201 ("cast" . #+(package-source rust-cast-0.2))
8f523eb9
EF
2202 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
2203 ("clap" . #+(package-source rust-clap-2))
e19cb895
EF
2204 ("cloudabi" . #+(package-source rust-cloudabi-0.0))
2205 ("criterion" . #+(package-source rust-criterion-0.2))
2206 ("criterion-plot" . #+(package-source rust-criterion-plot-0.3))
393d7214
JS
2207 ("crossbeam-deque" . #+(package-source rust-crossbeam-deque-0.7))
2208 ("crossbeam-epoch" . #+(package-source rust-crossbeam-epoch-0.8))
2209 ("crossbeam-queue" . #+(package-source rust-crossbeam-queue-0.2))
2210 ("crossbeam-utils" . #+(package-source rust-crossbeam-utils-0.7))
8f523eb9
EF
2211;; cssparser 0.25
2212;; cssparser-macros 0.3
e19cb895
EF
2213 ("csv" . #+(package-source rust-csv-1.1))
2214 ("csv-core" . #+(package-source rust-csv-core-0.1))
8f523eb9
EF
2215;; data-url 0.1
2216;; downcast-rs 1.0
2217 ("dtoa" . #+(package-source rust-dtoa-0.4))
2218;; dtoa-short 0.3
e19cb895
EF
2219 ("either" . #+(package-source rust-either-1.5))
2220 ("encoding" . #+(package-source rust-encoding-0.2))
2221 ("encoding-index-japanese" . #+(package-source rust-encoding-index-japanese-1.20141219))
2222 ("encoding-index-korean" . #+(package-source rust-encoding-index-korean-1.20141219))
2223 ("encoding-index-simpchinese" . #+(package-source rust-encoding-index-simpchinese-1.20141219))
2224 ("encoding-index-singlebyte" . #+(package-source rust-encoding-index-singlebyte-1.20141219))
2225 ("encoding-index-tradchinese" . #+(package-source rust-encoding-index-tradchinese-1.20141219))
2226 ("encoding_index_tests" . #+(package-source rust-encoding-index-tests-0.1))
8f523eb9
EF
2227;; float-cmp 0.5
2228;; fragile 0.3
e19cb895
EF
2229 ("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
2230 ("futf" . #+(package-source rust-futf-0.1))
8f523eb9
EF
2231;; gdk-pixbuf 0.7
2232;; gdk-pixbuf-sys 0.9
e19cb895 2233 ("generic-array" . #+(package-source rust-generic-array-0.12))
8f523eb9
EF
2234;; gio 0.7
2235;; gio-sys 0.9
2236;; glib 0.8
2237;; glib-sys 0.9
2238;; gobject-sys 0.9
393d7214 2239 ("idna" . #+(package-source rust-idna-0.2))
e19cb895 2240 ("itertools" . #+(package-source rust-itertools-0.8))
8f523eb9 2241 ("itoa" . #+(package-source rust-itoa-0.4))
e19cb895 2242 ("language-tags" . #+(package-source rust-language-tags-0.2))
21c8ec75 2243 ("lazy_static" . #+(package-source rust-lazy-static-1))
8f523eb9 2244 ("libc" . #+(package-source rust-libc-0.2))
91f0c790 2245 ("libm" . #+(package-source rust-libm-0.1))
8f523eb9
EF
2246;; locale_config 0.3
2247 ("log" . #+(package-source rust-log-0.4))
e19cb895 2248 ("mac" . #+(package-source rust-mac-0.1))
8f523eb9
EF
2249;; malloc_buf 0.0
2250;; markup5ever 0.9
e19cb895 2251 ("matches" . #+(package-source rust-matches-0.1))
8f523eb9 2252;; matrixmultiply 0.2
393d7214
JS
2253 ("memchr" . #+(package-source rust-memchr-2.2))
2254 ("memoffset" . #+(package-source rust-memoffset-0.5))
8f523eb9 2255;; nalgebra 0.18
e19cb895 2256 ("new_debug_unreachable" . #+(package-source rust-new-debug-unreachable-1.0))
8f523eb9 2257 ("nodrop" . #+(package-source rust-nodrop-0.1))
e19cb895 2258 ("num-complex" . #+(package-source rust-num-complex-0.2))
8f523eb9
EF
2259 ("num-integer" . #+(package-source rust-num-integer-0.1))
2260;; num-rational 0.2
2261 ("num-traits" . #+(package-source rust-num-traits-0.2))
2262 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
2263;; objc 0.2
2264;; objc-foundation 0.1
2265;; objc_id 0.1
2266;; pango 0.7
2267;; pango-sys 0.9
2268;; pangocairo 0.8
2269;; pangocairo-sys 0.10
2270 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
e19cb895
EF
2271 ("phf" . #+(package-source rust-phf-0.7))
2272 ("phf_codegen" . #+(package-source rust-phf-codegen-0.7))
2273 ("phf_generator" . #+(package-source rust-phf-generator-0.7))
2274 ("phf_shared" . #+(package-source rust-phf-shared-0.7))
2275 ("pkg-config" . #+(package-source rust-pkg-config-0.3))
2276 ("precomputed-hash" . #+(package-source rust-precomputed-hash-0.1))
8f523eb9
EF
2277 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
2278;; procedural-masquerade 0.1
2279 ("quote" . #+(package-source rust-quote-1.0))
e19cb895 2280 ("rand" . #+(package-source rust-rand-0.6))
8f523eb9
EF
2281 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
2282 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
2283 ("rand_core" . #+(package-source rust-rand-core-0.4))
2284 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
2285 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
2286 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
2287 ("rand_os" . #+(package-source rust-rand-os-0.1))
2288 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
2289 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
393d7214 2290 ("rand_xoshiro" . #+(package-source rust-rand-xoshiro-0.1))
e19cb895 2291;; rawpointer 0.2
393d7214
JS
2292 ("rayon" . #+(package-source rust-rayon-1.3))
2293 ("rayon-core" . #+(package-source rust-rayon-core-1.7))
8f523eb9
EF
2294;; rctree 0.3
2295 ("rdrand" . #+(package-source rust-rdrand-0.4))
393d7214 2296 ("regex" . #+(package-source rust-regex-1.3))
e19cb895 2297 ("regex-automata" . #+(package-source rust-regex-automata-0.1))
393d7214 2298 ("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
e19cb895 2299 ("rustc_version" . #+(package-source rust-rustc-version-0.2))
8f523eb9
EF
2300 ("ryu" . #+(package-source rust-ryu-1.0))
2301 ("same-file" . #+(package-source rust-same-file-1.0))
2302 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
e19cb895
EF
2303 ("semver" . #+(package-source rust-semver-0.9))
2304 ("semver-parser" . #+(package-source rust-semver-parser-0.7))
8f523eb9
EF
2305 ("serde" . #+(package-source rust-serde-1.0))
2306 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
2307 ("serde_json" . #+(package-source rust-serde-json-1.0))
e19cb895
EF
2308 ("siphasher" . #+(package-source rust-siphasher-0.2))
2309 ("smallvec" . #+(package-source rust-smallvec-0.6))
2310 ("string_cache" . #+(package-source rust-string-cache-0.7))
2311 ;("string_cache_codegen" . #+(package-source rust-string-cache-codegen-0.4))
2312 ("string_cache_shared" . #+(package-source rust-string-cache-shared-0.3))
8f523eb9 2313 ("syn" . #+(package-source rust-syn-1.0))
e19cb895 2314 ("tendril" . #+(package-source rust-tendril-0.4))
8f523eb9 2315 ("textwrap" . #+(package-source rust-textwrap-0.11))
393d7214 2316 ("thread_local" . #+(package-source rust-thread-local-1.0))
e19cb895
EF
2317 ("tinytemplate" . #+(package-source rust-tinytemplate-1.0))
2318 ("typenum" . #+(package-source rust-typenum-1.10))
2319 ("unicode-bidi" . #+(package-source rust-unicode-bidi-0.3))
2320 ("unicode-normalization" . #+(package-source rust-unicode-normalization-0.1))
8f523eb9
EF
2321 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
2322 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
393d7214 2323 ("url" . #+(package-source rust-url-2.1))
e19cb895 2324 ("utf-8" . #+(package-source rust-utf-8-0.7))
8f523eb9
EF
2325 ("walkdir" . #+(package-source rust-walkdir-2.2))
2326 ("winapi" . #+(package-source rust-winapi-0.3))
e19cb895 2327 ("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
8f523eb9 2328 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
e19cb895 2329 ("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
8f523eb9
EF
2330;; xml-rs 0.8
2331 )))
2332 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
2333 (force-output)
2334 (invoke "tar" "cfa" #$output
2335 ;; Avoid non-determinism in the archive. We set the
2336 ;; mtime of files in the archive to early 1980 because
2337 ;; the build process fails if the mtime of source
2338 ;; files is pre-1980, due to the creation of zip
2339 ;; archives.
2340 "--mtime=@315619200" ; 1980-01-02 UTC
2341 "--owner=root:0"
2342 "--group=root:0"
2343 "--sort=name"
2344 (string-append "librsvg-" #$version))
2345 #t)))))))
2346
f67417a1 2347(define-public librsvg-next
63016e7c
LC
2348 (package
2349 (name "librsvg")
cf9dad6c 2350 (version "2.46.3")
8f523eb9 2351 (source librsvg-next-source)
63016e7c
LC
2352 (build-system gnu-build-system)
2353 (arguments
d953418a
RW
2354 `(#:configure-flags
2355 (list "--disable-static"
2356 "--enable-vala") ; needed for e.g. gnome-mines
7e0f4cb1 2357 #:make-flags '("CC=gcc")
8f523eb9 2358 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
ec47c07d 2359 #:phases
b6239e45 2360 (modify-phases %standard-phases
8f523eb9 2361 (add-after 'configure 'patch-cargo-checksums
ec47c07d 2362 (lambda _
8f523eb9
EF
2363 (use-modules (guix build cargo-utils))
2364 (substitute* "librsvg/Cargo.toml"
2365 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
b665a246 2366 (generate-all-checksums "vendor")
8f523eb9
EF
2367 (delete-file "Cargo.lock")
2368 (invoke "cargo" "generate-lockfile")))
b6239e45
EF
2369 (add-before 'configure 'pre-configure
2370 (lambda* (#:key inputs #:allow-other-keys)
2371 (substitute* "gdk-pixbuf-loader/Makefile.in"
2372 ;; By default the gdk-pixbuf loader is installed under
2373 ;; gdk-pixbuf's prefix. Work around that.
2374 (("gdk_pixbuf_moduledir = .*$")
2375 (string-append "gdk_pixbuf_moduledir = "
2376 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2377 "loaders\n"))
2378 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2379 (("gdk_pixbuf_cache_file = .*$")
2380 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2381 #t))
ec47c07d 2382 (add-before 'check 'remove-failing-tests
b6239e45 2383 (lambda _
64a153bd
MW
2384 (with-directory-excursion "tests/fixtures/reftests"
2385 (for-each delete-file
ec47c07d
MB
2386 '(;; The images produced by these tests differ slightly
2387 ;; from their reference counterparts due to differences
2388 ;; in the build environment (missing fonts, etc). See
2389 ;; <tests/README.md> for details.
2390 ;; These fail on x86_64.
2391 "svg1.1/coords-viewattr-02-b.svg"
2392 "svg1.1/filters-composite-04-f.svg"
2393 "svg1.1/filters-image-01-b.svg"
2394 "svg1.1/filters-conv-02-f.svg"
2395 "svg1.1/filters-conv-04-f.svg"
2396 ;; This test fails on i686:
64a153bd 2397 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2398 ;; This test fails on armhf:
2399 "svg1.1/masking-mask-01-b.svg"
64a153bd 2400 ;; This test fails on aarch64:
ec47c07d 2401 "bugs/777834-empty-text-children.svg")))
b6239e45 2402 #t)))))
63016e7c
LC
2403 (native-inputs
2404 `(("pkg-config" ,pkg-config)
64855281
MB
2405 ;; This is the minimum supported Rust version in Librsvg 2.46.
2406 ("rust" ,rust-1.34)
2407 ("cargo" ,rust-1.34 "cargo")
d953418a 2408 ("vala" ,vala)
44add1ce 2409 ("glib" ,glib "bin") ; glib-mkenums, etc.
63016e7c
LC
2410 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2411 (inputs
2412 `(("pango" ,pango)
2413 ("libcroco" ,libcroco)
2414 ("bzip2" ,bzip2)
2415 ("libgsf" ,libgsf)
2416 ("libxml2" ,libxml2)))
2417 (propagated-inputs
2418 ;; librsvg-2.0.pc refers to all of that.
2419 `(("cairo" ,cairo)
2420 ("gdk-pixbuf" ,gdk-pixbuf)
2421 ("glib" ,glib)))
2422 (home-page "https://wiki.gnome.org/LibRsvg")
2423 (synopsis "Render SVG files using Cairo")
2424 (description
35b9e423 2425 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
63016e7c 2426library.")
cf9dad6c 2427 (license license:lgpl2.1+)))
5698b8b8
JD
2428
2429(define-public libidl
2430 (package
2431 (name "libidl")
2432 (version "0.8.14")
2433 (source (origin
2434 (method url-fetch)
80a06e62
EF
2435 (uri (string-append "mirror://gnome/sources/libIDL/"
2436 (version-major+minor version) "/"
2437 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2438 (sha256
2439 (base32
2440 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2441 (build-system gnu-build-system)
2442 (inputs `(("glib" ,glib)))
2443 (native-inputs
2444 `(("pkg-config" ,pkg-config)
b3546174 2445 ("flex" ,flex)
5698b8b8
JD
2446 ("bison" ,bison)))
2447 (home-page "http://freecode.com/projects/libidl")
2448 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2449 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2450Definition Language (idl) files, which is a specification for defining
2451portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2452GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2453functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2454 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2455 (license license:lgpl2.0+)))
2456
2457
2458(define-public orbit2
2459 (package
2460 (name "orbit2")
2461 (version "2.14.19")
2462 (source (origin
2463 (method url-fetch)
2e6ecc5c 2464 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2465 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2466 (version-major+minor version) "/"
2467 upstream-name "-" version ".tar.bz2")))
5698b8b8 2468 (sha256
a124bbd2
SB
2469 (base32
2470 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2471 (build-system gnu-build-system)
2472 (arguments
a124bbd2 2473 `(#:configure-flags
8aad2e32
LC
2474 '(;; We don't need static libraries, plus they don't build reproducibly
2475 ;; (non-deterministic ordering of .o files in the archive.)
2476 "--disable-static"
2477
2478 ;; The programmer kindly gives us a hook to turn off deprecation
2479 ;; warnings ...
2480 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2481 ;; ... which they then completly ignore !!
2482 #:phases
dc1d3cde
KK
2483 (modify-phases %standard-phases
2484 (add-before 'configure 'ignore-deprecations
2485 (lambda _
2486 (substitute* "linc2/src/Makefile.in"
2487 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2488 #t)))))
5698b8b8
JD
2489 (inputs `(("glib" ,glib)
2490 ("libidl" ,libidl)))
2491 (native-inputs
2492 `(("pkg-config" ,pkg-config)))
2493 (home-page "https://projects.gnome.org/orbit2/")
2494 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2495 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2496featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2497 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2498 ;; a version. SOME of the code files have licence notices for GPLv2+.
2499 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2500 (license license:gpl2+)
2501 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2502
2503
2504(define-public libbonobo
2505 (package
2506 (name "libbonobo")
2507 (version "2.32.1")
2508 (source (origin
2509 (method url-fetch)
5becd025 2510 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2511 (version-major+minor version)
5becd025 2512 "/" name "-" version ".tar.bz2"))
5698b8b8 2513 (sha256
f1fc45a9 2514 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2515 (patches (search-patches
2516 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2517 (build-system gnu-build-system)
2518 (arguments
2519 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2520 `(#:configure-flags
2521 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2522 ;; ... which they then completly ignore !!
2523 #:phases
dc1d3cde
KK
2524 (modify-phases %standard-phases
2525 (add-before 'configure 'ignore-deprecations
2526 (lambda _
2527 (substitute* "activation-server/Makefile.in"
2528 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2529 #t)))
2530
2531 ;; There's apparently a race condition between the server stub
2532 ;; generation and linking of the example under 'samples/echo' that can
2533 ;; lead do undefined references when building in parallel, as reported
2534 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2535 ;; Thus, disable parallel builds.
2536 #:parallel-build? #f))
5698b8b8
JD
2537 (inputs `(("popt" ,popt)
2538 ("libxml2" ,libxml2)))
2539 ;; The following are Required by the .pc file
44add1ce 2540 (propagated-inputs
5698b8b8
JD
2541 `(("glib" ,glib)
2542 ("orbit2" ,orbit2)))
2543 (native-inputs
2544 `(("intltool" ,intltool)
2545 ("pkg-config" ,pkg-config)
221ed17a 2546 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2547 ("flex" ,flex)
2548 ("bison" ,bison)))
2549 (home-page "https://developer.gnome.org/libbonobo/")
2550 (synopsis "Framework for creating reusable components for use in GNOME applications")
2551 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2552use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2553 ;; Licence not explicitly stated. Source files contain no licence notices.
2554 ;; Tarball contains text of both GPLv2 and LGPLv2
2555 ;; GPLv2 covers both conditions
2556 (license license:gpl2+)))
2557
2558
2559(define-public gconf
2560 (package
2561 (name "gconf")
2562 (version "3.2.6")
2563 (source (origin
2564 (method url-fetch)
a124bbd2
SB
2565 (uri
2566 (let ((upstream-name "GConf"))
2567 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2568 (version-major+minor version) "/"
2569 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2570 (sha256
2571 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2572 (build-system gnu-build-system)
2e88d113 2573 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2574 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2575 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2576 ("orbit2" ,orbit2)))
5698b8b8
JD
2577 (native-inputs
2578 `(("intltool" ,intltool)
221ed17a 2579 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2580 ("pkg-config" ,pkg-config)))
2581 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2582 (synopsis "Store application preferences")
2583 (description "Gconf is a system for storing application preferences. It
2584is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2585 (license license:lgpl2.0+)
2586 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2587
2588
2589(define-public gnome-mime-data
2590 (package
2591 (name "gnome-mime-data")
2592 (version "2.18.0")
2593 (source (origin
2594 (method url-fetch)
b38e45d8
EB
2595 (uri (string-append "mirror://gnome/sources/" name "/"
2596 (version-major+minor version) "/"
2597 name "-" version ".tar.bz2"))
5698b8b8
JD
2598 (sha256
2599 (base32
2600 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2601 (build-system gnu-build-system)
2602 (native-inputs
2603 `(("perl" ,perl)
2604 ("intltool" ,intltool)))
3e6add96
LC
2605 (arguments
2606 '(#:phases (modify-phases %standard-phases
2607 (add-after 'configure 'use-our-intltool
2608 (lambda _
2609 ;; Do not use the bundled intltool commands, which lack
2610 ;; the "dotless @INC" fixes of our 'intltool' package.
2611 (substitute* (find-files "." "^Makefile$")
2612 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2613 (string-append "INTLTOOL_" tool " = intltool-"
2614 (string-downcase tool) "\n")))
2615 #t)))))
f032d0be 2616 (home-page "https://www.gnome.org")
35b9e423 2617 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2618 (description "GNOME Mime Data is a module which contains the base MIME
2619and Application database for GNOME. The data stored by this module is
2620designed to be accessed through the MIME functions in GnomeVFS.")
2621 (license license:gpl2+)))
2622
2623
2624(define-public gnome-vfs
2625 (package
2626 (name "gnome-vfs")
2627 (version "2.24.4")
2628 (source (origin
2629 (method url-fetch)
b38e45d8
EB
2630 (uri (string-append "mirror://gnome/sources/" name "/"
2631 (version-major+minor version) "/"
2632 name "-" version ".tar.bz2"))
5698b8b8 2633 (sha256
9e12bc34
MW
2634 (base32
2635 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2636 (build-system gnu-build-system)
2637 (arguments
db5127d8 2638 `(#:phases
dc1d3cde
KK
2639 (modify-phases %standard-phases
2640 (add-before 'configure 'ignore-deprecations
2641 (lambda _
2642 (substitute* '("libgnomevfs/Makefile.in"
2643 "daemon/Makefile.in")
2644 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2645 #t))
2646 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2647 (lambda _
2648 (substitute* "test/test-async-cancel.c"
2649 (("EXIT_FAILURE") "77"))
2650 #t)))))
2e6ecc5c 2651 (inputs `(("libxml2" ,libxml2)
5698b8b8 2652 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2653 ("gconf" ,gconf)
2654 ("gnome-mime-data" ,gnome-mime-data)
2655 ("zlib" ,zlib)))
2656 (native-inputs
221ed17a
EB
2657 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2658 ("intltool" ,intltool)
5698b8b8
JD
2659 ("pkg-config" ,pkg-config)))
2660 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2661 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2662 (description
2663 "GnomeVFS is the core library used to access files and folders in GNOME
2664applications. It provides a file system abstraction which allows applications
2665to access local and remote files with a single consistent API.")
5698b8b8
JD
2666 (license license:lgpl2.0+)))
2667
2668
2669
2670(define-public libgnome
2671 (package
2672 (name "libgnome")
2673 (version "2.32.1")
2674 (source (origin
2675 (method url-fetch)
b38e45d8
EB
2676 (uri (string-append "mirror://gnome/sources/" name "/"
2677 (version-major+minor version) "/"
2678 name "-" version ".tar.bz2"))
5698b8b8
JD
2679 (sha256
2680 (base32
17c3eea7
LC
2681 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2682 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2683 (build-system gnu-build-system)
2684 (arguments
2685 `(#:phases
dc1d3cde
KK
2686 (modify-phases %standard-phases
2687 (add-before 'configure 'enable-deprecated
2688 (lambda _
2689 (substitute* "libgnome/Makefile.in"
2690 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2691 #t)))))
25338e9f 2692 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2693 (native-inputs
221ed17a
EB
2694 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2695 ("intltool" ,intltool)
5698b8b8
JD
2696 ("pkg-config" ,pkg-config)))
2697 ;; The following are listed as Required in the .pc file
2698 ;; (except for libcanberra -- which seems to be oversight on the part
2699 ;; of the upstream developers -- anything that links against libgnome,
2700 ;; must also link against libcanberra
2701 (propagated-inputs
2702 `(("libcanberra" ,libcanberra)
2703 ("libbonobo" ,libbonobo)
2704 ("gconf" ,gconf)
a640d3d5
LC
2705 ("gnome-vfs" ,gnome-vfs)
2706 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2707 (home-page "https://developer.gnome.org/libgnome/")
2708 (synopsis "Useful routines for building applications")
2709 (description "The libgnome library provides a number of useful routines
2710for building modern applications, including session management, activation of
2711files and URIs, and displaying help.")
2712 (license license:lgpl2.0+)))
2713
2714
2715(define-public libart-lgpl
2716 (package
2717 (name "libart-lgpl")
76c9b6aa 2718 (version "2.3.21")
5698b8b8
JD
2719 (source (origin
2720 (method url-fetch)
2721 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2722 (string-append "mirror://gnome/sources/" upstream-name "/"
2723 (version-major+minor version) "/"
2724 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2725 (sha256
2726 (base32
76c9b6aa 2727 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2728 (build-system gnu-build-system)
2729 (native-inputs
2730 `(("pkg-config" ,pkg-config)))
2731 (home-page "https://people.gnome.org/~mathieu/libart")
2732 (synopsis "2D drawing library")
2e6ecc5c 2733 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2734high-quality vector-based 2D library with antialiasing and alpha composition.")
2735 (license license:lgpl2.0+)))
2736
2737
2738
2739(define-public libgnomecanvas
2740 (package
2741 (name "libgnomecanvas")
2742 (version "2.30.3")
2743 (source (origin
2744 (method url-fetch)
b38e45d8
EB
2745 (uri (string-append "mirror://gnome/sources/" name "/"
2746 (version-major+minor version) "/"
2747 name "-" version ".tar.gz"))
5698b8b8
JD
2748 (sha256
2749 (base32
2750 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2751 (build-system gnu-build-system)
2752 ;; Mentioned as Required in the .pc file
2753 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2754 ("gtk+" ,gtk+-2)))
2755 (native-inputs
2756 `(("intltool" ,intltool)
221ed17a 2757 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2758 ("pkg-config" ,pkg-config)))
2759 (home-page "https://developer.gnome.org/libgnomecanvas/")
2760 (synopsis "Flexible widget for creating interactive structured graphics")
2761 (description "The GnomeCanvas widget provides a flexible widget for
2762creating interactive structured graphics.")
2763 (license license:lgpl2.0+)))
2764
eadc734e
RW
2765(define-public libgnomecanvasmm
2766 (package
2767 (name "libgnomecanvasmm")
2768 (version "2.26.0")
2769 (source (origin
2770 (method url-fetch)
2771 (uri (string-append "mirror://gnome/sources/" name "/"
2772 (version-major+minor version) "/"
2773 name "-" version ".tar.bz2"))
2774 (sha256
2775 (base32
2776 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2777 (build-system gnu-build-system)
2778 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2779 (native-inputs
2780 `(("gtkmm-2" ,gtkmm-2)
2781 ("pkg-config" ,pkg-config)))
8e933cb3 2782 (home-page "https://gtkmm.org")
eadc734e
RW
2783 (synopsis "C++ bindings to the GNOME Canvas library")
2784 (description "C++ bindings to the GNOME Canvas library.")
2785 (license license:lgpl2.0+)))
2786
5698b8b8
JD
2787(define-public libgnomeui
2788 (package
2789 (name "libgnomeui")
2790 (version "2.24.5")
2791 (source (origin
2792 (method url-fetch)
b38e45d8
EB
2793 (uri (string-append "mirror://gnome/sources/" name "/"
2794 (version-major+minor version) "/"
2795 name "-" version ".tar.bz2"))
8fa1872a 2796 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2797 (sha256
2798 (base32
2799 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2800 (build-system gnu-build-system)
2801 ;; Mentioned as Required in the .pc file
0a38a497
AE
2802 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2803 ("libgnome" ,libgnome)
2804 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2805 ("libgnome-keyring" ,libgnome-keyring)))
0a38a497 2806 (inputs `(("libjpeg" ,libjpeg)
5698b8b8
JD
2807 ("popt" ,popt)
2808 ("libbonobo" ,libbonobo)
2809 ("libxml2" ,libxml2)
2810 ("libglade" ,libglade)))
2811 (native-inputs
221ed17a
EB
2812 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2813 ("intltool" ,intltool)
5698b8b8
JD
2814 ("pkg-config" ,pkg-config)))
2815 (home-page "https://developer.gnome.org/libgnomeui/")
2816 (synopsis "Additional widgets for applications")
35b9e423 2817 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2818applications. Many of the widgets from libgnomeui have already been
2819ported to GTK+.")
5698b8b8
JD
2820 (license license:lgpl2.0+)))
2821
2822(define-public libglade
2823 (package
2824 (name "libglade")
2825 (version "2.6.4")
2826 (source (origin
2827 (method url-fetch)
b38e45d8
EB
2828 (uri (string-append "mirror://gnome/sources/" name "/"
2829 (version-major+minor version) "/"
2830 name "-" version ".tar.bz2"))
5698b8b8
JD
2831 (sha256
2832 (base32
2833 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2834 (build-system gnu-build-system)
2835 (inputs
92dcc23d
AE
2836 `(("python" ,python))) ;; needed for the optional libglade-convert program
2837 (propagated-inputs
5698b8b8 2838 `(("gtk+-2" ,gtk+-2)
92dcc23d 2839 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2840 (native-inputs
2841 `(("pkg-config" ,pkg-config)))
2842 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2843 (synopsis "Load glade interfaces and access the glade built widgets")
2844 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2845graphical interfaces described in glade files and for accessing the
2846widgets built in the loading process.")
2847 (license license:gpl2+))) ; This is correct. GPL not LGPL
2848
2849(define-public libgnomeprint
eb497b66
LC
2850 ;; This library has been deprecated since 2006; see
2851 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2852 (package
2853 (name "libgnomeprint")
d19db454 2854 (version "2.18.8")
5698b8b8
JD
2855 (source (origin
2856 (method url-fetch)
b38e45d8
EB
2857 (uri (string-append "mirror://gnome/sources/" name "/"
2858 (version-major+minor version) "/"
2859 name "-" version ".tar.bz2"))
5698b8b8
JD
2860 (sha256
2861 (base32
d19db454 2862 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2863 (build-system gnu-build-system)
2864 (inputs
2865 `(("popt" ,popt)
2866 ("libart-lgpl" ,libart-lgpl)
2867 ("gtk+" ,gtk+-2)
44add1ce 2868 ("libxml2" ,libxml2)))
5698b8b8
JD
2869 (native-inputs
2870 `(("intltool" ,intltool)
221ed17a 2871 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2872 ("pkg-config" ,pkg-config)))
2873 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2874 (synopsis "Printing framework for GNOME")
eb497b66
LC
2875 (description
2876 "GNOME-print was a printing framework for GNOME. It has been deprecated
2877since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2878 (license license:lgpl2.0+)))
2879
2880
2881(define-public libgnomeprintui
eb497b66 2882 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2883 (package
2884 (name "libgnomeprintui")
36053d7f 2885 (version "2.18.6")
5698b8b8
JD
2886 (source (origin
2887 (method url-fetch)
b38e45d8
EB
2888 (uri (string-append "mirror://gnome/sources/" name "/"
2889 (version-major+minor version) "/"
2890 name "-" version ".tar.bz2"))
5698b8b8
JD
2891 (sha256
2892 (base32
36053d7f 2893 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2894 (build-system gnu-build-system)
2895 ;; Mentioned as Required in the .pc file
2896 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2897 (inputs `(("gtk+" ,gtk+-2)
2898 ("glib" ,glib)
2899 ("gnome-icon-theme" ,gnome-icon-theme)
2900 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2901 ("libxml2" ,libxml2)))
5698b8b8
JD
2902 (native-inputs
2903 `(("intltool" ,intltool)
2904 ("pkg-config" ,pkg-config)))
2905 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2906 (synopsis "Printing framework for GNOME")
eb497b66 2907 (description (package-description libgnomeprint))
5698b8b8
JD
2908 (license license:lgpl2.0+)))
2909
5698b8b8
JD
2910(define-public libbonoboui
2911 (package
2912 (name "libbonoboui")
2913 (version "2.24.5")
2914 (source (origin
2915 (method url-fetch)
b38e45d8
EB
2916 (uri (string-append "mirror://gnome/sources/" name "/"
2917 (version-major+minor version) "/"
2918 name "-" version ".tar.bz2"))
5698b8b8
JD
2919 (sha256
2920 (base32
2921 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2922 (build-system gnu-build-system)
2923 (arguments
2924 `(#:phases
dc1d3cde
KK
2925 (modify-phases %standard-phases
2926 (add-before 'check 'start-xserver
2927 (lambda* (#:key inputs #:allow-other-keys)
2928 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2929 (disp ":1"))
2930
2931 (setenv "HOME" (getcwd))
2932 (setenv "DISPLAY" disp)
2933 ;; There must be a running X server and make check doesn't start one.
2934 ;; Therefore we must do it.
2935 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2936 ;; Mentioned as Required by the .pc file
2937 (propagated-inputs `(("libxml2" ,libxml2)))
2938 (inputs
2939 `(("popt" ,popt)
2940 ("pangox-compat" ,pangox-compat)
2941 ("libgnome" ,libgnome)
2942 ("libgnomecanvas" ,libgnomecanvas)
2943 ("libglade" ,libglade)))
2944 (native-inputs
221ed17a
EB
2945 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2946 ("intltool" ,intltool)
ff337525 2947 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2948 ("pkg-config" ,pkg-config)))
2949 (home-page "https://developer.gnome.org/libbonoboui/")
2950 (synopsis "Some user interface controls using Bonobo")
2951 (description "The Bonobo UI library provides a number of user interface
2952controls using the Bonobo component framework.")
2953 (license license:lgpl2.0+)))
2954
fecbf86e
SB
2955(define-public libwnck
2956 (package
2957 (name "libwnck")
d3b40696 2958 (version "3.32.0")
fecbf86e
SB
2959 (source (origin
2960 (method url-fetch)
2961 (uri (string-append "mirror://gnome/sources/" name "/"
2962 (version-major+minor version) "/"
2963 name "-" version ".tar.xz"))
2964 (sha256
ad9b8987 2965 (base32
d3b40696
KK
2966 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2967 (build-system meson-build-system)
fecbf86e
SB
2968 (native-inputs
2969 `(("pkg-config" ,pkg-config)
d3b40696
KK
2970 ("glib" ,glib "bin") ; for glib-mkenums
2971 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2972 ("intltool" ,intltool)))
2973 (propagated-inputs
427476d5
SB
2974 `(("gtk+" ,gtk+)
2975 ("libxres" ,libxres)
2976 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2977 (home-page "https://developer.gnome.org/libwnck/")
2978 (synopsis "Window Navigator Construction Kit")
2979 (description
2980 "Libwnck is the Window Navigator Construction Kit, a library for use in
2981writing pagers, tasklists, and more generally applications that are dealing
2982with window management. It tries hard to respect the Extended Window Manager
2983Hints specification (EWMH).")
2984 (license license:lgpl2.0+)))
2985
2986;; stable version for gtk2, required by xfwm4.
dbb7a081 2987(define-public libwnck-2
fecbf86e
SB
2988 (package (inherit libwnck)
2989 (name "libwnck")
2990 (version "2.30.7")
2991 (source (origin
2992 (method url-fetch)
2993 (uri (string-append "mirror://gnome/sources/" name "/"
2994 (version-major+minor version) "/"
2995 name "-" version ".tar.xz"))
2996 (sha256
2997 (base32
2998 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2999 (build-system gnu-build-system)
3000 (native-inputs
3001 `(("pkg-config" ,pkg-config)
3002 ("intltool" ,intltool)))
fecbf86e 3003 (propagated-inputs
427476d5
SB
3004 `(("gtk+" ,gtk+-2)
3005 ("libxres" ,libxres)
3006 ("startup-notification" ,startup-notification)))))
b804c61e
JD
3007
3008(define-public goffice
3009 (package
3010 (name "goffice")
09abffcc 3011 (version "0.10.46")
b804c61e
JD
3012 (source (origin
3013 (method url-fetch)
16243f0b 3014 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 3015 (version-major+minor version) "/"
16243f0b 3016 "goffice-" version ".tar.xz"))
b804c61e 3017 (sha256
09abffcc 3018 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 3019 (build-system gnu-build-system)
72a06d3e 3020 (outputs '("out"
355420c6 3021 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
3022 (arguments
3023 '(#:configure-flags (list (string-append "--with-html-dir="
3024 (assoc-ref %outputs "doc")
3025 "/share/gtk-doc/html"))))
b804c61e
JD
3026 (inputs
3027 `(("gtk+" ,gtk+)
3028 ("libgsf" ,libgsf)
3029 ("librsvg" ,librsvg)
3030 ("libxslt" ,libxslt)
3031 ("libxml2" ,libxml2)))
3032 (native-inputs
3033 `(("intltool" ,intltool)
f280cdb1 3034 ("glib" ,glib "bin")
b804c61e
JD
3035 ("pkg-config" ,pkg-config)))
3036 (home-page "https://developer.gnome.org/goffice/")
3037 (synopsis "Document-centric objects and utilities")
3038 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3039 (license
b804c61e
JD
3040 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3041 ;; Note: NOT LGPL
3042 (list license:gpl2 license:gpl3))))
3043
c024ae36
RW
3044(define-public goffice-0.8
3045 (package (inherit goffice)
3046 (version "0.8.17")
3047 (source (origin
3048 (method url-fetch)
3049 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3050 (version-major+minor version) "/"
3051 (package-name goffice) "-" version ".tar.xz"))
3052 (sha256
3053 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3054 (arguments
3055 `(#:phases
dc1d3cde
KK
3056 (modify-phases %standard-phases
3057 (add-after 'unpack 'fix-pcre-check
3058 (lambda _
3059 ;; Only glib.h can be included directly. See
3060 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3061 (substitute* "configure"
3062 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3063
3064 ,@(package-arguments goffice)))
c024ae36
RW
3065 (propagated-inputs
3066 ;; libgoffice-0.8.pc mentions libgsf-1
3067 `(("libgsf" ,libgsf)))
3068 (inputs
3069 `(("gtk" ,gtk+-2)
3070 ,@(alist-delete "gtk" (package-inputs goffice))))))
3071
b804c61e
JD
3072(define-public gnumeric
3073 (package
3074 (name "gnumeric")
f0517b5d 3075 (version "1.12.46")
b804c61e
JD
3076 (source (origin
3077 (method url-fetch)
b7fd0217 3078 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3079 (version-major+minor version) "/"
b7fd0217 3080 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3081 (sha256
3082 (base32
f0517b5d 3083 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3084 (build-system glib-or-gtk-build-system)
b804c61e
JD
3085 (arguments
3086 `(;; The gnumeric developers don't worry much about failing tests.
3087 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3088 #:tests? #f
b804c61e 3089 #:phases
7bcbd40d
EF
3090 (modify-phases %standard-phases
3091 (add-before
3092 'configure 'pre-conf
3093 (lambda* (#:key outputs #:allow-other-keys)
3094 ;; Make install tries to write into the directory of goffice
3095 ;; I am informed that this only affects the possibility to embed a
3096 ;; spreadsheet inside an Abiword document. So presumably when we
3097 ;; package Abiword we'll have to refer it to this directory.
3098 (substitute* "configure"
3099 (("^GOFFICE_PLUGINS_DIR=.*")
3100 (string-append "GOFFICE_PLUGINS_DIR="
3101 (assoc-ref outputs "out")
3102 "/goffice/plugins"))))))))
b804c61e
JD
3103 (inputs
3104 `(("glib" ,glib)
3105 ("gtk+" ,gtk+)
3106 ("goffice" ,goffice)
3107 ("libgsf" ,libgsf)
7bcbd40d 3108 ("librsvg" ,librsvg)
b804c61e 3109 ("libxml2" ,libxml2)
7bcbd40d 3110 ("libxslt" ,libxslt)
2e4c5457 3111 ("python" ,python-2)
6983ba56 3112 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3113 ("zlib" ,zlib)))
3114 (native-inputs
6983ba56 3115 `(("bison" ,bison)
1ed398d1 3116 ("docbook-xml" ,docbook-xml)
6983ba56 3117 ("intltool" ,intltool)
3a2efbc8 3118 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
b9663471 3119 ("glib:bin" ,glib "bin")
b804c61e
JD
3120 ("pkg-config" ,pkg-config)))
3121 (home-page "http://www.gnumeric.org")
66672a45
LC
3122 (synopsis "Spreadsheet application")
3123 (description
3124 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3125interoperable with other spreadsheet applications. It has a vast array of
3126features beyond typical spreadsheet functionality, such as support for linear
3127and non-linear solvers, statistical analysis, and telecommunication
3128engineering.")
3129 (license
b804c61e
JD
3130 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3131 (list license:gpl2 license:gpl3))))
6f885c05
FB
3132
3133(define-public gnome-themes-standard
3134 (package
3135 (name "gnome-themes-standard")
0b7b8fb0 3136 (version "3.22.3")
6f885c05
FB
3137 (source
3138 (origin
3139 (method url-fetch)
2e6ecc5c 3140 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3141 (version-major+minor version) "/" name "-"
3142 version ".tar.xz"))
3143 (sha256
3144 (base32
0b7b8fb0 3145 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3146 (build-system gnu-build-system)
8ac70c7f
SB
3147 (arguments
3148 '(#:configure-flags
3149 ;; Don't create 'icon-theme.cache'.
3150 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3151 (true (string-append coreutils "/bin/true")))
3152 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3153 (inputs
3154 `(("gtk+" ,gtk+)
3155 ("gtk+-2" ,gtk+-2)
3156 ("librsvg" ,librsvg)
3157 ("libxml2" ,libxml2)
3158 ("glib" ,glib)))
3159 (native-inputs
3160 `(("intltool" ,intltool)
3161 ("glib:bin" ,glib "bin")
3162 ("pkg-config" ,pkg-config)))
6f885c05
FB
3163 (home-page "https://launchpad.net/gnome-themes-standard")
3164 (synopsis "Default GNOME 3 themes")
3165 (description
3166 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3167 (license license:lgpl2.1+)))
5a659a48 3168
df90c701
RW
3169(define-public seahorse
3170 (package
3171 (name "seahorse")
bcea3c11 3172 (version "3.32.2")
df90c701
RW
3173 (source
3174 (origin
3175 (method url-fetch)
3176 (uri (string-append "mirror://gnome/sources/" name "/"
3177 (version-major+minor version) "/" name "-"
3178 version ".tar.xz"))
3179 (sha256
3180 (base32
bcea3c11 3181 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
af561664
MÁAV
3182 (patches (search-patches
3183 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3184 (build-system meson-build-system)
3185 (arguments
bcea3c11
KK
3186 '(#:glib-or-gtk? #t
3187 #:phases
af561664
MÁAV
3188 (modify-phases %standard-phases
3189 (add-after 'unpack 'skip-gtk-update-icon-cache
3190 ;; Don't create 'icon-theme.cache'.
3191 (lambda _
3192 (substitute* "build-aux/meson_post_install.py"
3193 (("gtk-update-icon-cache") "true"))
3194 #t)))))
df90c701
RW
3195 (inputs
3196 `(("gtk+" ,gtk+)
3197 ("gcr" ,gcr)
34b979b9 3198 ("gnupg" ,gnupg)
df90c701 3199 ("gpgme" ,gpgme)
34b979b9 3200 ("openldap" ,openldap)
4a1bf090 3201 ("openssh" ,openssh)
af561664 3202 ("avahi" ,avahi)
bcea3c11 3203 ("libpwquality" ,libpwquality)
34b979b9
EF
3204 ("libsecret" ,libsecret)
3205 ("libsoup" ,libsoup)))
df90c701 3206 (native-inputs
af561664 3207 `(("gettext" ,gettext-minimal)
df90c701
RW
3208 ("glib:bin" ,glib "bin")
3209 ("itstool" ,itstool)
bcb354ad 3210 ("pkg-config" ,pkg-config)
af561664 3211 ("vala" ,vala)
bcb354ad 3212 ("xmllint" ,libxml2)))
bcea3c11 3213 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3214 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3215 (description
3216 "Seahorse is a GNOME application for managing encryption keys and
3217passwords in the GNOME keyring.")
3218 (license license:gpl2+)))
3219
5a659a48
SB
3220(define-public vala
3221 (package
3222 (name "vala")
2d6872f6 3223 (version "0.44.5")
5a659a48
SB
3224 (source (origin
3225 (method url-fetch)
3226 (uri (string-append "mirror://gnome/sources/" name "/"
3227 (version-major+minor version) "/"
3228 name "-" version ".tar.xz"))
3229 (sha256
3230 (base32
2d6872f6 3231 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
5a659a48 3232 (build-system gnu-build-system)
1ea90625
SB
3233 (arguments
3234 '(#:phases
3235 (modify-phases %standard-phases
f4925a4f 3236 (add-before 'check 'pre-check
1ea90625
SB
3237 (lambda _
3238 (setenv "CC" "gcc")
8839b6be
RW
3239 (substitute* "valadoc/tests/testrunner.sh"
3240 (("export PKG_CONFIG_PATH=" m)
3241 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3242 ;; For missing '/etc/machine-id'.
3243 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3244 #t)))))
5a659a48
SB
3245 (native-inputs
3246 `(("pkg-config" ,pkg-config)
3247 ("flex" ,flex)
3248 ("bison" ,bison)
3249 ("xsltproc" ,libxslt)
3250 ("dbus" ,dbus) ; for dbus tests
3251 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3252 (inputs
3253 `(("graphviz" ,graphviz)))
5a659a48 3254 (propagated-inputs
8839b6be 3255 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3256 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3257 (synopsis "Compiler for the GObject type system")
3258 (description
3259 "Vala is a programming language that aims to bring modern programming
3260language features to GNOME developers without imposing any additional runtime
3261requirements and without using a different ABI compared to applications and
3262libraries written in C.")
3263 (license license:lgpl2.1+)))
ea57378f
SB
3264
3265(define-public vte
3266 (package
3267 (name "vte")
68c47474 3268 (version "0.58.3")
ea57378f
SB
3269 (source (origin
3270 (method url-fetch)
ac87ffb8 3271 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3272 (version-major+minor version) "/"
ac87ffb8 3273 "vte-" version ".tar.xz"))
ea57378f
SB
3274 (sha256
3275 (base32
68c47474
TGR
3276 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3277 (build-system meson-build-system)
ea57378f
SB
3278 (native-inputs
3279 `(("pkg-config" ,pkg-config)
3280 ("intltool" ,intltool)
3281 ("vala" ,vala)
3282 ("gobject-introspection" ,gobject-introspection)
68c47474 3283 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3284 ("gperf" ,gperf)
ea57378f
SB
3285 ("xmllint" ,libxml2)))
3286 (propagated-inputs
68c47474
TGR
3287 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3288 ("gnutls" ,gnutls) ; ditto
3289 ("pcre2" ,pcre2))) ; ditto
f032d0be 3290 (home-page "https://www.gnome.org/")
ea57378f
SB
3291 (synopsis "Virtual Terminal Emulator")
3292 (description
3293 "VTE is a library (libvte) implementing a terminal emulator widget for
3294GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3295gnome-terminal, but can also be used to embed a console/terminal in games,
3296editors, IDEs, etc.")
3297 (license license:lgpl2.1+)))
3298
c44fb4df
MO
3299(define-public vte-ng
3300 (package
3301 (inherit vte)
3302 (name "vte-ng")
24f4fcbe 3303 (version "0.58.2.a")
afd90f8d 3304 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3305 (source (origin
3306 (method git-fetch)
3307 (uri (git-reference (url home-page) (commit version)))
3308 (file-name (git-file-name name version))
3309 (sha256
3310 (base32
24f4fcbe
MB
3311 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3312 (build-system meson-build-system)
c44fb4df
MO
3313 (native-inputs
3314 `(("gtk-doc" ,gtk-doc)
c44fb4df 3315 ,@(package-native-inputs vte)))
c44fb4df 3316 (arguments
24f4fcbe 3317 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3318 (synopsis "Enhanced VTE terminal widget")
3319 (description
3320 "VTE is a library (libvte) implementing a terminal emulator widget for
3321GTK+, this fork provides additional functions exposed for keyboard text
3322selection and URL hints.")))
3323
2776d72c
EF
3324;; provides vte 2.90, required for some terminal emulators
3325;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3326;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3327;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3328;; pantheon-terminal, roxterm are not currently packaged
3329(define-public vte-0.36
3330 (package (inherit vte)
3331 (name "vte")
3332 (version "0.36.5")
3333 (source (origin
3334 (method url-fetch)
3335 (uri (string-append "mirror://gnome/sources/" name "/"
3336 (version-major+minor version) "/"
3337 name "-" version ".tar.xz"))
3338 (sha256
3339 (base32
3340 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3341 (propagated-inputs
3342 `(("gtk" ,gtk+)
3343 ("ncurses" ,ncurses)))))
3344
ea57378f
SB
3345;; stable version for gtk2, required by xfce4-terminal.
3346(define-public vte/gtk+-2
3347 (package (inherit vte)
3348 (name "vte")
3349 (version "0.28.2")
3350 (source (origin
3351 (method url-fetch)
3352 (uri (string-append "mirror://gnome/sources/" name "/"
3353 (version-major+minor version) "/"
3354 name "-" version ".tar.xz"))
3355 (sha256
3356 (base32
7d48938a
EF
3357 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3358 (patches (search-patches
3359 "vte-CVE-2012-2738-pt1.patch"
3360 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3361 (build-system gnu-build-system)
ea57378f
SB
3362 (arguments
3363 '(#:configure-flags '("--disable-python")))
3364 (native-inputs
3365 `(("pkg-config" ,pkg-config)
3366 ("intltool" ,intltool)
3367 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3368 (propagated-inputs
3369 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3370 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3371
cce0da5e
TD
3372(define-public vinagre
3373 (package
3374 (name "vinagre")
3375 (version "3.22.0")
3376 (source (origin
3377 (method url-fetch)
3378 (uri (string-append "mirror://gnome/sources/" name "/"
3379 (version-major+minor version) "/"
3380 name "-" version ".tar.xz"))
684f97f8
EF
3381 (patches (search-patches "vinagre-newer-freerdp.patch"
3382 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3383 (sha256
3384 (base32
3385 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3386 (build-system glib-or-gtk-build-system)
684f97f8 3387 (arguments
7f486d25
MC
3388 ;; Disable -Werror and such, to avoid build failures on compilation
3389 ;; warnings.
3390 '(#:configure-flags '("--enable-compile-warnings=minimum")
3391 #:phases
684f97f8 3392 (modify-phases %standard-phases
1839768c
EF
3393 (add-before 'install 'skip-gtk-update-icon-cache
3394 (lambda _
3395 ;; Don't create 'icon-theme.cache'
3396 (substitute* (find-files "." "^Makefile$")
3397 (("gtk-update-icon-cache") (which "true")))
3398 #t))
684f97f8
EF
3399 (add-after 'unpack 'patch-configure
3400 (lambda _
3401 (substitute* "configure"
3402 (("freerdp") "freerdp2"))
3403 #t)))))
cce0da5e
TD
3404 (native-inputs
3405 `(("pkg-config" ,pkg-config)
3406 ("intltool" ,intltool)
3407 ("itstool" ,itstool)
1839768c 3408 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3409 (inputs
3410 `(("libxml2" ,libxml2)
3411 ("gtk-vnc" ,gtk-vnc)
3412 ("gnome-keyring" ,gnome-keyring)
3413 ("libsecret" ,libsecret)
3414 ("freerdp" ,freerdp)
3415 ("spice" ,spice)
3416 ("spice-gtk" ,spice-gtk)
3417 ("telepathy-glib" ,telepathy-glib)
3418 ("vte" ,vte)))
cce0da5e
TD
3419 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3420 (synopsis "Remote desktop viewer for GNOME")
3421 (description "Vinagre is a remote display client supporting the VNC, SPICE
3422and RDP protocols.")
3423 (license license:gpl3+)))
3424
b47e1b20
FB
3425(define-public dconf
3426 (package
3427 (name "dconf")
1e33331c 3428 (version "0.32.0")
b47e1b20
FB
3429 (source (origin
3430 (method url-fetch)
3431 (uri (string-append
2e6ecc5c 3432 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3433 (version-major+minor version) "/"
3434 name "-" version ".tar.xz"))
3435 (sha256
f05c809f 3436 (base32
1e33331c 3437 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
35fa923d 3438 (build-system meson-build-system)
bc036f4c
MB
3439 (propagated-inputs
3440 ;; In Requires of dconf.pc.
3441 `(("glib" ,glib)))
b47e1b20
FB
3442 (inputs
3443 `(("gtk+" ,gtk+)
bc036f4c 3444 ("dbus" ,dbus)))
b47e1b20 3445 (native-inputs
1e33331c
MB
3446 `(("bash-completion" ,bash-completion)
3447 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3448 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3449 ("docbook-xml" ,docbook-xml-4.2)
3450 ("docbook-xsl" ,docbook-xsl)
35fa923d 3451 ("glib:bin" ,glib "bin")
03676d6f 3452 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3453 ("pkg-config" ,pkg-config)
3454 ("vala" ,vala)))
b47e1b20
FB
3455 (arguments
3456 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3457 ; or /etc/machine-id.
35fa923d
MB
3458 #:glib-or-gtk? #t
3459 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
3460 (home-page "https://developer.gnome.org/dconf")
3461 (synopsis "Low-level GNOME configuration system")
3462 (description "Dconf is a low-level configuration system. Its main purpose
3463is to provide a backend to GSettings on platforms that don't already have
3464configuration storage systems.")
e20e6b40 3465 (license license:lgpl2.1+)))
109da1c0
AE
3466
3467(define-public json-glib
3468 (package
3469 (name "json-glib")
4115e8ea 3470 (version "1.4.4")
109da1c0
AE
3471 (source (origin
3472 (method url-fetch)
3473 (uri (string-append "mirror://gnome/sources/" name "/"
3474 (version-major+minor version) "/"
3475 name "-" version ".tar.xz"))
3476 (sha256
3477 (base32
4115e8ea 3478 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3479 (build-system meson-build-system)
109da1c0 3480 (native-inputs
98afa184
MB
3481 `(("gettext" ,gettext-minimal)
3482 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3483 ("gobject-introspection" ,gobject-introspection)
3484 ("pkg-config" ,pkg-config)))
3485 (propagated-inputs
88c6b580 3486 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3487 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3488 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3489 (description
3490 "JSON-GLib is a C library based on GLib providing serialization and
3491deserialization support for the JavaScript Object Notation (JSON) format
3492described by RFC 4627. It provides parser and generator GObject classes and
3493various wrappers for the complex data types employed by JSON, such as arrays
3494and objects.")
109da1c0 3495 (license license:lgpl2.1+)))
6f96a359
SB
3496
3497(define-public libxklavier
3498 (package
3499 (name "libxklavier")
5f39050b 3500 (version "5.4")
6f96a359 3501 (source (origin
5f39050b 3502 ;; Note: There's no tarball at ftp.gnome.org for this version.
3503 (method git-fetch)
3504 (uri (git-reference
3505 (url "https://anongit.freedesktop.org/git/libxklavier")
3506 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3507 (sha256
3508 (base32
5f39050b 3509 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3510 (file-name (git-file-name name version))))
6f96a359
SB
3511 (build-system gnu-build-system)
3512 (arguments
5f39050b 3513 '(#:phases
3514 (modify-phases %standard-phases
3515 (add-after 'unpack 'no-configure
3516 (lambda* _
3517 (setenv "NOCONFIGURE" "1")
3518 #t)))
3519 #:configure-flags
6f96a359
SB
3520 (list (string-append "--with-xkb-base="
3521 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3522 "/share/X11/xkb")
3523 "--disable-xmodmap-support")))
6f96a359
SB
3524 (native-inputs
3525 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3526 ("gobject-introspection" ,gobject-introspection)
5f39050b 3527 ("pkg-config" ,pkg-config)
3528 ("gtk-doc" ,gtk-doc)
3529 ("intltool" ,intltool)
3530 ("which" ,which)
3531 ("autoconf" ,autoconf)
3532 ("automake" ,automake)
3533 ("libtool" ,libtool)))
6f96a359
SB
3534 (propagated-inputs
3535 ;; Required by libxklavier.pc.
3536 `(("glib" ,glib)
3537 ("libxml2" ,libxml2)))
3538 (inputs
3539 `(("iso-codes" ,iso-codes)
3540 ("libxi" ,libxi)
3541 ("libxkbfile" ,libxkbfile)
3542 ("xkbcomp" ,xkbcomp)
3543 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3544 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3545 (synopsis "High-level API for X Keyboard Extension")
3546 (description
3547 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3548Extension known as XKB. This library is intended to support XFree86 and other
3549commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3550indicators etc).")
3551 (license license:lgpl2.0+)))
619936a4
LC
3552
3553(define-public python2-rsvg
3554 ;; XXX: This is actually a subset of gnome-python-desktop.
3555 (package
3556 (name "python2-rsvg")
3557 (version "2.32.0")
3558 (source
3559 (origin
3560 (method url-fetch)
3561 (uri (string-append
3562 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3563 version ".tar.bz2"))
3564 (sha256
3565 (base32
3566 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3567 (build-system gnu-build-system)
3568 (native-inputs
3569 `(("pkg-config" ,pkg-config)))
3570 (inputs
3571 `(("python" ,python-2)
3572 ("python2-pygtk" ,python2-pygtk)
3573 ("librsvg" ,librsvg)))
f032d0be 3574 (home-page "https://www.gnome.org")
619936a4
LC
3575 (synopsis "Python bindings to librsvg")
3576 (description
3ad75446 3577 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3578library.")
3579
3580 ;; This is the license of the rsvg bindings. The license of each module
3581 ;; of gnome-python-desktop is given in 'COPYING'.
3582 (license license:lgpl2.1+)))
a31a6d22 3583
f2ca414a
SB
3584(define-public glib-networking
3585 (package
3586 (name "glib-networking")
0d75c64d 3587 (version "2.60.3")
f2ca414a
SB
3588 (source (origin
3589 (method url-fetch)
3590 (uri (string-append "mirror://gnome/sources/glib-networking/"
3591 (version-major+minor version) "/"
fb8fe1e8 3592 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3593 (sha256
3594 (base32
0d75c64d 3595 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
65211552 3596 (build-system meson-build-system)
f2ca414a 3597 (arguments
0d75c64d 3598 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3599 (native-inputs
3600 `(("pkg-config" ,pkg-config)
3601 ("intltool" ,intltool)))
3602 (inputs
3603 `(("glib" ,glib)
3604 ("gnutls" ,gnutls)
4b8f1313 3605 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3606 (home-page "https://www.gnome.org")
f2ca414a
SB
3607 (synopsis "Network-related GIO modules")
3608 (description
3609 "This package contains various network related extensions for the GIO
3610library.")
3611 (license license:lgpl2.0+)))
3612
ca649680 3613(define-public rest
4510b2da 3614 (package
ca649680 3615 (name "rest")
a4194d16 3616 (version "0.8.1")
4510b2da
SB
3617 (source (origin
3618 (method url-fetch)
3619 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3620 (version-major+minor version) "/"
3621 name "-" version ".tar.xz"))
4510b2da
SB
3622 (sha256
3623 (base32
a4194d16 3624 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3625 (build-system gnu-build-system)
3626 (arguments
3627 '(#:tests? #f ; tests require internet connection
3628 #:configure-flags
3629 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3630 (native-inputs
3631 `(("glib-mkenums" ,glib "bin")
3632 ("gobject-introspection" ,gobject-introspection)
3633 ("pkg-config" ,pkg-config)))
3634 (propagated-inputs
3635 ;; rest-0.7.pc refers to all these.
3636 `(("glib" ,glib)
3637 ("libsoup" ,libsoup)
3638 ("libxml2" ,libxml2)))
24d6cc1d 3639 (home-page "https://www.gtk.org/")
4510b2da
SB
3640 (synopsis "RESTful web api query library")
3641 (description
3642 "This library was designed to make it easier to access web services that
3643claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3644libxml to ease remote use of the RESTful API.")
3645 (license license:lgpl2.1+)))
3646
6e1bb642
SB
3647(define-public libsoup
3648 (package
3649 (name "libsoup")
9ae87870 3650 (version "2.68.3")
6e1bb642
SB
3651 (source (origin
3652 (method url-fetch)
3653 (uri (string-append "mirror://gnome/sources/libsoup/"
3654 (version-major+minor version) "/"
c1b79b36 3655 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3656 (sha256
3657 (base32
9ae87870 3658 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
eccaa8bf 3659 (build-system meson-build-system)
6e1bb642
SB
3660 (outputs '("out" "doc"))
3661 (arguments
2deb146f 3662 `(#:modules ((guix build utils)
eccaa8bf 3663 (guix build meson-build-system)
2deb146f
LC
3664 (ice-9 popen))
3665
f8026a79 3666 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3667 #:phases
3668 (modify-phases %standard-phases
eccaa8bf 3669 (add-after 'unpack 'adjust-tests
26c228f9 3670 (lambda _
eccaa8bf
MB
3671 ;; This test fails due to missing /etc/nsswitch.conf
3672 ;; in the build environment.
26c228f9
LC
3673 (substitute* "tests/socket-test.c"
3674 ((".*/sockets/unconnected.*") ""))
2deb146f 3675
f8026a79
MB
3676 ;; These fail because "subdomain.localhost" does not resolve in
3677 ;; the build environment.
3678 (substitute* "tests/hsts-test.c"
3679 ((".*/hsts/basic.*") "")
3680 ((".*/hsts/subdomains.*") "")
3681 ((".*/hsts/superdomain.*") "")
3682 ((".*/hsts/utf8-address.*") ""))
3683 (substitute* "tests/hsts-db-test.c"
3684 ((".*/hsts-db/subdomains.*") ""))
3685
2deb146f
LC
3686 ;; Generate a self-signed certificate that has "localhost" as its
3687 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3688 ;; 3.5.12, tests such as "ssl-tests" fail:
3689 ;;
3690 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3691 ;;
3692 ;; 'certtool' is interactive so we have to pipe it the answers.
3693 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3694 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3695 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3696 (for-each (lambda (line)
3697 (display line pipe)
3698 (newline pipe))
3699 '("" ;Common name
3700 "" ;UID
3701 "Guix" ;Organizational unit name
3702 "GNU" ;Organization name
3703 "" ;Locality name
3704 "" ;State or province
3705 "" ;Country
3706 "" ;subject's domain component (DC)
3707 "" ;E-mail
3708 "" ;serial number
3709 "-1" ;expiration time
3710 "N" ;belong to authority?
3711 "N" ;web client certificate?
3712 "N" ;IPsec IKE?
3713 "Y" ;web server certificate?
3714 "localhost" ;dnsName of subject
3715 "" ;dnsName of subject (end)
3716 "" ;URI of subject
3717 "127.0.0.1" ;IP address of subject
3718 "" ;signing?
06f5bc4e
MB
3719 "" ;encryption (RSA)?
3720 "" ;data encryption?
2deb146f
LC
3721 "" ;sign OCSP requests?
3722 "" ;sign code?
3723 "" ;time stamping?
3724 "" ;email protection?
3725 "" ;URI of the CRL distribution point
3726 "y" ;above info OK?
3727 ))
3728 (close-pipe pipe))
26c228f9 3729 #t))
eccaa8bf
MB
3730 (add-after 'install 'move-doc
3731 (lambda* (#:key outputs #:allow-other-keys)
3732 (let ((out (assoc-ref outputs "out"))
3733 (doc (assoc-ref outputs "doc")))
3734 (mkdir-p (string-append doc "/share"))
3735 (copy-recursively (string-append out "/share/gtk-doc")
3736 (string-append doc "/share/gtk-doc"))
3737 (delete-file-recursively (string-append out "/share/gtk-doc"))
3738 #t))))))
6e1bb642 3739 (native-inputs
26c228f9 3740 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3741 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3742 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3743 ("intltool" ,intltool)
3744 ("pkg-config" ,pkg-config)
3745 ("python" ,python-wrapper)
fd730590 3746 ("vala" ,vala)
6e1bb642
SB
3747 ;; These are needed for the tests.
3748 ;; FIXME: Add PHP once available.
3749 ("curl" ,curl)
2deb146f 3750 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3751 ("httpd" ,httpd)))
3752 (propagated-inputs
3753 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3754 `(("brotli" ,google-brotli)
3755 ("glib" ,glib)
249846bf 3756 ("libpsl" ,libpsl)
eccaa8bf 3757 ("libxml2" ,libxml2)
f8026a79
MB
3758 ("sqlite" ,sqlite)
3759 ("zlib" ,zlib)))
eccaa8bf
MB
3760 (inputs
3761 `(("glib-networking" ,glib-networking)
3762 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3763 (home-page "https://live.gnome.org/LibSoup/")
3764 (synopsis "GLib-based HTTP Library")
3765 (description
3766 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3767and the GLib main loop, to integrate well with GNOME applications.")
3768 (license license:lgpl2.0+)))
3769
bba229a3
SB
3770(define-public libsecret
3771 (package
3772 (name "libsecret")
b243d2f7 3773 (version "0.19.1")
bba229a3
SB
3774 (source (origin
3775 (method url-fetch)
3776 (uri (string-append
896dcbc7
EF
3777 "mirror://gnome/sources/libsecret/"
3778 (version-major+minor version) "/"
0ada4e29 3779 "libsecret-" version ".tar.xz"))
bba229a3
SB
3780 (sha256
3781 (base32
b243d2f7 3782 "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
bba229a3
SB
3783 (build-system gnu-build-system)
3784 (outputs '("out" "doc"))
3785 (arguments
3786 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3787 #:configure-flags
3788 (list (string-append "--with-html-dir="
3789 (assoc-ref %outputs "doc")
3790 "/share/gtk-doc/html"))))
3791 (native-inputs
c06ef010
MB
3792 `(("gettext" ,gettext-minimal)
3793 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3794 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3795 ("pkg-config" ,pkg-config)
3796 ("vala" ,vala)
3797 ("xsltproc" ,libxslt)))
3798 ;; These are needed for the tests.
3799 ;; FIXME: Add gjs once available.
3800 ;("dbus" ,dbus)
3801 ;("python2" ,python-2)
3802 ;("python2-dbus" ,python2-dbus)
3803 ;("python2-pygobject" ,python2-pygobject)
3804 ;("python2-pygobject-2" ,python2-pygobject-2)))
3805 (propagated-inputs
3806 `(("glib" ,glib))) ; required by libsecret-1.pc
3807 (inputs
3808 `(("docbook-xsl" ,docbook-xsl)
3809 ("libgcrypt" ,libgcrypt)
3810 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3811 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3812 (synopsis "GObject bindings for \"Secret Service\" API")
3813 (description
3814 "Libsecret is a GObject based library for storing and retrieving passwords
3815and other secrets. It communicates with the \"Secret Service\" using DBus.")
3816 (license license:lgpl2.1+)))
3817
b6821ee0 3818(define-public five-or-more
3819 (package
3820 (name "five-or-more")
d9795e93 3821 (version "3.32.0")
b6821ee0 3822 (source
3823 (origin
3824 (method url-fetch)
3825 (uri (string-append "mirror://gnome/sources/" name "/"
3826 (version-major+minor version) "/"
3827 name "-" version ".tar.xz"))
3828 (sha256
3829 (base32
d9795e93
KK
3830 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3831 (build-system meson-build-system)
3832 (arguments
3833 '(#:glib-or-gtk? #t
3834 #:phases
3835 (modify-phases %standard-phases
3836 (add-after 'unpack 'skip-gtk-update-icon-cache
3837 (lambda _
3838 (substitute* "meson_post_install.py"
3839 (("gtk-update-icon-cache") (which "true")))
3840 #t)))))
b6821ee0 3841 (native-inputs
3842 `(("pkg-config" ,pkg-config)
d9795e93 3843 ("appstream-glib" ,appstream-glib)
b6821ee0 3844 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3845 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3846 ("intltool" ,intltool)
3847 ("itstool" ,itstool)
d9795e93 3848 ("vala" ,vala)
b6821ee0 3849 ("xmllint" ,libxml2)))
3850 (inputs
3851 `(("gtk+" ,gtk+)
d9795e93 3852 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3853 ("librsvg" ,librsvg)))
3854 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3855 (synopsis "Logic puzzle game")
3856 (description "Five or More is a game where you try to align
3857 five or more objects of the same color and shape causing them to disappear.
3858 On every turn more objects will appear, until the board is full.
3859 Try to last as long as possible.")
3860 (license license:gpl2+)))
3861
a31a6d22
SB
3862(define-public gnome-mines
3863 (package
3864 (name "gnome-mines")
2d817e41 3865 (version "3.32.2")
a31a6d22
SB
3866 (source
3867 (origin
3868 (method url-fetch)
3869 (uri (string-append "mirror://gnome/sources/" name "/"
3870 (version-major+minor version) "/"
3871 name "-" version ".tar.xz"))
3872 (sha256
3873 (base32
2d817e41 3874 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
8c0fab36 3875 (build-system meson-build-system)
a31a6d22 3876 (arguments
2d817e41
KK
3877 '(#:glib-or-gtk? #t
3878 #:phases
a31a6d22 3879 (modify-phases %standard-phases
2d817e41
KK
3880 (add-after 'unpack 'skip-gtk-update-icon-cache
3881 (lambda _
3882 (substitute* "build-aux/meson_post_install.py"
3883 (("gtk-update-icon-cache") (which "true")))
3884 #t)))))
a31a6d22 3885 (native-inputs
8c0fab36
RW
3886 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3887 ("pkg-config" ,pkg-config)
a31a6d22
SB
3888 ("desktop-file-utils" ,desktop-file-utils)
3889 ("intltool" ,intltool)
bcb354ad 3890 ("itstool" ,itstool)
8c0fab36
RW
3891 ("vala" ,vala)
3892 ("yelp" ,yelp)
3893 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3894 (inputs
3895 `(("gtk+" ,gtk+)
73992962 3896 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3897 ("librsvg" ,librsvg)))
3898 (home-page "https://wiki.gnome.org/Apps/Mines")
3899 (synopsis "Minesweeper game")
3900 (description
3901 "Mines (previously gnomine) is a puzzle game where you locate mines
3902floating in an ocean using only your brain and a little bit of luck.")
3903 (license license:gpl2+)))
88f70665 3904
dfc407f3
KY
3905(define-public gnome-sudoku
3906 (package
3907 (name "gnome-sudoku")
7dc728c4 3908 (version "3.32.0")
dfc407f3
KY
3909 (source
3910 (origin
3911 (method url-fetch)
3912 (uri (string-append "mirror://gnome/sources/" name "/"
3913 (version-major+minor version) "/"
3914 name "-" version ".tar.xz"))
3915 (sha256
3916 (base32
7dc728c4
KK
3917 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3918 (build-system meson-build-system)
3919 (arguments
3920 '(#:glib-or-gtk? #t
3921 #:phases
3922 (modify-phases %standard-phases
3923 (add-after 'unpack 'skip-gtk-update-icon-cache
3924 (lambda _
3925 (substitute* "build-aux/post_install.py"
3926 (("gtk-update-icon-cache") (which "true")))
3927 #t)))))
dfc407f3
KY
3928 (native-inputs
3929 `(("pkg-config" ,pkg-config)
3930 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3931 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3932 ("intltool" ,intltool)
3933 ("itstool" ,itstool)
7dc728c4 3934 ("vala" ,vala)
dfc407f3
KY
3935 ("xmllint" ,libxml2)))
3936 (inputs
3937 `(("gtk+" ,gtk+)
3938 ("json-glib" ,json-glib)
3939 ("libgee" ,libgee)
3940 ("librsvg" ,librsvg)
3941 ("qqwing" ,qqwing)))
3942 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3943 (synopsis "Japanese logic game")
3944 (description
3945 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3946GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3947possible while still providing features that make playing difficult Sudoku
3948more fun.")
3949 (license license:gpl2+)))
3950
88f70665
AW
3951(define-public gnome-terminal
3952 (package
3953 (name "gnome-terminal")
7dee3942 3954 (version "3.32.2")
88f70665
AW
3955 (source
3956 (origin
3957 (method url-fetch)
3958 (uri (string-append "mirror://gnome/sources/" name "/"
3959 (version-major+minor version) "/"
3960 name "-" version ".tar.xz"))
3961 (sha256
3962 (base32
7dee3942 3963 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
88f70665
AW
3964 (build-system glib-or-gtk-build-system)
3965 (arguments
3966 '(#:configure-flags
3967 (list "--disable-migration" "--disable-search-provider"
3968 "--without-nautilus-extension")
3969 #:phases
3970 (modify-phases %standard-phases
3a4de6b2 3971 (add-before 'configure 'patch-/bin/true
88f70665
AW
3972 (lambda _
3973 (substitute* "configure"
3974 (("/bin/true") (which "true"))))))))
3975 (native-inputs
3976 `(("pkg-config" ,pkg-config)
3977 ("desktop-file-utils" ,desktop-file-utils)
3978 ("intltool" ,intltool)
bcb354ad
SB
3979 ("itstool" ,itstool)
3980 ("xmllint" ,libxml2)))
68702167
MW
3981 (propagated-inputs
3982 `(("dconf" ,dconf)))
88f70665
AW
3983 (inputs
3984 `(("gtk+" ,gtk+)
3985 ("vte" ,vte)
3986 ("gnutls" ,gnutls)
88f70665
AW
3987 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3988 ("util-linux" ,util-linux)
3989 ("vala" ,vala)))
3990 (home-page "https://wiki.gnome.org/Apps/Terminal")
3991 (synopsis "Terminal emulator")
3992 (description
3993 "GNOME Terminal is a terminal emulator application for accessing a
3994UNIX shell environment which can be used to run programs available on
3995your system.
3996
3997It supports several profiles, multiple tabs and implements several
3998keyboard shortcuts.")
3999 (license license:gpl3+)))
75016d07
AW
4000
4001(define-public colord
4002 (package
4003 (name "colord")
f98be942 4004 (version "1.4.4")
75016d07
AW
4005 (source
4006 (origin
4007 (method url-fetch)
5cc3096c 4008 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 4009 "colord-" version ".tar.xz"))
75016d07 4010 (sha256
f98be942 4011 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 4012 (build-system meson-build-system)
75016d07 4013 (arguments
a68544a8
RW
4014 '(;; FIXME: One test fails:
4015 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4016 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4017 ;; application/x-zerosize
75016d07 4018 #:tests? #f
a68544a8
RW
4019 #:glib-or-gtk? #t
4020 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 4021 ;; No dep on systemd.
a68544a8 4022 "-Dsystemd=false"
75016d07
AW
4023 ;; Wants to install to global completion dir;
4024 ;; punt.
a68544a8 4025 "-Dbash_completion=false"
a68544a8
RW
4026 "-Ddaemon_user=colord"
4027 "-Dsane=true"
dac26e22 4028 "-Dvapi=true"
6f20e2dc 4029 ;; Requires spotread.
a68544a8 4030 "-Dargyllcms_sensor=false"
6f20e2dc 4031 ;; TODO: Requires docbook2x.
a68544a8 4032 "-Dman=false")
75016d07
AW
4033 #:phases
4034 (modify-phases %standard-phases
a68544a8
RW
4035 (add-before 'configure 'patch-build-system
4036 (lambda* (#:key outputs #:allow-other-keys)
4037 (substitute* "rules/meson.build"
4038 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4039 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4040 #t))
4041 (add-before 'configure 'set-sqlite3-file-name
4042 (lambda* (#:key inputs #:allow-other-keys)
4043 ;; "colormgr dump" works by invoking the "sqlite3" command.
4044 ;; Record its absolute file name.
4045 (let ((sqlite (assoc-ref inputs "sqlite")))
4046 (substitute* "client/cd-util.c"
4047 (("\"sqlite3\"")
4048 (string-append "\"" sqlite "/bin/sqlite3\"")))
4049 #t))))))
75016d07 4050 (native-inputs
6f20e2dc 4051 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4052 ("gettext" ,gettext-minimal)
75016d07 4053 ("gobject-introspection" ,gobject-introspection)
a68544a8 4054 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4055 ("pkg-config" ,pkg-config)
4056 ("vala" ,vala)))
65cb2d61
SB
4057 (propagated-inputs
4058 ;; colord.pc refers to all these.
4059 `(("glib" ,glib)
6f20e2dc
TGR
4060 ("lcms" ,lcms)
4061 ("udev" ,eudev)))
75016d07 4062 (inputs
65cb2d61 4063 `(("dbus-glib" ,dbus-glib)
a68544a8 4064 ("gusb" ,gusb)
80c7dd1a 4065 ("libgudev" ,libgudev)
75016d07 4066 ("libusb" ,libusb)
75016d07 4067 ("polkit" ,polkit)
a68544a8 4068 ("python" ,python-wrapper)
6f20e2dc 4069 ("sqlite" ,sqlite)
4c928743 4070 ("sane-backends" ,sane-backends)))
57e7d748 4071 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4072 (synopsis "Color management service")
4073 (description "Colord is a system service that makes it easy to manage,
4074install and generate color profiles to accurately color manage input and
4075output devices.")
4076 (license license:gpl2+)))
7b2abd00
AW
4077
4078(define-public geoclue
4079 (package
4080 (name "geoclue")
b433c7b3 4081 (version "2.4.8")
7b2abd00
AW
4082 (source
4083 (origin
4084 (method url-fetch)
5cc3096c 4085 (uri (string-append "https://www.freedesktop.org/software/" name
7b2abd00
AW
4086 "/releases/" (version-major+minor version) "/"
4087 name "-" version ".tar.xz"))
4088 (sha256
4089 (base32
b433c7b3 4090 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
fc1adab1 4091 (patches (search-patches "geoclue-config.patch"))))
7b2abd00
AW
4092 (build-system glib-or-gtk-build-system)
4093 (arguments
4094 '(;; The tests want to run the system bus.
4095 #:tests? #f
4096 #:configure-flags (list ;; Disable bits requiring ModemManager.
4097 "--disable-3g-source"
4098 "--disable-cdma-source"
4099 "--disable-modem-gps-source"
4100 "--with-dbus-service-user=geoclue")
4101 #:phases
4102 (modify-phases %standard-phases
3a4de6b2 4103 (add-before 'configure 'patch-/bin/true
7b2abd00
AW
4104 (lambda _
4105 (substitute* "configure"
e3eb53e7
MW
4106 (("/bin/true") (which "true")))
4107 #t)))))
7b2abd00
AW
4108 (native-inputs
4109 `(("pkg-config" ,pkg-config)
758798a9 4110 ("gobject-introspection" ,gobject-introspection)
7b2abd00
AW
4111 ("intltool" ,intltool)))
4112 (inputs
54e911bc
SB
4113 `(("avahi" ,avahi)
4114 ("glib" ,glib)
7b2abd00
AW
4115 ("json-glib" ,json-glib)
4116 ("libsoup" ,libsoup)))
99adfd7d 4117 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
7b2abd00
AW
4118 (synopsis "Geolocation service")
4119 (description "Geoclue is a D-Bus service that provides location
4120information. The primary goal of the Geoclue project is to make creating
4121location-aware applications as simple as possible, while the secondary goal is
4122to ensure that no application can access location information without explicit
e881752c 4123permission from user.")
7b2abd00 4124 (license license:gpl2+)))
2bfe7437
AW
4125
4126(define-public geocode-glib
4127 (package
4128 (name "geocode-glib")
65de725f 4129 (version "3.26.1")
2bfe7437
AW
4130 (source (origin
4131 (method url-fetch)
4132 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4133 (version-major+minor version) "/"
d485cdc0 4134 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4135 (sha256
4136 (base32
65de725f 4137 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4138 (build-system meson-build-system)
2bfe7437 4139 (arguments
a7dd0c02
RW
4140 `(#:phases
4141 (modify-phases %standard-phases
4142 ;; The tests require a bunch of locales.
4143 (add-before 'check 'set-locales
4144 (lambda* (#:key inputs #:allow-other-keys)
4145 (setenv "GUIX_LOCPATH"
4146 (string-append (assoc-ref inputs "glibc-locales")
4147 "/lib/locale"))
4148 #t)))))
2bfe7437
AW
4149 (native-inputs
4150 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4151 ("glibc-locales" ,glibc-locales) ; for tests
4152 ("gettext" ,gettext-minimal)
2bfe7437 4153 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4154 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4155 ("pkg-config" ,pkg-config)
4156 ("json-glib" ,json-glib)))
4157 (propagated-inputs
4158 ;; geocode-glib-1.0.pc refers to GIO.
4159 `(("glib" ,glib)))
4160 (inputs
4161 `(("libsoup" ,libsoup)))
4162 (home-page "https://github.com/GNOME/geocode-glib/")
4163 (synopsis "Geocoding and reverse-geocoding library")
4164 (description
4165 "geocode-glib is a convenience library for geocoding (finding longitude,
4166and latitude from an address) and reverse geocoding (finding an address from
4167coordinates) using the Nominatim service. geocode-glib caches requests for
4168faster results and to avoid unnecessary server load.")
4169 (license license:lgpl2.0+)))
a1d5bb0e
AW
4170
4171(define-public upower
4172 (package
4173 (name "upower")
df45af90 4174 (version "0.99.11")
a1d5bb0e
AW
4175 (source (origin
4176 (method url-fetch)
df45af90 4177 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4178 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4179 (sha256
4180 (base32
df45af90 4181 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4182 (patches (search-patches "upower-builddir.patch"))
4183 (modules '((guix build utils)))
4184 (snippet
4185 '(begin
4186 ;; Upstream commit
4187 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4188 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4189 ;; 'dbus-configuration-directory' in (gnu services dbus)
4190 ;; expects it in etc/. Thus, move it back to its previous
4191 ;; location.
4192 (substitute* "src/Makefile.in"
4193 (("^dbusconfdir =.*$")
4194 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4195 #t))))
a1d5bb0e
AW
4196 (build-system glib-or-gtk-build-system)
4197 (arguments
4198 '( ;; The tests want to contact the system bus, which can't be done in the
4199 ;; build environment. The integration test can run, but the last of
4200 ;; the up-self-tests doesn't. Disable tests for now.
4201 #:tests? #f
4202 #:configure-flags (list "--localstatedir=/var"
4203 (string-append "--with-udevrulesdir="
4204 (assoc-ref %outputs "out")
9ec54965 4205 "/lib/udev/rules.d"))))
a1d5bb0e 4206 (native-inputs
ebeabe2d
SB
4207 `(("gobject-introspection" ,gobject-introspection)
4208 ("pkg-config" ,pkg-config)
a1d5bb0e 4209 ("intltool" ,intltool)
55409295
LC
4210 ("python" ,python)
4211
4212 ;; For man pages.
4213 ("libxslt" ,libxslt) ;for 'xsltproc'
4214 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4215 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4216 (inputs
ea226291
SB
4217 `(("dbus-glib" ,dbus-glib)
4218 ("libgudev" ,libgudev)
a1d5bb0e 4219 ("libusb" ,libusb)))
d7a503fc
MB
4220 (propagated-inputs
4221 ;; In Requires of upower-glib.pc.
4222 `(("glib" ,glib)))
57e7d748 4223 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4224 (synopsis "System daemon for managing power devices")
4225 (description
4226 "UPower is an abstraction for enumerating power devices,
4227listening to device events and querying history and statistics. Any
4228application or service on the system can access the org.freedesktop.UPower
4229service via the system message bus.")
4230 (license license:gpl2+)))
6a180f6f
AW
4231
4232(define-public libgweather
4233 (package
4234 (name "libgweather")
794ce8ea 4235 (version "3.28.3")
6a180f6f
AW
4236 (source (origin
4237 (method url-fetch)
4238 (uri (string-append "mirror://gnome/sources/" name "/"
4239 (version-major+minor version) "/"
4240 name "-" version ".tar.xz"))
4241 (sha256
4242 (base32
794ce8ea 4243 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
cf6cbc34 4244 (build-system meson-build-system)
6a180f6f 4245 (arguments
cf6cbc34
RW
4246 `(#:tests? #f ; one of two tests requires network access
4247 #:configure-flags
4248 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4249 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4250 "/share/zoneinfo"))))
6a180f6f
AW
4251 (native-inputs
4252 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4253 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4254 ("pkg-config" ,pkg-config)
1d3fcf94 4255 ("vala" ,vala)
6a180f6f
AW
4256 ("intltool" ,intltool)))
4257 (propagated-inputs
4258 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4259 ;; libsoup.
4260 `(("gtk+" ,gtk+)
4261 ("gdk-pixbuf" ,gdk-pixbuf)
4262 ("libxml2" ,libxml2)
cf6cbc34 4263 ("libsoup" ,libsoup)
6a180f6f 4264 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4265 (inputs
4266 `(("tzdata" ,tzdata)))
6a180f6f
AW
4267 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4268 (synopsis "Location, time zone, and weather library for GNOME")
4269 (description
4270 "libgweather is a library to access weather information from online
4271services for numerous locations.")
4272 (license license:gpl2+)))
23a22af6
AW
4273
4274(define-public gnome-settings-daemon
4275 (package
4276 (name "gnome-settings-daemon")
4be0719f 4277 (version "3.32.1")
23a22af6
AW
4278 (source
4279 (origin
4280 (method url-fetch)
4281 (uri (string-append "mirror://gnome/sources/" name "/"
4282 (version-major+minor version) "/"
4283 name "-" version ".tar.xz"))
4284 (sha256
4285 (base32
4be0719f 4286 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
e644f9fa 4287 (build-system meson-build-system)
23a22af6 4288 (arguments
e644f9fa
RW
4289 `(#:glib-or-gtk? #t
4290 #:configure-flags
4291 (list (string-append "-Dudev_dir="
4292 (assoc-ref %outputs "out")
4d0e085b
RW
4293 "/lib/udev/rules.d/")
4294 ;; Otherwise, the RUNPATH will lack the final path component.
4295 (string-append "-Dc_link_args=-Wl,-rpath="
4296 (assoc-ref %outputs "out")
4297 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4298 ;; Color management test can't reach the colord system service.
23a22af6
AW
4299 #:tests? #f))
4300 (native-inputs
e644f9fa
RW
4301 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4302 ("pkg-config" ,pkg-config)
23a22af6
AW
4303 ("intltool" ,intltool)
4304 ("xsltproc" ,libxslt)
4305 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4306 ("docbook-xml" ,docbook-xml-4.2)
4307 ("docbook-xsl" ,docbook-xsl)))
4308 (inputs
e644f9fa
RW
4309 `(("alsa-lib" ,alsa-lib)
4310 ("colord" ,colord)
ea226291 4311 ("libgudev" ,libgudev)
23a22af6
AW
4312 ("upower" ,upower)
4313 ("polkit" ,polkit)
4314 ("pulseaudio" ,pulseaudio)
4315 ("libcanberra" ,libcanberra)
4316 ("libx11" ,libx11)
4317 ("libxtst" ,libxtst)
4318 ("lcms" ,lcms)
4319 ("libnotify" ,libnotify)
4320 ("geoclue" ,geoclue)
4321 ("geocode-glib" ,geocode-glib)
4322 ("libgweather" ,libgweather)
4323 ("gnome-desktop" ,gnome-desktop)
4324 ("nss" ,nss)
4325 ("cups" ,cups)
ec2b1921
AW
4326 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4327 ("libwacom" ,libwacom)
4328 ("librsvg" ,librsvg)
eee7878f 4329 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4330 ("wayland" ,wayland)
eee7878f 4331 ("network-manager" ,network-manager)))
f032d0be 4332 (home-page "https://www.gnome.org")
23a22af6
AW
4333 (synopsis "GNOME settings daemon")
4334 (description
4335 "This package contains the daemon responsible for setting the various
4336parameters of a GNOME session and the applications that run under it. It
4337handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4338settings, themes, mouse settings, and startup of other daemons.")
4339 (license license:gpl2+)))
1e7464a9
DH
4340
4341(define-public totem-pl-parser
4342 (package
4343 (name "totem-pl-parser")
77425f04 4344 (version "3.26.3")
1e7464a9
DH
4345 (source (origin
4346 (method url-fetch)
e980cbe9
MW
4347 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4348 (version-major+minor version) "/"
1e7464a9
DH
4349 "totem-pl-parser-" version ".tar.xz"))
4350 (sha256
4351 (base32
77425f04 4352 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4353 (build-system meson-build-system)
1e7464a9
DH
4354 (arguments
4355 ;; FIXME: Tests require gvfs.
4356 `(#:tests? #f))
4357 (native-inputs
4358 `(("intltool" ,intltool)
4359 ("glib" ,glib "bin")
4d6d8281 4360 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4361 ("pkg-config" ,pkg-config)))
22a6ad6a 4362 (propagated-inputs
1e7464a9
DH
4363 `(("glib" ,glib)
4364 ("gmime" ,gmime)
1e9b19dd
RW
4365 ("libarchive" ,libarchive)
4366 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4367 ("libxml2" ,libxml2)))
4368 (inputs
0a6e9e13 4369 `(("libsoup" ,libsoup)))
1e7464a9
DH
4370 (home-page "https://projects.gnome.org/totem")
4371 (synopsis "Library to parse and save media playlists for GNOME")
4372 (description "Totem-pl-parser is a GObjects-based library to parse and save
4373playlists in a variety of formats.")
4374 (license license:lgpl2.0+)))
4375
6b888eff
SB
4376(define-public aisleriot
4377 (package
4378 (name "aisleriot")
36ed9b46 4379 (version "3.22.9")
6b888eff
SB
4380 (source (origin
4381 (method url-fetch)
e43f622a 4382 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4383 (version-major+minor version) "/"
e43f622a 4384 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4385 (sha256
4386 (base32
36ed9b46 4387 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4388 (build-system glib-or-gtk-build-system)
4389 (arguments
4390 '(#:configure-flags
4391 '("--with-platform=gtk-only"
4392 "--with-card-theme-formats=svg")))
4393 (native-inputs
4394 `(("desktop-file-utils" ,desktop-file-utils)
4395 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4396 ("intltool" ,intltool)
4397 ("itstool" ,itstool)
4398 ("pkg-config" ,pkg-config)
4399 ("xmllint" ,libxml2)))
4400 (inputs
4401 `(("gtk+" ,gtk+)
226e57d6 4402 ("guile" ,guile-2.2)
6b888eff
SB
4403 ("libcanberra" ,libcanberra)
4404 ("librsvg" ,librsvg)))
4405 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4406 (synopsis "Solitaire card games")
4407 (description
4408 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4409which are easy to play with the aid of a mouse.")
4410 (license license:gpl3+)))
4a79e256 4411
f828d05b
KK
4412(define-public amtk
4413 (package
4414 (name "amtk")
09c4e43f 4415 (version "5.0.1")
f828d05b
KK
4416 (source (origin
4417 (method url-fetch)
bf92ba6b 4418 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4419 (version-major+minor version) "/"
bf92ba6b 4420 "amtk-" version ".tar.xz"))
f828d05b
KK
4421 (sha256
4422 (base32
09c4e43f 4423 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
f828d05b
KK
4424 (build-system gnu-build-system)
4425 (arguments
4426 '(#:configure-flags '("--enable-gtk-doc")))
4427 (native-inputs
4428 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4429 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4430 ("gtk-doc" ,gtk-doc)
4431 ("pkg-config" ,pkg-config)))
4432 (inputs
4433 `(("glib" ,glib)
4434 ("gtk+" ,gtk+)))
4435 (home-page "https://wiki.gnome.org/Projects/Amtk")
4436 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4437 (description
4438 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4439It is a basic GtkUIManager replacement based on GAction. It is suitable for
4440both a traditional UI or a modern UI with a GtkHeaderBar.")
4441 (license license:lgpl2.1+)))
4442
4a79e256
SB
4443(define-public devhelp
4444 (package
4445 (name "devhelp")
20db7a3d 4446 (version "3.32.0")
4a79e256
SB
4447 (source (origin
4448 (method url-fetch)
4449 (uri (string-append "mirror://gnome/sources/" name "/"
4450 (version-major+minor version) "/"
4451 name "-" version ".tar.xz"))
4452 (sha256
4453 (base32
20db7a3d 4454 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
11d28bd9 4455 (build-system meson-build-system)
35407f94 4456 (arguments
20db7a3d
KK
4457 '(#:glib-or-gtk? #t
4458 #:phases
35407f94
EF
4459 (modify-phases %standard-phases
4460 (add-after 'unpack 'skip-gtk-update-icon-cache
4461 ;; Don't create 'icon-theme.cache'.
4462 (lambda _
4463 (substitute* "meson_post_install.py"
4464 (("gtk-update-icon-cache") "true"))
4465 #t)))))
4a79e256
SB
4466 (native-inputs
4467 `(("intltool" ,intltool)
5dd12afc 4468 ("itstool" ,itstool)
11d28bd9
KK
4469 ("gobject-introspection" ,gobject-introspection)
4470 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4471 ("pkg-config" ,pkg-config)))
4472 (inputs
11d28bd9
KK
4473 `(("amtk" ,amtk)
4474 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4475 ("webkitgtk" ,webkitgtk)))
4476 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4477 (synopsis "API documentation browser for GNOME")
4478 (description
4479 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4480natively with GTK-Doc (the API reference system developed for GTK+ and used
4481throughout GNOME for API documentation).")
4482 (license license:gpl2+)))
ba421ab7
MW
4483
4484(define-public cogl
4485 (package
4486 (name "cogl")
54c69ae1 4487 (version "1.22.4")
ba421ab7
MW
4488 (source
4489 (origin
4490 (method url-fetch)
5754f0cf 4491 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4492 (version-major+minor version) "/"
5754f0cf 4493 "cogl-" version ".tar.xz"))
ba421ab7 4494 (sha256
54c69ae1 4495 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
a88d5a0c
MW
4496 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4497 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4498 (build-system gnu-build-system)
4499 (native-inputs
4500 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4501 ("gobject-introspection" ,gobject-introspection)
4502 ;;("xorg-server" ,xorg-server) ; for the test suite
4503 ("pkg-config" ,pkg-config)))
4504 (propagated-inputs
4505 `(("glib" ,glib)
4506 ("gdk-pixbuf" ,gdk-pixbuf)
4507 ("libx11" ,libx11)
4508 ("libxext" ,libxext)
4509 ("libxfixes" ,libxfixes)
4510 ("libxdamage" ,libxdamage)
4511 ("libxcomposite" ,libxcomposite)
4512 ("libxrandr" ,libxrandr)))
4513 (inputs
4514 `(("mesa" ,mesa)
4515 ("cairo" ,cairo)
4516 ("pango" ,pango)
4517 ("gstreamer" ,gstreamer)
31860852
KK
4518 ("gst-plugins-base" ,gst-plugins-base)
4519 ("wayland" ,wayland)))
ba421ab7
MW
4520 (arguments
4521 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
4522 "--enable-wayland-egl-platform"
4523 "--enable-wayland-egl-server"
4524
ba421ab7
MW
4525 ;; Arrange to pass an absolute file name to
4526 ;; dlopen for libGL.so.
4527 (string-append "--with-gl-libname="
4528 (assoc-ref %build-inputs "mesa")
4529 "/lib/libGL.so"))
4530 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4531 ;; _FontTransOpen: Unable to Parse address
4532 ;; ${prefix}/share/fonts/X11/misc/
4533 #:tests? #f
4534 #; #:phases
4535 #;
4536 (modify-phases %standard-phases
4537 (add-before 'check 'start-xorg-server
4538 (lambda* (#:key inputs #:allow-other-keys)
4539 ;; The test suite requires a running X server.
4540 (system (format #f "~a/bin/Xvfb :1 &"
4541 (assoc-ref inputs "xorg-server")))
4542 (setenv "DISPLAY" ":1")
4543 #t)))))
4544 (home-page "http://www.cogl3d.org")
4545 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4546 (description
4547 "Cogl is a small library for using 3D graphics hardware to draw pretty
4548pictures. The API departs from the flat state machine style of OpenGL and is
4549designed to make it easy to write orthogonal components that can render
4550without stepping on each others toes.")
4551 (license (list license:expat ; most of the code
4552 license:bsd-3 ; cogl/cogl-point-in-poly.c
4553 license:sgifreeb2.0 ; cogl-path/tesselator/
4554 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4555
4556(define-public clutter
4557 (package
4558 (name "clutter")
6a88e4ee 4559 (version "1.26.2")
fb182b8a
MW
4560 (source
4561 (origin
4562 (method url-fetch)
4563 (uri (string-append "mirror://gnome/sources/" name "/"
4564 (version-major+minor version) "/"
4565 name "-" version ".tar.xz"))
4566 (sha256
4567 (base32
6a88e4ee 4568 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4569 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4570 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4571 (build-system gnu-build-system)
600233bd
LC
4572 (outputs '("out"
4573 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4574 (native-inputs
4575 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4576 ("gobject-introspection" ,gobject-introspection)
4577 ("pkg-config" ,pkg-config)
4578 ("xsltproc" ,libxslt)))
4579 (propagated-inputs
4580 `(("cogl" ,cogl)
4581 ("cairo" ,cairo)
4582 ("atk" ,atk)
4583 ("gtk+" ,gtk+)
4584 ("json-glib" ,json-glib)
4585 ("glib" ,glib)
4586 ("libxcomposite" ,libxcomposite)
4587 ("libxdamage" ,libxdamage)
4588 ("libxext" ,libxext)
4589 ("xinput" ,xinput)))
4590 (inputs
4591 `(("libxkbcommon" ,libxkbcommon)
4592 ("udev" ,eudev)))
4593 (arguments
600233bd
LC
4594 `(#:configure-flags (list "--enable-x11-backend=yes"
4595
4596 ;; This produces share/doc/{clutter,cally}.
4597 (string-append "--with-html-dir="
4598 (assoc-ref %outputs "doc")
4599 "/share/doc"))
fb182b8a
MW
4600 ;; XXX FIXME: Get test suite working. It would probably fail in the
4601 ;; same way the cogl tests fail, since clutter is based on cogl.
4602 #:tests? #f))
4603 (home-page "http://www.clutter-project.org")
476af713 4604 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4605 (description
476af713 4606 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4607creating fast, mainly 2D single window applications such as media box UIs,
4608presentations, kiosk style applications and so on.")
4609 (license license:lgpl2.0+)))
bf7f17ba
MW
4610
4611(define-public clutter-gtk
4612 (package
4613 (name "clutter-gtk")
5d1a3219 4614 (version "1.8.4")
bf7f17ba
MW
4615 (source
4616 (origin
4617 (method url-fetch)
4618 (uri (string-append "mirror://gnome/sources/" name "/"
4619 (version-major+minor version) "/"
4620 name "-" version ".tar.xz"))
4621 (sha256
4622 (base32
5d1a3219 4623 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4624 (build-system gnu-build-system)
4625 (native-inputs
4626 `(("pkg-config" ,pkg-config)
4627 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4628 (propagated-inputs
4629 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4630 `(("clutter" ,clutter)
4631 ("gtk+" ,gtk+)))
4632 (home-page "http://www.clutter-project.org")
476af713 4633 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4634 (description
476af713 4635 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4636creating fast, mainly 2D single window applications such as media box UIs,
4637presentations, kiosk style applications and so on.")
4638 (license license:lgpl2.0+)))
86d6a893
MW
4639
4640(define-public clutter-gst
4641 (package
4642 (name "clutter-gst")
ba07ac19 4643 (version "3.0.27")
86d6a893
MW
4644 (source
4645 (origin
4646 (method url-fetch)
f010f89b 4647 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4648 (version-major+minor version) "/"
f010f89b 4649 "clutter-gst-" version ".tar.xz"))
86d6a893 4650 (sha256
ba07ac19 4651 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4652 (build-system gnu-build-system)
4653 (native-inputs
ba07ac19 4654 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4655 ("pkg-config" ,pkg-config)
4656 ("gobject-introspection" ,gobject-introspection)))
4657 (inputs
4658 `(("clutter" ,clutter)
4659 ("gstreamer" ,gstreamer)
4660 ("gst-plugins-base" ,gst-plugins-base)))
4661 (home-page "http://www.clutter-project.org")
4662 (synopsis "Integration library for using GStreamer with Clutter")
4663 (description
4664 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4665It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4666implements the ClutterGstPlayer interface using playbin. Clutter is an
4667OpenGL-based interactive canvas library.")
86d6a893 4668 (license license:lgpl2.0+)))
607a04ae 4669
30dc88d9
LC
4670(define-public libchamplain
4671 (package
4672 (name "libchamplain")
5564b2c5 4673 (version "0.12.16")
30dc88d9
LC
4674 (source (origin
4675 (method url-fetch)
4676 (uri (string-append
4677 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4678 version ".tar.xz"))
4679 (sha256
4680 (base32
5564b2c5 4681 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4682 (build-system gnu-build-system)
f7c6833f
LF
4683 (arguments '(#:configure-flags '("--enable-vala")))
4684 (native-inputs
4685 `(("gobject-introspection" ,gobject-introspection)
4686 ("pkg-config" ,pkg-config)
4687 ("vala" ,vala)))
30dc88d9
LC
4688 (propagated-inputs
4689 `(("libsoup" ,libsoup)
4690 ("sqlite" ,sqlite)
4691 ("clutter" ,clutter)
4692 ("clutter-gtk" ,clutter-gtk)
4693 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4694 ("cairo" ,cairo)
4695 ("gtk+3" ,gtk+)
4696 ("glib" ,glib)))
f032d0be 4697 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4698 (synopsis "C library providing a ClutterActor to display maps")
4699 (description
4700 "libchamplain is a C library providing a ClutterActor to display maps.
4701It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4702and Perl bindings are also available. It supports numerous free map sources
4703such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4704 (license license:lgpl2.1+)))
4705
607a04ae
MW
4706(define-public gom
4707 (package
4708 (name "gom")
0510440b 4709 (version "0.3.2")
607a04ae
MW
4710 (source
4711 (origin
4712 (method url-fetch)
6c8a0b6f 4713 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4714 (version-major+minor version) "/"
6c8a0b6f 4715 "gom-" version ".tar.xz"))
607a04ae
MW
4716 (sha256
4717 (base32
0510440b 4718 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4719 (build-system gnu-build-system)
4720 (native-inputs
4721 `(("intltool" ,intltool)
4722 ("pkg-config" ,pkg-config)
4723 ("gobject-introspection" ,gobject-introspection)))
4724 (inputs
4725 `(("glib" ,glib)
4726 ("gdk-pixbuf" ,gdk-pixbuf)
4727 ("sqlite" ,sqlite)))
4728 ;; XXX TODO: Figure out how to run the test suite.
4729 (arguments `(#:tests? #f))
4730 (home-page "https://wiki.gnome.org/Projects/Gom")
4731 (synopsis "Object mapper from GObjects to SQLite")
4732 (description
4733 "Gom provides an object mapper from GObjects to SQLite. It helps you
4734write applications that need to store structured data as well as make complex
4735queries upon that data.")
4736 (license license:lgpl2.1+)))
b7a3cf11 4737
865aacc9 4738(define-public libgnome-games-support
f09520db 4739 (package
865aacc9 4740 (name "libgnome-games-support")
4c6d15cf 4741 (version "1.4.4")
f09520db
SB
4742 (source (origin
4743 (method url-fetch)
2d8dca9d 4744 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4745 (version-major+minor version) "/"
2d8dca9d 4746 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4747 (sha256
4748 (base32
4c6d15cf 4749 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4750 (build-system gnu-build-system)
4751 (arguments
4752 '(#:phases
4753 (modify-phases %standard-phases
4754 (add-before 'check 'pre-check
4755 (lambda _
865aacc9 4756 ;; Tests require a writable HOME.
f09520db
SB
4757 (setenv "HOME" (getcwd))
4758 #t)))))
4759 (native-inputs
4760 `(("intltool" ,intltool)
4761 ("pkg-config" ,pkg-config)
4762 ("vala" ,vala)))
4763 (propagated-inputs
865aacc9 4764 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4765 `(("gtk+" ,gtk+)
4766 ("libgee" ,libgee)))
4767 (home-page "https://www.gnome.org/")
4768 (synopsis "Useful functionality shared among GNOME games")
4769 (description
865aacc9 4770 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4771GNOME Games, but it may be used by others.")
4772 (license license:lgpl3+)))
4773
b7a3cf11
SB
4774(define-public gnome-klotski
4775 (package
4776 (name "gnome-klotski")
c1e419c4 4777 (version "3.32.0")
b7a3cf11
SB
4778 (source (origin
4779 (method url-fetch)
4780 (uri (string-append "mirror://gnome/sources/" name "/"
4781 (version-major+minor version) "/"
4782 name "-" version ".tar.xz"))
4783 (sha256
4784 (base32
c1e419c4
KK
4785 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4786 (build-system meson-build-system)
4787 (arguments
4788 '(#:glib-or-gtk? #t
4789 #:phases
4790 (modify-phases %standard-phases
4791 (add-after 'unpack 'skip-gtk-update-icon-cache
4792 ;; Don't create 'icon-theme.cache'.
4793 (lambda _
4794 (substitute* "build-aux/meson_post_install.py"
4795 (("gtk-update-icon-cache") (which "true")))
4796 #t)))))
b7a3cf11
SB
4797 (native-inputs
4798 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4799 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4800 ("intltool" ,intltool)
4801 ("itstool" ,itstool)
bcb354ad 4802 ("pkg-config" ,pkg-config)
c1e419c4 4803 ("vala" ,vala)
bcb354ad 4804 ("xmllint" ,libxml2)))
b7a3cf11
SB
4805 (inputs
4806 `(("gtk+" ,gtk+)
f4eae76f 4807 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4808 ("librsvg" ,librsvg)))
4809 (home-page "https://wiki.gnome.org/Apps/Klotski")
4810 (synopsis "Sliding block puzzles")
4811 (description
4812 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4813the patterned block to the area bordered by green markers. To do so, you will
4814need to slide other blocks out of the way. Complete each puzzle in as few moves
4815as possible!")
4816 (license license:gpl2+)))
8d4791bf
MW
4817
4818(define-public grilo
4819 (package
4820 (name "grilo")
a865e938 4821 (version "0.3.10")
8d4791bf
MW
4822 (source
4823 (origin
4824 (method url-fetch)
4825 (uri (string-append "mirror://gnome/sources/" name "/"
4826 (version-major+minor version) "/"
4827 name "-" version ".tar.xz"))
4828 (sha256
4829 (base32
a865e938 4830 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4831 (build-system meson-build-system)
8d4791bf
MW
4832 (native-inputs
4833 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4834 ("intltool" ,intltool)
4835 ("pkg-config" ,pkg-config)
d48d4c98
KK
4836 ("gobject-introspection" ,gobject-introspection)
4837 ("gtk-doc" ,gtk-doc)
4838 ("vala" ,vala)))
8d4791bf 4839 (inputs
6d7273a0
KK
4840 `(("cyrus-sasl" ,cyrus-sasl)
4841 ("glib" ,glib)
8d4791bf
MW
4842 ("gtk+" ,gtk+)
4843 ("libxml2" ,libxml2)
6d7273a0 4844 ("liboauth" ,liboauth)
8d4791bf
MW
4845 ("libsoup" ,libsoup)
4846 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4847 (native-search-paths
4848 (list (search-path-specification
4849 (variable "GRL_PLUGIN_PATH")
4850 (files (list (string-append "lib/grilo-"
4851 (version-major+minor version)))))))
d48d4c98 4852 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4853 (synopsis "Framework for discovering and browsing media")
4854 (description
4855 "Grilo is a framework focused on making media discovery and browsing easy
4856for application developers.")
4857 (license license:lgpl2.1+)))
7b212526
MW
4858
4859(define-public grilo-plugins
4860 (package
4861 (name "grilo-plugins")
281f6b3a 4862 (version "0.3.10")
7b212526
MW
4863 (source
4864 (origin
4865 (method url-fetch)
4866 (uri (string-append "mirror://gnome/sources/" name "/"
4867 (version-major+minor version) "/"
4868 name "-" version ".tar.xz"))
4869 (sha256
4870 (base32
281f6b3a
RG
4871 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4872 (build-system meson-build-system)
7b212526 4873 (native-inputs
281f6b3a
RG
4874 `(("gettext" ,gettext-minimal)
4875 ("glib:bin" ,glib "bin")
4876 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4877 ("itstool" ,itstool)
4878 ("pkg-config" ,pkg-config)))
281f6b3a 4879 ;; TODO: ahavi, gstreamer
7b212526
MW
4880 (inputs
4881 `(("grilo" ,grilo)
281f6b3a
RG
4882 ;("gmime" ,gmime) ; unused
4883 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4884 ("gom" ,gom)
281f6b3a
RG
4885 ;("gssdp" ,gssdp) ; unused
4886 ;("gupnp" ,gupnp) ; unused
4887 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4888 ("json-glib" ,json-glib)
4889 ("avahi" ,avahi)
281f6b3a
RG
4890 ("libgdata" ,libgdata)
4891 ("libmediaart" ,libmediaart)
4892 ;("librest" ,rest) ; unused
7b212526 4893 ("libsoup" ,libsoup)
281f6b3a
RG
4894 ("totam-pl-parser" ,totem-pl-parser)
4895 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4896 (arguments
281f6b3a
RG
4897 `(#:glib-or-gtk? #t
4898 ;;Disable lua-factory as it needs missing dependencies
4899 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4900 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4901 (synopsis "Plugins for the Grilo media discovery library")
4902 (description
4903 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4904for application developers. This package provides plugins for common media
4905discovery protocols.")
7b212526 4906 (license license:lgpl2.1+)))
4e3fc547
MW
4907
4908(define-public totem
4909 (package
4910 (name "totem")
995ef5ea 4911 (version "3.32.1")
4e3fc547
MW
4912 (source
4913 (origin
4914 (method url-fetch)
4915 (uri (string-append "mirror://gnome/sources/" name "/"
4916 (version-major+minor version) "/"
4917 name "-" version ".tar.xz"))
4918 (sha256
4919 (base32
995ef5ea 4920 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
7ad81b8b 4921 (build-system meson-build-system)
4e3fc547
MW
4922 (native-inputs
4923 `(("pkg-config" ,pkg-config)
4924 ("desktop-file-utils" ,desktop-file-utils)
4925 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4926 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4927 ("intltool" ,intltool)
bcb354ad 4928 ("itstool" ,itstool)
995ef5ea
KK
4929 ("xmllint" ,libxml2)
4930 ("python-pylint" ,python-pylint)
4931 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4932 (propagated-inputs
4933 `(("dconf" ,dconf)))
4934 (inputs
4935 `(("gtk+" ,gtk+)
4936 ("gdk-pixbuf" ,gdk-pixbuf)
4937 ("atk" ,atk)
4938 ("cairo" ,cairo)
4939 ("dbus-glib" ,dbus-glib)
4940 ("clutter" ,clutter)
4941 ("clutter-gtk" ,clutter-gtk)
4942 ("clutter-gst" ,clutter-gst)
6a6db57f 4943 ("xorgproto" ,xorgproto)
4e3fc547
MW
4944 ("libxxf86vm" ,libxxf86vm)
4945 ("libxtst" ,libxtst)
4946 ("libxrandr" ,libxrandr)
4947 ("libxml2" ,libxml2)
4948 ("libsoup" ,libsoup)
4949 ("libpeas" ,libpeas)
4950 ("librsvg" ,librsvg)
4951 ("lirc" ,lirc)
4952 ("gnome-desktop" ,gnome-desktop)
4953 ("gstreamer" ,gstreamer)
4954 ("gst-plugins-base" ,gst-plugins-base)
4955 ("gst-plugins-good" ,gst-plugins-good)
4956 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4957 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4958 ("python" ,python)
995ef5ea 4959 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4960 ("totem-pl-parser" ,totem-pl-parser)
4961 ("grilo" ,grilo)
4962 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4963 ("vala" ,vala)))
4964 (arguments
7ad81b8b
LC
4965 `(#:glib-or-gtk? #t
4966
4967 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4968 ;; all that.
7ad81b8b 4969 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4970
4971 ;; Do not build .a files for the plugins, it's
4972 ;; completely useless. This saves 2 MiB.
7ad81b8b 4973 "--default-library" "shared")
ec5c24f9 4974 #:phases
4e3fc547 4975 (modify-phases %standard-phases
d51b19ad
EF
4976 (add-after 'unpack 'skip-gtk-update-icon-cache
4977 ;; Don't create 'icon-theme.cache'.
4978 (lambda _
4979 (substitute* "meson_post_install.py"
4980 (("gtk-update-icon-cache") "true"))
4981 #t))
6368eb39
DM
4982 (add-before
4983 'install 'disable-cache-generation
4984 (lambda _
4985 (setenv "DESTDIR" "/")
4986 #t))
995ef5ea
KK
4987 (add-before
4988 'check 'pre-check
4989 (lambda _
4990 ;; Tests require a running X server.
4991 (system "Xvfb :1 &")
4992 (setenv "DISPLAY" ":1")
4993 #t))
4e3fc547
MW
4994 (add-after
4995 'install 'wrap-totem
4996 (lambda* (#:key inputs outputs #:allow-other-keys)
4997 (let ((out (assoc-ref outputs "out"))
4998 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4999 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5000 (wrap-program (string-append out "/bin/totem")
5001 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
5002 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5003 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5004 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
5005 #t)))))
5006 (home-page "https://wiki.gnome.org/Apps/Videos")
5007 (synopsis "Simple media player for GNOME based on GStreamer")
5008 (description "Totem is a simple yet featureful media player for GNOME
5009which can read a large number of file formats.")
5010 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5011 ;; to be used and distributed together with GStreamer and Totem. See
5012 ;; file://COPYING in the source distribution for details.
5013 (license license:gpl2+)))
f0afb0c8
DH
5014
5015(define-public rhythmbox
5016 (package
5017 (name "rhythmbox")
8190e1ed 5018 (version "3.4.3")
f0afb0c8
DH
5019 (source (origin
5020 (method url-fetch)
5021 (uri (string-append "mirror://gnome/sources/" name "/"
5022 (version-major+minor version) "/"
5023 name "-" version ".tar.xz"))
5024 (sha256
5025 (base32
8190e1ed 5026 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
f0afb0c8
DH
5027 (build-system glib-or-gtk-build-system)
5028 (arguments
5029 `(#:configure-flags
5030 (list "--enable-lirc"
5031 "--enable-python"
5032 "--enable-vala"
5033 "--with-brasero"
5034 "--with-gudev"
5035 "--with-libsecret")
5036 #:phases
5037 (modify-phases %standard-phases
5038 (add-after
5039 'install 'wrap-rhythmbox
5040 (lambda* (#:key inputs outputs #:allow-other-keys)
5041 (let ((out (assoc-ref outputs "out"))
5042 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5043 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5044 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5045 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5046 (wrap-program (string-append out "/bin/rhythmbox")
5047 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5048 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5049 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5050 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5051 #t)))))
5052 (propagated-inputs
5053 `(("dconf" ,dconf)))
5054 (native-inputs
bcb354ad
SB
5055 `(("itstool" ,itstool)
5056 ("intltool" ,intltool)
f0afb0c8
DH
5057 ("glib" ,glib "bin")
5058 ("gobject-introspection" ,gobject-introspection)
5059 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5060 ("pkg-config" ,pkg-config)
5061 ("xmllint" ,libxml2)))
f0afb0c8
DH
5062 (inputs
5063 `(("json-glib" ,json-glib)
5064 ("tdb" ,tdb)
5065 ("gnome-desktop" ,gnome-desktop)
5066 ("python" ,python)
5067 ("python-pygobject" ,python2-pygobject)
5068 ("vala" ,vala)
5069 ("gmime" ,gmime)
f0afb0c8
DH
5070 ("adwaita-icon-theme" ,adwaita-icon-theme)
5071 ("grilo" ,grilo)
5072 ("grilo-plugins" ,grilo-plugins)
5073 ("gstreamer" ,gstreamer)
5074 ("gst-plugins-base" ,gst-plugins-base)
5075 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5076 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5077 ("libgudev" ,libgudev)
f0afb0c8
DH
5078 ;;("libmtp" ,libmtp) FIXME: Not detected
5079 ("libsecret" ,libsecret)
5080 ("libsoup" ,libsoup)
5081 ("libnotify" ,libnotify)
5082 ("libpeas" ,libpeas)
5083 ("lirc" ,lirc)
5084 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5085 ;;("clutter" ,clutter)
5086 ;;("clutter-gtk" ,clutter-gtk)
5087 ;;("clutter-gst" ,clutter-gst)
5088 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5089 ("atk" ,atk)
5090 ("pango" ,pango)
5091 ("gtk+" ,gtk+)
5092 ;; TODO:
5093 ;; * libgpod
5094 ;; * mx
f0afb0c8
DH
5095 ("brasero" ,brasero)))
5096 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5097 (synopsis "Music player for GNOME")
5098 (description "Rhythmbox is a music playing application for GNOME. It
5099supports playlists, song ratings, and any codecs installed through gstreamer.")
5100 (license license:gpl2+)))
f70d8383
DH
5101
5102(define-public eog
5103 (package
5104 (name "eog")
b0f24a82 5105 (version "3.32.2")
f70d8383
DH
5106 (source (origin
5107 (method url-fetch)
5108 (uri (string-append "mirror://gnome/sources/" name "/"
5109 (version-major+minor version) "/"
5110 name "-" version ".tar.xz"))
5111 (sha256
5112 (base32
b0f24a82 5113 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
61fb581f 5114 (build-system meson-build-system)
f70d8383 5115 (arguments
34c44a34
RW
5116 `(#:configure-flags
5117 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5118 (list (string-append "-Dc_link_args=-Wl,-rpath="
5119 (assoc-ref %outputs "out") "/lib/eog"))
5120 #:phases
f70d8383 5121 (modify-phases %standard-phases
7a034665
EF
5122 (add-after 'unpack 'skip-gtk-update-icon-cache
5123 ;; Don't create 'icon-theme.cache'.
5124 (lambda _
5125 (substitute* "meson_post_install.py"
5126 (("gtk-update-icon-cache") "true"))
5127 #t))
61fb581f
RW
5128 (add-after 'install 'wrap-eog
5129 (lambda* (#:key outputs #:allow-other-keys)
5130 (let ((out (assoc-ref outputs "out"))
5131 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5132 (wrap-program (string-append out "/bin/eog")
5133 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5134 #t)))))
f70d8383
DH
5135 (propagated-inputs
5136 `(("dconf" ,dconf)))
5137 (native-inputs
5138 `(("intltool" ,intltool)
b3546174 5139 ("itstool" ,itstool)
f70d8383
DH
5140 ("glib" ,glib "bin")
5141 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5142 ("pkg-config" ,pkg-config)
5143 ("xmllint" ,libxml2)))
f70d8383
DH
5144 (inputs
5145 `(("gnome-desktop" ,gnome-desktop)
5146 ("shared-mime-info" ,shared-mime-info)
5147 ("adwaita-icon-theme" ,adwaita-icon-theme)
5148 ("exempi" ,exempi)
5149 ("lcms" ,lcms)
5150 ("libexif" ,libexif)
5151 ("libpeas" ,libpeas)
5152 ("libjpeg" ,libjpeg)
5153 ("librsvg" ,librsvg)
5154 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5155 ("gtk+" ,gtk+)))
5156 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5157 (synopsis "GNOME image viewer")
5158 (description "Eye of GNOME is the GNOME image viewer. It
5159supports image conversion, rotation, and slideshows.")
5160 (license license:gpl2+)))
41af5e7b 5161
0c3f8cb8
LC
5162(define-public eog-plugins
5163 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5164 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5165 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5166 ;; 'XDG_DATA_DIRS' appropriately set.
5167 (package
5168 (name "eog-plugins")
54b74cc6 5169 (version "3.26.4")
0c3f8cb8
LC
5170 (source (origin
5171 (method url-fetch)
f3b88ed2 5172 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5173 (version-major+minor version) "/"
f3b88ed2 5174 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5175 (sha256
5176 (base32
54b74cc6 5177 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5178 (build-system gnu-build-system)
5179 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5180 (synopsis "Extensions for the Eye of GNOME image viewer")
5181 (native-inputs
5182 `(("pkg-config" ,pkg-config)
5183 ("gettext" ,gnu-gettext)))
5184 (inputs
5185 `(("eog" ,eog)
5186 ("glib" ,glib)
5187 ("gtk+" ,gtk+)
5188 ("libpeas" ,libpeas)
5189 ("libexif" ,libexif)
5190 ("libchamplain" ,libchamplain)))
5191 (description
5192 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5193notably:
5194
5195@itemize
5196@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5197@item @dfn{Map}, which displays a map of where the picture was taken on the
5198side panel;
5199@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5200@end itemize\n")
5201
5202 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5203 ;; long suspicious byte stream that goes to a
5204 ;; ".gresource.eog_postasa_plugin" ELF section.
5205 (license license:gpl2+)))
5206
41af5e7b
SB
5207(define-public libgudev
5208 (package
5209 (name "libgudev")
b78f5118 5210 (version "232")
41af5e7b
SB
5211 (source (origin
5212 (method url-fetch)
5213 (uri (string-append "mirror://gnome/sources/" name "/"
5214 version "/" name "-" version ".tar.xz"))
5215 (sha256
5216 (base32
b78f5118 5217 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5218 (build-system gnu-build-system)
b78f5118
RW
5219 (arguments
5220 '(#:configure-flags
5221 ;; umockdev depends on libgudev.
5222 (list "--disable-umockdev")))
41af5e7b
SB
5223 (native-inputs
5224 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5225 ("gobject-introspection" ,gobject-introspection)
5226 ("pkg-config" ,pkg-config)))
5227 (propagated-inputs
5228 `(("glib" ,glib))) ; required by gudev-1.0.pc
5229 (inputs
5230 `(("udev" ,eudev)))
5231 (home-page "https://wiki.gnome.org/Projects/libgudev")
5232 (synopsis "GObject bindings for libudev")
5233 (description
5234 "This library provides GObject bindings for libudev. It was originally
5235part of udev-extras, then udev, then systemd. It's now a project on its own.")
5236 (license license:lgpl2.1+)))
3dc8828f
SB
5237
5238(define-public gvfs
5239 (package
5240 (name "gvfs")
12fe4846 5241 (version "1.40.1")
3dc8828f
SB
5242 (source (origin
5243 (method url-fetch)
1d68eb32 5244 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5245 (version-major+minor version) "/"
1d68eb32 5246 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5247 (sha256
5248 (base32
12fe4846 5249 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5250 (build-system meson-build-system)
3dc8828f 5251 (arguments
e762d943
RW
5252 '(#:glib-or-gtk? #t
5253 #:configure-flags
5254 (list "-Dsystemduserunitdir=no"
5255 "-Dtmpfilesdir=no"
5256 ;; Otherwise, the RUNPATH will lack the final path component.
5257 (string-append "-Dc_link_args=-Wl,-rpath="
5258 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5259 (native-inputs
5260 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5261 ("gettext" ,gettext-minimal)
5262 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5263 ("pkg-config" ,pkg-config)
5264 ("xsltproc" ,libxslt)))
5265 (inputs
5266 `(("avahi" ,avahi)
5267 ("docbook-xml" ,docbook-xml-4.2)
5268 ("docbook-xsl" ,docbook-xsl)
5269 ("dbus" ,dbus)
e762d943 5270 ("elogind" ,elogind)
3dc8828f 5271 ("fuse" ,fuse)
24a78aa6 5272 ("gcr" ,gcr)
3dc8828f 5273 ("glib" ,glib)
e762d943 5274 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5275 ("libarchive" ,libarchive)
5276 ("libbluray" ,libbluray)
8852ca24 5277 ("libcap" ,libcap)
3dc8828f
SB
5278 ("libcdio-paranoia" ,libcdio-paranoia)
5279 ("libgcrypt" ,libgcrypt)
e762d943 5280 ("libgdata" ,libgdata)
3dc8828f
SB
5281 ("libgphoto2" ,libgphoto2)
5282 ("libgudev" ,libgudev)
0ab9f949 5283 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5284 ("libmtp" ,libmtp)
e762d943 5285 ("libnfs" ,libnfs)
3dc8828f
SB
5286 ("libsecret" ,libsecret)
5287 ("libsmbclient" ,samba)
5288 ("libsoup" ,libsoup)
5289 ("libxml2" ,libxml2)
e762d943 5290 ("openssh" ,openssh)
8852ca24 5291 ("polkit" ,polkit)
3dc8828f
SB
5292 ("udisks" ,udisks)))
5293 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5294 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5295 (description
8f65585b 5296 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5297abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5298to all applications using the GIO API. It also supports exposing the GVFS
5299mounts to non-GIO applications using FUSE.
5300
5301GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5302DAV, and others.")
5303 (license license:lgpl2.0+)))
7c88b6bd
AW
5304
5305(define-public gusb
5306 (package
5307 (name "gusb")
536b3274 5308 (version "0.3.0")
7c88b6bd 5309 (source (origin
bbfb36f9
EF
5310 (method git-fetch)
5311 (uri (git-reference
5312 (url "https://github.com/hughsie/libgusb.git")
5313 (commit version)))
5314 (file-name (git-file-name name version))
7c88b6bd
AW
5315 (sha256
5316 (base32
bbfb36f9 5317 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5318 (build-system meson-build-system)
7c88b6bd 5319 (native-inputs
536b3274 5320 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5321 ("pkg-config" ,pkg-config)
5322 ("vala" ,vala)
7c88b6bd
AW
5323 ("gtk-doc" ,gtk-doc)))
5324 (propagated-inputs
5325 ;; Both of these are required by gusb.pc.
5326 `(("glib" ,glib)
5327 ("libusb" ,libusb)))
5328 (arguments
536b3274 5329 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5330 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5331 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5332 (description
5333 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5334asynchronous control, bulk and interrupt transfers with proper cancellation
5335and integration into a mainloop. This makes it easy to integrate low level
5336USB transfers with your high-level application or system daemon.")
5337 (license license:lgpl2.1+)))
0abe1d86
AW
5338
5339(define-public simple-scan
5340 (package
5341 (name "simple-scan")
4afb7dd9 5342 (version "3.34.2")
d9f6d587
TGR
5343 (source
5344 (origin
5345 (method url-fetch)
5346 (uri (string-append "mirror://gnome/sources/simple-scan/"
5347 (version-major+minor version) "/"
5348 "simple-scan-" version ".tar.xz"))
5349 (sha256
4afb7dd9 5350 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
d9f6d587
TGR
5351 (build-system meson-build-system)
5352 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5353 (arguments
5354 '(#:glib-or-gtk? #t))
0abe1d86
AW
5355 (inputs
5356 `(("gtk" ,gtk+)
5357 ("zlib" ,zlib)
5358 ("cairo" ,cairo)
c501f592 5359 ("colord" ,colord)
0abe1d86
AW
5360 ("gdk-pixbuf" ,gdk-pixbuf)
5361 ("gusb" ,gusb)
4c928743 5362 ("libsane" ,sane-backends)))
0abe1d86 5363 (native-inputs
b94a6ca0 5364 `(("gettext" ,gettext-minimal)
0abe1d86 5365 ("itstool" ,itstool)
c501f592 5366 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5367 ("pkg-config" ,pkg-config)
bcb354ad
SB
5368 ("vala" ,vala)
5369 ("xmllint" ,libxml2)))
dff0eedb 5370 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5371 (synopsis "Document and image scanner")
d9f6d587
TGR
5372 (description
5373 "Document Scanner is an easy-to-use application that lets you connect your
5374scanner and quickly capture images and documents in an appropriate format. It
5375supports any scanner for which a suitable SANE driver is available, which is
5376almost all of them.")
0abe1d86 5377 (license license:gpl3+)))
7549f984 5378
ab466d79
RW
5379(define-public eolie
5380 (package
5381 (name "eolie")
fa8ef3ed 5382 (version "0.9.63")
ab466d79
RW
5383 (source (origin
5384 (method url-fetch)
00014781 5385 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
fa8ef3ed 5386 "uploads/d42b466752729a0d3fa828a721e25043/"
00014781 5387 "eolie-" version ".tar.xz"))
ab466d79
RW
5388 (sha256
5389 (base32
fa8ef3ed 5390 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
00014781 5391 (build-system meson-build-system)
ab466d79 5392 (arguments
00014781
RW
5393 `(#:glib-or-gtk? #t
5394 #:phases
ab466d79 5395 (modify-phases %standard-phases
f0c68100
EF
5396 (add-after 'unpack 'skip-gtk-update-icon-cache
5397 ;; Don't create 'icon-theme.cache'.
5398 (lambda _
5399 (substitute* "meson_post_install.py"
5400 (("gtk-update-icon-cache") "true"))
5401 #t))
ab466d79
RW
5402 (add-after 'wrap 'wrap-more
5403 (lambda* (#:key inputs outputs #:allow-other-keys)
5404 (let* ((out (assoc-ref outputs "out"))
5405 ;; These libraries must be on LD_LIBRARY_PATH.
5406 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5407 "atk" "gtk+" "gsettings-desktop-schemas"
5408 "gobject-introspection"))
5409 (path (string-join
5410 (map (lambda (lib)
5411 (string-append (assoc-ref inputs lib) "/lib"))
5412 libs)
5413 ":")))
5414 (wrap-program (string-append out "/bin/eolie")
5415 `("LD_LIBRARY_PATH" ":" prefix (,path))
5416 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5417 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5418 #t)))))
5419 (native-inputs
f85ca6ed 5420 `(("intltool" ,intltool)
ab466d79 5421 ("itstool" ,itstool)
d95f1041 5422 ("pkg-config" ,pkg-config)
d95f1041 5423 ("python" ,python)
f0c68100 5424 ("glib:bin" ,glib "bin")))
ab466d79
RW
5425 (inputs
5426 `(("gobject-introspection" ,gobject-introspection)
5427 ("glib-networking" ,glib-networking)
5428 ("cairo" ,cairo)
5429 ("gtk+" ,gtk+)
5430 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5431 ("python" ,python-wrapper)
d72f76df 5432 ("python-dateutil" ,python-dateutil)
00014781 5433 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5434 ("python-pygobject" ,python-pygobject)
5435 ("python-pycairo" ,python-pycairo)
00014781 5436 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5437 ("libsecret" ,libsecret)
5438 ("gtkspell3" ,gtkspell3)
5439 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5440 ("webkitgtk" ,webkitgtk)))
166b2c97 5441 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5442 (synopsis "Web browser for GNOME")
5443 (description
5444 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5445a secret password store, an adblocker, and a modern UI.")
5446 (license license:gpl3+)))
5447
7549f984
SB
5448(define-public epiphany
5449 (package
5450 (name "epiphany")
60680365 5451 (version "3.32.5")
7549f984
SB
5452 (source (origin
5453 (method url-fetch)
dd3266ec 5454 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5455 (version-major+minor version) "/"
dd3266ec 5456 "epiphany-" version ".tar.xz"))
7549f984
SB
5457 (sha256
5458 (base32
60680365 5459 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
fc5c5b92
R
5460
5461 (build-system meson-build-system)
7549f984
SB
5462 (arguments
5463 ;; FIXME: tests run under Xvfb, but fail with:
5464 ;; /src/bookmarks/ephy-bookmarks/create:
5465 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5466 ;; subsystem
5467 ;; FAIL
6f48d9db 5468 '(#:tests? #f
e19f9c24 5469 #:glib-or-gtk? #t
bb7ff88f
EF
5470 #:phases
5471 (modify-phases %standard-phases
5472 (add-after 'unpack 'skip-gtk-update-icon-cache
5473 ;; Don't create 'icon-theme.cache'.
5474 (lambda _
5475 (substitute* "post_install.py"
5476 (("gtk-update-icon-cache") "true"))
5477 #t)))
e19f9c24
LF
5478 #:configure-flags
5479 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5480 (list (string-append "-Dc_link_args=-Wl,-rpath="
5481 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5482 (propagated-inputs
5483 `(("dconf" ,dconf)))
7549f984 5484 (native-inputs
fc5c5b92
R
5485 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5486 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5487 ("intltool" ,intltool)
7549f984 5488 ("itstool" ,itstool)
bcb354ad
SB
5489 ("pkg-config" ,pkg-config)
5490 ("xmllint" ,libxml2)))
7549f984
SB
5491 (inputs
5492 `(("avahi" ,avahi)
5493 ("gcr" ,gcr)
fc5c5b92 5494 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5495 ("glib-networking" ,glib-networking)
5496 ("gnome-desktop" ,gnome-desktop)
5497 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5498 ("json-glib" ,json-glib)
7549f984 5499 ("iso-codes" ,iso-codes)
8748e29c 5500 ("libdazzle" ,libdazzle)
7549f984
SB
5501 ("libnotify" ,libnotify)
5502 ("libsecret" ,libsecret)
7549f984 5503 ("libxslt" ,libxslt)
fc5c5b92 5504 ("nettle" ,nettle) ; for hogweed
7549f984 5505 ("sqlite" ,sqlite)
f85ca6ed 5506 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5507 (home-page "https://wiki.gnome.org/Apps/Web")
5508 (synopsis "GNOME web browser")
5509 (description
5510 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5511principles are simplicity and standards compliance.")
5512 (license license:gpl2+)))
a3856b2c
SB
5513
5514(define-public d-feet
5515 (package
5516 (name "d-feet")
458e9221 5517 (version "0.3.14")
a3856b2c
SB
5518 (source (origin
5519 (method url-fetch)
5520 (uri (string-append "mirror://gnome/sources/" name "/"
5521 (version-major+minor version) "/"
5522 name "-" version ".tar.xz"))
5523 (sha256
5524 (base32
458e9221 5525 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5526 (build-system glib-or-gtk-build-system)
5527 (arguments
5528 '(#:out-of-source? #f ; tests need to run in the source directory.
5529 #:phases
5530 (modify-phases %standard-phases
5531 (add-before
5532 'check 'pre-check
86aff791 5533 (lambda _
a3856b2c
SB
5534 ;; The test suite requires a running X server.
5535 (system "Xvfb :1 &")
5536 (setenv "DISPLAY" ":1")
5537 ;; Don't fail on missing '/etc/machine-id'.
5538 (setenv "DBUS_FATAL_WARNINGS" "0")
5539 ;; tests.py and window.py don't meet E402:
5540 ;; E402 module level import not at top of file
5541 (substitute* "src/tests/Makefile"
86aff791
MW
5542 (("--ignore=E123") "--ignore=E123,E402"))
5543 #t))
a3856b2c
SB
5544 (add-after
5545 'install 'wrap-program
5546 (lambda* (#:key outputs #:allow-other-keys)
5547 (let ((prog (string-append (assoc-ref outputs "out")
5548 "/bin/d-feet")))
5549 (wrap-program prog
5550 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5551 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5552 #t))))))
a3856b2c
SB
5553 (native-inputs
5554 `(("intltool" ,intltool)
5555 ("itstool" ,itstool)
5556 ("pkg-config" ,pkg-config)
5557 ("python-pep8" ,python-pep8)
5558 ("xmllint" ,libxml2)
ff337525 5559 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5560 (inputs
5561 `(("gobject-introspection" ,gobject-introspection)
5562 ("gtk+" ,gtk+)
5563 ("python" ,python-wrapper)
458e9221 5564 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5565 ("python-pygobject" ,python-pygobject)))
5566 (home-page "https://wiki.gnome.org/Apps/DFeet")
5567 (synopsis "D-Bus debugger")
5568 (description
5569 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5570of running programs and invoke methods on those interfaces.")
5571 (license license:gpl2+)))
c3b97bd9
SB
5572
5573(define-public yelp-xsl
5574 (package
5575 (name "yelp-xsl")
b3640e79 5576 (version "3.32.1")
c3b97bd9
SB
5577 (source (origin
5578 (method url-fetch)
5579 (uri (string-append "mirror://gnome/sources/" name "/"
5580 (version-major+minor version) "/"
5581 name "-" version ".tar.xz"))
5582 (sha256
5583 (base32
b3640e79 5584 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
c3b97bd9
SB
5585 (build-system gnu-build-system)
5586 (native-inputs
5587 `(("intltool" ,intltool)
5588 ("itstool" ,itstool)
5589 ("xmllint" ,libxml2)))
5590 (home-page "https://wiki.gnome.org/Apps/Yelp")
5591 (synopsis "XSL stylesheets for Yelp")
5592 (description
5593 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5594to format Docbook and Mallard documents.")
5595 (license license:gpl2+)))
de3d612a
SB
5596
5597(define-public yelp
5598 (package
5599 (name "yelp")
1f1b6d60 5600 (version "3.32.2")
de3d612a
SB
5601 (source (origin
5602 (method url-fetch)
5603 (uri (string-append "mirror://gnome/sources/" name "/"
5604 (version-major+minor version) "/"
5605 name "-" version ".tar.xz"))
5606 (sha256
5607 (base32
1f1b6d60 5608 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5609 (build-system glib-or-gtk-build-system)
5610 (native-inputs
5611 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5612 ("intltool" ,intltool)
5613 ("itstool" ,itstool)
5614 ("pkg-config" ,pkg-config)))
5615 (propagated-inputs
5616 `(("dconf" ,dconf)))
5617 (inputs
ad1b7d8b
SB
5618 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5619 ("libxslt" ,libxslt)
de3d612a 5620 ("sqlite" ,sqlite)
4c28ca1d
SB
5621 ("webkitgtk" ,webkitgtk)
5622 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5623 (home-page "https://wiki.gnome.org/Apps/Yelp")
5624 (synopsis "GNOME help browser")
5625 (description
5626 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5627man, info, and HTML documents. It can locate documents according to the
5628freedesktop.org help system specification.")
5629 (license license:gpl2+)))
122d0d10
SB
5630
5631(define-public yelp-tools
5632 (package
5633 (name "yelp-tools")
2089bca5 5634 (version "3.28.0")
122d0d10
SB
5635 (source (origin
5636 (method url-fetch)
5637 (uri (string-append "mirror://gnome/sources/" name "/"
5638 (version-major+minor version) "/"
5639 name "-" version ".tar.xz"))
5640 (sha256
5641 (base32
2089bca5 5642 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
122d0d10
SB
5643 (build-system gnu-build-system)
5644 (native-inputs
5645 `(("pkg-config" ,pkg-config)))
5646 (propagated-inputs
5647 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5648 `(("itstool" ,itstool)
5649 ("xmllint" ,libxml2)
5650 ("xsltproc" ,libxslt)))
5651 (inputs
5652 `(("yelp-xsl" ,yelp-xsl)))
5653 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5654 (synopsis "Yelp documentation tools")
5655 (description
5656 "Yelp-tools is a collection of scripts and build utilities to help create,
5657manage, and publish documentation for Yelp and the web. Most of the heavy
5658lifting is done by packages like yelp-xsl and itstool. This package just
5659wraps things up in a developer-friendly way.")
5660 (license license:gpl2+)))
af8f9f23 5661
4ed041d9
MB
5662(define-public yelp-tools/fixed
5663 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5664 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5665 ;; the next rebuild cycle.
5666 (hidden-package
5667 (package/inherit
5668 yelp-tools
5669 (propagated-inputs
5670 `(("itstool" ,itstool/fixed)
5671 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5672
af8f9f23
RW
5673(define-public libgee
5674 (package
5675 (name "libgee")
4c2c5ae6 5676 (version "0.20.2")
af8f9f23
RW
5677 (source (origin
5678 (method url-fetch)
84a1b007 5679 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5680 (version-major+minor version) "/"
84a1b007 5681 "libgee-" version ".tar.xz"))
af8f9f23
RW
5682 (sha256
5683 (base32
4c2c5ae6 5684 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
af8f9f23
RW
5685 (build-system gnu-build-system)
5686 (arguments
5687 `(#:phases
5688 (modify-phases %standard-phases
5689 (add-after 'unpack 'fix-introspection-install-dir
5690 (lambda* (#:key outputs #:allow-other-keys)
5691 (let ((out (assoc-ref outputs "out")))
5692 (substitute* "gee/Makefile.in"
5693 (("@INTROSPECTION_GIRDIR@")
5694 (string-append out "/share/gir-1.0/"))
5695 (("@INTROSPECTION_TYPELIBDIR@")
5696 (string-append out "/lib/girepository-1.0/")))))))))
5697 (native-inputs
5698 `(("glib" ,glib "bin")
5699 ("pkg-config" ,pkg-config)))
5700 (inputs
5701 `(("glib" ,glib)
5702 ("gobject-introspection" ,gobject-introspection)))
5703 (home-page "https://wiki.gnome.org/Projects/Libgee")
5704 (synopsis "GObject collection library")
5705 (description
5706 "Libgee is a utility library providing GObject-based interfaces and
5707classes for commonly used data structures.")
5708 (license license:lgpl2.1+)))
b0f9c4b8
RW
5709
5710(define-public gexiv2
5711 (package
5712 (name "gexiv2")
b1a8b408 5713 (version "0.12.0")
b0f9c4b8
RW
5714 (source (origin
5715 (method url-fetch)
5716 (uri (string-append "mirror://gnome/sources/" name "/"
5717 (version-major+minor version) "/"
5718 name "-" version ".tar.xz"))
5719 (sha256
5720 (base32
b1a8b408 5721 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5722 (build-system meson-build-system)
b0f9c4b8 5723 (native-inputs
b1a8b408
KK
5724 `(("gcr" ,gcr)
5725 ("glib" ,glib "bin")
5726 ("pkg-config" ,pkg-config)
5727 ("vala" ,vala)))
b0f9c4b8
RW
5728 (propagated-inputs
5729 ;; Listed in "Requires" section of gexiv2.pc
5730 `(("exiv2" ,exiv2)))
5731 (inputs
5732 `(("glib" ,glib)
5733 ("gobject-introspection" ,gobject-introspection)))
5734 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5735 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5736 (description
5737 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5738allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5739metadata in photo and video files of various formats.")
5740 (license license:gpl2+)))
fed5a689
RW
5741
5742(define-public shotwell
5743 (package
5744 (name "shotwell")
a1c6fb52 5745 (version "0.30.7")
fed5a689
RW
5746 (source (origin
5747 (method url-fetch)
5497d682 5748 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5749 (version-major+minor version) "/"
5497d682 5750 "shotwell-" version ".tar.xz"))
fed5a689
RW
5751 (sha256
5752 (base32
a1c6fb52 5753 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
3b79afa6
KK
5754 (build-system meson-build-system)
5755 (arguments
5a0beca3
EF
5756 '(#:glib-or-gtk? #t
5757 #:phases
5758 (modify-phases %standard-phases
5759 (add-after 'unpack 'skip-gtk-update-icon-cache
5760 (lambda _
5761 (substitute* "build-aux/meson/postinstall.py"
5762 (("gtk-update-icon-cache") (which "true"))
5763 (("update-desktop-database") (which "true")))
5764 #t)))))
735b8db6
TGR
5765 (propagated-inputs
5766 `(("dconf" ,dconf)))
fed5a689 5767 (native-inputs
5a0beca3
EF
5768 `(("gettext" ,gettext-minimal)
5769 ("glib:bin" ,glib "bin")
735b8db6 5770 ("itstool" ,itstool)
3b79afa6 5771 ("pkg-config" ,pkg-config)
735b8db6 5772 ("vala" ,vala)))
fed5a689 5773 (inputs
5a0beca3
EF
5774 `(("gcr" ,gcr)
5775 ("gexiv2" ,gexiv2)
fed5a689 5776 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5777 ("gstreamer" ,gstreamer)
5778 ("json-glib" ,json-glib)
dfb0323d 5779 ("libgdata" ,libgdata)
fed5a689 5780 ("libgee" ,libgee)
5a0beca3
EF
5781 ("libgphoto2" ,libgphoto2)
5782 ("libgudev" ,libgudev)
fed5a689 5783 ("libraw" ,libraw)
fed5a689
RW
5784 ("libsoup" ,libsoup)
5785 ("libxml2" ,libxml2)
5a0beca3
EF
5786 ("sqlite" ,sqlite)
5787 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5788 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5789 (synopsis "Photo manager for GNOME 3")
5790 (description
5791 "Shotwell is a digital photo manager designed for the GNOME desktop
5792environment. It allows you to import photos from disk or camera, organize
5793them by keywords and events, view them in full-window or fullscreen mode, and
5794share them with others via social networking and more.")
5795 (license license:lgpl2.1+)))
293ff8b2
DT
5796
5797(define-public file-roller
5798 (package
5799 (name "file-roller")
dcae4270 5800 (version "3.32.3")
293ff8b2
DT
5801 (source (origin
5802 (method url-fetch)
f89a27c6 5803 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5804 (version-major+minor version) "/"
f89a27c6 5805 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5806 (sha256
5807 (base32
dcae4270 5808 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5809 (build-system meson-build-system)
293ff8b2 5810 (native-inputs
0a500745
RW
5811 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5812 ("intltool" ,intltool)
4c96e5d1 5813 ("itstool" ,itstool)
0a500745
RW
5814 ("pkg-config" ,pkg-config)
5815 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5816 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5817 ;; TODO: Add libnautilus.
5818 (inputs
5819 `(("gtk+" ,gtk+)
5820 ("gdk-pixbuf" ,gdk-pixbuf)
5821 ("json-glib" ,json-glib)
5822 ("libarchive" ,libarchive)
5823 ("libnotify" ,libnotify)
4c96e5d1 5824 ("nettle" ,nettle)
293ff8b2
DT
5825 ("libxml2" ,libxml2)))
5826 (synopsis "Graphical archive manager for GNOME")
5827 (description "File Roller is an archive manager for the GNOME desktop
5828environment that allows users to view, unpack, and create compressed archives
5829such as gzip tarballs.")
5830 (home-page "http://fileroller.sourceforge.net/")
5831 (license license:gpl2+)))
7ce49365
SB
5832
5833(define-public gnome-session
5834 (package
5835 (name "gnome-session")
1fc2ec79 5836 (version "3.32.0")
7ce49365
SB
5837 (source (origin
5838 (method url-fetch)
5839 (uri (string-append "mirror://gnome/sources/" name "/"
5840 (version-major+minor version) "/"
5841 name "-" version ".tar.xz"))
5842 (sha256
5843 (base32
1fc2ec79 5844 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
2914af3c 5845 (arguments
df278071
RW
5846 '(#:glib-or-gtk? #t
5847 #:phases
2914af3c
AW
5848 (modify-phases %standard-phases
5849 (add-before 'configure 'pre-configure
5850 (lambda* (#:key outputs #:allow-other-keys)
5851 ;; Use elogind instead of systemd.
df278071
RW
5852 (substitute* "meson.build"
5853 (("libsystemd-login") "libelogind")
5854 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5855 (substitute* "gnome-session/gsm-systemd.c"
5856 (("#include <systemd/sd-login.h>")
5857 "#include <elogind/sd-login.h>"))
df278071 5858 ;; Remove uses of the systemd daemon.
803ab416
SB
5859 (substitute* "gnome-session/gsm-autostart-app.c"
5860 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5861 #t))
5862 (add-after 'install 'wrap-gnome-session
5863 (lambda* (#:key inputs outputs #:allow-other-keys)
5864 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5865 (let ((glib (assoc-ref inputs "glib:bin"))
5866 (out (assoc-ref outputs "out")))
5867 (wrap-program (string-append out "/bin/gnome-session")
5868 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5869 #t))))
6cbc8d57 5870
2914af3c 5871 #:configure-flags
df278071
RW
5872 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5873 "-Dman=false" ; FIXME: disabled because of docbook validation error
5874 "-Dsystemd_journal=false")))
5875 (build-system meson-build-system)
7ce49365
SB
5876 (native-inputs
5877 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5878 ("pkg-config" ,pkg-config)
5879 ("intltool" ,intltool)
df278071
RW
5880 ("xsltproc" ,libxslt)
5881 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5882 ("docbook-xsl" ,docbook-xsl)
5883 ("docbook-xml" ,docbook-xml)
5884 ("xmlto" ,xmlto)))
7ce49365 5885 (inputs
2914af3c
AW
5886 `(("elogind" ,elogind)
5887 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5888 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5889 ("gtk+" ,gtk+)
5890 ("json-glib" ,json-glib)
5891 ("libsm" ,libsm)
5892 ("libxcomposite" ,libxcomposite)
5893 ("libxtst" ,libxtst)
5894 ("mesa" ,mesa)
5895 ("upower" ,upower)
5896 ("xtrans" ,xtrans)))
5897 (synopsis "Session manager for GNOME")
5898 (description
5899 "This package contains the GNOME session manager, as well as a
5900configuration program to choose applications starting on login.")
5901 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5902 (license license:gpl2+)))
f47ba77e
SB
5903
5904(define-public gjs
5905 (package
5906 (name "gjs")
d054fbf5 5907 (version "1.56.2")
f47ba77e
SB
5908 (source (origin
5909 (method url-fetch)
5910 (uri (string-append "mirror://gnome/sources/" name "/"
5911 (version-major+minor version) "/"
5912 name "-" version ".tar.xz"))
5913 (sha256
5914 (base32
d054fbf5 5915 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
f47ba77e
SB
5916 (build-system gnu-build-system)
5917 (arguments
5918 '(#:phases
5919 (modify-phases %standard-phases
5920 (add-before
5921 'check 'pre-check
5922 (lambda _
fc119619
MW
5923 ;; The test suite requires a running X server.
5924 (system "Xvfb :1 &")
5925 (setenv "DISPLAY" ":1")
5926
f47ba77e
SB
5927 ;; For the missing /etc/machine-id.
5928 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5929
144f94d0
KK
5930 ;; Our mozjs-38 package does not compile the required Intl API
5931 ;; support for these failing tests.
5932 (substitute* "installed-tests/js/testLocale.js"
5933 ((".*toBeDefined.*") "")
5934 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5935 (substitute* "installed-tests/scripts/testCommandLine.sh"
5936 (("Valentín") "")
5937 (("☭") ""))
f47ba77e
SB
5938 #t)))))
5939 (native-inputs
8a831c6f 5940 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5941 ("pkg-config" ,pkg-config)
5942 ("xmllint" ,libxml2)
5943 ;; For testing
5944 ("dbus-launch" ,dbus)
5945 ("uuidgen" ,util-linux)
ebebee94 5946 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5947 (propagated-inputs
5948 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5949 `(("cairo" ,cairo)
5950 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5951 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5952 (inputs
5953 `(("gtk+" ,gtk+)
5954 ("readline" ,readline)))
5955 (synopsis "Javascript bindings for GNOME")
f032d0be 5956 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5957 (description
5958 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5959javascript engine and the GObject introspection framework.")
5960 (license license:gpl2+)))
329d731b
DH
5961
5962(define-public gedit
5963 (package
5964 (name "gedit")
480c9226 5965 (version "3.32.2")
329d731b
DH
5966 (source (origin
5967 (method url-fetch)
5968 (uri (string-append "mirror://gnome/sources/" name "/"
5969 (version-major+minor version) "/"
5970 name "-" version ".tar.xz"))
5971 (sha256
5972 (base32
480c9226
KK
5973 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5974 (build-system meson-build-system)
329d731b 5975 (arguments
480c9226
KK
5976 `(#:glib-or-gtk? #t
5977 #:configure-flags
5978 ;; Otherwise, the RUNPATH will lack the final path component.
5979 (list (string-append "-Dc_link_args=-Wl,-rpath="
5980 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5981
5982 ;; XXX: Generated .h files are sometimes used before being built.
5983 #:parallel-build? #f
5984
480c9226 5985 #:phases
329d731b 5986 (modify-phases %standard-phases
480c9226
KK
5987 (add-after 'unpack 'skip-gtk-update-icon-cache
5988 ;; Don't create 'icon-theme.cache'.
5989 (lambda _
5990 (substitute* "build-aux/meson/post_install.py"
5991 (("gtk-update-icon-cache") (which "true")))
5992 #t))
5993 (add-after 'unpack 'patch-libgd-fetch
5994 (lambda* (#:key inputs #:allow-other-keys)
5995 (let ((libgd (assoc-ref inputs "libgd")))
5996 ;; Calling git is unnecessary because libgd is fetched as a
5997 ;; native input to this package.
5998 (substitute* "meson.build"
5999 ((".*git.*") ""))
6000 (copy-recursively libgd "subprojects/libgd")
6001 #t)))
6002 (add-after 'install 'wrap-gedit
6003 (lambda* (#:key inputs outputs #:allow-other-keys)
6004 (let ((out (assoc-ref outputs "out"))
6005 (gtksourceview (assoc-ref inputs "gtksourceview"))
6006 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6007 (python-path (getenv "PYTHONPATH")))
6008 (wrap-program (string-append out "/bin/gedit")
6009 ;; For plugins.
6010 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6011 `("PYTHONPATH" ":" prefix (,python-path))
6012 ;; For language-specs.
6013 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6014 "/share")))))
6015 #t)))))
329d731b
DH
6016 (propagated-inputs
6017 `(("dconf" ,dconf)))
6018 (native-inputs
480c9226
KK
6019 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6020 ("intltool" ,intltool)
b3546174 6021 ("itstool" ,itstool)
480c9226 6022 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 6023 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
6024 ("libgd"
6025 ,(origin
6026 (method git-fetch)
6027 (uri (git-reference
6028 (url "https://gitlab.gnome.org/GNOME/libgd")
6029 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6030 (file-name (git-file-name "libgd" version))
6031 (sha256
6032 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6033 ("pkg-config" ,pkg-config)))
6034 (inputs
6035 `(("glib" ,glib)
0d2df50c 6036 ("gspell" ,gspell)
329d731b 6037 ("gtk+" ,gtk+)
480c9226 6038 ("gtksourceview" ,gtksourceview)
329d731b
DH
6039 ("libpeas" ,libpeas)
6040 ("libxml2" ,libxml2)
329d731b
DH
6041 ("iso-codes" ,iso-codes)
6042 ("python-pygobject" ,python-pygobject)
6043 ("python" ,python)
6044 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6045 ("libx11" ,libx11)
6046 ("vala" ,vala)
6047 ("adwaita-icon-theme" ,adwaita-icon-theme)
6048 ("libsoup" ,libsoup)
6049 ("gnome-desktop" ,gnome-desktop)))
6050 (home-page "https://wiki.gnome.org/Apps/Gedit")
6051 (synopsis "GNOME text editor")
6052 (description "While aiming at simplicity and ease of use, gedit is a
6053powerful general purpose text editor.")
6054 (license license:gpl2+)))
b7179363
SB
6055
6056(define-public zenity
6057 (package
6058 (name "zenity")
4f581bd0 6059 (version "3.32.0")
b7179363
SB
6060 (source (origin
6061 (method url-fetch)
5958df04 6062 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6063 (version-major+minor version) "/"
5958df04 6064 "zenity-" version ".tar.xz"))
b7179363
SB
6065 (sha256
6066 (base32
4f581bd0 6067 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6068 (build-system gnu-build-system)
6069 (native-inputs
b94a6ca0 6070 `(("gettext" ,gettext-minimal)
b7179363
SB
6071 ("itstool" ,itstool)
6072 ("pkg-config" ,pkg-config)))
6073 (inputs
6074 `(("libnotify" ,libnotify)
6075 ("webkitgtk" ,webkitgtk)))
6076 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6077 (home-page "https://www.gnome.org")
b7179363
SB
6078 (description
6079 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6080to display dialog boxes from the commandline and shell scripts.")
6081 (license license:lgpl2.0+)))
60c3627c
SB
6082
6083(define-public mutter
6084 (package
6085 (name "mutter")
edf43f68 6086 (version "3.32.2")
60c3627c 6087 (source (origin
86c44e72
KK
6088 (method url-fetch)
6089 (uri (string-append "mirror://gnome/sources/" name "/"
6090 (version-major+minor version) "/"
6091 name "-" version ".tar.xz"))
60c3627c
SB
6092 (sha256
6093 (base32
edf43f68 6094 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
86c44e72
KK
6095 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6096 ;; versions of cogl and clutter. As a result, many of the inputs,
6097 ;; propagated-inputs, and configure flags used in cogl and clutter are
6098 ;; needed here as well.
edf43f68 6099 (build-system meson-build-system)
60c3627c 6100 (arguments
edf43f68
KK
6101 '(;; XXX: All mutter tests fail with the following error:
6102 ;; Settings schema 'org.gnome.mutter' is not installed
6103 #:tests? #f
6104 #:glib-or-gtk? #t
6105 #:configure-flags
6106 ;; Otherwise, the RUNPATH will lack the final path component.
6107 (list (string-append "-Dc_link_args=-Wl,-rpath="
6108 (assoc-ref %outputs "out") "/lib:"
6109 (assoc-ref %outputs "out") "/lib/mutter-4")
a88d5a0c
MW
6110
6111 ;; The following flags are needed for the bundled clutter
edf43f68 6112 (string-append "-Dxwayland_path="
d633f2f6
RH
6113 (assoc-ref %build-inputs "xorg-server-xwayland")
6114 "/bin/Xwayland")
6115
a88d5a0c 6116 ;; the remaining flags are needed for the bundled cogl
edf43f68 6117 (string-append "-Dopengl_libname="
a88d5a0c 6118 (assoc-ref %build-inputs "mesa")
f23052a6
DC
6119 "/lib/libGL.so"))
6120 #:phases
6121 (modify-phases %standard-phases
edf43f68
KK
6122 (add-after 'unpack 'disable-werror
6123 (lambda _
6124 ;; XXX: build fails with [-Werror]:
6125 ;; backends/meta-cursor-renderer.c:112:5: error:
6126 ;; implicit declaration of function ?roundf?
6127 (substitute* "meson.build"
6128 (("'-Werror=.*',") ""))
6129 #t))
86c44e72
KK
6130 ;; Replace references to systemd libraries to elogind references.
6131 (add-before 'configure 'use-elogind
6132 (lambda _
edf43f68 6133 (substitute* (list "meson.build"
86c44e72
KK
6134 "src/backends/native/meta-launcher.c"
6135 "src/core/main.c")
6136 (("systemd") "elogind"))
6137 #t)))))
60c3627c
SB
6138 (native-inputs
6139 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6140 ("gobject-introspection" ,gobject-introspection)
6141 ("intltool" ,intltool)
f23052a6 6142 ("pkg-config" ,pkg-config)
edf43f68 6143 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6144 ;; For git build
6145 ("autoconf" ,autoconf)
6146 ("automake" ,automake)
6147 ("libtool" ,libtool)))
60c3627c 6148 (propagated-inputs
a88d5a0c
MW
6149 `(;; libmutter.pc refers to these:
6150 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6151 ("gtk+" ,gtk+)
6152 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6153 ("atk" ,atk)
6154 ("cairo" ,cairo)
6155 ("gdk-pixbuf" ,gdk-pixbuf)
6156 ("glib" ,glib)
a88d5a0c
MW
6157 ("json-glib" ,json-glib)
6158 ("libinput" ,libinput)
6159 ("libx11" ,libx11)
6160 ("libxcomposite" ,libxcomposite)
6161 ("libxdamage" ,libxdamage)
6162 ("libxext" ,libxext)
6163 ("libxfixes" ,libxfixes)
6164 ("libxkbcommon" ,libxkbcommon)
6165 ("libxrandr" ,libxrandr)
6166 ("mesa" ,mesa)
6167 ("pango" ,pango)
6168 ("udev" ,eudev)
a88d5a0c 6169 ("xinput" ,xinput)))
60c3627c 6170 (inputs
86c44e72
KK
6171 `(("elogind" ,elogind)
6172 ("gnome-desktop" ,gnome-desktop)
edf43f68 6173 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6174 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6175 ("libgudev" ,libgudev)
60c3627c
SB
6176 ("libice" ,libice)
6177 ("libsm" ,libsm)
edf43f68 6178 ("libwacom" ,libwacom)
60c3627c 6179 ("libxkbfile" ,libxkbfile)
a88d5a0c 6180 ("libxrandr" ,libxrandr)
86c44e72 6181 ("libxtst" ,libxtst)
edf43f68 6182 ("pipewire" ,pipewire)
60c3627c
SB
6183 ("startup-notification" ,startup-notification)
6184 ("upower-glib" ,upower)
6185 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6186 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6187 ("zenity" ,zenity)))
6188 (synopsis "Window and compositing manager")
f032d0be 6189 (home-page "https://www.gnome.org")
60c3627c
SB
6190 (description
6191 "Mutter is a window and compositing manager that displays and manages your
6192desktop via OpenGL. Mutter combines a sophisticated display engine using the
6193Clutter toolkit with solid window-management logic inherited from the Metacity
6194window manager.")
86c44e72 6195 (license license:gpl2+)))
685cee87
SB
6196
6197(define-public gnome-online-accounts
6198 (package
6199 (name "gnome-online-accounts")
aa200347 6200 (version "3.32.1")
685cee87
SB
6201 (source (origin
6202 (method url-fetch)
6203 (uri (string-append "mirror://gnome/sources/" name "/"
6204 (version-major+minor version) "/"
6205 name "-" version ".tar.xz"))
6206 (sha256
6207 (base32
aa200347 6208 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
14c297fd 6209 (outputs '("out" "lib"))
685cee87 6210 (build-system glib-or-gtk-build-system)
14c297fd
TS
6211 (arguments
6212 `(#:configure-flags
6213 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6214 #:phases
6215 (modify-phases %standard-phases
6216 (add-before 'configure 'patch-libgoa-output
6217 (lambda* (#:key outputs #:allow-other-keys)
6218 (let ((lib (assoc-ref outputs "lib")))
6219 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6220 (("@prefix@") lib)
6221 (("@exec_prefix@") lib)
6222 (("@libdir@") (string-append lib "/lib"))
6223 (("@includedir@") (string-append lib "/include"))
6224 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6225 ;; Make sure gobject-introspection knows about the output
6226 ;; too (see <https://bugs.gnu.org/36535>).
6227 (setenv "outputs" "out lib")
14c297fd 6228 #t))))))
685cee87
SB
6229 (native-inputs
6230 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6231 ("gobject-introspection" ,gobject-introspection)
6232 ("intltool" ,intltool)
6233 ("pkg-config" ,pkg-config)
ebb2873d 6234 ("vala" ,vala)
685cee87
SB
6235 ("xsltproc" ,libxslt)))
6236 (propagated-inputs
6237 `(("glib" ,glib) ; required by goa-1.0.pc
6238 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6239 (inputs
6240 `(("docbook-xsl" ,docbook-xsl)
6241 ("json-glib" ,json-glib)
6242 ("libsecret" ,libsecret)
6243 ("rest" ,rest)
685cee87
SB
6244 ("webkitgtk" ,webkitgtk)))
6245 (synopsis "Single sign-on framework for GNOME")
6246 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6247 (description
6248 "GNOME Online Accounts provides interfaces so that applications and
6249libraries in GNOME can access the user's online accounts. It has providers for
6250Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6251Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6252 (license license:lgpl2.0+)))
df217748
SB
6253
6254(define-public evolution-data-server
6255 (package
6256 (name "evolution-data-server")
2196a8d4 6257 (version "3.32.4")
df217748
SB
6258 (source (origin
6259 (method url-fetch)
6260 (uri (string-append "mirror://gnome/sources/" name "/"
6261 (version-major+minor version) "/"
6262 name "-" version ".tar.xz"))
43190ac6
MB
6263 (patches (search-patches "evolution-data-server-locales.patch"
6264 "evolution-data-server-libical-compat.patch"))
df217748
SB
6265 (sha256
6266 (base32
2196a8d4 6267 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
743aebd7 6268 (build-system cmake-build-system)
df217748 6269 (arguments
b468eedc
RW
6270 '(#:configure-flags
6271 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6272 (runpaths (map (lambda (s)
6273 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6274 '("addressbook-backends" "calendar-backends"
6275 "camel-providers" "credential-modules"
6276 "registry-modules"))))
6277 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6278 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6279 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6280 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6281 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6282 (string-append lib "/evolution-data-server;")
6283 (string-join runpaths ";"))
6284 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6285 #:phases
6286 (modify-phases %standard-phases
b468eedc
RW
6287 (add-after 'unpack 'disable-failing-tests
6288 (lambda _
6289 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6290 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6291 (delete-file-recursively "tests/book-migration")
6292 (substitute* "tests/CMakeLists.txt"
6293 (("add_subdirectory\\(book-migration\\)") ""))
2196a8d4
KK
6294 ;; tests/libebook/client/test-book-client-view-operations:8077):
6295 ;; e-data-server-WARNING **:
6296 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6297 ;; runtime check failed:
6298 ;; (!g_main_context_pending (closure->main_context))
6299 (substitute* "tests/libebook/client/CMakeLists.txt"
6300 (("test-book-client-view-operations") ""))
b468eedc 6301 #t))
743aebd7 6302 (add-after 'unpack 'patch-paths
df217748 6303 (lambda _
b468eedc
RW
6304 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6305 "tests/libedata-book/data-test-utils.c"
6306 "tests/libedata-book/test-book-cache-utils.c"
6307 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6308 (("/bin/rm") (which "rm")))
ac033c7b
MB
6309 #t))
6310 (add-before 'configure 'dont-override-rpath
6311 (lambda _
6312 (substitute* "CMakeLists.txt"
6313 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6314 ;; Remove it so the configure flag is respected.
6315 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6316 #t)))))
df217748
SB
6317 (native-inputs
6318 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6319 ("gobject-introspection" ,gobject-introspection)
6320 ("gperf" ,gperf)
6321 ("intltool" ,intltool)
6322 ("pkg-config" ,pkg-config)
a73c1cf8 6323 ("vala" ,vala)
743aebd7 6324 ("python" ,python-wrapper)))
df217748
SB
6325 (propagated-inputs
6326 ;; These are all in the Requires field of .pc files.
6327 `(("gtk+" ,gtk+)
6328 ("libical" ,libical)
6329 ("libsecret" ,libsecret)
6330 ("libsoup" ,libsoup)
6331 ("nss" ,nss)
6332 ("sqlite" ,sqlite)))
6333 (inputs
6334 `(("bdb" ,bdb)
6335 ("gcr" ,gcr)
14c297fd 6336 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6337 ("json-glib" ,json-glib)
b468eedc 6338 ("libcanberra" ,libcanberra)
743aebd7
MB
6339 ("libgweather" ,libgweather)
6340 ("mit-krb5" ,mit-krb5)
891199c6
MW
6341 ("openldap" ,openldap)
6342 ("webkitgtk" ,webkitgtk)))
df217748
SB
6343 (synopsis "Store address books and calendars")
6344 (home-page "https://wiki.gnome.org/Apps/Evolution")
6345 (description
6346 "This package provides a unified backend for programs that work with
6347contacts, tasks, and calendar information. It was originally developed for
6348Evolution (hence the name), but is now used by other packages as well.")
6349 (license license:lgpl2.0)))
bd7dfafa
SB
6350
6351(define-public caribou
6352 (package
6353 (name "caribou")
fe964bb5 6354 (version "0.4.21")
bd7dfafa
SB
6355 (source (origin
6356 (method url-fetch)
6357 (uri (string-append "mirror://gnome/sources/" name "/"
6358 (version-major+minor version) "/"
6359 name "-" version ".tar.xz"))
6360 (sha256
6361 (base32
fe964bb5 6362 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6363 (build-system glib-or-gtk-build-system)
6364 (arguments
6365 '(#:phases
6366 (modify-phases %standard-phases
6367 (add-before
6368 'build 'pre-build
6369 (lambda* (#:key outputs #:allow-other-keys)
6370 (let ((out (assoc-ref outputs "out")))
6371 ;; Use absolute shared library path in Caribou-1.0.typelib.
6372 (substitute* "libcaribou/Makefile"
6373 (("--shared-library=libcaribou.so")
6374 (string-append "--shared-library="
6375 out "/lib/libcaribou.so")))
6376 #t)))
6377 (add-after 'install 'wrap-programs
6378 (lambda* (#:key outputs #:allow-other-keys)
6379 (let* ((out (assoc-ref outputs "out"))
6380 (python-path (getenv "PYTHONPATH"))
6381 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6382 (for-each
6383 (lambda (prog)
6384 (wrap-program prog
6385 `("PYTHONPATH" ":" prefix (,python-path))
6386 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6387 (list (string-append out "/bin/caribou-preferences")
6388 (string-append out "/libexec/antler-keyboard"))))
6389 #t)))))
6390 (native-inputs
6391 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6392 ("gobject-introspection" ,gobject-introspection)
6393 ("intltool" ,intltool)
6394 ("pkg-config" ,pkg-config)
9f7f5ba2 6395 ("python" ,python)
bd7dfafa
SB
6396 ("vala" ,vala)
6397 ("xsltproc" ,libxslt)))
6398 (propagated-inputs
6399 ;; caribou-1.0.pc refers to all these.
6400 `(("libgee" ,libgee)
6401 ("libxklavier" ,libxklavier)
6402 ("libxtst" ,libxtst)
6403 ("gtk+" ,gtk+)))
6404 (inputs
6405 `(("clutter" ,clutter)
6406 ("dconf" ,dconf)
6407 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6408 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6409 (synopsis "Text entry and UI navigation application")
6410 (home-page "https://wiki.gnome.org/Projects/Caribou")
6411 (description
6412 "Caribou is an input assistive technology intended for switch and pointer
6413users.")
6414 (license license:lgpl2.1)))
ba5dd105 6415
ba5dd105
SB
6416(define-public network-manager
6417 (package
6418 (name "network-manager")
6425d87a 6419 (version "1.18.4")
ba5dd105
SB
6420 (source (origin
6421 (method url-fetch)
6422 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6423 (version-major+minor version) "/"
6424 "NetworkManager-" version ".tar.xz"))
7d1861e2 6425 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
6426 (sha256
6427 (base32
6425d87a 6428 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
02710a9b 6429 (modules '((guix build utils)))
fd070f35 6430 (snippet
02710a9b
RW
6431 '(begin
6432 (substitute* "src/devices/wwan/nm-modem-manager.c"
6433 (("systemd") "elogind"))
6434 #t))))
ba5dd105
SB
6435 (build-system gnu-build-system)
6436 (outputs '("out"
6437 "doc")) ; 8 MiB of gtk-doc HTML
6438 (arguments
6439 '(#:configure-flags
6440 (let ((out (assoc-ref %outputs "out"))
6441 (doc (assoc-ref %outputs "doc"))
6442 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6443 "/sbin/dhclient")))
02710a9b
RW
6444 (list "--with-libnm-glib" ; needed by network-manager-applet
6445 "--with-systemd-journal=no"
6446 "--with-session-tracking=elogind"
6447 "--with-suspend-resume=elogind"
fd070f35
CM
6448 "--with-consolekit=no"
6449 "--with-crypto=gnutls"
ba5dd105
SB
6450 "--disable-config-plugin-ibft"
6451 "--sysconfdir=/etc"
6452 "--localstatedir=/var"
6453 (string-append "--with-udev-dir="
6454 out "/lib/udev")
6455 (string-append "--with-dbus-sys-dir="
6456 out "/etc/dbus-1/system.d")
6457 (string-append "--with-html-dir="
6458 doc "/share/gtk-doc/html")
6459 (string-append "--with-dhclient=" dhclient)))
6460 #:phases
6461 (modify-phases %standard-phases
02710a9b
RW
6462 ;; This bare "ls" invocation breaks some tests.
6463 (add-after 'unpack 'patch-ls-invocation
6464 (lambda _
6465 (substitute* "build-aux/ltmain.sh"
6466 (("`ls -")
6467 (string-append "`" (which "ls") " -")))
6468 #t))
b4f59d87
AW
6469 (add-before 'configure 'pre-configure
6470 (lambda _
6471 ;; These tests try to test aspects of network-manager's
6472 ;; functionality within restricted containers, but they don't
6473 ;; cope with being already in the Guix build jail as that jail
6474 ;; lacks some features that they would like to proxy over (like
6475 ;; a /sys mount).
d04687dc
HG
6476 (substitute* '("Makefile.in")
6477 (("src/platform/tests/test-address-linux") " ")
6478 (("src/platform/tests/test-cleanup-linux") " ")
6479 (("src/platform/tests/test-link-linux") " ")
6480 (("src/platform/tests/test-route-linux") " ")
02710a9b 6481 (("src/devices/tests/test-acd") "")
d04687dc
HG
6482 (("src/devices/tests/test-arping") " ")
6483 (("src/devices/tests/test-lldp") " ")
6484 (("src/tests/test-route-manager-linux") " "))
b4f59d87 6485 #t))
45f80fce
RW
6486 (add-after 'unpack 'delete-failing-tests
6487 (lambda _
02710a9b 6488 ;; FIXME: These three tests fail for unknown reasons.
45f80fce
RW
6489 ;; ERROR:libnm-core/tests/test-general.c:5842:
6490 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6491 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6492 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6493 ;; ERROR:libnm-core/tests/test-setting.c:907:
6494 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
45f80fce
RW
6495 (substitute* "Makefile.in"
6496 (("libnm-core/tests/test-general") " ")
6497 (("libnm-core/tests/test-keyfile") " ")
02710a9b 6498 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
45f80fce 6499 #t))
ba5dd105
SB
6500 (add-before 'check 'pre-check
6501 (lambda _
6502 ;; For the missing /etc/machine-id.
6503 (setenv "DBUS_FATAL_WARNINGS" "0")
6504 #t))
6505 (replace 'install
6506 (lambda _
45f80fce
RW
6507 (invoke "make"
6508 "sysconfdir=/tmp"
6509 "rundir=/tmp"
6510 "statedir=/tmp"
6511 "nmstatedir=/tmp/nm"
6512 "install")
6513 #t)))))
b93502d6
DC
6514 (propagated-inputs
6515 `(("glib" ,glib)))
ba5dd105
SB
6516 (native-inputs
6517 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6518 ("gobject-introspection" ,gobject-introspection)
d04687dc 6519 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6520 ("intltool" ,intltool)
d04687dc
HG
6521 ("libxslt" ,libxslt)
6522 ("libxml2" ,libxml2)
ba5dd105
SB
6523 ("pkg-config" ,pkg-config)
6524 ;; For testing.
6525 ("python" ,python-wrapper)
6526 ("python-dbus" ,python-dbus)
6527 ("python-pygobject" ,python-pygobject)))
6528 (inputs
02710a9b
RW
6529 `(("coreutils" ,coreutils) ; for ls
6530 ("curl" ,curl)
856ca567
KK
6531 ("cyrus-sasl" ,cyrus-sasl)
6532 ("dbus-glib" ,dbus-glib)
ba5dd105 6533 ("dnsmasq" ,dnsmasq)
856ca567 6534 ("eudev" ,eudev)
ba5dd105
SB
6535 ("gnutls" ,gnutls)
6536 ("iptables" ,iptables)
6537 ("isc-dhcp" ,isc-dhcp)
d04687dc 6538 ("jansson" ,jansson)
ba5dd105
SB
6539 ("libgcrypt" ,libgcrypt)
6540 ("libgudev" ,libgudev)
6541 ("libndp" ,libndp)
6542 ("libnl" ,libnl)
6543 ("libsoup" ,libsoup)
142bdcbc 6544 ("modem-manager" ,modem-manager)
c27e02bf 6545 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
6546 ("polkit" ,polkit)
6547 ("ppp" ,ppp)
6548 ("readline" ,readline)
fd070f35
CM
6549 ("util-linux" ,util-linux)
6550 ("elogind" ,elogind)))
ba5dd105 6551 (synopsis "Network connection manager")
f032d0be 6552 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
6553 (description
6554 "NetworkManager is a system network service that manages your network
6555devices and connections, attempting to keep active network connectivity when
6556available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6557devices, and provides VPN integration with a variety of different VPN
6558services.")
29d2f451
LC
6559 (license license:gpl2+)
6560 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6561
f2b96b3a
LC
6562(define-public network-manager-openvpn
6563 (package
6564 (name "network-manager-openvpn")
be1c4b07 6565 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 6566 (version "1.8.10")
f2b96b3a
LC
6567 (source (origin
6568 (method url-fetch)
6569 (uri (string-append
6570 "mirror://gnome/sources/NetworkManager-openvpn/"
6571 (version-major+minor version)
6572 "/NetworkManager-openvpn-" version ".tar.xz"))
6573 (sha256
6574 (base32
7d87eede 6575 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
6576 (build-system gnu-build-system)
6577 (arguments
633422b0
JL
6578 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6579 #:phases
6580 (modify-phases %standard-phases
6581 (add-after 'configure 'patch-path
6582 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6583 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6584 "/sbin/openvpn"))
6585 (modprobe (string-append (assoc-ref inputs "kmod")
6586 "/bin/modprobe"))
6587 (pretty-ovpn (string-append "\"" ovpn "\"")))
6588 (for-each
6589 (lambda (file)
6590 (substitute* file
6591 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6592 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6593 (("\"/sbin/openvpn\"") pretty-ovpn)
6594 (("/sbin/modprobe") modprobe)))
6595 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6596 #t)))))
f2b96b3a
LC
6597 (native-inputs
6598 `(("pkg-config" ,pkg-config)
6599 ("intltool" ,intltool)))
6600 (inputs
6601 `(("gtk+" ,gtk+)
633422b0 6602 ("kmod" ,kmod)
f2b96b3a
LC
6603 ("openvpn" ,openvpn)
6604 ("network-manager" ,network-manager)
6605 ("network-manager-applet" ,network-manager-applet) ;for libnma
6606 ("libsecret" ,libsecret)))
6607 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6608 (synopsis "OpenVPN plug-in for NetworkManager")
6609 (description
6610 "This extension of NetworkManager allows it to take care of connections
6611to virtual private networks (VPNs) via OpenVPN.")
6612 (license license:gpl2+)
6613 (properties `((upstream-name . "NetworkManager-openvpn")))))
6614
d376129f
JL
6615(define-public network-manager-vpnc
6616 (package
6617 (name "network-manager-vpnc")
6618 (version "1.2.6")
6619 (source (origin
6620 (method url-fetch)
6621 (uri (string-append
6622 "mirror://gnome/sources/NetworkManager-vpnc/"
6623 (version-major+minor version)
6624 "/NetworkManager-vpnc-" version ".tar.xz"))
6625 (sha256
6626 (base32
6627 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6628 (build-system gnu-build-system)
6629 (arguments
6630 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6631 #:phases
6632 (modify-phases %standard-phases
6633 (add-after 'configure 'patch-path
6634 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6635 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6636 "/sbin/vpnc"))
6637 (modprobe (string-append (assoc-ref inputs "kmod")
6638 "/bin/modprobe"))
6639 (pretty-ovpn (string-append "\"" vpnc "\"")))
6640 (substitute* "src/nm-vpnc-service.c"
6641 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6642 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6643 (("\"/sbin/vpnc\"") pretty-ovpn)
6644 (("/sbin/modprobe") modprobe)))
6645 #t)))))
6646 (native-inputs
6647 `(("pkg-config" ,pkg-config)
6648 ("intltool" ,intltool)))
6649 (inputs
6650 `(("gtk+" ,gtk+)
6651 ("kmod" ,kmod)
6652 ("vpnc" ,vpnc)
6653 ("network-manager" ,network-manager)
6654 ("network-manager-applet" ,network-manager-applet) ;for libnma
6655 ("libsecret" ,libsecret)))
6656 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6657 (synopsis "VPNC plug-in for NetworkManager")
6658 (description
6659 "Support for configuring virtual private networks based on VPNC.
6660Compatible with Cisco VPN concentrators configured to use IPsec.")
6661 (license license:gpl2+)
6662 (properties `((upstream-name . "NetworkManager-vpnc")))))
6663
8378c87a
EF
6664(define-public network-manager-openconnect
6665 (package
6666 (name "network-manager-openconnect")
6667 (version "1.2.6")
6668 (source (origin
6669 (method url-fetch)
6670 (uri (string-append
6671 "mirror://gnome/sources/NetworkManager-openconnect/"
6672 (version-major+minor version)
6673 "/NetworkManager-openconnect-" version ".tar.xz"))
6674 (sha256
6675 (base32
6676 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6677 (build-system gnu-build-system)
6678 (arguments
6679 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6680 #:phases
6681 (modify-phases %standard-phases
6682 (add-after 'configure 'patch-path
6683 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6684 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6685 "/sbin/openconnect"))
6686 (modprobe (string-append (assoc-ref inputs "kmod")
6687 "/bin/modprobe"))
6688 (pretty-ovpn (string-append "\"" openconnect "\"")))
6689 (substitute* "src/nm-openconnect-service.c"
6690 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6691 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6692 (("/sbin/modprobe") modprobe)))
6693 #t)))))
6694 (native-inputs
6695 `(("intltool" ,intltool)
6696 ("network-manager-applet" ,network-manager-applet) ;for libnma
6697 ("pkg-config" ,pkg-config)))
6698 (inputs
6699 `(("gcr" ,gcr)
6700 ("gtk+" ,gtk+)
6701 ("kmod" ,kmod)
6702 ("libsecret" ,libsecret)
6703 ("libxml2" ,libxml2)
6704 ("network-manager" ,network-manager)
6705 ("openconnect" ,openconnect)))
6706 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6707 (synopsis "OpenConnect plug-in for NetworkManager")
6708 (description
6709 "This extension of NetworkManager allows it to take care of connections
6710to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6711Cisco's AnyConnect SSL VPN.")
6712 (license license:gpl2+)
e52b9534
LC
6713 (properties `((upstream-name . "NetworkManager-openconnect")
6714
6715 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6716 ;; file refers to account "nm-openconnect". Specify it here
6717 ;; so that 'network-manager-service-type' creates it.
6718 (user-accounts . ("nm-openconnect"))))))
8378c87a 6719
e5e1df4d
DC
6720(define-public mobile-broadband-provider-info
6721 (package
6722 (name "mobile-broadband-provider-info")
310c89e3 6723 (version "20190116")
e5e1df4d
DC
6724 (source (origin
6725 (method url-fetch)
6726 (uri (string-append
6727 "mirror://gnome/sources/"
6728 "mobile-broadband-provider-info/" version "/"
6729 "mobile-broadband-provider-info-" version ".tar.xz"))
6730 (sha256
6731 (base32
310c89e3 6732 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6733 (build-system gnu-build-system)
6734 (arguments
310c89e3 6735 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6736 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6737 (synopsis "Database of broadband connection configuration")
6738 (description "Database of broadband connection configuration.")
6739 (license license:public-domain)))
6740
4d62a9d3
SB
6741(define-public network-manager-applet
6742 (package
6743 (name "network-manager-applet")
8fc3a337 6744 (version "1.8.24")
4d62a9d3
SB
6745 (source (origin
6746 (method url-fetch)
3df63444 6747 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6748 (version-major+minor version) "/"
3df63444 6749 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6750 (sha256
6751 (base32
8fc3a337 6752 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6753 (build-system meson-build-system)
6754 (arguments
be1c4b07
TGR
6755 '(#:configure-flags
6756 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6757 (list "-Dlibnm_gtk=true")
6758 #:glib-or-gtk? #t))
4d62a9d3
SB
6759 (native-inputs
6760 `(("intltool" ,intltool)
cd7f718e 6761 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6762 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6763 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6764 ("pkg-config" ,pkg-config)))
6765 (propagated-inputs
6766 ;; libnm-gtk.pc refers to all these.
6767 `(("dbus-glib" ,dbus-glib)
6768 ("gtk+" ,gtk+)
6769 ("network-manager" ,network-manager)))
6770 (inputs
cd7f718e
RW
6771 `(("gcr" ,gcr)
6772 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6773 ("libgudev" ,libgudev)
6774 ("libnotify" ,libnotify)
2116bfb3 6775 ("libsecret" ,libsecret)
240cee8a
KK
6776 ("libselinux" ,libselinux)
6777 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6778 ("modem-manager" ,modem-manager)
6779 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6780 (synopsis "Applet for managing network connections")
f032d0be 6781 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6782 (description
6783 "This package contains a systray applet for NetworkManager. It displays
6784the available networks and allows users to easily switch between them.")
6785 (license license:gpl2+)))
56196594
RW
6786
6787(define-public libxml++
6788 (package
6789 (name "libxml++")
8344a85e 6790 (version "3.0.1")
56196594
RW
6791 (source (origin
6792 (method url-fetch)
6793 (uri (string-append "mirror://gnome/sources/" name "/"
6794 (version-major+minor version) "/"
6795 name "-" version ".tar.xz"))
6796 (sha256
6797 (base32
8344a85e 6798 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6799 (build-system gnu-build-system)
6800 ;; libxml++-3.0.pc refers to all these.
6801 (propagated-inputs
6802 `(("libxml2" ,libxml2)
6803 ("glibmm" ,glibmm)))
6804 (native-inputs
6805 `(("perl" ,perl)
6806 ("pkg-config" ,pkg-config)))
6807 (home-page "http://libxmlplusplus.sourceforge.net/")
6808 (synopsis "C++ wrapper for XML parser library libxml2")
6809 (description
6810 "This package provides a C++ wrapper for the XML parser library
6811libxml2.")
6812 (license license:lgpl2.1+)))
df12f04a 6813
b61d9627
AW
6814(define-public libxml++-2
6815 (package
6816 (inherit libxml++)
6817 (name "libxml++")
6818 (version "2.40.1")
6819 (source (origin
6820 (method url-fetch)
6821 (uri (string-append "mirror://gnome/sources/" name "/"
6822 (version-major+minor version) "/"
6823 name "-" version ".tar.xz"))
6824 (sha256
6825 (base32
6826 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6827
df12f04a
SB
6828(define-public gdm
6829 (package
6830 (name "gdm")
bcca95dc 6831 (version "3.32.0")
df12f04a
SB
6832 (source (origin
6833 (method url-fetch)
6834 (uri (string-append "mirror://gnome/sources/" name "/"
6835 (version-major+minor version) "/"
6836 name "-" version ".tar.xz"))
6837 (sha256
6838 (base32
bcca95dc 6839 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
957dbc0a 6840 (build-system glib-or-gtk-build-system)
df12f04a
SB
6841 (arguments
6842 '(#:configure-flags
af37e6bb 6843 `("--without-plymouth"
957dbc0a 6844 "--disable-systemd-journal"
51bc8357
TS
6845
6846 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6847 ;; instead of having to replace it (i.e., stopping the mingetty
6848 ;; service for TTY 1 before starting GDM).
6849 "--with-initial-vt=7"
6850
89c86562
TS
6851 ;; Use '/etc/environment' for locale settings instead of the
6852 ;; systemd-specific '/etc/locale.conf'.
6853 "--with-lang-file=/etc/environment"
6854
b74ef0ba
RW
6855 ,(string-append "--with-udevdir="
6856 (assoc-ref %outputs "out") "/lib/udev")
6857
af37e6bb
AW
6858 "--localstatedir=/var"
6859 ,(string-append "--with-default-path="
6860 (string-join '("/run/setuid-programs"
6861 "/run/current-system/profile/bin"
6862 "/run/current-system/profile/sbin")
957dbc0a
AW
6863 ":"))
6864 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6865 ;; XDG_DATA_DIRS so that it finds its schemas.
6866 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6867 #:phases
6868 (modify-phases %standard-phases
6869 (add-before
6870 'configure 'pre-configure
e8c6e771 6871 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6872 ;; We don't have <systemd/sd-daemon.h>.
6873 (substitute* '("common/gdm-log.c"
6874 "daemon/gdm-server.c"
6875 "daemon/gdm-session-worker.c"
6876 "daemon/gdm-session-worker-job.c")
6877 (("#include <systemd/sd-daemon\\.h>") ""))
6878 ;; Use elogind for sd-login.
6879 (substitute* '("common/gdm-common.c"
6880 "daemon/gdm-manager.c"
6881 "libgdm/gdm-user-switching.c")
6882 (("#include <systemd/sd-login\\.h>")
6883 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6884 ;; Check for elogind.
6885 (substitute* '("configure")
6886 (("libsystemd")
6887 "libelogind"))
af37e6bb
AW
6888 ;; Look for system-installed sessions in
6889 ;; /run/current-system/profile/share.
6890 (substitute* '("libgdm/gdm-sessions.c"
6891 "daemon/gdm-session.c"
6892 "daemon/gdm-display.c"
6893 "daemon/gdm-launch-environment.c")
6894 (("DATADIR \"/x")
6895 "\"/run/current-system/profile/share/x")
6896 (("DATADIR \"/wayland")
6897 "\"/run/current-system/profile/share/wayland")
6898 (("DATADIR \"/gnome")
6899 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6900 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6901 "GDM_DBUS_DAEMON"
c9ff92b5 6902 "GDM_X_SERVER"
41fa9f18 6903 "GDM_X_SESSION"
c9ff92b5
TS
6904 ;; XXX: Remove this once GNOME Shell is
6905 ;; a dependency of GDM.
6906 "XDG_DATA_DIRS")))
6907 (substitute* "daemon/gdm-session.c"
6908 (("set_up_session_environment \\(self\\);")
6909 (apply string-append
6910 "set_up_session_environment (self);\n"
6911 (map (lambda (name)
6912 (string-append
6913 "gdm_session_set_environment_variable "
6914 "(self, \"" name "\","
6915 "g_getenv (\"" name "\"));\n"))
6916 propagate)))))
a430a350
TS
6917 ;; Find the configuration file using an environment variable.
6918 (substitute* '("common/gdm-settings.c")
e0e6756f 6919 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6920 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6921 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6922 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6923 ;; Use service-supplied path to X.
6924 (substitute* '("daemon/gdm-server.c")
6925 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6926 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6927 (substitute* '("daemon/gdm-x-session.c")
1f564c15
TS
6928 (("\"dbus-daemon\"")
6929 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6930 (("X_SERVER")
41fa9f18
TS
6931 "g_getenv (\"GDM_X_SERVER\")")
6932 (("GDMCONFDIR \"/Xsession\"")
6933 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6934 ;; Use an absolute path for GNOME Session.
6935 (substitute* "daemon/gdm-launch-environment.c"
6936 (("\"gnome-session\"")
6937 (string-append "\"" (assoc-ref inputs "gnome-session")
6938 "/bin/gnome-session\"")))
e8c6e771
TS
6939 ;; Do not automatically select the placeholder session.
6940 (substitute* "daemon/gdm-session.c"
6941 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6942 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6943 "(g_strcmp0(search_dirs[i], \""
6944 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6945 "\") == 0 && "
6946 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6947 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6948 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6949 #t))
8caa4589
TS
6950 ;; GDM requires that there be at least one desktop entry
6951 ;; file. This phase installs a hidden one that simply
6952 ;; fails. This enables users to use GDM with a
6953 ;; '~/.xsession' script with no other desktop entry files.
6954 ;; See <https://bugs.gnu.org/35068>.
6955 (add-after 'install 'install-placeholder-desktop-entry
6956 (lambda* (#:key inputs outputs #:allow-other-keys)
6957 (let* ((out (assoc-ref outputs "out"))
6958 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6959 (fail (string-append sessions "/fail.desktop")))
6960 (mkdir-p sessions)
6961 (with-output-to-file fail
6962 (lambda ()
6963 (for-each
6964 display
6965 '("[Desktop Entry]\n"
6966 "Encoding=UTF-8\n"
6967 "Type=Application\n"
6968 "Name=Fail\n"
6969 "Comment=This session fails immediately.\n"
6970 "NoDisplay=true\n"
6971 "Exec=false\n"))))
6972 #t)))
69544798
TS
6973 ;; GDM needs GNOME Session to run these applications. We link
6974 ;; their autostart files in `share/gdm/greeter/autostart'
6975 ;; because GDM explicitly tells GNOME Session to look there.
6976 ;;
6977 ;; XXX: GNOME Shell should be linked here too, but currently
6978 ;; GNOME Shell depends on GDM.
6979 (add-after 'install 'link-autostart-files
6980 (lambda* (#:key inputs outputs #:allow-other-keys)
6981 (let* ((out (assoc-ref outputs "out"))
6982 (autostart (string-append out "/share/gdm/"
6983 "greeter/autostart"))
6984 (settings (assoc-ref inputs "gnome-settings-daemon")))
6985 (mkdir-p autostart)
6986 (with-directory-excursion autostart
6987 (for-each (lambda (desktop)
6988 (symlink desktop (basename desktop)))
6989 (find-files (string-append settings "/etc/xdg"))))
6990 #t))))))
df12f04a
SB
6991 (native-inputs
6992 `(("dconf" ,dconf)
6993 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6994 ("gobject-introspection" ,gobject-introspection)
6995 ("intltool" ,intltool)
6996 ("itstool" ,itstool)
6997 ("pkg-config" ,pkg-config)
6998 ("xmllint" ,libxml2)))
6999 (inputs
7000 `(("accountsservice" ,accountsservice)
7001 ("check" ,check) ; for testing
7002 ("elogind" ,elogind)
def6d6b6 7003 ("gnome-session" ,gnome-session)
69544798 7004 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
7005 ("gtk+" ,gtk+)
7006 ("iso-codes" ,iso-codes)
7007 ("libcanberra" ,libcanberra)
7008 ("linux-pam" ,linux-pam)))
7009 (synopsis "Display manager for GNOME")
f032d0be 7010 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
7011 (description
7012 "GNOME Display Manager is a system service that is responsible for
7013providing graphical log-ins and managing local and remote displays.")
7014 (license license:gpl2+)))
8e1dd04f
SB
7015
7016(define-public libgtop
7017 (package
7018 (name "libgtop")
015fc036 7019 (version "2.40.0")
8e1dd04f
SB
7020 (source (origin
7021 (method url-fetch)
59487fc2 7022 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 7023 (version-major+minor version) "/"
59487fc2 7024 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
7025 (sha256
7026 (base32
015fc036 7027 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
7028 (build-system gnu-build-system)
7029 (native-inputs
7030 `(("gobject-introspection" ,gobject-introspection)
7031 ("intltool" ,intltool)
7032 ("perl" ,perl)
7033 ("pkg-config" ,pkg-config)))
7034 (propagated-inputs
7035 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7036 (synopsis "Portable system access library")
7037 (home-page "https://www.gnome.org/")
7038 (description
7039 "LibGTop is a library to get system specific data such as CPU and memory
7040usage and information about running processes.")
7041 (license license:gpl2+)))
b96c4260
SB
7042
7043(define-public gnome-bluetooth
7044 (package
7045 (name "gnome-bluetooth")
723afae6 7046 (version "3.32.1")
b96c4260
SB
7047 (source (origin
7048 (method url-fetch)
7049 (uri (string-append "mirror://gnome/sources/" name "/"
7050 (version-major+minor version) "/"
7051 name "-" version ".tar.xz"))
7052 (sha256
7053 (base32
723afae6 7054 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
fd3b1171 7055 (build-system meson-build-system)
b96c4260
SB
7056 (native-inputs
7057 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7058 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7059 ("gobject-introspection" ,gobject-introspection)
7060 ("intltool" ,intltool)
7061 ("pkg-config" ,pkg-config)
7062 ("xmllint" ,libxml2)))
7063 (propagated-inputs
7064 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7065 `(("glib" ,glib)
7066 ("gtk+" ,gtk+)))
b96c4260 7067 (inputs
723afae6
KK
7068 `(("eudev" ,eudev)
7069 ("libcanberra" ,libcanberra)
b96c4260
SB
7070 ("libnotify" ,libnotify)))
7071 (synopsis "GNOME Bluetooth subsystem")
7072 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7073 (description
7074 "This package contains tools for managing and manipulating Bluetooth
7075devices using the GNOME desktop.")
7076 (license license:lgpl2.1+)))
b645146f
SB
7077
7078(define-public gnome-control-center
7079 (package
7080 (name "gnome-control-center")
a6938bac 7081 (version "3.32.2")
b645146f
SB
7082 (source (origin
7083 (method url-fetch)
7084 (uri (string-append "mirror://gnome/sources/" name "/"
7085 (version-major+minor version) "/"
7086 name "-" version ".tar.xz"))
7087 (sha256
7088 (base32
a6938bac 7089 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
59dac026 7090 (build-system meson-build-system)
b645146f 7091 (arguments
59dac026
RW
7092 '(#:glib-or-gtk? #t
7093 #:configure-flags
64c70430
KK
7094 (list "-Dcheese=false"
7095 (string-append "-Dgnome_session_libexecdir="
7096 (assoc-ref %build-inputs "gnome-session")
7097 "/libexec"))
59dac026 7098 #:phases
b645146f
SB
7099 (modify-phases %standard-phases
7100 (add-before 'configure 'patch-paths
7101 (lambda* (#:key inputs #:allow-other-keys)
7102 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7103 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7104 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7105 (nm-applet (assoc-ref inputs "network-manager-applet"))
7106 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7107 (substitute* "panels/datetime/tz.h"
7108 (("/usr/share/zoneinfo/zone.tab")
7109 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7110 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7111 (("/usr/share/locale")
7112 (string-append libc "/share/locale")))
1df38cfc
LC
7113 (substitute* "panels/region/cc-region-panel.c"
7114 (("\"gkbd-keyboard-display")
7115 (string-append "\"" libgnomekbd
7116 "/bin/gkbd-keyboard-display")))
341225ac
LC
7117 (substitute* '("panels/network/net-device-wifi.c"
7118 "panels/network/net-device.c"
7119 "panels/network/connection-editor/net-connection-editor.c")
7120 (("\"nm-connection-editor")
7121 (string-append "\"" nm-applet
7122 "/bin/nm-connection-editor")))
1acd107c
FP
7123 (substitute* '("panels/user-accounts/run-passwd.c")
7124 (("/usr/bin/passwd")
7125 "/run/setuid-programs/passwd"))
64c70430
KK
7126 (substitute* "panels/info/cc-info-overview-panel.c"
7127 (("DATADIR \"/gnome/gnome-version.xml\"")
7128 (string-append "\"" gnome-desktop
7129 "/share/gnome/gnome-version.xml\"")))
b645146f
SB
7130 #t))))))
7131 (native-inputs
7132 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
59dac026 7133 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
b645146f
SB
7134 ("intltool" ,intltool)
7135 ("pkg-config" ,pkg-config)
a6938bac
KK
7136 ("xsltproc" ,libxslt)
7137 ;; For tests
7138 ("hicolor-icon-theme" ,hicolor-icon-theme)
7139 ("python-dbusmock" ,python-dbusmock)
7140 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7141 (inputs
7142 `(("accountsservice" ,accountsservice)
7143 ("clutter-gtk" ,clutter-gtk)
7144 ("colord-gtk" ,colord-gtk)
7145 ("cups" ,cups)
7146 ("dconf" ,dconf)
7147 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7148 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7149 ("gnome-bluetooth" ,gnome-bluetooth)
7150 ("gnome-desktop" ,gnome-desktop)
7151 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7152 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7153 ("gnome-session" ,gnome-session)
b645146f
SB
7154 ("gnome-settings-daemon" ,gnome-settings-daemon)
7155 ("grilo" ,grilo)
a6938bac 7156 ("gsound" ,gsound)
b645146f
SB
7157 ("ibus" ,ibus)
7158 ("libcanberra" ,libcanberra)
1df38cfc 7159 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7160 ("libgudev" ,libgudev)
7161 ("libgtop" ,libgtop)
7162 ("libpwquality" ,libpwquality)
982c0b36 7163 ("libsecret" ,libsecret)
b645146f
SB
7164 ("libsoup" ,libsoup)
7165 ("libxml2" ,libxml2)
7166 ("libwacom" ,libwacom)
7167 ("mesa" ,mesa)
7168 ("mit-krb5" ,mit-krb5)
7169 ("modem-manager" ,modem-manager)
7170 ("network-manager-applet" ,network-manager-applet)
7171 ("polkit" ,polkit)
7172 ("pulseaudio" ,pulseaudio)
7173 ("smbclient" ,samba)
7174 ("tzdata" ,tzdata)
982c0b36 7175 ("udisks" ,udisks)
b645146f
SB
7176 ("upower" ,upower)))
7177 (synopsis "Utilities to configure the GNOME desktop")
7178 (home-page "https://www.gnome.org/")
7179 (description
7180 "This package contains configuration applets for the GNOME desktop,
7181allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7182properties, sound setup, desktop theme and background, user interface
7183properties, screen resolution, and other GNOME parameters.")
7184 (license license:gpl2+)))
a4df5756
SB
7185
7186(define-public gnome-shell
7187 (package
7188 (name "gnome-shell")
d5e615ca 7189 (version "3.32.2")
a4df5756
SB
7190 (source (origin
7191 (method url-fetch)
7192 (uri (string-append "mirror://gnome/sources/" name "/"
7193 (version-major+minor version) "/"
7194 name "-" version ".tar.xz"))
7195 (sha256
7196 (base32
d5e615ca 7197 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
a76d0f03
LC
7198 (patches (search-patches "gnome-shell-theme.patch"))
7199 (modules '((guix build utils)))
7200 (snippet
7201 #~(begin
a76d0f03
LC
7202 ;; Copy images for use on the GDM log-in screen.
7203 (copy-file #$(file-append %artwork-repository
7204 "/slim/0.x/background.png")
7205 "data/theme/guix-background.png")
45fef894
LC
7206 (copy-file #$(file-append %artwork-repository
7207 "/logo/Guix-horizontal-white.svg")
7208 "data/theme/guix-logo.svg")
a76d0f03 7209 #t))))
2b0c755d 7210 (build-system meson-build-system)
a4df5756 7211 (arguments
08185081
MB
7212 `(#:glib-or-gtk? #t
7213 #:disallowed-references ((,glib "bin")
11e1df56
LC
7214 ,inkscape ,libxslt
7215 ,ruby-sass)
2b0c755d
RW
7216 #:configure-flags
7217 (list "-Dsystemd=false"
7218 ;; Otherwise, the RUNPATH will lack the final path component.
7219 (string-append "-Dc_link_args=-Wl,-rpath="
7220 (assoc-ref %outputs "out")
7221 "/lib/gnome-shell"))
11e1df56 7222
08185081 7223 #:modules ((guix build meson-build-system)
11e1df56
LC
7224 (guix build utils)
7225 (srfi srfi-1))
7226
2b0c755d 7227 #:phases
a4df5756 7228 (modify-phases %standard-phases
2b0c755d 7229 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7230 (lambda* (#:key outputs #:allow-other-keys)
7231 (let* ((out (assoc-ref outputs "out"))
7232 (keysdir (string-append
7233 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7234 (substitute* "meson.build"
7235 (("keysdir =.*")
7236 (string-append "keysdir = '" keysdir "'\n")))
7237 #t)))
ebfe259f
MB
7238 (add-before 'configure 'convert-logo-to-png
7239 (lambda* (#:key inputs #:allow-other-keys)
7240 ;; Convert the logo from SVG to PNG.
7241 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7242 "data/theme/guix-logo.svg")))
ba00235a 7243 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7244 (lambda* (#:key inputs #:allow-other-keys)
7245 (substitute* "js/misc/ibusManager.js"
7246 (("'ibus-daemon'")
7247 (string-append "'" (assoc-ref inputs "ibus")
7248 "/bin/ibus-daemon'")))
d6fda4d3
LC
7249 (substitute* "js/ui/status/keyboard.js"
7250 (("'gkbd-keyboard-display'")
7251 (string-append "'" (assoc-ref inputs "libgnomekbd")
7252 "/bin/gkbd-keyboard-display'")))
2472cdec 7253 #t))
2b0c755d
RW
7254 (add-before 'check 'pre-check
7255 (lambda* (#:key inputs #:allow-other-keys)
7256 ;; Tests require a running X server.
7257 (system "Xvfb :1 &")
7258 (setenv "DISPLAY" ":1")
7259 #t))
7260 (add-after 'install 'wrap-programs
7261 (lambda* (#:key inputs outputs #:allow-other-keys)
7262 (let ((out (assoc-ref outputs "out"))
7263 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7264 (python-path (getenv "PYTHONPATH")))
7265 (wrap-program (string-append out "/bin/gnome-shell")
7266 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7267 ;; FIXME: gnome-shell loads these libraries with unqualified
7268 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7269 ;; alternative might be to patch gnome-shell.
7270 `("LD_LIBRARY_PATH" ":" prefix
7271 ,(map (lambda (pkg)
7272 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7273 '("gdk-pixbuf"
7274 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7275 (for-each
7276 (lambda (prog)
7277 (wrap-program (string-append out "/bin/" prog)
7278 `("PYTHONPATH" ":" prefix (,python-path))
7279 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7280 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7281 #t)))
11e1df56
LC
7282 (replace 'glib-or-gtk-wrap
7283 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7284 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7285 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7286 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7287 ;; phase. Fix that since we don't need these.
7288 (wrap #:inputs (fold alist-delete inputs
7289 '("inkscape" "intltool" "glib:bin"))
7290 #:outputs outputs)))))))
a4df5756
SB
7291 (native-inputs
7292 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7293 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7294 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7295 ("inkscape" ,inkscape)
a4df5756
SB
7296 ("intltool" ,intltool)
7297 ("pkg-config" ,pkg-config)
7298 ("python" ,python)
2b0c755d
RW
7299 ("ruby-sass" ,ruby-sass)
7300 ("sassc" ,sassc)
a76d0f03 7301 ("xsltproc" ,libxslt)
2b0c755d 7302 ;; For tests
0b4504f6 7303 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7304 (inputs
7305 `(("accountsservice" ,accountsservice)
7306 ("caribou" ,caribou)
7307 ("docbook-xsl" ,docbook-xsl)
7308 ("evolution-data-server" ,evolution-data-server)
7309 ("gcr" ,gcr)
7310 ("gdm" ,gdm)
c5db31d4 7311 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756
SB
7312 ("gjs" ,gjs)
7313 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7314 ("gnome-desktop" ,gnome-desktop)
7315 ("gnome-settings-daemon" ,gnome-settings-daemon)
7316 ("gst-plugins-base" ,gst-plugins-base)
7317 ("ibus" ,ibus)
7318 ("libcanberra" ,libcanberra)
7319 ("libcroco" ,libcroco)
d6fda4d3 7320 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
7321 ("libgweather" ,libgweather)
7322 ("libsoup" ,libsoup)
7323 ("mesa-headers" ,mesa-headers)
7324 ("mutter" ,mutter)
7325 ("network-manager-applet" ,network-manager-applet)
7326 ("polkit" ,polkit)
7327 ("pulseaudio" ,pulseaudio)
7328 ("python-pygobject" ,python-pygobject)
7329 ("startup-notification" ,startup-notification)
7330 ("telepathy-logger" ,telepathy-logger)
7331 ("upower" ,upower)
30e760f0
MB
7332 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7333 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7334 ("librsvg" ,librsvg)
2b0c755d 7335 ("geoclue" ,geoclue)))
a4df5756
SB
7336 (synopsis "Desktop shell for GNOME")
7337 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7338 (description
7339 "GNOME Shell provides core user interface functions for the GNOME desktop,
7340like switching to windows and launching applications.")
7341 (license license:gpl2+)))
c3f29bc9
RS
7342
7343(define-public gtk-vnc
7344 (package
7345 (name "gtk-vnc")
965ff023 7346 (version "0.9.0")
c3f29bc9
RS
7347 (source
7348 (origin
7349 (method url-fetch)
7350 (uri (string-append "mirror://gnome/sources/" name "/"
7351 (version-major+minor version) "/"
7352 name "-" version ".tar.xz"))
7353 (sha256
7354 (base32
965ff023 7355 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7356 (build-system gnu-build-system)
7357 (arguments
7358 '(#:configure-flags '("--with-gtk=3.0")))
7359 (propagated-inputs
7360 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7361 (inputs
7362 `(("cyrus-sasl" ,cyrus-sasl)
7363 ("gnutls" ,gnutls)
7364 ("libgcrypt" ,libgcrypt)
7365 ("pulseaudio" ,pulseaudio)))
7366 (native-inputs
7367 `(("glib:bin" ,glib "bin")
7368 ("gobject-introspection" ,gobject-introspection)
7369 ("intltool" ,intltool)
7370 ("pkg-config" ,pkg-config)
2f17e939 7371 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7372 ("vala" ,vala)))
7373 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7374 (synopsis "VNC viewer widget for GTK+")
7375 (description
7376 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7377applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7378GTK-VNC implements client side RFB protocol and authentication extensions such
7379as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7380 (license license:lgpl2.1+)))
8b877545 7381
dc69fe18
MW
7382(define-public gnome-autoar
7383 (package
7384 (name "gnome-autoar")
c7da8510 7385 (version "0.2.3")
dc69fe18
MW
7386 (source (origin
7387 (method url-fetch)
7388 (uri (string-append "mirror://gnome/sources/" name "/"
7389 (version-major+minor version) "/"
7390 name "-" version ".tar.xz"))
7391 (sha256
7392 (base32
c7da8510 7393 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
dc69fe18
MW
7394 (build-system glib-or-gtk-build-system)
7395 (native-inputs
7396 `(("gnome-common" ,gnome-common)
7397 ("gobject-introspection" ,gobject-introspection)
7398 ("pkg-config" ,pkg-config)))
7399 (propagated-inputs
7400 `(("libarchive" ,libarchive))) ; XXX document why
7401 (inputs
0a6e9e13 7402 `(("gtk+" ,gtk+)))
dc69fe18
MW
7403 (synopsis "Archives integration support for GNOME")
7404 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7405 (description
7406 "GNOME Autoar is a library which makes creating and extracting archives
7407easy, safe, and automatic.")
7408 (license license:lgpl2.1+)))
7409
b64e217f
MW
7410(define-public tracker
7411 (package
7412 (name "tracker")
5ada561c 7413 (version "2.2.2")
b64e217f
MW
7414 (source (origin
7415 (method url-fetch)
b5b0fd23 7416 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7417 (version-major+minor version) "/"
b5b0fd23 7418 "tracker-" version ".tar.xz"))
b64e217f
MW
7419 (sha256
7420 (base32
5ada561c
KK
7421 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
7422 (build-system meson-build-system)
c8bdf589 7423 (arguments
5ada561c
KK
7424 `(#:glib-or-gtk? #t
7425 #:configure-flags
7426 ;; Otherwise, the RUNPATH will lack the final path component.
7427 (list (string-append "-Dc_link_args=-Wl,-rpath="
7428 (assoc-ref %outputs "out") "/lib:"
7429 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7430 #:phases
c8bdf589
RW
7431 (modify-phases %standard-phases
7432 (add-after 'unpack 'disable-broken-tests
7433 (lambda _
c8bdf589
RW
7434 ;; These fail because the SPARQL backend could not be loaded.
7435 ;; That's because /etc/machine-id is missing, but
7436 ;; DBUS_FATAL_WARNINGS does not help here.
5ada561c
KK
7437 (substitute* "tests/libtracker-sparql/meson.build"
7438 (("'sparql',") ""))
7439 (substitute* "tests/tracker-steroids/meson.build"
7440 (("test\\(.*") ""))
c8bdf589
RW
7441 #t))
7442 ;; Two tests fail if LANG is not set.
7443 (add-before 'check 'pre-check
7444 (lambda _
7445 (setenv "LANG" "en_US.UTF-8")
7446 ;; For the missing /etc/machine-id.
7447 (setenv "DBUS_FATAL_WARNINGS" "0")
7448 #t)))))
b64e217f 7449 (native-inputs
5ada561c
KK
7450 `(("glib:bin" ,glib "bin")
7451 ("gnome-common" ,gnome-common)
b64e217f 7452 ("gobject-introspection" ,gobject-introspection)
5ada561c 7453 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7454 ("intltool" ,intltool)
7455 ("pkg-config" ,pkg-config)
7456 ("vala" ,vala)))
7457 (inputs
7458 `(("gtk+" ,gtk+)
7459 ("dbus" ,dbus)
44ed6284 7460 ("sqlite" ,sqlite)
c8bdf589 7461 ("python" ,python)
b64e217f 7462 ("poppler" ,poppler)
b64e217f
MW
7463 ("libpng" ,libpng)
7464 ("libtiff" ,libtiff)
b64e217f 7465 ("zlib" ,zlib)
b64e217f 7466 ("libxml2" ,libxml2)
b64e217f 7467 ("libunistring" ,libunistring)
0ef48cd9 7468 ("json-glib" ,json-glib)
b64e217f 7469 ("openjpeg" ,openjpeg-1)
b64e217f 7470 ("libseccomp" ,libseccomp)
0ef48cd9 7471 ("libsoup" ,libsoup)
5ada561c
KK
7472 ("libuuid" ,util-linux)
7473 ("network-manager" ,network-manager)))
b64e217f
MW
7474 (synopsis "Metadata database, indexer and search tool")
7475 (home-page "https://wiki.gnome.org/Projects/Tracker")
7476 (description
7477 "Tracker is an advanced framework for first class objects with associated
7478metadata and tags. It provides a one stop solution for all metadata, tags,
7479shared object databases, search tools and indexing.")
7480 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7481 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7482 (license (list license:gpl2+
7483 license:lgpl2.1+
7484 license:lgpl2.0+))))
7485
03be9874
KK
7486(define-public tracker-miners
7487 (package
7488 (name "tracker-miners")
7489 (version "2.2.2")
7490 (source (origin
7491 (method url-fetch)
7492 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7493 (version-major+minor version)
7494 "/tracker-miners-" version ".tar.xz"))
7495 (sha256
7496 (base32
7497 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
7498 (build-system meson-build-system)
7499 (arguments
7500 `(#:glib-or-gtk? #t
7501 #:configure-flags
7502 (list "-Dminer_rss=false" ; libgrss is required.
7503 ;; Ensure the RUNPATH contains all installed library locations.
7504 (string-append "-Dc_link_args=-Wl,-rpath="
7505 (assoc-ref %outputs "out")
7506 "/lib/tracker-miners-2.0")
7507 ;; TODO: Enable functional tests. Currently, the following error
7508 ;; appears:
7509 ;; Exception: The functional tests require DConf to be the default
7510 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7511 "-Dfunctional_tests=false")))
7512 (native-inputs
7513 `(("dbus" ,dbus)
7514 ("intltool" ,intltool)
7515 ("glib:bin" ,glib "bin")
7516 ("gobject-introspection" ,gobject-introspection)
7517 ("pkg-config" ,pkg-config)
7518 ("python-pygobject" ,python-pygobject)))
7519 (inputs
7520 `(("exempi" ,exempi)
7521 ("ffmpeg" ,ffmpeg)
7522 ("flac" ,flac)
7523 ("giflib" ,giflib)
7524 ("glib" ,glib)
7525 ("gstreamer" ,gstreamer)
7526 ("icu4c" ,icu4c)
7527 ("libcue" ,libcue)
7528 ("libexif" ,libexif)
7529 ("libgsf" ,libgsf)
7530 ("libgxps" ,libgxps)
7531 ("libiptcdata" ,libiptcdata)
7532 ("libjpeg" ,libjpeg)
7533 ("libosinfo" ,libosinfo)
7534 ("libpng" ,libpng)
7535 ("libseccomp" ,libseccomp)
7536 ("libtiff" ,libtiff)
7537 ("libvorbis" ,libvorbis)
7538 ("libxml2" ,libxml2)
7539 ("poppler" ,poppler)
7540 ("taglib" ,taglib)
7541 ("totem-pl-parser" ,totem-pl-parser)
7542 ("tracker" ,tracker)
7543 ("upower" ,upower)
7544 ("zlib" ,zlib)))
7545 (synopsis "Metadata database, indexer and search tool")
7546 (home-page "https://wiki.gnome.org/Projects/Tracker")
7547 (description
7548 "Tracker is an advanced framework for first class objects with associated
7549metadata and tags. It provides a one stop solution for all metadata, tags,
7550shared object databases, search tools and indexing.")
7551 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7552 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7553 (license (list license:gpl2+
7554 license:lgpl2.1+
7555 license:lgpl2.0+))))
7556
8b877545
RS
7557(define-public nautilus
7558 (package
7559 (name "nautilus")
d682c599 7560 (version "3.32.3")
8b877545
RS
7561 (source (origin
7562 (method url-fetch)
7563 (uri (string-append "mirror://gnome/sources/" name "/"
7564 (version-major+minor version) "/"
7565 name "-" version ".tar.xz"))
7566 (sha256
7567 (base32
d682c599 7568 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
35e2d0cf 7569 (build-system meson-build-system)
8b877545 7570 (arguments
35e2d0cf 7571 '(#:glib-or-gtk? #t
8b877545
RS
7572 ;; XXX: FAIL: check-nautilus
7573 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7574 #:tests? #f))
7575 (native-inputs
35e2d0cf
R
7576 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7577 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7578 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8b877545
RS
7579 ("gobject-introspection" ,gobject-introspection)
7580 ("intltool" ,intltool)
7581 ("pkg-config" ,pkg-config)))
8b877545 7582 (inputs
8b877545 7583 `(("dconf" ,dconf)
caf6c363 7584 ("gexiv2" ,gexiv2)
dd05e731 7585 ("gvfs" ,gvfs)
8b877545
RS
7586 ("exempi" ,exempi)
7587 ("gnome-desktop" ,gnome-desktop)
09d88905 7588 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7589 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7590 ("libseccomp" ,libseccomp)
35e2d0cf 7591 ("libselinux" ,libselinux)
09d88905 7592 ("tracker" ,tracker)
3cafb9d4 7593 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7594 ;; XXX: gtk+ is required by libnautilus-extension.pc
7595 ;;
7596 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7597 ;; package. See:
7598 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7599 ("gtk+" ,gtk+)
8b877545
RS
7600 ("libexif" ,libexif)
7601 ("libxml2" ,libxml2)))
7602 (synopsis "File manager for GNOME")
7603 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7604 (description
7605 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7606design and behaviour, giving the user a simple way to navigate and manage its
7607files.")
7608 (license license:gpl2+)))
3c697ffd
JR
7609
7610(define-public baobab
7611 (package
7612 (name "baobab")
e0c5f20c 7613 (version "3.32.0")
3c697ffd
JR
7614 (source (origin
7615 (method url-fetch)
7616 (uri (string-append
7617 "mirror://gnome/sources/" name "/"
7618 (version-major+minor version) "/"
7619 name "-" version ".tar.xz"))
7620 (sha256
7621 (base32
e0c5f20c 7622 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7623 (build-system meson-build-system)
7624 (arguments
7625 '(#:glib-or-gtk? #t))
3c697ffd
JR
7626 (native-inputs
7627 `(("intltool" ,intltool)
7628 ("pkg-config" ,pkg-config)
d233d373
RJ
7629 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7630 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7631 ("itstool" ,itstool)
7632 ("xmllint" ,libxml2)
7633 ("glib" ,glib "bin")
7634 ("vala" ,vala)))
7635 (inputs
7636 `(("gtk+" ,gtk+)))
7637 (synopsis "Disk usage analyzer for GNOME")
7638 (description
7639 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7640usage in the GNOME desktop environment. It can easily scan device volumes or
7641a specific user-requested directory branch (local or remote). Once the scan
7642is complete it provides a graphical representation of each selected folder.")
7643 (home-page "https://wiki.gnome.org/Apps/Baobab")
7644 (license license:gpl2+)))
dc050251 7645
fdba447c
RS
7646(define-public gnome-backgrounds
7647 (package
7648 (name "gnome-backgrounds")
e04e8a8c 7649 (version "3.32.0")
fdba447c
RS
7650 (source
7651 (origin
7652 (method url-fetch)
7653 (uri (string-append "mirror://gnome/sources/" name "/"
7654 (version-major+minor version) "/"
7655 name "-" version ".tar.xz"))
7656 (sha256
7657 (base32
e04e8a8c 7658 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
9ca381f0 7659 (build-system meson-build-system)
fdba447c
RS
7660 (native-inputs
7661 `(("intltool" ,intltool)))
e04e8a8c 7662 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7663 (synopsis "Background images for the GNOME desktop")
7664 (description
7665 "GNOME backgrounds package contains a collection of graphics files which
7666can be used as backgrounds in the GNOME Desktop environment. Additionally,
7667the package creates the proper framework and directory structure so that you
7668can add your own files to the collection.")
7669 (license (list license:gpl2+
7670 license:cc-by2.0
7671 license:cc-by-sa2.0
7672 license:cc-by-sa3.0))))
7673
b784b1a9
RS
7674(define-public gnome-screenshot
7675 (package
7676 (name "gnome-screenshot")
6acf4033 7677 (version "3.32.0")
b784b1a9
RS
7678 (source
7679 (origin
7680 (method url-fetch)
7681 (uri (string-append "mirror://gnome/sources/" name "/"
7682 (version-major+minor version) "/"
7683 name "-" version ".tar.xz"))
7684 (sha256
7685 (base32
6acf4033 7686 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
8356aefa 7687 (build-system meson-build-system)
b784b1a9
RS
7688 (native-inputs
7689 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa
RW
7690 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7691 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7692 ("intltool" ,intltool)
8356aefa 7693 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7694 ("pkg-config" ,pkg-config)))
7695 (inputs
7696 `(("gtk+" ,gtk+)
7697 ("libcanberra" ,libcanberra)
7698 ("libx11" ,libx11)
7699 ("libxext" ,libxext)))
676e7cb4 7700 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7701 (synopsis "Take pictures of your screen")
7702 (description
7703 "GNOME Screenshot is a utility used for taking screenshots of the entire
7704screen, a window or a user defined area of the screen, with optional
7705beautifying border effects.")
7706 (license license:gpl2+)))
7707
66d59111
RS
7708(define-public dconf-editor
7709 (package
7710 (name "dconf-editor")
66261451 7711 (version "3.32.0")
66d59111
RS
7712 (source
7713 (origin
7714 (method url-fetch)
7715 (uri (string-append "mirror://gnome/sources/" name "/"
7716 (version-major+minor version) "/"
7717 name "-" version ".tar.xz"))
7718 (sha256
7719 (base32
66261451 7720 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
294ff39d 7721 (build-system meson-build-system)
86f2124b
LC
7722 (arguments
7723 '(#:phases (modify-phases %standard-phases
7724 (add-before 'configure 'set-glib-minimum-version
7725 (lambda _
7726 ;; Change the minimum required GLib version so that
7727 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7728 ;; do that, it complains that "55" is not an even
7729 ;; number. See <https://bugs.gnu.org/37503>.
7730 (substitute* "editor/meson.build"
7731 (("2\\.55\\.1") "2.60.0"))
7732 #t)))))
66d59111
RS
7733 (native-inputs
7734 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7735 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7736 ("intltool" ,intltool)
294ff39d
RW
7737 ("pkg-config" ,pkg-config)
7738 ("vala" ,vala)))
66d59111
RS
7739 (inputs
7740 `(("dconf" ,dconf)
7741 ("gtk+" ,gtk+)
7742 ("libxml2" ,libxml2)))
7743 (home-page "https://git.gnome.org/browse/dconf-editor")
7744 (synopsis "Graphical editor for GNOME's dconf configuration system")
7745 (description
7746 "Dconf-editor is a graphical tool for browsing and editing the dconf
7747configuration system for GNOME. It allows users to configure desktop
7748software that do not provide their own configuration interface.")
7749 (license license:lgpl2.1+)))
7750
96d36f38
AW
7751(define-public gnome-default-applications
7752 (package
7753 (name "gnome-default-applications")
7754 (version "0")
7755 (build-system trivial-build-system)
7756 (source #f)
7757 (propagated-inputs
8ad4f0aa
LC
7758 `(("nautilus" ,nautilus)
7759 ("evince" ,evince)))
96d36f38
AW
7760 (arguments
7761 `(#:modules ((guix build utils))
7762 #:builder
7763 (begin
7764 (use-modules (guix build utils))
7765 (let* ((out (assoc-ref %outputs "out"))
7766 (apps (string-append out "/share/applications")))
7767 (mkdir-p apps)
7768 (call-with-output-file (string-append apps "/defaults.list")
7769 (lambda (port)
7770 (format port "[Default Applications]\n")
8ad4f0aa
LC
7771 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7772 (format port "application/pdf=evince.desktop\n")
7773 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7774 #t))))
7775 (synopsis "Default MIME type associations for the GNOME desktop")
7776 (description
7777 "Given many installed packages which might handle a given MIME type, a
7778user running the GNOME desktop probably has some preferences: for example,
7779that folders be opened by default by the Nautilus file manager, not the Baobab
7780disk usage analyzer. This package establishes that set of default MIME type
7781associations for GNOME.")
7782 (license license:gpl3+)
7783 (home-page #f)))
7784
3f1ed953
RG
7785(define-public libgovirt
7786 (package
7787 (name "libgovirt")
7788 (version "0.3.6")
7789 (source (origin
7790 (method url-fetch)
7791 (uri (string-append "mirror://gnome/sources/" name "/"
7792 (version-major+minor version) "/"
7793 name "-" version ".tar.xz"))
7794 (sha256
7795 (base32
7796 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7797 (build-system glib-or-gtk-build-system)
7798 (native-inputs
7799 `(("gettext" ,gettext-minimal)
7800 ("glib:bin" ,glib "bin")
7801 ("gobject-introspection" ,gobject-introspection)
7802 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7803 ("gtk+:bin" ,gtk+ "bin")
7804 ("pkg-config" ,pkg-config)))
7805 (inputs
7806 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7807 ("librest" ,rest)))
7808 (synopsis "GoVirt Library")
7809 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7810 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7811 (license license:gpl2+)))
7812
8672e5e9
RG
7813(define-public gnome-weather
7814 (package
7815 (name "gnome-weather")
7816 (version "3.34.0")
7817 (source (origin
7818 (method url-fetch)
7819 (uri (string-append "mirror://gnome/sources/" name "/"
7820 (version-major+minor version) "/"
7821 name "-" version ".tar.xz"))
7822 (sha256
7823 (base32
7824 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7825 (build-system meson-build-system)
7826 (native-inputs
7827 `(("gettext" ,gettext-minimal)
7828 ("glib:bin" ,glib "bin")
7829 ("gobject-introspection" ,gobject-introspection)
7830 ("gtk+:bin" ,gtk+ "bin")
7831 ("pkg-config" ,pkg-config)))
7832 (inputs
7833 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7834 ("appstream-glib" ,appstream-glib)
7835 ("geoclue" ,geoclue)
7836 ("gdk-pixbuf" ,gdk-pixbuf)
7837 ("gjs" ,gjs)
7838 ("gnome-desktop" ,gnome-desktop)
7839 ("libgweather" ,libgweather)))
7840 (synopsis "Weather monitoring for GNOME desktop")
7841 (description "GNOME Weather is a small application that allows you to
7842monitor the current weather conditions for your city, or anywhere in the
7843world.")
7844 (home-page "https://wiki.gnome.org/Apps/Weather")
7845 (license license:gpl2+)))
7846
dc050251
SB
7847(define-public gnome
7848 (package
7849 (name "gnome")
7850 (version (package-version gnome-shell))
7851 (source #f)
7852 (build-system trivial-build-system)
e3cfef22 7853 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7854 (propagated-inputs
8d8c6bff 7855 ;; TODO: Add or remove packages according to:
a8cda7f5 7856 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7857 `(
8d8c6bff 7858 ;; GNOME-Core-OS-Services
7922b6f7 7859 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7860 ("network-manager" ,network-manager)
7861 ("packagekit" ,packagekit)
7862 ("upower" ,upower)
7863 ;; GNOME-Core-Shell
7864 ("adwaita-icon-theme" ,adwaita-icon-theme)
7865 ("gdm" ,gdm)
7866 ("glib-networking" ,glib-networking)
7867 ("gnome-backgrounds" ,gnome-backgrounds)
7868 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7869 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
7870 ("gnome-control-center" ,gnome-control-center)
7871 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7872 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
24882d3d 7873 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 7874 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7875 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7876 ("gnome-session" ,gnome-session)
7877 ("gnome-settings-daemon" ,gnome-settings-daemon)
7878 ("gnome-shell-extensions" ,gnome-shell-extensions)
7879 ("gnome-shell" ,gnome-shell)
7880 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7881 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 7882 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 7883 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7884 ("gvfs" ,gvfs)
7885 ("mutter" ,mutter)
7886 ("orca" ,orca)
d36fa50f
RG
7887 ("rygel" ,rygel)
7888 ("sushi" ,sushi)
8d8c6bff
RG
7889 ;; GNOME-Core-Utilities
7890 ("baobab" ,baobab)
7891 ("cheese" ,cheese)
7892 ("eog" ,eog)
7893 ("epiphany" ,epiphany)
7894 ("evince" ,evince)
7895 ("file-roller" ,file-roller)
7896 ("gedit" ,gedit)
d36fa50f 7897 ; TODO: ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
7898 ("gnome-calculator" ,gnome-calculator)
7899 ("gnome-calendar" ,gnome-calendar)
7900 ("gnome-characters" ,gnome-characters)
7901 ("gnome-clocks" ,gnome-clocks)
7902 ("gnome-contacts" ,gnome-contacts)
7903 ("gnome-disk-utility" ,gnome-disk-utility)
7904 ("gnome-font-viewer" ,gnome-font-viewer)
7905 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
7906 ; TODO: ("gnome-music" ,gnome-music)
7907 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
7908 ("gnome-screenshot" ,gnome-screenshot)
7909 ("gnome-system-monitor" ,gnome-system-monitor)
7910 ("gnome-terminal" ,gnome-terminal)
d36fa50f 7911 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
7912 ("nautilus" ,nautilus)
7913 ("simple-scan" ,simple-scan)
7914 ("totem" ,totem)
7922b6f7
RG
7915 ("yelp" ,yelp)
7916 ;; Others
7917 ("hicolor-icon-theme" ,hicolor-icon-theme)
7918 ("gnome-online-accounts" ,gnome-online-accounts)))
fe4e698d 7919 (synopsis "The GNU desktop environment")
dc050251
SB
7920 (home-page "https://www.gnome.org/")
7921 (description
fe4e698d
LC
7922 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7923applications for browsing the web, editing text and images, creating
7924documents and diagrams, playing media, scanning, and much more.")
dc050251 7925 (license license:gpl2+)))
4a526711
DT
7926
7927(define-public byzanz
7928 ;; The last stable release of Byzanz was in 2011, but there have been many
7929 ;; useful commits made to the Byzanz repository since then that it would be
7930 ;; silly to use such an old release.
7931 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7932 (package
7933 (name "byzanz")
7934 (version (string-append "0.2-1." (string-take commit 7)))
7935 (source (origin
7936 (method git-fetch)
7937 (uri (git-reference
5f13bf09 7938 (url "https://git.gnome.org/browse/byzanz")
4a526711 7939 (commit commit)))
5a6527e4 7940 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7941 (sha256
7942 (base32
7943 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7944 (build-system glib-or-gtk-build-system)
7945 (arguments
7946 '(#:phases
7947 (modify-phases %standard-phases
189be331 7948 (replace 'bootstrap
4a526711
DT
7949 (lambda _
7950 ;; The build system cleverly detects that we're not building from
7951 ;; a release tarball and turns on -Werror for GCC.
7952 ;; Unsurprisingly, there is a warning during compilation that
7953 ;; causes the build to fail unnecessarily, so we remove the flag.
7954 (substitute* '("configure.ac")
7955 (("-Werror") ""))
7956 ;; The autogen.sh script in gnome-common will run ./configure
7957 ;; by default, which is problematic because source shebangs
7958 ;; have not yet been patched.
7959 (setenv "NOCONFIGURE" "t")
7960 (zero? (system* "sh" "autogen.sh")))))))
7961 (native-inputs
7962 `(("autoconf" ,autoconf)
7963 ("automake" ,automake)
7964 ("gnome-common" ,gnome-common)
7965 ("intltool" ,intltool)
7966 ("libtool" ,libtool)
7967 ("pkg-config" ,pkg-config)
7968 ("which" ,which)))
7969 (inputs
7970 `(("glib" ,glib)
7971 ("gstreamer" ,gstreamer)
7972 ("gst-plugins-base" ,gst-plugins-base)
7973 ("gtk+" ,gtk+)))
7974 (synopsis "Desktop recording program")
7975 (description "Byzanz is a simple desktop recording program with a
7976command-line interface. It can record part or all of an X display for a
7977specified duration and save it as a GIF encoded animated image file.")
7978 (home-page "https://git.gnome.org/browse/byzanz")
7979 (license license:gpl2+))))
3a9a4c51 7980
0ec171ec
MS
7981(define-public gsound
7982 (package
7983 (name "gsound")
7984 (version "1.0.2")
7985 (source (origin
7986 (method url-fetch)
7987 (uri (string-append "mirror://gnome/sources/" name "/"
7988 (version-major+minor version) "/"
7989 name "-" version ".tar.xz"))
7990 (sha256
7991 (base32
7992 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7993 (build-system glib-or-gtk-build-system)
7994 (native-inputs
7995 `(("pkg-config" ,pkg-config)
7996 ("gobject-introspection" ,gobject-introspection)
7997 ("vala" ,vala)))
7998 (inputs
7999 `(("glib" ,glib)
8000 ("libcanberra" ,libcanberra)))
8001 (home-page "https://wiki.gnome.org/Projects/GSound")
8002 (synopsis "GObject wrapper for libcanberra")
8003 (description
8004 "GSound is a small library for playing system sounds. It's designed to be
8005used via GObject Introspection, and is a thin wrapper around the libcanberra C
8006library.")
8007 (license license:lgpl2.1+)))
8008
3a9a4c51
RS
8009(define-public libzapojit
8010 (package
8011 (name "libzapojit")
8012 (version "0.0.3")
8013 (source (origin
8014 (method url-fetch)
8015 (uri (string-append "mirror://gnome/sources/" name "/"
8016 (version-major+minor version) "/"
8017 name "-" version ".tar.xz"))
8018 (sha256
8019 (base32
8020 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8021 (build-system gnu-build-system)
8022 (native-inputs
8023 `(("gobject-introspection" ,gobject-introspection)
8024 ("intltool" ,intltool)
8025 ("pkg-config" ,pkg-config)))
8026 (inputs
14c297fd 8027 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8028 ("json-glib" ,json-glib)
8029 ("rest" ,rest)))
8030 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8031 (synopsis "Library for accessing SkyDrive and Hotmail")
8032 (description
8033 "Libzapojit is a GLib-based library for accessing online service APIs of
8034Microsoft SkyDrive and Hotmail, using their REST protocols.")
8035 (license license:lgpl2.1+)))
9365ee1c 8036
60e2a9ae
MS
8037(define-public gnome-clocks
8038 (package
8039 (name "gnome-clocks")
c76d0dbc 8040 (version "3.32.0")
60e2a9ae
MS
8041 (source (origin
8042 (method url-fetch)
8043 (uri (string-append "mirror://gnome/sources/" name "/"
8044 (version-major+minor version) "/"
8045 name "-" version ".tar.xz"))
8046 (sha256
8047 (base32
c76d0dbc 8048 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
60e2a9ae
MS
8049 (build-system meson-build-system)
8050 (arguments
8051 '(#:glib-or-gtk? #t))
8052 (native-inputs
8053 `(("vala" ,vala)
8054 ("pkg-config" ,pkg-config)
8055 ("glib" ,glib "bin") ; for glib-compile-resources
8056 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8057 ("desktop-file-utils" ,desktop-file-utils)
8058 ("gettext" ,gettext-minimal)
8059 ("itstool" ,itstool)))
8060 (inputs
8061 `(("glib" ,glib)
8062 ("gtk+" ,gtk+)
8063 ("gsound" ,gsound)
8064 ("geoclue" ,geoclue)
8065 ("geocode-glib" ,geocode-glib)
8066 ("libgweather" ,libgweather)
8067 ("gnome-desktop" ,gnome-desktop)))
8068 (home-page "https://wiki.gnome.org/Apps/Clocks")
8069 (synopsis "GNOME's clock application")
8070 (description
8071 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8072desktop. It supports world clock, stop watch, alarms, and count down timer.")
8073 (license license:gpl3+)))
8074
3c474897
KY
8075(define-public gnome-calendar
8076 (package
8077 (name "gnome-calendar")
339b59bf 8078 (version "3.32.2")
3c474897
KY
8079 (source (origin
8080 (method url-fetch)
8081 (uri (string-append "mirror://gnome/sources/" name "/"
8082 (version-major+minor version) "/"
8083 name "-" version ".tar.xz"))
8084 (sha256
8085 (base32
339b59bf 8086 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
a49d3e37
MS
8087 (build-system meson-build-system)
8088 (arguments
8089 '(#:glib-or-gtk? #t
8090 ;; gnome-calendar has to be installed before the tests can be run
8091 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8092 #:tests? #f))
3c474897 8093 (native-inputs
a49d3e37
MS
8094 `(("gettext" ,gettext-minimal)
8095 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8096 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
3c474897
KY
8097 ("pkg-config" ,pkg-config)))
8098 (inputs
a49d3e37 8099 `(("evolution-data-server" ,evolution-data-server)
14c297fd 8100 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8101 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8102 ("libdazzle" ,libdazzle)
b63c06f1 8103 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8104 ("libgweather" ,libgweather)
8105 ("geoclue" ,geoclue)))
3c474897
KY
8106 (home-page "https://wiki.gnome.org/Apps/Calendar")
8107 (synopsis "GNOME's calendar application")
8108 (description
8109 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8110desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8111 (license license:gpl3+)))
8112
57b14665
MS
8113(define-public gnome-todo
8114 (package
8115 (name "gnome-todo")
9f3c6c88 8116 (version "3.28.1")
57b14665
MS
8117 (source (origin
8118 (method url-fetch)
8119 (uri (string-append "mirror://gnome/sources/" name "/"
8120 (version-major+minor version) "/"
8121 name "-" version ".tar.xz"))
8122 (sha256
8123 (base32
9f3c6c88 8124 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
57b14665
MS
8125 (build-system meson-build-system)
8126 (arguments
8127 '(#:glib-or-gtk? #t
8128 #:phases (modify-phases %standard-phases
8129 (add-after
8130 'install 'wrap-gnome-todo
8131 (lambda* (#:key inputs outputs #:allow-other-keys)
8132 (let ((out (assoc-ref outputs "out"))
8133 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8134 (python-path (getenv "PYTHONPATH")))
8135 (wrap-program (string-append out "/bin/gnome-todo")
8136 ;; XXX: gi plugins are broken.
8137 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8138 ;; For plugins.
8139 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8140 `("PYTHONPATH" ":" prefix (,python-path))))
8141 #t)))))
8142 (native-inputs
8143 `(("gettext" ,gettext-minimal)
8144 ("gobject-introspection" ,gobject-introspection)
8145 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8146 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8147 ("pkg-config" ,pkg-config)))
8148 (inputs
8149 `(("rest" ,rest) ; For Todoist plugin
8150 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8151 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8152 ("libical" ,libical)
8153 ("libpeas" ,libpeas)
8154 ("python-pygobject" ,python-pygobject)
8155 ("evolution-data-server" ,evolution-data-server)
14c297fd 8156 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8157 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8158 (home-page "https://wiki.gnome.org/Apps/Todo")
8159 (synopsis "GNOME's ToDo Application")
8160 (description
8161 "GNOME To Do is a simplistic personal task manager designed to perfectly
8162fit the GNOME desktop.")
8163 (license license:gpl3+)))
8164
ab179eaf
SB
8165(define-public gnome-dictionary
8166 (package
8167 (name "gnome-dictionary")
cf81ddef 8168 (version "3.26.1")
ab179eaf
SB
8169 (source (origin
8170 (method url-fetch)
8171 (uri (string-append "mirror://gnome/sources/" name "/"
8172 (version-major+minor version) "/"
8173 name "-" version ".tar.xz"))
8174 (sha256
8175 (base32
cf81ddef
LC
8176 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8177 (build-system meson-build-system)
2776b5d5
MB
8178 (arguments '(#:glib-or-gtk? #t
8179 #:phases (modify-phases %standard-phases
8180 (add-after 'unpack 'patch-install-script
8181 (lambda _
8182 ;; This script attempts to compile glib schemas
8183 ;; and create an empty MIME database. We do
8184 ;; that elsewhere, so prevent it from running.
8185 (substitute* "build-aux/post-install.sh"
8186 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8187 #t)))))
ab179eaf
SB
8188 (native-inputs
8189 `(("glib:bin" ,glib "bin")
8190 ("gobject-introspection" ,gobject-introspection)
8191 ("intltool" ,intltool)
8192 ("itstool" ,itstool)
8193 ("pkg-config" ,pkg-config)
8194 ("xmllint" ,libxml2)))
8195 (inputs
8196 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8197 ("gtk+" ,gtk+)))
8198 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8199 (synopsis "Look up words in dictionary sources")
8200 (description
8201 "GNOME Dictionary can look for the definition or translation of a word in
8202existing databases over the internet.")
8203 (license license:gpl3+)))
8204
d13f3a03 8205(define-public gnome-tweaks
9365ee1c 8206 (package
d13f3a03 8207 (name "gnome-tweaks")
652af676 8208 (version "3.32.0")
9365ee1c
JN
8209 (source (origin
8210 (method url-fetch)
d13f3a03 8211 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8212 (version-major+minor version) "/"
d13f3a03
RW
8213 "gnome-tweaks-" version ".tar.xz"))
8214 (patches
8215 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8216 (sha256
8217 (base32
652af676 8218 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
d13f3a03 8219 (build-system meson-build-system)
9365ee1c 8220 (arguments
d13f3a03
RW
8221 `(#:glib-or-gtk? #t
8222 #:configure-flags '("-Dlocalstatedir=/tmp"
8223 "-Dsysconfdir=/tmp")
9365ee1c 8224 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8225 ,@%meson-build-system-modules)
8226 #:phases
8227 (modify-phases %standard-phases
8228 (add-after 'install 'wrap
8229 (@@ (guix build python-build-system) wrap))
8230 (add-after 'wrap 'wrap-gi-typelib
8231 (lambda* (#:key inputs outputs #:allow-other-keys)
8232 (let ((out (assoc-ref outputs "out"))
8233 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8234 (wrap-program (string-append out "/bin/gnome-tweaks")
8235 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8236 #t)))))
9365ee1c 8237 (native-inputs
c7fc414e
RH
8238 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8239 ("intltool" ,intltool)
9365ee1c
JN
8240 ("pkg-config" ,pkg-config)))
8241 (inputs
c7fc414e
RH
8242 `(("gnome-desktop" ,gnome-desktop)
8243 ("gtk+" ,gtk+)
9365ee1c
JN
8244 ("gobject-introspection" ,gobject-introspection)
8245 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
c7fc414e
RH
8246 ("libnotify" ,libnotify)
8247 ("libsoup" ,libsoup)
8248 ("nautilus" ,nautilus)
8249 ("python" ,python)
8250 ("python-pygobject" ,python-pygobject)))
9365ee1c 8251 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8252 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8253 (description
d13f3a03 8254 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8255GNOME 3. This includes things like the fonts used in user interface elements,
8256alternative user interface themes, changes in window management behavior,
8257GNOME Shell appearance and extension, etc.")
8258 (license license:gpl3+)))
813f814a 8259
d13f3a03
RW
8260;; This package has been renamed by upstream.
8261(define-public gnome-tweak-tool
8262 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
8263
32ac717c
DT
8264(define-public gnome-shell-extensions
8265 (package
8266 (name "gnome-shell-extensions")
ae4c05e0 8267 (version "3.32.1")
32ac717c
DT
8268 (source (origin
8269 (method url-fetch)
8270 (uri (string-append "mirror://gnome/sources/" name "/"
8271 (version-major+minor version) "/"
8272 name "-" version ".tar.xz"))
8273 (sha256
8274 (base32
ae4c05e0 8275 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
100f625b 8276 (build-system meson-build-system)
32ac717c 8277 (arguments
100f625b 8278 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8279 (native-inputs
c9ea8873
LP
8280 `(("glib:bin" ,glib "bin")
8281 ("intltool" ,intltool)
32ac717c
DT
8282 ("pkg-config" ,pkg-config)))
8283 (propagated-inputs
c9ea8873 8284 `(("glib" ,glib)))
32ac717c
DT
8285 (synopsis "Extensions for GNOME Shell")
8286 (description "GNOME Shell extensions modify and extend GNOME Shell
8287functionality and behavior.")
8288 (home-page "https://extensions.gnome.org/")
8289 (license license:gpl3+)))
8290
813f814a
DT
8291(define-public arc-theme
8292 (package
8293 (name "arc-theme")
37781323 8294 (version "20190917")
813f814a 8295 (source (origin
a18f8eaf
BH
8296 (method git-fetch)
8297 (uri (git-reference
8298 (url "https://github.com/NicoHood/arc-theme.git")
8299 (commit version)))
8300 (file-name (git-file-name name version))
813f814a
DT
8301 (sha256
8302 (base32
37781323 8303 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8304 (build-system gnu-build-system)
d88884fa
EF
8305 (arguments
8306 '(#:phases
8307 (modify-phases %standard-phases
8308 ;; autogen.sh calls configure at the end of the script.
8309 (replace 'bootstrap
4690e3a4
MC
8310 (lambda _ (invoke "autoreconf" "-vfi")))
8311 (add-before 'build 'set-home ;placate Inkscape
8312 (lambda _
8313 (setenv "HOME" (getcwd))
8314 #t)))))
813f814a
DT
8315 (native-inputs
8316 `(("autoconf" ,autoconf)
8317 ("automake" ,automake)
a18f8eaf
BH
8318 ("glib" ,glib "bin") ; for glib-compile-resources
8319 ("gnome-shell" ,gnome-shell)
8320 ("gtk+" ,gtk+)
8321 ("inkscape" ,inkscape)
8322 ("optipng" ,optipng)
8323 ("pkg-config" ,pkg-config)
bed24ecf 8324 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8325 (synopsis "A flat GTK+ theme with transparent elements")
8326 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
83272, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8328like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8329 (home-page "https://github.com/horst3180/arc-theme")
8330 ;; No "or later" language found.
a18f8eaf 8331 (license license:gpl3+)))
9987c57c 8332
d935e6a1 8333(define-public faba-icon-theme
9987c57c 8334 (package
d935e6a1 8335 (name "faba-icon-theme")
2eee7ee3 8336 (version "4.3")
d935e6a1
BT
8337 (source
8338 (origin
757e4027
TGR
8339 (method git-fetch)
8340 (uri (git-reference
8341 (url "https://github.com/snwh/faba-icon-theme.git")
8342 (commit (string-append "v" version))))
8343 (file-name (git-file-name name version))
d935e6a1 8344 (sha256
757e4027 8345 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8346 (build-system meson-build-system)
9987c57c 8347 (arguments
82da291a 8348 `(#:phases
9987c57c 8349 (modify-phases %standard-phases
82da291a 8350 (add-before 'configure 'disable-post-install
9987c57c 8351 (lambda _
82da291a
JL
8352 (substitute* "meson.build"
8353 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8354 (native-inputs
8355 `(("autoconf" ,autoconf)
8356 ("automake" ,automake)))
d935e6a1
BT
8357 (synopsis "Faba icon theme")
8358 (description
8359 "Faba is a minimal icon set used as a basis for other themes such as
8360Moka")
8361 (home-page "https://snwh.org/moka")
8362 (license (list license:lgpl3+
8363 license:cc-by-sa4.0))))
8364
9987c57c
DT
8365(define-public moka-icon-theme
8366 (package
8b0e4177 8367 (inherit faba-icon-theme)
9987c57c 8368 (name "moka-icon-theme")
105a3625 8369 (version "5.4.0")
8c3f2170
TGR
8370 (source
8371 (origin
8372 (method git-fetch)
8373 (uri (git-reference
8374 (url "https://github.com/snwh/moka-icon-theme.git")
8375 (commit (string-append "v" version))))
8376 (file-name (git-file-name name version))
8377 (sha256
8378 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8379 (propagated-inputs
8380 ;; Moka is based on Faba by using it as a fallback icon set instead of
8381 ;; bundling it, so we need to add it as a propagated input.
8382 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8383 (synopsis "Moka icon theme")
8384 (description "Moka is a stylized desktop icon set, designed to be clear,
8385simple and consistent.")
fedde43b
BT
8386 (license (list license:gpl3+
8387 license:cc-by-sa4.0))))
6fd8f8d6
DT
8388
8389(define-public arc-icon-theme
8390 (package
8391 (name "arc-icon-theme")
c4180240 8392 (version "20161122")
bbf66cbf
TGR
8393 (source
8394 (origin
8395 (method git-fetch)
8396 (uri (git-reference
8397 (url "https://github.com/horst3180/arc-icon-theme.git")
8398 (commit version)))
8399 (file-name (git-file-name name version))
8400 (sha256
8401 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8402 (build-system gnu-build-system)
9e1ede95
JL
8403 (arguments
8404 `(#:phases
8405 (modify-phases %standard-phases
8406 (add-after 'unpack 'disable-configure-during-bootstrap
8407 (lambda _
8408 (substitute* "autogen.sh"
8409 (("^\"\\$srcdir/configure\".*") ""))
8410 #t)))))
6fd8f8d6
DT
8411 (native-inputs
8412 `(("autoconf" ,autoconf)
8413 ("automake" ,automake)))
8414 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8415 (propagated-inputs
8416 `(("moka-icon-theme" ,moka-icon-theme)))
8417 (synopsis "Arc icon theme")
8418 (description "The Arc icon theme provides a set of icons matching the
8419style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8420the Moka icon theme.")
8421 (home-page "https://github.com/horst3180/arc-icon-theme")
8422 (license license:gpl3+)))
6064a4e8
LF
8423
8424(define-public folks
8425 (package
8426 (name "folks")
d23495fa 8427 (version "0.11.4")
6064a4e8
LF
8428 (source (origin
8429 (method url-fetch)
8430 (uri (string-append
e5f4796e 8431 "mirror://gnome/sources/folks/"
6064a4e8 8432 (version-major+minor version) "/"
e5f4796e 8433 "folks-" version ".tar.xz"))
6064a4e8
LF
8434 (sha256
8435 (base32
d23495fa 8436 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
6064a4e8
LF
8437 (build-system glib-or-gtk-build-system)
8438 (inputs
8439 `(("bdb" ,bdb)
8440 ("dbus-glib" ,dbus-glib)
8441 ("evolution-data-server" ,evolution-data-server)
8442 ("glib" ,glib)
8443 ("libgee" ,libgee)
8444 ("telepathy-glib" ,telepathy-glib)))
8445 (native-inputs
8446 `(("gobject-introspection" ,gobject-introspection)
8447 ("intltool" ,intltool)
8448 ("pkg-config" ,pkg-config)
8449 ("vala" ,vala)))
8450 (synopsis "Library to aggregate data about people")
8451 (description "Libfolks is a library that aggregates information about people
8452from multiple sources (e.g., Telepathy connection managers for IM contacts,
8453Evolution Data Server for local contacts, libsocialweb for web service contacts,
8454etc.) to create metacontacts. It's written in Vala, which generates C code when
8455compiled.")
8456 (home-page "https://wiki.gnome.org/Projects/Folks")
8457 (license license:lgpl2.1+)))
01ea778f
LF
8458
8459(define-public gfbgraph
8460 (package
8461 (name "gfbgraph")
8462 (version "0.2.3")
8463 (source (origin
8464 (method url-fetch)
8465 (uri (string-append
237d4cf7 8466 "mirror://gnome/sources/gfbgraph/"
01ea778f 8467 (version-major+minor version) "/"
237d4cf7 8468 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8469 (sha256
8470 (base32
8471 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8472 (build-system glib-or-gtk-build-system)
8473 (arguments
8474 `(#:tests? #f ; Tests appear to require the network.
8475 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8476 #:configure-flags '("--disable-gtk-doc"
8477 "--disable-static"
8478 "--enable-introspection")))
8479 (native-inputs
8480 `(("pkg-config" ,pkg-config)
8481 ("gobject-introspection" ,gobject-introspection)))
8482 (inputs
8483 `(("json-glib" ,json-glib)
14c297fd 8484 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8485 ("rest" ,rest)))
8486 (synopsis "GLib/GObject wrapper for the Facebook API")
8487 (description "This library allows you to use the Facebook API from
8488GLib/GObject code.")
8489 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8490 (license license:lgpl2.1+)))
3920868c 8491
8492(define-public libgnomekbd
8493 (package
8494 (name "libgnomekbd")
70f2b0f9 8495 (version "3.26.1")
3920868c 8496 (source (origin
8497 (method url-fetch)
d47fa82d 8498 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8499 (version-major+minor version) "/"
d47fa82d 8500 "libgnomekbd-" version ".tar.xz"))
3920868c 8501 (sha256
8502 (base32
70f2b0f9 8503 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8504 (build-system gnu-build-system)
8505 (native-inputs
8506 `(("pkg-config" ,pkg-config)
8507 ("glib" ,glib "bin")
8508 ("intltool" ,intltool)))
8509 (propagated-inputs
8510 ;; Referred to in .h files and .pc.
8511 `(("glib" ,glib)
8512 ("gtk+" ,gtk+)
8513 ("libxklavier" ,libxklavier)))
8514 (home-page "https://www.gnome.org")
8515 (synopsis "GNOME keyboard configuration library")
8516 (description
8517 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8518environment, which can notably display keyboard layouts.")
8519 (license license:lgpl2.0+)))
85327d0d 8520
8521;;; This package is no longer maintained:
8522;;; https://wiki.gnome.org/Attic/LibUnique
8523;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8524;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8525(define-public libunique
8526 (package
8527 (name "libunique")
8528 (version "3.0.2")
8529 (source (origin
8530 (method url-fetch)
8531 (uri (string-append "mirror://gnome/sources/" name "/"
8532 (version-major+minor version) "/"
8533 name "-" version ".tar.xz"))
8534 (sha256
8535 (base32
8536 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8537 (build-system glib-or-gtk-build-system)
8538 (arguments
8539 `(#:configure-flags '("--disable-static"
8540 "--disable-dbus" ; use gdbus
8541 "--enable-introspection")))
8542 (native-inputs
8543 `(("pkg-config" ,pkg-config)
8544 ("gobject-introspection" ,gobject-introspection)
8545 ("glib:bin" ,glib "bin")
8546 ("gtk-doc" ,gtk-doc)))
8547 (propagated-inputs
8548 ;; Referred to in .h files and .pc.
8549 `(("gtk+" ,gtk+)))
8550 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8551 (synopsis "Library for writing single instance applications")
8552 (description
8553 "Libunique is a library for writing single instance applications. If you
8554launch a single instance application twice, the second instance will either just
8555quit or will send a message to the running instance. Libunique makes it easy to
8556write this kind of application, by providing a base class, taking care of all
8557the IPC machinery needed to send messages to a running instance, and also
8558handling the startup notification side.")
8559 (license license:lgpl2.1+)))
54021cd8
RS
8560
8561(define-public gnome-calculator
8562 (package
8563 (name "gnome-calculator")
07ace641 8564 (version "3.32.2")
54021cd8
RS
8565 (source
8566 (origin
8567 (method url-fetch)
8568 (uri (string-append "mirror://gnome/sources/" name "/"
8569 (version-major+minor version) "/"
8570 name "-" version ".tar.xz"))
8571 (sha256
8572 (base32
07ace641 8573 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
2d475910
RW
8574 (build-system meson-build-system)
8575 (arguments '(#:glib-or-gtk? #t))
54021cd8
RS
8576 (native-inputs
8577 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8578 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8
RS
8579 ("intltool" ,intltool)
8580 ("itstool" ,itstool)
2d475910 8581 ("vala" ,vala)
54021cd8
RS
8582 ("pkg-config" ,pkg-config)))
8583 (inputs
112e9083 8584 `(("glib" ,glib)
07ace641 8585 ("gtksourceview" ,gtksourceview)
54021cd8 8586 ("libsoup" ,libsoup)
112e9083 8587 ("libxml2" ,libxml2)
2c2da7ec 8588 ("mpc" ,mpc)
54021cd8
RS
8589 ("mpfr" ,mpfr)))
8590 (home-page "https://wiki.gnome.org/Apps/Calculator")
8591 (synopsis "Desktop calculator")
8592 (description
8593 "Calculator is an application that solves mathematical equations and
8594is suitable as a default application in a Desktop environment.")
8595 (license license:gpl3)))
0bd69759
RS
8596
8597(define-public xpad
8598 (package
8599 (name "xpad")
c85626bb 8600 (version "5.1.0")
0bd69759
RS
8601 (source
8602 (origin
8603 (method url-fetch)
08fda9c6
R
8604 (uri (string-append "https://launchpad.net/xpad/trunk/"
8605 version "/+download/"
0bd69759
RS
8606 name "-" version ".tar.bz2"))
8607 (sha256
8608 (base32
c85626bb 8609 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8610 (build-system gnu-build-system)
8611 (native-inputs
08fda9c6
R
8612 `(("autoconf" ,autoconf)
8613 ("automake" ,automake)
8614 ("gtk+:bin" ,gtk+ "bin")
8615 ("intltool" ,intltool)
0bd69759
RS
8616 ("pkg-config" ,pkg-config)))
8617 (inputs
c72647fb 8618 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8619 ("libsm" ,libsm)))
8620 (home-page "https://wiki.gnome.org/Apps/Xpad")
8621 (synopsis "Virtual sticky note")
8622 (description
8623 "Xpad is a sticky note that strives to be simple, fault tolerant,
8624and customizable. Xpad consists of independent pad windows, each is
8625basically a text box in which notes can be written.")
8626 (license license:gpl3+)))
3ad7dce1
RS
8627
8628(define-public gucharmap
c60063ea
RW
8629 (let ((unicode-files
8630 '(("Blocks.txt"
1f8b5515 8631 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8632 ("DerivedAge.txt"
1f8b5515 8633 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8634 ("NamesList.txt"
1f8b5515 8635 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8636 ("Scripts.txt"
1f8b5515 8637 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8638 ("UnicodeData.txt"
1f8b5515 8639 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8640 ("Unihan.zip"
1f8b5515 8641 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8642 (package
8643 (name "gucharmap")
1f8b5515 8644 (version "12.0.1")
c60063ea
RW
8645 (source
8646 (origin
8647 (method url-fetch)
8648 (uri (string-append "mirror://gnome/sources/" name "/"
8649 (version-major+minor version) "/"
8650 name "-" version ".tar.xz"))
8651 (sha256
8652 (base32
1f8b5515 8653 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8654 (build-system glib-or-gtk-build-system)
8655 (arguments
8656 `(#:modules ((ice-9 match)
8657 (guix build glib-or-gtk-build-system)
8658 (guix build utils))
8659 #:configure-flags
8660 (list "--with-unicode-data=../unicode-data")
8661 #:phases
8662 (modify-phases %standard-phases
8663 (add-after 'unpack 'prepare-unicode-data
8664 (lambda* (#:key inputs #:allow-other-keys)
8665 (mkdir-p "../unicode-data")
8666 (with-directory-excursion "../unicode-data"
8667 (for-each (match-lambda
8668 ((file _)
8669 (install-file (assoc-ref inputs file) ".")))
8670 ',unicode-files))
8671 #t)))))
8672 (native-inputs
8673 `(("desktop-file-utils" ,desktop-file-utils)
8674 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8675 ("gobject-introspection" ,gobject-introspection)
8676 ("intltool" ,intltool)
8677 ("itstool" ,itstool)
8678 ("pkg-config" ,pkg-config)
8679 ,@(map (match-lambda
8680 ((file hash)
8681 `(,file
8682 ,(origin
8683 (method url-fetch)
8684 (uri (string-append
1f8b5515 8685 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8686 file))
8687 (sha256 (base32 hash))))))
8688 unicode-files)
8689 ("unzip" ,unzip)))
8690 (inputs
8691 `(("gtk+" ,gtk+)
8692 ("xmllint" ,libxml2)))
8693 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8694 (synopsis "Unicode character picker and font browser")
8695 (description
8696 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8697characters and categories for the installed fonts, and to examine their
8698detailed properties. It is an easy way to find the character you might
8699only know by its Unicode name or code point.")
c60063ea 8700 (license license:gpl3+))))
04ce840a
RS
8701
8702(define-public bluefish
8703 (package
8704 (name "bluefish")
ea8afaf3 8705 (version "2.2.10")
04ce840a
RS
8706 (source
8707 (origin
8708 (method url-fetch)
8709 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8710 name "-" version ".tar.gz"))
8711 (sha256
8712 (base32
ea8afaf3 8713 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
04ce840a
RS
8714 (build-system gnu-build-system)
8715 (native-inputs
8716 `(("desktop-file-utils" ,desktop-file-utils)
8717 ("intltool" ,intltool)
8718 ("pkg-config" ,pkg-config)))
8719 (inputs
8720 `(("enchant" ,enchant)
8721 ("gtk+" ,gtk+)
8722 ("python" ,python-2)
8723 ("xmllint" ,libxml2)
8724 ("gucharmap" ,gucharmap)))
8725 (home-page "http://bluefish.openoffice.nl")
8726 (synopsis "Web development studio")
8727 (description
8728 "Bluefish is an editor targeted towards programmers and web developers,
8729with many options to write web sites, scripts and other code.
8730Bluefish supports many programming and markup languages.")
8731 (license license:gpl3+)))
1f6a73ee
RS
8732
8733(define-public gnome-system-monitor
8734 (package
8735 (name "gnome-system-monitor")
083cffaf 8736 (version "3.32.1")
1f6a73ee
RS
8737 (source
8738 (origin
8739 (method url-fetch)
8740 (uri (string-append "mirror://gnome/sources/" name "/"
8741 (version-major+minor version) "/"
8742 name "-" version ".tar.xz"))
8743 (sha256
8744 (base32
083cffaf 8745 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8746 (build-system meson-build-system)
8747 (arguments
8748 '(#:glib-or-gtk? #t
8749 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8750 (native-inputs
8751 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8752 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8753 ("intltool" ,intltool)
8754 ("itstool" ,itstool)
8755 ("libgtop" ,libgtop)
4985d9aa 8756 ("polkit" ,polkit)
1f6a73ee
RS
8757 ("pkg-config" ,pkg-config)))
8758 (inputs
8759 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8760 ("gtk+" ,gtk+)
8761 ("gtkmm" ,gtkmm)
8762 ("librsvg" ,librsvg)
4985d9aa
RW
8763 ("libxml2" ,libxml2)
8764 ("libwnck" ,libwnck)))
1f6a73ee
RS
8765 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8766 (synopsis "Process viewer and system resource monitor for GNOME")
8767 (description
8768 "GNOME System Monitor is a GNOME process viewer and system monitor with
8769an attractive, easy-to-use interface. It has features, such as a tree view
8770for process dependencies, icons for processes, the ability to hide processes,
8771graphical time histories of CPU/memory/swap usage and the ability to
8772kill/reinice processes.")
8773 (license license:gpl2+)))
3e00ac47
SB
8774
8775(define-public python-pyatspi
8776 (package
8777 (name "python-pyatspi")
4f937a32 8778 (version "2.34.0")
3e00ac47
SB
8779 (source (origin
8780 (method url-fetch)
8781 (uri (string-append
8782 "mirror://gnome/sources/pyatspi/"
8783 (version-major+minor version)
8784 "/pyatspi-" version ".tar.xz"))
8785 (sha256
8786 (base32
4f937a32 8787 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8788 (build-system gnu-build-system)
b95af3f6
JL
8789 (arguments
8790 `(#:phases
8791 (modify-phases %standard-phases
8792 (add-before 'build 'fix-atk-load
8793 (lambda _
8794 (substitute* "pyatspi/__init__.py"
8795 (("from gi.repository import Atspi")
8796 "gi.require_version('Gtk', '3.0')
8797from gi.repository import Gtk
8798from gi.repository import Atspi"))
8799 #t)))))
3e00ac47
SB
8800 (native-inputs
8801 `(("pkg-config" ,pkg-config)))
8802 (inputs
8803 `(("python" ,python)
8804 ("python-pygobject" ,python-pygobject)))
8805 (synopsis "Python client bindings for D-Bus AT-SPI")
8806 (home-page "https://wiki.linuxfoundation.org/accessibility\
8807/atk/at-spi/at-spi_on_d-bus")
8808 (description
8809 "This package includes a python client library for the AT-SPI D-Bus
8810accessibility infrastructure.")
8811 (license license:lgpl2.0)
8812 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8813
8814(define-public orca
8815 (package
8816 (name "orca")
089e8585 8817 (version "3.32.0")
53201c0d
SB
8818 (source (origin
8819 (method url-fetch)
8820 (uri (string-append
8821 "mirror://gnome/sources/" name "/"
8822 (version-major+minor version) "/"
8823 name "-" version ".tar.xz"))
8824 (sha256
8825 (base32
089e8585 8826 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
53201c0d
SB
8827 (build-system glib-or-gtk-build-system)
8828 (arguments
8829 '(#:phases
8830 (modify-phases %standard-phases
8831 (add-before 'configure 'qualify-xkbcomp
8832 (lambda* (#:key inputs #:allow-other-keys)
8833 (let ((xkbcomp (string-append
8834 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8835 (substitute* "src/orca/orca.py"
8836 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8837 #t))
8838 (add-after 'install 'wrap-orca
8839 (lambda* (#:key outputs #:allow-other-keys)
8840 (let* ((out (assoc-ref outputs "out"))
8841 (prog (string-append out "/bin/orca")))
8842 (wrap-program prog
8843 `("GI_TYPELIB_PATH" ":" prefix
8844 (,(getenv "GI_TYPELIB_PATH")))
8845 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8846 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8847 `("PYTHONPATH" ":" prefix
8848 (,(getenv "PYTHONPATH")))))
8849 #t)))))
8850 (native-inputs
8851 `(("intltool" ,intltool)
8852 ("itstool" ,itstool)
8853 ("pkg-config" ,pkg-config)
8854 ("xmllint" ,libxml2)))
8855 (inputs
8856 `(("at-spi2-atk" ,at-spi2-atk)
8857 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8858 ("gstreamer" ,gstreamer)
8859 ("gst-plugins-base" ,gst-plugins-base)
8860 ("gst-plugins-good" ,gst-plugins-good)
8861 ("gtk+" ,gtk+)
8862 ("python" ,python)
8863 ("python-pygobject" ,python-pygobject)
8864 ("python-pyatspi" ,python-pyatspi)
8865 ("python-speechd" ,speech-dispatcher)
8866 ("xkbcomp" ,xkbcomp)))
8867 (synopsis
8868 "Screen reader for individuals who are blind or visually impaired")
8869 (home-page "https://wiki.gnome.org/Projects/Orca")
8870 (description
8871 "Orca is a screen reader that provides access to the graphical desktop
8872via speech and refreshable braille. Orca works with applications and toolkits
8873that support the Assistive Technology Service Provider Interface (AT-SPI).")
8874 (license license:lgpl2.1+)))
411ba511
LC
8875
8876(define-public gspell
8877 (package
8878 (name "gspell")
7a6bbe9b 8879 (version "1.8.2")
411ba511
LC
8880 (source (origin
8881 (method url-fetch)
8882 (uri (string-append "mirror://gnome/sources/" name "/"
8883 (version-major+minor version) "/"
8884 name "-" version ".tar.xz"))
8885 (sha256
8886 (base32
7a6bbe9b 8887 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8888 (patches (search-patches "gspell-dash-test.patch"))))
8889 (build-system glib-or-gtk-build-system)
8890 (arguments
8891 '(#:phases
8892 (modify-phases %standard-phases
8893 (add-before 'check 'pre-check
8894 (lambda* (#:key inputs #:allow-other-keys)
8895 ;; Tests require a running X server.
8896 (system "Xvfb :1 &")
8897 (setenv "DISPLAY" ":1")
8898
8899 ;; For the missing /etc/machine-id.
8900 (setenv "DBUS_FATAL_WARNINGS" "0")
8901
8902 ;; Allow Enchant and its Aspell backend to find the en_US
8903 ;; dictionary.
8904 (setenv "ASPELL_DICT_DIR"
8905 (string-append (assoc-ref inputs "aspell-dict-en")
8906 "/lib/aspell"))
8907 #t)))))
8908 (inputs
eccd35be 8909 `(("gtk+" ,gtk+)
a801ae4c
TGR
8910 ("glib" ,glib)
8911 ("iso-codes" ,iso-codes)))
411ba511
LC
8912 (native-inputs
8913 `(("glib" ,glib "bin")
26ba3f07 8914 ("gobject-introspection" ,gobject-introspection)
411ba511
LC
8915 ("pkg-config" ,pkg-config)
8916 ("xmllint" ,libxml2)
8917
8918 ;; For tests.
a801ae4c 8919 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8920 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8921 (propagated-inputs
9b1bb757 8922 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8923 (home-page "https://wiki.gnome.org/Projects/gspell")
8924 (synopsis "GNOME's alternative spell checker")
8925 (description
8926 "gspell provides a flexible API to add spell-checking to a GTK+
8927application. It provides a GObject API, spell-checking to text entries and
8928text views, and buttons to choose the language.")
8929 (license license:gpl2+)))
d1d739fa
CM
8930
8931(define-public gnome-planner
8932 (package
8933 (name "gnome-planner")
8934 (version "0.14.6")
8935 (source (origin
8936 (method url-fetch)
8937 (uri (string-append "mirror://gnome/sources/planner/"
8938 (version-major+minor version) "/planner-"
8939 version ".tar.xz"))
8940 (sha256
8941 (base32
8942 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8943 (build-system glib-or-gtk-build-system)
8944 (arguments
8945 ;; Disable the Python bindings because the Planner program functions
8946 ;; without them, and (as of 2017-06-13) we have not packaged all of
8947 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8948 `(#:configure-flags
8949 (list "--disable-python"
8950 ,@(if (string=? "aarch64-linux" (%current-system))
8951 '("--build=aarch64-unknown-linux-gnu")
8952 '()))))
d1d739fa
CM
8953 (inputs
8954 `(("libgnomecanvas" ,libgnomecanvas)
8955 ("libgnomeui" ,libgnomeui)
8956 ("libglade" ,libglade)
8957 ("gnome-vfs" ,gnome-vfs)
8958 ("gconf" ,gconf)
8959 ("libxml2" ,libxml2)
8960 ("libxslt" ,libxslt)
8961 ("gtk+" ,gtk+)
8962 ("glib" ,glib)))
8963 (native-inputs
8964 `(("intltool" ,intltool)
8965 ("scrollkeeper" ,scrollkeeper)
8966 ("pkg-config" ,pkg-config)))
8967 (home-page "https://wiki.gnome.org/Apps/Planner")
8968 (synopsis "Project management software for the GNOME desktop")
8969 (description
8970 "GNOME Planner is a project management tool based on the Work Breakdown
8971Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8972the resources, tasks, and constraints that you define, Planner generates
8973various views into a project. For example, Planner can show a Gantt chart of
8974the project. It can show a detailed summary of tasks including their
8975duration, cost, and current progress. It can also show a report of resource
8976utilization that highlights under-utilized and over-utilized resources. These
8977views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 8978 (license license:gpl2+)))
64fce637
RS
8979
8980(define-public lollypop
8981 (package
8982 (name "lollypop")
ca32627a 8983 (version "1.2.7")
64fce637
RS
8984 (source
8985 (origin
8986 (method url-fetch)
b98eace8 8987 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
ca32627a 8988 "08f973788c7ca46d9285eec2ac818edb/"
3275d43d 8989 "lollypop-" version ".tar.xz"))
64fce637 8990 (sha256
ca32627a 8991 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
aa498fc0 8992 (build-system meson-build-system)
64fce637
RS
8993 (arguments
8994 `(#:imported-modules ((guix build python-build-system)
aa498fc0
TD
8995 ,@%meson-build-system-modules)
8996 #:glib-or-gtk? #t
5fc9b6c1
EF
8997 #:tests? #f ; no test suite
8998 #:phases
8999 (modify-phases %standard-phases
5fc9b6c1
EF
9000 (add-after 'install 'wrap-program
9001 (lambda* (#:key outputs #:allow-other-keys)
9002 (let ((out (assoc-ref outputs "out"))
9003 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9004 (wrap-program (string-append out "/bin/lollypop")
9005 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9006 #t))
8ac8b3b3
TGR
9007 (add-after 'install 'wrap-python
9008 (@@ (guix build python-build-system) wrap))
9009 (add-after 'install 'wrap-glib-or-gtk
9010 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
64fce637
RS
9011 (native-inputs
9012 `(("intltool" ,intltool)
9013 ("itstool" ,itstool)
aa498fc0
TD
9014 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9015 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9016 ("pkg-config" ,pkg-config)))
9017 (inputs
9018 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9019 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9020 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9021 ("libnotify" ,libnotify)
9022 ("libsecret" ,libsecret)
9023 ("libsoup" ,libsoup)
9024 ("python" ,python)
9025 ("python-beautifulsoup4" ,python-beautifulsoup4)
9026 ("python-gst" ,python-gst)
d029afdd 9027 ("python-pil" ,python-pillow)
64fce637 9028 ("python-pycairo" ,python-pycairo)
7460f346 9029 ("python-pygobject" ,python-pygobject-3.34)
64fce637
RS
9030 ("python-pylast" ,python-pylast)
9031 ("totem-pl-parser" ,totem-pl-parser)
9032 ("webkitgtk" ,webkitgtk)))
9033 (propagated-inputs
9034 `(;; gst-plugins-base is required to start Lollypop,
9035 ;; the others are required to play streaming.
64fce637
RS
9036 ("gst-plugins-good" ,gst-plugins-good)
9037 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9038 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9039 (synopsis "GNOME music playing application")
9040 (description
9041 "Lollypop is a music player designed to play well with GNOME desktop.
9042Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9043from artists and tracks from the web. It also fetches cover artworks
9044automatically and it can stream songs from online music services and charts.")
9045 (license license:gpl3+)))
d831d49d
AW
9046
9047(define-public gnome-video-effects
9048 (package
9049 (name "gnome-video-effects")
9050 (version "0.4.3")
9051 (source (origin
9052 (method url-fetch)
9053 (uri (string-append "mirror://gnome/sources/" name "/"
9054 (version-major+minor version) "/" name "-"
9055 version ".tar.xz"))
9056 (sha256
9057 (base32
9058 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9059 (build-system glib-or-gtk-build-system)
9060 (arguments
9061 `(#:out-of-source? #f))
9062 (native-inputs
9063 `(("glib:bin" ,glib "bin")
9064 ("intltool" ,intltool)
9065 ("gettext" ,gettext-minimal)
9066 ("pkg-config" ,pkg-config)))
9067 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9068 (synopsis "Video effects for Cheese and other GNOME applications")
9069 (description
9070 "A collection of GStreamer video filters and effects to be used in
9071photo-booth-like software, such as Cheese.")
9072 (license license:gpl2+)))
3511c780
AW
9073
9074(define-public cheese
9075 (package
9076 (name "cheese")
dd33b337 9077 (version "3.32.1")
3511c780
AW
9078 (source (origin
9079 (method url-fetch)
9080 (uri (string-append "mirror://gnome/sources/" name "/"
9081 (version-major+minor version) "/" name "-"
9082 version ".tar.xz"))
9083 (sha256
9084 (base32
dd33b337 9085 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
3511c780
AW
9086 (arguments
9087 ;; Tests require GDK.
9088 `(#:tests? #f
9089 #:phases
9090 (modify-phases %standard-phases
9091 (add-before 'install 'skip-gtk-update-icon-cache
9092 (lambda _
9093 ;; Don't create 'icon-theme.cache'
9094 (substitute* "Makefile"
9095 (("gtk-update-icon-cache") (which "true")))
9096 #t))
9097 (add-after 'install 'wrap-cheese
9098 (lambda* (#:key inputs outputs #:allow-other-keys)
9099 (let ((out (assoc-ref outputs "out"))
9100 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9101 (wrap-program (string-append out "/bin/cheese")
9102 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9103 #t)))))
9104 (build-system glib-or-gtk-build-system)
9105 (native-inputs
9106 `(("glib:bin" ,glib "bin")
9107 ("intltool" ,intltool)
9108 ("itstool" ,itstool)
9109 ("libxml2" ,libxml2)
9110 ("pkg-config" ,pkg-config)
9111 ("vala" ,vala)))
9112 (propagated-inputs
6a19f03e
RW
9113 `(("gnome-video-effects" ,gnome-video-effects)
9114 ("clutter" ,clutter)
3511c780
AW
9115 ("clutter-gst" ,clutter-gst)
9116 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9117 ("libcanberra" ,libcanberra)
3511c780
AW
9118 ("gdk-pixbuf" ,gdk-pixbuf)
9119 ("glib" ,glib)
6a19f03e
RW
9120 ("gstreamer" ,gstreamer)))
9121 (inputs
9122 `(("gnome-desktop" ,gnome-desktop)
3511c780 9123 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9124 ("gst-plugins-base" ,gst-plugins-base)
9125 ("gst-plugins-bad" ,gst-plugins-bad)
9126 ("gtk+" ,gtk+)
3511c780
AW
9127 ("libx11" ,libx11)
9128 ("libxtst" ,libxtst)))
9129 (home-page "https://wiki.gnome.org/Apps/Cheese")
9130 (synopsis "Webcam photo booth software for GNOME")
9131 (description
9132 "Cheese uses your webcam to take photos and videos. Cheese can also
9133apply fancy special effects and lets you share the fun with others.")
9134 (license license:gpl2+)))
3c5dbd2b 9135
9136(define-public sound-juicer
9137 (package
9138 (name "sound-juicer")
9139 (version "3.24.0")
9140 (source
9141 (origin
9142 (method url-fetch)
9143 (uri (string-append "mirror://gnome/sources/" name "/"
9144 (version-major+minor version) "/"
9145 name "-" version ".tar.xz"))
9146 (sha256
9147 (base32
9148 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9149 (build-system glib-or-gtk-build-system)
9150 (native-inputs
9151 `(("desktop-file-utils" ,desktop-file-utils)
9152 ("intltool" ,intltool)
9153 ("itstool" ,itstool)
9154 ("pkg-config" ,pkg-config)
9155 ("xmllint" ,libxml2)))
9156 (inputs
9157 `(("gtk+" ,gtk+)
9158 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9159 ("gstreamer" ,gstreamer)
9160 ("gst-plugins-base" ,gst-plugins-base)
9161 ("gst-plugins-good" ,gst-plugins-good)
9162 ("iso-codes" ,iso-codes)
9163 ("libbrasero-media3" ,brasero)
9164 ("libcanberra" ,libcanberra)
9165 ("libdiscid" ,libdiscid)
9166 ("libmusicbrainz" ,libmusicbrainz)
9167 ("neon" ,neon)))
9168 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9169 (synopsis "Audio music cd ripper")
9170 (description "Sound Juicer extracts audio from compact discs and convert it
9171into audio files that a personal computer or digital audio player can play.
9172It supports ripping to any audio codec supported by a GStreamer plugin, such as
9173mp3, Ogg Vorbis and FLAC")
9174 (license license:gpl2+)))
4e3fdeb7 9175
0d3f1708
CB
9176(define-public soundconverter
9177 (package
9178 (name "soundconverter")
fa75a213 9179 (version "3.0.1")
0d3f1708
CB
9180 (source
9181 (origin
9182 (method url-fetch)
9183 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9184 version "/+download/"
9185 "soundconverter-" version ".tar.xz"))
9186
9187 (sha256
fa75a213 9188 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
0d3f1708
CB
9189 (patches
9190 (search-patches
9191 "soundconverter-remove-gconf-dependency.patch"))))
9192 (build-system glib-or-gtk-build-system)
9193 (arguments
9194 `(#:imported-modules ((guix build python-build-system)
9195 (guix build glib-or-gtk-build-system)
9196 ,@%gnu-build-system-modules)
9197
9198 #:modules ((guix build glib-or-gtk-build-system)
9199 (guix build utils)
9200 ((guix build gnu-build-system) #:prefix gnu:)
9201 ((guix build python-build-system) #:prefix python:))
9202
9203 #:phases
9204 (modify-phases %standard-phases
0d3f1708
CB
9205 (add-after 'install 'wrap-soundconverter-for-python
9206 (assoc-ref python:%standard-phases 'wrap))
9207 (add-after 'install 'wrap-soundconverter
9208 (lambda* (#:key inputs outputs #:allow-other-keys)
9209 (let ((out (assoc-ref outputs "out"))
9210 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9211 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9212 (wrap-program (string-append out "/bin/soundconverter")
9213 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9214 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9215 #t)))))
9216 (native-inputs
9217 `(("intltool" ,intltool)
9218 ("pkg-config" ,pkg-config)
9219 ("glib:bin" ,glib "bin")))
9220 (inputs
9221 `(("gtk+" ,gtk+)
9222 ("python" ,python)
9223 ("python-pygobject" ,python-pygobject)
9224 ("gstreamer" ,gstreamer)
9225 ("gst-plugins-base" ,gst-plugins-base)))
9226 (home-page "http://soundconverter.org/")
9227 (synopsis "Convert between audio formats with a graphical interface")
9228 (description
9229 "SoundConverter supports converting between many audio formats including
9230Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9231configurable file renaming. ")
9232 (license license:gpl3)))
9233
4e3fdeb7 9234(define-public workrave
89f2d736
TGR
9235 (package
9236 (name "workrave")
aa51d92c 9237 (version "1.10.34")
89f2d736
TGR
9238 (source
9239 (origin
9240 (method git-fetch)
9241 (uri (git-reference
9242 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9243 (commit (string-append "v" (string-map
9244 (match-lambda (#\. #\_) (chr chr))
9245 version)))))
89f2d736
TGR
9246 (file-name (git-file-name name version))
9247 (sha256
aa51d92c 9248 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
89f2d736 9249 (build-system glib-or-gtk-build-system)
d1c96847
MC
9250 (inputs `(("glib" ,glib)
9251 ("gtk+" ,gtk+)
9252 ("gdk-pixbuf" ,gdk-pixbuf)
9253 ("gtkmm" ,gtkmm)
9254 ("glibmm" ,glibmm)
9255 ("libx11" ,libx11)
9256 ("libxtst" ,libxtst)
9257 ("dconf" ,dconf)
9258 ("libice" ,libice)
9259 ("libsm" ,libsm)
9260 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9261 (native-inputs `(("boost" ,boost)
89f2d736
TGR
9262 ("pkg-config" ,pkg-config)
9263 ("gettext" ,gnu-gettext)
9264 ("autoconf" ,autoconf)
9265 ("autoconf-archive" , autoconf-archive)
9266 ("automake" ,automake)
9267 ("libtool" ,libtool)
9268 ("intltool" ,intltool)
89f2d736 9269 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9270 ("python3" ,python-3)
9271 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9272 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9273 (description
9274 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9275repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9276micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9277 (home-page "http://www.workrave.org")
9278 (license license:gpl3+)))
312afa7d
LC
9279
9280(define-public ghex
9281 (package
9282 (name "ghex")
3748992a 9283 (version "3.18.4")
312afa7d
LC
9284 (source (origin
9285 (method url-fetch)
2fbab848 9286 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9287 (version-major+minor version) "/"
2fbab848 9288 "ghex-" version ".tar.xz"))
312afa7d
LC
9289 (sha256
9290 (base32
3748992a
KK
9291 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9292 (build-system meson-build-system)
9293 (arguments
9294 '(#:glib-or-gtk? #t
9295 #:phases
9296 (modify-phases %standard-phases
9297 (add-after 'unpack 'skip-gtk-update-icon-cache
9298 ;; Don't create 'icon-theme.cache'.
9299 (lambda _
9300 (substitute* "meson_post_install.py"
9301 (("gtk-update-icon-cache") (which "true")))
9302 #t)))))
312afa7d
LC
9303 (native-inputs
9304 `(("pkg-config" ,pkg-config)
3748992a 9305 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9306 ("gnome-common" ,gnome-common)
9307 ("which" ,which)
9308 ("intltool" ,intltool)
9309 ("yelp-tools" ,yelp-tools)
2fbab848 9310 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9311 (inputs
9312 `(("atk" ,atk)
9313 ("gtk" ,gtk+)))
9314 (synopsis "GNOME hexadecimal editor")
9315 (description "The GHex program can view and edit files in two ways:
9316hexadecimal or ASCII. It is useful for editing binary files in general.")
9317 (home-page "https://wiki.gnome.org/Apps/Ghex")
9318 (license license:gpl2)))
4b2ed6c2
RW
9319
9320(define-public libdazzle
9321 (package
9322 (name "libdazzle")
64fa66ba 9323 (version "3.33.90")
4b2ed6c2
RW
9324 (source (origin
9325 (method url-fetch)
687b4909 9326 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9327 (version-major+minor version) "/"
687b4909 9328 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9329 (sha256
9330 (base32
64fa66ba 9331 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
4b2ed6c2
RW
9332 (build-system meson-build-system)
9333 (arguments
9334 `(#:phases
9335 (modify-phases %standard-phases
4b2ed6c2
RW
9336 (add-before 'check 'pre-check
9337 (lambda _
9338 ;; Tests require a running X server.
9339 (system "Xvfb :1 &")
9340 (setenv "DISPLAY" ":1")
9341 #t)))))
9342 (native-inputs
687b4909 9343 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9344 ("pkg-config" ,pkg-config)
687b4909 9345 ;; For tests.
ff337525 9346 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9347 (inputs
9348 `(("glib" ,glib)
9349 ("gobject-introspection" ,gobject-introspection)
9350 ("gtk+" ,gtk+)
9351 ("vala" ,vala)))
9352 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9353 (synopsis "Companion library to GObject and Gtk+")
9354 (description "The libdazzle library is a companion library to GObject and
9355Gtk+. It provides various features that the authors wish were in the
9356underlying library but cannot for various reasons. In most cases, they are
9357wildly out of scope for those libraries. In other cases, they are not quite
9358generic enough to work for everyone.")
9359 (license license:gpl3+)))
7d3bb433
RW
9360
9361(define-public evolution
9362 (package
9363 (name "evolution")
06141f83 9364 (version "3.32.4")
7d3bb433
RW
9365 (source (origin
9366 (method url-fetch)
9367 (uri (string-append "mirror://gnome/sources/evolution/"
9368 (version-major+minor version) "/"
9369 "evolution-" version ".tar.xz"))
9370 (sha256
9371 (base32
06141f83 9372 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
7d3bb433
RW
9373 (build-system cmake-build-system)
9374 (arguments
5229bea1
KK
9375 `(#:imported-modules (,@%cmake-build-system-modules
9376 (guix build glib-or-gtk-build-system))
9377 #:modules ((guix build cmake-build-system)
9378 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9379 (guix build utils))
9380 #:configure-flags
7d3bb433 9381 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9382 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9383 ; in four years and cannot be built.
5229bea1
KK
9384 #:phases
9385 (modify-phases %standard-phases
9386 ;; The build system attempts to install user interface modules to the
9387 ;; output directory of the "evolution-data-server" package. This
9388 ;; change redirects that change.
9389 (add-after 'unpack 'patch-ui-module-dir
9390 (lambda* (#:key outputs #:allow-other-keys)
9391 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9392 (("\\$\\{edsuimoduledir\\}")
9393 (string-append (assoc-ref outputs "out")
9394 "/lib/evolution-data-server/ui-modules")))
9395 #t))
9396 (add-after 'install 'glib-or-gtk-compile-schemas
9397 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9398 (add-after 'install 'glib-or-gtk-wrap
9399 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9400 (native-inputs
ad6e168b 9401 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9402 ("pkg-config" ,pkg-config)
9403 ("intltool" ,intltool)
9404 ("itstool" ,itstool)))
9405 (inputs
9406 `(("enchant" ,enchant)
9407 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9408 ("gcr" ,gcr)
ad6e168b 9409 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9410 ("gnome-autoar" ,gnome-autoar)
9411 ("gnome-desktop" ,gnome-desktop)
9412 ("gtkspell3" ,gtkspell3)
9413 ("highlight" ,highlight)
9414 ("libcanberra" ,libcanberra)
b63c06f1 9415 ("libedataserverui" ,evolution-data-server)
7d3bb433
RW
9416 ("libgweather" ,libgweather)
9417 ("libnotify" ,libnotify)
9418 ("libsoup" ,libsoup)
9419 ("nss" ,nss)
9420 ("openldap" ,openldap)
9421 ("webkitgtk" ,webkitgtk)
9422 ("ytnef" ,ytnef)))
9423 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9424 (synopsis "Manage your email, contacts and schedule")
9425 (description "Evolution is a personal information management application
9426that provides integrated mail, calendaring and address book
9427functionality.")
9428 ;; See COPYING for details.
23dbe621 9429 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9430 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9431 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9432
9433(define-public gthumb
9434 (package
9435 (name "gthumb")
8280676b 9436 (version "3.8.2")
169d63f5
AT
9437 (source (origin
9438 (method url-fetch)
9439 (uri (string-append "mirror://gnome/sources/gthumb/"
9440 (version-major+minor version) "/"
9441 "gthumb-" version ".tar.xz"))
9442 (sha256
9443 (base32
8280676b 9444 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9445 (build-system meson-build-system)
9446 (arguments
9447 `(#:glib-or-gtk? #t
9448 #:configure-flags
9449 ;; Ensure the RUNPATH contains all installed library locations.
9450 (list (string-append "-Dc_link_args=-Wl,-rpath="
9451 (assoc-ref %outputs "out")
9452 "/lib/gthumb/extensions")
9453 (string-append "-Dcpp_link_args=-Wl,-rpath="
9454 (assoc-ref %outputs "out")
9455 "/lib/gthumb/extensions"))))
9456 (native-inputs
9457 `(("pkg-config" ,pkg-config)
9458 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9459 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9460 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9461 ("intltool" ,intltool)
9462 ("itstool" ,itstool)))
9463 (inputs
9464 `(("exiv2" ,exiv2)
9465 ("gtk" ,gtk+)
9466 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9467 ("gstreamer" ,gstreamer)
9468 ("clutter" ,clutter)
9469 ("clutter-gst" ,clutter-gst)
9470 ("clutter-gtk" ,clutter-gtk)
9471 ("libjpeg" ,libjpeg)
9472 ("libtiff" ,libtiff)
9473 ("libraw" ,libraw)))
9474 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9475 (synopsis "GNOME image viewer and browser")
9476 (description "GThumb is an image viewer, browser, organizer, editor and
9477advanced image management tool")
9478 (license license:gpl2+)))
08be02be
AT
9479
9480(define-public terminator
9481 (package
9482 (name "terminator")
9483 (version "1.91")
9484 (source (origin
9485 (method url-fetch)
9486 (uri (string-append "https://launchpad.net/" name "/"
9487 "gtk3/" version "/" "+download/"
9488 name "-" version ".tar.gz"))
9489 (sha256
9490 (base32
9491 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9492 (build-system python-build-system)
9493 (native-inputs
9494 `(("intltool" ,intltool)
9495 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9496 ("gettext" ,gettext-minimal)
9497 ("pkg-config" ,pkg-config)))
9498 (inputs
9499 `(("cairo" ,cairo)
9500 ("gobject-introspection" ,gobject-introspection)
96681d4b 9501 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9502 ("python2-pycairo" ,python2-pycairo)
9503 ("python2-pygobject" ,python2-pygobject)
9504 ("python2-psutil" ,python2-psutil)
9505 ("vte" ,vte)))
9506 (arguments
96681d4b
TGR
9507 `(#:python ,python-2 ; Python 3 isn't supported
9508 #:imported-modules ((guix build glib-or-gtk-build-system)
9509 ,@%python-build-system-modules)
9510 #:modules ((guix build python-build-system)
9511 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9512 (guix build utils))
08be02be
AT
9513 #:phases
9514 (modify-phases %standard-phases
9515 (add-after
9516 'install 'wrap-program
9517 (lambda* (#:key outputs #:allow-other-keys)
9518 (let ((prog (string-append (assoc-ref outputs "out")
9519 "/bin/terminator")))
9520 (wrap-program prog
9521 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9522 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9523 #t)))
9524 (add-after 'wrap-program 'glib-or-gtk-wrap
9525 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9526 (home-page "https://gnometerminator.blogspot.com/")
9527 (synopsis "Store and run multiple GNOME terminals in one window")
9528 (description
9529 "Terminator allows you to run multiple GNOME terminals in a grid and
9530+tabs, and it supports drag and drop re-ordering of terminals.")
9531 (license license:gpl2)))
213315d4
JF
9532
9533(define-public libhandy
9534 (package
9535 (name "libhandy")
f6501b9f 9536 (version "0.0.12")
213315d4
JF
9537 (source
9538 (origin
9539 (method git-fetch)
9540 (uri (git-reference
9541 (url "https://source.puri.sm/Librem5/libhandy")
9542 (commit (string-append "v" version))))
9543 (file-name (git-file-name name version))
9544 (sha256
f6501b9f 9545 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9546 (build-system meson-build-system)
9547 (arguments
9548 `(#:configure-flags
9549 '("-Dglade_catalog=disabled"
9550 "-Dgtk_doc=true")
9551 #:phases
9552 (modify-phases %standard-phases
213315d4
JF
9553 (add-before 'check 'pre-check
9554 (lambda _
9555 ;; Tests require a running X server.
9556 (system "Xvfb :1 &")
9557 (setenv "DISPLAY" ":1")
9558 #t)))))
9559 (inputs
9560 `(("gtk+" ,gtk+)))
9561 (native-inputs
9562 `(("glib:bin" ,glib "bin")
9563 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9564 ("vala" ,vala)
9565 ("gtk-doc" ,gtk-doc)
9566 ("pkg-config" ,pkg-config)
9567 ("gettext" ,gettext-minimal)
d41ee146
TGR
9568
9569 ;; Test suite dependencies.
ff337525 9570 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9571 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9572 (home-page "https://source.puri.sm/Librem5/libhandy")
9573 (synopsis "Library full of GTK+ widgets for mobile phones")
9574 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9575interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9576for usage on small and big screens.")
213315d4 9577 (license license:lgpl2.1+)))
a830d14d
GL
9578
9579(define-public libgit2-glib
9580 (package
9581 (name "libgit2-glib")
9582 (version "0.28.0.1")
9583 (source (origin
9584 (method url-fetch)
9585 (uri (string-append "mirror://gnome/sources/" name "/"
9586 (version-major+minor version) "/"
9587 name "-" version ".tar.xz"))
9588 (sha256
9589 (base32
9590 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9591 (build-system meson-build-system)
9592 (native-inputs
9593 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9594 ("gobject-introspection" ,gobject-introspection)
9595 ("intltool" ,intltool)
9596 ("libssh2" ,libssh2)
9597 ("pkg-config" ,pkg-config)
9598 ("python-pygobject" ,python-pygobject)
9599 ("python-wrapper" ,python-wrapper)
9600 ("vala" ,vala)))
9601 (inputs
9602 `(("glib" ,glib)
9603 ("libgit2" ,libgit2)))
9604 (synopsis "GLib wrapper around the libgit2 Git access library")
9605 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9606access library. It only implements the core plumbing functions, not really the
9607higher level porcelain stuff.")
9608 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9609 (license license:gpl2+)))
93beace0 9610
08db81c9
LP
9611(define-public gitg
9612 (package
9613 (name "gitg")
9614 (version "3.32.1")
9615 (source (origin
9616 (method url-fetch)
9617 (uri (string-append "mirror://gnome/sources/" name "/"
9618 (version-major+minor version) "/"
9619 name "-" version ".tar.xz"))
9620 (sha256
9621 (base32
9622 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9623 (build-system meson-build-system)
9624 (arguments
9625 `(#:glib-or-gtk? #t
9626 #:phases
9627 (modify-phases %standard-phases
9628 (add-after 'unpack 'disable-post-install-partially
9629 (lambda _
9630 (substitute* "meson_post_install.py"
9631 (("'python'") ; there are no python sources to compile
9632 (string-append "'" (which "true") "'"))
9633 (("gtk-update-icon-cache") (which "true")))
9634 #t))
9635 (add-after 'unpack 'fix-test-sources
9636 (lambda _
9637 (substitute* "tests/libgitg/test-commit.vala"
9638 (("/bin/bash") (which "bash")))
9639 #t))
9640 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9641 (lambda* (#:key outputs #:allow-other-keys)
9642 (let ((prog (string-append (assoc-ref outputs "out")
9643 "/bin/gitg")))
9644 (wrap-program prog
9645 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9646 #t))))))
9647 (inputs
9648 `(("glib" ,glib)
9649 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9650 ("gtk+" ,gtk+)
9651 ("gtkspell3" ,gtkspell3)
9652 ("gtksourceview" ,gtksourceview-3)
9653 ("json-glib" ,json-glib)
9654 ("libdazzle" ,libdazzle)
9655 ("libgee" ,libgee)
9656 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9657 ("libgit2-glib" ,libgit2-glib)
9658 ("libpeas" ,libpeas)
9659 ("libsecret" ,libsecret)
9660 ("libsoup" ,libsoup)
9661 ("libxml2" ,libxml2)))
9662 (native-inputs
9663 `(("glib:bin" ,glib "bin")
9664 ("gtk+:bin" ,gtk+ "bin")
9665 ("gobject-introspection" ,gobject-introspection)
9666 ("intltool" ,intltool)
9667 ("pkg-config" ,pkg-config)
9668 ("vala" ,vala)))
9669 (synopsis "Graphical user interface for git")
9670 (description
9671 "gitg is a graphical user interface for git. It aims at being a small,
9672fast and convenient tool to visualize the history of git repositories.
9673Besides visualization, gitg also provides several utilities to manage your
9674repository and commit your work.")
9675 (home-page "https://wiki.gnome.org/Apps/Gitg")
9676 (license license:gpl2+)))
9677
1e600ed0
RW
9678(define-public gamin
9679 (package
9680 (name "gamin")
9681 (version "0.1.10")
9682 (source (origin
9683 (method url-fetch)
9684 (uri (string-append "mirror://gnome/sources/" name "/"
9685 (version-major+minor version) "/"
9686 name "-" version ".tar.bz2"))
9687 (sha256
9688 (base32
9689 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9690 (build-system gnu-build-system)
9691 (arguments
9692 `(#:phases
9693 (modify-phases %standard-phases
9694 (add-after 'unpack 'remove-deprecated-macro
9695 (lambda _
9696 (substitute* '("server/gam_node.c"
9697 "server/gam_subscription.h"
9698 "server/gam_node.h"
9699 "server/gam_subscription.c")
9700 (("G_CONST_RETURN") "const"))
9701 #t)))))
9702 (inputs
9703 `(("glib" ,glib)))
9704 (native-inputs
9705 `(("intltool" ,intltool)
9706 ("pkg-config" ,pkg-config)))
9707 (home-page "https://people.gnome.org/~veillard/gamin/")
9708 (synopsis "File alteration monitor")
9709 (description
9710 "Gamin is a file and directory monitoring system defined to be a subset
9711of the FAM (File Alteration Monitor) system. This is a service provided by a
9712library which allows to detect when a file or a directory has been modified.")
9713 (license license:gpl2+)))
9714
93beace0
DW
9715(define-public gnome-mahjongg
9716 (package
9717 (name "gnome-mahjongg")
9718 (version "3.35.1")
9719 (source (origin
9720 (method git-fetch)
9721 (uri (git-reference
9722 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9723 (commit version)))
9724 (file-name (git-file-name name version))
9725 (sha256
9726 (base32
9727 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9728 (build-system meson-build-system)
9729 (arguments
9730 `(#:glib-or-gtk? #t))
9731 (native-inputs
9732 `(("appstream-glib" ,appstream-glib)
9733 ("gettext" ,gettext-minimal)
9734 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9735 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9736 ("itstool" ,itstool)
9737 ("pkg-config" ,pkg-config)
9738 ("vala" ,vala)))
9739 (propagated-inputs
9740 `(("dconf" ,dconf)))
9741 (inputs
9742 `(("glib" ,glib)
9743 ("gtk+" ,gtk+)
9744 ("librsvg" ,librsvg)))
9745 (synopsis "Mahjongg tile-matching game")
9746 (description "GNOME Mahjongg is a game based on the classic Chinese
9747tile-matching game Mahjong. It features multiple board layouts, tile themes,
9748and a high score table.")
9749 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9750 (license license:gpl2+)))
f825476c 9751
76ea7632
RG
9752(define-public gnome-themes-extra
9753 (package
9754 (name "gnome-themes-extra")
9755 (version "3.28")
9756 (source
9757 (origin
9758 (method url-fetch)
9759 (uri (string-append "mirror://gnome/sources/" name "/"
9760 (version-major+minor version) "/" name "-"
9761 version ".tar.xz"))
9762 (sha256
9763 (base32
9764 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9765 (build-system gnu-build-system)
885424bf
RG
9766 (arguments
9767 '(#:configure-flags
9768 ;; Don't create 'icon-theme.cache'.
9769 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9770 (true (string-append coreutils "/bin/true")))
9771 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9772 (native-inputs
9773 `(("glib:bin" ,glib "bin")
9774 ("intltool" ,intltool)
9775 ("pkg-config" ,pkg-config)))
9776 (inputs
9777 `(("glib" ,glib)
9778 ("gtk+" ,gtk+)
9779 ("gtk+-2" ,gtk+-2)
9780 ("librsvg" ,librsvg)
9781 ("libxml2" ,libxml2)))
9782 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9783 (synopsis "GNOME Extra Themes")
9784 (description "This package provides themes and related elements that don't
9785really fit in other upstream packages. It offers legacy support for GTK+ 2
9786versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9787index files needed for Adwaita to be used outside of GNOME.")
9788 (license license:lgpl2.1+)))
9789
f825476c
LP
9790(define-public polari
9791 (package
9792 (name "polari")
9793 (version "3.32.2")
9794 (source (origin
9795 (method url-fetch)
9796 (uri (string-append "mirror://gnome/sources/polari/"
9797 (version-major+minor version)
9798 "/polari-" version ".tar.xz"))
9799 (sha256
9800 (base32
9801 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9802 (build-system meson-build-system)
9803 (arguments
9804 `(#:glib-or-gtk? #t
9805 #:phases
9806 (modify-phases %standard-phases
9807 (add-after 'unpack 'skip-gtk-update-icon-cache
9808 (lambda _
9809 (substitute* "meson/meson-postinstall.sh"
9810 (("gtk-update-icon-cache") (which "true")))
9811 #t))
9812 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9813 (lambda* (#:key outputs #:allow-other-keys)
9814 (let ((prog (string-append (assoc-ref outputs "out")
9815 "/bin/polari")))
9816 (wrap-program prog
9817 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9818 #t))))))
9819 (inputs
9820 `(("glib" ,glib)
9821 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9822 ("gspell" ,gspell)
9823 ("gtk+" ,gtk+)
9824 ("gjs" ,gjs)
9825 ("libsecret" ,libsecret)
9826 ("libsoup" ,libsoup)
9827 ("telepathy-glib" ,telepathy-glib)
9828 ("telepathy-logger" ,telepathy-logger)))
9829 (native-inputs
9830 `(("glib:bin" ,glib "bin")
9831 ("gobject-introspection" ,gobject-introspection)
9832 ("intltool" ,intltool)
9833 ("pkg-config" ,pkg-config)
9834 ("yelp-tools" ,yelp-tools)))
9835 (propagated-inputs
9836 `(("telepathy-idle" ,telepathy-idle)
9837 ("telepathy-mission-control" ,telepathy-mission-control)))
9838 (synopsis "Simple IRC Client")
9839 (description
9840 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9841integrate seamlessly with the GNOME desktop.")
9842 (home-page "https://wiki.gnome.org/Apps/Polari")
9843 (license license:gpl2+)))